Khoa
Khoa
KH & KT
KH & KT
M
M
ỏ
ỏ
y
y
t
t
ớ
ớ
nh
nh
Bo
Bo
ọ
ọ
moõn
moõn
Kyừ
Kyừ
thua
thua
ọ
ọ
t
t
Ma
Ma
ự
ự
y
y
t
t
ớ
ớ
nh
nh
Pha
Pha
ù
ù
m
m
T
T
ử
ử
ụ
ụ
ứ
ứ
ng
ng
Ha
Ha
ỷ
ỷ
i
i
Nguyeón
Nguyeón
Quo
Quo
ỏ
ỏ
c
c
Tua
Tua
ỏ
ỏ
n
n
Kiến trúc Máy tính - Chap 04
2
Tài liệuthamkhả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
3
Chương 4.
Kiến trúc Máy tính - Chap 04
4
4.1 Dẫnnhậ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
5
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ị 1011
2
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à 2
32
–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
6
) 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
7
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)
• Tràn dấu (overflow)
• Điều kiện
gây tràn dấu
•Xử lý tràn ?
) 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)
≥
0
≥
0
< 0A - B
< 0< 0
≥
0
A - B
≥
0
< 0< 0A + B
< 0
≥
0
≥
0
A + B
Kết quảBAPhép toán
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
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
9
) 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
10
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
functshamtrdrtrsop
08101600
Kiến trúc Máy tính - Chap 04
11
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
a
b
c
d
0
1
a
b
Sum
C
in
C
out
+
Kiến trúc Máy tính - Chap 04
12
) ALU 1 bit ) ALU 32 bit
+
0
1
2
a
b
Result
OperationC
in
C
out
C
in
ALU
0
C
out
C
in
ALU
1
C
out
C
in
ALU
2
C
out
C
in
ALU
31
C
out
C
in
Operation
a
0
b
0
a
1
b
1
a
2
b
2
a
31
b
31
Result
0
Result
1
Result
2
Result
31
Kiến trúc Máy tính - Chap 04
13
) Tinh chỉnh đơn vị ALU
+
0
1
2
a
b
Result
Operation
C
in
C
ou
t
0
1
B
invert
+
0
1
2
a
b
Result
Operation
C
in
C
ou
t
0
1
B
invert
3
Less
Kiến trúc Máy tính - Chap 04
14
) Tinh chỉnh đơn vị ALU (tt)
C
in
ALU
0
C
out
a
0
b
0
Less
C
in
Operation
Result
0
Result
1
Result
2
C
in
ALU
1
C
out
a
1
b
1
0
Less
C
in
ALU
2
C
out
a
2
b
2
0
Less
C
in
ALU
31
C
out
a
31
b
31
0
Less
B
invert
Result
31
Overflow
Set
+
0
1
2
a
b
Result
Operation
C
in
Set
0
1
B
invert
3
Less
Overflow
Overflow
Kiến trúc Máy tính - Chap 04
15
) Tinh chỉnh đơn vị ALU (tt)
C
in
ALU
0
C
out
a
0
b
0
Less
C
in
Operation
Result
0
Result
1
Result
2
C
in
ALU
1
C
out
a
1
b
1
0
Less
C
in
ALU
2
C
out
a
2
b
2
0
Less
C
in
ALU
31
C
out
a
31
b
31
0
Less
B
invert
Result
31
Overflow
Set
Zero
ALU
a
b
ALU operation
Zero
Result
Overflow
Carry out
Kiến trúc Máy tính - Chap 04
16
4.6 Mạch nhân
) Phép toán nhân
Số bị nhân (Multiplicand) 1000
2
Số nhân (Multiplier) 1001
2
1000
0000
0000
1000
Tích (Product) 1001000
2
) 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
17
) 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
18
) 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
19
) 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
20
) 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ứ
trên chuỗi bit 1 ở số nhân
) 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
Không làm gì cả11
Trừ đi số bị nhân01
Cộng thêm số bị nhân10
Không làm gì cả00
Thực hiệna
i-1
a
i
Kiến trúc Máy tính - Chap 04
21
4.7 Mạch chia
) Phép toán chia
Số bị chia (Dividend) 1001010
2
1000
2
Số chia (Divisor)
- 1000
10
101
1011
- 1000
Số dư (Remainder) 10
) 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
1001
2
Thương số
(Quotient)
Kiến trúc Máy tính - Chap 04
22
) Mạch chia dạng 1
•Sơ đồ khối
•Giải thuật
• Minh họa
Kiến trúc Máy tính - Chap 04
23
) Mạch chia dạng 2
•Sơ đồ mạch
•Giải thuật ?
• Minh họa
) Mạch chia dạng 3
•Sơ đồ mạch
Kiến trúc Máy tính - Chap 04
24
) Mạch chia dạng 3 (tt)
•Giải thuật
• Minh họa
Kiến trúc Máy tính - Chap 04
25
) Chia số nguyên có dấu
• Chia phần trị tuyệt đối, sau đóxác định dấu cho thương số
) Chia trong tập lệnh MIPS
•Sử dụng thanh ghi hi để chứa số dư và lo để chứa thương số
•Lệnh chia
div rs , rt
divu rs , rt
•Lệnh chuyển dữ liệu thương số và số dư
mfhi rd
mflo rd