Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Arquitetura e Organizac¸a˜o de Computadores Processador: Implementac¸a˜o Multiciclo do Processador MIPS Rodrigo Porf´ırio da Silva Sacchi Bacharelado em Sistemas de Informac¸a˜o Faculdade de Cieˆncias Exatas e Tecnologias Universidade Federal da Grande Dourados 11 de julho de 2013 1 / 19 Implementac¸a˜o Multiciclo do Processador MIPS Implementac¸a˜o de um u´nico ciclo: Execuc¸a˜o de cada instruc¸a˜o possui va´rios passos; Em cada passo e´ realizada uma operac¸a˜o em uma determinada unidade funcional. Implementac¸a˜o multiciclo: Execuc¸a˜o de cada instruc¸a˜o leva va´rios ciclos do clock; Cada passo da execuc¸a˜o leva um ciclo do clock. Vantagens da implementac¸a˜o multiciclo: Diferentes instruc¸o˜es podem gastar diferentes nu´meros de ciclos (diferentes CPI s); Uma mesma unidade funcional pode ser usada mais de uma vez na execuc¸a˜o de uma instruc¸a˜o, em ciclos diferentes do clock. ⇒ Reduz hardware. 2 / 19 Visa˜o Alto N´ıvel da Implementac¸a˜o Multiciclo Diferenc¸as entre a via de dados multiciclo e a via de dados de um u´nico ciclo: Uma u´nica unidade de memo´ria para instruc¸o˜es e dados; Uma u´nica ALU (na˜o ha´ dois somadores adicionais); Registradores acrescentados apo´s cada unidade funcional, para armazenar a sa´ıda da unidade para ser utilizada em algum ciclo depois (na execuc¸a˜o da mesma instruc¸a˜o). 3 / 19 Visa˜o Alto N´ıvel da Implementac¸a˜o Multiciclo U´nica ALU realiza: Operac¸a˜o de instruc¸a˜o lo´gica e aritme´tica; Incremento PC + 4 (para todas as instruc¸o˜es); Ca´lculo de enderec¸o de dado na memo´ria (para lw e sw); Ca´lculo de enderec¸o de desvio (para beq); Registradores tempora´rios acrescentados: IR (instruction register): armazena a sa´ıda da memo´ria para uma leitura de instruc¸a˜o; MDR (memory data register): armazena a sa´ıda da memo´ria para uma leitura de dado. (Realizamos leitura de instruc¸a˜o e leitura de dados em ciclos diferentes, mas usamos os valores lidos em um mesmo clock. Logo, precisa dos dois registradores separados.); Registradores A e B: armazenam valores dos registradores operandos lidos do conjunto de registradores; Registrador ALUOut: armazena sa´ıda da ALU. 4 / 19 Visa˜o Alto N´ıvel da Implementac¸a˜o Multiciclo Atualizac¸a˜o dos registradores tempora´rios: MBR, A, B e ALUOut armazenam dado que sera´ usado no ciclo seguinte. ⇒ Na˜o precisa de sinal de controle que habilita a escrita. Atualizado em cada ciclo; IR armazena instruc¸a˜o (por va´rios ciclos seguintes) ate´ o fim da execuc¸a˜o da instruc¸a˜o. ⇒ Precisa de sinal de controle que habilita a escrita. Na˜o e´ atualizado em cada ciclo. 5 / 19 Visa˜o Alto N´ıvel da Implementac¸a˜o Multiciclo Unidades funcionais sa˜o compartilhadas para diferentes usos ⇒ adicionar e expandir multiplexadores. Mesma unidade de memo´ria para instruc¸o˜es e dados; Para instruc¸a˜o, enderec¸o a ser lido e´ PC ; Para dado, enderec¸o a ser lido e´ ALUOut ⇒ Acrescenta multiplexador para selecionar enderec¸o de memo´ria a ser lido. U´nica ALU substitui ALU e dois somadores: Primeiro operando da ALU pode ser registrador A (para instruc¸a˜o lo´gica e aritme´tica, lw e sw) ou PC (para beq ou incrementar PC ). ⇒ Acrescenta multiplexador para selecionar 1o operando da ALU. Segundo operando da ALU pode ser registrador B (para instruc¸o˜es do formato R), constante 4 (para incrementar PC ), deslocamento expandido (para lw e sw) ou deslocamento expandido e shiftado (para beq). ⇒ Expande multiplexador que seleciona 2o operando da ALU, de 2 entradas para 4 entradas. 6 / 19 Visa˜o Alto N´ıvel da Implementac¸a˜o Multiciclo 7 / 19 Implementac¸a˜o Multiciclo Reduc¸a˜o do custo do hardware: Acre´scimo de 5 registradores e multiplexadores. Eliminac¸a˜o de uma unidade de memo´ria e de 2 somadores. Sinais de controle da via de dados: Sinal de habilitac¸a˜o de escrita (de 1 bit) para circuitos sequenciais IR, PC, memo´ria e conjunto de registradores (para cada um); Sinal de habilitac¸a˜o de leitura (de 1 bit) para memo´ria; Sinal de controle de 1 bit para cada multiplexador de 2 entradas; Sinal de controle de 2 bits para multiplexador de 4 entradas; Sinal de controle ALUOp (de 2 bits) para controlar operac¸a˜o da ALU. (Usa mesma unidade de controle da ALU). 8 / 19 Vida de dados com sinais de controle e UC da ALU 9 / 19 Vida de dados com sinais de controle e UC da ALU Atualizac¸a˜o de PC : Resultado da ALU durante busca da instruc¸a˜o, armazenado diretamente em PC : PC + 4 (para beq e demais instruc¸o˜es); Registrador ALUOut: resultado da ALU no ca´lculo do enderec¸o de desvio (para beq); 26 bits menos significativos de IR shifitados para esquerda de 2 bits concatenados com 4 bits mais significativos de PC + 4 (para j). Sinais de controle para atualizac¸a˜o de PC : Sinal PCWrite (de 1 bit): PC e´ atualizado incondicionalmente (para incremento PC + 4, j e beq); Sinal PCWriteCond (de 1 bit): PC e´ atualizado condicionalmente (para beq); Sinal de controle de habilitac¸a˜o de escrita em PC (de 1 bit): PCWrite OR (PCWriteCond AND Zero). 10 / 19 Implementac¸a˜o Multiciclo Completa 11 / 19 Implementac¸a˜o Multiciclo Completa Sinais de controle de 1 bit: Sinal Se Sinal = 0 Se Sinal = 1 RegDst No do registrador a ser escrito e´ rt No do registrador a ser escrito e´ rd RegWrite Nada. Escreve em registrador. ALUSrcA 1o operando da ALU e´ PC. 1o operando da ALU e´ registrador A. MemRead Nada. Leˆ da memo´ria. MemWrite Nada. Escreve na memo´ria. MemToReg Valor a ser escrito em Valor a ser escrito em registrador e´ ALUOut. registrador e´ MDR. IorD Enderec¸o a ser lido Enderec¸o a ser lido da memo´ria e´ PC. da memo´ria e´ ALUOut. IRWrite Nada. Escreve em IR. PCWrite Nada. Escreve em PC. PCWriteCond Nada. Escreve em PC se Zero = 1. 12 / 19 Implementac¸a˜o Multiciclo Completa Sinais de controle de 1 bit: Sinal Se Sinal igual Efeito ALUOp 00 ALU realiza soma. 01 ALU realiza subtrac¸a˜o. 10 ALU realiza operac¸a˜o determinada por campo funct da instruc¸a˜o. ALUSrcB 00 2o operando da ALU e´ registrador B. 01 2o operando da ALU e´ constante 4. 10 2o operando da ALU e´ deslocamento de 16 bits estendido. 11 2o operando da ALU e´ deslocamento de 16 bits estendido e shiftado. PCSource 01 Valor a ser escrito em PC e´ sa´ıda da ALU (PC + 4). 01 Valor a ser escrito em PC e´ ALUOut (enderec¸o de desvio). 10 Valor a ser escrito em PC e´ 26 bits mais baixos de IR shifitados para esquerda de 2 bits concatenados com 4 bits mais altos de PC + 4. 13 / 19 Quebrando Execuc¸a˜o da Instruc¸a˜o em Ciclos do Clock Definir o que e´ feito em cada ciclo; Objetivo: minimizar tempo do ciclo do clock; Supondo que em um ciclo do clock e´ poss´ıvel realizar: Um acesso a` memo´ria; ou Um acesso ao conjunto de registradores (2 leituras ou 1 escrita); ou Uma operac¸a˜o na ALU. Valor obtido em um ciclo que e´ necessa´rio em ciclos seguintes precisa ser armazenado. Operac¸a˜o da via de dados multiciclo: Todas as operac¸o˜es de um mesmo passo ocorrem em paralelo em um mesmo ciclo; Passos sucessivos ocorrem em sequeˆncia em ciclos diferentes. 14 / 19 Quebrando Execuc¸a˜o da Instruc¸a˜o em Ciclos do Clock Todas instruc¸o˜es possuem de 3 a 5 passos: 1 Passo de busca da instruc¸a˜o: IR = Mem[PC ] PC = PC + 4 2 Passo de decodificac¸a˜o da instruc¸a˜o e busca de registradores: A = Registrador [IR25−21] B = Registrador [IR20−16] ALUOut = PC + (estende sinal(IR15−0) << 2) 3 Passo de execuc¸a˜o ou de ca´lculo de enderec¸o ou de completamento de desvio: Para lw e sw: ALUOut = A + estende sinal(IR15−0). Para instruc¸a˜o lo´gica e aritme´tica: ALUOut = A op B. Para beq: if (A == B) PC = ALUOut. Para j: PC = PC31−28 || (IR25−0 << 2) 15 / 19 Quebrando Execuc¸a˜o da Instruc¸a˜o em Ciclos do Clock Todas instruc¸o˜es possuem de 3 a 5 passos: 4 Passo de acesso a` memo´ria ou de completamento de instruc¸a˜o lo´gica e aritme´tica: Para lw: MDR = Mem[ALUOut]. Para sw: Mem[ALUOut] = B. Para instruc¸a˜o lo´gica e aritme´tica: Registrador [IR15−11] = ALUOut. 5 Passo de completamento de leitura da memo´ria: Para lw: Registrador [IR20−16] = MDR. 16 / 19 Passos da Execuc¸a˜o das Instruc¸o˜es Passo lw e sw Instruc¸a˜o beq j lo´gica/aritme´tica 1 IR = Mem[PC ] PC = PC + 4 2 A = Registrador [IR25−21] B = Registrador [IR20−16] ALUOut = PC + (estende sinal(IR15−0) << 2) 3 ALUOut = A + ALUOut = A op B if (A == B) PC = PC31−28 estende sinal(IR15−0) PC = ALUOut || (IR25−0 << 2) 4 lw: MDR = Mem[ALUOut] Registrador [IR15−11] sw: Mem[ALUOut] = B = ALUOut 5 lw: Registrador [IR20−16] = MDR 17 / 19 Fim Fim da Apresentac¸a˜o. Obrigado – Du´vidas ??? 18 / 19 Refereˆncias I Patterson, D. A. and Hennessy, J. L. Organizac¸a˜o e Projeto de Computadores: A Interface Hardware/Software. 3a Edic¸a˜o. Rio de Janeiro, Editora Campus/Elsevier, 2005. 19 / 19
Compartilhar