Một chuỗi các hướng dẫn nhanh như vậy ngăn chặn hàng đợi bị đầy nhanh như nó được thoát nước tốt, và Nói chung, vì có rất nhiều hướng dẫn cơ bản thực hiện trong ít hơn bốn đồng hồ theo h
Trang 1BÀI TẬP LỚN MÔN : KIẾN TRÚC MÁY TÍNH
Đề tài: Nghiên cứu tìm hiểu về CPU 8088 của Intel và nguyên lý làm việc thông qua các
chân tín hiệu
Nội dung & yêu cầu: Trình bày được sơ đồ chân, chức năng các chân tín hiệu Sơ đồ khối, chức năng các khối, đặc điểm và chức năng các thanh ghi để thấy được nguyên lý làm việc của vi xử lý 8088
Lớp KHMT 1 Trường ĐH Công Nghiệp Hà Nội
NHÓM 11:
1 Nguyễn Duy Đạt.
2 Nguyễn Kim Thái.
3 Nguyễn Thành Luân.
4 Nguyễn Hữu Tiến.
[1]
Trang 2MỤC LỤC:
Mục lục Error: Reference source not found
Phần I: Tìm hiểu về CPU 8088 của Intel
1.1: Giới thiệu chung……… 3
1.1: Các đặc tính kĩ thuật chủ yếu……… …… 3
Phần II: Sơ đồ chân, chức năng của các chân tín hiệu. 2.1 Sơ đồ chân 4
2.2 Các chân tín hiệu……….4
2.3 Chế độ MIN (Chân MN/MX cần được nối thẳng vào +5V mà không qua điện trở)……… 6
2.4 Chế độ MAX ( chân MN/MX cần được nối thẳng vào 0V)……… 7
Phần III: Sơ đồ khối và chức năng của các khối Nguyên lý làm việc của CPU 8088. 3.1 Các khối trong CPU 8088………8
3.2 ALU……… 9
3.3 BIU……… 9
3.4: EU………11
3.5 Nguyên lý làm việc của CPU 8088……….11
Phần IV: Đặc điểm và chức năng của các thanh ghi. 4.1 Các thanh ghi chức năng.……… 11
4.2 Các thanh ghi con trỏ và chỉ số……… 12
4.3 Các thanh ghi cờ……… 13
4.4 Thanh ghi đoạn………15
Trang 3Phần I: Tìm hiểu về CPU 8088 của Intel.
1.1 Giới thiệu chung.
- Bộ vi xử lý 8088 thuộc họ vi xử lý của Intel
- Điển hình là:
8085 là bộ vi xử lý 8 bit
8086 là bộ vi xử lý 16 bit hoàn chỉnh
8088 là bộ vi xử lý 16 bit trong/8 bit ngoài
1.2 Các đặc tính kĩ thuật chủ yếu
- Số thanh ghi: 14 thanh ghi 16 bit
- Bus địa chỉ: 20 bit
- Bus dữ liệu: 8
- Tập lệnh: 115
- Tốc độ chuẩn: 4.77 Mhz
- Số chân của bộ vi xử lý: 40
Bộ xử lý 8088 ra đời sau 8086, nó có cấu trúc bên trong và tập lệnh hoàn toàn giống của
8086 Chỉ khác 8086 ở kênh chuyển dữ liệu với bên ngoài 8088 sử dụng kênh dữ liệu 8 bit nên việc truyền dữ liệu giữa các thanh ghi trong nó với bộ nhớ trong nó chậm hơn so với
8086 Đây là một bước lùi về kĩ thuật nhưng đem lại nhiều lợi ích về kinh tế Tại thời điểm lịch sử đó, bus DataMaster 8 bit đang được sử dụng rộng rãi trên thị trường, nhiều loại card
mở rộng và các chip hỗ trợ có sẵn trên thị trường là loại 8 bit nên có giá thấp hơn loại 16 bit tương ứng Việc sử dụng bus dữ liệu 8 bit giúp cho người sử dụng khi nâng cấp máy có thể tận dụng được các card 8 bit trong các máy cũ cũng như chỉ phải mua mới với giá thấp đồng thời cũng giúp cho các nhà sản xuất các máy tương thich IBM PC có thêm nhiều cơ hội lựa chọn sản phẩm của các hãng khác nhau Chiến lược phát triển có tính thừa kế như vậy đã góp phần làm cho khách hàng của IBM ngày càng gia tăng Bộ vi xử lý này sẽ còn được sử dụng rộng rãi trong thời gian tới do tính kế thừa của các sản phẩm trong họ x86 Các chương trình viết cho 8088 vẫn chạy được trên các hệ thống tiên tiến sau này
Bên cạnh đó còn có những nhược điểm:
Tốc độ của các đơn vị thực hiện (EU) và bus của CPU 8086 là cân bằng; với một kết hợp hướng dẫn điển hình, một 8086 có thể thực hiện hướng dẫn ra khỏi prefetch xếp hàng một
[3]
Trang 4chút tốt về thời gian Cắt giảm các xe buýt đến 8 bit làm cho nó một nút cổ chai nghiêm trọng trong 8088 Với tốc độ của hướng dẫn Truy xuất giảm 50% trong 8088 so với 8086, một chuỗi các hướng dẫn nhanh chóng có thể nhanh chóng thoát hàng đợi prefetch 4-byte Khi hàng đợi rỗng, hướng dẫn tận như lâu dài để hoàn thành như họ làm để lấy Cả hai 8086
và 8088 mất bốn chu kỳ đồng hồ để hoàn thành một chu kỳ bus; trong khi đó đối 8086 này
có nghĩa là 4 đồng hồ để chuyển 2 byte, trên 8088 nó là 4 đồng hồ mỗi byte Vì vậy, ví dụ, một sự thay đổi 2 byte hoặc hướng dẫn xoay, trong đó có EU chỉ có 2 chu kỳ đồng hồ để thực hiện, thực sự mất tám đồng hồ để hoàn thành nếu nó không có trong hàng đợi prefetch Một chuỗi các hướng dẫn nhanh như vậy ngăn chặn hàng đợi bị đầy nhanh như nó được thoát nước tốt, và Nói chung, vì có rất nhiều hướng dẫn cơ bản thực hiện trong ít hơn bốn đồng hồ theo hướng dẫn byte bao gồm gần như tất cả các hướng dẫn ALU và dữ liệu di chuyển trên đăng ký toán hạng và một số trong số này trên bộ nhớ toán hạng, đó là thực tế không thể tránh idling EU trong 8088 ít nhất 1/4 số thời gian trong khi thực hiện chương trình hữu ích trong thế giới thực, và nó không phải là khó để nhàn rỗi nó một nửa thời gian Tóm lại, một 8088 thường chạy khoảng một nửa nhanh như tốc độ 8086 ở mức tương tự, vì các nút cổ chai xe buýt (sự khác biệt lớn duy nhất) Một tác dụng phụ của việc thiết kế 8088, với các xe buýt chậm và hàng đợi prefetch nhỏ, đó là tốc độ thực thi mã có thể rất phụ thuộc vào thứ tự hướng dẫn Khi lập trình 8088, cho hiệu quả CPU, nó là quan trọng để interleave hướng dẫn lâu dài với những người thân ngắn bất cứ khi nào có thể Ví dụ, một hoạt động chuỗi lặp đi lặp lại hoặc một sự thay đổi của ba hoặc nhiều hơn sẽ mất thời gian đủ dài để có thời gian cho prefetch hàng đợi 4-byte để hoàn toàn lấp đầy Nếu hướng dẫn ngắn (tức là những người với tổng số byte) được đặt giữa các hướng dẫn chậm như thế này, những cái ngắn có thể thực hiện ở tốc độ cao ra khỏi hàng đợi Nếu, mặt khác, các hướng dẫn chậm được thực hiện tuần tự, trở lại trở lại, sau đó sau khi người đầu tiên trong số đó các đơn vị
xe buýt sẽ bị buộc phải nhàn rỗi bởi vì hàng đợi đã được sẽ được đầy đủ, với những hậu quả
mà sau hơn của các hướng dẫn nhanh hơn sẽ phải chịu lấy sự chậm trễ có thể đã tránh được Như một số hướng dẫn, chẳng hạn như thay đổi bit đơn-vị trí và xoay, lấy nghĩa đen 4 lần như lâu dài để lấy để thực hiện, [c] hiệu quả tổng thể có thể là một sự suy giảm bởi một yếu
tố của hai hoặc nhiều hơn Nếu những phân đoạn mã là các cơ quan của các vòng, sự khác biệt trong thời gian thực hiện có thể rất đáng chú ý trên thang thời gian của con người 8088 cũng là (như 8086) chậm truy cập bộ nhớ Cùng ALU được sử dụng để thực hiện hướng dẫn
số học và logic cũng được sử dụng để tính toán các địa chỉ có hiệu quả (Có một bộ cộng riêng biệt để thêm một thanh ghi đoạn chuyển đến địa chỉ bù đắp, nhưng EA bù đắp chính
nó là luôn luôn được tính hoàn toàn trong ALU chính.) Hơn nữa, các khớp nối lỏng lẻo của
EU và BIU (đơn vị xe buýt) chèn phí thông tin liên lạc giữa các đơn vị, và bốn đồng hồ chuyển thời gian xe buýt chu kỳ là không đặc biệt sắp xếp hợp lý (Tương phản giữa hai chu
kỳ đồng hồ thời gian xe buýt của CPU 6502 và ba đồng hồ chu kỳ bus của 80286 với
pipelining xuống hai chu kỳ cho hầu hết các giao dịch chuyển) Hầu hết 8088 hướng dẫn có thể hoạt động ở hai sổ đăng ký hoặc bộ nhớ, bao gồm ALU chung và dữ liệu chuyển động hoạt động, ít nhất là bốn lần chậm cho toán hạng bộ nhớ hơn so với chỉ đăng ký toán hạng
Vì vậy, 8088 (và 8086) chương trình hiệu quả tránh lặp lại quyền truy cập của các toán hạng
Trang 5bộ nhớ khi có thể, tải toán hạng từ bộ nhớ vào thanh ghi làm việc với họ ở đó và lưu lại chỉ
có kết quả cuối cùng Các thiết lập đăng ký chung tương đối lớn của 8088 so với cùng thời
hỗ trợ chiến lược này Khi không có đủ đăng ký cho tất cả các biến cần thiết cùng một lúc, tiết kiệm đăng ký bằng cách đẩy họ vào stack và popping chúng trở lại để khôi phục chúng
là cách nhanh nhất để sử dụng bộ nhớ để tăng cường cho đăng ký, như các hướng dẫn ngăn xếp PUSH và POP là các hoạt động bộ nhớ nhanh nhất (Điều này cũng có thể là không đúng sự thật về 80.286 và sau đó, họ đã dành riêng địa chỉ ALU và thực hiện các truy cập
bộ nhớ nhanh hơn nhiều so với 8088 và 8086)
Phần II : Sơ đồ chân, chức năng của các chân tín hiệu
2.1 Sơ đồ chân :
S6 = 0 liên tục, S5 phản ánh IF S3,S4 cùng phối hợp để chia ra việc truy nhập các thanh ghi đoạn
[5]
S3 S4 Truy vấn đến các đoạn
0 0 Đoạn dữ liệu phụ (ES:)
1 0 Đoạn ngăn xếp (SS:)
0 1 Đoạn mã hoặc không đoạn nào
1 1 Đoạn dữ liệu
Trang 6Bảng các bit trạng thái và việc truy nhập đến các thanh ghi đoạn.
(Hình vẽ: Đóng vỏ DIP 40 chân của 8088)
2.2 Các chân tín hiệu:
AD7 – AD0 [I/O]: Các chân dồn kênh cho tín hiệu phần thấp của bus địa chỉ
và dữ liệu Khi xung ALE = 0 => báo cho mạch ngoài biết trên đường đó (các chân) có tín hiệu dữ liệu (ALE: Address Latch Enable) Khi xung ALE = 1 => báo cho mạch ngoài biết trên đường đó (các chân) có tín hiệu địa chỉ Các chân này ở trạng thái trở kháng cao khi 8088 nhận treo (Hold)
A15-A8[O]: Là các bit phần cao của bus địa chỉ Các chân này ở trạng thái trở kháng cao khi 8088 chấp nhận treo
A16/S3, S17/S4, A18/S5, A19/S6 [O]: Là các chân dồn kênh cho địa chỉ phần cao của tín hiệu trạng thái (A: Address, S: Status) KhiALE = 0: Tại các chân này là tín hiệu trạng thái: S6-S3 Khi ALE = 1: Tại các chân này là tín hiệu địa chỉ Các chân này
ở trạng thái trở kháng cao khi 8088 chấp nhận treo
RD [O]: Tín hiệu điều khiển đọc (“Xung cho phép đọc” Khi RD = 0 thì bus
dữ liệu sẵn sàng nhận dữ liệu từ bộ nhớ hoặc thiết bị ngoại vi Chân RD ở trạng thái trở kháng cao khi 8088 chấp nhận treo
READY [I]: Tín hiệu báo cho CPU biết tình trạng sẵn sàng của thiết bị ngoại
vi hoặc của bộ nhớ Khi READY = 1 => CPU thực hiện ghi/đọc mà không cần xen thêm các chu kì đợi Ngược lại khi thiết bị ngoại vi hay bộ nhớ có tốc độ chậm => chúng có thể đưa ra tín hiệu READY = 0 để báo cho CPU chờ Khi này CPU tự kéo dài thời gian thực hiện ghi/đọc bằng các xen thêm các chu kì đợi
INTR [I]: Đây là chân tiếp nhận tín hiệu yêu cầu ngắt che được Khi có yêu cầu ngắt tác động đến chân này mà cờ cho phép ngắt IF = 1 thì CPU kết thúc lệnh đang thi hành dở (kết thúc chu kì lệnh), sau đó nó đi vào chu kì chấp nhận ngắt và đưa ra tín hiệu INTA = 0 tại chân INTA (24)
TEST [I]: Tín hiệu ở chân này được kiểm tra bằng lệnh WAIT Khi CPU thực hiện lệnh WAIT mà khi đó TEST = 1 thì CPU sẽ chờ cho đến khi TEST = 0 thì mới thực hiện lệnh tiếp theo
NMI [I]: Tín hiệu yêu cầu ngắt không che được Tín hiệu này không bị khống chế bởi cờ IF và nó sẽ được CPU nhận biết tại đường của xung yêu cầu ngắt Nhận được yêu cầu này CPU kết thúc lệnh đang làm dở, sau đó chuyển sang thực hiện chương trình con phục vụ ngắt INT2 (ISR: Interrupt Service Routie)
RESET [I]: Tín hiệu Reset tại 8088 (Trong chừng mực nào đó có thể coi tín hiệu này là tín hiệu yêu cầu ngắt không che được) Khi tín hiệu RESET = 1 và kéo dài ít
Trang 7nhất 4 chu kì của đồng hồ (4 xung clock) thì 8088 bị buộc phải khởi động lại, nó xóa các thanh ghi: DS, ES,SS, IP và FR về 0 và bắt đầu thực hiện chương trình tại địa chỉ CS:IP =FFFF:0000 (như khi khởi động, IF <= 0 để cấm các ngắt, TF <= 0 để 8088 không bị đặt trong chế độ chạy từng lệnh => chạy suốt)
CLK [I]: Tín hiệu xung đồng hồ (xung nhịp) Xung nhịp có độ rỗng 77% và cung cấp nhịp làm việc cho CPU (và các mạch khác của hệ thống)
Vcc [I]: Chân nguồn Nguồn cung cấp cho CPU là +5V±10%, 340 mA
GND [O]: Chân nguồn nối với 0V của nguồn nuôi
MN/MX [I]: Chân điều khiển hoạt động của CPU theo chế độ Min/Max (8088
có thể làm việc ở 2 chết độ khác nhau nên có 1 số chân tín hiệu phụ thuộc và chế độ làm việc đó)
2.3 Chế độ MIN (Chân MN/MX cần được nối thẳng vào +5V mà không qua điện trở).
Khi 8088 ở chế độ MIN tất cả các tín hiệu điều khiển liên quan đến các thiết bị
ngoại vi truyền thống và bộ nhớ giống như trong hệ 8085, đều có sẵn trong 8088 cho nên việc phối ghép với các thiết bị ngoại vi và bộ nhớ sẽ rất dễ dàng Vì vậy có thể tận dụng được các phối ghép ngoại vi có sẵn => giảm giá thành hệ thống
IO/M [O]: Tín hiệu này phân biệt tại một thời điểm cụ thể nào đó phần tử nào trong các thiết bị vào/ra (I/O) hoặc bộ nhớ (M: Memory) được chọn để trao đổi dữ liệu với CPU Trên Address bus lúc đó sẽ có các địa chỉ tương ứng thiết bị Chân này ở trạng thái trở kháng cao khi CPU chấp nhận treo
WR [O]: Xung cho phép (giống như RD) Khi CPU đưa ra tín hiệu WR =0 thì
dữ liệu đã ổn định và chúng sẽ được ghi vào bộ nhớ hoặc thiết bị vào/ra tại thời điểm chuyển mức WR = 1 Chân WR sẽ ở trạng thái trở kháng cao khi
8088 chấp nhận treo
INTA [O]: Tín hiệu điều khiển báo cho mạch bên ngoài biết CPU đã chấp nhận yêu cầu ngắt (INTR) Lúc này CPU đưa ra tín hiệu INTA = 0 để báo cho thiết bọ ngoại vi biết nó đang chờ mạch ngoài đưa lên Data bus số liệu ngắt (kiểu ngắt)
ALE [O]: Xung cho phép chốt địa chỉ (Address Latch Enable) Khi ALE =1
có nghĩa trên bus dồn kênh A/D là địa chỉ của thiết bị ngoại vi hay bộ nhớ ALE không bao giờ bị thả nổi (trạng thái trở kháng cao), khi CPU chấp nhận treo thì ALE =0
DT/R [O]: Tín hiệu điều khiển các đệm bus 2 chiều của Data bus để chọn chiều vận chuyển dữ liệu trên bus D Chân này ở trạng thái trở kháng cao khi
8088 chấp nhận treo
[7]
Trang 8 DEN [O]: Tín hiệu báo cho bên ngoài biết khi này trên bus dồn kênh A/D có
dữ liệu ổn định Chân này ở trạng thái trở kháng cao khi 8088 chấp nhận treo
HOLD [O]: Tín hiệu yêu cầu treo CPU để mạch ngoài thực hiện trao đổi dữ liệu với bộ nhớ bằng cách truy cập trực tiếp bộ nhớ (DMA- Direct Memory Access) Khi HOLD =1, 8088 sẽ tự tách khỏi hệ thống bằng cách treo bus A,
D, C của nó (các bus ở trạng thái trở kháng cao) để bộ điều khiển DMA là DMAC (DMA Controler) có thể lấy được quyền điều khiển hệ thống để thực hiện công việc trao đổi dự liệu
HLDA [O]: Tín hiệu báo cho bên ngoài biết yêu cầu treo CPU đã được CPU chấp nhận và CPU đã treo các bus A, D và một số tín hiệu điều khiển trên bus C
SS0 [O]: Đây là tín hiêu trạng thái Tín hiệu này giống như S0 trong chế độ Max và dùng kết hợp với IO/M, DT/R để giải mã các hoạt động của bus
IO/M DT/R SS0 Chu kì điều khiển của bus
1 0 0 Chấp nhận yêu cầu ngắt
1 0 1 Đọc thiết bị ngoại vi
1 1 0 Ghi thiết bị ngoại vi
Bảng quan hệ một số tín hiệu điều khiển
2.4 Chế độ MAX ( chân MN/MX cần được nối thẳng vào 0V)
Khi 8088 làm việc ở chế độ Max, một số tín hiệu điều khiển cần được tạo ra trên cơ
sở các tín hiệu trạng thái nhở dùng thêm ở bên ngoài 1 mạch điều khiển bus 8288 Chế
độ Max được sử dụng trong hệ thống có mặt bộ đồng xử lý toán học 8087
Bộ vi xử lý 8088 có hai chế độ hoạt động là chế độ MIN và chế độ MAX nên một
số chân sẽ có chức năng khác nhau đối với từng chế độ hoạt động khác nhau của bộ vi
xử lý
MN/MX nối với +5V - chế độ MIN ,nối với đất - chế độ MAX
S0, S1 và S2 [O]: Là các tín hiệu trạng thái dùng trong chế độ Max để ghép nối với mạch điều khiển bus 8288 Các tín hiệu này được 8288 dung để tạo
ra các tín hiệu điều khiển trong các chu kì hoạt động của bus các tín hiệu điều khiển đó có như trong bảng sau:
Trang 9 RQ/GT0 và RQ/GT1 [O]: Là các tín hiệu yêu cầu dùng bus của các bộ vi
xử lý khác trong hệ thống hoặc thông báo chấp nhận treo của CPU để cho phép các bộ vi xử lý khác trong hệ thống dùng bus RQ/GT0 có các mức ưu tiên cao hơn RQ/GT1
LOCK [O]: Tín hiệu do CPU đưa ra để cấm các bộ vi xử lý khác trong hệ thống dùng bus trong khi nó đang thi hành lệnh nào đó đặt sau tiếp đầu LOCK
QS0 và QS1 [O]: Tín hiệu thông báo trạng thái khác nhau của đệm lệnh (hàng đợi lệnh) Trong các hệ vi xử lý có mặt hệ đồng xử lý toán học 8087 thì các tín hiệu này dùng để đồng bộ quá trình hoạt động của nó với 8088 QS0 QS1 Trạng thái đệm lệnh
0 0 Không hoạt động
0 1 Đọc byte mã lệnh đầu tiên từ đệm lệnh
1 0 Đệm lệnh rỗng
1 1 Đọc byte tiếp theo thì đệm lệnh
Phần III: Sơ đồ khối và chức năng của các khối Nguyên lý làm việc của CPU 8088.
3.1 Các khối trong CPU 8088:
Sự hoạt động của bộ vi xử lý 8088 thực sự là việc thức hiện lặp đi lặp lại 3 thao tác chính là lấy lệnh (fetch), giải mã lệnh (decode) và thực hiện (execute) CPU 8088 gồm 2 khối chính:
- EU (Execution Unit): Đơn vị (khối) thực hiện lệnh
- BIU (Bus Interface Unit): Đơn vị giao tiếp bus (khối tương thích bus) để điều khiển bus hiệu quả hơn
[9]
S0 S1 S2 Chu kì điều khiển của bus Tín hiệu
0 0 0 Chấp nhận yêu cầu ngắt INTA
0 0 1 Đọc thiết bị ngoại vi IORC
0 1 0 Ghi thiết bị ngoại vi IOWC, AIOWC
Trang 10Việc chia CPU làm 2 thành phần làm việc đồng thời có liên hệ với nhau qua đệm lệnh làm tăng đáng kể tốc độ xử lý trên CPU Các bus trong CPU có nhiệm vụ truyền tải tín hiệu giữa các khối Trong số các bus đó có bus dữ liệu 16 bit của ALU, bus các tín hiệu điều khiển của EU và bus trong của hệ thống ở BIU Trước khi đi ra bus ngoài hoặc đi vào bus trong của bộ vi xử lý các tín hiệu truyền trên bus thường được cho đi qua các cán bộ đệm để nâng cao tính tương thích cho nối ghép hoặc nâng cao nối ghép
Sơ đồ các khối trong CPU 8088.
3.2 ALU
Làm nhiệm vụ thực hiện các lệnh số học là logic
Số học: +, -, *, \, so sánh, đảo dấu
Logic: NOT, AND, OR, XOR
3.3 BIU (Bus Interface Unit)
BIU gồm có mạch tạo địa chỉ và điều khiển BUS Nó có nhiệm vụ bảo đảm cho BUS
được sử dụng hết dung lượng Để đảm bảo được điều đó, BIU phải thực hiện 2 chức năng sau: