Download - Ktmt chuong 6
Phan Trung Kiên 1
Kiến trúc máy tính
Chương 6HỆ
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 ĐKvào/ra
Mạch ĐKvào/ra
Mạch ĐKvào/ra
Đĩa ĐĩaĐồ
họaMạ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 TBNVTÝn hiÖu §K
tõ Modulvµo/ra
TÝn hiÖu TT®Õn Modul
vµo/ra
D÷ liÖu ®Õnvµ tõ Modul
vµo/ra
D÷ liÖu ®Õn vµtõ m«i tr−êng
bªn ngoµi
Logic §KBé ®Ö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 ®−êngd÷ liÖu
Nèi ghÐp víiTBNV
C¸c ®−êng®Þa chØ
C¸c ®−êng®iÒu khiÓn
Thanh ghi d÷ liÖu
Thanh ghi §K/tr¹ng th¸i
Logicvµo/ra
Logicgiao diÖnvíi TBNV
Logicgiao diÖnví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íibus 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
OUTT/h ĐK: IO/M = 0 IO/M = 1 IO/M = 1
1 MB
00000H
FFFFFH64 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:
MOVIO/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
Phầ
n cứ
ngP
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
Than
h gh
i ngắ
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