Cấu trúc máy tính là một mảng kiến thức nghiên cứu về cách xử lý của một hệ thống máy tính dưới cách nhìn của một lập trình viên. Cách nhìn này thực tế cũng có nhiều khía cạnh
Trang 1Bµi 9
§ång xö to¸n 8087
(Co-Processor)
Trang 31 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
Trang 58088 (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
Trang 62 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:
Trang 7* 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
Trang 9Hình 3.5 (Ví dụ về số với dấu phẩy cố định dạng
Trang 10Các b ớc chuyển số thực sang dấu phẩy động
23-5 Phần định trị XXXX đ ợc ghi ở các bit 22-0
Trang 11 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
Trang 14Số dấu phẩy động IEEE chính xác kép
Trang 15S Số mũ Phần định trị
63 62 52 51 0
Khoảng giá trị: 2,23 10 -308 X 1,79.10 308
Trang 16Chuyể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ở.
Trang 18 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é
Trang 21đồng xử lý toán 487SX.
Trang 22Chỉ dẫn định nghĩa dạng dữ liệu của 8087
DW (Define word - Số 16 bit).
DD (Define double word-32 bit) - từ kép, biểu diễn:
Trang 23Thanh ghi đa n ă ng 80x87
80x87 có 8 thanh ghi đa năng 80 bit
Các thanh ghi làm việc nh một ngăn xếp
- theo nguyên tắc LIFO
8 thanh ghi đ ợc đánh số từ 0 tới 7.
Trang 24Tr êng d÷ liÖu Tr êng thÎ
Thanh ghi tr¹ng th¸i Con trá d÷ liÖu
Tõ thÎ
* Tæ chøc thanh ghi cña 8087
Trang 26* VÝ dô
Trang 27ST(0) X b) FLD X
ST(0) Z ST(1) Y ST(2) X d) FLD Z
H×nh: Tæ chøc thanh ghi d¹ng ng¨n xÕp
Trang 28ST(0) X+Y+Z ST(1) Y ST(2) X b) FADD ST(2)=(STO+ST2)
ST(0) ST(1) Y ST(2) X d) FSTP SUM
H×nh: Thø tù thùc hiÖn c¸c lÖnh
Trang 29Z DD 29.0390625 ORG 30H
SUM DD ? DATASG ENDS
Trang 30CODESG SEGMENT
START PROC FAR
Trang 31CSUM PROC NEAR
FLD X ;N¹p X vµo ST (0)
FLD Y ;N¹p Y vµo ST (0) FLD Z ;N¹p Z vµo ST (0) FADD ST(1) ;ST(0)=Y+Z
Trang 32VÝ dô 2:
ViÕt ch ¬ng tr×nh hîp ng÷ cho 8087 tÝnh diÖn tÝch h×nh trßn víi b¸n kÝnh R
Trang 33STACKSG SEGMENT
DW 32 DUP (?) STACKSG ENDS
Trang 35CIRC_AREA PROC NEAR
FINT ;Khëi t¹o 8087
Trang 364 Tổ chức Đồng xử lý toán 8087
* Tổ chức khối
Đơn vị điều khiển CU (Control Unit):
• Điều khiển bus
• Điều khiển đơn vị số học
Đơn vị số NU (Numerical Unit)
• Thực hiện phép tính dấu phẩy động trong mạch tính luỹ thừa và mạch tính phần định trị
• Có ngăn xếp các thanh ghi
Trang 37Từ thẻ
Bộ tính
định trị
Bộ tính luỹ thừa
Trang 38Tr êng d÷ liÖu Tr êng thÎ
Thanh ghi tr¹ng th¸i Con trá d÷ liÖu
Tõ thÎ
* Tæ chøc thanh ghi cña 8087
Trang 39Thanh ghi đa n ă ng 80x87
80x87 có 8 thanh ghi đa năng 80 bit
Các thanh ghi làm việc nh một ngăn xếp, nghĩa là theo nguyên tắc LIFO
8 thanh ghi đ ợc đánh số từ 0 tới 7.
Trang 40Thanh ghi từ thẻ
8087 có 1 thanh ghi trạng thái gọi là thanh
ghi từ thẻ (tag word).
Thanh ghi từ thẻ gồm các cặp bit Tag0 - Tag7 dùng để l u trữ các thông tin liên quan đến nội dung của các thanh ghi R0-R7 nhằm cho phép thực hiện một số tác vụ nhanh hơn
Mỗi thanh ghi từ thẻ có 2 bit xác định 4 giá trị của các thanh ghi Ri.
Tag = 00: Có giá trị xác định
Tag = 01: Zero
Tag = 10: Giá trị bất th ờng
Tag = 11: Rỗng
Trang 41Bè trÝ ch©n 8087
Vcc A15/D15 A16/S3 A17/S4 A18/S5 A19/S6 BHE/S7 RQ/GT1 INT RQ/GT0 NC
NC S2 S1 S0 QS0 QS1 BUSY READY RESET
Vss A14/D14 A13/D13 A12/D12 A11/D11 A10/D10 A9/D9 A8/D8 A7/D7 A6/D6 A5/D5 A4/D4 A3/D3 A2/D2 A1/D1 A0/D0 NC NC CLK Vss
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
8087
Trang 42 Giữa chúng luôn có trao đổi thông tin
với nhau thông qua các bus cục bộ.
Trang 43* Tæ chøc nèi ghÐp 8088 vµ 8087 ë m¸y tÝnh PC/XT
DIR C
74LS245
AD0-AD7
8284A
RQ/GT0 INT QS1 S0QS0 S1BUSY S2Reset
Ready Clk AD19
AD0-8259
INTA
SP/EN D0-D7
C
74LS373
OE
Test QS0 QS1 RQ/GT1
8088
Clk Ready Reset MN/MX AD0-AD7 A8-A19
S0 INTA Clk CEN S1
S2 8288
DEN DT/R ALE AEN
Clk
MEMR MEMW IOR IOW
A0-A19 ADDRES BUS
D0-D8 DATA BUS
AEN
M¹ch NMI 5V
8087
INTR
S0 S1 S2 NMI
Trang 454.Trạng thái hàng đợi QS1 và QS2
c chuyển từ 8088 tới 8087 cho
được chuyển từ 8088 tới 8087 cho
phép quản lý trạng thái hàng đợi
của 8088.
đến bộ vi xử lý 8088 để thông báo cho 8088 biết đã kết thúc thực hiện một lệnh mà 8088 phải chờ tr ớc đó.
6.Chân (Request/Grant) của 8088 đ ợc
nối tới của 8087, cho phép chia
quyền sử dụng bus
Trang 478088 PRE
D Q CLR
KiÓm tra cho phÐp
A0H
Tõ ch©n RESET
cña CPU
Trang 48 Chu kỳ bus của 8088 th ờng 4 chu kỳ đồng
hồ, còn 8087 một số lệnh cần trên 100 chu kỳ
Trang 49 Khi 8087 đang thực hiện một lệnh,
nó sẽ tự động kích hoạt chân BUSY lên mức cao Chân này đ ợc nối TEST của
8088
Khi đó 8088 thực hiện lệnh chờ
WAIT, đồng thời liên tục kiểm tra chân TEST để xem đã chuyển sang mức thấp
ch a
Khi 8087 kết thúc, nó chuyển chân
READY xuống mức thấp xác định 8088
có thể chuyển lệnh tiếp theo tới 8087