Phan Trung Kiên
1
Kiến trúc máy tính
Chương 6
HỆ
THỐNG VÀO/RA
Phan Trung Kiên
2
Nội dung chương 6
Tổng quan về
hệ
thống vào/ra
Các phương pháp địa chỉ
hóa cổng
vào/ra
Các phương pháp điều khiển vào/ra
Nối ghép thiết bị
ngoại vi.
Phan Trung Kiên
3
Tổng quan về
Hệ
thống vào/ra
Chức năng của hệ
thống vào/ra: trao
đổi thông tin giữa máy tính với thế
giới bên ngoài
Các thao tác cơ bản:
•
Vào dữ
liệu (Input)
•
Ra dữ
liệu (Output)
Các thành phần chính:
•
Các thiết bị
ngoại vi
•
Mạch nối ghép vào/ra (Modul vào/ra)
Phan Trung Kiên
4
Tổng quan về
Hệ
thống vào/ra
Cache
Bus chính
BXL
Bộ
nhớ
chính
Mạch ĐK
vào/ra
Mạch ĐK
vào/ra
Mạch ĐK
vào/ra
Đĩa Đĩa
Đồ
họa
Mạng
Các ngắt
Phan Trung Kiên
5
Tại sao cần Modul vào/ra?
Không thể
nối trực tiếp các thiết bị
ngoại
với bus hệ
thống, vì:
•
BXL không thể điều khiển được tất cả
TBNV
•
Tốc độ trao đổi dữ
liệu khác nhau
•
Khuôn dạng dữ
liệu khác nhau
•
Tất cả
có
tốc độ
chậm hơn BXL và
RAM
Chức năng của Modul vào/ra:
•
Nối ghép với BXL và
hệ
thống nhớ
•
Nối ghép với một hoặc nhiều TBNV
Phan Trung Kiên
6
Các thiết bị
ngoại vi
Chức năng: chuyển đổi dữ
liệu giữa
bên trong và
bên ngoài máy tính
Phân loại:
•
TBNV giao tiếp người-máy: màn hình,
bàn phím, máy in,
•
TBNV giao tiếp máy-máy: các thiết bị
theo dõi và
kiểm tra
•
TBNV truyền thông: modem, card giao
tiếp mạng (NIC)
Phan Trung Kiên
7
Một số
TBNV thông dụng
Phan Trung Kiên
8
Sơ đồ
khối của TBNV
TÝn hiÖu §K
tõ Modul
vµo/ra
TÝn hiÖu TT
®Õn Modul
vµo/ra
D÷ liÖu ®Õn
vµ tõ Modul
vµo/ra
D÷ liÖu ®Õn vµ
tõ m«i tr−êng
bªn ngoµi
Logic §K
Bé ®Öm
Bé chuyÓn
®æi tÝn hiÖu
Phan Trung Kiên
9
Các thành phần cơ bản của TBNV
Bộ
chuyển đổi tín hiệu
(transducer):
chuyển đổi dữ
liệu từ
dạng tín hiệu điện
thành dạng năng lượng khác và ngược lại
Logic điều khiển (control logic): điều khiển
hoạt động của TBNV đáp ứng theo yêu
cầu từ
Modul vào/ra
Bộ đệm
(buffer): chứa dữ
liệu tạm thời khi
trao đổi dữ
liệu giữa Modul vào/ra và
TBNV
Phan Trung Kiên
10
Modul vào/ra
Chức năng:
•
Điều khiển và định thời gian
•
Trao đổi thông tin với BXL
•
Trao đổi thông tin với TBNV
•
Bộ đệm dữ
liệu
•
Phát hiện lỗi
Phan Trung Kiên
11
Sơ đồ
khối của Modul vào/ra
C¸c ®−êng
d÷ liÖu
Nèi ghÐp víi
TBNV
C¸c ®−êng
®Þa chØ
C¸c ®−êng
®iÒu khiÓn
Thanh ghi d÷ liÖu
Thanh ghi §K/tr¹ng th¸i
Logic
vµo/ra
Logic
giao diÖn
víi TBNV
Logic
giao diÖn
víi TBNV
D÷ liÖu
§iÒu khiÓn
Tr¹ng th¸i
D÷ liÖu
§iÒu khiÓn
Tr¹ng th¸i
Nèi ghÐp víi
bus hÖ thèng
Phan Trung Kiên
12
Thành phần cơ bản của Modul vào/ra
Thanh ghi dữ
liệu: đệm dữ
liệu trong
quá
trình trao đổi
Các cổng vào/ra: kết nối với TBNV,
mỗi cổng có
một địa chỉ
xác định
Thanh ghi điều khiển/trạng thái: lưu
giữ thông tin điều khiển, trạng thái
cho các cổng vào/ra
Logic điều khiển: điều khiển Modul
vào/ra
Phan Trung Kiên
13
Các PP địa chỉ
hóa cổng vào/ra
Vào/ra tách biệt (isolated IO)
Vào/ra theo bản đồ
bộ
nhớ
(memory
mapped IO)
Phan Trung Kiên
14
Vào/ra cách biệt
Đặc điểm:
•
Không gian địa chỉ
cổng vào/ra nằm
ngoài không gian địa chỉ
bộ
nhớ
Cách truy nhập:
•
Cần có
tín hiệu phân biệt truy nhập
cổng vào/ra hay truy nhập bộ
nhớ
•
Sử
dụng lệnh vào/ra chuyên dụng: IN,
OUT.
Phan Trung Kiên
15
Ví
dụ đối với BXL 8088
BỘ
NHỚ
THIẾT BỊ
VÀO THIẾT BỊ
RA
Lệnh: MOV
IN
OUT
T/h ĐK: IO/M = 0 IO/M = 1 IO/M = 1
1 MB
00000H
FFFFFH
64 KB
0000H
FFFFH
64 KB
0000H
FFFFH
Phan Trung Kiên
16
Vào/ra theo bản đồ
bộ
nhớ
Đặc điểm:
•
Không gian địa chỉ
cổng vào/ra nằm
trong không gian địa chỉ
bộ
nhớ
Cách truy nhập:
•
Dùng chung tín hiệu như truy nhập bộ
nhớ
•
Dùng chung lệnh trao đổi dữ
liệu với bộ
nhớ
Phan Trung Kiên
17
Ví
dụ đối với BXL 8088
Lệnh và
tín hiệu
điều khiển chung
cho cả
hai:
MOV
IO/M = 0
00000H
FFFFFH
VÀO/RA
BỘ
NHỚ
Phan Trung Kiên
18
Các phương pháp điều khiển vào/ra
Vào/ra bằng chương trình
(Programmed IO)
Vào/ra bằng ngắt
(Interrupt Driven IO)
Vào/ra bằng DMA
(Direct Memory Access)
Phan Trung Kiên
19
Vào/ra bằng chương trình
Nguyên tắc chung:
•
Sử
dụng lệnh vào/ra trong chương trình
để trao đổi dữ
liệu với cổng vào/ra
•
Khi BXL thực hiện chương trình, gặp
lệnh vào/ra thì BXL điều khiển trao đổi
dữ
liệu với thiết bị
ngoại vi
Phan Trung Kiên
20
Hoạt động vào/ra bằng chương trình
BXL yêu cầu thao tác vào/ra
Modul vào/ra thực hiện thao tác
Modul vào/ra thiết lập các bit trạng
thái
BXL kiểm tra các bit trạng thái:
•
Nếu chưa
sẵn sàng thì
quay lại
kiểm tra
•
Nếu đã
sẵn sàng thì
tiến hành trao đổi
dữ
liệu với modul vào ra
Phan Trung Kiên
21
Lưu đồ
hoạt động
Đọc trạng thái
của TBNV
TBNV sẵn sàng?
Trao đổi DL
với TBNV
Sai
Đúng
Phan Trung Kiên
22
Các lệnh vào/ra
BXL phát ra địa chỉ
•
Xác định Modul vào/ra (và
thiết bị
nếu
một Modul chứa nhiều hơn 1 thiết bị)
BXL phát ra lệnh:
•
Điều khiển: yêu cầu Modul làm việc gì
VD: điều khiển quay đĩa
•
Kiểm tra: kiểm tra trạng thái
VD: nguồn? lỗi?
•
Đọc/ghi
Modul truyền DL qua bộ đệm từ/tới thiết bị
Phan Trung Kiên
23
Đặc điểm
BXL trực tiếp điều khiển vào/ra
•
Nhận biết thông tin trạng thái từ
TBNV
•
Phát tín hiệu điều khiển Read/Write
•
Trao đổi dữ
liệu
BXL chờ đến khi Modul vào/ra hoàn
thành thao tác
Tốn thời gian của BXL
Phan Trung Kiên
24
Phân loại ngắt
Ngắt cứng
(Hard Interrupt): yêu cầu ngắt
do mạch phần cứng bên ngoài gửi đến
•
Ngắt cứng NMI
(None Maskable Interrupt): có
yêu cầu ngắt thì
bắt buộc phải ngắt
Ví
dụ: Có
sự
cố
nguồn; lỗi bộ
nhớ
•
Ngắt cứng MI
(Maskable Interrupt): có
yêu
cầu ngắt thì
có
hai khả năng xẩy ra:
Được ngắt nếu ngắt đó
ở
trạng thái cho phép
Không được ngắt nếu ngắt đó
ở
trạng thái bị
cấm
Ngắt cứng MI dùng để
trao đổi dữ
liệu
với
TBNV
Phan Trung Kiên
25
Phân loại ngắt
Ngắt mềm
(Soft Interrupt): Yêu cầu ngắt
do lệnh gọi ngắt nằm trong chương trình
sinh ra
Ngắt ngoại lệ
(Exception Interrupt): là
các
ngắt sinh ra do lỗi xuất hiện trong quá
trình thực hiện chương trình
•
Ví
dụ:
Gặp lệnh chia cho 0
Lệnh sai cú
pháp
tràn số
Nhảy đến các điều kiện không tồn tại