hardware

Commentaren

Transcriptie

hardware
2015
hardware
F. Vonk
versie 3
24-11-2015
inhoudsopgave
1.
inleiding .............................................................................................. - 2 -
2.
hardware ............................................................................................. - 3 -
3.
moederbord ......................................................................................... - 4 bussen...................................................................................................... - 5 cpu .......................................................................................................... - 5 bridges ..................................................................................................... - 6 voorbeelden .............................................................................................. - 6 RAM ......................................................................................................... - 9 -
4.
CPU .................................................................................................. - 11 -
5.
RAM .................................................................................................. - 15 -
6.
hardware architectuur (vwo) ................................................................ - 18 de werking van de CPU ............................................................................. - 18 architectuurmodellen ................................................................................ - 22 -
7.
wat heb je geleerd .............................................................................. - 26 -
Dit werk is gelicenseerd onder een Creative Commons Naamsvermelding – NietCommercieel –
GelijkDelen 3.0 Unported licentie
Deze module is deels overgenomen uit Hoofdstuk 3 van de informatica methode van Remie Woudt.
De afbeelding op het voorblad is verkregen via INFOwrs. Copyright © 2010 INFOwrs Serviços em informatica.
-1-
1. inleiding
Informatica gaat net zo min over computers als astronomie gaat over telescopen.
(Edsger W. Dijkstra)
Om informatica toe te passen en "tot leven te brengen" hebben we computer hardware (computers) nodig. Bovendien kunnen we met computers een heleboel leuke dingen doen. We kunnen ze onder andere programmeren en om dat te kunnen moeten
we snappen hoe ze werken.
Welkom bij de module hardware. In deze module behandelen we de essentiële componenten die je in computers vindt en die belangrijk zijn als we een computer willen
programmeren. Ook de samenwerking tussen deze componenten is belangrijk.
Let op, de vwo stof over hardware architectuur is geen toets- en schoolexamenstof
voor havo!
In deze module kom je opgaves tegen die je moet maken om de lesstof te verwerken.
De antwoorden kunnen in de les besproken worden.
opgave
Opgaves in blauw moet je maken.
Let op, links in dit document hebben een rode kleur.
Veel plezier en succes.
-2-
2. hardware
Hardware gaat over de computer en alles wat je erin kunt stoppen of eraan kunt hangen. Hardware, het woord zegt het al, is iets wat "hard" is, wat aangeraakt kan worden. De tegenhanger is software. Software kun je niet aanraken, kun je niet vastpakken. Hoe zit het dan met een CD met een programma erop?
Inderdaad, de CD kun je aanraken. Maar de CD is niet de software, het is alleen maar
de drager van de software. Misschien is het duidelijker als je bedenkt dat je software
ook kunt downloaden. Dan weet je dat het weliswaar via jouw internet aansluiting
jouw computer binnengaat, maar dat je het toch niet kunt vastpakken. Het hoeft ook
niet alleen om computerprogramma's te gaan. Ook een gedownloade film kun je als
software zien. Pas wanneer je de film op een DVD brandt en afspeelt op een DVD speler kun je hem zien. Jouw DVD speler is hardware.
Hardware zorgt ervoor dat je software kunt gebruiken. Het verschil is overigens lastig.
Want als je een computer koopt zitten daar al kleine stukjes software in gebakken.
Een computer kan niet eens opstarten zonder software. Dergelijke software wordt dan
ook niet via een externe bron ingelezen maar zit permanent in de hardware opgeslagen. Een voorbeeld hiervan zijn de BIOS en de POST. De POST is de Power On SelfTest die wordt uitgevoerd om te controleren dat er geen problemen met de hardware
van een computer is. Welke componenten van de computer gecontroleerd moeten
worden leest de POST uit de BIOS (Basic Input and Output System).
Hardware kun je op allerlei manieren in soorten opdelen. Een veelgebruikte manier is
de volgende:

interne hardware; de onderdelen die zich in de computerkast bevinden en daaraan verwante dataopslagmedia

randapparatuur; de onderdelen die op de computerkast aangesloten worden
In de volgende hoofdstukken gaan we de belangrijkste onderdelen in meer detail behandelen.
opgave 2.1
Zijn de volgende beweringen waar of niet waar? Als je een bewering
niet waar vindt moet je uitleggen waarom je dat vindt.
a) De BIOS en POST zijn essentieel bij het opstarten van een PC.
b) Bij het opstarten van de PC roept de BIOS de POST aan.
c) De POST is een stuk hardware.
d) Software is altijd nuttig, ook als je geen hardware hebt.
-3-
3. moederbord
Het moederbord is, als je in het binnenste van een computer kijkt, de grote vlakke
plaat waarop alle onderdelen of aansluitingen voor onderdelen zijn gemonteerd. Eigenlijk verbindt het moederbord alle onderdelen (vaak componenten genoemd) met
elkaar. Dat doet het moederbord door middel van de Northbridge, de Southbridge en
de diverse bussen. De bridges worden verderop besproken. Bussen vormen de verbindingen tussen de componenten van de PC. De opbouw van het moederbord en de
bussen wordt voor een deel bepaald door het merk en type van de CPU die erop aangesloten kan worden.
Figuur 1: de architectuur van een moederbord1
In hoofdlijnen komt de architectuur (bouwtekening) van een computer neer op de
schematische voorstelling zoals in Figuur 1 afgebeeld. Alle componenten/aansluitingen
(de grijze rechthoeken) in de figuur zitten ofwel op het moederbord zelf of kunnen er
op worden aangesloten. De blauwe pijlen tussen de componenten stellen de bussen
voor. Via de bussen kunnen de componenten met elkaar communiceren.
1
uit de methode van Remie Woudt
-4-
bussen
Een belangrijke bus is de Front Side Bus (FSB). Deze verbindt de CPU en de Northbridge. Door de FSB gaan alle elektrische signalen (communicatie) tussen de processor en de rest van de componenten. De snelheid van de hele pc is daarom onder andere afhankelijk van de snelheid en bandbreedte van de FSB. De FSB is de bus die bij
een Intel CPU wordt gebruikt. De andere grote CPU fabrikant, AMD, gebruikt een bus
met een andere naam, die dezelfde taak heeft als de FSB. Deze bus heet de Hyper
Transport Bus (HTB).
De bandbreedte van een bus wordt bepaald door de hoeveelheid bits die er tegelijkertijd (parallel) doorheen kunnen, zie Figuur 2. Ieder bit wordt over een aparte buslijn
getransporteerd. Dus bij bijvoorbeeld een bandbreedte van 8 bits, heeft de bus dus 8
buslijnen. De bandbreedte wordt uitgedrukt in bits. Hoe hoger de bandbreedte, hoe
sneller de bus.
Figuur 2: een drietal bussen met verschillende bandbreedtes2
De snelheid van een bus wordt bepaald door de hoeveelheid bits, die er per buslijn per
tijdeenheid, achter elkaar, doorheen kunnen. Dit noemen we de kloksnelheid van de
bus. Deze wordt uitgedrukt in Herz (Hz). Hoe hoger de kloksnelheid, hoe sneller de
bus.
cpu
De CPU (Central Processing Unit), waarover later meer details, is een general-purpose
processor. Dat wil zeggen dat deze ingezet kan worden voor allerlei verschillende berekeningen en toepassingen. De CPU is het hart van de PC en daarmee een belangrijke component. Deze zorgt voor een groot deel van de informatieverwerking in een
computer.
2
www.alf.sd83.bc.ca/courses/It12/using_it/processor_speed.htm
-5-
bridges
De Northbridge en de Southbridge worden samen de chipset van het moederbord genoemd. Samen met de CPU en GPU (Graphics Processing Unit) vormen zij de belangrijkste processoren in de computer. De chipset wordt meestal speciaal voor een bepaald type CPU ontworpen.
De GPU is een processor die specifiek ontworpen is om 2D en 3D video- en beeldbewerking te doen. Omdat deze processor hier specifiek voor ontworpen is, kan hij dit
veel sneller dan een CPU. Bovendien wordt de CPU op deze manier ontlast. De GPU
kan onderdeel zijn van de CPU zelf, in de Northbridge zitten of op een aparte insteekvideokaart (grafische kaart).
De Northbridge is bedoeld voor de snelle communicatie met het RAM (interne geheugen of werkgeheugen) en de GPU. Verder verzorgt de Northbridge ook de communicatie met de rest van de pc via de tragere Southbridge. De Northbridge kan naast de
hiervoor beschreven taak ook andere taken hebben. Zo kan er, zoals eerder gezegd,
een geïntegreerde GPU in zitten. Soms zit er ook een NIC (Network Interface Controller) in.
De Southbridge regelt de communicatie met de tragere componenten van de PC zoals
bijvoorbeeld de harde schijf, het toetsenbord, de muis enzovoorts. Vaak zit er ook een
NIC in, zodat die niet in de snellere (en dus duurdere) Northbridge hoeft te zitten.
opgave 3.1
In Figuur 1 zijn vier type aansluitingen bij de Southbridge getekend.
Geef voor iedere aansluiting tenminste twee componenten of randapparatuur die erop aangesloten kunnen worden.
voorbeelden
Figuur 3 en Figuur 4 laten moederborden zien. De processor (CPU) wordt in de CPU
socket (aanduiding G in Figuur 4) gestoken en geeft tegenwoordig vaak zoveel warmte af dat deze fors gekoeld moet worden. Dat betekent meestal, dat er een goed koelblok met een krachtige ventilator op gemonteerd moet worden. We noemen dit actieve koeling, omdat er bewegende onderdelen (de ventilator) in het koelsysteem zitten.
Er kan echter ook voor waterkoeling of zelfs stikstofkoeling worden gekozen. Deze
opties zijn vaak stiller maar ook veel duurder.
-6-
opgave 3.2
Er zijn een heleboel verschillende soorten processoren. Deze vereisen doorgaans allemaal een ander type socket op het moederbord.
Er zijn daarom een heleboel verschillende soorten CPU sockets.
Zoek op internet naar verschillende soorten CPU sockets en schrijf
er 10 op. Vermeld voor iedere soort bij welk merk en type CPU deze
hoort.
Op de foto's van de moederborden zie je, dat ook de Northbridge (aanduiding D in
Figuur 4) ook gekoeld wordt. De benodigde koeling voor een component is afhankelijk
van de taken die erdoor moeten worden verricht. Bij de Northbridge wordt meestal
passieve koeling toegepast. Dat betekent dat er geen ventilator op het koelblok zit.
Het voordeel is dat dit soort koeling stil is. Het nadeel is dat het minder goed koelt
dan actieve koeling. Dit laatste zie je goed in de figuren bij de Northbridge. De Southbridge hoeft meestal niet gekoeld te worden.
Figuur 3: een oud AGP moederbord3
3
uit de methode van Remie Woudt
-7-
Figuur 4: een nieuw moederbord4
opgave 3.3
Zoek op het internet op hoe de componenten en aansluitingen die
aangeduid zijn in Figuur 4 heten. Schrijf de namen op en leg ze in je
eigen woorden uit.
In Figuur 3 heb je al het zogenaamde back panel als onderdeel van het moederbord
gezien. Het back panel is belangrijk omdat het veel aansluitmogelijkheden biedt voor
randapparatuur zoals de muis, het toetsenbord, de vaste netwerkkabel, luidsprekers
enzovoorts. In Figuur 5 zie je een overzicht van de veel voorkomende aansluitingen
op het back panel.
4
www.build-your-own-computer.net/image-files/motherboard-diagram-01.jpg
-8-
Figuur 5: een back panel van een moederbord
RAM
Op het moederbord bevinden zich ook de sloten (slots) om het RAM aan te sluiten
(aanduiding J in Figuur 4). In deze sloten kun je de RAM modules steken met daarop
de RAM chips, zie Figuur 6. RAM moet makkelijk vervangen en uitgebreid kunnen
worden en is daarom niet op het moederbord geïntegreerd.
Figuur 6: diverse soorten RAM modules5
5
upload.wikimedia.org/wikipedia/commons/d/d3/RAM_n.jpg
-9-
RAM staat voor Random Access Memory en is bestemd voor tijdelijke opslag ten behoeve van de CPU. Het RAM kan alleen maar iets onthouden zolang er spanning op
staat. Zodra de computer uitgezet wordt, is het RAM na korte tijd weer leeg. Het RAM
bestaat uit geheugenlocaties waar instructies en data in opgeslagen kunnen worden.
Deze locaties kun je benaderen via het geheugenadres. De CPU heeft RAM nodig om
snel te kunnen werken. Bijvoorbeeld direct werken met een harde schijf is veel te
traag.
opgave 3.4
Zijn de volgende beweringen waar of niet waar? Als je een bewering
niet waar vindt moet je uitleggen waarom je dat vindt.
a) De Southbridge is de snelle chip van de moederbord chipset.
b) De Northbridge zit aangesloten op het RAM.
c) De Southbridge zit tussen de CPU en de Northbridge in.
d) Aan de elke CPU zit een belangrijk bus vast, deze heet de FSB.
e) Om een GPU in je PC te krijgen heb je een videokaart nodig.
f) Er is geen enkele actieve koeling die zo stil is als passieve koeling.
g) RAM bestaat uit geheugenlocaties die te benaderen zijn via geheugenadressen.
- 10 -
4. CPU
opgave 4.1
Bekijk de volgende YouTube film.
De CPU (Central Processing Unit) wordt vaak gezien als het hart of de hersenen van
de computer. In het Nederlands zeggen we vaak processor tegen de CPU. De CPU
snelheid en rekenkracht bepaalden vroeger in grote mate de snelheid van een computersysteem. Tegenwoordig speelt met name de GPU (Graphics Processing Unit) echter
ook een zeer belangrijke rol, zeker als we video- of beeldbewerking willen doen.
Voor de PC zijn er een aantal CPU fabrikanten. Intel en AMD zijn de grote spelers op
deze markt. Via Technologies is ook een CPU fabrikant maar hun processoren worden
meestal gebruikt bij kleine computers die energiezuinig moeten zijn. Een uitgebreide
lijst van processoren kun je vinden op Wikipedia. In Figuur 7 zie je een aantal verschillende CPU merken en types.
Figuur 7: verschillende CPU merken en types6
kloksnelheid
Een belangrijk begrip bij processoren (zowel CPU als GPU) is de kloksnelheid. Deze
werd vroeger in megahertz (MHz) uitgedrukt maar tegenwoordig in gigahertz (GHz).
Een kloksnelheid van bijvoorbeeld 3 GHz betekent dat de processor per seconde ongeveer 3*109 (3 miljard) acties kan uitvoeren. Een groep samenhangende acties noemen we een instructie. Er zijn instructies die uit één actie bestaan maar de meeste
bestaan uit meerdere acties.
6
www.legitreviews.com/images/reviews/1060/intel_lynnfield_cpu.jpg
- 11 -
multicore en hyper threading
Een ander belangrijk begrip is het aantal kernen in de processorchip. Een chip met
één kern heet single core, een chip met meerdere kernen heet multicore. Bij een CPU
zie je bijvoorbeeld dual- (2), quad- (4), hexa- (6) en octa- (8) core. Er zijn ook al
chips met 10 (deca-core) of meer kernen maar die zijn nog erg duur.
De kernen kunnen software maar ook hardware kernen zijn. Bij software kernen spreken we van hyper threading. Er is dan één fysieke hardware kern aanwezig maar voor
de software lijken er meerdere kernen aanwezig te zijn. We spreken dan van concurrency. Bij hardware kernen zitten er fysiek meerdere onafhankelijke kernen op de
chip. Deze kernen kunnen daadwerkelijk onafhankelijk van elkaar werken. We spreken dan van parallelle uitvoering, oftewel parallel processing. Als een CPU meerdere
kernen heeft is dit gunstig voor de snelheid. Hardware kernen zijn gunstiger voor de
snelheid dan software kernen maar ook duurder. De snelheidswinst hangt bovendien
af van hoe goed de software gebruik maakt van de aanwezige kernen. Op het moment
maakt niet alle software standaard even goed gebruik van multicore processorchips.
caches
Nog een belangrijk onderdeel van de CPU zijn de caches. CPU caches slaan instructies
en data op in de processorchip zodat deze niet uit het RAM opgehaald hoeven te worden. Dit maakt de CPU veel sneller. Hoe groter de caches zijn hoe beter dit is voor de
snelheid. Vroeger had een CPU doorgaans twee caches, de L1 en de L2 cache. Met de
komst van processorchips met meerdere kernen is er een L3 cache bijgekomen.

De L1 cache is het kleinst en het snelst en is altijd gekoppeld aan één hardware kern.

De L2 cache is groter en trager en is typisch gekoppeld aan één hardware
kern. Bij hyper threading bedient de L2 cache echter wel meerder software
kernen.

De L3 cache is nog groter en trager en is een gedeelde cache voor alle hardware kernen. Ondanks dat de L3 cache veel trager is dan de L1 cache is deze oplossing altijd nog vele malen sneller dan data uit het RAM halen.
Wanneer de CPU iets wil lezen, maar het staat niet in een cache, dan noemen we dat
een cache miss. De inhoud van de cache waar de "miss" optreedt, moet dan vervangen worden. Vanwege snelheid, doet de CPU dit niet voor iedere geheugenlocatie
apart, maar zijn de geheugenlocaties ondergebracht in zogenaamde cache blocks.
Een "cache block" wordt in zijn geheel vervangen. Hiervoor kijkt de CPU of de data in
een hoger gelegen cache staat; dus als er in de L1 cache een "miss" optreedt, dan
wordt eerst in de L2 cache gekeken of de data daar wel te vinden is. Daarna wordt in
een eventuele L3 cache gekeken en daarna pas in het RAM.
In Figuur 8 zie je een voorbeeld van de L1, L2 en L3 caches bij een Intel Core I7 CPU.
- 12 -
Figuur 8: een Intel Core I7 CPU cache architectuur7
opgave 4.2
Beschrijf welke aspecten van de CPU een belangrijke rol spelen voor
de snelheid van een PC behalve de kloksnelheid.
opgave 4.3
Zijn de volgende beweringen waar of niet waar? Als je een bewering
niet waar vindt moet je uitleggen waarom je dat vindt.
a) Twee grote spelers op de CPU markt voor de PC zijn AMD en Intel.
b) Tegenwoordig wordt de kloksnelheid uitgedrukt in gigahertz.
c) Een hardware kern is net zo snel als een software kern.
d) Als we rekenen op meerdere hardware kernen noemen we dat
hyper threading.
e) Caches zitten op de CPU om de hoeveelheid interactie van de
CPU met het RAM te verminderen.
f) Op een CPU zitten altijd twee caches, de L1 en de L2 cache.
g) De L2 cache is groter en sneller dan de L1 cache.
7
bron: internet, locatie onbekend
- 13 -
programmeren
Als we programma's schrijven voor een computersystem, dan zijn we feitelijk de CPU
van het systeem aan het programmeren. Vroeger moest je precies weten welke instructies een bepaalde CPU kende. Er werd toen geprogrammeerd in binaire code of
assembly language (ook wel afgekort tot assembly of assembler).
Binaire code bestaat uit codes van alleen nullen en enen. Als een programmeur weet
wat hij/zij doet, dan kan een CPU deze code direct lezen. Je zult echter begrijpen dat
programmeren met alleen de getallen 0 en 1 niet echt handig is en dat grote programma's schrijven, vervelend, moeilijk en foutgevoelig is. Daarom zijn de instructies
een CPU ook bekend als zogenaamde mnemonics. Dit zijn afkortingen die gebruikt
kunnen worden in plaats van de binaire codes, zodat programmeurs ze makkelijker
kunnen onthouden. Bovendien accepteren processoren ook hexadecimale waardes in
plaats van binaire waardes als ze dat gevraagd wordt. Een voorbeeld maakt dit misschien duidelijker:
Een voorbeeld van binaire code is: 10001100
11010001
11010010.
In assembly ziet het er als volgt uit: ADD R1, 0x12.
Het nadeel van beide methodes is, dat de programmacode specifiek is voor één of enkele CPU types en dat het programma alleen daar op uitgevoerd kan worden. Daarom
zijn er zogenaamde hogere programmeertalen en later ook scripttalen ontwikkeld. Dit
zijn talen die nog makkelijker door mensen te schrijven en lezen zijn en die bovendien
niet specifiek voor een klein aantal CPU types is. Voorbeelden van hogere programmeertalen en scripttalen zijn C, C++, C#, Java, Python, Ruby, JavaScript enzovoorts.
Om goed te snappen hoe een CPU werkt, is een hogere programmeertaal niet echt
geschikt. Dat is logisch, want zulke talen willen onafhankelijk zijn van het type CPU.
Om echt te snappen hoe een CPU werkt, is het goed om wat oefeningen te doen in
assembly. Hiervoor bestaat een kort practicum dat je kunt doen als je geïnteresseerd
bent. Instructies voor dit practicum vind je in de ELO.
Als je in assembly programmeert, moet je ook goed snappen hoe de CPU samenwerkt
met het RAM en hoe het RAM in elkaar zit. Hierover leer je hierna meer.
- 14 -
5. RAM
opgave 5.1
Bekijk de volgende YouTube film.
Zoals eerder besproken, bestaat het RAM uit geheugenlocaties. Deze kunnen benaderd worden door geheugenadressen. Deze adressen zijn belangrijk bij het programmeren zoals je in het filmpje hebt kunnen zien.
Geheugenlocaties hebben een grootte die we de woordgrootte (uitgedrukt in bits)
noemen. Ook geheugenadressen hebben een grootte die we de adresgrootte (uitgedrukt in bits) noemen. De woordgrootte en adresgrootte kunnen even groot, maar dat
hoeft niet en is ook vaak niet zo. De adresgrootte moet echter wel kloppen bij CPU
architectuur en de bandbreedte van de bussen in het computersysteem. Veel computersystemen gebruiken op het moment met 64 bits architectuur. Dat wil zeggen, dat
er een 64 bits CPU op een moederbord met een 64 bits bus bandbreedte zit en de
adresgrootte van het RAM 64 bits is.
Bekijk het volgende stuk geheugen met een adresgrootte van 16 bits en woordgrootte
van 8 bits. We nemen even 16 en 8 bits omdat dit nog redelijk overzichtelijk is. In de
linker kolom staat het adres, dat we altijd als hexadecimaal getal schrijven. In de andere kolommen staan bits die de data op het adres voorstellen. Dit is dus de inhoud
van de geheugenlocatie. Zo vinden we op adres 0x0004 het getal decimale getal 236.
adres
bit 7
bit 6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
0x0000
0
1
0
0
1
1
1
1
0x0001
1
0
0
1
0
0
0
1
0x0002
0
0
0
0
0
0
0
0
0x0003
0
1
1
1
0
1
0
1
0x0004
0
1
1
1
0
1
0
0
0x0004
1
1
1
0
1
1
0
0
0x0005
1
0
1
0
1
0
0
0
0x0006
0
0
0
0
1
0
1
1
0x0007
1
1
1
1
1
1
1
1
0x0008
1
0
0
0
1
0
1
1
0x0009
0
0
0
0
1
0
1
0
0x0010
0
0
0
0
0
0
0
0
0x0011
0
1
0
0
1
1
1
0
0x0012
1
1
1
1
1
1
1
1
- 15 -
opgave 5.2
Welke getallen staan op adressen 0x0001, 0x0002, 0x0007, 0x0010
en 0x0012?
Je ziet dus dat er best dezelfde waarde in verschillende geheugenlocaties mogen
staan. Er is geen directe relatie tussen de locaties.
Vroeger moesten programmeurs direct met de geheugenadressen van het RAM werken als ze computerprogramma's schreven. Tegenwoordig gebruiken we hogere programmeertalen die ons variabelen laten gebruiken om naar geheugenlocaties te verwijzen. De code die we schrijven wordt voor ons vertaald naar code die direct werkt
met geheugenadressen, zodat we dat zelf niet hoeven te doen. Het vertalen van de
code gebeurt door zogenaamde compilers of interpreters.
Als we een stuk programma code hebben voor een 16 bits computersysteem met RAM
woordgrootte 8, dan kan dat er als volgt uitzien:
var getal = 20;
Dan wordt de variabele getal (dat dit een variabele is, wordt aangegeven door het
woordje var) vertaald naar een geheugenlocatie, bijvoorbeeld 0x0004 en wordt op dat
adres de inhoud van de geheugenlocatie verandert in binair 00010100, want dat stelt
het decimale getal 20 voor.
opgave 5.2
Zijn de volgende beweringen waar of niet waar? Als je een bewering
niet waar vindt moet je uitleggen waarom je dat vindt.
a) Een geheugenlocatie en een geheugenadres zijn verschillende
termen waarmee hetzelfde bedoeld wordt.
b) Woordgrootte en adresgrootte van het RAM moeten altijd gelijk
zijn.
c) De adresgrootte van het RAM moet kloppen bij de bandbreedte
van de bussen op het moederbord.
d) De woordgrootte van het RAM moet kloppen bij de architectuur
van de CPU.
e) Een compiler wordt gebruikt om hogere programmeertalen te
vertalen naar iets dat de CPU begrijpt.
- 16 -
f) Een interpreter is hetzelfde als een compiler.
g) Een hogere programmeertaal is een taal die relatief goed te begrijpen is door mensen.
- 17 -
6. hardware architectuur (vwo)
In de vorige hoofdstukken hebben we een overzicht gezien van componenten en
randapparaten, die te maken hebben met de PC en computers in het algemeen. We
hebben ook een beetje gekeken naar de samenhang tussen de componenten toen we
het over het moederbord hadden. In dit hoofdstuk gaan we op deze samenhang wat
dieper in.
In het hoofdstuk over het moederbord staat Figuur 1. Hierin zien we onder andere het
verband tussen de CPU en het RAM. Dit figuur is een architectuur afbeelding. Dat wil
zeggen dat de afbeelding een model (vereenvoudigde weergave van de werkelijkheid)
van een complex systeem of subsysteem weergeeft.
de werking van de CPU
In essentie is een CPU een informatie verwerkend systeem. De informatieverwerking
gebeurt door de CPU zoals schematisch is afgebeeld in Figuur 9. De pijlen in deze afbeelding zijn informatiestromen. De CPU krijgt instructies met bijbehorende informatie. Voorbeelden van bijbehorende informatie zijn: data, een geheugenadres of de
plek waar iets in de CPU opgeslagen moeten worden. Daarna voert de CPU de instructie uit en bewaart het resultaat.
Figuur 9: data- en instructieverwerking door de CPU
Voor iedere instructie voert de CPU de Von Neumann cyclus uit. Deze cyclus zie je in
Figuur 10. Eerst moet een instructie opgehaald worden (fetch), daarna moet gekeken
worden welke instructie het is en welke andere informatie erbij hoort (decode) en
daarna kan de instructie uitgevoerd worden (execute).
Figuur 10: de Von Neumann cyclus8
8
www.teach-ict.com/gcse_computing/ocr/212_computing_hardware/cpu/miniweb/pg3.htm
- 18 -
Je weet intussen dat alle componenten in een computer via bussen verbonden zijn. Zo
ook de CPU en het RAM. Om data uit het RAM te halen, moet je weten waar die data
staat; oftewel, je moet weten op welk geheugenadres de data staat. Voor het schrijven van data naar het RAM geldt hetzelfde.
Als de CPU bijvoorbeeld de bewerking 3 + 6 moet uitvoeren, waarbij het getal 3 op
geheugenadres 40 staat, het getal 6 op adres 72 en het resultaat op adres 56 geschreven moet worden, dan gaat dat heel abstract zoals afgebeeld in Figuur 11.
Figuur 11: abstracte weergave van een optelling in een CPU
opgave 6.1
Werk zelf een voorbeeld uit waarin een CPU de getallen 16 en 9
moeten vermenigvuldigen. Hierbij staat het getal 16 op adres 200,
het getal 9 op adres 201 en het resultaat moet teruggeschreven
worden op adres 300.
Zoals je in Figuur 11 ziet, moet de CPU de reeds gelezen getallen (de data) opslaan
tot de bewerking (hier dus de optelling) bekend is. Hiervoor gebruikt de CPU registers.
Registers zijn kleine stukjes opslagruimte binnenin de CPU. In Figuur 12 zie je een
aantal van deze registers afgebeeld zoals R1, R2, PC en IR.
- 19 -
In de R1 en R2 registers kan data opgeslagen worden. In het IR (Instruction Register)
wordt de instructie opgeslagen. In de PC (Program Counter) staat het geheugenadres
waaruit de volgende instructie of data van het programma gelezen moet worden.
Figuur 12: een zeer eenvoudige processor9
In Figuur 11 komen de instructies uit de lucht vallen en dat is natuurlijk in werkelijkheid niet zo. Figuur 11 laat alleen de opeenvolgende EXECUTE stappen van de Von
Neumann cyclus zien. Instructies moeten eerst opgehaald (FETCH) worden. Dit gaat
feitelijk hetzelfde als het ophalen van data. Instructies staan namelijk ook gewoon in
het RAM en hebben een geheugenadres. Zoals je hierboven gelezen hebt, staat dat
adres in een speciaal register in de CPU, het IR (Instruction Register). Door te lezen
wat er op het geheugenadres uit het IR staat, krijgt de CPU de instructie binnen, die
de CPU vervolgens kan decoderen.
9
www.voti.nl/hvu/V1CP1/
- 20 -
Maar hoe gaat dat lezen en schrijven via de bussen nu precies? Om dat te weten moet
je snappen hoe de bussen tussen de CPU en het RAM in elkaar zitten en hoe instructies van een CPU eruit zien.
In Figuur 12 zie je de drie belangrijkste onderdelen van de bussen tussen de CPU en
het RAM afgebeeld. Dit zijn achtereenvolgens:

De data bus; deze wordt gebruikt om instructies en data uit te wisselen.

De adres bus; deze wordt gebruikt om geheugenadressen (locaties in het RAM)
waar data in staat uit te wisselen.

De control bus; deze wordt onder andere gebruikt om aan te geven of er gelezen of geschreven moet worden. Daarnaast wordt deze gebruikt om de data en
adres bussen te synchroniseren.
Nu je weet waar hoe bussen opgedeeld zijn, gaan we kijken naar hoe een instructie er
globaal uitziet. Iedere processor heeft zijn eigen verzameling instructies. De instructies die je nu gaat zien horen bij de zeer eenvoudige processor (ZEP) uit Figuur 12.
Dit soort processoren worden tegenwoordig niet meer gebruikt.
Een voorbeeld van een leesinstructie van de ZEP is: LOAD R1, 0x20. Het eerste deel,
LOAD, geeft aan wat de instructie moet doen; in dit geval laden, oftewel lezen. Het
tweede deel, R1, geeft aan waar de gelezen data moet worden opgeslagen; in dit geval het register genaamd R1. Het laatste deel, 0x20, geeft aan waar de data gelezen
moet worden; in dit geval geheugenadres 0x20.
Een voorbeeld van een schrijfinstructie van de ZEP is: STORE R1, 0x32.
Alle delen uit een instructie staan, zoals gezegd, in het RAM en moeten daarom ook
gelezen worden. Hiervoor leest de CPU steeds wat er op het geheugenadres uit het IR
staat en hoogt de waarde van het IR op.
Nu je dit allemaal weet, kunnen we laten zien hoe het lezen van data uit een geheugenadres gaat. Er gebeurt dan het volgende:
1. FETCH: De CPU haalt de leesinstructie, met register en geheugenadres, op via
de data bus.
2. DECODE: De CPU decodeert de instructie.
3. EXECUTE:
a. De CPU zet het geheugenadres uit de instructie op de adres bus.
b. De CPU geeft, via de control bus, aan dat de inhoud van het geheugenadres gelezen moet worden.
c. De CPU ontvangt de inhoud van het geheugenadres via de data bus en
zet dat in het register dat aangegeven is in de instructie.
- 21 -
Bij het schrijven van data naar een geheugenadres gebeurt het volgende:
1. FETCH: De CPU haalt de schrijfinstructie, met register en geheugenadres, op
via de data bus.
2. DECODE: De CPU decodeert de instructie.
3. EXECUTE:
a. De CPU zet het geheugenadres uit de instructie op de adres bus.
b. De CPU zet de waarde uit het register, dat in de instructie staat, op de
data bus.
c. De CPU geeft via de control bus aan dat de data op het adres weggeschreven moet worden.
opgave 6.2
Zijn de volgende beweringen waar of niet waar? Als je een bewering
niet waar vindt moet je uitleggen waarom je dat vindt.
a) De Von Neumann cyclus bestaat achtereenvolgens uit DECODE,
FETCH en EXECUTE.
b) Een geheugenadres is het adres van een geheugenlocatie.
c) Registers zijn kleine stukjes opslagruimte in het RAM.
d) Voorbeelden van registers zijn de PC en het IR.
e) In de PC staat de instructie opgeslagen die de CPU moet uitvoeren.
f) De control bus van de FSB is nodig om te controleren dat alle
data goed aankomt bij de ontvanger.
architectuurmodellen
De eerste computers werkten met fysiek gedeelde opslag voor instructies en data. Dat
wil zeggen dat er of een instructie of een stuk data uit het geheugen gelezen kan
worden, niet beide tegelijkertijd. Zulke computers zijn gebouwd op basis van de zogenaamde Von Neumann architectuur, zie Figuur 13. Na verloop van tijd kwam men erachter dat het parallel kunnen lezen van instructies en data een grote snelheidswinst
op kan leveren. Het feit dat dit bij de Von Neumann architectuur niet kan heet de Von
Neumann bottleneck.
- 22 -
Figuur 13: een mogelijke Von Neumann architectuur10
Een oplossing voor de Von Neumann bottleneck is computers bouwen met fysiek gescheiden geheugen voor instructies en data. Zulke computer zijn gebouwd op basis
van de zogenaamde Harvard Architectuur, zie Figuur 14. Dit levert snelheidswinst op,
maar heeft als nadeel dat je minder effectief en flexibel met het geheugen om kunt
gaan. Stel je hebt meer data dan datageheugen. Je hebt echter nog wel instructiegeheugen vrij. Je kunt dan, in het geval van de Harvard architectuur, de overtollige data
niet in het instructiegeheugen bewaren.
Figuur 14: een mogelijke Harvard architectuur11
Zowel de Von Neumann als de Harvard architectuur hebben dus een significant nadeel. Daarom heeft men een architectuur bedacht die die nadelen niet heeft. Deze
heet de Modified Harvard architectuur.
De Modified Harvard architectuur kan op diverse manieren gerealiseerd worden. Eén
van de mogelijkheden zie je in Figuur 15. Bij deze oplossing wordt een extra bus tussen de CPU en het datageheugen geplaatst. Het instructiegeheugen wordt klein gehouden en het datageheugen is groot. Hierdoor moeten in geval van nood instructies
10
11
www.electronics.dit.ie/staff/tscarff/architecture/neumann_harvard.gif
www.electronics.dit.ie/staff/tscarff/architecture/neumann_harvard.gif
- 23 -
in het datageheugen worden gezet maar zelfs in dat geval kan er nog altijd een instructie en een stuk data tegelijkertijd gelezen worden. Een bijkomend voordeel van
deze architectuur is dat normaliter er een instructie en twee stukken data tegelijkertijd gelezen kunnen worden. Het hebben van een extra bus is wel duurder. Daarom
wordt deze oplossing tegenwoordig nauwelijks gebruikt.
Figuur 15: een mogelijke Modified Harvard architectuur12
Een andere, meer gebruikte, manier om de Modified Harvard architectuur te realiseren
zie je in Figuur 16. Eerder heb je hiervan, in Figuur 8, ook al een voorbeeld gezien,
toen we het onderwerp caches behandelden. Wat een moderne CPU typisch doet is de
L1 cache dubbel uitvoeren. Het ene deel wordt gebruikt voor instructies (code) en het
andere voor data. De andere caches en het RAM werken dan volgens de Von Neumann architectuur en bevatten zowel data als instructies. Bij deze oplossing kan de
CPU altijd instructie en data tegelijkertijd uit de L1 cache lezen en kan het RAM toch
beide bevatten. Aangezien caches toch nodig zijn op de CPU brengt deze oplossing
nauwelijks extra kosten met zich mee.
12
embeddedsystemdesignhub.blogspot.nl/2009/11/introduction-to-dspic-dsc.html
- 24 -
Figuur 16: Modified Harvard architectuur met behulp van caches13
opgave 6.3
Leg in je eigen woorden duidelijk en volledig uit waarom de Modified
Harvard architectuur is bedacht en hoe je hem kunt implementeren.
opgave 6.4
Zijn de volgende beweringen waar of niet waar? Als je een bewering
niet waar vindt moet je uitleggen waarom je dat vindt.
a) Processoren werken op basis van de Von Neumann Cyclus.
b) De Von Neumann cyclus bestaat uit vier stappen te weten fetch,
decode, execute, en verify.
c) Een CPU bevat registers om data tijdelijk op de slaan.
d) Voorbeelden van registers zijn de RI en CP.
e) De oplossing voor het nadeel van de Harvard architectuur is de
Von Neumann architectuur.
f) Caches worden in moderne computers gebruikt om de Modified
Harvard architectuur te implementeren.
13
bron: internet, locatie onbekend
- 25 -
7. wat heb je geleerd
Je hebt in deze module een breed scala aan onderdelen en apparaten voorbij zien
komen die ofwel in de computerkast geplaatst moeten worden of er buiten op aangesloten moeten worden. Via kleur en onderstreping is aangegeven op welke zaken de
nadruk ligt.
opgave 7.1
In voorgaande modules was dit hoofdstuk helemaal voor je ingevuld. Uiteindelijk is het belangrijk dat je zelf hoofd van bijzaken leert
onderscheiden en je een grote hoeveelheid informatie snel terug
kunt brengen naar de essentie zodat je deze efficiënt kunt leren.
Vul dit hoofdstuk zelf in door met steekwoorden en/of korte zinnen
aan te geven wat en waarover je waarschijnlijk de meeste vragen
gaat krijgen in de toets en het SE.
- 26 -

Vergelijkbare documenten