Tải bản đầy đủ (.pdf) (50 trang)

Chương 5 - Ghép 8088 Với bộ nhớ và Tổ chức vào/ra dữ liệu pot

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 (625.35 KB, 50 trang )

Chơng 5
Ghép 8088 Với bộ nhớ v Tổ chức
vo/ra dữ liệu

1. Giới thiệu các tín hiệu của 8088 v các mạch phụ trợ 8284, 8288
1.1. Các tín hiệu của 8088
Hình 5.1 thể hiện việc chia các tín hiệu của 8088 theo các nhóm để ta dễ nhận
diện. Sơ đồ bố trí cụ thể các chân của vi xử lý 8088 đợc thể hiện trên hình 5.2.
Sau đây ta sẽ giới thiệu chức năng của từng tín hiệu tại các chân cụ thể.

+ AD0 - AD7 [I,O: tín hiệu vo v ra]: Các chân dồn kênh cho các tín hiệu
phần thấp của bus dữ liệu v bus địa chỉ. Xung ALE sẽ báo cho mạch ngoi biết khi
no trên các đờng đó có tín hiệu dữ liệu (ALE = 0) hoặc địa chỉ (ALE=1). Các chân
ny ở trạng thái trở kháng cao khi P chấp nhận treo.
+ A8 - A15 [O]: Các bit phần cao của bus địa chỉ. Các chân ny ở trạng thái
trở kháng cao khi P chấp nhận treo.
+ A16/S3, A17/S4, A18/S5, A19/S6 [O]: Các chân dồn kênh của địa chỉ phần
cao v trạng thái. Địa chỉ A16 - A19 sẽ có mặt tại các chân đó khi ALE = 1 còn khi
ALE = 0 thì trên các chân đó có các tín hiệu trạng thái S3 - S6. Các chân ny ở trạng
thái trở kháng cao khi P chấp nhận treo

150



IO/
M (S1) A/D
0

Tín hiệu DT/
R (S2) A/D


1
điều RD A/D
2
8 đờng
khiển
WR( LOC
K
) A/D
3
dồn kênh
hệ thống
DEN (S0) A/D
4
của bus A/D

SS0 A/D
5
phần thấp
READY A/D
6

Tín hiệu HOLD ( RQ/
GT0) A/D
7
điều HLDA (RQ/ GT1) A
8

khiển
INTA (QS1) A
9


Bus ALE (QS0) A
10
8
NMI A
11
đờng của
Điều INTR A
12
bus A
khiển RESET A
13
phần cao
CPU MN/
MX A
14


TEST A
15
Đồng hồ CLK A
16
/S3
v Vcc A
17
/S4 4 đờng
nguồn GND A
18
/S5 dồn kênh của
GND

P 8088 A
19
/S6 bus C / A cao



Hình 5. 1. Các tín hiệu của 8088 ở chế độ MIN v (MAX).


Bảng 5.1. Các bit trạng thái v việc truy nhập các thanh ghi đoạn.

S4 S3 Truy nhập đến
0 0 Đoạn dữ liệu phụ
0 1 Đoạn ngăn xếp
1 0 Đoạn mã hoặc không đoạn no
1 1 Đoạn dữ liệu

.
Bit S6 = 0 liên tục, bit S5 phản ảnh giá trị bit IF của thanh ghi cờ. Hai bit S3
v S4 phối hợp với nhau để chỉ ra việc truy nhập các thanh ghi đoạn (bảng 5.1).


151
+
RD
[O]: Xung cho phép đọc. Khi
RD
= 0 thì bus dữ liệu sẵn sng 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 P chấp
nhận treo.
+ READY [I]: Tín hiệu báo cho CPU biết tình trạng sẵn sng của thiết bị
ngoại vi hay bộ nhớ. Khi READY=1 thì CPU thực ghi/đọc m không cần chèn thêm
các chu kỳ đợi. Ngợc lại khi thiết bị ngoại vi hay bộ nhớ có tốc độ hoạt động chậm,
chúng có thể đa tín hiệu READY=0 để báo cho CPU biết m chờ chúng. Lúc ny
CPU tự kéo di thời gian thực hiện lệnh ghi/đọc bằng cách chèn thêm các chu kỳ đợi.


Chế độ Chế độ
MIN MAX
GND Vcc
A14 A15
A13 A16/S3
A12 A17/S4
A11 A18/S5
A10 A19/S6
A9 SS0 (High)
A8 MN/MX
A/D7 RD
A/D6 HOLD (RQ/GT0)
A/D5 HLDA (RQ/GT1)
A/D4 WR (LOCK)
A/D3 IO/M (S2)
A/D2 DT/R (S1)
A/D1 DEN (S0)
A/D0 ALE (QS0)
NMI INTA (QS1)
INTR TEST
CLK READY

GND RESET
1 0 4
3
3
3
3
7 2
8 2
9 2
0 2
2 39
3 8
4 7
5 6
6 5
7 34


Hình 5.2. Sơ đồ chân của CPU 8088.


+ 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 lm dở, sau đó nó đi vo chu kỳ chấp
nhận ngắt v đa ra bên ngoi tín hiệu
INT
A
= 0.

8 33
9 32

P
Intel
8088
10 31
11 30
12 29
13 28
14 27
15 26
16 25
1 4
1 3
1 2
2 1

152
+
TEST
[I]: Tín hiệu tại chân ny đợc kiểm tra bởi lệnh WAIT. Khi CPU thực
hiện lệnh WAIT m lúc đó tín hiệu
TEST
= 1, nó sẽ chờ cho đến khi tín hiệu
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 ny 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. Nhận đợc yêu cầu ny CPU kết thúc lệnh đang lm dở, sau đó nó
chuyển sang thực hiện chơng trình phục vụ ngắt kiểu INT 2.
+ RESET [I]: Tín hiệu khởi động lại 8088. Khi RESET=1 kéo di ít nhất

trong thời gian 4 chu kỳ đồng hồ thì 8088 bị buộc phải khởi động lại: nó xoá 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:0000H (chú ý cờ IF 0 để cấm các yêu cầu ngắt khác tác động vo CPU
v cờ TF 0 để bộ vi xử lý 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 lm việc cho CPU.
+ Vcc [I]: Chân nguồn. Tại đây CPU đợc cung cấp +5V10%, 340mA.
+ GND [O]: 2 chân nguồn để nối với điểm 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.

Do 8088 có thể lm việc ở 2 chế độ khác nhau nên có một số chân tín hiệu phụ
thuộc vo các chế độ đó.

Chế độ MIN (Chân MN/
MX
cần đợc nối thẳng vo +5V m
không qua điện trở !)

Trong 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 bên trong 8088,
vì vậy việc phối ghép với các thiết bị đó sẽ rất dễ dng v chính vì tận dụng đợc các
phối ghép ngoại vi sẵn nên có thể giảm giá thnh hệ thống.
+ IO/
M
[O]: Tín hiệu ny phân biệt trong thời điểm đã định phần tử no
trong các thiết bị vo/ra (IO) hoặc bộ nhớ (M) đợc chọn lm 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 ny ở trạng thái trở
kháng cao khi P 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 vo bộ nhớ hoặc thiết bị ngoại vi tại thời điểm
đột biến
W
R
=1. Chân
WR
ở trạng thái trở kháng cao khi P chấp nhận treo.
+
INT
A
[O]: Tín hiệu báo cho các mạch bên ngoi biết CPU chấp nhận yêu cầu
ngắt INTR. Lúc ny CPU đa ra
INTA
= 0 để báo l nó đang chờ mạch ngoi đa vo
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ị vo/ra hay của ô 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.

153
+ 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 chuyển của vận dữ liệu trên bus D. Chân ny ở trạng thái trở kháng cao khi P
chấp nhận treo.


+
DEN
[O]: Tín hiệu báo cho bên ngoi biết l lúc ny trên bus dồn kênh AD
có dữ liệu ổn định. Chân ny ở trạng thái trở kháng cao khi P chấp nhận treo.
+ HOLD [I]: Tín hiệu yêu cầu treo CPU để mạch ngoi 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 8088 sẽ tự tách ra khỏi hệ thống bằng cách treo tất cả các bus A, bus
D, bus C của nó (các bus ở 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 để lm các công việc
trao đổi dữ liệu.


Bảng 5.2. Các chu kỳ của bus qua các tín hiệu
SS0
, IO/
M
v DT/
R


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)


+ HLDA [O]: Tín báo hiệu cho bên ngoi biết yêu cầu treo CPU để dùng các
bus đã đợc chấp nhận, v CPU 8088 đã treo các bus A, bus D v một số tín hiệu của
bus C.

+
SS0
[O]: Tín hiệu trạng thái. Tín hiệu ny 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
(xem bảng 5.2).

Chế độ MAX ( Chân MN/
MX
nối đất)

Trong chế độ MAX 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 ở bên ngoi 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.

154
+
S2
,
S1
v
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. Các tín hiệu ny đợ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
trong bảng 5.3.


Bảng 5.3. Các tín hiệu điều khiển của 8288.

S2 S1 S0 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
0 1 1 Dừng (Halt) Không
1 0 0 Đọc mã lệnh
MRDC


1 0 1 Đọc bộ nhớ
MRDC

1 1 0 Ghi bộ nhớ
MWTC
,AMWC
1 1 1 Bus rỗi (nghỉ) Không


+ RQ/GT0 v RQ/GT1 [I/O]: Các tín hiệu yêu cầu dùng bus của các bộ xử lý
khác hoặc thông báo chấp nhận treo của CPU để cho phép các bộ xử lý khác dùng
bus. RQ/GT0 có mức u tiên cao hơn RQ/GT1.
+
LOC
K
[O]: Tín hiệu do CPU đa ra để cấm các bộ xử lý khác trong hệ thống
dùng bus trong khi nó đang thi hnh một lệnh no đó đặt sau tiếp đầu LOCK.
+ QS0 v QS1 [O]: Tín hiệu thông báo các trạng thái khác nhau của đệm lệnh
(hng đợi lệnh). Bảng 5.4 cho biết các trạng thái của đệm lệnh đợc mã hoá bằng các
tín hiệu trên.
Trong hệ vi xử lý với sự có mặt của bộ đồng xử lý toán học 8087, các tín hiệu
ny đợc mạch 8087 dùng để đồng bộ quá trình hoạt động của nó với bộ vi xử lý 8088.


Bảng 5.4. Các trạng thái của đệm lệnh.

QS1 QS0 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


155
1.2. Phân kênh để tách thông tin v việc đệm cho các bus
Để giảm bớt khó khăn về mặt công nghệ do việc phải chế tạo nhiều chân cho
các tín hiệu của vi mạch CPU, ngời ta đã tìm cách hạn chế số chân của vi mạch bằng
cách dồn kênh nhiều tín hiệu trên cùng một chân. Ví dụ các chân AD0 - AD8 của
8088 đợc dồn kênh để có thể đa ra bên ngoi các thông tin về địa chỉ phần thấp v
dữ liệu phần thấp. Khi nhận đợc các tín hiệu đó ở bên ngoi vi mạch, ta phải tiến
hnh việc tách các tín hiệu để tái tạo lại các tín hiệu gốc cho các bus độc lập (bus địa
chỉ v bus dữ liệu). Việc ny đợc thực hiện bằng cá
ch sử dụng các vi mạch chức
năng thích hợp ở bên ngoi (thông thờng thì đó l các mạch chốt). Ta cũng phải lm
tơng tự nh vậy đối với các chân dồn kênh địa chỉ/trạng thái. Để hỗ trợ cho việc tách
thông tin ny, CPU đa ra thêm xung ALE sao cho khi ALE ở mức cao sẽ có tác dụng
báo cho bên ngoi biết lúc ny thông tin về địa chỉ tại các chân dồn kênh có giá trị.
Xung ALE sẽ đợc dùng để mở các mạch chốt v tách đợc các thông tin về địa chỉ bị
dồn kênh.
Muốn nâng cao khả năng tải của các bus để đảm nhận việc nuôi các mạch bên
ngoi, các tín hiệu ra v vo CPU cần phải đợc khuếch đại thông qua các mạch đệm
một chiều hoặc hai chiều với các đầu ra thờng hoặc đầu ra 3 trạng thái.
Hình 5.3 cho ta thấy một ví dụ đơn giản cách tổ chức việc tách tín hiệu địa
chỉ từ các tín hiệu dồn kênh chỉ/dữ liệu hoặc địa chỉ/điều khiển bằng các mạch chốt
74LS373 v việc sử dụng các bộ khuếch đại đệm 74LS244 v 74LS245 cho các tín
hiệu của bộ vi xử lý 8088 lm việc ở chế độ MIN.
Hình 5.4 cung cấp cho ta hình ảnh tỉ mỉ hơn về một cách tổ chức cụ thể khác
của các bus địa chỉ, dữ liệu v điều khiển thông qua lợc đồ của máy IBM PC/XT,
trong đó bộ vi xử lý 8088 lm việc ở chế độ MAX.

Bên cạnh CPU trên hình 5.4 ta còn thấy sự có mặt của các mạch phụ trợ của
Intel nh:
+ bộ điều khiển bus 8288,
+ bộ tạo ra xung đồng hồ 8284,
+ bộ phối ghép ngoại vi song song 8255,
+ bộ điều khiển trao đổi dữ liệu bằng cách thâm nhập trực tiếp vo bộ nhớ
8237,
+ bộ điều khiển ngắt u tiên 8259,
+ bộ đếm/định thời gian 8253 v
+ chỗ cắm dnh cho bộ đồng xử lý toán học 8087.
Một số mạch trong các mạch kể trên cũng sẽ đợc giới thiệu tại chơng ny v
các chơng sau để ta có thể hiểu đợc hoạt động của ton hệ.
Trên sơ đồ ny ta cũng thấy việc sử dụng các mạch chốt v mạch khuếch đại
đệm thông dụng (các mạch 74LS373, 74LS244 v 74LS245) tại những chỗ cần thiết
của bus địa chỉ, bus dữ liệu v bus điều khiển nh đã nói ở trên.


156
AD0 D0 AD0 D0
AD1 D1 AD1 D1
AD2 D2 liÖu AD2 D2 liÖu
AD3 LS245 D3 AD3 LS245 D3
AD4 D4 d÷ AD4 D4 d÷
AD5 D5 AD5 D5
AD6 D6 Bus AD6 D6 Bus
AD7 D7 AD7 D7






ALE G OC ALE G OC
CPU 8088 A1
A0

LS373
CPU 8088 A1
A0

LS373
A8 A8


A7
A6
A5
A4
A3
A2
A8 A8


A7
A6
A5
A4
A3
A2
A9 A9 A9 A9
A10 A10 A10 A10

A11 A11 chØ A11 A11 chØ
A12 LS244 A12 A12 LS244 A12
A13 A13 ®Þa A13 A13 ®Þa
A14 A14 A14 A14
A15 OC1,2 A15 Bus A15 OC1,2 A15 Bus
G OC


G OC


A16/S3 A16 A16/S3 A16
A17/S4 LS373 A17 A17/S4 LS373 A17
A18/S5 A18 A18/S5 A18
A19/S6 A19 A19/S6 A19
RD LS244 RD ®iÒu
WR WR khiÓn

RD LS244 RD ®iÒu
WR WR khiÓn







IO/M OC1 IO/M Bus IO/M OC1 IO/M Bus
DT/R DEN G DIR




DT/R DEN G DIR




157

H×nh 5.3. Bus hÖ thèng cã khuÕch ®¹i ®Öm.

H×nh 5.3. Bus hÖ thèng cã khuÕch ®¹i ®Öm.




































158
DMA Request (DRQ) lines
DMA
Controller
H×nh 5.4. L−îc ®å cña m¸
y
IBM PC/XT.
from 8253
1.3. Mạch tạo xung nhịp 8284

Cho dù lm việc trong chế độ MIN hay MAX, CPU 8088 luôn cần xung nhịp
(xung đồng hồ) từ mạch tạo xung nhịp 8284. Mạch tạo xung nhịp không những cung
cấp xung nhịp với tần số thích hợp cho ton hệ m nó còn có ảnh hởng tới việc đồng

bộ tín hiệu RESET v tín hiệu READY của CPU.


Tên của các chân tín hiệu:

CSYNC Vcc CSYNC[O]: Clock synchronisation







PCLK X1 PCLK[O]: Peripheral clock
AEN1 X2 AEN1,AEN2[I]: Address enable
RDY1 ASYNC RDY1, RDY2[I]: Bus ready
READY EFI READY[O]: Tới READY của 8088
RDY2 F/C CLK[O]: Tới READY của 8088
AEN2 OSC X1, X2[I]: Crystal
CLK RES ASYNC[I[: Ready synchronisation
GND RESET select
EFI[I]: External frequency input
1 18
3 16
4 15
5 14
6 13
7 12
8 11


8284

2 17
9 10
F/C[I]:Frequecy/Crystal; OSC[O]: Osc output;
RES[I]:Reset input; RESET[O]: Reset output.


Hình 5. 5. Mạch tạo xung đồng hồ 8284 cho CPU 8088



ý nghĩa các tín hiệu

+ AEN1, AEN2: Tín hiệu cho phép chọn đầu vo tơng ứng RDY1, RDY2 lm
tín hiệu báo tình trạng sằn sng của bộ nhớ hoặc thiết bị ngoại vi.
+ RDY1, RDY2: cùng với AEN1, AEN2 dùng để gây ra các chu kỳ đợi ở CPU.
+ ASYNC: Chọn đồng bộ hai tầng hoặc đồng bộ một tầng cho tín hiệu RDY1,
RDY2. Trong chế độ đồng bộ một tầng (ASYNC=1) tín hiệu RDY có ảnh hởng đến
tín hiệu READY tới tận sờn xuống của xung đồng hồ tiếp theo. Còn trong chế độ
đồng bộ hai tầng (ASYNC=0) tín hiệu RDY chỉ có ảnh hởng đến tín hiệu READY khi
có sờn xuống của xung đồng hồ tiếp theo.
+ READY: nối đến đầu vo READY của CPU. Tín hiệu ny đợc đồng bộ với
các tín hiệu RDY1, RDY2.


159
+ X1, X2: nối với 2 chân của thạch anh với tần số f
X
, thạch anh ny l một bộ

phận của một mạch dao động bên trong 8284 có nhiệm vụ tạo xung chuẩn dùng lm
tín hiệu đồng hồ cho ton hệ thống
.
+ F/C: dùng để chọn nguồn tín hiệu chuẩn cho 8284. Khi chân ny ở mức cao
thì xung đồng hồ bên ngoi sẽ đợc dùng lm xung nhịp cho 8284, ngợc lại thì xung
đồng hồ của mạch dao động bên trong dùng thạch anh sẽ đợc chọn để lm xung
nhịp.
+ EFI: lối vo cho xung từ bộ dao động ngoi.
+ CLK: xung nhịp
f
CLK
=f
X
/3 với độ rỗng 77% nối đến chân CLK của 8088.
+ PCLK: xung nhịp
f
PCLK
=

f
X
/6 với độ rỗng 50% dnh cho thiết bị ngoại vi.
+ OSC: xung nhịp đã đợc khuếch đại có tần số bằng
f
X
của bộ dao động.
+ RES: chân khởi động, nối với mạch RC để 8284 có thể tự khởi động khi bật
nguồn.
+ RESET: nối vo RESET của 8088 v l tín hiệu khởi động lại cho ton hệ.
+ CSYNC: lối vo cho xung đồng bộ chung khi trong hệ thống có các 8284

dùng dao động ngoi tại chân EFI. Khi dùng mạch dao động trong thì phải nối đất
chân ny (hình 5.6).



CLK


+5V
8284 8088
10k
RESET

+

K 10

X1 CLK
X2



RES RESET
F/C CSYNC





Khởi động hệ thống



Hình 5.6. Mạch 8284 nối với 8088.

Hình 5.6 biểu diễn các đờng nối các tín hiệu chính của 8088 v 8284. Mạch
8284 nhận đợc xung khởi động từ bên ngoi thông qua mạch RC khi bắt đầu bật
điện hoặc xung khởi động lại khi bấm công tắc K. Từ xung ny 8284 có nhiệm vụ đa
ra xung khởi động đồng bộ cho CPU cùng với tất cả các thnh phần khác của hệ
thống.

160
1.4. Mạch điều khiển bus 8288
Nh đã giới thiệu ở phần trớc, vi mạch 8288 l mạch điều khiển bus, nó lấy
một số tín hiệu điều khiển của CPU v cung cấp tất cả các tín hiệu điều khiển cần
thiết cho hệ vi xử lý khi CPU 8088 lm việc ở chế độ MAX.
Sơ đồ chân v các tín hiệu của 8288 đợc thể hiện trên hình 5.7.



IOB Vcc AEN: address enable
CLK S0 CEN: command enable
S1 S2 IOB: input/output bus mode
DT/R MCE/PDEN MRDC: memory read comm.
ALE DEN MWTC: memory write comm.
AEN CEN AMWC: advanced MWTC
MRDC INTA IORC: i/o read command
AMWC IORC IOWC: i/o write command
MWTC AIOWC AIOWC: advanced IOWC
GND IOWC DT/R: data transmit/receive
DEN:data enable

1 20
2 19
3 18
4 17
5 16
6 15
7 14
8 13
9 12
10 11

8288

MCE/PDEN: master cascade enable/peripheral data enable


Hình 5. 7. Mạch tạo xung điều khiển 8288


Các tín hiệu chính của 8288 bao gồm:

+ S
2
, S
1
, S
0
[I, I, I] : l các tín hiệu trạng thái lấy thẳng từ CPU. Tuỳ theo các
tín hiệu ny m mạch 8288 sẽ tạo ra các tín hiệu điều khiển khác nhau tại các chân
ra của nó để điều khiển hoạt động của các thiết bị nối với CPU. Bảng 5.3 mô tả các tín

hiệu vo v các tín hiệu ra đó.
+ CLK [I]: đây l đầu vo nối với xung đồng hồ hệ thống (từ mạch 8284) v
dùng để đồng bộ ton bộ các xung điều khiển đi ra từ mạch 8288.
+ AEN [I]: l tín hiệu đầu vo để sau một khoảng thời gian trễ cỡ 150 ns sẽ
kích hoạt các tín hiệu điều khiển ở đầu ra của 8288.
+ CEN [I]: l tín hiệu đầu vo để 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.
+ IOB [I]: tín hiệu để điều khiển mạch 8288 lm việc ở các chế độ bus khác
nhau.

161
Khi IOB =1 mạch 8288 lm việc ở chế độ bus vo/ra, khi IOB = 0 mạch 8288
lm việc ở chế độ bus hệ thống (nh trong các máy IBM PC).

+MRDC [O]: tín hiệu điều khiển đọc bộ nhớ. Nó kích hoạt bộ nhớ đa dữ liệu
ra bus.
+ MWTC [O], AMWC [O]: l các tín hiệu điều khiển ghi bộ nhớ hoặc ghi bộ
nhớ kéo di.
Đó thực chất l các tín hiệu giống nh MEMW, nhng AMWC (advanced
memory write command) hoạt động sớm lên một chút để tạo ra khả năng cho các bộ
nhớ chậm có đợc thêm thời gian ghi.

+ IORC [O]: tín hiệu điều khiển đọc thiết bị ngoại vi. Nó kích hoạt các thiết bị
đợc chọn để các thiết bị ny đa dữ liệu ra bus.
+ IOWC [O], AIOWC [O]: l các tín hiệu điều khiển đọc thiết bị ngoại vi hoặc
đọc thiết bị ngoại vi kéo di.
Đó thực chất l các tín hiệu giống nh IOW, nhng AIOWC (advanced I/O
write command) thì hoạt động sớm lên một chút để cho các thiết bị ngoại vi chậm
đợc kéo di thêm thời gian ghi.


+ INTA [O]: l đẩu ra để thông báo l CPU chấp nhận yêu cầu ngắt của thiết
bị ngoại vi v lúc ny các thiết bị ngoại vi sẽ phải đa số hiệu ngắt ra bus để CPU
đọc.
+ DT/R [O]: l tín hiệu để điều khiển hớng đi của dữ liệu trong hệ vo hay ra
so với CPU (DT/R =0: CPU đọc dữ liệu, DT/R =1 CPU ghi dữ liệu).
Trong các máy IBM PC thì tín hiệu ny đợc nối đến các chân DIR của mạch
đệm 2 chiều 74LS245 để điều khiển dữ liệu đi từ CPU đến bus hệ thống khi ghi hoặc
ngợc lại, từ bus hệ thống đến CPU khi đọc.

+ DEN [O]: đây l tín hiệu để điều khiển bus dữ liệu trở thnh bus cục bộ hay
bus hệ thống.
Trong các máy IBM PC thì tín hiệu ny đợc sử dụng cùng với tín hiệu của
mạch điều khiển ngắt PIC 8259 để tạo ra tín hiệu điều khiển cực G của mạch đệm 2
chiều 74LS245.

+ MCE/PDEN [O]: đây l tín hiệu dùng định chế độ lm việc cho mạch điều
khiển ngắt PIC 8259 để nó lm việc ở chế độ chủ.

+ ALE [O]: đây l tín hiệu cho phép chốt địa chỉ có tại các chân dồn kênh địa
chỉ - dữ liệu AD0-AD7, tín hiệu ny thờng đợc nối với chân G của mạch 74LS373
để điều khiển mạch ny chốt lấy địa chỉ.


162
1.5. Biểu đồ thời gian của các lệnh ghi/đọc
Trên hình 5.8 v 5.9 l các biểu đồ thời gian đã đợc đơn giản hoá của các tín
hiệu cơ bản trong CPU 8088 cho các lệnh ghi/đọc bộ nhớ hoặc thiết bị ngoại vi.
Trong trờng hợp bình thờng một chu kỳ ghi/đọc (còn gọi l chu kỳ bus) của
CPU kéo di 4 chu kỳ đồng hồ. Các chu kỳ đồng hồ đợc đánh dấu l T1, T2, T3 v
T4. Nếu CPU lm việc với tần số đồng hồ 5 MHz thì một chu kỳ đồng hồ kéo di

T=200 ns v một chu kỳ bus kéo di 4*T=800 ns.




Một chu kỳ của bus

T1 T2 T3 T4

CLK
T
W


ALE

A/S
(A16/S3 -
A19/S6)

A
(A8 - A15)

A/D
(AD0 - AD7)


t
giữW


Twr

WR



DEN



Hình 5.8. Các tín hiệu của CPU 8088 trong chu kỳ ghi đơn giản hoá.
Địa chỉ ổn định
a chỉ
Tín hiệu trạng thái
Đ

Địa chỉ
Dữ liệu ghi

163


Một chu kỳ của bus

T1 T2 T3 T4

CLK
T
W



ALE


t
trễđịachỉ

ADR/S
(A16/S3 -
A19/S6)

ADR
(A8 - A15)

t
giữR
ADR/D
(AD0 - AD7)

T
RD


RD




DEN




Hình 5.9. Các tín hiệu của CPU 8088 trong chu kỳ đọc đơn giản hoá.


Chúng ta mô tả tóm tắt các hiện tợng xảy ra trong mỗi chu kỳ T nói trên.

+ Chu kỳ T1:
Trong chu kỳ ny địa chỉ của bộ nhớ hay thiết bị ngoại vi đợc đa ra trên các
đờng địa chỉ, hoặc địa chỉ/dữ liệu v địa chỉ/trạng thái. Các tín hiệu điều khiển ALE,
DT/R, IO/M cũng đợc đa ra để giúp hon tất việc giữ thông tin địa chỉ ny.
+ Chu kỳ T2:
Trong chu kỳ ny CPU đa ra các tín hiệu điều khiển RD hoặc WR, DEN v
tín hiệu dữ liệu trên D0-D7 nếu l lệnh ghi. DEN thờng dùng để mở các bộ đệm của
bus dữ liệu nếu nh chúng đợc dùng trong hệ. Tại cuối chu kỳ T2 (v giữa mỗi chu
Địa chỉ
Dữ liệu đọc
a chỉ
Tín hiệu trạng thái
Đ

Địa chỉ ổn định

164
kỳ T của Tw, nếu có) CPU lấy mẫu tín hiệu READY để xử lý trong chu kỳ tiếp theo
khi nó phải lm việc với bộ nhớ hoặc thiết bị ngoại vi chậm.

+ Chu kỳ T3:
Trong chu kỳ ny CPU dnh thời giờ cho bộ nhớ hay thiết bị ngoại vi truy
nhập dữ liệu. Nếu l chu kỳ đọc dữ liệu thì tại cuối T3 CPU sẽ lấy mẫu tín hiệu của

bus dữ liệu.
Nếu tại cuối chu kỳ đồng hồ T2 (hoặc giữa mỗi chu kỳ T của Tw) m CPU
phát hiện ra tín hiệu READY=0 (do bộ nhớ hay thiết bị ngoại vi đa đến) thì CPU tự
xen vo sau T3 một vi chu kỳ T để tạo chu kỳ đợi Tw

=n*T

nhằm kéo di thời gian
thực hiện lệnh, tạo điều kiện cho bộ nhớ hoặc thiết bị ngoại vi chậm có đủ thời gian
hon tất việc ghi/đọc dữ liệu.

+ Chu kỳ T4:
Trong chu kỳ ny các tín hiệu trên bus đợc giải hoạt (đa về trạng thái
không tích cực) để chuẩn bị cho chu kỳ bus mới. Tín hiệu WR trong khi chuyển trạng
thái từ 0 lên 1 sẽ kích hoạt quá trình ghi vo bộ nhớ hay thiết bị ngoại vi.
Trên các hình vẽ 5.8 v 5.9 cũng biểu diễn các thông số quan trọng về mặt
thời gian liên quan đến tốc độ hoạt động tối thiểu cần thiết của các bộ nhớ hoặc thiết
bị ngoại vi nếu chúng muốn lm việc với CPU 5MHz.
Trong biểu đồ thời gian đọc (hình 5.9) ta thấy việc truy nhập bộ nhớ kéo di
trong quãng thời gian từ T1 đến T3 (gần 3 chu kỳ đồng hồ 3*T=600 ms). Trong tổng
số thời gian ny phải tính đến thời gian trễ khi truyền địa chỉ
t
trễđịachỉ
=110 ns, thời
gian giữ của dữ liệu khi đọc
t
giữR
= 30 ns v thời gian trễ do việc truyền tín hiệu qua
các mạch đệm nhiều nhất l
t

trễđệm
= 40 ns. Nh vậy các bộ nhớ nối với 8088-5MHz
cần phải có thời gian thâm nhập nhỏ hơn:

3*T
- t
trễđịachỉ
- t
giữR
- t
trễđệm
= 600 - 110 - 30 - 40 = 420 ns.

Mặt khác với CPU 8088 5MHz thì độ rộng xung đọc l T
RD
= 325 ns, đó l thời
gian đủ di để cho bộ nhớ với thời gian thâm nhập cỡ 420 ns lm việc.

Trong biểu đồ thời gian ghi (hình 5.8) ta thấy phải có một thời gian giữ dữ
liệu tối thiểu để ghi
t
giữW
= 88 ns sau khi WR đột biến từ 0 lên 1. Trong thực tế thời
gian ny gần nh bằng 0 đối với các bộ nhớ thông dụng. Độ di của xung ghi đối với
CPU 8088 - 5 MHz l Twr = 340 ns cũng l phù hợp với các bộ nhớ với thời gian
thâm nhập cỡ 420 ns.
Trên hình 5.10 l một mạch dùng để xen thêm chu kỳ đợi với thời gian đợi tuỳ
chọn nT (n=0-7). Bằng cách thay đổi đầu nối đến các đầu ra của mạch vo song song
ra nối tiếp 74LS164 ta có thể chọn độ di thời gian đợi. Chú ý l các tín hiệu RD, WR,
INTA ở mức 1 v xoá 74LS164 cho đến khi có sờn dơng của T2.


165



Tõ CS cña m¹ch nhí
RDY1
AEN1
RDY2
0T 1T 2T 3T 4T 5T 6T 7T
8284

CLK
READY +5V



READY
°
CLK

8088
RD
WR
INTA


T1 T2 T3 Tw T4
CLK
Q

A
Q
B
Q
C
Q
D
Q
E
Q
F
Q
G
Q
H
CLK LS164

CLR SI




Q
A

Q
B
B

Q

C




RDY1




H×nh 5.10. M¹ch t¹o 0-7 tr¹ng th¸i chê (®ang ®Ó lμ 1) vμ biÓu ®å thêi gian.

166
2. Phối ghép 8088 với bộ nhớ
2.1. Bộ nhớ bán dẫn
Trớc khi nói về phối ghép 8088 với bộ nhớ ta nói qua một chút về các bộ nhớ
bán dẫn thờng dùng với bộ vi xử lý.

Các bộ nhớ bán dẫn thờng dùng với bộ vi xử lý bao gồm:

+ bộ nhớ cố định ROM (read only memory, bộ nhớ có nội dung ghi sẵn chỉ để
đọc ra), thông tin ghi trong mạch không bị mất khi mất nguồn điện nuôi cho mạch.
+ bộ nhớ bán cố định EPROM (erasable programmable ROM, l bộ nhớ ROM
có thể lập trình đợc bằng xung điện v xoá đợc bằng tia cực tím).
+ bộ nhớ không cố định RAM (random access memory, bộ nhớ ghi/đọc), thông
tin ghi trong mạch bị mất khi mất nguồn điện nuôi cho mạch. Trong các bộ nhớ RAM
ta còn phân biệt ra loại RAM tĩnh (static RAM hay SRAM, trong đó mỗi phần tử nhớ
l một mạch lật 2 trạng thái ổn định) v loại RAM động (dynamic RAM hay DRAM,
trong đó mỗi phần tử nhớ l một tụ điện rất nhỏ đợc chế tạo bằng công nghệ MOS ).


Một bộ nhớ thờng đợc tạo nên từ nhiều vi mạch nhớ. Một vi mạch nhớ
thờng có dạng cấu trúc tiêu biểu nh sau (hình 5.11):




Tín Tín
hiệu hiệu
địa dữ
chỉ liệu


WR WR : Write
WE : write enable
OE : Output enable

0 0
1
D
1
2 2
A
m
Dn


WE
A D
A
A D

: :
CS : Chip select
RD : Read
Chọn vỏ RD
CS OE

Hình 5.11. Sơ đồ khối một vi mạch nhớ.

167
Theo sơ đồ khối ny ta thấy một vi mạch nhớ có các nhóm tín hiệu sau:

Nhóm tín hiệu địa chỉ
Các tín hiệu địa chỉ có tác dụng chọn ra một ô nhớ (từ nhớ) cụ thể để ghi/đọc.
Các ô nhớ có độ di khác nhau tuỳ theo nh sản xuất: 1, 4, 8 bit. Số đờng tín hiệu
địa chỉ có liên quan đến dung lợng của mạch nhớ. Với một mạch nhớ có m bit địa chỉ
thì dung lợng của mạch nhớ đó l 2
m
từ nhớ. Ví dụ, với m=10 ta có dung lợng mạch
nhớ l 1K ô nhớ (1 Kilô = 2
10
=1024) v với m=20 ta có dung lợng của mạch nhớ l
1M ô nhớ (1 Mêga = 2
20
= 1048576).

Nhóm tín hiệu dữ liệu
Các tín hiệu dữ liệu thờng l đầu ra đối với mạch ROM hoặc đầu vo/ra dữ
liệu chung (2 chiều) đối với mạch RAM. Cũng tồn tại mạch nhớ RAM với đầu ra v
đầu vo dữ liệu riêng biệt. Đối với RAM loại ny, khi dùng trong mạch của bus dữ
liệu ngời sử dụng phải nối 2 đầu đó lại. Các mạch nhớ thờng có đầu ra dữ liệu kiểu

3 trạng thái. Số đờng dây dữ liệu quyết định độ di từ nhớ của mạch nhớ. Thông
thờng ngời ta hay nói rõ dung lợng v độ di từ nhớ cùng một lúc. Thí dụ mạch
nhớ dung lợng 1 Kx8 (tức l 1 KB) hoặc 16 Kx4

Nhóm tín hiệu chọn vi mạch (chọn vỏ)
Các tín hiệu chọn vỏ l CS (chip select) hoặc CE (chip enable) thờng đợc
dùng để chọn ra vi mạch nhớ cụ thể để ghi/đọc. Tín hiệu chọn vỏ ở các mạch RAM
thờng l CS, còn ở các mạch ROM thờng l CE. Các tín hiệu chọn vỏ thờng đợc
nối với đầu ra của bộ giải mã địa chỉ. Khi một mạch nhớ không đợc chọn thì bus dữ
liệu của nó bị treo (ở trạng thái trở kháng cao).

Nhóm tín hiệu điều khiển

Tín hiệu điều khiển cần có trong tất cả các mạch nhớ. Các mạch nhớ ROM
thờng có một đầu vo điều khiển OE (output enable) để cho phép dữ liệu đợc đa
ra bus. Một mạch nhớ không đợc mở bởi OE thì bus dữ liệu của nó bị treo.
Một mạch nhớ RAM nếu chỉ có 1 tín hiệu điều khiển thì thờng đó l R/W để
điều khiển quá trình ghi/đọc. Nếu mạch nhớ RAM có 2 tín hiệu điều khiển thì đó
thờng l WE (write enable) để điều khiển ghi v OE để điều khiển đọc. Hai tín hiệu
ny phải ngợc pha nhau để điều khiển việc ghi/đọc mạch nhớ.

Một thông số đặc trng khác của bộ nhớ l thời gian thâm nhập
t
ac
. Nói chung
nó đợc định nghĩa nh l thời gian kể từ khi có xung địa chỉ trên bus địa chỉ cho đến

168
khi có dữ liệu ra ổn định trên bus dữ liệu. Thời gian thâm nhập của bộ nhớ phụ thuộc
rất nhiều vo công nghệ chế tạo nên nó. Các bộ nhớ lm bằng công nghệ lỡng cực có

thời gian thâm nhập nhỏ (10 - 30 ns) còn các bộ nhớ lm bằng công nghệ MOS có thời
gian thâm nhập lớn hơn nhiều (cỡ 150 ns hoặc hơn nữa).

Sau đây l thí dụ một số loại bộ nhớ thờng dùng.

Bộ nhớ EPROM
Các bộ nhớ EPROM thông dụng tồn tại dới nhiều kiểu mạch khác nhau. Họ
27xxx có các loại mạch sau: 2708 (1Kx8), 2716 (2Kx8), 2732 (4Kx8), 2764 (8Kx8),
27128 (16Kx8), 27256 (32Kx8), 27512 (64Kx8) với
t
ac
= 250-450 ns tuỳ theo loại cụ
thể. Trên hình 5.12 l sơ đồ các tín hiệu v bảng chức năng của 2716.

Mạch nhớ 2716 có thời gian thâm nhập
t
ac
= 450 ns, nh vậy để ghép v lm
việc đợc với CPU 8088 5 MHz nó cần phải có thêm chu kỳ đợi. Ngợc lại mạch nhớ
2716 -1 lại có
t
ac
= 250 ns nên không cần thêm chu kỳ đợi.
Cần lu ý l trong chế độ duy trì công xuất tiêu thụ của mạch giảm đợc 75%
so với công xuất tiêu thụ khi nó ở chế độ tích cực.














A
0
-A
10
: Địa chỉ. x : Không quan tâm
D
0
-D
7
: Dữ liệu. HZ: Trạng thái trở kháng cao
OE :Cho phép đa dữ liệu ra.
CE/PGM:Chọn vỏ/Điều khiển ghi.
Vpp: Điện áp ghi.


Hình 5.12. Bộ nhớ EPROM 2716 (2Kx8).

Chân
Chế độ


CE/PGM



OE
Vpp

[V]
Vcc

[V]
D
0
-D
7
Đọc 0 0 +5 +5 Dout
Duy trì 1 x +5 +5 HZ
Ghi

50ms

1 +25 +5 Din
Kiểm tra ghi 0 0 +25 +5 Dout
Cấm ghi 0 1 +25 +5 HZ

A
0
-A
10
0
-D
7


OE Vpp

CE/PGM
D

169

Bộ nhớ RAM tĩnh (SRAM)

Bộ nhớ SRAM có khả năng lu giữ thông tin trong nó chừng no nó còn đợc
cấp điện. Các bộ nhớ SRAM v EPROM cùng dung lợng thờng có cách bố trí chân
giống nhau để dễ bề thay thế lẫn trong quá trình phát triển hệ thống. Trên hình 5.13
l ví dụ mạch nhớ TMS 4014 (2Kx8) với thời gian thâm nhập
t
ac
= 250 ns.
Đã tồn tại trong thực tế mạch nhớ SRAM dung lợng 32Kx8 (62256LP-10) với
thời gian thâm nhập cỡ 100 ns chế tạo theo công nghệ CMOS v một loại SRAM khác
chế tạo theo công nghệ lỡng cực 8 KB - 128 KB có thời gian thâm nhập 15 ns.








A
0

-A
10
: Địa chỉ
D
0
-D
7
: Dữ liệu
OE: Cho phép đa dữ liệu ra
WE: Cho phép ghi
CS: Chọn vỏ


A
0
-A
10
D
0
-D
7

OE WE

CS









Hình 5.13. Bộ nhớ RAM tĩnh TMS 4016(2Kx8).


Bộ nhớ RAM động (DRAM)
Bộ nhớ DRAM lu giữ thông tin bằng cách nạp hay không nạp điện tích lên
các tụ điện công nghệ MOS. Mỗi phần tử nhớ của bộ nhớ DRAM vì vậy cần đợc lm
tơi lại (bằng cách ghi hay đọc phần tử đó) sau một quãng thời gian cỡ 15,6 s, nếu
không điện tích trên các tụ điện sẽ bị tiêu tán v dẫn đến mất thông tin. Các mạch
DRAM cần có các mạch lôgic phụ để đảm bảo việc lm tơi v vì thế việc phối ghép nó
với bộ vi xử lý l rất phức tạp. Bù lại nhợc điểm ny, các mạch nhớ DRAM lại có u
điểm l có thể chế tạo đợc một số lợng rất lớn các phần tử nhớ trên một đơn vị diện
tích, các vi mạch ny do vậy cũng cần rất nhiều chân cho các tín hiệu địa chỉ. Để lm
giảm bớt số lợng chân địa chỉ trên một vi mạch nhớ, ngời ta thờng chia địa chỉ ra
2 nhóm: địa chỉ hng v địa chỉ cột rồi dồn kênh chúng trên các chân địa chỉ, đồng
thời cung cấp thêm các tín hiệu cho phép chốt giữ riêng rẽ địa chỉ hng (
RAS
) v cột
(
CAS
) ở bên trong vi mạch nhớ (hình 5.14).

170


A
0
-A

7
: Địa chỉ
D
0
-D
3
: Dữ liệu
CAS: Xung cho phép chốt địa chỉ cột
RAS: Xung cho phép chốt địa chỉ hng
OE: Cho phép đa dữ liệu ra
WE: Cho phép ghi



A
0
-A
D
0
-D
3

OE WE

CAS RAS
7








RAS

CAS


A
0
-A
7
đc.cột đc.hng

Không quan tâm


Hình 5.14. Bộ nhớ RAM động TMS 4464 (64Kx4).


Các mạch nhớ DRAM thờng đợc chế tạo với độ di 1 hoặc 4 bit. Đã tồn tại
trong thực tế mạch nhớ DRAM dung lợng 1 Mx1, 4 Mx1 v 16 Mx1 v chúng thờng
đợc tổ hợp thnh bộ nhớ kiểu SIMM (single in-line memory module) hay SIP (single
in-line package) dùng trong các máy vi tính thế hệ mới. Trên hình 5.15 l ví dụ của vi
mạch nhớ TMX4C1024 dung lợng 1 Mx1 với thời gian thâm nhập 60 ns.













Hình 5.15. Bộ nhớ RAM động TMX 4C1024 (1Mx1).
A
0
-A
9
: Địa chỉ
Di: Dữ liệu vo
D0: Dữ liệu ra
CAS: Xung cho phép chốt địa chỉ cột
RAS: Xung cho phép chốt địa chỉ hng
WE: Cho phép ghi

Di
A
0
-A
9
D0


WE

CAS RAS


171
2.2. Giải mã địa chỉ cho bộ nhớ
Mỗi mạch nhớ nối ghép với CPU cần phải đợc CPU quy chiếu tới một cách
chính xác khi thực hiện các thao tác ghi/đọc. Điều đó có nghĩa l mỗi mạch nhớ phải
đợc gán cho một vùng riêng biệt có địa chỉ xác định nằm trong không gian địa chỉ
tổng thể của bộ nhớ. Việc gán địa chỉ cụ thể cho mạch nhớ đợc thực hiện nhờ một
xung chọn vỏ lấy từ mạch giải mã địa chỉ. Việc phân định không gian địa chỉ tổng thể
thnh các vùng nhớ khác nhau để thực hiện những chức năng nhất định gọi l phân
vùng bộ nhớ. Ví dụ, đối với CPU 8088 thì không gian địa chỉ tổng thể dnh cho bộ nhớ
l 1MB, trong đó vùng nhớ dung lợng 1 KB kể từ địa chỉ thấp nhất 00000H nhất
thiết phải đợc dnh cho RAM (vì tại đây ta phải có chỗ để cho một bảng gồm 256
vectơ ngắt của 8088), còn tại vùng nhớ có chứa địa chỉ FFFF0H thì lại nhất thiết phải
đợc dnh cho ROM hay EPROM (vì FFFF0H l địa chỉ khởi động của CPU).

Về nguyên tắc một bộ giải mã địa chỉ thờng có cấu tạo nh trên hình 5.16.



Tín hiệu địa chỉ
CS1

CS2 Các tín hiệu
: : chọn vỏ
Tín hiệu điều khiển

CSn

Mạch
giải mã

địa chỉ


Hình 5.16. Mạch giải mã địa chỉ tổng quát.


Đầu vo của của bộ giải mã l các tín hiệu địa chỉ v tín hiệu điều khiển. Các
tín hiệu địa chỉ gồm các bit địa chỉ có quan hệ nhất định với các tín hiệu chọn vỏ ở
đầu ra. Tín hiệu điều khiển thờng l tín hiệu IO/
M dùng để phân biệt đối tợng m
CPU chọn lm việc l bộ nhớ hay thiết bị vo/ra. Mạch giải mã l một trong những
khâu gây ra việc trễ thời gian của tín hiệu từ CPU tới bộ nhớ hoặc thiết bị ngoại vi
m trong khi chọn mạch nhớ/ngoại vi ta phải tính đến. Tuỳ theo quy mô của mạch
giải mã m ta có thể có ở đầu ra một hay nhiều tín hiệu chọn vỏ.
Giải mã đầy đủ cho một mạch nhớ đòi hỏi ta phải đa đến đầu vo của mạch
giải mã các tín hiệu địa chỉ sao cho tín hiệu ở đầu ra của nó chỉ chọn riêng mạch nhớ
đã định. Trong trờng hợp ny ta phải dùng tổ hợp đầy đủ của các đầu vo địa chỉ
tơng ứng để chọn đợc mạch nhớ. Nếu ta bỏ bớt đi một bit địa chỉ no đó thì đó l
việc giải mã thiếu cho mạch nhớ, vì xung nhận đợc từ mạch giải mã ngoi việc chọn
mạch nhớ ở vùng đã định sẽ có thể chọn ra các mạch nhớ ở các vùng nhớ khác nữa.

172
Nh vậy, giải mã thiếu thì tiết kiệm đợc linh kiện khi thực hiện bộ giải mã nhng
lại lm mất tính đơn trị của xung chọn thu đợc ở đầu ra.
Thông thờng khi thiết kế mạch giải mã ngời ta hay tính dôi ra một chút để
dự phòng, sao cho sau ny nếu có sự thay đổi do phải tăng thêm dung lợng của bộ
nhớ thì vẫn có thể sử dụng đợc mạch giải mã đã thiết kế.

Thực hiện mạch giải mã bằng các mạch NAND


Bằng các mạch kiểu mạch cửa NAND ta có thể xây dựng đợc mạch giải mã
địa chỉ đơn giản với số đầu ra hạn chế. Ta phải đa đến đầu vo của mạch cửa nhiều
lối vo một tổ hợp thích hợp của các bit địa chỉ để nhận đợc ở đầu ra của nó tín hiệu
chọn vỏ cho mạch nhớ.
Hình 5.17 giới thiệu một mạch giải mã nh vậy.




Bus A của
8088 Bus D của
8088
A11
A
0
-A
10
D
0
-D
7



2716-1
CE OE


A12
: :

2716-1 l Eprom 2KB
A19
RD
IO/M


A
19
A
18
A
17
A
16
A
15
A
14
A
13
A
12
A
11
A
10
A
9
A
8

A
7
A
6
A
5
A
4
A
3
A
2
A
1
A
0
1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 = FF800H
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 = FFFFFH


Phần địa chỉ không đổi Phần địa chỉ thay đổi


Hình 5.17. Mạch giải mã đơn giản dùng mạch NAND.

Trong mạch giải mã đơn giản cho EPROM ny, xung chọn vỏ sẽ có tác động
khi ta đọc bộ nhớ tại địa chỉ nằm trong khoảng FF800H-FFFFFH, tức l vùng địa chỉ
có chứa địa chỉ khởi động của CPU 8088. 9 bit địa chỉ phần cao của bus địa chỉ (A11-

173

M
A19) ở mức 1 sẽ phối hợp cùng xung IO/ (đã đợc đảo) để tạo ra xung chọn vùng
nhớ 2 KB đặt tại địa chỉ cao nhất trong không gian địa chỉ của 8088. Mỗi ô nhớ cụ thể
trong 2 KB của mạch nhớ EPROM 2716-1 sẽ do các bit thấp còn lại của bus địa chỉ
(A0-A10) chọn ra. Để kiểm chứng nhanh điều ny ta cần nhớ rằng với bit địa chỉ A10
ta chọn ra đợc các mảng nhớ 1 KB, v với bit A11 ta chọn ra đợc các mảng nhớ 2
KB, các mảng nhớ ny nằm rải rác trong không gian địa chỉ của bộ nhớ.

Thực hiện bộ giải mã dùng mạch giải mã kiểu 74LS138

Khi ta muốn có nhiều đầu ra chọn vỏ từ bộ giải mã m vẫn dùng các mạch
lôgic đơn giản thì thiết kế sẽ trở nên rất cồng kềnh do số lợng các mạch cửa tăng lên.
Trong trờng hợp nh vậy ta thờng sử dụng các mạch giải mã có sẵn. Một trong các
mạch giải mã hay đợc sử dụng l 74LS138, mạch giải mã 3-8 (hình 5.18).




Bus A

Bus D

RD

A
13
f0000-f1fff
A
14
A

15
Các chân chọn vỏ
A
16
cho 7 mạch 2764-15
A
17
khác
A
18
IO/M
A
19
fe000-fffff




Hình 5.19. Sơ đồ bộ giải mã dùng 74LS138.


Ví dụ
Giả thiết ta cần dnh riêng vùng nhớ 64 KB có địa chỉ F0000H-FFFFFH, cho
các mạch nhớ EPROM 8 KB (dùng 8x2764-15,
t
ac
= 150 ns). Hãy dùng mạch giải mã
kiểu 74LS138 để thực hiện.

A y

0
B y
1
C y
2
LS138 y
3
y
4
G2A y
5
G2B y
6
G1 y
7
A
0
-A
12

2764-15
0
-D
7
OE

CE
D



174

×