DIGITAL WORLD overzicht
Logische opbouw ‘von Neuman’ van een computer (dekstop/telefoon/e-reader/auto):
Met input krijg je informatie ín een systeem en met output krijg je informatie uít een
systeem.
Fysieke constructie van computers
Processor / Central Processing Unit / CPU
Wat is een CPU? De processor is het brein van de computer en voert taken uit
(rekenwerk, logische instructies), volgt data-instructies van het
RAM-geheugen op over het verplaatsen van opgeslagen data
naar de juiste plek en controleert of de andere componenten
goed blijven werken (program flow). De processor kan miljarden
taken per seconde uitvoeren. A.d.h. van de resultaten van
eerdere berekeningen (logische instructies) kan de CPU zelf
bepalen welke taak als volgende aan de beurt is, waardoor de
CPU op een manier onafhankelijk is van de mens.
CPU-snelheid De snelheid van de processor geeft aan hoeveel taken/instructies
de CPU kan uitvoeren/opvolgen in één seconde. De CPU heeft
een soort interne klok om alle taken te doorlopen. Elke klokslag
is één hertz. Dus: een CPU-snelheid van 2.2 GHz is 2,2 miljard
klokslagen per seconden, wat betekend dat de CPU 2,2 miljard
taken per seconde kan uitvoeren.
,Werking CPU CPU’s hebben eigen kleine geheugentjes waar één getal in kan
worden opgeslagen waar op dat moment mee gewerkt wordt.
Deze geheugentjes heten accumulators of registers. De
Program Counter / PC bevat het geheugenadres van de
volgende instructie. VB’s van instructies zijn ‘get’, ‘add
M1’, ‘print’, ‘stop’. Dit betekend ‘haal een getal uit het
geheugen en plaats het in de accumulator’, ‘tel daar de
waarde van geheugenadres M1 bij op’, ‘print het getal dat
daar uitkomt op het scherm’, ‘stop het proces’.
Normaalgesproken wordt de Program Counter met 1 opgehoogd na het
uitvoeren van een instructie (wat betekend dat het doorgaat naar de volgende
instructie), maar wij kunnen de waarde van de Program Counter beïnvloeden
met de instructie ifzero. Aangekomen bij ifzero wordt gekeken of het getal in
de accumulator ‘0’ is. Als dat niet zo is, gaat de PC gewoon door naar de
volgende instructie. Is dat wel zo, dan gaat de PC gelijk door naar de eerste
instructie van L2 / Label 2. De laatste functie van L1 is ‘go to L1’ (begin weer bij de
eerste instructie van L1), dus het programma stopt pas als de accumulator ‘0’ is bij
ifzero. Ifzero en andere instructies die bepalen waar een programma verdergaat,
heten program flow instructies.
Hoe zetten we dit programmatje van instructies in het geheugen? We moeten
het, zoals dat met alles moet wat het geheugen ingaat, omzetten in een reeks
getallen.
Hoe kun je een deling-programma maken met de toycomputer? ‘get’ vraag een getal aan de gebruiker,
en de 0’en onderaan betekenen dat het
deeltal, de deler en de quotiënt met
waarde ‘0’ beginnen als het programma
start.
Het lusje van L1 naar INC naar L1 naar
INC etc. wordt steeds herhaald, totdat
de deler zo vaak van het deeltal is
afgetrokken dat je op een negatief getal
uitkomt → dan ga je naar PR.
‘QUOT’ werd in INC elke keer met 1
opgehoogd als we de deler van het
deeltal hadden afgetrokken, dus QUOT
geeft nu het aantal aftrekkingen weer.
* Op het examen hoef je niet zoiets te programmeren, maar je moet wel begrijpen
hoe en waarom het werkt (die tekstblokjes naast de afbeelding dus).
Nadelen programma’s als de toycomputer schrijven/noteren:
- Je moet veel schrijven voor een simpel programmaatje
- Het is foutgevoelig
- Het is onoverzichtelijk
, Een CPU voert een instructie in 4 stappen uit:
1. Instructie uit het geheugen ophalen
2. De instructie decoderen (doet de instruction decode logic)
3. Uitvoeren van de instructie (voor elke instructie heeft de CPU
een apart microprogrammaatje in de ALU, waar het
daadwerkelijke rekenen gebeurd)
4. Resultaat opslaan (in de accumulator of in het geheugen
zetten bijv.)
De processortechnologie is bijna geheel gericht op het optimaliseren van de
verwerkingssnelheid.
• Cashes maken (RAM-geheugen is ver weg en sloom → oplossing: een kopie
van het relevante stukje RAM-geheugen in de CPU. De cache zit in de CPU
en is dus sneller. Als de CPU iets uit het geheugen nodig heeft, kijkt het eerst
of het in één van de cashes zit voordat het de RAM raadpleegt)
• Pipeline maken (als de accumulator bezig en de instruction decode logic de
volgende instructie al heeft gedecodeerd, kan de idl in plaats van wachten tot
de accumulator weer leeg is, ook vast de volgende instructie decoderen. Dit
heet pipeline. Het enige nadeel is dat als het proces stopt, je een paar
instructies in de idl hebt die niet uitgevoerd zullen worden, maar dat zij zo)
• Parallellisatie (meerdere CPU-cores die elk instructiereeksen uit kunnen
voeren parallel aan elkaar plaatsen)
Eigenschap CPU Een CPU is interrumpeerbaar. Dit houdt in dat de CPU stopt met
de normale voortgang / waar het mee bezig is als er een signaal
van buitenaf (een zogenoemde interrupt) binnenkomt van iets
dat gebeurt, bijvoorbeeld iemand drukt een toets in of beweegt
met de muis. Die interrupt wordt eerst afgehandeld voordat de
CPU doorgaat met de normale voortgang. VB’s van interrupts
zijn data van randapparatuur (muis/keyboard) en een fout in de
hardware of software.
Random Access Memory / RAM / primary memory
Wat is een RAM? De RAM slaat informatie die actief wordt gebruikt door de CPU
en andere componenten op als data. De informatie kan worden
veranderd door de CPU, waar de RAM de CPU instructies voor
geeft. Door deze samenwerking kunnen computers vele
verschillende processen runnen. Het heet trouwens random
access memory omdat de CPU direct toegang heeft tot de
opgeslagen informatie. Bij oude tapes moet je lang spoelen om