Transcript hardware

Bussen
verbindingen tussen deze blokken
CPU
RAM
0
Computerarchitectuur
7
Een bus bestaat uit een hoeveelheid parallelle verbindingen
waarbij elke verbinding één bit kan transporteren.
databus: het transport van gegevens
adresbus: waar de gegevens vandaan moeten komen of waar ze heen moeten.
controlebus: alle overblijvende signalen
bijvoorbeeld, of er gegevens gelezen of weggeschreven moeten worden.
Blokschema
Geheugenmodule met vier registers
controle-bus
CPU
Met de twee adreslijnen A1 en A0 wordt één van de vier registers geselecteerd.
ROM
RAM
geheugen
geheugen
I/O
databus
adresbus



 de central processing unit (CPU), het rekenhart
drie belangrijke onderdelen:
het geheugen (ROM en RAM)



communicatie met de buitenwereld (IO)
A1
A0
0
0
0
1
1
0
1
1
A0
adresbus A1
read
controle-bus
write
RAM
D0
D1
D2
D3
D4
D5
D6
D7
databus
De inhoud van zo’n register kan gelezen worden als het read-signaal hoog is;
een register wordt met data gevuld als het write-signaal hoog is.
Elk register bevat bijvoorbeeld acht bits: deze gegevens (data) worden via de databus
aangevoerd (schrijven) of afgevoerd (lezen).
De read en write lijnen behoren tot de controlebus.
Intern geheugen
Wanneer het aantal adreslijnen van de geheugenmodule kleiner is dan de breedte van de
adresbus (gelijk aan het aantal adreslijnen van de CPU), kan men verschillende
geheugenmodules op de CPU aansluiten.

 het opslaan van de instructies die de CPU uitvoert
 het opslaan van gegevens waarop de CPU bewerkingen uitvoert
Naast dit intern geheugen is er ook extern (of secundair of achtergrond) geheugen
aanwezig, namelijk disks en tapes, maar deze zijn niet direct door de CPU te bereiken.
capaciteit van een geheugenmodule: product van het aantal bits op één geheugenplaats
met het aantal geheugenplaatsen per module.
Bijvoorbeeld bij een module met zes adreslijnen en een CPU met acht adreslijnen, kan
de CPU vier verschillende geheugenmodules aanspreken.
De adreslijnen A6 en A7 kiezen via een decoder één van de vier modules.
Vanuit de CPU gezien vormen de vier modules één grote geheugenmodule:
Het aantal geheugenplaatsen : het aantal adreslijnen van de geheugenmodule
module met n adreslijnen: 2n afzonderlijk aan te wijzen geheugenplaatsen.
256 × 8 RAM
0xFF
6
Het aantal bits per plaats is gelijk voor elke plaats in de module.
Er bestaan modules met één, vier of acht bits per adres, (maar ook andere aantallen).
D
0xC0 t/m 0xFF
C
0x80 t/m 0xBF
B
0x40 t/m 0x7F
A
...
0x00 t/m 0x3F
adres
De adreslijnen van een geheugenmodule worden op de adresbus aangesloten
deze lijnen zijn altijd ingangen voor de geheugenmodule.
?
0x00
De datalijnen worden verbonden met de databus.
(het aantal lijnen van de module kan kleiner zijn dan de breedte van de bus)
D0
D7
Beperkt aantal datalijnen
Beperkt aantal adreslijnen
geheugenmodules parallel schakelen: ze zijn op hetzelfde adres actief, maar iedere
module is gekoppeld aan zijn eigen gedeelte van de databus.
databus
databus
D0
A0
A
B
C
D0
D
A5
A
D7
R/W
CS
D3
A7
R/W
adresbus
A7
D4
B
R/W
A6
A0
R/W
decoder
CS
adresbus
D7
CS
Bij een CPU met acht datalijnen en een geheugenmodule met vier datalijnen, worden
twee geheugenmodules gebruikt: de vier datalijnen van de eerste module zijn gekoppeld
aan D0 tot D3 van de databus en de tweede module aan D5 tot D7 .
Vanuit het standpunt van de CPU zien we dus een 8-bits brede module:
256 × 8 RAM
A
B
Deze situatie komt heel vaak voor en heeft gevolgen wanneer men een systeem van meer geheugen wil voorzien.
De toegepaste geheugenmodules hebben vaak
een smallere databus dan de databus van het
systeem waarin ze geplaatst worden.
0xFF
6
adres
?
0x00
D0 . . . D3 D4 . . . D7
Geheugenmodules moeten dan steeds in groepen tegelijk bijgeplaatst worden, omdat
het systeem niet kan werken met gedeeltelijk gevulde geheugenlocaties. Zo’n groep van
parallel werkende geheugenelementen noemt men een geheugenbank.
Types geheugenmodules
ROM (read-only-memory): dit is geheugen waar alleen uit gelezen kan worden. Data
zit vast in de module en zal bij uitschakelen van de computer behouden blijven.
In ROM-geheugen wordt de data al bij het maken van de chip door de
geheugenfabrikant vastgelegd.
Een PROM (programmable read-only-memory) is een ROM-geheugen dat door de
gebruiker eenmalig van data te voorzien is (het programmeren van de ROM).
Een EPROM (erasable programmable read-only-memory) is een PROM die met
behulp van ultraviolet licht weer te wissen is.
Een EEPROM is ook wisbaar, maar nu met een elektrisch signaal, wat in de
praktijk eenvoudiger is dan de geheugenmodules onder een UV-lamp te leggen.
FlashROM (of flashmemory): een EEPROM van een bepaald type, dat in de
schakeling waarin de chip opgenomen is, opnieuw kan geprogrammeerd worden.
RAM (random-access-memory): men kan lezen én schrijven. “Random access” zegt
alleen maar dat de geheugenplaatsen willekeurig toegankelijk zijn, maar dat is met
ROM geheugen ook het geval.
Bij RAM-modules is een belangrijk onderscheid het statisch of dynamisch zijn van
de chip.
Een SRAM-module onthoudt de opgeslagen data zolang de spanning op de voeding
aanwezig blijft, daar hoeft niets extra’s voor te gebeuren.
Een DRAM-module verliest zijn data na enige tijd (bijv. na 2 ms). Zo’n module
moet regelmatig zijn geheugen opfrissen (een refresh cycle).
Dit nadeel weegt meestal niet op tegen de grotere capaciteit: een dynamische
RAM-chip heeft bij dezelfde integratiedichtheid (dus dezelfde stand van de
techniek) een opslagcapaciteit die vier maal zo groot is als een statische RAM-chip.
SRAM met bijv. een access tijd van 4 nsec (10−9 sec), is veel sneller dan DRAM maar
ook duurder en wordt daarom veel gebruikt in L2-cache RAM (zie verder).
DRAM-modules worden vaak gecombineerd in simm-modules (single inline memory
module) met een accesstijd van 60 nsec. Deze simm’s zijn kleine printplaatjes met een
aantal, meestal parallel geschakelde DRAM-modules.
Moderne computers hebben een aantal slots waar deze modules in kunnen geplaatst
worden. De eerste simm’s waren opgebouwd uit 8 DRAM-modules met elk een
capaciteit van bijvoorbeeld 1 Mbit; zo’n simm had 30 aansluitpinnen. Voor modernere
CPU’s met bredere databussen zijn tegenwoordig simm’s ter beschikking met 72
aansluitingen die 32-bits breed zijn.
Een recenter type is SD-RAM (Synchron Data RAM) geleverd in een 64-bits brede
dimm met 168 pinnen. Zo’n module kan een capaciteit hebben tot 256 Mb en heeft een
accesstijd tussen de 8 en 12 nsec.
De program counter bevat het adres van de uit te voeren instructie. De inhoud van de
program counter wordt tijdens het uitvoeren van een instructie ingesteld op het adres
van de volgende instructie.
CPU
controle-bus lijnen
A0
adresbuslijnen
An
De stack pointer bevat ook een geheugenadres; het register wijst naar geheugen waar
informatie bijgehouden wordt tijdens het oproepen van procedures en functies.
D0
..
.
databuslijnen
CPU
..
.
Dm

 registers
De CPU zelf is opgebouwd uit
 een aantal functionele eenheden.
registers : elektronische buffergeheugens die worden gebruikt voor tijdelijke opslag van
gegevens tijdens de uitvoering van instructies
Voorbeeld: werkregisters of general purpose registers worden gebruikt bij allerlei
bewerkingen, zoals optellen, schuiven van bits, enz.
Het instructieregister bevat een instructie die uit het geheugen gehaald wordt, om te
kunnen uitvoeren.
De bewerkingen van de ALU geven naast een uitkomst ook nog zogeheten
statusinformatie. Deze informatie is verzameld in het status- of conditiecode-register
dat bestaat uit een aantal bits die elk hun eigen functie hebben. Voorbeelden:
zero-bit : het resultaat van een bewerking is gelijk aan nul;
carry-bit : bij een optelling treedt een overdracht bij de hoogste twee bits;
negative-bit : het resultaat van een bewerking is een negatief getal;
overflow-bit : er treedt een overflow op bij een 2-complement bewerking.
bus interface unit (BIU): de verbinding van de CPU met de buitenwereld
Von Neumann-cyclus
BIU
instructie-register
werkregisters
stack pointer
program counter
Een CPU haalt een instructie op uit het geheugen en voert ze uit.
Deze functie is onderverdeeld in een aantal stappen en wordt telkens herhaald:
f
A
B
ICU
ALU
status register
C
TU
timing unit (TU) genereert één of meer clocksignalen voor interne logica van CPU
internal control unit (ICU) stuurt het geheel: het zorgt voor de distributie van de
timing-signalen en datatransport tussen de registers binnen de CPU en draagt dus
eigenlijk zorg voor het uitvoeren van de instructie in het instructieregister.
arithmetic and logic unit (ALU): bouwsteen die rekenkundige en logische bewerkingen
op data uitvoert; welke bewerking wordt aangegeven door de ICU, die dit afleidt uit de
instructiecode.
d
e
s
f
d
e
s
instruction fetch : zet de inhoud van de program counter op de adresbus en geef een
leessignaal op de controlebus; het geheugen reageert hierop door de instructiecode
waar de program counter naar wijst, op de databus te zetten;
de CPU neemt de code van de databus over en plaatst ze in het instruction
register; verhoog de inhoud van de program counter zodat deze naar de volgende
geheugenplaats wijst;
instruction decoding : zoek uit wat de instructie moet doen;
instruction execution : voer de instructie uit;
store : sla het resultaat op.
Decoderen van een instructie
Soorten processoren
1. de instructie is een adres in een in de CPU aangebrachte interne microcode-ROM,
waarin elementaire stappen staan die voor de afhandeling van een instructie zorgen.
Zo’n elementaire stap heet microcode.
CISC (complex instruction set CPU): in de eerste processoren waren de verschillende
logische eenheden (ALU, ICU, BIU) nauw gerelateerd. Bij latere CPU-architecturen
kregen deze onderdelen een meer zelfstandige status, zodat ze min of meer parallel
konden werken. Hiervoor werden steeds uitgebreidere instructiesets gedefinieerd.
Dit resulteerde in een enorme complexiteit en de prestaties bleken niet evenredig te
stijgen. Compiler-bouwers hadden ook moeite deze complexe instructieset optimaal
toe te passen en gebruikten dikwijls slechts een beperkte deelverzameling.
2. een tweede mogelijkheid is een state-machine te bouwen waarvan het verloop
beı̈nvloed wordt door de opgehaalde instructie. Omdat de instructie direct door de
hardware, zonder tussenkomst van een software-level, uitgevoerd wordt, wordt van
een hardwired systeem gesproken.
RISC (reduced instruction set CPU): de CPU heeft slechts een beperkt aantal
instructies die op een zeer hoge snelheid kunnen worden uitgevoerd. Zo’n processor
is eenvoudiger van opbouw en de instructieset is met zorg gekozen. Instructies die
zeer vaak voorkomen zijn aanwezig; complexere instructies moeten met
verscheidene eenvoudige instructies nagebootst worden.
Efficiëntie verhogen (pipelining):
fetch
decode
execute
store
fetch
decode
execute
store
fetch
decode
execute
store
fetch
decode
execute
store
Overzicht
Instructieset
de verzameling instructies die een CPU kan uitvoeren (of de machinetaal).
Een instructie is een binaire code. Een programma in machinetaal is dus een
verzameling binaire codes. Voor een mens is zo’n programma niet erg toegankelijk.
Daarom is er een 1-1 afbeelding van machinecodes naar min of meer begrijpelijke
afkortingen van de handelingen die door die machinecode worden uitgevoerd.
Deze meer toegankelijke taal van afkortingen wordt assembler-taal genoemd.
Volgend programma (voor een 6502 processor) telt de inhouden van de
geheugenplaatsen met adressen 60 en 61 (hex) op en stockeert het resultaat op de
geheugenplaats met adres 62.
1010 0101
0110 0101
1000 0101
0110 0000
0110 0001
0110 0010
A5 60
65 61
85 62
LDA 60
ADC 61
STA 62
RISC processoren zijn dus ontwikkeld als reactie op de steeds toenemende complexiteit
van klassieke processoren (die daarom de naam CISC kregen).
load register A
add with carry
store register A
(In een hogere programmeertaal zouden we z = x+y; schrijven.)
De belangrijkste fabrikant van microprocessoren is Intel. De eerste microcomputer
(Altair) is in 1975 gebouwd rond de 8080-processor. De 8088, een 16-bits CPU met een
8-bits brede databus, is gebruikt in de eerste IBM-PC.
Op dat moment was reeds de 8086 (volwaardig 16-bits) beschikbaar, maar de meeste
I/O-chips waren nog 8-bits.
De opvolger is de 80286, gebruikt in de PC-AT (advanced technology).
Daarna kwamen de 32-bits processoren: 80386, 80486 en de Pentiums. Omwille van de
software compatibiliteit zijn deze processoren in staat de machinetaal van de 8086 uit
te voeren.
Hierdoor zijn deze processoren in wezen CISC gebleven, alhoewel in de Pentium
concepten van RISC aanwezig zijn.
Intel-compatibele processoren worden geleverd door AMD en Cyrix.
Het bijvoegsel MMX: deze processoren: een aantal extra machine-instructies. Hierdoor
zijn de multi-media mogelijkheden (grafisch en geluid) sterk verbeterd.
Een tweede type processor die in de beginjaren van de micro-computer veel gebruikt is,
is de 6502 van Rockwell: de CPU van de Apple II en de Commodore-64.
Opvolgers van deze microcomputers (bijv. Macintosh en Amiga) maakten gebruik van
Motorola chips: de 68000 en 68010. Ook in professionele werkstations (bijv. Sun)
werden lang Motorola chips gebruikt: 68020 (32 bits), 68030 en 68040.
Motorola is met de PowerPC helemaal overgestapt op de RISC-architectuur.
Ook verschillende andere hardware fabrikanten zijn overgestapt op RISC processoren:
SUN met SPARC, Digital met Alpha (64 bits), HP met PA, ...
Als een gevraagd item in de cache aanwezig is, spreken we van een cache-hit.
Is het gevraagde niet in de cache, dan hebben we een cache-miss.
De hit-rate is de verhouding van cache-hits op het aantal maal dat data wordt
opgevraagd (som van cache-hits en cache-misses).
Hit-rates van 80% en hoger zijn niet ongebruikelijk bij een goed ontworpen cache.
Het cache-geheugen staat parallel aan het werkgeheugen in een computersysteem. Bij
een cache-hit levert het cache-geheugen data aan de CPU; bij een cache-miss worden de
data die het werkgeheugen aan de CPU geeft, in de cache opgeslagen.
controle-bus
Vooral embedded systemen passen RISC architecturen toe: voor batterijgevoede
apparaten is de ARM populair vanwege het lage energieverbruik.
cache
CPU
geheugen
64 bit architectuur: Itanium : samenwerking tussen HP en Intel.
Niet alle processoren hebben een woord-lengte gelijk aan een macht van 2: de
supercomputers van CRAY hebben bijvoorbeeld een woord-lengte van 60 bits.
databus
adresbus
Cache-technologie
de techniek van het beschikbaar houden van een kopie van eerder gebruikte gegevens op
een plaats waar ze een volgende keer sneller te vinden zijn.
Het aantal gegevens waarvan een kopie kan bewaard worden, is in de praktijk relatief
klein, maar een goed doordacht caching-systeem kan een aanzienlijke winst in snelheid
opleveren.
De toegangstijden van betaalbaar geheugen (bijv. DRAM) zijn te lang om een snelle
CPU op volle toeren te laten draaien. Een CPU verspilt in geval van trage geheugens
tijd met wait states. Dit zijn ingelaste clock-cycles om traag geheugen de tijd te geven
de data (instructies of gegevens) te laten leveren.
Het aanbrengen van een snel cache-geheugen levert winst omdat CPU’s dikwijls in
programmalussen ronddraaien. Na één keer kunnen alle instructies uit zo’n lus in het
cache-geheugen gekopieerd zijn en daarmee de volgende keer snel toegankelijk voor de
processor. Ook gegevens zijn vaak meerdere keren nodig.
Een cache is transparant voor de eindgebruiker:
hij moet met de aanwezigheid ervan geen rekening te houden.
Cache-werking
Een goed systeem moet op korte tijd twee zaken realiseren:
1. Zijn de gevraagde data in het cache-geheugen aanwezig?
Zo ja, laat het cache-geheugen de data leveren.
2. Zo nee, maak een kopie in het cache-geheugen van de door het werkgeheugen
geleverde data en registreer ook het hierbij gebruikte adres, zodat de data een
volgende keer door het cache-geheugen geleverd kunnen worden.


 instructie-cache (caching van de machinecodes) ,



 data-cache (caching van de data) ,
Drie mogelijkheden:

een combinatie: instructies en data in de zelfde cache





of een gescheiden instructie- en data-cache.
Schrijven in cachegeheugen:
write-through : data in cache als in werkgeheugen worden tegelijk geschreven;
write-back : data voorlopig in cachegeheugen en pas later in werkgeheuegen.
Levels
Data in een computersysteem kan op verschillende manieren ter beschikking gesteld
worden van de CPU.
In functie van de toegangstijd krijgen we volgend overzicht.
1. interne registers van de CPU
2. Level-1 cache (L1): een kleine cache die zich op de CPU chip zelf bevindt
3. Level-2 cache (L2): hierboven besproken, meestal met SRAM
4. werkgeheugen: met DRAM
5. achtergrondgeheugen: disks
6. backup op tape of schrijfbare CD-ROM
De hoeveelheid data die kan opgslagen worden, neemt van boven naar beneden toe,
maar ook de toegangstijd neemt toe.
Daarnaast neemt de prijs per bit van boven naar beneden gigantisch af.
Multiprocessor-systemen
De prestatie van een computersysteem is op te voeren door specifieke, vaak op de I/O
betrekking hebbende, taken uit te besteden aan een “hulpje” in de vorm van een
co-processor.
Een eerste voorbeeld zijn de mathematische coprocessors, die gespecialiseerd zijn in het
rekenen van drijvende-kommagetallen (niet-gehele getallen).
Ook grafische bewerkingen zoals het verplaatsen van een bitmap in het videogeheugen
kunnen met succes door een grafische coprocessor op een videokaart worden uitgevoerd.
Deze hulpprocessors nemen de hoofd-CPU allerlei routineklussen uit handen, waardoor
de uitvoering van programma’s sneller kan verlopen.
Bij een multiprocessor zijn er meerdere CPU’s beschikbaar die allen bijdragen aan de
uitvoering van een programma.
Classificatie (Flynn)
SISD (single instruction single data): een enkele CPU die werkt met één stroom van
instructies op één datastroom.
SIMD (single instruction multiple data) (vector-computers): een enkele instructie
werkt op een verzameling van datastromen.
Bij berekeningen met matrices en vectoren voeren parallelle rekeneenheden dezelfde
operatie uit elk op een ander stuk van de data.
MISD (multiple instruction single data): een datastroom gaat door een reeks
processors die ieder een eigen instructiestroom hebben (pipeline).
MIMD (multiple instruction multiple data): meerdere processoren werken parallel elk
aan een eigen datastroom.
shared memory multiprocessors zijn sterk gekoppeld: de CPU’s delen het
werkgeheugen waarbij ze meestal wel over een eigen cache beschikken.
message-passing multicomputers gaan uit van meer zelfstandige computers die op
de een of andere manier gegevens in de vorm van berichten kunnen uitwisselen.
Speciale I/O
Input en output
speciale I/O machineinstructies: aansturen van een speciaal adresgebied (I/O-space)
Deze I/O-space staat los van de memory space. In de controlebus is een lijn voorzien
die aangeeft of het adres dat op de adresbus gezet is voor memory-space (normale
instructies) of voor I/O space (speciale instructies) bedoeld is. In dit laatste geval
wordt externe hardware geactiveerd.
controle-bus
CPU
ROM
RAM
geheugen
geheugen
Omdat de I/O space niet zo groot hoeft te zijn als memory space, wordt slechts een
gedeelte van de adresbus (bijv. slechts 8 lijnen) gebruikt.
I/O
controlbus
MREQ
IOREQ
memory
space
databus
I/0 space
adresbus
adresbus
Controllers
Communicatie tussen CPU en een randapparaat gebeurt normaal via een intermediair
hardware element, een controller.
Bij een PC komt zo’n controller overeen met een elektronische kaart die in een slot van
het moederbord van de PC kan gestoken worden.
Via kabeltjes wordt deze kaart verbonden met het randapparaat. In het eenvoudigste
geval zijn deze controllers verbonden met dezelfde bus die de CPU met het intern
geheugen verbindt.
De plaats op de controller waar de CPU informatie naar toe kan sturen of informatie
kan gaan halen, wordt I/O-poort genoemd.
Een poort bestaat uit een aantal registers die elk een adres hebben.

 speciale I/0
Het aanspreken van de I/O poort:
 memory mapped I/0
Memory mapped I/O
De I/O bevindt zich in de memory space en kan met gewone instructies bereikt worden.
Voordeel: alle bewerkingen die op het geheugen van toepassing zijn, zijn ook voor de
I/O-adressen beschikbaar.
Nadeel: de selectielogica voor een I/O-adres is wat omvangrijker omdat het aantal
adreslijnen voor het selecteren van een I/O-poort gelijk is aan het totaal aantal
adreslijnen.
memory
space
memory
space
I/0 space
I/0 space
adresbus
adresbus
Uitvoer van data

In een I/O poort: twee registers (elk eigen adres):
adresbus
 control en status register (CSR)
 data buffer register (DBR)
1. Is apparaat klaar: test I/O done bit
CPU
I/O
01
11001010
11001010
2. Breng data-bytes naar DBR
I/O done bit wordt gereset
de eigenlijke output operatie
3. Na uitvoering: I/O done bit geset
iets misgegaan: andere bits in CSR.
databus
Terwijl de controller de uitvoer aan het doen is, kan de CPU in een programma-lus de
I/O-done bit in CSR testen.
Zolang de bit gelijk aan nul blijft: output nog bezig: CPU moet verder wachten.
Interrupts
Een interrupt is een signaal dat aangeboden wordt aan de CPU via de controle-bus.
Een interrupt gedreven uitvoer operatie verloopt als volgt.
1. De CPU gaat na of het apparaat klaar staat om data-bytes te ontvangen (de
I/O-done bit in CSR).
2. De CPU verplaatst de data-bytes naar het data buffer register. Hierdoor wordt I/O
done bit in het CSR gereset: de CPU mag geen verdere data-bytes overbrengen.
3. De controller doet nu de eigenlijke output operatie naar het randapparaat. In
plaats van continu het CSR te testen, gaat de CPU voort met het doen van nuttige
dingen, bijvoorbeeld berekeningen uitvoeren voor een andere gebruiker.
4. Als de I/O operatie gedaan is, gesignaleerd door de I/O done bit die gelijk wordt
aan 1 of door een van de foutsignalen, treedt een interrupt op.
Na een tijdje: de I/O-done bit terug gelijk aan 1 :
de CPU weet hierdoor dat een volgende I/O operatie kan gestart worden.
Invoer van data
adresbus
CPU
11001010
I/O
01
11001010
databus
1. De CPU geeft met een bit in het CSR aan
dat het op data zit te wachten. Tijdens dit
wachten, test de CPU de I/O-done bit.
2. De controller doet de eigenlijke invoer:
breng data-bytes naar DBR
I/O done bit wordt geset
3. De CPU kan nu de inhoud van het DBR
verplaatsen naar één van zijn general purpose registers.
Ook hier zit de CPU ijverig te wachten terwijl de invoer bezig is.
Programmed I/O: niet erg efficient: een randapparaat is veel trager dan de CPU.
Terwijl de I/O bezig is, zou de CPU enkele duizende (nuttiger) machineinstructies
kunnen uitvoeren.
De CPU moet dan wel op de hoogte gebracht worden, wanneer de I/O gedaan is.
Interrupts
De CPU reageert nu op deze interrupt:
1. De inhoud van alle CPU registers, o.a. de program counter van het lopende
programma en het statusregister, wordt opgeslagen in een daartoe bestemd gedeelte
van het intern geheugen.
2. De program counter en statusregister krijgen een nieuwe waarde. Deze waarden
zijn te vinden op een vaste, voor de interrupt gereserveerde geheugenplaats.
3. De program counter wijst nu naar het begin van de interrupt service routine: de
uitvoering ervan start dus.
4. In de interruptroutine controleert de CPU of de I/O zonder fouten verlopen is. (Bij
invoer wordt de data van het data buffer register naar het intern geheugen
verplaatst.) Eventueel wordt een volgende I/O operatie gestart.
5. Op het einde van de routine wordt de return from interrupt instructie uitgevoerd.
Deze instructie herstelt de oude waarden van de registers in de CPU (inclusief de
program counter).
6. De CPU doet verder met het onderbroken programma alsof er niets gebeurd is.
Interrupt driven I/O
Daisy chain
IRQ (CPU)
in plaats van programmed I/O
INT-ACK
aangeven door de interrupt enable bit in het CSR op 1 te zetten.
Verschillende randapparaten die elk een interrupt kunnen genereren:
• De CPU moet dan kunnen bepalen door welke controller de interrupt gegenereerd
is zodat de juiste interrupt service routine kan geactiveerd worden.
• Er moet ook gepast gereageerd worden als er twee interrupts vrijwel tegelijk
aangeboden worden.



 interrupt polling
Verschillende technieken:
I/O-0
I/O-1
CSR
0
irq-vector
I/O-2
CSR
0
CSR
0
1
irq-vector
I/O-3
irq-vector
CSR
0
irq-vector
interrupt vectoring



en het gebruik van een interrupt controller .
databus
Interrupt vectoring.
Wanneer een interrupt via de controle-bus aangeboden wordt aan de CPU, geeft deze
via een interrupt-acknowledge signaal op de controlebus aan dat de interrupt gezien is.
Het interrumperende device zet nu op de databus een getal (interrupt vector), dat
uniek is voor het device.
De CPU kan met behulp van de interrupt vector de juiste interrupt-afhandelingsroutine
vinden: dit getal wordt gebruikt als index in een tabel waarin de startadressen van de
verschillende interrupt routines opgeslagen zijn.
Om het gelijktijdig optreden van twee interrupts op te vangen, worden de verschillende
devices een prioriteit toegewezen. Het interrupt-acknowledge signaal wordt gestuurd
naar het device met de hoogste prioriteit. Indien dit device een interrupt gestuurd
heeft, wordt zijn interrupt vector op de databus gezet. In het andere geval, stuurt het
device het interrupt-acknowledge signaal verder naar het device met de tweede hoogste
prioriteit, enzoverder tot het einde van de keten bereikt is waar het device met de
laagste prioriteit zit.
Interrupt maskering
Wanneer de CPU een interrupt met een zekere prioriteit aan het afhandelen is, maakt
hij zich doof voor interrupts van een lagere prioriteit.
Dit gebeurt met een bitpatroon (interrupt mask) waarmee interrupts van een lagere
prioriteit afgeschermd of gemaskeerd worden.
Tijdens het afhandelen van een interrupt van een device met een bepaalde prioriteit,
• een interrupt van een hogere prioriteit wordt aanvaard. Een interrupt routine
wordt onderbroken voor een andere interrupt routine uit te voeren. Nadat deze
interrupt afgehandeld is, wordt de eerste interrupt verder afgehandeld.
• Langs de andere kant worden interrupts van een lagere prioriteit niet gezien. Pas
als de interrupt afgehandeld is, en de interrupt mask herzet is, wordt deze
interrupt door de CPU opgemerkt.
Exceptions
I/O poorten
een bepaalde gebeurtenis waarop de CPU op een voorgeschreven manier reageert.
Een CPU is omringd door allerlei I/O-chips, die elk specifieke I/O taken afhandelen.
De reactie bestaat meestal uit het bewaren van de waarden van de werkregisters van de
CPU en het initialiseren van de program counter met een adres naar een
geheugenplaats waar de exception handler staat.
Seriële datacommunicatie : I/O-chips waarbij het datatransport per bit gebeurt:
de bits worden na elkaar over de verbindingslijn getransporteerd.
Er zijn verschillende soorten exceptions:
Hardware interrupts zijn signalen van buiten de CPU: bijvoorbeeld afkomstig van
I/O poorten.
Interne problemen bij het afhandelen van een instructie: bijvoorbeeld het delen door
nul of het niet kunnen decoderen van een instructie.
Software interrupt door middel van een speciale instructie die voor de CPU
hetzelfde effect heeft als het optreden van een hardware interrupt; bijvoorbeeld bij
een system call.
Non-maskable interrupt
De meeste CPU’s beschikken naast de gewone interrupt-ingang(en) ook over een
interrupt ingang die niet te maskeren is.
Deze non-maskable interrupt is te gebruiken in noodsituaties, bijvoorbeeld bij falende
hardware of een wegvallende voedingsspanning.
• UART: universal asynchronous receiver and transmitter;
• USART: universal asynchronous and synchronous receiver and transmitter;
• ACIA: asynchronous communciation interface adapter;
• SIO: serial input output.
Parallelle datacommunicatie : het transport gebeurt met meer bits tegelijk.
• PPI: parallel periferal interface;
• PIA: parallel interface adapter;
• PIO: parallel input and output.
Timers : elk computersysteem beschikt over minstens één timer. Zo’n timer kan de
CPU om de zoveel tijd een interrupt zenden.
De real-time clock bevat datum- en tijd-informatie en is meestal uitgerust met een
kleine batterij zodat de werking gegarandeerd blijft als de computer wordt uitgezet.
Dedicated I/O chips : voor speciale I/O taken. Voorbeelden:
• disk controllers;
Ook een warme herstart (CTRL-ALT-DEL) van het computersysteem behoort tot de
mogelijkheden.
• LAN (local area network) controllers;
Reset
• CRTC (cathode ray tube controller) levert de signalen voor de grafische
output op een beeldscherm;
De meest ingrijpende hardware-exception is de reset.
De CPU begint hierbij op een voorgeschreven wijze weer helemaal opnieuw (via de reset
vector). De reset is nodig als een computersysteem door welke fout dan ook niet meer
onder controle te krijgen is.
• SCSI-controllers, met een speciale bus voor randapparatuur;
• GCC (graphical controller chips): geavanceerde ondersteuning voor
beeldschermaansturing;
• DMAC (direct memory access controller): ter ondersteuning van een andere
I/O-chip zodat de CPU minder moet doen.
Configureren van een I/O poort
Met behulp van software is de functionaliteit van zo’n I/O poort nog nader te
specificeren.
Hiervoor is een initialisatie van de chip nodig.
• Bij de start van input operatie heeft de CPU aan de DMAC laten weten waar in
het geheugen de informatie van disk terecht moet komen en om hoeveel bytes het
gaat.
• Telkens een byte van disk beschikbaar komt, wordt dit door de disk-controller
aan de DMAC (in plaats van aan de CPU) gemeld.
• Dit kan één keer gebeuren bij het opstarten.
• Het is echter ook mogelijk dat per applicatie een nieuwe initialisatie nodig is of
dat in de applicatie de initialisatie veranderd moet worden.
De configureren of programmeren van een I/O-chip gebeurt door in één of meer
controleregisters van die chip de juiste codes te schrijven.
• De DMAC vraagt dan de systeembus van de CPU.
Op het moment dat de bus door de CPU vrijgegeven wordt, transporteert de
DMAC de byte van de I/O poort naar het geheugen.
• Daarna kan de I/O-chip de volgende byte lezen. Wanneer alle bytes ingelezen
zijn, wordt de CPU via een interrupt op de hoogte gebracht.
Bij meerdere controleregisters is soms de volgorde van schrijven belangrijk.
Bussen
De DMA-controller
Wanneer de CPU een blok van 512 bytes van een disk wil lezen, dan genereert de
disk-controller bij elke byte een interrupt. In de interrupt-service-routine haalt de CPU
de byte op en plaatst deze in het geheugen. Deze manier van werken kost relatief veel
CPU-tijd omdat bij elke interrupt de waarden van alle werkregisters moeten bewaard
en daarna terug hersteld worden.
Een computersysteem maakt voor intern datatransport gebruik van een bus.
Om een systeem te kunnen samenstellen uit hardwarecomponenten van verschillende
leveranciers is een goede afspraak over de te gebruiken systeembus noodzakelijk.
Randapparaat
Controller
controle-bus
Bus
geheugen
CPU
DMAC
I/O
Intern geheugen
CPU
Controller
databus
adresbus
Randapparaat
Actueel bevat een computersysteem een aantal bussen.
De systeembus (of local bus) verbindt de CPU met het RAM geheugen. De snelheid en
het aantal lijnen is afhankelijk van het type CPU; typische waarden zijn 64 bits breed
en een snelheid van 66 MHz.
Heel veel I/O componenten kunnen echter niet aan deze snelheid werken. Deze
componenten worden via bijkomende bussen aangesloten. Op het moederbord eindigt
de systeembus op een controller chip die de brug vormt naar de verschillende I/O
bussen. Voorbeelden zijn de reeds genoemde ISA en PCI bus.
Universal Serial Bus (USB): een nieuwere seriële bus om een hele reeks van
randapparaten (toetsenbord, scanner, audio, externe opslag) op een eenvoudige wijze
(hot pluggable) aan te sluiten.
Specifiek voor de grafische kaart is de AGP (Accelerated Graphics Port) voorzien. Dit
is een speciale grafische bus die veel directer met de processor communiceert en zo de
grafische bottleneck verlicht.
CPU
BIOS
ISA bus
CD-ROM
PC Chipset
Hard disk
SCSI (Small Computer System Interface): specifiek voor de aansluiting van disk, tape
en CD-ROM-devices.
PCI bus
Host bus
PCI (Peripheral Component Interconnect): een wat algemenere bus die niet alleen op
Intel-CPU’s gebaseerd is. Deze bus wordt niet alleen als uitbreidingsbus gebruikt
maar ook als zelfstandige systeembus zowel in Pentium- als in PowerPC-systemen.
L2-cache
EISA (Extended Industry Standard Architecture): de tegenhanger van MCA, met een
heleboel nieuwigheden en backward compatibility met ISA, wat MCA niet had.
Host-to-PCI
bridge
MCA (Micro Channel Architecture): met een 32-bit databus, ontwikkeld door IBM.
Processor
ISA (Industry Standard Architecture): een 16-bit databus en een 24-bit adresbus,
geı̈ntroduceerd bij de AT-systemen, gebaseerd op een 80286.
Bussen
In de PC wereld worden volgende bussen gebruikt:
Audio
GP
USB
KBD
PCI slots
Main
Memory


de datatransfersnelheid,




 het aantal adres- en datalijnen,
Eigenschappen zijn
 de verschillende adresruimtes (bijv. memory en I/O),




 het aantal interruptlijnen, ...
dual channel memory slots
Snelle
bussen
Northbridge
AGP slot
interfacing
functie
AGP
PCI Express
ATA drives
Southbridge
10/100 Ethernet
USB
geluid
PCI slots
Tragere
bussen
Beeldscherm
tekstgeoriënteerde schermen : alleen weergeven van letters en tekens
grafische beeldschermen : waarop allerlei informatie zichtbaar kan gemaakt worden.
De afmeting van een beeldscherm: de lengte van de diagonaal, bijv. 14-inch.
Een beeld: opgebouwd uit een aantal lijnen; elke lijn: een aantal puntjes, pixels of dots.
Een grafische beeldscherm: het systeem kan elke pixel afzonderlijk aansturen.
Randapparatuur
Een tekstscherm: het systeem kan alleen vaste groepen van puntjes activeren, wat
resulteert in een teken op het scherm
( → 25 lijnen met elk 80 kolommen).
Bij een zwart-wit scherm komt een pixel overeen met één bit.
Is de bit aan, dan licht het puntje op, is de bit uit (0), dan is dit zwart.
Kleurenschermen en ook monochrome schermen met grijstinten: meer bits per pixel.
Bij acht bits per pixel: 256 kleurencombinaties inclusief zwart en wit.
Professionele systemen kennen 24 bits per pixel:
per basiskleur (rood, groen en blauw, aangeduid met RGB) acht bits beschikbaar
→ in totaal meer dan 16 miljoen (28 × 28 × 28 ) kleurencombinaties.
De resolutie bepaalt het aantal pixels op het scherm.
Communicatie met de gebruiker
Toetsenbord
Via een toetsenbord kunnen commando’s, teksten of gegevens ingetikt worden.
Pointing device
Om gemakkelijk met een GUI (grafische user interface) te werken, heeft men een
pointing device nodig.
Met dit device kan een pijltje op het beeldscherm bewogen worden om dingen aan te
wijzen.
De meestgekende vorm is de muis met één of meer knoppen om acties van het systeem
op te roepen.
VGA (640 × 480): 480 horizontale lijnen met elk 640 dots, (ongeveer 300000 pixels).
Voor een 15-inch scherm betekent dit ongeveer 50 dots per inch.
SVGA (super VGA): verschillende resoluties 800 × 600, 1024 × 768, 1280 × 1024 en zelfs
1600 × 1200 pixels. (Bij deze hoge resoluties is een 14-inch scherm eigenlijk te klein.)
De bits die de pixels bepalen, zijn nullen en enen in video-RAM. De grootte van dit
geheugen bepaalt hoeveel van de 16 miljoen beschikbare kleuren simultaan kunnen
gebruikt worden.
Non-interlaced wil zeggen dat alle lijnen in een beeld in één keer worden geschreven.
Het aantal maal dat dit per seconde gebeurt is de refresh rate (SVGA monitor: 75 Hz).
Wanneer de grafische hardware de snelheid die voor non-interlaced nodig is, niet
aankan, bestaat de mogelijkheid per beeld maar de helft van de lijnen te schrijven.
De ene keer worden alle even lijnen geschreven, de andere keer alle oneven lijnen
(interlacing).
De weergave is meestal van lagere kwaliteit (trillend of knipperend beeld).
Kathodestraalbuis
beeldbuis (CRT):
Impact-printer
horizontale afbuiging
verticale afbuiging
elektronenstraal
kathode
fluoresentiescherm
kleurenmasker
anode
∗ elektronenbuis met een fluorescentiescherm dat oplicht als het getroffen wordt door
de elektronenstraal
∗ voorzijde langs binnenkant vh. glas: pixels: kleine puntjes die licht in een bepaalde
kleur uitstralen als ze aangestuurd worden op basis van het additieve
kleurensysteem (RGB)
∗ elektronenbundel afgebuigen dmv. een elektrostatisch of magnetisch veld
∗ via een hoge spanning wordt de bundel versneld om een hoge lichtopbrengst te
verkrijgen
∗ kleurenmasker: blauwe kanon raakt alleen de blauw-oplichtende fosforpunten
Moderne monitoren
• liquid crystal display (LCD): vloeibare kristallen in het display zijn in staat de
polarisatierichting van licht te draaien wanneer er een elektrische spanning
aanwezig is: het licht kan al of niet door
+ geen flikkering;
− eerder traag
• thin film transistor liquid crystal display (TFT): verbeterde variant van LCD:
voor elke subpixel is een transistortje geı̈ntegreerd op de glasplaat: transistor kan
de informatie voor elke subpixel vasthouden
elke pixel kan individueel geaddresseerd worden (minder aansluitdraden)
+ verbeterde beeldkwaliteit, minder warmteontwikkeling, dus langere levensduur
• plasmascherm: zoals een tl-buis: gasionen geven licht in een afgesloten ruimte
aansturing gebeurt door evenwijdig lopende draden: spanningsverschil tussen één
onderliggende horizontale draad (kathode) en één bovenliggende verticale draad
(anode): gas ioniseert
+ betere kleurweergave, hoger contrast/lichtopbrengst, snellere reactietijd;
− gevoelig voor inbranden, duurder en meer energieverbruik
Bij een matrixprinter wordt een teken gevormd door een schrijfkop met een aantal
verticaal boven elkaar geplaatste naalden (bijv. 9) over het papier te bewegen.
Elk naaldje kan door de elektronica op het gewenste moment worden geactiveerd, zodat
een inktlint tegen het papier wordt geslagen.
Een teken wordt gevormd door een matrix van naaldinslagen, bijvoorbeeld voor een
9-naald printer, zijn vijf naast elkaar liggende kolommen voldoende voor een afdruk.
inktlint
0
1
2
3
4
5
6
7
8
elektromagneet
hamer
naalden
papier
Omwille van de vrij hoge snelheid en de relatief lage kostprijs, werden deze printers veel
gebruik in de jaren 80.
Impact-printer werkt met mechanische middelen: lawaaierig.
Bij grote computersystemen worden dikwijls lineprinters of regeldrukkers gebruikt.
Hierbij wordt een volledige lijn in één elementaire operatie gevormd.
grote voordeel: de snelheid, bijvoorbeeld 1000 lijnen per minuut.
Nadelen: de hoge kostprijs, de relatief lage afdrukkwaliteit en de vaste tekenset.
Alhoewel verschillende soorten printers grafische afbeeldingen kunnen afdrukken, zijn ze
toch wat beperkt in hun mogelijkheden. Plotters beschikken over een aantal pennen die
computergestuurd over het papier bewegen en op die manier de tekening volledig
“uittekenen”. Door verschillende pennen te gebruiken, kunnen verschillende kleuren en
lijndiktes bekomen worden.
Een trommel (drum) draait in uurwijzerzin langs een elektrostatische oplader waardoor
het oppervlak van de drum elektrisch geladen wordt.
Een laser laat nu met behulp van lichtpulsen de elektrisch lading van de drum
“afvloeien” op die plaatsen overeenkomend met het af te drukken patroon.
De afwezigheid van lading op een bepaald punt stemt overeen met latere zwarting.
Inktjetprinters
spuiten kleine druppeltjes inkt door haarfijne buisjes op het papier.
De druppels die vrijwel onmiddellijk drogen, vormen de afbeelding.
Enkele belangrijke voordelen: de lage prijs bij aanschaf, een geluidsarme werking en een
relatief goede afdrukkwaliteit. Een nadeel is de hoge kostprijs van de inktpatronen.
Door verschillende kleuren inkt te combineren, zijn kleurenafdrukken mogelijk.
Dan passeert de drum een rol met elektrisch geladen tonerpoeder.
Het poeder wordt aangetrokken door de ontladen delen van de drum en hecht zich op
die plaatsen die ontladen zijn.
Ondertussen wordt elektrisch geladen papier (met tegengestelde polariteit) aangevoerd
zodat het losse op de drum aanwezige tonerpoeder op het papier terecht komt.
In de laatste faze wordt dit losse poeder op het papier gefixeerd door het papier tussen
twee rubberen rollen (met een temperatuur van 150 ◦ C) te voeren.
Het losse tonerpoeder wordt gesmolten en hecht zich vast op het papier.
Voordelen: goede kwaliteit, hoge snelheid (20 paginas’s per minuut), het gebruiksgemak
en de lage kost van het toestel.
Een nadeel: de relatief hoge kostprijs van de toner.
Laser-printers
gebruiken een procédé dat ook in kopieerapparaten wordt toegepast.
Een bladzijde wordt logisch voorgesteld als een matrix van punten die ofwel wit blijven
ofwel zwart zullen worden. Het aantal punten (dots) per inch (dpi) is een maatstaf voor
de kwaliteit van de afdruk: bijvoorbeeld 300 dpi komt overeen met 90000 punten per
vierkante inch.
laser
Gegevens die gedurende lange tijd bewaard moeten blijven, kunnen opgeslagen worden
op disks.
Met behulp van diskruimte kan ook het werkgeheugen virtueel groter worden gemaakt.
spiegel
roterende trommel
rol met toner
lader
De capaciteit is de hoeveelheid data die een disk kan opslaan en wordt uitgedrukt in
Kb, Mb of Gb.
Een disk-eenheid bestaat uit één of meer ronddraaiende schijven waarover
lees-schrijfkoppen bewogen kunnen worden.
Voor de registratie van de gegevens maakt men gebruikt van magnetische
eigenschappen van het oppervlak of worden optische technieken toegepast.
warme rollen
papier
uitvoer
Achtergrondgeheugens
invoer
Opbouw van een disk
Magnetische schijven
dit zijn steeds herschrijfbare eenheden:
• types waar het opslagmedium te verwijderen is: floppies, diskettes, ZIP-schijven en
harddisks met removable packs (bijv. Syquest-drives).
De diskette is de meest bekende, met een capaciteit van 720 Kb of 1,44 Mb.
Een ZIP-drive is een speciale diskette, een vorm tussen diskette en verwisselbare
harddisk, met een opslagcapaciteit van 96 Mb.
12
8
6
3
11
9
5
4
10
interleaving
as
• eenheden waar de schijven niet uit te halen zijn: winchester disks, een reeks vaste
schijven die in een luchtdichte en absoluut zuivere behuizing draaien.
Deze harddisks hebben een capaciteit van enkele honderden megabytes tot enkele
tientalle gigabytes.
Optische schijven
zeer handige kleine glanzende schijfjes
• CD-ROM: disks waarvan alleen kan gelezen worden, met een opslagcapaciteit van
ruim 600 Mb per schijfje ter grootte van een audio-CD (diameter van 12 cm). De
informatie is in een spiraalvormig spoor van putjes opgeslagen. De datatransfer van
disk naar systeem is 150 Kb/s. Deze snelheid heeft men in de double speed drives
weten te verdubbelen naar 300 Kb/s. In het algemeen heeft een N-speed drive een
datatransfersnelheid van N × 150Kb/s (bijv. 48 speed is 7.2 Mb/s).
• WORM: (write once read many times) disks waarop men eenmalig kan schrijven,
bijv. de schrijfbare CD-ROM’s.
sector
1
7
2
track
cilinder
schijf
Een schijfeenheid bevat één of meer magnetiseerbare schijven, waarvan zowel de
onderkant als de bovenkant te gebruiken is.
een disk-pack: meerdere schijven gemonteerd op één as.
Typische afmetingen : 2.5, 3.5, 5.25, 8 en 12 inch.
Rotatiesnelheid: tussen de 3000 en 6000 omwentelingen per minuut.
Elk oppervlak heeft een lees-schrijf kop (head) die zich net boven het oppervlak bevindt
op een bepaald spoor of track. Een oppervlak heeft een aantal van deze sporen, die er
als concentrische cirkels uitzien.
De koppen worden bestuurd door een stappenmotor of door een lineaire motor met
servosysteem (alleen bij harddisks: koppen sneller naar een bepaalde track).
• CD-R: (erasable optical disks): lezen, schrijven en herschrijven is mogelijk. Omdat
hierbij zowel van magnetische als optische eigenschappen van het materiaal
gebruikt gemaakt wordt, spreekt men ook van een magneto-optische disk.
Een verzameling tracks die horen bij dezelfde kop-positie noemt men een cilinder. Het
aantal lees-schrijfkoppen is dus gelijk aan het aantal tracks per cilinder.
• DVD (digital video disk): een nieuwe technologie waardoor de capaciteit
aanmerkelijk zal toenemen. Het schijfje wordt tweezijdig gebruikt en elke zijde kan
tussen de 4,7 en 8,5 gigabytes aan multimediadata bevatten.
Een track is opgedeeld in sectoren. Aantal sectoren per track : 17, 24, 32 en 64. Elke
sector (of disk-block) bevat een hoeveelheid gegevens. Een veelgebruikte grootte van
een disk-block is 512 bytes.
De capaciteit van een disk:
totaal aantal megabytes =
aantal cilinders × aantal koppen × aantal sectoren per spoor × 512
1024 × 1024
Partities
Specifieke gegevens op een disk: cilinder, head en sector.
een grote disk verdelen in een aantal onafhankelijke stukken
Lezen van een aantal opeenvolgende sectoren:
Zo’n partitie wordt door het besturingssysteem als een zelfstandige disk gezien.
• disk-interface of computer na het lezen van een sector nog niet klaar is om de
direct daaropvolgende sector te lezen,
• Een verstandig aangebrachte partitionering maakt de organisatie van bestanden
overzichtelijker (onderscheid tussen systeem- en gebruikersbestanden).
• de logisch opeenvolgende sectoren fysisch niet vlak na elkaar op de schijf zetten.
• Voor sommige besturingssystemen is partitionering noodzakelijk omdat ze slechts
disks van een beperkte grootte kunnen beheren.
Het aantal tussenliggende sectoren wordt aangegeven met de interleave factor
(fabrikant of experimenteel bepaald).
factor 2: tussen twee logisch opeenvolgende sectoren ligt er één extra sector.
• Wanneer computers met slechts één harddisk meer dan één besturingssysteem
kunnen draaien, gebruiken ze verschillende partities om de verschillende
filesystemen van elkaar te scheiden.
factor 3: twee sectoren tussen logisch opeenvolgende sectoren.
Een interleave factor gelijk aan 1 is ook mogelijk.
Formatteren
Patroon van sectoren op het oppervlak schrijven bij een nieuwe disk.
Op een blanco-schijf kan een sector 571 bytes bevatten. Na formatteren bevat het
bitpatroon van een sector (of blok) drie delen:
Hoofding : bevat een bitpatroon dat herkend kan worden als het begin van een sector,
gevolgd door andere informatie, zoals het blokadres. Deze informatie is essentieel
om de betrouwbaarheid van het systeem te vergroten.
Lichaam : de “nuttige data”; lengte bijvoorbeeld gelijk aan 512 bytes.
Staart : een checksum nodig voor controle en terugwinning van mediafouten in het
lichaam van de sector gevolgd door een afsluiter.
Omwille van deze extra formatteringsinformatie wordt een onderscheid gemaakt tussen
formatted capacity en unformatted capacity, een voor de gebruiker minder interessant
gegeven.
Een 3.5” high density diskette bijvoorbeeld heeft een ongeformatteerde capaciteit van 2
Mb terwijl de geformatteerde capaciteit gelijk is aan 1,44 Mb.
Access-tijd
De tijd die nodig is om data op de disk te vinden:
• de seek tijd, de tijd om de koppen op de juiste cilinder te zetten
• de rotational delay (of search), de tijd die verstrijkt voordat de gewenste sector
bij de leeskop arriveert.
Meestal worden hiervoor gemiddelden gespecificeerd.
De gemiddelde rotational delay is de halve omwentelingstijd; deze kan verkleind worden
door de disk een hogere rotatiesnelheid te geven.
Een disk met een snelheid van 60 omwentelingen per seconde heeft een rotationale
delay van 8.3 ms.
Moderne disks draaien sneller met als gevolg een kleinere rotational delay.
De average-seek-tijden variëren van 80 ms voor goedkope oude disks met stappenmotor
tot enkele ms voor snelle disks met servosysteem.
Datatransfersnelheid
de snelheid waarmee de bits van de disk gelezen worden of naar de disk geschreven
worden.
De datatransfersnelheid is onder meer afhankelijk van het type disk-interface.
Zo’n interface bepaalt hoe de disk op de computer is aangesloten. Hiervoor zijn
verschillende standaards ontwikkeld, bijv. ST412, ST506 (5 Mbit/seconde) en ESDI
(enhanced small disk interface).
Moderne interfaces zijn IDE (integrated device electronics), E-IDE (enhanced IDE) en
SCSI (small computer system interface).
De ESDI- en IDE-interface hebben een snelheid van 10 Mbit/s.
Bij de E-IDE-interface heeft men deze snelheid ruim weten te verdubbelen.
Disks met een SCSI-bus-aansluiting kunnen met een snelheid van 160 Mbit/s werken.
Deze snelheid is echter niet met elke SCSI-interface haalbaar, maar in dat geval past de
snelheid zich automatisch aan.
Aangezien de tape in een unit te verwisselen is, heeft men in principe een zeer hoge
opslagcapaciteit maar de toegangstijd tot de data is lang.
In het gunstige geval van de juiste tape in de unit moet er vaak een eindje gespoeld
worden voor de data gevonden zijn. Een tape heeft een sequentiële toegang. In een
minder gunstig geval moet eerst de juiste tape in de tape-unit gezet worden, wat
meestal een actie van de systeem-operator vereist.
Een eerste toepassing van tapes is het gebruik als backup-medium.
Het kopiëren van informatie van disk naar een ander medium noemt men het maken
van een backup.
De reden hiervoor is dat een magnetische disk vroeg of laat kan stuk gaan. Het is dus
noodzakelijk om van alle waardevolle gegevens op een disk één of meerdere kopieën te
hebben.
Naast tapes worden ook diskettes (voor kleinere hoeveelheden) of schrijfbare
CD-ROM’s als backup-medium toegepast.
Tapes worden ook als distributiemedium van software gebruikt maar worden meer en
meer vervangen door CD-ROM’s (en diskettes).
Tapes
Een tape is vergelijkbaar met een muziekcassette: een lange smalle band met twee
laagjes: een polyester grondlaag met een magnetiseerbare coating, waarin informatie
kan geschreven worden.
De opslagcapaciteit van een tape-eenheid is afhankelijk van de toegepaste techniek en
de lengte van de tape.
Actueel worden twee soorten gebruikt.
QIC tapes (quarter-inch cartridge tapes): deze naam duidt niet alleen de grootte van
het bandje aan, maar ook de manier waarop de informatie op de tape geschreven
wordt. Spijtig genoeg zijn er verschillende standaards gedefinieerd, bijvoorbeeld het
QIC-24 en QIC-525 formaat. De normale capaciteit is enkele honderden megabytes.
DAT (digital audio tape): maakt gebruik van DDS (digital data storage) media. De
informatie wordt digitaal weggeschreven wat resulteert in een veel hogere
betrouwbaarheid. Andere voordelen zijn de hogere opslagdichtheid (enkele
gigabytes) en de snellere toegang tot de gegevens. Een nadeel is dat bij DAT’s nog
minder gestandaardiseerd is dan bij QIC tapes.
Intelligente disk-controllers
zelf voldoende intelligentie aan boord zodat een aantal taken niet meer door de CPU
(of het besturingssysteem) moeten gedaan worden.
CPU kent de diskcapaciteit en geeft het disk-block-nummer
Disk-parameters, zoals aantal cilinders en tracks, blijven voor de CPU verborgen.
Omdat de echte disklayout voor de CPU verborgen blijft, is een vaste indeling van
tracks en sectoren niet meer nodig.
De tracks aan de buitenkant kunnen meer disk-blokken bevatten omwille van het
grotere stuk magnetisch oppervlak.
De datasnelheid is dan niet meer constant, maar ook dit is voor de buitenwereld niet
meer van belang.
IDE
de meer ingeburgerde term voor ATA (AT-attachment) waarbij AT slaat op de in de
IBM AT-computer geı̈ntroduceerde AT-bus (of ISA-bus).
voor de disk-block-adressering : cilinder, head, sector systeem.
Maximale grootte van een IDE-disk (sectorlengte 512 bytes):
1024 cilinders × 16 koppen × 63 sectoren per spoor × 512
= 504Mb
1024 × 1024
(Deze beperking is wel te omzeilen via extra software.)
Een IDE-interface kan twee disks aansturen: een master en een slave.
E-IDE of ATA-2 is een compatible uitbreiding van ATA:
Oplossing voor de 500 MB grens: extended CHS:
BIOS uitbreiden met een translation interface tussen BIOS en IDE:
IDE grens
logische geometrie van disk
BIOS vertalingsfactor
BIOS vertaalde geometrie
BIOS Int13h grenzen
• de datatransfer is hoger (20 Mbit/s)
• het aantal disks dat men kan aansluiten: vier.
ATAPI: aansluiten van CD-ROM’s en tape-drivers op een ATA poort:
geen extra interfacekaart, wel een eigen device driver (aansturingssoftware) nodig.
verloopt via BIOS (Basis Input Output System), een bibliotheek van basisinstructies
voor communicatie tussen besturingssysteem en hardware
Disk aanspreken: via interruptvector 19 (Int13h): interrupt service routine die disk
toegang afhandelt
24 bit adres: Cylinder (10 bits), Head (8 bits) en Sector (6 bits)
Maximale adresseerbare ruimte:
210 × 28 × 26 − 1 × 512 of 1024 × 256 × 63 × 512bytes/sector ≈ 8GB
Deze CHS (cylinder, head en sector, vanaf 1) nummering:
verwijst logische verdeling, niet naar effectieve geometrische verdeling
De IDE disk controller is niet perfect afgestemd op BIOS Int13h:
max.
max.
max.
max.
sectoren/track
heads
cylinders
capaciteit
sectoren
256
63
capaciteit
128 GB
2.95 GB
63
63
2.95 GB
7.88 GB
Bij optimaal gebruik van de 24 bits uit Int13h kan maximaal ongeveer 8GB
geadresseerd worden.
Verdere
evolutie: CHS vervangen door LBA (Logic Block Addressing):
bij LBA krijgt elke sector een uniek nummer, niet verdeeld per C-H-S
deze adressering wordt toegepast bij SCSI en nieuwe ATA drivers.
Hard disk: vormfactor en performantie
Hard disk: adressering
IDE
255
16
65536
127.5 GB
heads
16
16
maal 8
128
256
Verdere uitbreiding in 64 bit systemen:
met Int13h extensions kan theoretisch tot 264 × 512 bytes aangesproken worden.
• disks met meer dan 504 Mb capaciteit;
BIOS
63
256
1024
8 GB
cylinders
65535
6136
delen door 8
767
1024
gecombineerde grens
63
16
1024
504 MB
Grootte van een disk in de tijd van de mini- en mainframe: vgl met wasmachine
Sinds verspreiding van microcomputers en laptops:
vormfactor
′′
5.25
′′
3.5
′′
2.5
′′
1.8
′′
1.0
′′
0.85
afmeting
b×h×l
146 × 82.5 × 203
102 × 25.4 × 146
70 × (7 − 15) × 100
54 × 8 × 71
43 × 5 × 37
24 × 5 × 32
maximale
capaciteit
46 GB
3 TB
1.5 TB
320 GB
20 GB
8 GB
aantal
schijven
14
5
4
3
1
1
gebruik
1998
2010
2010
2009
2007
2004
Performantie (2008):
∗ rotatiesnelheid: typisch 7200 rpm; high-end: 10000 of 15000 rpm
∗ seek time: tussen 3 en 15 ms: mobiele toestellen 12 ms, desktop 9 ms
vroeger met stappenmotor 80-120 ms
∗ data transfer snelheid tussen disk en buffer: bij 7200 rpm: 70 MB/sec
buffer naar computer (interface), bijv. SATA 2.0: 300 MB/sec
oud
USB
USB
Vergelijking
Serial ATA
∗ computer bus interface tussen host bus adapter en randapparaat (disk)
∗ opvolger van ATA (EIDE) dat parallel is (16 data geleiders op lagere snelheid)
(daarom soms ook PATA genoemd)
∗ seriële communicatie over 2 paren geleiders
∗ voordelen: eenvoudigere kabel en bijhorende kost; sneller
∗ versies: SATA 1.0, 2.0, 3.0 (met telkens hogere communicatiesnelheid) en eSATA
∗ vergelijking met SCSI: complexere bus, dus hogere fabricagekost maar het is
mogelijk om meerdere disks aan te sluiten
SCSI, SAS zijn meestal duurder: worden gebruikt in servers en disk-arrays
∗ SATA voor de thuiscomputer markt, maar daarom minder betrouwbaar is een
verkeerde conclusie
∗ betrouwbaarheid van een disk: kwaliteit van koppen, schijven, fabricageproces niet
de interface (SCSI, SATA, ...)
PATA
SCSI-1
SCSI ultra-320
USB 1.0
USB 2.0
SATA 1.0
SATA 2.0
SATA 3.0
eSATA
SAS 150
SAS 300
SAS 600
InfiniBand
Fibre Channel
bandbreedte
(Mbit/sec)
1064
40
2560
12
480
1500
3000
6000
3000
1500
3000
6000
10000
10520
transfersnelheid
(Mbyte/sec)
133,5
5
320
1.5
60
150
300
600
300
150
300
600
1000
2000
SCSI-controller
Voor multi-tasking systemen (werkstation/minicomputer) SCSI beter dan IDE:
∗ meer intelligentie en daardoor minder van de CPU gebruik maakt;
∗ een hogere datatransfersnelheid (tot 160 Mbit/s);
∗ naast host aansluiting kunnen tot 7 of tot 15 apparaten aangesloten worden
(multidrop)
∗ parallel: 50-pin of 69-pin flat connector (bandkabel)
∗ de hogere kost van een SCSI-bus: niet standaard voor goedkope PC’s.
∗ SAS: serial attached SCSI: met een aangepaste SATA data/vermogen kabel
hogere datatransfersnelheid, hot swapping, verbeterde fout-isolering
point-to-point: elk apparaat is met een aparte link verbonden
mbv. expander: tot 65535 apparaten
∗ UAS: USB attached SCSI
Een SCSI-disk-eenheid is ook duurder dan een E-IDE-drive bij gelijke opslagcapaciteit.
PC als fileserver: aan te raden een SCSI-controller en disk aan te schaffen.
Evolutie: SCSI-1, SCSI-2, Fast SCSI-2, FAST Wide SCSI-2, ...,
Ultra3 Wide SCSI-2, (of Ultra-160 SCSI), Ultra-320 Wide SCSI-2
max kabellengte (m)
0.46
6
12
3
5
1
1
1
2
10
10
10
10000
50000
aantal
per kanaal
2
7
15
tot 127
(met hub)
1
1
1
1
1
1
1
1
126
1995
1986
2002
2000
2005
2001
2008
2010
2004
2001
2006
2010
2004
2009
RAID
file-servers: betrouwbare, snel toegankelijke en grote data-opslag erg belangrijk.
redundant array of inexpensive disks
6 tot meer dan 100 SCSI-disks, samen met een besturingsprocessor.
De groep schijven doet zich voor als één grote schijf en zal de lees- en schrijftoegang tot
de schijf aanzienlijk versnellen doordat er verschillende fysische toegangspaden bestaan.
De gegevens worden verspreid over de verschillende kleinere schijven en dit laat toe dat
bepaalde gegevens in parallel kunnen worden opgevraagd.
Waar een normale schijfeenheid alle benodigde gegevens één voor één moet opzoeken en
aan de computer moet geven, kan een RAID unit bepaalde gegevens parallel op de
verschillende kleinere eenheden opzoeken, wat een aanzienlijke tijdswinst kan opleveren.
RAID-units zijn bovendien fout-tolerant omdat gegevens meerdere keren gekopieerd
kunnen worden naar verschillende schijven (disk mirroring). Als een schijf het begeeft,
zijn gegevens eenvoudig te herstellen met backup-kopieën die automatisch op andere
schijven opgeslagen worden.
Storage Area Network
RAID 0:
De datastroom wordt in stukjes gehakt die ieder op een eigen disk weggeschreven
worden. Bij het lezen wordt er parallel van alle disks gelezen en worden de stukjes weer
aaneengeregen tot de oorspronkelijke datastroom. In principe kan men zo met twee
disks een verdubbeling van de datatransfersnelheid realiseren. De opslag wordt er niet
betrouwbaarder door, want het uitvallen van één disk is fataal voor het systeem.
RAID 0: hogere snelheid
A
B
C
D
Het SAN-systeem bestaat vrijwel altijd uit een verzameling RAID-systemen voorzien
van een snelle netwerkinterface en een mogelijkheid het systeem als geheel te beheren.
Netwerk
Fileserver
Webserver
P
PP
PP
optische links
PP
PP
P
SAN switch
disk
RAID 1:
De gegevens worden ook parallel weggeschreven, maar nu krijgen beide disks (in het
geval van twee disks) dezelfde data. De tweede disk is dus een kopie van de eerste (disk
mirroring). Wanneer er een disk weg valt, kan de andere disk de data nog leveren. We
hebben dus hier niet direct snelheidswinst, maar wel een grotere betrouwbaarheid van
de dataopslag.
RAID 1: hogere betrouwbaarheid
A
A
B
B
Andere mogelijkheden: RAID 2, RAID 3, RAID 4, RAID 5.
Webclient
disk
disk
disk
RAID disksubsystem