Bài giảng Kiến trúc máy tính - Tuần 6: Phép toán số học trên máy tính

KIẾN TRÚC MÁY TÍNH  
Tuần 6  
PHÉP TOÁN SỐ HỌC TRÊN  
MÁY TÍNH  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
1
PHÉP TOÁN SỐ HỌC TRÊN MÁY TÍNH  
Mục tiêu:  
Hiểu các phép toán số học trên số nguyên và số thực dấu chấm động trong  
máy tính.  
Với số nguyên:  
Hiểu các phép toán cộng, trừ, nhân và chia  
Cách thiết kế mạch nhân và chia  
Với số thực dấu chấm động:  
Hiểu các phép toán cộng, trừ và nhân  
Cách thiết kế mạch nhân  
Slide được dịch và cá c hì nh được lấy từ sá ch tham khảo:  
Computer Organization and Design: The Hardware/Software Interface,  
Patterson, D. A., and J. L. Hennessy, Morgan Kaufman, Revised Fourth Edition,  
2011.  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
2
PHÉP TOÁN SỐ HỌC TRÊN MÁY TÍNH  
1. Giới thiệu  
2. Phép cộng & Phép trừ  
3. Phép Nhân  
4. Phép chia  
5. Số chấm động  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
3
Giới thiệu  
Các nội dung lưu trữ trong máy tính đều được biểu diễn ở dạng bit  
(hay dưới dạng nhị phân, là một chuỗi các ký tự 0, 1).  
Trong chương 2, các số nguyên khi lưu trữ trong máy tính đều là các  
chuỗi nhị phân, hay các lệnh thực thi cũng phải lưu dưới dạng nhị  
phân. Vậy các dạng số khác thì biểu diễn như thế nào?  
dụ:  
Phân số và các số thực sẽ được biểu diễn lưu trữ thế nào trong máy tính?  
Điều sẽ xảy ra nếu kết quả của một phép toán sinh ra một số lớn hơn khả  
năng biểu diễn, hay lưu trữ ?  
một câu hỏi đặt ra là phép nhân và phép chia được phần cứng của máy  
tính thực hiện như thế nào?  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
4
PHÉP TOÁN SỐ HỌC TRÊN MÁY TÍNH  
1. Giới thiệu  
2. Phép cộng & Phép trừ  
3. Phép Nhân  
4. Phép chia  
5. Số chấm động  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
5
Phép Cộng & Phép Trừ  
Phép cộng:  
dụ: 610 + 710 và 610 710  
Các bước thực hiện phép cộng trong số nhị phân: anan-1a1a0 + bnbn-1b1b0  
1. Thực hiện phép cộng từ phải sang trái (hàng thứ 0 cho đến hàng n).  
2. Số nhớ ở hàng cộng thứ i sẽ được cộng vào cho hàng cộng thứ i + 1.  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
6
Phép Cộng & Phép Trừ  
Phép trừ:  
Thực hiện phép trừ cho 2 số anan-1a1a0 bnbn-1 b1b0  
1. Thực hiện phép trừ từ phải sang trái (hàng thứ 0 cho đến  
hàng n).  
2. Số mượn ở hàng thứ i sẽ được cộng vào cho số trừ ở hàng từ  
i + 1.  
dụ: thực hiện phép toán: 7 6  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
7
Phép Cộng & Phép Trừ  
Overflow (Tràn số)  
Trong phép cộng trừ, điều quan trọng cần lưu ý là phép toán có bị  
tràn hay không.  
Hai trường hợp liên quan:  
Đối với số không dấu (Unsigned number)  
Đối với số dấu (Signed number)  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
8
Phép Cộng & Phép Trừ  
Xử lý tràn  
Các nhà thiết kế phần cứng phải cung cấp một cách để bỏ qua tràn hoặc phát hiện tràn  
trong các trường hợp cần thiết.  
Trong kiến trúc MIPS, mỗi lệnh thường có hai dạng lệnh tương ứng với xét overflow hay  
bỏ qua overflow:  
Lệnh cộng (add), cộng số tức thời (addi), trừ (sub) là các lệnh có xét overflow, tức sẽ  
báo lỗi và phát ra một ngoại lệ (exception) nếu kết quả bị tràn.  
Lệnh cộng không dấu (addu), cộng số tức thời không dấu (addiu), và trừ không dấu  
(subu) không gây ra ngoại lệ tràn.  
Khi một chương trình đang thực thi, nếu bị tác động đột ngột (lỗi hoặc phải thi hành một tác vụ  
khác, ), buộc phải dừng luồng chương trình đang chạy này và gọi đến một chương trình không  
định thời trước đó thì được gọi một “interrupt” hay một “exception”.  
Lưu ý: Trong một số hệ thống máy tính, thuật ngữ ‘interrupt’ được sử dụng như exception, nhưng ở  
một số hệ thống thì có sự phân biệt hai thuật ngữ này  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
9
PHÉP TOÁN SỐ HỌC TRÊN MÁY TÍNH  
1. Giới thiệu  
2. Phép cộng & Phép trừ  
3. Phép Nhân  
4. Phép chia  
5. Số chấm động  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
10  
Phép nhân  
Multiplicand: số bị nhân  
Multiplier: số nhân  
Product: tích  
dụ  
dụ trên là nhân hai số đang ở dạng thập phân, nhưng các chữ số đều là 0 và 1. Phép nhân  
trên hai số nhị phân cũng tương tự, và luôn luôn có 2 trường hợp:  
1. Chép số bị nhân xuống vị trí thích hợp (1 ×multiplicand) nếu chữ số tương ứng  
đang xét ở số nhân là 1.  
2. Đặt số 0 (0 ×multiplicand) vào vị trí thích hợp nếu chữ số tương ứng đang xét ở số  
nhân là 0.  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
11  
Phép nhân  
Giải thuật thực hiện phép nhân  
theo cấu trúc phần cứng 3 thanh  
ghi (cho hai số 32 bit)  
Hình 2:  
Hình 1: Cấu trúc phần cứng thực hiện phép nhân  
Sơ đồ giải  
thuật thực  
hiện phép  
nhân  
Chú ý: khi thực hiện phép nhân cho giải thuật theo  
sơ đồ, ta thấy có 3 bước và 3 bước này được lặp lại  
32 lần. Nếu mỗi bước được thực hiện bởi 1 chu kỳ  
xung clock thì giải thuật này yêu cầu gần 100 chu  
kỳ xung clock cho phép toán nhân hai số 32 bit.  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
12  
dụ cho phép nhân (3 ví dụ)  
dụ 1:  
Thực hiện phép nhân 2(10) x 3(10) (sử dụng  
số 4 bit không dấu) theo cấu trúc phần  
cứng như hình  
+
Lưu đồ giải  
thuật đi kèm  
cho cấu trúc  
phần cứng  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
13  
Cấu trúc phần cứng như hình vẽ là nhân 2 số 32 bits, kết quả số 64 bits,  
Có: thanh ghi multiplicand 64 bits  
dụ 1:  
2(10) x 3(10) = ?  
thanh ghi multiplier là 32 bits  
thanh ghi product là 64 bits  
dụ 1 yêu cầu nhân 2 số 4 bits không dấu, sử dụng cấu trúc phần cứng tương tự như  
hình, vậy kết quả phải số 8 bits  
=> thanh ghi multiplicand 8 bits (giá trị khởi tao 0000 0010)  
thanh ghi multiplier là 4 bits (giá trị khởi tạo 0011)  
thanh ghi product là 8 bits (giá trị khởi tạo 0000 0000)  
2(10) = 0010  
(multiplicand)  
3(10) = 0011  
(multiplier)  
Iteration  
Step  
Multiplier  
Multiplicand  
Product  
0
Khởi tạo  
0011  
0000 0010  
0000 0000  
- Sau khi khởi tạo xong. Mỗi vòng lặp  
(interation) sẽ gồm 3 bước:  
B1. Kiểm tra bit 0 của multiplier xem có  
bằng 1 hay không; nếu bằng 1 thì product  
= product + multiplicand; nếu bằng 0,  
không làm cả  
B2. Dịch trái Multiplicand 1 bit  
B3. Dịch phải Multiplier 1 bit  
- Số vòng lặp cho giải thuật này đúng bằng số  
bit dùng biểu diễn (ví dụ 1 yêu cầu dùng số 4  
bit, thì có 4 vòng lặp)  
- Sau khi kết thúc số vòng lặp, giá trị trong  
thanh ghi product chính là kết quả phép nhân  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
14  
8 bits  
8 bits  
4 bits  
8 bits  
Bảng thực hiện từng bước giải thuật phép nhân 2 số: 00102 x 00112  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
15  
Phép Nhân  
Lần lặp Bước  
Số nhân  
Số bị nhân Tích  
0
1
2
3
4
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
16  
Phép Nhân  
Giải thuật thực hiện phép nhân  
theo cấu trúc phần cứng cải  
tiến 2 thanh ghi (với hai số 32 bit)  
multiplier  
Cấu trúc phần cứng của phép nhân có cải tiến  
So với giải thuật trước đó thì thanh ghi số bị nhân, bộ ALU, thanh ghi số nhân tất cả đều  
32 bits, chỉ có thanh ghi tích là khác 64 bits;  
Trong mỗi vòng lặp, số chu kỳ xung clock tiêu tốn thể giảm xuống chỉ còn 1 chu kỳ  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
17  
Phép Nhân  
Cấu trúc phần cứng như hình vẽ là nhân 2 số 32 bit, kết quả số 64  
bit,  
dụ 2:  
Sử dung số 6 bit  
không dấu  
50(8) x 23(8) = ?  
Có: thanh ghi multiplicand 32 bit  
thanh ghi product 64 bit (khi khởi tạo, đưa multiplier vào 32 bit  
thấp của product, còn nữa cao khởi tạo 0)  
50(8) = 101000  
(multiplicand)  
23(8) = 010011  
(multiplier)  
dụ 2 yêu cầu nhân 2 số 6 bit, sử dụng cấu trúc phần cứng tương  
tự như hình, vậy kết quả phải số 12 bit  
thanh ghi multiplicand 6 bit (giá trị khởi tao 101000)  
thanh ghi product là 12 bit (6 bit thấp là multiplier, 6 bit cao là 0  
000000 010011)  
Iteration Step/Action Multiplicand  
Product/Multiplier  
0
Khởi tạo 101000  
000000 010011  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
18  
Multiplier  
Cấu trúc phần cứng như hình vẽ là nhân 2 số 32 bits, kết quả số 64 bits,  
Có: thanh ghi multiplicand 32 bits  
thanh ghi product 64 bits (khi khởi tạo, đưa multiplier vào 32bits thấp của  
product, còn nữa cao khởi tạo 0)  
dụ 2 yêu cầu nhân 2 số 6 bits, sử dụng cấu trúc phần cứng tương tự như hình, vậy  
kết quả phải số 12 bits  
thanh ghi multiplicand 6 bits (giá trị khởi tao 101000)  
thanh ghi product là 12 bits (6 bit thấp là multiplier, 6 bit cao là 0 000000  
010011)  
dụ 2:  
50(8) x 23(8) = ?  
50(8) = 101000  
(multiplicand)  
23(8) = 010011  
(multiplier)  
Iteration Step/Action Multiplicand  
Khởi tạo 101000  
Product/Multiplier  
0
000000 010011  
- Sau khi khởi tạo xong. Mỗi vòng lặp  
(interation) sẽ gồm 2 bước:  
B1. Kiểm tra bit 0 của Product/multiplier  
xem có bằng 1 hay không; nếu bằng 1 thì  
nữa cao của product/multiplier = nữa cao  
của product/multiplier + multiplicand; nếu  
bằng 0, không làm gì cả  
B2. Dịch phải Product/Multiplier 1 bit  
- Số vòng lặp cho giải thuật này đúng bằng số bit  
dùng biểu diễn (ví dụ 2 yêu cầu dùng số 6 bit, thì  
có 6 vòng lặp)  
- Sau khi kết thúc số vòng lặp, giá trị trong thanh  
ghi product chính là kết quả phép nhân  
03/2017  
Copyrights 2017 CE-UIT. All Rights Reserved.  
19  
Multiplier  
2. Shift right Product/Multiplier  
2. Shift rightProduct/Multiplier  
2. Shift right Product/Multiplier  
2. Shift right Product/Multiplier  
Kết quả phép nhân  
2. Shift right Product/Multiplier  
2. Shift right Product/Multiplier  
20  
Tải về để xem bản đầy đủ
pptx 38 trang yennguyen 12/04/2022 7260
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 - Tuần 6: Phép toán số học trên máy tính", để 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:

  • pptxbai_giang_kien_truc_may_tinh_tuan_6_phep_toan_so_hoc_tren_ma.pptx