input /output devices

49
Chuong 5 : I/O Devices Chuong 5 : I/O Devices 1 Input /Output Input /Output Devices Devices Naém nguyeân lyù caáu taïo Naém nguyeân lyù caáu taïo vaø ñaëc ñieåm cuûa thieát bò vaø ñaëc ñieåm cuûa thieát bò I/O. I/O. Nhieäm vuï vaø yeâu caàu Nhieäm vuï vaø yeâu caàu cuûa thieát bò I/O. cuûa thieát bò I/O. Caùch giao tieáp giöõa CPU Caùch giao tieáp giöõa CPU vaø thieát bò I/O. vaø thieát bò I/O. Hieåu caùc böôùc trong quaù Hieåu caùc böôùc trong quaù trình ngaét quaõng. trình ngaét quaõng. Naém ñöôïc cô cheá DMA Naém ñöôïc cô cheá DMA Muïc tieâu

Upload: agnes

Post on 23-Jan-2016

145 views

Category:

Documents


2 download

DESCRIPTION

Muïc tieâu. Input /Output Devices. Naém nguyeân lyù caáu taïo vaø ñaëc ñieåm cuûa thieát bò I/O. Nhieäm vuï vaø yeâu caàu cuûa thieát bò I/O. Caùch giao tieáp giöõa CPU vaø thieát bò I/O. Hieåu caùc böôùc trong quaù trình ngaét quaõng. Naém ñöôïc cô cheá DMA. Noäi dung. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 11

Input /Output DevicesInput /Output Devices

Naém nguyeân lyù caáu taïo vaø Naém nguyeân lyù caáu taïo vaø ñaëc ñieåm cuûa thieát bò I/O.ñaëc ñieåm cuûa thieát bò I/O.

Nhieäm vuï vaø yeâu caàu cuûa Nhieäm vuï vaø yeâu caàu cuûa thieát bò I/O.thieát bò I/O.

Caùch giao tieáp giöõa CPU vaø Caùch giao tieáp giöõa CPU vaø thieát bò I/O.thieát bò I/O.

Hieåu caùc böôùc trong quaù trình Hieåu caùc böôùc trong quaù trình ngaét quaõng.ngaét quaõng.

Naém ñöôïc cô cheá DMANaém ñöôïc cô cheá DMA

Muïc tieâu

Page 2: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 22

Noäi dungNoäi dung Nguyeân lyù xuaát nhaäp trong maùy Nguyeân lyù xuaát nhaäp trong maùy

tínhtính Caùch CPU giao tieáp vôùi thieát bò I/O.Caùch CPU giao tieáp vôùi thieát bò I/O. Ngaét quaõngNgaét quaõng DMA DMA Caùc thieát bò I/O :Caùc thieát bò I/O :

Hard Disk,Floopy Disk, Printer, Hard Disk,Floopy Disk, Printer, Keyboard,MouseKeyboard,Mouse

Page 3: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 33

Thieát bòThieát bò I/O : I/O :

Thieát bò I/O laø 1 thieát bò coù khaû Thieát bò I/O laø 1 thieát bò coù khaû naêng cung caáp döõ lieäu khi CPU naêng cung caáp döõ lieäu khi CPU yeâu caàu trong taùc vuï ñoïc vaø coù yeâu caàu trong taùc vuï ñoïc vaø coù khaû naêng ghi döõ lieäu vaøo khi CPU khaû naêng ghi döõ lieäu vaøo khi CPU thöïc thi 1 taùc vuï ghi. thöïc thi 1 taùc vuï ghi.

Page 4: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 44

Laøm sao CPU nhaän bieát moät I/O

Moãi I/O coù 1 ñòa chæ rieâng goïi laø coång (port). Khi CPU truy xuaát I/O , CPU xuaát ra 1 ñòa chæ.

Moät soá bit cao cuûa ñòa chæ ñi vaøo boä giaûi maõ, treân ñöôøng ra cuûa boä boä giaûi maõ seõ coù tín boä giaûi maõ seõ coù tín hieäu Chip select töông öùng vôùi I/O hieäu Chip select töông öùng vôùi I/O maø CPU muoán truy xuaát.maø CPU muoán truy xuaát. Caùc ñòa chæ thaáp coøn laïi seõ ñi Caùc ñòa chæ thaáp coøn laïi seõ ñi ñeán moïi I/O nhöng chæ coù I/O naøo ñeán moïi I/O nhöng chæ coù I/O naøo coù ñöôøng Chip Select tích cöïc môùi coù ñöôøng Chip Select tích cöïc môùi ñöôïc truy xuaát.ñöôïc truy xuaát.

Page 5: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 55

Sô ñoà giaûi maõ ñòa Sô ñoà giaûi maõ ñòa chæchæ

CPUCPUCPUCPU

ROMCS

RAMCS

I/OCS

ADDRESS BUS

Caùc bit thaáp Address bus

Bit cao

Page 6: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 66

Minh Minh hoïahoïa

CPU MEMORYVIDEO

CONTROLLERKEYBOARD

CONTROLLERHARDDISK

CONTROLLERFLOPPYDISKCONTROLLER

MONITORKEYBOARD

HARD DISK FLOPPY DISK

BUSBUS

Page 7: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 77

CPU lieân laïc vôùi thieát CPU lieân laïc vôùi thieát bò I/Obò I/O

Thieát bò ngoaïi vi lieân laïc vôùi Thieát bò ngoaïi vi lieân laïc vôùi CPU thoâng qua caùc coång I/O .CPU thoâng qua caùc coång I/O .

Caùc thieát bò I/O coù toác ñoä laøm vieäc Caùc thieát bò I/O coù toác ñoä laøm vieäc chaäm hôn toác ñoä cuûa CPU raát nhieàu chaäm hôn toác ñoä cuûa CPU raát nhieàu ñeå khaéc phuïc nhöôïc ñieåm naøy ngöôøi ta ñeå khaéc phuïc nhöôïc ñieåm naøy ngöôøi ta duøng vuøng nhôù ñeäm.duøng vuøng nhôù ñeäm.Söï truyeàn thoâng tin giöõa thieát bò I/O Söï truyeàn thoâng tin giöõa thieát bò I/O vaø CPU ñöôïc thöïc hieän theo 2 böôùc : vaø CPU ñöôïc thöïc hieän theo 2 böôùc :

Page 8: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 88

CPU lieân laïc vôùi thieát CPU lieân laïc vôùi thieát bò I/Obò I/O

Böôùc 1Böôùc 1 : truyeàn thoâng tin giöõa boä : truyeàn thoâng tin giöõa boä nhôù trong vaø boä nhôù ñeäm.nhôù trong vaø boä nhôù ñeäm.

Böôùc 2Böôùc 2 : truyeàn thoâng tin : truyeàn thoâng tin giöõa boä nhôù ñeäm vaø thieát giöõa boä nhôù ñeäm vaø thieát bò I/O.bò I/O.

Page 9: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 99

CPU lieân laïc vôùi thieát CPU lieân laïc vôùi thieát bò I/Obò I/O

Coù theå toå chöùc ñeå 1 CPU laøm Coù theå toå chöùc ñeå 1 CPU laøm vieäc ñoàng thôøi vôùi nhieàu thieát vieäc ñoàng thôøi vôùi nhieàu thieát bò ngoaïi vi baèng caùch phaân chia bò ngoaïi vi baèng caùch phaân chia thôøi gian. thôøi gian.

Thieát bò I/O Buffer Boä nhôù trong

Tín hieäu ñieàu khieån cuûa boä nhôù ñeäm

Tín hieäu ñieàu khieån töø CPU

Page 10: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 1010

Ngaét quaõng (Interrupt)Ngaét quaõng (Interrupt)

Ngaét (Interrupt) laø gì ? : Ngaét (Interrupt) laø gì ? : Ngaét laø söï laøm ngöøng chöông trình Ngaét laø söï laøm ngöøng chöông trình ñang chaïy.ñang chaïy.

Moät interrupt xuaát hieän khi 1 Moät interrupt xuaát hieän khi 1 chöông trình ñang thöïc thi bò ngöng.chöông trình ñang thöïc thi bò ngöng.

Interrupt ñöôïc taïo ra bôûi nhieàu lyù Interrupt ñöôïc taïo ra bôûi nhieàu lyù do khaùc nhau do khaùc nhau

Page 11: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 1111

Ngaét quaõng (Interrupt)Ngaét quaõng (Interrupt)

Do user laäp trình coù leänh INT Do user laäp trình coù leänh INT <number> yeâu caàu phuïc vuï ngaét <number> yeâu caàu phuïc vuï ngaét quaõng (nhö xuaát nhaäp chaúng haïn).quaõng (nhö xuaát nhaäp chaúng haïn).

Do heä thoáng gaây ra vì 1 lyù do naøo Do heä thoáng gaây ra vì 1 lyù do naøo ñoù khoâng mong muoán (nhö loãi cuûa ñoù khoâng mong muoán (nhö loãi cuûa pheùp chia 0, pheùp tính bò traøn pheùp chia 0, pheùp tính bò traøn soá…)soá…)

Do thieát bò I/O gaây ra : maùy in, baøn Do thieát bò I/O gaây ra : maùy in, baøn phím, oå ñóa ...phím, oå ñóa ...

Page 12: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 1212

Software InterruptSoftware Interrupt Ngaét meàm :Ngaét meàm :

Do thi haønh leänh INT trong chöông Do thi haønh leänh INT trong chöông trình.trình.

Xaõy ra khi caàn 1 chöông trình con Xaõy ra khi caàn 1 chöông trình con trong heä ñieàu haønh vaø thöôøng laø trong heä ñieàu haønh vaø thöôøng laø chöông trình con xuaát nhaäp.chöông trình con xuaát nhaäp.

Cuù phaùp goïi 1 ngaét meàm trong chöông trình :

INT number

Page 13: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 1313

Software InterruptSoftware Interrupt

Moät soá ngaét meàm thoâng duïng :Moät soá ngaét meàm thoâng duï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

Page 14: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 1414

Thí duï minh hoïa goïi ngaét meàmThí duï minh hoïa goïi ngaét meàm

MOV …

INT 10h

ADD ….

……..

3069 F000:F065 F000:AB623069 F000:F065 F000:AB62

STLCLD

PUSH ESPUSH DS

……IRET

RETURN TOCALLING PROGRAM

F000:F065 F000:F066 F000:F067 F000:F068 ………….

ROM BIOS

INTERRUPT VECTOR TABLE

CALLING PROGRAM

1

2

3

4

Page 15: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 1515

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.

Page 16: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 1616

Hệ thống ngắt IBM PC/XTHệ thống ngắt IBM PC/XTNgắ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)

12 F000: F841 FF841 kiểm tra kích thước bộ nhớ (BIOS)

Page 17: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 1717

Hệ thống ngắt IBM PC/XTHệ thống ngắt IBM PC/XTNgắ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)

…….

Page 18: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 1818

Hệ thống ngắt IBM PC/XTHệ 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

Page 19: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 1919

Một số ví dụ minh họaMộ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.

Page 20: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 2020

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 ?

Page 21: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 2121

Ex : minh họa INT 0 được gọI và thi hành

MOV AL,92

SUB CL,CL

DIV CL

INT 0

INT 3

Đoạn CT trên sẽ xuất thông báo

Divide Error

Page 22: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 2222

Interrupt Interrupt noäinoäi

Ngaét noäi : ngaét töï thaân do CPU sinh ra Ngaét noäi : ngaét töï thaân do CPU sinh ra coøn ñöôïc goïi laø ngaét khoâng che NMI.coøn ñöôïc goïi laø ngaét khoâng che NMI.

Ngaét noäi xaõy ra khi CPU ôû 1 traïng thaùi khoâng mong Ngaét noäi xaõy ra khi CPU ôû 1 traïng thaùi khoâng mong muoán nhö loãi pheùp chia 0 (DIV 0), pheùp chia bò traøn, muoán nhö loãi pheùp chia 0 (DIV 0), pheùp chia bò traøn, ñieän aùp nguoàn bò giaûm thaáp ...ñieän aùp nguoàn bò giaûm thaáp ...

Page 23: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 2323

Hardware Interrupt Hardware Interrupt Ngaét cöùng :Ngaét cöùng :

ñöôïc taïo ra khi thieát bò ngoaïi vi caàn ñeán CPU.ñöôïc taïo ra khi thieát bò ngoaïi vi caàn ñeán CPU.

Ñaêïc tröng cuûa ngaét cöùng laø tín hieäu Ñaêïc tröng cuûa ngaét cöùng laø tín hieäu yeâu caàu ngaét quaõng yeâu caàu ngaét quaõng INTRINTR..

Ngaét baøn phím laø 1 ñieån hình ngaét Ngaét baøn phím laø 1 ñieån hình ngaét cöùng.cöùng.

Khi caàn thieát chöông trình coù theå caám Khi caàn thieát chöông trình coù theå caám ngaét cöùng.ngaét cöùng.

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.

Page 24: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 2424

Hardware Interrupt Hardware Interrupt

Ñaêïc tröng cuûa ngaét cöùng laø tín hieäu Ñaêïc tröng cuûa ngaét cöùng laø tín hieäu yeâu caàu ngaét quaõng yeâu caàu ngaét quaõng INTRINTR..

Ngaét baøn phím laø 1 ñieån hình ngaét Ngaét baøn phím laø 1 ñieån hình ngaét cöùng.cöùng.

Khi caàn thieát chöông trình coù theå caám Khi caàn thieát chöông trình coù theå caám ngaét cöùng bằng lệnh CLI (Clear Interrupt ngaét cöùng bằng lệnh CLI (Clear Interrupt Flag).Flag).

Page 25: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 2525

Baûng vector Baûng vector InterruptInterrupt

Moät vuøng nhôù daøi 1024 bytes ñaët ôû ñaàu Moät vuøng nhôù daøi 1024 bytes ñaët ôû ñaàu boä nhôù chính (0h – 400h) , chöùa 256 phaàn boä nhôù chính (0h – 400h) , chöùa 256 phaàn töû, moãi phaàn töû laø 1 boä 4 bytes ñaùnh töû, moãi phaàn töû laø 1 boä 4 bytes ñaùnh soá töø 0h-FFh vaø ñöôïc goïi laø caùc vector soá töø 0h-FFh vaø ñöôïc goïi laø caùc vector ngaét , taïo thaønh baûng vector ngaét .ngaét , taïo thaønh baûng vector ngaét .

Moãi vector ngaét chöùa ñòa chæ cuûa 1 chöông trình phuïc vuï ngaét ñaët trong boä nhôù.

Caùc chöông trình phuïc vuï naøy lieân laïc tröïc tieáp vôùi caùc thieát bò I/O thoâng qua 1 soá thanh ghi goïi laø coång (port) vaøo/ra.

Page 26: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 2626

Baûng Interrupt vector (cont)Baûng Interrupt vector (cont)

Khi 1 ngaét ñöôïc yeâu caàu, CPU khoâng caàn bieát Khi 1 ngaét ñöôïc yeâu caàu, CPU khoâng caàn bieát ñòa chæ cuûa chöông trình con phuïc vuï ngaét ñòa chæ cuûa chöông trình con phuïc vuï ngaét naøy maø chæ quan taâm ñeán naøy maø chæ quan taâm ñeán soá hieäu isoá hieäu i cuûa cuûa ngaét vaø soá naøy chæ ñeán phaàn töû thöù i ngaét vaø soá naøy chæ ñeán phaàn töû thöù i cuûa baûng interrupt vector .cuûa baûng interrupt vector .Ex : Khi ta goû vaøo 1 phím, 1 tín hieäu seõ taïm thôøi ngaét ngang coâng vieäc cuûa CPU. CPU seõ tìm ñeán vector ngaét soá 9 (cuûa baøn phím). Vector naøy ôû ñòa chæ 0:24h.

CPU seõ laáy ra ñòa chæ cuûa thuû tuïc chuyeân phuïc vuï baøn phím (coù saün trong ROM BIOS).

Thöïc hieän thuû tuïc naøy xong Quay trôû laïi choã bò ngaét ñeå tieáp

tuïc thöïc hieän coâng vieäc dôû dang

Page 27: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 2727

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

CS IP

Page 28: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 2828

Caùc vector ngaét troû ñeán Caùc vector ngaét troû ñeán caùc thuû tuïc coù saün trong caùc thuû tuïc coù saün trong ROM BIOSROM BIOS

Vector Vector ngắtngắt

Ñòa Ñòa chæchæ

Chöùc naêngChöùc naêng

55 14H14H In maøn hình ra In maøn hình ra maùy in.maùy in.

88 20H20H Ño thôøi gianÑo thôøi gian

99 24H24H Maõ scan töø baøn Maõ scan töø baøn phímphím

1010 40H40H Video displayVideo display

1111 ………………

1212 ………………

1313 …………....

Page 29: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 2929

Thí duï minh hoïa InterruptThí duï minh hoïa Interrupt

3636 0909 7474 0000

2A2A E4E4 0000 F0F0

5B5B E0E0 0000 F0F0

7676 2A2A 0000 3030

5B5B E8E8 0000 F0F0

BAÛNG VECTOR NGAÉT

Soá ngaét 8

4

x

00014h00014h

00018h00018h

0001Ch0001Ch

00024h00024h

4 bytes

00020h

Page 30: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 3030

Caùc loaïi coång Caùc loaïi coång vaøo ravaøo ra

Coång noái tieáp (serial port ) : IBM PC cung Coång noái tieáp (serial port ) : IBM PC cung caáp 2 coång noái tieáp : COM1 hay AUX vaø caáp 2 coång noái tieáp : COM1 hay AUX vaø COM2 COM2

2 coång naøy ôû ñòa chæ 400h vaø 402h trong 2 coång naøy ôû ñòa chæ 400h vaø 402h trong vuøng döõ lieäu BIOS.vuøng döõ lieäu BIOS.

Coång noái tieáp duøng cho modem ñieän thoaïi, moät maùy in noái tieáp hay noái tröïc tieáp vôùi 1 maùy tính khaùc.

Page 31: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 3131

Caùc loaïi coång Caùc loaïi coång vaøo ravaøo ra

Coång song song (parallel port ) : IBM Coång song song (parallel port ) : IBM PC cho pheùp söû duïng 3 coång song PC cho pheùp söû duïng 3 coång song song : PRN hay LPT1, LPT2 vaø LPT3.song : PRN hay LPT1, LPT2 vaø LPT3.

Ñòa chæ cuûa caùc coång naøy löu trong boä nhôù taïi 408, 40A, 40C.

Teân coång ñòa chæNôi chöùa ñòa chæ

COM1 3F8H 400

COM2 2F8H 402

PRN 3BCH 408

LPT2 378H 40A

Page 32: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 3232

DMA (Direct Memory Access)DMA (Direct Memory Access)

Kyõ thuaät cho pheùp I/O device hay Bus Kyõ thuaät cho pheùp I/O device hay Bus ñieàu khieån vieäc truyeàn döõ lieäu ñieàu khieån vieäc truyeàn döõ lieäu vaøo/ra MT maø khoâng thoâng qua CPU.vaøo/ra MT maø khoâng thoâng qua CPU.

Nhôø theá CPU vaãn ñieàu khieån caùc quaù trình xöû lyù khaùc trong quaù trình nhaäp xuaát döõ lieäu.

DMA laø gì ?

Page 33: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 3333

Thieát bò ñaàu cuoáiThieát bò ñaàu cuoái

Keyboard : Thieát bò nhaäp ñôn giaûn. Keyboard : Thieát bò nhaäp ñôn giaûn.

taäp hôïp caùc coâng taéc boá trí thaønh 1 ma taäp hôïp caùc coâng taéc boá trí thaønh 1 ma traäntraän. .

Tín hieäu ngoõ ra cuûa ma traän coâng Tín hieäu ngoõ ra cuûa ma traän coâng taéc naøy ñöôïc ñöa vaøo maïch taïo taéc naøy ñöôïc ñöa vaøo maïch taïo maõ baøn phím.maõ baøn phím.

Moãi toå hôïp phím xaùc ñònh ñöôïc aán xuoáng maïch seõ taïo ra 1 con soá nhaän dieän cho phím ñoù, sau ñoù con soá naøy seõ göûi cho CPU.

Page 34: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 3434

Scan code cuûa Baøn phímScan code cuûa Baøn phím Chip 8048 xöû lyù ñieàu khieån baøn phím :Chip 8048 xöû lyù ñieàu khieån baøn phím :Theo doõi coù phím naøo ñöôïc aán khoâng Theo doõi coù phím naøo ñöôïc aán khoâng

thì baùo cho CPU thoâng qua ngaét 09h.thì baùo cho CPU thoâng qua ngaét 09h.

Neáu coù phím naøo bò aán quaù ½s , 8048 seõ laëp laïi phím naøy sau nhöõng khoaûng thôøi gian nhaát ñònh (typematic)

Moãi laàn aán 1 phím, caùc maïch ñieän töû cuûa baøn phím seõ taïo ra 1 maõ daøi 1 byte goïi laø maõ scan , ñaëc tröng cho vò trí treân baøn phím cuûa phím taùc ñoäng, giaù trò naèm trong khoaûng 1 ..83

Page 35: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 3535

Scan code cuûa Baøn phímScan code cuûa Baøn phím

Khi nhaû phím bò aán, baøn phím taïo Khi nhaû phím bò aán, baøn phím taïo ra 1 maõ scan khaùc vôùi maõ scan ra 1 maõ scan khaùc vôùi maõ scan luùc phím bò aán, coù giaù trò baèng luùc phím bò aán, coù giaù trò baèng maõ tröôùc coäng theâm 128 (80h) , maõ tröôùc coäng theâm 128 (80h) , nghóa laø ñoåi bit 7 cuûa byte maõ nghóa laø ñoåi bit 7 cuûa byte maõ scan tröôùc töø 0 scan tröôùc töø 0 1 1 Ex : khi ta aán chöõ z , scan code laø 44

Nhaû phím naøy ra baøn phím taïo maõ scan 172

Laøm sao MT phaân bieät ñöôïc khi 1 phím ñöôïc nhaán vaø khi phím ñoù ñöôïc nhaû ?

Page 36: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 3636

Boä maõ hoaù queùt treân ma Boä maõ hoaù queùt treân ma traäntraän

4 lineTo

1 line DEMUX

2 lineTo

4 line DECODER

4 Bit Counter

Q0 Q1 Q2 Q3

COL1

COL2

COL3

COL4

KEY DOWN

1

2

48

SCAN OSCROW1

ROW2

ROW3

ROW4

0 1 1 00 1

1

0

0 1

1

0

EN

CO

DER

TO

COM

PU

TER

Page 37: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 3737

HOAÏT ÑOÄNG NGAÉT QUAÕNG HOAÏT ÑOÄNG NGAÉT QUAÕNG CUÛA IOCUÛA IO

Khi 1 IO coù yeâu caàu giao tieáp vôùi CPU (xuaát nhaäp data), IO naøy seõ kích khôûi 1 ñöôøng tín hieäu IRQ cuûa mình (Interrupt request) ñeå baùo laø mình caàn phuïc vuï.

Caùc böôùc trong tieán trình ngaét quaõng :

IO coù yeâu caàu CPU phuïc vuï, seõ göûi tín hieäu IRQ ñeán Interrupt controller. Neáu coù nhieàu I/O cuøng yeâu caàu ngaét ,

IntController seõ giaûi quyeát caùc yeâu caàu baèng cheá ñoä öu tieân. IntController phaùt 1 tín hieäu ñeán CPU xin ngaét, CPU seõ hoaøn taát leänh ñang thöïc hieän , caát giaù trò cuûa thanh ghi IP vaø CS vaøo stack ñeå bieát ñòa chæ trôû veà sau khi phuïc vuï ngaét hoaøn taát.

Page 38: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 3838

Lieân laïc giöõa baøn phím vaø Lieân laïc giöõa baøn phím vaø CPU(cont)CPU(cont)

Cöù moãi laàn coù 1 taùc ñoäng aán phímCöù moãi laàn coù 1 taùc ñoäng aán phím

INT 9 seõ ñoïc coång 60H ñeå bieát taùc ñoäng phím naøo ñaõ xaõy ra (ñoïc maõ scan töông öùng).

INT 9h chuyeån maõ scan naøy thaønh maõ daøi 2 bytes , byte thaáp chöùa maõ ASCII cuûa phím ñoù, byte cao chöùa maõ scan.

maïch baøn phím gaây ra ngaét maïch baøn phím gaây ra ngaét 99 goïi 1 chöông trình con phuïc vuï goïi 1 chöông trình con phuïc vuï ROM BIOS.ROM BIOS.

Page 39: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 3939

HOAÏT ÑOÄNG NGAÉT QUAÕNG HOAÏT ÑOÄNG NGAÉT QUAÕNG CUÛA I/OCUÛA I/O

CPU yeâu caàu maõ nhaän daïng ñeå bieát phuïc vuï caùi gì? Nhôø maõ naøy CPU vaøo baûng Interrupt vector ñeå bieát ñòa chæ baét ñaàu cuûa chöông trình con phuïc vuï ngaét naèm ñaâu trong boä nhôù. CPU cheùp ñòa chæ baét ñaàu cuûa chöông trình con phuïc vuï ngaét vaøo CS vaø thöïc thi maõ leänh cuûa chöông trình naøy.

Sau khi thöïc hieän xong taùc vuï cuûa ngaét , leänh cuoái cuøng laø INTR, CPU seõ laáy giaù trò cuõ cuûa CS vaø IP trong stack ra ñeå tieáp tuïc thöïc thi caùc leänh coøn laïi cuûa öùng duïng

Page 40: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 4040

Thí duï minh hoaï veà Thí duï minh hoaï veà interruptinterrupt

ADAPTER CARD

I

R

Q

I

M

R

PREORITY

CONTROL

CONTROL

I

S

R

INTERRUPTENABLEFLAG

CLI

STI

CPU

INT

IRQ5

IRQ5

DATA

Page 41: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 4141

Giaûi thíchGiaûi thích Card IO yeâu caàu phuïc vuï baèng caùch ñöa Card IO yeâu caàu phuïc vuï baèng caùch ñöa

ñöôøng tín hieäu IRQ treân card leân möùc 1.ñöôøng tín hieäu IRQ treân card leân möùc 1.

Ñöôøng IRQ noái vôùi boä ñieàu khieån ngaét, yeâu caàu naøy seõ laøm baät bit 5 cuûa thanh ghi IRR.Interrupt controller seõ so saùnh IRR vôùi thanh ghi maët naï IMR ñeå xem hieän taïi coù cho pheùp IRQ5 hay khoâng. Neáu cho pheùp thì seõ kieåm tra tieáp.

Kieåm tra xem coù 1 ngaét coù öu tieân cao hôn IRQ5 hay khoâng. Neáu coù thì IRQ5 phaûi chôø cho ñeán sau khi ngaét öu tieân thöïc hieän xong.

Page 42: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 4242

Giaûi thích (cont)Giaûi thích (cont)

Leänh EOI seõ xoùa bit 5 trong thanh Leänh EOI seõ xoùa bit 5 trong thanh ghi ISR ñeå IntController coù theå ghi ISR ñeå IntController coù theå tieáp nhaän 1 yeâu caàu khaùc.tieáp nhaän 1 yeâu caàu khaùc.

Chöông trình phuïc vuï ngaét phaùt leänh IRET keát thuùc. CPU phuïc hoài giaù trò CS vaø IP töø Stack ñeå coù theå tieáp tuïc thöïc hieän quaù trình tröôùc ñoù.

Page 43: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 4343

Giaûi thích (cont)Giaûi thích (cont) Interrupt controller ñöa ñöôøng tín hieäu INT Interrupt controller ñöa ñöôøng tín hieäu INT

leân möùc 1 ñeå baùo cho CPU bieát coù leân möùc 1 ñeå baùo cho CPU bieát coù ngaét quaõng.ngaét quaõng.

CPU nhaän tín hieäu INT, seõ baùo laïi cho Interrupt controller tín hieäu ñoàng yù baèng caùch ñöa tín hieäu INTA veà möùc 0.

Sau khi CPU chaáp thuaän ngaét, Interrupt controller göûi data cho CPU vôùi trò 0Dh (giaû söû IRQ5 töông öùng vôùi ngaét 0Dh).

Baät bit 5 cuûa thanh ghi ñang phuïc vuï ISR, xoaù bít 5 cuûa IRR vì IRQ5 ñaõ ñöôïc giaûi quyeát.

Page 44: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 4444

Giaûi thích (cont)Giaûi thích (cont)

CPU taïm döøng quaù trình hieän haønh, löu CPU taïm döøng quaù trình hieän haønh, löu giaù trò CS vaø IP vaøo stack. Nhaûy ñeán giaù trò CS vaø IP vaøo stack. Nhaûy ñeán ñòa chæ 0000:4*0Dh , laáy ñòa chæ offset ñòa chæ 0000:4*0Dh , laáy ñòa chæ offset cuûa chöông trình con phuïc vuï ngaét 0Dh.cuûa chöông trình con phuïc vuï ngaét 0Dh.

Nhaûy ñeán nôi chöùa caùc leänh cuûa ngaét naøy vaø thöïc thi caùc leänh töông öùng.

Ôû cuoái chöong trình phuïc vuï ngaét, CPU göûi giaù trò baùo keát thuùc phuïc vuï ngaét EOI (End of Interrupt =20h) cho IntControler.

Page 45: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 4545

Hard Disk Hard Disk Track Track CylinderCylinder Sector Sector ClusterCluster

Caùc thuaät ngöõ track

sector

Page 46: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 4646

Hard Disk Hard Disk

Page 47: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 4747

Heä thoáng taäp tin cuûa Heä thoáng taäp tin cuûa DOS vaø ñieàu khieån ñóaDOS vaø ñieàu khieån ñóa

Baûng FAT : (File Allocation Table)Baûng FAT : (File Allocation Table)

Naèm ngay Boot Sector (sector 0). Baûng FAT ñöôïc taïo ra khi ta

partion ñóa cöùng Noäi dung Baûng FAT moâ

taû traïng thaùi cuûa caùc cluster coøn toát hay ñaõ hö (vaät lyù), ñaõ duøng hay chöa duøng…

Page 48: Input /Output Devices

4848Chuong 5 : I/O DevicesChuong 5 : I/O Devices

I/O laø gì ?I/O laø gì ? Moâ taû tieán trình phuïc vuï Moâ taû tieán trình phuïc vuï

ngaét quaõng.ngaét quaõng. Tính toaùn vò trí cuûa vector Tính toaùn vò trí cuûa vector

ngaét cuûa interrupt 20h.ngaét cuûa interrupt 20h. Vieát caùc leänh söû duïng ngaét Vieát caùc leänh söû duïng ngaét

21h , haøm 9 ñeå hieån thò ngaøy 21h , haøm 9 ñeå hieån thò ngaøy hieän taïi.hieän taïi.

Baûng FAT laø gì ? Baûng FAT laø gì ?

Summary slideSummary slide

Page 49: Input /Output Devices

Chuong 5 : I/O DevicesChuong 5 : I/O Devices 4949

Summary slideSummary slide

Theá naøo laø ngaét noäi. Cho 1 thí duï Theá naøo laø ngaét noäi. Cho 1 thí duï minh hoïa.minh hoïa.

Khi laäp trình, ta thöôøng goïi 1 chöơng Khi laäp trình, ta thöôøng goïi 1 chöơng trình phuïc vuï xuaát nhaäp, luùc ñoù ta trình phuïc vuï xuaát nhaäp, luùc ñoù ta söû duïng loaïi ngaét naøo. Caùch goïi.söû duïng loaïi ngaét naøo. Caùch goïi.

Laøm sao ñeå phaân bieät ngaét cöùng Laøm sao ñeå phaân bieät ngaét cöùng vaø ngaét meàm.vaø ngaét meàm.

Khi duøng INT 21h ñeå hieån thò 1 kyù Khi duøng INT 21h ñeå hieån thò 1 kyù töï ra maøn hình, thanh ghi naøo chöùa töï ra maøn hình, thanh ghi naøo chöùa kyù töï seõ hieån thò?.kyù töï seõ hieån thò?.