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

Bài giảng lý thuyết vi xử lý kỹ thuật vi xử lý cd rom

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 (19.05 MB, 156 trang )

BÀI GIẢNG
VI XỬ LÝ/ KỸ THUẬT VI XỬ LÝ
BỘ MÔN ĐIỆN TỬ MÁY TÍNH_ KHOA CƠNG NGHỆ ĐIỆN TỬ


Bài giảng KỸ THUẬT VI XỬ LÝ

CHƯƠNG 1: TỔNG QUAN VỀ VI XỬ LÝ – VI ĐIỀU KHIỂN
-

Trình bày được cấu trúc và hoạt động các thành phần của hệ vi xử lý tập lệnh của VĐK

-

Trình bày được các dạng dữ liểu biểu diễn thông tin trong hệ vi xử lý

-

Nhận dạng được thành phần của các hệ thống

Nhắc lại về Hệ thống số đếm:
Hệ nhị phân, hệ thập phân và hệ thập lục phân:
+ Hệ nhị phân, cơ số là 2, dùng hai số 0 và 1 để biểu diễn.
7

6

5

4


3

2

1

0

Thí dụ: 0B01001010 = 0x2 +1x2 +0x2 +0x2 +1x2 +0x2 +1x2 +0x2 = 64+8+2 = 74
+ Hệ thập phân, cơ số là 10 dùng các số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 để biểu diễn.
2

1

0

Thí dụ: 125=1x10 +2x10 +5x10 = 100+20+5.
+ Hệ thập lục phân, cơ số là 16 dùng các số 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.
1

0

Thí dụ: 0x32 = 32H = 3x16 +2x16 = 48+2 = 50.
Bảng chuyển đổi giữa số nhị phân, thập phân và thập lục phân:
Hệ nhị phân (8 chữ số)
0B 00000000
0B 00000001
0B 00000010
0B 00000011
0B 00000100

0B 00000101
0B 00000110
0B 00000111
0B 00001000
0B 00001001
0B 00001010
0B 00001011
0B 00001100
0B 00001101
0B 00001110
0B 00001111

Hệ thập phân (2 chữ số)
00
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15


Hệ thập lục phân (2 chữ số)
00h; 0x00
01h; 0x01
02h; 0x02
03h; 0x03
04h; 0x04
05h; 0x05
06h; 0x06
07h; 0x07
08h; 0x08
09h; 0x09
0Ah; 0x0A
0Bh; 0x0B
0Ch; 0x0C
0Dh; 0x0D
0Eh; 0x0E
0Fh; 0x0F

I. TỔNG QUAN VỀ HỆ THỐNG VI XỬ LÝ
1. Q trình phát triển của máy vi tính (tham khảo thêm trên Internet)

1


Bài giảng KỸ THUẬT VI XỬ LÝ
- Máy vi tính bao gồm những máy tính dùng bộ vi xử lý (họ Intel, Motorola, AMD…) làm cốt lõi,
các vi điều khiển (microcontroller) hay máy vi tính trong một vi mạch (one-chip microcomputer).
2. Ứng dụng của vi xử lý (tham khảo thêm trên Internet)
3. Sơ đồ khối của hệ vi xử lý
3.1. Sơ đồ khối tiêu biểu của hệ vi xử lý: (hệ thống vi xử lý có kiến trúc 3-bus)

Address bus
Data bus
P

Control bus

(CPU)
RAM

ROM
Memory

I/O Interface

Input
Devices

Output
Devices

Peripheral Devices

Hình 1.1
P (Microprocessor): Vi xử lý
CPU (Central Processing Unit): Đơn vị xử lý trung tâm
Address bus: Bus địa chỉ
Data bus: Bus dữ liệu
Control bus: Bus điều khiển
RAM (Random Access Memory): Bộ nhớ truy xuất ngẫu nhiên
ROM (Read-Only Memory): Bộ nhớ chỉ đọc

I/O Interface: Khối giao tiếp nhập/xuất
Peripheral Devices: Thiết bị ngoại vi

3.2. Một hệ vi xử lý gồm có các thành phần chính sau:
- P (microprocessor hay còn gọi là CPU): đọc mã lệnh từ bộ nhớ (được ghi dưới dạng các bit 0
và 1), sau đó giải mã và thực thi lệnh.
- Bộ nhớ (Memory): chứa các chương trình điều khiển hoạt động của tồn hệ và các dữ liệu, kết
quả trung gian. Có hai loại bộ nhớ: RAM (Random Access Memory) là loại bộ nhớ truy xuất ngẫu
nhiên và ROM (Read-Only Memory) là loại bộ nhớ chỉ đọc.
- Khối giao tiếp nhập/xuất (Input/Output - I/O): tạo ra khả năng giao tiếp giữa hệ vi xử lý với các
thiết bị ngoại vi như bàn phím, chuột … (thiết bị nhập), màn hình, máy in, loa … (thiết bị xuất),
các ổ đĩa… (thiết bị xuất/nhập)

2


Bài giảng KỸ THUẬT VI XỬ LÝ
- Bus: ba khối chức năng trên liên hệ với nhau thông qua một tập các đường dây để truyền thông
tin gọi là bus. Trong hệ thống vi xử lý thường bao gồm 3 loại bus: bus địa chỉ, bus dữ liệu và bus
điều khiển.
3.3. Tổng kết lại các điểm quan trọng:
1.

Hệ vi xử lý có 3 khối chính:
o Bộ nhớ
o CPU
o Phối ghép (giao tiếp) vào/ra (I/O)

2.


CPU đọc thông tin từ bộ nhớ và ghi thông tin vào bộ nhớ

3.

Các thiết bị đầu vào đưa thơng tin từ bên ngồi vào hệ vi xử lý

4.

Các thiết bị đầu ra đưa thông tin từ CPU đến các đối tượng bên ngồi

5.

Thơng tin khơng chạy trực tiếp từ bộ nhớ đến các phối ghép vào/ra (I/O) và ngược lại,
trước tiên thông tin phải đi qua CPU

Có thể thấy rằng vi xử lý chỉ trao đổi thông tin với bộ nhớ và các phối ghép vào/ra I/O. Dù hệ
thống sau này phức tạp như thế nào hoặc chương trình có dài đến đâu thì vi xử lý chỉ làm những
việc sau:
1.

Đọc từ bộ nhớ

2.

Ghi vào bộ nhớ

3.

Đọc từ các đầu vào


4.

Ghi vào các đầu ra

5.

Thực hiện các lệnh nội bộ như lệnh cộng (ADD), lệnh trừ (SUB) …

II. CÁC LOẠI BUS
1. Bus địa chỉ
- Có chức năng chuyển tải các thông tin về địa chỉ.
- Khi đọc/ghi bộ nhớ hay thiết bị I/O, P sẽ đưa ra các bit địa chỉ trên bus địa chỉ để chọn chính xác
một ngăn nhớ (word) hay một thiết bị I/O cụ thể nào đó sẽ được giao tiếp với nó.
- Số lượng địa chỉ mà P có thể quản lý phụ thuộc vào số bit (số đường dây) của bus địa chỉ (16, 20,
24, 32 … bit).
Ví dụ: Một P có số đường dây của bus địa chỉ là N = 16
 có khả năng quản lý: 2N = 216 = 26.210 = 64.210 = 64 K = 65356 địa chỉ.
- Bus địa chỉ là loại bus một chiều (xuất phát từ P).
 Đệm bus địa chỉ
3


Bài giảng KỸ THUẬT VI XỬ LÝ
Do tất cả các thiết bị ngoại vi và bộ nhớ đều được nối với bus địa chỉ nên về mặt điện có thể vượt
quá tính chịu tải (fan-out) của vi xử lý. Trong trường hợp các mạch nối vào bus địa chỉ tiêu thụ dòng
điện lớn hơn khả năng chịu tải của vi xử lý thì hệ thống sẽ khơng hoạt động hay hoạt động không ổn
định. Để giải quyết vấn đề này ta sử dụng các bộ đệm trung gian được gọi là bộ đệm địa chỉ.
Ví dụ: Đệm địa chỉ cho CPU có bus địa chỉ 16-bit:

Hình 1.2

2. Bus dữ liệu
- Có chức năng chuyển tải các thơng tin về dữ liệu đến/từ P.
- Số lượng đường dây của bus này quyết định số bit dữ liệu mà P có khả năng xử lý cùng một lúc
(8, 16, 32, 64 … bit).
- Bus dữ liệu là loại bus hai chiều.
Tuy nhiên tại một thời điểm nhất định thì dữ liệu chỉ được truyền theo một hướng duy nhất.

Hình 1.3 Dữ liệu di chuyển 2 chiều truyền bus dữ liệu
Lưu ý: Hoạt động của bus địa chỉ và bus dữ liệu hoàn tồn độc lập với nhau (hình 1.4).

4


Bài giảng KỸ THUẬT VI XỬ LÝ

Hình 1.4
 Đệm bus dữ liệu
- Tương tự như bus địa chỉ, bus dữ liệu cũng cần được đệm để tăng fan-out khi cần thiết. Lưu ý là
cần dùng kỹ thuật đệm 2 chiều (hình 1.5) (IC 74LS245).

Hình 1.5
Kỹ thuật đệm 2 chiều sử dụng
thêm một tín hiệu điều khiển, tín
hiệu này sẽ quy định chiều dữ
liệu sẽ được đệm.
3. Bus điều khiển
- Gồm nhiều đường dây tín hiệu khác nhau ( WR , RD …), mỗi tín hiệu điều khiển có một chiều nhất
định. Khi hoạt động, P có thể đưa tín hiệu điều khiển đến các khối khác nhau trong hệ, đồng thời
nó cũng có thể nhận các tín hiệu từ các khối khác để phối hợp hoạt động của toàn hệ.
Lưu ý: Bus điều khiển ở khối I/O vẽ dạng 2 chiều để chỉ tính 2 chiều của cả nhóm tín hiệu, chứ khơng

phải của mỗi tín hiệu.
- Có 6 loại truyền thông tiêu biểu mà bus điều khiển phải xác đinh bằng tín hiệu điện:
(i)

Đọc từ bộ nhớ

(ii)

Ghi vo bộ nhớ

(iii)

Đọc từ phối ghép đầu vào (Input)

(iv)

Ghi vào phối ghép đầu ra (Output)
5


Bài giảng KỸ THUẬT VI XỬ LÝ
(v)

Nhận biết yêu cầu ngắt (Interrupt acknowledge)

(vi)

Nhận biết yêu cầu treo (Hold acknowledge, phục vụ DMA)

Giải thích về truyền thơng trong cấu trúc 3-bus dựa vào sơ đồ khối hình 1.1: đọc và ghi.

III. VI XỬ LÝ (P – MICROPROCESSOR)
+ Sơ đồ khối của một P được cho trên hình 1.6.
+ Có ba khối chức năng chính: khối thực thi (Execution Unit), khối điều khiển tuần tự (Sequencer)
và khối giao tiếp bus (Bus Interface).
Execution Unit

Sequencer
Instruction Register

Control
Unit

Instruction Decoder
Registers

ALU

Program Counter

(data, address)
Internal bus

Data bus

Control bus

Address bus

driver


driver

driver

Data bus

Control bus

Address bus

Bus
Interface

Hình 1.6
Execution Unit: Khối thực thi
Control Unit: Khối điều khiển
Registers: Các thanh ghi
ALU (Arithmetic & Logic Unit): Khối logic - số học
Sequencer: Bộ điều khiển tuần tự
Instruction Register: Thanh ghi lệnh
Instruction Decoder: Bộ giải mã lệnh
Program Counter: Bộ đếm chương trình
Internal bus: Bus nội
Bus interface: Giao tiếp bus
Data bus driver: Bộ điều khiển bus dữ liệu
Control bus driver: Bộ điều khiển bus điều khiển
Address bus driver: Bộ điều khiển bus địa chỉ

- Bộ điều khiển tuần tự (Sequencer): nhận lệnh từ bộ nhớ, sau đó giải mã lệnh và truyền lệnh đã
giải mã đến khối thực thi.


6


Bài giảng KỸ THUẬT VI XỬ LÝ
+ Bộ đếm chương trình (Proram Counter): là một thanh ghi lưu giữ địa chỉ của lệnh kế tiếp
sẽ được thực thi. Mỗi khi một lệnh được thực thi, bộ đếm chương trình sẽ được tăng lên 1 để chỉ ra
địa chỉ của lệnh kế tiếp sẽ được thực thi. Nội dung của bộ đếm chương trình được đặt lên bus địa
chỉ để tìm và nhận lệnh mong muốn. Như vậy, P thực hiện các lệnh của chương trình một cách tuần
tự, trừ khi gặp các lệnh chuyển điều khiển (lệnh nhảy, gọi chương trình con …) làm thay đổi nội dung
PC. Trong một số vi xử lý, bộ đếm chương trình cịn được gọi là con trỏ lệnh IP (Instruction Pointer).
+ Bộ giải mã lệnh (Instruction Decoder): thông dịch (diễn dịch) các lệnh được nhận vào P.
Có thể xem bộ giải mã lệnh như một từ điển lưu trữ nghĩa của mỗi lệnh và các bước mà P cần thực
hiện đối với mỗi lệnh được nhận vào. Giống như từ điển nếu có càng nhiều trang thì có thể định
nghĩa được nhiều từ hơn, một P có thể hiểu càng nhiều lệnh hơn nếu có bộ giải mã lệnh càng lớn.
+ Thanh ghi lệnh (Instructin Register): lưu giữ mã nhị phân của lệnh đang được thực thi.
- Khối thực thi (Execution Unit): thực thi và ghi kết quả câu lệnh. Các toán hạng (operand) liên quan
có mặt ở các thanh ghi (registers) hoặc có từ bus nội (internal bus).
+ ALU (Arithmetic Logic Unit): là một mạch điện tử có khả năng thực hiện các phép toán số
học (+, -, *, / …) và logic (AND, OR, NOT, XOR…).
+ Thanh ghi (Register): là một bộ nhớ cực nhanh, có dung lượng hạn chế nằm bên trong P.
Các thanh ghi thường được dùng để lưu trữ các thơng tin tạm thời. Mỗi thanh ghi có một địa chỉ để
truy xuất tới nó. Các thanh ghi được nối với nhau hoặc đến các phần tử khác của P hay nối với bus
ngoài nhờ bus nội. Độ rộng của các thanh ghi có thể là 8-bit, 16-bit, 32-bit hay 64-bit tùy thuộc vào
loại P. Thơng tin có thể là 2 giá trị cần được xử lý hay địa chỉ chứa giá trị cần được xử lý nhận từ
bộ nhớ (hay I/O). P có càng nhiều thanh ghi và độ rộng càng lớn thì càng tốt vì lúc này chương trình
khơng phải thực hiện nhiều phép truyền thơng tin giữa P và bộ nhớ do có thể truy xuất trực tiếp từ
thanh ghi, từ đó làm giảm thời gian truy xuất cũng như độ dài lệnh.
+ Khối điều khiển: tạo ra các tín hiệu điều khiển hoạt động của các bộ phận bên trong và bên
ngoài P (tùy theo mã lệnh).

- Giao tiếp bus (Bus Interface): gồm ba bộ điều khiển bus để giao tiếp với bus bên ngoài tương ứng:
bus dữ liệu, bus điều khiển và bus địa chỉ.
Việc tìm nạp lệnh từ bộ nhớ là một trong các thao tác cơ bản nhất mà P thực hiện, gồm các bước
như sau:
- Nội dung của PC được đặt lên bus địa chỉ.
- Tín hiệu điều khiển READ được xác lập (chuyển sang trạng thái tích cực).
7


Bài giảng KỸ THUẬT VI XỬ LÝ
- Mã lệnh được đọc từ bộ nhớ và đưa lên bus dữ liệu.
- Mã lệnh được chốt vào thanh ghi lệnh IR bên trong.
- PC được tăng lên để chuẩn bị tìm nạp lệnh kế từ bộ nhớ.
Hình 1.7 minh họa luồng thơng tin cho việc tìm nạp lệnh.

Hình 1.7
IV. BỘ NHỚ (MEMORY)
 Nhắc lại các đơn vị bit, nibble, byte, word
o 1 nibble = 4 bit
o 1 byte = 8 bit
o Word là một nhóm gồm nhiều byte. Theo qui ước 1 word = 2 byte và 1 word dài = 4
byte (theo thế hệ vi xử lý 16-bit, 32-bit …)
1. Phân loại
+ Bộ nhớ thường được chia làm hai loại: bộ nhớ cơ bản (hay bộ nhớ chính – main memory) và bộ
nhớ lưu trữ (storage memory).
- Bộ nhớ chính: ROM và RAM.
- Bộ nhớ lưu trữ: băng từ, đĩa mềm, đĩa cứng…
+ Thông thường bộ nhớ lưu trữ được xem như là thiết bị I/O.
a. Bộ nhớ chỉ đọc – ROM (Read-Only Memory)
- Là bộ nhớ chỉ đọc, không thể sửa đổi thông tin trong các hoạt động thông thường.

- Thông tin ghi trong ROM sẽ không bị mất đi khi mất nguồn cung cấp.
- ROM được ghi bằng thiết bị chuyên dụng.

8


Bài giảng KỸ THUẬT VI XỬ LÝ
- ROM thường được dùng để chứa các chương trình và dữ liệu cố định (chương trình khởi
động, dữ liệu tra bảng …)
- Các loại ROM:
o ROM: thông tin được ghi lúc chế tạo.
o PROM (Programable ROM): là ROM trắng, chỉ cho phép ghi thơng tin một lần duy nhất.
o EPROM (Erasable ROM): có thể ghi và xóa thơng tin nhiều lần. Loại này được xóa bằng
cách rọi tia cực tím vào cửa sổ thủy tinh trên bề mặt.
o EEPROM (Electrically EPROM): còn gọi là ROM điện, có thể ghi và xóa thơng tin bằng
xung điện.
o Flash ROM: tương tự EEPROM.
b. Bộ nhớ truy xuất ngẫu nhiên – RAM (Random Access Memory)
- Cho phép đọc/ghi thơng tin bất kỳ lúc nào trong q trình làm việc mà không cần thiết bị
đặc biệt.
- Thông tin trong RAM sẽ bị mất khi mất nguồn cung cấp.
- Có hai loại RAM chính:
o RAM động – DRAM (Dynamic RAM): có cấu tạo từ các transistor MOSFET và tụ điện (1
phần tử nhớ), lưu trữ thông tin bằng điện tích trong tụ nên thơng tin có thể mất đi (rị rĩ
hết) nếu khơng có biện pháp duy trì thích hợp. Do đó cần có q trình làm tươi (refresh)
định kì để phục hồi nội dung của các ơ nhớ trước khi nó mất đi (rị rĩ hết). DRAM có thể
tích hợp với dung lượng lớn.
o RAM tĩnh – SRAM (Static RAM): cấu tạo từ những Flipflop (FF) (1 phần tử nhớ), mỗi FF
lưu trữ một bit thông tin nên SRAM khơng cần q trình làm tươi để duy trì nội dung.
Tuy nhiên, nó khó tích hợp với dung lượng lớn.

2. Cấu trúc bên trong tiêu biểu của bộ nhớ
- Bộ nhớ gồm các phần tử nhớ hay ô nhớ (memory cell) được tổ chức dưới dạng ma trận.
Mỗi ô nhớ chứa một bit thông tin.
- Mảng nhớ được phân chia thành một chuỗi các ngăn nhớ hay từ nhớ (word).
- Mỗi ngăn nhớ đều có một địa chỉ duy nhất.
- Một ngăn nhớ có thể có 4-bit, 8-bit, 16-bit …
- Ký hiệu: số ngăn nhớ x độ rộng mỗi ngăn nhớ
Ví dụ: bộ nhớ 1024 x 8 bao gồm 210 ngăn nhớ, mỗi ngăn nhớ có 8-bit.

9


Bài giảng KỸ THUẬT VI XỬ LÝ
- Cấu trúc bên trong tiêu biểu của bộ nhớ:

- Các tín hiệu tiêu biểu trên một chip nhớ:
+ CS (Chip Select): tín hiệu chọn chip (cho phép chip).
+ OE(Output Enable): tín hiệu cho phép xuất dữ liệu (nhận xung kích RD từ P).
+ WE(Write Enable): tín hiệu cho phép ghi dữ liệu (nhận xung kích WR từ P).
+ Address: các tín hiệu địa chỉ (từ bus địa chỉ) để chọn ngăn nhớ cần thao tác.
+ Data: các tín hiệu dữ liệu đọc ra (data output) hay ghi vào (data input), được nối với bus
dữ liệu.
3. Truy xuất bộ nhớ
* Các quy ước trên giản đồ thời gian: Hình 1.9

10


Bài giảng KỸ THUẬT VI XỬ LÝ


11


Bài giảng KỸ THUẬT VI XỬ LÝ

a. Truy xuất ROM
Giới thiệu EPROM 2764:
Đây là IC nhớ 28 chân 8K (8192 x 8) với 13 đường địa chỉ và 8 đường dữ liệu. Chú ý rằng chân
/PGM không được điều khiển bởi vi xử lý, chỉ dùng cho bộ nạp dữ liệu vào ROM. Điện áp VPP chỉ sử
dụng khi nạp ROM, còn điện áp VCC = 5V là điện áp hoạt động của ROM.
A0 – A12

Đường địa chỉ

D0 – D7

Đường dữ liệu

/CE

Chọn chip

/OE

Cho phép xuất

/PGM

Lập trình


Quy trình đọc ROM:
1. Xác định địa chỉ của ngăn nhớ cần truy xuất. CPU sẽ đưa địa
chỉ này lên bus địa chỉ đến ROM.
2. Kích hoạt tín hiệu chọn chip cho phép dữ liệu được xuất ra bus
dữ liệu.
12


Bài giảng KỸ THUẬT VI XỬ LÝ
3. CPU đợi 1 khoảng thời gian ngắn gọi là thời gian truy cập để vi mạch nhớ giải mã địa chỉ
và xuất dữ liệu ra đường dữ liệu. CPU xuất xung nhịp nạp dữ liệu vào thanh ghi bên trong.
4. Tín hiệu chọn chip được đặt ở mức khơng tích cực và xóa dữ liệu từ ROM vào CPU.
Địa chỉ từ CPU đến ROM

1

CS

2

Bus dữ liệu
Dữ liệu khơng có giá trị

Dữ liệu khơng có giá trị

3
Dữ liệu của
ROM ở trên
bus dữ liệu


Hình 1.10
b. Truy xuất RAM
Giới thiệu RAM 6264
Đây là IC nhớ cho phép đọc ghi tùy ý, 28 chân 8K (8192 x 8) với 13 đường địa chỉ và 8 đường
dữ liệu.
Quy trình đọc RAM: tương tự như đọc dữ liệu từ ROM.
A0 – A12

Đường địa chỉ

D0 – D7

Đường dữ liệu

/CE

Chọn chip

/OE

Cho phép xuất

/WE

Cho phép ghi

13


Bài giảng KỸ THUẬT VI XỬ LÝ

Hình 1.11

Hình 1.12
Quy trình ghi RAM:
(i)

Các đường địa chỉ được kết nối với RAM xác định ngăn nhớ nào trong RAM sẽ được kết nối.

(ii)

Dữ liệu cần ghi vào RAM được xuất đến các đường dữ liệu vào của RAM.

(iii)

Hệ thống phải đợi một khoảng thời gian nhỏ. Trong khoảng thời gian này RAM sẽ giải mã địa
chỉ và chọn ngăn nhớ mang địa chỉ nhận được. Khoảng thời gian này gọi là thời gian ghi vào
RAM.

(iv)

Đường dẫn R/W sẽ được đặt ở mức logic tương ứng với thao tác ghi vào RAM. Tín hiệu này
cho phép dữ liệu được ghi vào RAM

(v)

Chú ý rằng ở đây ta nói về các đường dẫn dữ liệu ra từ RAM và các đường dẫn dữ liệu vào
RAM. Trong thực tế vì rằng trong một khoảng khắc nhất định thì ta chỉ thực hiện một thao tác
l đọc hoặc ghi, nên cả hai loại đường dẫn trên được thực hiện bằng một đường dẫn hai chiều
chung.


14


Bài giảng KỸ THUẬT VI XỬ LÝ
Hình 1.13
4. Giải mã địa chỉ cho bộ nhớ
Trong một hệ thống vi xử lý, bộ nhớ có thể được tạo thành từ nhiều chip nhớ. Các chip này đều
dùng chung bus dữ liệu để trao đổi với P. Do đó để tránh xung đột trên bus, cần phải giải mã địa
chỉ để tại mỗi thời điểm chỉ cho phép một chip có thể kết nối với bus dữ liệu để trao đổi với P.
Kết nối mạch giải mã địa chỉ tổng quát:
Đến các chân địa chỉ của
các chip nhớ

Bus địa chỉ

Đến các chân
chọn chip của
các chip nhớ

Mạch giải mã
địa chỉ

P

Bảng bộ nhớ
MSB

LSB

Các bit địa chỉ

n bit

đến bộ
giải mã
địa chỉ

đến các
chip nhớ

……

m bit

2m
vùng
2n
địa chỉ

Hình 1.14 Quan hệ giữa giải mã địa chỉ và bảng bộ nhớ:
Ví dụ: P có 16 đường địa chỉ (A15  A0)  có thể quản lý 216 = 26.210 = 64 K = 65536 địa chỉ: + 3 bit
cao (A15  A13) được đưa đến bộ giải mã (ở đây dùng IC 74LS138). + 13 bit thấp (A12  A0) được
đưa đến các chip nhớ.  có 23 = 8 vùng, mỗi vùng có 213 = 23.210 = 8 K = 8192 địa chỉ.

15


Bài giảng KỸ THUẬT VI XỬ LÝ

0000  1FFF
2000  3FFF

4000  5FFF
6000  7FFF
8000  9FFF
A000  BFFF
C000  DFFF
E000  FFFF

Đưa đến các
chân chọn
chip của các
chip nhớ

Hình 1.16
V. NHẬP/XUẤT (I/O – INPUT/OUTPUT)
1. Phân loại
- Theo chiều trao đổi dữ liệu:
+ Thiết bị xuất
+ Thiết bị nhập
+ Thiết bị nhập/xuất
- Theo dạng truyền dữ liệu:
+ Nối tiếp: đồng bộ và bất đồng bộ (thêm bit start, stop)
+ Song song
2. Cấu trúc tiêu biểu của port I/O
- Các port nhập (I) và xuất (O) giao tiếp P với các thiết bị ngồi khơng thể nối trực tiếp đến
các bus.
- Về cơ bản, một port xuất chỉ là một thanh ghi. Khi P ghi ra địa chỉ được gán cho port, port
sẽ chứa dữ liệu có từ bus dữ liệu. Như vậy nó cung cấp ngõ ra có chốt cho các thiết bị ngồi.
- Một port nhập thơng thường là một bộ đệm 3 trạng thái. Khi P đọc vào từ địa chỉ được gán
cho port, bộ đệm 3 trạng thái sẽ đưa dữ liệu từ các ngõ nhập ngoài vào bus dữ liệu rồi P đọc
dữ liệu từ bus.

3. Giải mã địa chỉ cho I/O
a. I/O trực tiếp (Định địa chỉ I/O theo kiểu trực tiếp)
- Các địa chỉ thiết bị I/O tách khỏi các địa chỉ bộ nhớ.
- P cung cấp hai đường điều khiển đọc và ghi riêng cho I/O: IOR và IOW.
- Giải mã địa chỉ cho I/O tương tự như giải mã địa chỉ cho bộ nhớ.

16


Bài giảng KỸ THUẬT VI XỬ LÝ

Hình 1.20 Định địa chỉ I/O theo kiểu trực tiếp
Lưu ý: Một số thiết bị I/O có thể khơng có các tín hiệu địa chỉ.
Ví dụ: Giải mã địa chỉ cho I/O:

Hình 1.20 Giải mã địa chỉ cho I/O
Khi P cần trao đổi dữ liệu với một thiết bị I/O nào đó, nó phát tín hiệu địa chỉ của thiết bị
lên bus địa chỉ. Một số trong các tín hiệu địa chỉ này được đặt vào mạch giải mã chọn thiết bị. Mạch
giải mã này sẽ kích hoạt chỉ một tín hiệu chọn chip tương ứng với thiết bị được chọn, do đó chỉ có
bộ đệm dữ liệu của thiết bị này được nối với bus dữ liệu để trao đổi với P. Trong q trình này, tín
hiệu điều khiển đọc hay ghi cũng được phát trên bus điều khiển để xác định thao tác tương ứng.
b. I/O được ánh xạ như bộ nhớ
- P xem các thiết bị I/O như các vị trí bộ nhớ. Các vị trí này khơng được trùng với các địa chỉ có
trong các thiết bị nhớ như ROM và RAM.
- P khơng có các tín hiệu điều khiển đọc và ghi riêng cho I/O.
Sau đây là hai ví dụ minh họa việc tạo ra các tín hiệu đọc/ghi I/O từ các đường điều khiển đọc/ghi
bộ nhớ:
Ví dụ 1: Giả sử P có 16 đường địa chỉ, tín hiệu đọc/ghi I/O tích cực mức 0:
17



Bài giảng KỸ THUẬT VI XỬ LÝ

Trong ví dụ này đường địa chỉ A15 được dùng như là bit chọn đọc/ghi bộ nhớ hay I/O. Nếu
A15 = 1, ngõ ra IOR và IOW luôn là mức 1 nên thao tác được chọn là đọc/ghi bộ nhớ. Ngược lại
khi A15 = 0, ngõ ra IOR hay IOW sẽ là mức 0 khi có tín hiệu RD hay WR tương ứng từ bộ xử lý.
Ví dụ 2: Mức tích cực của các tín hiệu đọc/ghi I/O là mức 1:

CSx : tín hiệu chọn thiết bị I/O từ mạch giải mã địa chỉ.
3. Các phương pháp điều khiển I/O
Có 3 phương pháp cơ bản: hỏi vòng hay kiểm tra tuần tự (polling), điều khiển ngắt (interrupt)
và DMA (Direct Access Memory). Ngoài ra cũng có thể kết hợp các phương pháp trên.
a. Polling (Hỏi vịng)
- P lần lượt kiểm tra từng I/O xem có yêu cầu dịch vụ không thông qua các cờ (flag).
- Tất cả các việc chuyển dữ liệu đến và từ các thiết bị I/O được thực hiện bằng chương trình 
polling là cơ chế đồng bộ (synchronous) với việc thực thi chương trình.
- Kỹ thuật polling có các hạn chế:
+ Mất thời gian của P (do kiểm tra trạng thái của tất cả các ngoại vi thường xuyên).
+ Chậm trong các hệ thống thời gian thực (real-time), không thỏa mãn cho các thiết bị yêu
cầu tốc độ đáp ứng nhanh.

18


Bài giảng KỸ THUẬT VI XỬ LÝ
+ Người sử dụng có thể gặp khó khăn trong trong vấn đề lập trình vì phải ln canh chừng
I/O.

- Lưu đồ hoạt động của polling:


b. Interrupt (Ngắt)
+ Ngắt là một quá trình xử lý thông tin của vi xử lý tương tự như con người xử lý thơng tin.
Ví dụ khi bạn đang nói chuyện với một người. Người thứ ba đến và gọi tên bạn. Đây là dấu
hiệu rằng có một người khác yêu cầu sự quan tâm của bạn. Người thứ ba này có thể được coi như

19


Bài giảng KỸ THUẬT VI XỬ LÝ
là một yêu cầu ngắt bên ngoài (external interrupt request). Người này yêu cầu bạn ngắt cuộc nói
chuyện của mình. Bạn có thể xử lý yêu cầu nầy bằng các cách như sau:
1. Bạn có thể bỏ qua yêu cầu và coi như người thứ ba là khơng tồn tại.
2. Bạn có thể dừng một cách thích hợp đối thoại đang diễn ra, rồi bắt đầu quan tâm đến người
thứ ba. Lúc này bạn bắt đầu nói chuyện với người này chứ khơng nói chuyện với người đầu
tiên nữa.
3. Bạn tức khắc dừng nói chuyện với người thứ nhất và bắt đầu nói chuyện ngay với người thứ
ba.
Khi bạn nói chuyện xong với người thứ ba, bạn muốn quay lại tiếp tục cuộc đối thoại với
người thứ nhất tại điểm mà yêu cầu ngắt xuất hiện.
+ Quá trình này diễn ra tương tự với kỹ thuật ngắt trong hệ thống vi xử lý. Lúc này CPU đóng
vai trị của bạn. Người thứ nhất là chương trình chính đang được thực hiện. Người thứ ba là một yêu
cầu ngắt bên ngoài. Đây là một thiết bị phần cứng bên ngoài yêu cầu CPU quan tâm đến nó. CPU
phải xử lý yêu cầu ngắt nầy bằng cách nào đó. Có nhiều cách xử lý ngắt, các cách được nêu ở ví dụ
trên là các cách xử lý thơng dụng nhất.
+ Ví dụ như ta có một cảm biến báo cháy. Thơng thường khi khơng có lửa thì cảm biến xuất
ra số 1, khi có lửa thì cảm biến xuất số 0 báo cho vi xử lý kích hoạt chương trình báo động. Vi xử lý
có thể luôn luôn đọc trạng thi của cảm biến bằng lệnh IN từ cổng nối với cảm biến. Sau đó vi xử lý
kiểm tra trạng thi cảm biến và gọi chương trình báo động khi trạng thi cảm biến là 0. Tuy vậy đây là
một thao tác lặp đi lặp lại nhiều lần một cách khơng hiệu quả, vì phần lớn thời gian cảm biến không
báo cháy. Một cách xử lý hiệu quả hơn là đưa tín hiệu của cảm biến vào yêu cầu ngắt của vi xử lý.

Chỉ khi nào u cầu ngắt này được kích hoạt thì vi xử lý mới gọi chương trình báo động.

Ngắt là cơ chế bất đồng bộ (asynchronous) với việc thực thi chương trình. Nó được dùng với
mục đích là tránh tối đa hoặc loại bỏ hẳn cơ chế hỏi vòng để kiểm tra trạng thái thiết bị.
- Mỗi thiết bị I/O hay bộ điều khiển của nó được nối với một đường interrupt.
20


Bài giảng KỸ THUẬT VI XỬ LÝ
- Khi I/O có yêu cầu trao đổi dữ liệu nó sẽ phát ra một tín hiệu báo cho P. Tín hiệu đó được gọi
là tín hiệu yêu cầu ngắt IRQ (interrupt request). Khi P nhận được yêu cầu ngắt đó, nếu đồng ý
trao đổi thơng tin với I/O, nó sẽ trả lời với bộ điều khiển nhập/xuất bằng tín hiệu chấp nhận ngắt
INTA (interrupt acknownledge) đồng thời ngừng chương trình đang làm và gọi chương trình phục
vụ ngắt cho I/O. Sau khi phục vụ xong, nó quay về tiếp tục thực hiện chương trình đang làm tại
nơi bị ngắt.
- Khi có nhiều I/O yêu cầu ngắt đồng thời  cần có mạch điều khiển ưu tiên ngắt.
- Lưu đồ hoạt động của ngắt:

- Thủ tục interrupt về nguyên tắc tương tự với gọi chương trình con, ngoại trừ:
(i)

Interrupt được khởi động từ 1 tín hiệu bên trong hoặc bên ngồi thay vì từ những thực thi
lệnh.

(ii)

Địa chỉ của chương trình phục vụ interrupt được xác định bằng thủ tục hardware thay vì từ
vùng địa chỉ của lệnh. (bảng vector ngắt được xác định trước của từng loại vi xử lý).

(iii)


Khi đáp ứng 1 interrupt cần lưu tất cả các thông tin định nghĩa trạng thái hiện hành của hệ
thống thay vì chỉ lưu trữ bộ đếm chương trình PC.

c. DMA (Direct Memory Access)
- Thơng thường khi chương trình muốn chuyển một byte dữ liệu từ ngoại vi vào bộ nhớ, nó phải
thực hiện thông qua P gồm một thao tác nhập và sau đó là thao tác ghi bộ nhớ. Hoặc ngược lại,
khi muốn đưa thông tin từ bộ nhớ ra ngoại vi, P phải làm thao tác đọc bộ nhớ rồi xuất ra ngoại vi.
Trong trường hợp này, chức năng của P chỉ là chuyển dữ liệu mà khơng xử lý gì cả. Điều này lặp đi
lặp lại nhiều lần sẽ làm lãng phí việc sử dụng P vì chức năng chủ yếu của P là xử lý dữ liệu.

21


Bài giảng KỸ THUẬT VI XỬ LÝ

- DMA là cơ chế điều khiển cho phép truy xuất bộ nhớ trực tiếp, không thông qua P.
- Cơ chế DMA được thực hiện bởi một mạch phần cứng được gọi là bộ điều khiển DMA
(DMAC - DMA Controller).
- DMA giúp rút ngắn thời gian truy xuất giữa bộ nhớ và I/O. Cơ chế này rất tiện dụng cho các
thiết bị ngoại vi có khối lượng thơng tin trao đổi lớn (trao đổi một khối dữ liệu lớn trong một thời
gian ngắn) ví dụ như card màn hình, đĩa cứng … trong máy tính.
- Q trình DMA bắt đầu khi có tín hiệu yêu cầu DMA (DRQ) từ thiết bị I/O đến DMAC. DMAC
tiếp tục gởi tín hiệu yêu cầu P nhường bus (HRQ) đến chân HOLD của P để nó thực thi việc trao
đổi dữ liệu trực tiếp giữa bộ nhớ và I/O. Khi P đồng ý nhường bus, nó trả lời cho DMAC bằng tín
hiệu chấp nhận nhường bus (HLDA) đồng thời tạm ngưng mọi hoạt động, tự tách ra khỏi hệ thống.
Đến lượt DMAC gởi tín hiệu thơng báo cho phép trao đổi dữ liệu theo kiểu DMA (DACK) đến thiết bị
I/O. Khi DMAC chuyển hết dữ liệu, nó trả quyền điều khiển các bus lại cho P, quá trình DMA kết
thúc.
- Trong thực tế, việc sử dụng cơ chế DMA khá phức tạp và qua nhiều cơng đoạn vì DMAC

khơng thi hành bất kì lệnh nào, chương trình nào (khơng thực thi phần mềm) để chuyển dữ liệu mà
nó thực hiện hoàn toàn bằng phần cứng nên cần phải có trước đầy đủ các thơng tin về vị trí dữ liệu
của I/O, vị trí bộ nhớ chứa dữ liệu và số lượng byte cần chuyển để P nạp cho DMAC. Ngồi ra,
DMAC cịn phải có khả năng tạo ra các tín hiệu điều khiển cần thiết giống như các tín hiệu của P.

VI. VI XỬ LÝ VÀ VI ĐIỀU KHIỂN
- Về cấu trúc phần cứng:
+ Vi xử lý: là một CPU đơn chip (như trong sơ đồ khối ở trên).

22


Bài giảng KỸ THUẬT VI XỬ LÝ
+ Vi điều khiển: gồm CPU và một số thành phần khác như bộ nhớ ROM, RAM, các port I/O
và một số mạch chức năng như mạch định thời (timer), mạch điều khiển ngắt (interrupt
controller), mạch giao tiếp nối tiếp (serial interface)…
- Về ứng dụng:
+ Vi xử lý: thường dùng làm CPU trong các máy vi tính.
+ Vi điều khiển: thường dùng trong các thiết kế nhỏ, hướng điều khiển.
- Đặc trưng về tập lệnh:
+ Vi xử lý: mạnh về các kiểu định địa chỉ, số lệnh nhiều.
+ Vi điều khiển: có thể thao tác với từng bit đơn (định hướng bit).

***

23


Bài giảng KỸ THUẬT VI XỬ LÝ


CHƯƠNG 2: BỘ VI XỬ LÝ INTEL 80X86
2.1. Cấu trúc phần cứng của bộ vi xử lý 8086

+ Control Unit (CU) tạo ra tất cả các tín hiệu điều khiển trong CPU. Nó khởi tạo các thanh ghi
khi ở nguồn, tạo ra các tín hiệu để lấy lệnh cho ALU. Khối điều khiển có thể được thực hiện hoàn
toàn bởi phần cứng (điều khiển cứng, ví dụ như sử dụng một bộ đếm trạng thái và một mảng logic
khả lập triình) hay kết hợp giữa các lệnh phần mềm (vi lệnh được lưu trữ trong CPU) và phần cứng
(bộ điều khiển vi chương trình. Cả hai họ vi xử lý Intel 8086 và Motorola 68000 đều sử dụng các bộ
điều khiển vi chương trình.
+ Registers – là các bộ nhớ nhỏ, nhanh, thường được sử dụng để lưu dữ liệu và địa chỉ gắn
với (tương ứng với) các mã lệnh của chương trình.
+ ALU thực hiện các phép toán số học và logic
2.2. Cấu trúc bên trong và sự hoạt động
+ Trong sơ đồ khối, ta thấy trong CPU 8086 có hai khối chính: khối phối ghép bus (bus
interface unit, BIU) và khối thực hiện lệnh (execution unit, EU). Việc chia CPU thành hai phần đồng
thời có liên hệ với nhau qua đệm lệnh làm tăng đáng kể tốc độ xử lý của CPU. Các bus bên trong
CPU có nhiệm vụ chuyển tải tín hiệu của các khối khác. 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 ở 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 bộ
đệm để nâng cao tính tương thích cho nối ghép hoặc nâng cao khả năng phối ghép.

24


×