Вы находитесь на странице: 1из 33

CPU

Implementao Multiciclo
Prof. Carlos Bazilio
bazilio@ic.uff.br

At ento, tnhamos ...

Problemas com
Implementao Monociclo
Ciclo de clock tem o mesmo tamanho para
todas as instrues implementadas;
Este ciclo definido pela instruo de
maior durao (lw load word);
Cada unidade funcional s pode ser
usada 1 vez por ciclo;
Com isso, algumas unidades funcionais
so duplicadas, aumentando
consideravelmente o custo do hardware.

Implementao
Multiciclo
A execuo de cada instruo quebrada
em passos;
Cada passo gasta 1 ciclo de clock;
Com isso, uma unidade funcional pode ser
utilizada + de 1 vez por instruo, desde
que em diferentes ciclos.

Implementao
Multiciclo

Diferenas:
nica memria;
nica UAL;
Registradores aps unidades funcionais.

Implementao Multiciclo
Caminho de Dados

Incluses:
Registradores (IR, MDR, A, B, UALSada),
Multiplexadores (End. Memria, UAL)

Implementao Multiciclo
Linhas de Controle

Implementao Multiciclo
Caminho Completo

Trecho da Mquina
de Estados

Passos na execuo
de uma instruo (1/5)
Busca da instruo e clculo do endereo
seguinte:
IR = Memria[PC]
PC = PC + 4

Passos na execuo
de uma instruo (2/5)
Decodificao da instruo e busca do
registrador:
A = Reg[IR[25-21]]
B = Reg[IR[20-16]]
UALSada = PC + extenso_sinal(IR[15-0]
<< 2)

Passos na execuo
de uma instruo (3/5)
Execuo, clculo do endereo de
memria ou desvio condicional:
Referncia a memria:

UALSada = A + extenso_sinal(IR[15-0])
Instruo aritmtica ou lgica:

UALSada = A op B
Desvio condicional:

Se (A == B) PC = UALSada
Desvio incondicional:

PC = PC[31-28] || (IR[25-0]<<2)

Passos na execuo
de uma instruo (4/5)
Final de execuo das instrues de
escrita em memria e do tipo R:
Referncia a memria (load):

MDR = Memria [UALSada]


Referncia a memria (store):

Memria [UALSada] = B
Instrues aritmticas ou lgicas:

Reg[IR[15-11]] = UALSada

Passos na execuo
de uma instruo (5/5)
Final de execuo das instrues de
leitura memria:
Referncia a memria (load):

Reg[IR[20-16]] = MDR

Implementao do
Controle
No monociclo utilizamos um conjunto de
tabelas-verdade;
Na implementao de controle no projeto
multiciclo veremos 2 abordagens:
Mquina de estados finitos;
Microprogramao.

Controle
Mquina de Estados
Finitos (1/6)

Controle
Mquina de Estados
Finitos (2/6)

Controle
Mquina de Estados
Finitos (3/6)

Controle
Mquina de Estados
Finitos (4/6)

Controle
Mquina de Estados
Finitos (5/6)

Mquina de Estados
Finitos Completa (6/6)

Implementao do
Controle

Microprogramao
A implementao real do MIPS possui um
conjunto com cerca de 100 instrues;
Cada gasta de 1 a 20 ciclos de clock para
ser executada;
Naturalmente, a funo de controle ser
bem mais complexa, o que dificulta a sua
especificao de forma grfica;
Microprogramao o projeto de controle
como um programa que implementa
instrues de mquina em termos de
estruturas mas simples (microinstrues).

Microprogramao
Na microprogramao temos a
representao simblica dos valores das
linhas de controle;
Assim, um microprograma est para os
sinais de controle (microinstrues) assim
como a linguagem de montagem est
para as instrues de mquina.

Armazenamento
de um Microcdigo

Formato da
microinstruo
Deve seguir padres de projeto de
linguagens de programao;
Cada campo deve ser responsvel por um
conjunto de sinais que no se
sobreponham;
Do formato apresentado no livro, temos 6
campos que controlam o caminho de
dados e 1 que controla o seqenciamento
das microinstrues.

Formato da
microinstruo (1/4)
Controle da UAL (operao da UAL)
Valores:
Soma: faz com o que a UAL some
Subtrao: idem para subtrao
Cdigo de funo: usa o campo de funo da
instruo

SRC1 (entrada 1 da UAL)


Valores:
PC: PC como primeira entrada da UAL
A: A como primeira entrada da UAL

Formato da
microinstruo (2/4)
SRC2 (entrada 2 da ual)
Valores:

B: B como segunda entrada da UAL


4: B constante 4 como segunda entrada da UAL
Estendido: sada da extenso de sinal
Estendido/deslocado: sada da extenso com deslocamento
de 2 bits

Controle de Registrador (leitura/escrita)


Valores:
Leitura: atualiza A e B com campos do IR
Escrita da UAL: Escreve no banco com campo do IR (rd) e
UALSaida como dado
Escrita do MDR: Escreve no banco com campo do IR (rt) e
MDR como dado

Formato da
microinstruo (3/4)
Memria (leitura/escrita na memria)
Valores:
Leitura partir do PC: L da memria usando o PC e
escreve resultado no IR
Leitura partir do UAL: L da memria usando o UALSaida
e escreve resultado no MDR
Escrita partir da UAL: Escreve na memria usando
UALSaida como endereo e B como dado

Controle PCEsc (Escrita no PC)


Valores:
UAL: Escreve a sada da UAL no PC
UALOut-cond: Se sada Z da UAL ativa, atualiza PC com
UALSaida
End. Desvio Incondicional: Atualiza PC com endereo
incondicional da instruo

Formato da
microinstruo (4/4)
Seqenciamento (Como escolher a
prxima microinstruo)
Valores:
Seq: Escolhe a prxima microinstruo
sequencialmente
Busca: Desvia para a primeira microinstruo
Despacho i: Despacha de acordo com o tipo de
instruo (opcode)

Arquitetura Multiciclo

Microprograma
Ident

Ual

Busca

Soma
Soma
Soma

PC
PC
A

Func

Sub

Mem1
LW2
SW2
Rform1
Beq1
Jump1

Src1 Src2

Regs

4
ExtDes Leitura
Ext

Mem
PC

PcEsc Seq
Ual

Seq
Desp1
Desp2
LerUal
Seq
EscMdr
Busca
EscUal
Busca
Seq
EscUal
Busca
UalOut Busca
Incond Busca

Bibliografia
Organizao e projeto de computadores
David A. Patterson & John L. Hennessy
LTC

Вам также может понравиться