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

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

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

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

Accelerator<br />

Patrick Akl and Andreas Moshovos<br />

University of Toronto, Canada<br />

Abstract. Modern processors use speculative execution to improve performance.<br />

However, speculative execution requires a checkpo<strong>in</strong>t/restore<br />

mechanism to repair the mach<strong>in</strong>e’s state whenever speculation fails. Exist<strong>in</strong>g<br />

checkpo<strong>in</strong>t/restore mechanisms do not scale well for processors<br />

with relatively large w<strong>in</strong>dows (i.e., 128 or more). This work presents<br />

Turbo-ROB, a checkpo<strong>in</strong>t/restore recovery accelerator that can complement<br />

or replace exist<strong>in</strong>g checkpo<strong>in</strong>t/restore mechanisms. We show<br />

that the Turbo-ROB improves performance and reduces resource requirements<br />

compared to a conventional Re-order Buffer mechanism. For example,<br />

on the average, a 64-entry TROB matches the performance of<br />

a 512-entry ROB, while a 128- and a 512-entry TROB outperform the<br />

512-entry ROB by 6.8% and 9.1% respectively. We also demonstrate that<br />

the TROB improves performance with register alias table checkpo<strong>in</strong>ts effectively<br />

reduc<strong>in</strong>g the need from more checkpo<strong>in</strong>ts and the latency and<br />

energy <strong>in</strong>crease these would imply.<br />

1 Introduction<br />

Modern processors use control flow speculation to improve performance. The processor<br />

does not wait until the target of a control flow <strong>in</strong>struction is calculated.<br />

Instead, it predicts a possible target and speculatively executes <strong>in</strong>structions at<br />

that target. To preserve correctness, recovery mechanisms restore the mach<strong>in</strong>e’s<br />

state on mispeculation. Recovery <strong>in</strong>volves revers<strong>in</strong>g any changes done by the<br />

<strong>in</strong>correctly executed <strong>in</strong>structions and resum<strong>in</strong>g execution at the correct target<br />

<strong>in</strong>struction. Modern processors utilize two such recovery mechanisms. The first<br />

is the reorder buffer (ROB) which allows recovery at any <strong>in</strong>struction <strong>in</strong> addition<br />

to mispeculated branches. Recover<strong>in</strong>g from the ROB amounts to squash<strong>in</strong>g, i.e.,<br />

revers<strong>in</strong>g the effects of each mispeculated <strong>in</strong>struction, a process that requires<br />

time proportional to the number of squashed <strong>in</strong>structions. The second recovery<br />

mechanism uses a number of global checkpo<strong>in</strong>ts (GCs) that are allocated prior to<br />

execut<strong>in</strong>g a branch and <strong>in</strong> program order. A GC conta<strong>in</strong>s a complete snapshot of<br />

all relevant processor state. Recovery at an <strong>in</strong>struction with a GC is “<strong>in</strong>stantaneous”,<br />

i.e., it requires a fixed, low latency. GCs are typically embedded <strong>in</strong>to the<br />

Register Alias Table (RAT) s<strong>in</strong>ce virtually all other processor structures do not<br />

need a checkpo<strong>in</strong>t/restore mechanism for most of their resources (they ma<strong>in</strong>ta<strong>in</strong><br />

a complete record of all <strong>in</strong>-flight <strong>in</strong>structions and thus recovery is possible by<br />

simply discard<strong>in</strong>g all erroneous entries).<br />

P. Stenström et al. (Eds.): HiPEAC 2008, LNCS <strong>4917</strong>, pp. 258–272, 2008.<br />

c○ Spr<strong>in</strong>ger-Verlag Berl<strong>in</strong> Heidelberg 2008

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

Saved successfully!

Ooh no, something went wrong!