next up previous
Next: Data Cache Unit (on-chip Up: Integer Execution Unit Previous: Integer Execution Unit

Combined Working and Architectural Register File

UltraSPARC-III has a working and architectural register file (WARF). This can be regarded as two separate register files. The Working Register File (WRF) consists of 32 64-bit registers, each with three write ports, seven read ports and a 1984-bit write port to transfer data from the Architectural Register File (ARF). The 160 entry ARF has three write ports and a 1984-bit read port to transfer data to the WRF. The ARF has only 156 physical registers, since the GLOBAL0 register GO, of the WRF is always 0. Sixty-four of the 156 ARF registers are eight register windows, each exclusively for the eight local registers. Another 64 registers, are eight sets, each shared between the 16 IN/OUT registers.

The processor access the working register file to get the integer operands needed for execution. The file is also written to as soon as results from the execution are known. If an exception occurs, the written results must be undone. This can be accomplished using the architectural register file. Results are not written to the architectural register file until the end of the pipeline, by which time all exceptions have been resolved. We can copy the architectural register file back into the working register file, once we have handled the exception. This gives us a fast, clean way to repair the pipeline state when exceptions do occur.

The WARF lets us remove the result bypass buses from most of the integer execution pipeline stages. Without bypass buses, we could shorten the integer data path and narrow the bypass multiplexing, both of which contribute to a short cycle time.


next up previous
Next: Data Cache Unit (on-chip Up: Integer Execution Unit Previous: Integer Execution Unit
Anandha Gopalan 2001-12-01