Anda di halaman 1dari 65

Seo

processamento (caminho de dados)


controle
Conjunto de instrues do processador
MIPS
acesso memria (lw, sw)
lgica/aritmtica (add,sub)
desvio (beq, j)
PC
Memria de
Instrues
Banco de
Registradores
endereo
instruo
dados
Reg #
ALU
Memria de
Dados
endereo
dados
Viso refinada
novas unidades funcionais
conexes entre unidades
unidade de controle
Sinais de controle ativos nvel alto (1
lgico)
Componentes combinacionais e
seqenciais
Metodologia de temporizao sensvel
s transies
Transies positivas
nico ciclo de clock suficiente para
atender a todas as instrues maior
tempo
processador MIPS 32 bits
Componente sinais de controle
associados
Busca
Componentes
memria de instrues (MI)
program counter (PC)
somador (SO)
PC
Endereo
de leitura

Instruo
Somador
prximo
endereo
4
Memria de
Instrues
Busca
Execuo de instrues lgicas e aritmticas
2 registradores fonte
1 registrador destino
add, sub, slt, and, or
Componentes
banco de registradores (BR)
ALU
Execuo de instrues lgicas e aritmticas
Reg #1
ALU Banco de
Registradores
Reg a ser escrito
Dado #1
Dado #2
Dado de escrita
Instruo
Zero
Operao da ALU
EscReg
Resultado da
ALU
3
Reg #2
Execuo de instrues de acesso memria
lw $t1, dst ($t2)
sw $t1, dst ($t2)
modo de endereamento?
Componentes
banco de registradores (BR)
ALU
memria de dados (MD)
extenso de sinal (Ext)
Execuo de instrues acesso memria
Reg #1
ALU
Banco de
Registradores
Reg #2
Reg a ser escrito
Dado #1
Dado #2
Dado de escrita
Instruo
Zero
Operao da
ALU
EscReg
Resultado da
ALU
3
Extenso
de
sinal
16
LerMem
Dado a ser escrito
Memria de
Dados
Endereo
Dado lido
EscMem
Execuo de instrues de desvio
Condicional
desvio condicional beq $t1, $t2, label
2 registradores comparao
deslocamento endereo alvo de desvio
endereo alvo de desvio
PC atual (PC+4)
deslocamento de 2 bits esquerda
Componentes
banco de registradores (BR)
ALU
extenso de sinal (Ext)
somador (SO)
deslocamento de 2 bits (D2)
Execuo de instrues desvio condicional
Reg #1
ALU
Banco de
Registradores
Reg #2
Dado #1
Dado #2
Dado de escrita
Zero
Operao da ALU
EscReg
3
16
Somador
Soma
Desl.
2 bits
Endereo alvo do desvio
condicional
Para lgica de controle do
desvio condicional
PC + 4
(vindo da busca)
32
Extenso
de sinal
Instruo
Execuo de instrues de desvio
Incondicional
desvio incondicional j label
modo de endereamento ?
endereo alvo de desvio
PC atual (PC+4), 4 bits mais
significativos
28 bits menos significativos
(26 bits da instruo + 2 bits de deslocamento)
Componentes
deslocamento de 2 bits (D2)
Endereo
Memria de
Instrues
Instruo
[31-0]
PC
4
Somador

PC + 4
Desl.
2 bits
Inst [25-0]
26
28 32
Caminhos abordados anteriormente
Componentes de cada classe
Linhas de controle adicionais
Multiplexadores (caminhos compartilhados)

nico perodo de clock projeto
monociclo

Mostre como combinar o caminho de dados
do passo de busca com o do passo de
execuo das intrues lgicas e
aritmticas e de acesso memria. Utilize
multiplexadores e no duplique os
elementos comuns.
Instrues Lgicas e
Aritmticas e de Acesso
Memria
Memria de
Dados
Extenso
de sinal
1
M
U
X
0
0
M
U
X
1
Endereo
Dado lido
Dado escrito
Dado escrito
Banco de
Registradores
Dado #2
Dado #1 Reg #1
Reg #2
Reg escrito
ALU
Resultado
Zero
Instruo
Operao da ALU
EscReg
LerMem
EscMem
MemReg
ALUFonte

16
32
3
0
M
U
X
1
RegDest
Busca e Instrues Lgicas
e Aritmticas e de Acesso
Memria
Endereo
Memria de
Instrues
Instruo
[31-0]
PC
Extens.
sinal
1
M
U
X
0
0
M
U
X
1
Desl.
2 bits
0
M
U
X
1
4
Somador

Somador

Endereo
Dado
lido
Dado escrito
Memria de
Dados
Dado escrito
Banco de
Registradores
Dado #2
Dado #1
Reg #1
Reg #2
Reg escrito
ALU
Resultado
Zero
Operao da ALU
LerMem
EscMem
MemReg
EscReg
ALUFonte
FontePC
3
32
16
0
M
U
X
1
Controla o caminho de dados
Sinais de entrada gera sinais para
elementos de estado
seletores dos multiplexadores
sinais de controle da ALU
Controle da ALU: 3 entradas
2
3
possveis sadas
3 possibilidades
Entrada da ALU Funo
000 AND
001 OR
010 soma
110 subtrao
111 set less than

Campo de Controle ALUOp
00 soma
01 subtrao
10 campo func
ALUOp (2 bits) + campo func (6 bits)
muitas combinaes
Combinaes relevantes ao controle da ALU

ALUOp func Operao
bit 1 bit 0 F5 F4 F3 F2 F1 F0 da ALU
0 0 x x x x x x 010
x 1 x x x x x x 110
1 x x x 0 0 0 0 010
1 x x x 0 0 1 0 110
1 x x x 0 1 0 0 000
1 x x x 0 1 0 1 001
1 x x x 1 0 1 0 111
Controle do caminho de dados
dependendo do formato das instrues, a
UC responsvel por gerar os valores para
cada um dos sinais (linhas de controle)
Controle
ALUOp
bit 1
bit 0
F5
F4
F3
F2
F1
F0
RegDest
DvC
LerMem
MemParaReg
ALUOper
EscMem
ALUFonte
EscReg
Desl.
2 bits
0
M
U
X
1
Somador

ALU
Resultado

Zero
Controle
RegDest
DvC
LerMem
MemParaReg
ALUOper
EscMem
ALUFonte
EscReg
PC + 4
Desl.
2 bits
{
func
ALUOp
Tabela verdade sinais de sada da UC
Inst RegDest ALUFonte MemReg EscReg LerMem EscMem DvC ALUOp
R 1 0 1 1 0 0 0 10
lw 0 1 1 1 1 0 0 00
sw x 1 x 0 0 1 0 00
beq x 0 x 0 0 0 1 01
j x 0 x 0 0 0 0 xx
Mostre como a tabela verdade para a
funo de controle associada ao cdigo
das instrues lgicas e aritmtica, de
acesso memria e desvio condicional e
incondicional.
Endereo
Memria de
Instrues
Instruo
[31-0]
PC
0
M
U
X
1
Inst. [25-21]
Inst. [20-16]
Inst. [15-11]
Extenso
de
sinal
Inst. [15-0]
1
M
U
X
0
0
M
U
X
1
Desl.
2 bits
0
M
U
X
1
4
Somador

Somador

Endereo
Dado
lido
Dado escrito
Memria de
Dados
Dado escrito
Registradores
Dado #2
Dado #1 Reg #1
Reg #2
Reg escrito
ALU
Resultado

Zero
Controle
RegDest
DvC
LerMem
MemReg
ALUOp
EscMem
ALUFonte
EscReg
Oper
ALU
Inst. [5-0]
1
M
U
X
0
26
28
32
DvI
Desl.
2 bits

Inst. [31-26]
Classe Unidades Funcionais Usadas Tempo
Tipo R MI(2) BR(1) ALU(2) BR(1) 6s
lw MI(2) BR(1) ALU(2) MD(2) BR(1) 8s
sw MI(2) BR(1) ALU(2) MD(2) 7s
beq MI(2) BR(1) ALU(2) 5s
j MI(2) 2s

Qual o efeito de manter em 0 lgico todos os
sinais de controle dos multiplexadores no
caminho de dados completo do projeto
monociclo? Alguma instruo ainda continua
funcionando? Elabore um raciocnio
semelhante considerando agora com todos os
sinais em 1 lgico.
Considere as seguintes unidades funcionais e seus
respectivos tempos de retardo para a nossa
implementao monociclo.
MI = 2 ns ALU = 2 ns
BR = 1ns Somador (PC + 4) = X ns
MD = 2 ns Somador do desvio condicional = Y ns
Qual seria o perodo de clock caso:
X = 3 e Y = 5;
X = 5 e Y = 5; e
X = 1 e Y = 8.
Execuo de cada instruo uma srie de
passos
Cada passos operaes das unidades
funcionais
Implementao
cada passo de execuo = 1 perodo de clock
unidades funcionais utilizadas mais de uma
vez por instruo
reduz a quantidade de hardware necessrio

Vantagens
executar instrues em quantidades
diferentes de perodos de clock
compartilhamento de unidades funcionais
Viso abstrata
Endereo
Memria
Instruo
ou Dado
PC
Dado escrito
Dado escrito
Registradores
Dado #2
Dado #1
Reg #1
Reg #2
Reg escrito
ALU
IR
MDR
A
B
R
Diferenas:
uso de uma nica memria para
instrues e dados
referncia a uma nica ALU
um ou mais registradores depois de
cada unidade funcional armazena
temporariamente o resultado calculado
para ser utilizado em um ciclo de clock
subseqente

A posio no caminho de dados dos
registradores adicionais determinada por
dois fatores:
quais dados sero usados em ciclos de
clock posteriores na execuo da
instruo
quais as unidades funcionais cujo uso
ficar restrito a um nico ciclo de clock
Ciclo de clock compatvel com: acesso
memria, banco de registradores ou operao
da ALU
Dado produzido por estas unidades funcionais
deve ser armazenado em registradores (IR,
MDR, A, B, e R)
Sinal de controle de escrita de IR mantm
instruo durante toda sua execuo
Demais registradores no precisam de sinal de
controle armazenam dados somente entre
dois ciclos de clock
Compartilhamento novos
multiplexadores ou expandir os j
existentes
Memria endereo de acesso (2x1)
PC (instruo)
Registrador (dado)
ALU dois multiplexadores
Primeira entrada (2x1)
Registrador A
PC
Segunda entrada (4x1)
Registrador B
Constante 4
valor resultante da extenso de sinal
valor para o clculo do endereo alvo de
desvio condicional
Endereo
Memria
Instruo
ou Dado
PC
Dado escrito
Dado escrito
Registradores
Dado #2
Dado #1
Reg #1
Reg #2
Reg escrito
ALU
IR
MDR
A
B
R
Zero
Controle
ALU
0
1
0
1
0
1
0
1
Ext
sinal
Desl
2 bits
0
1
2
3

IouD
MemReg
ALUOp
FonteALU_A
FonteALU_B
LerMem EscMem
IREsc EscReg
RegDest
4
Suporte para desvios condicionais e
incondicionais 3 fontes para PC
ALU PC + 4 no passo de busca
R endereo alvo de desvio condicional
calculado pela ALU
(IR[25-0] << 2 bits) | (4 bits mais significativos
PC + 4) endereo alvo de desvio
incondicional
Escrita no PC
durante um incremento normal
desvios incondicionais
se instruo de desvio condicional e se a
condio for verdadeira
Controle de escrita 2 sinais
PCEsc
PCEscCond
Portas lgicas obteno do sinal de escrita
Combinando os 3 sinais
PCEsc
PCEscCond
Zero
AND
entrada (Zero . PCEscCond)
sada para porta OR (Zero. PCEscCond)
OR
entrada (sada AND + PCEsc)
sada controle de escrita do PC
Endereo
Memria
Instruo
ou Dado
PC
Dado escrito
Dado escrito
Registradores
Dado # 2
Dado # 1
Reg #1
Reg #2
Reg escrito
ALU
IR
MDR
A
B
R
Zero
Controle
ALU
0
1
0
1
0
1
Ext
sinal Desl
2 bits
0
1
2
3

IouD
MemReg
ALUOp
FonteALU_A
FonteALU_B
LerMem
EscMem
IREsc
EscReg
RegDest
PCEscCond
PCEsc
0
1
2
FontePC
Desl
2 bits
4
0
1
Sinais de Controle 1 bit
Sinal Inativo Ativo
RegDest seleciona rt seleciona rd
EscReg - Reg geral carregado com dado escrito
FonteALU_A operando o PC operando o A
LerMem - Contedo da memria colocado na sada
EscMem - carrega dado na memria
MemReg dado vem de R dado vem do MDR
IouD PC usado para fornecer endereo R usado para fornecer endereo
IREsc - Sada da memria escrita no IR
PCEsc - PC atualizado
PCEscCond - PC atualizado se sada Zero estiver ativa
Sinais de Controle 2 bits
Sinal Combinaes Significado
ALUOp 00 soma
01 subtrao
10 depende do campo func
FonteALU_B 00 operando o B
01 operando a constante 4
10 operando vem da extenso de sinal IR
11 operando vem da extenso de sinal IR + 2 bits
FontePC 00 PC + 4 enviado ao PC
01 endereo alvo de desvio produzido pela ALU (DvC)
10 endereo alvo de desvio enviado ao PC (DvI)
Definida por: sinais de controle e seus valores
Melhora no desempenho diferentes
quantidades de ciclos de clock por instruo
Ciclo de clock operao da ALU, acesso
memria ou ao banco de registradores
Tamanho do ciclo = maior tempo de retardo
Cada instruo 3 a 5 passos de execuo
Busca, decodificao, execuo, resultado
IR = Memria[PC];
PC = PC + 4;
Sinais envolvidos
LerMem 1 FonteALU_B 01
IREsc 1 ALUOp 00
I ou D 0 PCEsc 1
FonteALU_A 0 FontePC 00

Acesso ao registrador, se necessrio
Somente aes aplicveis a todas as classes
de instrues
a) Tipo R
A = Reg [IR[25-21]];
B = Reg [IR[20-16]];
b) Desvio condicional
R = PC + extenso de sinal (IR[15-0] << 2);
Sinais envolvidos
Fonte ALU_A 0 (PC)
FonteALU_B 11 (extenso de sinal deslocada)
ALUOp 00 (soma)

Aps este ciclo de clock a ao a ser
realizada depende do contedo da instruo
(decodificao).
Clculo do endereo de acesso memria
Efetivao do desvio incondicional
Operao do caminho de dados
classe de instruo
ALU opera sobre os dados preparados no
passo 2
Funo depende da classe de instrues
Acesso memria
R = A + extenso de sinal (IR[15-0]);

Sinais envolvidos
FonteALU_A 1
FonteALU_B 10 (seleciona extenso de sinal)
ALUOp 00 (soma)
Tipo R
R = A op B;

Sinais envolvidos
FonteALU_A 1
FonteALU_B 00 (seleciona B)
ALUOp 10 (campo func operao)
Desvio Condicional
Se (A = = B) PC R;

Sinais envolvidos
FonteALU_A 1
FonteALU_B 00 (seleciona B)
ALUOp 01 (subtrao)
PCEscCond 1
FontePC 01 ( PC R)
Desvio Incondicional
PC PC (IR[31-28] | (IR[25-0] << 2);

Sinais envolvidos
PCEsc 1
FontePC 10
Acesso memria
lw sw
MDR = Memria[R]; Memria[R] = B;

Sinais envolvidos
LerMem 1 EscMem 1
IouD 1 IouD 1
Tipo R
Reg [IR[15-11]] = R;

Sinais envolvidos
EscReg 1
RegDest 1
MemReg 1
Leitura da Memria (lw)
Reg [IR[20-16]] = MDR;

Sinais envolvidos
EscReg 1
RegDest 0
MemReg 1
Define
srie de estados
regras de transio entre estados
funo prximo estado
Projeto multiciclo
cada estado corresponde a um dos
passos de execuo
2 primeiros estados iguais para todas
as instrues
Mquina de estados finitos
LerMem 1
IouD 0 IREsc 1
FonteALU_A 0
FonteALU_B 01
ALUOp 00 PCESc 1
FontePC 00



Estado 0
Estado 1
Busca
Decodificao
lw/sw
Tipo R
Desvio
condicional
Desvio
incondicional
FonteALU_A 0
FonteALU_B 11
ALUOp 00

Vem do Estado 1
Op = lw
Op = sw
FonteALU_A 1
FonteALU_B 10
ALUOp 00

EscMem 1
IouD 1
LerMem 1
IouD 1
EscReg 1
RegDest 0
MemReg 1
Estado 2
Estado 3
Estado 4
Estado 5
Retorna ao Estado 0
Vem do Estado 1
Estado 6
Estado 7
Retorna ao Estado 0
FonteALU_A 1
FonteALU_B 00
ALUOp 10

RegDest 1
EscReg 1
MemReg 0
Vem do Estado 1
Condicional
Incondicional
PCEsc 1
FontePC 10
Estado 8 Estado 9
Retorna ao Estado 0
Vem do Estado 1
FonteALU_A 1
FonteALU_B 00
ALUOp 01
PCEscCond 1
FontePc 01

1.Mostre como a mquina de estados finitos
completa combinando todos os passos de
execuo de todas as classes de instrues
abordadas.

2. Acrescente ao caminho de dados multiciclo a
instruo addi. Verifique a necessidade de
algum componente de hardware adicional e
sinais de controle. Mostre as modificaes
necessrias na mquina de estados finitos.
3. Considere o mesmo enunciado da questo
anterior e acrescente a instruo jal (jump and
link) ao projeto multiciclo.

4. Mostre como a instruo jr (jump register)
pode ser implementada simplesmente com
algumas modificaes na mquina de estados
finitos completa (lembre-se que $zero = 0 e est
mapeado no registrador $0).