Escolar Documentos
Profissional Documentos
Cultura Documentos
LESI - 3º Ano
Janeiro 2002
Revisão do datapath (DP) do MIPS
4. acesso à memória (lw e sw) ou escrita do resultado (add, sub, and, or, slt
e beq)
Da ta
Re g ist er #
PC A d d re s s In stru ctio n R e giste rs AL U Ad dre ss
Re g ist er #
In stru ction
me mory D a ta
Re g ist er # me mory
D at a
Instruction
address
PC
Instruction Add Sum
Instructi on
memory
Add
Read
PC address
Instruction
Instruction
memory
a. Registers b. ALU
ALU operation
Read 3
register 1 R ead
Read data 1
register 2 Zero
Instr uction
Registers ALU ALU
Write result
register
R ead
Write data 2
data
RegWrite
MemWrite
Address Read
data 16 32
S ign
extend
Write Data
data memory
MemRead
3 AL U operation
Read
register 1 MemWrite
Read
data 1
Read
Instruction register 2 Zero
Registers ALU ALU
Write result Address Read
register data
Read
Write data 2
data Data
memory
RegWrite Write
data
16 32
Sign MemRead
extend
Shift
left 2
ALU op eration
Read 3
Instruction register 1
Read
data 1
Read
register 2 To branch
Registers ALU Zero
Write control logic
register
Read
data 2
Write
data
RegWrite
16 32
Sign
extend
32 0
A M 32 Select C (saída)
u C
32 x
0 A
B 1 B
1
• Uma mesma unidade não pode ser usada várias vezes no mesmo ciclo.
Read Registers
3 ALU operation
register 1 MemWrite
PC Read
Read Read MemtoReg
address
register 2 data 1 ALUSrc Zero
Instruction ALU ALU
Write Read Address Read
register data 2 M result data
u M
Instruction Write x u
memory Data x
data
Write memory
RegWrite data
16 Sign 32 MemRead
extend
PCSr c
M
Add u
x
4 Add ALU
r esult
Shift
left 2
Registers
R ead 3 ALU operation
MemWrite
Read register 1 ALUSrc
PC Read
address Read data 1 MemtoReg
r egister 2 Zero
Instruction ALU ALU
Wr ite Read Address Read
register M result data
data 2 u M
Instruction u
memory Wr ite x D ata x
d ata memory
Write
RegWrite data
16 32
Sign
extend MemRead
31 26 25 21 20 16 15 11 10 6 5 0
Tipo R Op Rs Rs Rd Funct
31 26 25 21 20 16 15 0
Tipo I
(lw e sw) Op Rs Rd immediate
31 26 25 21 20 16 15 0
Tipo I
(beq) Op Rs Rs2 immediate
PCSrc
0
Add M
u
x
4 Add reALU
sult
1
RegWrite Shift
lef t 2
Instruction [25– 21] Read
Read register 1 Read MemWrite
PC data 1
address Instruction [20– 16] Read ALUSrc MemtoReg
Instruction register 2 Zero
0 Read ALU ALU
[31– 0] Write data 2 0 Read
M result Address 1
u register M data
Instruction Instruction [15– 11] x u M
memory Write x u
1 data Regist ers x
1
Write Data 0
RegDst data memory
Instruction [15– 0] 16 Sign 32
extend ALU MemRead
cont rol
Instruction [5– 0]
ALUOp
31 26 25 0
Tipo J
(J) Op address
• jA
A instrução é um salto incondicional,
cujo endereço destino é o endereço de
26 bits, incluído na instrução.
À constante de 26 bits são
adicionados dois bits à direita
• (i.e., multiplicada por quatro).
Os restantes 4 bits são
retirados de PC + 4
31 28 27 2 0
Endereço PC+4[31-28] address 00
de salto
PC +4 [31– 28] M M
u u
x x
Add reALU
sult 1 0
Add Shift
RegD st
Jump left 2
4 Branch
MemRead
Instr uction [31– 26]
Control MemtoReg
ALUO p
MemWrite
ALUSrc
RegWri te
Instruction [5– 0 ]
• Unidade de controlo
O sinal PCSrc deve ser activado quando a saída Zero da ALU está activa e a
instrução em execução é um beq, o que é implementado através do AND de
um novo sinal branch (calculado do opcode da instrução) com Zero.
0
M
u
x
ALU
Ad d 1
result
Add
Shift PCS rc
R egDst left 2
4 B ranch
M emRead
Instruction [31 26] M emtoReg
Control
A LU Op
M emWr ite
A LU Src
R egWrite
Instruction [5 0]
• ALU Control
Campo ALU
Instrução ALUOp Operação
funct operation
LW, SW 00 xxxxxx adição 010
BEQ 01 xxxxxx subtracção 110
Tipo R (add) 10 100000 adição 010
Tipo R (sub) 10 100010 subtracção 110
Tipo R (and) 10 100100 and 000
Tipo R (or) 10 100101 or 001
Tipo R (slt) 10 101010 set on less than 111
ALUOp
ALU control block
ALUOp0
ALUOp1
Operation2
F3
Operation
F2 Operation1
F (5– 0)
F1
Operation0
F0
• Unidade de controlo
Op5
Op4
Entradas Op3
Op2
Op1
Op0
ALUSrc
MemtoReg
RegWrite
MemRead Saídas
MemWrite
Branch
ALUOp1
ALUOpO
Read register
number 1 Read
data 1
Read register
number 2
Register file
Write
register
Read
Write data 2
data Write
Read register
number 1
Register 0
Register 1 M
u Read data 1
Register n – 1 x
Register n
Read register
number 2
M
u Read data 2
x
Write
C
0
Register 0
1 D
n-to-1 C
Register number
decoder Register 1
D
n– 1
n
C
Register n – 1
D
C
Register n
Register data D
• Por exemplo, uma SRAM de 32K x 8 possui 32K células, cada uma com
8 bits. Neste caso são necessárias 15 linhas de endereço:
15
Address
Chip selec t
SR AM 8
Output enable Dout[7– 0]
32K × 8
Wr ite enable
8
Din[7– 0]
Din[1] Din[0]
D D D D
Write enable C latch Q C latch Q
Enable Enable
0
2-to-4 D D D D
decoder
C latch Q C latch Q
Enable Enable
1
D D D D
Address
C latch Q C latch Q
Enable Enable
2
D D D D
C latch Q C latch Q
Enable Enable
3
Dout[1] Dout[0]
64
Address
[5– 0]
Word line
Pass transistor
Capacitor
Bit line
Row
2048 × 2048
decoder
array
11-to-2048
Mux
Dout
• Os sinais de linha e coluna utilizam os mesmos pinos do chip de
memória. O par de sinais RAS (Row Access Stobe) e CAS (Column
Access Strobe) é utilizado para destinguir os dois tipos de sinais.
• As memórias DRAM são bastante mais lentas que as SRAM (um factor
entre 5 e 10). Os tempos de acesso variam entre 60ns e 110ns (em 1997)
• Adicional: