Buscar

SPP-aula07 - Via de Dados e Controle 2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 73 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 73 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 73 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

1
Sistemas Processadores e Periféricos
Aula 6 - Revisão
Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professor
Leandro Galvão DCC/UFAM - galvao@dcc.ufam.edu.br
Prof. Frank Sill Torres
DELT – Escola de Engenharia
UFMG
 Arquitetura tipo Ciclo Único
 Cada instrução é executada em um 1 ciclo de clock
 Ciclo de clock deve ser longo o suficiente para executar a 
instrução mais longa
 Desvantagem: velocidade global limitada à velocidade da 
instrução mais lenta
Implementação de Instruções no 
Processador
Tclock
Tadd Tsrl Tdiv 2
Implementação de Instruções no 
Processador
 Arquitetura tipo Multi-ciclo
 Quebra o ciclo de execução em vários passos
 Executa cada passo em um ciclo de clock
 Vantagem: cada instrução usa apenas o número de ciclos que ela 
necessita
Tclock
Tadd Tsrl Tdiv 3
RegWrite
5
5
5
Banco de 
Registradores
Dados de 
escrita
Dados de 
leitura
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 IR
r
t
r
s
o
p
r
d
s
h
a
m
t
f
u
n
c
t
Implementação de ciclo único
:: Tipo R
Implementação de ciclo único 
:: Tipo R + Load/Store + Desvios
opALU
OrigALU
MemWrite
MemRead
MemtoRegRead
address
Instruction
16 32
Add ALUresult
Write
register
Write
data
Read
data 1
Read
data 2
Read
register 1
Read
register 2
Shift
left 2
4
4
ALU
result
Zero
ALU
Address
Write
data
Read
data
Sign
extend
Add
Banco de 
Registradores Memória de 
dados
OrigPC
PC
M
U
X
M
U
X
M
U
X
beq $t0,$t1,label
$t0 = $t1
Memória de 
instruções
M
U
X
RegWrite
RegDst
Rs
Rt
Rd
Implementação de ciclo único 
:: Unidade de controle principal
Shift
left 2
PC
Instruction
memory
Read
address
Instruction
[31– 0]
Data
memory
Read
data
Write
data
Registers
Write
register
Write
data
Read
data 1
Read
data 2
Read
register 1
Read
register 2
Instruction [15– 11]
Instruction [20– 16]
Instruction [25– 21]
Add
ALU
result
Zero
Instruction [5– 0]
MemtoReg
ALUOp
MemWrite
RegWrite
MemRead
Branch
Jump
RegDst
ALUSrc
Instruction [31– 26]
4
M
u
x
Instruction [25– 0] Jump address [31– 0]
PC+4 [31– 28]
Sign
extend
16 32Instruction [15– 0]
1
M
u
x
1
0
M
u
x
0
1
M
u
x
0
1
ALU
control
Control
Add ALUresult
M
u
x
0
1 0
ALU
Shift
left 226 28
Address
Implementação de ciclo único 
:: Unidade de controle principal
Opcode 0h 23h 2Bh 4h
Nome R Lw Sw Beq
Entrada
opcode na 
unidade de 
controle
Bit31 0 1 1 0
Bit30 0 0 0 0
Bit29 0 0 1 0
Bit28 0 0 0 1
Bit27 0 1 1 0
Bit26 0 1 1 0
Saídas da 
unidade de 
controle
RegDst 0 1 X X
ALUSrc 1 0 0 1
MemtoReg 0 1 X X
RegWrite 1 1 0 0
MemRead 0 1 0 0
MemWrite 0 0 1 0
Branch 0 0 0 1
ALUop1 1 0 0 0
ALUop0 0 0 0 1
7
Implementação de multi-ciclo
:: Inclusão de MUX e registradores
Shift
le ft 2
PC
Memory
MemDa ta
Write
da ta
M
u
x
0
1
Regis ters
Write
regis ter
Write
data
Read
da ta 1
Read
da ta 2
Read
regis ter 1
Read
regis ter 2
M
u
x
0
1
M
u
x
0
1
4
Instruction
[15– 0]
Sign
extend
3216
Ins truction
[25– 21]
Ins truction
[20– 16]
Ins truction
[15– 0]
Ins truction
regis ter
1 M
u
x
0
3
2
M
u
x
ALU
result
ALU
Zero
Memory
data
regis ter
Ins truction
[15– 11]
A
B
ALUOut
0
1
Address
M
u
x
0
2
1
8
9
Sistemas Processadores e Periféricos
Aula 7 - Via de Dados e Controle II 
(cap. 5)
Adaptado a partir dos Slides de Organização de Computadores 2006/02 do professor
Leandro Galvão DCC/UFAM - galvao@dcc.ufam.edu.br
Prof. Frank Sill Torres
DELT – Escola de Engenharia
UFMG
 As unidades de estado visíveis ao programador (PC, 
memória, banco de registradores) e IR precisarão de 
sinais de controle de escrita
 Memória precisará de um sinal de leitura
Dividindo Instruções em Estágios
:: Linhas de controle
10
Dividindo Instruções em Estágios
:: Linhas de controle
Shift 
left 2
PC
M 
u 
x
0
1
Registers
Write 
register
Write 
data
Read 
data 1
Read 
data 2
Read 
register 1
Read 
register 2
Instruction 
[15– 11]
M 
u 
x
0
1
M 
u 
x
0
1
4
Instruction 
[15– 0]
Sign 
extend
3216
Instruction 
[25– 21]
Instruction 
[20– 16]
Instruction 
[15– 0]
Instruction 
register
ALU 
control
ALU 
result
ALU
Zero
Memory 
data 
register
 
A
B
IorD
MemRead
MemWrite
MemtoReg
PCWriteCond
PCWrite
IRWrite
ALUOp
ALUSrcB
ALUSrcA
RegDst
PCSource
RegWrite
Control
Outputs
Op 
[5– 0]
Instruction 
[31-26]
Instruction [5– 0]
M 
u 
x
0
2
Jump 
address [31-0]Instruction [25–0] 26 28Shift 
left 2
PC [31-28]
1
1 M 
u 
x
0
3
2
M 
u 
x
0
1
ALUOut
Memory
MemData
Write 
data
Address
11
Dividindo Instruções em Estágios
:: Linhas de controle
Sinal de 
Controle Efeito quando inativo (zero) Efeito quando ativo (um)
RegDst O registrador de destino é indicado 
no campo Rt (bits 20:16)
O registrador de destino é indicado 
no campo Rd (bits 15:11)
RegWrite Nenhum O registrador destino é escrito com 
o valor da entrada Write data
ALUSrcA Primeiro operando da ALU é o PC Primeiro operando da ALU vem do 
registrador A
MemRead Nenhum
O conteúdo da posição de 
memória endereçada é colocado 
nas saídas
MemWrite Nenhum O conteúdo da posição de 
memória endereçada é reescrito
12
Dividindo Instruções em Estágios
:: Linhas de controle
Sinal de 
Controle Efeito quando inativo (zero) Efeito quando ativo (um)
MemtoReg O valor a escrever no registrador 
vem de ALUOut
O valor a escrever no registrador é 
lido da memória de dados
IouD
PC é usado para fornecer o 
endereço para a unidade de 
memória
ALUOut é usado para fornecer 
endereço para unidade de 
memória
IR Write Nenhum Saída da memória é escrita no IR
WritePC Nenhum PC é escrito; a origem é 
controlada por OrigPC
WritePCCond Nenhum PC é escrito se a saída Zero da 
ALU também estiver ativa
13
Dividindo Instruções em Estágios
:: Linhas de controle
Sinal de 
Controle
Valor 
(binário) Efeito
ALUOp
00 ALU realiza adição
01 ALU realiza subtração
10 Campo funct determina operação da ALU
ALUSrcB
00 Segunda entrada da ALU vem do registrador B
01 Segunda entrada da ALU é a constante 4
10
Segunda entrada da ALU são os 16 bits menos 
significativos de IR com sinal estendido
11
Segunda entrada da ALU são os 16 bits menos 
significativos de IR com sinal estendido, deslocados de 2 
bits para a esquerda
Dividindo Instruções em Estágios
:: Linhas de controle
Sinal de 
Controle
Valor 
(binário) Efeito
PCSource
00 Saída da ALU (PC + 4) é escrita em PC
01 ALUOut é escrito em PC (desvios)
10
Endereço de destino do jump, deslocado de 2 bits à 
esquerda e concatenado com os 4 bits mais significativos 
de de PC + 4 é escrito em PC
15
 Usa o registrador Program Counter (PC) para ler 
a instrução da memória e armazená-la no 
Registrador de Instrução (IR)
 Incrementa PC em 4 e coloca o resultado de volta 
em PC
 IR = *PC; // IR = valor que esta 
// armazenado no endereço 
// que o PC indica
 PC = PC + 4;
Estágio 1
Instruction Fetch (IF)
16
17
Estágio 1: IF
IR = *PC
PC = PC + 4
4PC + 4
5 5
RD1
RD2
RN1 RN2 WN
WD
RegWrite
Registers
Operation
ALU
3
ZeroRD
WD
MemRead
Memory
ADDR
MemWrite
5
Instruction I
PC
I
R
M
D
R
A
B
ALU
OUT
Carga de Instrução
Estágio 2
Instruction Decode (ID)
 Lê os campos correspondentes aos registradores rs e 
rt, independentemente do tipo de instrução
 Os valores lidos são colocados nos registradores
temporários A e B
 Computa o endereço de desvio, considerando que a 
instrução possa ser um branch
 A = Reg[IR[25-21]];
 B = Reg[IR[20-16]];
 ALUOut = PC + (sign-extend(IR[15-0]) << 2);
18
19
Branch
Target
Address
Reg[rs]
Reg[rt]
PC + 4
5 5
RD1
RD2
RN1 RN2 WN
WD
RegWrite
Registers
Operation
ALU
3
Zero
RD
WD
MemRead
Memory
ADDR
MemWrite
5
Instruction I
PC
I
R
M
D
R
A
B
ALU
OUT
Decodificação de Instrução e Carga de Registrador
Estágio 2
Instruction Decode (ID)
A = Reg[IR[25-21]]; (A = Reg[rs])
B = Reg[IR[20-15]]; (B = Reg[rt])
ALUOut = (PC + sign-extend(IR[15-0]) << 2)
20
Estágio 3
Execution (EX)
 A ALU executará uma das quatro funções abaixo, 
dependendo do tipo da instrução:
 Referência à memória (para load/store):
 ALUOut = A + sign-extend(IR[15-0]);
 Tipo R
 ALUOut = A op B;
 Branch:
 if (A==B) PC = ALUOut;
 Jump:
 PC = PC[31-28] concat (IR(25-0) << 2)
21
ALUOut = A + sign-extend(IR[15-0]);
Mem.
Address
Reg[rs]
Reg[rt]
PC + 4
5 5
RD1
RD2
RN1 RN2 WN
WD
RegWrite
Registers
Operation
ALU
3
Zero
RD
WD
MemRead
Memory
ADDR
MemWrite
5
Instruction I
PC
I
R
M
D
R
A
B
ALU
OUT
Estágio 3:EX
Instruções de acesso à memória 
22
Estágio 3: EX
Instrucões tipo R
ALUOut = A op B
R-Type
Result
Reg[rs]
Reg[rt]
PC + 4
5 5
RD1
RD2
RN1 RN2 WN
WD
RegWrite
Registers
Operation
ALU
3
Zero
RD
WD
MemRead
Memory
ADDR
MemWrite
5
Instruction I
PC
I
R
M
D
R
A
B
ALU
OUT
23
Estágio 3: EX
Branch
if (A == B) PC = ALUOut;
Branch
Target
Address
Reg[rs]
Reg[rt]
Branch
Target
Address
5 5
RD1
RD2
RN1 RN2 WN
WD
RegWrite
Registers
Operation
ALU
3
Zero
RD
WD
MemRead
Memory
ADDR
MemWrite
5
Instruction I
PC
I
R
M
D
R
A
B
ALU
OUT
24
Estágio 3: EX
Jump
PC = PC[31-28] concat (IR[25-0] << 2)
Jump
Address
Reg[rs]
Reg[rt]
Branch
Target
Address
5 5
RD1
RD2
RN1 RN2 WN
WD
RegWrite
Registers
Operation
ALU
3
Zero
RD
WD
MemRead
Memory
ADDR
MemWrite
5
Instruction I
PC
I
R
M
D
R
A
B
ALU
OUT
25
Estágio 4
Acesso à memória (MEM)
 Instruções de acesso à memória:
 Load: Dados são lidos na memória e escritos no registrador de 
dados da memória (MDR)
 MDR = Memory[ALUOut];
 Store: Dados são escritos na memória
 Memory[ALUOut] = B;
 Instruções do tipo R: 
 A saída da ALU é escrita no registrador de destino
 Reg[IR[15-11]] = ALUOut;
26
Estágio 4: MEM
Leitura de memória (lw)
MDR = Memory[ALUOut];
Mem.
Data
PC + 4
Reg[rs]
Reg[rt]
Mem.
Address
5 5
RD1
RD2
RN1 RN2 WN
WD
RegWrite
Registers
Operation
ALU
3
Zero
RD
WD
MemRead
Memory
ADDR
MemWrite
5
Instruction I
PC
I
R
M
D
R
A
B
ALU
OUT
27
Estágio 4: MEM
Escrita de memória (sw)
Memory[ALUOut] = B;
PC + 4
Reg[rs]
Reg[rt]
5 5
RD1
RD2
RN1 RN2 WN
WD
RegWrite
Registers
Operation
ALU
3
Zero
RD
WD
MemRead
Memory
ADDR
MemWrite
5
Instruction I
PC
I
R
M
D
R
A
B
ALU
OUT
28
Estágio 4: MEM
Instruções de Tipo R
Reg[IR[15:11]] = ALUOUT
R-Type
Result
Reg[rs]
Reg[rt]
PC + 4
5 5
RD1
RD2
RN1 RN2 WN
WD
RegWrite
Registers
Operation
ALU
3
Zero
RD
WD
MemRead
Memory
ADDR
MemWrite
5
Instruction I
PC
I
R
M
D
R
A
B
ALU
OUT
29
Estágio 5
Write Back (WB)
 Depende do tipo de instrução
 Load: Escrita no registrador:
 Reg[IR[20-16]]= MDR;
 Estágio final
30
Estágio 5: WB
Finalização de leitura de memória (lw)
Reg[IR[20-16]] = MDR;
PC + 4
Reg[rs]
Reg[rt]Mem.
Data
Mem.
Address
5 5
RD1
RD2
RN1 RN2 WN
WD
RegWrite
Registers
Operation
ALU
3
Zero
RD
WD
MemRead
Memory
ADDR
MemWrite
5
Instruction I
PC
I
R
M
D
R
A
B
ALU
OUT
31
Estágio Ação Tipo R Action Memória Ação Branch Ação Jump
Carga de Instrução IR = Memory[PC]
PC = PC + 4
Decodificação Instrução A = Reg [IR[25-21]]
Carga de Registrador B = Reg [IR[20-16]]
ALUOut = PC + (sign-extend (IR[15-0]) << 2)
Execução ALUOut = A op B ALUOut = A + sign-extend if (A ==B) then PC = PC [31-28] II
Computo de Endereço (IR[15-0]) PC = ALUOut (IR[25-0]<<2)
Finalização branch/jump
Acesso à memória Reg [IR[15-11]] = Load: MDR = Memory[ALUOut]
Finalização tipo R ALUOut or
Store: Memory [ALUOut] = B
Finalização Leitura Mem. Load: Reg[IR[20-16]] = MDR
(IF)
(ID)
(EX)
(MEM)
(WB)
Tipo de instrução
Resumo Multi-ciclo
32
Resumo Multi-ciclo
 Instruções MIPS levam de 3 a 5 etapas de execução
 As duas primeiras etapas (IF e ID) são comuns a todas 
instruções
 As células vazias na tabela indicam que a classe de 
instruções representada pela coluna leva menos ciclos
 No hardware multi-ciclo, esses ciclos não ficam 
ociosos, pois uma instrução é executada logo após a 
anterior
33
Implementando Controle
 Os valores dos sinais de controle são dependentes de:
 Quais funções estão sendo executadas
 Quais estágios estão ocorrendo
 Baseado nos sinais de controle especificados, duas 
abordagens podem ser usadas para gerar os sinais de 
controle:
1) Especificar um máquina de estados finitos graficamente
2) Usar microprogramação
34
Máquina de Estados Finitos (FSM)
 Finite State Machine (FSM)
 Um conjunto de estados 
 Uma função que computa o próximo estado
Determinada pelo estado atual e pela entrada
 Uma função de saída
Determinada pelo estado corrente e possivelmente 
pela entrada
 No nosso caso, usaremos uma máquina de 
Moore
A função de saída é usada somente pelo estado 
corrente
35
Máquinas de Estados Finitos (FSM)
Função para o 
próximo estadoEstado atual
Clock
Função de 
saída
Entradas
Saídas
Próximo 
estado
36
Início
Busca/decodificação da instrução e busca dos registradores
Instruções de 
acesso à memória
Instruções 
tipo R
Instruções de 
branch
Instruções de 
jump
Máquinas de Estados Finitos (FSM)
:: Visão Geral
37
Busca de instrução e decodificação são identicos para todas as 
instruções
Sinais gerados são mostrados dentro dos círculos dos estados
ALUS rcA = 0
ALUS rcB = 11
ALUOp = 00
MemRe ad
ALUS rcA = 0
IorD = 0
IRWrite
ALUS rcB = 01
ALUOp = 00
PCWrite
PCS ource = 00
Instruction fetch
Instruction decode/
Register fetch
(
O
p
=
'
J
M
P
'
)
0
1
S ta rt
Memory re fe rence FSM
(F igure 5 .33)
R-type FSM
(F igure 5.34)
Branch FSM
(Figure 5 .35 )
J ump FSM
(Figure 5 .36 )
Máquinas de Estados Finitos (FSM)
:: Visão Geral
Fig. 5.32
38
FSM
Acesso à Memória
MemWrite
Io rD = 1
Me m Re a d
Io rD = 1
ALUS rcA = 1
ALUS rcB = 10
ALUO p = 0 0
R e gW rite
Mem toR e g = 1
R e gDs t = 0
Memory a ddre s s c omputa tio n
(O p = 'LW ') o r (O p = 'SW ')
Memo ry
a cc e s s
Write -ba ck s te p
(
O
p
=
'
L
W
'
)
4
2
53
F rom s ta te 1
To s ta te 0
(F igu re 5 .3 2 )
Memory
a cc e s s
Fig. 5.3339
FSM
Instruções Tipo R
ALUSrcA = 1
ALUSrcB = 00
ALUOp = 10
RegDs t = 1
RegWrite
MemtoRe g = 0
Execution
R-type comple tion
6
7
(Op = R-type )
From s ta te 1
To s ta te 0
Fig. 5.34
(F igure 5.32)
40
Branch comple tion
8
(Op = 'BEQ')
From s ta te 1
To s ta te 0
(Figure 5.32)
ALUSrcA = 1
ALUSrcB = 00
ALUOp = 01
PCWriteCond
PCS ource = 01
FSM
Instruções Branch
Fig. 5.35
41
Jump comple tion
9
(Op = 'J ')
F rom s ta te 1
To s ta te 0
(F igure 5 .32)
PCWrite
P CSource = 10
FSM
Instruções Jump
Fig. 5.36
42
FSM
Controle
IF ID
EX
MEM
WB
PCWrite
PCS ource = 10
ALUS rcA = 1
ALUS rcB = 00
ALUOp = 01
PCWriteCond
PCS ource = 01
ALUS rcA =1
ALUS rcB = 00
ALUOp = 10
Re gDs t = 1
RegWrite
MemtoRe g = 0
MemWrite
Io rD = 1
MemRea d
IorD = 1
ALUS rcA = 1
ALUS rcB = 10
ALUOp = 00
RegDs t = 0
RegWrite
Mem toReg = 1
ALUS rcA = 0
ALUS rcB = 11
ALUOp = 00
MemRe a d
ALUS rcA = 0
Io rD = 0
IRWrite
ALUS rcB = 01
ALUOp = 00
PCWrite
PCS ource = 00
Ins truc tion fe tch
Ins truc tion de code /
re gis te r fe tch
J ump
comple tion
Bra nch
comple tionExe cution
Memory addre s s
computa tion
Memory
a cce s s
Memory
a cce s s R-type comple tion
Write -ba ck s te p
(
O
p
=
'
J
'
)
(
O
p
=
'
L
W
'
)
4
0
1
9862
753
S ta rt
Fig. 5.38
43
FSM
Implementação
 Entradas
 Estado corrente
 Bits de Opcode da 
instrução
 Saídas
 Próximo estado
 Sinais a serem gerados 
para o estado corrente
PCWrite
PCWriteCond
IorD
MemtoReg
PCSource
ALUOp
ALUSrcB
ALUSrcA
RegWrite
RegDst
NS3
NS2
NS1
NS0
O
p
5
O
p
4
O
p
3
O
p
2
O
p
1
O
p
0
S
3
S
2
S
1
S
0
State register
IRWrite
MemRead
MemWrite
Instruction register 
opcode field
Outputs
Control logic
Inputs
4 bits de estado p/ gerar 
10 estados
44
FSM
Implementação usando PLA
 PLA (Programmable Logic Array)
Formato básico de uma PLA
45
FSM
Implementação usando PLA
 Exemplo da implementação de um função lógica 
em uma PLA
46
AND dos Opcodes e 
Estado Corrente
OR dos AND
FSM
Implementação usando PLA
47
m n
ROM
 ROM (Read Only Memory)
 Valores das posições de memória são fixos
 Vantagem: Ser capaz de implementar qualquer função lógica 
com o seu número de entradas
 Uma ROM pode ser usada para implementar uma 
tabela verdade
 Com m bits, é possível endereçar 2m entradas das ROM
 A saída da ROM são os bits armazenados na entrada 
endereçada
FSM
Implementação usando ROM
48
 Quantos entradas?
 6 Bits para opcode, 4 bits para estado = 10 linhas de endereço
( i.e. 210 = 1024 endereços diferentes)
 Quantos saídas?
 16 saídas de controle de via dos dados
 4 bits para o estado
 20 saídas
 Tamanho do ROM é 210 x 20 = 20k bits 
 Devastador, porque para muitos entradas as 
saídas são as mesmas
FSM
Implementação usando ROM
49
 Melhoramento do tamanho de ROM:
 Os 4 bits do estado geram as 16 bits de saída de 
controle (= 24 x 16 Bits)
 10 Bits para definir o novo estado ( = 210 x 4 Bits)
= 4.3k Bits de ROM
 PLA é bem menor
Pode compartilhar os termos-produto
Só precisa de entradas que produzem saídas ativa
Tamanho: (10x16) + (20x16) = 480 células de PLA
FSM
Implementação PLA vs. ROM
50
Exemplo: CPI em uma CPU multi-ciclo
 Assuma um mix de instruções com:
 Qual CPI (ciclos de clock por instrução), assumindo 
que cada estágio toma um ciclo de clock?
Instrução % No. de ciclos
Load 22 5
Store 11 4
Tipo R 49 4
Branch 16 3
Jump 2 3
Exemplo: CPI em uma CPU multi-ciclo
 Solução:
,
1
,
N
instr i i
i
total
instr total
N CPI
CPI
N


 
 ,
1 ,
N
instr i
i
i instr total
N
CPI
N
 
0,22 0,11 0,49 0,16 05 4 4 3 3,02          
4,04
52
Pipeline 
(capítulo 6)
Adaptado a partir dos Slides de Organização de Computadores 2006/02 do 
professores Leandro Galvão (DCC/UFAM ‐ galvao@dcc.ufam.edu.br) e o 
Ricardo de Oliveira Duarte (DELT/UFMG)
53
Exemplo da LavanderiaExemplo da Lavanderia
B DA C
4 pessoas (A, B, C, D) possuem 
sacolas de roupa para lavar, secar e 
dobrar
Lavar leva 30 minutos
Secar leva 40 minutos
Dobrar leva 20 minutos
54
Exemplo da LavanderiaExemplo da Lavanderia
 Lavanderia sequencial leva 6 horas para terminar
 Se eles conhecessem computação, quanto tempo levaria?
A
B
C
D
30 40 20 30 40 20 30 40 20 30 40 20
6 7 8 9 10 11 Meia-noite
T
a
r
e
f
a
s
Tempo
55
Exemplo da LavanderiaExemplo da Lavanderia
A
B
C
D
30 40 40 40 40
6 7 8 9 10 11 Meia-noite
T
a
r
e
f
a
s
Tempo
40
Lavanderia com pipelining leva 3,5 horas 
56
Pipeline
:: Definição
Pipeline
:: Definição
 Pipeline é uma técnica de implementação de processadores que 
permite a sobreposição temporal de diversas fases de execução
de instruções
 Em outras palavras, o hardware processa mais de uma instrução 
de cada vez, sem esperar que uma instrução termine antes de 
começar a outra
57
Pipeline
:: Características
Pipeline
:: Características
 Pipeline não melhora a latência de uma única tarefa, mas 
melhora o throughput de todo trabalho
 Tempo de execução de uma tarefa é o mesmo, com ou sem
pipelining
 Ganho começa a existir a partir da segunda tarefa
 Taxa de inserção de tarefas é limitada pela tarefa mais lenta
 Pipeline explora o paralelismo entre as instruções em um fluxo 
de instruções sequenciais
 É uma técnica invisível ao programador, ao contrário de técnicas 
de multiprocessadores
58
Ganho de desempenho com PipeliningGanho de desempenho com Pipelining
 Supondo:
 N instruções
 K estágios de duração T
 Tempo de execução sem pipelining:
N × K × T
 Tempo de execução com pipelining:
K × T + (N‐1) × T
N
K
T
N
K
59
Ganho de desempenho com PipeliningGanho de desempenho com Pipelining
Ganho de desempenho:
No limite (Número de instruções N → ∞):
Ganho → K (número de estágios)
 TNKT
NKT
)1(
NK
N
N
11
1

60
Ganho de desempenho com Pipelining
:: Monociclo × Multiciclo × Pipeline
Ganho de desempenho com Pipelining
:: Monociclo × Multiciclo × Pipeline
Tclock
1 2 3 4 5 6
1 2 3 4 5 6
1
2
3
4
5
6
Tempo de execução (Texec)
Monociclo
Multiciclo
Pipeline
61
Ganho de desempenho com PipeliningGanho de desempenho com Pipelining
Contudo:
 Estágios não são perfeitamente balanceados para durarem a 
mesma quantidade de tempo T
 Cada estágio possui um overhead de tempo em decorrência 
do pipelining
Portanto:
 O tempo de execução de cada estágio no processador com 
pipeline será maior que no computador sem pipeline
 O ganho será um pouco menor que o número K de estágios
62
Processador RISC de cinco estágiosProcessador RISC de cinco estágios
 Cinco estágios de execução de cada instrução:
 IF ‐ Busca (fetch) da instrução
 ID ‐ Decodificação da instrução
 EX  ‐ Execução ou cálculo do endereço efetivo
 MEM ‐ Acesso à memória ou desvio
 WB  ‐ Atualização dos registradores (write‐back)
 Cada fase de uma instrução é processada por um estágio, em um ciclo de 
clock
 Uma nova instrução é iniciada a cada ciclo
Instrução
Ciclo de clock
1 2 3 4 5 6 7 8 9
i IF ID EX MEM WB
i+1 IF ID EX MEM WB
i+2 IF ID EX MEM WB
i+3 IF ID EX MEM WB
i+4 IF ID EX MEM WB
63
Processador RISC de cinco estágiosProcessador RISC de cinco estágios
 Duranteum mesmo ciclo de clock, temos de garantir que não
ocorram duas operações com os mesmos componentes do 
caminho de dados:
 Utiliza‐se uma memória cache de dados (DM) separada da memória 
cache de instruções (IM)
 O banco de registradores é utilizado duas vezes:
 Estágio ID para leitura, na 2ª. metade do ciclo de clock
 Estágio WB para escrita, na 1ª. metade do ciclo de clock
64
Processador RISC de cinco estágiosProcessador RISC de cinco estágios
 PC é incrementado e armazenado a cada ciclo, durante a fase IF 
 Como tratar desvios?
 Registradores são inseridos entre cada estágio do pipeline para:
 Garantir que operações em diferentes estágios do pipeline não 
interfiram uma nas outras
 Carregar resultados intermediários entre estágios não adjacentes
 Tais registradores recebem nomes especiais, que é a junção dos 
nomes dos estágios que interfaceiam:
 IF/ID
 ID/EX
 EX/MEM
 MEM/WB
65
Processador RISC de cinco estágiosProcessador RISC de cinco estágios
IF/ID ID/EX EX/MEM MEM/WB
66
Execução de um load em pipeline (IF)Execução de um load em pipeline (IF)
67
Execução de um load em pipeline (ID)Execução de um load em pipeline (ID)
68
Execução de um load em pipeline (EX)Execução de um load em pipeline (EX)
69
Execução de um load em pipeline (MEM)Execução de um load em pipeline (MEM)
70
Execução de um load em pipeline (WB)Execução de um load em pipeline (WB)
71
Execução de um load em pipeline
:: correção
Execução de um load em pipeline
:: correção
O número do registrador a ser escrito somente é utilizado no estágio WB
O que vocês aprenderam hoje?
 Controle da arquitetura tipo multi-ciclo
 Linhas de controle
 Estágios
Máquinas de estados Finitos (FSM)
 Cálculo do CPI
 Básicos da arquitetura tipo pipeline
72
Questão
 Defina todos os passos necessários para as instruções seguintes quando 
eles forem executados em uma arquitetura MIPS multi‐ciclo:
“j label3” “lw $s3, 12($t0)”, “beq $t2, $t4, $t1”, “sub $s1, $s2, $s3”.
j label3 IF, ID, EX
lw $s3, 12($t0) IF, ID, EX, MEM, WB
sub $s1, $s2, $s3 IF, ID, EX, MEM
beq $t2, $t4, $t1 IF, ID, EX
73

Outros materiais