De Von Neumann-cyclus is het centrale mechanisme achter de werking van elke digitale computer die sinds 1946 gebouwd is.
De cyclus
De Von Neumann-cyclus bestaat uit een eeuwige herhaling van drie stappen, waarmee de processor in de computer alle programma's als een reeks instructies kan uitvoeren:
- Instruction Fetch
- Een instructie wordt als een rij bits ingelezen uit het werkgeheugen van de computer.
- Instruction Decode
- De ingelezen instructie wordt gedecodeerd in de werkelijke processor-instructie en de eventuele parameters die aan de instructie meegegeven worden.
- Instruction Execution
- De gedecodeerde instructie wordt uitgevoerd.
Om te bepalen welke instructie uit het werkgeheugen gelezen moet worden, is iedere processor uitgerust met een speciale teller, de instruction pointer of program counter. Deze teller bevat het geheugenadres van de instructie die dient te worden uitgelezen en wordt bij het uitvoeren van iedere instructie aangepast. Na de aanpassing wijst de teller naar de volgende instructie die uitgevoerd dient te worden.
Normaal gesproken bestaat de aanpassing van de teller uit een simpele ophoging met "de waarde van een enkele instructie". Dat wil zeggen: voor de ophoging wees de teller een instructie I aan in het geheugen van de computer, na de ophoging wijst de teller naar de instructie die direct achter I staat in het geheugen. Een dergelijke standaardophoging kan bijvoorbeeld bestaan uit het optellen bij de oude tellerwaarde van het aantal bits dat gereserveerd is voor een instructie binnen een gegeven computer. Een uitzondering op deze regel vormen de sprong-instructies, waarbij de computer heel ergens anders verdergaat met uitvoeren dan waar hij gebleven was. De uitvoering hiervan bestaat vaak uit het simpelweg overschrijven van de teller met geheugenadres, of het optellen van een aantal keren de ruimte voor een instructie ("spring zoveel instructies vooruit of achteruit").
Historisch perspectief
De Von Neumann-cyclus werd in 1946 gepresenteerd door wiskundige John von Neumann als praktische oplossing voor het probleem van de interne werking van een digitale computer. Zijn voorstel maakte het ontwerp van de digitale hardware aanzienlijk eenvoudiger (en ook meer lijkend op het model van de turingmachine), doordat instructies volgens de methode-Von Neumann opgeslagen konden worden in hetzelfde werkgeheugen als de te bewerken data in plaats van aparte hardware nodig te hebben voor instructies en voor data.
Von Neumann-cyclus
- Lees een bitrij uit het geheugen, vanaf het adres dat vastgelegd is in de IP (instruction pointer), en verhoog meteen de IP. Deze bitrij is de instructie.
- Decodeer de instructie.
- Voer de instructie uit.
- Begin van voren af aan.
Zie ook
- Microcomputer Systeemarchitectuur I. J.P. Kemper en M.P.J. Stevens.
- IA (Intel Architecture, 3 delen), manual. Kan gedownload worden van de Intel-website (gearchiveerd). Bevat alle informatie over de opbouw en instructies van de huidige processor. Deze informatie geldt voor bijna alle i386-processors (inclusief AMD). Deze link verwijst naar Pentium II-informatie (meest compatibel met andere processors)