Date post: | 04-Jun-2015 |
Category: |
Documents |
Upload: | gert-desmet |
View: | 214 times |
Download: | 0 times |
ca6-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
ca6-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
ca6-3
Inhoud
• Bussen
• Communicatie en synchronisatie
• Secundair geheugen
• Invoerapparaten
• Uitvoerapparaten
• Verbinding met de buitenwereld
ca6-4
Von Neumann-machineFysiek zicht
Invoer/Uitvoer
adres
controle
data
BUS
voeding
Geheugen:bau-cellen
RAM
controlecontrole
klokklok
registersregistersALU
ControleControle
klokklok
registersregisters
Geheugen
CVE
ALU
cachecache
ca6-5
Busarbitrage: selectie van een master
MM MM MM MM
ca6-6
Busarbitrage: daisy chain
MM MM MM MMbus-
arbiterbus-
arbiter
Bus requestBus grant
Daisy chain
ca6-7
Busarbitrage: centraal
MM MM MM MMbus-
arbiterbus-
arbiter
Bus requestBus grant
ca6-8
Synchrone busBus klok: bv. 100 MHz
T1 T2 T3
geldig adres
data
mreq
rd
wait
Bus: synchroon
ca6-9
Asynchrone bus
geldig adres
mreq
rd
msyn
ssyn
data
Bus: asynchroon
PC-bussen
North Bridge
GraphicsRAM
10.6 GB/s
10.6 GB/s
2 GB/s DMI (Direct Media Interface)
CVE
PCIe x 16
GraphicsPCIe x 16
PCI express 2.05 GHz seriële verbinding4 Gb/s = 500 MB/s South Bridge
ca6-10
South bridge
PCI 2.0 LAN
USB 2.0 480 Mb/s
South Bridge
500 MB/s Gb/s Oude standaarden
2 GB/s DMI (Direct Media Interface)
Serial ATA3 Gb/s
ca6-11
ca6-12
ca6-13
ca6-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
bca9-15
Laptops
• ExpressCard• Vroeger PCMCIA: Personal
Computer Memory Card Industry Association (People Cannot Memorize Computer Industry Acronyms)
ca6-16
Inhoud
• Bussen
• Communicatie en synchronisatie
• Secundair geheugen
• Invoerapparaten
• Uitvoerapparaten
• Verbinding met de buitenwereld
ca6-17
Invoer / uitvoer-registers
CVECVE
ran
dap
par
aaat
ran
dap
par
aaatcontrolecontrole
toestandtoestand
datadata
IO-registers
ca6-18
IO-registers
IO-adresruimte
Geheugen
Memory-mapped
Port-mapped
in
out
in
out
movmov
ca6-19
Handshaking protocol
data
controle
toestand
ca6-20
Handshaking protocol
data
controle
toestand
ca6-21
Printerpoorten op PC
Printer data
Printer controle
Printertoestand
07
strobe
autofeed
init
selectin
IRQ enable
error
select
PEack
ready
ca6-22
Communicatie en synchronisatie
• Geprogrammeerde overdracht– Actieve synchronisatie– Onderbrekingen
• Directe geheugentoegang (Direct Memory Access, DMA)
ca6-23
Geprogrammeerde overdracht
CVECVE
bus
geheugengeheugen
IO-kaartIO-kaart
ca6-24
Actieve synchronisatie “polling”
lees toestand
klaar?
doe overdracht
neen
ja
“programma’s”
ca6-25
; I/O adressendr equ 378h ; dataregistertr equ 379h ; toestandsregistercr equ 37Ah ; controleregister
; toestandsbitsready equ 80h ; bit 7 van het trselect equ 10h ; bit 4 van het tr
; controlebitsselectin equ 08h ; bit 3 van het crinit equ 04h ; bit 2 van het crstrobe equ 01h ; bit 0 van het cr
Actieve synchronisatie
ca6-26
; 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
Actieve synchronisatie
110100001001000010010000
?=10010000
ca6-27
Onderbrekingsregelaar
CVECVE
bus
geheugengeheugen
IO-controller
IO-controller
ready
Onderbreking: regelaar
ca6-28
Onderbrekingen
CVECVE
bus
geheugengeheugen
8259Interruptcontroller
8259Interruptcontroller
IO-controller
IO-controller
intr
ready
nr
ca6-29
Onderbrekingsregelaars in cascade
MMSS
CVECVE
ca6-30
Onderbrekingen
doe overdracht
programma
interrupt service routine “programma”
Testen van toestandnu in hardware!
ca6-31
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 overrun10 invalid TSS11 segment not present12 stack-segment fault13 general protection14 page fault15 …
31 reserved
Onderbrekingen voor de IA32
ca6-32
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 cascade10 IRQ reserved11 IRQ reserved12 IRQ mouse13 IRQ coprocessor exception14 IRQ fixed disk15 IRQ reserved
Onderbrekingen voor onderbrekingsregelaar
ca6-33
Soorten onderbrekingen
Onderbrekingen
ExceptiesSoftware-
onderbrekingenHardware-
onderbrekingen
Maskeer-baar
Niet-Maskeer-
baarAborts Faults Traps
NuldelingPaginafout
BreakpointOverflow
Hardwarefout
ca6-34
Gesegmenteerd geheugen
gdtr
8
16
24
cs
ds
ss
08
1624
ca6-35
Segment Descriptor Table
gdtr
Desc 0
Desc 1
Desc 2
Desc 3
Desc 4
Basis Limiet
Descriptor
Lim<15:0>Basis<31:24> + extra bits +
Lim<19:16> + Basis<23:16>Basis<15:0>
cs
ds
ss
es
fs
gs
cs
ds
ss
es
fs
gs
ca6-36
Interrupt Descriptor Table
idtr
Desc 0
Desc 1
Desc 2
Desc 3
Desc 4
Basis Limiet
Descriptor
EIP<15:0>EIP<31:16> CS<15:0>extra bits
ca6-37
Onderbrekingen
stapel
012
iret
int 2
espeflagsesp
csespeipesp
Onderbreking: vlag
ca6-38
Onderbrekingen
stapel
012
iret
int 2
eflagscseipesp
esp
ca6-39
Printerdriver; definitie van constanten
printer equ 378h dr equ printertr equ printer+1cr equ printer+2
ready equ 80hselect equ 10h
irq equ 10hselectin equ 08hinit equ 04hstrobe equ 01h
ca6-40
Veranderlijken
; definitie van veranderlijkenbezig db 0volgende dd 0datastring db "dag allemaal",10,13,12,0
ca6-41
Print 1 byteprintbyte:
push edxmov dx,dr out dx,almov dx,crmov al,init | selectin | irq | strobeout dx,almov al,init | selectin | irqout dx,alpop edxret
ca6-42
Onderbrekingen
CVECVE
bus
geheugengeheugen
InterruptcontrollerInterruptcontroller
ParallellePoort
(printer)
ParallellePoort
(printer)
int
ready
10111100
ca6-43
Printeronderbreking: IRQ7 van de onderbrekingsregelaar.
10111100Onderbrekingsmasker
7fh 01111111
00111100Nieuw Onderbrekingsmasker
Aanmaak van een masker
ca6-44
Printstringprintstring: 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 retbyteklaar: mov byte ptr [bezig],1 inc esi mov [volgende],esi call printbyte ret
ca6-45
Onderbrekingen
CVECVE
bus
geheugengeheugen
8259Interruptcontroller
8259Interruptcontroller
IO-controller
IO-controller
int
ready
ca6-46
Hoofdprogrammamain 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-47
De drijverdrijver: 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 exitmeer: call printbyte exit: pop esi pop eax iret
ca6-48
Onderbrekingsregelaar
CVECVE
bus
geheugengeheugen
InterruptcontrollerInterruptcontroller
IO-controller
IO-controller
int
ready
00111100
Onderbreking: regelaar
ca6-49
• Actieve synchronisatie– Zeer snel– Mogelijke monopolisering van de CVE
• Onderbrekingen– Minder snel– Betere benutting van de CVE
Besluit
ca6-50
DMA-regelaar
CVECVE
bus
geheugengeheugen
DMA-ContDMA-ContIO-
controllerIO-
controller
BRQ
ready
BGR
start
adreslengte
ca6-51
Directe geheugentoegang
• Geen programma-uitvoering meer
• Er wordt enkel één geheugencyclus “gestolen” per overdracht (cycle stealing)
ca6-52
Inhoud
• Bussen
• Communicatie en synchronisatie
• Secundair geheugen
• Invoerapparaten
• Uitvoerapparaten
• Verbinding met de buitenwereld
ca6-53
Secundair geheugen
• Magnetische Schijven
• Magnetische banden (tapes)
• Optische schijven
ca6-54
Magnetische schijven
ca6-55
Magnetische schijven
Sturing + buffering van de harde schijf
ca6-56
Magnetische schijven
3 platen (platters)
6 oppervlakken
ca6-57
Magnetische schijven
Glazen of aluminium oppervlak met magnetiseerbare laag, gepolijst.
ca6-58
Magnetische schijven
6 koppen (zweven 5 m boven oppervlak)Per positie kunnen 6 sporen (op 6 oppervlakken)
gelezen worden (cilinder)
ca6-59
Magnetische schijven
spoor
sector
ca6-60
• 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
Tijden
http://www.youtube.com/watch?v=9eMWG3fwiEU
ca6-61
Voorbeeld HDParameter Waarde
Capaciteit 150 GB
Aantal sectoren 293 046 768
Rotatiesnelheid 10 000 rpm
Latentie 2.99 ms
Zoektijd 4.6-5.2 ms gemiddeld
Spoor-naar-spoor zoektijd 0.4 ms
Opstarttijd 7-10 s
MTBF 1 200 000 uur (137 jaar)
Waarborg 5 jaar
Foutkans < 1 op 1015 bits
ca6-62
Voorbeeld HDParameter Waarde
Start-stop cycli > 20 000
Buffer 16 MiB
Buffer naar computer 1.5 Gb/s (SATA)
Buffer naar schijf 84 MB/s
Temperatuur 5-55C
Vochtigheid 5-95%
Hoogte -305-12200 m
VermogenSleep
10W 2.5 W
Voorbeeld SSD
ca6-63
Model Number ST800FM0012Interface 6-Gb/s SASCapacity 800GBGuaranteed logical blocks 1,562,824,368Programming page size 8192BSustained data transfer rate 370MB/sAverage latency 0.273msRandom read seek time 0.293msRandom write seek time 0.137msI/O data transfer rate 600MB/sUnrecoverable read errors 1 in 1016
http://www.youtube.com/watch?v=viac3j6MeII&feature=related
Voorbeeld SSD
ca6-64
MTBF 2,000,000 hoursAnnual Failure Rate 0.44%Average idle power 4.38WAverage operating power 5.93WOperating temperature 5°–60°CNonoperating temperature -40°–70°COperating Shock (max) 1000 Gs for 0.5msNonoperating Shock (max) 1000 Gs for 0.5ms
ca6-65
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-66
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)• Nu: ZIP (100,250,750 MB), en Jaz (2 GB), floptical
(tot 2 GB)• Duur
ca6-67
Tapes
• Vooral voor backup
• Goedkoop medium
• Voornamelijk– DDS: Digital Data Storage (Digital Audio
Tape)– DLT: Digital Linear Tape
• Capaciteit 4-150 GB
ca6-68
CD-ROMOrigineel 783 MB muziek (74 min)
650 MB data (meer foutcorrectie)
ca6-69
CD-ROM
ca6-70
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-71
CD-schrijver
• Eenmaal: CD-R (recordable)
• Meermaals: CD-RW (rewritable)
• Schrijven is trager dan lezen
ca6-72
DVD-ROM
Nu Blu-ray: 25 GB/per laag – tot 2 lagen
ca6-73
Inhoud
• Bussen
• Communicatie en synchronisatie
• Secundair geheugen
• Invoerapparaten
• Uitvoerapparaten
• Verbinding met de buitenwereld
ca6-74
Invoerapparaten
• Toetsenbord
• Muizen & trackballs, joysticks
• Lichtpennen en aanwijsschermen
• Digitiseertablet
ca6-75
Toetsenbord
• 101 toetsen (enhanced keyboard)
• 104 toetsen (windows keyboard)
• Layout: qwerty, azerty, qwertz, dvorak
ca6-76
Toetsenbordmatrix
Bij toetsaanslag: sluiten van de schakelaar
Omzetting scancode (x,y) naar letterteken
Interne buffering (16 bytes)
ca6-77
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-78
Muis: bovenaanzicht
encoder chip roterende bal
ca6-79
Muis: onderaanzicht
roterende bal
ca6-80
Muis
“rollers” 90º: X- en Y-richting
ca6-81
Muis
infrarode pulsgenerator
ca6-82
Optische muis
ledcamera
ca6-83
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-84
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-85
Digitiseertablet
• Soort muis + muismat met absolute coördinaten
• Vooral voor professionele toepassingen: grafisch, virtuele realiteit, CAD, GIS, enz.
ca6-86
Inhoud
• Bussen
• Communicatie en synchronisatie
• Secundair geheugen
• Invoerapparaten
• Uitvoerapparaten
• Verbinding met de buitenwereld
ca6-87
Uitvoerapparaten
• Laserprinters
• Ink jet printers
• Video display
ca6-88
Laserprinter
ca6-89
Inkjetprinters
• Goedkoop
• Voldoende snel (8-16 ppm, ZW)
• Goede resolutie: 300 dpi tot 1200 dpi (dots per inch)
ca6-90
Spuitgaten
Gaten van 50 m diameter
Gaten van 25 m diameter
ca6-91
Ink jet methoden
Thermisch (dampvorming) Piezo-elektrisch (mechanisch)
(epson)
ca6-92
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-93
Kathodestraalbuis
ca6-94
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-95
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-96
Dot pitch
0,31 mm
0,28 mm (courant)
0,27 mm
0,26 mm
0,25 mm
0,51 mm (TV)
0,31 mm
0,28 mm (courant)
0,27 mm
0,26 mm
0,25 mm
0,51 mm (TV)
ca6-97
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-98
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-99
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-100
Inhoud
• Bussen
• Communicatie en synchronisatie
• Secundair geheugen
• Invoerapparaten
• Uitvoerapparaten
• Verbinding met de buitenwereld
ca6-101
Verbindingen• Infrarood (IrDA) 0.000075 Gb/s• USB 2.0 poort 0.48 Gb/s• USB 3.0 poort 4.8 Gb/s• Thunderbolt 10 Gb/s• Ethernet-poort 10 Gb/s• SCSI poort 5.1 Gb/s• SATA600 6 Gb/s• SAS 6 Gb/s• Fibre channel 5.1 Gb/s• Infiniband 14-312 Gb/s
ca6-102
Pauze