1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Kiến trúc máy tính ngành điện tử chương 3 Bộ tính toán số học

57 142 1

Đ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 57
Dung lượng 2,49 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Kiến trúc máy tính là bộ môn trong nhiều ngành về phần cứng, slide bài giảng của Gv Nguyễn Thanh Đăng hy vọng sẽ giúp bạn đọc hiểu rõ về môn Học kiến trúc máy tính, cũng như giúp các bạn sinh viên có tài liệu tham khảo từ đại học Công nghiệp thành phố Hồ Chí Minh

Trang 1

Câu hỏi

kết quả của phép nhân? Và vì sao?

nhóm và đó là những nhóm nào?

Trang 2

Chương 3 :

BỘ TÍNH TOÁN SỐ HỌC

Trang 3

• MIPS: Microprocessor without Interlocked Pipeline

Stages

• Là một tập lệnh thường được sử dụng rộng rãi trong các

hệ thống nhúng và là nền tảng cho nhiều kiến trúc tập lệnh thế hệ mới

Trang 4

• Các lệnh nhân chia trong tập lệnh MIPS

• Kiến trúc phần cứng cho việc tính toán phép nhân và chia

• Biểu diễn số thực trong máy tính

• Các lệnh xử lý số thực trong tập lệnh MIPS

3.1 GIỚI THIỆU

Trang 5

3.2 NHẮC LẠI PHÉP CỘNG VÀ TRỪ NHỊ PHÂN

Trang 7

1 32

Số dương: 0

Số âm: 1

Biểu diễn giá trị từ −2𝑛−1 đến 2𝑛−1 − 1

n – 1 bit thấp

Trang 8

• Quy tắc kiểm tra bit dấu:

Cộng hai số dương nhưng kết quả là số âm, hoặc ngược

lại

Trừ một số âm ra khỏi một số dương nhưng kết quả là một số âm, hoặc ngược lại

3.2 NHẮC LẠI PHÉP CỘNG VÀ TRỪ NHỊ PHÂN

Trang 9

• MIPS kiểm tra tràn và thực hiện “xử lý ngoại lệ” hay

“ngắt quãng” để xử lý việc tràn

• MIPS cất giữ địa chỉ của lệnh gây ra tràn vào thanh ghi

đặc biệt EPC (exception program counter) để thực hiện xử

lý ngoại lệ

3.2 NHẮC LẠI PHÉP CỘNG VÀ TRỪ NHỊ PHÂN

Trang 10

Các dạng lệnh

số học

Nhóm lệnh số học không dấu (addu, subu, addiu)

Trang 11

3.3 PHÉP NHÂN

Trang 13

3.3.1 BỘ NHÂN TUẦN TỰ

Số bị nhân (64 bit)

Số nhân (32 bit)

Bộ điều khiển

Tích (64 bit)

ALU 64bit

Dịch phải Ghi

Trang 14

Bắt đầu

1 m0

1a Cộng dồn thanh ghi số bị nhân vào thanh ghi tích

2 Dịch trái 1 bit thanh ghi số bị nhân Dịch phải 1 bit thanh ghi số nhân

Trang 15

Số bị nhân (32 bit)

Bộ điều khiển

Tích (64 bit)

ALU 64bit

Dịch phải Ghi

Dịch trái

Kiến thức bộ nhân tuần tự 32 bit tối ưu

Số nhân

Trang 16

Bắt đầu

1 m0

1a Cộng dồn thanh ghi

số bị nhân vào 32 bit cao của thanh ghi tích

2 Dịch phải 1 bit thanh ghi tích

Trang 17

Lệnh nhân trong MIPS

Trang 18

Lệnh Ví dụ Hoạt động

mult Mult Şs1, Şs2 Nhân 2 số nguyên có dấu trong thanh ghi Şs1 và

Şs2, lưu kết quả vào thanh ghi Hi và Lo Multu Multu Şs1, Şs2 Nhân 2 số nguyên không dấu trong thanh ghi

Şs1 và Şs2, lưu kết quả vào thanh ghi Hi và Lo

Mul Mul Şs0, Şs1 ,

Şs2

Nhân 2 số nguyên có dấu trong thanh ghi Şs1 và Şs2, lưu 32 bit thấp của kết quả vào thanh ghi Şs0, thanh ghi Hi và Lo không xác định giá trị mfhi Mfhi Şs0 Sao chép giá trị trong thanh ghi Hi và thanh ghi

Şs0 mflo Mflo Şs0 Sao chép giá trị trong thanh ghi Lo và thanh ghi

Şs0 Các lệnh hổ trợ phép nhân trong MIPS

Trang 19

Lệnh Opcode Funct

Mult 0x00 (0) 0x18 (24)Multu 0x00 (0) 0x19 (25)Mul 0x1C (28) 0x02 (2)Mfli 0x00 (0) 0x10 (16)mflo 0x00 (0) 0x12 (18)

Trang 20

3.4 PHÉP CHIA

Trang 21

1 0 0 0

1 0 0 1

10 10

Số bị chia

Số dư

Số chia

Thương

Trang 22

3.4.1 BỘ CHIA TUẦN TỰ

Số bị nhân (64 bit)

Thương (32 bit)

Bộ điều khiển

Số dư (64 bit)

ALU 64bit

Dịch trái Ghi

Dịch phải

Kiến thức bộ chia tuần tự 32 bit Thiết kế bộ nhân tuần tự là quá trình “ bắt chước “ giải thuật nhân bằng giấy và bút Các khối màu trắng là thanh ghi và các khối màu xám là các khối xử lý.

Trang 23

Bắt đầu

2 kiểm tra số dư

3 Dịch trái thanh ghi thương và chỉnh bit thấp nhất thành 1

1 Trừ thanh ghi số dư với thanh ghi số chia và lưu vào thanh ghi số dư

Trang 24

Số bị nhân (32 bit)

Bộ điều khiển

Số dư (64 bit)

ALU 32bit

Trang 25

3 Chỉnh bit thấp nhất thành 1

1 Dịch trái thanh ghi số dư Trừ 32bit cao thanh ghi số dư với thanh ghi số chia và lưu

vào 32bit cao thanh ghi số dư

Số dư >= 0 Số dư < 0

Trang 26

Lệnh chia trong MIPS

Trang 27

• Trong thế giới thực, ngoài các số nguyên có dấu và không dấu,các

số thực có mặt ở rất nhiều phép tính khác nhau.Tuy nhiên,trong máy tính chỉ có thể biểu diễn được các ký số nhị phân.Do đó, biểu diễn số thực nhị phân theo dạng chuẩn tắc là không thể hiện thực được.Trong máy tính, các số thực có thể biểu diễn theo dạng số thực dấu chấm động (floating point)

Chính xác đơn : 1 8 23

Chính xác kép: 1 11 52

Sơ đồ định dạng số thực dấu chấm động theo chuẩn IEEE 754, mô

tả cách biểu diễn số thực dấu chấm động theo định dạng IEEE 754

3.5 SỐ THỰC DẤU CHẤM ĐỘNG

S Phần mũ Phần phân số

Trang 28

3.5.1 BIỂU DIỄN SỐ THỰC DẤU CHẤM ĐỘNG

• Số thực dấu chấm động là cách biểu diễn các số thực

trong máy tính đã được chuẩn hóa bởi tổ chức IEEE,vào năm 1985 được gọi là chuẩn IEEE 754

• Chuẩn IEEE 754 gồm nhiều dạng định dạng số thực với kích thước khác nhau như 16bit,32bit,64bit

Trang 29

• Chuyển từ định dạng IEEE 754 sang hệ số thập phân với công thức:

Giá trị hệ thập phân =(-1)^S x (1+ phân số) x 2^(số mũ-”bias”)

• Có 2 trường hợp đặc biệt được sử dụng để biểu diễn các giá trị đặc biệt là :

_ Trường hợp phần mũ toàn các bit 0

_ Trường hợp phần mũ toàn các bit 1

3.5.1 BIỂU DIỄN SỐ THỰC DẤU CHẤM ĐỘNG

Trang 30

• Trước khi hiện thực bộ cộng hai số thực dấu chấm động biểu diễn theo dạng chuẩn IEEE 754 cần nhắc lại phép

cộng hai số thực biểu diễn theo dạng chuẩn ký hiệu khoa học đã được giới thiếu trong chương trình phổ thông

• Để thực hiện phép cộng hai số thực dấu chấm động hệ nhị phân biểu diễn theo ký hiệu khoa học hoặc theo dạng

chuẩn IEEE 754 thì các bước tính toán cũng tương tự như các bước thực hiện phép cộng hai số thực dấu chấm động

hệ thập phân

3.5.2 PHÉP CỘNG SỐ THỰC DẤU CHẤM CỘNG:

Trang 31

• Các máy tính điện tử thông thường sẽ hiện thực những

khối xử lý số thực dấu chấm động chuyên biệt để tăng tốc

độ xử lý

• Nói một cách khác, phần định trị cho số thực dấu chấm động theo chuẩn IEEE754 dạng chính xác đơn sẽ có kích thước 24bit và chính xác 53bit

3.5.2 PHÉP CỘNG SỐ THỰC DẤU CHẤM CỘNG:

Trang 32

• Sau khi điều chỉnh số hạng nhỏ hơn để có được giá trị

phần mũ của hai số hạng bằng nhau thì sẽ tiến hành cộng hai phần định trị của hai số hạng bằng khối “ALU lớn”

• Khi thực hiện phép toán ở hệ nhị phân cần lưu ý kiểm tra tràn vì tùy theo độ chính xác mà giá trị phần mũ sẽ có giới hạn xác định

3.5.2 PHÉP CỘNG SỐ THỰC DẤU CHẤM CỘNG:

Trang 33

• Sau khi hai số hạng đã có giá trị phần mũ giống nhau thì bước tiếp theo là thực hiện cộng phần định trị của hai số hạng với nhau để hình thành phần định trị cho kết quả của phép cộng.

• Kết quả giá trị chưa được ở dạng chuẩn ký hiệu khoa học

Do đó cần phải thực hiện chuẩn hóa kết quả phép cộng về dạng chuẩn ký hiệu khoa học

3.5.2 PHÉP CỘNG SỐ THỰC DẤU CHẤM CỘNG:

Trang 34

Xử lý ngoại

lệ

4 Làm tròn phần định trị để có số bit biểu diễn thích hợp với độ chính xác

Vẫn còn chuẩn

5 Xét dấu thừa số để được

Trang 35

• Để thực hiện phép nhân hai số thực dấu chấm động theo chuẩn IEEE 754, các máy tính cũng có những khối phần cứng riêng biệt để tăng tốc độ tính toán

3.5.3 PHÉP NHÂN SỐ THỰC DẤU CHẤM ĐỘNG

Trang 36

• Các lệnh số thực trong MIPS được chia thành ba nhóm lệnh khác nhau là:

- Nhóm lệnh số học

- Nhóm lệnh chuyển dữ liệu

- Nhóm lệnh so sánh và rẽ nhánh

3.5.4 CÁC LỆNH SỐ THỰC TRONG MIPS

Trang 37

• Được độ chính xác kép

• Hỗ trợ số thực dấu chấm động thuộc định dạng lệnh R Định dạng R cho các lệnh số thực có các trường và kích thước các trường giống với định dạng R cho các lệnh số nguyên

1 Nhóm lệnh số học

Trang 38

2.Nhóm lệnh chuyển dữ liệu

Chính xác đơn

Có 2 dạng

≈ 2 độ

chính xác

Chính xác kép

Mỗi lần di chuyển giữa bộ nhớ

và bộ xử lí,dữ liệu được di chuyển có kích thước 32bit hoặc 1 từ nhớ

Mỗi lần di chuyển giữa bộ nhớ và

bộ xử lí,dữ liệu được di chuyển có kích thước 64 bit hoặc 2 từ nhớ

Trang 39

• Các số lệnh so sánh số thực sẽ gán kết quả so sánh vào

một biến điều kiện bên trong bộ xử lý.Sau đó các lệnh rẽ nhánh có điều kiện sẽ căn cứ vào kết quả này để thực hiện việc rẽ nhánh tương ứng

• Các lệnh chuyển dữ liệu dung các thanh ghi $fi để chứa

dữ liệu số thực

3.Nhóm lệnh so sánh và rẽ nhánh

Trang 40

• Số thực dấu chấm động độ chính xác đơn được chứa trong một thanh ghi và độ chính xác kép được chứa trong một cặp thanh ghi chẳn/lẻ.

• Thanh ghi này phải là một thanh ghi đa dụng chứa số

nguyên

3.Nhóm lệnh so sánh và rẽ nhánh

Trang 41

3.7 CÂU HỎI VÀ BÀI TẬP

Trang 42

Câu 1: Hãy nêu chức năng của tập lệnh MIPS??

“xử lý ngoại lệ” (excep-tion) hoặc còn được gọi là”ngắtquãng”(interrupt) khi phá hiện tràn

CÂU HỎI

Trang 43

Câu 2: Trong tập lệnh MIPS dùng thanh ghi gì để chứa

kết quả của phép nhân? Và vì sao?

thước 32 bit, do đó không thể dùng các thanh ghi này đểchứa kết quả của phép nhân MIPS cung cấp một cặp

thanh ghi 32 bit dặc biệt là Hi và Lo để chứa kết quả của

phép nhân

CÂU HỎI

Trang 44

Câu 3: Trong MIPS các lệnh số thực được chia làm mấy

nhóm và đó là những nhóm nào?

nhóm lệnh khác nhau đó là: nhóm lệnh số học, nhóm lệnhchuyển dữ liệu và nhóm lệnh so sánh và rẽ nhánh

CÂU HỎI

Trang 45

Bài 3.1: Cho đoạn chương trình MIPS sau:

BÀI TẬP

Trang 46

Giải 3.1: Hai lện đầu tiên sẽ gán giá trị 7 thập phân cho

thanh ghi $t0, hai lệnh tiếp theo sẽ làm cho thanh ghi $t1 mang giá trị 2 thập phân Lệnh chia div $t0, $t1 sẽ thực hiện phép chia 7 ÷ 2 và gán thương vào thanh ghi Lo và

số dư vào thanh ghi Hi Do đó, sau khi thực hiện đoạn

chương trình trên thì thanh ghi $s0 sẽ mang giá trị 1 là số

dư của phép chia 7 ÷ 2 tron khi thanh ghi $s1 sẽ mang giá trị thương của phép chia này là 3 Thanh ghi $t0 không

thay đổi giá trị sau phép chia nên vẫn sẽ chứa giá trị 7

BÀI TẬP

Trang 47

Bài 3.2: Xác định giá trị số thực biểu diễn theo chuẩn

IEEE 754 độ chính xác đơn của giá trị 13.312510?

• Bởi vì 13.3125 > 0 nên bit dấu S = 0;

• Số thực 13.312510 được chuyển sang hệ nhi phân bằng cách chuyển giá trị 1310 sang hệ nhị phân và 0.312510sang hệ nhị phân Hai giá trị này lần lược có dạng nhị phân là: 11012 và 0.01012 Vậy 13.312510 được biểu diễn nhị phân là: 1101.01012

BÀI TẬP

Trang 48

• Bởi vì giá trị 1101.01012 chưa ở dạng chuẩn ký hiệu

khoa học nên cần phải chỉnh về dạng chuẩn tắc là

1.11010101 x 23 ( bởi vì dấu “chấm” được dời sang trái 3

ký số nên cần phải nhân với 23)

• Vậy giá trị phần phân số sẽ là:

1.1101010100000000000000 và giá trị phần mũ sẽ là

BÀI TẬP

Trang 49

Bài 3.3: Một số thực biểu diễn theo chuẩn IEEE 754 có

chuỗi nhị phân như sau:

0x1490000Xác định giá trị thập phân của số thực này?

BÀI TẬP

Trang 50

Giải 3.3:

• Bởi vì số thực dấu chấm động theo chuẩn IEEE 754

0x1490000 được biểu diễn bằng 32 bit (8 ký số thập lục phân) nên đây là một số biểu diễn dạng chính xác đơn Chuỗi nhị phân tương đương là:

Trang 51

Phần phân số:

F = 1 1001 0000 0000 0000 00002 = 1 x 2−1+1 x 2−2+ 1 x 2−5 = 0.7812510

• Bởi vì đây là số thực dấu chấm động chính xác đơn nên phần “bias” sẽ có giá trị 127 Áp dụng công thức tính giá trị ở hệ thập phân:

𝐺𝑖á 𝑡𝑟ị ℎệ 𝑡ℎậ𝑝 𝑝ℎâ𝑛

= (−1)𝑆× 1 + 𝑝ℎâ𝑛 𝑠ố × 2𝑠ố 𝑚ũ−"𝑏𝑖𝑎𝑠"

= −1 0 × 1 + 0.78125 × 2130−127 = 14.2510

BÀI TẬP

Trang 52

Bài 3.4: Minh họa từng bước phép cộng hai số thực dấu

chấm động IEEE 754 sau: 0x41480000 + 0x40a80000

và 0x40a80000 được biểu diễn theo dạng chính xác đơn Phần mũ sẽ có kích thước 8 bit và có giá trị lần lượt là

10000010 và 10000001 Điều đó có nghĩa là số hạng thứ hai nhỏ hơn số hạng thứ nhất và cần phải dịch phải phần định trị của số hạng thứ hai 1 bit để giá trị phần mũ của hai số hạng là bằng nhau

BÀI TẬP

Trang 53

BÀI TẬP

Trang 54

• Kết quả phép cộng hai phần định trị là 25 bit trong khi phần định trị của hai số hạng là 24 bit Vậy cần phải thực hiện việc dịch phải 1 bit và chọn 24 bit thấp làm phần định trị của kết

quả phép cộng, đồng thời tang giá trị phần mũ lên 1 đơn vị

Trang 55

Bài 3.5: Thực hiện phép nhân hai giá trị số thực dấu chấm động

IEEE 754 sau: 0x40B00000 x 0x40880000

Giải 3.5: Bởi vì hai thừa số trong phép nhân đuợc lưu trữ bằng 32

bit nên cả hai thuộc dạng chính xác đơn Giá trị phần mũ của hai thừa số đều là 1000 0001 Do đó, giá trị phần mũ của tích số được tính bằng:

Trang 56

• Kết quả phép nhân hai phần định trị của hai thừa số là:

101 1101 1000 0000 0000 0000 0000 0000 0000 0000 0000 0000

• Kết quả này có kích thước là 47 bit nên không cần thực hiện

dịch và điều chỉnh phần mũ Giá trị phần định trị của kết quả phép nhân là: 1011 1011 0000 0000 0000 0000

• Bởi vì cả hai thừa số đều là số dương nên tích số là một số

dương bit dấu của tích số sẽ là S = 0 Vậy kết quả của phép

nhân trên là:

0 10000011 01110110000000000000000

= 0x41BB0000 = 23.375

BÀI TẬP

Ngày đăng: 28/05/2020, 21:19

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm