Escolar Documentos
Profissional Documentos
Cultura Documentos
Paulo C. Centoducatte
Ch5-1
? Datapath Componente do processador que realiza operaes aritmticas Unidade de Controle Componente do processador que comanda o datapath, memria e dispositivos de E/S de acodo com as instrues de um programa
Paulo C. Centoducatte
Ch5-2
Paulo C. Centoducatte
Ch5-3
Por exemplo, todas as instrues, independente da classe utilizam a ALU aps a leitura de um registrador. Instruo de referncia memria: utiliza para clculo do endereo Instrues lgica-aritmticas: utiliza para execuo Instrues de desvios: utiliza para comparao.
Paulo C. Centoducatte
Ch5-4
PC
Instruction
ALU
Paulo C. Centoducatte
Ch5-5
? Reviso/Convenes adotadas Sinal lgico alto ativado Elementos combinacionais, exemplo: ALU Elementos de estado, exemplo: Registradores e Memria Sinal de Clock: usado para determinar quando se pode escrever em um elemento de estado. A leitura pode ser a qualquer momento
Paulo C. Centoducatte
Ch5-6
? Metodologia de sincronizao ? sincroniza o elemento de estado para a permisso de leitura e de escrita (Por que necessrio?)
State element 1
Combinational logic
State element 2
Clock cycle
Paulo C. Centoducatte
Ch5-7
A metodologia edge-triggered permite a um elemento de estado ler e escrever no mesmo perodo de clock.
State element
Combinational logic
Paulo C. Centoducatte
Ch5-8
Datapath
OBS.: Primeiro implementaremos um Datapath utilizando apenas um clock com ciclo grande. Cada instruo comea a ser executada em uma transio e acaba na prxima transio do clock (na prtica isto no factvel, pois temos instrues de diferentes classes e portanto de diferentes nmeros de ciclos de clock) Recursos em um Datapath: Um lugar para armazenar as instrues do programa (Memria de instrues) Um lugar para armazenar o endereo da instruo a ser lida na memria (Program Counter - PC) Somador para incrementar o PC para que ele aponte para a prxima instruo
Paulo C. Centoducatte
Ch5-9
Elementos necessrios a armazenar e acessar informaes mais um somador para calcular o endereo do prximo estado.
a. Instruction memory
b. Program counter
c. Adder
Paulo C. Centoducatte
Ch5-10
PC
Paulo C. Centoducatte
Ch5-11
Instrues R-type
? Instrues aritmticas e lgicas: add, sub, slt ? 32 registradores chamado de register file, que um conjunto de registradores que podem ser acessados (lidos ou escritos) especificando seu nmero. ? Instrues de formato R tem 3 operandos registradores (add $t1,$t2,$t3): necessidade de ler 2 dados do register file e escrever um dado nele, para cada instruo ? Para ler um dado do register file preciso de uma entrada (nmero do registrador) e uma sada (o dado lido) ? Para escrever um dado no register file, so necessrias duas entradas: o nmero do registrador e o dado a ser escrito ? Para escrever: sinal de controle (RegWrite) ? A ALU controlada por um sinal de controle (ALU control)
Paulo C. Centoducatte
Ch5-12
5 Register numbers 5 5
ALU control
ALU
Data
Paulo C. Centoducatte
Ch5-13
Read register 1 Instruction Read register 2 Registers Write register Write data
3 Read data 1
ALU operatio n
RegWrite
Paulo C. Centoducatte
Ch5-14
Paulo C. Centoducatte
Ch5-15
M e m W rit e
A d dre s s
Read d ata
16 S ig n e x te n d
32
W ri t e d ata
D a ta m e m ory
Me m Read
a . D a ta m e m o r y u n it
b . S i g n - e x t e n s i o n u n it
Paulo C. Centoducatte
Ch5-16
Read register 1 Instruction Read register 2 Registers Write register Write data RegWrite 16
3 Read data 1
Address
MemRead
Paulo C. Centoducatte
Ch5-17
Paulo C. Centoducatte
Ch5-18
Instruction
Paulo C. Centoducatte
Ch5-19
MemWrite ALUSrc
M u x
MemtoReg
Zero ALU ALU result Address Read data Data memory
M u x
RegW rite
16 Sign extend 32
Write data
M emRead
Paulo C. Centoducatte
Ch5-20
Add 4 Registers Read register 1 Read Read data 1 register 2 Write register Write data RegWrite 16 Sign 32 extend Read data 2 3 ALUSrc M u x ALU operation
PC
MemWrite MemtoReg
Address
Read data
M u x
Paulo C. Centoducatte
Ch5-21
Controle da ALU
Paulo C. Centoducatte
Ch5-22
PCSrc Add 4 Shift left 2 Registers Read register 1 Read Read data 1 register 2 Write register Write data RegWrite 16 Read data 2 3 ALU operation MemWrite MemtoReg Address Read data Add ALU result M u x
PC
ALUSrc
M u x
Data memory
M u x
MemRead
Paulo C. Centoducatte
Ch5-23
Paulo C. Centoducatte
Ch5-24
Paulo C. Centoducatte
Ch5-25
? Campo opcode: bits 31-26 ? Dois registradores a serem lidos rs e rt: bits 25-21 e 20-16 Registrador base (load e store): bits 15-0 O valor a ser guardado no PC que pode vir do clculo de um endereo de salto ou simplesmente do PC + 4. O registrador destino (a ser escrito), que selecionado dentre 2 opes, o que multiplexador: para um load: bits 20-16 (rt) para instrues R-type: bits 15-11 (rd) dever ser requer um
O valor guardado no banco de registradores que pode vir da ALU (R-type) ou da memria (sw)
? 1998 Morgan Kaufmann Publishers
Paulo C. Centoducatte
Ch5-26
PCSrc 1 M u x 0
Add 4 Reg Write Instruction [25 21] PC Read address Instruction [31 0] Instruction memory Instruction [20 16] 1 M u Instruction [15 11] x 0 RegDst Instruction [15 0] Read regi ster 1 Read regi ster 2 Shift left 2 ALU Add result
Read data 1
MemWrite ALUSrc 1 M u x 0 32 ALU control Zero ALU ALU result MemtoReg Address Read data 1 M u x 0
Read Write data 2 regi ster Write Registers data 16 Sign extend
Wri te data
Data memory
MemRead
Instruction [5 0] ALUOp
Paulo C. Centoducatte
Ch5-27
Sinais de controle
Paulo C. Centoducatte
Ch5-28
Read data 1 Read register 2 Registers Read Write data 2 register Write data
0 M u x 1
Address
1 M u x 0
Instruction [5 0]
Paulo C. Centoducatte
Ch5-29
Sinais de controle
Paulo C. Centoducatte
Ch5-30
Operao do Datapath
? instruo R-type ? add $t1,$t2,$t3 fetch da instruo leitura de $t2 e $t3 operao na ALU com os dados lidos resultado da ALU escrito em $t1
Paulo C. Centoducatte
Ch5-31
0 M u x Add ALU result Add 4 Instruction [31 26] RegDst Branch MemRead MemtoReg ALUOp MemWrite ALUSrc RegWrite Read register 1 Shift left 2 1
Control
Instruction [25 21] PC Read address Instruction [31 0] Instruction memory Instruction [15 11] Instruction [20 16] 0 M u x 1
Read data 1 Read register 2 Registers Read Write data 2 register Write data
0 M u x 1
Address
1 M u x 0
Instruction [5 0]
Paulo C. Centoducatte
Ch5-32
Read data 1 Read register 2 Registers Read Write data 2 register Write data
0 M u x 1
Address
1 M u x 0
Instruction [5 0]
Paulo C. Centoducatte
Ch5-33
Read data 1 Read register 2 Registers Read Write data 2 register Write data
0 M u x 1
Address
1 M u x 0
Instruction [5 0]
Paulo C. Centoducatte
Ch5-34
Read data 1 Read register 2 Registers Read Write data 2 register Write data
0 M u x 1
Address
1 M u x 0
Instruction [5 0]
Paulo C. Centoducatte
Ch5-35
Paulo C. Centoducatte
Ch5-36
0 M u x 1
Address
1 M u x 0
Instruction [5 0]
Paulo C. Centoducatte
Ch5-37
Instruo branch
? beq $t1,$t2,offset Fetch da instruo $t1 e $t2 so lidos ALU faz subtrao dos valores lidos. PC+4 adicionado ao imediato de 16 bits, deslocado de 2 bits ? resultado o endereo do desvio A sada Zero usada para decidir qual endereo ser armazenado em PC
Paulo C. Centoducatte
Ch5-38
Read data 1 Read register 2 Registers Read Write data 2 register Write data
0 M u x 1
Address
1 M u x 0
Instruction [5 0]
Paulo C. Centoducatte
Ch5-39
Paulo C. Centoducatte
Ch5-40
Instruo jump
J L1 Fetch da instruo PC formado pelos 4 bits mais significativos + 26 bits do imediato + 00 (deslocamento de 2)
Paulo C. Centoducatte
Ch5-41
0 M u x 1
Address
1 M u x 0
Instruction [5 0]
Paulo C. Centoducatte
Ch5-42
? Para single-cycle ? o ciclo do clock deve ter o mesmo comprimento para todas as instrues ? CPI = 1 ? para isto, o ciclo de clock determinado pelo maior caminho no datapath da mquina ( instruo de load que usa 5 unidades funcionais em srie: instruction memory, register file, ALU, data memory e register file)
Paulo C. Centoducatte
Ch5-43
Exemplo 1:
Sejam os seguintes tempos de operao: unidade de memria : 2 ns ALU e somadores: 2ns register file (read ou write) : 1 ns unidade de controle, multiplexadores, acesso ao PC, circuito para extenso do sinal e linhas no tem atraso, quais das seguintes implementaes seria mais rpida e quanto ?
Paulo C. Centoducatte
Ch5-44
Exemplo 1:
Uma implementao na qual cada instruo opera em um ciclo de clock de tamanho fixo Uma implementao onde cada instruo executada usando clock de tamanho de ciclo varivel (exatamente do tamanho necessrio para a execuo da respectiva instruo ? tambm no utilizado na prtica) OBS.: Para comparar o desempenho, assuma a execuo de um programa com a seguinte distribuio de instrues : 24% de loads, 12% de store, 44% instrues tipo R, 18% de branches e 2% de jumps.
Paulo C. Centoducatte
Ch5-45
Exemplo 1:
Soluo: tempo de execuo CPU = nmero de instrues X CPI X perodo do clock CPI = 1 tempo de execuo CPU = nmero de instrues perodo do clock Temos que encontrar o perodo do clock para as duas implementaes, pois o nmero de instrues e a CPI so iguais para ambas implementaes. X
Paulo C. Centoducatte
Ch5-46
O caminho crtico para cada classe de instruo : Classe da Instruo R-TYPE LW SW BRANCH JUMP Unidades funcionais envolvidas Inst. fetch Inst. fetch Inst. fetch Inst. fetch Inst. fetch Reg. access Reg. access Reg. access Reg. access ALU Reg. access ALU Mem access Reg access ALU Mem access ALU
Usando o caminho crtico, podemos computar o comprimento do ciclo de clock necessrio para cada classe de instruo: Classe da Memria Leitur ALU Memria Escrita Total Instruo Instrs. a Regs. oper. Dados Regs. R-TYPE 2 1 2 0 1 6 ns LW 2 1 2 2 1 8 ns SW 2 1 2 2 7 ns BRANCH 2 1 2 5 ns JUMP 2 2 ns
Paulo C. Centoducatte
? 1998 Morgan Kaufmann Publishers
Ch5-47
O perodo do clock para a mquina com um nico clock determinado pela maior instruo ? 8ns
A mquina com clock varivel, ter seus perodos de clock variando entre 2ns e 8ns. O clcock mdio ser: Tempo de clock da CPU = 8 X 24% + 7 X 12% + 6 X 44% + 5 X 18 % + 2 X 2% = 6.3ns
CPU desempenho vc / CPU desempenhosc = = tempo de execuo CPUsc / tempo de execuo CPUvc = = IC X perodo de clock da CPUsc / IC X perodo de clock da CPUvc = = perodo de clock da CPUsc / perodo de clock da CPUvc = = 8 / 6.3 = 1.27
Paulo C. Centoducatte
? 1998 Morgan Kaufmann Publishers
Ch5-48
Exemplo 2:
? FP unit ? 8ns para add e 16ns para mul ? todos os loads tem o mesmo tempo e so 33% das instrues (8 ns) ? todos os stores tem mesmo tempo e so 21% das instrues (7 ns) ? instrues tipo R so 27 % das instrues (6 ns) ? Branches so 5 % (5 ns) e jumps 2% das instrues (2 ns) ? FP add e sub tem o mesmo tempo e juntos tem 7% das instrues (12 ns) ? FP mul e div tem o mesmo tempo e so 5% das instrues (20 ns)
? 1998 Morgan Kaufmann Publishers
Paulo C. Centoducatte
Ch5-49
Exemplo 2:
Soluo CPU desempenhovc / CPU desempenhosc = = tempo de execuo CPUsc / tempo de execuo CPUvc
Para a mquina de nico clock ? perodo do clock = ciclo da instruo FP mul (mais longa) ? 2+1+16+1 = 20ns
Para a mquina de clock varivel: perodo do clock CPU = 8 X 31% + 7 X 21% + 6 X 27% + 5 X 5% 2 X 2% + 12 X 7% + 20 X 7% = 8.1 ns
Portanto: CPU desempenhovc / CPU desempenhosc = = tempo de execuo CPUsc / tempo de execuo CPUvc = 20/8.1 = 2.46
Paulo C. Centoducatte
Ch5-50
Implementao Multiciclos
? a execuo de cada instruo dividida em etapas ? cada etapa corresponde a uma operao de uma unidade funcional ? implementao multiciclos ? cada etapa executada em um ciclo
? permite que uma unidade funcional possa ser usada em mais de uma etapa da instruo ? compartilhamento pode diminuir a quantidade de HW
Paulo C. Centoducatte
Ch5-51
Datapath multiciclos
Memory
Data
Paulo C. Centoducatte
Ch5-52
? Incluso de multiplexadores
Paulo C. Centoducatte
? 1998 Morgan Kaufmann Publishers
Ch5-53
PC
0 M u x 1
Instruction [25 21] Instruction [20 16] Instruction [15 0] Instruction register Instruction [15 0] Memory data register 0 M Instruction u x [15 11] 1 0 M u x 1 16
Read register 1 Read Read register 2 data 1 Registers Write Read register data 2 Write data A
0 M u x 1 0 1 M u 2 x 3
ALUOut
B 4
Sign extend
32
Shift left 2
Paulo C. Centoducatte
Ch5-54
PC
0 M u x 1
Instruction [25 21] Instruction [20 16] Instruction [15 0] Instruction register Instruction [15 0] Memory data register 0 M Instruction u x [15 11] 1 0 M u x 1 16
Read register 1 Read Read data 1 register 2 Registers Write Read register data 2 Write data A
0 M u x 1 0 1 M u 2 x 3
B 4
ALUOut
Sign extend
32
Shift left 2
ALU control
Instruction [5 0]
MemtoReg
ALUSrcB ALUOp
Paulo C. Centoducatte
Ch5-55
Datapath para implementao multiciclos com sinais de controle completo incluindo atualizao do PC
PCWriteCond
PCSource
PCWrite ALUOp IorD Outputs ALUSrcB MemRead ALUSrcA Control MemWrite RegWrite MemtoReg Op RegDst IRWrite [5 0] 0 Jump address [31-0]
Instruction [25 0] Instruction [31-26] Address Memory MemData Write data Instruction [25 21] Instruction [20 16] Instruction [15 0] Instruction register Instruction [15 0] Memory data register 0 M Instruction u x [15 11] 1 0 M u x 1 16 Sign extend 32 Shift left 2 Read register 1 Read Read register 2 data 1 Registers Write Read register data 2 Write data A 0 M u x 1 0 1 M u 2 x 3
26
Shift left 2
28
1 u
x 2
PC
0 M u x 1
PC [31-28]
B 4
ALUOut
ALU control
Instruction [5 0]
Paulo C. Centoducatte
Ch5-56
Paulo C. Centoducatte
Ch5-57
Paulo C. Centoducatte
Ch5-58
Sinais ativados
MemRead (1), Irwrite (1), IorD (0 PC como endereo), ALUSrcA (0 PC para ALU), ALUSrcB (01 4 para a ALU), ALUOp (00 add) e PCWrite (1 o novo valor de PC no visvel at o prximo ciclo de clock).
Paulo C. Centoducatte
? 1998 Morgan Kaufmann Publishers
Ch5-59
Sinais ativados: ALUSrcA (0 PC vai para a ALU), ALUSrcB (11- sign extended e shifted enviado a ALU) e ALUOp (00 add).
Paulo C. Centoducatte
? 1998 Morgan Kaufmann Publishers
Ch5-60
Paulo C. Centoducatte
Ch5-61
? Instrues Lgicas-Aritmticas ( R-type) ALUOut = A op B; Sinais ativados: ALUSrcA (1 - A para ULA), ALUSrcB (00 B para a ULA) e ALUOp (10 o campo funct usado para determinar os sinais de controle da ALU)
Paulo C. Centoducatte
Ch5-62
? Jump PC = PC[31-28] || (IR[25-0]<<2) Sinais ativados: PCSource(10- jump address para PC) e PCWrite (1)
Paulo C. Centoducatte
Ch5-63
Paulo C. Centoducatte
Ch5-64
Paulo C. Centoducatte
Ch5-65
Paulo C. Centoducatte
Ch5-66
Paulo C. Centoducatte
Ch5-67
? Mquinas de estados finitos ? conjunto de estados e como estes estados podem mudar ( esta mudana ? prximo estado).
? Controle de estados finitos corresponde s cinco etapas de execuo de uma instruo, onde cada etapa executada em um ciclo de clock.
Paulo C. Centoducatte
Ch5-68
Start
Paulo C. Centoducatte
Ch5-69
Instruction fetch 0 MemRead ALUSrcA = 0 IorD = 0 IRWrite ALUSrcB = 01 ALUOp = 00 PCWrite PCSource = 00
= Op R -t e) yp
Start
( Op
= 'L
o W')
'S p= r (O
(O
W')
Paulo C. Centoducatte
(Op = 'JMP')
'B
EQ ')
Ch5-70
Diagrama de estados - Memory reference From state 1 instructions (Op = 'LW') or (Op = 'SW')
Memory address computation 2 ALUSrcA = 1 ALUSrcB = 10 ALUOp = 00
(Op = 'LW')
Memory access 5
(O p = 'S ') W
Memory access
3 MemRead IorD = 1
MemWrite IorD = 1
Paulo C. Centoducatte
Ch5-71
Ch5-72
From state 1 (Op = 'BEQ') Branch completion 8 ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01 PCWriteCond PCSource = 01
Paulo C. Centoducatte
Ch5-73
Ch5-74
W')
o r (O
p=
'S
Branch completion
(O p
W ')
(Op = 'J')
'B
e) - ty p
EQ
')
Jump co mpletion
(O
(Op = 'LW')
p = 'S ') W
Memory acce ss 5
R-type completion
3 Me mRead IorD = 1
Paulo C. Centoducatte
Ch5-75
Paulo C. Centoducatte
Ch5-76
CPI = ciclos de clock da CPU / nmero de instrues CPI = ? (num. de instruesi X CPIi) / num. de instrues CPI = ? ((num. de instruesi/ num. de instrues) X CPIi) CPI = 0.22 X 5 + 0.11 X 4 + 0.49 X 4 + 0.16 X 3 + 0.02 X 3 CPI = 4.04 4.04 melhor que a CPI de uma CPU em que todas as instrues tivessem o mesmo nmero de ciclos de clock ( CPI pior caso = 5).
Paulo C. Centoducatte
Ch5-77
Outputs
Inputs
Next state Inputs from instruction register opcode field State register
Paulo C. Centoducatte
Ch5-78
Ch5-79
Paulo C. Centoducatte
Ch5-80
? As microinstrues so colocadas em uma ROM ou PLA. O endereamento das microinstrues pode ser dado seqencialmente. Existem 3 modos diferentes para a escolha da prxima microinstruo a ser executada:
Incrementar o endereo da microinstruo corrente para obter o endereo da prxima microinstruo. Este comportamento indicado, colocando Seq no campo de Seqncia. Desviar para a microinstruo que inicia a execuo da prxima instruo MIPS (estado 0 - fetch). Este comportamento indicado colocando Fetch no campo de Seqncia. Escolher a prxima microinstruo baseada em entradas da unidade de controle. Este comportamento chamado dispatch e usualmente implementado criando uma tabela (implementada em ROM ou PLA) contendo os endereos das microinstrues alvo. Geralmente existe muitas tabelas, neste caso temos duas a do estado 1 e a do estado 2. Isto indicado no campo Seqncia por Dispatch i, onde i o nmero da tabela.
Paulo C. Centoducatte
Ch5-81
Paulo C. Centoducatte
Ch5-82
Paulo C. Centoducatte
Ch5-83
Paulo C. Centoducatte
Ch5-84
? Dispatch table 1 e o opcode so usados para selecionar uma de 4 seqncias diferentes de microinstrues:
? Mem1 ? instrues de referncia memria ? Rformat1 ? instrues R-type ? BEQ1 ? instrues beq ? JUMP1 ? instrues de jump
Paulo C. Centoducatte
Ch5-85
Mem1
Paulo C. Centoducatte
Ch5-86
LW2
Paulo C. Centoducatte
Ch5-87
SW2
Paulo C. Centoducatte
Ch5-88
Rformat1
Paulo C. Centoducatte
Ch5-89
BEQ1
Paulo C. Centoducatte
Ch5-90
JUMP1
Paulo C. Centoducatte
Ch5-91
Paulo C. Centoducatte
Ch5-92
Ch5-93
Excees e interrupes
? Exceo um evento inesperado, interno ao processador (p. ex. overflow), que causa uma mudana no fluxo normal de execuo das instrues.
? Interrupo um evento inesperado, externo ao processador (p. ex. interrupo de I/O), que causa uma mudana no fluxo normal de execuo das instrues.
Paulo C. Centoducatte
Ch5-94
Tipo de Evento Requisio de I/O Chamada ao SO Overflow aritimtico Uso de instruo no definida Mau funcionamento do hardware
Paulo C. Centoducatte
Ch5-95
Deteco de exceo
? Dois tipos de exceo sero tratados: execuo de uma instruo no definida e overflow aritmtico. ? Quando ocorre uma exceo, o endereo da instruo afetada guardada no EPC (exception program counter) e o controle transferido ao sistema operacional em um endereo especificado. Dependendo da atitude do SO e do tipo de exceo, o programa pode ser interrompido ou reiniciado a partir do endereo armazenado em EPC. ? Para o SO tratar a exceo, ele tem que conhecer qual a exceo. H duas maneiras: ? status register (Cause), que tem um campo que especifica a exceo (MIPS) ? vectored interrupts ? o SO sabe a razo da exceo pelo endereo de entrada no vetor. O SO sabe a razo da exceo pelo endereo passado para ele.
Paulo C. Centoducatte
? 1998 Morgan Kaufmann Publishers
Ch5-96
? Para o SO tratar a exceo, ele tem que conhecer qual a exceo. H duas maneiras: ? status register (Cause), que tem um campo que especifica a exceo (MIPS) ? vectored interrupts ? o SO sabe a razo da exceo pelo endereo de entrada no vetor. O SO sabe a razo da exceo pelo endereo passado para ele.
Tipo de exceo Endereo no vetor de exees(hexa) Instruo no definida C0 00 00 00hex Overflow aritimtico C0 00 00 20hex
Paulo C. Centoducatte
Ch5-97
Ch5-98
Instruction [25 0] Instruction [31-26] Address Memory MemData Write data Instruction [25 21] Instruction [20 16] Instruction [15 0] Instruction register Instruction [15 0] Memory data register 0 M Instruction u x [15 11] 1 0 M u x 1 16 Sign extend 32 Shift left 2 Read register 1 Read Read register 2 data 1 Registers Write Read register data 2 Write data A 0 M u x 1 0 1M u 2 x 3
26
Shift left 2
28
1M
2 u x
CO 00 00 00
PC [31-28]
PC
0 M u x 1
B 4
ALUOut
EPC
1 ALU control
0 M u x 1
Cause
Instruction [5 0]
Paulo C. Centoducatte
Ch5-99
? Instruo indefinida: detectada quando no h prximo estado definido a partir do estado 1, para o valor do opcode. Tratamos definindo o prximo estado, para qualquer valor de opcode, como estado 10.
? Overflow aritmtico: o sinal de overflow (sada da ULA) usado para modificar a mquina de estados para especificar um novo prximo estado a partir do estado 7.
Paulo C. Centoducatte
Ch5-100
11
Paulo C. Centoducatte
Ch5-101
Instruction fetch 0 MemRead ALUSrcA = 0 IorD = 0 IRWrite ALUSrcB = 01 ALUOp = 00 PC Write PCSource = 00
) ype R-t p= (O Branch completion 8 ALUSrcA = 1 ALUSrcB = 00 ALUOp = 01 PCWriteCond PCSource = 01
Start
EQ ')
(Op = 'J')
=o
'B
the
(O p
= 'L
O or ( W')
W') = 'S
r)
Ju mp co mpletion
9 PCWrite PCSource = 10
(O
(Op = 'LW')
p = ') W 'S
Me mory access
Memory access 7
3 MemRead IorD = 1
5 MemWrite IorD = 1
10
Paulo C. Centoducatte
Ch5-102