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 ợ ộ ử ử ộ  0h­FFh và  ánh s  t đđánh s  t  là 1 b  4 bytes  t  0h­FFh 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