A pipelined processor is configured to provide virtual single-cycle instruction execution using a register locking mechanism in conjunction with instruction stalling based on lock status. In an illustrative embodiment, a set of register locks is maintained in the form of a stored bit vector in which each bit indicates the current lock status of a corresponding register. A decode unit receives an instruction fetched from memory, and decodes the instruction to determine its source and destination registers. The instruction is stalled for at least one processor cycle if either its source register or destination register is already locked by another instruction. The stall continues until the source and destination registers of the instruction are both unlocked, i.e., no longer in use by other instructions. Before the instruction is dispatched for execution, the destination register of the instruction is again locked, and remains locked until after the instruction completes execution and writes its result to the destination register. The decode unit can thus dispatch instructions to execution units of the processor as if the execution of each of the instructions completed in a single processor cycle, in effect ignoring the individual latencies of the execution units. Moreover, the instructions can be dispatched for execution in a program-specified order, but permitted to complete execution in a different order.

Un processor canalizzato è configurato per fornire l'esecuzione virtuale di istruzione del singolo-ciclo per mezzo di un meccanismo di bloccaggio del registro insieme con lo stalling di istruzione basato su condizione della serratura. In un incorporamento illustrativo, un insieme delle serrature del registro è effettuato sotto forma d'un vettore immagazzinato della punta in cui ogni punta indica la condizione corrente della serratura di un registro corrispondente. Un'unità di decodificazione riceve un'istruzione presa dalla memoria e decodifica l'istruzione per determinare i relativi la fonte e registri di destinazione. L'istruzione si arresta per almeno un ciclo del processor se il relativo registro di fonte o il registro di destinazione già è bloccato tramite un'altra istruzione. La stalla continua fino a sbloccare fonte ed i registri di destinazione dell'istruzione entrambi, cioè, più in uso tramite altre istruzioni. Prima che l'istruzione sia spedita per l'esecuzione, il registro di destinazione dell'istruzione è bloccato di nuovo e bloccare il remains fino a dopo che l'istruzione completi l'esecuzione e scriva il relativo risultato al registro di destinazione. L'unità di decodificazione può spedire così le istruzioni alle unità di esecuzione del processor come se l'esecuzione di ciascuna delle istruzioni abbia completato in un singolo ciclo del processor, in effetti ignoranti i diversi stati latenti delle unità di esecuzione. Inoltre, le istruzioni possono essere spedite per l'esecuzione in un ordine programma-specificato, ma essere consentite per completare l'esecuzione in un ordine differente.

 
Web www.patentalert.com

< (none)

< Linker method and cache structure for minimizing worst-case-execution-time

> Fast quantum mechanical algorithms

> (none)

~ 00020