Tải bản đầy đủ (.pdf) (53 trang)

Bài giảng kiến trúc máy tính chương 3 phép toán số học trên máy tính

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.97 MB, 53 trang )

CE

Kiến Trúc Máy Tính

Chương 3
PHÉP TOÁN SỐ HỌC TRÊN MÁY TÍNH

1


CE

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

2


CE

PHÉP TOÁN SỐ HỌC TRÊN MÁY TÍNH

3


CE



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

4


CE

Giới thiệu

Các nội dung lưu trữ trong máy tính điều được biểu diễn ở dạng bit (giá trị
của nó biểu diễn dưới dạng nhị phân, là 1 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 điều là các chuổi nhị phân, hay các
lệnh thực thi cũng 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 ?
Ví dụ:
■ phần lẻ của số thực được biểu diển, lưu trữ như thế nào?
■ Điều gì sẽ xảy ra nếu kết quả của 1 phép toán sinh ra 1 số lớn hơn khả
năng biểu diễn, hay lưu trữ ?
■ Và 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?

5



CE

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

6


CE

Phép Cộng & Phép Trừ

Phép cộng:
Ví dụ: 610 + 710 và 610 – 710

Các bước thực hiện phép cộng trong số nhị phân: anan-1…a1a0 + bnbn-1…b1b0
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.

7


CE


Phép Cộng & Phép Trừ

Phép trừ: thực hiện phép trừ cho 2 số anan-1…a1a0 – 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.
Ví dụ: thực hiện phép toán: 7 – 6
Cách 1: Thực hiện phép trừ bình thường.
Cách 2: Chuyển số trừ sang dạng bù 2. Sau đó cộng với số bị trừ.

8


Phép Cộng & Phép Trừ

CE

Số tràn
Các trường hợp tràn xảy ra khi thực hiện phép toán đối với số có dấu:
Tác vụ

Toán hạng A

Toán hạng B

Kết quả dẫn
đến tràn

A+B

0


0

<0

A+B

<0

<0

0

A–B

0

<0

<0

A–B

<0

0

0

Một số điều lưu ý:

- Làm thế nào phát hiện việc tràn số trong biểu diễn số bù 2?
- Làm sao biết được khi nào thì tràn số không âm?

9


Phép Cộng & Phép Trừ

CE
Xử lý tràn

 Các nhà thiết kế phần cứng làm sao nhận diện được các kết quả tràn số học, và cung
cấp cơ chế bỏ qua tràn số học.
 Giài pháp xử lý trong kiến trúc MIPS cho 2 loại lệnh số học:
■ Lệnh cộng (add), cộng số tức thời (addi), trừ (sub) gây ra ngoại lệ tràn(ngắt quãng
– interrupt).
■ Cộng số nguyên dương (addu), cộng số nguyên dương tức thời (addiu), và trừ
số nguyên dương (subu) không gây ra ngoại lệ tràn.

Chú ý: kiến trúc MIPS xử lý tràn như là một ngoại lệ (exception), còn được gọi là ngắt
quãng (interrupt). Một ngoại lệ hay một ngắt quãng là một phương thức được gọi mỗi khi
sự kiện xảy ra.
10


CE

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

11


CE
Ví dụ

Phép nhân
Multiplicand: số bị nhân
Multiplier: số nhân
Product: tích

Ví dụ trên ta chi lấy các con số ở dạng thập phân nhưng các chữ số điều là 0 và 1. Phép
toán nhân trên số nhị phân cũng bắt buộc luôn dùng 0 và 1, 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ố ở số nhân là 1.
2. Đặt số 0 (0 ×multiplicand) vào vị trí thích hợp nếu chữ số ở số nhân là 0.

12


CE

Phép Nhân

Giải thuật thực hiện phép nhân từng bước ở phần cứng


Hình 1: Sơ đồ các khối 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, 3 bước này được lặp lại 32 lần.
Mỗi bước được thực hiện bởi 1 chu kỳ xung clock
CPU. Do đó giải thuật này yêu cầu 100 chu kỳ xung
clock cho phép toán nhân 2 số 32 bit.
Hình 2: Sơ đồ giải thuật thực hiện phép nhân

13


CE

Phép Nhân

Giải thuật thực hiện phép nhân từng bước ở phần cứng
Ví dụ: thực hiện phép toán nhân cho 2 số 4 bit sau: 210 x 310 .
Chuyển 2 số này sang dạng nhị phân: 00102 x 00112
Đáp án: bảng thực hiện từng bước giải thuật phép nhân 2 số

14


Phép Nhân

CE

LầnĐáp
lặp án:

Bước
Số giải
nhânthuật
Số phép
bị nhânnhân
Tích

bảng thực hiện từng bước
2 số
0

Khởi tạo giá trị

0011

0000 0010

0000 0000

1

1a: 1  Tích = Tích + Số bị nhân

0011

0000 0010

0000 0010

2: dịch số bị nhân sang trái 1 bit


0011

0000 0100

0000 0010

3: dịch số nhân sang phải 1 bit

0001

0000 0100

0000 0010

1a: 1  Tích = Tích + Số bị nhân

0001

0000 0100

0000 0110

2: dịch số bị nhân sang trái 1 bit

0001

0000 1000

0000 0110


3: dịch số nhân sang phải 1 bit

0000

0000 1000

0000 0110

1: 0  giữ nguyên giá trị

0000

0000 1000

0000 0110

2: dịch số bị nhân sang trái 1 bit

0000

0001 0000

0000 0110

3: dịch số nhân sang phải 1 bit

0000

0001 0000


0000 0110

1: 0  giữ nguyên giá trị

0000

0001 0000

0000 0110

2: dịch số bị nhân sang trái 1 bit

0000

0010 0000

0000 0110

3: dịch số nhân sang phải 1 bit

0000

0010 0000

0000 0110

2

3


4

15


CE

Phép Nhân

Giải thuật thực hiện phép nhân từng bước ở phần cứng

multiplier
Hình 3 Sơ đồ của phép nhân 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ả điều
32 bits, chỉ có thanh ghi tích là khác – 64 bits;
 Chỉ sử dụng 1 chu kỳ xung clock để tính ra tích
16


Phép Nhân

CE
Phép nhân có dấu

 Cách đơn giản để thực hiện phép toán nhân có dấu, ta chia làm 2 phần (1 bit
dấu, 31 bit trị):
 Bit trọng số cao nhất là bit dấu, thực hiện phép xor trên 2 bit này để xác
định dấu của tích.

 31 bit còn lại xem như là phần trị và thực hiện việc tính toán bình
thường.
 Giải thuật tính trong phép nhân thực hiện trong 31 lần lặp (bit biểu hiện dấu
không tính trong phần này)
17


CE

Phép Nhân

Phép nhân theo cách hiện thực tính nhanh

Fig.4 Sơ đồ hiện thực phép tính nhanh ở mức phần cứng

18


CE

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

19



CE

Phép Chia

 Ngược lại của phép nhân là phép chia.
 Trường hợp ngoại lệ – chia 0.

Ví dụ:
Divisor: số chia
Quotient: số thương
Dividend: số phải chia
Remainder: số dư

20


CE

Phép Chia

Giải thuật thực hiện phép chia trên phần cứng

Số bị chia
Hình 5: Sơ đồ các khối hiện thực phép chia ở mức phần cứng

Chú ý: Hai số chia và bị chia là số dương, do đó kết
quả thương và số dư là không âm. Thực hiện phép toán
trên số dương do đó thương và các toán hạng của phép
chia có giá trị là 32 bit, bỏ qua các số có dấu.

Hình 6 giải thuật của phép chia

21


CE

Phép Chia

Giải thuật thực hiện phép chia trên phần cứng
Ví dụ: thực hiệp phép chia cho 2 số 4 bit sau:
710 : 210 hay 01112 : 00102
Bảng thực hiện giải thuật phép chia theo từng bước

22


Phép Chia

CE
Hiện thực phép chia nhanh

Remainder

Quotient

Hình 7: Hiện thực cách tính chia nhanh của các khối ở mức phần cứng

23



Phép Chia

CE
Phép chia có dấu

 Ta xét bit trọng số cao nhất (bit dấu) nếu bit dấu của số bị chia và số chia trái
dấu nhau thì bit dấu của thương tính bằng cách lấy phủ định bit dấu của thương.
 Điểm phức tập nhất trong phép chia có dấu là xác định bit dấu cho số dư. Các xác
định bit dấu cho số dư bằng công thức sau:
Số bị chia = Thương x Số chia + Số dư
 Số dư = Số bị chia – (Thương x Số chia)

Ví dụ:
– 7 : +2 thì thương = -3, dư = –1
Kiểm tra kết quả:
–7 = –3 x 2 + (–1) = –6 – 1
24


CE

Phép Chia

Phép chia trong MIPS
 Các khối thực hiện phép nhân, phép chia tương tư nhau như hình 3 (phép nhân) và
hình 7 (phép chia).
 1 thanh ghi 64 bit (chia 2 phần 32 bit trọng số cao và 32 bit trọng số thấp), 1 bộ ALU
32 bit thực hiện phép toán cộng, phép trừ.
 Sau khi thực hiện xong phép chia thì kết quả phép chia lưu trong thanh ghi 64 bit,

trong đó 32 bit trọng số cao lưu trữ phần dư, 32 bit trọng số thấp lưu trữ phần thương.
 Để xử cho các số có dấu và số không dấu, MIPS có 2 lệnh: phép chia (div) , và phép
chia không dấu (divu).
 Assembler cho phép lệnh chia sử dụng 3 thanh ghi: 2 lệnh mflo, mfhi. Kết quả 2 lệnh
này được lưu trữ trong thanh ghi tổng quát.
25


×