Professional Documents
Culture Documents
Chapter 1 An Introduction To Micro Processor - Compatibility Mode
Chapter 1 An Introduction To Micro Processor - Compatibility Mode
HCM
Khoa Điện – Điện Tử Viễn Thông
Học phần: Vi Xử Lý
3. VXL.
4. Bộ nhớ.
5. Nhập xuất.
6. Vi xử lý và vi điều khiển.
I. Tổng quan về hệ thống VXL
1. Quá trình phát triển của máy vi tính
Maùy vi tính bao goàm nhöõng maùy tính duøng boä vi xöû lyù (hoï
Intel, Motorola, AMD…) laøm coát loõi, caùc vi ñieàu khieån
(microcontroller) hay maùy vi tính trong moät vi maïch (one-
chip microcomputer).
4
2. Ứng dụng của VXL
5
2. Ứng dụng của VXL
Examples: Refrigerator
6
2. Ứng dụng của VXL
7
2. Ứng dụng của VXL
8
2. Ứng dụng của VXL
Examples:
Derbot
Autonomous
Guided Vehicle
9
3. Sơ đồ khối của hệ VXL
Sô ñoà
khoái tieâu
bieåu cuûa
heä vi xöû
lyù: (heä
thoáng vi
xöû lyù coù
kieán truùc
3-bus) 10
3. Sơ đồ khối của hệ VXL
Moät heä vi xöû lyù goàm coù caùc thaønh phaàn chính sau:
-P (microprocessor hay coøn goïi laø CPU): ñoïc maõ leänh töø
boä nhôù (ñöôïc ghi döôùi daïng caùc bit 0 vaø 1), sau ñoù giaûi maõ
vaø thöïc thi leänh.
- Boä nhôù (Memory): chöùa caùc chöông trình ñieàu khieån hoaït
ñoäng cuûa toaøn heä vaø caùc döõ lieäu, keát quaû trung gian. (Coù
hai loaïi boä nhôù: RAM (Random Access Memory) laø loaïi boä
nhôù truy xuaát ngaãu nhieân vaø ROM (Read-Only Memory) laø
loaïi boä nhôù chæ ñoïc). 12
3. Sơ đồ khối của hệ VXL
Moät heä vi xöû lyù goàm coù caùc thaønh phaàn chính sau:
-Khoái giao tieáp nhaäp/xuaát (Input/Output - I/O): taïo ra khaû
naêng giao tieáp giöõa heä vi xöû lyù vôùi caùc thieát bò ngoaïi vi
nhö baøn phím, chuoät … (thieát bò nhaäp), maøn hình, maùy in,
loa … (thieát bò xuaát), caùc oå ñóa… (thieát bò xuaát/nhaäp)
- Bus: ba khoái chöùc naêng treân lieân heä vôùi nhau thoâng qua
moät taäp caùc ñöôøng daây ñeå truyeàn thoâng tin goïi laø bus.
Trong heä thoáng vi xöû lyù thöôøng bao goàm 3 loaïi bus: bus
ñòa chæ, bus döõ lieäu vaø bus ñieàu khieån. 13
3. Sơ đồ khối của hệ VXL
NOTE:
1. Mọi nguồn thông tin vào CPU, nếu
không là bộ nhớ thì là thiết bị đầu vào.
14
3. Sơ đồ khối của hệ VXL
NOTE:
3. Hệ vi xử lý có 3 khối chính:
Bộ nhớ.
CPU.
Phối ghép (giao tiếp) vào/ra (I/O).
4. CPU đọc thông tin từ bộ nhớ và ghi thông tin
vào bộ nhớ.
5. Các thiết bị đầu vào đưa thông tin từ bên
ngoài vào hệ vi xử lý.
15
3. Sơ đồ khối của hệ VXL
NOTE:
6. Các thiết bị đầu ra đưa thông tin từ
CPU đến các đối tượng bên ngoài.
NOTE
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 có 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) … 17
II. Các loại bus trong hệ thống VXL
1. BUS địa chỉ (Address Bus)
Coù chöùc naêng chuyeån taûi caùc thoâng tin veà ñòa
chæ.
19
1. BUS địa chỉ (Address Bus)
Soá löôïng ñòa chæ maø P coù theå quaûn lyù phuï thuoäc
vaøo soá bit (soá ñöôøng daây) cuûa bus ñòa chæ (16, 20,
24, 32 … bit).
Ví duï: Moät P coù soá ñöôøng daây cuûa bus ñòa chæ laø
N = 16
coù khaû naêng quaûn lyù: 2N = 216 = 26.210 =
64.210 = 64 K = 65536 ñòa chæ.
Bus ñòa chæ laø loaïi bus moät chieàu (xuaát phaùt töø P).
20
1. BUS địa chỉ (Address Bus)
22
2. BUS dữ liệu
24
2. BUS dữ liệu (Data Bus)
25
2. BUS dữ liệu (Data Bus)
26
2. BUS dữ liệu (Data Bus)
29
3. BUS điều khiển (Control Bus)
Coù 6 loaïi truyeàn thoâng tieâu bieåu maø bus ñieàu khieån
phaûi xaùc ñinh baèng tín hieäu ñieän:
Đọc từ bộ nhớ
Ghi vào bộ nhớ
Đọc từ phối ghép đầu vào (Input)
Ghi vào phối ghép đầu ra (Output)
Nhận biết yêu cầu ngắt (Interrupt acknowledge)
Nhận biết yêu cầu treo (Hold acknowledge, phục
vụ DMA) 30
III. VXL
MicroProcessor
Khoái ñieàu khieån tuaàn töï (Sequencer): nhaän leänh töø boä nhôù, sau ñoù
giaûi maõ leänh vaø truyeàn leänh ñaõ giaûi maõ ñeán khoái thöïc thi.
- Boä ñeám chöông trình: laø moät thanh ghi löu giöõ ñòa chæ cuûa leänh keá
tieáp seõ ñöôïc thöïc thi. Moãi khi moät leänh ñöôïc thöïc thi, boä ñeám chöông
trình seõ ñöôïc taêng leân 1 ñeå chæ ra ñòa chæ cuûa leänh keá tieáp seõ ñöôïc
thöïc thi. Noäi dung cuûa boä ñeám chöông trình ñöôïc ñaët leân bus ñòa chæ
ñeå tìm vaø nhaän leänh mong muoán. Nhö vaäy, P thöïc hieän caùc leänh cuûa
chöông trình moät caùch tuaàn töï, tröø khi gaëp caùc leänh chuyeån ñieàu
khieån (leänh nhaûy, goïi chöông trình con …) laøm thay ñoåi noäi dung PC.
Trong moät soá vi xöû lyù, boä ñeám chöông trình coøn ñöôïc goïi laø con troû
leänh IP (Instruction Pointer).
35
MicroProcessor
Khoái ñieàu khieån tuaàn töï (Sequencer): nhaän leänh töø boä nhôù, sau ñoù
giaûi maõ leänh vaø truyeàn leänh ñaõ giaûi maõ ñeán khoái thöïc thi.
-Boä giaûi maõ leänh: thoâng dòch (dieãn dòch) caùc leänh ñöôïc nhaän vaøo P.
Coù theå xem boä giaûi maõ leänh nhö moät töø ñieån löu tröõ nghóa cuûa moãi
leänh vaø caùc böôùc maø P caàn thöïc hieän ñoái vôùi moãi leänh ñöôïc nhaän
vaøo. Gioáng nhö töø ñieån neáu coù caøng nhieàu trang thì coù theå ñònh nghóa
ñöôïc nhieàu töø hôn, moät P coù theå hieåu caøng nhieàu leänh hôn neáu coù boä
giaûi maõ leänh caøng lôùn.
- Thanh ghi leänh IR: löu giöõ maõ nhò phaân cuûa leänh ñang ñöôïc thöïc thi.
36
MicroProcessor
Khoái thöïc thi (Execution Unit): thöïc thi vaø ghi keát quaû caâu leänh.
Caùc toaùn haïng (operand) lieân quan coù maët ôû caùc thanh ghi
(registers) hoaëc coù töø bus noäi (internal bus).
+ ALU (Arithmetic Logic Unit): laø moät maïch ñieän töû coù khaû naêng
thöïc hieän caùc pheùp toaùn soá hoïc (+, -, *, / …) vaø logic (AND, OR, NOT,
XOR…).
+ Thanh ghi (Register): laø moät boä nhôù cöïc nhanh, coù dung löôïng haïn
cheá naèm beân trong P. Caùc thanh ghi thöôøng ñöôïc duøng ñeå löu tröõ
caùc thoâng tin taïm thôøi. Moãi thanh ghi coù moät ñòa chæ ñeå truy xuaát tôùi
noù. Caùc thanh ghi ñöôïc noái vôùi nhau hoaëc ñeán caùc phaàn töû khaùc cuûa
P hay noái vôùi bus ngoaøi nhôø bus noäi. Ñoä roäng cuûa caùc thanh ghi coù
theå laø 8-bit, 16-bit, 32-bit hay 64-bit tuøy thuoäc vaøo loaïi P. 37
MicroProcessor
Khoái thöïc thi (Execution Unit): thöïc thi vaø ghi keát quaû caâu leänh.
Caùc toaùn haïng (operand) lieân quan coù maët ôû caùc thanh ghi
(registers) hoaëc coù töø bus noäi (internal bus).
Thoâng tin coù theå laø giaù trò caàn ñöôïc xöû lyù hay ñòa chæ chöùa giaù trò caàn
ñöôïc xöû lyù nhaän töø boä nhôù (hay I/O). P coù caøng nhieàu thanh ghi vaø
ñoä roäng caøng lôùn thì caøng toát vì luùc naøy chöông trình khoâng phaûi thöïc
hieän nhieàu pheùp truyeàn thoâng tin giöõa P vaø boä nhôù do coù theå truy
xuaát tröïc tieáp töø thanh ghi, töø ñoù laøm giaûm thôøi gian truy xuaát cuõng
nhö ñoä daøi leänh.
+ Khoái ñieàu khieån: taïo ra caùc tín hieäu ñieàu khieån hoaït ñoäng cuûa caùc
boä phaän beân trong vaø beân ngoaøi P (tuøy theo maõ leänh). 38
MicroProcessor
39
MicroProcessor
40
MicroProcessor
Vieäc tìm naïp leänh töø boä nhôù laø moät trong caùc thao taùc cô baûn nhaát
maø P thöïc hieän, goàm caùc böôùc nhö sau:
-Noäi dung cuûa PC ñöôïc ñaët leân bus ñòa chæ.
-Tín hieäu ñieàu khieån READ ñöôïc xaùc laäp (chuyeån sang traïng thaùi tích
cöïc).
-Maõ leänh ñöôïc ñoïc töø boä nhôù vaø ñöa leân bus döõ lieäu.
-Maõ leänh ñöôïc choát vaøo thanh ghi leänh IR beân trong.
- PC ñöôïc taêng leân ñeå chuaån bò tìm naïp leänh keá töø boä nhôù. 41
IV. Bộ nhớ
Các đơn vị đo lường bộ nhớ
Boä nhôù thöôøng ñöôïc chia laøm hai loaïi: boä nhôù cô baûn (hay
boä nhôù chính – main memory) vaø boä nhôù löu tröõ (storage
memory).
Thoâng thöôøng boä nhôù löu tröõ ñöôïc xem nhö laø thieát bò I/O.
44
1. Phân loại
-Laø boä nhôù chæ ñoïc, khoâng theå söûa ñoåi thoâng tin trong caùc hoaït ñoäng
thoâng thöôøng.
-Thoâng tin ghi trong ROM seõ khoâng bò maát ñi khi maát nguoàn cung
caáp.
- ROM thöôøng ñöôïc duøng ñeå chöùa caùc chöông trình vaø döõ lieäu coá
ñònh (chöông trình khôûi ñoäng, döõ lieäu tra baûng …) 45
1. Phân loại
-Cho pheùp ñoïc/ghi thoâng tin baát kyø luùc naøo trong quaù trình
laøm vieäc maø khoâng caàn thieát bò ñaëc bieät.
-Thoâng tin trong RAM seõ bò maát khi maát nguoàn cung caáp.
47
1. Phân loại
- Boä nhôù goàm caùc phaàn töû nhôù hay oâ nhôù (memory cell)
ñöôïc toå chöùc döôùi daïng ma traän. Moãi oâ nhôù chöùa moät bit
thoâng tin.
- Maûng nhôù ñöôïc phaân chia thaønh moät chuoãi caùc ngaên nhôù
hay töø nhôù (word).
- Moãi ngaên nhôù ñeàu coù moät ñòa chæ duy nhaát.
- Moät ngaên nhôù coù theå coù 4-bit, 8-bit, 16-bit …
- Kyù hieäu: soá ngaên nhôù x ñoä roäng moãi ngaên nhôù
Ví duï: boä nhôù 1024 x 8 bao goàm 210 ngaên nhôù, moãi ngaên
nhôù coù 8-bit. 50
2. Cấu trúc bên trong tiêu biểu
51
2. Cấu trúc bên trong tiêu biểu
53
3. Truy xuất bộ nhớ
54
3. Truy xuất bộ nhớ
55
3. Truy xuất bộ nhớ
58
3. Truy xuất bộ nhớ
60
3. Truy xuất bộ nhớ
62
4. Giải mã địa chỉ cho bộ nhớ
Trong moät heä thoáng vi xöû lyù, boä nhôù coù theå ñöôïc taïo thaønh
töø nhieàu chip nhôù. Caùc chip naøy ñeàu duøng chung bus döõ
lieäu ñeå trao ñoåi vôùi P. Do ñoù ñeå traùnh xung ñoät treân bus,
caàn phaûi giaûi maõ ñòa chæ ñeå taïi moãi thôøi ñieåm chæ cho pheùp
moät chip coù theå keát noái vôùi bus döõ lieäu ñeå trao ñoåi vôùi P.
63
4. Giải mã địa chỉ cho bộ nhớ
Keát noái maïch giaûi maõ ñòa chæ toång
quaùt:
P Ñeán caùc
Maïch giaûi chaân choïn
maõ ñòa chip cuûa
chæ caùc chip
nhôù
64
4. Giải mã địa chỉ cho bộ nhớ
Quan heä giöõa giaûi maõ ñòa chæ vaø baûng boä nhôù:
Baûng boä nhôù
MSB LSB
Caùc bit ñòa chæ
2m
……
m bit n bit
vuøng
ñeán boä ñeán caùc
giaûi maõ chip nhôù
ñòa chæ 2n
ñòa chæ
65
4. Giải mã địa chỉ cho bộ nhớ
Ví duï: P coù 16 ñöôøng ñòa chæ (A15 A0) coù theå quaûn lyù 216 =
26.210 = 64 K = 65536 ñòa chæù:
+ 3 bit cao (A15 A13) ñöôïc ñöa ñeán boä giaûi maõ (ôû ñaây duøng IC
74LS138).
+ 13 bit thaáp (A12 A0) ñöôïc ñöa ñeán caùc chip nhôù.
coù 23 = 8 vuøng, moãi vuøng coù 213 = 23.210 = 8 K = 8192 ñòa chæ.
0000 1FFF
2000 3FFF
Ñöa ñeán
4000 5FFF
caùc
6000 7FFF
chaân
8000 9FFF
choïn
A000 BFFF
chip cuûa
C000 DFFF
caùc chip
E000 FFFF
nhôù 66
V. Nhập xuất
1. Phân loại
-Caùc port nhaäp (I) vaø xuaát (O) giao tieáp P vôùi caùc thieát bò ngoaøi
khoâng theå noái tröïc tieáp ñeán caùc bus.
-Veà cô baûn, moät port xuaát chæ laø moät thanh ghi. Khi P ghi ra ñòa chæ
ñöôïc gaùn cho port, port seõ chöùa döõ lieäu coù töø bus döõ lieäu. Nhö vaäy noù
cung caáp ngoõ ra coù choát cho caùc thieát bò ngoaøi.
- Moät port nhaäp thoâng thöôøng laø moät boä ñeäm 3 traïng thaùi. Khi P
ñoïc vaøo töø ñòa chæ ñöôïc gaùn cho port, boä ñeäm 3 traïng thaùi seõ ñöa döõ
lieäu töø caùc ngoõ nhaäp ngoaøi vaøo bus döõ lieäu roài P ñoïc döõ lieäu töø bus.
69
2. Cấu trúc tiêu biểu của port I/O
PORT xuất:
70
2. Cấu trúc tiêu biểu của port I/O
PORT nhập:
71
3. Giải mã địa chỉ cho I/O
73
3. Giải mã địa chỉ cho I/O
Khi P caàn trao ñoåi döõ lieäu vôùi moät thieát bò I/O naøo ñoù,
noù phaùt tín hieäu ñòa chæ cuûa thieát bò leân bus ñòa chæ. Moät
soá trong caùc tín hieäu ñòa chæ naøy ñöôïc ñaët vaøo maïch giaûi
maõ choïn thieát bò. Maïch giaûi maõ naøy seõ kích hoaït chæ moät
tín hieäu choïn chip töông öùng vôùi thieát bò ñöôïc choïn, do
ñoù chæ coù boä ñeäm döõ lieäu cuûa thieát bò naøy ñöôïc noái vôùi
bus döõ lieäu ñeå trao ñoåi vôùi P. Trong quaù trình naøy, tín
hieäu ñieàu khieån ñoïc hay ghi cuõng ñöôïc phaùt treân bus ñieàu
khieån ñeå xaùc ñònh thao taùc töông öùng.
74
3. Giải mã địa chỉ cho I/O
75
3. Giải mã địa chỉ cho I/O
76
3. Giải mã địa chỉ cho I/O
WR IOW
78
4. Các phương pháp điều khiển I/O
79
4. Các phương pháp điều khiển I/O
+ Maát thôøi gian cuûa P (do kieåm tra traïng thaùi cuûa taát caû
caùc ngoaïi vi thöôøng xuyeân).
+ Chaäm trong caùc heä thoáng thôøi gian thöïc (real-time),
khoâng thoûa maõn cho caùc thieát bò yeâu caàu toác ñoä ñaùp öùng
nhanh.
+ Ngöôøi söû duïng coù theå gaëp khoù khaên trong trong vaán ñeà
laäp trình vì phaûi luoân canh chöøng I/O.
81
4. Các phương pháp điều khiển I/O
Löu ñoà
hoaït ñoäng
cuûa polling:
82
4. Các phương pháp điều khiển I/O
b. Interrupt (Ngaé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ư 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. 83
4. Các phương pháp điều khiển I/O
b. Interrupt (Ngaét)
Quá trình trên 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, lúc 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 thái 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 thái cảm biến và
gọi chương trình báo động khi trạng thái 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
chân yêu cầu ngắt của vi xử lý. Chỉ khi chân yê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. 84
4. Các phương pháp điều khiển I/O
- Ngaét laø cô cheá baát ñoàng boä (asynchronous) vôùi vieäc thöïc thi
chöông trình. Noù ñöôïc duøng vôùi muïc ñích laø traùnh toái ña hoaëc loaïi
boû haún cô cheá hoûi voøng ñeå kieåm tra traïng thaùi thieát bò.
- Moãi thieát bò I/O hay boä ñieàu khieån cuûa noù ñöôïc noái vôùi moät
ñöôøng interrupt. 85
4. Các phương pháp điều khiển I/O
-Khi I/O coù yeâu caàu trao ñoåi döõ lieäu noù seõ phaùt ra moät tín hieäu baùo
cho P. Tín hieäu ñoù ñöôïc goïi laø tín hieäu yeâu caàu ngaét IRQ
(interrupt request). Khi P nhaän ñöôïc yeâu caàu ngaét ñoù, neáu ñoàng yù
trao ñoåi thoâng tin vôùi I/O, noù seõ traû lôøi vôùi boä ñieàu khieån
nhaäp/xuaát baèng tín hieäu chaáp nhaän ngaét INTA (interrupt
acknownledge) ñoàng thôøi ngöøng chöông trình ñang laøm vaø goïi
chöông trình phuïc vuï ngaét cho I/O. Sau khi phuïc vuï xong, noù quay
veà tieáp tuïc thöïc hieän chöông trình ñang laøm taïi nôi bò ngaét.
- Khi coù nhieàu I/O yeâu caàu ngaét ñoàng thôøi caàn coù maïch ñieàu
khieån öu tieân ngaét.
86
4. Các phương pháp điều khiển I/O
Löu ñoà
hoaït ñoäng
cuûa ngắt:
87
4. Các phương pháp điều khiển I/O
Thuû tuïc interrupt veà nguyeân taéc töông töï vôùi goïi chöông trình con,
ngoaïi tröø:
1. Interrupt ñöôïc khôûi ñoäng töø 1 tín hieäu beân trong hoaëc
beân ngoaøi thay vì töø nhöõng thöïc thi leänh.
2. Ñòa chæ cuûa chöông trình phuïc vuï interrupt ñöôïc xaùc
ñònh baèng thuû tuïc hardware thay vì töø vuøng ñòa chæ cuûa leänh. (baûng
vector ngaét ñöôïc xaùc ñònh tröôùc cuûa töøng loaïi vi xöû lyù).
3. Khi ñaùp öùng 1 interrupt caàn löu taát caû caùc thoâng tin ñònh
nghóa traïng thaùi hieän haønh cuûa heä thoáng thay vì chæ löu tröõ boä ñeám
chöông trình PC.
88
4. Các phương pháp điều khiển I/O
Như vậy để thực hiện thao tác ngắt vi xử lý cần có một phần
cứng báo ngắt và một phần mềm gọi là chương trình
phục vụ ngắt (interrupt service routines). Phần cứng báo
ngắt để tạo tín hiệu điện thông báo cho vi xử lý yêu cầu
ngắt. Phần mềm phục vụ ngắt thực hiện thao tác cần thiết
như là câu trả lời cho yêu cầu ngắt.
89
4. Các phương pháp điều khiển I/O
-DMA laø cô cheá ñieàu khieån cho pheùp truy xuaát boä nhôù tröïc tieáp,
khoâng thoâng qua P. 90
4. Các phương pháp điều khiển I/O
-Cô cheá DMA ñöôïc thöïc hieän bôûi moät maïch phaàn cöùng ñöôïc goïi laø
boä ñieàu khieån DMA (DMAC - DMA Controller).
- DMA giuùp ruùt ngaén thôøi gian truy xuaát giöõa boä nhôù vaø I/O. Cô
cheá naøy raát tieän duïng cho caùc thieát bò ngoaïi vi coù khoái löôïng thoâng
tin trao ñoåi lôùn (trao ñoåi moät khoái döõ lieäu lôùn trong moät thôøi gian
ngaén) ví duï nhö card maøn hình, ñóa cöùng … trong maùy tính.
91
4. Các phương pháp điều khiển I/O
- Quaù trình DMA baét ñaàu khi coù tín hieäu yeâu caàu DMA (DRQ) töø
thieát bò I/O ñeán DMAC. DMAC tieáp tuïc gôûi tín hieäu yeâu caàu P
nhöôøng bus (HRQ) ñeán chaân HOLD cuûa P ñeå noù thöïc thi vieäc
trao ñoåi döõ lieäu tröïc tieáp giöõa boä nhôù vaø I/O. Khi P ñoàng yù
nhöôøng bus, noù traû lôøi cho DMAC baèng tín hieäu chaáp nhaän nhöôøng
bus (HLDA) ñoàng thôøi taïm ngöng moïi hoaït ñoäng, töï taùch ra khoûi
heä thoáng. Ñeán löôït DMAC gôûi tín hieäu thoâng baùo cho pheùp trao
ñoåi döõ lieäu theo kieåu DMA (DACK) ñeán thieát bò I/O. Khi DMAC
chuyeån heát döõ lieäu, noù traû quyeàn ñieàu khieån caùc bus laïi cho P,
quaù trình DMA keát thuùc. 92
4. Các phương pháp điều khiển I/O
- Trong thöïc teá, vieäc söû duïng cô cheá DMA khaù phöùc taïp vaø qua
nhieàu coâng ñoaïn vì DMAC khoâng thi haønh baát kì leänh naøo, chöông
trình naøo (khoâng thöïc thi phaàn meàm) ñeå chuyeån döõ lieäu maø noù thöïc
hieän hoaøn toaøn baèng phaàn cöùng neân caàn phaûi coù tröôùc ñaày ñuû caùc
thoâng tin veà vò trí döõ lieäu cuûa I/O, vò trí boä nhôù chöùa döõ lieäu vaø soá
löôïng byte caàn chuyeån ñeå P naïp cho DMAC. Ngoaøi ra, DMAC
coøn phaûi coù khaû naêng taïo ra caùc tín hieäu ñieàu khieån caàn thieát
gioáng nhö caùc tín hieäu cuûa P.
93
4. Các phương pháp điều khiển I/O
94
VI. Vi xử lý và vi điều khiển
VXL và VĐK
96
VXL và VĐK
98
Questions ???
Bài tập chương 1
Bài tập chương 1
1.1 Haõy neâu caùc thaønh phaàn cô baûn trong moät heä vi xöû lyù? Chöùc
naêng cuûa töøng thaønh phaàn?
1.2 Vi xöû lyù laø gì? Caùc thaønh phaàn cô baûn trong moät chip vi xöû
lyù?
1.7 Caùc thieát bò/linh kieän 3 traïng thaùi laø gì? Taïi sao chuùng laïi
caàn thieát trong caùc heä thoáng duøng bus?
1.8 Caàn bao nhieâu byte ñeå laøm thaønh moät word (töø) 32 bit?
1.9 Coù bao nhieâu vò trí boä nhôù coù theå ñöôïc ñòùnh ñòa chæ bôûi moät
P coù 20 ñöôøng ñòa chæ?
1.10 Neáu moät chip boä nhôù coù kích thöôùc laø1024 x 4 bit thì phaûi
caàn bao nhieâu chip nhö vaäy ñeå taïo 2K (2048) byte boä nhôù?
102
Bài tập chương 1
1.11 Neáu moät chip boä nhôù coù kích thöôùc laø 256 x 1 bit thì phaûi
caàn bao nhieâu chip nhö vaäy ñeå taïo 1 KB boä nhôù?
1.12 Caàn phaûi coù bao nhieâu ñöôøng ñòa chæ treân moät chip boä nhôù
coù kích thöôùc 2K x 8 bit?
1.13 Moät chip nhôù 4 KB coù ñòa chæ baét ñaàu laø 2000H trong baûng
ñòa chæ boä nhôù. Xaùc ñònh ñòa chæ cuoái cuøng cuûa chip vaø soá trang
trong chip (giaû söû choïn kích thöôùc moät trang laø 256 byte)?
103
Bài tập chương 1
A7A0=11110111 104