Bussen verbindingen tussen deze blokken
CPU
RAM 0
Computerarchitectuur
7 Een bus bestaat uit een hoeveelheid parallelle verbindingen waarbij elke verbinding ´e´en 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 ´e´en 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 ´e´en 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 ´e´en van de vier modules. Vanuit de CPU gezien vormen de vier modules ´e´en 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 ´e´en, 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 ´en 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 ´e´en 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¨entie 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 ´e´en 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 ´e´en stroom van instructies op ´e´en 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 ´e´en 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¨ ele 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 ´e´en 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 ´e´en 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 ´e´en 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¨ele 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¨ enteerde 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 ´e´en 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 ´e´en 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 ´e´en 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 ´e´en onderliggende horizontale draad (kathode) en ´e´en 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 ´e´en 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´ed´e 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 ´e´en 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 ´e´en of meer magnetiseerbare schijven, waarvan zowel de onderkant als de bovenkant te gebruiken is. een disk-pack: meerdere schijven gemonteerd op ´e´en 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 ´e´en extra sector.
• Wanneer computers met slechts ´e´en harddisk meer dan ´e´en 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¨eren 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¨ele 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¨eren 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 ´e´en of meerdere kopie¨en 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¨ele 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 ´e´en 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 ´e´en voor ´e´en 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¨en 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 ´e´en 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