1 / 102

Les 6: Input en output

Les 6: Input en output. "It always takes longer than you expect, even when you take into account Hofstadter's Law." Hofstadter’s law. Doelstelling. Uniforme interface van de CVE met zijn omgeving. Snelheden vari ë ren sterk Randapparaten niet synchroon met CVE

bridie
Download Presentation

Les 6: Input en output

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Les 6: Input en output "It always takes longer than you expect, even when you take into account Hofstadter's Law." Hofstadter’s law

  2. Doelstelling Uniforme interface van de CVE met zijn omgeving • Snelheden variëren sterk • Randapparaten niet synchroon met CVE • Gegevens kunnen fouten bevatten • Randapparaten kunnen falen

  3. Inhoud • Bussen • Communicatie en synchronisatie • Secundair geheugen • Invoerapparaten • Uitvoerapparaten • Verbinding met de buitenwereld

  4. BUS Von Neumann-machineFysiek zicht adres CVE Controle controle cache data controle klok klok voeding ALU ALU registers registers Geheugen Geheugen:bau-cellen RAM Invoer/Uitvoer

  5. Busarbitrage: selectie van een master M M M M

  6. Busarbitrage: daisy chain Bus grant Bus request bus- arbiter M M M M Daisy chain

  7. Busarbitrage: centraal Bus grant Bus request bus- arbiter M M M M

  8. Bus: synchroon Synchrone bus Bus klok: bv. 100 MHz T1 T2 T3 geldig adres data mreq rd wait

  9. Bus: asynchroon Asynchrone bus geldig adres mreq rd msyn data ssyn

  10. PC-bussen CVE 10.6 GB/s PCIe x 16 Graphics North Bridge RAM Graphics 10.6 GB/s PCIe x 16 2 GB/s DMI (Direct Media Interface) PCI express 2.0 5 GHz seriëleverbinding 4 Gb/s = 500 MB/s South Bridge

  11. South bridge 2 GB/s DMI (Direct Media Interface) South Bridge PCI 2.0 LAN Serial ATA 3 Gb/s Gb/s 500 MB/s USB 2.0 480 Mb/s Oude standaarden

  12. Afkortingen • PCI: Peripheral Component Interconnect • ISA: Industry Standard Architecture • SCSI: Small Computer Systems Interface • USB: Universal Serial Bus • AGP: Advance Graphics Port • IDE: Integrated Drive Electronics • SATA: Serial ATA (Parallel Ata = IDE) • SAS: Serially Attached SCSI

  13. Laptops • ExpressCard • Vroeger PCMCIA: Personal Computer Memory Card Industry Association (People Cannot Memorize Computer Industry Acronyms)

  14. Inhoud • Bussen • Communicatie en synchronisatie • Secundair geheugen • Invoerapparaten • Uitvoerapparaten • Verbinding met de buitenwereld

  15. controle toestand data IO-registers Invoer / uitvoer-registers CVE randapparaaat

  16. IO-registers Geheugen mov Memory-mapped in out Port-mapped IO-adresruimte

  17. Handshaking protocol data controle toestand

  18. Handshaking protocol data controle toestand

  19. 7 0 Printerpoorten op PC Printer data Printer controle init strobe selectin autofeed IRQ enable Printertoestand PE ack error ready select

  20. Communicatie en synchronisatie • Geprogrammeerde overdracht • Actieve synchronisatie • Onderbrekingen • Directe geheugentoegang (Direct Memory Access, DMA)

  21. bus geheugen Geprogrammeerde overdracht CVE IO-kaart

  22. “programma’s” Actieve synchronisatie “polling” lees toestand neen klaar? ja doe overdracht

  23. Actieve synchronisatie ; I/O adressen dr equ 378h ; dataregister tr equ 379h ; toestandsregister cr equ 37Ah ; controleregister ; controlebits selectin equ 08h ; bit 3 van het cr init equ 04h ; bit 2 van het cr strobe equ 01h ; bit 0 van het cr ; toestandsbits ready equ 80h ; bit 7 van het tr select equ 10h ; bit 4 van het tr

  24. 11010000 10010000 10010000 ?=10010000 Actieve synchronisatie ; print teken in al (overschrijft ah en dx) mov dx, tr mov ah, al lus: in al, dx and al, ready | select cmp al, ready | select jne lus mov dx, dr mov al, ah out dx, al mov dx, cr mov al, selectin | init | strobe out dx, al mov al, selectin | init out dx, al

  25. IO- controller ready bus geheugen Onderbrekingsregelaar Onderbreking: regelaar CVE

  26. ready bus geheugen Onderbrekingen 8259 Interrupt controller CVE IO- controller intr nr

  27. Onderbrekingsregelaars in cascade S M CVE

  28. Onderbrekingen programma Testen van toestand nu in hardware! doe overdracht interrupt service routine “programma”

  29. Onderbrekingen voor de IA32 nummer omschrijving IA32 0 divide by 0 1 single step 2 non maskable interrupt (parity error) 3 breakpoint 4 overflow 5 bound range exceeded 6 invalid opcode 7 device not available (no math co-cpu) 8 double fault 9 co-cpu segment overrun 10 invalid TSS 11 segment not present 12 stack-segment fault 13 general protection 14 page fault 15 … 31 reserved

  30. Onderbrekingen voor onderbrekingsregelaar nummer omschrijving 0 IRQ hardware timer 1 IRQ keypress 2 IRQ tweede onderbrekingsregelaar 3 IRQ com1 4 IRQ com2 5 IRQ hard disk 6 IRQ floppy disk 7 IRQ parallel printer 1 8 IRQ real-time clock 9 IRQ redirect cascade • IRQ reserved • IRQ reserved 12 IRQ mouse 13 IRQ coprocessor exception 14 IRQ fixed disk 15 IRQ reserved

  31. Soorten onderbrekingen Onderbrekingen Excepties Software- onderbrekingen Hardware- onderbrekingen Aborts Faults Traps Maskeer- baar Niet- Maskeer- baar Hardwarefout Nuldeling Paginafout Breakpoint Overflow

  32. Gesegmenteerd geheugen 0 8 16 24 gdtr cs 8 ds 16 ss 24

  33. Segment Descriptor Table Basis Limiet gdtr Desc 0 cs ds ss es fs gs Desc 1 Desc 2 Desc 3 Desc 4 Descriptor Basis<31:24> + extra bits + Lim<19:16> + Basis<23:16> Basis<15:0> Lim<15:0>

  34. Interrupt Descriptor Table Basis Limiet idtr Desc 0 Desc 1 Desc 2 Desc 3 Desc 4 Descriptor extra bits EIP<31:16> CS<15:0> EIP<15:0>

  35. 0 1 2 eip cs eflags esp esp esp esp Onderbrekingen int 2 stapel iret Onderbreking: vlag

  36. esp esp Onderbrekingen 0 1 2 int 2 stapel eip cs eflags iret

  37. Printerdriver ; definitie van constanten printer equ 378h dr equ printer tr equ printer+1 cr equ printer+2 ready equ 80h select equ 10h irq equ 10h selectin equ 08h init equ 04h strobe equ 01h

  38. Veranderlijken ; definitie van veranderlijken bezig db 0 volgende dd 0 datastring db "dag allemaal",10,13,12,0

  39. Print 1 byte printbyte: push edx mov dx,dr out dx,al mov dx,cr mov al,init | selectin | irq | strobe out dx,al mov al,init | selectin | irq out dx,al pop edx ret

  40. ready int bus geheugen Onderbrekingen Interrupt controller CVE Parallelle Poort (printer) 10111100

  41. Onderbrekingsmasker 10111100 7fh 01111111 Nieuw Onderbrekingsmasker 00111100 Aanmaak van een masker Printeronderbreking: IRQ7 van de onderbrekingsregelaar.

  42. Printstring printstring: cmp byte ptr [bezig],0 jnz printstring cli in al,21h and al,7fh out 21h,al sti mov al,[esi] cmp al,0 jnz byteklaar ret byteklaar: mov byte ptr [bezig],1 inc esi mov [volgende],esi call printbyte ret

  43. ready int bus geheugen Onderbrekingen 8259 Interrupt controller CVE IO- controller

  44. Hoofdprogramma main mov eax,39 mov ebx,drijver call installeer_handler mov esi,datastring call printstring ; ; ...voer hier het hoofdprogramma uit... ; wacht: cmp byte ptr [bezig],0 jnz wacht cli in al,21h or al,80h out 21h,al sti

  45. De drijver drijver: push eax mov al,20h out 20h,al sti push esi mov esi,[volgende] mov al,[esi] inc esi mov [volgende],esi cmp al,0 jnz meer mov byte ptr [bezig],0 jmp exit meer: call printbyte exit: pop esi pop eax iret

  46. ready bus geheugen Onderbrekingsregelaar Interrupt controller CVE IO- controller 00111100 int Onderbreking: regelaar

  47. Actieve synchronisatie Zeer snel Mogelijke monopolisering van de CVE Onderbrekingen Minder snel Betere benutting van de CVE Besluit

  48. start ready IO- controller BRQ BGR bus geheugen DMA-regelaar CVE DMA-Cont adres lengte

More Related