Arquitetura e organização de computadores Microarquitetura – controle Aula 20 Prof. Diovani Milhorim Microarquitetura - controle Introdução O projeto do nível de microarquitetura depende: da arquitetura do conjunto das instruções a serem implementadas dos objetivos de custo e performance do computador que estiver sendo projetado A maioria das ISAs modernas, em particular os projetos RISC, tem instruções simples que podem ser executadas em um único ciclo de clock As ISAs mais complexas, como a do Pentium, precisam de mais ciclos para executar uma única instrução. Neste caso faz-se necessário metodologias de sequenciamento de instruções mais otimizados para melhorar a performance da máquina em termos de tempo. Microarquitetura - controle Temporização do caminho de dados O primeiro ciclo (explicito, do caminho de dados, apresentado na figura), pode ser visto como um conjunto de subciclos implícitos O início do primeiro subciclo é marcado pela transição negativa do clock. Microarquitetura - controle Temporização do caminho de dados As atividades, junto com sua duração (entre parênteses), que ocorrem durante os subciclos são: Os sinais de controle são ativados (dw - leia delta w) O barramento B é carregado a partir dos registradores (dx) A UAL e o deslocador operam (dy) O resultado da operação da UAL e do deslocador se propaga através do barramento C em direção aos registradores (dz) O resultado é armazenado nos registradores na transição positiva do próximo clock Microarquitetura - controle Temporização do caminho de dados É de responsabilidade dos engenheiros de projeto assegurar que essa transição positiva ocorra somente após passado o tempo dw+dx+dy+dz. Caso contrário a carga dos registradores não é realizada Microarquitetura - controle Microinstruções Para controlar um caminho de dados, precisamos de um conjunto de sinais de controle que atuam sobre os componentes do nível da lógica digital. Os valores desses sinais de controle especificam as operações a serem executadas em um ciclo do caminho de dados. A figura abaixo mostra um possível formato para agrupar os bits de controle da nossa arquitetura em 6 grupos, e 36 sinais, assim divididos: Microarquitetura - controle Microinstruções Microarquitetura - controle Microinstruções Endereço - contém o endereço da próxima instrução a ser potencialmente ativada Desvio - determina como a próxima instrução será selecionada UAL - especifica as funções da UAL e do deslocador Barramento C - seleciona qual ou quais registradores serão carregados com o valor que estiver no barramento C Memória - especifica as funções da memória (escrita, leitura ou busca) Barramento B - seleciona a entrada do barramento B. Os 4 bits são suficientes para selecionar um dos 9 registradores que disponibilizará seus dados no barramento B. Microarquitetura - controle Controle Microprogramado: o Mic-1 Para decidir quais dos sinais de controle devem ser habilitados em cada ciclo faz-se necessário a inclusão de um sequenciador em nossa arquitetura. O sequenciador: é responsável pela execução de todos os passos necessários a execução de 1 única instrução do nível ISA. produz dois tipos de informações a cada ciclo: 1. O estado de cada sinal de controle do sistema 2. O endereço da microinstrução que será executada em seguida Microarquitetura - controle A figura mostra o diagrama de blocos detalhado da microarquitetura Mic. O diagrama de blocos tem 2 partes: O caminho de dados, à esquerda e a seção de controle, à direita. Microarquitetura - controle A memória de controle: É o ítem maior e mais importante da parte de controle da máquina Não deve ser confundida com a memória principal (RAM), acessível via MBR e MDR Não precisa de sinais de leitura/escrita pois é uma memória ROM (só de leitura) Guarda microinstruções, ao invés de instruções do nível ISA Tem 512 palavras, cada palavra contendo uma instrução de 36 bits. As microinstruções não são executadas sequencialmente, como as instruções da memória principal. Cada microinstrução especifica explicitamente sua sucessora. Microarquitetura - controle A memória de controle: O endereço da próxima microinstrução é guardado no registrador MPC (Microprogram Counter) O registrador de dados da memória de controle é chamado MIR (MicroInstruction Register). Sua função é armazenar a microinstrução corrente cujos bits alimentam os sinais de controle que operam o caminho de dados. Microarquitetura - controle Microarquitetura - controle Operação do esquema mostrado na figura; No início de cada ciclo (na descida do clock da fig 4.3) o MIR é carregado com o conteúdo do endereço armazenado no MPC. O tempo de carga do MIR é dw (leia delta w) Os sinais do MIR se propagam pelo caminho de dados, causando, no tempo dx: o carregamento de 1 dos registradores no barramento B o carregamento do registrador H a determinação da função a ser executada pela UAL estabilização dos dados de entrada da UAL Microarquitetura - controle Operação do esquema mostrado na figura 4.6 A UAL e o deslocador operam os dados de entrada, durante o tempo dy: As saídas da UAL e do deslocador são propagadas, durante o tempo dz, e a saída do deslocador torna-se disponível e estável no barramento C os valores de N e Z são salvos em 1 par de flip-flops de 1 bit Microarquitetura - controle Operação do esquema mostrado na figura 4.6 Na transição positiva do sinal de clock, da figura 4.3. os registradores são carregados com o conteúdo do barramento C os flip-flops N e Z são carregados pela UAL os registradores MBR e MDR recebem resultados da memória O valor de MPC é atualizado (veja detalhes abaixo) no tempo de nível alto do clock. Volta ao passo 1 e o ciclo se repete até que alguem desligue a máquina. Microarquitetura - controle