28/9/2010 Operação da Unidade de Controle Arquitetura de Computadores Unidade de Controle – Funcionamento e Implementação Unidade de controle: parte do processador responsável por comandar a execução de instruções Realiza as operações de execução através de sinais de controle: ◦ Sinais externos ao processador para comandar a transferência de dados entre o processador e a memória ou módulos de E/S Prof. Marcos Quinet Universidade Federal Fluminense – P.U.R.O. ◦ Sinais internos ao processador para mover dados entre registradores, comandar a ULA na execução de uma determinada função e controle de outras operações internas 2 Entradas para a Unidade de Controle Elementos da execução de um programa A execução de uma instrução envolve uma sequência de subpassos, denominados ciclos (geralmente, busca, indireto, execução e interrupção) Cada ciclo é composto de uma sequência de uma ou mais operações fundamentais, denominadas microoperações Microoperações são operações bastante simples, por exemplo, transferência de dados entre registradores, transferência de dados entre um registrador e um barramento ou uma operação simples da ULA 3 4 1 28/9/2010 Microoperações Tarefas da Unidade de Controle Tarefas realizadas pela Unidade de Controle: ◦ Cuida para que o processador execute microoperações na sequência apropriada, determinada pelo programa em execução ◦ Geração dos sinais de controle que causam a execução de cada microoperação Sinais de controle causa a abertura e fechamento de portas lógicas, resultando nas transferência de dados e operações da ULA Na discussão sobre pipeline, havíamos discutido em aumentar os benefícios desta técnica decompondo as instruções em ciclos menores Cada um destes subciclos envolve uma série de passos, chamados de microoperações Serão examinadas a seguir as microoperações que ocorrem em cada um dos ciclos de execução de um programa 5 6 Ciclo de Busca Ciclo de busca Ciclo de busca: ocorre no início de cada ciclo de instrução; quatro registradores estão envolvidos: ◦ Registrador de endereço de memória (MAR); ◦ Registrador de armazenamento temporário de dados (MBR); ◦ Contador de programa (PC); ◦ Registrador de instrução (IR). 7 No início do ciclo de busca, o endereço da próxima instrução está no PC. Ocorre a seguinte sequência de eventos: ◦ O endereço no PC é movido para o MAR (único registrador ligado as linhas de endereço do barramento de sistema); ◦ A unidade de controle gera um comando de leitura (READ) ◦ O resultado aparece no barramento de dados; ◦ O resultado é copiado do barramento de dados para o MBR; 8 2 28/9/2010 Ciclo de busca (cont.) Exemplo ◦ O contador de instruções é incrementado, ficando pronto para a próxima instrução; ◦ OBS: As ações de ler da memória e incrementar o PC podem ser feitas simultaneamente; ◦ O conteúdo do MBR é movido para o registrador de instruções, deixando a MBR livre para um possível ciclo de endereçamento indireto à memória. MAR MAR MBR MBR PC 0000000001100100 IR PC 0000000001100100 0000000001100100 IR AC AC Início Primeiro passo MAR 0000000001100100 MAR 0000000001100100 MBR 0001000000100000 MBR 0001000000100000 PC 0000000001100110 PC 0000000001100110 IR 0001000000100000 IR AC AC Segundo passo Terceiro passo 9 Ciclo de busca 10 Tempo de microoperações Um ciclo de busca consiste em três passos e quatro microoperações, que envolvem movimentação de dados de/para registradores Se as movimentações de dados não interferem umas com as outras, podem ser executadas em um mesmo passo (mesmo tn) ◦ t1: MAR ← (PC) ◦ t2: MBR ← (memória) ◦ PC ← (PC) +1 ◦ t3: IR ← (MBR) 11 t – unidade de tempo/ciclo de clock Supomos que existe um relógio que, para propósitos de temporização, emite pulsos regularmente espaçados Um pulso define uma unidade de tempo Cada microoperação é realizada dentro do intervalo de uma unidade de tempo No exemplo anterior, a terceira microoperação foi agrupada com a segunda, ou poderia ter sido agrupada com a quarta 12 3 28/9/2010 Ciclo indireto Agrupamento de microoperações Podem ocorrer, desde que respeitadas duas regras básicas: Após buscar uma instrução, são buscados os operandos fonte A sequência apropriada de eventos deve ser seguida No caso da instrução especificar um endereço indireto, um ciclo indireto deve preceder o ciclo de execução, como no exemplo a seguir: Devem ser evitados conflitos; não se deve tentar ler e escrever em um mesmo registrador em uma mesma unidade de tempo no exemplo, MAR ← (PC) deve preceder MBR ← (memória) ◦ MAR ← (IRendereço) - campo de endereço do IR ◦ MBR ← (memória) ◦ IRendereço ← (MBRendereço) No exemplo, MBR ← (memória) & IR ← (MBR) não podem ocorrer na mesma unidade de tempo E ainda, a operação PC ← (PC)+1 envolve uma adição, logo, envolve a ULA, o que pode envolver microoperações adicionais O registrador de instruções termina da mesma forma que estaria se tivesse sido utilizado o endereçamento direto 13 14 Ciclo de interrupção Ciclo de interrupção ◦ Conteúdo do PC é transferido para o MBR; Após completado o ciclo de interrupção, é feito um teste para determinar a ocorrência de alguma interrupção habilitada ◦ MAR é carregado com o endereço onde o conteúdo do PC deve ser salvo; ◦ No mesmo ciclo, o PC é carregado com o endereço de início da rotina de tratamento de interrupção; Um ciclo de interrupção pode ser exemplificado com as seguintes microoperações: ◦ É armazenado na memória o MBR, que contém o antigo valor do PC. ◦ t1: MBR ←(PC) ◦ t2: MAR ← endereço de salvamento ◦ PC ← endereço de rotina ◦ t3: memória ← (MBR) 15 Outras operações que ocorrem durante uma interrupção, como as envolvidas na troca de contexto, são feitas pelo manipulador de interrupções, não através de microoperações 16 4 28/9/2010 Ciclo de execução Ciclo de execução Diferente dos ciclos anteriores, que são simples e previsíveis, o ciclo de execução pode ser diferente para cada instrução Em uma máquina com N códigos de operação distintos, podem existir N sequências diferentes de microoperações ◦ t1: MAR ← (IRendereço) ◦ t2: MBR ← (memória) ◦ t3: R1 ← R1 + (MBR) Ex.1: ADD R1, X ◦ Soma o conteúdo da posição de memória X ao registrador R1, armazenando neste o resultado O campo de endereço contido em IR é carregado no registrador MAR; A posição de memória referenciada é lida; Os conteúdos de R1 e MBR são somados pela ULA. Podem ser necessárias microoperações adicionais para extrair de IR a especificação do registrador referenciado e armazenar E/S da ULA em registradores intermediários 17 18 Ciclo de execução Controle do processador Ex. 2: ISZ X ◦ Incrementa em 1 o conteúdo da posição de memória X e salta a próxima instrução se o resultado for zero ◦ t1: MAR ← (IRendereço) ◦ t2: MBR ← (memória) ◦ t3: MBR ← (MBR) + 1 ◦ t4: memory ← (MBR) ◦ if (MBR) == 0 then PC ← (PC) + 1 Requisitos funcionais para o projeto implementação de uma unidade de controle: e 1. Definir os elementos básicos do processador; são eles: ULA; Registradores; Caminhos de dados internos (movimentação de dados entre registradores e a ULA); Caminhos de dados externos (movimentação de dados entre registradores à memória e E/S); Unidade de controle. 19 20 5 28/9/2010 Requisitos funcionais 2. Requisitos funcionais Descrever as microoperações que o processador deve executar; estão divididas nas seguintes categorias: Tranferência de dados entre registradores; Transferência de dados de um registrador para uma interface externa; Transferência de dados de uma unidade externa para um registrador; Execução de operação lógica ou aritmética, usando registradores como E/S. Determinar as funções que a unidade de controle deve realizar para realizar a execução das microoperações. A UC realiza duas tarefas básicas: 3. Sequenciamento: a UC dirige o processador na execução de uma série de microoperações, na sequência apropriada Execução: a UC faz com microinstrução seja executada que cada A Unidade de controle opera através dos sinais de controle 21 22 Sinais de controle Sinais de controle Entradas da Unidade de Controle: ◦ Relógio: é executada uma microoperação (ou conjunto paralelizado) por ciclo de clock Entradas da Unidade de Controle (cont.): ◦ Barramento de controle: o controle de barramento do sistema envia sinais como os de interrupção e reconhecimento ◦ Registrador de instrução: armazena o código da instrução corrente, usado para determinar as microoperações a serem executadas durante o ciclo de execução ◦ Códigos de condição: usados para determinar o estado do processador e resultados de operações realizadas anteriormente 23 24 6 28/9/2010 Implementação da Unidade de Controle Sinais de controle Saídas da unidade de controle: ◦ Internos ao processador: são sinais responsáveis por duas operações: movimentação de dados entre registradores e ativação de funções específicas da ULA ◦ Para o barramento de controle: também são dois tipos de sinais de controle, para a memória e para módulos de E/S 25 Muitas técnicas disponíveis, mas pertencentes a uma das categorias ◦ Implementação por hardware; ◦ Implementação microprogramada; A implementação em hardware tem seu uso limitado devido aos seguintes fatores: ◦ Lógica de sequenciamento e microoperação muito complexa; ◦ Dificuldade em projetar e testar; ◦ Projeto inflexível; ◦ Dificuldade em adicionar novas instruções. 26 7