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  
Phần cứng thực hiện nhân  
BK  
TP.HCM  
13  
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 0bá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 đủ
pdf 43 trang yennguyen 21720 Free
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:

  • pdfbai_giang_kien_truc_may_tinh_chuong_3_phep_so_hoc_nguyen_tha.pdf