1. Trang chủ
  2. » Luận Văn - Báo Cáo

Kiến trúc máy tính (th) (co2008) bài tập lớn multiply two 32 bit integers

12 0 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 12
Dung lượng 1,6 MB

Nội dung

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 1

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

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 2

Khoa 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 3

2 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 5

2 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 7

K

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 9

en -

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 11

2 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 12

Khoa 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

Ngày đăng: 19/12/2024, 16:01

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w