Professional Documents
Culture Documents
IT012 Chapter8
IT012 Chapter8
MÁY TÍNH II
Chương 8
Bộ xử lý
07/13/2023
Mạch số
Datapath dùng để thực thi lệnh! Một lệnh thực thi như thế
nào?
Chu kỳ thực thi lệnh!
• Bộ nhớ lệnh • Tập thanh ghi • ALU • Bộ nhớ dữ • Tập thanh ghi
• PC • Bộ nhớ dữ liệu • Bộ so sánh liệu
• Mở rộng dấu
I O ADDR DATA_RD
PC IMEM
+
4
ADDR DATA_RD
[20:16] rt
IMEM [31:26]
[15:11] opcode
rd
[25:21] rs
[10:6]
shamt ADDR DATA_RD
[20:16] rt
[5:0]
funt IMEM
[15:0] immediate
[31:26]
opcode
ADDR DATA_RD
IMEM
[25:0] address
Dựa vào định dạng lệnh mà nạp toán hạng tương ứng
[31:26] [31:26]
opcode opcode
[20:16] rt [20:16] rt
ADDR_RDB
ADDR_RDB
DATA_A
DATA_A [15:11]
[15:11] REG FILE
rd REG FILE
ADDR_WR DATA_B
ADDR_RDB DATA_B
[10:6]
shamt
DATA_WR
DATA_WR
[5:0]
funt
immediate
SignExtend
[31:26]
opcode
[25:21] rs ADDR_RDA
I O
[20:16] rt
PC ADDR_RDB
DATA_A
[15:11]
+ REG FILE
ADDR_WR DATA_B
4
DATA_WR
immediate
SignExtend <<2
[31:26]
opcode
I O ADDR DATA_RD
PC IMEM
+
4 [25:0] address
<<2
[31:28]
ADDR_RDA ADDR_RDA
ADDR_RDB ADDR_RDB
DATA_A DATA_A
REG FILE REG FILE
ALU ALU
ADDR_RDB DATA_B ADDR_WR DATA_B
DATA_WR DATA_WR
SignExtend
ADDR
ALU DATA_RD
DMEM
DATA_WR
Ghi dữ liệu tới bộ nhớ dữ liệu đối với các lệnh lưu
ADDR_RDA ALUOp
ADDR_RDB
DATA_A
REG FILE ADDR
ALU DATA_RD
ADDR_RDB DATA_B
DMEM
DATA_WR
DATA_WR
SignExtend
RegEn ALUOp
RegEn ALUOp
ADDR_RDA
ADDR_RDA
ADDR_RDB
DATA_A
REG FILE ADDR
ADDR_RDB ALU DATA_RD
DATA_A ADDR_RDB DATA_B
REG FILE ALU DMEM
ADDR_RDB DATA_B
DATA_WR
DATA_WR
DATA_WR
SignExtend
ALU_Inst C, A, B
Inst[31:26]
DATA_WR
+ Inst[5:0] ALU
ALUOp
Control
4
lw C, B(A)
RegEn
Inst[31:26]
DMEM
DATA_WR
Inst[15:0] DATA_WR
+ SignExtend
4 Inst[5:0] ALU
ALUOp
Control
lw C, B(A)
DmemWr
Inst[31:26]
DMEM
DATA_WR
Inst[15:0] DATA_WR
+ SignExtend
4 Inst[5:0] ALU
ALUOp
Control
lw/sw
ADDR Inst[25:21] ADDR_RDA
DATA_RD
DMEM
DATA_WR
Inst[15:0] DATA_WR
+ SignExtend
4 Inst[5:0] ALU
ALUOp
Control
DmemWr
Inst[31:26]
ADDR
DATA_RD
Inst[25:21] ADDR_RDA
sw
IMEM Inst[20:16] ADDR_RDB
PC
DATA_A
REG FILE zero
ALU ADDR
ADDR_WR DATA_B
DATA_RD
DMEM
DATA_WR
Inst[15:0] DATA_WR
+ SignExtend
4 Inst[5:0] ALU
ALUOp
Control
beq A, B, C
PCSrc
Inst[31:26]
DATA_B
DATA_WR
+ Inst[15:0]
SignExtend
Inst[5:0] ALU
4 ALUOp
Control
<<2
Inst[31:26]
alu
ADDR Inst[25:21] ADDR_RDA
DATA_RD
DATA_WR
+ Inst[5:0] ALU
ALUOp
Control
4
PCSrc RegEn
Inst[31:26]
Inst[25:21]
beq /alu
1 ADDR ADDR_RDA
DATA_RD
0
IMEM Inst[20:16] ADDR_RDB
PC
DATA_A
Inst[15:11] REG FILE zero zero
ADDR_WR ALU
DATA_B
DATA_WR
+ Inst[15:0]
SignExtend
Inst[5:0] ALU
4 ALUOp
Control
<<2
Inst[31:26]
PC
DATA_RD
DMEM
DATA_WR
Inst[15:0] DATA_WR
+ SignExtend
4 Inst[5:0] ALU
ALUOp
Control
Inst[31:26]
zero
1 ADDR Inst[25:21] ADDR_RDA
beq/alu /lw/sw
DATA_RD
0
IMEM Inst[20:16] ADDR_RDB
PC
DATA_A
REG FILE zero
Inst[15:11] 0 ADDR_WR ALU ADDR DATA_RD 1
Inst[15:11]
1
DATA_B 0 DMEM 0
DATA_WR
1
DATA_WR
+ Inst[15:0]
SignExtend
Inst[5:0] ALU
4 ALUOp
Control
<<2
Trình bày các khối chức năng được sử dụng khi thực thi lệnh
addi?
Trình bày các khối chức năng được sử dụng khi thực thi lệnh
sw?