One embodiment of the present invention provides a system that facilitates
speculative execution of instructions within a computer system. Upon
encountering a stall during execution of an instruction stream, the system
synchronizes a cache containing data that is being operated on by the
instruction stream. Next, the system configures the cache so that the
cache operates as before except that changes to cache lines are not
propagated to lower levels of the memory system. The system then
speculatively executes a subsequent portion of the instruction stream
without waiting for the event that caused the stall to be resolved. In
this way, the speculative execution can only change data within the cache,
and these changes are not propagated to lower levels of the memory system
unless a subsequent commit operation takes place.
Eine Verkörperung der anwesenden Erfindung liefert ein System, das spekulative Durchführung von Anweisungen innerhalb eines Computersystems erleichtert. Nach dem Antreffen eines Stalls während der Durchführung eines Anweisung Stromes, synchronisiert das System einen Pufferspeicher, der Daten enthält, die an durch den Anweisung Strom bearbeitet wird. Zunächst baut das System den Pufferspeicher zusammen, damit der Pufferspeicher wie funktioniert, bevor außer daß Änderungen an den Pufferspeicherlinien nicht an den untereren Niveaus des Gedächtnissystems fortgepflanzt werden. Das System dann führt spekulativ einen folgenden Teil des Anweisung Stromes durch, ohne den Fall zu warten, der den Stall veranließ behoben zu werden. Auf diese Art kann die spekulative Durchführung Daten innerhalb des Pufferspeichers nur ändern, und diese Änderungen werden nicht an den untereren Niveaus des Gedächtnissystems fortgepflanzt, es sei denn ein folgendes Betrieb stattfindet festlegen.