- Trang Chủ
- Phần cứng
- Bài giảng Kiến trúc máy tính: Chương 4 - Phạm Tường Hải, Nguyễn Quốc Tuấn
Xem mẫu
- Khoa KH & KT Máy tính
Boä moân Kyõ thuaät Maùy tính
Phaïm Töôøng
ng Haûi
Nguyeãn Quoác Tuaán
- Tài liệu tham khảo
“Computer Organization and Design: the hardware/software
interface”,
John L. Hennessy & David A. Patterson, Second Edition,
MORGAN KAUFMANN PUBLISHERS, INC. 1998
“Computer Architecture: a quantitative approach”,
John L. Hennessy & David A. Patterson, Third Edition,
MORGAN KAUFMANN PUBLISHERS, INC. 2002
Kiến trúc Máy tính - Chap 04 2
- Chương 4.
Kiến trúc Máy tính - Chap 04 3
- 4.1 Dẫn nhập
Máy tính biểu diễn thông tin dưới dạng nhị phân
Các đại lượng số đếm cũng biểu diễn dưới dạng
nhị phân
Một số câu hỏi thường gặp
• Cách biểu diễn số đếm trên máy tính ?
• Các giới hạn trong biểu diễn số đếm ?
• Cách tính toán trên số nhị phân ?
• Số thực ? v.v...
Nội dung của chương này bao gồm
• Biểu diễn số đếm trên máy tính
• Các giải thuật tính toán
• Phần cứng hiện thực giải thuật tính toán
• Nhóm lệnh tính toán
Kiến trúc Máy tính - Chap 04 4
- 4.2 Số nguyên có dấu và không dấu
MIPS biểu diễn số nguyên theo từ (word) có kích thước
32 bit
Td. biểu diễn giá trị 10112
0000 0000 0000 0000 0000 0000 0000 1011
• Bit trọng số thấp nhất (least significant bit) nằm bên phải cùng
• Bit trọng số cao nhất (most significant bit) nằm bên trái cùng
Tầm vực giá trị biểu diễn ở số nguyên không dấu
• Nhỏ nhất là 0 , lớn nhất là 232 – 1 (4.294.967.295)
0000 0000 0000 0000 0000 0000 0000 0000
1111 1111 1111 1111 1111 1111 1111 1111
Các bit không có nghĩa là các bit 0 nằm ở bên trái của
số đếm
Kiến trúc Máy tính - Chap 04 5
- ...
MIPS biểu diễn số nguyên âm theo bù 2
• Bit dấu (sign bit) là bit nằm phía trái cùng
• Tầm vực giá trị biểu diễn từ - 2(32-1) cho đến 2(32-1) -1
1000 0000 0000 0000 0000 0000 0000 0000
0111 1111 1111 1111 1111 1111 1111 1111
Vấn đề mở rộng dấu (sign extension)
• Td. biểu diễn giá trị -5
toán hạng 8 bit 1111 1011
toán hạng 16 bit 1111 1111 1111 1011
toán hạng 32 bit 1111 1111 1111 1111 1111 1111 1111 1011
• Lưu ý về các bit không có nghĩa ?
Các lệnh liên quan đến số nguyên có dấu và không dấu
• lb và lbu , slt và sltu , slti và sltiu
Kiến trúc Máy tính - Chap 04 6
- 4.3 Cộng và trừ
Cộng trừ nhị phân theo số bù 2
Kết quả của phép cộng/trừ vượt quá giới hạn biểu diễn ?
• Tràn bit (carry)
Phép toán A B Kết quả
• Tràn dấu (overflow) A + B ≥ 0 ≥ 0 < 0
• Điều kiện A + B < 0 < 0 ≥ 0
gây tràn dấu A - B ≥ 0 < 0 < 0
• Xử lý tràn ? A - B < 0 ≥ 0 ≥ 0
Các lệnh số học
• Cộng/trừ số nguyên có dấu add , addi , sub
sinh ra ngoại lệ (exception) thông báo đến bộ điều khiển
• Cộng/trừ số nguyên không dấu addu , addiu , subu
Thanh ghi EPC (exception program counter) chứa địa
chỉ của câu lệnh sinh ra ngoại lệ
• Lệnh mfc0 reg , $epc (move from system control)
Kiến trúc Máy tính - Chap 04 7
- ...
Phân tích đoạn chương trình sau
addu $t0 , $t1 , $t2
xor $t3 , $t1 , $t2
slt $t3 , $t3 , $zero
bne $t3 , $zero , No_overflow
xor $t3 , $t0 , $t1
slt $t3 , $t3 , $zero
bne $t3 , $zero , Overflow
Kiến trúc Máy tính - Chap 04 8
- ...
Phân tích đoạn chương trình sau
addu $t0 , $t1 , $t2
nor $t3 , $t1 , $zero
sltu $t3 , $t3 , $t2
bne $t3 , $zero , Overflow
Kiến trúc Máy tính - Chap 04 9
- 4.4 Các phép toán luận lý
Các phép toán luận lý cơ bản
• and , andi
• or , ori
Các lệnh dịch (shift)
• Dịch luận lý (logical shift)
sll rd , rt , shamt và sllv rd , rt , rs
srl rd , rt , shamt và srlv rd , rt , rs
• Dịch số học (arithmetic shift)
sra rd , rt , shamt và srav rd , rt , rs
Dạng thức lệnh dịch trái luận lý
• Td. sll $t2 , $s0 , 8
0 0 16 10 8 0
op rs rt rd shamt funct
Kiến trúc Máy tính - Chap 04 10
- 4.5 Đơn vị số học – luận lý
Đơn vị số học – luận lý (ALU – Arithmetic Logic Unit)
đảm nhận việc thực hiện các phép toán cho bộ xử lý
MIPS là bộ xử lý có độ dài từ là 32 bit nên cần đơn vị
ALU 32 bit
Các mạch phần cứng cơ bản
d
Cin
a 0
c a Sum
b 1 b + Cout
Kiến trúc Máy tính - Chap 04 11
- ...
ALU 1 bit ALU 32 bit
Cin Operation
Cin Operation
a0 Cin
Result0
ALU0
b0 Cout
a
0
a1 Cin
Result1
ALU1
1 Result b1 Cout
a2 Cin
Result2
ALU2
b + 2 b2 Cout
Cout
a31 Cin
Result31
ALU31
b31 Cout
Kiến trúc Máy tính - Chap 04 12
- ...
Tinh chỉnh đơn vị ALU
B invert Cin Operation
a
0
B invert Cin Operation
1 Result
a
0
1
b 0 + 2 Result
1
Cout
b 0 + 2
1
Less
3
Cout
Kiến trúc Máy tính - Chap 04 13
- ...
Tinh chỉnh đơn vị ALU (tt) B invert Cin Operation
B invert Cin Operation
a0 Cin
a b0 ALU0
Result0
0 Less C
out
1 a1 Cin
b1 Result1
ALU1
Result
0 Less C
out
b 0 + 2 a2
b2
Cin
ALU2
Result2
1
0 Less C
Less
3 Set
out
Overflow
Overflow a31 Cin Result31
b31 ALU31 Overflow
Less C Set
0 out
Kiến trúc Máy tính - Chap 04 14
- ...
B invert Cin Operation
Tinh chỉnh đơn vị ALU (tt)
a0 Cin
Result0
b0 ALU0
Less C
out
ALU operation
a1 Cin
Result1 a
b1 ALU1 Zero
0 Less C
out
Zero ALU Result
Overflow
a2 Cin
Result2 b
b2 ALU2
0 Less C
out Carry out
Result31
a31 Cin
Overflow
b31 ALU31
Less C Set
0 out
Kiến trúc Máy tính - Chap 04 15
- 4.6 Mạch nhân
Phép toán nhân
Số bị nhân (Multiplicand) 10002
Số nhân (Multiplier) 10012
1000
0000
0000
1000
Tích (Product) 10010002
Hiện thực
• Bằng chương trình dựa trên các phép toán cộng/trừ
• Bằng mạch phần cứng
Kiến trúc Máy tính - Chap 04 16
- ...
Mạch nhân dạng 1
• Sơ đồ khối
• Giải thuật
• Minh họa
Kiến trúc Máy tính - Chap 04 17
- ...
Mạch nhân dạng 2
• Sơ đồ khối
• Giải thuật
• Minh họa
Kiến trúc Máy tính - Chap 04 18
- ...
Mạch nhân dạng 3
• Sơ đồ khối
• Giải thuật
• Minh họa
Kiến trúc Máy tính - Chap 04 19
- ...
Nhân số nguyên có dấu
• Nhân phần trị tuyệt đối, sau đó xác định dấu cho tích số
• Giải thuật Booth: căn cứ
ai ai-1 Thực hiện
trên chuỗi bit 1 ở số nhân
0 0 Không làm gì cả
0 1 Cộng thêm số bị nhân
1 0 Trừ đi số bị nhân
1 1 Không làm gì cả
Nhân trong tập lệnh MIPS
• Tích số là 1 giá trị 64 bit được chứa trong cặp thanh ghi hi và lo
• Lệnh nhân mult rs , rt
multu rs , rt
• Lệnh chuyển dữ liệu tích số
mfhi rd
mflo rd
Kiến trúc Máy tính - Chap 04 20
nguon tai.lieu . vn