.c
om
ng
BÀI 9
cu
u
du
o
ng
th
an
co
HỆ THỐNG XUẤT NHẬP
1
CuuDuongThanCong.com
/>
.c
om
THIẾT BỊ NGOẠI VI
cu
u
du
o
ng
th
an
co
ng
Mỗi thiết bị ngoại vi được gắn vào
computer qua một liên kết đến I/O module
Liên kết được dùng để trao đổi control,
status và data giữa I/O module với thiết bị
ngoại vi.
2
CuuDuongThanCong.com
/>
Status
.c
om
(đến I/O module)
Control
Data
th
an
co
ng
(từ I/O modue)
Bộ biến đổi
cu
u
du
o
ng
Điều khiển
luận lý
Bộ đệm
Thiết bị ngoại vi
Data đi và đến từ
môi trường ngoài
3
CuuDuongThanCong.com
/>
ng
cu
u
du
o
ng
th
an
co
Human-readable
Machine-readable
Communication
.c
om
Có ba loaiï thiết bị ngoại vi:
4
CuuDuongThanCong.com
/>
.c
om
I/O module
cu
u
du
o
ng
th
an
co
ng
Là thực thể nằm trong máy tính chịu trách
nhiệm điều khiển một hay nhiều thiết bị
ngoại vi để trao đổi data với main
memory và các register của CPU=> I/O
module coù 2 interface
5
CuuDuongThanCong.com
/>
.c
om
Address bus
co
ng
Data bus
System bus
ng
th
an
Control bus
cu
u
du
o
I/O module
Các liên kết
đến thiết bị
ngoại vi
Mơ hình chung của I/O module
CuuDuongThanCong.com
6
/>
.c
om
Yêu cầu tối thiểu về chức năng của I/O
module:
cu
u
du
o
ng
th
an
co
ng
Điều khiển và định thời
Truyền thông với CPU
Truyền thông với ngoại vi
Đệm dữ liệu
Phát hiện lỗi
(ví dụ)
7
CuuDuongThanCong.com
/>
ng
Thanh ghi data
Data
Logic giao tiếp
thiết bị ngoại vi
Status
Conrol
co
Data bus
.c
om
Giao tiếp với
system bus
ng
Addr bus
th
an
Thanh ghi status/control
cu
u
du
o
Control bus
I/O
logic
Logic giao tiếp
thiết bị ngoại vi
Status
Conrol
Sơ đồ khối của một I/O module
CuuDuongThanCong.com
Data
8
/>
.c
om
Kỹ thuật thao tác I/O
cu
u
du
o
ng
th
an
co
ng
Programmed I/O: data được trao đổi giữa
CPU và I/O module. CPU thực thi một
chương trình mà qua đó điều khiển hoạt
động của I/O
I/O dùng ngắt điều khiển
I/O dùng DMA: I/O module và bộ nhớ
trao đổi data một cách trực tiếp.
9
CuuDuongThanCong.com
/>
.c
om
Programmed I/O
cu
u
du
o
ng
th
an
co
ng
CPU phát lệnh đến I/O module.
I/O module thực hiện tác vụ theo yêu cầu
và đặt các bit thích hợp trong thanh ghi
trạng thái.
Định kỳ CPU phải kiểm tra trạng thái của
I/O module cho đến khi nhận thấy tác vụ
yêu cầu đã hoàn tất.
10
CuuDuongThanCong.com
/>
.c
om
Programmed I/O (tt)
ng
I/O command,I/O instruction
ng
cu
u
du
o
Control
Test
Read
Write
th
an
co
Để thực hiện một instruction liên quan đến I/O, CPU
phát ra một addr + I/O command
Có bốn loại I/O command
Một I/O instruction tương ứng với một I/O command
11
CuuDuongThanCong.com
/>
.c
om
Programmed I/O (tt)
ng
Memory-mapped I/O, Isolated I/O
cu
u
du
o
ng
th
an
co
Là hai cơ chế địa chỉ trong trường hợp dùng chung bus.
Memory-mapped I/O: chỉ có một không gian địa chỉ
chung cho bộ nhớ và thiết bị I/O, dùng các instruction
truy xuất giống nhau.
Isolated I/O: toàn bộ không gian địa chỉ khả dụng cho cả
hai, sử dụng các I/O command đặc biệt để kích hoạt các
I/O command line treân bus
12
CuuDuongThanCong.com
/>
501
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
sign=1:sẵn sàng
ng
operand
“1”
501
501
202
500
ng
th
an
co
Addr
200
u
Instruction
Start I/O
Test I/O
Branch Not Ready
In
(b) Isolated I/O
cu
Addr
200
201
Thanh ghi trạng thái
và điều khiển
1: bắt đầu đọc
du
o
Instruction
Ld AC
Store AC
202
Ld AC
Branch if Sign=0
Ld AC
(a) Memory-mapped I/O
Thanh ghi data nhaäp
.c
om
500
7
CuuDuongThanCong.com
operand
4
4
201
4
13
/>
.c
om
Interrupt-driven I/O
cu
u
du
o
ng
th
an
co
ng
CPU phát ra lệnh I/O và chuyển sang
phục vụ tác vụ khác.
I/O module ngắt CPU để yêu cầu phục vuï
Interrupt controller
14
CuuDuongThanCong.com
/>
.c
om
Cơ chế DMA
ng
th
an
co
ng
I/O Module
Main Memory
Dùng DMA module
Khi CPU muốn đọc hay ghi một khối data, nó
phát ra một lệnh đến DMA module kèm theo
các thông tin sau:
cu
u
du
o
Yêu cầu là đọc hay ghi
Địa chỉ của thiết bị
Vị trí bắt đầu trong bộ nhớ
Số lượng từ được đọc hay ghi
15
CuuDuongThanCong.com
/>
.c
om
Data count
Data register
Addr
lines
Addr register
Sơ đồ khối của DMA
module tiêu biểu
Read
cu
INTR
u
DMA ACK
du
o
DMA REQ
ng
th
an
co
ng
Data
lines
Control logic
Write
16
CuuDuongThanCong.com
/>
.c
om
Cơ chế DMA (tiếp theo)
cu
u
du
o
ng
th
an
co
ng
CPU chuyển sang công việc khác sau khi
đã chuyển lệnh đến DMA module
DMA module được giao phó toàn bộ hoạt
động I/O, nó truyền/nhận toàn bộ khối dữ
liệu lần lượt từng từ một với bộ nhớ.
Khi hoạt động truyền/nhận dữ liệu hoàn
tất DMA module gửi một ngắt ñeán CPU.
17
CuuDuongThanCong.com
/>
.c
om
Cơ chế DMA (tt)
cu
u
du
o
ng
th
an
co
ng
DMA module cần lấy điều khiển bus để truyền
data.
DMA module dùng bus khi CPU không sử dụng
hoặc buộc CPU vào trạng thái treo tạm thời
Kỹ thuật buộc CPU treo tạm thời là phổ biến và
được xem như thực hiện một chu kỳ chiếm hữu
(cycle-stealing), DMA module chiếm một chu
kỳ bus.
18
CuuDuongThanCong.com
/>
.c
om
Lấy lệnh
Giải mã
lệnh
Processor
Cycle
Processor
Cycle
Processor
Cycle
Thực thi
lệnh
Lưu kết
quả
th
Processor
Cycle
Processor
Cycle
Processor
Cycle
du
o
ng
Processor
Cycle
an
co
ng
Instruction Cycle
Xử lý
ngắt
cu
u
Lấy toán
hạng
Những thời
điểm DMA
chiếm hữu
CuuDuongThanCong.com
Thời điểm
ngắt
19
/>
.c
om
Các cấu hình có thể của DMA
cu
u
du
o
ng
th
an
co
ng
Dùng một DMA module dùng chung
Dùng nhiều DMA module
Dùng I/O bus giao tiếp với moät DMA
module
20
CuuDuongThanCong.com
/>
DMA
module
I/O
I/O
.c
om
th
I/O
I/O
ng
du
o
u
cu
CPU
I/O
DMA
module
Memory
an
co
DMA
module
CPU
Memory
ng
CPU
I/O
System bus
DMA
module
Memory
I/O bus
I/O
I/O
21
CuuDuongThanCong.com
/>
.c
om
I/O channel
Sự tiến bộ trong chức năng I/O:
cu
u
du
o
ng
th
an
co
ng
CPU điều khiển trực tiếp một thiết bị ngoại vi
Thêm vào một I/O module. CPU dùng I/O được lập trình
không cần ngắt
Thêm vào I/O module, sử dụng ngắt, CPU không cần chờ hoạt
động I/O
I/O module được trao đổi trực tiếp với bộ nhớ qua DMA, gửi
khối data không thông qua CPU, ngoại trừ thời điểm đầu và
cuối.
I/O module được cải tiến để trở thành một bộ xử lý có thẩm
quyền riêng, với tập lệnh đặc biệt dành cho I/O. CPU chỉ cho
bộ xử lý này thực hiện một chương trình trong bộ nhớ
I/O module có bộ nhớ cục bộ và thực sự là một máy
tính(terminal)
22
CuuDuongThanCong.com
/>
.c
om
I/O Channel (tt)
cu
u
du
o
ng
th
an
co
ng
Một I/O module nhận lấy hầu hết các xử
lý chi tiết và thực hiện một giao thức mức
cao được gọi là một I/O channel hay I/O
processor
I/O channel là mở rộng khái niệm DMA.
Một I/O channel có khả năng thực thi các
lệnh I/O, điều khiển toàn bộ các hoạt
động I/O
23
CuuDuongThanCong.com
/>
.c
om
Các đặc tính của I/O channel
cu
u
du
o
ng
th
an
co
ng
Các Inst I/O nằm trên bộ nhớ chính,được thực
hiện bởi bộ xử lý có mục đích đặc biệt nằm ngay
trên I/O channel.
CPU chỉ ra chương trình trong bộ nhớ cho I/O
channel
Chương trình sẽ chỉ ra thiết bị, vùng nhớ lưu trữ,
thứ tự và các thao tác cần tiến hành trong điều
kiện lỗi nào đó. I/O chanel theo các chỉ thị này
để điều khiển hoạt động truyền/nhận data.
24
CuuDuongThanCong.com
/>
Selector
Đường dẫn
tín hiệu điều
khiển đến
CPU
I/O
controller
ng
Multiplexor
th
an
co
I/O
controller
ng
Data và Addr
Channel đến
Main memory
.c
om
Hai kiến trúc I/O channel phổ dụng
cu
u
du
o
(a) Selector
I/O
controller
I/O
controller
I/O
controller
I/O
controller
CuuDuongThanCong.com
(b) Multiplexor
/>
25