à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
54 trang |
Chia sẻ: trungkhoi17 | Lượt xem: 829 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Bài giảng môn Kiến trúc máy tính - Chương 6: Hệ thống vào, ra, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
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
Phan Trung Kiên 26
Nguyên tắc hoạt động
BXL không mất thời gian chờ đợi
BXL không phải kiểm tra trạng thái
sẵn sàng của TBNV
Modul vào/ra ngắt BXL khi nó
ở
trạng
thái sẵn sàng
Phan Trung Kiên 27
Hoạt động
Mạch điều khiển
thiết bị
phát ra ngắt
BXL thực hiện
xong lệnh hiện tại
BXL phát tín hiệu
chấp nhận ngắt
BXL cất nội dung Thanh ghi
cờ
và
Bộ đếm CT vào Stack
BXL nạp vào Bộ đếm CT
giá
trị địa chỉ
mới lấy từ
ngắt vào
BXL cất các thông tin còn
lại của trạng thái xử
lý
Thực hiện
ngắt
Khôi phục
thông tin trạng
thái
Khôi phục Thanh
ghi cờ
và
Bộ đếm
CT
P
h
ầ
n
c
ứ
n
g
P
hần m
ềm
Phan Trung Kiên 28
Đặc điểm
Có
sự
kết hợp giữa phần cứng và
phần mềm
•
Phần cứng: yêu cầu ngắt BXL
•
Phần mềm: trao đổi dữ
liệu
BXL trực tiếp điều khiển vào/ra
BXL không phải đợi Modul vào/ra
hiệu quả
BXL sử
dụng tốt hơn
Phan Trung Kiên 29
Các PP xác định modul ngắt
Nhiều đường yêu cầu ngắt
(Different line for each module)
Kiểm tra vòng bằng phần mềm
(Software poll)
Kiểm tra vòng bằng phần cứng
(Daisy Chain or Hardware poll)
Chiếm bus (Bus Master)
Phan Trung Kiên 30
PP1: Nhiều đường yêu cầu ngắt
BXL phải có
các đường yêu cầu ngắt khác nhau
cho mỗi modul vào/ra
Hạn chế
số lượng thiết bị
Modul
vào ra
Modul
vào ra
Modul
vào ra
Modul
vào ra
BXL
T
h
a
n
h
g
h
i
n
g
ắ
t
INTR 0
INTR 1
INTR 2
INTR 3
Phan Trung Kiên 31
PP2: Kiểm tra vòng bằng phần mềm
BXL thực hiện phần mềm kiểm tra từng Modul
Tốc độ
chậm
Modul
vào ra
Modul
vào ra
Modul
vào ra
Modul
vào ra
BXL
Cờ
yêu
cầu
ngắt
INTR
Phan Trung Kiên 32
PP3: Kiểm tra vòng bằng phần cứng
BXL phát tín hiệu chấp nhận ngắt đến chuỗi các Modul
vào/ra
Modul sẽ đáp ứng bằng cách đặt vectơ ngắt lên bus dữ
liệu
BXL sử
dụng vectơ để
xác định CTC điều khiển ngắt
Modul
vào ra
Modul
vào ra
Modul
vào ra
Modul
vào ra
BXL
Cờ
yêu
cầu
ngắt
INTR
Bus dữ
liệu
INTA
Phan Trung Kiên 33
PP4: Chiếm bus
Modul vào/ra cần chiếm bus trước khi
nó
phát tín hiệu yêu cầu ngắt
Ví
dụ:
•
PCI
•
SCSI
Phan Trung Kiên 34
Xử
lý với nhiều ngắt
Các ngắt bị
cấm
•
BXL sẽ
bỏ
qua các ngắt khác trong khi đang
thực hiện một ngắt
•
Các ngắt phải chờ
và được kiểm tra sau khi
ngắt đang phục vụ được xử
lý xong
•
Các ngắt được thực hiện tuần tự
Định nghĩa ưu tiên ngắt:
•
Ngắt có
mức ưu tiên thấp hơn thì
có
thể
bị
ngắt bởi ngắt có ưu tiên cao hơn
•
Khi ngắt có
mức ưu tiên cao hơn được xử
lý
xong thì
BXL quay về
ngắt trước đó
Phan Trung Kiên 35
Ngắt tuần tự
Phan Trung Kiên 36
Ngắt lồng nhau
Phan Trung Kiên 37
Nhiều ngắt xảy ra đồng thời
Nếu có
nhiều yêu cầu ngắt cùng một
lúc
gửi đến BXL thì
BXL giải quyết
thế
nào?
Nhờ
sự
can thiệp của Mạch điều
khiển ngắt lập trình được (PIC -
Programmable Interrupt Controller)
Phan Trung Kiên 38
PIC
PIC có
nhiều đường vào yêu cầu ngắt
PIC chọn ngắt có ưu tiên cao nhất (không
bị
cấm) gửi tới BXL
Modul
vào ra
Modul
vào ra
Modul
vào ra
Modul
vào ra
PIC INTR 0
INTR 1
INTR 2
INTR 3
BXL
Bus DL
INTR
INTA
Phan Trung Kiên 39
Ví
dụ: PIC 8259A
Phan Trung Kiên 40
Vào/ra bằng DMA
Vào ra bằng chương trình và
vào/ra
bằng ngắt do BXL điều khiển
•
Tốc độ
truyền bị
hạn chế
•
Chiếm thời gian của BXL
Để
khắc phục, dùng DMA
•
Thêm modul phần cứng trên bus:
DMAC (DMA Controller)
•
DMAC điều khiển vào/ra không qua
BXL
Phan Trung Kiên 41
Sơ đồ
cấu trúc của DMAC
Phan Trung Kiên 42
Các thành phần của DMAC
Thanh ghi dữ
liệu: chứa dữ
liệu cần
trao đổi
Thanh ghi địa chỉ: chứa địa chỉ ngăn
nhớ
dữ
liệu
Bộ đếm dữ
liệu: chứa số
từ
dữ
liệu
cần trao đổi
Logic điều khiển: điều khiển hoạt
động của DMAC
Phan Trung Kiên 43
Sơ đồ
DMACBXL Bộ
nhớ TBNV
HRQ
DACK
DREQ
HLDA
Bus địa chỉ
Bus dữ
liệu
Bus điều khiển
Phan Trung Kiên 44
Quá
trình hoạt động
B1: TBNV gửi tín hiệu DREQ (Dma REQuest) tới DMAC
B2: DMAC gửi tín hiệu HRQ (Hold ReQuest) để
xin
dùng các đường bus
B3: BXL sẽ
thực hiện xong chu kỳ
bus hiện tại và
trả
lời
đồng ý bằng việc gửi tín hiệu HLDA (HoLD
Acknowledge) tới DMAC
B4: DMAC gửi tín hiệu DACK (Dma ACKnowledge) tới
TBNV báo chuẩn bị
truyền dữ
liệu
B5: DMAC thực hiện điều khiển quá
trình truyền dữ
liệu
giữa bộ
nhớ
và
TBNV
B6: DMAC thực hiện xong công việc, nó
bỏ
kích hoạt tín
hiệu HRQ. Hệ
thống trở
lại bình thường.
Phan Trung Kiên 45
Các kiểu thực hiện DMA
DMA truyền theo khối
(block-transfer
DMA): DMAC sử
dụng bus để
truyền cả
khối
dữ
liệu.
DMA ăn trộm chu kỳ
(cycle stealing DMA):
DMAC ép buộc BXL treo tạm thời từng chu kỳ
để
thực hiện truyền một byte dữ
liệu.
DMA trong suốt
(transparent DMA):
DMAC nhận biết những chu kỳ
nào BXL không
dùng bus thì
lấy bus để
tranh thủ
truyền một
byte dữ
liệu.
Phan Trung Kiên 46
Cấu hình DMA: kiểu 1
Bus đơn, bộ điều khiển DMA riêng rẽ
Mỗi lần truyền, DMAC sử
dụng bus 2 lần:
•
Từ
Modul vào/ra đến DMAC
•
Từ DMAC đến bộ
nhớ
BXL bị
treo bus 2 lần
Phan Trung Kiên 47
Cấu hình DMA: kiểu 2
Bus đơn, bộ điều khiển DMA tích hợp
DMAC điều khiển một hoặc vài Modul vào/ra
Mỗi lần truyền, chỉ
sử
dụng bus 1 lần
•
Từ
DMAC tới bộ
nhớ
BXL chỉ
bị
treo bus 1 lần
Phan Trung Kiên 48
Cấu hình DMA: kiểu 3
Bus vào/ra tách rời, hỗ
trợ
tất cả
các thiết
bị
cho phép DMA
Mỗi lần truyền chỉ
dùng bus 1 lần:
•
Từ
DMA tới bộ
nhớ
BXL cũng chỉ
bị
treo bus 1 lần
Phan Trung Kiên 49
Nối ghép thiết bị
ngoại vi
Các kiểu nối ghép vào/ra:
•
Nối ghép song song
•
Nối ghép nối tiếp
Các cấu hình nối ghép:
•
Điểm tới điểm
•
Điểm tới đa điểm
Phan Trung Kiên 50
Nối ghép song song
Truyền nhiều bit song song
Tốc độ
nhanh
Cần nhiều đường truyền dữ
liệu
Modul
vào/ra
song
song
Đến
bus hệ
thống
Đến
thiết bị
ngoại
vi
Phan Trung Kiên 51
Nối ghép nối tiếp
Truyền lần lượt từng bit
Cần có
bộ
chuyển đổi song song thành
nối tiếp và ngược lại
Tốc dộ
chậm
Cần ít đường truyền dữ
liệu
Modul
vào/ra
nối
tiếp
Đến
bus
hệ
thôn
g
Đến
thiết
bị
ngoạ
i vi
Phan Trung Kiên 52
Các cấu hình nối ghép
Điểm tới điểm (point-to-point):
•
Thông qua một cổng vào/ra, nối ghép với một
TBNV
•
Ví
dụ: cổng chuột, bàn phím, ...
Điểm tới đa điểm (point-to-multipoint):
•
Thông qua một cổng vào/ra, nối ghép được
với nhiều TBNV
•
Ví
dụ:
SCSI: 7 hoặc 15 thiết bị
USB: 127 thiết bị
IEEE 1394 FireWire: 63 thiết bị
Phan Trung Kiên 53
Các cổng vào-ra thông dụng trên PC
Các cổng PS/2: nối ghép bàn phím và
chuột
Cổng nối ghép màn hình
Cổng LPT (Line Printer): nối ghép với
máy in, là
cổng song song (Parallel Port) –
25 chân
Cổng COM (Communication): nối ghép với
modem, chuột, là
cổng nối tiếp (Serial Port)
–
9 chân hoặc 25 chân
Cổng USB (Universal Serial Bus): Cổng nối
tiếp đa năng, cho phép nối ghép tối đa 127
thiết bị, nhờ
các USB Hub
Phan Trung Kiên 54
Kiến trúc máy tính
HẾT CHƯƠNG 6
Các file đính kèm theo tài liệu này:
- bai_giang_mon_kien_truc_may_tinh_chuong_6_he_thong_vao_ra.pdf