William Stallings Organização de computadores digitais Capítulo 14 Operação da Unidade de Controle Microoperações o A execução de um programa em um computador se faz através: o do ciclo de Busca e Execução. o Cada ciclo é composto de diversos passos: o chamados microoperações. o Cada passo faz uma pequena porção do trabalho: o operação Atômica da CPU. OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Elementos Constituintes da execução de um programa OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Ciclo de busca - 4 Registradores Ocorre no início de cada ciclo de instrução, fazendo com que a instrução seja obtida da memória. Envolve 4 registradores: o Memory Address Register (MAR) o Conectado ao barramento de endereços o Especifica o endereço para operações de leitura e escrita o Memory Buffer Register (MBR) o Conectado ao barramento de dados o Armazena temporariamente os dados para escrita ou o último dado lido o Program Counter (PC) o Armazena o endereço da próxima instrução a ser lida o Instruction Register (IR) o Armazena o última instrução lida OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Sinais de controle OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Ciclo de busca o O endereço da próxima instrução está no PC o O endereço (MAR) é colocado no barramento de endereços o A unidade de controle fornece o comando READ o Como conseqüência o dado da memória aparece no barramento de dados o O dado do barramento de dados é copiado no MBR o Incrementa-se o PC de 1 (em paralelo com o ciclo de busca de dados na memória) o Move-se o dado (instrução) do MBR para o IR o O MBR está agora livre para buscar novos dados OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Seqüência de busca (fetch sequence) - esquema Temporização Sinais de controle ativos o t1: MAR <- (PC) C2 o t2: MBR <- (memory) C5, Cr PC <- (PC) +1 o t3: IR <- (MBR) C4 t = unidade de tempo (ciclo de clock) ou o t1: MAR <- (PC) C2 o t2: MBR <- (memory) Cr o t3: PC <- (PC) +1 C5, C4 IR <- (MBR) Cr – sinal de controle de leitura para o barramento Cw – sinal de controle de escrita para o barramento OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Sinais de controle OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Regras para o agrupamento de ciclos de Clock o A seqüência correta deve ser seguida o MAR <- (PC) deve preceder MBR <- (memory) o Conflitos devem ser evitados o Não se deve fazer a leitura e a escrita ao mesmo tempo o MBR <- (memory) & IR <- (MBR) não podem estar no mesmo ciclo o Além disso: PC <- (PC) +1 envolve uma adição o Utilizará a ALU? o Neste caso necessitará microoperações adicionais OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Ciclo Indireto Uma vez que a instrução tenha sido buscada, o próximo passo é buscar os operandos. Se a instrução pede um endereço indireto, é necessário um ciclo indireto. Temporização Sinais de controle ativos o t1: MAR <- (IRaddress) - campo de endereço do IR, o t2: MBR <- (memory) – obtêm-se o endereço do operando, o t3: IRaddress <- (MBRaddress) – IR tem o endereço direto , C8 C5, Cr C4 o IR está agora no mesmo estado como se o endereçamento direto tivesse sido utilizado OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Ciclo de Interrupção Depois de completado o ciclo de execução, faz-se o teste para verificar a ocorrência de interrupção. o o o o o t1: MBR <-(PC) C1 t2: MAR <- save-address PC <- routine-address t3: memory <- (MBR) C12, Cw Isto seria o mínimo o Pode ser necessário microoperações adicionais para obter endereços o Nota: salvar o contexto é função do manipulador da rotina de interrupção, não das microoperações OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Ciclo de Execução (ADD) o O ciclo de instrução é diferente para cada instrução o e.g. ADD R1,X – adiciona o conteúdo da posição X ao Registrador 1, mantendo o resultado em R1 o t1: MAR <- (IRaddress) o t2: MBR <- (memory) o t3: R1 <- R1 + (MBR) OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Ciclo de Execução (ISZ) o ISZ X – soma e pula se zero (increment and skip if zero) o t1: MAR <- (IRaddress) o t2: MBR <- (memory) o t3: MBR <- (MBR) + 1 o t4: memory <- (MBR) if (MBR) == 0 then PC <- (PC) + 1 o Notas: o if é uma única microoperação o Microoperação feitas durante t4 OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Requisitos Funcionais o Define os elementos básicos do processador o Descreve as microoperações que o processador realiza o Determine as funções que a unidade de controle deve realizar OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Elementos básicos do processador o ALU o Registradores o Caminhos (barramentos?) internos de dados o Caminhos (barramentos?) externos de dados o Unidade de controle OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Tipos de Microoperações o Transferência de dados entre registradores o Transferência de dados dos registradores para o exterior o Transferência de dados do exterior para os registradores o Microoperações aritméticas ou lógicas OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Funções da unidade de controle o Seqüenciamento o Faz com que a CPU vá passo a passo através de uma série de microoperações o Execução o Faz com que cada microoperação seja executada o Tudo isso é feito através de sinais de controle OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Sinais de controle (1) o Relógio (clock) o Uma microinstrução (ou um conjunto de microinstruções paralelas) por ciclo de clock o Registrador de instrução o Código de operação para a instrução corrente o Determina qual microinstrução será executada OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Diagrama da unidade de controle OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Sinais de controle (2) o Flags o Estado da CPU o Resultados das operações anteriores o Do barramento de controle o Interrupções o Reconhecimento (acknowledgements) OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Sinais de controle - saída o Dentro da CPU o Causa o movimento de dados o Ativa funções específicas o Através do barramento de controle o Para a memória o Para módulos de I/O OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Exemplo de uma seqüência de sinais de controle - busca o MAR <- (PC) o A unidade de controle ativa sinais para abrir gates entre o PC e o MAR o MBR <- (memory) o Abre gates entre o MAR e o barramento de endereços o Memory read control signal (sinal de controle da leitura da memória) o Abre gates entre o barramento de dados e o MBR OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Sinais de controle OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Organização interna o Em geral um único barramento interno o Os gates controlam o movimento de dados para e do barramento o Sinais de controle controlam a transferência de dados para e do sistema de barramentos externos o São necessários registradores temporários para a operação apropriada da ALU OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto CPU com bus interno OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Hardwired Implementation (1) o Entradas da unidade de controle o Barramento de controle e sinais de flags o Cada bit tem seu significado o Registrador de instrução o Op-code geram sinais de controle diferentes para cada instrução diferente o Lógica específica para cada op-code o O decodificador produz uma única saída para cada entrada o n entradas binárias e 2n saídas OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Hardwired Implementation (2) o Relógio (clock) o Seqüência repetitiva de pulsos o Útil para medir a duração das micro-ops o Deve ser longo o suficiente para permitir a propagação dos sinais o Diferentes sinais de controle a diferentes momentos dentro do ciclo de instrução o É necessário um contador com sinais de controle distintos para t1, t2 etc. OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Problemas com o projeto Hardwired o Seqüenciamento complexo da lógica de microoperações o Dificuldade de projeto e teste o Projeto pouco flexível o Dificuldade para adicionar novas instruções OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto Leitura recomendada o Stallings capítulo 14 OCD – Organização de Computadores Digitais - 2009 Prof. Camilo Rodrigues Neto