Wanneer een instructie in een programma wordt uitgevoerd, gebeuren er verschillende dingen in de processor en het geheugen, afhankelijk van het type instructie:
1. Ophalen: De processor haalt de instructie uit het geheugen. Het adres van de instructie wordt gewoonlijk bewaard in een register dat de Program Counter (PC) wordt genoemd. De instructie wordt opgehaald uit de geheugenlocatie waarnaar de pc verwijst, en in een intern register binnen de CPU geplaatst.
2. Decoderen: De processor decodeert de opgehaalde instructie. Dit omvat het opsplitsen van de instructie in zijn samenstellende delen (opcode en operanden). De opcode specificeert de uit te voeren bewerking, terwijl de operanden de te gebruiken gegevens identificeren.
3. Voer uit: De processor voert de instructie uit. Dit omvat verschillende stappen:
* Rekenkundige/logische bewerkingen: Als de instructie een rekenkundige (optellen, aftrekken, etc.) of logische bewerking (AND, OR, XOR, etc.) is, voert de processor de gespecificeerde bewerking uit op de operanden (die zich mogelijk in registers of geheugen bevinden). Het resultaat wordt meestal opgeslagen in een register.
* Gegevensoverdracht: Als de instructie een instructie voor gegevensoverdracht is (zoals 'MOV' of 'LOAD'), worden gegevens verplaatst tussen registers, tussen een register en geheugen, of tussen geheugenlocaties. Dit omvat toegang tot het geheugen om gegevens te lezen of te schrijven.
* Controlestroom: Als de instructie een besturingsstroominstructie is (zoals `JUMP`, `BRANCH`, `CALL`, `RETURN`), verandert de processor de waarde van de pc. Dit verandert de volgorde van de uitgevoerde instructies. Dit kan inhouden dat u de voorwaarden controleert (bijvoorbeeld in een voorwaardelijke vertakking) en dat u de pc dienovereenkomstig bijwerkt.
* Invoer/uitvoer: Als de instructie invoer/uitvoer (I/O) omvat, werkt de processor samen met randapparatuur (bijvoorbeeld toetsenbord, schijfstation, netwerkkaart). Vaak betekent dit dat u moet wachten tot de I/O-bewerking is voltooid.
4. Terugschrijven (soms): Het resultaat van de instructie kan worden teruggeschreven naar het geheugen of een register. Niet alle instructies wijzigen het geheugen of de registers.
De rol van het geheugen:
* Opslag van instructies: De instructies van het programma worden in het geheugen opgeslagen.
* Opslag van gegevens: De gegevens waarmee het programma werkt, worden ook in het geheugen opgeslagen.
* Lezen en schrijven: De processor leest instructies en gegevens uit het geheugen en schrijft gegevens terug naar het geheugen. De snelheid van geheugentoegang is een kritische factor in de algehele prestaties van het systeem. Cachegeheugen speelt een cruciale rol bij het versnellen van dit proces.
Samenvattend impliceert het uitvoeren van een instructie een gecoördineerde inspanning tussen de besturingseenheid van de processor (ophalen, decoderen, uitvoeren), rekenkundige logische eenheid (ALU) (die bewerkingen uitvoert) en geheugen (dat instructies en gegevens levert). De specifieke bewerkingen in het geheugen zijn afhankelijk van het type instructie dat wordt uitgevoerd. |