De FDE-cyclus, of Fetch-Decode-Execute-cyclus , is het fundamentele proces waarmee een CPU (Central Processing Unit) instructies uitvoert. Het is een continue lus die zich herhaalt totdat de CPU wordt uitgeschakeld of een stop-instructie tegenkomt. Hier is een overzicht van elke fase:
* Ophalen: De CPU haalt de volgende instructie uit het geheugen. De locatie van de volgende instructie wordt doorgaans opgeslagen in een register dat de Program Counter (PC) wordt genoemd. De pc wordt na elke ophaalactie opgehoogd om op volgorde naar de volgende instructie te verwijzen.
* Decoderen: De opgehaalde instructie wordt gedecodeerd. Dit houdt in dat de binaire code van de instructie wordt vertaald in een reeks signalen die de CPU kan begrijpen en waarop hij kan reageren. De decoder identificeert de uit te voeren bewerking (bijvoorbeeld optellen, aftrekken, geheugentoegang) en de operanden (de gegevens die de bewerking zal gebruiken). Deze fase kan inhouden dat wordt bepaald om welke registers of geheugenlocaties het gaat.
* Uitvoeren: De CPU voert de gedecodeerde instructie uit. Dit kan het uitvoeren van een rekenkundige bewerking inhouden, het verplaatsen van gegevens tussen registers of geheugen, of het regelen van de uitvoeringsstroom (bijvoorbeeld vertakken naar een ander deel van het programma). Het resultaat van de uitvoering kan worden opgeslagen in een register of geheugenlocatie.
In eenvoudiger bewoordingen: Stel je een recept voor (het programma). De FDE-cyclus is als een chef-kok die het recept volgt:
* Ophalen: De chef-kok leest de volgende stap in het recept.
* Decoderen: De chef-kok begrijpt wat de stap betekent (bijvoorbeeld "meel en suiker mengen").
* Uitvoeren: De chef-kok voert de stap uit (mengt feitelijk de bloem en de suiker).
Belangrijke overwegingen:
* Instructiesetarchitectuur (ISA): De details van de FDE-cyclus variëren afhankelijk van de ISA van de CPU. Verschillende ISA's hebben verschillende instructieformaten en manieren om instructies te coderen.
* Pipelining: Moderne CPU's maken gebruik van pipelining, die de FDE-fasen van meerdere instructies overlapt. Dit verhoogt de algehele instructiedoorvoer aanzienlijk. Hoewel het concept van Fetch-Decode-Execute centraal blijft staan, is de uitvoering niet strikt opeenvolgend.
* Onderbreekt: De FDE-cyclus kan worden onderbroken door externe gebeurtenissen (zoals toetsenbordinvoer of een timersignaal), waardoor de CPU de huidige instructie tijdelijk opschort en de interrupt afhandelt.
De FDE-cyclus is het kernmechanisme waarmee alle computerprogramma's worden uitgevoerd. Het begrijpen van de basisstructuur ervan is cruciaal om te begrijpen hoe CPU's op een laag niveau functioneren. |