15.01.2013 Views

U. Glaeser

U. Glaeser

U. Glaeser

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

(iv) Finally, while the processor completes an instruction, the temporary result held in the associated<br />

rename register is written into the architectural register, which is specified in the destination field of the<br />

instruction. The only tasks remaining are to delete the corresponding entry in the mapping table and to<br />

reclaim the rename register associated with the completed instruction. Reclaiming of the rename register<br />

is, however, a far more complex task than with issue bound operand fetching. Notice that if operands<br />

are fetched issue bound, (a) issued instructions immediately access their operands and (b) missing<br />

operands are, after their generation, immediately forwarded from the EU to the instructions waiting for<br />

these operands in the RS. In this case, after completion of an instruction, the allocated rename register<br />

can immediately be reclaimed. However, if operands are fetched during dispatching, the RS is not automatically<br />

updated with the produced results. As a consequence, after an instruction completes, the RS may<br />

still contain instructions, which will require the contents of the rename register, which is allocated to the<br />

just completed instruction. Thus, while instructions complete, their allocated rename registers cannot be<br />

reclaimed immediately as in the case of the issue bound operand fetching. To resolve this problem one<br />

possible solution is to maintain a counter for each rename register, which keeps track of the number of<br />

references made to this register. The counter will be incremented each time if one of the source operands<br />

of an issued instruction addresses this particular rename register, and will be decremented during<br />

dispatching of the instructions each time when a source operand is fetched from this register. After all<br />

outstanding fetch requests for a particular rename register are satisfied, as indicated by the counter score<br />

of zero, and the associated instruction has been completed, the related register becomes eligible for<br />

reclaiming. At the first sight it may seem that this intricate reclaim process can be avoided if during<br />

completion the RS would have been searched for all renamed source operand identifiers ( Rs1′ , Rs2′ ),<br />

which refer to the rename buffer, allocated to the completing instruction (Rd′), and matching renamed<br />

source register identifiers would have been remapped to the associated architectural register (Rd). Unfortunately,<br />

this idea is not applicable, since there is no guarantee that the addressed architectural register<br />

would not be rewritten until instructions needing its content are dispatched.<br />

During the rename process rename registers will take the same states and the same state transitions<br />

will also occur as described earlier in connection with Fig. 6.3. The only difference is that now rename<br />

registers are reclaimed according to modified conditions, as discussed previously.<br />

We emphasize that other basic alternatives of register renaming differ mainly in two aspects: (1) the<br />

processor can hold renamed values in other structures than rename register files and (2) the processor<br />

can use a different scheme for mapping the architectural registers to rename registers as assumed above.<br />

In addition, the processor should be able to rename not just one instruction per cycle but all issued<br />

instructions. Nevertheless, despite these differences, the previous descriptions in the two characteristic<br />

scenarios give a good background about how the rename process is carried out in any of the possible<br />

implementation schemes.<br />

The Design Space of Register Renaming Techniques<br />

Overview<br />

The design space of register renaming has four main dimensions: the scope of register renaming, the layout<br />

of the rename registers, the implementation technique of register mapping, and the rename rate, as<br />

indicated in Fig. 6.5. These aspects are discussed in the subsequent sections. For the presentation of the<br />

design space we make use of DS trees. 3,36<br />

FIGURE 6.5 Design space of register renaming.<br />

© 2002 by CRC Press LLC<br />

Scope of<br />

register renaming<br />

Layout of the<br />

rename buffers<br />

Register renaming<br />

Layout of the<br />

register mapping<br />

Rename rate

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!