Inhoud leereenheid 2 Opbouw van een computer Introductie 49

advertisement
Inhoud leereenheid 2
Opbouw van een computer
Introductie
Leerkern
1
49
50
Wat is een computer? 50
De computer als gegevensverwerker 50
1.2
Een kijkje in de systeemkast, computerorganisatie 56
1.3
De systeemcomponenten 58
1.4
De systeembus: de snelweg in de computer 59
De microprocessor: het hart van de computer 61
2.1
Instructies: het draaiboek voor de microprocessor 61
2.2
De opbouw van de microprocessor 63
Het geheugen 67
3.1
Het stored-programconcept 68
3.2
De opbouw van het geheugen 69
3.3
Een taxonomie voor geheugens 70
3.4
Verschillen in constructie en de geheugenhiërarchie 72
Invoer en uitvoer 74
4.1
Methoden voor in- en uitvoer 75
4.2
Uiteenlopende eisen voor randapparaten 76
4.3
Communicatie tussen processor en I/O-controller 77
4.4
Transport van gegevens tussen randapparaat en geheugen
1.1
2
3
4
Samenvatting
Zelftoets
81
82
Terugkoppeling
1
2
48
83
Uitwerking van de opgaven 83
Uitwerking van de zelftoets 85
79
Leereenheid 2
Opbouw van een computer
INTRODUCTIE
De gemiddelde automobilist maakt zich meestal niet druk over de
werking van de auto. Voor de meeste mensen houdt de autotechniek op
bij het peilen van de motorolie, het eventueel bijvullen daarvan en het
verwisselen van een wiel bij een lekke band. Een kijkje onder de motorkap duurt meestal dan ook niet lang en is niet gericht op de werking
van het geheel. Kennis over de werking van een auto heeft alleen de
monteur. Bij computers is de situatie voor de meeste mensen niet anders.
Wie een tekstverwerker gebruikt om een verslag te schrijven, zal
nauwelijks geïnteresseerd zijn in de wereld van de computer daarachter.
Het feit dat er voor het openen van de systeemkast van een personal
computer vaak een schroevendraaier nodig is, is voor de meeste mensen
voldoende reden om te zeggen: ‘Spul voor techneuten, afblijven dus’.
Voor de schrijver van een brief of rapport is dit waarschijnlijk een goede
instelling. Dat de situatie anders is voor de hardwaredeskundige, ligt
voor de hand. Voor deze groep is een gedegen kennis van de werking
van computers noodzakelijk voor een succesvolle uitoefening van hun
beroep. Maar ook voor andere informatici is enige kennis van computerhardware van belang, bijvoorbeeld voor diegenen die meewerken aan
softwareprojecten of technische adviezen geven aan bedrijven. Vaak zijn
keuzes op softwareniveau namelijk afhankelijk van de onderliggende
hardware.
Op het meest elementaire niveau kan een computer beschreven worden
in termen van transistors, logische schakelingen, bits en bytes. We
beginnen onze ontdekkingsreis echter liever op een vertrouwd niveau,
de computer als geheel, en dalen dan langzaam af naar de samenstellende delen. Zodoende wordt de plaats en functie van deze bouwstenen
eerder duidelijk. De microprocessor en het interne geheugen blijken de
belangrijkste componenten te zijn. Er zijn echter nog wat componenten
die in geen enkele computer mogen ontbreken. Een computer staat
namelijk nooit op zichzelf, maar moet met zijn omgeving kunnen
communiceren, zoals elk zinvol systeem dat op de een of andere wijze
doet. Deze communicatie geschiedt met invoer- en uitvoerapparatuur,
zoals een toetsenbord en een beeldscherm. Het is echter de vraag in
hoeverre die apparatuur nog bij de computer hoort: waar ligt de grens
van het systeem? Het antwoord op deze vraag is een kwestie van
definitie. In deze leereenheid geven we er duidelijkheid over.
LEERDOELEN
Na het bestuderen van deze leereenheid wordt verwacht dat u
– globaal de werking van een computer uiteen kunt zetten
– kunt uitleggen wat we onder een computer verstaan
OUN
49
De werking van computersystemen
– het standpunt kunt verdedigen dat de computer een
gegevensverwerker is
– kunt aangeven wat er onder computerarchitectuur wordt verstaan
– de systeemonderdelen van een computer kunt benoemen
– weet wat de functie van een microprocessor is, en de functie van de
onderdelen besturing en datapad
– de onderdelen van het datapad, dus de ALU, algemene registers en
speciale registers, kunt beschrijven
– het stored-programconcept kunt uitleggen
– de verschillende soorten geheugen en hun functie kunt benoemen
– het hoe en waarom van invoer en uitvoer kunt uitleggen.
Studeeraanwijzingen
Deze leereenheid geeft een algemeen beeld van de computer. Het is van
belang dat u het verband blijft zien tussen de zaken die hier worden
behandeld. De studielast van deze leereenheid is 6 uur.
LEERKERN
Computer
1
Wat is een computer?
1.1
DE COMPUTER ALS GEGEVENSVERWERKER
Voor de meeste mensen was de personal computer het eerste bewuste
contact met een computer. De mainframes, mini’s en supercomputers uit
de vorige leereenheid zullen voor de meeste mensen niet bereikbaar zijn.
Van de embedded systemen die in huishoudelijke apparaten zijn verwerkt, zult u zich niet altijd bewust zijn geweest. Figuur 2.1 toont de
basisconfiguratie van een personal computer (pc) zoals u die waarschijnlijk gewend bent: een kast onder het bureau met een toetsenbord,
beeldscherm en een muis op het bureau zelf. In de kast zijn een diskettestation en een cd-romspeler ingebouwd. De muis, het toetsenbord en het
beeldscherm zijn via kabels met de kast verbonden.
FIGUUR 2.1
De configuratie van een multimedia computer op uw
bureau
Het LCD-scherm (Liquid crystal dispaly) is het primaire uitvoerapparaat en het
toetsenbord en de muis zijn de primaire invoerapparaten. Rechts ziet u een palmtop
computer voor, onder andere, een elektronische agenda. Bovenop het LCD is een camera
voor videovergaderen waarbij de headset links voor het geluidsgedeelte zorgt. De pc zelf
die in een behuizing onder het bureau staat, bevat de processor, het geheugen en andere inen uitvoerapparaten bijvoorbeeld voor audio.
50
OUN
Leereenheid 2 Opbouw van een computer
Gegevensverwerkend systeem
Randapparaat
dvd: digital video
disk
Hardware
Software
Gelaagde
architectuur
Hoewel de figuur een voorbeeld laat zien van slechts één groep
computersystemen, is de personal computer of notebook voldoende
representatief. De computers uit de andere groepen vertonen weliswaar
verschillen met de pc, maar de essentie blijft hetzelfde. Het is met name
die essentie van de computer die in deze leereenheid wordt gepresenteerd. Als we de parallel met het ‘systeem auto’ uit de inleiding even
doortrekken, zou de essentie van een auto bijvoorbeeld zijn: een voertuig
op wielen, aangedreven door een motor via een transmissie. Door
verschillende toepassingen van en eisen aan de auto ontstaat een
differentiatie naar personenauto’s, vrachtwagens, racewagens, bulldozers, enzovoorts. Precies zo ontstaan bij computers verschillen met
betrekking tot soort, snelheid, opslagcapaciteit en beschikbare
applicaties.
De essentie van een computer, in welke verschijningsvorm dan ook, is
als volgt: een apparaat dat via de invoerapparaten gegevens
binnenkrijgt, die gegevens verwerkt en de resultaten beschikbaar stelt
via de uitvoerapparaten. Elke computer is dus op te vatten als een
gegevensverwerkend systeem. Voor de invoer en uitvoer worden
zogenaamde randapparaten gebruikt. In figuur 2.1 zijn twee
invoerapparaten te onderkennen, het toetsenbord en de muis. Het
beeldscherm in de figuur fungeert als uitvoerapparaat. Sommige
randapparaten kunnen zowel voor invoer als voor uitvoer gebruikt
worden. De dvd-brander die in de notebook is ingebouwd, is
bijvoorbeeld een randapparaat waar de computer niet alleen gegevens
naartoe kan schrijven, maar ook gegevens van kan lezen. Naast de in de
figuur zichtbare invoer- en uitvoerapparaten zijn er nog diverse andere
mogelijkheden, waaronder netwerkaansluitingen en de harde ofwel
vaste schijf, die in de behuizing van de notebook is ingebouwd.
In figuur 2.1 is echter maar een deel zichtbaar van wat er nodig is om
een computer als gegevensverwerkend apparaat dienst te laten doen,
namelijk alleen de hardware, de tastbare apparatuur. Een computer
(uitgezonderd de primitiefste apparaten uit de begintijd) heeft altijd
software, ofwel programmatuur, nodig om de hardware aan te sturen.
De software is een gestructureerde verzameling instructies die de
gebruiker uiteindelijk de gevraagde functionaliteit biedt: het op een
voorgeschreven wijze verwerken van de invoer tot uitvoer. De hardware
interpreteert de instructies en voert de opdrachten uit. Andersom gebruikt de software de hardware om taken uit te voeren. Daarom zijn
hardware en software onafscheidelijk. Software is als product echter
niet tastbaar. Dat is alleen het medium waarop de software is opgeslagen. De software zelf is het resultaat van een creatief proces dat een
programmeur uitvoert en waarvan het product via een medium
beschikbaar wordt gesteld.
Het onderscheid tussen alleen hard- en software is echter te eenvoudig
om een ingewikkeld apparaat als een computer te beschouwen. Een
beproefd middel om de complexiteit van een ontwerp te hanteren, is om
een systeem zoals een computer te beschouwen als een hiërarchische
stapeling van subsystemen; de lagen of niveaus. We noemen een
dergelijke benadering een gelaagde architectuur. Het aantal lagen wordt
bepaald door de groepering van technologie, functie en expertise in één
laag. Onderscheiden we bijvoorbeeld vijf hoofdfuncties, drie verschillende technologieën en vier expertisegebieden, dan valt het overwegen
om het ontwerp in vijf lagen in te delen, zo mogelijk hiërarchisch.
OUN
51
De werking van computersystemen
Bij een hiërarchische structuur vervult elke laag in het systeem bepaalde
functies, waarbij een bovenliggende laag gebruikmaakt van de functies
die de daaronder liggende laag aanbiedt. Op deze manier wordt de
hiërarchie in het systeem bewerkstelligd. De uitwisseling van resultaten
tussen de aansluitende lagen gebeurt op een vastgestelde manier. De
verzameling van afspraken over deze uitwisseling tussen aangrenzende
lagen noemen we de interface. In figuur 2.2 tonen we een computer
opgebouwd uit acht lagen, voorgesteld door de horizontale blokken.
De lijntjes tussen de lagen stellen de interfaces voor.
Interface
Niveau 6
Gebruikersniveau (MS-office, games, multimedia, Google)
starten, stoppen, bedienen
Niveau 5
Toepassingsgerichte talen (C++, Java, enz)
vertalen (compiler)
Niveau 4
Assemblertalen
Niveau 3
Besturingsysteem
vertalen (assembler)
systeemaanroepen, timesharing
Niveau2
Instructiesetarchitectuur (in machinetaal)
interpretatie of directe uitvoering
Niveau 1
Microarchitectuur, microprogramma
logische schakelingen
Niveau 0
Poorten, tellers, (schuif)registers, ALU, enz
signalen
Niveau -1
FIGUUR 2.2
We geven daar zo
direct voorbeelden
van.
Gebruikersniveau
52
Transistors, weerstanden, bedrading, enzovoorts
Computersysteem beschouwd als een gelaagde
architectuur
Om nu de complexiteit te beperken streeft men ernaar om elke laag
autonoom te houden. Dat wil zeggen dat de interfaces waarover de
lagen met elkaar ‘communiceren’ om functies aan te roepen bekend zijn,
maar dat de manier waarop de functies worden gerealiseerd onzichtbaar
zijn voor de degene die deze functies aanroept. Op deze manier kan de
complexiteit over de verschillende belanghebbenden worden verdeeld.
Op het hoogste niveau treffen we de gebruiker als belanghebbende aan.
Deze ziet de computer als gebruiksapparaat voor een bepaalde toepassing (Engels: application). Afhankelijk van het gebruik is de computer
een tekstverwerker, een tekenapparaat of een installatie die muziek
afspeelt. De vereiste kennis van de gebruiker heeft betrekking op het
starten en bedienen van een bepaald programma. Wat zich onder dit
niveau afspeelt is niet relevant voor de gebruiker. We zien hier de
scheiding tussen de lagen op niveau 6 en 5 zich al aftekenen.
OUN
Leereenheid 2 Opbouw van een computer
Applicatieprogrammeur niveau
Compiler
Assemblerniveau
Besturingssysteem
Instructieset
Op niveau 5 is de applicatieprogrammeur actief. Met behulp van de
kennis (expertise) van een hogere programmeertaal zoals Java of C++
(technologie) worden de tekstverwerkers (bepaalde functies) en andere
toepassingprogramma’s geschreven. Deze taal wordt niet begrepen door
de onderliggende hardware en moet worden vertaald. De gemaakte
software in bijvoorbeeld C++ wordt in zijn geheel ontleed en vertaald.
We noemen deze vertaling compileren en het programma dat deze
vertaling uitvoert de compiler. De vertaling loopt via interactie met
niveau 4, assembler (soms) of niveau 3, besturingssysteem (vaak), of
rechtstreeks naar niveau 2 (vrijwel nooit). Het ontwerpen en schrijven
van een compilerprogramma is een specialisme in de informatica.
Op niveau 4 geven we het assemblerniveau aan. Assembler is een
programmeertaal die veel dichterbij de machinetaal staat dan een hogere
programmeertaal. In het algemeen komt één regel in een assemblertaal
overeen met één regel machinecode. Hierdoor zijn de begrippen
eenvoudiger bij vertaling vanuit niveau 5 naar niveau 4. Wel kan één
begrip uit een hogere programmeertaal leiden tot een reeks van begrippen in de assemblertaal. Ook zien we een vertaalweg via niveau 3, het
besturingssysteem. Eén van de taken van het besturingssysteem is het
aanleveren van de veelgebruikte routines naar de hardware, zoals het
beëindigen van een toepassingsprogramma. Het aanroepen van een
dergelijke veelgebruikte routine noemen we een system call en verlost de
assemblerprogrammeur (en compiler) van het iedere keer
uitprogrammeren van dergelijke veelvoorkomende, routinematige
activiteiten. U ziet hier de reductie van complexiteit door deze
lagenstructuur in werking!
Het besturingsysteem op niveau 3 is enigszins de overgang van software
naar hardware. In oorsprong vervangt dit systeem de menselijke operateur van een computer; vandaar de naam van dit systeem. Naast de
eerdergenoemde taak van het aanbieden van routines naar de hardware,
de hardware drivers, waardoor allerlei eigenaardigheden van deze
hardware worden gemaskeerd en per apparaattype één universele
interface naar deze apparaten ontstaat. Het besturingsysteem heeft ook
tot taak het starten van de computer (Engels: booting), voert het beheer
op het geheugen, laadt programmatuur, verzorgt de (grafische) interface
naar de gebruiker, zorgt voor beveiliging en de mogelijkheid dat meer
gebruikers of programma’s onafhankelijk van elkaar de computer
kunnen gebruiken. Het in de loop der jaren steeds ingewikkelder
geworden besturingsysteem van een moderne computer is het domein
van de systeemprogrammeur.
Op niveau 2 vinden we de instructiesetarchitectuur. De instructieset is
de verzameling instructies die rechtstreeks door de hardware worden
begrepen. Doordat de hardware alleen nullen en enen ‘begrijpt’, worden
deze instructies in binaire vorm aangeboden. De lengte van de instructie
in bits karakteriseert de microprocessor. We spreken dan over een reeks
mogelijkheden, van een 8 bits machine voor het eenvoudigste apparaat
tot een 64 bits machine voor een moderne pc. Bijvoorbeeld, de volgende
32 bits machine-instructie instrueert een bepaalde machine om twee
getallen op te tellen en het resultaat op te bergen:
00000001010010110110000000100000
OUN
53
De werking van computersystemen
Computerarchitectuur
Microarchitectuur
en microcode
Deze begrippen
worden later
uitgelegd
Poorten, registers,
enzovoorts
Transistors,
weerstanden,
bedrading,
enzovoorts
Aandachtspunten
en dynamisch
gedrag
Aandachtspunten in
de cursus
54
De instructiesetarchitectuur beschrijft de verschillende instructies en hun
effect op de verschillende onderdelen van de microprocessor en het
geheugen. Een gegeven instructiesetarchitectuur is het vertrekpunt van
een softwaretechnoloog die bijvoorbeeld de vertalers (compilers) voor
een specifieke machine ontwikkelt en bouwt. De samenstelling van de
instructieset zelf (en de bijbehorende hardware) is echter het domein van
de computerarchitecuur. De computerarchitect bepaalt op niveau 1 uit
welke componenten de (micro)processor gaat bestaan; de microrarchitectuur. Bijvoorbeeld het aantal registers, eventuele cache-geheugens, de
aanwezigheid van schakelingen die parallelle verwerking van instructies
mogelijk maken en uiteraard de samenstelling van de instructieset. Voor
dit laatste kan de wens zijn om een uitgebreide, krachtige instructieset te
realiseren waarbij lang niet iedere instructie meteen door de hardware
kan worden uitgevoerd. Voor dat doel worden op dit niveau kleine
routines ingebouwd: de microcode, die een ingewikkelde instructie
interpreteert en in kleine stapjes verdeelt die elk wél door de hardware
kunnen worden uitgevoerd. In plaats van een ingewikkelde, moeilijk te
begrijpen elektronische schakeling te bouwen die elke instructie uitvoert,
maakt deze aanpak het mogelijk om in principe elke instructie door de
microcode te laten interpreteren en stapsgewijs te verdelen naar goed
gedefinieerde, eenvoudige elektronische schakelingen voor verdere
verwerking. Een voorbeeld hiervan is een vermenigvuldiging van twee
gehele getallen die meestal niet rechtstreeks door de hardware wordt
uitgevoerd. Een mogelijke aanpak is om een dergelijke vermenigvuldiging uit te voeren als een herhaalde optelling en daar zorgt de
microcode dan voor.
De componenten die een (micro)processor samenstellen, zijn op zichzelf
weer opgebouwd uit poorten en daarmee opgebouwde logische
schakelingen. Deze schakelingen voeren logische functies uit. Het
construeren van componenten op niveau 0 is één van de aandachtsvelden van de digitale elektronica om met elektronische componenten
discrete signalen, ‘0’ en ‘1’, te verwerken.
Voor de volledigheid hebben we aan figuur 2.2 het niveau -1 toegevoegd
om de gewone analoge componenten waaruit de poorten worden opgebouwd een plek te geven. Dit is het gebied van de (micro)elektronica.
Doordat deze componenten halfgeleiders zijn en hele schakelingen in
één chip worden ondergebracht, raken we hier ook aan de vastestoffysica.
Figuur 2.2 geeft de verdeling van, en de interactie tussen de aandachtsgebieden weer maar niet de dynamiek van het dagelijkse gebruik.
In de regel wordt het proces om van een hogere programmeertaal
machineinstructies te maken eenmalig uitgevoerd. Het resultaat is
een zogenaamde executable. Deze vorm van een programma wordt
op gebruikersniveau aangeroepen voor een te verrichten taak en (met
behulp van het besturingssysteem) meteen verwerkt op niveau 2, de
instructiesetarchitectuur. Kortom de software-lagen in figuur 2.2 worden
eenmalig ingezet, de hardware-lagen iedere keer dat een toepassing
wordt aangeroepen.
Een gelaagde structuur is ook een goed middel om onderwerpen in een
cursus te ordenen. In de cursus geven we enige aandacht aan transistors
en hoe deze als schakelaar worden gebruikt om een logische poort te
OUN
Leereenheid 2 Opbouw van een computer
construeren. Binnen dit niveau geven we ook een voorbeeld van hoe
een chip wordt gemaakt. Aan de logische poorten en de daaruit voortvloeiende logische schakelingen besteden we uitgebreid aandacht
(niveau 0). Ook besteden we veel aandacht aan de microarchitectuur
en enige aandacht aan de microcode (niveau 1). Deze laag bespreken
we vooral omdat we dan gespecialiseerde microprocessoren zoals de
controllers zinvol kunnen bespreken. Verder komen de bijbehorende
instructiesets (niveau 2) aan de orde.
Aspecten van het besturingssysteem (niveau 3) laten we buiten
beschouwing omdat hieraan een aparte cursus wordt gewijd en we de
details niet nodig hebben om een computersysteem te begrijpen. U heeft
eerder kennis nodig van een computerarchitectuur om een bijbehorend
besturingssysteem te begrijpen!
Vanaf het niveau van de instructiesetarchitectuur en hoger wordt alles
software en zouden we de cursus tot een bespreking van niveau 2 en de
onderliggende niveaus kunnen beperken. Bij een goed begrip van een
computersysteem hoort echter ook de kennis over de wijze waarop
een computer met software omgaat. Vandaar dat we in deze cursus
assembler (niveau 4) stevig aanstippen en de omgang met hogere
programmeertalen globaal bespreken.
Computerorganisatie
Let op, figuur 2.2 is
een decompositie!
Wellicht ten overvloede merken we op dat figuur 2.2 de decompositie is
van een computersysteem en niet een weergave van hoe software wordt
uitgevoerd of ontwikkeld.
Eventueel
dynamisch gedrag
Impliciet zit in figuur 2.2 verschillend gedrag opgesloten. Het ontwerpen
en compileren van het toepassingsprogramma gebeurt in principe eenmalig, het uitvoeren van het gecompileerde programma gebeurt bij
iedere aanroep van dit programma. Ook blijkt in figuur 2.2 dat
ontwerpers van tussenliggende lagen altijd twee kanten in ogenschouw
moeten nemen. De ontwerpers van de hardware moeten in de gaten
houden welke instructieset door de compilerbouwers op prijs wordt
gesteld en wat de hardware tegen redelijke kosten en complexiteit kan
realiseren. De compilerbouwers moeten op hun beurt weer rekening
houden met de gegeven instructieset, systeemfuncties die door het
besturingssysteem worden geleverd en de syntaxis (grammatica) en
semantiek (betekenissen) van de hogere programmeertaal. Op deze
manier manifesteert zich een ontwerpdynamiek die zich over de lagen
uitstrekt en die zich afwisselend concentreert op die onderdelen van de
keten waar volgens de dan heersende inzichten de meeste winst (meestal
snelheid) is te behalen.
De getoonde hiërarchie in figuur 2.2 heeft betrekking op de microprocessor en de daarbij behorende software. In de computerbehuizing
zelf vinden we nog allerlei onderdelen die via de processor worden
bestuurd, zoals harde schijven, controllers voor het toetsenbord en
dergelijke. De manier waarop deze onderdelen met elkaar samenwerken
wordt wel de computerorganisatie genoemd. In de volgende paragraaf
bekijken we enkele aspecten van deze organisatie.
OUN
55
De werking van computersystemen
1.2
EEN KIJKJE IN DE SYSTEEMKAST, COMPUTERORGANISATIE
Figuur 2.1 geeft de vertrouwde buitenkant van een computer of notebook weer. Bij de meeste mensen zal de inhoud van de systeemkast
echter minder bekend zijn. Nu we de functionaliteit van de computer
als geheel wat beter begrijpen, wordt het tijd om te onderzoeken hoe die
functionaliteit gerealiseerd wordt door de diverse onderdelen in een
computer. In figuur 2.3 is te zien hoe een systeemkast van een pc er van
binnen uit kan zien.
FIGUUR 2.3
Voedingseenheid
IC is een afkorting
van de Engelse term
‘integrated circuit’.
Geïntegreerde
circuits ofwel chips
Gedrukte bedrading
Insteekkaarten
Uitbreidingsbussen
De inhoud van de systeemkast van een pc
Achteraan is een metalen kast te zien, achter het cd-romstation en de
harde schijf. Die metalen kast is de voedingseenheid, de elektrische
energievoorziening van de computer. De bodemplaat vol met
elektronische componenten onderin de kast is het zogenaamde
moederbord. Het is een dunne plaat, waarop grijze of zwarte blokjes te
zien zijn, de geïntegreerde circuits (IC’s) ofwel chips. Verder zijn op het
moederbord (waarvan figuur 2.4 een gedetailleerder beeld toont) nog
andere componenten te zien, waaronder weerstanden en condensatoren.
Op de plaat is gedrukte bedrading aangebracht: banen van metaal (koper)
die de IC’s en de overige componenten met elkaar verbinden. De twee
platen boven het moederbord, insteekkaarten genaamd, zijn met dit
moederbord verbonden via connectoren, de zogenaamde uitbreidingsbussen. Op deze insteekkaarten zijn in dit geval een SCSI-controller (om
randapparaten aan te sturen) en de functionaliteit voor de verbinding
met het netwerk geïmplementeerd.
OPGAVE 2.1
Wat zou bij het ‘systeem auto’ het equivalent zijn van de
voedingseenheid in de pc? En van insteekkaarten?
De onderdelen van figuur 2.3 vinden we ook terug wanneer we een
notebook openschroeven. Alleen zijn daar de componenten van figuur
2.3 nog kleiner gemaakt. In figuur 2.4 bekijken we het moederbord
nader.
56
OUN
Leereenheid 2 Opbouw van een computer
a
FIGUUR 2.4
Slot
Uitbreidingskaart
Chipset
Zie ook leereenheid
14
Videokaart
Zie leereenheid 15.
Geheugenmodules
USB-poort
USB: Universal
serial bus
b
Een moederbord van een pc: foto (a) en plattegrond
componentenopstelling (b)
Op een moederbord vinden alle elektronische componenten een plaats
en worden ze met elkaar verbonden, voor zover ze een directe relatie
hebben met de processor. Rechts van het midden is het koelblok van de
microprocessor te zien, die de geproduceerde warmte van de processor
moet afvoeren. Daaronder is de processor zelf gemonteerd. In de
linkerbovenhoek van het moederbord zijn drie connectoren of slots te
zien, die gevuld kunnen worden met uitbreidingskaarten die haaks op het
moederbord staan. Deze uitbreidingskaarten geven meestal uitbreiding
op de in- en uitvoermogelijkheden van de computer. Een voorbeeld van
een uitbreidingskaart kan een audiokaart zijn voor de reproductie van
hoge-kwaliteitsaudio bij bijvoorbeeld spelletjes. Wel worden populaire
uitbreidingskaarten, zoals de audiokaart op den duur geïntegreerd in
de chipset. Deze chipset bevat nog allerlei andere elektronica die het
functioneren van de processor ondersteunen, zoals schakelingen voor
het aansturen van geheugen, harde schijf, toetsenbord, muis, enzovoorts.
Het type chipset is een kenmerkende eigenschap van een moederbord.
Rechts naast de slots voor uitbreiding zien we een slot voor een
videokaart. Het moederbord bevat meestal alleen een basale aansturing
voor het beeldscherm. Een videokaart breidt deze aansturing uit door
een verhoging van de resolutie en snelheid waarmee een beeld wordt
opgebouwd. Dit is vooral van belang bij spelletjes en de overdracht van
video. In de regel bevat een videokaart een grafische processor.
Onder het koelblok zien we vier lange horizontale sleuven. Hierin
vinden de geheugenmodules een plaats die het interne geheugen van de
computer vormen. Daaronder zien we de aansluitingen voor de
voedingsspanningen voor het moederbord en de aansluitingen voor de
harde schijven. Net naast het koelblok zien we een aansluitplug voor de
voedingsspanning voor de processor. Rechtsboven ten slotte zitten de
connectoren, de poorten om de in- en uitvoerapparatuur aan te sluiten.
Dat zijn poorten voor toetsenbord, muis en printer. Tegenwoordig zijn
er verschillende USB-poorten voor de aansluiting van welk randapparaat
dan ook. In de volgende paragrafen zullen we op elk van deze componenten wat dieper ingaan.
OUN
57
De werking van computersystemen
Let op.
Merk op dat ook de opbouw van een computer in hardware modulair is!
De aansluitingen op het moederbord liggen vast, de opbouw van de
(uitbreidings)kaart zelf echter niet. Bijvoorbeeld: een videokaart kan per
leverancier een andere opbouw hebben, voorwaarde is echter dat zo’n
kaart wel voldoet aan de elektrische en mechanische eisen van een slot
voor een videokaart. Als zodanig vormen de slots een concrete interface
naar het moederbord.
1.3
Systeembus
Let op.
DE SYSTEEMCOMPONENTEN
Bij het inzoomen op de hardware, zoals dat hiervoor is gedaan, worden
steeds meer details van een computersysteem zichtbaar. Als dit aan de
hand van echte hardware wordt gedaan, ontstaat er al snel een situatie
waarbij men door de bomen het bos niet meer kan zien. Het is zaak om
de essentie van de details te scheiden. In figuur 2.5 is de essentie van de
computerorganisatie van de meeste moderne computersystemen
schematisch weergegeven. In de figuur zijn drie componenten zichtbaar, de microprocessor, het geheugen en een input- en outputcontroller
(I/O-controller).
FIGUUR 2..5
Schematische opbouw van de computer
De eerste twee kennen we uit figuur 2.4; de I/O-controllers zijn in de
chipset ondergebracht. De drie componenten zijn met elkaar verbonden
door de zogenaamde systeembus. De randapparaten, zoals toetsenbord,
beeldscherm en muis, maken per definitie geen deel uit van het computersysteem. Zij worden via I/O-controllers aangesloten op de computer:
op de poorten en uitbreidingsslots in figuur 2.4 dus. Hoewel een harde
schijf een randapparaat is dat via een I/O-controller wordt aangesloten
op de systeembus, wordt die meestal wél tot de computer gerekend.
Leestekst
In de praktijk zit er om de getoonde componenten nog allerlei ondersteunende hardware,
zie figuur 2.4, die we hier abstraheren. Ook is de systeembus in de praktijk gesplitst in
aparte bussen die elk beter passen bij de eigenschappen van de randapparaten. Zo is er een
aparte bus naar het geheugen, een aparte bus naar de grafische controller AGP (videokaart
in figuur 2.4) enzovoorts. We komen hier later in de cursus op terug.
CVE, CPU
Processor en
microprocessor
58
De processor wordt ook wel centrale verwerkingseenheid (CVE) of central
processing unit (CPU) genoemd. Vroeger was een processor opgebouwd
uit allerlei losse onderdelen die op een printkaart met elkaar werden
verbonden. Wanneer de processor echter op een chip is ondergebracht
spreken we van een microprocessor. In de cursus gebruiken we beide
begrippen door elkaar omdat het voor de werking niet zoveel uitmaakt.
Moderne computers zijn altijd uitgerust met microprocessoren.
OUN
Leereenheid 2 Opbouw van een computer
De microprocessor kan gegevens verwerken. Daartoe moeten die eerst
binnengehaald worden, vervolgens bewerkt en ten slotte weer afgegeven. Om de gegevens te kunnen bewerken bevat de microprocessor
schakelingen voor optellen, aftrekken, vermenigvuldigen, delen,
logische bewerkingen en nog enkele andere bewerkingen. Welke
bewerking op de gegevens moet worden uitgevoerd, wordt bepaald
door de uit te voeren instructie. De microprocessor bewerkt niet alleen
de gegevens maar is ook de dirigent van het computersysteem. Hij
bepaalt de meeste acties die in het gehele systeem moeten worden
uitgevoerd en zorgt ervoor dat alles ordelijk en gecoördineerd verloopt.
Geheugen
Het geheugen dient als opslagruimte voor zowel de gegevens waarmee
de microprocessor moet werken, als de programma-instructies die hij
moet uitvoeren. Het geheugen is opgebouwd uit een eindig aantal
opslagplaatsen, die elk een eigen adres hebben, de geheugenelementen.
De processor kan gegevens lezen uit (respectievelijk schrijven in) zo’n
geheugenelement. Om een bepaald geheugenelement te benaderen geeft
de processor het adres van dat geheugenelement door aan het geheugen,
dat daardoor weet welk element bedoeld wordt.
OPGAVE 2.2
Is er in het ‘systeem auto’ geheugen aanwezig? Noem eventueel
voorbeelden. Hint: ga na wat het wezen van geheugen is.
I/O-controllers
De I/O-controllers maken de communicatie met de buitenwereld mogelijk,
via de randapparaten, dus bijvoorbeeld beeldscherm, toetsenbord, muis
en harde schijf. In figuur 2.5 is slechts één I/O-controller getekend. In een
computersysteem zullen echter verschillende controllers voorkomen.
Voor elk randapparaat zal vaak een aparte I/O-controller beschikbaar zijn.
I/O-controllers zijn meestal zeer complexe onderdelen, omdat ze zelf ook
weer microprocessoren bevatten. Daardoor kunnen zij de microprocessor
van de computer een aantal taken, bedoeld om een specifiek randapparaat
aan te sturen, uit handen nemen. Als er echter gegevens tussen systeemonderdelen moeten worden getransporteerd, neemt de CVE de besturing
meestal weer over.
1.4
DE SYSTEEMBUS: DE SNELWEG IN DE COMPUTER
De systeembus vormt het transportmedium tussen de componenten.
Hij bestaat in feite uit drie onderdelen:
– de databus
– de adresbus
– de controlbus.
Het schema in figuur 2.5 wordt nu verfijnd tot dat in figuur 2.6
hieronder. De systeembus is nu opgesplitst in drie ‘deel’-bussen.
FIGUUR 2.6
Schematische opbouw van de computer in meer detail
OUN
59
De werking van computersystemen
Databus
Denk aan het
stored-programconcept uit
leereenheid 1.
De databus dient, zoals de naam al aangeeft, voor het transport van de
data zelf. Dit kunnen zowel gegevens zijn waarmee bewerkingen
worden uitgevoerd, als programma-instructies. Elke component kan
data op deze bus aanbieden, zodat andere componenten deze over
kunnen nemen. Dat is in figuur 2.6 aangegeven door pijlen in beide
richtingen bij de drie componenten. Zo kunnen gegevens van het
geheugen naar de microprocessor worden getransporteerd, die deze
gegevens bewerkt. Daarna kan de microprocessor de resultaten via de
I/O-controller naar een randapparaat sturen, of via de databus weer naar
het geheugen transporteren.
Adresbus
De adresbus wordt gebruikt om de geheugenlocatie aan te geven waar de
gegevens vandaan dienen te komen, of waar ze naartoe moeten. Bij het
ophalen van gegevens zet de microprocessor het adres van de gegevens
op de adresbus, zodat het geheugen de juiste gegevens op de databus
kan zetten en de microprocessor deze gegevens tot zijn beschikking
krijgt. Bij het schrijven in het geheugen wordt de locatie aangegeven
waar de gegevens moeten worden geplaatst. Vooralsnog gaan we ervan
uit dat alleen de microprocessor iets op de adresbus kan zetten, het
geheugen en de I/O-controllers kunnen de adresbus alleen inspecteren
(let op de richting van de pijlen in figuur 2.6).
Controlbus
De controlbus wordt gebruikt om het transport van de gegevens tussen
de componenten ordelijk te laten verlopen. Een voorbeeld is het
aangeven van de richting van het transport; moet er uit het geheugen
worden gelezen of moet er in dat geheugen worden geschreven? Ook het
doel (respectievelijk de bron) van het transport kan met de controlbus
worden geregeld; moet er in (uit) het geheugen of naar (uit) een I/Ocontroller worden geschreven (gelezen)? Welke actie er moet worden
uitgevoerd, wordt aangegeven door elektrische signalen.
Voor het uitwisselen van deze elektrische signalen worden lijnen
gebruikt. Lijnen zijn hier afzonderlijke draden, de elementaire
bouwstenen van een bus (rechts in figuur 2.6). Via de readlijn kan de
microprocessor bijvoorbeeld aangeven dat er een leesactie dient te
worden uitgevoerd, en via de writelijn dat er een schrijfactie moet
worden uitgevoerd. Zoals we hieronder zullen zien, is de
microprocessor niet de enige component die iets op de controlbus kan
zetten. (Vandaar de pijlen in beide richtingen in figuur 2.6.)
Lijnen
Readlijn
Writelijn
Busoperaties
Signalen: zie ook
leereenheid 4.
Via de systeembus worden de communicatiehandelingen tussen de
systeemcomponenten onderling uitgevoerd. Deze handelingen noemen
we busoperaties. De twee meest voorkomende busoperaties zijn: het lezen
uit respectievelijk schrijven in het geheugen van gegevens. Hieronder
wordt uitgelegd wat er bij deze busoperaties gebeurt.
Lezen van gegevens
Als de processor gegevens uit het geheugen moet lezen, dan zullen
achtereenvolgens de volgende acties plaatsvinden:
1 De processor plaatst het adres van de geheugenlocatie op de
adresbus.
2 De processor activeert de readlijn om aan te geven dat er gegevens
uit het geheugen moeten worden gelezen.
60
OUN
Leereenheid 2 Opbouw van een computer
3 Het geheugen zet de gegevens van de aangegeven geheugenlocatie
op de databus.
4 Het geheugen activeert de readylijn (ook een lijn van de controlbus)
om aan te geven dat de gegevens op de databus beschikbaar zijn.
5 De processor haalt de gegevens van de databus en verwerkt die.
Schrijven van gegevens
Als de processor gegevens in het geheugen moet schrijven, vinden
achtereenvolgens de volgende acties plaats:
1 De processor plaatst het adres van de geheugenlocatie op de
adresbus.
2 De processor plaatst de te schrijven gegevens op de databus.
3 De processor maakt de writelijn actief om aan te geven dat er in het
geheugen moet worden geschreven.
4 Het geheugen zet de gegevens van de databus in de door de
adresbus aangegeven locatie.
OPGAVE 2.3
Kunt u naast de twee genoemde busoperaties nog twee andere noemen?
Klok
Zoals in leereenheid 4 nog in detail wordt uitgelegd, heeft elke digitale
schakeling een zekere tijd nodig om zich te stabiliseren. Om ervoor te
zorgen dat via de systeembus gegevens alleen in stabiele toestand
worden uitgewisseld, beschikt elke computer over een klok. De klok
levert met regelmatige tussenpozen een puls, waardoor de handelingen
van de diverse systeemonderdelen kunnen worden gesynchroniseerd.
Elke klokpuls kan worden opgevat als het sein dat de volgende elementaire actie uitgevoerd mag worden. Het kloksignaal wordt gegenereerd
door een klokpulsgenerator. Om een nauwkeurig bepaald tempo van
klokpulsen te krijgen wordt gebruikgemaakt van kwartskristallen zoals
die ook in uw horloge zitten. De vorm van het kloksignaal kan per
computersysteem verschillen. Het tempo waarmee de klokpulsen elkaar
opvolgen, bepaalt in belangrijke mate ook de verwerkingssnelheid van
de computer. In het algemeen betekent een hogere kloksnelheid dat een
computer meer berekeningen per seconde kan uitvoeren. De kloksnelheid (klokfrequentie) wordt uitgedrukt in Hertz (Hz), het aantal pulsen
per seconde. Zo betekent een klokfrequentie van 500 MHz dat er 5 · 108
pulsen per seconde zijn, dus elke 2 · 10–9 seconde (2 ns) een puls.
Klokfrequentie
Niveau 2 in figuur
2.2
2
De microprocessor: het hart van de computer
2.1
INSTRUCTIES: HET DRAAIBOEK VOOR DE MICROPROCESSOR
In het voorgaande is opgemerkt dat de microprocessor de dirigent van
de computer is, omdat hij de meeste acties in de computer coördineert.
De microprocessor voert daartoe een programma uit dat bestaat uit
machine-instructies. Deze instructies zijn de ‘woorden’ van de taal die
de microprocessor begrijpt. Alle mogelijke instructies samen vormen het
‘vocabulaire’ van de microprocessor. Elke instructie is een elementaire
opdracht die de microprocessor moet uitvoeren. Een instructie bestaat
uit twee elementen:
– wat er moet gebeuren
– met welke gegevens het moet gebeuren.
OUN
61
De werking van computersystemen
Operatie
Operanden
Deze twee elementen noemen we de operatie (wat er moet gebeuren)
en de operanden (de gegevens waarmee het moet gebeuren). Voor de
processor is van belang wat er moet gebeuren, waar de operanden te
vinden zijn en waar het resultaat naartoe moet.
Alfabet
Zoals elke geschreven taal heeft ook de taal van de computer een alfabet.
Dit alfabet bestaat uit slechts twee symbolen, meestal aangeduid met de
cijfers 0 en 1. Met uitsluitend deze symbolen kunnen alle woorden, dus
de instructies van de computer, weergegeven worden. In de computer
worden de symbolen 0 en 1 gerepresenteerd door een hoge of lage
waarde van een elektrisch signaal (stroom, spanning of lading), of het
open of gesloten zijn van een (elektronische) schakelaar. Een mogelijke
instructie voor de processor, met een lengte van 16 symbolen, zou nu
bijvoorbeeld kunnen zijn:
1000110010100000
Bij eerste computers zou bovenstaande regel in een paneel met rijen van
16 schakelaars worden geprogrammeerd. Elke rij is dan een machineinstructie. Afhankelijk van de waarde van een bit in de instructie, werd
een schakelaar in dezelfde positie in de rij naar boven (1) of naar
onderen gezet (0). Op iedere klokslag werd dan een regel van het paneel
gelezen en uitgevoerd. Later werden deze patronen in ponskaarten
gedrukt, zodat ze als gewone invoer konden worden gelezen en in het
geheugen worden gezet. Nu komen deze instructies uit het geheugen
van de computer, maar daarover later meer.
OPGAVE 2.4
Stelt u zich voor dat u een programma moet schrijven dat uit honderd
van dergelijke instructies bestaat. Zou u in staat zijn om dit foutloos in
een computer in te voeren? Waarom (niet)?
Het aangeven van instructies met tekstuele symbolen leidt ertoe dat er
minder snel fouten worden gemaakt. Het programma wordt voor de
mens beter leesbaar. Een voorbeeld van een symbolische notatie voor de
instructie hierboven is:
1000
1100
1010
0000
add
R3
R2
R1
Deze instructie zou bijvoorbeeld kunnen betekenen: tel de waarden uit
de geheugenelementen R1 en R2 op en plaats het resultaat in R3.
Assembler
Assemblers worden
in de volgende
leereenheid kort en
in deel 4 uitvoerig
behandeld.
Assembleertaal
62
Door voor de omzetting van de symbolische notatie in de juiste rijtjes
nullen en enen een speciaal computerprogramma, een assembler (zie
figuur 2.2) te gebruiken, wordt het programmeren een stuk eenvoudiger.
Het assemblerprogramma (dus het programma waarmee assemblercode
wordt omgezet naar machine-instructies) hoeft maar één keer
geschreven te worden, en kan dan telkens opnieuw bij de omzetting van
andere programma’s gebruikt worden. De computer zelf wordt zo
gebruikt om de computer te programmeren. De symbolische notatie
wordt assembleertaal genoemd.
OUN
Leereenheid 2 Opbouw van een computer
2.2
DE OPBOUW VAN DE MICROPROCESSOR
Nu we de functie van de microprocessor kennen, zijn we zover dat we
nog verder in kunnen zoomen om te kijken naar de opbouw van de
microprocessor. In figuur 2.7 zien we de buitenkant van een microprocessor zoals die in een personal computer kan zijn gebruikt met een
bijbehorend koelblok. Dit koelblok moet de warmte die een processor
opwekt, nu zo’n 95W, voldoende snel afvoeren om oververhitting van
de processor te vermijden.
a
FIGUUR 2.7
Datapad
Control unit
Datacondities
De Intel Pentium Dual Core microprocessor (a) en het
bijbehorende koelblok (b). De microprocessor is hier in
verhouding groter afgebeeld dan het koelblok.
Als we verder inzoomen op de microprocessor die de kern vormt van de
pc, zien we dat deze uit twee delen bestaat: het datapad en de besturing
(zie figuur 2.8). De besturing wordt ook wel de control unit, besturingseenheid of controle-eenheid genoemd. Het datapad bevat de elektronische
schakelingen voor het daadwerkelijk uitvoeren van berekeningen.
FIGUUR 2.8
Controlelijnen
b
De microprocessor: control unit en datapad
De control unit bestuurt het datapad, het geheugen en de I/O-controllers
conform de opdrachten die in het programma zijn opgenomen. De
besturing van het geheugen en de I/O-controllers geschiedt via de
controlbus van het computersysteem. Om het datapad te besturen
worden er vanuit de control unit een aantal controlelijnen aangestuurd,
OUN
63
De werking van computersystemen
waardoor in het datapad specifieke functies worden uitgevoerd (interne
besturing). De control unit moet echter ook kunnen reageren op situaties
in het datapad en in de overige systeemonderdelen. Daarvoor is er ook
een aantal lijnen voor signalen vanaf het datapad naar de control unit.
Deze signalen worden datacondities genoemd: ze geven de toestand van
het datapad door aan de control unit. Ook vanaf de overige systeemonderdelen, zoals het geheugen, zijn er lijnen in de controlbus aanwezig
voor externe besturing en lijnen waardoor de control unit op de hoogte
kan blijven van de toestand waarin deze systeemonderdelen zich
bevinden (externe condities).
In figuur 2.8 zijn de diverse verbindingen met de richting van de data
aangegeven en benoemd. Van links naar rechts zien we een steeds
verder gaande verfijning van de systeembus. Een verdere verfijning in
lijnen is vanwege de overzichtelijkheid achterwege gelaten.
OPGAVE 2.5
Noem een voorbeeld van een externe conditie die het geheugen kan
doorgeven aan de control unit van de processor.
Registers
Registers komen
uitvoerig aan de
orde in leereenheid
12.
Datapad
ALU
Algemene registers
64
Om de instructies die de microprocessor uit moet voeren tot een goed
einde te brengen, zal de control unit voor elke instructie het volgende
coördineren:
– het ophalen van de instructie
– het decoderen van de instructie (bepalen wat de bedoeling van de
instructie is)
– het ophalen van de operanden (de gegevens waarmee die instructie
moet werken)
– het uitvoeren van de instructie en
– het wegschrijven van de resultaten.
De instructies worden via de databus uit het geheugen opgehaald. De
operanden kunnen eveneens uit het geheugen worden opgehaald, of ze
zijn reeds aanwezig in tijdelijke opslagplaatsen van de processor. Dit
laatste hangt af van de computerarchitectuur. Het resultaat kan in het
geheugen worden geschreven of in zo’n tijdelijke opslagplaats in de
microprocessor. De tijdelijke opslagplaatsen voor gegevens, adressen
en programma-instructies in de microprocessor zelf worden registers
genoemd.
Het datapad voert de daadwerkelijke berekeningen uit en bestaat weer
uit een aantal onderdelen:
– de rekenkundige en logische eenheid (ALU: Arithmetic and Logic Unit).
– de algemene registers en
– de speciale registers.
De onderdelen van het datapad zijn onderling verbonden door de interne
bussen van de microprocessor. Hoe een datapad van een microprocessor
eruitziet, wordt volledig bepaald door de computerorganisatie.
De algemene registers in de processor worden gebruikt om de gegevens
waarmee moet worden gerekend, tijdelijk op te slaan (registers R1, R2, R3
en R4 in figuur 2.9). Als deze gegevens in de algemene registers van de
processor worden geplaatst, hoeft niet steeds de lange en tragere weg
naar het geheugen te worden gebruikt, maar zijn de gegevens veel
OUN
Leereenheid 2 Opbouw van een computer
sneller beschikbaar voor berekeningen. Registers hebben namelijk een
kortere verbindingsweg met de ALU, de communicatie met registers is
eenvoudiger (geen read-, write- en readysignalen) en door de toepassing
van een speciale technologie zijn ze sneller toegankelijk. Deze technologie is duurder dan de gebruikelijke technologie voor geheugens, hetgeen een reden is om niet het hele geheugen op een dergelijke manier uit
te voeren.
FIGUUR 2.9
In blok 2 gaan we
verder in op de
bewerkingen van
de ALU.
Het datapad met ALU, operandregisters A en B en
algemene registers R1 t/m R4
Met de gegevens in de algemene registers voert de ALU (het V-vormige
blokje in figuur 2.9) de berekeningen uit die door de control unit worden
opgedragen. De bewerkingen die de ALU uitvoert zijn:
– rekenkundige bewerkingen, zoals optellen, aftrekken,
vermenigvuldigen en delen van twee getallen
– logische bewerkingen (bijvoorbeeld het vergelijken van waarden) en
– schuif- en rotatiebewerkingen.
De gegevens voor bewerkingen van de ALU zijn de reeds genoemde
operanden in de instructies.
Operandregisters
Als een bewerking van de ALU gewenst is, dan moet de ALU meestal met
twee waarden worden gevoed, bijvoorbeeld twee getallen die opgeteld
moeten worden. Hiervoor worden via de interne processorbus de twee
waarden doorgegeven vanaf de algemene registers aan registers die aan
de ingang van de ALU zijn geplaatst, de zogenaamde operandregisters
(registers A en B in figuur 2.9). De ALU voert de bewerking uit en plaatst
het resultaat in het algemene register waar het resultaat moet komen.
Speciale registers
Naast de genoemde zaken is in een microprocessor nog een aantal
registers te vinden met een speciale betekenis, de speciale registers. De
volgende registers zijn in het algemeen aanwezig (figuur 2.10):
– het instructieregister (IR)
– de program counter (PC)
– het operandadresregister (OAR)
– een stack pointer (SP)
– de databusbuffer en
– de adresbusbuffer.
OUN
65
De werking van computersystemen
Instructieregister
Het instructieregister bevat de instructie die op dat moment in de
processor wordt uitgevoerd. Via een busoperatie wordt een instructie
uit het geheugen opgehaald. De processor zal op het aangeven van het
readysignaal door het geheugen de instructie van de databus overnemen
en in het instructieregister zetten. Als deze instructie daar beschikbaar is,
kan de control unit deze decoderen (interpreteren) en de juiste acties in
het datapad opstarten.
Program counter
De program counter bevat het adres van de eerstvolgende instructie die
moet worden opgehaald. Als een instructie is afgerond, zal de control
unit het ophalen van de volgende instructie beginnen door een
busoperatie op te starten. Op de adresbus wordt hierbij de waarde van
de program counter gezet, zodat het geheugen de juiste locatie van deze
instructie weet. Als de instructie in het instructieregister is gezet, zal de
control unit de program counter zó wijzigen dat deze naar de volgende
instructie wijst.
Operandadresregister
De gegevens waarmee de processor moet werken, zijn opgeslagen in het
geheugen. Om deze gegevens in de processor beschikbaar te krijgen
moeten deze via een busoperatie in registers van de processor worden
geladen, hetzij via de algemene registers, hetzij direct naar de speciale
registers A en B van de ALU. De processor zal hiervoor het adres van
deze operanden op de adresbus beschikbaar stellen via het operandadresregister. Overigens wordt vaak ook het gewenste adres van de
operanden berekend door de ALU, met behulp van aanwijzingen en
waarden in de onderhavige instructie.
OPGAVE 2.6
Waarom is er maar één operandadresregister, terwijl er bij de meeste
bewerkingen twee operanden zijn?
Stack pointer
De stack wordt in
leereenheid 18
behandeld.
Databusbuffer
Bidirectionele
buffer
66
Het woord ‘buffer’
wordt vaak
gebruikt in de
betekenis van
‘tijdelijke
opslagplaats’.
Een ander speciaal register, ook gebruikt voor adressen, is de stack
pointer. De stack pointer is een adresregister dat het adres bevat van de
direct toegankelijke geheugenlocatie op de stack. De stack is een blok in
het geheugen waar gegevens op een heel directe manier uit gelezen en in
geschreven kunnen worden.
De gegevens die de processor op de databus zet, moeten altijd
gedurende een bepaalde tijd blijven staan, om zo het geheugen of
een I/O-controller de gelegenheid te geven deze over te nemen. Omdat
er in de processor vaak vele andere acties plaatsvinden, moeten deze
gegevens tijdelijk worden bewaard in een register dat ook zichtbaar is
voor de databus. Dit gebeurt in de databusbuffer (zie figuur 2.10).
Omgekeerd moeten de gegevens vanaf de databus een bepaalde tijd
beschikbaar zijn om de interne registers van de processor de gelegenheid
te geven deze over te nemen. Ook hiervoor wordt de databusbuffer
gebruikt. Omdat de databusbuffer het transport van gegevens in twee
richtingen moet ondersteunen, is het een bidirectionele buffer.
OUN
Leereenheid 2 Opbouw van een computer
Ook voor de adresbus moet er een mogelijkheid zijn om de gegevens
vast te houden terwijl de processor met andere zaken bezig is. Hiervoor
wordt de adresbusbuffer gebruikt. De adresbusbuffer is in tegenstelling tot
de databusbuffer een unidirectionele buffer. Vanuit de processor kunnen
er alleen adressen naar de adresbus worden geschreven. De processor
zal nooit een adres van de adresbus overnemen.
Adresbusbuffer
Unidirectionele
buffer
FIGUUR 2.10
Schematische weergave van het datapad met de
belangrijkste (speciale) registers
In figuur 2.10 ziet u de opbouw van het datapad zoals dat tot nu toe is
behandeld. U ziet hier dat de speciale registers zijn toegevoegd aan
figuur 2.9. Merk op dat de registers PC, OAR en SP adressen bevatten die
op de adresbus geplaatst moeten kunnen worden. Deze adressen
kunnen afkomstig zijn van een ALU-berekening of uit het geheugen, via
de databus. Het instructieregister IR bevat geen adres maar een
instructiecode. Dit register is daarom niet verbonden met de adresbus (in
feite is het verbonden met de control unit van de processor).
3
Intern geheugen,
werkgeheugen of
voorgrondgeheugen
Zie leereenheid 1.
Het geheugen
In deze paragraaf gaan we in op de tweede hoofdcomponent van de
computer in het schema van figuur 2.5: het geheugen. We doelen hier in
eerste instantie op het direct toegankelijke, zogenaamde interne geheugen,
ook wel aangeduid met werkgeheugen of voorgrondgeheugen. In paragraaf
3.3 en 3.4 komen ook andere typen geheugens aan bod. In moderne computers is het werkgeheugen gerealiseerd door middel van elektronische
schakelingen op chips (zie figuur 2.11), maar het gebruikte medium is in
feite niet relevant en kan per computergeneratie verschillen.
FIGUUR 2.11
Een geheugenmodule (256 MB) met daarop de
geheugenchips
OUN
67
De werking van computersystemen
3.1
HET STORED-PROGRAMCONCEPT
Het geheugen in een computer is de opslagplaats voor gegevens. De
gegevens waar een programma mee moet werken, staan in dit geheugen.
Ook zullen resultaten van bewerkingen in het geheugen worden bewaard. Er zijn in een computer ook nog andere opslagplaatsen voor
gegevens te vinden, bijvoorbeeld de registers in de processor. Registers
zijn echter maar in kleine aantallen in een processor te vinden. De reden
hiervoor is dat deze vorm van opslag relatief duur is. Daar staat echter
tegenover dat registers veel sneller te benaderen zijn dan het geheugen.
Stored-programconcept
In blok 2 gaan we
uitvoerig in op de
binaire representatie.
Harvardarchitectuur
Von Neumannarchitectuur
Zie leereenheid 1.
In paragraaf 2.1 is aangegeven dat programma-instructies in de
computer door rijtjes van de symbolen 0 en 1 worden weergegeven.
Anderzijds zijn gegevens in de computer vaak getallen, en het is bekend
dat getallen in het tweetallig stelsel (binair) eveneens weergegeven
worden met uitsluitend de symbolen 0 en 1. Hetzelfde geldt overigens
voor alle andere soorten gegevens. Vanuit het oogpunt van representatie
is er dus geen fundamenteel verschil tussen gegevens en instructies. Met
de constatering dat gegevens en instructies op dezelfde manier gerepresenteerd kunnen worden, is het idee ontstaan om gegevens en instructies
door elkaar in het geheugen van de computer op te slaan. We noemen
dat, zoals eerder vermeld, het stored-programconcept.
In één van de eerste computers, de ENIAC, werden voor instructies en
gegevens aparte geheugens gebruikt. Deze fysieke scheiding van
instructies en gegevens in een computer wordt aangeduid met het
begrip Harvard-architectuur. Deze architectuur wordt nog steeds bij
controllers toegepast zoals we later in deze cursus zullen zien. Voor de
mainframes en later de pc’s kwam hier met de komst van de EDSAC
verandering in. Voor het eerst werd voor de instructies en de gegevens
één en hetzelfde geheugen gebruikt. Instructies konden net als gegevens
in het geheugen worden geschreven en uit het geheugen worden
gelezen. Deze manier van bouwen van computersystemen wordt de Von
Neumannarchitectuur genoemd.
Computersystemen op basis van de Von Neumannarchitectuur hebben
de volgende eigenschappen:
– Ze bevatten in ieder geval de volgende componenten: een control unit,
een datapad, een geheugen en in- en uitvoercomponenten.
– Programma’s en gegevens delen hetzelfde geheugen en worden
via dezelfde kanalen tussen de systeemonderdelen getransporteerd
(databus).
– De control unit en het datapad worden gewoonlijk gecombineerd in
een centrale verwerkingseenheid, de processor.
– Een programma bestaat uit instructies die na elkaar worden uitgevoerd (sequentieel); een program counter geeft aan welke instructie
als volgende dient te worden uitgevoerd.
De genoemde eigenschappen van de Von Neumannarchitectuur zijn
juist die zaken die in deze leereenheid terug te vinden zijn in de
componenten van een computersysteem. We zijn er impliciet van
uitgegaan dat de computer zoals wij die beschouwen, op de Von
Neumannarchitectuur gebaseerd is. Gelukkig gaat dat op voor de meeste
moderne computers. Voor de meeste toepassingen blijkt deze
architectuur namelijk het eenvoudigst en efficiëntst te zijn.
68
OUN
Leereenheid 2 Opbouw van een computer
De Von Neumannarchitectuur heeft echter ook enkele nadelen:
– De verbindingsweg tussen het geheugen en de processor wordt een
vertragende factor. Instructies moeten steeds op gegevens wachten die
de bus gebruiken, en andersom. We zouden kunnen spreken van een
fileprobleem op de snelweg in de computer. Dit verschijnsel wordt de
Von Neumannbottleneck genoemd.
– De instructies worden altijd na elkaar verwerkt, ook al zijn ze niet
afhankelijk van elkaar. Als instructies niet van elkaar afhankelijk zijn,
dan zouden ze in principe gelijktijdig, ‘parallel’, kunnen worden uitgevoerd. In de Von Neumannarchitectuur is dit slechts beperkt mogelijk.
De genoemde nadelen hebben geleid tot een andere categorie computersystemen, namelijk systemen met parallelle processoren. In dergelijke
systemen zijn verscheidene processoren aanwezig, die samen een
programma verwerken. Hierdoor is het mogelijk om een aanzienlijke
snelheidswinst te behalen. De huidige pc beschikt in het algemeen over
meerdere processoren (al dan niet samengevoegd in één behuizing) en
hier heeft men dus al te maken met parallelle verwerking.
Von Neumannbottleneck
bottleneck =
flessenhals
Parallelle
processoren
Hier moeten we wel opmerken dat de huidige programmeerstijl voornamelijk sequentiële
programma’s oplevert. Dat zijn programma’s waarvan de instructies na elkaar worden
uitgevoerd. Een parallelle machine vereist de ontwikkeling van programmatuur die zonder
tussenkomst van een programmeur een serieel geprogrammeerd programma ontleedt en
omvormt tot een programma waarvan de onderdelen parallel kunnen worden verwerkt.
Deze ontwikkeling staat nog in de kinderschoenen en is wellicht de grootste uitdaging in
de nabije toekomst, niet in het minst vanwege de enorme hoeveelheid bestaande ‘seriële
programmatuur’.
3.2
DE OPBOUW VAN HET GEHEUGEN
Het geheugen van de computer wordt gebruikt voor de opslag van de
instructies waaruit het programma bestaat en de gegevens waarmee het
programma moet werken, zodat de microprocessor deze op kan halen en
gebruiken. Het geheugen is hiervoor ingedeeld in een aantal locaties met
elk hun eigen adres. De microprocessor kan via de adresbus aangeven
welke locatie hij wil benaderen om een gegeven of instructie te lezen of
te schrijven (figuur 2.12a). De adressen vormen een eindig lineair bereik,
waarin gegevens en instructies door elkaar, in aaneengesloten segmenten, zijn opgeslagen (figuur 2.12b).
Bit
‘Bit’ komt van het
Engelse ‘binary
digit’ (binair cijfer).
Byte
‘Byte’ komt van ‘by
eight’ (per acht).
Geheugenelement
Woord
Engels: ‘word’
Het geheugen bestaat uit elementaire geheugencellen. Elk van deze
elementaire geheugencellen kan één bit aan informatie opslaan. Een bit
is de kleinst mogelijke hoeveelheid informatie. De waarde van een bit
wordt aangegeven met 0 of 1. Bits worden steeds in groepen van acht
samengenomen, die we bytes noemen. Een byte kan 256 (namelijk 28)
waarden aannemen. Een byte is de kleinste hoeveelheid informatie in
het geheugen die afzonderlijk geadresseerd kan worden. Een
opslagplaats van één byte zullen we daarom een geheugenelement
noemen. Bytes worden vaak nog verder samengenomen in groepen van
2, 4, 6 of 8. Een dergelijke groep van meerdere bytes wordt een woord
genoemd. De hoeveelheid informatie in een woord hangt af van het
aantal bytes per woord, en dat verschilt van computer tot computer.
OUN
69
De werking van computersystemen
FIGUUR 2.12
Twee voorstellingen van het geheugen: als een eindig
aantal adresseerbare opslagplaatsen voor lees- en
schrijfoperaties (a), en als een rij elementen waarin
zowel gegevens als instructies opgeslagen zijn (b)
OPGAVE 2.7
Stelt u zich eens voor dat het geheugen in figuur 2.12 rechts, in afwijking
van het stored-programconcept, opgedeeld zou zijn in twee stukken: één
voor instructies en één voor gegevens. Waarom zou deze oplossing
minder efficiënt kunnen zijn?
Adresbereik
Het adresbereik van een computer is het lineair aaneengesloten bereik
van geheugenelementen dat een microprocessor kan adresseren. Het
adresbereik is afhankelijk van de breedte (het aantal lijnen ofwel bits)
van de adresbus.
Byteadressen en
woordadressen
Computersystemen kunnen werken met twee soorten adressen:
byteadressen en woordadressen. Met een byteadres wordt een byte als
eenheid van informatie in het geheugen geadresseerd. Met een woordadres wordt een groter geheel, een woord, als eenheid geadresseerd.
De meeste computersystemen werken met byteadressen; elk adres op de
adresbus verwijst naar een byte aan informatie, ook als de breedte van
een woord in het desbetreffende computersysteem meer dat één byte is.
Dit komt omdat de meeste computersystemen, behalve met woorden,
ook met bytes bewerkingen kunnen uitvoeren. Als een woord in een
bepaald computersysteem bestaat uit 4 bytes, kan de informatie van
een woord als 4 aparte bytes worden benaderd. Ook kan het woord
als geheel worden benaderd, door het adres van het eerste byte van
het woord op te geven. Het geheugen zal in dat geval het gehele woord
beschikbaar stellen.
Kilobyte (kB)
Bij het kwantificeren van informatie worden vaak eenheden gebruikt die
niet vanzelfsprekend zijn. Een hoeveelheid informatie van 1 kilobyte (kB)
is niet precies 1000 bytes, zoals men zou verwachten, maar 1024 bytes
(210 = 1024). Ook een megabyte (MB) is niet precies 1 miljoen bytes, maar
1 048 576 bytes (220 = 1024 × 1024), en een gigabyte (GB) is niet 1 miljard
bytes, maar 1 073 741 824 bytes (230 = 1024 × 1024 × 1024).
Megabyte (MB)
Gigabyte (GB)
3.3
EEN TAXONOMIE VOOR GEHEUGENS
Niet uit (of in) elk geheugen in een computer kan worden gelezen
(of geschreven). Ook bestaan er geheugens die op een andere manier
geadresseerd worden dan hierboven aangegeven is. Op basis van deze
twee criteria kunnen geheugens worden ingedeeld in vier categorieën.
70
OUN
Leereenheid 2 Opbouw van een computer
Taxonomie
Het indelen van verwante zaken op basis van gemeenschappelijke
kenmerken wordt aangeduid met de term taxonomie. Taxonomieën
worden in vele takken van wetenschap gebruikt om verschijnselen te
classificeren, om ze op die manier gemakkelijker te kunnen beschrijven
en verklaren.
Direct toegankelijk
Sequentieel
toegankelijk
Voor het lezen en schrijven kunnen twee zinvolle groepen worden
gemaakt: geheugens die alleen te lezen zijn en geheugens die zowel
beschrijfbaar als uitleesbaar zijn. Geheugens waarin alleen kan worden
geschreven, hebben weinig zin in praktische systemen. Ze worden dan
ook niet in de taxonomie opgenomen. Ook voor het adresseren van
geheugens zijn twee groepen mogelijk: direct toegankelijk en sequentieel
toegankelijk. Bij direct toegankelijke geheugens kan een willekeurig
geheugenelement, na aanbieden van het corresponderende adres, direct
worden benaderd, waarbij de toegangstijd onafhankelijk is van het
adres. Een voorbeeld van deze groep geheugens is het interne geheugen
van een computer uit paragraaf 3.2. De geheugenlocaties van een
sequentieel toegankelijk geheugen kunnen alleen worden benaderd door
het geheugen vanaf het begin door te lopen tot de gewenste locatie is
bereikt. Een voorbeeld hiervan is de magneetband. Een bepaald stukje
informatie op de band kan alleen worden benaderd door de band vanaf
het begin door te spoelen naar de gewenste locatie. Vroeger werden
magneetbanden – denk aan spoelen of cassettes – vaak gebruikt voor het
bewaren van grote hoeveelheden informatie. Door de beschikbaarheid
van beschrijfbare cd’s, en doordat ruimte op de harde schijf steeds
goedkoper wordt, gebeurt dat nu steeds minder.
direct
toegankelijk
sequentieel
toegankelijk
lezen en
schrijven
RAM
harde schijf
memory stick
magneetband
alleen
lezen
ROM
DVD, CD-rom
FIGUUR 2.13
Voorgrondgeheugen
RAM
ROM
ROM-geheugen is
niet vluchtig
Indeling van geheugens op basis van toegankelijkheid
en beschrijfbaarheid
In figuur 2.13 is de indeling van geheugens op basis van de taxonomie
te zien met een aantal voorbeelden. In de figuur zijn twee soorten
geheugens genoemd die vallen in de categorie voorgrondgeheugen, zoals
beschreven in de vorige paragraaf: RAM (‘Random Access Memory’,
ofwel willekeurig toegankelijk geheugen) en ROM (‘Read-Only Memory’,
ofwel alleen-lezen-geheugen). Afgezien van het feit dat in ROMgeheugen niet geschreven kan worden, onderscheidt het zich bovendien
van RAM-geheugen doordat het niet vluchtig is: de informatie blijft
bewaard, ook als de computer uitgezet wordt. Informatie in RAMgeheugen gaat in dat geval namelijk verloren.
Vluchtigheid zou een derde criterium voor classificatie kunnen zijn, naast toegankelijkheid
en beschrijfbaarheid. In figuur 2.13 is dit onderscheid weggelaten om het schema
overzichtelijk te houden.
OUN
71
De werking van computersystemen
Achtergrondgeheugen
De overige voorbeelden in de figuur vallen in de categorie achtergrondgeheugen. Dit zijn opslagplaatsen voor niet-vluchtige gegevens die strikt
genomen buiten de computer als systeem vallen, zoals de harde schijf en
diskettes. Ook de cd-rom (‘rom’ weer van ‘read-only memory’) valt daaronder, net als de dvd (‘digital versatile disk’). Beschrijfbare cd’s, genaamd
cd-w (‘w’ van ‘writeable’), horen in het vakje linksboven thuis, al zijn ze
voor schrijven alleen sequentieel toegankelijk. Van sequentiële geheugens
die alleen leesbaar zijn, is geen praktisch voorbeeld te noemen.
Leestekst
Tot het begin van de jaren tachtig werden ponsband en ponskaarten nog als opslagmedium
gebruikt. Na het inponsen van de gegevens (in de vorm van gaatjespatronen) kon deze
vorm van sequentieel toegankelijk geheugen alleen nog maar gelezen worden. Ponsband
en ponskaarten zouden dus wel in het vakje rechtsonder passen.
OPGAVE 2.8
Vaak wordt ROM als ‘tegenstelling’ gebruikt voor RAM. Geef uw mening
over deze tegenstelling. Denk daarbij ook aan de betekenis van beide
acroniemen.
BIOS
De classificatie in verschillende categorieën houdt verband met de
functionaliteit, dus het soort toepassingen waar de geheugens voor
ingezet worden. In een computer wordt voor het interne geheugen
zowel RAM- als ROM-geheugen gebruikt. Het RAM-geheugen wordt
echter gebruikt voor de gebruikersprogramma’s en het besturingssysteem, en ook voor de gegevens waarmee gewerkt wordt. Het ROMgeheugen bevat daarentegen een speciaal programma dat altijd
aanwezig moet zijn om de computer op te kunnen starten. Na het
aanzetten van de computer zal deze beginnen met het uitvoeren van de
instructies die in het ROM-geheugen zijn opgenomen. Dit programma
wordt in personal computers aangeduid met BIOS (Basic Input-Output
System). Het is een programma dat elementaire routines bevat voor de
invoer- en uitvoerapparaten. Daarnaast bevat het programma de nodige
functionaliteit om het systeem te testen na het aanzetten van de
computer en om het besturingssysteem van de harde schijf of diskette te
halen en te starten (‘booten’).
Leestekst
Voor de instellingen van de hardware die wel gewijzigd moeten kunnen worden en dus
niet in ROM-geheugen staan, maakt het BIOS gebruik van een klein RAM-geheugen. De
stroom voor dit geheugen wordt geleverd door een batterij. Hierdoor blijven de
instellingen toch bewaard als de netspanning van de computer af is gehaald. Als de batterij
defect raakt, moeten telkens bij het opstarten alle instellingen van de computer opnieuw
worden ingevoerd.
3.4
VERSCHILLEN IN CONSTRUCTIE EN DE GEHEUGENHIËRARCHIE
Behalve de eerdergenoemde indeling volgens de taxonomie is er nog
een andere mogelijkheid. Op grond van hun eigenschappen kunnen
geheugens namelijk geplaatst worden in een reeks die we
de geheugenhiërarchie noemen. Het uitgangspunt daarbij is de microprocessor. Naarmate men verder van de processor af gaat, worden de
geheugens
– langzamer,
– groter,
– goedkoper, en
– minder vluchtig.
72
OUN
Leereenheid 2 Opbouw van een computer
Geheugenhiërarchie
In figuur 2.14 hebben we deze geheugenhiërarchie schematisch
weergegeven.
CPU
Niveau 1
Niveau 2
...
Niveau n
grootte van het geheugen
FIGUUR 2.14
Schematische weergave geheugenhiërarchie
In figuur 2.14 wordt de afstand aangegeven door het niveau (Engels:
level). Zoals we later zullen zien, spreekt men bijvoorbeeld van een
L(evel)1-geheugen als men het over een bepaald geheugen in de
computer heeft. Figuur 2.14 is een abstractie, figuur 2.15 geeft een
specifieke concrete invulling van deze abstractie.
FIGUUR 2.15
De geheugenhiërarchie
Cachegeheugen
In de processor zelf worden gegevens opgeslagen in registers. Registers
zijn uitgevoerd als het snelste type elektronisch geheugen dat in een
computer te vinden is. Tussen de processor en het interne geheugen
is het cachegeheugen te vinden. Dit geheugen bevat de meest recent
gebruikte gegevens en instructies, die naar verwachting relatief snel
opnieuw nodig zullen zijn. Door deze data in een snel geheugen te
houden, kan de computer beter presteren. Het cachegeheugen is trager
dan de registers, maar veel sneller dan het interne geheugen. Het interne
geheugen zelf is geïmplementeerd als relatief traag, maar goedkoop
elektronisch geheugen.
Virtueel geheugen
Weer lager in de hiërarchie komt dan het achtergrondgeheugen, te
beginnen met de harde schijf. De harde schijf wordt met name gebruikt
voor het opslaan van bestanden op de middellange termijn (dagen tot
maanden). Voor de volledigheid vermelden we nog het zogenaamde
virtuele geheugen, dat tussen intern geheugen en harde schijf gedacht
kan worden. In feite gaat het hier om een deel van de harde schijf dat
fungeert als een schijnbare uitbreiding van het interne geheugen.
OUN
73
De werking van computersystemen
Het heeft uiteraard niet de snelheid van intern geheugen, maar door een
simulatieprogramma kunnen de gegevens in het virtuele geheugen op
precies dezelfde manier geadresseerd worden als die in het interne
geheugen. Beheer en aansturing van het virtuele geheugen is een taak
van het besturingssysteem.
Back-upgeheugen
Na de harde schijf komt in de geheugenhiërarchie het back-upgeheugen:
de opslag voor de lange termijn (jaren). Voor dit geheugen komen
meerdere media in aanmerking, bijvoorbeeld optische schijven zoals
dvd en cd-rom, arrangementen van goedkope harde schijven (RAID) en
magneetbanden, alle media al dan niet via een netwerk met de computer
verbonden. In tabel 2.1 zijn de verschillende soorten geheugens met hun
karakteristieke waarden voor toegangstijd, capaciteit en kosten nog eens
op een rijtje gezet.
Deze tabel is slechts
een momentopname (2009). Hij
is bedoeld ter
illustratie en hoeft
niet van buiten
geleerd te worden.
Toegangstijd
TABEL 2.1
Kengetallen van de geheugenhiërarchie, bij benadering
soort geheugen
toegangstijd
capaciteit
kosten/MB
registers
cache in chip
intern geheugen
memory stick (flash)
harde schijf
5 - 10 ns
10 - 25 ns
60-120 ns
10 - 25 μs
2 - 15 ms
< 64 woorden
< 4 – 12 MB
< 1 GB/chip
< 16 GB
< 1000 GB
$30-$50
$15-$20
$0.05
$0.0014
$0.0001
In deze tabel is de toegangstijd gebruikt als maat voor de snelheid van het
soort geheugen. De toegangstijd van een geheugen is de tijd die verloopt
tussen het aanbieden van het adres van een geheugenelement en het
moment waarop de inhoud van dat geheugenelement in de processor
beschikbaar is.
OPGAVE 2.9
Op welke plaats in de geheugenhiërarchie zou u een dvd-schijf zetten
die voor dataopslag wordt gebruikt? Motiveer uw antwoord.
4
Invoer en uitvoer
In deze paragraaf wordt de laatste component uit het schema in figuur
2.5 behandeld: de I/O-controller. Over de systeemgrens van de processor
heen kijkend gaan we ook kort in op de daarop aangesloten randapparaten. Eigenlijk is dat in paragraaf 3.3 en 3.4 al gebeurd: de opslag
op diverse vormen van achtergrondgeheugen, zoals harde schijf en
cd-rom, wordt in feite gerealiseerd door randapparatuur, aangestuurd
door I/O-controllers. Vanwege hun functie als opslagmedium zijn ze
behandeld in de paragraaf over geheugen. Hier beperken we ons tot de
overige randapparaten.
74
OUN
Leereenheid 2 Opbouw van een computer
FIGUUR 2.16
4.1
Memory-mapped
I/O
De I/O-controllers worden ondergebracht in de chipset
waarvan u hierboven een afbeelding ziet.
METHODEN VOOR IN- EN UITVOER
De in- en uitvoer van de computer, anders dan voor tijdelijke opslag,
geschiedt via de randapparaten, bijvoorbeeld het beeldscherm, de
printer, de muis en het toetsenbord. Deze randapparaten zijn via de I/Ocontrollers aangesloten op de systeembus. De I/O-controller verzorgt de
aanpassing van de vaak zeer specifieke interface van het randapparaat
naar de algemenere systeembus. Hierdoor kan de microprocessor (via de
systeembus en I/O-controllers) met de randapparaten communiceren om
er gegevens naartoe te schrijven of vandaan te halen.
Voor deze communicatie doen de ingangen van de controllers zich voor
als geheugenlocaties. Gezien vanuit de processor zijn alle aansluitingen
op de systeembus gelijk waardoor de processor hiermee op dezelfde
manier kan omgaan als met geheugen. Op een controller is dus een
aantal registers of een stukje RAM-geheugen te vinden, waaraan een
bepaald adresbereik toegewezen is.
De grootte van het geheugen dat een I/O-controller gebruikt, verschilt
per apparaat. Een seriële poort om een modem op aan te sluiten, heeft
een controller met een adresbereik van slechts enkele bytes. De in of uit
te voeren data worden in dit geval namelijk byte voor byte verstuurd of
ontvangen. De controller die het beeldscherm aan moet sturen, heeft
echter een veel groter adresbereik, omdat voor de opbouw van één
enkel grafisch beeld al minimaal honderden kilobytes nodig zijn.
We kunnen de registers van een I/O-poort dus ook als een stukje
geheugen opvatten. Zoals we in paragraaf 3.2 zagen, zijn er voor het
lezen van en schrijven naar een geheugen altijd twee gegevens nodig
namelijk het adres (1) en de data (2) zelf. Het adres moet uniek zijn. De
meest voor de handliggende manier om data voor I/O te adresseren is om
de geheugens van de I/O-controllers en het intere geheugen als één
continue reeks op te vatten. Het adresbereik van het interne geheugen
loopt dan bijvoorbeeld van 0 tot X en het adresbereik van de I/O van X
tot Y, zie figuur 2.17 a. Deze manier om I/O te adresseren noemen we
memory-mapped I/O.
OUN
75
De werking van computersystemen
a
b
adres
soort
adres
ROM
Y
I/O
I/O-adresbereik
soort
ROM
Y
I/O
geheugenadresbereik
RAM
soort
I/O
RAM
0
I/O
X
adres
Z
I/O
RAM
RAM
ROM
0
I/O-mapped I/O
Zie paragraaf 1.4.
Leestekst
ROM
I/O-instructions
memorymapped I/O
FIGUUR 2.17
0
Memory-mapped I/O (a) versus I/O-instructions (b)
Bij I/O-instructions worden er voor de I/O-controllers en het interne
geheugen aparte adresbereiken gebruikt, elk beginnend bij 0 (figuur
2.17b). Dit betekent dat een geheugenlocatie in het interne geheugen
hetzelfde adres kan hebben als een geheugenlocatie in een I/O-controller.
Om aan te geven dat een adres in de I/O-controller bedoeld is, en niet in
het interne geheugen, is de controlbus van twee extra lijnen voorzien:
IOR (de I/O-readlijn) en IOW (de I/O-writelijn). De processor zal één van
deze controlelijnen activeren als hij met een I/O-controller wil
communiceren. De eerdergenoemde read- en writelijnen van de
controlbus voor de communicatie met het geheugen worden in dit geval
aangeduid met respectievelijk MEMR (‘memory read’) en MEMW
(‘memory write’).
De keuze voor de wijze van het adresseren van de I/O is arbitrair. I/O-instructions bieden
een betere bescherming tegen het rechtstreeks communiceren met I/O-apparaten door
gebruikersprogramma’s. Bij moderne besturingssystemen communiceren deze programma’s met de I/O-apparaten via de systemcalls van de application programmers interface
(API) van het besturingsysteem en niet rechtstreeks. Ook wordt bij I/O-instructions de juiste
volgorde van de commanda’s naar en van het I/O-apparaat bewaakt. Bij memory-mapped
I/O kan de cache deze volgorde verstoren. Moderne processoren ondersteunen overigens
beide adresseringsmethoden.
4.2
UITEENLOPENDE EISEN VOOR RANDAPPARATEN
Randapparaten zijn er in vele soorten. Elk randapparaat heeft zijn eigen
kenmerken. Het is de taak van de I/O-controllers om aan de ene kant
efficiënt en correct te communiceren met de microprocessor via de
systeembus, en aan de andere kant rekening te houden met de typische
beperkingen en eigenaardigheden van het randapparaat. In tabel 2.2
karakteriseren we diverse randapparaten aan de hand van
76
OUN
Leereenheid 2 Opbouw van een computer
– het gedrag: verzorgt het randapparaat invoer, uitvoer, of beide? Hier
gaat het dus om de richting van de communicatie. Soms kan het ook van
belang zijn of het om geheugen gaat (opslag), omdat dan de communicatie minder afhankelijk is van externe invloeden.
– de communicatiepartner: wordt er via dit randapparaat met een
andere machine gecommuniceerd of met een mens? In het laatste geval
moet namelijk een conversieslag plaatsvinden naar of van een voor de
mens begrijpelijke vorm van data.
– de topsnelheid van gegevensuitwisseling: wat is de piekbelasting van
het apparaat in kilobytes per seconde (kB/s) waarmee met de computer
kan worden gecommuniceerd?
Ter illustratie
TABEL 2.2
Karakteristieken van diverse randapparaten
randapparaat
gedrag
partner
snelheid (kB/s)
toetsenbord
muis
steminvoer
scanner
audio-uitvoer
regeldrukker
laserprinter
grafisch scherm
modem
netwerk/LAN
dvd speler
magneetband
harde schijf
invoer
invoer
invoer
invoer
uitvoer
uitvoer
uitvoer
uitvoer
in- en uitvoer
in- en uitvoer
invoer (opslag)
in- en uitvoer (opslag)
in- en uitvoer (opslag)
mens
mens
mens
mens
mens
mens
mens
mens
machine
machine
machine
machine
machine
0.005
0.02
10
400
90
1
200
100 000
2-8
10000 – 100000
54 000
2000
70 000-300 000
Uit tabel 2.2 valt af te lezen dat een toetsenbord een invoerrandapparaat
is waarmee de mens met de computer communiceert. Een ervaren
typiste haalt zo’n 300 aanslagen per minuut (5 per seconde). Daar staat
tegenover dat een harde schijf in een computer een randapparaat is dat
bedoeld is voor opslag van gegevens en programma’s, waarbij de
communicatiepartner typisch een machine is, omdat het resultaat van
de in- of uitvoer niet voor de mens leesbaar is. De snelheid van dit
randapparaat kan wel 100 000 kB/s zijn, mede dankzij het feit dat het
gegevenstransport niet afhankelijk is van externe, eventueel vertragende,
invloeden, of de beperkte communicatiesnelheid van de mens.
OPGAVE 2.10
De vermelde snelheid in de tabel, namelijk 100 000 kB/s voor een grafisch
scherm, treedt toch op bij de mens als communicatiepartner. Kunt u dat
verklaren?
4.3
COMMUNICATIE TUSSEN PROCESSOR EN I/O-CONTROLLER
In de vorige paragraaf hebben we gezien dat de eisen die randapparaten
aan de mogelijkheden voor invoer en uitvoer stellen, onderling sterk
verschillen. Het is onwaarschijnlijk dat één algemene oplossing aan deze
grote verschillen tegemoet kan komen. Voor de manier waarop de communicatie met de I/O-controller en de rest van de computer wordt gestart
en afgehandeld, zijn dan ook verschillende methoden ontwikkeld.
OUN
77
De werking van computersystemen
Protocol
Zie paragraaf 1.3.
Handshaking
Voordat we ingaan op de methoden voor communicatie tussen de
processor en de I/O-controller, gaan we in op de wijze waarop in het
algemeen de componenten in een computer met elkaar communiceren.
In een computer worden gegevens tussen systeemcomponenten uitgewisseld. Eén manier om dit te doen is door de bestemming voor de
gegevens aan te geven en de gegevens gewoon op de databus te zetten.
Als er verder geen voorzorgsmaatregelen worden genomen, kunnen er
bij deze manier van communiceren echter gegevens verloren gaan. Hoe
weet de afzender immers of de gegevens ook daadwerkelijk
overgenomen zijn? De geadresseerde kan namelijk ergens anders mee
bezig zijn, waardoor deze de gegevens op de databus niet ziet. Om dit
probleem te ondervangen wordt gebruikgemaakt van de
eerdergenoemde controlelijnen. De communicatie over dergelijke lijnen
vindt in digitale systemen vaak plaats volgens bepaalde afspraken, een
protocol, dat we handshaking noemen.
Handshaking maakt het mogelijk om het moment waarop de gegevens
worden overgedragen te synchroniseren en om te controleren of
gegevens daadwerkelijk op de plaats van bestemming aankomen.
Bij handshaking wordt elke actie van één van de partijen in de
communicatie bevestigd door een tegenactie voordat er verder wordt
gegaan. De communicatie zou hierbij als volgt kunnen verlopen.
Zender:
Ontvanger:
Zender:
Ontvanger:
‘Ik wacht om gegevens te versturen.’
‘Ik ben klaar om gegevens te ontvangen.’
‘Ik heb de gegevens verstuurd.’
‘Ik heb de gegevens ontvangen en overgenomen.’
De berichten in het bovenstaande voorbeeld zijn dan in de computer
geïmplementeerd door de controlelijnen van de controlbus te activeren
of te deactiveren.
Polling
De eenvoudigste methode voor communicatie tussen processor en I/Ocontroller is polling. Bij deze methode leest de processor periodiek een
register met statusbits van de I/O-controller om te bepalen of de volgende
invoer- of uitvoeractie door de processor kan worden gestart. Hierbij kan
het gaan om een invoeractie, het statusregister geeft dan aan dat een
invoerapparaat gegevens voor de processor aanbiedt. Ook kan het
statusregister aangeven dat de laatste schrijfopdracht van de processor
naar een randapparaat is afgerond en dat de processor de volgende
schrijfopdracht uit kan voeren. Polling betekent een enorme extra
belasting van de processor. De processor is in het algemeen veel sneller
dan het randapparaat en zal dus erg vaak het statusregister lezen zonder
dat de I/O-controller iets te melden heeft. Vergelijk deze situatie met elk
kwartier de telefoon op te moeten nemen om te controleren of er iemand
aan de lijn is.
De extra belasting die polling oplevert, was voor de ontwerpers
aanleiding om met een mechanisme te komen waarbij de momentane
activiteit van de processor wordt onderbroken als een I/O-controller een
wijziging in de status door wil geven. Elk kwartier de telefoon op
78
OUN
Leereenheid 2 Opbouw van een computer
Interrupt
Interrupt service
routine
moeten nemen is niet de situatie die u kent. De telefoon gaat gewoon
over als iemand belt. U legt dan weg waar u mee bezig was, neemt de
telefoon op en handelt het gesprek af. Bij de computer noemen we dat
het afhandelen van een interrupt. Een interrupt onderbreekt het lopende
programma in de processor. De processor rondt dan de instructie af
waar hij mee bezig was en voert dan een procedure (een klein apart
programma) uit om de interrupt af te handelen. Deze procedure wordt
wel de interrupt service routine (ISR) genoemd. Na het uitvoeren van de
ISR zal de processor weer verdergaan met het programma dat werd
uitgevoerd voordat de interrupt optrad.
FIGUUR 2.18
Interruptlijn (INT)
Interruptacknowledgelijn
(INTA)
Kortom, interrumperen door randapparaten vergt minder (kostbare) tijd
van de microprocessor dan het pollen van deze apparaten door de
processor.
Het interrumperen van de processor gebeurt door middel van een
aparte lijn van de controlbus, de interruptlijn (INT). Via een andere lijn,
de interrupt-acknowledgelijn (INTA) geeft de processor aan het randapparaat door dat met de uitvoering van de ISR is begonnen, waarbij
het handshakingprotocol wordt gevolgd. In figuur 2.18 is deze situatie
weergegeven voor één I/O-controller, waarbij voor de duidelijkheid de
beschreven lijnen buiten de controlbus getekend zijn. In een realistische
computer zullen altijd meerdere randapparaten de processor via interrupts willen onderbreken. De extra coördinatie die daarbij noodzakelijk
is, valt echter buiten het bestek van deze cursus.
4.4
Direct memory
access (DMA)
Onderbreking van de processor door interrupts
TRANSPORT VAN GEGEVENS TUSSEN RANDAPPARAAT EN GEHEUGEN
De communicatie tussen randapparaat en processor verloopt via polling
of via een interruptmechanisme. Deze technieken werken het beste bij
een randapparaat dat gegevens met een lage snelheid uitwisselt. Beide
leggen de last van het transport van gegevens bij de processor. Bij een
hogere transmissiesnelheid is er echter een betere methode: directe
geheugentoegang van een randapparaat tot het geheugen. Bij deze
methode worden nog steeds interrupts gebruikt, maar deze geven alleen
aan dat een transport van gegevens tussen I/O-controller en geheugen is
begonnen of afgerond. Het transporteren van de gegevens zelf geschiedt
niet langer onder besturing van de processor. Deze techniek wordt
aangeduid met direct memory access (DMA). In figuur 2.19 is het gebruik
van deze techniek schematisch weergegeven in het geval van gegevenstransport van en naar de harddiskcontroller (HDC, de I/O-controller voor
het diskettestation).
OUN
79
De werking van computersystemen
controlebus
adresbus
databus
microprocessor
geheugen
HDC
BR
BG
FIGUUR 2.19
harde schijf
Snelle overdracht van data tussen geheugen en I/Obouwsteen door direct memory access (DMA)
Om zowel een I/O-controller als de processor toegang te geven tot het
geheugen moeten beide de controle kunnen hebben over de systeembus.
Beide moeten de controlesignalen voor het geheugen kunnen bedienen
en adressen op de adresbus kunnen zetten. Als meer dan één component
dit soort bevoegdheden op de systeembus krijgt, dan wordt er
gesproken van meerdere bus masters in een systeem. Tot nu toe was er
slechts één bus master, de processor. Nu kan een I/O-controller ook als
bus master optreden. Een systeemcomponent die nooit de controle over
de systeembus kan krijgen, is een bus slave. Een voorbeeld van een bus
slave is het geheugen.
Bus master
Bus slave
In een systeem met meer dan één bus master kunnen er conflicten
ontstaan op de systeembus. Deze conflicten worden voorkomen door
busarbitrage toe te passen. Een eenvoudige vorm van busarbitrage in het
geval van DMA kan worden geïmplementeerd door de I/O-controller,
telkens als deze gegevens in het geheugen wil schrijven, een verzoek bij
de processor in te laten dienen voor controle over de bus, een bus request
(BR), via een lijn van de controlbus. Als de processor de bus niet nodig
heeft, dan zal deze de bus toebedelen aan de I/O-controller door het
signaal bus granted (BG) te activeren (zie figuur 2.19; de lijnen BR en BG
zijn voor de duidelijkheid weer apart getekend). De I/O-controller kan nu
de gegevens direct in het geheugen schrijven of uit het geheugen lezen
ter communicatie met het randapparaat. Zodra de I/O-controller klaar is
met de overdracht van gegevens naar het geheugen, zal deze het signaal
BR wegnemen, zodat de processor weer heer en meester over de bus is.
Direct memory access maakt hoge snelheden voor gegevenstransport
mogelijk, die bij tussenkomst van de processor nauwelijks te realiseren
zouden zijn.
Busarbitrage
Bus request (BR)
Bus granted (BG)
Net zoals er doorgaans meerdere interruptbronnen in een computer
aanwezig zijn, zijn er doorgaans ook meerdere I/O-controllers aanwezig
die van DMA gebruik willen maken. De extra complicaties waar dat toe
leidt, vallen helaas weer buiten het bestek van deze cursus.
OPGAVE 2.11
In deze leereenheid zijn enkele signalen ofwel lijnen genoemd die deel
uit kunnen maken van de controlbus van een computer. Maak een
overzicht van deze lijnen in de controlbus met de oorsprong(en) en
bestemming(en). Geef ook aan wat de functie van het signaal is.
80
OUN
Leereenheid 2 Opbouw van een computer
SAMENVATTING
Paragraaf 1
In deze leereenheid is, uitgaande van de personal computer als voorbeeld, een algemene schets gegeven van de computer. De computer is
een gegevensverwerkend systeem, dat de invoer verwerkt tot voor de
gebruiker nuttige uitvoer. Om dit te realiseren bekeken we de computer
vanuit drie perspectieven.
In het eerste perspectief bekeken we de computer als een gelaagd
systeem. In dit perspectief krijgt de gebruikers- en systeemsoftware
een plaats, maar ook het hardwareniveau.
Vanuit het perspectief van de hardware heeft een computer drie
componenten:
– de microprocessor
– het geheugen
– de I/O-controllers.
De randapparatuur, zoals toetsenbord, dvd-speler, harde schijf en
beeldscherm, behoort in het gepresenteerde model strikt genomen niet
tot de computer. De communicatie tussen de componenten van de
computer geschiedt door de systeembus. Deze bus bestaat uit drie delen:
de databus, de controlbus en de adresbus. Over de systeembus worden
zogenaamde busoperaties uitgevoerd, waarmee gegevens tussen de
componenten worden uitgewisseld. De samenhang tussen deze
onderdelen noemen we de computerorganisatie.
Als derde perspectief bekeken we globaal de overgang van de hardware
naar de software. In het gelaagde model zijn dit niveaus van de
machinetaal en assembler met de bijbehorende opbouw van een
processor. Wanneer we op dit niveau niet een specifiek type van een
processor beschouwen, maar een groep soortgelijke processors, dan
spreken we van een computerarchitectuur, bestaande uit de
instructiesetarchitectuur en de opbouw van de processor.
Paragraaf 2
De microprocessor bestaat uit twee delen: het datapad en de control unit.
De control unit bestuurt het datapad en de andere componenten van
de computer. Het datapad voert de daadwerkelijke instructies uit.
Hiervoor heeft het de beschikking over een aritmetische en logische
eenheid (de ALU) en een aantal registers. De registers zijn in te delen in
enerzijds algemene registers voor het opslaan van gegevens en anderzijds speciale registers. Onder speciale registers vallen de program
counter, het instructieregister, het operandadresregister en de stack
pointer. Bij de ALU horen meestal twee operandregisters.
Paragraaf 3
Het geheugen bevat de gegevens waarmee de computer werkt en het
programma dat wordt uitgevoerd. Het feit dat gegevens en programma
in hetzelfde geheugen staan, wordt aangeduid met het stored-programconcept. Dit stored-programconcept en de daarmee corresponderende
Von Neumannarchitectuur kent een aantal voordelen maar ook een
aantal nadelen.
Het geheugen is opgebouwd uit geheugencellen die elk één bit aan
informatie op kunnen slaan. Deze geheugencellen worden gegroepeerd
in geheugenelementen van acht bits (bytes) en verder tot geheugenwoorden van een aantal bytes. De bytes of geheugenwoorden zijn voor
de processor te benaderen door het adres ervan op de adresbus te zetten.
OUN
81
De werking van computersystemen
De opbouw van een geheugenelement is niet voor alle soorten opslag
hetzelfde, maar hangt af van het gebruik. Daarom is het zinvol een
indeling van geheugens in categorieën te maken: een taxonomie.
De registers in een microprocessor en cachegeheugens zijn zo geconstrueerd dat zij sneller zijn dan het interne geheugen; harde schijf en
magneetband zijn juist trager. Het verschil in snelheid, kosten per bit en
daardoor omvang leidt tot het concept van de geheugenhiërarchie. Hoe
dichter bij de processor, hoe sneller, kleiner, duurder en vluchtiger het
geheugen wordt.
Paragraaf 4
De I/O-controllers communiceren met de randapparaten. Voor het
benaderen van de I/O-controllers in een computersysteem zijn twee
methoden beschikbaar: memory-mapped I/O en I/O-mapped I/O. De
diversiteit van de randapparaten leidt tot een grote variatie aan de eisen
die deze randapparaten stellen, bijvoorbeeld met betrekking tot
snelheid. Door deze verschillen is er niet één beste wijze van
communicatie tussen processor en I/O-controller te noemen. Er zijn twee
methoden voor communicatie tussen processor en I/O-controller
behandeld: polling en interrupts. Bij randapparaten die een zeer hoge
snelheid nodig hebben, wordt de processor vaak ontlast door directe
geheugentoegang, ofwel direct memory access (DMA), toe te passen.
ZELFTOETS
82
1
Noem en beschrijf de lagen van de architectuur van een
computersysteem.
2
Uit welke onderdelen bestaat de computerarchitectuur en wat is de
relatie tussen deze onderdelen en de begrippen hardware en software?
3
Uit welke basiscomponenten is een computer opgebouwd en waaruit
bestaat het communicatiemiddel tussen deze componenten?
4
Beschrijf de opbouw van een microprocessor.
5
Wat is de geheugenhiërarchie, uit welke delen bestaat deze en wat zijn
de typerende kenmerken van deze hiërarchie?
6
Welke methoden voor in- en uitvoer worden er in computers toegepast?
Hoe kan de processor erachter komen dat er invoer is gepleegd door een
randapparaat?
7
Op niveau 2 in figuur 2.2 vinden we de instructieset. Worden al deze
instructies in eerste instantie verwerkt door de (micro)processor of zijn
er ook instructies die rechtstreeks door de randapparatuur worden
verwerkt? Motiveer uw antwoord.
OUN
Leereenheid 2 Opbouw van een computer
TERUGKOPPELING
1
Uitwerking van de opgaven
2.1
Het meest voor de hand liggende equivalent zou de motor zijn: in beide
gevallen gaat het namelijk om de krachtbron die het systeem draaiende
houdt. De energiebron is voor de auto benzine (of autogas of diesel), het
equivalent van de elektrische energie uit het stopcontact bij de pc.
Insteekkaarten in de pc zijn vaak niet strikt noodzakelijke uitbreidingen
van de basisfunctionaliteit. Bij de auto kunt u dan denken aan een radio,
een klokje, airconditioning of een toerenteller. Net als bij de pc zijn de
ideeën over wat essentieel is en wat niet, aan verandering onderhevig.
2.2
Het wezen van geheugen is het begrip toestand: alles wat in verschillende, onderscheidbare toestanden kan verkeren, heeft geheugen. Het
feit dat er een deuk in de auto kan zitten (die er eventueel ook weer
uitgehaald kan worden) duidt op geheugenwerking. Zinvoller voorbeelden zijn de kilometerteller en dagteller, het klokje, de stand van
verstelbare stoelen en stuur, de schakelpook enzovoorts.
Overigens houdt de parallel tussen pc en auto ergens op. Zo is er in de auto moeilijk een
equivalent van de microprocessor aan te wijzen, of het moest de bestuurder zijn, die de
auto gebruikt voor zijn reisplannen.
2.3
Behalve het lezen en schrijven uit respectievelijk in het geheugen zijn
ook het lezen van de I/O-controllers en het schrijven naar de I/Ocontrollers busoperaties.
2.4
Het is onwaarschijnlijk dat u in staat bent om dit in één keer foutloos te
doen. U zult al snel het overzicht kwijt zijn van waar u precies gebleven
bent met het invoeren van het programma. De rijen nullen en enen
hebben voor ons mensen te weinig betekenis, zijn te lang en het werk
wordt als geestdodend ervaren.
2.5
Bij de busoperatie voor het lezen uit het geheugen wordt het signaal
ready actief gemaakt door het geheugen, als teken dat dit de gevraagde
gegevens op de databus heeft gezet. Dit readysignaal, op de readylijn, is
een dataconditie vanaf het geheugen.
2.6
De operanden moeten toch één voor één opgehaald worden, dus kan het
operandadresregister (OAR) eerst gevuld worden met het adres van de
eerste operand en vervolgens, nadat die opgehaald is, met het adres van
de tweede operand. Uit zuinigheidsoverwegingen kan dus met een
enkele OAR worden volstaan. Daarentegen zijn de beide
operandregisters A en B tegelijkertijd nodig, omdat op de daar
opgeslagen waarden samen een bewerking moet worden uitgevoerd.
OUN
83
De werking van computersystemen
84
2.7
Een verdeling in een stuk voor instructies en een stuk voor gegevens is
minder efficiënt, omdat de verdeling van de benodigde ruimte voor
beide soorten data niet van tevoren vastligt, maar per toepassing kan
verschillen. Sommige programma’s zijn erg kort, maar werken met grote
gegevensbestanden, bij andere programma’s is het net andersom. Daar
komt bij dat moderne computersystemen erg dynamisch zijn. Gegevens
zijn na een zekere tijd niet meer nodig en worden verwijderd, terwijl
nieuwe series gegevens hun plaats opeisen. Hetzelfde geldt voor
programma’s: afgewerkte programma’s worden opgeruimd, nieuwe
worden opgestart. In een dergelijke context is het erg praktisch als alle
vrije ruimte in het geheugen van voldoende omvang gebruikt kan
worden voor nieuwe data, of het nu om instructies of om gegevens gaat.
2.8
Zoals uit de taxonomie blijkt, is er geen echte tegenstelling. Beide zijn
direct toegankelijk. Het verschil is alleen de schrijfbaarheid van het
geheugen. De term ‘random access memory’ (RAM) ten opzichte van
‘read only memory’ (ROM) is misleidend. Beide termen benadrukken
namelijk een ander aspect van de taxonomie.
2.9
Beschrijfbare data-dvd’s zijn moeilijk te positioneren in de geheugenhiërarchie. Wat hun capaciteit en kosten betreft zitten ze op het niveau
van een memory stick, maar de toegangstijd is veel langer dan die van
de memory stick. Bij de keuze uit één van deze opslagmedia gelden
natuurlijk ook nog andere overwegingen, zoals het gebruiksgemak, de
periode waarover de opgeslagen data correct geconserveerd blijven, de
optredende slijtage in de vorm van verminderende opslagcapaciteit door
het steeds opnieuw beschrijven van deze media.
2.10
De hoeveelheid informatie die een mens uit beelden haalt, registreert
en eventueel kan onthouden, is in feite veel geringer dan de aangegeven
snelheid doet vermoeden: de waargenomen vormen, omtrekken, kleuren,
en de mate van detail zouden in een beperkt aantal parameters kunnen
worden vastgelegd. Aan de andere kant is het een bekend feit dat mensen
(en andere hogere levensvormen) een ongelooflijk vermogen hebben tot
patroonherkenning, een vermogen dat zelfs met de meest uitgekiende
programma’s op de krachtigste computers moeilijk te evenaren is. Zo
kan een mens in enkele seconden uit een groep van honderden personen
een bekende halen. Voor audio geldt hetzelfde, al is daar automatische
patroonherkenning iets eenvoudiger omdat geluid ééndimensionaal is.
OUN
Leereenheid 2 Opbouw van een computer
2.11
De onderstaande tabel geeft de signalen die in deze leereenheid zijn
besproken, die onderdeel uitmaken van de controlbus.
naam
van
naar
functie
MEMR
(memory read)
processor
(bij DMA
ook I/O-controller)
geheugen
aangeven dat er uit het
geheugen moet worden
gelezen
MEMW
(memory write)
processor
(bij DMA ook
I/O-controller)
geheugen
aangeven dat in het
geheugen moet worden
geschreven
READY
geheugen
processor
(bij DMA ook
I/O-controller)
aangeven dat het
geheugen de gevraagde
gegevens beschikbaar
heeft gesteld op de
databus
IOR (I/O-read)
processor
I/O-controller
aangeven dat er vanaf
de I/O-controller wordt
gelezen (bij I/O-mapped
I/O)
IOW (I/O-write)
processor
I/O-controller
aangeven dat er naar de
I/O-controller wordt
geschreven (bij I/Omapped I/O)
INT
(interrupt)
I/O-controller
processor
er is een interrupt
opgetreden
INTA
(interrupt
acknowledge)
processor
I/O-controller
de interrupt is door de
processor gezien en
wordt afgehandeld
BR (bus request)
I/O-controller
processor
verzoek om de systeembus te mogen gebruiken
BG (bus granted)
processor
I/O-controller
verzoek voor gebruik
systeembus toegestaan
2
Uitwerking van de zelftoets
1
Voor de beantwoording van deze vraag verwijzen we naar figuur 2.2 en
de beschrijving daarvan. U moet alle acht lagen kunnen noemen en de
belangrijkste functie en technologie van elke laag kunnen aangeven.
2
De computerarchitectuur bestaat uit de instructiesetarchitectuur en
de computerorganisatie. De instructiesetarchitectuur beschrijft welke
instructies door een implementatie van de computerarchitectuur worden
ondersteund en wat het effect van deze instructies is. Dit effect is beschreven in termen van de computerorganisatie. Op zijn beurt beschrijft
de computerorganisatie op hoog niveau de manier waarop een computer
die op die computerarchitectuur gebaseerd is, is opgebouwd. Het geeft
een ontwerp van de hardware van alle computers binnen die computerarchitectuur. Hardware is echter een specifiek begrip, gekop-peld aan
iets tastbaars, een bepaald type computer. De instructie-setarchitectuur
beschrijft de interface tussen de software en de hardware, zodat de details van de hardware verborgen kunnen blijven voor de programmeur.
OUN
85
De werking van computersystemen
3
Een computer heeft drie basiscomponenten:
– de microprocessor, die de instructies uitvoert
– het geheugen met de gegevens en het programma (de instructies) en
– de I/O-controllers die de koppeling met de randapparaten verzorgen.
De communicatie tussen deze delen vindt plaats via de systeembus,
bestaande uit:
– de databus, voor het transport van de eigenlijke gegevens
– de adresbus, voor het aangeven van de locaties in het geheugen
(en eventueel I/O-controller) van gegevens en instructies
– de controlbus, voor de coördinatie van het transport van gegevens
en instructies.
4
Figuur 2.20 geeft een schematisch overzicht van een microprocessor.
FIGUUR 2.20
Schematische weergave van de microprocessor
De microprocessor bestaat uit een control unit en een datapad. Het
datapad wordt bestuurd door de control unit, die daarvoor gebruikmaakt van de besturingslijnen. Hiermee worden de registers en de ALU
in het datapad aangestuurd. De control unit krijgt informatie uit het
datapad door de datacondities (onder andere uit het instructieregister).
De control unit bestuurt tevens de andere delen van de computer en
reageert op acties vanaf deze delen door de controlbus.
Het datapad bewerkt daadwerkelijk de gegevens. Hiervoor zal het
datapad de adresbus van een adres voorzien (via de adresbusbuffer) en
de gegevens op de databus zetten, of deze daarvan overnemen (via de
databusbuffer). De interne onderdelen van het datapad zijn: de ALU
(met de operandregisters A en B), de algemene registers R1 t/m R4 en de
speciale registers (het instructieregister IR, de program counter PC, de
stack pointer SP en het operandadresregister OAR).
86
OUN
Leereenheid 2 Opbouw van een computer
5
De geheugenhiërarchie is een keten van opslagmedia voor gegevens die
in een computer voor (kunnen) komen. Deze keten bestaat uit:
– de registers in de microprocessor
– het cachegeheugen tussen de microprocessor en het interne geheugen
– het interne geheugen
– de harde schijf (achtergrondgeheugen) en
– back-upmedia zoals magneetbanden.
De hiërarchie wordt gekenmerkt door het feit dat naarmate de afstand
tot de microprocessor groter wordt, de geheugens trager, goedkoper en
omvangrijker worden.
6
Er zijn twee methoden voor in- en uitvoer behandeld: memory-mapped
I/O en I/O-mapped I/O. Voor de communicatie tussen I/O-controller en
microprocessor kan gebruik worden gemaakt van polling en van interrupts.
7
Wanneer we alleen kijken naar niveau 5 dan is de vraag of er instructies
door de processor dan wel de randapparatuur worden verwerkt niet
relevant. Welk onderdeel nu de instructie verwerkt, wordt bepaald op
het niveau van de microarchitectuur (niveau 1). Daarvan vinden we in
figuren 2.5, 2.6, 2.18 en 2.19 de invulling. Hieruit blijkt dat de randapparatuur altijd via de processor wordt aangestuurd, óók bij DMA.
Ook is gesteld dat de processor randapparaten als geheugenplaatsen
ziet, waarbij de communicatie via de computerbus verloopt. Bij memorymapped I/O is het op het niveau van de instructieset voldoende om een
instructie te hebben die de processor instrueert om de inhoud van een
geheugenplaats te lezen en een instructie om een geheugenplaats te
beschrijven. Bij een aparte I/O reeks van adressen komen daar twee I/Oinstructies bij voor het lezen van en schrijven van geheugenplaatsen van
randapparaten. Kortom de instructieset heeft in zijn geheel betrekking
op de (micro)processor.
OUN
87
Download