A maior rede de estudos do Brasil

Grátis
18 pág.
Aula 8

Pré-visualização | Página 1 de 1

1
Organização de Computadores I
DCC006
Prof. Omar Paranaiba Vilela Neto
Aula 8 – O Processador: Data Path e 
Controle (Continuação)
2
Integração do Datapath
• Uso de multiplexadores
PC
Instruction
memory
Read
address
Instruction
16 32
Add ALUresult
M
u
x
Registers
Write
register
Write
data
Read
data 1
Read
data 2
Read
register 1
Read
register 2
Shift
left 2
4
M
u
x
ALU operation3
RegWrite
MemRead
MemWrite
PCSrc
ALUSrc
MemtoReg
ALU
result
Zero
ALU
Data
memory
Address
Write
data
Read
data M
u
x
Sign
extend
Add
3
Integração do Datapath
• Uso de multiplexadores
PC
Instruction
memory
Read
address
Instruction
16 32
Add ALUresult
M
u
x
Registers
Write
register
Write
data
Read
data 1
Read
data 2
Read
register 1
Read
register 2
Shift
left 2
4
M
u
x
ALU operation3
RegWrite
MemRead
MemWrite
PCSrc
ALUSrc
MemtoReg
ALU
result
Zero
ALU
Data
memory
Address
Write
data
Read
data M
u
x
Sign
extend
Add
Quem controla tudo isso?
4
Controle
• Seleção de operações (ALU, read/write, etc.)
• Controle do fluxo de dados (multiplexadores)
• Informações extraídas dos 32 bits da instrução 
• Exemplo:
 add $8, $17, $18 Formato da Instrução:
 000000 10001 10010 01000 00000 100000
 op rs rt rd shamt funct
• Operações das ALU's são baseadas nos campos tipo de instrução e 
no código da função
5
• Exemplo: lw $1, 100($2)
 35 2 1 100
 op rs rt 16 bit offset
• Entradas de controle da ALU
0000 AND
0001 OR
0010 add
0110 subtract
0111 set-on-less-than
Controle
6
• O hardware deve permitir executar o conjunto de instruções
– dado o tipo de instrução 
00 = lw, sw
01 = beq, 
11 = arithmetic
– código da função aritmética
• Descrito usando uma tabela verdade (que definirá o lógica):
ALUOp 
computed from instruction type
Controle
7
Controle
Antes de vermos o controle, vamos lembrar os tipos de instruções.
8
Controle
PC
Instruction
memory
Read
address
Instruction
[31– 0]
Instruction [20– 16]
Instruction [25– 21]
Add
Instruction [5– 0]
MemtoReg
ALUOp
MemWrite
RegWrite
MemRead
Branch
RegDst
ALUSrc
Instruction [31– 26]
4
16 32Instruction [15– 0]
0
0M
u
x
0
1
Control
Add ALUresult
M
u
x
0
1
Registers
Write
register
Write
data
Read
data 1
Read
data 2
Read
register 1
Read
register 2
Sign
extend
Shift
left 2
M
u
x
1
ALU
result
Zero
Data
memory
Write
data
Read
data
M
u
x
1
Instruction [15– 11]
ALU
control
ALU
Address
9
Controle
Caminho dos dados em uma instrução do tipo R
10
Controle
Caminho dos dados em uma instrução load
11
Controle
Caminho dos dados em uma instrução branch equal
12
Controle
Agora sabemos como controlar!
Mas como o controle é implementado?
13
Controle
Operation2
Operation1
Operation0
Operation
ALUOp1
F3
F2
F1
F0
F (5– 0)
ALUOp0
ALUOp
ALU control block
Controle da ALU
14
Controle
R-format Iw sw beq
Op0
Op1
Op2
Op3
Op4
Op5
Inputs
Outputs
RegDst
ALUSrc
MemtoReg
RegWrite
MemRead
MemWrite
Branch
ALUOp1
ALUOpO
Controle Principal
15
 
• Nós esperamos que os valores sejam estáveis
– ALU poderia não produzir a resposta correta
– Nós usamos sinais que são controlados por um clock que 
determina quando escrever
• Tempo de Ciclo é determinado pelo caminho mais longo
Nossa estrutura de Controle
Nós estamos ignorando vários detalhes como tempo de setup e hold
Clock cycle
State
element
1
Combinational logic
State
element
2
16
Onde Nós Estamos
• Problemas do ciclo único:
– Instruções complicadas como ponto flutuante, como fazer?
– Gasto de área
• Uma solução:
– usar o menor cycle time
– Ter diferentes números de ciclos para instruções diferentes
– datapath “multiciclo”:
PC
Memory
Address
Instruction
or data
Data
Instruction
register
Registers
Register #
Data
Register #
Register #
ALU
Memory
data 
register
A
B
ALUOut
17
Onde Nós Estamos
• Exemplo da página 236 – Terceira Edição
• Considere os seguintes tempos de operação das Unidades 
Funcionais:
– Memória: 200 ps;
– ALU e Somadores: 100 ps;
– Banco de registradores: 50 ps.
• Qual a diferença de desempenho das duas implementações abaixo:
– Implementação ciclo único;
– Implementação que usa ciclo de duração variável, tendo a 
duração necessária.
• Considere: 25% loads, 10% stores, 45% ALU, 15% desvios e 5% 
Jump.
18
Onde Nós Estamos
• Exemplo da página 236 – Terceira Edição
Implementação Ciclo Único: 600 ps / instrução;
Implementação 2: 600 x 25% + 550 x 10% + 400 x 45% + 350 x 15% + 200 x 5% = 
447,5ps / instrução.
	Slide 1
	Slide 2
	Slide 3
	Slide 4
	Slide 5
	Slide 6
	Slide 7
	Slide 8
	Slide 9
	Slide 10
	Slide 11
	Slide 12
	Slide 13
	Slide 14
	Slide 15
	Slide 16
	Slide 17
	Slide 18