Les 6: Input en output "It always takes longer than you expect, even when you take into account Hofstadter's Law." Hofstadter’s law ca6-1 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 ca6-2 Inhoud • Bussen • Communicatie en synchronisatie • Secundair geheugen • Invoerapparaten • Uitvoerapparaten • Verbinding met de buitenwereld ca6-3 BUS Von Neumann-machine Fysiek zicht adres CVE data controle voeding Controle controle klok cache registers Geheugen Geheugen:bau-cellen RAM Invoer/Uitvoer ca6-4 Busarbitrage: selectie van een master M M M M ca6-5 Busarbitrage: daisy chain Bus grant busarbiter Bus request M M M M Daisy chain ca6-6 Busarbitrage: centraal Bus grant busarbiter Bus request M M M M ca6-7 Bus: synchroon Synchrone bus Bus klok: bv. 100 MHz T1 T2 T3 geldig adres data mreq rd wait ca6-8 Bus: asynchroon Asynchrone bus geldig adres mreq rd msyn data ssyn ca6-9 PC-bussen PCIe x 16 Graphics CVE 10.6 GB/s North Bridge Graphics RAM 10.6 GB/s PCIe x 16 PCI express 2.0 5 GHz seriële verbinding 4 Gb/s = 500 MB/s 2 GB/s DMI (Direct Media Interface) South Bridge ca6-10 South bridge 2 GB/s DMI (Direct Media Interface) South Bridge PCI 2.0 LAN 500 MB/s Gb/s USB 2.0 Serial ATA 480 Mb/s 3 Gb/s Oude standaarden ca6-11 ca6-12 ca6-13 ca1-14 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 ca6-15 Inhoud • Bussen • Communicatie en synchronisatie • Secundair geheugen • Invoerapparaten • Uitvoerapparaten • Verbinding met de buitenwereld ca6-16 controle CVE toestand data randapparaaat Invoer / uitvoer-registers IO-registers ca6-17 IO-registers Geheugen mov Memorymapped Portmapped IO-adresruimte in out ca6-18 Handshaking protocol data controle toestand ca6-19 Handshaking protocol data controle toestand ca6-20 Printerpoorten op PC Printer data 7 0 Printer controle Printertoestand ca6-21 Communicatie en synchronisatie • Geprogrammeerde overdracht – Actieve synchronisatie – Onderbrekingen • Directe geheugentoegang (Direct Memory Access, DMA) ca6-22 Geprogrammeerde overdracht CVE IO-kaart bus geheugen ca6-23 Actieve synchronisatie “polling” lees toestand neen klaar? ja doe overdracht “programma’s” ca6-24 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 ca6-25 Actieve synchronisatie ; print teken in al (overschrijft ah en dx) mov dx, tr mov ah, al 11010000 lus: in al, dx 10010000 and al, ready | select 10010000 cmp al, ready | select ?=10010000 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 ca6-26 Onderbrekingsregelaar Onderbreking: regelaar CVE ready IOcontroller bus geheugen ca6-27 Onderbrekingen ready CVE 8259 intr Interrupt controller IOcontroller bus nr geheugen ca6-28 Onderbrekingsregelaars in cascade S CVE M ca6-29 Onderbrekingen programma Testen van toestand nu in hardware! doe overdracht interrupt service routine “programma” ca6-30 Onderbrekingen voor de IA32 nummer omschrijving IA32 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 divide by 0 single step non maskable interrupt (parity error) breakpoint overflow bound range exceeded invalid opcode device not available (no math co-cpu) double fault co-cpu segment overrun invalid TSS segment not present stack-segment fault general protection page fault … 31 reserved ca6-31 Onderbrekingen voor onderbrekingsregelaar nummer omschrijving 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 IRQ hardware timer IRQ keypress IRQ tweede onderbrekingsregelaar IRQ com1 IRQ com2 IRQ hard disk IRQ floppy disk IRQ parallel printer 1 IRQ real-time clock IRQ redirect cascade IRQ reserved IRQ reserved IRQ mouse IRQ coprocessor exception IRQ fixed disk IRQ reserved ca6-32 Soorten onderbrekingen Onderbrekingen Excepties Aborts Faults Softwareonderbrekingen Traps Hardwareonderbrekingen Maskeerbaar NietMaskeerbaar Hardware Nuldeling Breakpoint fout Paginafout Overflow ca6-33 Gesegmenteerd geheugen 0 8 16 24 gdtr cs 8 ds 16 ss 24 ca6-34 Segment Descriptor Table Basis Limiet gdtr cs ds Desc 1 ss Desc 2 es fs Descriptor Desc 0 gs Desc 3 Desc 4 Basis<31:24> + extra bits + Lim<19:16> + Basis<23:16> Basis<15:0> Lim<15:0> ca6-35 Interrupt Descriptor Table Basis Limiet idtr Desc 0 Desc 1 Desc 2 Desc 3 Desc 4 Descriptor EIP<31:16> extra bits CS<15:0> EIP<15:0> ca6-36 Onderbrekingen 0 1 2 int 2 stapel iret esp esp esp esp eip cs eflags Onderbreking: vlag ca6-37 Onderbrekingen 0 1 2 int 2 stapel esp iret eip cs eflags esp ca6-38 Printerdriver ; definitie van constanten printer equ 378h dr equ printer tr equ printer+1 cr equ printer+2 ready select equ equ 80h 10h irq selectin init strobe equ equ equ equ 10h 08h 04h 01h ca6-39 Veranderlijken ; definitie van veranderlijken bezig db 0 volgende dd 0 datastring db "dag allemaal",10,13,12,0 ca6-40 Print 1 byte printbyte: push mov out mov mov out mov out pop ret edx dx,dr dx,al dx,cr al,init | selectin | irq | strobe dx,al al,init | selectin | irq dx,al edx ca6-41 Onderbrekingen ready CVE 10111100 int Interrupt controller Parallelle Poort (printer) bus geheugen ca6-42 Aanmaak van een masker Printeronderbreking: IRQ7 van de onderbrekingsregelaar. Onderbrekingsmasker 10111100 7fh 01111111 Nieuw Onderbrekingsmasker 00111100 ca6-43 printstring: cmp jnz cli in and out sti mov cmp jnz ret byteklaar: mov inc mov call ret byte ptr [bezig],0 printstring Printstring al,21h al,7fh 21h,al al,[esi] al,0 byteklaar byte ptr [bezig],1 esi [volgende],esi printbyte ca6-44 Onderbrekingen ready CVE 8259 int Interrupt controller IOcontroller bus geheugen ca6-45 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 ca6-46 drijver: meer: exit: 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 call printbyte pop esi pop eax iret De drijver ca6-47 Onderbrekingsregelaar ready CVE 00111100 int Interrupt controller IOcontroller bus geheugen Onderbreking: regelaar ca6-48 Besluit • Actieve synchronisatie – Zeer snel – Mogelijke monopolisering van de CVE • Onderbrekingen – Minder snel – Betere benutting van de CVE ca6-49 DMA-regelaar start ready BRQ DMA-Cont CVE BGR adres lengte IOcontroller bus geheugen ca6-50 Directe geheugentoegang • Geen programma-uitvoering meer • Er wordt enkel één geheugencyclus “gestolen” per overdracht (cycle stealing) ca6-51 Inhoud • Bussen • Communicatie en synchronisatie • Secundair geheugen • Invoerapparaten • Uitvoerapparaten • Verbinding met de buitenwereld ca6-52 Secundair geheugen • Magnetische Schijven • Magnetische banden (tapes) • Optische schijven ca6-53 Magnetische schijven ca6-54 Magnetische schijven Sturing + buffering van de harde schijf ca6-55 Magnetische schijven 3 platen (platters) 6 oppervlakken ca6-56 Magnetische schijven Glazen of aluminium oppervlak met magnetiseerbare laag, gepolijst. ca6-57 Magnetische schijven 6 koppen (zweven 5 m boven oppervlak) Per positie kunnen 6 sporen (op 6 oppervlakken) gelezen worden (cilinder) ca6-58 Magnetische schijven spoor sector ca6-59 Tijden • Zoektijd: verplaatsen van de kop naar de juiste cilinder • Latentie: wachten totdat de juiste sector onder de kop komt • Transfertijd: tijd nodig om gegevens te lezen of te schrijven http://www.youtube.com/watch?v=9eMWG3fwiEU ca6-60 Voorbeeld HD Parameter Capaciteit Waarde 150 GB Aantal sectoren 293 046 768 Rotatiesnelheid Latentie 10 000 rpm 2.99 ms Zoektijd Spoor-naar-spoor zoektijd Opstarttijd 4.6-5.2 ms gemiddeld 0.4 ms 7-10 s MTBF Waarborg Foutkans 1 200 000 uur (137 jaar) 5 jaar < 1 op 1015 bits ca6-61 Voorbeeld HD Parameter Start-stop cycli Buffer Buffer naar computer Buffer naar schijf Waarde > 20 000 16 MiB 1.5 Gb/s (SATA) 84 MB/s Temperatuur Vochtigheid Hoogte 5-55C 5-95% -305-12200 m Vermogen Sleep 10W 2.5 W ca6-62 Voorbeeld SSD Model Number Interface Capacity Guaranteed logical blocks Programming page size Sustained data transfer rate Average latency Random read seek time Random write seek time I/O data transfer rate Unrecoverable read errors ST800FM0012 6-Gb/s SAS 800GB 1,562,824,368 8192B 370MB/s 0.273ms 0.293ms 0.137ms 600MB/s 1 in 1016 http://www.youtube.com/watch?v=viac3j6MeII&feature=related ca6-63 Voorbeeld SSD MTBF Annual Failure Rate Average idle power Average operating power Operating temperature Nonoperating temperature Operating Shock (max) Nonoperating Shock (max) 2,000,000 hours 0.44% 4.38W 5.93W 5°–60°C -40°–70°C 1000 Gs for 0.5ms 1000 Gs for 0.5ms ca6-64 Master Control Block Eerste sector die door het besturingssysteem geladen wordt na het opstarten van de CVE. Meestal sector 0 van spoor 0 van oppervlak 0 Ook master boot record genaamd ca6-65 Floppy disk • • • • • • • • Zelfde principe als de hard-disk Veel kleiner (1,44 MB) Draait niet indien niet gebruikt Rotatiesnelheid: 300 TPM Aantal sporen: 80 Sectors per spoor: 18 Bandbreedte: 500 kb/s (64,5 kB/s) ZIP (100,250,750 MB), en Jaz (2 GB), floptical (tot 2 GB) ca6-66 Tapes LTO-1 LTO-2 LTO-3 LTO-4 LTO-5 LTO-6 LTO-7 LTO-8 LTO-9 Introductiejaar 2000 2003 2005 2007 2010 2012 2015 Capaciteit (GB) 100 200 400 800 1500 2500 6000 Bandbreedte (MB/s) 20 40 80 120 140 160 300 Tapelengte (m) 609 609 680 820 846 846 960 Densideit (bits/mm) Sporen 4880 384 7398 512 9638 704 15143 2176 3584 13250 15142 896 1280 TBA TBA 12800 26000 427 708 LTO: Linear Tape-Open ca6-67 CD-ROM Origineel 783 MB muziek (74 min) 650 MB data (meer foutcorrectie) ca6-68 CD-ROM ca6-69 CD-ROM • Eerste CD-ROM lezers: 300 TPM of 150 kB/s • Later: x 40, x 56 originele snelheid • Snelheid varieert afhankelijk van de plaats: constant linear velocity: stroom bits per seconde is constant (bij hard disk: constant angular velocity: snelheid disk is constant) ca6-70 CD-schrijver • Eenmaal: CD-R (recordable) • Meermaals: CD-RW (rewritable) • Schrijven is trager dan lezen ca6-71 DVD-ROM Blu-ray: 25 GB/per laag – tot 2 lagen ca6-72 Inhoud • Bussen • Communicatie en synchronisatie • Secundair geheugen • Invoerapparaten • Uitvoerapparaten • Verbinding met de buitenwereld ca6-73 Invoerapparaten • • • • Toetsenbord Muizen & trackballs, joysticks Lichtpennen en aanwijsschermen Digitiseertablet ca6-74 Toetsenbord • 101 toetsen (enhanced keyboard) • 104 toetsen (windows keyboard) • Layout: qwerty, azerty, qwertz, dvorak ca6-75 Toetsenbordmatrix Bij toetsaanslag: sluiten van de schakelaar Omzetting scancode (x,y) naar letterteken Interne buffering (16 bytes) ca6-76 Toetsenborden • Bounce: bij een toetsaanslag soms schakeldender slechts 1 teken • Bij ingeduwd houden: typematics. Na een zeker tijdsinterval b.v. 30 x het teken per seconde. • Op laptops: vaak speciale (compacte) toetsenborden en afzonderlijke numerieke toetsenborden ca6-77 Muis: bovenaanzicht encoder chip roterende bal ca6-78 Muis: onderaanzicht roterende bal ca6-79 Muis “rollers” 90º: X- en Y-richting ca6-80 Muis infrarode pulsgenerator ca6-81 Optische muis led camera ca6-82 Andere muistypes • Trackball: omgekeerde muis – B.v. bij laptops, of bij draagbare muizen • • • • Touchpad: bij laptops (wrijven en tikken) “Pointing stick” tussen toetsen Joystick: xy-positie + rotatie Muizen kunnen ook optisch zijn (lichtbron + reflecterende muismat + sensor) ca6-83 Lichtpennen en aanraakschermen • Lichtpen: detecteert de elektronenstraal per refresh. Enkel bruikbaar indien het pixel niet zwart is. • Aanraakscherm – Optisch (met leds, of met camera) – Elektrisch (verandering weerstand) ca6-84 Digitiseertablet • Soort muis + muismat met absolute coördinaten • Vooral voor professionele toepassingen: grafisch, virtuele realiteit, CAD, GIS, enz. ca6-85 Inhoud • Bussen • Communicatie en synchronisatie • Secundair geheugen • Invoerapparaten • Uitvoerapparaten • Verbinding met de buitenwereld ca6-86 Uitvoerapparaten • Laserprinters • Ink jet printers • Video display ca6-87 Laserprinter ca6-88 Inkjetprinters • Goedkoop • Voldoende snel (8-16 ppm, ZW) • Goede resolutie: 300 dpi tot 1200 dpi (dots per inch) ca6-89 Spuitgaten Gaten van 50 m diameter Gaten van 25 m diameter ca6-90 Ink jet methoden Thermisch (dampvorming) Piezo-elektrisch (mechanisch) (epson) ca6-91 Videodisplay • Technologie: – CRT: Kathodestraalbuis (Cathode Ray Tube) – LCD: Liquid Cristal Display • • • • Schermafmeting, aspect ratio & oriëntatie Maximale resolutie & kleurendiepte Dot pitch (grootte van een pixel) Refresh rate ca6-92 Kathodestraalbuis ca6-93 Afmeting, aspect-ratio & oriëntatie • Grootte: 12, 14, 15, 17, 19, 21 duim • Aspect-ratio: 4:3 (zoals TV) of 16:9 (film) • Oriëntatie: landschap of portret Opmerking: zichtbare grootte < opgegeven grootte ca6-94 Kleurendiepte, resolutie, dot pitch • True color: 8 bits per kleurcomponent (rood, groen, blauw) per pixel: 16,8 miljoen combinaties (SVGA-standaard) • Resolutie – XGA: 800x600 pixels & true color – UXGA: 1600x1200 pixels & true color • Resolutie & kleurendiepte bepalen de hoeveelheid videoram in de videokaart • Dot pitch: grootte van een pixel ca6-95 Dot pitch 0,31 mm 0,28 mm (courant) 0,27 mm 0,26 mm 0,25 mm 0,51 mm (TV) ca6-96 Refreshrate • Aantal keer dat het scherm per seconde herschreven wordt • Om flikkering te vermijden 72 Hz, best 85 Hz • Non-interlaced: per periode wordt het volledige scherm herschreven, en niet 50% van de lijnen (even/oneven) zoals bij een TV. ca6-97 Analoog vs. digitaal • VGA (Video graphics array): zet het binaire beeld om in een analoog signaal dat naar de (analoge) monitor gestuurd wordt • DVI (Digital Video Interface): stuurt de digitale informatie rechtstreeks naar een digitale monitor ca6-98 LCD-scherm • LCD: Liquid Cristal Display • Twee types: – Passieve matrix LCD – Actieve matrix LCD (gebaseerd op een dunne film transistor TFT) • Lichtbron: – Ingebouwd achter het LCD (backlit) – Omgevingslicht (reflectief via spiegel) ca6-99 Inhoud • Bussen • Communicatie en synchronisatie • Secundair geheugen • Invoerapparaten • Uitvoerapparaten • Verbinding met de buitenwereld ca6-100 Verbindingen • • • • • • • • • • Infrarood (IrDA) USB 2.0 poort USB 3.0 poort Thunderbolt Ethernet-poort SCSI poort SATA600 SAS Fibre channel Infiniband 0.000075 Gb/s 0.48 Gb/s 4.8 Gb/s 10 Gb/s 10 Gb/s 5.1 Gb/s 6 Gb/s 6 Gb/s 5.1 Gb/s 14-312 Gb/s ca6-101 Pauze ca6-102