Professional Documents
Culture Documents
Topic 3
Topic 3
Chapter 7
INPUT/OUTPUT
9
I/O module
Module function:
Control and timing
Processor communication
Device communication
Data buffering
Error detection
I/O module
Module function
The transfer of data from an external device
to the processor:
The processor interrogates the I/O module to
check the status of the attached device
The I/O module return the device status
If the device is operational and ready
transmit, the processor requests the transfer of
data
The I/O module obtains a unit of data from
the external device
The data are transferred from the I/O module
Module function
Processor communication:
Command decoding
Data
Status reporting
Address recognition
Module function
Device communication:
Command
Status information
Data
Module function
Error detection:
For error detection and sent
reporting errors to the processor
Mechanical and electrical
malfunctions
Using a parity bit
I/O Module Structure
Nhóm ba
7.3 &7.4
Trình bày
ĐẶNG HOÀI SINH
Nội dung bài báo cáo gồm:
Bốn kĩ thuật dùng để điều khiển hoạt động
I/O.
1. Lập trình điều khiển I/O
2. Điều khiển ngắt I/O
3.DMA(Truy cập bộ nhớ trực tiếp)
4.Channel I/O
Ở đây chỉ đi sâu vào hai kĩ thuật 1,2.Kĩ
thuật thứ 3,4 do bạn Trần Đức Minh báo
cáo rõ hơn với các bạn.
Vị trí của I/O trong máy tính
Cấu trúc của một khối I/O
Lập trình điều khiển I/O
Programmed I/O dùng để trao đổi dữ liệu giữa
bộ xử lý và I/O.
Bộ xử lý thực thi một chương trình dùng để điều
khiển trực tiếp hoạt động I/O.
Chương trình này bao gồm:
- Thăm dò trạng thái thiết bị
- Gửi một lệnh đọc hoặc ghi
- Quá trình truyền dữ liệu
Lập trình điều khiển I/O
Khi bộ xử lý đang thực thi một chương trình và
gặp một tập lệnh liên quan đến I/O,nó thực thi
tập lệnh đó bằng cách phát ra một lệnh và một
địa chỉ đến khối I/O đó.
Và khối I/O này thực thi hoạt động mong muốn
Trước khi thực thi hoạt động của mình khối I/O
phải thiết lập những bít tương đương lên thanh
ghi trạng thái.
Lập trình điều khiển I/O
Lúc này I/O không ngắt và không gửi cảnh
báo nào đến bộ xử lý.
Và bộ xử lý chỉ có nhiệm vụ giám sát trạng
thái của thiết bị I/O cho tới khi nó biết rằng
hoạt động I/O đã được kết thúc.
Kĩ thuật Programmed I/O hoạt động như thế
nào chúng ta hãy tìm hiểu tập lệnh mà CPU
gửi đến I/O.
Có 4 loại lệnh I/O mà khối I/O có
thể nhận được từ CPU.
Điều khiển:Kích hoạt và yêu cầu công việc cho
thiết bị ngoại vi.
Kiểm tra:Kiểm tra những điều kiện thay đổi trạng
thái thiết bị ngoại vi,cho biết thiết bị nào được
CPU phục vụ và giám sát lỗi hoạt động I/O.
Đọc:Đọc dữ liệu từ thiết bị ngoại vi và lưu vào
bộ đệm nội.
Ghi: gửi mẫu dữ liệu(byte hoặc word)từ bus dữ
liệu và trình tự truyền mẫu dữ liệu đến thiết bị
ngoại vi
Tập lệnh của I/O gửi đến CPU
Tập lệnh liên quan đến I/O mà bộ xử lý lấy ra từ bộ
nhớ thường dễ được ánh xạ vào bộ lệnh dùng để
thực thi tập lệnh liên quan đến I/O của bộ xử lý.
Thường có nhiều thiết bị I/O kết nối đến khối
I/O.Mỗi thiết bị này được nhận dạng bằng một địa
chỉ duy nhất.Khi bộ xử lý phát ra một lệnh,lệnh
này chứa địa chỉ thiết bị I/O mong muốn.
Do đó mỗi khối I/O phải hiểu được đường địa chỉ
này để xác định nếu lệnh là của chính nó.
Tập lệnh của I/O gửi đến CPU
Khi CPU,I/O,memory dùng chung một bus
hai chế độ địa chỉ có thể diễn ra:
Memory mapped I/O
Isolated I/O
Điều khiển ngắt
Vấn đề programmed I/O yêu cầu bộ xử lý phải
đợi một thời gian dài đến khi nào thiết bị I/O
nhận hoặc truyền dữ liệu và trong thời gian này
bộ xử lý phải giám sát hoạt động của I/O
Điều đó làm cho hiệu suất sử dụng của toàn hệ
thống không hiệu quả.
Để khắc phục hạn chế này chúng ta hãy tìm
hiểu kĩ thuật điều khiển ngắt I/O.
Điều khiển ngắt:
Thay vì bộ xử lý đợi giám sát quá trình thực
thi cho tới khi thiết bị I/O kết thúc.Lúc này nó
gửi một lệnh đến thiết bị I/O và sau đó tiếp tục
làm những công việc hữu ích khác.Sau đó
thiết bị I/O sẽ ngắt bộ xử lý để yêu cầu dịch vụ
nếu như nó sẵn sàng trao đổi dữ liệu với bộ xử
lý.Sau đó bộ xử lý thực thi quá trình truyền dữ
liệu,sau đó mới trở lại xử lý chương trình cũ.
Tiến trình điều khiển ngắt I/O
Sự trao đổi giữa bộ nhớ và thanh
ghi trong tiến trình ngắt
Giải thuật dùng programmed và Interrupt
I/O để đọc khối dữ liệu từ một thiết bị
ngoại vi
Phần báo cáo của tôi đến đây kết
thúc
Cảm ơn các bạn đã quan tâm theo
dõi
Nhoùm 3: Input/Output. Lôùp
D02VTA1
7.5. TRUY NHAÄP BOÄ NHÔÙ
TRÖÏC TIEÁP
DIRECT MEMORY ACCESS(
DMA)
• Khi hoaït
ñoängtruyeàn daãn
hoaøn thaønh,
DMA_ module göûi
1 tín hieäu ngaét
ñeán CPU.
• Nhö vaäy, CPU chæ
lieân quan tôùi
luùc baét ñaàu vaø
keát thuùc vieäc
truyeàn daãn.
Caùc caáu hình cuûa heä thoáng
DMA:
7.6 CHANNELS and PROCESSORS
I/O:
Caùc böôùc phaùt trieån cuûa chöùc
naêng I/O:
1. CPU tröïc tieáp ñieàu khieån thieát bò
ngoaïi vi.
2. I/O module ñöôïc theâm vaøo. CPU söû
duïng
Programmed I/O maø khoâng coù
interrupt. Vôùi
böôùc naøy, CPU trôû neân taùch bieät
vôùi caùc thieát bò
giao tieáp beân ngoaøi.
3. Töông töï nhö böôùc 2, nhöng coù söû
7.6 CHANNELS AND PROCESSORS
I/O:
Caùc böôùc phaùt trieån cuûa chöùc
naêng I/O:
4. I/O module truy nhaäp tröïc tieáp vaøo
boä nhôù thoâng qua DMA, khoâng coù
söï can thieäp cuûa CPU, ngoaïi tröø luùc
baét ñaàu vaø luùc keát thuùc vieäc
truyeàn daãn.
5. I/O module ñöôïc naâng caáp trôû thaønh
1 processor. CPU ra leänh cho
I/O_processor tìm vaø thi haønh 1 chöông
trình I/O trong boä nhôù, khoâng coù söï
can thieäp cuûa CPU .
6. I/O module coù 1 local_memory vaø nhö 1
7.6 CHANNELS AND PROCESSORS
I/O:
Caùc böôùc phaùt trieån cuûa chöùc
naêng I/O:
Nhö vaäy, doïc theo con ñöôøng phaùt
trieån, ngaøy caøng coù nhieàu chöùc
naêng I/O ñöôïc thöïc hieän maø khoâng
coù söï can thieäp cuûa CPU. CPU ñöôïc
giaûm nheï nhieäm vuï lieân quan ñeán
I/O.
Hai böôùc sau cuøng(5,6) laø moät thay
ñoåi lôùn khôûi ñaàu cho khaùi nieäm
moät I/O_module coù khaû naêng thi
haønh 1 chöông trình. Trong böôùc 5, I/O
module ñöôïc xem laø 1 I/O channel.
7.6 CHANNELS AND PROCESSORS
I/O:
Caùc ñaëc ñieåm cuûa I/O channel:
I/O channel laø moät söï môû roäng cuûa
khaùi nieäm DMA, trong ñoù, I/O_module
ñöôïc naâng caáp nhö 1 processor.
Moät I/O channel coù khaû naêng:
- Tìm vaø thi haønh caùc chæ thò I/O
ñöôïc löu trong main memory.
- Ñieàu khieån hoaøn toaøn caùc hoaït
ñoäng I/O.
7.6 CHANNELS AND PROCESSORS
I/O:
I/O channel:
CPU chæ khôûi ñaàu 1 I/O transfer baèng
caùch ra leänh cho I/O channel thi haønh 1
chöông trình trong boä nhôù.
Chöông trình seõ chæ roõ:
- Caùc thieát bò
- Caùc vuøng boä nhôù
ñeå löu tröõ
- Quyeàn öu tieân
- Caùc hoaït ñoäng
nhaèm ñöa ra caùc ñieàu kieän coù sai
soá nhoû nhaát.
I/O channel seõ döïa theo caùc chæ daãn
7.6 CHANNELS AND PROCESSORS
I/O:
Coù 2 loaïi I/O channel phoå bieán:
1. Selector- channel:
- Ñieàu khieån nhieàu thieát bò toác ñoä
cao, nhöng taïi 1 thôøi ñieåm noù chæ
truyeàn data vôùi 1 thieát bò.
- Moãi thieát bò (hoaëc 1 nhoùm nhoû
caùc thieát bò) ñöôïc ñieàu khieån bôûi 1
I/O_controller.
7.6 CHANNELS AND PROCESSORS
I/O:
2. Multiplexor_channel:
- Coù theå ñieàu khieån nhieàu thieát bò cuøng
luùc.
- Moät boä ña hôïp seõ gheùp caùc block döõ
lieäu cuûa nhieàu thieát bò laïi vôùi nhau.
- Vôùi caùc thieát bò toác ñoä thaáp, 1 boä gheùp
byte seõ giuùp chuyeån ñoåi cho phuø hôïp vôùi
caùc thieát bò toác ñoä cao.
VD:
caùc chuoãi kí töï rieâng leû cuûa 3 thieát bò
coù toác ñoä khaùc nhau A1A2A3A4 ……
B1B2B3B4 …… C1C2C3C4 seõ trôû thaønh
A1B1C1A2C2A3B2C3A4 ……
7.6 CHANNELS AND PROCESSORS
I/O:
Kieán truùc Multiplexor_channel:
External Interface