Ca6-1 Les 6: Input en output "It always takes longer than you expect, even when you take into...

Post on 04-Jun-2015

214 views 0 download

Tags:

transcript

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