Computerhardware 2020-2021
Examenvragen Computerhardware 2020
Hoofdstuk 2
1. Welke zijn de onderdelen van een CPU (pagina 55-56)? Geef een korte beschrijving van wat een
datapad is en op welke manier instructies er op uitgevoerd worden. (pagina 56-58) Wat wordt er
bedoeld met een CISC-architectuur? (pagina 60-61)
a) CPU = Central Processing Unit. De CPU bestaat uit
1) Control unit
a. verantwoordelijk voor het ophalen van instructies van het hoofdgeheugen en het bepalen
van het type van de instructie.
2) ALU = Arithmetic logical unit (1 of meerdere ALU’s): rekeneenheid
a. Voert (snelle) operaties zoals optelling, AND, OR, … uit
3) Geheugen, bestaande uit registers (high speed)
a. Om snel tijdelijk resultaten op te slaan, soms met een specifiek doel
b. Bv. programmateller: bevat adres van volgende uit te voeren instructie =‘instructionpointer’
c. Bv. Instructieregister: bevat de instructie die momenteel uitgevoerd wordt.
d. Bv. statusregister
b) Een datapad is een systeem waar je instructies uitvoert (zoals op de tekening.) Het bestaat uit ALU en
registers, die met elkaar verbonden zijn via bussen. A en B
zijn inputregisters waar de input voor de ALU wordt
bijgehouden zolang de ALU bezig is.
A en B worden geladen in inputregister van ALU, ALU gaat
daar even mee bezig zijn om te rekenen.
Resultaat wordt weggeschreven in het uitvoerregister, en
finaal wordt het naar een ander register (doelregister)
geschreven.
Deze cyclus is de datapadcyclus. Hoe sneller de cyclus, hoe
sneller de machine draait.
Stappen die CPU uitvoert om een instructie uit te voeren:
Ophalen, plaatsen in instructieregister, PC verplaatsen, instructietype bepalen, indien nodig haal woord
op uit geheugen en stop het in CPU-register, voer instructie uit. = fetch-decode-execute
c) CISC = Complex Instruction Set Computer,(tegenhanger van RISC: Reduced Instruction Set Computer.)
Focus ligt op sneller maken van het uitvoeren van een instructie (in tegenstelling tot RISC, waar men zo
veel mogelijk instructies tegelijk wilt uitvoeren, parallellisatie). Complexere operaties (zoals floating-
point) in één instructie steken, leidde vaak tot snellere uitvoeringstijden.
Nadelen: instructieset zal veel plaats innemen. RISC is eigenlijk sneller.
(Bij CISC-architectuur maakt men gebruik van het microprogramma (software) => interpretatie van
instructies. Een softwarematige instructie duurt wel langer dan die van de RISC. )
1
,Computerhardware 2020-2021
2. Wat is de achterliggende gedachte bij een RISC-architectuur? (p. 62-63) Aan welke
voorwaarden moeten instructies voldoen en waarom moeten ze aan die voorwaarden
voldoen? Beschrijf hoe een klassieke 5-traps RISC-pipeline functioneert. (p.66-67) Hoe werd de
pipeline bij de Pentium CPU geïmplementeerd? (p.68)
a) & b) CISC = Complex instruction set computer. RISC = Reduced Instruction Set Computer.
Systeem van een pipeline, die enkel werkt als de instruction set beperkt is (eenvoudige instructies).
De beperkte instruction set is een gevolg van het willen werken met een pipeline.
Vroeger (CISC) was het belangrijk dat instructies snel uitgevoerd konden worden. Principe bij RISC is het
aantal instructies dat per seconde gestart kan worden belangrijk (belangrijker dan hoe lang het duurt).
Door pipelining kan er aan een volgende instructie gewerkt worden zonder dat de vorige klaar is.
Instructies moeten vooral snel gestart kunnen worden, om betere performantie te bereiken. Minder
instructies (+- 50) dan bij vorige computers met CISC-architectuur (200 à 300) om er parallellisatie in te
krijgen.
Designprincipes:
Alle instructies worden rechtstreeks op hardware uitgevoerd
o niet geïnterpreteerd door micro-instructies want dat zorgt voor vertraging
Zo veel mogelijk instructies starten. Parallelliteit geeft performantiewinst.
Instructies moeten gemakkelijk gedecodeerd kunnen worden (vaste lengte, …, cf. assemblageband)
Enkel de load- en store-operaties mogen het geheugen refereren (duurt lang). De rest moet CPU-
registers aanspreken voor snelheidswinst.
Voorzie heel veel registers. (Geheugen aanspreken duurt lang).
c) 5-traps RISC-pipeline: werkt zoals een assemblageband, om parallelisme te verwezenlijken.
Instructies moeten op elkaar lijken om efficiënt te
werken. Je moet snoeien in het aantal vrijheidsgraden.
(structuur, uitvoeringstijd, …)
1) Instruction fetch: haal uit geheugen + plaats in buffer
2) decoderen van de instructie + typebepaling
3) ophalen van operandum
4) uitvoeren van instructie
5) resultaat wegschrijven naar juist register
Terwijl de ene instructie nog bezig is met decodeerfase,
kan een andere opgehaald worden, etc. Voortdurend 5
instructies in het systeem.
Nadelen van pipelining: bij een voorwaardelijke spronginstructie kan je niet meteen zeggen wat de
volgende instructie is.
d) Pipeline bij de Pentium CPU: De originele Pentium had twee vijf-stage pipelines.
Met twee pipelines, de U en V pipeline. U-pipeline kan
elke instructie uitvoeren. De V-pipeline een beperkt
aantal instructies en één floating-point-instructie. Een
paar van instructies moet compatibel zijn om in
parallel uitgevoerd te kunnen worden. Indien niet,
moest enkel de eerste uitgevoerd worden. De tweede
werd dan bijgehouden en gepaard met de volgende.
Verantwoordelijkheid van compiler. Instructies altijd uitgevoerd in volgorde.
2
, Computerhardware 2020-2021
3. Wat is het verschil tussen een GPU en een vector processor? Leg uit hoe ze beide functioneren.
Wat streven ze allebei na? Wat wordt er bedoeld met een multiprocessor en met een
multicomputer? (pagina 69-73)
a) GPU = Graphics processing unit wordt gebruikt voor o.a. operaties die van toepassing zijn op
beelden. Principe erachter: data(level)parallellisme; Single Instruction Multiple Data (SIMD) processor:
groot aantal identieke processoren die dezelfde instructies op meerdere datasets tegelijk uitvoeren.
Veel rekenkracht maar enkel voor geschikte datasets, goed met matrices.
Bij GPU: voorzie zoveel kernen als er data-elementen zijn. (Hier streeft men naar.)
Een vector processor is verwant aan een GPU. Beide werken met data-arrays.
Bij Vector processor: parallellisatie op data verwezenlijkt door grote vectorregisters (bv. 512 bit). Het
laden uit geheugen gebeurt serieel. -> heel grote gemeenschappelijke berekening uitvoeren in één
instructie. Het resultaat is een andere vector. Beiden streven SIMD na, maar de implementatie is anders.
b) Multiprocessors bestaan uit verschillende CPU’s die verbonden
zijn met hetzelfde geheugen, bv. via een bus. Geheugen vormt
bottleneck. CPU’s moeten goed op elkaar zijn ingesteld.
Snelle CPU’s zouden het systeem overbelasten.
Mogelijke oplossing: elk CPU een beetje geheugen geven. ->
sneller en minder verkeer. Probleem hier: conflicten bij wijzigen
data. Nadeel multiprocessors: schalen tot 256 CPU’s op één bus.
Oplossing daarvoor: geen common memory meer voorzien, elke CPU heeft zijn eigen private geheugen.
= multicomputer. Communicatie bij multicomputer: CPU’s sturen elkaar berichten.
Multiprocessor is makkelijk te maken, programma’s voor multicomputers zijn lastig. Multiprocessors zijn
moeilijk uitbreidbaar, multicomputers makkelijker. Multicomputers geschakeld in 2D/3D-roosters,
ringen, … CPU’s bij een multicomputer zijn ‘loosely coupled’, bij multiprocessor ‘tightly coupled’.
Bij multicomputers is het simuleren van shared memory lastig.
4. Wat is BCD-codering? (p. 74) Wat is het verschil tussen big endian notatie en little endian
notatie. Geef een voorbeeld waarbij je illustreert dat wanneer beide architecturen gegevens met
elkaar zouden uitwisselen het omdraaien van de bytes niet werkt. (p. 76-78 + voorbeeld les)
a) BCD-codering = Binary Coded Decimal – codering: techniek om decimale getallen op te slaan in binair
geheugen. Men gebruikt 4 bits om één decimaal cijfer op te slaan. 4 bit heeft echter 16 combinaties, er
worden maar 10 gebruikt (0-9). 6 combinaties dus niet gebruikt; neemt meer plaats in beslag.
Bv. getal 25: BCD: 0010 0101 binair: 00011001
b) Big endian: nummeren vanaf het “grote einde”. Little endian: omgekeerd. Bij little endian krijgt de
minst significante byte het laagste adres. Probleem zit ‘m in het feit dat er vaak een combinatie van
integers, characters, … opgeslagen wordt. Bij transmissie van de ene machine naar de andere, staat
bijvoorbeeld een naam (characters) nog goed, maar de integerbytes niet meer. Als alle bytes
omgedraaid (byte swap) worden staan de integers weer goed, maar de woorden niet.
3