Next: Data Cache Unit (on-chip
Up: Integer Execution Unit
Previous: Integer Execution Unit
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: Data Cache Unit (on-chip
Up: Integer Execution Unit
Previous: Integer Execution Unit
Anandha Gopalan
2001-12-01