Baixe o app para aproveitar ainda mais
Prévia do material em texto
Universidade Federal de Pelotas Instituto de Física e Matemática Departamento de Informática Bacharelado em Ciência da Computação Arquitetura Arquitetura e e OrganizaOrganizaçãçãoo de de Computadores Computadores IIII Aula 6 2. MIPS multiciclo: projeto do bloco de controle com microprogramação Prof. José Luís Güntzel guntzel@ufpel.edu.br www.ufpel.edu.br/~guntzel/AOC2/AOC2.html slide 6.2 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Resumo dos Passos Necessários para Cada Instrução lw: Reg[RI[20-16]] = RDM Término de uma instrução load word 33 lw: 5 sw: 4 4Número de passos lw: RDM = Mem [ULASaída] sw: Mem [ULASaída] = B Reg [RI[15-11]] = ULASaída Término de uma instrução store word ou de tipo R PC = PC[31-28] || (RI[25-0] <<2 ) Se (A == B) então PC = ULASaída ULASaída = A + extensão de sinal (RI[15-0]) ULASaída = A op B Execução, cálculo do endereço de acesso à memória, término de uma instrução branch/jump A = Reg [RI[25-21]] B = Reg [RI[20-16]] ULASaída = PC + (extensão de sinal(RI[15-0]) <<2) Decodificação da instrução & leitura dos registradores Rs e Rt & cálculo do endereço de desvio (cond.) RI = Mem[PC] PC = PC + 4 Busca da instrução Instrução de desvio incondicional Instrução de desvio condicional Instruções de referência à memória Instrução tipo RNome do passo 0 1 4 2 6 7 35 8 9 slide 6.3 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Máquina de Estados: busca e decodificação ULAFonteA = 1 ULAFonteB = 00 ULAOp = 01 PCEscCond = 1 PCEsc = 0 FontePC = 01 Término do desvio condicional 8 ULAFonteA = 1 ULAFonteB = 10 ULAOp = 00 Cálculo do endereço de acesso à memória 2 3 4 5 LerMem = 1 IouD = 1 EscMem = 1 IouD = 1 EscReg = 1 MemParaReg = 1 RegDst = 0 Acesso à memória Acesso à memória Escrita no registrador Rt Op = ‘lw’ Op = ‘sw’ ULAFonteA = 1 ULAFonteB = 00 ULAOp = 10 Execução 6 7 RegDst = 1 EscReg = 1 MemParaReg = 0 Término da instrução tipo R (escrita em Rd) PCEsc = 1 FontePC = 10 Término do desvio incondicional 9 ULAFonteA = 0 ULAFonteB = 11 ULAOp = 00 LerMem = 1 ULAFonteA = 0 IouD = 0 IREsc = 1 ULAFonteB = 01 ULAOp = 00 PCEsc = 1 FontePC = 00 Busca da instrução 0 Decodificação da instrução/ Leitura dos registradores Rs e Rt 1 início (Op = ‘lw’) OU (O p = ‘s w’) Op = t ipo R O p = ‘be q’ O p = ‘j um p ’ slide 6.4 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Sinais de Controle do Bloco Operativo Multiciclo 32 Endereço DadoMem Memória PC Dado a ser escrito M U X 0 1 Zero Resultado ULA Reg a ser lido #1 Reg a ser lido #2 Reg a ser escrito Dado de escrita Dado lido #1 Dado lido #2 Registradores Registrador de instrução Registrador de dados da memória A B ULA Saída 32 [25-21] [20-16] [15-11] M U X 0 1 [15-0] M U X 0 1 M U X 0 1 2 3 M U X 0 1 Exten- são de sinal Desl. à esq. 2 bits 4 3216 IouD LerMem EscMem IREsc Opera- ção da ULA 2 6 32 [5-0] EscReg RegDst Controle ULAOp ULAFonteA FontePCPCEscCond PCEsc MemParaReg ULAFonteB 2 Desl. à esq. 2 bits M U X 0 1 2 26 [25-0] [31-28] 26 28 4 PC+4 end. desvio cond. end. desvio incond. 2 [31-0] slide 6.5 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Projeto do Bloco de Controle com Máquina de Estados • Adequado no caso de máquinas com um número de estados moderado • É possível montar as tabelas-verdade e encontrar as equações lógicas sem introduzir erro slide 6.6 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Projeto do Bloco de Controle com Microprogramação O conjunto completo de instruções do MIPS possui cerca de 100 instruções Instruções gastam de 1 a 20 ciclos de relógio para executar Controle será bastante complexo (sobretudo se comparado ao controle projetado na aula passada) Em alguns processadores reais o conjunto de instruções apresenta muitas classes (tipicamente, arquiteturas CISC): O controle pode precisar de milhares de estados Com centenas de diferentes seqüências Pode haver um grande número de opcodes válidos slide 6.7 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Projeto do Bloco de Controle com Microprogramação Nos casos citados, é pouco prático especificar o controle de forma gráfica: Milhares de estados! Milhares de arcos! Um diagrama de estados que não cabe em uma página não é inteligível… slide 6.8 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Microprogramação Cada microinstrução define os valores dos sinais do bloco operativo para um dado estado da máquina de estados Executar uma microinstrução significa ativar os sinais de controle especificados pela microinstrução O seqüenciamento das microinstruções : Execução seqüencial é o default Um desvio precisa ser indicado explicitamente O mecanismo default normalmente é implementado por um contador (seqüenciador) slide 6.9 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Microprogramação Microprogramação: “é o projeto do controle como um programa composto de estruturas mais simples denominadas microinstruções” Idéia básica: representar simbolicamente os valores ativos das linhas de controle, de modo que o microprograma seja uma representação das microinstruções slide 6.10 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Formato de uma Microinstrução Escolher quantos campos e quais sinais de controle são afetados por cada campo Simplificar a representação (Se possível,) dificultar a escrita de microinstruções inconsistentes slide 6.11 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Sinais de Controle do Bloco Operativo Multiciclo 32 Endereço DadoMem Memória PC Dado a ser escrito M U X 0 1 Zero Resultado ULA Reg a ser lido #1 Reg a ser lido #2 Reg a ser escrito Dado de escrita Dado lido #1 Dado lido #2 Registradores Registrador de instrução Registrador de dados da memória A B ULA Saída 32 [25-21] [20-16] [15-11] M U X 0 1 [15-0] M U X 0 1 M U X 0 1 2 3 M U X 0 1 Exten- são de sinal Desl. à esq. 2 bits 4 3216 IouD LerMem EscMem IREsc Opera- ção da ULA 2 6 32 [5-0] EscReg RegDst Controle ULAOp ULAFonteA FontePCPCEscCond PCEsc MemParaReg ULAFonteB 2 Desl. à esq. 2 bits M U X 0 1 2 26 [25-0] [31-28] 26 28 4 PC+4 end. desvio cond. end. desvio incond. 2 [31-0] slide 6.12 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Formato de uma Microinstrução parao MIPS Cada Microinstrução Contém 7 Campos: Especifica como escolher a próxima microinstrução a ser executada seqüenciamento Especifica escrita no PCControle do PCEsc Especifica uma leitura ou uma escrita na memória, e a fonte. No caso de uma leitura, especifica o registrador-destino. Memória Especifica uma leitura ou uma escrita no banco de registradores, e a fonte do valor a ser escrito Controle do registrador Especifica a fonte do segundo operando da ULASRC2 Especifica a fonte do primeiro operando da ULASRC1 Especifica a operação a ser realizada na ULA neste ciclo de clock. Resultado sempre escrito em ULASaída Controle da ULA Função do CampoNome do Campo Os sinais que nunca estão ativos ao mesmo tempo devem compartilhar um mesmo campo slide 6.13 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Implementação Física As microinstruções são armazenadas em uma ROM ou uma PLA Portanto, cada microinstrução tem um endereço Os endereços são seqüenciais slide 6.14 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Implementação do Microprograma Existem 3 possibilidades para escolha da próxima microinstrução a ser executada: 1. Incrementar o endereço da microinstrução corrente (indicado por “seq”) 2. Desviar para a microinstrução que começa a execução da próxima instrução (indicada por “Busca”, corresponde ao estado 0 da versão FSM) 3. Escolher a próxima microinstrução com base na entrada do bloco de controle (indicada por “despacho”) slide 6.15 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Em geral, as operação de “despacho” são implementadas a partir de uma tabela que: contém os endereços das microinstruções-alvo é indexada pela entrada do bloco do controle pode ser implementada em uma ROM ou uma PLA Podem existir diversas tabelas de “despacho” Implementação do Microprograma slide 6.16 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Na implementação do controle microprogramado do MIPS iremos precisar de duas tabelas de “despacho”: Uma para despachar a partir do estado 1 Outra para despachar a partir do estado 2 Despacho i (onde i é o número da tabela a ser usada) Implementação do Microprograma slide 6.17 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Formato de uma Microinstrução Usa a constante 4 como entrada inferior da ULA4SRC2 Usa a saída da unidade de extensão de sinal como entrada inferior da ULA Estendido O Registrador B é a entrada inferior da ULAB Usa PC como entrada superior da ULAPCSRC1 Faz com que a ULA someSoma Faz com que a ULA subtraia (usado para implementar a comparação para os desvios condicionais) SubtraçãoControle da ULA Usa o campo “funct” da instrução para definir o controle da ULACódigofunct Usado para especificar nomes para controlar o seqüenciamento. Tais nomes devem terminar em “1” ou em “2” e são usados para despacho, usando uma tabela indexada pelos bits do opcode. Qualquer stringidentificação Nome do Campo Usa a saída da unidade de deslocamento de 2 bits como entrada inferior da ULA Estendido_desloc O Registrador A é a entrada superior da ULAA Função do campo, com valor específicoValores possíveis slide 6.18 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Formato de uma Microinstrução Escolhe a próxima microinstrução seqüencialmente.Seq Desvia para a primeira microinstrução para iniciar nova instruçãoBuscaSeqüenciamento Escreve a saída da ULA no PC.ULA Se o flag de zero da ULA estiver ativo, atualiza o PC com o conteúdo de ULASaída. ULASaída_CondControle do PCEsc Lê a memória usando o PC como endereço; o resultado é escrito no RI (e no RDM). Leitura a partir do PC Lê a memória usando o conteúdo de ULASaída como endereço; o resultado é escrito no no RDM. Leitura a partir da ULAMemória Escreve no banco de registradores usando o campo Rd do RI; o dado a ser escrito se encontra no registrador temporário ULASaída. Escrita a partir da ULAControle do registrador Lê dois registradores usando os campos Rs e Rt do RI, colocando seus valores nos registradores temporários A e B. Leitura Nome do Campo Despacha usando a ROM i(1 ou 2)Despacho i Atualiza o PC com o endereço de desvio incondicional. Endereço de desvio incondicional Escreve na memória usando o conteúdo de ULASaída como endereço e o conteúdo de B como dado. Escrita a partir da ULA Escreve no banco de registradores usando o campo Rt do RI; o dado a ser escrito se encontra no RDM. Escrita a partir do RDM Função do campo, com valor específicoValores possíveis slide 6.19 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Criação de um Microprograma Situações em que um campo de microinstrução fica em branco: Campo que controla uma unidade funcional ou um elemento de armazenamento: nenhum sinal de controle deve estar ativo Campo que especifica somente o controle de um multiplexador: do’t care slide 6.20 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II SeqULALeitura a partir do PC4PCSomaBusca Memória despacho1LeituraEstendido_deslocPCSoma seqüenciamento Controle de EscPC Controle dos registradores SRC2SRC1 Controle da ULA identificação Criação de um Microprograma Vai para a próxima microinstrução (seqüencial).Seqüenciamento Faz com que a saída da ULA seja escrita no PC.Controle de EscPC Busca instrução e carrega no RI.Memória Calcula PC+4 (o valor é também escrito em ULASaída, apesar de nunca ser lido deste registrador). Controle da ULA, SRC1, SRC2 EfeitoCampos Analisando os campos da primeira microinstrução… Busca da Instrução; PC+4 Decodificação; cálculo do endereço-alvo (beq) slide 6.21 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Busca da Instrução; PC+4 Decodificação; cálculo do endereço-alvo (beq) Criação de um Microprograma Usa a tabela de despacho 1 para encontrar o endereço da próxima microinstrução.Seqüenciamento Usa os campos Rs e Rt para ler os registradores, colocando os valores lidos em A e B. Controle dos registradores Armazena PC+(extensão de sinal(RI[15-0] << 2) em ULASaída. Controle da ULA, SRC1, SRC2 EfeitoCampos Analisando os campos da segunda microinstrução… SeqULALeitura a partir do PC4PCSomaBusca Memória despacho1LeituraEstendido_deslocPCSoma seqüenciamento Controle de EscPC Controle dos registradores SRC2SRC1 Controle da ULA identificação slide 6.22 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II SeqLeitura a partir da ULALW2 BuscaEscrita a partir do RDM despacho2EstendidoAAddMem1 Escrita a partir da ULA Memória BuscaSW2 seqüenciamento Controle de EscPC Controle dos registradores SRC2SRC1 Controle da ULA identificação Criação de um Microprograma Usa a tabela de despachos 2 para para desviar para a microinstrução identificada por “LW2” ou “SW2”. Seqüenciamento Calcula o endereço de acesso à memória: Registrador(Rs) + extensão de sinal( RI[15-0]). Escreve o resultado em ULASaída. Controle da ULA, SRC1,SRC2 EfeitoCampos Execução de sw/lw slide 6.23 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II SeqLeitura a partir da ULALW2 BuscaEscrita a partir do RDM despacho2EstendidoASomaMem1 Escrita a partir da ULA Memória BuscaSW2 seqüenciamento Controle de EscPC Controle dos registradores SRC2SRC1 Controle da ULA identificação Criação de um Microprograma Vai para a próxima microinstrução (seqüencial).Seqüenciamento Lê da memória usando ULASaída como endereço. Escreve o dado lido em RDM.Memória EfeitoCampos Execução de sw/lw slide 6.24 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II SeqLeitura a partir da ULALW2 BuscaEscrita a partir do RDM despacho2EstendidoASomaMem1 Escrita a partir da ULA Memória BuscaSW2 seqüenciamento Controle de EscPC Controle dos registradores SRC2SRC1 Controle da ULA identificação Criação de um Microprograma Desvia para a microinstrução identificada como “Busca”.Seqüenciamento Escreve o conteúdo do RDM na entrada do banco de registradores especificada por Rt. Controle dos registradores EfeitoCampos Execução de sw/lw slide 6.25 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Execução de sw/lw SeqLeitura a partir da ULALW2 BuscaEscrita a partir do RDM despacho2EstendidoASomaMem1 Escrita a partir da ULA Memória BuscaSW2 seqüenciamento Controle de EscPC Controle dos registradores SRC2SRC1 Controle da ULA identificação Criação de um Microprograma Desvia para a microinstrução identificada como “Busca”.Seqüenciamento Escreve na memória usando o conteúdo de ULASaída como endereço e o conteúdo de B como dado. Memória EfeitoCampos slide 6.26 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II SeqBACódigo functRformat1 Memória BuscaEscrita a partir da ULA seqüenciamento Controle de EscPC Controle dos registradores SRC2SRC1 Controle da ULA identificação Criação de um Microprograma Vai para a próxima microinstrução (seqüencial).Seqüenciamento ULA recebe como operandos os conteúdos dos registradores A e B. A operação a ser realizada é definida pelo campo “funct”. Controle da ULA, SRC1, SRC2 EfeitoCampos Execução formato R slide 6.27 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II SeqBACódigo functRformat1 Memória BuscaEscrita a partir da ULA seqüenciamento Controle de EscPC Controle dos registradores SRC2SRC1 Controle da ULA identificação Criação de um Microprograma Desvia para a microinstrução identificada como “Busca”.Seqüenciamento O Conteúdo de ULASaída é escrito no registrador cujo endereço está especificado pelo campo Rd. Controle dos registradores EfeitoCampos Execução formato R slide 6.28 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II BuscaULASAída_CondBASubtraçãoBEQ1 Memória seqüenciamento Controle de EscPC Controle dos registradores SRC2SRC1 Controle da ULA identificação Criação de um Microprograma ULA recebe como operandos os conteúdos dos registradores A e B. A operação a ser realizada é subtração. Controle da ULA, SRC1, SRC2 Desvia para a microinstrução identificada como “Busca”.Seqüenciamento Faz com que o PC seja escrito usando o valor armazenado em ULASaída, se a saída zero da ULA for verdadeira. Controle de escrita no PC EfeitoCampos Execução beq slide 6.29 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II BuscaEndereço de desvioincondicionalJUMP1 Memória seqüenciamentoControle de EscPC Controle dos registradores SRC2SRC1 Controle da ULA identificação Criação de um Microprograma Desvia para a microinstrução identificada como “Busca”.Seqüenciamento Faz com que o PC seja escrito com o valor do endereço-alvo de desvio incondicional. Controle de escrita no PC EfeitoCampos Execução jump slide 6.30 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II BuscaEndereço de desvioincondicionalJUMP1 BuscaULASAída_CondBASubtraçãoBEQ1 SeqBACódigofunctRformat1 BuscaEscrita a partirda ULA BuscaLeitura a partir da ULASW2 SeqULALer a partir do PC4PCAddBusca despacho1LeituraEstendido_deslocPCAdd SeqLeitura a partir da ULALW2 BuscaEscrita a partirdo RDM despacho2EstendidoAAddMem1 Memória seqüenciamentoControle de EscPC Controle dos registradores SRC2SRC1 Controle da ULA identificação Microprograma Completo slide 6.31 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Implementação da Microprogramação O Mapeamento de um microprograma em hardware envolve dois aspectos: A decisão sobre como implementar a função de seqüenciamento A escolha do método para armazenar as funções do controle principal O microprograma pode ser imaginado como sendo uma representação textual de uma máquina de estados, com: slide 6.32 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Implementação da Microprogramação Memória de Microcódigo Entrada (endereço) saídas Contador de microprograma Lógica de seleção De endereços + 1 OPCODE Sinais de controle (para o bloco operativo) slide 6.33 Prof. José Luís Güntzel 2. Organizações do MIPS: multiciclo ComputaçãoUFPel Arquitetura e Organização de Computadores II Lógica de Seleção de Endereços Use o estado incrementado3 Tabela de despacho 22 Tabela de despacho 11 Vá para a busca (estado 0)0 ação Valor de EndCtl EndCtl + 1 Tabela de despacho 2 Tabela de despacho 1 3 2 1 0 MUX 0 Para ROM de microprograma OPCODE Contador de microprograma
Compartilhar