DAI HOC QUOC GIA THANH PHO HO CHi MINH TRUONG DAI HOC BACH KHOA KHOA KHOA HOC VA KY THUAT MAY TINH KIÊN TRÚC MÁY TÍNH TH CO2008 Bài tập lớn Multiply two 32-bit integers Advisors
Trang 1DAI HOC QUOC GIA THANH PHO HO CHi MINH TRUONG DAI HOC BACH KHOA KHOA KHOA HOC VA KY THUAT MAY TINH
KIÊN TRÚC MÁY TÍNH (TH) (CO2008)
Bài tập lớn Multiply two 32-bit integers
Advisor(s}: IS Nguyễn Xuân Minh Student(s): Nguyễn Quang Huy 2211237
Lê Bá Khánh 2211509
THANH PHO HO CHi MINH, MARCH 2024
Trang 2Khoa khoa học và kỹ thuật mấy tính c3»
Contents
1 Danh sách thành viên và Log Work
11 Danh sách thành viên LH ng kg va 1.2 Log Work theo tuan Q Q Q Q Q Q Q Q Q g g v v vV 2_ Khái quát nhân 2 số nguyên thập phân
3 Nhãn 2 số nguyên 32 bit
31 Phương phấp ch gà gà kg kg kg kV 3.2 Thuật tấn cu gà gà l g TT kg TT va
4 Kiểm thử kết quả
4.1 Trường hợp 2 số cùng dương Q2 4.2 Trường hợp một trong 2 số là âm Q2 4.3 Trường hợp 2 số cùng âm Q Q Q Q Q Q Q Q vv vV 5_ Thống kẽ các lệnh sử dụng và tính thời gian chạy
Trang 32 khoa khoa học và kỹ thuật mấy tính
1.1 Danh sách thành viên
STT Ho va tén MSSV Nhiệm vụ Phần trăm công việc
1 Nguyễn Quang Huy | 2211237 | Tìm hiểu thuật toán, code và soạn latex 100
2 Lê Bá Khánh 2211509 | Tìm hiểu thuật toán, code và soạn latex 100
1.22 Log Work theo tuần
1 Tìm hiển về nhân 2 số nguyên thập phân và cách nhân 2 số nguyên 32 bit
2 | Tim hiểu về thuật toán nhân 2 số nguyên 32 bit và Thực hiện việc nhân 2 số nguyên 32 bit
3 Tiền hanh thuc thi code trong MIPS và sửa lỗi
4 Hoan chinh code, chinh Format code theo yêu cầu và Hoàn thiện, thống kê chương trình
Trang 4
Khoa khoa học và kỹ thuật mấy tính c3»
Ví dụ về việc nhân 2 số nguyên thập phân là 1000 và 1001:
Multiplicand 1000,, Multiplier X 1001,,,
0000
1000
Product 1001000
Figure 2.1: Nhan 2 số nguyên hệ thập phân
Toán hạng đầu tiên được gọi là multiplicand vA toán hạng thứ hai được gọi là mul- tiplie Kết quả cuối cùng được gợi là sản phẩm produet.Nhân 2 số nguyên hệ thập phân thì chúng ta lấy lần lượt từ trái sang phải của multiplier nhân với multiplicand rồi dịch chuyển produet trung gian sang bên trái
Trang 52 khoa khoa học và kỹ thuật mấy tính
3 Nhân 2 số nguyên 32 bit
3.1 Phương pháp
Các bước nhân 2 số nguyên 32 bít:
- Lây bit cuối của multiplier
- Kiểm tra bit cuối đó là 1 hay 0
- Dịch multiplicand sang trái 1 chữ số
- Dịch phải multipler 1 chữ số
- Thực hiện đến khi nào không dịch được multiplier
- Dồng thời lưu bít tràn của 32bit low sang 32bit high
Các bước lưu số nguyên 64bit bằng kiểu số thực kép:
- Lưu 32bit cao và 32bit thấp
- Chuyển sang đạng double, lấy 32bit cao nhân với 23! để dịch trái 32bit
- Cộng 32bit thấp vào 32bit cao để ra số thực kép 64bit và in ra màn hình
-———
Multiplicand
Shift left
64 bits
Multiplier
64-bit ALU Shift right
32 bits
Product
| 64 bits
Figure 3.1: Phién bản đầu tiên của phần cứng nhân
Write
Trang 6
Khoa khoa học và kỹ thuật mấy tính c3»
3.2 Thuật toán
Bước 1: Lưu 2 số multiplicand và multiplier và kiểm tra dấu của 2 số, nếu 2 số cùng dau thì nhảy đến phép nhân cho số dương, nếu khác dẫn thì nhảy đến phép nhân cho số
âm
Bước 2: Nếu số nào là số âm thì chuyển sang số dương và thực hiện phép nhân 2 số
đã mô tả ở phần phương pháp cũng như dưới lưu đồ thuật toán đồng thời lưu lại 32bit cao và 32bit thấp trong quá trình thực hiện phép nhân
Bước 3: Chuyển cả 32bit cao và 32bit thấp sang dạng số thực đồng thời dịch 32bit cao qua trái 32 lần bằng cách nhân 2 lần 2! và cộng 32bit vào để lưn thành 64bit
Trang 7K
e323 Khoa khoa học và kỹ thuật mấy tính
Bước 4: In ra số thực 64bit có dấu
ce
Figure 3.2: Thuật toán nhân khi sử dụng phần cứng ở hình 3.1
Trang 8~ ⁄ ⁄ BK
Khoa khoa học và kỹ thuật mấy tính c3»
4_ Kiểm thử kết quả
4.1 Trường hợp 2 số cùng dương
Tnput:
# Cac dinh nghia bien
@ulieul: word 33554432 # 2°25
fdescr: word 0
Output:
fet qua = 33554432 x 33554432 = 1.125899906842624E15 program is finished running
So sánh với kết quả từ máy tính:
(2^25)*(2ˆ25)=
1.1258999e+15
Trang 9en -
2 khoa khoa học và kỹ thuật mấy tính
4.2 Trường hợp một trong 2 số là âm
Tnput:
dulieul: worcl 536870912 # 2°29
dulieu2: word -536870912 # -2°29
tenfile: asciiz “INT2.BIN"
fdescr: word 0
Output:
Ket qua = 536870912 x -536870912 = -2.8823037615171174E17
program is finished running
So sánh với kết quả từ máy tính:
(2°29) * (-(2°29)) =
-2.8823038e+1 /
10
Trang 10~ ⁄ ⁄ BK
Khoa khoa học và kỹ thuật mấy tính c3»
4.3 Trường hợp 2 số cùng âm
Tnput:
# Cac dinh nghia bien
tenfile: asciiz "TNT2.BTN"
fdescr: worcl 0
Output:
Ket qua = -32768 x -1073741824 = 3.5184372088832E13 program is finished running
So sánh với kết quả từ máy tính:
(-(2"15)) * ((2*30)) =
3.91843/2e+13
11
Trang 112 khoa khoa học và kỹ thuật mấy tính
5_ Thống kê các lệnh sử dụng và tính thời gian chạy
Dé tính thời gian chạy trung bình của chương trình, ta cần thống ké cdc Instruction được thực thi thực tế khi chạy Có thể sử dung tinh nang Instruction Counter cia MARS:
Counting the number of instructions executed
instructions so far 44
R-type: 239 TH
Hype: 1 M JAype: ¢ | 1
Tool Controt Cesconnect from MIPS Reset Close
Tw théng ké trén, két hdp véi Clock Rate dé bai cung c4p 1a 1GHz, chucng trình sử dụng kiến trúc Pipeline, có thể tính được thời gian chạy của chương trình
xe Time = TƠ x ƠR} = (5 + 440 — 1) x 10” = 444 ns
12
Trang 12Khoa khoa học và kỹ thuật mấy tính c3»
References
[1] JOHN L HENNESSY DAVID A PATTERSON Computer Organization and Design MIPS Edition: The Hardware/Software Interface Morgan Kaufmann, 2013
13