Von-Neumann-ZyklusDer Von-Neumann-Zyklus bezeichnet in der Technischen Informatik einen Prozess bei der Befehlsverarbeitung in einem klassischen Von-Neumann-Rechner. Moderne Mikroprozessoren verwenden heutzutage jedoch getrennte Caches für Daten und Befehle und können deshalb als modifizierte Harvard-Prozessoren oder als Fast-Von-Neumann-Prozessoren bezeichnet werden, weshalb sie intern kaum noch etwas mit dem klassischen Von-Neumann-Zyklus gemein haben. Die TeilschritteDer Zyklus besteht aus fünf Teilschritten. Dabei kann ein Teilschritt mehrere Takte dauern. Nach dem Beenden des Zyklus beginnt dieser wieder von vorn und ein weiterer Befehl wird abgearbeitet.
Die letzten drei Phasen des Von-Neumann-Zyklus müssen nicht bei jeder Befehlsart alle ausgeführt werden. Viele arithmetisch-logische Befehle der aktuellen CPUs schreiben tatsächlich ihr Ergebnis nicht in den Hauptspeicher (HS) zurück. Das macht später ein getrennter Speicherbefehl, bei dem nur die WriteBack-Phase interessiert und deshalb der Operandenabruf fehlt und die Executephase „verkümmert“ ist. Andererseits wird bei Mehradressmaschinen das Ergebnis normalerweise sofort in den HS geschrieben. Aber auch alle modernen Prozessoren besitzen Befehle, die ihr Ergebnis sofort wieder in den HS schreiben, beispielsweise der auf einen Speicherplatz bezogene Inkrement-Befehl oder der Exchange-Befehl. Das ist weder selten noch wird dafür spezielle Hardware benötigt. Um eine zusätzliche Adressangabe im Befehl zu sparen, wird das Resultat auf den gleichen Platz eines Operanden „zurückgeschrieben“ (write back). Moderne Zentralprozessoren haben Taktfrequenzen von ca. 2 bis 6 GHz[1]. Pro Takt werden bei aktuellen Prozessoren
Als weitere leistungssteigernde Merkmale kommen hinzu:
FETCHIn das Befehlsregister, das zusammen mit Steuer- und Rechenwerk (arithmetisch-logische Einheit, ALU) den Hauptprozessor (CPU) darstellt, wird aus RAM- oder ROM-Speicher der nächste zu bearbeitende Befehl geladen. Anschließend wird der Befehlszähler (der Instruction Pointer) erhöht, so dass er auf die nächste Speicherstelle zeigt. Diese Erhöhung ist schon hier notwendig, damit ein Sprungbefehl mit „Rückkehrabsicht“ (Unterprogrammsprung) die Adresse des Folgebefehls vor dem Sprung sichern kann. Prozessoren können oft mehrere Befehle aus dem Speicher in einen Zwischenspeicher (Prefetch-Registerblock) laden, während der aktuelle Befehl noch ausgeführt wird. Dieses Verfahren wird als OpCode Prefetching (dt. Operationscode-Vorabruf) bezeichnet.
Weblinks
Einzelnachweise
|
Portal di Ensiklopedia Dunia