Baixe o app para aproveitar ainda mais
Prévia do material em texto
Processadores Arquitetura de Computadores Leonard B. Moreira UERJ e-mail: leonardbarreto@gmail.com.br julho, 2013 Leonard B. Moreira (-) Processadores 1 / 118 Suma´rio 1 Organizac¸a˜o Funcional da UCP Func¸o˜es realizadas pela UCP Func¸a˜o Processamento Func¸a˜o Controle 2 Instruc¸o˜es de ma´quina Formato das Instruc¸o˜es 3 Funcionamento do Processador: o ciclo de instruc¸a˜o 4 Modos de Enderec¸amento Modo Imediato Modo Direto Modo Indireto por Registrador Indexado Modo base mais deslocamento 5 Execuc¸a˜o de Programas 6 Refereˆncias Leonard B. Moreira (-) Processadores 2 / 118 Organizac¸a˜o Funcional da UCP Suma´rio 1 Organizac¸a˜o Funcional da UCP Func¸o˜es realizadas pela UCP Func¸a˜o Processamento Func¸a˜o Controle 2 Instruc¸o˜es de ma´quina Formato das Instruc¸o˜es 3 Funcionamento do Processador: o ciclo de instruc¸a˜o 4 Modos de Enderec¸amento Modo Imediato Modo Direto Modo Indireto por Registrador Indexado Modo base mais deslocamento 5 Execuc¸a˜o de Programas 6 Refereˆncias Leonard B. Moreira (-) Processadores 3 / 118 Organizac¸a˜o Funcional da UCP Organizac¸a˜o Funcional da UCP Processador realiza operac¸a˜o com dados (processamento) e controla todo o funcionamento do sistema (controle); E´ capaz de realizar algumas primitivas(operac¸o˜es), como: - operac¸o˜es aritme´ticas - operac¸a˜o de movimento de dados - operac¸a˜o de E/S Leonard B. Moreira (-) Processadores 4 / 118 Organizac¸a˜o Funcional da UCP Organizac¸a˜o Funcional da UCP Processador executa instruc¸o˜es - a instruc¸a˜o de ma´quina formaliza uma determinada operac¸a˜o a ser realizada pela UCP; - geralmente uma instruc¸a˜o de ma´quina identifica qual operac¸a˜o deve ser realizada e onde esta˜o os dados a serem manipulados; Figura 1 : Funcionamento do hardware do processador - ciclo de instruc¸a˜o ba´sico Leonard B. Moreira (-) Processadores 5 / 118 Organizac¸a˜o Funcional da UCP Organizac¸a˜o Funcional da UCP A func¸a˜o da UCP consiste resumidamente em: 1 buscar uma instruc¸a˜o na memo´ria; 2 interpretar que operac¸a˜o a instruc¸a˜o esta´ explicitando; 3 buscar os dados onde estiverem armazenados, para trazeˆ-los ate´ a UCP; 4 executar efetivamente a operac¸a˜o com o(s) dado(s); 5 guardar o resultado(se houver) no local definido na instruc¸a˜o; 6 reiniciar o processo buscando uma nova instruc¸a˜o; Leonard B. Moreira (-) Processadores 6 / 118 Organizac¸a˜o Funcional da UCP Organizac¸a˜o Funcional da UCP Figura 2 : Ciclo de instruc¸a˜o ba´sico Leonard B. Moreira (-) Processadores 7 / 118 Organizac¸a˜o Funcional da UCP Func¸o˜es realizadas pela UCP As func¸o˜es e atividades realizadas pela UCP podem ser divididas em duas grandes categorias: - func¸a˜o de processamento - func¸a˜o de controle Figura 3 : Diagrama em bloco (ba´sico) de uma UCP Leonard B. Moreira (-) Processadores 8 / 118 Organizac¸a˜o Funcional da UCP Func¸o˜es realizadas pela UCP A Figura 3 apresenta as duas areas funcionais interligadas pelo barramento interno Importante! O barramento interno e´ onde fluem os sinais de dados, de enderec¸os e de controle; a parte constitu´ıda pelos componentes da a´rea de processamento e´ conhecida como Data Path; Leonard B. Moreira (-) Processadores 9 / 118 Organizac¸a˜o Funcional da UCP Func¸o˜es realizadas pela UCP Componentes da a´rea funcional de processamento 1 Unidade lo´gica e aritme´tica (ULA, UAL, ALU) 2 Registradores de dados e registradores especiais de estado (PSW - program status word) Figura 4 : Componentes da a´rea funcional de processamento Leonard B. Moreira (-) Processadores 10 / 118 Organizac¸a˜o Funcional da UCP Func¸o˜es realizadas pela UCP Componentes da a´rea funcional de controle 5; 1 Unidade de controle, relo´gio (clock) 2 Registradores especiais Program Counter(PC) ou Contador de Instruc¸o˜es(CI) Instruction Register(IR) ou Registrador de Instruc¸o˜es(RI) Memory Address Register(MAR) ou Registrador de Enderc¸os de Memo´ria(REM) Memory Data Register(MDR) ou Registrador de Dados de Memo´ria(RDM) Leonard B. Moreira (-) Processadores 11 / 118 Organizac¸a˜o Funcional da UCP Func¸o˜es realizadas pela UCP Figura 5 : Componentes ba´sicos da a´rea funcional de controle Leonard B. Moreira (-) Processadores 12 / 118 Organizac¸a˜o Funcional da UCP Func¸o˜es realizadas pela UCP Figura 6 : Diagrama em bloco simplificado da func¸a˜o controle Leonard B. Moreira (-) Processadores 13 / 118 Organizac¸a˜o Funcional da UCP Func¸o˜es realizadas pela UCP Esquema simplificado de uma UCP Leonard B. Moreira (-) Processadores 14 / 118 Organizac¸a˜o Funcional da UCP Func¸o˜es realizadas pela UCP Componentes com func¸a˜o de processamento Leonard B. Moreira (-) Processadores 15 / 118 Organizac¸a˜o Funcional da UCP Func¸o˜es realizadas pela UCP Componentes com func¸a˜o de controle Leonard B. Moreira (-) Processadores 16 / 118 Organizac¸a˜o Funcional da UCP Func¸a˜o Processamento Esseˆncia dos sistemas de computac¸a˜o, combinando hardware com software capaz de realizar diferentes tarefas conforme a ordem e a sequeˆncia de instruc¸o˜es que recebe Basicamente consiste: 1 ULA 2 Registradores de dados 3 Registrador especial de controle (ou de flags) 4 Barramento interno Leonard B. Moreira (-) Processadores 17 / 118 Organizac¸a˜o Funcional da UCP Unidade Aritme´tica e Lo´gica Dispositivo da UCP que efetivamente executa as operac¸o˜es matema´ticas com os dados. Tais operac¸o˜es podem ser: - soma, subtrac¸a˜o, multiplicac¸a˜o, divisa˜o; - operac¸o˜es lo´gicas: AND, OR, XOR - operac¸o˜es complemento, deslocamento a` direita, deslocamento a` esquerda - incremento/decremento de 1 a um valor Tais operac¸o˜es podem utilizar dois valores, por isso possui duas entradas; Ale´m das entradas, recebe tambe´m sinais de controle que va˜o determinar que operac¸a˜o sera´ realizada; Leonard B. Moreira (-) Processadores 18 / 118 Organizac¸a˜o Funcional da UCP Registradores de Dados Para que um dado possar ser transferido para a UCP, e´ necessa´rio que ele permanec¸a (mesmo que por um breve instante) em um registrador Resultados de operac¸o˜es devem ser armazenado para uso posterior ou apenas ser transferido para a memo´ria; Assim, servem de memo´ria auxiliar ba´sica para a ULA; Geralmente possuem largura igual ao tamanho estabelecido pelo fabricante para a palavra do referido processador; Um registrador especial e´ o acumulador (ACC) que ale´m de armazenar dados, servia tambe´m de elemento de ligac¸a˜o da ULA co os restares dispositivos do processador; Leonard B. Moreira (-) Processadores 19 / 118 Organizac¸a˜o Funcional da UCP Registradores Especiais de Controle Tambe´m conhecido por registrador especial de estado ou Program Status Word(PSW); Diferentemente dos registradores de dados, indicam o estado de va´rios elementos referentes a` operac¸a˜o em si; Geralmente na˜o armazena dados na forma integral (u´nico valor), ele se divide em bits que possuem significado diferente; Leonard B. Moreira (-) Processadores 20 / 118 Organizac¸a˜o Funcional da UCP Registradores Especiais de Estado Os principais bits de estado mais frequentemente encontrados nas UCPs sa˜o: 1 sinal: conte´m o sinal resultante da u´ltima operac¸a˜o aritme´tica realizada pela UCP; 2 overflow: quando setado (=1) indica que a u´ltima operac¸a˜o aritme´tica resultou em um estouro de valor; 3 zero: quando setado (=1) indica que a u´ltima operac¸a˜o aritme´tica resultou em valor zero; 4 vai 1(carry): indica que ”vai 1”para o bit mais a esquerda; pode indicar tambe´m overflow em operac¸o˜es com nu´meros sem sinal; 5 paridade: e´ setado (=1) ou na˜o (=0), dependendo da quantidade de bits 1 no byte recebido;Leonard B. Moreira (-) Processadores 21 / 118 Organizac¸a˜o Funcional da UCP Figura 7 : EFLAGS register do Pentium Leonard B. Moreira (-) Processadores 22 / 118 Organizac¸a˜o Funcional da UCP A Influeˆncia do Tamanho da Palavra Um dos elementos fundamentais que determina a velocidade com que a UCP realiza o ciclo de instruc¸a˜o e´ o tamanho da palavra; O tamanho influenciara´ no tamanho dos elementos ligados a` a´rea de processamento, a ULA e os registradores de dados; Influeˆncia no desempenho devido ao tamanho escolhido para o barramento interno e externo. Influeˆncia na implementac¸a˜o f´ısica do acesso a` memo´ria; Leonard B. Moreira (-) Processadores 23 / 118 Organizac¸a˜o Funcional da UCP A Influeˆncia do Tamanho da Palavra Operac¸a˜o de soma em sistemas com tamanhos diferentes de palavras Operac¸a˜o: somar 2 nu´meros com 16 bits de tamanho; A=3A2516 e B=172C16 Sistemas considerados: - Sistema 1: palavra de 8 bits, MP com 64K ce´lulas de 8 bits. - Sistema 2: palavra de 16 bits, MP com 1M com ce´lulas de 8 bits; Leonard B. Moreira (-) Processadores 24 / 118 Organizac¸a˜o Funcional da UCP A Influeˆncia do Tamanho da Palavra Operac¸a˜o realizada em duas etapas lo´gicas pois os nu´meros sa˜o de 16bits e o processador so´ permite armazenar, processar e transferir dados com 8 bits. 1 Na 1a etapa sa˜o transferidos para ULA, via ACC e BD, a primeira metade de cada nu´mero (25 p/ A e 2C p/ B). Enta˜o sa˜o somados; 2 2a etapa realizada de forma ideˆntica para segunda metade dos nu´meros; 3 Per´ıodo de tempo gasto: tempo etapa 1 + tempo etapa 2 Figura 8 : Sistema 1: Palavra de 8 bits e MP de 64Kb Leonard B. Moreira (-) Processadores 25 / 118 Organizac¸a˜o Funcional da UCP A Influeˆncia do Tamanho da Palavra Operac¸a˜o realizada em uma etapa lo´gica pois os nu´meros sa˜o de 16bits e o processador tambe´m opera nu´meros de 16 bits; - A operac¸a˜o completa gasta um um per´ıodo de tempo A operac¸a˜o no sistema 2 gasta a metade do tempo do sistema 1. Isto torna a capacidade do processador do sistema 2 bem maior do que a capacidade do sistema 1. Figura 9 : Sistema 2: Palavra de 16 bits e MP de 1M Leonard B. Moreira (-) Processadores 26 / 118 Organizac¸a˜o Funcional da UCP Func¸a˜o Controle Parte funcional da UCP que realiza as atividades de: 1 busca da instruc¸a˜o que sera´ executada, armazenando-a em um registrador; 2 interpretac¸a˜o das ac¸o˜es a serem desencadeadas com a execuc¸a˜o da instruc¸a˜o; 3 gerac¸a˜o dos sinais de controle apropriados para ativac¸a˜o das atividades requeridas para a execuc¸a˜o da instruc¸a˜o identificada; Importante! A a´rea de controle e´ projetada para entender o que fazer, como fazer e comandar quem vai fazer no momento adequado! Leonard B. Moreira (-) Processadores 27 / 118 Organizac¸a˜o Funcional da UCP Func¸a˜o Controle Os dispositivos ba´sicos que fazer parte da a´rea funcional de controle sa˜o: 1 unidade de controle (UC); 2 relo´gio ou clock; 3 registrador de instruc¸a˜o(RI) ou instruction register(IR) 4 contador de instruc¸a˜o(CI) ou program counter(PC) 5 decodificador de instruc¸a˜o; 6 registrador de dados da memo´ria (RDM) e registradores de enderec¸o de memo´ria (REM) a organizac¸a˜o dos componentes e o funcionamento ba´sico da a´rea de controle constituem a microarquitetura do processador! Leonard B. Moreira (-) Processadores 28 / 118 Organizac¸a˜o Funcional da UCP Unidade de Controle Possui lo´gica necessa´ria para realizar movimentac¸a˜o de dados e de instruc¸o˜es de e para o processador; Realiza estas operac¸o˜es mediante sinais de controle que emite em instantes de tempo determinados; Um diagrama simplificado e´ mostrado na Figura 6, e as conexo˜es da UC com outros componentes sa˜o exibidos nas Figuras 5 e 14 Leonard B. Moreira (-) Processadores 29 / 118 Organizac¸a˜o Funcional da UCP Unidade de Controle Os sinais de controle eitidos pela UC ocorrem em va´rios instantes durante o per´ıodo de realizac¸a˜o de um ciclo de instruc¸a˜o; De modo geral, todos possuem durac¸a˜o fixa e igual originada em um gerador de sinais denominado relo´gio (clock) (Figura 6). Os microeventos (ou microoperac¸o˜es) comandados pelo funcionamento da UC podem ser iniciados segundo os princ´ıpios: 1 por microprogramac¸a˜o; ou 2 por programac¸a˜o pre´via diretamente no hardware. Leonard B. Moreira (-) Processadores 30 / 118 Organizac¸a˜o Funcional da UCP Unidade de Controle Lembre-se que... O in´ıcio da busca da instruc¸a˜o consiste na busca(fetch) da referida instruc¸a˜o... ...trazendo uma co´pia dela da MP para RI(no processador) - Para efetivar esta ac¸a˜o, sa˜o realizadas algumas ac¸o˜es menores que, em conjunto, constituem a desejada transfereˆncia; - Tais operac¸o˜es menores denominam-se microoperac¸o˜es, por se constitu´ırem na menor parte individualmente executa´vel pelo processador. Leonard B. Moreira (-) Processadores 31 / 118 Organizac¸a˜o Funcional da UCP Unidade de Controle t0 : REM ←− (CI ) t1 : CI ←− CI + N RDM ←− M(Op.) t2 : RI ←− RDM Tabela 1 : Sequeˆncia de microoperac¸o˜es realizadas em um ciclo de busca Leonard B. Moreira (-) Processadores 32 / 118 Organizac¸a˜o Funcional da UCP Unidade de Controle Outra caracter´ıstica da UC, refere-se ao modo pelo qual o sistema conduz a execuc¸a˜o das instruc¸o˜es: - Processadores que executam instruc¸o˜es de modo exclusivamente sequencial ou serial (SISD); - Processadores que executam instruc¸o˜es de modo concorrente, ou tipo pipeline; - Processadores que executam va´rias instruc¸o˜es simultaneamente (processamento paralelo); - Processadores que realizam processamento vetorial; Leonard B. Moreira (-) Processadores 33 / 118 Organizac¸a˜o Funcional da UCP Relo´gio Relogio (ou um contador de tempo) e´ um dispositivo gerador de pulsos cuja durac¸a˜o e´ chamada de ciclo. Os pulsos alternam entre 0 (intensidade baixa) e 1(intensidade alta); Serve para sincronizar e cadenciar as ac¸o˜es; - sincronizar: permitir que duas ou mais ac¸o˜es ocorram no mesmo instante de tempo; - cadenciar: entenda-se por controlar a velocidade com que as ac¸o˜es ocorrem; Leonard B. Moreira (-) Processadores 34 / 118 Organizac¸a˜o Funcional da UCP Relo´gio Figura 10 : Pulsos de relo´gio Leonard B. Moreira (-) Processadores 35 / 118 Organizac¸a˜o Funcional da UCP Relo´gio Algumas considerac¸o˜es da Figura 10: - O ciclo do relo´gio e´ o intervalo entre o in´ıcio da descida (ou subida) de um pulso ate´ o in´ıcio da subida (ou descida) do outro pulso; - per´ıodo: intervalo de tempo gasto para se obter um ciclo do sinal do relo´gio (geralmente, em nanossegundos); - lado de subida(rising edge): e´ a parte do pulso que realiza a transic¸a˜o do valor baixo para o valor alto; - tempo de subida(rising time): e´ o per´ıodo de tempo gasto pelo sinal para realizar toda a subida(geralmente, em nanossegundos); - lado de descida(falling edge): e´ a parte do pulso que realiza a transic¸a˜o do valor alto para o valor baixo; - tempo de descida(falling time): e´ o per´ıodo de tempo gasto pelo sinal para realizar toda a descida(geralmente, em nanossegundos); - frequeˆncia(clock rate): e´ a quantidade de ciclos por segundo de um relo´gio. O per´ıodo e´ o inverso da frequeˆncia.Usualmente medida em Hertz(Hz), onde 1 Hz = 1 ciclo/s. Leonard B. Moreira (-) Processadores 36 / 118 Organizac¸a˜o Funcional da UCP Relo´gio A Figura 12 mostra um exemplo de um esquema relacionado ao relogio de um processador e os pulsos por ele gerado; o ciclo de relo´gio esta´ relacionado a` realizac¸a˜o de uma operac¸a˜ elementar durante o ciclo de uma instruc¸a˜o; Mesmo sendo elementar, esta operac¸a˜o na˜o se realiza em um so´ passo sendo necessa´rio dividir o ciclo de ma´quinaem subciclos; A estes diferentes passos de uma operac¸a˜o elementar denomina-se microoperac¸o˜es; Leonard B. Moreira (-) Processadores 37 / 118 Organizac¸a˜o Funcional da UCP Relo´gio Figura 11 : Diagrama em bloco do conjunto de tempo da a´rea de controle Figura 12 : Diagrama de tempo do ciclo do processador (t0) e seus 5 subciclos Leonard B. Moreira (-) Processadores 38 / 118 Organizac¸a˜o Funcional da UCP Registrador de Instruc¸a˜o(RI) Possui a func¸a˜o espec´ıfica de armazenar a instruc¸a˜o a ser executada pelo processador; A instruc¸a˜o e´ armazenada no RI ao fim do ciclo de leitura; Atualmente o RI armazena parte da instruc¸a˜o (co´digo da operac¸a˜o) ale´m de uso de buffers para armazenar instruc¸o˜es em fila ants mesmo da execuc¸a˜o Leonard B. Moreira (-) Processadores 39 / 118 Organizac¸a˜o Funcional da UCP Contador de Instruc¸a˜o(CI) Possui a func¸a˜o espec´ıfica de armazenar o enderec¸o da pro´xima instruc¸a˜o a ser executada; Seu conteu´do e´ automaticamente modificado logo no in´ıcio do ciclo de instruc¸a˜o; Registrador crucial para o processo de controle e de sequenciamento da execuc¸a˜o dos programas. Possibilidades de alterac¸a˜o do conteu´do do CI: 1 incremento automa´tico em um ciclo de instruc¸a˜o; 2 reinicializac¸a˜o do sistema (hardware programado para inserir no CI o enderec¸o da 1a instruc¸a˜o do programa de inicializac¸a˜o); 3 instruc¸o˜es de desvio(jump ou branch) ou comandos de desvio (p.e., if-then-else ou do..while); 4 quando o SO decide mudar de programa em execuc¸a˜o; Leonard B. Moreira (-) Processadores 40 / 118 Organizac¸a˜o Funcional da UCP Decodificador de Instruc¸a˜o Utilizado para identificar qual operac¸a˜o sera´ realizada, correlaionada a` instruc¸a˜o cujo co´digo de operac¸a˜o foi decodificado; Como sa˜o muitas instruc¸o˜es, e´ necessa´rio que cada um possua uma identificac¸a˜o pro´pria e u´nica; O dispositivo recebe em sua entrada um conjunto de bits(N) para identificar uma instruc¸a˜o de ma´quina e 2N sa´ıdas; A Figura 13 mostra um exemplo com 4 entradas e 16 sa´ıdas. - Cada linha de sa´ıda aciona de modo diferente a UC e esta emite sinais de controle por diferentes caminhos; Leonard B. Moreira (-) Processadores 41 / 118 Organizac¸a˜o Funcional da UCP Decodificador de Instruc¸a˜o Figura 13 : Exemplo de decodificador com 4 entradas e 16 sa´ıdas Leonard B. Moreira (-) Processadores 42 / 118 Organizac¸a˜o Funcional da UCP Registrador de Dados de Memo´ria(RDM) e Registrador de Enderec¸os de Memo´ria(REM) Utilizados pelo processador e memo´ria para comunicac¸a˜o e transfereˆncia de informac¸o˜es; Em geral, o RDM possui um tamanho igual ao do barramento de dados; - ultimamente o BD tem sido constru´ıdo com largura - em bits - mu´ltipla do tamanho da palavra; Em geral, o REM possui um tamanho igual ao dos enderec¸os de memo´ria(e consequentemente o BE do sistema); Pelo tamanho do REM pode-se calcular o espac¸o ma´ximo de enderec¸amento Leonard B. Moreira (-) Processadores 43 / 118 Instruc¸o˜es de ma´quina Suma´rio 1 Organizac¸a˜o Funcional da UCP Func¸o˜es realizadas pela UCP Func¸a˜o Processamento Func¸a˜o Controle 2 Instruc¸o˜es de ma´quina Formato das Instruc¸o˜es 3 Funcionamento do Processador: o ciclo de instruc¸a˜o 4 Modos de Enderec¸amento Modo Imediato Modo Direto Modo Indireto por Registrador Indexado Modo base mais deslocamento 5 Execuc¸a˜o de Programas 6 Refereˆncias Leonard B. Moreira (-) Processadores 44 / 118 Instruc¸o˜es de ma´quina Instruc¸o˜es de ma´quina E´ a formalizac¸a˜o de uma operac¸a˜o ba´sica, simples(ou primitiva) que o hardware e´ capaz de realizar diretamente; O projeto do computador e´ centrado no conjunto de instruc¸o˜es de ma´quina que se deseja que ele execute; Uma das mais fundamentais ana´lises e deciso˜es de projeto envolveo o tamanho e a complexidade do conjunto de instruc¸o˜es: - quanto menor e mais simples o conjunto de instruc¸o˜es, mais ra´pido e´ o ciclo de tempo do processador; Leonard B. Moreira (-) Processadores 45 / 118 Instruc¸o˜es de ma´quina Instruc¸o˜es de ma´quina Pode-se utilizar, pelo menos, duas tecnologias de projeto de processadores: Sistemas com conjunto de instruc¸o˜es complexo (complex instruction set computers - CISC ) Sistemas com conjunto de instruc¸o˜es reduzido (reduced instruction set computers - RISC ) Do ponto de vista f´ısico, uma instruc¸a˜o de ma´quina e´ um grupo de bits que indica ao processador uma operac¸a˜o ou ac¸a˜o que ele deve realizar; Quando se menciona conjunto de instruc¸o˜es estamos nos referindo a todas as poss´ıveis instruc¸o˜es que podem ser interpretadas e executadas por um processador; Leonard B. Moreira (-) Processadores 46 / 118 Instruc¸o˜es de ma´quina Instruc¸o˜es de ma´quina Interpretac¸a˜o das instruc¸o˜es de ma´quina As instruc¸o˜es de ma´quina sao interpretadas pelo n´ıvel inferior, denominado microarquitetura, na˜o vis´ıvel ao programador, que compreende principalmente os elementos da a´rea de controle. Leonard B. Moreira (-) Processadores 47 / 118 Instruc¸o˜es de ma´quina Formato das Instruc¸o˜es Podemos separar o grupo de bits que cnstitui uma instruc¸a˜o em duas partes: 1 uma delas indica o que e´ a instruc¸a˜o e como sera´ executada; - constitu´ıda de um so´ campo 2 a outra se refere ao(s) dado(s) que sera´(a˜o) manipulado(s) na operac¸a˜o; - podera´ ter um ou mais campos Assim, temos os seguintes campos em cada instruc¸a˜o: - um campo (um subgrupo de bits) chama-se co´digo da operac¸a˜o; - o restante grupo de bits (se houver) denominado campo do(s) operando(s) ou operando(s); Co´digo de operac¸a˜o Operando(s) Leonard B. Moreira (-) Processadores 48 / 118 Instruc¸o˜es de ma´quina Formato das Instruc¸o˜es Co´digo de Operac¸a˜o(C.Op.): e´ o camp da instruc¸a˜o cujo valor bina´rio e´ a identificac¸a˜o da operac¸a˜o a ser realizada; - cada instruc¸a˜o possui um co´digo; - a largura do campo indica a quantidade de instruc¸o˜es do referido processador(e.g., C.Op.=8 bits implica em 28 instruc¸o˜es de ma´quina) Campo operando(Op.): indicam a localizac¸a˜o do dado (ou dados) que sera´ manipulado durante a realizac¸a˜o da operac¸a˜o; Leonard B. Moreira (-) Processadores 49 / 118 Instruc¸o˜es de ma´quina Formato das Instruc¸o˜es A instruc¸a˜o pode ser constitu´ıda de um ou mais campos ”operando” C.Op. Operando 1 Operando 2 Operando 3 Esta instruc¸a˜o poderia ser do tipo somar o valor armazenado na MP no enderec¸o indicado no campo operando 1 com valor armazenado na MP no enderec¸o indicado no campo operando 2 e armazenar o resultado na posic¸a˜o de MP, cujo enderec¸o esta´ indicado no campo operando 3; Ou: SOMAR Operando1, Operando2, Operando3 Ou: ADD Op1, Op2, Op3 Leonard B. Moreira (-) Processadores 50 / 118 Instruc¸o˜es de ma´quina Formato das Instruc¸o˜es Pode-se economizar o emprego de operandos, escolhendo um para servir a um duplo propo´sito; C.Op. Operando 1 Operando 2 Esta instruc¸a˜o poderia ser do tipo somar o valor armazenado na MP no enderec¸o indicado no campo operando 1 com valor armazenado na MP no enderec¸o indicado no campo operando 2 e armazenar o resultado na posic¸a˜o de MP, cujo enderec¸o esta´ indicado no campo operando 1; Ou: SOMAR Operando1, Operando2 Ou: ADD Op1, Op2 Leonard B. Moreira (-) Processadores 51 / 118 Instruc¸o˜es de ma´quina Formato das Instruc¸o˜es Pode-se utilizar o ACC para armazenar inicialmente um dos valores e, depois da realizac¸a˜o da soma, armazenar o resultado; C.Op. Operando 1 E sua representac¸a˜o: ACC ←− ACC + (Operando) Leonard B. Moreira (-) Processadores 52 / 118 Instruc¸o˜es de ma´quina Formato das Instruc¸o˜es Importante! Um mesmo conjunto de instruc¸o˜es de um processadorpodem existir formatos diferentes de instruc¸o˜es, inclusive para a realizac¸a˜o de uma mesma operac¸a˜o; Outro fator a ser considerado no projeto do conjunto de instruc¸o˜es refere-se ao modo de localizar o dado, chamado de modo de enderec¸amento Leonard B. Moreira (-) Processadores 53 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Suma´rio 1 Organizac¸a˜o Funcional da UCP Func¸o˜es realizadas pela UCP Func¸a˜o Processamento Func¸a˜o Controle 2 Instruc¸o˜es de ma´quina Formato das Instruc¸o˜es 3 Funcionamento do Processador: o ciclo de instruc¸a˜o 4 Modos de Enderec¸amento Modo Imediato Modo Direto Modo Indireto por Registrador Indexado Modo base mais deslocamento 5 Execuc¸a˜o de Programas 6 Refereˆncias Leonard B. Moreira (-) Processadores 54 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o A base de projeto de um processador e´ a escolha do conjunto de instruc¸o˜es que ele ira´ executar... Para em seguida definir e especificar os demais componentes da arquitetura e da organizac¸a˜o. Mostraremos o funcionamento ba´sico de um processador, apresentando as etapas requeridas para o processador completar a execuc¸a˜o de uma instruc¸a˜o de ma´quina; Leonard B. Moreira (-) Processadores 55 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Sera´ utilizado um subsistema UCP/MP hipote´tico, com as seguintes caracter´ısticas: Figura 14 : Descric¸a˜o das caracter´ısticas principais de um pequeno processador Leonard B. Moreira (-) Processadores 56 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o As instruc¸o˜es JZ Op., JP Op.,JN Op, JMP Op. mostradas na Figura TAL sa˜o instruc¸o˜es de desvio; Importante! Desvio e´ uma alterac¸a˜o forc¸ada da sequeˆncia de execuc¸a˜o de um programa (e.g. instruc¸o˜es if..then). Os desvios se efetivam pela alterac¸a˜o de enderec¸o de busca de instruc¸a˜o (armazenado no CI); Eles podem ser classificados como: 1) desvio incondicional: na˜o ha´ condic¸a˜o a ser satisfeita e o desvio e´ sempre executado; 2) desvio condicional: o valor do campo operando da instruc¸a˜o somente sera´ transferido para o CI se uma dada condic¸a˜o for satisfeita; Leonard B. Moreira (-) Processadores 57 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Importante! Lembre-se que, pela caracter´ıstica sequencial de execuc¸a˜o, o hardware incrementa o conteu´do do CI (CI=CI+1)a Os desvios se efetivam pela alterac¸a˜o de enderec¸o de busca de instruc¸a˜o (armazenado no CI); aEm computadores CISC, C=CI+n onde n e´ a quantidade de ce´lulas ocupadas por uma u´nica instruc¸a˜o Leonard B. Moreira (-) Processadores 58 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o O ciclo de instruc¸a˜o apresentado na Figura a seguir, pode ser descrito em LTR(linguagem de transfereˆncia entre registradores): Leonard B. Moreira (-) Processadores 59 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Iniciar RI ←− (CI) Buscar a instruc¸a˜o, cujo enderec¸o esta´ no CI (CI) ←− (CI) + 1 Conteu´do de CI e´ incrementado para o en- derec¸o da pro´xima instruc¸a˜o Interpretar o C.Op O decodificador recebe os bits do C.Op. e gera uma sa´ıda Buscar Op.(se houver) Executar a instruc¸a˜o Escrever resultado Retornar Leonard B. Moreira (-) Processadores 60 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Notac¸a˜o * (RI) ou (CI) entre pareˆnteses indica conteu´do do enderec¸o (de RI ou CI) * RI ou CI sem pareˆnteses indica valor (de RI ou CI); Leonard B. Moreira (-) Processadores 61 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Vamos considerar a execuc¸a˜o de duas das instruc¸o˜es definidas: LDA Op e ADD Op. E tambe´m alguns valores iniciais existentes ao iniciar a execuc¸a˜o do primeiro ciclo de instruc¸a˜o da instruc¸a˜o LDA. Leonard B. Moreira (-) Processadores 62 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Figura 15 : Dados iniciais para execuc¸a˜o do ciclo das instruc¸o˜es LDA e ADD Leonard B. Moreira (-) Processadores 63 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Dados iniciais para execuc¸a˜o do ciclo das instruc¸o˜es LDA e ADD: a) A instruc¸a˜o LDA esta´ armazenada na MP em 0216. Sua descric¸a˜o e´ 1B416 ou 0001101101002. Segundo o formato de instruc¸a˜o temos: 0001 10110100 C.Op. Op. b) O valor do dado armazenado na ce´lula de enderec¸o B4 e´ igual a 1A716 (valor assumido no exemplo) c) a instruc¸a˜o ADD esta´ armazenada no enderec¸o 0316 e sua descric¸a˜o e´ 3B516 (0011101101012); 0011 10110101 C.Op. Op. Leonard B. Moreira (-) Processadores 64 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Atenc¸a˜o! Os co´digos de operac¸a˜o(C.Op.) para ADD igual a 3 (00112) e LDA igual a 1(00012) esta˜o definidos na caracter´ıstica proposta para o subsistema de acordo com FIGURA Leonard B. Moreira (-) Processadores 65 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Dados iniciais para execuc¸a˜o do ciclo das instruc¸o˜es LDA e ADD: d) O valor do dado armazenado em B516 e´ 07D16 ou 12510; e) O valor armazenado no CI = 0216 e´ considerado no exemplo como tendo sido atribu´ıdo pelo SO; f) O valor armazenado no RI = 31716 (provavelmente e´ o valor da instruc¸a˜o anteriormente executada) g) O valor armazenado no registrador de dados R0 = 20B16 (tambe´m e´ um valor obtido em operac¸a˜o anterior) h) O valor armazenado no REM = B3 e no RDM = 7BC (operac¸o˜es anteriores) Leonard B. Moreira (-) Processadores 66 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Ao terminar um ciclo de uma instruc¸a˜o qualquer, a UC reinicia o processo atrave´s da execuc¸a˜o do ciclo de uma nova instruc¸a˜o; No caso, a instruc¸a˜o foi o LDA do exemplo; Leonard B. Moreira (-) Processadores 67 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Execuc¸a˜o do ciclo de instruc¸a˜o LDA Op.: 1 RI←−(CI) a) A UC aciona a transfereˆncia dos bits do CI para o REM (CI−→REM = 02) b) A UC ativa a linha READ do barramento de controle (reconhecido pelo decodificador de end. da MP) c) O dispositivo de controle da memo´ria decodifica o enderec¸o. Apo´s, transfere os bits da ce´lula de enderec¸o 02 (valor 1B4) para o barramento de dados e da´ı para o RDM. d) A seguir, o valor 1B4 e´ transferido do RDM para o RI, substituindo o valor 317 que estava armazenado Leonard B. Moreira (-) Processadores 68 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Execuc¸a˜o do ciclo de instruc¸a˜o LDA Op. (continuac¸~ao...) 2 CI←−(CI)+1 a) Resultado: CI = 03 Figura 16 : Fluxo de dados e de enderec¸os durante a realizac¸a˜o do ciclo de busca da instruc¸a˜o LDA Leonard B. Moreira (-) Processadores 69 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Execuc¸a˜o do ciclo de instruc¸a˜o LDA Op. (continuac¸~ao...) 3 Decodificac¸a˜o do Co´digo de Operac¸a˜o a) A UC emite o sinal apropriado para que o RI transfira para o decodificador de instruc¸a˜o os 4 bits que correspondem ao valor do C.Op. (Resultado: decodificador←−00012b) O decodificador seleciona a linha de sa´ıda correspondente a` UC que emitira´ os sinais adequados a` operac¸a˜o (execuc¸a˜o de); 4 Se tiver operando(s), busca´-lo(s); sena˜o, passar para o item 5; Leonard B. Moreira (-) Processadores 70 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Execuc¸a˜o do ciclo de instruc¸a˜o LDA Op. (continuac¸~ao...) 5 Execuc¸a˜o da operac¸a˜o a) A UC emite o sinal para que os bits correspondentes ao valor do campo do operando da instruc¸a˜o (B4) sejam transferidos para o REM b) UC ativa linha READ, ativando o circuito de controle da MP para decodificar o enderec¸o B4; c) Transfereˆncia o valor armazenado na ce´lula de enderec¸o B4 (valor 1A7) para o RDM - via barramento de dados; 6 Escrever o resultado a) Resultado: RDM = 1A7 No instante seguinte, a UC emite o sinal apropriado para que este valor seja transferido (co´pia) para o registrador R0; Leonard B. Moreira (-) Processadores 71 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Ao final temos os seguintes valores conforme Figura Figura 17 : Fluxo de dados e de enderec¸os durante o ciclo de execuc¸a˜o da instruc¸a˜o LDA Leonard B. Moreira (-) Processadores 72 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Importante! Os passos 1 e 2 correspondem ao ciclo de busca (fetch) e os seguintes - 3,4,5 e 6 - correspondem ao ciclo de execuc¸a˜o! Leonard B. Moreira (-) Processadores 73 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Vamos descrever o ciclo de instruc¸a˜o ADD Op (considerar que e´ a instruc¸a˜o seguinte na sequeˆncia de execuc¸a˜o) - CI = 03; RI = 1B4; R0=1A7; REM = B4; RDM = 1A7; Figura 18 : Dados iniciais para a execuc¸a˜o da instruc¸a˜o ADD Leonard B. Moreira (-) Processadores 74 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Execuc¸a˜o do ciclo de instruc¸a˜o ADD Op.: 1 RI←−(CI) a) REM←−CI = 03 b) Ativac¸a˜o da linha READ pela UC. c) RDM←−3B5 d) RI←−3B5, substituindo o valor 1B4 da instruc¸a˜o anterior. 2 (CI)←−(CI)+1 a) CI = 03 +1 = 4 Leonard B. Moreira (-) Processadores 75 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Figura 19 : Fluxo de dados e de enderec¸os durante a realizac¸a˜o do ciclo de busca da instruc¸a˜o ADD Leonard B. Moreira (-) Processadores 76 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Execuc¸a˜o do ciclo de instruc¸a˜o ADD Op. (continuac¸~ao...): 3 Decodificac¸a˜o do co´digo de operac¸a˜o a) C.Op. = 3 b) Decodificador←−(RI(C.Op.)): a definic¸a˜o da sa´ıda decodificada correspondente a` operac¸a˜o ADD e´ enviada para a UC; c) A UC emite sinais apropriados para a realizac¸a˜o dos passos 4 e 5 de acordo com sua programac¸a˜o pre´via; Leonard B. Moreira (-) Processadores 77 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Execuc¸a˜o do ciclo de instruc¸a˜o ADD Op. (continuac¸~ao...): 4 Buscar operando na MP: como instruc¸a˜o determina que o valor em R0 seja somado a um valor que esta´ na MP (end. B5), trata-se de um ciclo de memo´ria para leitura. a) A UC emite sinal de controle de modo que: REM←−Op. REM←−B5, pois Op. B5 b) O valor de B5 e´ colocado no barramento de enderec¸os (UC) e a UC ativa a linha READ c) O controle da MP dcodifica o enderec¸o B5 e, em seguida, os bits armazenados no enderec¸o B5(07D) sa˜o transferidos para o RDM. RDM←−(M(REM)) RDM←−(M(B5)) RDM = 07D d) UAL←−R0(1A7), que e´ o primeiro operando R0 ←−RDM(07D) UAL←−R0(07D), que e´ o segundo operando Leonard B. Moreira (-) Processadores 78 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Execuc¸a˜o do ciclo de instruc¸a˜o ADD Op. (continuac¸~ao...): 5 Execuc¸a˜o da operac¸a˜o a) UC emite sinal que aciona a entrada dos dois valores no circuito lo´gico, que realiza a adic¸a˜o e obte´m o resultado na sa´ıda b) 1A716 + 07D16 = 22416 6 Escrever o resultado a) O resultado e´ transferido para R0, concluindo a execuc¸a˜o do subciclo de execuc¸a˜o e o ciclo completo de instruc¸a˜o Importante! A instruc¸a˜o ADD consumiu dois ciclos de memo´ria (para leitura), um para a busca da instruc¸a˜o e outro para a busca do 2o operando Leonard B. Moreira (-) Processadores 79 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Figura 20 : Fluxo de dados e de enderec¸os durante a realizac¸a˜o do ciclo de execuc¸a˜o da instruc¸a˜o ADD Leonard B. Moreira (-) Processadores 80 / 118 Funcionamento do Processador: o ciclo de instruc¸a˜o Funcionamento do Processador: o ciclo de instruc¸a˜o Atenc¸a˜o! O tempo ba´sico de excuc¸a˜o e´ praticamente o mesmo da instruc¸a˜o LDA, visto que ambas realizaram a mesma quantidade de acessos a` MP; A pequena diferenc¸a existente reside na opearc¸a˜o aritme´tica realizada pela instruc¸a˜o ADD; No entanto se a instruc¸a˜o a ser executada possu´ısse dois operandos, por exemplo: (Op.1)←−(Op.1) + (Op.2) A completa realizac¸a˜o de seu ciclo de instruc¸a˜o consumiria quatro ciclos de memo´ria(quatro acessos): 1 um ciclo de memo´ria para buscar a instruc¸a˜o e armazena´-la no RI; 2 um ciclo de memo´ria para buscar o primeiro operando (Op.); 3 um terceiro ciclo para buscar o segundo operando, e; 4 o u´ltimo ciclo para armazenar o resultado da operac¸a˜o na memo´ria, no enderec¸o indicado por Op. Leonard B. Moreira (-) Processadores 81 / 118 Modos de Enderec¸amento Suma´rio 1 Organizac¸a˜o Funcional da UCP Func¸o˜es realizadas pela UCP Func¸a˜o Processamento Func¸a˜o Controle 2 Instruc¸o˜es de ma´quina Formato das Instruc¸o˜es 3 Funcionamento do Processador: o ciclo de instruc¸a˜o 4 Modos de Enderec¸amento Modo Imediato Modo Direto Modo Indireto por Registrador Indexado Modo base mais deslocamento 5 Execuc¸a˜o de Programas 6 Refereˆncias Leonard B. Moreira (-) Processadores 82 / 118 Modos de Enderec¸amento Modos de Enderec¸amento Ate´ o momento descrevemos o formato ba´sico de instruc¸o˜es de ma´quina e o ciclo de execuc¸a˜o de cada instruc¸a˜o, concluindo que: a) o enderec¸amento de uma instruc¸a˜o e´ realizado atrave´s do valor em CI (RI←−CI); b) toda instruc¸a˜o consiste em um co´digo de operac¸a˜o para o processador executar uma operac¸a˜o sobre os dados, que podem ser nu´meros, caracter ou um enderec¸o. c) a localizac¸a˜o do dado pode estar explicitamente indicada no campo de operando (ou implicitamente quando possui somente um registrador - ACC) Ate´ aqui o campo de operando continja o enderec¸o da MP onde esta´ localizado o referido dado da instruc¸a˜o; Esta na˜o e´ a u´nica maneira de indicar a localizac¸a˜o de um dado, havendo outros modos de enderec¸amento! Leonard B. Moreira (-) Processadores 83 / 118 Modos de Enderec¸amento Modos de Enderec¸amento Dentre os diversos modeos de enderec¸amento desenvolvido para processadores, os principais sa˜o: imediato direto indireto por registrador indexado base mais deslocamento Os diversos modos existem para atender a`s necessidades os diferentes requisitos dos programas (caracter´ısticas da CISC); Leonard B. Moreira (-) Processadores 84 / 118 Modos de Enderec¸amento Modo Imediato Modo Imediato O valor do dado e´ indicado no pro´prio campo do operando Me´todo simples e ra´pido - curto tempo de execuc¸a˜o da instruc¸a˜o pois na˜o gasta ciclo de memo´ria (exceto o requeridopara sua busca) Assim, o dado e´ transferido da MP juntamente com a instruc¸a˜o Este modo e´ u´til: - para inicializac¸a˜o de contadores - na operac¸a˜o com constantes matema´ticas - para armazenamento de ponteiros em registradores do processador - indicac¸a˜o da quantidade de posic¸o˜es em que um determinado nu´mero sera´ deslocado; Leonard B. Moreira (-) Processadores 85 / 118 Modos de Enderec¸amento Modo Imediato Modo Imediato C.Op. Operando (o valor do dado) 01101010 100110001101010001100001 6A16 98D46116 Instruc¸a˜o LDA Op.: R0 ←−Op. C.Op. = 6A−→LDA: Operando 98D461 e´ o pro´prio valor do dado, como por exemplo, uma constante Leonard B. Moreira (-) Processadores 86 / 118 Modos de Enderec¸amento Modo Imediato Modo Imediato Dentre as desvantagens: limitac¸a˜o do valor ma´ximo do dado a ser manipulado - limitac¸a˜o do tamanho do campo operando das instruc¸o˜es alterac¸a˜o do valor do campo operando a cada execuc¸a˜o (valores diferentes) em programas repetidamente executados; Leonard B. Moreira (-) Processadores 87 / 118 Modos de Enderec¸amento Modo Direto Modo Direto O valor contido com campo operando da instruc¸a˜o indica o enderec¸o de memo´ria onde se localiza o dado; Pode indicar tambe´m o enderec¸o da ce´lula inicial (dados armazenados em mu´ltiplas ce´lulas ou me´todo disposic¸a˜o do dado e´ big-endian) E´ tambe´m um mode simples de acesso requer apenas uma refereˆncia a` MP pore´m e´ mais lento do que o modo imediato Leonard B. Moreira (-) Processadores 88 / 118 Modos de Enderec¸amento Modo Direto Modo Direto O valor contido com campo operando da instruc¸a˜o indica o enderec¸o de memo´ria onde se localiza o dado; Pode indicar tambe´m o enderec¸o da ce´lula inicial (dados armazenados em mu´ltiplas ce´lulas ou me´todo disposic¸a˜o do dado e´ big-endian) E´ tambe´m um modo simples de acesso requer apenas uma refereˆncia a` MP para acessar o dado pore´m e´ mais lento do que o modo imediato Leonard B. Moreira (-) Processadores 89 / 118 Modos de Enderec¸amento Modo Direto Modo Direto Desvantagem: espac¸o de enderec¸amento limitado - limitac¸a˜o de memo´ria a ser usada conforme o tamanho do campo operando - Por exemplo, com tamanho de 12 bits somente pode-se acessar as ce´lulas na faixa de 0 a 4095. Leonard B. Moreira (-) Processadores 90 / 118 Modos de Enderec¸amento Modo Indireto Modo Indireto O valor do campo operando representa o enderec¸o de uma ce´lula cujo conteu´do e´ outro enderec¸o de memo´ria onde conte´m o valor do dado; - existe um duplo enderec¸amento, onde o enderec¸o intermedia´rio e´ conhecido como ponteiro O enderec¸o pode ser referenciado em n´ıveis: R0 ←−(...(Op.)...) - o enderec¸amento de n´ıvel 1 e´ o mais comum R0 ←−((Op.)) A vantagem e´ o grande espac¸o de enderec¸amento - 2n, onde n e´ o nu´mero de bits da palavra Leonard B. Moreira (-) Processadores 91 / 118 Modos de Enderec¸amento Modo Indireto Modo Indireto - A desvantagem e´ o mu´ltiplo acesso a` MP para obter um operando, portanto mais lento; Leonard B. Moreira (-) Processadores 92 / 118 Modos de Enderec¸amento por Registrador por Registrador O enderec¸o da instruc¸a˜o passa a ser o de um dos registradores, e na˜o mais de uma ce´lula de MP; Vantagens - Necessita de campo de enderec¸o muito menor - Instruc¸o˜es mais curtas - Busca de instruc¸a˜o mais ra´pida - Nenhuma busca a` memo´ria para obter operando, portanto execuc¸a˜o muito ra´pida Neste modo, maior quantidade de registradores implica melhor desempenho Leonard B. Moreira (-) Processadores 93 / 118 Modos de Enderec¸amento Indexado Indexado O enderec¸o do dado e´ a soma do valor do campo operando e de um valor armazenado em um dos registradores (registrador ı´ndice); Muito utilizados para acessos a elementos de arrays - localizac¸a˜o pode ser dada por um ponteiro, e o elemento desejado atrave´s de um deslocamento Vantagem: Rapidez na execuc¸a˜o das instruc¸o˜es de acesso aos dados (a alterac¸a˜o dos enderec¸os e´ realizada na UCP. Leonard B. Moreira (-) Processadores 94 / 118 Modos de Enderec¸amento Indexado Indexado Exemplo ADD R3, (R1+R2) Significado: - Regs(R3)←−Regs(R3)+MP(Regs(R1)+Regs(R2)) usado no acesso aos elementos de um vetor (R1=base, R2=´ındice) Leonard B. Moreira (-) Processadores 95 / 118 Modos de Enderec¸amento Indexado por Registrador Desvantagem: nu´mero limitado de registradores (espac¸o de enderec¸amento extremamente limitado) Leonard B. Moreira (-) Processadores 96 / 118 Modos de Enderec¸amento Modo base mais deslocamento Modo base mais deslocamento Enderec¸o e´ obtido atrave´s da soma dos valores encontrados nos dois campos da instruc¸a˜o: - um com um valor denominado deslocamento (displacement) - valor relativo que se desloca em relac¸a˜o a 1a instruc¸a˜o; - ..e outro com o enderec¸o do registrador (base ou segmento) Semelhante ao modo indexado, exceto pela aplicac¸a˜o e no propo´sito do me´todo - o valor a se manter fixo e´ o da (registrador)base/segmento, variando o campo deslocamento em cada instruc¸a˜o - no modo indexado o conteu´do do registrador e´ o que se altera Leonard B. Moreira (-) Processadores 97 / 118 Modos de Enderec¸amento Modo base mais deslocamento Modo base mais deslocamento Leonard B. Moreira (-) Processadores 98 / 118 Modos de Enderec¸amento Modo base mais deslocamento Modo base mais deslocamento Sobe o que realmente acontece na ma´quina, pode-se observar: - no modo indexado va´rios dados sa˜o acessados com diversos valores de registrador-´ındice e um u´nico valor no campo operando; - no modo base mais deslocamento va´rios dados sa˜o acessados com um u´nico valor de registrador-base e valores diferentes no campo deslocamento da instruc¸a˜o; Leonard B. Moreira (-) Processadores 99 / 118 Execuc¸a˜o de Programas Suma´rio 1 Organizac¸a˜o Funcional da UCP Func¸o˜es realizadas pela UCP Func¸a˜o Processamento Func¸a˜o Controle 2 Instruc¸o˜es de ma´quina Formato das Instruc¸o˜es 3 Funcionamento do Processador: o ciclo de instruc¸a˜o 4 Modos de Enderec¸amento Modo Imediato Modo Direto Modo Indireto por Registrador Indexado Modo base mais deslocamento 5 Execuc¸a˜o de Programas 6 Refereˆncias Leonard B. Moreira (-) Processadores 100 / 118 Execuc¸a˜o de Programas Execuc¸a˜o de Programas Um programa e´ escrito em uma linguagem que a ma´quina na˜o entende - Linguagem de alto n´ıvel E´ necessa´rio traduzir o programa para a linguagem bina´ria (ou linguagem de ma´quina) Leonard B. Moreira (-) Processadores 101 / 118 Execuc¸a˜o de Programas Execuc¸a˜o de Programas Ineficieˆncia de se programar em linguagem de ma´quina - pode ter milhares de instruc¸o˜es, conhecimento profundo da arquitetura, ma˜o de obra cara, etc; Para minimizar estes efeitos, foi desenvolvida a linguagem de montagem (Assembly); - intuito de representar as instruc¸o˜es atrave´s de s´ımbolos e na˜o nu´meros; Uma instruc¸a˜o ADD SALARIO e´ mais fa´cil de ser entendida e representada do que 1110 0100 1001 1001 Leonard B. Moreira (-) Processadores 102 / 118 Execuc¸a˜o de Programas Execuc¸a˜o de Programas Para usar linguagem de montagem e´ necessa´rio converter os s´ımbolos em co´digo de ma´quina Este processo de conversa˜o (ou traduc¸a˜o) e´ chamado de montagem... ... e e´ realizado por um programa chamado montador(Assembler); O montador leˆ cada instruc¸a˜o em Assembly e cria uma instruc¸a˜o equivalente em linguagem de ma´quina Leonard B. Moreira (-) Processadores 103 / 118 Execuc¸a˜o de Programas Execuc¸a˜o de Programas Ainda assim, a tarefa de programar em linguagem de montagem e´ a´rdua, tediosa e complexa; O desenvolvimento de linguagens que refletissem mais os procedimentosutilizados na soluc¸a˜o de um problema era necessa´ria - sem preocupac¸a˜o com o tipo de UCP, memo´ria onde sera´ alocado, etc.. Tais linguagens sa˜o denominadas de linguagens de alto n´ıvel ; - tambe´m conhecidas como orientada a problema; - permite que especifique as ac¸oes do computador com menos instruc¸o˜es (atrave´s de comandos); Leonard B. Moreira (-) Processadores 104 / 118 Execuc¸a˜o de Programas Execuc¸a˜o de Programas Leonard B. Moreira (-) Processadores 105 / 118 Execuc¸a˜o de Programas Gerac¸a˜o do Executa´vel Leonard B. Moreira (-) Processadores 106 / 118 Execuc¸a˜o de Programas Compilac¸a˜o Compilador traduz o programa escrito em linguagem de alto n´ıvel para linguagem de montagem Compilador executa treˆs func¸o˜es: 1 Ana´lise le´xica: decompo˜e o programa fonte em seus elementos individuais distintos (comandos, operadores, varia´veis) e verifica se esta˜o de acordo com as regras da linguagem 2 Ana´lise sinta´tica: cria as estruturas para os comandos e verifica a correc¸a˜o das estruturas (por exemplo, tem int antes de main, tem abre e fecha pareˆnteses) 3 Ana´lise semaˆntica:verifica as regras semaˆnticas esta´ticas da linguagem (por exemplo, estar atribuindo valores do tipo correto para uma varia´vel) - Ex.: Parcela1=1.5, poderia dar erro pois varia´vel Parcela1 e´ do tipo int Leonard B. Moreira (-) Processadores 107 / 118 Execuc¸a˜o de Programas Montagem Montador realiza a traduc¸a˜o de um programa em linguagem de montagem (co´digo fonte) para linguagem bina´ria (co´digo objeto) Func¸o˜es ba´sicas: 1) Substituir co´digos de operac¸o˜es simbo´licos por valores nume´ricos 2) Substituir nomes simbo´licos de enderec¸os por valores nume´ricos 3) Reservar espac¸o de memo´ria para armazenamento de instruc¸o˜es e dados 4) Converter valores de constantes para bina´rios 5) Examinar a correc¸a˜o de cada instruc¸a˜o Leonard B. Moreira (-) Processadores 108 / 118 Execuc¸a˜o de Programas Link-edic¸a˜o Link-editor ou ligador Algumas rotinas ja´ existem codificadas no sistema, por exemplo, rotinas para entrada e sa´ıda de dados, de modo que o programador na˜o precisa codifica´-las. printf(), readln(), rotinas matema´ticas como seno e cosseno. Estas rotinas sa˜o armazenadas em bibliotecas que sa˜o inclu´ıdas no co´digo objeto gerado pelo compilador. Para que o co´digo da subrotina externa seja anexada ao co´digo objeto utiliza-se o processo de ligac¸a˜o - Este processo examina todo o co´digo objeto e procura por refereˆncias externas na˜o resolvidas assinaladas pelo compilador. - Ele procura pela rotina no sistema e, se a encontra, inclui seu co´digo no co´digo objeto, caso contra´rio, gera uma mensagem de erro. Leonard B. Moreira (-) Processadores 109 / 118 Execuc¸a˜o de Programas Programas Interpretados Linguagem interpretada Realiza as treˆs fases (compilac¸a˜o, ligac¸a˜o e execuc¸a˜o) comando a comando do programa fonte. Um programa fonte e´ executado pelo programa interpretador. Leonard B. Moreira (-) Processadores 110 / 118 Execuc¸a˜o de Programas Compilac¸a˜o x Interpretac¸a˜o Erros sa˜o detectados de forma mais fa´cil na interpretac¸a˜o Utiliza-se mais memo´ria na interpretac¸a˜o porque interpretador tem que estar na memo´ria Na interpretac¸a˜o, loop tem que ser traduzido em todas as iterac¸o˜es Programas muito utilizados sa˜o traduzidos toda vez que sa˜o executados na interpretac¸a˜o Leonard B. Moreira (-) Processadores 111 / 118 Execuc¸a˜o de Programas Compilac¸a˜o x Interpretac¸a˜o Tabela 2 : Resumo do uso de recursos de computac¸a˜o durante o processo de compilac¸a˜o e de interpretac¸a˜o Recursos Compilac¸a˜o Interpretac¸a˜o Uso da memo´ria (durante a execuc¸a˜o) - Interpretador ou compilador Na˜o Sim - Co´digo-fonte Na˜o Parcial - Co´digo-executa´vel Sim Parcial - Rotinas de bibliotecas So´ as necessa´rias Todas Instruc¸o˜es de ma´quina (durante a execuc¸a˜o) - Operac¸o˜es de traduc¸a˜o Na˜o Sim - Ligac¸a˜o de bibliotecas Na˜o Sim - Programa de aplicac¸a˜o Sim Sim Leonard B. Moreira (-) Processadores 112 / 118 Execuc¸a˜o de Programas Execuc¸a˜o de programas em co´digo de ma´quina Para converter um programa Assembly em linguagem de ma´quina e podermos realizar os ciclos de instruc¸a˜o passo a passo (execuc¸a˜o do programa), vamos considerar: a) UCP/MP com mesmas caracter´ısticas anteriorimente descritas; b) as varia´veis usadas no programa sa˜o: Varia´vel Enderec¸o(Hexadecimal) Valor(Hexadecimal) Y 1F 051 Z 20 03E T 21 003 X 22 01A c) o programa esta´ armazenado na MP a partir do enderec¸o 18h, e no instante inicial vamos considerar que: I) CI=1816 II)Conteu´do de RI e R0 sa˜o da instruc¸a˜o anterior Leonard B. Moreira (-) Processadores 113 / 118 Execuc¸a˜o de Programas Execuc¸a˜o de programas em co´digo de ma´quina Tabela 3 : Programa em linguagem de montagem para solucionar a expressa˜o X=Y+Z-T ORG LDA Y ADD Z SUB T STR X JZ FIM PTR X FIM HLT Ver descric¸o˜es e C.Op. da instruc¸o˜es na Figura 14 Leonard B. Moreira (-) Processadores 114 / 118 Execuc¸a˜o de Programas Execuc¸a˜o de programas em co´digo de ma´quina Tabela 4 : Tabela contendo trecho da MP onde se encontram armazenados o programa e os dados do exemplo Enderec¸o Conteu´do 18 11F 19 320 1A 421 1B 222 1C 51E 1D B22 1E 000 1F 051 20 03E 21 003 22 01A Leonard B. Moreira (-) Processadores 115 / 118 Execuc¸a˜o de Programas Execuc¸a˜o de programas em co´digo de ma´quina Tabela 5 : Tabela contendo trecho da MP onde se encontram armazenados o programa e os dados do exemplo CI RI R0 18 XXX XXX Instruc¸a˜o 1: 19 11F 051 Instruc¸a˜o 2: 1A 320 08F Instruc¸a˜o 3: 1B 421 08C Instruc¸a˜o 4: 1C 222 08C Instruc¸a˜o 5: 1D 51E 08C Instruc¸a˜o 6: 1E B22 08C Instruc¸a˜o 7: 1F 000 08C Leonard B. Moreira (-) Processadores 116 / 118 Refereˆncias Suma´rio 1 Organizac¸a˜o Funcional da UCP Func¸o˜es realizadas pela UCP Func¸a˜o Processamento Func¸a˜o Controle 2 Instruc¸o˜es de ma´quina Formato das Instruc¸o˜es 3 Funcionamento do Processador: o ciclo de instruc¸a˜o 4 Modos de Enderec¸amento Modo Imediato Modo Direto Modo Indireto por Registrador Indexado Modo base mais deslocamento 5 Execuc¸a˜o de Programas 6 Refereˆncias Leonard B. Moreira (-) Processadores 117 / 118 Refereˆncias Refereˆncias TANENBAUM, Andrew .S. Organizac¸a˜o estruturada de computadores. 3a ed. Sa˜o Paulo: Pearson Prentice Hall, 2005. MONTEIRO, M. Introduc¸a˜o a Organizac¸a˜o de Computadores. 5a ed. Rio de Janeiro: LTC, 2007. Leonard B. Moreira (-) Processadores 118 / 118 Organização Funcional da UCP Instruções de máquina Funcionamento do Processador: o ciclo de instrução Modos de Endereçamento Modo Imediato Modo Direto Modo Indireto por Registrador Indexado Modo base mais deslocamento Execução de Programas Referências
Compartilhar