Method for compacting an instruction queue

   
   

A method of compacting an instruction queue in an out of order processor includes determining the number of invalid instructions below and including each row in the queue, by counting invalid bits or validity indicators associated with rows below and up to the current row. For each row, multiplexor select signals are generated from the flat vector counts for the N rows above and including the present row, and from the validity indicators associated with the N rows, where N is a predetermined value. A multiplexor associated with a particular row selects one of the N rows according to the select value, and moves or passes the instruction held in the selected row to the present row. A row's select value is determined by forming a diagonal from the N count vectors corresponding to the N rows above and including the present row, and logically ANDing, each diagonal bit with the valid bit associated with the same row. Each row's count vector is determined in two stages. In the first stage, a local count is determined for each row in a local group of rows, and a global count is determined for the entire local group. Each local count is determined by counting the validity indicators associated with rows in the local group. In the second stage, a final count is determined for each row in the queue, by combining the local and global counts generated for the local group in the first stage, with global counts generated in local groups below the local group. The N rows can extend to the queue's input pipeline.

Eine Methode des Verbindens einer Anweisung Warteschlange in einem außer Betriebprozessor schließt die Bestimmung der Zahl unzulässigen Anweisungen unter und das Einschließen jeder Reihe in der Warteschlange mit ein, indem sie unzulässigen Spitzen oder die Gültigkeit Anzeigen, die mit Reihen unterhalb und bis zu der gegenwärtigen Reihe verbunden sind zählt. Für jede Reihe werden auserwählte Signale des Mehrfachkopplers von den flachen vektorzählimpulsen für die N Reihen über und das Einschließen der anwesenden Reihe und von den Gültigkeit Anzeigen erzeugt, die mit den N Reihen verbunden sind, in denen N ein vorbestimmter Wert ist. Ein Mehrfachkoppler verband mit einer bestimmten Reihe vorwählt eine der N Reihen entsprechend dem auserwählten Wert und bewegt oder führt die Anweisung, die in der vorgewählten Reihe zur anwesenden Reihe gehalten wurde. Der auserwählte Wert einer Reihe wird durch die Formung einer Diagonale von den N Zählimpulsvektoren festgestellt, die den N Reihen über entsprechen und die anwesende Reihe einschließen, und logisch ANDing, jede diagonale Spitze mit der gültigen Spitze, die mit der gleichen Reihe verbunden ist. Zählimpulsvektor jeder Reihe wird in zwei Stadien festgestellt. Im ersten Stadium wird ein lokaler Zählimpuls für jede Reihe in einer lokalen Gruppe Reihen festgestellt, und ein globaler Zählimpuls wird für die gesamte lokale Gruppe festgestellt. Jeder lokale Zählimpuls wird festgestellt, indem man die Gültigkeit Anzeigen zählt, die mit Reihen in der lokalen Gruppe verbunden sind. Im zweiten Stadium wird ein abschließender Zählimpuls für jede Reihe in der Warteschlange festgestellt, indem man die lokalen und globalen Zählimpulse kombiniert, die für die lokale Gruppe im ersten Stadium erzeugt werden, wenn die globalen Zählimpulse in den lokalen Gruppen erzeugt sind, unterhalb der lokalen Gruppe. Die N Reihen können auf die Rohrleitung Eingang der Warteschlange verlängern.

 
Web www.patentalert.com

< CompactPCI hotswap automatic insertion/extraction test equipment

< Method for displaying a window

> Mechanism for executing computer instructions in parallel

> Method and apparatus for permuting code sequences and initial context of code sequences for improved electrical verification

~ 00103