De processor (CPU)
Last updated
Was this helpful?
Last updated
Was this helpful?
De CPU is verantwoordelijk voor het uitvoeren van programma’s en bewerkingen. Daarvoor haalt de processor via de bus een onafgebroken stroom instructies op en voert die achtereenvolgens uit. De CPU bevat tenminste drie onderdelen:
ALU
registers
Control Unit
Om programma’s of bewerkingen uit te voeren, wordt door de CPU een aantal instructies verwerkt in een vaste volgorde: de instructiecyclus. Deze bestaat uit een herhaling van drie stappen: Fetch → Decode → Execute.
Fetch: de instructie wordt opgehaald uit het werkgeheugen (RAM).
Decode: de instructie wordt geanalyseerd en doorgestuurd.
Execute: de instructie wordt verwerkt door (onder andere) de ALU.
In de afbeelding in de popup zie je de componenten die in de CPU een belangrijke rol spelen bij de instructiecyclus.
De Control Unit vraagt een instructie op als een rij bits vanuit het RAM via de Bus Interface, analyseert de instructie en voert de instructie uit. De data die moeten worden bewerkt, stuurt de Control Unit naar de ALU.
De ALU voert de rekenkundige en logische bewerkingen uit en gebruikt daarbij de registers. Het resultaat van de bewerking wordt vervolgens door de Control Unit naar de Bus Interface gestuurd om te worden opgeslagen in het RAM.
Dit proces wordt aangestuurd door de klokpulsen van de computerklok en net zo lang herhaald tot de taak is uitgevoerd. Volgens het oorspronkelijke Von Neumann principe wordt elke cyclus geheel afgewerkt en kan daarna pas overgegaan worden naar de volgende cyclus. Dat levert vertraging op: de Von Neumann bottleneck (flessenhals). Je kunt het probleem van die flessenhals vergelijken met de fabricage van een auto waarbij een team een complete auto in elkaar zet en pas daarna aan de volgende begint. Voor een moderne CPU is dit niet langer een probleem, omdat er meerdere kernen beschikbaar zijn om instructies te verwerken.
De registers in de CPU bestaan uit uiterst snel geheugen en deze worden gebruikt bij het verwerken van de instructies. Een register is een (tijdelijke) opslagplek waar een binair 'woord' van bijvoorbeeld 32 of 64 bits kan worden opgeslagen. Een speciaal register is de program counter (instructieteller). Hierin staat het adres van de volgende instructie die moet worden uitgevoerd. Bij het starten van een nieuwe cyclus, leest de Control Unit de instructie op het adres in de program counter en zet die voor verwerking in het instructieregister. Daarna wordt de program counter met één verhoogd.
De ALU kan rekenkundige of logische instructies uitvoeren, maar daarmee kun je nog geen programma’s ontwikkelen. Bewerkingen moeten ook herhaald kunnen worden op steeds weer andere gegevens en van tijd tot tijd moeten er op basis van een of meer voorwaarden keuzes gemaakt worden. Bij het pinnen, bijvoorbeeld, wordt je pincode en saldo gecontroleerd en als die in orde zijn wordt het bedrag uitbetaald, anders niet.
Herhalingen en keuzes worden mogelijk gemaakt door spronginstructies en om data te kopiëren wordt gebruik gemaakt van instructies voor datatransport.