Bài giảng Kiến trúc máy tính - Chương 6: Hệ thống vào/ra - Phan Trung Kiên

Tóm tắt Bài giảng Kiến trúc máy tính - Chương 6: Hệ thống vào/ra - Phan Trung Kiên: ...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 ... 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 ...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ắ...

pdf54 trang | Chia sẻ: havih72 | Lượt xem: 347 | Lượt tải: 0download
Nội dung tài liệu Bài giảng Kiến trúc máy tính - Chương 6: Hệ thống vào/ra - Phan Trung Kiên, để tải tài liệu về máy 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

File đính kèm:

  • pdfbai_giang_kien_truc_may_tinh_chuong_6_he_thong_vaora_phan_tr.pdf