Chương 1 Hệ vi xử lý
1.1. Vi xử lý là gì?
1.2. Các thế hệ của bộ vi xử lý
1.2.1. Thế hệ 1 (1971 đến 1973)
1.2.2. Thế hệ 2 (1974 đến 1977)
1.2.3. Thế hệ 3 (1978 đến 1982)
1.3. Thế hệ 4 (1983 đến nay)
1.4. Giới thiệu cấu trúc của hệ vi xử lý
1.3.1. CPU - Bộ xử lý trung tâm
1.3.2. Bộ nhớ bán dẫn (ROM, RAM)
1.3.3. Hệ thống vào ra (I/O)
1.3.4. Liên hệ giữa các khối
Chương 2 Bộ vi xử lý 8088 của Intel
2.1. Giới thiệu hoạt động của bộ vi xử lý 8088
2.1.1. Giới thiệu chung
2.1.2. Cấu trúc và hoạt động của bộ VXL 8088
2.2. Chế độ địa chỉ của 8088
2.2.1. Chế độ địa chỉ thanh ghi
2.2.2. Chế độ địa chỉ tức thì
2.2.3. Chế độ địa chỉ tực tiếp
2.2.4. Chế độ địa chỉ gián tiếp qua thanh ghi
2.2.5. Chế độ địa chỉ tương đối cơ sở
2.2.6. Chế độ địa chỉ tương đối chỉ số
2.2.7. Chế độ địa chỉ tương đối chỉ số cơ sở
2.3. Mô tả tập lệnh của 8088
2.3.1. Nhóm lệnh chuyển dữ liệu
2.3.2. Nhóm lệnh số học
2.3.3. Nhóm lệnh logic, dịch và quay
2.3.4. Nhóm lệnh so sánh
2.3.5. Nhóm lệnh rẽ nhánh (nhảy), lặp
2.3.6. Nhóm các lệnh đặc biệt
Chương 3 Lập trình bằng hợp ngữ cho 8088 trên máy tính IBM PC và
các máy tương thích IBM PC
3.1. Giới thiệu chung
3.2. Giới thiệu khung chương trình
3.2.1. Cấu trúc của một lệnh hợp ngữ
3.2.2. Dữ liệu cho chương trình hợp ngữ
3.2.3. Biến và hằng
3.2.4. Khung của một chương trình hợp ngữ
3.3. Cách tạo và cho chạy một chương trình hợp ngữ
3.4. Các cấu trúc lập trình cơ bản trong assembly
3.4.1. Cấu trúc tuần tự
3.4.2. Cấu trúc lựa chọn
3.4.3. Cấu trúc lặp
3.5. Truyền tham số
3.6. Một số ngắt của DOS và của BIOS
Chương 4 Ghép 8088 với bộ nhớ và tổ chức vào ra dữ liệu
4.1. Giới thiệu tín hiệu chân của 8088 và các mạch phụ trợ
4.1.1. Bảy nhóm tín hiệu
4.1.2. Phân kênh để tách thông tin và đệm bus
4.1.3. Mạch tạo xung nhịp 8284
4.1.4. Mạch điều khiển bus 8288
4.1.5. Biều đồ thời gian của các lệnh đọc/ghi
4.2. Phối ghép 8088 với bộ nhớ
4.2.1. Bộ nhớ bán dẫn
4.2.2. Giải mã địa chỉ cho bộ nhớ
4.2.3. Phối ghép 8088 với bộ nhớ
4.3. Phối ghép 8088 với thiết bị ngoại vi
4.3.1. Các kiểu phối ghép vào ra
4.3.2. Giải mã địa chỉ cho thiết vị vào/ra
4.3.3. Các mạch cổng đơn giản
4.3.4. Mạch phối ghép vào/ra song song lập trình được PPI 8255
Chương 5 Vào ra dữ liệu bằng cách thăm dò
5.1. Giới thiệu chung về các phương pháp điều khiển vào/ra dữ liệu
5.2. Vào/ra dữ liệu bằng cách thăm dò trạng thái sẵn sàng của thiết bị ngoại
vi
Chương 6 Ngắt và xử lý ngắt trong hệ vi xử lý 8088
6.1. Sự cần thiết phải ngắt CPU
6.2. Ngắt trong vi xử lý 8088
6.2.1. Các loại ngắt trong hệ 8088
6.2.2. Đáp ứng của CPU khi có yêu cầu ngắt
6.2.3. Xử lý ưu tiên ngắt
6.2.4. Mạch điều khiển ngắt ưu tiên PPI 8259A
Chương 7 Vào ra dữ liệu bằng DMA
7.1. Nguyên tắc của việc trao đổi dữ liệu với thiết bị ngoại vi bằng cách
thâm nhập trực tiếp vào bộ nhớ (DMA)
7.2. DMAC 8237-5 trong hệ vi xử lý 8088
7.2.1. Tín hiệu HOLD và HLDA trong CPU 8088
7.2.2. Mạch DMAC 8237-5 của Intel
 
                
              
                                            
                                
            
 
            
                 112 trang
112 trang | 
Chia sẻ: trungkhoi17 | Lượt xem: 700 | Lượt tải: 0 
              
            Bạn đang xem trước 20 trang tài liệu Giáo trình môn học Kỹ thuật vi xử lý, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
1 
X2 
ASYN
C 
EFI 
FC 
OSC 
RES 
RESET 
CSYN 
PCLK 
AEN1 
RDY1 
READ
Y 
RDY2 
AEN2 
CLK 
GND 
Hình vẽ:Mạch 8284 
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP 
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 51 
cấp xung clock cho 8088, nó còn cung cấp xung nhịp có tần số thích hợp cho toàn hệ và nó 
còn đồng bộ tín hiệu RESET và tín hiệu READY của CPU. 
 Các tín hiệu 
 AEN1, AEN2 (Address ENable) [I]: Tín hiệu cho phép chọn đầu vào tương ứng 
RDY1, RDY2 làm tín hiệu báo trạng thái sẵn sàng của bộ nhớ hoặc thiết bị ngoại 
vi. 
 RDY1, RDy2 (Bus Ready): Các tín hiệu này cùng với AEN1, AEN2 dùng để tạo 
ra các chu kỳ đợi (Tw) ở CPU. 
Hình vẽ: Lược đồ máy IBM PC/XT 
IO/M 
RD 
WR 
A19/S6 
A18/S5 
A17/S4 
A16/S3 
A15 
A14 
A13 
A12 
A11 
A10 
A9 
A8 
CPU 8088 
ALE 
A/D7 
A/D6 
A/D5 
A/D4 
A/D3 
A/D2 
A/D1 
A/D0 
DT/R DEN 
„LS244 
G OC 
oc1 oc2 
„LS373 
„LS373 
G OC 
G 74LS373 OC 
7
4
L
S
2
4
4
Control 
Bus 
Address 
Bus 
Data 
Bus 
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP 
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 52 
 ASYNC (Ready Synchronisation Setect) [I]: 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 tới các tín hiệu READY tới tận sườn âm 
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 (sườn âm) 
của xung đồng hồ tiếp theo. 
 READY [O]: Nối đến đầu vào READY của 8088. Tín hiệu này được đồng bộ với 
các tín hiệu RDY1, RDY2. 
 X1, X2 (Crystal) [I]: Nối với 2 chân của thạch anh với tần số fx. Thạch anh này là 
một bộ phận của mạch dao động bên trong 8284 có nhiệm vụ tạo xung chuẩn làm 
tín hiệu đồng bộ cho toàn bộ hệ thống. 
 F/C (Frequency/Crystal) [I]: Dùng để chọn nguồn tín hiệu chuẩn cho 8284. Khi 
chân này ở mức cao thì xung đồng hồ bên ngoài sẽ được dùng làm xung nhịp cho 
8284, ngược lai thì xung đồng hồ của mạch dao động bên trong sẽ được chọn làm 
xung nhịp. 
 EFI (External Frequency Input) [I]: Lối vào cho xung từ bộ dao động ngoài. 
 CLK [O]: Xung nhịp, fclk = fx/3, với độ rỗng 77% nối đến chân CLK của 8088. 
 PCLK (Peripheral Clock) [O]: Xung nhip fpclk = fx/6, với độ rỗng 50% dành cho 
thiét bị ngoại vi. 
 OSC (OSC Input) [O]: Xung nhịp có tần số fx đã được khuếch đại. 
 RES (Reset Input) [I]: 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 (Reset Output) [O]: Nối vào Reset của 8088, là tín hiệu khởi động lại 
(Reset) cho toàn hệ thống. 
 CSYNC (Clock Synchronisation) [O]: Lối vào cho xung đồng bộ chung khi trong 
hệ thống có các 8284 dùng dao động ngoài tai chân EFI. Khi dùng mạch dao động 
trong thì phải nối đất chân này. 
4.1.4. M
ạch điều khiển bus 8288 
Vi mạch 8288 là mạch điều khiển bus, nó nhận 
một số tín hiệu điều khiển từ CPU (8088) và cung 
X1 CLK 
 X2 
8284 
RES RESET 
F/C CSYNC 
+5v 
K 
10K 
10ỡ 
CLK 
8088 
 RESET 
F/C CSYNC 
Reset hệ thống 
Hình vẽ: 8284 nối với 8088 
Vcc 
S0 
S2 
MCE/PDEN 
DEN 
CEN 
INTA 
IORC 
AIOWC 
IOWC 
1 20 
2 19 
3 18 
4 17 
5 16 
6 15 
7 14 
8 13 
9 12 
10 11 
IOB 
CLK 
S1 
DT/R 
ALE 
AEN 
MRDC 
AMWC 
MWTC 
GND 
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP 
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 53 
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 làm việc ở chế độ 
MAX. 
Trong đó có một số tín hiệu mang tên: 
AEN: Address ENable 
CEN: Command ENable 
IOB: Input/Output Bus mode 
MRDC: Memory ReaD Command 
MWTC: Memory WriTe Command 
AMWC: Advanced MWTC 
IORC: Input/Output Read Command 
AIOWC: Advanced IOWC 
DT/R: Data transmit/Receive 
DEN: Data Enable. 
MCE/PDEN: Master Cascade Enable/Peripheral Data Enable 
 Các tín hiệu của 8288 gồm: 
 S2, S1, S0 [I] (Status): Là tín hiệu trạng thái lấy trực tiếp từ CPU. Tuỳ theo các 
tín hiệu này mà 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 sự hoạt động của các thiết bị nối với CPU (Bảng tín hiệu 
trạng thái Si của 8088 ở chế độ MAX, bao gồm cả vào và ra của các tín hiệu). 
 CLK [I] (Clock): Nối với xung đồng hồ của hệ thống (từ 8284) và dùng để đồng 
bộ các xung điều khiển đi ra từ mạch 8284. 
 ANE [I] (Address Enable): Đây là tín hiệu vào, sau khoảng thời gian trễ cỡ 150 
ms thì sẽ kích hoạt các tín hiệu điều khiển đầu ra của 8288. 
 CEN [I] (Command Enable): Tín hiệu vào để cho phép đea ra tín hiệu DEN và 
các tín hiệu điều khiển khác của 8288. 
 IOB [I] (Input/Output bus mode): Tín hiệu để điều khiển mạch 8284 làm việc ở 
các chế độ bus khác nhau. 
o Khi IOB = 1 thì 8288 làm việc ở chế độ bus vào/ra. 
o Khi IOB = 0 thì 8288 làm việc ở chế độ bus hệ thống. 
(Như trong các máy IBM PC) 
 MRDC [O] (Memory Read Command): Là tín hiệu điều khiển đoc bộ nhớ, nó sẽ 
kích hoạt bộ nhớ đưa dữ liệu ra bus. 
 MWTC, AMWC [O] (Memory Write Command – Advanced MWTC): Là các tín 
hiệu ghi bộ nhớ hoặc ghi bộ nhớ kéo dài. Chúng giống như MEMW, nhưng 
AMWC 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ó 
thêm thời gian. 
 IORC [O] (I/O Read Command): Là các 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ị ngoại vi được chọn để các thiết bị này đưa dữ liệu ra 
bus. 
 IOWC, AIOWC [O] (I/O Write Command, Advanced IOWC): Là các tín hiệu 
điều khiển ghi thiết bị ngoại vi hoặc ghi thiết bi ngoại vi kéo dài. Chúng là các tín 
hiệu giống như IOW, nhưng AIOWC 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 dài thêm thời gian ghi. 
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP 
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 54 
 INTA [O] (Interrupt Acknowledge): Là đầu ra để thông báo cho thiết bị ngoại vi 
biết là CPU đã chấp nhận yêu cầu ngắt (yêu cầu của thiết bị ngoại vi). Và khi này 
thiết bị ngoại vi phải đưa số hiệu ngắt ra bus dữ liệu để CPU đọc lấy. 
 DT/R [O] (Data Transmit/Receive): Là tín hiệu để điều khiển chiều của dữ liệu 
trong hệ thống là vào hay ra so với CPU. 
o DT/R = 1: CPU đọc dữ liệu. 
o DT/R = 0: CPU ghi dữ liệu. 
Trong các máy IBM PC thì tín hiệu này được nối đến chân DIR của mạch đệm 2 
chiều 74LS245 để điều khiển hướng đi của dữ liệu. 
 DEN [O] (Data Enable): Là tín hiệu để điều khiển dữ liệu trở thành bus cục bộ 
hay bus hệ thống. Trong các máy IBM PC thì tín hiệu này đượ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] (Master Cascade Enable/Peripheral Data ENable): Đây là tín 
hiệu dùng để đặt chế độ làm việc cho mạch điều khiển ngắt PIC 8259 để nó làm 
việc ở chế độ chủ (Master). 
 ALE [O] (Address Latch Enable): Là tín hiệu báo cho phép chốt địa chỉ có tại các 
chân dồn kênh A/D (A/D0 – A/D7), tín hiệu này thường nối với chân G của mạch 
chốt 74LS373 để điều khiển mạch mày chốt lấy địa chỉ. 
4.1.5. Biều đồ thời gian của các lệnh đọc/ghi 
Chu kỳ bus là một chu kỳ vận chuyển dữ liệu hoàn thành, điều này còn phụ thuộc vào số 
lượng các tín hiệu điều khiển (của CPU điều khiển hay DMAC, ...). Một chu kỳ bus thường 
tốn khoảng 4 chu kỳ xung clock. Cụ thể những hiện tượng xảy ra trong một chu kỳ bus (đã 
được đơn giản hoá) như sau: 
 T1: Trong chu kỳ này tín hiệu địa chỉ của bộ nhớ hay thiết bị ngoại vi được đưa ra 
các chân địa chỉ, các chân dồn kênh A/D, A/S. Các tín hiệu điều khiển như ALE, 
DT/R, IO/M cũng được đưa ra để giúp cho việc chốt địa chỉ này (20 bit địa chỉ). 
 T2: Trong chu kỳ này, CPU 8088 đưa ra các tín hiệu điều khiển RD, hoặc WR, 
DEN (Data Enable) và các tín hiệu dữ liệu: D7 – D0 (nếu là lệnh ghi). Tín hiệu 
DEN thường dùng để mở các bộ đệm của bus dữ liệu (nếu các mạch đệm này có 
mặt trong hệ thống). Tại cuối chu kỳ T2 (và giữa mỗi chu kỳ Ti cả Tw nếu có), 
CPU lây mẫu tín hiệu READY để xử lý trong các chu kỳ tiếp theo khi nó phải 
làm việc với bộ nhớ hoặc thiết bị ngoại vi hoạt động chậm. 
 T3: Trong chu kỳ T3, CPU dành thời gian 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ỳ T2 (hoặc giữa mỗi chu kỳ Ti của Tw) mà 
Cpu phát hiện ra tín hiệu READY = 0 (do bộ nhớ hoặc thiết bị ngoại vi đưa đên) 
thf CPU tự xen vào sau T3 một vai chu kỳ T để tạo chu kỳ đợik Tw (Tw (wait) = 
n*T) nhằm kéo dài 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 hoàn thành việc ghi/đọc dữ liệu. 
 T4: Trong chu kỳ này các tín hiệu điều khiển được đư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 điều khiển WR trong khi chuyển 
trạng thái từ 0 => 1 sẽ kích hoạt việc ghi dữ liệu vào bộ nhớ hay thiết bị ngoại vi. 
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP 
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 55 
Hình vẽ: Các tín hiệu của 8088 trong một chu kỳ ghi (đã được đơn giản hoá) 
Chu kỳ bus 
T3 T2 T1 T4 
Twr 
Address Status Signal 
Address ổn định 
Data ghi Address 
Tw (Chu kỳ đợi – Wait) 
T giữa w 
Low active 
Low active 
CLK 
ALE 
A/S 
A/D 
A 
WR 
DEN 
Hight active 
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP 
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 56 
Hình vẽ: Các tín hiệu của 8088 trong một chu kỳ đọc (đã được đơn giản hoá) 
Ví dụ: 
Xét với CPU 8088 làm việc ở tần số = 5MHz, mỗi Ti kéo dài 200 ns (nano giây). 
Theo hình vẽ chu kỳ đọc bộ nhớ: việc truy nhập bộ nhớ kéo dài trong khoảng từ T1 đến 
T3 mất khoảng 600 ns. 
Ttrễ địa chỉ = 110 ns, Tgiữ R = 30 ns (thời gian giữ của dữ liệu khi đọc) 
Ttrễ đệm = 40 ns (trễ khi truyền dữ liệu qua các mạch đệm) 
==> thời gian thâm nhập = 3*T - Ttrễ địa chỉ - Tgiữ R - Ttrễ đệm = 420 ns 
==> Bộ nhớ nối với 8088/5MHz cần có thời gian thâm nhập ≤ 420 ns thì hiệu quả (8088 
không phải xen thêm các chu kỳ đợi). 
Hơn nữa, với CPU 8088 thì TRD (độ rộng xung đọc) = 325 ns, là khoảng thời gian đủ 
dài để cho bộ nhớ với thời gian thâm nhập 420 ns. 
Trong hình vẽ chu kỳ ghi dữ liệu: Cần có thời gian giữ dữ liệu tối thiểu Tgiữ W = 88 ns 
sau khi WR chuyển từ 0 --> 1. Thực tế thời gian này xấp xỉ bằng 0 đối với các bộ nhớ thông 
dụng. Độ dài xung ghi đối với 8088/5 MHz là TWR = 340 ns cũng phù hợp với các bộ nhớ 
có thời gian thâm nhập cỡ 420 ns. 
T1 T2 T3 T4 
Chu kỳ bus 
Trd 
Address Status Signal 
Address ổn định 
Tw 
Low active 
Low active 
CLK 
ALE 
A/S 
A/D 
A 
RD 
DEN 
Hight active 
T trễ địa chỉ 
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP 
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 57 
Hình vẽ: Mạch tạo 0 .. 7 trạng thái đợi và biểu đồ thời gian 
4.2. Phối ghép 8088 với bộ nhớ 
4.2.1. Bộ nhớ bán dẫn 
Các vi mạch nhớ thường dùng với các hệ vi xử lý gồm: 
 ROM (Read Only Memory – Bộ nhớ cố định): Bộ nhớ loại này thường có nội 
dung được ghi săn từ khi sản xuất và chỉ có thể đọc ra nên chúng được gọi là bộ 
nhớ cố định. Loại này còn được gọi là ROM mặt nạ vì thông tin trong ROM được 
ghi thông qua một mặt nạ. Khi mất nguồn nuôi cung cấp cho vi mạch thì thông tin 
vẫn còn (nội dung trong RM không bị mất đi). 
o PROM (Programmable ROM): Loại này ra ROM trắng (chưa ghi thôngo tin) 
sau khi sản xuất. Người sử dụng có thể ghi thông tin vào ROM theo ý mình 
một lần duy nhất bằng máy nạp ROM (máy ghi ROM chuyên dụng). 
o EPROM (Erasable ROM): Loại ROM này có thể ghi (“lập trình”) bằng xung 
điện và xoá bằng tia cực tím (UV – Untra Violete), từ một máy nạp ROM. 
RDY1 
AEN1 
RDY2 
CLK 
READY 
 QA QB QC QD DE QF QG GH 
CLK 
 CLR SI 
1T 3T 4T 5T 6T 7T 8T 
READY 
CLK 
8088 
RD 
WR 
INTA 
READY 
CS của mạch nhớ 
T1 T2 T3 TW T5 
CLK 
QA 
QB 
QC 
QD 
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP 
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 58 
o EEPROM (Electric EPROM): Giống như EPROM, nhưng việc ghi/xoá ROM 
có thể thực hiện ngay trong mạch làm việc mà không đòi hỏi phải thông qua 
máy nạp ROM. 
 RAM (Random Access Memory – Bộ nhớ ghi/đọc): Đặc trưng của loại bộ nhớ 
này là thông tin sẽ bị mất đi khi mất nguồn nuôi cấp cho vi mạch. 
o SRAM (Static RAM – RAM tĩnh): Mỗi phần tử nhớ của loại này được cấu tạo 
từ mạch lật (flip – flop) nên có đặc điểm là tác động nhanh, thông tin ổn định. 
Kèm theo đó là tốn nhiều transistor cho một đơn vị nhớ nên đắt tiền. Chúng 
thường được dùng vào những thành phần nhớ quan trọng như thanh ghi, 
cache, ... 
o DRAM (Dynamic RAM): Mỗi phần tử nhớ của loại này được cấu tạo từ một 
tụ điện nhỏ, được chế tạo bằng công nghệ PMOS. Loại này có đặc điểm là tác 
động chậm, thông tin không ổn định vì có sự dò điện tích giữa 2 bản tụ (1: tụ 
được tích điện, 0: tụ không được tích điện) nên cần các mạch phụ trợ để bù lại 
lượng điện tích bị dò – gọi là các mạch làm tươi. Loại này rẻ hơn SRAM và có 
thể sản xuất vi mạch nhớ với dụng lượng lớn. 
Một bộ nhớ (hay một modul nhớ nói chung) được cấu tạo (tạo nên) từ nhiều vi mạch nhớ 
ghép lại. Mỗi vi mạch nhớ thường 
có cấu tạo như sau: 
Am-1 – A0: m bit địa chỉ 
Dn-1 – D0: n bit dữ liệu 
Dung lượng tính theo bit: 2m*n 
(bits). 
Nếu n = 8 thì dung lượng là: 2m 
(bytes) 
WR [I] (WRite): Tín hiệu điều 
khiển ghi, với ROM thường là 
WE: Write Enale 
RD [I] (ReaD): Tín hiệu điều 
khiển đọc, với ROM thường là OE: Output Enale 
CS [I] (Chip Select): Tín hiệu chọn chip, với ROM thường là CE: Chip Enale 
 Nhóm tín hiệu địa chỉ (Am-1 – A0): Dùng để chọn ra ô nhớ cụ thể được ghi/đọc. 
Các ô nhớ có độ dài khác nhau tuỳ từng loại vi mạch nhớ, từng nhà sản xuất: 1, 4, 
8, ... bit. Số lượng các đường dây địa chỉ xác định dung lượng của vi mạch nhớ. 
Dung lượng = 2m (ô nhớ). 
Nếu m = 10 thì dung lượng là: 210 = 1 Kilo ô nhớ (kilo = 1024) 
Nếu m = 20 thì dung lượng là: 220 = 1 Mega ô nhớ (kilo = 1024*1024 = 1048576) 
 Nhóm tín hiệu dữ liệu (Dn-1 – D0): Các đường tín hiệu này là đầu ra đối với vi 
mạch ROM và là vào/ra đối với vi mạch RAM, cũng có thể đặt riêng nhóm đường 
vào và ra của các tín hiệu này, khi nối vào bus dữ liệu: là nối chung vì các mạch 
nhớ thường có đầu ra đữ liệu 3 trạng thái. Số đường dữ liệu (n) xác định độ dài 
của ô nhớ (ngăn nhớ – từ nhớ). Thường ghi rõ 1Kx8 hoặc 16Kx4 hoặc 1Kx1. 
A0 D0 
A1 D1 
Am-1 Dn-1 
WE 
OE 
CS 
WR
RD 
RD 
RD 
CS 
Address Data 
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP 
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 59 
 Tín hiệu chọn vi mạch: Người ta thường dùng ký hiệu CS (Chip Select) cho các 
vi mạch RAM và CE (Chip Enable) cho các vi mạch ROM. Tín hiệu này dùng để 
chọn ra (cho phép) vi mạch nhớ nào trong bộ nhớ làm việc thì mới tiến hành 
ghi/đọc ô nhớ của vi mạch đó. Tín hiệu này thường được nối với đầu ra của mạch 
giải mã địa chỉ. Khi một số vi mạch nhớ có tín hiệu này ở trạng thái không tích 
cực thì bus dữ liệu của nó (Am-1 – A0) bị treo (trạng thái trở kháng cao). 
 Nhóm tín hiệu điều khiển: Các tín hiệu điều khiển đọc RD và WR (OE và WE đối 
với ROM) luôn ngược pha nhau để cho phép dữ liệu từ bus dữ liệu được đi vào bi 
mạch hoặc ngược lại từ vi mạch nhớ ra bus dữ liệu. Cũng có những RAM chỉ có 1 
đường tín hiệu điều khiển cho cả ghi và đọc: R/W. Khi này: R/W=1: đọc, R/W=1: 
ghi. 
Một đặc trưng quan trọng của vi mạch nhớ là thời gian thâm nhập tac (taccess). Có thể 
định nghĩa rằng thời gian thâm nhập của một vi mạch nhớ là khoảng thời gian kể từ khi có 
(xung) địa chỉ trên bus địa chỉ cho đến khi dữ liệu ra ổn định trên bus dữ liệu. Thông số này 
phụ thuộc vào công nghệ chế tạo vi mạch nhớ. 
Với công nghệ lưỡng cực, có thể sản xuất các vi mạch nhớ có tac = 10 – 30 ns. 
Với công nghệ MOS, có thể sản xuất các vi mạch nhớ có tac lớn hơn, cỡ 150 ns hoặc 
hơn nữa. 
 Bộ nhớ EPROM 
Các vi mạch EPROM thông dụng tồn tại dưới nhiều kiểu khác nhau. Hệ 27xxx có một số 
loại sau: 
2708 (1Kx8); 27256 (32Kx8); 
2732 (2Kx8); 27512 (64Kx8); 
2764 (8Kx8); 27128 (16Kx8); 
Với tac = 250 – 450 ns tùy từng loại cụ thể. 
Ví dụ: Xét vi mạch nhớ EPROM 2716 có tac = 450 ns. Vậy để ghép với bộ vi xử lý 8088 
– 5 MHz cần có thêm các chu kỳ đợi (Tw). Ngược lại mạch 2716-1 lại có tac = 250 ns nên 
không cần có thêm các chu kỳ đợi. 
Chú ý: Trong chế độ duy trì công suất tiêu thụ của mạch giảm được tới 75% so với công 
suất tiêu thụ khi nó ở chế độ tích cực. 
Bộ nhớ EPROM 2716 (2Kx8) 
x: Don‟t care 
Chân 
(pins) 
Chế độ 
(Mode) 
CE/PGM OE 
Vpp 
[V] 
Vcc 
[V] 
D7–D0 
Đọc 0 0 +5 +5 Dout 
Duy trì 1 x +5 +5 HZ 
Ghi 
Xung ghi 
kéo dài 
50 ns 
1 +25 +5 Din 
Kiểm 
tra ghi 
0 0 +25 +5 Dout 
Cấm 
ghi 
0 1 +25 +5 HZ 
WR
RD 
RD 
RD 
CS 
A11-A0 D7-D0 
OE 
CE 
PGM (Vpp) 
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP 
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 60 
HZ: Trạng thái trở kháng cao. 
A10-A0: 11 bit địa chỉ. 
D7-D0: 8 bit dữ liệu. 
OE (Output Enable): Cho phép đưa dữ liệu ra. 
CE/PGM: Chọn chip/điều khiển ghi. 
Vpp: Điện áp ghi. 
 Bộ nhớ SRAM (RAM tĩnh) 
Bộ nhớ được cấu tạo từ các phần tử nhớ là các mạch lật (flip – flop) nên nó sẽ lưu giữ 
thông tin một cách ổn định chừng nào nó còn được cấp điện (nguồn nuôi). Các bộ nhớ 
SRAM và các bộ nhớ EPROM có dung lượng bằng nhau thường có cách tổ chức (bố trí) các 
chân giống nhau để dễ dàng thay thế cho nhau trong quá trình phát triển hệ thống. 
Trong thực tế đã tồn tại các mạch nhớ SRAM với dung lượng: 
32Kx8 (62256 LP – 10), tac = 100ns, công nghệ CMOS. 
SRAM được chế tạo theo công nghệ lưỡng cực (8KB – 128 KB) có thời gian trao đổi dữ 
liệu (thâm nhập): tac = 15 ns. 
Ví dụ: Xét vi mạch nhớ SRAM TMS 4014 
(2Kx8), tac = 250 ns. 
A10-A0 : 11 bit địa chỉ 
D7-D0 : 8 bit dữ liệu 
OE/WE : Cho phép đọc/cho phép ghi. 
CS : Chọn chip. 
 Bộ nhớ DRAM (RAM động) 
Bộ nhớ DRAM được cấu tạo từ các phần tử nhớ là các tụ điện. Nó lưu trữ thông tin bằng 
cách nạp tụ (1) hay không nạp (0) điên tích trên tụ. Vì có sự dò điện tích trên 2 bản cực tụ 
điện mà thông tin lưu trữ trong bộ nhớ loại này không ổn định. Vì vậy DRAM cần được làm 
tươi (refresh) bằng cách ghi hay đọc lại DRAM theo chu kỳ sau mỗi quãng thời gian khoảng 
15,6 s. Các mạch nhớ SRAM cần có thêm các mạch logic phụ để đảm bảo điều khiển việc 
làm tươi nên việc phối ghép nó với bộ vi xử lý là rất phức tạp. Nhưng DRAM 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 (vì mỗi 
phần tử nhớ cần rất ít transistor – 1). Và vì vậy các vi mạch nhớ này cũng cần rất nhiều chân 
địa chỉ. Để giảm bớt số chân địa chỉ trên vi mạch nhớ (để dễ chế tạo mạch in và lắp ráp) 
người ta thường chia địa chỉ thành 2 nhóm là địa chỉ hàng và địa chỉ cột và dồn kênh chúng 
trên các chân địa chỉ. Vì vậy các phần tử nhớ của bộ nhớ được tổ chức theo ma trận mà mỗi 
ô nhớ là một phần tử của ma trận nhớ. Việc dồn kênh địa chỉ trên các chân địa chỉ cần thêm 
các tín hiệu báo thời điểm nào là địa chỉ hàng và thời điểm nào là địa chỉ cột trên các chân 
địa chỉ, các tín hiệu đó là: 
RAS (Row Access) : Cho phép chốt địa chỉ hàng. 
CAS (Column Access): Cho phép chốt địa chỉ cột. 
WR
RD 
RD 
RD 
CS 
A10-A0 D7-D0 
TSM 
4014 
OE 
CE 
PGM (Vpp) 
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP 
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 61 
Các mạch nhớ DRAM thường được chế tạo với 
độ dài 1 hoặc 4 bit trên một ngăn nhớ. Thực tế đã có các mạch nhớ 1Mx1, 4Mx1, 16Mx1 và 
chúng được xây dựng thành các modul nhớ kiểu SIMM (Single Inline Memory Modul) hay 
SIP (Single Inline Package) dùng trong các máy 80268, 80386, ... 
4.2.2. Giải mã địa chỉ cho bộ nhớ 
Mỗi vi mạch nhớ hay một modul nhớ khi ghép với bộ vi xử lý cần phải được bộ vi xử lý 
tham chiếu tới một cách chính xác khi thực hiện các thao tác ghi/đọc. Có nghĩa là mỗi 
“modul” nhớ cần được gán cho một vùng không gian riêng biệt cụ thể (trong không gian 
quản lý chung của bọ vi xử lý), có địa chỉ xác định. Việc gán địa chỉ cụ thể cho modul nhớ 
được thực hiện nhờ một xung chọn chip từ mạch giải mã địa chỉ. Việc phân chia không gian 
tổng thể của bộ vi xử lý thành các vùng khác nhau dành cho các mục đích khác nhau gọi là 
phân vùng bộ nhớ. 
Ví dụ: 
Với 8088 vì có 20 bit địa chỉ (A19 – A0) nên không gian tổng thể dành cho bộ nhớ là 2
20
= 2
10
*2
10
 = 1 MB (1 byte/ngăn nhớ). Trong không gian tổng thể đó: 
1) Vùng không gian 1 KB đầu, kể từ địa chỉ thấp nhất: 00000h – là phải được 
dành cho RAM vì tại đây phải có chỗ dành cho bảng vector ngắt gồm 256 
(ngắt)*4 (byte)= 1KB). 
2) Vùng nhớ có địa chỉ FFFF0h thì nhất thiết phải được dành cho ROM hoặc 
EPROM – chứa chương trình khởi động hệ thống. Vì sau khi bật nguồn, CS sẽ 
mạng giá trị FFFF0h (là địa chỉ 
khởi động của CPU). 
Bộ giải mã địa chỉ để tạo ra xung chọn chip 
thường có cấu tạo như hình vẽ bên: 
Đầu vào bộ (mạch) giải mã là các tín hiệu địa 
chỉ và các tín hiệu điều khiển khác nữa (nếu cần 
thiết). 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 chip ở 
đầ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à bộ vi xử 
lý chọn làm việc là bộ nhớ hay thiết bị vào/ra (I/O device). Mạch giải mã là khâu gây ra việc 
trễ thời gian từ bộ vi xử lý đên thiết bvị ngoại vi mà trong khi chọn mạch nhớ/thiết bị ngoại 
vi ta cần tính đến. Tuỳ theo quy mô (yêu cầu) của mạch giải mã mà ở đầu ra ta có thể có 
nhiều tín hiệu chọn chip (CS). 
Giải mã đầy đủ cho một modul nhớ yêu cầu ta phải đưa đến đầu vào 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 trước. 
RAS 
CAS 
A7-A0 
Hình vẽ: DRAM TMS 4464 (64Kx8) 
WR
RD 
RD 
RD 
A7-A0 D7-D0 
TSM 
4464 
OE 
CE 
CAS RAS 
Address 
Decode 
Address 
Control 
CS0 
CS1 
CSn-1 
Hình vẽ: Sơ đồ khối giải mã địa chỉ cho 
modul nhớ 
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP 
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 62 
Trong trường hợp này ta phải dùng tổ hợp đầy đủ cả các đầu và địa chỉ tương ứng để chọn 
mạch nhớ. Nếu ta bỏ bớt đi một tín bit địa chỉ nào đó thì đó là việc giải mã thiếu cho modul 
nhớ, vì xung chọn chip ở đầu ra mạch giải mã ngoài việc chọn mạch nhớ ở vùng đã định sẽ 
có thể chọn ra các mạch nhớ ở vùng khác nữa. Vậy, việc giải mã thiếu thì có thể tiết kiệm 
được linh kiện khi xây dựng mạch giải mã nhưng lại không đảm bảo tính đơn trị theo ý 
nghĩa của việc giải mã. 
Trong thực tế, thông thường khi thiết kế mạch giải mã địa chỉ cho modul nhớ người ta 
thường tính dôi ra một chút để dự phòng sự phát triển tăng thêm dung lượng của bộ nhớ mà 
vẫn có thể tận dụng (sử dụng) được mạch giải mã sẵn có. 
 Xây dựng mạch giải mã bằng các mạch NAND (các mạch logic đơn giản) 
Bằng các gates logic kiểu NAND, ta có thể xây dựng được mạch giải mã địa chỉ đơn 
giản với số lượng tín hiệu chọn chip ở đầu ra là hạn chế. Ta phải đưa đến đầu vào của mạch 
cửa NAND nhiều lối vào 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 chip cho modul nhớ. 
Ví dụ: Cho modul nhớ SRAM có dung lượng 32 KB (32Kx8). Xây dựng mạch giải mã 
để ghép modul trên với 8088 tại địa chỉ 08000h. 
Chú ý: Một địa chỉ bắt đầu cho một modul nhớ cần đảm bảo sao cho có giá trị các bit 
địa chỉ đưa vào modul nhớ để chọn ra ô nhớ cần tham chiếu phải bằng 0, chúng sẽ “chạy” 
lần lượt tới 1 để chọn hết đủ tất cả các ô nhớ. 
Giải: 
Modul nhớ 32 KB cần có 15 bit địa 
chỉ để chọn các ô nhớ. 
Không gian địa chỉ của 8088 gồm 20 
bit địa chỉ: A19 – A0. 
Nên phải sử dụng các bit địa chỉ 
thấp: A14 – A0 để đưa vào modul nhớ, 
còn lại 5 bit địa chỉ phần cao và các tín 
hiệu điều khiển IO/M sẽ đi vào mạch 
giải mã. Vậy ta có sơ đồ như sau: 
Triển khai địa chỉ của modul nhớ ta 
có: 
0000 1000 0000 0000 0000=08000h 
0000 1000 0000 0000 0001=08001h 
0000 1111 1111 1111 1111=0FFFFh 
Phần cố định Phần thay đổi 
Các tín hiệu điều khiển vào mạch NAND nhiều đầu vào phải đồng thời bằng 1 thì đầu ra 
CS = 0. 
Vậy ta có sơ đồ như bên: 
SRAM 
32KB 
NAND 
A14 – A0 
D7 – D0 
WR 
RD 
A19 – A15 
IO/M 
CS 
NAND 
A15 
CS A16 
A17 
A18 
A19 
IO/M 
TRƯỜNG ĐẠI HỌC KỸ THUẬT CÔNG NGHIỆP 
Nguyễn văn Huy- Bài giảng Kỹ thuật vi xử lý 63 
Hoặc ta có thể sử dụng các mạch logic đơn 
giản khác để xây dựng mạch giải mã sau cho có 
nhiều đầu ra CS = 0 như sau: 
Kết luận: Để thực hiện mạch giải mã kiểu này, 
có nhiều cách sắp xếp các phần tử logic (gates) để 
đưa ra được tín hiệu CS = 0 ở đầu ra. Tuy nhiên 
người thiết kế cần phân tích hàm đầu vào và tín 
hiệu đầu ra và tối giản các phần tử để sao cho số 
lượng các gates logic sử dụng trong mạch giải 
mã là ít nhất (tối ưu mạch giải mã). Ví dụ, mạch 
giải mã trên có thể thay thế bằng mạch giải mã 
bên: 
Mạch này cũng thực hiện đúng yêu cầu như 
mạch giải mã trên, tuy nhiên tốn nhiều phần tử 
gates logic hơn nên chưa tốt. 
Giải thích: Trong mạch giải mã cho modul nhớ này, xung chọn chip (CS) sẽ có tác động 
(CS = 0 – tích cực thấp) khi ta truy xuất bộ nhớ (ghi/đọc) tại địa chỉ nằm trong phạm vi 
08000h – 0FFFFh, 5 bit địa chỉ phần cao (A19 – A15) phối hợp cùng tín hiệu điều khiển 
IO/M (= 0 
            Các file đính kèm theo tài liệu này:
 giao_trinh_mon_hoc_ky_thuat_vi_xu_ly.pdf giao_trinh_mon_hoc_ky_thuat_vi_xu_ly.pdf