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

Bài giảng Kiến trúc máy tính (ThS. Nguyễn Hằng Phương) Chương 10

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 (1.49 MB, 61 trang )

1

+

Chương 10
Số học máy tính


+

2

NỘI DUNG
10.1 Đơn vị Số học & Logic (ALU)

10.2 Biểu diễn số nguyên
Biểu diễn Dấu-độ lớn
Biểu diễn bù 2
Mở rộng phạm vi
Biểu diễn dấu chấm tĩnh

10.3 Số học số nguyên
phép đảo/ Cộng và trừ / Phép nhân / Phép chia

10.4 Biểu diễn dấu chấm động

10.5 Số học dấu chấm động


+


3

1. Đơn vị logic & số học (ALU)
 Phần

của máy tính thực hiện phép tốn số học và lơgíc
trên dữ liệu

 Tất

cả các bộ phận khác trong hệ thống máy tính đưa dữ
liệu tới ALU để ALU xử lý rồi sau đó nhận lại kết quả
dụng các linh kiện logic số đơn giản để lưu trữ các
chữ số nhị phân và thực hiện các phép toán logic Boolean
đơn giản

 Sử


Đầu vào và đầu ra ALU

4


Mã hóa dữ liệu trong máy tính
 Mọi dữ liệu đưa vào máy tính đều phải được mã hóa thành
số nhị phân
 Mã hóa theo các chuẩn qui ước
 Dữ liệu số:
 „Số nguyên: mã hóa theo một số chuẩn

 Số thực: mã hóa bằng số dấu chấm động
 Dữ liệu ký tự: mã hóa theo bộ mã ký tự

5


6

Thứ tự lưu trữ byte trong bộ nhớ chính
 Bộ nhớ chính thường tổ chức theo byte
 „Hai cách lưu trữ dữ liệu nhiều byte:
 Little-endian:
 Byte có ý nghĩa thấp được lưu trữ ở ngăn nhớ có địa
chỉ nhỏ, byte có ý nghĩa cao được lưu trữ ở ngăn nhớ
có địa chỉ lớn.
 Nền tảng sử dụng: Intel

 Big-endian:
 Byte có ý nghĩa cao được lưu trữ ở ngăn nhớ có địa chỉ
nhỏ, byte có ý nghĩa thấp được lưu trữ ở ngăn nhớ có
địa chỉ lớn.
 Nền tảng sử dụng: IBM zSeries, Motorola 680x0…


7

Ví dụ lưu trữ dữ liệu 32-bit


+


8

2. Biểu diễn số nguyên
 Số

nguyên không dấu (Unsigned Integer)

„
Số

nguyên có dấu (Signed Integer)

 Trong

hệ nhị phân, có thể biểu diễn các số bất kì bằng:



Các chữ số 0 và 1



Dấu âm (với số âm)



dấu chấm (với số có phần phân số)

 Đối


với mục đích lưu trữ và xử lý, sẽ khơng có lợi khi
dùng các ký hiệu đặc biệt cho dấu trừ và dấu chấm

 Chỉ

sử dụng các chữ số nhị phân (0,1) để biểu diễn số?


a. Biểu diễn số nguyên không dấu
 Nguyên

tắc tổng quát: Dùng n bit biểu diễn số nguyên
không dấu A:

 Dải

biểu diễn của A: từ 0 đến 2n –1

 Với

n = 8 bit: Biểu diễn được các giá trị từ 0 đến 255

0000 0000

=0

0000 0001

=1


0000 0010

=2

...
1111 1111

= 255

9


b. Biểu diễn dấu-độ lớn

10

 Quy ước về biểu diễn số nguyên âm và dương: dùng bit
quan trọng nhất (MSB) trong từ làm bit dấu
• bit dấu là 0  số dương
• bit dấu là 1  số âm
 Ví dụ: + 18 = 00010010
- 18 = 10010010
 Biểu diễn dấu-độ lớn: cách sử dụng bit dấu đơn giản nhất
 Nhược điểm:
• Để thực hiện phép cộng và phép trừ, đòi hỏi phải xem
xét cả dấu và độ lớn của các số
• Có hai biểu diễn của số 0 (+0 và -0)
 Biểu diễn dấu-độ lớn hiếm khi được sử dụng trong việc
xử lý phần số nguyên của ALU



11

c. Biểu diễn bù 2
 Nguyên

tắc tổng quát: Dùng n bit biểu diễn số nguyên có

dấu A:


Với A là số dương: bit an-1 = 0, các bit còn lại biểu diễn độ lớn
như số không dấu



Với A là số âm: được biểu diễn bằng số bù hai của số dương
tương ứng, bit an-1 = 1

 Quy

tắc tìm số bù hai



Số bù một của A = đảo giá trị các bit của A




(Số bù hai của A) = (Số bù một của A) + 1

 Ví

dụ:

+3 = 0000 0011

-3 = 1111 1101


+ c. Biểu diễn bù 2
 Sử

dụng bit quan trọng nhất làm bit dấu

 Có

1 biểu diễn cho số 0

 Phạm

vi biểu diễn: (– 2n-1)  (2n-1 -1)



Dải biểu diễn cho số dương: 0 đến 2n-1 -1




Dải biểu diễn cho số âm: -1 đến - 2n-1

 Thực


12

hiện phép toán số học dễ dàng

Để tính A – B, lấy bù 2 của B rồi cộng với A

 Khi

cộng 2 số cùng dấu, nếu kết quả có dấu ngược lại sẽ gây
tràn (overflow)
 được

sử dụng trong việc xử lý phần số nguyên của ALU


Biểu diễn
số nguyên
4-Bit

13


+

14


d. Mở rộng phạm vi
 Mở

rộng phạm vi biểu diễn số nguyên bằng cách tăng độ
dài chuỗi bit

 Mở

rộng phạm vi trong biểu diễn dấu-độ lớn: di chuyển bit
dấu tới vị trí mới ngồi cùng bên trái và điền thêm các bit 0

 Mở

rộng phạm vi trong biểu diễn số âm bù 2: di chuyển bit
dấu tới vị trí ngồi cùng bên trái và điền vào các bit giống
bit dấu
 Đối với số dương thì điền 0, và số âm thì điền số 1
 Đây được gọi là phần mở rộng dấu


+

15

Phạm vi biểu diễn số co dấu bù 2: (– 2n-1)  (2n-1 -1)
 Bù 2 8 bit
 +127 = 01111111 = 27 -1
 -128 = 10000000 = -27
 Bù 2 16 bit

 +32767 = 011111111 11111111 = 215 - 1
 -32768 = 100000000 00000000 = -215
Ví dụ Mở rộng phạm vi
 Số dương được điền các bit 0
 +18 =
00010010
 +18 = 00000000 00010010
 Số âm được điền các bit 1
 -18 =
10010010
 -18 = 11111111 10010010


+
3. Số học số nguyên

16


+ a. Phép đảo dấu
Phép đảo dấu = lấy bù 2:
 Đảo các bit của số nguyên (cả bit dấu)
 Kết quả coi như số nguyên nhị phân không dấu, cộng thêm 1
+18 = 00010010 (bù 2)
đảo bit = 11101101
+
1
11101110 = -18



Đảo của đảo của một số là chính nó:
-18 = 11101110 (bù 2)
đảo bit = 00010001
+
1
00010010 = +18

17


+

18

Phép đảo - Trường hợp đặc biệt
0=
0000 0000 (bù 2)
Đảo bit
1111 1111
Cộng 1
+1
Kết quả 1 0000 0000
Bỏ qua bit tràn: - 0 = 0 


-128 =
10000000 (bù 2)
Đảo bit
01111111
Cộng 1

+1
Kết quả
10000000
Vậy: -(-128) = -128 X



19

b. Phép cộng
Cộng
như số
nguyên
không
dấu


20

Nguyên tắc

NGUYÊN TẮC TRÀN:

+

Nếu hai số cộng với nhau, mà
cả hai đều dương hoặc đều
âm, thì sẽ xảy ra tràn nếu kết
quả có dấu ngược lại.


Tràn


21

b.
Phép
trừ


22

Nguyên tắc

NGUYÊN TẮC TRỪ:
Để trừ một số (số bị trừ) từ
một số khác (số trừ), lấy bù 2
(đảo) của số trừ và cộng nó
với số bị trừ.
+
VD: a - b = a + (-b)

Trừ


Mơ tả hình học của số ngun bù 2

endpoints are joined

23



Phần cứng thực hiện cộng và trừ

24


d. Phép nhân






Phức tạp
Tính tích cho từng chữ số - tích riêng phần
Quan tâm đến vị trí giá trị (dóng cột)
Cộng tổng các tích  tích tồn phần
Ví dụ nhân số nguyên không dấu:

! Kết quả dài gấp đôi

25


×