A processor including at least one execution unit generating out-of-order
results and out-of-order condition codes. Precise architectural state of
the processor is maintained by providing a results buffer having a number
of slots and providing a condition code buffer having the same number of
slots as the results buffer, each slot in the condition code buffer in
one-to-one correspondence with a slot in the results buffer. Each live
instruction in the processor is assigned a slot in the results buffer and
the condition code buffer. Each speculative result produced by the
execution units is stored in the assigned slot in the results buffer. When
an instruction is retired, the results for that instruction are
transferred to an architectural result register and any condition codes
generated by that instruction are transferred to an architectural
condition code register.
Un procesador incluyendo por lo menos una unidad de la ejecución que genera resultados estropeados y códigos de condición estropeada. El estado arquitectónico exacto del procesador es mantenido proporcionando un almacenador intermediario de los resultados que tiene un número de ranuras y que proporciona un almacenador intermediario del código de condición que tiene el mismo número de las ranuras que el almacenador intermediario de los resultados, cada ranura en el almacenador intermediario del código de condición en correspondencia una por con una ranura en los resultados protege. Cada uno instrucción viva en el procesador se asigna una ranura en el almacenador intermediario de los resultados y el almacenador intermediario del código de condición. Cada resultado especulativo produjo por las unidades de la ejecución se almacena en la ranura asignada en el almacenador intermediario de los resultados. Cuando se retira una instrucción, los resultados para esa instrucción se transfieren a un registro arquitectónico del resultado y cualquier código de condición generado por esa instrucción se transfiere a un registro arquitectónico del código de condición.