You are on page 1of 21

Ôn tập

COA2, HK1, 2020-2021


Nội dung
- Kiến trúc tập lệnh
- Các toán hạng trong mips
- Định dạng lệnh (chuyển đổi qua lại giữa mã máy và lệnh hợp ngữ
- Lập trình ngôn ngữ MIPS assembly (Lưu ý không sử dụng lệnh giả)
- Bộ xử lý:
o Các bước thực thi một số lệnh
o Chức năng của datapath, control
- Tính hiệu suất của máy tính, các chỉ số CPI, IPC, chu kỳ, tần số
- Tính chu kỳ, tần số
- Critical path của các lệnh, => chu kỳ, tần số
Chuyển đổi lệnh hợp ngữ sang nhị phân

lw $s4, 4($t3)
add $t0, $t1, $s3
sw $t2, -20($s0)
Chuyển đổi lệnh hợp ngữ sang nhị phân

8 = 0000 0000 0000 1000


Bù 1 = 1111 1111 1111 0111
Bù 2 = 1111 1111 1111 1000
Address (PC)   Lệnh Binary code

0x00400000   lw $s4, 4($t3)  

0x00400004   add st0, $t1, $s3  

0x00400008 loop: sub $s4, $s5, $s6  


0x0040000c   bne $s2,$t7, exit  
0x00400010   j loop  

0x00400014   addi $t1, $t1, 20  

0x00400018   sw $t2, -20($s0)  


0x0040001c exit    
       
• Cho đoạn chương trình sau được thực thi
sub $s1, $s2, $t1
lw $s2, 0($s1)
sw $s1, 4($s2)
add $s2, $s2, $s1

Giả sử CPU hoạt động với tần số 4Ghz, CPI=1.5, xác định thời gian
thực thi của Chương trình
Xét 2 cách hiện thực khác nhau của cùng kiến trúc tập lệnh lên hai bộ xử lý P1 và P2.
Có 4 lớp lệnh: A, B, C và D. Tần số xung clock và CPI của mỗi cách thiết kế được cho
như bảng bên dưới.
Cho một chương trình với 106 lệnh được chia thành các lớp sau: 10% lớp A, 20% lớp
B, 50% lớp C và 20% lớp D. Cách hiện thực nào sẽ chạy nhanh hơn (hay bộ xử lý nào
sẽ chạy nhanh hơn) với chương trình này?
Bộ xử lý Clock CPI Class CPI Class CPI Class CPI Class
rate A B C D

P1 1.5 Ghz 1 2 3 4

P2 2 Ghz 2 2 2 3

Tìm CPI trung bình của mỗi bộ xử lý với chương trình trên?
Tìm tổng số chu kì xung clock của chương trình trên P1 và P2.
So sánh hiệu suất của P1 và P2
Kiến trúc tập lệnh
• Toán hạng:
• Toán hạng thanh ghi
• Toán hạng bộ nhớ
• Toán hạng hằng
• Tập thanh ghi:
• 32 thanh ghi được đánh tên và địa chỉ theo word
• Chức năng của mỗi thanh ghi
• Biên dịch Chương trình hợp ngữ
Chương trình ngôn ngữ
cấp cao (C, Java, ...)
1. Trình biên dịch (1/2)
Trình biên dịch • Trình biên dịch có chức năng chuyển chương
trình được viết bởi ngôn ngữ lập trình cấp cao
thành chương trình hợp ngữ:
Chương trình hợp ngữ • Ngôn ngữ lập trình cấp cao (C, Java, …) gần với suy
(MIPS, ARM, ...) nghĩ con người và độc lập phần cứng
• Hợp ngữ (MIPS, ARM, ...) là một ngôn ngữ gợi nhớ
Trình biên dịch của mã máy, phụ thuộc phần cứng
hợp ngữ

Mã máy (có thể thực thi


trên máy tính)
9
1. Vi kiến trúc (1/2)
• Kiến trúc Máy tính
• Kiến trúc tập lệnh (ISA): Quy định máy tính có
thể làm những việc gì?
• Lệnh
• Vi kiến trúc (Tổ chức Phần cứng Máy tính):
Quy định máy tính làm việc như thế nào?
• Hiện thực

10
2. Datapath (1/9) – Chu kỳ thực thi lệnh
• 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!

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


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

• Bộ nhớ lệnh • Tập thanh ghi • ALU • Bộ nhớ dữ liệu • Tập thanh ghi
• PC • Mở rộng dấu • Bộ so sánh

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

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

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

15
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

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 16
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

17
1. Thời gian thực thi và Hiệu suất
• Thời gian thực thi: Tổng thời gian để hoàn thành một tác vụ nào đó
• Truy cập ổ đĩa, bộ nhớ, I/O, OS, v.v...

• Hiệu suất: Số lượng tác vụ hoàn thành trong một đơn vị thời gian

1
Hi ệu  su ấ t  = 
Th ờ i  gian   th ự c  thi

18
2. Clock (3/3)
Thời gian thực thi = Tổng số chu kỳ clock * Chu kỳ clock

Tăng hiệu suất bằng cách giảm chu kỳ clock (tăng tần số clock)

19
3. CPI (Clock cycle Per Instruction) (1/2)

Tổng số chu kỳ clock = Tổng số lệnh * CPI

Thời gian thực thi = Tổng số lệnh * CPI * Chu kỳ clock

Thời gian thực thi

20
3. CPI (Clock cycle Per Instruction) (2/2)
• Mỗi tập lệnh có nhiều nhóm lệnh khác nhau

21

You might also like