21.01.2013 Views

Lecture Notes in Computer Science 4917

Lecture Notes in Computer Science 4917

Lecture Notes in Computer Science 4917

SHOW MORE
SHOW LESS

Create successful ePaper yourself

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

Other Entries ...<br />

Architectural Dest<strong>in</strong>ation Register<br />

Pervious RAT Map<br />

TROB Modify Flag (TM)<br />

ROB Po<strong>in</strong>ter<br />

Architectural Dest<strong>in</strong>ation Register<br />

Pervious RAT Map<br />

Turbo-ROB: A Low Cost Checkpo<strong>in</strong>t/Restore Accelerator 261<br />

Reorder Buffer (ROB)<br />

Turbo-ROB (TROB)<br />

B Entries ( B � A )<br />

A Entries<br />

Tail Po<strong>in</strong>ter Head Po<strong>in</strong>ter<br />

Architectural Register<br />

Bitvector (ARB)<br />

Fig. 2. Turbo-ROB organization. This figure assumes that the Turbo-ROB complements<br />

a ROB.<br />

Moreover, branch <strong>in</strong>structions occupy ROB entries but do not modify the RAT.<br />

Figure 1 illustrates via an example these two po<strong>in</strong>ts. The branch <strong>in</strong>struction<br />

A is mispredicted and the wrong path <strong>in</strong>structions B to E are fetched and decoded<br />

before the misprediction is discovered. The ROB-only recovery mechanism<br />

traverses the ROB entries 5 to 2 <strong>in</strong> reverse order updat<strong>in</strong>g the RAT. However,<br />

travers<strong>in</strong>g just the entries 3 and 2 is sufficient: Entry 5 conta<strong>in</strong>s no state <strong>in</strong>formation<br />

s<strong>in</strong>ce it corresponds to a branch; entry 4 correspond<strong>in</strong>g to R2 at <strong>in</strong>struction<br />

D can be ignored because the correct previous mapp<strong>in</strong>g (P2) is preserved by<br />

entry 2. A mechanism that exploits these observations can reduce recovery latency<br />

and hence improve performance. The TROB mechanism presented next,<br />

exploits this observation. To do so, it allows recovery only on branches and relies<br />

on the ROB or <strong>in</strong> re-execution as <strong>in</strong> [2] to handle other exceptions.<br />

2.1 Mechanism: Structure and Operation<br />

We propose TROB, a ROB-like structure that requires fewer resources. TROB<br />

is optimized for the common case and thus allows recovery at some <strong>in</strong>structions,<br />

which we call repair po<strong>in</strong>ts. The TROB records a subset of the <strong>in</strong>formation<br />

recorded <strong>in</strong> the ROB. Specifically, given a repair po<strong>in</strong>t B, the TROB conta<strong>in</strong>s<br />

at most one entry per architectural register correspond<strong>in</strong>g to the first update to<br />

that register after B. Recoveries us<strong>in</strong>g the TROB are thus potentially faster than<br />

ROB-only recoveries. To ensure that recovery is still possible at all <strong>in</strong>structions<br />

(for handl<strong>in</strong>g exceptions), a normal ROB is used as a backup.<br />

Figure 2 shows that the TROB is an array of entries that are allocated and<br />

released <strong>in</strong> program order. Each entry conta<strong>in</strong>s an architectural register identifier<br />

and a previous RAT map. Thus, for an architecture with X architectural registers<br />

and Y physical registers, each TROB entry conta<strong>in</strong>s log 2X +log 2Y bits. A<br />

mechanism for associat<strong>in</strong>g TROB entries with the correspond<strong>in</strong>g <strong>in</strong>structions<br />

R0<br />

R1<br />

R2<br />

R3<br />

Rx-1<br />

X bits

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

Saved successfully!

Ooh no, something went wrong!