Tải bản đầy đủ (.ppt) (49 trang)

Bài giảng cấu trúc máy tính - P9

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 (136.91 KB, 49 trang )

Bµi 9
§ång xö to¸n
8087
(Co-Processor)
1. Giíi thiÖu
2. C¸c kiÓu d÷ liÖu cña ®ång xö
lý to¸n
3. LËp tr×nh víi ®ång xö lý to¸n
4. Tæ chøc ®ång xö lý to¸n 8087
5. Nèi ghÐp ®ång xö lý to¸n 8087
trong m¸y tÝnh XT
1. Giới thiệu

Đồng xử lý toán (ĐXLT) còn được
gọi là đơn vị dấu phẩy động
(Floating Point Unit).

Chức năng: Hỗ trợ CPU trong
việc tính toán các số dấu phẩy
động như cộng, trừ, nhân chia
số dấu phẩy động, khai căn,
lôgarit....

Bộ ĐXLT cho phép thực hiện các
phép toán số dấu phẩy động
nhanh hơn nhiều lần so với bộ
vi xử lý (từ hàng chục cho đến
hàng trăm lần).

Từ bộ VXL 486 về sau, ĐXLT đư
ợc tích hợp trong chip CPU.



Từ 386 về trước ĐXLT là chip
riêng.
Bảng 12.1. So sánh nhịp đồng hồ 8087 và
8086
Thời gian F=4,7MHz
Phép toán
Nhân độ chính xác
đơn
Nhân độ chính xác
kép
Cộng
Chia
So sánh
Nạp
Cất
Căn bậc hai
Tang
Hàm mũ
8087(às
)
19
27
17
39
9
9
18
36
90

100
8088
(às)
1.600
2.100
1.600
3.200
1.300
1.700
1.200
19.600
13.000
17.100
Số lần
85
80
95
80
145
190
70
550
145
170
2. Các kiểu dữ liệu đồng xử lý
toán.
Chuẩn số dấu phẩy động IEEE

Năm 1980 Uỷ ban IEEE đã tiến hành
chuẩn hoá biểu diễn số thực.


Chuẩn IEEE, số thực có hai cấp độ chính
xác:

Số với độ chính xác đơn.

Số với độ chính xác kép.

Hiện nay các hãng máy tính, trong đó
có IBM, Intel và Microsoft đều tuân theo
chuẩn này.

Các bộ vi xử lý RISC cũng sử dụng
chuẩn dấu phẩy động IEEE.
* Số IEEE dấu phẩy động chính xác
đơn

Số dấu phẩy động chính xác đơn sử
dụng 32 bit để biểu diễn số thực (số
âm và số dương).

Khoảng giá trị nhị phân:
2
-126
X 2
+128


Khoảng giá trị thập phân:
1,2x10

-38
X 3,4x10
+38

Tên gọi khác: Số thực ngắn.
Sắp xếp các bit
Bit Sắp xếp
31 Bit dấu: 0-số dương, 1-số
âm.
23-30 Phần mũ.
22-0 Phần thập phân (định
trị)
S Số mũ Phần định trị
31 30 23 22
0
Khoảng giá trị: 1,18x10
-38
X
3,40x10
38
2
-126
X 2
128
Hình 3.5. (Ví dụ về số với dấu phẩy cố định dạng
số lẻ và số hỗn hợp (DSP 56K của Motorola)

55 48 47 24 23 0
1 1 1 1 1
1

1 1 1 0 1 1 0 0 0 0 0

Mở rộng dấu Dấu Nội dung của thanh chứa
-0,625 : Số thập phân
11111111101100...0 : Mã bù
11111111110100...0 : Mã trực tiếp

55 48 47 24 23 0
1 1 1 1 1 1 1 0 1 0 1 1 0 0 0 0 0

Dấu Phần nguyên Phần thập phân
Nội dung của thanh chứa
-3,625 : Số thập phân
11111110101100...0 : Mã bù
10000001110100...0 : Mã trực tiếp
Các bước chuyển số thực sang dấu phẩy
động
1. Số thực được chuyển thành số nhị
phân.
2. Số nhị phân được biểu diễn dưới dạng
khoa học 1.XXXXEYYYY
3. Bit 31 có giá trị hoặc là 0 để chỉ số dư
ơng, hoặc là 1 để chỉ số âm.
4. Phần số mũ YYYY được cộng thêm hằng
số 7FH để tính số mũ cơ sở và được ghi
ở bit 23-30.
5. Phần định trị XXXX được ghi ở các bit
22-0.

Ghi chú: Việc cộng thêm giá trị 7FH ở

phần mũ là nhằm đơn giản hoá thiết
kế, giảm thiểu số transistor của bộ
đồng xử lý toán.
Ví dụ:
Chuyển số 9,75
10
thành số dấu phẩy động
chính xác đơn (số thực ngắn).
Giải:

9,75D=1001,11B= 1,00111E3

Bit 31: =0 (Số dương)

Bit 30 - 23: 1000 0010 số mũ
(3+7FH=82H)

Bit 22-0: 00111000000.....0000 - Phần
định trị.

Xếp cùng:
0100 0001 0001 1100 0000 0000 0000
0000
4 1 1 C 0 0 0
0
Kiểm tra lại bằng hợp ngữ
Ví dụ:
Chuyển số -96.27
10
thành số chính xác

đơn FP.
Giải:
96,27D
=110.0000,0100.0101.0001.1110.1B
=1,1000.0001.0001.0100.0111.101E6
Bit dấu :Bit 31 bằng 1 là số âm
Số mũ :Các bit 30 - 23 bằng 1000.0101
(6+7HF=85H)
Dưới dạng nhị phân và Hexa:
1100 0010 1100 0000 1000 1010 0011
1101
C 2 C 0 8 A 3
D
Số dấu phẩy động IEEE chính
xác kép

Số dấu phẩy động chính xác
kép còn được gọi là số thực dài.

Biểu diễn số âm và dương trong
dải 23x10
-308
Xđến 1,7x10
+308
.

Tổng cộng 64 bit.

Bit 63: Bit dấu


Bit 62-52 (11 bit): Phần mũ

Bit 51-0 (52 bit): Phần định trị.
S Sè mò PhÇn ®Þnh trÞ
63 62 52 51
0
Kho¶ng gi¸ trÞ: 2,23. 10
-308
≤X≤ 1,79.10
308
Chuyển sang dạng số chính xác kép

Các bước chuyển một số sang dạng
số chính xác kép cũng tương tự như
với số chính xác đơn.

Số thực được biểu diễn dưới dạng
nhị phân khoa học
1.XXXXXXX E YYYY.

Số mũ YYYY được cộng thêm 3FFH
để xác định số mũ cơ sở.
VÝ dô:
ChuyÓn ®æi sè 152.1875
10
thµnh sè chÝnh
x¸c kÐp.
Gi¶i:
152.1875D=10011000.0011B=1.00110000
011E7

Bit 63=0 - Sè d­¬ng
Bit 62- 52=100.0000.0110 (7+3FFH=406H)
Bit 51-0=00110000011000...000
0010 0000 0110 0011 0000 0110 0000 0000
0000 . . 4 0 6 3
0 6 0 0 0 . .
Cã thÓ kiÓm tra l¹i b»ng hîp ng÷
Các dạng dữ liệu khác của 8087

Số nguyên: Hỗ trợ các số 16, 32 và 64
bit, các số này tương ứng với số nguyên
dạng từ, dạng ngắn và dạng dài.

Số thực: Bổ sung thêm 2 kiểu dữ liệu 80
bit, đó là số thập phân nén (Packed
Decimal) và số thực tạm thời (Temporary
Real).

Số thập phân nén có 18 số BCD chiếm
72 bít (18x4=72) từ bit 71-0. Bit 73-78=0.
bit 79 chứa dấu.

Số thực tạm thời được 8087 sử dụng nội
bộ.
* C¸c d¹ng d÷ liÖu kh¸c
§é dµi Kho¶ng gi¸ trÞ

Word integer 16 -32768 ≤ X ≤ +32768

Short Integer 32 -2.10

9
≤ X ≤ +2.10
9

Long Integer 64 -9.10
18
≤ X ≤ +9.10
18

Packed Decimal 80 -99..99 ≤ X ≤ +99..99 (18
sè BCD)

Single Real 32 1.18.10
-38
≤ X ≤ 3.40.10
38

Double Real 64 2,23. 10
-308
≤X≤ 1,79.10
308

Temporary Real 80 3,37.10
-
4932
≤X≤1,18.10
4932

×