15.01.2013 Views

U. Glaeser

U. Glaeser

U. Glaeser

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Basic<br />

alternatives:<br />

Impl.<br />

schemes:<br />

Proposals:<br />

Processors:<br />

FIGURE 6.13 Basic implementation alternatives of register renaming.<br />

composing their possible combinations. Concerning the selection of the relevant qualitative design aspects,<br />

we recall the design space of renaming, shown in Fig. 6.5. First, we can ignore two main aspects, the scope<br />

of register renaming, as recent processors typically implement full renaming, and the rename rate, because<br />

of its quantitative character. Thus, two main design aspects remain, the layout of the rename buffers and<br />

the implementation of register mapping. Furthermore, as Fig. 6.7 indicates, the layout of the rename<br />

buffers itself covers three design aspects: the type and the number of rename buffers, and the number<br />

of the read and write ports. Of these only the type of the rename buffers is of qualitative character. From<br />

the design aspect layout of the register mapping (Fig. 6.11) we consider the method of keeping track of<br />

actual mappings the only relevant aspect. It follows that the design space of register renaming includes<br />

only two relevant qualitative aspects: the type of the rename buffers and the method of keeping track of<br />

actual mappings.<br />

The design choices available for these two relevant design aspects result in eight possible combinations,<br />

called the basic alternatives for register renaming, as shown in Fig. 6.13. In addition, as the operand fetch<br />

policy of the processor, which is a design aspect of shelving, significantly affects how the rename process<br />

is carried out, in this figure we also take into account this aspect. This splits the eight basic renaming<br />

alternatives into 16 feasible implementation schemes. In this figure we also indicate which implementation<br />

schemes are used in relevant superscalar processors, as well as give some hints about their origins.<br />

As Fig. 6.13 indicates, out of the eight possible basic alternatives of renaming, relevant superscalar<br />

processors make use only of four. Moreover, we can recognize that the latest processors employ mostly<br />

the following three basic alternatives of renaming:<br />

1. Use of merged architectural and rename register files and of mapping tables (R10000, R12000, M3)<br />

2. Use of separate rename register files and mapping registers within the rename registers (PA8x00<br />

line, Power3)<br />

3. Renaming within the ROB and using mapping tables (Pentium Pro, Pentium II, Pentium III)<br />

We note furthermore that it is also conceivable to use different basic alternatives for renaming FX- and<br />

FP-instructions, as is done in the K7. This processor uses the ROB for renaming FX-instructions and a<br />

merged architectural and rename register file for renaming floating point ones; however, as AMD did<br />

not disclose the method of register mapping, we have not included this processor into Fig. 6.13.<br />

© 2002 by CRC Press LLC<br />

Merged architectural<br />

and rename register file<br />

Using a<br />

mapping table<br />

Issue<br />

bound<br />

operand<br />

fetching<br />

Dispatch<br />

bound<br />

operand<br />

fetching<br />

Keller(1975) 6<br />

ES/9000 (1992)<br />

Power1 (1990)<br />

Power2 (1993)<br />

P2SC (1996)<br />

Nx586 (1994)<br />

R10000 (1996)<br />

R12000 (1999)<br />

M3 (2000)<br />

Pentium 4 (2000)<br />

PM1 (1995)<br />

(Sparc64)<br />

Mapping<br />

within the RBs<br />

Separate<br />

rename register files<br />

Using a<br />

mapping table<br />

Mapping<br />

within the RBs<br />

Issue<br />

bound<br />

operand<br />

fetching<br />

PowerPC 603 (1993)<br />

PowerPC 604 (1995)<br />

PowerPC 620 (1996)<br />

Dispatch<br />

bound<br />

operand<br />

fetching<br />

Power3 (1998)<br />

PA 8000 (1996)<br />

PA 8200 (1997)<br />

PA 8500 (1999)<br />

Basic alternatives of register renaming<br />

Using a<br />

mapping table<br />

Issue<br />

bound<br />

operand<br />

fetching<br />

Pentium Pro (1995)<br />

Pentium II(1997)<br />

Pentium III (1999)<br />

Renaming within<br />

the ROB<br />

Dispatch<br />

bound<br />

operand<br />

fetching<br />

Mapping<br />

within the RBs<br />

Issue<br />

bound<br />

operand<br />

fetching<br />

Smith-Pleszkun 46<br />

(1987)<br />

Johnson (1987) 47<br />

Am29000 (1995)<br />

K5 (1995)<br />

Dispatch<br />

bound<br />

operand<br />

fetching<br />

Sohi,Vajapeyam* 48<br />

(1987)<br />

Lightning* (1991)<br />

K6* (1997)<br />

Using a<br />

mapping table<br />

Issue<br />

bound<br />

operand<br />

fetching<br />

Renaming within<br />

the shelving buffers<br />

Dispatch<br />

bound<br />

operand<br />

fetching<br />

Mapping<br />

within the RBs<br />

Issue<br />

bound<br />

operand<br />

fetching<br />

*The shelving buffers are also implemented in the ROB. The resulting unit is occasinally called the DRIS<br />

Dispatch<br />

bound<br />

operand<br />

fetching

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

Saved successfully!

Ooh no, something went wrong!