You are on page 1of 31

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KỸ THUẬT MÁY TÍNH

IT012 – TỔ CHỨC VÀ CẤU TRÚC MÁY TÍNH II

CHƯƠNG 9
BỘ XỬ LÝ (tt)
Nội dung
1. Thực thi nhóm lệnh luận lý & số học
Kiến trúc add, sub, and, or, slt
2. Thực thi nhóm lệnh truyền dữ liệu
Vi kiến trúc lw, sw
3. Thực thi nhóm lệnh điều khiển - beq
Luận lý 4. Thực thi tất cả các nhóm lệnh
5. Khối điều khiển
Mạch số 6. Câu hỏi và Bài tập

2 IT012 – Tổ chức và Cấu trúc Máy tính


Nội dung
1. Thực thi nhóm lệnh luận lý & số học
Kiến trúc add, sub, and, or, slt
2. Thực thi nhóm lệnh truyền dữ liệu
Vi kiến trúc lw, sw
3. Thực thi nhóm lệnh điều khiển - beq
Luận lý 4. Thực thi tất cả các nhóm lệnh
5. Khối điều khiển
Mạch số 6. Câu hỏi và Bài tập

3 IT012 – Tổ chức và Cấu trúc Máy tính


1. Thực thi nhóm lệnh luận lý & số học (1/2)

Giải mã Truy xuất Lưu kết


Nạp lệnh Giải
lệnhmã Thực thi quả
Bộ nhớ

Inst = IM[PC] A = R[rs] ALU = A op B C = ALU


PC = PC + 4 B = R[rt]
C = R[rd]

4 IT012 – Tổ chức và Cấu trúc Máy tính


1. Thực thi nhóm lệnh luận lý & số học (2/2)
RegEn

Inst[31:26]

ADDR Inst[25:21] ADDR_RDA


DATA_RD

IMEM Inst[20:16] ADDR_RDB


PC
DATA_A
REG FILE ALU
Inst[15:11]
ADDR_WR DATA_B

DATA_WR

+ Inst[5:0] ALU
ALUOp
Control
4

5 IT012 – Tổ chức và Cấu trúc Máy tính


Nội dung
1. Thực thi nhóm lệnh luận lý & số học
Kiến trúc add, sub, and, or, slt
2. Thực thi nhóm lệnh truyền dữ liệu
Vi kiến trúc lw, sw
3. Thực thi nhóm lệnh điều khiển - beq
Luận lý 4. Thực thi tất cả các nhóm lệnh
5. Khối điều khiển
Mạch số 6. Câu hỏi và Bài tập

6 IT012 – Tổ chức và Cấu trúc Máy tính


2. Thực thi nhóm lệnh truyền dữ liệu (1/5) - lw

Giải mã Truy xuất Lưu kết


Nạp lệnh Giải
lệnhmã Thực thi quả
Bộ nhớ

Inst = IM[PC] A = R[rs] ALU = A + B D = DM[ALU] C=D


PC = PC + 4 B = SigExt(imm)
C = R[rt]

7 IT012 – Tổ chức và Cấu trúc Máy tính


2. Thực thi nhóm lệnh truyền dữ liệu (2/5) - lw
RegEn

Inst[31:26]

ADDR Inst[25:21] ADDR_RDA


DATA_RD

IMEM Inst[20:16] ADDR_RDB


PC
DATA_A
REG FILE
ALU ADDR
ADDR_WR DATA_B
DATA_RD

DMEM
DATA_WR

Inst[15:0] DATA_WR
+ SignExtend

4 Inst[5:0] ALU
ALUOp
Control

8 IT012 – Tổ chức và Cấu trúc Máy tính


1. Thực thi nhóm lệnh truyền dữ liệu (3/5) - sw

Giải mã Truy xuất Lưu kết


Nạp lệnh Giải
lệnhmã Thực thi quả
Bộ nhớ

Inst = IM[PC] A = R[rs] ALU = A + B DM[ALU] = C


PC = PC + 4 B = SigExt(imm)
C = R[rt]

9 IT012 – Tổ chức và Cấu trúc Máy tính


2. Thực thi nhóm lệnh truyền dữ liệu (4/5) - sw
DmemWr

Inst[31:26]

ADDR Inst[25:21] ADDR_RDA


DATA_RD

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

10 IT012 – Tổ chức và Cấu trúc Máy tính


RegEn
DmemWr
Inst[31:26]

lw/sw
ADDR Inst[25:21] ADDR_RDA
DATA_RD

IMEM Inst[20:16] ADDR_RDB


PC
DATA_A
REG FILE
ALU ADDR
ADDR_WR DATA_B
DATA_RD

DMEM
DATA_WR

Inst[15:0] DATA_WR
+ SignExtend

4 Inst[5:0] ALU
ALUOp
Control

DmemWr

ADDR Inst[25:21] ADDR_RDA


sw Inst[31:26]

DATA_RD

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
11 IT012 –Inst[5:0]
Tổ chức và Cấu trúc MáyControl
tính
ALU
ALUOp
Nội dung
1. Thực thi nhóm lệnh luận lý & số học
Kiến trúc add, sub, and, or, slt
2. Thực thi nhóm lệnh truyền dữ liệu
Vi kiến trúc lw, sw
3. Thực thi nhóm lệnh điều khiển - beq
Luận lý 4. Thực thi tất cả các nhóm lệnh
5. Khối điều khiển
Mạch số 6. Câu hỏi và Bài tập

12 IT012 – Tổ chức và Cấu trúc Máy tính


3. Thực thi nhóm lệnh điều khiển (1/2) - beq

Giải mã Truy xuất Lưu kết


Nạp lệnh Giải
lệnhmã Thực thi quả
Bộ nhớ

Inst = IM[PC] A = R[rs] ALU = A – B PC = PC_nxt


zero = ~|ALU
B = R[rt] if(zero)
C = SigExt(imm) PC_nxt = PC + D
D = C << 2 else
PC_nxt = PC + 4
13 IT012 – Tổ chức và Cấu trúc Máy tính
3. Thực thi nhóm lệnh điều khiển (2/2) - beq
PCSrc

Inst[31:26]

1 ADDR Inst[25:21] ADDR_RDA


DATA_RD
0
IMEM Inst[20:16] ADDR_RDB
PC
DATA_A
REG FILE zero zero
ADDR_WR ALU

DATA_B
DATA_WR

+ Inst[15:0]
SignExtend
Inst[5:0] ALU
4 ALUOp
Control

<<2

14 IT012 – Tổ chức và Cấu trúc Máy tính


Nội dung
1. Thực thi nhóm lệnh luận lý & số học
Kiến trúc add, sub, and, or, slt
2. Thực thi nhóm lệnh truyền dữ liệu
Vi kiến trúc lw, sw
3. Thực thi nhóm lệnh điều khiển - beq
Luận lý 4. Thực thi tất cả các nhóm lệnh
5. Khối điều khiển
Mạch số 6. Câu hỏi và Bài tập

15 IT012 – Tổ chức và Cấu trúc Máy tính


RegEn

Inst[31:26]

alu
ADDR Inst[25:21] ADDR_RDA
DATA_RD

IMEM Inst[20:16] ADDR_RDB


PC
DATA_A
REG FILE ALU
Inst[15:11]
ADDR_WR DATA_B

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

16 IT012 – Tổ chức và Cấu trúc Máy tính


RegEn DmemWr

Inst[31:26]

ADDR Inst[25:21] ADDR_RDA

PC
DATA_RD

IMEM Inst[20:16] ADDR_RDB


lw/sw
DATA_A
REG FILE
ALU ADDR
ADDR_WR DATA_B
DATA_RD

DMEM
DATA_WR

Inst[15:0] DATA_WR
+ SignExtend

4 Inst[5:0] ALU
ALUOp
Control

RegDst RegEn ALUSrc DmemWr MemtoReg


PCSrc

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 ALU ADDR DATA_RD 1
ADDR_WR
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

17 IT012 – Tổ chức và Cấu trúc Máy tính


18 IT012 – Tổ chức và Cấu trúc Máy tính
Nội dung
1. Thực thi nhóm lệnh luận lý & số học
Kiến trúc add, sub, and, or, slt
2. Thực thi nhóm lệnh truyền dữ liệu
Vi kiến trúc lw, sw
3. Thực thi nhóm lệnh điều khiển - beq
Luận lý 4. Thực thi tất cả các nhóm lệnh
5. Khối điều khiển
Mạch số 6. Câu hỏi và Bài tập

19 IT012 – Tổ chức và Cấu trúc Máy tính


5. Khối điều khiển (1/6)

20 IT012 – Tổ chức và Cấu trúc Máy tính


5. Khối điều khiển (2/6) – Loại R

21 IT012 – Tổ chức và Cấu trúc Máy tính


5. Khối điều khiển (3/6) – lw

22 IT012 – Tổ chức và Cấu trúc Máy tính


5. Khối điều khiển (4/6) – beq

23 IT012 – Tổ chức và Cấu trúc Máy tính


5. Khối điều khiển (5/6) – ALU Control
• ALU chỉ cần thực hiện các phép toán: Cộng, trừ, AND, OR, Thiết lập
nếu nhỏ hơn
• ALU Control là một mạch tổ hợp điều khiển ALU có bảng chân trị sau:
opcode ALUOp Lệnh funct Phép toán ALU ALU control
lw 00 Nạp word XXXXXX Cộng 0010
sw 00 Lưu word XXXXXX Cộng 0010
beq 01 Nhảy nếu bằng XXXXXX Trừ 0110
Loại R 10 Cộng 100000 Cộng 0010
Trừ 100010 Trừ 0110
AND 100100 AND 0000
OR 100101 OR 0001
Thiết lập nếu nhỏ hơn 101010 Thiết lập nếu nhỏ hơn 0111

24 IT012 – Tổ chức và Cấu trúc Máy tính


5. Khối điều khiển (6/6) - Control
• Khối điều khiển (Control) một mạch tổ hợp điều khiển datapath
hoạt động có bảng chân trị sau:

opcode RegWrite ALUSrc ALUOp MemWrite MemRead MemtoReg Branch


lw 1 1 00 0 1 1 0
sw 0 1 00 1 0 X 0
beq 0 0 01 0 0 X 1
Loại R 1 0 10 0 0 0 0

25 IT012 – Tổ chức và Cấu trúc Máy tính


Nội dung
1. Thực thi nhóm lệnh luận lý & số học
Kiến trúc add, sub, and, or, slt
2. Thực thi nhóm lệnh truyền dữ liệu
Vi kiến trúc lw, sw
3. Thực thi nhóm lệnh điều khiển - beq
Luận lý 4. Thực thi tất cả các nhóm lệnh
5. Khối điều khiển
Mạch số 6. Câu hỏi và Bài tập

26 IT012 – Tổ chức và Cấu trúc Máy tính


6. Câu hỏi và Bài tập (1)
Trình bày các
đường tín hiệu
và các khối chức
năng được sử
dụng khi thực
thi lệnh addi?

27 IT012 – Tổ chức và Cấu trúc Máy tính


6. Câu hỏi và Bài tập (2)
Trình bày các
đường tín hiệu
và các khối chức
năng được sử
dụng khi thực
thi lệnh sw?

28 IT012 – Tổ chức và Cấu trúc Máy tính


6. Câu hỏi và Bài tập (3)
Tìm chu kỳ nhỏ
nhất của CPU
nếu chỉ thực thi
lệnh and?

29 IT012 – Tổ chức và Cấu trúc Máy tính


6. Câu hỏi và Bài tập (4)
Tìm chu kỳ nhỏ
nhất của CPU
nếu chỉ thực thi
lệnh lw?

30 IT012 – Tổ chức và Cấu trúc Máy tính


6. Câu hỏi và Bài tập (5)
Tìm chu kỳ nhỏ
nhất của CPU
nếu chỉ thực thi
lệnh sw?

31 IT012 – Tổ chức và Cấu trúc Máy tính

You might also like