ca6 - UGent

advertisement
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
Download