1. Trang chủ
  2. » Công Nghệ Thông Tin

btl kien truc may tinh : Nghiên cứu tìm hiểu về vi mạch đồng xử lý toán học 80878028780387

30 1,3K 15

Đ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 30
Dung lượng 739,75 KB

Nội dung

Để đáp ứng được nhu cầu về công nghệ hiện nay, nhà sản xuất chip vi xử líIntel đã phát triển và chế tạo ra bộ mạch đồng xử lý toán học 8087/80287/80387 .Chúng làm việc với 80 bit cùng mộ

Trang 1

Lời nói đầu

Khoa học phát triển ngày càng mạnh mẽ, nhu cầu sử dụng về công nghệngày càng cao, yêu cầu về độ chính xác, năng suất hoạt động cao Từ những yêucầu đó con người phải sản xuất phát minh ra những công cụ, sản phẩm ứng dụng vàphát triển ngành công nghệ lập trình

Để đáp ứng được nhu cầu về công nghệ hiện nay, nhà sản xuất chip vi xử líIntel đã phát triển và chế tạo ra bộ mạch đồng xử lý toán học 8087/80287/80387 Chúng làm việc với 80 bit cùng một lúc, cho nên lập trình viên có thể biểu diễn một

số đủ độ dài để đảm bảo cho các phép tính được thực hiện chính xác Một tính năngcải tiến của chip Intel 80486 DX là gộp cả mạch đồng xử lý số vào trong chip vi

Trang 2

Chương 1: Giới thiệu chung về vi xử lý

1.1 Giới thiệu về vi xử lý

Một máy tính thông thường bao gồm các khối chức năng cơ bản, như khối

xử lí trung tâm (CPU - Central Processing Unit), bộ nhớ trong và khối phối ghépvới thiết bị ngoại vi (I/O - Input/Output) Tuỳ theo quy mô, độ phức tạp và hiệunăng của các khối chức năng kể trên mà người ta chia các máy tính điện tử đã vàđang sử dụng ra thành các loại sau:

Máy tính lớn (Mainframe) là loại máy tính được thiết kế để giải các bài toánlớn với tốc độ cao

Máy tính con (Minicomputer) là một dạng thu nhỏ về kích thước cũng như

về tính năng của máy tính lớn

Máy vi tính (Microcomputer) là loại máy tính rất thông dụng hiện nay Mộtmáy vi tính có thể là một bộ vi điều khiển (Microcontroller), một máy tính trongmột vi mạch (one-chip microcomputer), và một hệ vi xử lí có khả năng làm việcvới số liệu có độ dài 1 bít, 4 bít, 8 bít, 16 bít hoặc lớn hơn Hiện nay, một số loạimáy vi tính có năng lực xử lý tương đương với máy tính con, có thể làm việc với sốliệu có độ dài từ là 32 bít và 64 bít Ranh giới để phân chia giữa máy vi tính và máytính con chính vì thế ngày càng không rõ nét

Các bộ vi xử lý hiện có tên thị trường thường được xếp theo các họ phụthuộc vào các nhà sản xuất và chúng rất đa dạng về chủng loại Các nhà sản xuất vi

xử lý nổi tiếng có thể kể tới là hãng Intel với các vi xử lý họ x86, Core, Core i;Motorola với vi xử lý họ 680xx; Sun Microsystems với họ vi xử lý SPARC vàAMD với các vi xử lý Althlon và Phenom Tính đến thời điểm hiện nay các chươngtrình viết cho tập lệnh x86 và tương thích của Intel chiếm tỷ lệ áp đảo trong môitrường máy vi tính

Trang 3

1.2 Chip đồng xử lý toán học 8087/80287/80387 (Mathematical co-processor)

Intel 8087 được công bố vào năm 1980, là sản phẩm x87 đầu tiên kết nối vi

thập phân lớn Hiệu suất được

cải tiến từ khoảng 20% đến hơn

500%, tùy thuộc vào ứng dụng

được hưởng lợi từ các chi phí

phụ (khoảng $ 150 ) và công suất

Tiếp thị bởi Intel , IBM

Thiết kế bởi Intel

Max CPU tốc độ đồng hồ

4 MHz đến 10 MHz

Min kích thước tính năng

Trang 4

bảo cho các phép tính được thực hiện chính xác Một tính năng cải tiến của chipIntel 80486 DX là gộp cả mạch đồng xử lý số vào trong chip vi xử lý.

Các bộ đồng xử lý toán 80x87 hỗ trợ CPU trong việc tính toán các biểu thứcdùng dấu chấm động như cộng, trừ, nhân, chia các số dấu chấm động, căn thức,logarit,… Chúng cho phép xử lý các phép toán này nhanh hơn nhiều so với CPU.Thời gian xử lý giữa 8087 và 8086 như sau (dùng xung clock 8 MHz):

Trang 5

Chương 2: Chip đồng xử lý toán học 8087/80287/80387

2.1 8087

2.1.1 Cấu trúc 8087.

8087 gồm một đơn vị điều khiển (CU – Control Unit) dùng để điều khiển bus

và một đơn vị số học (NU – Numerical Unit) để thực hiện các phép toán dấu chấmđộng trong các mạch tính lũy thừa (exponent module) và mạch tính phần định trị(mantissa module) Khác với 8086, thay vì dùng các thanh ghi rời rạc là một ngănxếp thanh ghi

Bus dữ liệu

Địa chỉ trạng thái

Hình 2.1 : Sơ đồ khối của 8087

Đơn vị điều khiển nhận và giải mã lệnh, dọc và ghi các toán hạng, chạy cáclệnh điều khiển riêng của 8087 Do đó, CU có thể đồng bộ với CPU trong khi NUđang thực hiện các công việc tính toán CU bao gồm bộ điều khiển bus, bộ đệm dữliệu và hàng lệnh

Từ trạng thái

số

Module lũy thừa

Module định trị

Đệm dữ liệu

Thanh ghi Đệm dữ liệu

Ngăn xếp Điều khiển bus

Trang 6

2.1.2 Bộ đồng xử lý toán học 8087.

Chip vi xử lý 8087 là đồng xử lý toán học dùng chung với 8086/8088 trongmáy tính, trong đó 8087 là vi xử lý phụ (slave) còn 8086/8088 là vi xử lý chính(master) 8087 chuyên thực hiện các phép tính các số với dấu phảy động thuộcnhiều loại dữ liệu khác nhau 8086/8088 thực hiện các phép tính này thông quathực hiện các mô phỏng, do đó tốc độ thực hiện chúng rất chậm Nếu dùng 8087

sẽ tăng tốc độ tính toán các số dấu phảy động lên rất nhiều

Hình 2.2: Đóng vỏ DIP 40 chân và các tín hiệu của chip đồng xử lý toán học 8087

Công nghệ vào thời kỳ ra đời 8086/8088 không cho phép cấy 8087 vào bêntrong 8086/8088 như trong 80486DX và Pentium, do đó phải chế tạo chip riêng đểthực hiện phép tính số dấu phẩy động 8086 được đóng vỏ DIP 40 chân tín hiệu.Các đường tín hiệu địa chỉ và dữ liệu được ghép chung từ A0/D0 đến A19/D15.Như vậy 8087 có thể trao đổi dữ liệu theo byte và theo từ 16 bit Các tín hiệutrạng thái S0, S1, S2 và S3, S4, S5, S6, S7 có trong chế độ làm việc tối đa của8086/8088 Nhịp đồng hồ CLK của 8087 có tần số như tần số của nhịp đồng hồ

Trang 7

Đơn vị xử lý số học Đơn vị điều khiển

Thanh ghi dịch lập trình được Hàng đợi

phép toán

Từ điều khiển

Từ trạng thái

Module

số học Giao tiếp

Đơn vị điều khiển vi lệnh

Bộ đệm

dữ liệu

Lệnh mới

Dữ liệu

Các thanh ghi tạm

Đánh địa chỉ và tạo rãnh bus

Hàng đợi phép toán

Con trỏ ngoại tệ

Trang 8

Dấu Hàm mũ Logarit

Hình 2.4: Khuôn dạng tập thanh ghi bên trong của 8087

2.1.3 Thanh ghi

Hình 2.5: Sơ đồ kết nối 8087 và CPU 8086

Ngăn xếp thanh ghi có tất cả 8 thanh ghi từ R0 ÷ R7, mỗi thanh ghi dài 80 bittrong đó bit 79 là bit dấu, bit 64 ÷ 78 dùng cho số mũ và phần còn lại là phần địnhtrị Dữ liệu truyền giữa các thanh ghi này được thực hiện rất nhanh do 8087 có độrộng bus dữ liệu là 84 bit và không cần phải biến đổi định dạng

Ngay sau khi reset PC, bộ đồng xử lý kiểm tra xem nó có được nối với PChay không bằng các đường BHE/S7 8087 sẽ điều chỉnh độ dài của hàng lệnh chophù hợp với CPU (nếu dùng 8086 thì độ dài là 6 byte)

8087 có một thanh ghi trạng thái là thanh ghi từ thẻ (tag word) gồm các cặpbit Tag0 ÷ Tag7 để lưu trữ các thông tin liên quan đến nội dung của các thanh ghiR0 ÷ R7 để cho phép thực hiện một số tác vụ nhanh hơn Mỗi thanh ghi từ thẻ có 2bit xác định 4 giá trị khác nhau của các thanh ghi Ri

Trang 9

Tag = 00: xác định

Tag = 01: zero

Tag = 10: NAN, giá trị bất thường

Tag = 11: rỗng

Tập thanh ghi bên trong của 8087:

Tập thanh ghi bên trong 8087 được tổ chức theo cơ chế ngăn xếp(register stack), và có khuôn dạng như trong Hình 2.4 và Hình 2.5.Trong cơ chế ngăn xếp dữ liệu được đẩy vào (push) đỉnh ngăn xếp, vịtrí ST(0), và những dữ liệu cũ trong ngăn xếp được tự động đẩy xuốngphía đấy ngăn xếp Khi đọc ra, dữ liệu được lấy từ đỉnh ST(0), những

dữ liệu còn lại trong ngăn xếp tự động đi lên đỉnh

Trang 10

2.1.4 Kết nối 8087 và 8086/8088

Hình 2.6: Ghép nối vi xử lý 8086 và đồng xử lý toán học 8087

Sự liên kết giữa 8086 với 8087 được thực hiện cả phần cứng và phần mềm vàđược mô tả trong Hình 2.6

Về phần cứng, tín hiệu RQ / GT0 của 8087 thực hiện giám sát truy cập bus,

về phần mềm, 8087 theo dõi các lệnh được 8086/8088 đọc ra có tiền tố là ký hiệuđặc biệt ESCAPE (ESC) hay không Nếu tiền tố của lệnh máy có ký tự ESC thì

8087 tiếp nhận lệnh đưa từ 8086/8088 và sẽ bắt đầu quá trình thực hiện lệnh, còn8088/8086 thì vẫn tiếp tục xử lý riêng cho đến lúc nó cần đến kết quả tính toán từ

8087 Lúc này 8080/8086 bước vào trạng thái chờ đợi WAIT (Lệnh WAIT chờtín hiệu TEST) Khi 8087 đã tính xong và đưa kết quả vào bộ nhớ, nó gửi tín hiệuBUSY = 0 đến chân TEST để thông báo cho 8086/8088 Trạng thái chờ của8086/8088 kết thúc khi TEST khẳng định ở mức 0 và 8086/8088 tiếp tục quátrình xử lý của nó Trong chế độ tối đa, INTA và ALE trở thành hai tín hiệutrạng thái QS1 và QS0, đó là 2 bit trạng thái của bộ vi xử lý trong quá trình thực

Trang 11

hiện lệnh Chúng cần thiết cho bộ đồng xử lý và các thiết bị ngoại vi làm việc kếthợp chặt chẽ với bộ vi xử lý.

Quá trình tính toán của 8087 thực hiện theo 3 bước như sau:

- Bước 1: Dữ liệu được nạp từ bộ nhớ chính của hệ thống vào tập hợp cácthanh ghi bên trong (register stack)

- Bước 2: 8087 xử lý các dữ liệu vừa được nạp

- Bước 3:Kết quả được cất trở lại vào bộ nhớ chính của hệ thống

2.1.5 Tập lệnh 8087

Tập lệnh của 8087 gồm nhiều lệnh tính toán với các số nguyên, BCD và dấuphảy động Chúng được xem là các lệnh mở rộng tập lệnh của 8086/8088 Khiviết chương trình, trong đó có sử dụng cả các lệnh của 8087, và 8088, thì thứ tựchương trình không cần bận tâm Tất cả các tên lệnh của tập lệnh 8087 đều cóchữ cái đầu là "F", nghĩa là Floating-point

Các lệnh của 8087 phân thành các nhóm như sau:

1 Các lệnh vận chuyển các số thực (Real transfers)

2 Các lệnh vận chuyển các số nguyên (Integer transfers)

3 Các lệnh vận chuyển các số hệ mười đóng gói (Packed decimal transfers0

Trang 12

11 Các lệnh với hằng số (Constant).

12 Các lệnh điều khiển bộ xử lý (Processor Control)

Nhóm lệnh điều khiển bộ xử lý là những lệnh như: Khởi tạo ban đầu bộ xử

lý, cấm ngắt, cho phép ngắt, nạp từ điều khiển, cất giữ từ điều khiển, xoá cácngoại lệ, nạp và cất giữ môi trường, cất giữ và phục hồi trạng thái, tăng con trỏngăn xếp, giảm con trỏ ngăn xếp, làm trống thanh ghi, chờ CPU, và không thựchiện gì cả

2.1.6 Khuôn dạng dữ liệu 8087

Khi cất giữ vào trong bộ nhớ chính của hệ thống, dữ liệu có thể ở bất kỳkhuôn dạng nào, nhưng trong 8087, dữ liệu chỉ có thể được xử lý và cất giữ dướicác dạng số qui định cho các tính toán số dấu phảy động Khi chuyển từ 8087 trởlại bộ nhớ chính của hệ thống, dữ liệu được tự động chuyển về dạng thích hợpcho xử lý bên trong 8086/8088

Số thực ngắn có giá trị lớn nhất là 127 (7Fh), số thực dài có giá trị lớn nhất là

1023 (3FFh), và số thực tạm thời có giá trị lớn nhất là 16383 (3FFFh)

Trang 13

2.2 80287

Hình 2.7: Sơ đồ kết nối giữa 80286 và 80287

Do 80286 có chế độ mạch bảo vệ nên mạch ghép nối giữa 80286 và 80287được thiết kế khác 8087 ở đơn vị điều khiển CU Bộ đồng xử lý ở đây không thựchiện truy xuất bộ nhớ trực tiếp Để truy xuất được bộ nhớ, 80287 không những cầnmột đơc vị định địa chỉ đơn giản của nó mà còn phải được tăng cường thêm chứcnăng quản lý bộ nhớ của 80286 Cấu trúc bên trong của 80287 cũng tương tự như

8087, chỉ có đơn vị bus thay đổi cho phù hợp với 80286 Khác vơi 8087, 80287hoạt động không đồng bộ với CPU nên có thể dùng xung clock riêng

Trang 14

2.3 80387:

Ưu điểm của 80387 so với 80287 là có thể thực hiện các phép toán số họcnhanh hơn Nó có bus dữ liệu 32 bit như CPU và sử dụng công nghệ CMOS nêncông suất tiêu thụ thấp hơn

Trang 15

- Phân loại các nhóm lệnh toán học trong vi xử lý 8087

3 Sơ đồ kết nối giữa vi xử lý 80287 và 80286

4 Ưu điểm của vi xử lý 80387 sau khi nghiên cứu phát triển từ vi xử lý 80287

Lời nói đầu

Khoa học phát triển ngày càng mạnh mẽ, nhu cầu sử dụng về công nghệngày càng cao, yêu cầu về độ chính xác, năng suất hoạt động cao Từ những yêucầu đó con người phải sản xuất phát minh ra những công cụ, sản phẩm ứng dụng vàphát triển ngành công nghệ lập trình

Để đáp ứng được nhu cầu về công nghệ hiện nay, nhà sản xuất chip vi xử líIntel đã phát triển và chế tạo ra bộ mạch đồng xử lý toán học 8087/80287/80387 Chúng làm việc với 80 bit cùng một lúc, cho nên lập trình viên có thể biểu diễn một

số đủ độ dài để đảm bảo cho các phép tính được thực hiện chính xác Một tính năngcải tiến của chip Intel 80486 DX là gộp cả mạch đồng xử lý số vào trong chip vi

Trang 16

Chương 1: Giới thiệu chung về vi xử lý

1.3 Giới thiệu về vi xử lý

Một máy tính thông thường bao gồm các khối chức năng cơ bản, như khối

xử lí trung tâm (CPU - Central Processing Unit), bộ nhớ trong và khối phối ghépvới thiết bị ngoại vi (I/O - Input/Output) Tuỳ theo quy mô, độ phức tạp và hiệunăng của các khối chức năng kể trên mà người ta chia các máy tính điện tử đã vàđang sử dụng ra thành các loại sau:

Máy tính lớn (Mainframe) là loại máy tính được thiết kế để giải các bài toánlớn với tốc độ cao

Máy tính con (Minicomputer) là một dạng thu nhỏ về kích thước cũng như

về tính năng của máy tính lớn

Máy vi tính (Microcomputer) là loại máy tính rất thông dụng hiện nay Mộtmáy vi tính có thể là một bộ vi điều khiển (Microcontroller), một máy tính trongmột vi mạch (one-chip microcomputer), và một hệ vi xử lí có khả năng làm việcvới số liệu có độ dài 1 bít, 4 bít, 8 bít, 16 bít hoặc lớn hơn Hiện nay, một số loạimáy vi tính có năng lực xử lý tương đương với máy tính con, có thể làm việc với sốliệu có độ dài từ là 32 bít và 64 bít Ranh giới để phân chia giữa máy vi tính và máytính con chính vì thế ngày càng không rõ nét

Các bộ vi xử lý hiện có tên thị trường thường được xếp theo các họ phụthuộc vào các nhà sản xuất và chúng rất đa dạng về chủng loại Các nhà sản xuất vi

xử lý nổi tiếng có thể kể tới là hãng Intel với các vi xử lý họ x86, Core, Core i;Motorola với vi xử lý họ 680xx; Sun Microsystems với họ vi xử lý SPARC vàAMD với các vi xử lý Althlon và Phenom Tính đến thời điểm hiện nay các chươngtrình viết cho tập lệnh x86 và tương thích của Intel chiếm tỷ lệ áp đảo trong môitrường máy vi tính

Trang 18

1.4 Chip đồng xử lý toán học 8087/80287/80387 (Mathematical co-processor)

Intel 8087 được công bố vào năm 1980, là sản phẩm x87 đầu tiên kết nối vi

thập phân lớn Hiệu suất được

cải tiến từ khoảng 20% đến hơn

500%, tùy thuộc vào ứng dụng

được hưởng lợi từ các chi phí

phụ (khoảng $ 150 ) và công suất

Tiếp thị bởi Intel , IBM

Thiết kế bởi Intel

Max CPU tốc độ đồng hồ

4 MHz đến 10 MHz

Min kích thước tính năng

Trang 19

bảo cho các phép tính được thực hiện chính xác Một tính năng cải tiến của chipIntel 80486 DX là gộp cả mạch đồng xử lý số vào trong chip vi xử lý.

Các bộ đồng xử lý toán 80x87 hỗ trợ CPU trong việc tính toán các biểu thứcdùng dấu chấm động như cộng, trừ, nhân, chia các số dấu chấm động, căn thức,logarit,… Chúng cho phép xử lý các phép toán này nhanh hơn nhiều so với CPU.Thời gian xử lý giữa 8087 và 8086 như sau (dùng xung clock 8 MHz):

Trang 20

Chương 2: Chip đồng xử lý toán học 8087/80287/80387

2.1 8087

2.1.1 Cấu trúc 8087.

8087 gồm một đơn vị điều khiển (CU – Control Unit) dùng để điều khiển bus

và một đơn vị số học (NU – Numerical Unit) để thực hiện các phép toán dấu chấmđộng trong các mạch tính lũy thừa (exponent module) và mạch tính phần định trị(mantissa module) Khác với 8086, thay vì dùng các thanh ghi rời rạc là một ngănxếp thanh ghi

Bus dữ liệu

Địa chỉ trạng thái

Hình 2.1 : Sơ đồ khối của 8087

Đơn vị điều khiển nhận và giải mã lệnh, dọc và ghi các toán hạng, chạy cáclệnh điều khiển riêng của 8087 Do đó, CU có thể đồng bộ với CPU trong khi NUđang thực hiện các công việc tính toán CU bao gồm bộ điều khiển bus, bộ đệm dữliệu và hàng lệnh

Từ trạng thái

số

Module lũy thừa

Module định trị

Đệm dữ liệu

Thanh ghi Đệm dữ liệu

Ngăn xếp Điều khiển bus

Trang 21

2.1.2 Bộ đồng xử lý toán học 8087.

Chip vi xử lý 8087 là đồng xử lý toán học dùng chung với 8086/8088 trongmáy tính, trong đó 8087 là vi xử lý phụ (slave) còn 8086/8088 là vi xử lý chính(master) 8087 chuyên thực hiện các phép tính các số với dấu phảy động thuộcnhiều loại dữ liệu khác nhau 8086/8088 thực hiện các phép tính này thông quathực hiện các mô phỏng, do đó tốc độ thực hiện chúng rất chậm Nếu dùng 8087

sẽ tăng tốc độ tính toán các số dấu phảy động lên rất nhiều

Hình 2.2: Đóng vỏ DIP 40 chân và các tín hiệu của chip đồng xử lý toán học 8087

Công nghệ vào thời kỳ ra đời 8086/8088 không cho phép cấy 8087 vào bêntrong 8086/8088 như trong 80486DX và Pentium, do đó phải chế tạo chip riêng đểthực hiện phép tính số dấu phẩy động 8086 được đóng vỏ DIP 40 chân tín hiệu.Các đường tín hiệu địa chỉ và dữ liệu được ghép chung từ A0/D0 đến A19/D15.Như vậy 8087 có thể trao đổi dữ liệu theo byte và theo từ 16 bit Các tín hiệutrạng thái S0, S1, S2 và S3, S4, S5, S6, S7 có trong chế độ làm việc tối đa của8086/8088 Nhịp đồng hồ CLK của 8087 có tần số như tần số của nhịp đồng hồ

Ngày đăng: 15/05/2017, 21:55

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w