Bài giảng Công nghệ thông tin - Chương 5: I/O Devices
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Công nghệ thông tin - Chương 5: I/O Devices", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Tài liệu đính kèm:
- bai_giang_cong_nghe_thong_tin_chuong_5_io_devices.ppt
Nội dung text: Bài giảng Công nghệ thông tin - Chương 5: I/O Devices
- Input /Output Devices Muïc tieâu 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 Chuong 5 : I/O Devices 1
- Noäi dung § Nguyeân lyù xuaát nhaäp trong maùy tính § Caùch CPU giao tieáp vôùi thieát bò I/O. § Ngaét quaõng § DMA § Caùc thieát bò I/O : Hard Disk,Floopy Disk, Printer, Keyboard,Mouse Chuong 5 : I/O Devices 2
- Thieát bò I/O : § Thieát bò I/O laø 1 thieát bò coù khaû naêng cung caáp döõ lieäu khi CPU yeâu caàu trong taùc vuï ñoïc vaø coù khaû naêng ghi döõ lieäu vaøo khi CPU thöïc thi 1 taùc vuï ghi. Chuong 5 : I/O Devices 3
- 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äboä giaûigiaûi maõmaõ seõseõ coùcoù tíntín hieäuhieäu ChipChip selectselect töôngtöông öùngöùng vôùivôùi I/OI/O maømaø CPUCPU muoánmuoán truytruy xuaát.xuaát. § CaùcCaùc ñòañòa chæchæ thaápthaáp coøncoøn laïilaïi seõseõ ñiñi ñeánñeán moïimoïi I/OI/O nhöngnhöng chæchæ coùcoù I/OI/O naøonaøo coùcoù ñöôøngñöôøng ChipChip SelectSelect tíchtích cöïccöïc môùimôùi ñöôïcñöôïc truytruy xuaát.xuaát. Chuong 5 : I/O Devices 4
- Sô ñoà giaûi maõ ñòa chæ Bit cao ROMCS ADDRESS BUS RAMCS CPU I/OCS Caùc bit thaáp Address bus Chuong 5 : I/O Devices 5
- Minh hoïa HARD DISK FLOPPY DISK KEYBOARD MONITOR VIDEO KEYBOARD HARDDISK CPU MEMORY FLOPPYDISK CONTROLLER CONTROLLER CONTROLLER CONTROLLER BUS Chuong 5 : I/O Devices 6
- CPU lieân laïc vôùi thieát bò I/O § Thieát bò ngoaïi vi lieân laïc vôùi 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 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 duøng vuøng nhôù ñeäm. Söï truyeàn thoâng tin giöõa thieát bò I/O vaø CPU ñöôïc thöïc hieän theo 2 böôùc : Chuong 5 : I/O Devices 7
- CPU lieân laïc vôùi thieát bò I/O Böôùc 1 : truyeàn thoâng tin giöõa boä nhôù trong vaø boä nhôù ñeäm. Böôùc 2 : truyeàn thoâng tin giöõa boä nhôù ñeäm vaø thieát bò I/O. Chuong 5 : I/O Devices 8
- CPU lieân laïc vôùi thieát bò I/O § Coù theå toå chöùc ñeå 1 CPU laøm vieäc ñoàng thôøi vôùi nhieàu thieát bò ngoaïi vi baèng caùch phaân chia thôøi gian. Thieát bò I/O Boä nhôù trong Tín hieäu ñieàu khieån töø CPU Tín hieäu ñieàu khieån cuûa boä nhôù ñeäm Chuong 5 : I/O Devices 9
- Ngaét quaõng (Interrupt) § Ngaét (Interrupt) laø gì ? : Ngaét laø söï laøm ngöøng chöông trình ñang chaïy. § Moät interrupt xuaát hieän khi 1 chöông trình ñang thöïc thi bò ngöng. § Interrupt ñöôïc taïo ra bôûi nhieàu lyù do khaùc nhau Chuong 5 : I/O Devices 10
- Ngaét quaõng (Interrupt) § DoDo useruser laäplaäp trìnhtrình coùcoù leänhleänh INTINT yeâuyeâu caàucaàu phuïcphuïc vuïvuï ngaétngaét quaõngquaõng (nhö(nhö xuaátxuaát nhaäpnhaäp chaúngchaúng haïn).haïn). § DoDo heäheä thoángthoáng gaâygaây rara vìvì 11 lyùlyù dodo naøonaøo ñoùñoù khoângkhoâng mongmong muoánmuoán (nhö(nhö loãiloãi cuûacuûa pheùppheùp chiachia 0,0, pheùppheùp tínhtính bòbò traøntraøn soá )soá ) § DoDo thieátthieát bòbò I/OI/O gaâygaây rara :: maùymaùy in,in, baønbaøn phím,phím, oåoå ñóañóa Chuong 5 : I/O Devices 11
- Software Interrupt § Ngaét meàm : Do thi haønh leänh INT trong chöông trình. Xaõy ra khi caàn 1 chöông trình con trong heä ñieàu haønh vaø thöôøng laø 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 Chuong 5 : I/O Devices 12
- Software Interrupt § 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 Chuong 5 : I/O Devices 13
- Thí duï minh hoïa goïi ngaét meàm ROM BIOS CALLING PROGRAM 3 MOV 1 F000:F065 STL INT 10h F000:F066 CLD ADD . F000:F067 PUSH ES 2 F000:F068 PUSH DS . RETURN TO IRET CALLING PROGRAM 4 3069 F000:F065 F000:AB62 INTERRUPT VECTOR TABLE Chuong 5 : I/O Devices 14
- 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 15
- 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) 12 F000: F841 FF841 kiểm tra kích thước bộ nhớ (BIOS) Chuong 5 : I/O Devices 16
- 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 17
- 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 18
- 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 19
- 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 20
- 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 DIV CL Divide Error INT 0 INT 3 Chuong 5 : I/O Devices 21
- Interrupt noäi NgaétNgaét noäinoäi :: ngaétngaét töïtöï thaânthaân dodo CPUCPU sinhsinh rara coøncoøn ñöôïcñöôïc goïigoïi laølaø ngaétngaét khoângkhoâng cheche NMI.NMI. NgaétNgaét noäinoäi xaõyxaõy rara khikhi CPUCPU ôûôû 11 traïngtraïng thaùithaùi khoângkhoâng mongmong muoánmuoán nhönhö loãiloãi pheùppheùp chiachia 00 (DIV(DIV 0),0), pheùppheùp chiachia bòbò traøn,traøn, ñieänñieän aùpaùp nguoànnguoàn bòbò giaûmgiaûm thaápthaáp Chuong 5 : I/O Devices 22
- Hardware Interrupt § Ngaét cöùng : ñöôïc taïo ra khi thieát bò ngoaïi vi caàn ñeán 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. ÑaêïcÑaêïc tröngtröng cuûacuûa ngaétngaét cöùngcöùng laølaø tíntín hieäuhieäu yeâuyeâu caàucaàu ngaétngaét quaõngquaõng INTRINTR NgaétNgaét baønbaøn phímphím laølaø 11 ñieånñieån hìnhhình ngaétngaét cöùng.cöùng. KhiKhi caàncaàn thieátthieát chöôngchöông trìnhtrình coùcoù theåtheå caámcaám ngaétngaét cöùng.cöùng. Chuong 5 : I/O Devices 23
- Hardware Interrupt ÑaêïcÑaêïc tröngtröng cuûacuûa ngaétngaét cöùngcöùng laølaø tíntín hieäuhieäu yeâuyeâu caàucaàu ngaétngaét quaõngquaõng INTRINTR NgaétNgaét baønbaøn phímphím laølaø 11 ñieånñieån hìnhhình ngaétngaét cöùng.cöùng. KhiKhi caàncaàn thieátthieát chöôngchöông trìnhtrình coùcoù theåtheå caámcaám ngaétngaét cöùngcöùng bbằằngng llệệnhnh CLICLI (Clear(Clear InterruptInterrupt Flag).Flag). Chuong 5 : I/O Devices 24
- Baûng vector Interrupt § MoätMoät vuøngvuøng nhôùnhôù daøidaøi 10241024 bytesbytes ñaëtñaët ôûôû ñaàuñaàu boäboä nhôùnhôù chínhchính (0h(0h –– 400h)400h) ,, chöùachöùa 256256 phaànphaàn töû,töû, moãimoãi phaànphaàn töûtöû laølaø 11 boäboä 44 bytesbytes ñaùnhñaùnh soásoá töøtöø 0h-FFh0h-FFh vaøvaø ñöôïcñöôïc goïigoïi laølaø caùccaùc vectorvector ngaétngaét ,, taïotaïo thaønhthaønh baûngbaûng vectorvector ngaétngaé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. Chuong 5 : I/O Devices 25
- Baûng Interrupt vector (cont) § 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 naøy maø chæ quan taâm ñeán soá hieäu i cuûa ngaét vaø soá naøy chæ ñeán phaàn töû thöù i 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 Chuong 5 : I/O Devices 26
- 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 Chuong 5 : I/O Devices 27
- Caùc vector ngaét troû ñeán caùc thuû tuïc coù saün trong ROM BIOS VectorVector ÑòaÑòa chæchæ ChöùcChöùc naêngnaêng ngngắắtt 55 14H14H InIn maønmaøn hìnhhình rara maùymaùy in.in. 88 20H20H ÑoÑo thôøithôøi giangian 99 24H24H MaõMaõ scanscan töøtöø baønbaøn phímphím 1010 40H40H VideoVideo displaydisplay 1111 1212 1313 Chuong 5 : I/O Devices 28
- Thí duï minh hoïa Interrupt 00014h 3636 0909 7474 0000 Soá ngaét 8 00018h 2A2A E4E4 0000 F0F0 0001Ch 5B5B E0E0 0000 F0F0 00020h 7676 2A2A 0000 3030 x 00024h 5B5B E8E8 0000 F0F0 BAÛNG VECTOR NGAÉT 4 bytes Chuong 5 : I/O Devices 29
- Caùc loaïi coång vaøo ra § CoångCoång noáinoái tieáptieáp (serial(serial portport )) :: IBMIBM PCPC cungcung caápcaáp 22 coångcoång noáinoái tieáptieáp :: COM1COM1 hayhay AUXAUX vaøvaø COM2COM2 22 coångcoång naøynaøy ôûôû ñòañòa chæchæ 400h400h vaøvaø 402h402h trongtrong vuøngvuøng döõdöõ lieäulieäu BIOS.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. Chuong 5 : I/O Devices 30
- Caùc loaïi coång vaøo ra § Coång song song (parallel port ) : IBM PC cho pheùp söû duïng 3 coång song 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 378HChuong 5 : I/O Devices 40A 31
- DMA (Direct Memory Access) DMA laø gì ? § Kyõ thuaät cho pheùp I/O device hay Bus ñieàu khieån vieäc truyeàn döõ lieäu 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. Chuong 5 : I/O Devices 32
- Thieát bò ñaàu cuoái § 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 traän. TínTín hieäuhieäu ngoõngoõ rara cuûacuûa mama traäntraän coângcoâng taéctaéc naøynaøy ñöôïcñöôïc ñöañöa vaøovaøo maïchmaïch taïotaïo maõmaõ baønbaøn phím.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. Chuong 5 : I/O Devices 33
- Scan code cuûa 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 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 Chuong 5 : I/O Devices 34
- ScanScan codecode cuûacuûa BaønBaøn phímphím Laøm sao MT phaân bieät ñöôïc khi 1 phím ñöôïc nhaán vaø khi phím ñoù ñöôïc nhaû ? § Khi nhaû phím bò aán, baøn phím taïo ra 1 maõ scan khaùc vôùi maõ scan luùc phím bò aán, coù giaù trò baèng maõ tröôùc coäng theâm 128 (80h) , nghóa laø ñoåi bit 7 cuûa byte maõ scan tröôùc töø 0 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 Chuong 5 : I/O Devices 35
- Boä maõ hoaù queùt treân ma traän KEY 4 line DOWN COL1 To COL2 1 line EN COL3 DEMUX CO COL4 1 0 DE 1 0 2 1 R 1 4 8 TO 0 0 1 0 1 1 0 CO M ROW4 Q0 Q1 Q2 Q3 2 line 4 Bit Counter PU ROW3 To TE ROW2 4 line SCAN OSC R ROW1 DECODER Chuong 5 : I/O Devices 36
- HOAÏT ÑOÄNG NGAÉT QUAÕNG CUÛ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. Chuong 5 : I/O Devices 37
- Lieân laïc giöõa baøn phím vaø CPU(cont) § CöùCöù moãimoãi laànlaàn coùcoù 11 taùctaùc ñoängñoäng aánaán phímphím § maïchmaïch baønbaøn phímphím gaâygaây rara ngaétngaét 99 § goïigoïi 11 chöôngchöông trìnhtrình concon phuïcphuïc vuïvuï ROMROM BIOS.BIOS. 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. Chuong 5 : I/O Devices 38
- HOAÏT ÑOÄNG NGAÉT QUAÕNG CUÛ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 Chuong 5 : I/O Devices 39
- Thí duï minh hoaï veà interrupt IRQ5 ADAPTER CARD INT CPU INTERRUPT STI ENABLE PREORITY FLAG CLI CONTROL IRQ5 CONTROL DATA Chuong 5 : I/O Devices 40
- Giaûi thích § 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 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. Chuong 5 : I/O Devices 41
- Giaûi thích (cont) § Leänh EOI seõ xoùa bit 5 trong thanh ghi ISR ñeå IntController coù theå 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ù. Chuong 5 : I/O Devices 42
- Giaûi thích (cont) § Interrupt controller ñöa ñöôøng tín hieäu INT leân möùc 1 ñeå baùo cho CPU bieát coù 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. Chuong 5 : I/O Devices 43
- Giaûi thích (cont) § CPUCPU taïmtaïm döøngdöøng quaùquaù trìnhtrình hieänhieän haønh,haønh, löulöu giaùgiaù tròtrò CSCS vaøvaø IPIP vaøovaøo stack.stack. NhaûyNhaûy ñeánñeán ñòañòa chæchæ 0000:4*0Dh0000:4*0Dh ,, laáylaáy ñòañòa chæchæ offsetoffset cuûacuûa chöôngchöông trìnhtrình concon phuïcphuïc vuïvuï ngaétngaét 0Dh.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. Chuong 5 : I/O Devices 44
- § TrackTrack Hard Disk § CylinderCylinder Caùc thuaät § SectorSector ngöõ § ClusterCluster track sector Chuong 5 : I/O Devices 45
- Hard Disk Chuong 5 : I/O Devices 46
- Heä thoáng taäp tin cuûa DOS vaø ñieàu khieån ñóa § BaûngBaûng FATFAT :: (File(File AllocationAllocation Table)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 Chuong 5 : I/O Devices 47
- Summary slide § I/O laø gì ? § Moâ taû tieán trình phuïc vuï ngaét quaõng. § Tính toaùn vò trí cuûa vector ngaét cuûa interrupt 20h. § Vieát caùc leänh söû duïng ngaét 21h , haøm 9 ñeå hieån thò ngaøy hieän taïi. § Baûng FAT laø gì ? Chuong 5 : I/O Devices 48
- Summary slide § TheáTheá naøonaøo laølaø ngaétngaét noäi.noäi. ChoCho 11 thíthí duïduï minhminh hoïa.hoïa. § KhiKhi laäplaäp trình,trình, tata thöôøngthöôøng goïigoïi 11 chöchöơơngng trìnhtrình phuïcphuïc vuïvuï xuaátxuaát nhaäp,nhaäp, luùcluùc ñoùñoù tata söûsöû duïngduïng loaïiloaïi ngaétngaét naøo.naøo. CaùchCaùch goïi.goïi. § LaømLaøm saosao ñeåñeå phaânphaân bieätbieät ngaétngaét cöùngcöùng vaøvaø ngaétngaét meàm.meàm. § KhiKhi duøngduøng INTINT 21h21h ñeåñeå hieånhieån thòthò 11 kyùkyù töïtöï rara maønmaøn hình,hình, thanhthanh ghighi naøonaøo chöùachöùa kyùkyù töïtöï seõseõ hieånhieån thò?.thò?. Chuong 5 : I/O Devices 49