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

TỔ CHỨC CPU (8086 - 8088 - 80286) (cấu TRÚC máy TÍNH SLIDE) (chữ biến dạng do slide dùng font VNI times, tải về xem bình thường)

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 (1.95 MB, 33 trang )

Bài 2

TỔ CHỨC CPU
(8086/8088/80286)


Nội dung
1)
2)
3)
4)
5)
6)

Kiến trúc tổng quát 80x86
Bộ vi xử lý 8086/8088
Mô hình lập trình của VXL 8086/8088
CPU địa chỉ hóa bộ nhớ
Bộ vi xử lý thực hiện lệnh
Bộ vi xử lý 80286


1.

KIẾN TRÚC TỔNG QUÁT

• BIU (Bus Interface Unit – đơn vị giao tiếp bus)
nhận mã lệnh từ bộ nhớ và đặt vào hàng chờ
lệnh; thực hiện mọi thao tác với bus (đọc/ghi)
• EU (Execute Unit – đơn vị thực thi) giải mã và
thực hiện các lệnh trong hàng.




EU và BIU
• EU và BIU làm việc độc lập với nhau nên
BIU có khả năng nhận một lệnh mới
trong khi EU đang thực thi lệnh trước đó.
• Khi EU đã thực hiện xong lệnh, nó sẽ lấy
mã lệnh kế tiếp trong hàng lệnh
(instruction queue).


Xử lý đường ống (Pipelining)
• Giả sử chương trình gồm những lệnh sau:
Lệnh 1: thực thi không cần dữ liệu bộ nhớ.
Lệnh 2: thực thi không cần dữ liệu bộ nhớ.
Lệnh 3: thực thi khơng cần dữ liệu bộ nhớ.
• Giả sử mỗi lệnh được CPU thực thi trong 3 chu
kỳ máy:
– Chu kỳ 1: CPU nhận lệnh (Instruction Fetch)
– Chu kỳ 2: CPU giải mã lệnh (Instruction Decode)
– Chu kỳ 3: CPU thực hiện lệnh (Execution)


CPU xử lý không đường ống:
EU

Nhận
(1)

Giải

mã (1)

Thực
thi (1)

Nhận
(2)

Giải
mã (2)

Thực
thi (2)

Nhận
(3)

Giải
mã (3)

Thực
thi (3)

Chu kỳ
máy

CPU xử lý đường ống:

Program


Nhận
(1)

Nhận
(2)

Nhận
(3)

Chờ

Giải mã
(1)

Giải mã
(2)

Giải mã
(3)

Chờ

Thực
thi (1)

Thực
thi (2)

Tầng Nhận lệnh (BIU)
Tầng Giải mã lệnh

Thực
thi (3)

Tầng Thực hiện lệnh

EU


Một số khó khăn cho Pipelining
• Trong thực tế, các lệnh khơng đều đặn về thời
gian.
• Các lệnh có thể cần lấy dữ liệu từ bộ nhớ.
• Kết quả của lệnh có thể lưu vào bộ nhớ.
• Lệnh nhảy làm thay đổi trình tự chương trình.


3 điều kiện làm cho EU ở chế độ chờ
• Lệnh cần truy xuất đến một ô nhớ không ở trong hàng.
BIU phải treo quá trình nhận lệnh và xuất ra địa chỉ của ơ nhớ
này.
• Lệnh được thực thi là lệnh nhảy (jump). Khi nhận lệnh kế
tiếp tại địa chỉ do lệnh jump chỉ đến, EU phải đợi và tất cả
các byte trong hàng phải bỏ.
• Lệnh có thời gian thực thi lớn. Lệnh AAM (ASCII Adjust
for Multiplication) cần 83 chu kỳ xung nhịp để hồn tất trong
khi đó với 4 chu kỳ xung nhịp cho quá trình nhận lệnh thì
hàng sẽ bị đầy.


2.


BỘ VI XỬ LÝ 8086/8088

2.1. Các thơng số chính:
• Năm phát hành: 1978
• Đóng vỏ:
DIP, 40 chân.
• Địa chỉ:
20 bit.
• Dữ liệu:
16 bit.
• Tốc độ:
5-10 MHz
• Chu kỳ bus:
4 nhịp đồng hồ CLK
• Tập lệnh:
x86-16 (116 lệnh)


2.2. Các chân của VXL 8088/8086
• DIP package, 40 pins. Xem hình 1.1, tr. 25
• Có 2 chế độ hoạt động:
– Chế độ tối thiểu: MN/MX=1
– Chế độ tối đa: MN/MX=0

• Máy tính PC dùng chế độ tối đa:
 8086 ghép với đồng xử lý (co-processor) 8087
 Tín hiệu điều khiển bus tạo bằng mạch ngoài




Các nhóm chân của 8088/8086
1) Nhóm chân địa chỉ: 20 bit, chiều ra
AD0-AD15 và A16-A19
2) Nhóm chân dữ liệu: 8/16 bit, 2 chiều
AD0-AD7/AD0-AD15
3) Nhóm chân ngắt: RESET, INTR và NMI (vào)
4) Nhóm chân trạng thái: S2, S1, S0 (ra)
5) Các chân khác: CLOCK, READY, TEST (vào)
BHE, QS0,QS1, LOCK (ra)


2.3. Cấu trúc nội của CPU 8086
Nối address bus

EU
Các
thanh ghi
đa năng
Các
thanh ghi
đ/c offset
Đơn vị
SH-LG
Thanh ghi
cờ

Nối data bus

BIU


Bộ tính
địa chỉ

Hàng đợi
của lệnh

Các thanh
ghi đoạn
Con trỏ lệnh


a) Tổ chức của EU
EU-Execution Unit.
Chức năng của EU: thực thi các phép tính xử lý dữ liệu.
Thành phần:


Đơn vị số học và lơ-gic ALU: Đơn vị tính tốn SH-LG.

• Tập các thanh ghi: đa năng, con trỏ, chỉ số, trạng thái.


Khối điều khiển của EU: Nhận, giải mã lệnh; điều
khiển.


b) Tổ chức của BIU
Chức năng của BIU:
 Nhận trước các lệnh, cất tạm vào hàng đợi lệnh.

 Đảm đương chức năng điều khiển bus, tạo địa chỉ.
Thành phần:
 Đơn vị điều khiển BUS và tạo địa chỉ (Bus Control Unit)
 Hàng đợi lệnh (Instruction queue)
 Tập các thanh ghi địa chỉ đoạn: CS, DS, CS, ES.
 Thanh ghi con trỏ lệnh: IP


Chức năng các đơn vị BIU
 Đơn vị điều khiển BUS và tạo địa chỉ (Bus Control
Unit & Address Generator): Tiếp nhận lệnh, trao đổi dữ
liệu và tạo địa chỉ vật lý từ địa chỉ logic.
 Hàng đợi lệnh (Instruction queue): Là nơi lưu giữ tạm
thời các lệnh sẽ được thực hiện trong EU
 Tập các thanh ghi đ/c đoạn và con trỏ lệnh: Lưu địa
chỉ các đoạn bộ nhớ chương trình (CS), dữ liệu (DS),
ngăn xếp (SS), dữ liệu mở rộng (ES) và đ/c offset của
lệnh (IP)


3. Mơ hình lập trình của VXL 8086/8088
Tập thanh ghi EU


14 thanh ghi bên trong 8086 và 8088
• Các thanh ghi đa năng: AX, BX, CX và DX (16 bit, r/w).
• Các thanh ghi chỉ số và con trỏ: SP, BP, SI, DI (16 bit, r/w).
• Các thanh ghi đoạn: CS, DS, SS, ES (16 bit, r/w).
• Thanh ghi con trỏ lệnh IP (Instruction Pointer) 16 bit,
read.

• Thanh ghi cờ (Flag register) 16 bit, read.





Ví dụ về sự thay đổi trạng thái các cờ.
Xác định xem các phép tính sau ảnh hng lên
các cờ nh thế nào?
MOV
AL, 9CH
MOV
DH, 64H
ADD
AL, DH
Giải:
9C+64 =00
1001
1100
+
01100100
0000
0000
CF=1
PF=1
AF=1
ZF=1 SF=0


4. CPU ĐỊA CHỈ HÓA BỘ NHỚ



Phơng pháp xác định địa chỉ
Địa chỉ đoạn (DS): EF00
->dịch trái 4 bit:
EF000
Địa chỉ offset:
0224 -> Giữ nguyên:
0244
Địa chỉ tạo thành 20 bit (địa chỉ vật lý):
EF244
Cách xác định địa chỉ vật lý:
Địa chỉ vật lý = Thanh ghi đoạn x 16 + Thanh
ghi lệch
Cách
xácghi
định địa chỉ
Thanh
Offsetlô-gic:
Thao tác
IP
Nhận lệnh
Thanh CS
ghi đoạn:Thanh ghi
lệch
DS
BX,SI,DI
Dữ liệu
SS Thao tác của
SPcác thanh ghi

Ngăn xÕp
ES

DI

N¬i gưi tíi


Ví dụ: Cho lệnh có địa chỉ segment và offset trong CS=24F6H
và IP=634AH
Hãy xác định:
1.
Địa chỉ lơ-gíc của lệnh
2.
Địa chỉ offset của lệnh
3.
Địa chỉ vật lý của lệnh
4.
Địa chỉ thấp của đoạn mã lệnh
5.
Địa chỉ cao của đoạn mã lệnh
Giải:
1. 24F6:634A
2. 634A
3. 2B2AA
(24F60+634A)
4. 24F60
(24F60+0000)
5. 34F5F
(24F60+FFFF)



×