BÀ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 3 Trường ĐH Công Nghiệp Hà Nội
NHÓM 6:
1. Võ Văn Trí.
2. Uông Ngọc Hưng.
3. Trần Văn Huy.
4. Vũ Hữu Trí.
5. Bùi Văn Tuấn.
[1]
MỤ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............................................................... 3
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ơ đồ khối và chức năng của các khối.................................................
2.1: Các khối trong cpu 8088…………………………………………………4
2.2: ALU……………………………………………………………………….5
2.3: BIU………………………………………………………………………...5
2.4: EU…………………………………………………………………………6
Phần III: Đặc diểm và chức năng của các thanh ghi.
3.1. Các thanh ghi chức năng:………………………………………………...6
3.2. Các thanh ghi con trỏ và chỉ số…………………………………………..7
3.3. Các thanh ghi cờ…………………………………………………………..8
3.4. Thanh ghi đoạn……………………………………………………………10
Phần IV: Sơ đồ chân, chức năng của các chân tín hiệu. Nguyên lý hoạt động của cpu
8088
4.1. Sơ đồ chân....................................................................................................12
4.2. Các chân tín hiệu………………………………………………………….12
4.3. Chế độ MIN (Chân MN/MX cần được nối thẳng vào +5V mà không qua
điện trở)………………………………………………………………………………..13
4.4. Chế độ MAX ( chân MN/MX cần được nối thẳng vào 0V)……………..15
[2]
Phần I: Tìm hiểu về CPU 8088 của Intel.
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.1 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.
[3]
Phần II: Sơ đồ khối và chức năng của các khối.
2.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.
Việ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
[4]
Sơ đồ các khối trong cpu 8088.
2.1 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.
2.2 BIU
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:
-
Chức năng 1: BIU nhận trước các lệnh cất tạm vào dãy chứa lệnh nhờ đó mà MP
tăng được tốc độ tính toán.
-
Chức năng 2: BIU đảm đương mọi chức năng điều khiển BUS để EU có thể tập trung
vào việc xử lý dữ liệu và thực hiện lệnh. Con trỏ chứa địa chỉ của lệnh thực hiện tiếp
theo.
[5]
BIU được dùng để trực tiếp truy xuất hoặc phối ghép với các bộ phận khác của máy
tính.
BIU gồm 3 khối chức năng:
-
Đơn vị điều khiển BUS
-
Hàng chứa lệnh
-
Điều khiển địa chỉ
Đơn vị điều khiển BUS ( Bus control unit): dùng để thực hiện thao tác BUS đối với
MP. Nó tiếp nhận và tạo các lệnh, dữ liệu và các tín hiệu điều khiển giữa MP với các bộ nhớ
khác của hệ. Ví dụ, xác định hướng di chuyển của dữ liệu trên BUS dữ liệu bằng đường dây
điều khiển DT/R (data transmit/receive ) phát hoặc thu dữ liệu.\
Hàng chứa lệnh ( Instruction Queue ): dùng để lưu trữ tạm thời các lệnh sẽ được thực
hiện trong EU. Thông qua đơn vị điều khiển BUS. BIU nhận trước các lệnh và cất chúng
tạm vào hàng chứa lệnh. Đây là công việc tốn nhiều thời gian.
BIU đưa ra địa chỉ, đọc mã lệnh từ bộ nhớ, đọc/ghi dữ liệu từ cổng vào hoặc 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ó một bộ nhớ đệm với dung lượng 4 byte dùng để chứa các mã lệnh để
chờ EU xử lý ( Bộ đệm này còn được gọi là hàng đợi lệnh).
° Hàng đợi: là tập thanh ghi
Với 8086 hàng đợi lệnh là 6 byte, 8088 hàng đợi lệnh là 4 byte nên chứa được tối
đa là 4 lệnh. CPU chưa tập thanh ghi theo kiểu LIFO.
Cơ chế:
Đọc lệnh (lấy lệnh).
Giải mã lệnh.
Thực lệnh
° Thanh ghi IP: Thanh ghi con trỏ lệnh, trỏ vào lệnh tiếp theo chuẩn bị được thực
hiện nằm trong đoạn CS (CS:IP). Sau khi đọc 1 byte, IP tự động được tăng thêm 1. Như
vậy thực tế thì cặp CS:IP mới là con trỏ lệnh vì nó chứa địa chỉ đầy đủ của một lệnh
trong bộ nhớ.
[6]
2.3 EU (Execution Unit):
EU bào gồm một đơn vị điều khiển, 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 bộ giải mã, các thông tin thu được từ đầu ra của nó sẽ
dược đưa đến mạch tạo xung điều khiển, kết quả là ta thu được các dãy xung khác nhau từ
kênh điều khiển ( tùy vào mã lệnh) để điều khiển hoạt động các bộ phận bên trong và bên
ngoài của CPU. Ngoài ra CPU còn có khối số học lôgic ( Arithmetic And Logic Unit ALU)
dùng để thực hiện các thao tác khác nhau với toán hạng của lệnh. Các bus dữ liệu bên trong
của EU đều là 16 bit, Eu không nối trực tiếp với bên ngoài, nó nhận lệnh từ hành đợi lệnh
bên trong BIU. Nếu là lệnh cần truy cập bộ nhớ hoặc cổng vào/ra(I/O port-thiết bị ngoại vi)
thì Eu yêu cầu BIU lấy hoặc gửi dữ liệu. tất cả các địa chỉ mà EU thao tác đều là 16 bit, khi
gửi sang BIU thì BIU sẽ thực hiện tính toán để tạo địa chỉ vật lý 20 bit và phát ra các chân
địa chỉ của chip. Tóm lại, khi CPU hoạt động EU sẽ cung cấp thông tin địa chỉ cho BIU để
khối này đọc lệnh và dữ liệu còn bản thẩn khối này đọc lệnh và giải mã lệnh.
Phần III: Đặc diểm và chức năng của các thanh ghi.
3.1 Các thanh ghi chức năng:
Trong khối EU có 4 thanh ghi đa năng 16 bit Ax, Bx, Cx, Dx. Điều đặc biệt là mỗi khi
cần chứa các dữ liệu 8 bit thì mỗi thanh ghi có thể được phân chia thành 2 thanh ghi 8 bit
cao và 8 bit thấp để làm việc độc lập nhau, đó là các tập thanh ghi AH và AL, BH và BL,
CH và CL, DH và DL ( trong đó H chỉ phần cao, L chỉ phần thấp). Mỗi thanh ghi có thể
được sử dụng một cách vạn năng để chứa các tập dữ liệu khác nhau nhưng cũng có nhưng
công việc nhất định chỉ thao tác với một vài thanh ghi nào đó. Chính vì vây các thanh ghi
thường được gắn các tên cụ thể như sau:
•
Ax (Accumulator, Acc): thanh chứa, chứa tạm thời dữ liệu (toán hạng, kết quả
các phép toán nhân, chia và được coi là Acc). Ax có thể đc phân chia thành
AH( phần cao) và AL (phần thấp). Nếu kết quả là 8 bit thì thanh ghi Ax được coi là
thanh ghi tích lũy.
•
Bx (Base): Thanh ghi cơ sở, thường được dùng để chưa địa chỉ cơ sở cần truy
nhập trong lệnh XLAT. BX có thể được phân chia thành BH (Phần cao) và BL
(Phần thấp).
•
Cx (Count): Bộ đếm, thường được dùng để đếm số lần lặp của công việc (số
vòng lặp trong các vòng lặp). Cx có thể được chia thành CH (phần cao) và CL (phần
thấp). CH thường được dùng để chứa số lần lặp trong các lệnh LOOP, còn CL
thường chứa các số lần dịch hoặc quay trong các lệnh dịch quay thanh ghi.
•
Dx (Data): Thanh ghi dữ liệu , sử dụng để chứa toán hạng , kết quả. Ax và Dx
dung để chứa toán hạng hoặc kết qủa của các phép nhân chia số 16 bit. Dx còn
[7]
chứa địa chỉ cổng ra vào trực tiếp (In,Out). Dx có thể được phân chia thành
DH (phần cao) và DL (phần thấp).
3.2 Các thanh ghi con trỏ và chỉ số:
Trong CPU 8088 còn có ba thanh ghi con trỏ và hai thanh ghi chỉ số 16bit. Các thanh
ghi này dùng cho việc lưu trữ thông tin trong một khu vực đặc biệt của bộ nhớ. Nó thường được
dùng chủ yếu để trỏ hoặc ghi chỉ số để xác định một địa chỉ trong bộ nhớ. Các địa chỉ được chứa
trong các thanh ghi này có thể được liên hợp với các thông tin từ BIU để xác định vị trí thực của dữ
liệu trong bộ nhớ.Các thanh ghi này ( trừ IP) đều có thể được dùng như các thanh ghi đa
năng, nhưng ứng dụng chính của mỗi thanh ghi là chúng được ngầm định như là thanh ghi
lệch cho các đoạn tương ứng. Cụ thể:
•
SP (Stack Pointer): Thanh ghi con trỏ thanh xếp, trỏ vào đỉnh hiện thời của
thanh xếp nằm trong đoạn ngăn xếp SS (Nó luôn kết hợp với thanh ghi SS). Ta có địa chỉ
logic SS:SP. Sau mỗi thao tác cất một word vào stack (thao tác Push) thì SP tự động giảm
2 đơn vị, còn sau thao tác lấy 1 word ra khỏi stack (thao tác Pop), SP tự động tăng 2 đơn
vị.
•
BP (Base stack Pointer): Con trỏ cơ sở, luôn trỏ vào một dữ liệu cụ thể, nằm
trong đoạn ngăn xếp SS. Ta có địa chỉ logic SS: BP.
[8]
•
SI (Source Index): Thanh ghi chỉ số nguồn (hay nguồn), chỉ vào dữ liệu nằm
trong đoạn DS. Ta có địa chỉ logic DS: SI.
•
DI (Destination Index): Thanh ghi chỉ số đích, chỉ dữ liệu trong đoạn DS. Ta
có địa chỉ logic DS: DL
Ta có các cặp SP, BP đi với SS và SI, DI đi với DS.
Trong các lệnh thao tác với dữ liệu kiểu chuỗi thì cặp ES: DI luôn ứng với địa chỉ của
phần tử thuộc chuỗi đích còn cặp DS: SI ứng với địa chỉ của phần tử thuộc chuỗi nguồn.
3.3 Thanh ghi cờ:
Đây là thanh ghi 16 bit, mỗi bit được sử dụng để thể hiện một trạng thái của bộ vi xử
lý tại một thời điểm nhất định trong quá trình thực hiện chương trình dãy các câu lệnh,
nhưng chỉ dung 9 bit đối với bộ vi xử lý 8088. Mỗi bit đó được gọi là một cờ (flag).
Giá trị của mỗi cờ được biểu diễn bằng các kí hiệu gợi nhớ như cách biểu diễn của
chương trình Debug của DOS. Dựa vào cờ này người lập trình có thể có các lệnh thích
hợp tiếp theo cho bộ vi xử lý. Thanh ghi cờ 16 bit nhưng người ta chỉ dùng hết 9 bit của
nó để làm các bit cờ như hình vẽ dưới đây:
15
x
14
x
13
X
12
X
11
O
10
D
9
I
8
T
7
S
|
6
5
4
3
2
1
Z
x
A
x
P
X
Các cờ của bộ vi xử lý 8088
0
C
|
(x: không được định nghĩa (don’t care), với 8 bit thấp là các cờ của bộ vi xử lý 8088)
Hình vẽ: sơ đồ thanh ghi cờ của 8088.
° Cờ trạng thái: Biểu diễn trạng thái phép toán vừa thực hiện.
CF (Carry Flag): Cờ nhớ (cờ tràn).
CF = 1 (CY – Carry) khi kết quả phép toán vượt (tràn) khuôn khổ biểu diễn (có
nhớ (mượn) lên trên (từ) MSB), CF = 0 (NC – No Carry) trong trường hợp ngược
lại. Cờ này thường được sử dụng khi thực hiện các phép cộng, trừ các số byte.
Ví dụ:
1011 0001
+
0110 1001
10001 1010
AF (Auxilary Flag): Cờ nhớ phụ (tràn phụ - cờ bổ trợ).
[9]
Cờ này có ý nghĩa khi ta làm việc với số BCD, AF = 1 (AC – Auxilary Carry) khi
có nhớ hoặc mượn từ một số BCD thấp (4 bit thấp) sang một số BCD cao (4 bit
cao) và AF =0 (NA – No Auxilary carry) trong trường hợp ngược lại.
SF (Sign Flag): Cờ dấu. Trong bộ vi sử lý 8088 các số âm được biểu diễn dưới
dạng số bù 2, nên phải dùng cờ SF để chỉ thị dấu của kết quả.
SF = 1 (NG – NiGative), khi kết quả phép toán là một số âm, SF = 0 (PL – Plus)
trong trường hợp ngược lại.
ZF (Zero Flag): Cờ rỗng.
ZF = 1 (ZR – Zero) khi kết quả phép toán = 0, ZF = 0 (NZ-Non Zero) trong
trường hợp ngược lại.
OF (Overflow Flag): Cờ tràn
.
OF = 1 (OV – Overflow) khi kết quả là số bù 2 vượt khuôn khổ biểu diễn (tràn số
học hay nói cách khác: khi cộng 2 số cùng dấu mà kết quả là một số trái dấu thì
OF = 1), OF = 0 (NV –Non Overflow) trong trường hợp ngược lại (cờ này làm
việc với số có dấu).
Cờ điều khiển
Cờ trạng thái phụ thuộc điều kiện kết quả phép toán, còn với cờ điều khiển ta có
thể thiết lập nhờ lệnh.
IF (Interrupt Flag): Cờ ngắt.
IF = 1 (EI- Enable Interrupt) CPU cho phép ngắt, IF = 0 (DI=Disable Interrupt)
CPU không cho phép ngắt(cấm) các loại ngắt che được(Maskable)…
TF (Trap Flag): Cờ bẫy.
TF = 1 CPU làm việc trong chế độ chạy từng lệnh, thường dùng để gỡ rối chương
trình (debug). Sau khi thực hiện song chuỗi lệnh, bộ vi xử lý sẽ phát ra 1 lệnh ngắt
(INT) để có kiểm tra chương trình.
DF (Direction Flag): Cờ hướng.
Điều khiển hướng xử lý đối với thao tác chuỗi. DF = 1 (DN – Down) thì các lệnh
vận chuyển dữ liệu hay xử lý chuỗi sẽ thao tác lùi từ phải sang trái(địa chỉ cao đến
địa chỉ thấp). DF = 0 (UP) trong trường hợp ngược lại(thao tác các địa chỉ từu địa
chỉ thấp đến địa chỉ cao).
[10]
Cờ này thường được lặp bởi chương trình của người sử dụng khi có các lệnh thao tác
chuỗi.
Tiến (thuận – theo chiều tăng địa chỉ)
Lùi (ngược – theo chiều giảm địa chỉ)
3.4 Thanh ghi đoạn:
Thông thường, bộ nhớ của chương trình máy tính chia làm các đoạn phục vụ các
chức năng khác nhau như đoạn chứa các câu lệnh, chứa dữ liệu. Trong thực tế, bộ vi xử
lý 8088 cung cấp các thanh ghi 16 bit liên quan đến địa chỉ đầu của các đoạn nói trên và
chúng được gọi là các thanh ghi đoạn củ thể là:
CS (Code Segment): Thanh ghi đoạn mã, là thanh ghi địa chỉ đoạn mã lệnh,
chứa địa chỉ cơ sở (địa chỉ đoạn) của chương trình đang thực hiện.
DS (Data Segment): Thanh ghi đoạn dữ liệu, là thanh ghi địa chỉ đoạn dữ
liệu, chứa địa chỉ đoạn của vùng dữ liệu mà chương trình đang thực hiện sử
dụng. Vùng này thường chứa các biến của chương trình.
SS (Stack Segment): Thanh ghi đoạn ngăn xếp, là thanh ghi địa chỉ đoạn bộ
nhớ ngăn xếp (stack) của chương trình đang chạy.
ES (Extra Segment): Thanh ghi đoạn dữ liệu phụ, là thanh ghi địa chỉ đoạn
dữ liệu bổ sung mà chương trình đang thực hiện sử dụng. Vùng này cũng
thường chứa các biến của chương trình.
Các thanh ghi đoạn 16 bit này chỉ ra địa chỉ đầu của các đoạn trong bộ nhớ, dung
lượng lớn nhất của mỗi đoạn nhớ này là 64 Kbyte và tại một thời điểm nhất đinh bộ vi xử lý
chỉ làm việc với bốn đoạn nhớ 64 bit này. Để xác định chính xác vị trí 1 ô nhớ của chương
trình các thanh ghi đoạn sẽ phối hợp với các thanh ghi đặc biệt khác còn gọi là các thanh ghi
lệch hay phân đoạn (offset register).
8088 có 20 bit địa chỉ, trong khi đó các thanh ghi quản lý bộ nhớ là 16 bit. Để xác định
một ngăn nhớ có địa chỉ 20 bit, dùng 2 thanh ghi 16 bit để xác định địa chỉ.
Địa chỉ luôn nằm trong 1 thanh ghi gọi là địa chỉ đoạn.
Địa chỉ lệch (offset) trong 1 thanh ghi khác (Ax, Bx, Cx,…)
Địa chỉ logic:DS:SI
DS:DI
DS:XX
Địa vật lý (phải là số 20 bit) được xác định như sau:
[11]
Địa vật lý=địa chỉ đoạn*16 + địa chỉ lệch
Ví dụ: DS = 4000h, SI = 3F4Dh
Địa chỉ logic của ngăn nhớ: 4000:3F4D
Địa chỉ vật lý của ngăn nhớ:
DS * 16 + SI = 4000 * 16 +3F4D = 43F4Dh
Tại một thời điểm CPU quản lý được 4 bộ nhớ (DS, SS, ES, CS), nó có thể đồng
thời truy cập 4 đoạn đó.
Bộ nhớ được chia thành nhiều đoạn. Mỗi đoạn có kích thước tối đa là 64KB.
Vậy ta có 16 đoạn tách rời và địa chỉ lệch thay đổi từ 0000H đến FFFFh.
Nếu địa chỉ đoạn thay đổi từ 0000H đến FFFFh thì có 64 đoạn. khi này các đoạn
bao chùm lên nhau, 2 đoạn kề nhau sẽ cách nhau 16 byte (paragraph).
Khi khởi động máy (hoặc Reset) CS được nạp giá trị F000h, IP được nạp giá trị
FFF0h, địa chỉ này thuộc đoạn cuối, nơi đặt ROM khởi động.
Địa chỉ vật lý = F000h*16 + FFF0h =F0000h + FFF0h =FFFF0h.
IV : Sơ đồ chân, chức năng của các chân tín hiệu. Nguyên lý
hoạt động của cpu 8088.
4.1 Sơ đồ chân :
[12]
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.
S3
0
1
0
1
S4
0
0
1
1
Truy vấn đến các đoạn
Đoạn dữ liệu phụ (ES:)
Đoạn ngăn xếp (SS:)
Đoạn mã hoặc không đoạn nào
Đoạn dữ liệu
Bả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)
4.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
[13]
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
nhấ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 đó).
4.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
[14]
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.
• 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
0
0
0
Đọc mã lệnh
0
0
1
Đọc bộ nhớ
0
1
0
Ghi bộ nhớ
0
1
1
Bus rỗi (nghỉ)
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
1
1
1
Dừng (Halt)
Bảng quan hệ một số tín hiệu điều khiển
4.4 Chế độ MAX ( chân MN/MX cần được nối thẳng vào 0V)
[15]
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ó cá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:
S0
0
0
0
0
1
1
1
1
S1
0
0
1
1
0
0
1
1
S2 Chu kì điều khiển của bus
Tín hiệu
0
Chấp nhận yêu cầu ngắt
INTA
1
Đọc thiết bị ngoại vi
IORC
0
Ghi thiết bị ngoại vi
IOWC, AIOWC
1
Dừng (Halt)
Không
0
Đọc mã lệnh
MRDC
1
Đọc bộ nhớ
MRDC
0
Ghi bộ nhớ
MWTC, AMWC
1
Bus rỗi (nghỉ)
Không
• 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
0
0
1
1
QS1
0
1
0
1
Trạng thái đệm lệnh
Không hoạt động
Đọc byte mã lệnh đầu tiên từ đệm lệnh
Đệm lệnh rỗng
Đọc byte tiếp theo thì đệm lệnh
[16]