The present invention is an apparatus that supports multiple assignment
code, comprising a register that may be assigned multiple values,
instructions that receive a value and dispatch a result, a first queue
that stores the results of an instruction during a pipeline stall, and a
second queue that stores the state of the register when an interrupt is
taken. The value assigned to a register may be available for processing
only after a latency period has passed. The value received by an
instruction from a register is the most recent value assigned to the
register for which the latency period has passed. The first queue
eliminates the need for global stalls in the context of various pipeline
implementations. The second queue allows for interruptibility. The present
invention further comprises a mode where the software identifies that it
does not intend to exploit multiple assignment code.
La presente invenzione è un apparecchio che sostiene il codice multiplo di assegnazione, contenendo un registro che può essere assegnato i valori multipli, istruzioni che ricevono un valore e spedisce un risultato, una prima coda che immagazzina i risultati di un'istruzione durante la stalla della conduttura e una seconda coda che memorizza il dichiarare del registro quando un'interruzione è presa. Il valore assegnato ad un registro può essere disponibile per l'elaborazione solo dopo che un periodo di stato latente ha passato. Il valore ricevuto tramite un'istruzione da un registro è il valore più recente assegnato al registro per cui il periodo di stato latente ha passato. La prima coda elimina l'esigenza delle stalle globali nel contesto di varie esecuzioni della conduttura. La seconda coda tiene conto il interruptibility. La presente invenzione ulteriore contiene un modo dove il software identifica che non intende sfruttare il codice multiplo di assegnazione.