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.

RISC processors<br />

Compaq Alpha<br />

Motorola MC 88000<br />

HP PA<br />

IBM Power<br />

PowerPC<br />

Alliance<br />

PowerPC<br />

MIPS R<br />

Sun/Hal SPARC<br />

CISC processors<br />

Intel 80x86<br />

IBM ES<br />

TRON Gmicro<br />

CYRIX M<br />

Motorola MC 68000<br />

AMD Nx/K<br />

FIGURE 6.1 Chronology of the introduction of renaming in commercial superscalar processors. As date of introduction,<br />

we indicate the first year of volume production. Following the model designation, we also show the issue<br />

rate of the processors (in brackets). Concerning the issue rate of CISC processors we note that one x86 instruction<br />

38<br />

can be considered to be equivalent of 1.3–1.9 RISC instructions. In this figure, we give references to the processors<br />

that make use of renaming.<br />

of them. Our choice is the one where (i) renaming is implemented by using rename register files (RRF) ,<br />

and (ii) architectural registers are mapped to rename registers by means of mapping tables.<br />

Although<br />

both terms are explained later in the subsequent section, beforehand we note that rename register files,<br />

split to separate fixed-point (FX) and floating-point (FP) RRFs, store the instruction results produced by<br />

the execution units temporarily, while the FX- and FP-mapping tables hold the actual mappings of the<br />

FX- and FP-architectural registers to the associated rename registers, as indicated in the section on<br />

“Methods of Register Mapping.”<br />

Concerning the underlying microarchitecture there are two design aspects, which affect the implementation<br />

of the rename process: (i) whether or not the processor uses shelving (dynamic instruction issue,<br />

queued issue; see related box) and (ii) assuming the use of shelving, what kind of operand fetch policy<br />

is employed (see related box). As recent superscalars predominantly make use of shelving,<br />

we take this<br />

design option for granted throughout this chapter section. Regarding the operand fetch policy, which is<br />

one design aspect of shelving, we take into account both alternatives, since superscalar processors make<br />

use of both policies. Thus, while we describe the rename process in the subsequent two sections, we do<br />

it in two scenarios, first assuming the issue bound fetch policy and then the dispatch bound fetch policy.<br />

In both the scenarios mentioned, we describe the rename process by focusing only on a small part of<br />

the microarchitecture, which is just enough to highlight the implementation of specific tasks of the<br />

rename process.<br />

The Process of Renaming, Assuming Issue-Bound Operand Fetching<br />

The considered part of the microarchitecture executes FX-instructions and consists of an architectural<br />

register file (ARF) and of an execution unit (EU), as shown in Fig. 6.2.<br />

We take for granted that shelving is implemented by providing dedicated buffers, called reservation<br />

stations ( RS),<br />

in front of the EU, and we assume that instructions are forwarded (dispatched ) from the<br />

RS to the EU in an in-order manner.<br />

Our subsequent description of the rename process is embedded into the general framework of instruction<br />

processing. Here, we distinguish the following four processing phases: (i) decoded instructions are<br />

© 2002 by CRC Press LLC<br />

Power1 (4) 12<br />

(RS/6000)<br />

Alpha 21064 (2) Alpha 21164 (4)<br />

PA7100 (2)<br />

Power2 (6/4) 13<br />

PPC 601 (3) 15 ∗<br />

PPC 603 (3) 16 ∗<br />

∗∗∗<br />

SuperSparc (3)<br />

MC88110 (2)<br />

Pentium (2)<br />

ES/9000 (2) 28<br />

Gmicro/500 (2)<br />

MC 68060 (3)<br />

R 8000 (4)<br />

Nx586 ∗∗ (1/3) 31<br />

Alpha 21264(4) 7<br />

PA8000 (4)<br />

PentiumPro (3)<br />

9<br />

PM1(4) 23<br />

(Sparc64)<br />

Pentium III (3) 26<br />

PA8200(4) 10<br />

Power 3 (4)<br />

UltraSparc-2 (4)<br />

20<br />

PA 8500 (4) 11<br />

R 12000 (4) 22<br />

PPC 604 (4)<br />

UltraSparc (4)<br />

UltraSparc-3 (4)<br />

17 ∗<br />

Pentium/MMX (2)<br />

Pentium II(3) 25<br />

PPC 620 (4) 19 ∗<br />

R 10000 (4) 21<br />

PPC 602 (2) 18 ∗<br />

PA7200 (2) 8<br />

P2SC (6/4) 14 ∗∗∗<br />

Pentium 4 (3) 27<br />

24<br />

K5 (4) 32<br />

M1 (2) 29<br />

MII (2) 30<br />

K6 (3) 33<br />

K7 (3) 34<br />

1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000<br />

- Partial renaming<br />

- Full renaming<br />

∗<br />

PPC designates PowerPC.<br />

∗∗<br />

The Nx586 has scalar issue for CISC instructions but a 3-way superscalar core for converted RISC instructions.<br />

∗∗∗ The issue rate of the Power2 and P2SC is 6 along the sequential path while only 4 immediately after a branch.

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

Saved successfully!

Ooh no, something went wrong!