Hoofdstuk 1 Hardware
1 De Processor en Intern geheugen
1.1. De processor
De microprocessor of
centrale verwerkings-eenheid (C.V.E.),
of Central Processing Unit (C.P.U.)
is het hart van elke computer.
De snelheid van de processor is van doorslaggevend belang voor
de prestatie van de computer.
De grootste fabrikant van processoren is
INTEL, die de Pentium en de
Celeron fabriceert.
Concurrenten van INTEL zijn
o.a.AMD, IBM, CYRIX.
Elke processor is weer anders, en natuurlijk beter, dan de
vorige. Maar als een programma met een oudere processor draait,
loopt het ook wel op computers met nieuwere processoren, maar
andersom is dat niet altijd het geval.
De CPU zit meestal m.b.v. een slot of
een socket op het moederbord vast, maar tegenwoordig
zit hij ook wel op een speciale
insteekkaart.
Hij kan gemakkelijk worden verwijderd en vervangen door een
andere.
Een processor is voorzien van een
koeling want hij produceert behoorlijk wat warmte.
Meestal is dit een aluminium gietstuk bestaande uit een
plaat met daarop een groot aantal
uitsteeksels.
Vaak wordt ook een ventilator
op het koellichaam geplaatst.
De processor bestaat uit een aantal
onderdelen: de rekenkundige en logische eenheid (ALU
= arithmetic and logical unit), een aantal registers en de
besturingseenheid (CU = control unit). Zie de figuur hier onder.

- De rekenkundige en logische
eenheid of ALU voert rekenkundige bewerkingen
uit. Bijvoorbeeld het optellen van twee getallen, dat doet
de rekeneenheid. Dat gaat m.b.v. schakelingen; één van die
schakelingen, namelijk die voor de optelling, is in
hoofdstuk 2 besproken.
En hij vergelijkt waarden; er wordt dan bijvoorbeeld gekeken
of het ene getal groter is dan het andere. Het resultaat van
zo'n vergelijking is waar of onwaar, en afhankelijk van dat
resultaat worden bepaalde opdrachten uitgevoerd. Het
vergelijken doet de logische eenheid.
- De registers zijn
tijdelijke opslagplaatsen voor gegevens en instructies.
Er is een register, waarin de instructie wordt opgeslagen,
die aan de beurt is om uitgevoerd te worden. Dat is het
instructieregister, IR.
Er is ook een register, waarin het adres van de
eerstvolgende instructie bewaard wordt (dat is het nummer
van de geheugenplaats waar die opdracht staat). Dat is de
instructie-pointer, IP.
Verder zijn er nog een heel stel registers waar gegevens in
bewaard kunnen worden, bijvoorbeeld getallen die moeten
worden opgeteld, en ook de uitkomst van die optelling.
Die registers worden aangegeven met
R1, R2, enz.
De eerste processoren hadden maar heel weinig registers. Er
was maar één register waar een uitkomst in bewaard kon
worden, dat werd de accumulator
genoemd.
- De besturingseenheid, of
Control Unit (CU), bestuurt de instructiecyclus
(zie de volgende paragraaf) en zorgt er voor dat de stappen
goed doorlopen worden.
1.2. De kloksnelheid en MIPS
De processor doet het eigenlijke werk van de computer.
Een programma bestaat uit een hele reeks instructies. De
processor voert die instructies één voor één uit. Dat moeten
machinetaal-instructies zijn,
anders begrijpt de processor ze niet.
Wat machinetaal-instructies precies zijn hoor je later.
De snelheid van een processor wordt vooral bepaald door de
kloksnelheid, die wordt gegeven in
megahertz (MHz) of gigaherz (GHz)
Bij de nu verkochte processoren is de grens van 3GHz. al
overschreden.
3 GHz of 3000 MHz wil zeggen dat er 3000 000 000 kloksignalen
per seconde worden afgegeven.
En bij elke kloktik doet de processor iets, en daarbij wordt de
zogenaamde instructiecyclus
gevolgd:
De
instructie wordt uit het RAM-geheugen opgehaald en in het
instructieregister (= IR)
op de processor gezet
- De instructie wordt gedecodeerd, en de
instructiepointer (= IP)
wordt met één verhoogd. (De instructiepointer is een
register op de processor waarin is vastgelegd welke
instructie aan de beurt is)
- De instructie wordt uitgevoerd
- Daarna begint het weer opnieuw, de volgende instructie
wordt opgehaald, enz.
De instructies worden dus één voor één door de processor
uitgevoerd, want de processor kan maar één ding tegelijk doen.
Dit heet het Von Neumann-principe.
Als je er op let hoeveel instructies (met een instructie wordt
bijvoorbeeld een optelling bedoeld) er per seconde uitgevoerd
kunnen worden, dan heb je de MIPS-waarde (MIPS
= miljoenen instructies per seconde).
Het is technisch mogelijk om op het moederbord een hogere
kloksnelheid in te stellen dan op de processor is aangegeven.
Dit noemt men overklokken,
maar je loopt wel het risico dat de processor oververhit wordt.
Het aantal bits dat de processor tegelijk kan verwerken speelt
ook een rol. Bij de nieuwste processoren (vanaf de Pentium) is
dat 64 bits.
1.3. Typen processoren, de Von Neumann-bottleneck
- De Pentium
De Pentium kan meerdere instructies tegelijkertijd verwerken
en beschikt extern over een 32-bit adres bus en een 64-bit
databus.
De processor zit samen met het cache geheugen op een apart
insteekkaartje. Verder werkt het L2-cache geheugen op de
volledige processor snelheid.
De eerste Pentium 4 kwam uit in 2000. Naast de hogere
kloksnelheid biedt deze processor ook een hogere bussnelheid
dan zijn voorgangers. In de nieuwste Pentium 4-chips zitten
meer dan 100 miljoen transistoren.
- De Celeron Processor:
De Celeron processor is in principe identiek aan de Pentium
processor, alleen de L2-cache ontbreekt of is veel kleiner
dan bij de Pentium.
Het weglaten of verkleinen van het dure L2-cache-gedeelte
zorgt er voor dat de Celeron veel goedkoper is dan de
Pentium.
- AMD Athlon
Processorfabrikant AMD brengt de Athlon processoren op de
markt.
AMD probeert steeds opnieuw INTEL de loef af te steken.
De getallen naast het type zijn misleidend. Een Athlon XP
2500+ draait niet op 2500 MHz, maar op circa 1850 MHz. Het
getal 2500 wordt wel de Intel pentium rating genoemd. Het
geeft de kloksnelheid aan waarmee een Intel
Pentium-processor moet draaien om dezelfde prestaties te
halen als de AMD. Daarmee wordt ook aangetoond dat de
kloksnelheid niet alles zegt over de uiteindelijke
prestatie.
- De Sempron Processor:
De Sempron-processor is in principe identiek aan de
Athlon-processor, alleen de L2-cache ontbreekt of is veel
kleiner dan bij de Athlon. Wat de Celeron is voor Intel is
de Sempron voor AMD.
- Dual core processoren (of
multikern-processoren)
Een dual core-processor is een processor waarbij twee
processorkernen op één chip zitten.
Er zitten op één chip dus eigenlijk twee complete
processoren, maar die hebben één enkele verbinding met het
hoofdgeheugen; die verbinding moeten ze delen en dat is dan
ook de flessenhals van de dual core-processor.
Er is nog maar weinig software dat automatisch gebruik maakt
van meerdere kernen; oude programma's profiteren nauwelijks
van dual core-processoren.
Verder betekent het werken met twee kernen een verdubbeling
van het energieverbruik, en dat levert warmteproblemen op.
Om die problemen te voorkomen is de kloksnelheid van de dual
core-processor lager dan die van een processor met één kern.
Daardoor werkt een programma op een systeem met een dual
core-processor vaak langzamer dan op een systeem met een
processor met één kern, die op een hogere kloksnelheid
draait.
- De Core 2 Processor:
De Core 2 is de nieuwste processor van Intel. Dit is een
dual core-processor. De kracht zit dan ook niet in de
kloksnelheid, maar in de cachegrootte en het aantal kernen.
Ook AMD heeft een dual core-processor: de AMD Athlon 64 X2
De Von Neumann-bottleneck
Een programma bestaat uit een ontzettend groot aantal
opdrachten, en de processor werkt die opdrachten allemaal achter
elkaar af. Deze afhandeling is dus
sequentieel, ze worden één
voor één afgewerkt. Dat is het Von Neumann-principe.
Die opdrachten worden wel ontzettend snel achter elkaar
uitgevoerd, maar het zou natuurlijk nog veel sneller gaan als de
opdrachten tegelijkertijd uitgevoerd zouden kunnen worden. Maar
dat kan niet door het Von Neumann-principe, en daarom wordt dat
ook wel de Von Neumann-bottleneck
genoemd.
Er wordt steeds geprobeerd een oplossing te vinden voor die
bottleneck, in ieder geval om de snelheid te verhogen.
De kloksnelheid nog meer verhogen lukt bijna niet meer, daarom
zijn er andere oplossingen bedacht:
- Coprocessor.
Gebruik maken van een ondersteunende processor, een
zogenaamde coprocessor: naast de CVE wordt een extra
processor ingebouwd die speciale taken uitvoert. Vanaf de
80486 wordt er al gewerkt met een coprocessor, die zware
rekentaken op zich neemt.
- Hyper Threading.
Deze technologie werd voor het eerst door de Pentium
4-processor gebruikt.
Computerprogramma’s worden gesplitst in verschillende,
parallelle “instructiestromen”.
Hyper Threading maakt het mogelijk om de verschillende
instructiestromen gelijktijdig te laten verwerken door één
processor.
Vroeger werden commando's altijd na elkaar uitgevoerd. Nu
kan commando B beginnen, terwijl commando A nog aan de gang
is; dit noemt men ook wel pipelining.
- Dual core.
Een dual core-processor is een processor waarbij twee
processorkernen op één chip zitten.
Er zitten op één chip dus eigenlijk twee complete
processoren, maar die hebben één enkele verbinding met het
hoofdgeheugen; die verbinding moeten ze delen.
In 2007 zijn de eerste processoren met 4 kernen op de markt
gekomen, en er worden nu types ontwikkeld met 8
processorkernen.
- Parallelle processoren.
Bij het gebruik van parallelle processoren bevat de computer
2 of meer processoren, die elk een deel van de instructies
(gelijktijdig) uitvoeren. Dit wordt alleen in mainframes
(hele grote computers) toegepast.
- Cache.
Vanaf de Pentium wordt gebruik gemaakt van cache-geheugen,
dat ongeveer 50 keer zo snel is als gewoon geheugen.
1.4. Geheugen
Het geheugen van de computer wordt onderscheiden in extern en
intern geheugen.
Je noemt het geheugen extern
als de gegevens in dat geheugen niet gewist worden als de
computer wordt uitgezet (behalve ROM-geheugen, dat hoort bij het
intern geheugen, en wordt toch niet gewist bij het uitzetten van
de computer).
Voorbeelden van extern geheugen zijn: de
harde schijf (die zit meestal in de computer, maar hoort bij het
extern geheugen), een floppydisk, een CDROM, een USB-stick,
tape.
Er zijn drie soorten intern geheugen:
- ROM : Read Only Memory
- RAM : Random Access Memory
- Cache geheugen
Elke geheugencel in de computer heeft een nummer, dat wordt het
adres genoemd.
De computer onthoudt ook op welke plaats, dus op welk adres, hij
gegevens opslaat.
Tegenwoordig wordt meestal met 32-bits
adressering gewerkt, de adressen bestaan dan uit 4
bytes. Daarmee kun je 232 adressen gebruiken, dat is
ongeveer 4000 MB, dus 4 Gigabyte.
Het interne geheugen (het RAM-geheugen) is ongeveer 10000 keer
zo snel als de harde schijf.
De toegangstijd van intern geheugen wordt gemeten in
nanoseconden (een nanoseconde
is een miljardste seconde = 10-9 sec), en de
toegangstijd van de harde schijf wordt gemeten in
duizendsten van seconden.
Als je met een programma werkt dan wordt dat programma van de
harde schijf ingelezen, en in het werkgeheugen (=RAM-geheugen)
gezet.
Als het programma erg groot is, wordt soms niet het hele
programma in het werkgeheugen gezet, maar alleen het gedeelte
dat je op dat moment nodig hebt.
Als je dan een ander onderdeel van het programma wilt gebruiken
wordt dat eerst weer van de harde schijf gelezen en in het
RAM-geheugen gezet.
Als je met een bestand werkt dat groter is dan het gedeelte van
het RAM-geheugen dat voor die gegevens gereserveerd is, dan
passen die gegevens dus niet in het (gereserveerde)
werkgeheugen. Dan wordt het overgebleven gedeelte op een
speciaal gedeelte van de harde schijf gezet, en dan wordt er op
die manier mee gewerkt. Dat gedeelte van de harde schijf wordt
het virtuele geheugen
genoemd. Het is dus eigenlijk extern geheugen, maar het wordt
gebruikt alsof het intern geheugen is. Maar als daar veel
gebruik van gemaakt wordt dan werkt dat wel heel traag, en kun
je beter het interne geheugen vergroten om de computer sneller
te maken.
Cachegeheugen is ongeveer 50
keer zo snel als gewoon intern geheugen, maar het is ook
behoorlijk duurder dan RAM-geheugen.
In het cache-geheugen worden de dingen gezet, die al eens
gebruikt zijn (toen is het in het RAM-geheugen gezet, maar ook
in het cache-geheugen), en die vaker gebruikt worden. Als de
computer zoiets weer moet gebruiken kan het uit het
cache-geheugen worden gehaald, en dat gaat veel sneller dan uit
het RAM-geheugen.
1.5. ROM
Het systeemgeheugen, ook wel het ROM
(Read Only Memory) genoemd, wordt gebruikt om de
systeemsoftware in op te slaan.
HET ROM-geheugen is niet "vluchtig", zoals RAM-geheugen: de
gegevens van het ROM-geheugen blijven bewaard, ook als de
computer uit is. De gegevens kunnen ook niet gewist worden.

Er zijn verschillende soorten ROM:
- PROM's of programmable ROM worden in de
fabriek geprogrammeerd, daarna kan er
niets meer gewijzigd
worden.
- EPROM's of Erasable PROM's kunnen
meerdere malen geprogrammeerd
worden.
Tegenwoordig zijn de meeste moederborden voorzien van de
laatste soort: een flash-BIOS.
Het kan met speciale software vernieuwd worden. En de term
Read Only Memory is dus eigenlijk niet meer op zijn plaats.
Deze nieuwere chips zijn tevens geschikt voor Plug and Play:
ze kunnen signalen van randapparaten ontvangen en
interpreteren en hun instellingen daarop aanpassen.
Het ROM-geheugen bevat de BIOS.
BIOS is de afkorting van Basic
Input Output System, en het
bevat een aantal programma's die de
computer op de hardware instellen. Meestal is dit 1
MB groot.
De BIOS is dus software die verantwoordelijk is voor de
besturing van schijven, toetsenbord, monitor, muis, etc. Het
gedraagt zich als een brug tussen het besturingssysteem en de
hardware.
De BIOS zorgt er ook voor dat de gegevens uit de
CMOS worden gelezen.
CMOS is de afkorting van Complementary
Metal Oxide Semiconductor.
CMOS is een RAM-chip waarop de data
bewaard blijven met behulp van een klein batterijtje.
Het is een zeer klein geheugen van ongeveer 100 of 200 bytes, en
het heeft betrekking op o.a. de harde schijven, het toetsenbord,
de CPU, de waarden voor de chipset, de datum en de tijd, enz.
SETUP
De meeste gegevens worden door de fabrikant in het CMOS
geprogrammeerd, maar als je de configuratie van de PC wijzigt (vb.
nieuwe harde schijf) moet je die wijzigingen kunnen aanpassen.
De standaard (default) instellingen kunnen
gewijzigd worden m.b.v. het SETUP
programma.
Je kunt het Setup
programma meestal oproepen door de [delete-toets] of de [F1-toets]
in te drukken tijdens het opstarten van de PC (op de monitor is
tijdens het opstarten te zien welke toets je moet gebruiken).
1.6. RAM
Het werkgeheugen, ook wel het RAM
(dat is de afkorting van Random Access Memory)
genoemd, wordt door de computer gebruikt voor de tijdelijke
opslag van data.
De gegevens worden meestal op de harde schijf bewaard, maar de
processor kan er alleen mee werken als ze in het werkgeheugen
worden geladen.
Dat betekent bijvoorbeeld dat als je aan het typen bent het
programma en de ingetypte tekst beide in het werkgeheugen zijn
opgeslagen.
Als de stroom uitvalt zal de tekst, die nog niet is opgeslagen,
verloren gaan. Het programma staat waarschijnlijk op de harde
schijf en kan dus gemakkelijk weer opgestart worden.
Daarom wordt het RAM geheugen ook wel het
vluchtig geheugen genoemd.
Hoe meer RAM geheugen in je computer zit, hoe minder de pc
gegevens van de harde schijf hoeft in te lezen (wat aanmerkelijk
trager verloopt dan gegevens lezen uit het RAM geheugen). De
toegangstijd van het RAM geheugen is meestal iets tussen de
10 en 100 nanoseconden (dat
zijn miljardste seconden), terwijl die van
harde schijven meestal in de buurt van de
9 ms (milliseconden) zit.

De grootte van het intern geheugen bepaalt voor een deel de
snelheid van de computer.
Als je het RAM-geheugen uit wilt breiden dan kun je gewoon een
RAM-module kopen, en dat in de socket plaatsen.
Je moet dan wel weten welk type RAM-geheugen vereist is op je
moederbord.
PC's hebben tegenwoordig vaak 512 MB RAM, beter nog is 1024 MB,
en het komt al regelmatig voor dat er nog meer intern geheugen
is.
We kunnen twee soorten RAM onderscheiden: dynamisch
("gewoon"RAM) en statisch RAM (dat is cache-geheugen en dus
eigenlijk geeen RAM).
- DRAM
Het traditioneel geheugen is het
DRAM, of dynamisch RAM.
Dit geheugen moet om de zoveel milliseconden opgefrist
worden (refresh), omdat de condensatoren in de chip zichzelf
ontladen.
DRAM is goedkoper dan SRAM, maar ook minder snel.
Er worden voortdurend nieuwe types op de markt gebracht,
tegenwoordig wordt meestal DDR SDRAM (Double Data Rate
Synchronous Dynamic RAM) gebruikt.
DDR kan per kloktik twee keer data versturen, en SDR (Single
Data Rate) RAM maar één keer per kloktik. Daarom wordt DDR
RAM geheugen dat op 200 Mhz loopt vaak aangeduid als 400 Mhz
geheugen.
De moederbordsnelheid bepaalt welke geheugensnelheid
gebruikt kan worden.
Op een moederbord met een FSB van 200 MHz kun je ook 166 MHz
RAM-geheugen zetten, maar een deel van de snelheid van het
moederbord blijft dan onbenut. (maar als het DDR is, is de
eigenlijke snelheid van het geheugen 332 MHz)
Het RAM-geheugen is beschikbaar in
64 bit modules, die men DIMM's noemt, of
Dual Inline Memory
Module. Soms worden ook nog SIMM's
gebruikt.
SIMM staat voor Single
Inline Memory Module.
Vroeger waren ze 8 bits breed, tegenwoordig 32 bits.
Dat heeft tot gevolg dat je bij 64 bit processoren 2 SIMM's
nodig hebt, die dan in paren gemonteerd worden, en dat noem
je een bank.
Bij DIMM's is dat, tenminste bij 64-bit processoren, niet
nodig, omdat ze zelf 64 bits breed zijn.
- SRAM
SRAM betekent statisch RAM
geheugen.
In tegenstelling tot DRAM werkt het niet met condensatoren,
maar met transistoren (aan/uit schakelaars), en daardoor
blijft het zijn inhoud bewaren (zonder gerefresht te
worden). Dit geheugen is ook veel sneller dan het DRAM, en
wordt daarom ook gebruikt in L1 en
L2-cache geheugen .
Wil je nog meer over RAM weten ga dan naar de site
RAM door Michael Jordan
1.7. Cache geheugen
Het cache-geheugen is geheugen dat een
buffer vormt tussen het werkgeheugen en de processor.
Zoiets is nodig omdat moderne processoren zó snel zijn dat ze de
gegevens veel sneller kunnen verwerken dan het werkgeheugen ze
kan aanleveren.
Door het plaatsen van (dure) statische RAM chips als buffer
tussen het intern geheugen en de processor kan de werking van de
processor aanzienlijk versneld worden.
De cache bestaat uit speciale (zeer dure) geheugenchips die
veel sneller zijn dan die van het gewone werkgeheugen.
Gegevens worden vaak meer dan één keer gebruikt.
Eenmaal gebruikte gegevens kunnen dan uit het veel snellere
cache-geheugen worden gehaald, zodat de processor niet op het
werkgeheugen hoeft te wachten.
Bovendien worden de gegevens in aaneengesloten blokken
binnengehaald, en daardoor is de kans groot dat bij het
uitvoeren van een programma, er gegevens worden gebruikt die
zich al in de cache bevinden.
Bij de Pentium 4-processor is de zgn. level 1-cache (L1)
in de processor zelf ingebouwd,
en die is 20 KB groot. De omvang is relatief klein, maar
door zijn plaats op de processor is het effect groot.
En verder wordt er nog een tweede cache
ingebouwd [second level cache, L2] om de interne
cache van de processor aan te vullen, en die is 1 MB bij de
nieuwste processoren. Tegenwoordig zit die trouwens meestal op
dezelfde chip als de processor.
Het zijn statische RAM-chips (SRAM). Dit soort geheugenchips is
veel sneller dan de gebruikelijke dynamische RAM chips (DRAM),
maar ook veel duurder.
In principe is het niet mogelijk om cache geheugen toe te
voegen, dit in tegenstelling tot het RAM geheugen.
|