Professional Documents
Culture Documents
N CU TRC MY TNH
LAB4:
CPU
I.
STT
NHM 37
NHIM V
NG GP
33%
33%
33%
Page 1
I.
YU CU THIT K:
1.
Yu cu chung:
2.
Tp lnh:
JR rs:
PC = Reg[rs].
NHM 37
Page 2
SW rt, imm16(rs):
II.
THIT K :
read EX:
Write Back
Page 3
3. Cc thay i so vi single-cycle-cpu:
Cc tn hiu iu khin c chia thnh cc nhm:
Nhm EX: Jump, AluOp[1:0], AluSrc,
RegDst. Nhm M: Branch, Memread,
MemWrite.
Nhm WB: MemtoReg v RegWrite.
V Signzero dng m rng zero i vi lnh XORI.
cc lnh thc hin ng chu k lnh th cc tnh hiu iu khin
trn phi c lu vo cc thanh ghi pipeline. Sau mi chu k cc tn hiu
n vi tng khi v iu khin cc khi hot ng ng.
Bng tr v cc tnh hiu iu khin:
NHM 37
Page 4
Lnh JR
Lnh JR s c thc hin sau 2 chu k lnh. Tng t, khi c lnh
JR th 2 cu lnh sau lnh JR s b xa, v tn hiu iu khin s khng
cn to ra lnh NOP v cu lnh b xa.
Lnh load
Lnh load c Stall lm cho khng ghi d liu vo PC, IF_ID v cc
lnh iu khin b xa. Vi cch lm trn th cu lnh k tip sau lnh
load s xut hin 2 chu k tng EX nn xut hin ForwardB, nhng iu
ny khng nh hng ti kt qu cc thanh ghi v cc lnh iu khin
b xa.
Lnh Sw
i vi lnh storewords: CPU hot ng bnh thng. Khi lnh sw
n tng
MEM th phi mt chu k d liu mi c ghi.(ch l ghi d liu ch
xy ra ti
chu k cui).
Cc lnh R
Lnh R thc hin nh lab3, khi cu lnh qua tng EX th CPU thc
hin lnh
v ch n 2 chu k sau khi qua tng MEM, WB th d liu ghi vo thanh ghi
ch.
NHM 37
Page 5
NHM 37
Page 6
vn
Forward:
ID/EX
EX/MEM
ForwardA=1
0
MEM/WB
ForwardB=0
0
ForwardB=0
1
ID/EX
ForwardB=1
0
EX/MEM
MEM/WB
NHM 37
Page 7
NHM 37
Page
KHI WRITE-BACK:
Khi ny nhm mc nh c ngay d liu ang c ghi ng thi
khc phc khng cho xy ra Hazard tng Writeback.
CODE KHOI WRITEBACK:
`timescale 1 ps / 100 fs
module
WB_forward(ReadData1Out,ReadData2Out,ReadData1,ReadData2,rs,rt,WriteRe
gister,WriteData,RegWrite);
//module nay nham muc dich co the doc ngay du lieu dang duoc ghi dong thoi
// khac phuc khong cho Hazard xay ra o WriteBack Stage
output [31:0] ReadData1Out,ReadData2Out;
input [31:0] ReadData1,ReadData2,WriteData;
input [4:0] rs,rt,WriteRegister;
input RegWrite;
wire ReadSourceRs,ReadSourceRt;
// neu viet theo behavior thi phai khai bao reg thay vi wire
wire compOut1,compOut2;
always @(rs or rt or WriteRegister or WriteData or RegWrite)
begin
if ((RegWrite==1)&&(WriteRegister != 0)&&(WriteRegister==rs))
ReadSourceRs = 1'b1; //Forwarding WriteData to ReadData1
else
ReadSourceRs = 1'b0;
if ((RegWrite==1)&&(WriteRegister != 0)&&(WriteRegister==rt))
ReadSourceRt = 1'b1; //Forwarding WriteData to ReadData2
else
ReadSourceRt = 1'b0;
end
endmodule
NHM 37
Page 9
NHM 37
10
Page
Nhm 37
11
Page
Nhm 37
12
Page
Page
endmodule
module mux2_1(O,A,B,sel);
// sel = 0 thi O = A
// sel = 1 thi O =B
output O;
input A,B,sel;
not #(50) not1(nsel,sel);
and #(50) and1(O1,A,nsel);
and #(50) and2(O2,B,sel);
or #(50) or2(O,O1,O2);
endmodule
NHM 49
14
Page
ON CODE ASM:
a
ch (
thp
0 phn)
00111000000100010000000000000010
00111000000100100000000000000110
J lableB
00001000000000000000000000000101
12
00111000000100010000000000000010
16
00111000000100100000000000000010
20
00000010010100011001100000100010
24
00010110001100101111111111111100
28
00000010001100101010000000100000
32
Sw $s4, 8($s3)
10101110011101000000000000001000
36
Lw $5, 8($3)
10001110011101010000000000001000
40
00000010010101011011000000101010
44
00111010110101100000000000000001
48
Jr $6
00000010110000000000000000001000
Lnh
M my
52
56
NHM 37
.............
Page 15