Organização de Computadores Aula 28 Operação da Unidade de Controle Rodrigo Hausen 17 de novembro de 2011 http://cuco.pro.br/ach2034 1/44
Apresentação 1. Bases Teóricas 2. Organização de computadores... 2.6. Conjunto de Instruções 2.7. Estrutura e Função da CPU 2.8. Operação da Unidade de Controle 2.9. Controle Microprogramado Aula de hoje: Stallings (5a. Edição), Capítulo 14 2/44
Microoperações Execução de programa: sequência de ciclos de instrução (fetch-decode-execute-store) Cada ciclo tem diversos passos, as microoperações: Busca instrução: MAR PC, MBR Mem[MAR], IR MBR, PC PC+1 Decodificação instrução: depende do conteúdo do IR Cálculo endereço(s) de operando(s): MAR calcula endereço a partir do IR, etc. Busca operando(s): MBR Mem[MAR], Reg MBR, etc. Executa instrução: depende da instrução Cálculo endereço(s) de operando(s) destino, etc. Cada passo é muito simples (por isso, o micro-) Passos indivisíveis: operações atômicas da CPU 3/44
Elementos da Execução de um Programa Execução de Programa 4/44
Elementos da Execução de um Programa Execução de Programa Ciclo de Instrução 5/44
Elementos da Execução de um Programa Execução de Programa Ciclo de Instrução Ciclo de Instrução 6/44
Elementos da Execução de um Programa Execução de Programa Ciclo de Instrução Ciclo de Instrução Ciclo de Instrução 7/44
Elementos da Execução de um Programa Execução de Programa Ciclo de Instrução Ciclo de Instrução Ciclo de Instrução 8/44
Elementos da Execução de um Programa Execução de Programa Ciclo de Instrução Ciclo de Instrução Ciclo de Instrução Busca Proc.Indireção Execução Proc. Interrup. 9/44
Elementos da Execução de um Programa Execução de Programa Ciclo de Instrução Ciclo de Instrução Ciclo de Instrução Busca Proc.Indireção Execução Proc. Interrup. μop μop μop μop μop 10/44
Busca de Instrução: 4 registradores Memory Address Register (MAR) Conectado ao barramento de endereço do sistema Especifica o endereço para a operação de leitura ou escrita Memory Buffer Register (MBR) Conectado ao barramento de dados do sistema Armazena os dados recém-lidos ou a serem escritos Program Counter (PC) Armazena o endereço da próxima instrução a ser lida Instruction Register (IR) Armazena a última instrução lida 11/44
Sequência de Busca Endereço da próxima instrução está no PC Endereço (MAR) é colocado no barramento do sistema Unidade de Controle envia comando de leitura p/ mem. Resultado (dado da memória) aparece no barr. de dados Dado do barramento de dados é colocado no MBR PC incrementado de 1 (pode ser feito em paralelo com leitura de dado da memória) Dado (instrução) copiado do MBR ao IR MBR está livre para outras operações 12/44
Sequência de Busca usando RTN RTN = Register Transfer Notation = Notação de Transferência de Registrador t1: MAR PC t2: MBR Memória[MAR], PC PC +1 t3: IR MBR tx = unidade de tempo/ciclo do clock 13/44
Sequência de Busca usando RTN RTN = Register Transfer Notation = Notação de Transferência de Registrador t1: MAR PC t2: MBR Memória[MAR], PC PC +1 t3: IR MBR OU t1: MAR PC t2: MBR Memória[MAR] t3: PC PC +1, IR MBR 14/44
Regras para Agrupamento de Microoperações 1) Sequência apropriada deve ser seguida MAR PC deve preceder MBR Memória[MAR] 2) Conflitos devem ser evitados Não pode escrever e ler o mesmo registrador ao mesmo tempo ex. MBR Memória[MAR] e IR MBR não podem estar no mesmo ciclo Observe também: PC PC+1 envolve adição. Pode usar a ULA, ou pode ser feita por um circuito independente. Algumas operações da ULA podem necessitar de microoperações adicionais (p. ex. multiplicação de números em ponto flutuante) 15/44
Subciclo de Proc. End. Indireto n-1 x y y-1 z k 0 IR opcode end. indireto operando 1 end. indireto operando 2 end. indireto operando N t1: MAR IRx IRy (campo de endereço do IR) t2: MBR Memória[MAR] t3: IRx IRy MBR endereço (parte do MBR contendo end.) MBR conterá um endereço IR está agora no mesmo estado caso estivéssemos usando endereçamento direto Consequência: geralmente, campos de endereço do IR precisam ter tamanho suficiente para endereçar diretamente toda a memória principal. 16/44
Subciclo de Proc. Interrupção Executado após o subciclo execute/store. Primeiramente, verifica se ocorreu interrupção. Se ocorreu, executa as seguintes microoperações: t1: MBR PC t2: MAR End. de Salvamento, PC End. do handler t3: Memória[MAR] MBR End. de salvamento geralmente é topo da pilha (em SP). Neste caso, necessita de mais uma microop SP SP 1 Isto é o mínimo indispensável: podem ser necessárias microoperações adicionais para obter o endereço do handler N.B. salvar o resto do contexto é atribuição do handler de interrupção, não das microoperações. 17/44
Subciclo de Execução: Exemplo 1 As microoperações no subciclo de execução variam muito de instrução para instrução. 18/44
Subciclo de Execução: Exemplo 1 As microoperações no subciclo de execução variam muito de instrução para instrução. Para a instrução ADD R1, X adiciona conteúdo da po-sição de memória X ao registrador R1, resultado em R1. t1: MAR IR endereço (campo de endereço do IR) t2: MBR Memória[MAR] t3: R1 R1 + MBR (por meio da ULA) 19/44
Subciclo de Execução: Exemplo 1 As microoperações no subciclo de execução variam muito de instrução para instrução. Para a instrução ADD R1, X adiciona conteúdo da po-sição de memória X ao registrador R1, resultado em R1. t1: MAR IRx IRy (campo de endereço do IR) t2: MBR Memória[MAR] t3: R1 R1 + MBR (por meio da ULA) Note que, neste caso, não pode haver sobreposição das microoperações 20/44
Subciclo de Execução: Exemplo 1 As microoperações no subciclo de execução variam muito de instrução para instrução. Para a instrução ADD R1, X adiciona conteúdo da po-sição de memória X ao registrador R1, resultado em R1. t1: MAR IRx IRy (campo de endereço do IR) t2: MBR Memória[MAR] t3: R1 R1 + MBR (por meio da ULA) Note que, neste caso, não pode haver sobreposição das microoperações Observe que a operação de soma depende da organização interna da ULA. P. ex. em uma ULA que possui um registrador de saída R ULAout : t3: R ULAout R1 + MBR t4: R1 R ULAout 21/44
Subciclo de Execução: Exemplo 2 ISZ X Increment and Skip if Zero (incremente o conteúdo da posição de memória X e pule próxima instrução se result. da última operação foi zero) t1: MAR IR endereço t2: MBR Memória[MAR] t3: MBR MBR+1 t4: Memória[MAR] MBR, IF (MBR == 0) then PC PC + 1 Ação condicional: a UC verifica e, caso a condição seja verdadeira, executa a ação (incrementar o PC) em uma única microooperação Como MBR só está sendo lido no if e na cópia do seu valor para a memória, pode haver sobreposição. 22/44
UC: Requisitos funcionais Após decompor o ciclo de instrução em operações elementares, precisamos definir o que a Unidade de Controle deve fazer para que elas sejam seguidas. Três passos para caracterizar a UC: 1) Definir os elementos básicos do processador 2) Descrever as microoperações que o processador executa 3) Determinar as funções que a UC deve realizar para que as microoperações sejam seguidas 23/44
Passo 1: Elementos Básicos do Processador Minimamente: ULA Registradores Caminhos de dados internos Caminhos de dados externos Unidade de Controle 24/44
Passo 2: Tipos de Microoperações Pelos exemplos vistos anteriormente, é suficiente categorizar as microoperações em: 1)Transferência de dado entre registradores 2)Transferência de dado de registrador para o exterior (p. ex. barramento do sistema) 3)Transferência de dado do exterior para registrador 4)Execução de operação lógica ou aritmética, usando registradores como fonte e destino. 25/44
Passo 3: Funções da Unidade de Controle Duas tarefas básicas. Sequenciamento: Faz com que a CPU siga as microoperações passo a passo Execução Executa, efetivamente, cada microoperação Regidas e executadas por meio de sinais de controle. 26/44
Sinais de Controle Clock Uma microoperação (ou conjunto de microoperações simultâneas) por ciclo de clock. do Registrador de Instrução Opcode da instrução atual Determina quais microinstruções executar e sua ordem Flags Estado da CPU Resultados de operações anteriores do Barramento de Controle Interrupções Reconhecimento de sinais de controle originários da CPU (acknowledgments) 27/44
Modelo de uma UC Unidade de Controle Sinais de controle para componentes internos à CPU Sinais de controle do barramento do sistema Barramento de Controle Sinais de controle para barramento do sistema 28/44
Sinais de Controle Saída Dentro da CPU Causam movimento de dados Activam funções específicas Através do barramento de controle do sistema Para a memória principal Para módulos de entrada/saída 29/44
Controle de Leitura/Escrita As operações de leitura/escrita em registradores podem ser pensadas como operações de abertura e fechamento de portas (gates). Um registrador tem 2 gates, um de saída (leitura) e um de entrada (escrita). Rwrite R Rread A operação (leitura/escrita) pode ser controlada por meio de sinais nos gates. 30/44
Controle de Leitura/Escrita As operações de leitura/escrita em registradores podem ser pensadas como operações de abertura e fechamento de portas (gates). Um registrador tem 2 gates, um de saída (leitura) e um de entrada (escrita). 1 = Rwrite Rread = 0 R escrita no registrador A operação (leitura/escrita) pode ser controlada por meio de sinais nos gates. 31/44
Controle de Leitura/Escrita As operações de leitura/escrita em registradores podem ser pensadas como operações de abertura e fechamento de portas (gates). Um registrador tem 2 gates, um de saída (leitura) e um de entrada (escrita). 0 = Rwrite Rread = 1 R leitura do registrador A operação (leitura/escrita) pode ser controlada por meio de sinais nos gates. 32/44
Controle de Leitura/Escrita As operações de leitura/escrita em registradores podem ser pensadas como operações de abertura e fechamento de portas (gates). Um registrador tem 2 gates, um de saída (leitura) e um de entrada (escrita). 0 = Rwrite Rread = 0 R registrador desabilitado A operação (leitura/escrita) pode ser controlada por meio de sinais nos gates. 33/44
Organização Interna da CPU Geralmente, um único barramento interno Os gates controlam o movimento de dados de/para o barramento interno Sinais de controle controlam a transferência de dados de/para o barramento do sistema Registradores temporários para o funcionamento adequado da ULA: R ULAin e R ULAout (obs.: na figura 14.6 são os registradores Y e Z) 34/44
CPU com Barramento Interno Único Rin ULA Rout 35/44
Sequência de Sinais de Controle: Exemplo Busca de instrução: t1: MAR PC UC abre gate de leitura do PC e gate de escrita do MAR Rin ULA Rout 36/44
Sequência de Sinais de Controle: Exemplo Memory READ Busca de instrução: t1: MAR PC UC abre gate de leitura do PC e gate de escrita do MAR t2: MBR Memória[MAR] UC abre gate de leitura do MAR, gate de escrita do MBR p/ barr. do sistema e manda comando de leitura para memória Rin ULA Rout 37/44
Sequência de Sinais de Controle: Exemplo Busca de instrução: t1: MAR PC UC abre gate de leitura do PC e gate de escrita do MAR t2: MBR Memória[MAR] UC abre gate de leitura do MAR, gate de escrita do MBR p/ barr. do sistema e manda comando de leitura para memória t3: IR MBR UC abre gate de leitura do MBR p/ barr. interno e gate de escrita do IR Rin ULA Rout 38/44
UC calcula Funções Lógicas! Cada sinal de controle é função lógica dos bits do IR, das flags, e do tempo de execução atual (um número binário que depende do clock) Unidade de contador Controle Sinais de controle para componentes internos à CPU Sinais de controle do barramento do sistema Sinais de controle para barramento do sistema Barramento de Controle 39/44
Controle Hardwired Como cada sinal de controle é função lógica variáveis booleanas, podemos criar circuitos digitais combinacionais que calculem essas funções lógicas. Essa abordagem usando apenas circuitos digitais, não reprogramáveis, é chamada hardwired Entradas: bits do barramento de controle, flags, registrador de instrução, bits do gerador de temporização (um contador binário que tem como entrada o clock) Saídas: sinais binários de controle para os gates dos registradores, para a ULA, e para as linhas de controle do barramento do sistema. 40/44
Controle Hardwired: Entradas Flags e bits do barramento de controle Cada bit tem um significado Registrador de Instrução (IR) Opcode causa sinais de controle diferentes para cada instrução Lógica diferente para cada opcode Geralmente, a lógica é facilitada colocando-se um decodificador entre o IR e a UC decodificador: n bits de entrada e 2n bits de saída Clock Coloca-se um contador entre o clock e a UC (chamado gerador de temporização) 41/44
UC com Entradas Decodificadas Flags and control bus signals 42/44
Controle Hardwired: Problemas Lógica complexa de sequenciamento e de implementação das microoperações Difícil de projetar e de testar Projeto inflexível E se houver um erro de projeto? Só pode ser corrigido alterando-se o circuito! Como geralmente hoje os circuitos são integrados (sem possibilidade de alterá-los), o único jeito de corrigir um erro seria trocar o processador Dificuldade de implementar novas instruções Seria necessário trocar o processador. E se pudéssemos programar as microoperações? Yes, we can! Isso se chama controle microprogramado. 43/44
Para Casa Ler o capítulo 14 (a subseção sobre o Intel 8085 é para ser lida como cultura geral, para fixar os conceitos) Exercícios: fazer do 14.1 ao 14.5 (todos os exercícios do capítulo na 5a. edição) Fazer leitura de familiarização do cap. 15 (próxima aula) LEMBREM DE PREPARAR A FOLHA DE CONSULTA PARA A P2! Vejam as condições nos slides da aula 27. 44/44