Arquitetura de Computadores - Controle Microprogramado por Helcio Wagner da Silva
Introdução Projeto baseado em HW para a Unidade de Controle Difícil Lógica relativamente complexa para seqüenciamento e execução de microoperações e interpretação dos códigos de condição Inflexível Necessário alterações no projeto para a inclusão de uma nova instrução de máquina Projeto alternativo: Unidade de Controle microprogramada 2
Microinstruções Temporização Sinais de controle ativos Ciclo t1: MAR PC C 2 t2: MBR Memória PC PC + 1 C 5, C R Busca t3: IR MBR C 4 µinstruções t2: MBR Memória C 5, C R Indireto t1: MAR IR(Endereço) C 8 t3: IR(Endereço) MBR(Endereço) C 4 t1: MBR PC C 1 t2: MAR End. Salvamento PC Endereço de Rotina Interrupção t3: Memória MBR C 12, C W 3
Microinstruções µi horizontal Endereço de µi Sinais de controle Internos ao µp Sinais de controle para o Barramento do sistema Condição de desvio incondicional zero overflow bit de indireção 4
Microinstruções µi vertical Endereço de µi Condição de desvio Códigos de função 5
Microprograma Termo usado pela primeira vez por Maurice Vincent Wilkes na década de 50 Conjunto de µis Armazenado numa memória de controle Constitui-se numa forma de implementar a Unidade de Controle 6
Memória de Controle..................... Desvie para ciclo de indireção ou de execução Desvie para ciclo de execução Desvie para ciclo de busca Desvie para a rotina do código de operação Desvie para ciclo de busca ou de interrupção Desvie para ciclo de busca ou de interrupção Desvie para ciclo de busca ou interrupção... Rotina do ciclo de busca Rotina do ciclo de indireção Rotina do ciclo de interrupção Inicio da rotina do ciclo de execução Rotina da operação AND Rotina da operação ADD Rotina da operação IOF 7
Arquitetura da Unidade de Controle Lógica de seqüenciamento 1 Registrador de Endereço de Controle (CAR) 1 2 Memória de Controle 2 Registrador de µi (CBR) 8
Arquitetura da Unidade de Controle Registrador de Instrução (IR) Bits de condição da ULA relógio Unidade de Controle Lógica de seqüenciamento Decodificador Registrador de Endereço de Controle (CAR) Leitura Memória de Controle Registrador de µi (CBR) Decodificador Sinais de controle Internos ao µp Sinais de controle para o barramento do sistema 9
Vantagens e Desvantagens Vantagem Relativa simplicidade Controle microprogramado é utilizado em máquinas CISC Desvantagem Relativa lentidão Implementação por HW é utilizada em máquinas RISC 10
Seqüenciamento de Microinstruções Na execução de um programa, o endereço da próxima µi pode ser: 1. Determinado pelo IR Ocorre sempre que a instrução é buscada 2. O próximo endereço na seqüência Ocorrência mais comum 3. Um endereço de desvio 11
Seqüenciamento de Microinstruções Com base na µi atual, nos bits de condição e no conteúdo do IR, deve ser gerado o endereço da próxima µi na Memória de Controle Técnicas utilizadas Explícitas Dois campos de endereço Um único campo de endereço Formato variável Implícitas Mapeamento Adição Controle residual 12
Dois Campos de Endereço CAR Decodificador de endereço Memória de Controle Controle... Endereço 1 Endereço 2 CBR Bits de condição Lógica de Desvio Seleção de endereço Multiplexador CAR: Registrador de Endereço de Controle CBR: Registrador de µi IR: Registrador de Instrução IR 13
Único Campo de Endereço Decodificador de endereço Memória de Controle +1 CAR... Controle Endereço CBR Bits de condição Lógica de Desvio CAR: Registrador de Endereço de Controle CBR: Registrador de µi IR: Registrador de Instrução Seleção de endereço Multiplexador IR 14
Formato Variável Decodificador de endereço Memória de Controle CAR: Registrador de Endereço de Controle CBR: Registrador de µi IR: Registrador de Instrução CBR Habilitação Campo de controle de desvio Lógica de geração de sinais de controle Campo de endereço Campo completo Multiplexador +1 CAR Bits de condição Lógica de Desvio Seleção de endereço IR 15
Mapeamento Porção correspondente ao código de operação de uma instrução de máquina é mapeada em um endereço de µi IR Op #02... Decodificador de Endereço Busca Indireção Interrupção Execução Op #01 Execução Op #02 Execução Op #03... Execução Op #04 Execução Op #N 16
Adição Combinação (ou soma) de duas porções de um endereço para formar o endereço completo Registrador de Endereço de Controle (CAR) 00 07 08 09 10 11 12 BA(4) BB(4) BC(4) BD(4) BE(4) BF(7) 17
Controle Residual Envolve o uso de um endereço de µi que tenha sido armazenado anteriormente CAR Registrador de Retorno Memória de Controle CBR Bit indicador de subrotina 18
Execução de MicroInstruções O ciclo de µi é o evento básico de um processador microprogramado Consiste de duas partes: busca & execução A porção de busca é determinada pelo endereço de µi Ao fim da execução, são gerados sinais de controle que: Abrem/fecham circuitos internos ao processador Abrem/fecham externos ao processador Ajudam a definir o endereço da próxima µi 19
Execução de Microinstruções Registrador de Instrução (IR) Bits de condição da ULA relógio Lógica de seqüenciamento Registrador de Endereço de Controle (CAR) Memória de Controle Registrador de µi (CBR) Unidade de Controle Sinais de controle Internos Lógica de controle Sinais de controle externos 20
Taxonomia de Microinstruções Classificações possíveis para as µi Verticais ou horizontais Empacotadas ou não-empacotadas Microprogramadas por HW ou por SW Codificadas diretamente ou indiretamente Sobre as classificações Dizem respeito ao formato das µi Dão uma idéia sobre as alternativas de projeto das µi 21
Taxonomia de Microinstruções Proposta original de Wilkes Cada bit da µi produzia um sinal de controle ou um bit de endereço da próxima µi K bits destinados à geração de sinais de controle apresentariam 2 K padrões de bits diferentes Nem todas as combinações possíveis podem ser utilizadas Duas origens não podem ser dirigidas para um mesmo destino Um registrador não pode ser origem e destino simultaneamente Apenas um padrão de bits pode ser apresentado à ULA ou ao barramento de sistema em cada instante 22
Taxonomia de Microinstruções C5 C12 M B R C8 C1 C3 C4 C10 AC C11 PC IR C7 C9 C0 M A R C2 C13 C6 ULA Sinais de controle relógio Unidade de Controle Códigos de condição Sinais de controle 23
Taxonomia de Microinstruções C5 C12 M B R C8 C1 C3 C4 C10 AC C11 PC IR C7 C9 C0 M A R C2 C13 C6 ULA Sinais de controle relógio Unidade de Controle Códigos de condição Sinais de controle 24
Taxonomia de Microinstruções Codificação mais compacta Todas as Q combinações permitidas. Q < 2 K Combinações codificadas usando log 2 Q bits, onde log 2 Q < K Na prática, as Unidades de Controle não são projetadas usando um formato de µi horizontal ou vertical puro Algum grau de codificação é usado para reduzir a Memória de Controle e simplificar a microprogramação 25
Extremos do Espectro de Projeto de µi Não codificada Muitos bits Visão detalhada do HW Difícil de programar Concorrência explorada completamente Pouca ou nenhuma lógica de controle Execução rápida Otimiza o desempenho CARACTERÍSTICAS Altamente codificada Poucos bits Visão agregada do HW Fácil de programar Concorrência não explorada completamente Lógica de controle complexa Execução lenta Otimiza a programação 26
Codificação Direta... Campo Campo Campo... Lógica de decodificação Lógica de decodificação Lógica de decodificação......... Sinais de controle 27
Codificação Indireta... Campo Campo Campo... Lógica de decodificação Lógica de decodificação Lógica de decodificação Lógica de decodificação...... Sinais de controle 28
Codificação Funcional e Por Recursos Codificação Funcional Identifica as funções da máquina e designa campos para cada tipo de função Um campo pode identificar qual será a origem dos dados que serão transferidos para o acumulador Codificação Por Recursos Vê a máquina como consistindo de um conjunto de recursos independentes e designa um campo para cada um deles (E/S, memória, ULA, etc) 29
Repertório de µi Verticais Transferências simples entre registradores 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 0 Seleção de registrador Operações de Memória 0 0 1 0 0 0 0 0 Leitura 0 0 1 0 0 1 0 0 Leitura MDR Registrador Registrador MDR MAR Registrador Transferências simples entre registradores 0 1 0 0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0 0 1 0 0 0 CSAR MDR decodificado CSAR Constante (no próximo Byte) Saltar µi Operações da ULA 0 1 1 0 0 0 0 1 1 0 0 1 0 1 1 0 1 0 ACC ACC + Registrador ACC ACC - Registrador ACC Registrador 0 1 1 0 1 1 Registrador ACC 0 1 1 1 0 0 Seleção de registrador ACC Registrador + 1 30
Formato de µi Horizontal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Campo 1 2 3 4 5 6 Definição de campo 1 Transferência entre registradores 2 Operação de memória 3 Operação de seqüenciamento 4 Operação da ULA 5 Seleção de registrador 6 Constante 31