1. Trang chủ
  2. » Giáo án - Bài giảng

Bộ môn kiến trúc máy tính

16 181 0

Đ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 16
Dung lượng 161,1 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Đề tài: tìm hiểu về CPU8086 Bộ vi xử lý 8086 đã mang lại sự bùng nổ công nghệ với sự có mặt trong hầu hết các máy tính ở thời kỳ này. Sau đây chúng ta sẽ cùng đi tìm hiểu rõ hơn về thành phần, cấu tạo và chức năng của CPU 8086. Sơ đồ chân, chức năng các chân tín hiệu của 8086

Trang 1

Bộ Môn Kiến Trúc Máy Tính

Đề tài: tìm hiểu về CPU-8086

Bộ vi xử lý 8086 đã mang lại sự bùng nổ công nghệ với sự có mặt trong

hầu hết các máy tính ở thời kỳ này Sau đây chúng ta sẽ cùng đi tìm hiểu rõ hơn về thành phần, cấu tạo và chức năng của CPU 8086

I Sơ đồ chân, chức năng các chân tín hiệu của 8086

1, Sơ đồ chân và chức năng các chân của 8086 như sau:

Hình 1.1 Sơ đồ chân của 8086

8086 có thể hoạt động ở 2 chế độ (2 mode): MAX hoặc MIN.

- Mode MIN: CPU tự phát ra các tín hiệu điều khiển cho các bus

- Mode MAX: CPU chỉ phát ra các tín hiệu trạng thái tới một chip gọi là bộ điều khiển bus (bus controller), tiếp đó các chip này sẽ dịch các tín hiệu trạng

thái và phát ra các tín hiệu điều khiển tới các bus Mode này đảm bảo ít trục trặc hơn trong quá trình đọc dữ liệu

+ AD0  AD7 {I/O - tín hiệu vào/ra}: Các chân dồn kênh cho các tín hiệu (Bit) phần thấp của Bus địa chỉ và Bus dữ liệu Xung ALE sẽ báo cho

Trang 2

mạch ngoài biết khi nào trên các đường đó có tín hiệu dữ liệu (ALE = 0) hoặc tín hiệu địa chỉ (ALE = 1) Các chân này ở trạng trở kháng cao khi CPU chấp nhận treo

+ AD8  AD15 {I/O - tín hiệu vào/ra}: Các Bit phần cao của Bus địa chỉ và Bus dữ liệu Xung ALE sẽ báo cho mạch ngoài biết khi nào trên các đường đó có tín hiệu dữ liệu (ALE = 0) hoặc tín hiệu địa chỉ (ALE = 1) Các chân này ở trạng trở kháng cao khi CPU chấp nhận treo

+ A16/S3  A19/S6 {O - tín hiệu ra}: Các chân dồn kênh của địa chỉ phần cao và trạng thái

Các trạng thái như sau:

S4 S3 Thanh ghi được truy

xuất

S5: chỉ thị trạng thái cờ ngắt (S5 = 1, cho phép ngắt) S6: luôn = 0

Xung ALE = 1: tín hiệu địa chỉ tại các chân đó

Xung ALE = 0: tín hiệu trạng thái S3-S6 có tại các chân đó

Các chân này ở trạng thái trở kháng cao khi CPU chấp nhận treo

+ RD {O - tín hiệu ra}: Xung cho phép đọc Khi RD = 0 thì Bus dữ liệu sẵn sàng nhận số 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 CPU chấp nhận treo

+ READY {I - tín hiệu vào}: 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 hay bộ nhớ

- READY = 1: CPU thực hiện ghi/đọc mà không cần chèn thêm chu kỳ đợi

Trang 3

- READY = 0: CPU tự kéo dài thời gian thực hiện lệnh ghi/đọc bằng cách chèn thêm các chu kỳ đợi vì thiết bị ngoại vi hay bộ nhớ có tốc

độ chậm nên chúng đưa tín hiệu READY = 0 để CPU biết mà chờ + INTR {I}: Tín hiệu yêu cầu ngắt che được Khi có yêu cầu ngắt mà cờ cho phép ngắt IF = 1 thì CPU kết thúc lệnh đang làm dở, sau đó nó đi vào chu

kỳ chấp nhận ngắt và đưa ra bên ngoài tín hiệu INTA = 0

+ TEST {I}: Tín hiệu tại chân này được kiểm tra bởi lệnh WAIT

- TEST = 1, CPU nó sẽ chờ cho đến khi tín hiệu TEST = 0

- TEST = 0, CPU tiếp tiếp tục thực hiện chương trình

+ 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 bằng tác động của sườn lên của xung yêu cầu ngắt (thay đổi từ 0–>1) Nhận được yêu cầu này CPU kết thúc lệnh đang làm dở, sau đó nó chuyển sang thực hiện chương trình phục vụ ngắt kiểu INT 2H Ví dụ sai số chẵn lẻ của bộ nhớ (memory parity error) sẽ phát tới CPU một tín hiệu NMI

+ RESET {I}: Tín hiệu khởi động lại 8086 Khi RESET = 1, kéo dài ít nhất trong thời gian 4 nhịp đồng hồ thì 8086 buộc phải khởi động lại Nó xóa các thanh ghi DS, ES, SS, IP và FR về 0, rồi bắt đầu thực hiện chương trình tại địa chỉ :

CS : IP = F000:0000 (địa chỉ vật lý = F0000h)

(Lúc này cờ IF 0 để cấm các yêu cầu ngắt khác tác động vào CPU

và cờ TF 0 để CPU không bị đặt trong chế độ chạy từng lệnh) + CLK {I}: Tín hiệu đồng hồ (xung nhịp) Xung nhịp có độ rỗng là 77% và cung cấp nhịp làm việc cho CPU Xung này được gửi từ chân CLK của mạch tạo xung nhịp 8284 đến CPU

+ Vcc {I}: Chân nguồn Tại đây CPU được cung cấp điện áp +(5V10%), dòng điện 340 mA

+ GND {O}: 2 chân nguồn để nối với điểm 0 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

* Do CPU có thể làm việc ở 2 chế độ khác nhau, nên có một số chân tín hiệu phụ thuộc vào các chế độ đó:

# Chế độ MIN:

Trang 4

Chân MN/MX cần được nối thẳng với +5V mà không qua điện trở Trong chế độ này, tất cảc các tín hiệu điều khiển liên quan đến thiết bị ngoại vi truyền thống và bộ nhớ đều có sẵn bên trong 8086 Vì vậy việc phối ghép với các thiết bị đó sẽ rất dễ dàng và chính vì tận dụng được các phối ghép ngoại vi sẵn có nên có thể giảm giá thành hệ thống

+ IO/M {O}: tín hiệu này phân biệt trong thời điểm đã định, phần tử nào trong các thiết bị vào/ra (I/O) hoặc bộ nhớ (M) được chọn làm việc với CPU Trên Bus địa chỉ lúc đó sẽ có các địa chỉ tương ứng của các 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 ghi Khi CPU đưa ra WR = 0 thì trên Bus dữ liệu, các dữ liệu ổn định và chúng sẽ được ghi vào bộ nhớ hay thiết bị ngoại vi tại thời điểm đột biến 0-> 1 Chân này ở trạng thái trở kháng cao khi CPU chấp nhận treo

+ INTA {O}: Tín hiệu báo cho các mạch bên ngoài biết CPU chấp nhận yêu cầu ngắt INTR{I} Lúc này CPU đưa ra INTA = 0 để báo là nó đang chờ mạch ngoài đưa vào số hiệu ngắt (kiểu ngắt) trên Bus dữ liệu

+ ALE {O}: Xung cho phép chốt địa chỉ Khi ALE = 1 có nghĩa là trên Bus dồn kênh AD có các địa chỉ của thiết bị ngoại vi hoặc ô nhớ, ALE không bao giờ bị thả nổi (trong trạng thái trở kháng cao) Khi CPU bị treo thì ALE = 0

+ DT/R {O}: Tín hiệu điều khiển các đệm 2 chiều của Bus dữ liệu để chọn chiều vận chuyển dữ liệu trên Bus dữ liệu Chân này ở trạng thái trở kháng cao khi CPU chấp nhận treo

+ DEN {O}: Tín hiệu báo cho bên ngoài biết là lúc này trên Bus dồn kênh AD có dữ liệu ổn định Chân này ở trạng thái trở kháng cao khi CPU chấp nhận treo

+ HOLD {I}: Tín hiệu yêu cầu treo CPU để mạch ngoài thực hiện việc trao đổi dữ liệu với bộ nhớ bằng cách thâm nhập trực tiếp (Direct Memory Access – DMA) Khi HOLD = 1, CPU 8086 sẽ tự tách khỏi hệ thống bằng cách treo tất các Bus A, D, một số tín hiệu của Bus C của nó (Các Bus lúc này ở trạng thái trở kháng cao) để bộ điều khiển DMA (DMA Controller – DMAC) có thể lấy được quyền điều khiển hệ thống

để làm các công việc trao đổi dữ liệu

Trang 5

+ HLDA {O}: Tín hiệu báo cho bên ngoài biết yêu cầu treo CPU đã được chấp nhận và CPU đã chấp nhận treo các Bus A, D, và một số tín hiệu của Bus C

+ SSO {O}: Tín hiệu trạng thái Tín hiệu này giống như S0 trong chế độ MAX và được dùng kết hợp với IO/M và DT/R để giải mã các chu kỳ hoạt động của Bus Ta có bảng sau:

Các chu kỳ của Bus qua các tín hiệu SSO, IO/M và DT/R:

IO/M DT/R SSO Chu kỳ điều khiển của Bus

0 0 0 Chấp nhận yêu cầu ngắt (INTA = 0)

0 0 1 Đọc thiết bị ngoại vi

0 1 0 Ghi thiết bị ngoại vi

# Chế độ MAX:

Chân MN/MX nối đất

Trong chế độ này, một số tín hiệu điều khiển cần thiết được tạo ra trên cơ

sở các tín hiệu trạng thái nhờ dùng thêm ở mạch bên ngoài một mạch điều khiển Bus 8288

Chế độ MAX được sử dụng khi trong hệ thống có mặt bộ đồng xử lý toán học 8087 (Chíp 8087 được thiết kế để thực hiện các thao tác các số học trong hệ thống cơ sở 8086/8088 Nó có thể thao tác các dạng số liệu kép, BCD hay dấu phảy động)

+ S2, S1, S0 {O}: Các chân trạng thái dùng trong chế độ MAX để ghép với mạch điều khiển Bus 8288

Trang 6

Các tín hiệu này được 8288 dùng để 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 chỉ ra như sau:

+ RQ/GT0 & RQ/GT1 {I/O}: Các tín hiệu yêu cầu dùng Bus của các bộ

vi xử lý khác, khi một bộ vi xử lý khác muốn giành quyền điều khiển bus, phải đưa ra một tín hiệu yêu cầu qua các chân này tới bus master hiện hành Nếu có thể chuyển nhượng quyền được, thì sau khi thực hiện xong lệnh hiện tại, bus master hiện hành sẽ phát ra tín hiệu Acknowledge qua các chân này để thông báo chấp nhận treo của nó, nhờ vậy các bộ vi xử lý khác được dùng Bus và trở thành bus master Cách thức này là rất cần thiết khi có một vài CPU và các chip I/O sử dụng cùng một không gian địa chỉ nhớ và địa chỉ I/O

RQ/GT0 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 khi nó đang thi hành 1 lệnh nào đó đặt sau lệnh tiếp đầu LOCK, LOCK = 1 bus master không chuyển nhượng quyền sử dụng bus

+ QS0 & QS1 {O}: Tín hiệu thông báo các trạng thái khác nhau của đệm lệnh (hàng đợi lệnh – Prefetch Queue)

Bảng mã hóa các trạng thái của đệm lệnh:

Trang 7

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 từ đệm lệnh

Hình 3.3 là sơ đồ chân của bộ điều khiển bus 8288 Nó là chip bổ trợ cho

8086/8088 và có trách nhiệm phát ra tất cả các tín hiệu cần thiết cho việc điều khiển bus

+ MB (chân số 1)/ IOB (Input / Output Bus Mode): dùng cho Multibus - điều

khiển để 8288 làm việc ở các chế độ bus khác nhau

+ CLK (chân số 2): lối vào của xung đồng hồ

+ S2, S1, S0 (chân 19, 18, 3): Lối vào cho các chân tín hiệu tương ứng từ 8086

+ DT/R (ch©n 4- Data Transmit/Receive)[O]:

= 1 đang ghi dữ liệu (truyền), = 0 đang đọc dữ liệu (nhận)

+ ALE (chân 5 - Address Latch Enable) [O]: = 1 thì địa chỉ từ CPU gửi tới

bộ đệm địa chỉ chỉ được chốt Tín hiệu này thường được nối với chân G của

74573 để điều khiển chốt địa chỉ

+ AEN (Address Enable)[O]: chờ thời gian trễ khoảng 150 ns sẽ tạo các tín

hiệu điều khiển ở đầu ra của 8288 để đảm bảo rằng địa chỉ sử dụng đã hợp lệ + MRDC (chân 7)[O]: Đọc dữ liệu từ bộ nhớ vào CPU

+ MWTC (chân 9) [O]: Ghi dữ liệu từ CPU vào bộ nhớ

+ AMWC[O]: giống như MWTC nhưng hoạt động sớm hơn một chút dùng

cho các bộ nhớ chậm đáp ứng kịp tốc độ CPU

+ IOWC (chân 11) [O]: ghi dữ liệu từ CPU tới cổng vào/ra

+ AIOWC[O]: giống như IOWC nhưng hoạt động sớm hơn một chút dùng

cho các ngoại vi chậm đáp ứng kịp tốc độ CPU

Trang 8

+ IORC (chân 13) [O]: Đọc dữ liệu từ cổng vào/ra đưa về CPU.

+ INTA (chân 14) [O]: =0, thông báo CPU chắc chắn chấp nhận yêu cầu ngắt

+ CEN (Command Enable) [O]: cho phép đưa ra tín hiệu DEN và các tín

hiệu điều khiển khác của 8288

+ DEN (chân 16 – Data Enable) [O]: Nếu = 0, dữ liệu được ghi vào bộ đệm

dữ liệu và được chốt ở đó

+ MCE / PDEN (Master Cascade Enable/Peripheral Data Enable) [O]: định

chế độ làm việc cho mạch điều khiển ngắt PIC 8259 để nó làm việc ở chế

độ master

1.2.Sơ đồ chân của chip điều khiển bus

Trang 9

II Sơ đồ khối, chức năng các khối.

1 Cấu trúc bên trong của bộ vi xử lý 8086

Hình 1.1 Sơ đồ khối bên trong của vi xử lý 8086

EU - Execution Unit: Khối thực hiện lệnh

BIU - Bus Interface Unit: Khối phối ghép Bus

ALU - Arithmetic and Logic Unit: Khối số học và logic

2 Các khối chức năng

Theo sơ đồ khối trên, ta thấy bên trong CPU 8086 có 2 khối chính: BIU (Bus Interface Unit) và EU (Execution Unit) Việc chia CPU ra thành 2

phần làm việc đồng thời có liên hệ qua đệm lệnh làm tăng đáng kể tốc độ

xử lý của CPU Các Bus bên trong có nhiệm vụ chuyển tải tín hiệu giữa

các khối

- Khối BIU (Khối phối ghép Bus):

Trang 10

Có nhiệm vụ đưa ra địa chỉ, đọc mã lệnh từ bộ nhớ, đọc (ghi) dữ liệu

từ (vào) cổng (bộ nhớ) Nói cách khác BIU chịu trách nhiệm đưa địa chỉ ra Bus và trao đổi dữ liệu với Bus.

Trong BIU còn có 1 bộ nhớ đệm lệnh với dung lượng 6 byte để chứa các mã lệnh đọc được nằm sẵn để chờ EU xử lý

- Khối EU (Khối thực hiện):

Trong khối này ta thấy có 1 khối điều khiển (Control Unit - CU), chính khối này có mạch giải mã lệnh Mã lệnh đọc vào từ bộ nhớ được đưa đến đầu vào của mạch giải mã lệnh, các thông tin thu được từ đầu

ra của nó được đưa đến mạch tạo xung điều khiển, kết quả thu được dãy xung khác nhau (tùy theo mã lệnh) để điều khiển hoạt động của các bộ phận bên trong và bên ngoài CPU

Trong khối EU còn có khối ALU (khối số học và logic) dùng để thực hiện các thao tác khác nhau với các toán hạng của lệnh

- Tóm lại: Khi CPU hoạt động EU sẽ cung cấp thông tin về địa chỉ cho BIU để khối này đọc lệnh và dữ liệu, còn bản thân nó thì giải mã lệnh và thực hiện lệnh.

2 Cấu trúc bên ngoài của bộ vi xử lý 8086

2.1 Sơ đồ khối

Hình 2.1: Cấu trúc chung của vi sử lý

III. Các thanh ghi của vi xử lý 8086.

1 Các thanh ghi đoạn:

Trang 11

Khối BIU đưa ra trên Bus địa chỉ 20 Bit địa chỉ, như vậy 8086 có khả năng phân biệt được 220 = 1.048.576 = 1M ô nhớ = 1 Mbyte

Nói cách khác: Không gian địa chỉ của 8086 là 1 Mbyte Trong không gian 1 Mbyte này, bộ nhớ cần được chia thành các vùng khác nhau (điều này có lợi khi làm việc ở chế độ nhiều người sử dụng hoặc đa nhiệm) dành riêng để:

- Chứa mã chương trình

- Chứa dữ liệu và kết quả trong không gian của chương trình

- Tạo ra vùng nhớ đặc biệt gọi là ngăn xếp (Stack) dùng vào việc quản

lý các thông số của bộ vi xử lý khi gọi chương trình con hoặc trở về từ chương trình con

Bộ vi xử lý 8086 có các thanh ghi 16 Bit liên quan đến địa chỉ đầu của các vùng (các đoạn) kể trên và chúng được gọi là các thanh ghi đoạn (Segment Registers) Đó là:

CS - Code Segment: Thanh ghi đoạn mã.(Chứa địa chỉ đầu của đoạn mã lệnh trong bộ nhớ)

DS - Data Segment: Thanh ghi đoạn dữ liệu.(Chứa địa chỉ đầu của đoạn dữ liệu nguồn trong bộ nhớ)

SS - Stack Segment: Thanh ghi đoạn ngăn xếp.(Chứa địa chỉ đầu của đoạn ngăn xếp Stack trong bộ nhớ)

ES - Extra Segment: Thanh ghi đoạn dữ liệu phụ.(Chứa địa chỉ đầu của đoạn dữ liệu đích trong bộ nhớ)

- Chức năng của thanh ghi đoạn: Các thanh ghi đoạn sẽ xác định địa chỉ của các ô nhớ nằm ở đầu đoạn Địa chỉ này gọi là địa chỉ cơ sở

2.Các thanh ghi con trỏ và chỉ số:

Trong 8086 có 3 thanh ghi con trỏ và 2 thanh ghi chỉ số 16 Bit, các thanh ghi này được ngầm định như là thanh ghi lệch cho các đoạn tương ứng,

cụ thể:

IP - Instruction Pointer (Con trỏ lệnh): IP luôn trỏ vào lệnh tiếp theo sẽ được thực hiện nằm trong đoạn mã CS Địa chỉ đầy đủ của lệnh tiếp theo này ứng với: CS : IP

Trang 12

BP - Base Pointer (Con trỏ cơ sở): BP luôn trỏ vào 1 dữ liệu nằm trong đoạn ngăn xếp SS Địa chỉ đầy đủ của 1 phần tử trong đoạn ngăn xếp ứng với: SS : BP

SP - Stack Pointer (Con trỏ ngăn xếp): SP luôn trỏ vào đỉnh hiện thời của ngăn xếp SS Địa chỉ đầy đủ của đỉnh ngăn xếp ứng với:

SS : SP

SI - Source Index (Chỉ số gốc/nguồn): SI trỏ vào 1 dữ liệu nằm trong đoạn dữ liệu DS Địa chỉ đầy đủ của 1 phần tử trong đoạn DS: DS : SI DI - Destination Index (Chỉ số đích): DI trỏ vào 1 dữ liệu nằm trong đoạn dữ liệu DS Địa chỉ đầy đủ cụ thể ứng với ES : DI

 Địa chỉ của các ô nhớ khác nằm trong đoạn được tính bằng cách cộng

thêm vào địa chỉ cơ sở 1 giá trị gọi là địa chỉ lệch hay độ lệch (địa chỉ

offset /địa chỉ tương đối) Độ lệch này được xác định bởi các thanh ghi

16 Bit khác đóng vai trò thanh ghi lệch (offset register) - được nói rõ trong phần thanh ghi con trỏ và chỉ số

Cụ thể, để xác định địa chỉ vật lý 20 Bit của 1 ô nhớ cụ thể nào đó trong 1 đoạn bất kỳ, CPU 8086 phải dùng đến 2 thanh ghi 16 Bit (1 thanh ghi chứa địa chỉ cơ sở, 1 thanh ghi chứa địa chỉ lệch) Từ nội dung của cặp thanh ghi trên, tạo ra địa chỉ vật lý theo công thức sau:

Địa chỉ vật lý = thanh ghi đoạn *16 +thanh ghi lệch.

= segment * 16 + offset

Và địa chỉ logic được ký hiệu như sau:

3.Thanh ghi đoạn : thanh ghi lệch

Hay:

Segment : offset.

Địa chỉ kiểu Segment : offset là địa chỉ Logic vì nó tồn tại dưới dạng giá

trị của các thanh ghi cụ thể bên trong CPU Khi cần thiết truy nhập ô nhớ nào đó, CPU phải đổi địa chỉ logic này ra địa chỉ vật lý để rồi đưa lên Bus địa chỉ Việc chuyển đổi này do 1 bộ tạo địa chỉ thực hiện (Khối ∑ trong hình vẽ)

Ngày đăng: 14/07/2020, 21:59

HÌNH ẢNH LIÊN QUAN

Hình 1.1. Sơ đồ chân của 8086 - Bộ môn kiến trúc máy tính
Hình 1.1. Sơ đồ chân của 8086 (Trang 1)
Bảng mã hóa các trạng thái của đệm lệnh: - Bộ môn kiến trúc máy tính
Bảng m ã hóa các trạng thái của đệm lệnh: (Trang 6)
Hình 3.3 là sơ đồ chân của bộ điều khiển bus 8288. Nó là chip bổ trợ cho 8086/8088 và có trách nhiệm phát ra tất cả các tín hiệu cần thiết cho việc điều khiển bus. - Bộ môn kiến trúc máy tính
Hình 3.3 là sơ đồ chân của bộ điều khiển bus 8288. Nó là chip bổ trợ cho 8086/8088 và có trách nhiệm phát ra tất cả các tín hiệu cần thiết cho việc điều khiển bus (Trang 7)
Hình 1.1. Sơ đồ khối bên trong của vi xử lý 8086. - Bộ môn kiến trúc máy tính
Hình 1.1. Sơ đồ khối bên trong của vi xử lý 8086 (Trang 9)
Hình 2.1: Cấu trúc chung của vi sử lý. - Bộ môn kiến trúc máy tính
Hình 2.1 Cấu trúc chung của vi sử lý (Trang 10)

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w