Input /Output Devices Input /Output Devices ụ
M c tiêu
ấ ạ ấ ạ
đđ c ặc ặ đđi m ểi m ể
t b I/O. t b I/O. ụ ụ
ầ ủ ầ ủ
ế ị ế ị
ữ ữ
ể
t b I/O. t b I/O. ế ị t b I/O. ế ị t b I/O. ắ ắ
ế
ắ N m nguyên lý c u t o và N m nguyên lý c u t o và ắ ế ị ủ c a thi ế ị ủ c a thi ệ Nhi m v và yêu c u c a thi Nhi m v và yêu c u c a thi ệ ế Cách giao ti p gi a CPU và thi Cách giao ti p gi a CPU và thi ế ớ ưư c trong quá trình ng t quãng. ểHi u các b Hi u các b c trong quá trình ng t quãng. ớ N m ắN m ắ đưđư c cợc cợ ơơ ch DMA ế ch DMA
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
11
ộ
ế ị ế ị
ớ ớ
ế ị ế ị
t b I/O : t b I/O :
ộN i dung N i dung Nguyên lý xu t nh p trong máy tính ậ ấ Nguyên lý xu t nh p trong máy tính ậ ấ Cách CPU giao ti p v i thi ế t b I/O. Cách CPU giao ti p v i thi ế t b I/O. Ng t quãng ắ ắNg t quãng DMA DMA Các thi Các thi Hard Disk,Floopy Disk, Printer, Keyboard,Mouse Hard Disk,Floopy Disk, Printer, Keyboard,Mouse
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
22
ế ị ế ị
t b I/O : t b I/O :
ế ị ế ị
t b I/O là 1 thi t b I/O là 1 thi ấ ấ
ầ ầ
ự ự
Thi Thi Thi ả ế ị ế ị ả Thi t b có kh t b có kh ữ ệ ữ ệ ng cung c p d li u khi CPU nnăăng cung c p d li u khi CPU ọ ụ đđ c và có ọc và có ụ yêu c u trong tác v yêu c u trong tác v ữ ệ kh nảkh nả ăăng ghi d li u vào khi CPU ữ ệ ng ghi d li u vào khi CPU ụ ụ th c thi 1 tác v ghi. th c thi 1 tác v ghi.
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
33
ậ
ế
Làm sao CPU nh n bi
ộ t m t I/O
ỗ
ị
ỉ
đ a ch riêng g i là c ng (port). Khi
M i I/O có 1 ấ
ọ ấ
CPU truy xu t I/O , CPU xu t ra 1
ổ ỉ ị đ a ch .
ị ủ đ a ch ộ ả ủ ộ b gi ộ ả b gi ớ ứ ứ ớ
ấ ấ
M t s bit cao c a ộ ả ỉ đi vào b gi ộ ố i mã, trên đư ng ra c a b ệ ẽ ờ ệ ẽ i mã s có tín hi u Chip i mã s có tín hi u Chip ố select tươương ng v i I/O mà CPU mu n truy xu t. ố ng ng v i I/O mà CPU mu n truy xu t. select t
ọ ế ạ ẽ đđi i đđ n m i I/O ạ ẽ ọn m i I/O ế i s i s ờ đưđư ng Chip Select tích ờng Chip Select tích
ấ ấ
Các Các đđ a ch th p còn l ấ ỉ ị ấ ị ỉ a ch th p còn l ỉ nhnhưưng ch có I/O nào có ỉ ng ch có I/O nào có ợ ớ đưđư c truy xu t. ự ợ ớ ự c truy xu t. c c m i c c m i
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
44
ồ ả ồ ả gi
SSơơ đđ gi
i mã i mã
ỉ ị ị ỉ đđ a ch a ch
ROMCS
Bit cao
RAMCS ADDRESS BUS
I/OCS
CPUCPU
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
55
ấ Các bit th p Address bus
Minh Minh h aọh aọ
HARD DISK FLOPPY DISK
KEYBOARD
MONITOR
MEMORY
CPU
VIDEO CONTROLLER
KEYBOARD CONTROLLER
HARDDISK CONTROLLER
FLOPPYDISK CONTROLLER
BUSBUS
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
66
ạ ớ ạ ớ
ế ị ế ị
CPU liên l c v i thi CPU liên l c v i thi
t b I/O t b I/O
ạ ạ
ớ ớ
ạ t b ngo i vi liên l c v i CPU thông ạ t b ngo i vi liên l c v i CPU thông
Thi ị ế Thi ị ế ổ qua các c ng I/O . ổ qua các c ng I/O .
ậ ậ
t b I/O có t c t b I/O có t c
ụ ụ
ộ ủ ơơn t c ốn t c ố đđ c a ộ ủ c a ưư i ta ời ta ờ
ệ ố đđ làm vi c ch m h ộ ế ị ệ ố ộ ế ị làm vi c ch m h Các thi Các thi ề đđ kh c ph c nh ể ưư c ợc ợ đđi m này ng ắ ể ấ ểi m này ng ắ ể ề ấ kh c ph c nh CPU r t nhi u CPU r t nhi u dùng vùng nh ớ đđ m.ệm.ệ dùng vùng nh ớ
ế ị ế ị
t b I/O và CPU t b I/O và CPU
đưđư c ợc ợ
ự ự ự ự
ề ề S truy n thông tin gi a thi S truy n thông tin gi a thi ệ ệ th c hi n theo 2 b th c hi n theo 2 b
ữ ữ ưư c : ớc : ớ
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
77
ạ ớ ạ ớ
ế ị ế ị
CPU liên l c v i thi CPU liên l c v i thi
t b I/O t b I/O
ữ ữ
ộ ộ
BBưư c 1ớc 1ớ
ớ ớ : truy n thông tin gi a b nh : truy n thông tin gi a b nh
ề ề ộ ớ đđ m.ệm.ệ ộ ớ trong và b nh trong và b nh
ữ ộ ớ BBưư c 2ớc 2ớ : truy n thông tin gi a b nh ữ ộ ớ : truy n thông tin gi a b nh ệ ệ m và thi đđ m và thi
ề ề ế ị ế ị t b I/O. t b I/O.
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
88
ạ ớ ạ ớ
ế ị ế ị
CPU liên l c v i thi CPU liên l c v i thi
t b I/O t b I/O
ể ể ế ị ế ị
ệ đđ ng ồng ồ ứ đđ 1 CPU làm vi c 1 CPU làm vi c ch c ệ ứ ch c ằ ạ ề t b ngo i vi b ng cách ằ ạ ề t b ngo i vi b ng cách ờ ờ
Có th t ể ổ Có th t ể ổ ờ ớ th i v i nhi u thi ờ ớ th i v i nhi u thi phân chia th i gian. phân chia th i gian.
Buffer
ế ị ộ ớ Thi t b I/O B nh trong
ể ừ ề Tín hi u ệ đi u khi n t CPU
ề
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
99
ể ủ ộ ớ Tín hi u ệ đi u khi n c a b nh đ mệ
ắ
ắNg t quãng (Interrupt) Ng t quãng (Interrupt)
ắ ắ ắ
ừ ừ
Ng t (Interrupt) là gì ? : ắNg t (Interrupt) là gì ? : ự Ng t là s làm ng ng ch ự Ng t là s làm ng ng ch
ươương trình
ang ch y.ạ ng trình đđang ch y.ạ
ươương trình ng trình
M t interrupt xu t hi n khi 1 ch ấ ộ M t interrupt xu t hi n khi 1 ch ấ ộ ị ự ang th c thi b ng đđang th c thi b ng ị ự
ệ ệ ưưng.ng.
ợ ạ ợ ạ
ề ề
ở ở
Interrupt Interrupt đưđư c t o ra b i nhi u lý do khác c t o ra b i nhi u lý do khác nhau nhau
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
1010
ắ
ắNg t quãng (Interrupt) Ng t quãng (Interrupt)
ệ ệ
ậ ậ
ụ ụ ắ ụ ụ ắ
ầ ầ ạ ạ
ấ ấ
ậ ậ
ẳ ẳ
Do user l p trình có l nh INT yêu c u
Do user l p trình có l nh INT yêu c u
ưư xu t nh p ch ng h n).
xu t nh p ch ng h n).
ph c v ng t quãng (nh
ph c v ng t quãng (nh
ị ị
ó không mong đđó không mong i c a phép chia 0, phép tính b tràn i c a phép chia 0, phép tính b tràn
ưư l l
ế ị ế ị
Do h th ng gây ra vì 1 lý do nào ệ ố ệ ố Do h th ng gây ra vì 1 lý do nào ỗ ủ ố ỗ ủ ốmu n (nh mu n (nh s …)ốs …)ố Do thi Do thi
t b I/O gây ra : máy in, bàn phím, t b I/O gây ra : máy in, bàn phím,
ổ đđĩa ... ĩa ... ổ
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
1111
Software Interrupt Software Interrupt
ề ề
ươương trình. ng trình.
Ng t m m : ắ Ng t m m : ắ ệ Do thi hành l nh INT trong ch ệ Do thi hành l nh INT trong ch ng trình con trong h ệ ươương trình con trong h ệ ầ Xãy ra khi c n 1 ch ầ Xãy ra khi c n 1 ch ươương trình con ờ ưư ng là ch ề ng trình con ờng là ch ềi u hành và th đđi u hành và th ậ ấ xu t nh p. ậ ấ xu t nh p.
ọ
ề
ắ Cú pháp g i 1 ng t m m trong ch
ương trình :
INT number
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
1212
Software Interrupt Software Interrupt
ộ ố ộ ố
ụ ụ
ắ ắ
M t s ng t m m thông d ng : ề M t s ng t m m thông d ng : ề
INT 10h : Video services
INT 16h : Keyboard services
INT 17h : Printer services
INT 1AH : Time of Day
INT 1CH : User Time Interrupt
INT 21H : Dos Service
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
1313
ọ ọ ọ ọ
ụ ụ
ề ề
ắ ắ
Thí d minh h a g i ng t m m Thí d minh h a g i ng t m m
ROM BIOS
CALLING PROGRAM
MOV … 1
INT 10h
ADD …. 2
……..
STL CLD PUSH ES PUSH DS …… IRET
3 F000:F065 F000:F066 F000:F067 F000:F068 ………….
RETURN TO CALLING PROGRAM
4
3069 F000:F065 F000:AB62
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
1414
INTERRUPT VECTOR TABLE
Giải thích
1. Con số theo sau INT báo cho CPU biết phải định vị mục nào trong bảng vector ngắt quãng.
2. CPU nhảy đến địa chỉ lưu trong bảng vector ngắt quãng (F000:F065).
3. Một chương trình con (điều khiển ngắt) tại F000:F065 bắt đầu được thi hành và hoàn tất khi gặp lệnh IRET.
4. lệnh IRET giúp CT quay trở lại ngay sau lệnh gọi ngắt và tiếp tục thi hành lệnh này.
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
1515
Hệ thống ngắt IBM PC/XT Hệ thống ngắt IBM PC/XT
Ngắt địa chỉ logic địa chỉ VL công dụng
0 00E3:3072 03EA2 lỗI phép chia
1 0600:08ED 068ED chạy từng lệnh
2 F000:E2C3 FE2C3 ngắt không che NMI
3 0600:08E6 068E6 điểm dừng
4 0700:0147 07147 tràn khi làm việc vớI số có dấu
5 F000:FF54 FFF54 In màn hình (BIOS)
6 ,7 dự trữ
8 đến F các ngắt của chip 8259
10 F000:F065 FF065 Vào ra cho Video (BIOS)
11 F000:F84D FF84D kiểm tra cấu hình tbị (BIOS)
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
1616
12 F000: F841 FF841 kiểm tra kích thước bộ nhớ (BIOS)
Hệ thống ngắt IBM PC/XT Hệ thống ngắt IBM PC/XT
Ngắt địa chỉ logic địa chỉ VL công dụng
13 F000:EC59 FEC59 Vào/ra đĩa (BIOS)
14 F000:E739 FE739 vào/ra RS 232 (BIOS)
15 F000:F859 FF859 vào/ra cassette (BIOS)
16 F000:E82E FE82E Vào/ra bàn phím (BIOS)
0700:0147 07147 tràn khi làm việc vớI số có dấu
2 F000:FF54 FFF54 In màn hình (BIOS)
3 ,7 dự trữ
8 đến F các ngắt của chip 8259
10 F000:F065 FF065 Vào ra cho Video (BIOS)
11 F000:F84D FF84D kiểm tra cấu hình tbị (BIOS)
12 F000: F841 FF841 kiểm tra kích thước bộ nhớ (BIOS)
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
1717
…….
Hệ thống ngắt IBM PC/XT Hệ thống ngắt IBM PC/XT
Ngắt địa chỉ logic địa chỉ VL công dụng
1A F000:FE6E FFE6E thờI gian hệ thống (BIOS)
1B F000:0140 00840 điều khiển Ctrl+Break
………………………………………………………………………………………..
20 PSP:0000 --------- Kết thúc chương trình DOS
21 Có thể đặt lại ---------- gọI chức năng DOS
--------------------------------------------------------------------------------------------------
F1 – FF không sử dụng
Tùy version DOS, dạng MT một số địa chỉ logic có thể khác nhau
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
1818
Một số ví dụ minh họa Một số ví dụ minh họa
Ex : Xem bảng vector ngắt quãng trên MT
a. Sử dụng DEBUG để hiển thị nội dung của các ô nhớ 0000:002Fh
b. Tìm CS:IP của lỗi phép chia, NMI và INT 8
Đối vớI lỗi phép chia INT 0, CS:IP được đặt ở địa chỉ 0,1,2,3.
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
1919
Có thể dữ liệu trên máy PC của bạn khác vớI dữ liệu trên vì còn phụ thuộc vào version của DOS, ngày tháng của BIOS, việc sử dụng bộ nhớ kép (shadow memory).
Đối với ngắt lỗi phép chia (INT 0), CS:IP được đặt ở địa chỉ 0,1,2,3.
CS = 00A7 IP = 1068
Còn INT 8 thì sao ?
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
2020
Ex : minh họa INT 0 được gọI và thi hành
MOV AL,92
SUB CL,CL
Đoạn CT trên sẽ xuất thông báo
Divide Error
DIV CL
INT 0
INT 3
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
2121
Interrupt n iộ Interrupt n iộ
ắ ự ắ ự
ợ ợ
Ng t n i : ng t t Ng t n i : ng t t
thân do CPU sinh ra còn thân do CPU sinh ra còn
ọ đưđư c g i là ọc g i là
ắ ộ ắ ộ ắ ắng t không che NMI. ng t không che NMI.
ở ở
ị ị
ạ 1 tr ng thái không mong ạ 1 tr ng thái không mong i phép chia 0 (DIV 0), phép chia b tràn, i phép chia 0 (DIV 0), phép chia b tràn,
ị ả ị ả
ấ ấ
ắ ộ Ng t n i xãy ra khi CPU ắ ộ Ng t n i xãy ra khi CPU ỗ ưư l ố l ốmu n nh ỗ mu n nh ồ ệ i n áp ngu n b gi m th p ... đđi n áp ngu n b gi m th p ... ồ ệ
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
2222
ế ị ế ị
ạ t b ngo i vi c n ạ t b ngo i vi c n
ầ đđ n ến ế ầ
Hardware Interrupt Hardware Interrupt Ng t c ng : ắ ứ Ng t c ng : ắ ứ ợ ạ đưđư c t o ra khi thi c t o ra khi thi ợ ạ CPU.CPU.
Ngắt cứng được phát sinh bởI chip 8259 Interrupt Controler, phát tín hiệu cho CPU tạm đình chỉ sự thi hành của CT hiện hành và xử lý ngắt.
ệ ệ
ắ ứ ắ ứ
ầ ầ
ĐĐăăïc tr
ắ ứ ắ ứ
ế ế
ắ ủ ïc trưưng c a ng t c ng là tín hi u yêu c u ng t ng c a ng t c ng là tín hi u yêu c u ng t ắ ủ INTR.. quãng INTR quãng ắ ắNg t bàn phím là 1 Ng t bàn phím là 1 ầ Khi c n thi ầ Khi c n thi
t ch t ch
ắ ứ ể đđi n hình ng t c ng. i n hình ng t c ng. ắ ứ ể ể ấ ươương trình có th c m ng t c ng. ng trình có th c m ng t c ng. ể ấ Chuong 5 : I/O Devices Chuong 5 : I/O Devices
2323
Hardware Interrupt Hardware Interrupt
ắ ứ ắ ứ
ệ ệ
ầ ầ
ĐĐăăïc tr
ïc trưưng c a ng t c ng là tín hi u yêu c u ng t ắ ủ ng c a ng t c ng là tín hi u yêu c u ng t ủ ắ INTR.. quãng INTR quãng
ắ
ắ ứ ắ ứ
ế ế
ắ ứ ể i n hình ng t c ng. đđi n hình ng t c ng. ắ ứ ể ể ấ ươương trình có th c m ng t c ng ng trình có th c m ng t c ng ể ấ
t ch t ch
ắNg t bàn phím là 1 Ng t bàn phím là 1 ầ Khi c n thi ầ Khi c n thi ệ ằ b ng l nh CLI (Clear Interrupt Flag). ệ ằ b ng l nh CLI (Clear Interrupt Flag).
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
2424
ả
ảB ng vector Interrupt B ng vector Interrupt
ộ ộ
ố ừ ố ừ ạ ạ
ắ
ị
ương
M t vùng nh dài 1024 bytes ầ ộ ớ ặ ở đđ u b nh ớ ầ ộ ớ ặ ởt ớ u b nh đđ t M t vùng nh dài 1024 bytes ầ ầ ử ỗ ứ ầ ầ ử ỗ ứ , m i ph n chính (0h – 400h) , ch a 256 ph n t chính (0h – 400h) , ch a 256 ph n t , m i ph n đưđư c ợc ợ ộ ử ử ộ 0hFFh và ánh s t đđánh s t là 1 b 4 bytes t 0hFFh và là 1 b 4 bytes t ả ắ ọ ắ ả ọ g i là các vector ng t , t o thành b ng vector g i là các vector ng t , t o thành b ng vector ng t .ắng t .ắ ứ đ a ch c a 1 ch ỗ ỉ ủ M i vector ng t ch a ộ ớ ụ ụ ắ đ t trong b nh . ặ trình ph c v ng t
ụ ụ
ự
ế ị
ạ ố
ế ớ ọ
ổ
Các chương trình ph c v này liên l c tr c ti p v i các thi t b I/O thông qua 1 s thanh ghi g i là c ng (port) vào/ra.
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
2525
ả
ảB ng Interrupt vector (cont) B ng Interrupt vector (cont)
ầ ầ
ợ ợ
ủ ủ
ế ế
ủ
ị
Khi 1 ng t ắ ỉ ế đđ a ch ị ầ Khi 1 ng t ắ đưđư c yêu c u, CPU không c n bi ỉ ị ế ầ a ch c yêu c u, CPU không c n bi t t ỉ ụ ụ ắ ươương trình con ph c v ng t này mà ch quan c a chủc a chủ ỉ ụ ụ ắ ng trình con ph c v ng t này mà ch quan ầ ử ỉ đđ n ph n t ố ắ ố ệ c a ng t và s này ch tâm đđ n ến ế s hi u i ầ ử ỉ ố ắ ố ệ n ph n t c a ng t và s này ch s hi u i tâm ủ ả ứ ủ ả ứ th i c a b ng interrupt vector . th i c a b ng interrupt vector . ắ ờ ỏ Ex : Khi ta g vào 1 phím, 1 tín hi u s t m th i ng t ắ ệ ủ ngang công vi c c a CPU. CPU s tìm đ n vector ng t ố s 9 (c a bàn phím). Vector này
ệ ẽ ạ ế ẽ ỉ ở đ a ch 0:24h.
ỉ ủ
ẽ ấ
ụ ụ đ a ch c a th t c chuyên ph c v
CPU s l y ra
ự
ệ ở ạ
ỗ ị
ể ế ụ
ự
ệ
ắ đ ti p t c th c hi n
ủ ụ ị ẵ bàn phím (có s n trong ROM BIOS). ủ ụ Th c hi n th t c này xong i ch b ng t Quay tr l ệ ở công vi c d dang
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
2626
Những chỉ thị ngắt này lấy địa chỉ CTC ở đâu ?
Ex : INT 21h
Để tính địa chỉ của CTC phục vụ ngắt ta :
21h * 4 = 84h cần dùng 2 word (4 bytes)cho mỗI vector ngắt hay địa chỉ CTC.
Địa chỉ 00A7:107C
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
2727
CS IP
ủ ụ ủ ụ
ế ế
ắ ỏ đđ n các th t c có ắ ỏ n các th t c có Các vector ng t tr Các vector ng t tr ẵ ẵs n trong ROM BIOS ROM BIOS s n trong
Chöùc naêng Chöùc naêng
Vector Vector ngắt ngắt
55 88 99 1010 1111 1212 1313
Ñòa Ñòa chæchæ 14H14H In maøn hình ra maùy in. In maøn hình ra maùy in. 20H20H Ño thôøi gian Ño thôøi gian 24H24H Maõ scan töø baøn phím Maõ scan töø baøn phím 40H40H Video display Video display ……………… ……………… …………....
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
2828
ụ ụ
ọ ọ
Thí d minh h a Interrupt Thí d minh h a Interrupt
00014h 00014h
ố ắ S ng t 8
00018h 00018h
0001Ch 0001Ch
00020h
x
3636 0909 7474 0000 2A2A E4E4 0000 F0F0 5B5B E0E0 0000 F0F0 7676 2A2A 0000 3030 5B5B E8E8 0000 F0F0
00024h 00024h
Ả Ắ B NG VECTOR NG T
4
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
2929
4 bytes
ạ ổ ạ ổ
Các lo i c ng vào ra Các lo i c ng vào ra
ỉ ỉ
C ng n i ti p (serial port ) : IBM PC cung c p ố ế ổ ấ ố ế ổ ấ C ng n i ti p (serial port ) : IBM PC cung c p ố ế ổ ố ế ổ 2 c ng n i ti p : COM1 hay AUX và COM2 2 c ng n i ti p : COM1 hay AUX và COM2 ị ở đđ a ch 400h và 402h trong vùng ổ ị ở ổ 2 c ng này 2 c ng này a ch 400h và 402h trong vùng ữ ệ ữ ệ d li u BIOS. d li u BIOS.
ổ
ố ế ộ
đi n ệ ố ự
ố ế hay n i tr c
ạ ế ớ
C ng n i ti p dùng cho modem tho i, m t máy in n i ti p ti p v i 1 máy tính khác.
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
3030
ạ ổ ạ ổ
Các lo i c ng vào ra Các lo i c ng vào ra
ổ
C ng song song (parallel port ) : IBM PC ổC ng song song (parallel port ) : IBM PC ổ ử ụ ử ụ ổ cho phép s d ng 3 c ng song song : PRN cho phép s d ng 3 c ng song song : PRN hay LPT1, LPT2 và LPT3. hay LPT1, LPT2 và LPT3.
ổ
ỉ ủ
ộ ớ ạ
ưu trong b nh t
i 408, 40A,
ị
ị
ị Đ a ch c a các c ng này l 40C. Tên c ngổ
ỉ đ a ch
ỉ Nơi ch a ứ đ a ch
COM1
3F8H
400
COM2
2F8H
402
PRN
3BCH
408
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
3131
LPT2
378H
40A
DMA (Direct Memory Access) DMA (Direct Memory Access)
DMA là gì ?
ỹ ỹ
ậ ậ
đđi u ềi u ề
ể ể
ề
ể ẫ đi u khi n các quá ấ
ậ
K thu t cho phép I/O device hay Bus K thu t cho phép I/O device hay Bus ề ữ ệ ệ khi n vi c truy n d li u vào/ra MT mà không ề ữ ệ ệ khi n vi c truy n d li u vào/ra MT mà không thông qua CPU. thông qua CPU. Nh th CPU v n ờ ế ử trình x lý khác trong quá trình nh p xu t ữ ệ d li u.
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
3232
Thi Thi
ố ế ị đđ u cu i ầ ốu cu i ầ ế ị t b t b
ế ị ế ị
ậ đơđơn gi n. ản gi n. ả ậ
ủ ủ
ắ ắ
ạ ạ
Keyboard : Thi Keyboard : Thi t b nh p t b nh p ậ . . ắ ố ậ ợ ậ ắ ố ậ ợ t p h p các công t c b trí thành 1 ma tr n t p h p các công t c b trí thành 1 ma tr n đưđư c ợc ợ ậ ệ ậ ệ Tín hi u ngõ ra c a ma tr n công t c này Tín hi u ngõ ra c a ma tr n công t c này ạ đưđưa vào m ch t o mã bàn phím. ạ a vào m ch t o mã bàn phím.
ỗ ổ ợ
ạ
h p phím xác ố
ị đ nh ệ
ẽ đư c n xu ng m ch s ố đó, sau đó con s ố
ẽ ử
ợ ấ M i t ậ ạ t o ra 1 con s nh n di n cho phím này s g i cho CPU.
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
3333
ủ ủ Scan code c a Bàn phím Scan code c a Bàn phím Chip 8048 x lý ử ề Chip 8048 x lý ử ể i u khi n bàn phím : đđi u khi n bàn phím : ề ể ợ ấ Theo dõi có phím nào đưđư c n không thì báo ợ ấc n không thì báo Theo dõi có phím nào ắ ắ
cho CPU thông qua ng t 09h. cho CPU thông qua ng t 09h.
ẽ ặ
ờ
ả
ị
ị ấ ế N u có phím nào b n quá ½s , 8048 s l p ữ ạ i phím này sau nh ng kho ng th i gian l nh t ấ đ nh (typematic)
ỗ ầ ấ
ệ ử ủ
ạ đi n t
ọ
ị ằ
ộ
ẽ c a bàn phím s ưng cho v ị đ c trặ đ ng, giá tr n m trong
ả
M i l n n 1 phím, các m ch ạ t o ra 1 mã dài 1 byte g i là mã scan , ủ trí trên bàn phím c a phím tác kho ng 1 ..83
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
3434
ủ ủ Scan code c a Bàn phím Scan code c a Bàn phím
ợ
đư c ợ
t ệ đư c khi 1 phím ả
ả ả
ị ấ ị ấ
ạ ạ
ị ấ ị ấ
ớ ớ
ổ ổ
ưư c t
Làm sao MT phân bi ợ đó đư c nh ? ấ nh n và khi phím Khi nh phím b n, bàn phím t o ra 1 mã Khi nh phím b n, bàn phím t o ra 1 mã scan khác v i mã scan lúc phím b n, có scan khác v i mã scan lúc phím b n, có ớ ộ ưư c c ng thêm 128 (80h) , ị ằ ớ ộc c ng thêm 128 (80h) , giá tr b ng mã tr ị ằ giá tr b ng mã tr ớ ừ ủ ớ ừc t nghĩa là đđ i bit 7 c a byte mã scan tr i bit 7 c a byte mã scan tr ủ nghĩa là 0 0 1 1
ấ
ữ Ex : khi ta n ch z , scan code là 44
ạ
ả Nh phím này ra bàn phím t o mã scan 172
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
3535
ộ ộ
ậ ậ B mã hoá quét trên ma tr n B mã hoá quét trên ma tr n
KEY DOWN
COL1
EN
COL2
COL3
4 line To 1 line DEMUX CO 1
COL4
0 1 2 DE R 0 1 1
TO 0 4 8
0 1 1 0 1 0
CO M
ROW4
PU Q0 Q1 Q2 Q3 4 Bit Counter
ROW3
ROW2
SCAN OSC TE R 2 line To 4 line DECODER
ROW1
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
3636
Ạ Ộ Ạ Ộ
Ủ Ủ
Ắ Ắ HO T Đ NG NG T QUÃNG C A IO HO T Đ NG NG T QUÃNG C A IO
ầ
ấ
ậ
ớ ờ
ế Khi 1 IO có yêu c u giao ti p v i CPU (xu t nh p ủ ệ đư ng tín hi u IRQ c a ở ẽ data), IO này s kích kh i 1 ụ ụ ầ ể mình (Interrupt request) đ báo là mình c n ph c v .
ớ
ắ
ế Các bư c trong ti n trình ng t quãng : ụ ụ ẽ ử
ệ
ầ
IO có yêu c u CPU ph c v , s g i tín hi u IRQ
đ n ế
ẽ ả
ầ
ắ
Interrupt controller. N u có nhi u I/O cùng yêu c u ng t , IntController s gi
i
ế ế
ằ
ầ
ề quy t các yêu c u b ng ch
ắ
ẽ IntController phát 1 tín hi u ệ đ n CPU xin ng t, CPU s
ế đ ộ ưu tiên. ế ấ
ị ủ
t l nh
ụ ụ ắ
đang th c hi n , c t giá tr c a thanh ghi IP và ể ế đ a ch tr v sau khi ph c v ng t hoàn
t
ự ệ ỉ ở ề ị Chuong 5 : I/O Devices Chuong 5 : I/O Devices
3737
ấ ệ hoàn t CS vào stack đ bi t.ấ t
ữ ữ
ạ ạ
Liên l c gi a bàn phím và CPU(cont) Liên l c gi a bàn phím và CPU(cont)
ộ ấ ộ ấng n phím đđ ng n phím
ụ ụ ụ ụ
ắ ắ ươương trình con ph c v ROM ng trình con ph c v ROM
C m i l n có 1 tác ứ ỗ ầ ứ ỗ ầ C m i l n có 1 tác m ch bàn phím gây ra ng t 9 ạ ạ m ch bàn phím gây ra ng t 9 g i 1 ch ọ ọg i 1 ch BIOS. BIOS.
ọ
ể ế ổ ọ INT 9 s ẽ đ c c ng 60H đ bi phím nào đã xãy ra (đ c mã scan t
đ ng ộ t tác ương ng).ứ
ể
ứ
ứ
INT 9h chuy n mã scan này thành mã ấ dài 2 bytes , byte th p ch a mã ASCII ủ c a phím
đó, byte cao ch a mã scan.
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
3838
Ạ Ộ Ạ Ộ
Ủ Ủ
Ắ Ắ HO T Đ NG NG T QUÃNG C A I/O HO T Đ NG NG T QUÃNG C A I/O
ầ
ụ ụ
ạ
CPU yêu c u mã nh n d ng
ể ế đ bi
ả
t ph c v cái gì? ể ế đ a ị t đ bi ụ ụ ắ ằ đâu
ương trình con ph c v ng t n m
ậ ờ Nh mã này CPU vào b ng Interrupt vector ầ ủ ỉ ắ đ u c a ch ch b t ớ ộ trong b nh .
ị
ầ ủ
ỉ ắ đ u c a ch
ương trình con ph c ụ
ủ
ệ
ương trình
CPU chép đ a ch b t ự ụ ắ v ng t vào CS và th c thi mã l nh c a ch này.
ắ
ệ
ự
ố
ệ
Sau khi th c hi n xong tác v c a ng t , l nh cu i
ủ
ụ ủ ị
ự
ệ
ụ
ẽ ấ cùng là INTR, CPU s l y giá tr cũ c a CS và IP ạ ể ế ụ i trong stack ra đ ti p t c th c thi các l nh còn l ủ ứ c a ng d ng
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
3939
ạ ề ạ ề
ụ ụ
Thí d minh ho v interrupt Thí d minh ho v interrupt
IRQ5 ADAPTER CARD
INT
CPU
STI
I I I
PREORITY
INTERRUPT ENABLE FLAG
R M S
CLI
CONTROL Q R R
IRQ5
CONTROL
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
4040
DATA
ả ảGi Gi
i thích i thích
ầ ầ
ụ ụ ằ ụ ụ ằ
ờ ờ
ệ ệ
ờ
ể
ầ
ắ
ậ
Card IO yêu c u ph c v b ng cách đưđưa a Card IO yêu c u ph c v b ng cách ứ đưđư ng tín hi u IRQ trên card lên m c 1. ứ ng tín hi u IRQ trên card lên m c 1. ề Đư ng IRQ n i v i b ẽ ố ớ ộ đi u khi n ng t, yêu c u này s ủ làm b t bit 5 c a thanh ghi IRR.
ớ
ệ ạ
ể
ế
ặ ạ ẽ Interrupt controller s so sánh IRR v i thanh ghi m t n ế i có cho phép IRQ5 hay không. N u IMR đ xem hi n t ẽ ể cho phép thì s ki m tra ti p.
ể
ắ
ưu tiên cao hơn IRQ5 hay ế ả
ờ
ắ
đ n sau khi ng t
ệ
Ki m tra xem có 1 ng t có ế không. N u có thì IRQ5 ph i ch cho ự ưu tiên th c hi n xong.
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
4141
ả ảGi Gi
i thích (cont) i thích (cont)
ẽ ẽ
ậ ậ
L nh EOI s xóa bit 5 trong thanh ghi ISR ệ L nh EOI s xóa bit 5 trong thanh ghi ISR ệ ầ ể ế ể đđ IntController có th ti p nh n 1 yêu c u IntController có th ti p nh n 1 yêu c u ầ ể ế ể khác. khác.
ệ
ụ ụ ắ ị
Stack
ế đ có ể
ể ế ụ
ệ
Chương trình ph c v ng t phát l nh IRET k t ụ ồ thúc. CPU ph c h i giá tr CS và IP t ự th ti p t c th c hi n quá trình tr
ừ ư c ớ đó.
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
4242
ả ảGi Gi
i thích (cont) i thích (cont)
ứ ứ
ệ ệ
Interrupt controller ờ Interrupt controller đưđưa a đưđư ng tín hi u INT lên m c 1 ờ ng tín hi u INT lên m c 1 ắ ế ể ế ể ắ t có ng t quãng. báo cho CPU bi đđ báo cho CPU bi t có ng t quãng.
ậ
ẽ
ạ i cho Interrupt controller tín ệ
ề ứ
ồ
ằ
ệ CPU nh n tín hi u INT, s báo l hi u ệ đ ng ý b ng cách
đưa tín hi u INTA v m c 0.
ấ
ắ
ớ ị
ả ử
ử ắ
ứ
ậ Sau khi CPU ch p thu n ng t, Interrupt controller g i data ớ ương ng v i ng t 0Dh). s IRQ5 t cho CPU v i tr 0Dh (gi
ậ
ụ ụ
ủ
đang ph c v ISR, xoá bít 5 c a IRR
ợ
ả
ế
ủ B t bit 5 c a thanh ghi vì IRQ5 đã đư c gi
i quy t.
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
4343
ả ảGi Gi
i thích (cont) i thích (cont)
ạ ạ
ệ ệ
u giá tr ị ưưu giá tr ị
ỉ ỉ
ươương ng
CPU t m d ng quá trình hi n hành, l ừ ừ CPU t m d ng quá trình hi n hành, l CS và IP vào stack. Nh y ả đđ n ến ế đđ a ch ỉ ị CS và IP vào stack. Nh y ả ỉ ị a ch ủ ị 0000:4*0Dh , l y ấ đđ a ch offset c a ch ủ ị 0000:4*0Dh , l y ấ a ch offset c a ch ụ ụ ắ ụ ụ ắ trình con ph c v ng t 0Dh. trình con ph c v ng t 0Dh.
ủ
ệ
ắ
ự
ệ
Nh y ả đ n nế ơi ch a các l nh c a ng t này và ứ ương ng.ứ th c thi các l nh t
ụ ụ ắ
ử
ị ưong trình ph c v ng t, CPU g i giá tr
ụ ụ ắ
Ơû cu i chố ế báo k t thúc ph c v ng t EOI (End of Interrupt =20h) cho IntControler.
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
4444
Hard Disk Hard Disk
Các thu t ậ ngữ
track
Track Track Cylinder Cylinder Sector Sector Cluster Cluster
sector
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
4545
Hard Disk Hard Disk
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
4646
ủ ủ
ậ ậ
đđi u ềi u ề
ệ ố ệ ố H th ng t p tin c a DOS và H th ng t p tin c a DOS và khi n ểkhi n ể đđĩaĩa
ả
B ng FAT : (File Allocation Table) ảB ng FAT : (File Allocation Table)
ằ
N m ngay Boot Sector (sector 0).
ợ ạ
B ng FAT
đư c t o ra khi ta partion
đĩa
ả c ngứ ộ
ố
t hay
ả ạ tr ng thái ậ đã hư (v t lý),
ả N i dung B ng FAT mô t ủ c a các cluster còn t đã dùng hay chưa dùng…
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
4747
Summary slide Summary slide
ụ ụ ắ ụ ụ ắ
ti n trình ph c v ng t ti n trình ph c v ng t
ắ ủ ắ ủ
ị ị
I/O là gì ? I/O là gì ? Mô t ả ế ả ế Mô t quãng. quãng. Tính toán v trí c a vector ng t c a ủ ủ Tính toán v trí c a vector ng t c a interrupt 20h. interrupt 20h. Vi ắ ế ử ụ ệ ắ ế ử ụ ệ Vi t các l nh s d ng ng t 21h , t các l nh s d ng ng t 21h , ệ ạ ị ể ể ệ ạ ị ể ể i. hi n th ngày hi n t hàm 9 đđ hi n th ngày hi n t i. hàm 9 B ng FAT là gì ? ả ảB ng FAT là gì ?
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
4848
Summary slide Summary slide
ế ế
ọ ọ
ậ
ắ ắ
ạ ạ
ề ề
ắ ắ
Th nào là ng t n i. Cho 1 thí d minh h a. ụ ắ ộ ụ ắ ộ Th nào là ng t n i. Cho 1 thí d minh h a. Khi l p trình, ta th ọ ơ ưư ng trình ưư ng g i 1 ch ờ ậKhi l p trình, ta th ơng trình ờ ọng g i 1 ch ử ụ ậ ụ ụ ấ ử ụ ậ ụ ụ ấ ó ta s d ng lo i ng t đđó ta s d ng lo i ng t ph c v xu t nh p, lúc ph c v xu t nh p, lúc nào. Cách g i.ọ nào. Cách g i.ọ Làm sao ắ ứ ể ệ ắ ứ ể ệ Làm sao đđ phân bi phân bi t ng t c ng và ng t m m. t ng t c ng và ng t m m. Khi dùng INT 21h ự ị ể ể ể ể ị ự Khi dùng INT 21h đđ hi n th 1 ký t ra màn hi n th 1 ký t ra màn ị ự ẽ ể ứ ị ự ẽ ể ứ s hi n th ?. hình, thanh ghi nào ch a ký t s hi n th ?. hình, thanh ghi nào ch a ký t
Chuong 5 : I/O Devices Chuong 5 : I/O Devices
4949