Buscar

Aula5_2013

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

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais