A reorder buffer is configured into multiple lines of storage, wherein a
line of storage includes sufficient storage for instruction results
regarding a predefined maximum number of concurrently dispatchable
instructions. A line of storage is allocated whenever one or more
instructions are dispatched. A microprocessor employing the reorder buffer
is also configured with fixed, symmetrical issue positions. The
symmetrical nature of the issue positions may increase the average number
of instructions to be concurrently dispatched and executed by the
microprocessor. The average number of unused locations within the line
decreases as the average number of concurrently dispatched instructions
increases. One particular implementation of the reorder buffer includes a
future file. The future file comprises a storage location corresponding to
each register within the microprocessor. The reorder buffer tag (or
instruction result, if the instruction has executed) of the last
instruction in program order to update the register is stored in the
future file. The reorder buffer provides the value (either reorder buffer
tag or instruction result) stored in the storage location corresponding to
a register when the register is used as a source operand for another
instruction. Another advantage of the future file for microprocessors
which allow access and update to portions of registers is that
narrow-to-wide dependencies are resolved upon completion of the
instruction which updates the narrower register.
Ein neuordnenpuffer wird in mehrfache Linien der Ablage zusammengebaut, worin eine Linie der Ablage genügende Ablage für die Anweisung Resultate betreffend sind eine vorbestimmte Höchstzahl von gleichzeitig dispatchable Anweisungen einschließt. Eine Linie der Ablage wird zugeteilt, wann immer eine oder mehr Anweisungen geschickt werden. Ein Mikroprozessor, der den neuordnenpuffer einsetzt, wird auch mit den örtlich festgelegten, symmetrischen Ausgabe Positionen zusammengebaut. Die symmetrische Natur der Ausgabe Positionen kann die durchschnittliche Zahl Anweisungen erhöhen, durch den Mikroprozessor gleichzeitig geschickt zu werden und durchgeführt zu werden. Die durchschnittliche Zahl unbenutzten Positionen innerhalb der Linie verringert sich, während die durchschnittliche Zahl gleichzeitig geschickten Anweisungen sich erhöht. Eine bestimmte Implementierung des neuordnenpuffers schließt eine zukünftige Akte mit ein. Die zukünftige Akte enthält eine Speicherposition, die jedem Register innerhalb des Mikroprozessors entspricht. Der neuordnenpufferumbau (oder das Anweisung Resultat, wenn die Anweisung durchgeführt hat), der letzten Anweisung im Programmauftrag, das Register zu aktualisieren ist gespeicherte zukünftig Akte. Der neuordnenpuffer liefert den Wert (entweder ordnen Sie Pufferumbau oder Anweisung Resultat) neu, gespeichert in der Speicherposition, die einem Register entspricht, wenn das Register als Quellrechengröße für eine andere Anweisung benutzt wird. Ein anderer Vorteil der zukünftigen Akte für Mikroprozessoren, die Zugang und Update zu den Teilen Registern erlauben, ist, daß schmal-zu-breite Abhängigkeiten nach Beendigung der Anweisung behoben werden, die das schmalere Register aktualisiert.