1
Índice
4. O Processador: Unidades de Caminho de
Dados e de Controlo
4.1 Diagrama de Blocos de um
Processador
4.2 Unidade de Caminho de Dados
4.3 Unidade de Controlo
4.4 Ciclo do Processador
4.5 Pipelining
4.6 Aspectos Relacionados com Pipelining
na Execução de um Programa
4.7 Caso de Estudo: O MIPS R2000 e o
Pentium Pro
Sumário
Instrução com
atraso maior no
datapath de um
ciclo. Datapath
multiciclo:
introdução.
Aula baseada no curso: CS152 Computer Architecture and
Engineering, Dave Patterson, UCB, USA
Tudo! (datapath de um ciclo)
32 ALUctr Clk busW RegWr 32 32 busA 32 busB 5 5 5 Rw Ra Rb 32 32-bit Registers Rs Rt Rt Rd RegDst Extender Mux Mux 32 16 imm16 ALUSrc Mux MemtoReg Clk Data In WrEn 32 Adr Data Memory 32 MemWr ALU Instruction Fetch Unit Clk Zero Instruction<31:0> 0 1 0 1 0 1 <21:25> <16:20> <11:15> <0:15> Imm16 Rd Rs Rt Main Control op 6 ALU Control func 6 3 ALUop ALUctr 3 RegDst ALUSrc
:
Instr<5:0> Instr<31:26> Instr<15:0> nPC_sel3
Atraso maior (load)
Clk PC Rs, Rt, Rd, Op, Func Clk-to-Q ALUctr
Instruction Memoey Access Time
Old Value New Value
RegWr Old Value New Value
Delay through Control Logic
busA
Register File Access Time
Old Value New Value busB
ALU Delay
Old Value New Value Old Value New Value
New Value Old Value
ExtOp Old Value New Value ALUSrc Old Value New Value MemtoReg Old Value New Value
Address Old Value New Value
busW Old Value New
Delay through Extender & Mux
Register Write Occurs
Data Memory Access Time
4
Desvantagens do
processador de um ciclo
ØTempo do Ciclo longo:
q
Tempo do ciclo tem de ser suficiente para a instrução
load
:
PC’s Clock -to-Q +
Instruction Memory Access Time +
Register File Access Time +
ALU Delay (address calculation) +
Data Memory Access Time +
Register File Setup Time +
Clock Skew
Ø
O tempo de ciclo para o
load
é muito maior do que o
necessário para as outras instruções
5
Visionamento abstracto do
nosso processador uniciclo
PC Next PC Register Fetch ALU Reg . Wrt Mem Access Data Mem Instruction Fetch Result Store ALUctr RegDst ALUSrc ExtOp MemWr Zero
nPC_sel MemRd MemWr RegWr
Main Control ALU control op fun Ext
Processador Multiciclo
Øexactamente um comando de controlo ou “micro-instrução”
q
Em geral, o controlador é uma máquina de estados finitos
q
Micro-instruções também podem controlar a sequência (ver mais
Lógica de Controlo / Store(PLA, ROM) OPcode Datapath Instrução Descodifica Condições Pontos de Controlo microinstrução
7
Onde estamos agora?
ØØ
Tópico das próximas 2 aulas: Projecto do
datapath para um datapath multiciclo
Control Datapath Memory Processor Input Output 8
O que há de errado com o
nosso processador de 1 ciclo?
Ø
Tempo de ciclo longo
Ø
Todas as instruções demoram o mesmo tempo do que
as instruções mais lentas
Ø
Memórias reais não são tão convenientes como a
memória ideal:
q
Nem sempre conseguem ter o trabalho feito num único ciclo “de
curta duração”
PC Inst Memory mux ALU Data Mem mux
PC Inst Memory Reg File mux ALU mux
PC Inst Memory mux ALU Data Mem
PC Inst Memory cmp mux
Reg File
Reg File
Reg File Arithmetic & Logical
Load Store Branch Critical Path setup setup
9
Tempo de Acesso a Memórias
ØFísica => memórias rápidas são pequenas
(memórias grandes são lentas)
Ø
Utilização de hierarquias de memórias
Storage Arrayselected word line address storage cell bit line sense amps address decoder Cache Processador 1 ciclo proc . bus L2Cache mem . bus 2-3 ciclos 20 - 50 ciclos Memória
Redução do tempo de ciclo
ØDividir o datapath e inserir registos entre cortes
Ø
Ex.: fazer o mesmo trabalho em 2 ciclos rápidos em vez
de 1 ciclo lento
storage element Lógica combinatória Acíclica storage element storage element=>
Lógica combinatória Acíclica (A) Lógica combinatória Acíclica (B)11
Limites
básicos no
tempo de ciclo
ØLógica do próximo endereço
q
PC <= branch ? PC + offset : PC + 4
ØBusca da instrução
q
InstructionReg <= Mem[PC]
ØAcesso aos registos
q
A <= R[rs]
ØOperação da ALU
qR <= A + B
PC Next PC Operand Fetch Exec Reg . File Mem Access Instruction Fetch ALUctr RegDst ALUSrc ExtOpnPC_sel MemRd MemWr RegWr
Control
zero
12
Ø
Adicionar registos entre os passos mais
pequenos
PC Next PC Operand Fetch Exec Reg . File Mem Access Instruction Fetch RegDstnPC_sel ExtOp ALUSrc ALUctr zero MemRd MemWr RegWr
Transformação do datapath de
um ciclo em datapath multiciclo
13
Ex.: datapath multiciclo
Ø
Caminho crítico?
PC
Next
PC
Operand Fetch
Ext ALU Reg
. File Mem Access Data Mem Instruction Fetch Result Store RegDst
nPC_sel MemRd MemWr RegWr
IR A B R M Reg File MemToReg ALUSrc
ExtOp ALUctr zero
Passos de Execução no
datapath multiciclo
Execução, calculo do endereço, resolução do salto Acesso à memória, finalização de instruções R-type Escreve Resultado Descodificação da Inst./busca de registos Busca da Instrução Acções para saltos condicionais Acções para instruções com acesso a memória Acções para instruções R-type Nome do passo IR = MEM[PC]; PC = PC + 4; A = Reg[IR[25:21]]; B = Reg[IR[20:16]]; Target = PC + (SignEx(IR[15:0]) << 2); ALUout = A op B; ALUout = A + SignEx(IR[15:0]); If(A == B) then PC = Target Reg[IR[15:11]] = ALUout;Load:mem -data = MEM[ALUout]; ou Store: MEM[ALUout] = B; Load:Reg[IR[20:16]] = mem-data; Tempo
15
Passos de Execução no
datapath multiciclo
Execução, calculo do endereço, resolução do salto
Acesso à memória, finalização de instruções R-type
Escreve Resultado
Descodificação da Inst./busca de registos
Busca da Instrução
Acções para saltos incondicionais (jump) Nome do passo IR = MEM[PC]; PC = PC + 4; A = Reg[IR[25:21]]; B = Reg[IR[20:16]]; Target = PC + (SignEx(IR[15:0]) << 2); PC = PC[31:28] || IR[25:0] || 00; || representa a concatenação Tempo