Bài giảng Kiến trúc máy tính - Chương 3: Phép số học - Nguyễn Thanh Sơn
Computer Architecture
Computer Science & Engineering
Chương 3
Phép số học
BK
TP.HCM
Các phép số học
Các phép tính trên số nguyên
Cộng và Trừ
Nhân và Chia
Xử lý tràn
Số thực với dấu chấm di động (Floating-
Point)
Cách biểu diễn và các phép tính
BK
TP.HCM
2
4/5/2019
Khoa Khoa học & Kỹ thuật Máy tính
Nhắc lại mạch số
Môn học:
Nhập môn điện toán (Năm I)
Thiết kế hệ thống số
BK
TP.HCM
3
4/5/2019
Khoa Khoa học & Kỹ thuật Máy tính
Mạch Half Adder
XOR
x
y
S
C
Half
adde
r
x
y
S
C
XOR AND
x
0
0
1
1
y
0
1
0
1
S
0
1
0
C
0
0
1
AND
Khoa Khoa học & Kỹ thuật Máy tính
4
5 April 2019
Mạch Full Adder
C0
S
Full
adder
x
y
C
S = x + y + C0
Half adder 1
S = (x + y) + C0
Tính: S1 = x + y
Tính: S2 = S1 + C0
Half adder 2
Khoa Khoa học & Kỹ thuật Máy tính
5
5 April 2019
Full adder (2)
C0
x
0
0
1
1
0
0
1
1
y
0
1
1
0
1
1
S C C0 S1 C1 C2 C
0
0
1
0
1
0
1
0
0
1
0
1
1
0
0
0
1
1
1
0
1
0
0
1
0
0
0
0
1
0
0
0
1
0
0
0
0
0
1
1
0
0
0
0
1
0
1
1
1
0
0
0
1
1
1
1
C = 1 when C1 = 1 or C2 = 1
Khoa Khoa học & Kỹ thuật Máy tính
6
5 April 2019
Full adder (3)
adde
C0
S
r
S1
C2
Half
x
y
adde
r
C1
C
Khoa Khoa học & Kỹ thuật Máy tính
7
5 April 2019
Cộng nhiều Bits
S0
S2
S3
0
Full
adder 0
x0
x1
x2
x3
y0
y1
y2
x3x2x1x0
+
y3y2y1y0
Full
adder 1
C S3S2S1S0
Full
adder 2
C
Full
adder 3
y3
Khoa Khoa học & Kỹ thuật Máy tính
8
5 April 2019
Phép cộng số nguyên
Ví dụ: 7 + 6
Tràn nếu kết quả tràn ngưỡng
Cộng 2 toán hạng trái dấu: không tràn
Cộng 2 toán hạng đều dương
Tràn nếu bit dấu của kết quả là 1
Cộng 2 toán hạng đều âm
Tràn nếu bit dấu của kết quả là 0
BK
TP.HCM
9
4/5/2019
Khoa Khoa học & Kỹ thuật Máy tính
Phép trừ số nguyên
Cộng số âm của toán hạng thứ 2
Ví dụ: 7 – 6 = 7 + (–6)
+7: 0000 0000 … 0000 0111
–6: 1111 1111 … 1111 1010
+1: 0000 0000 … 0000 0001
Tràn nếu kết quả vượt ngưỡng
Phép trừ 2 toán hạng cùng dấu, không bao giờ tràn
Trừ 1 toán hạng âm với 1 toán hạng dương
Tràn
Trừ 1 toán hạng dương với 1 toán hạng âm
Tràn nếu bit dấu của kết quả là 1
BK
TP.HCM
10
4/5/2019
Khoa Khoa học & Kỹ thuật Máy tính
Xử lý tràn
Một số ngôn ngữ (như C) không xử lý tràn
Sử dụng lệnh MIPS: addu, addui, subu
Các ngôn ngữ khác (như Ada, Fortran) yêu
cầu xử lý tràn bằng ngoại lệ
Sử dụng lệnh MIPS: add, addi, sub
Khi có tràn, bẫy bằng ngoại lệ & xử lý:
Cất PC vào thanh ghi exception PC (EPC)
Nhảy đế
Dùng mfc0khôi phục giá trị EPC value, trở về sau
khi xử lý tràn
BK
TP.HCM
11
4/5/2019
Khoa Khoa học & Kỹ thuật Máy tính
Phép nhân
Bắt đầu bằng phép nhân thuần túy
multiplicand
1000
× 1001
1000
multiplier
0000
0000
1000
1001000
product
Length of product
the sum of operand
lengths
BK
TP.HCM
12
4/5/2019
Khoa Khoa học & Kỹ thuật Máy tính
Bộ nhân cải thiện
Các bước song song: add/shift
Một chu kỳ cho mỗi phép cộng (tích thành phần)
Có thể chấp nhận khi tần xuất thấp
BK
TP.HCM
14
4/5/2019
Khoa Khoa học & Kỹ thuật Máy tính
Bộ nhân nhanh
Sử dụng nhiều bộ cộng cùng lúc
Cost/performance tradeoff
Có thể thực hiện theo cơ chế ống
Nhiều tác vụ nhân thực hiện cùng lúc
BK
TP.HCM
15
4/5/2019
Khoa Khoa học & Kỹ thuật Máy tính
Lệnh nhân trong MIPS
Kết quả sẽ là 64-bit, chứa trong 2 thanh ghi
32-bit
HI: chứa 32-bit cao
LO: chứa 32-bit thấp
Lệnh nhân
mult rs, rt / multu rs, rt
64-bit kết quả chứa trong HI/LO
mfhi rd / mflo rd
Chuyển từ HI/LO vào rd
Có thể kiểm tra giá trị HI xem kết quả phép nhân có
tràn?
mul rd, rs, rt
32 bits thấp của kết quả phép nhân –> rd
BK
TP.HCM
16
4/5/2019
Khoa Khoa học & Kỹ thuật Máy tính
Phép chia
Divisor
(số chia)
Quotient
(thương số)
Kiểm tra chia 0 báo lỗi
Long division approach
Dividend
(số bị chia)
If divisor ≤ dividend bits
1 bit in quotient, subtract
1001
1001010/1000
Otherwise
-1000
10
0 bit in quotient, bring down
next dividend bit
101
Restoring division
1010
-1000
Do the subtract, and if remainder
goes < 0, add divisor back
Remainder
on
(số dư)
Divide using absolute values
Toán hạng n-bit cho kết quả n-bit
Adjust sign of quotient and
remainder as required
thương số và số dư
BK
TP.HCM
17
4/5/2019
Khoa Khoa học & Kỹ thuật Máy tính
Phần cứng thực hiện chia
Initially divisor
in left half
Initially dividend
BK
TP.HCM
18
4/5/2019
Khoa Khoa học & Kỹ thuật Máy tính
Bộ chia cải thiện
Một chu kỳ cho mỗi phép trừ thành phần
Tương tự rất nhiều với bộ nhân
Có thể dùng cùng một phần cứng cho cả 2
BK
TP.HCM
19
4/5/2019
Khoa Khoa học & Kỹ thuật Máy tính
Bộ chia nhanh
Không thể thực hiện song song như
trong bộ nhân
Dấu trong mỗi phép trừ thành phần là điều
kiện
Có thể tạo bộ chia nhanh (e.g. SRT
devision)
BK
TP.HCM
20
4/5/2019
Khoa Khoa học & Kỹ thuật Máy tính
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Kiến trúc máy tính - Chương 3: Phép số học - Nguyễn Thanh Sơn", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_kien_truc_may_tinh_chuong_3_phep_so_hoc_nguyen_tha.pdf

