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 Accelerator 265<br />

2.5 TROB and In-RAT Global Checkpo<strong>in</strong>ts<br />

F<strong>in</strong>ally, the TROB can be used <strong>in</strong> conjunction with GCs with or without a ROB.<br />

If a ROB is available, recovery proceeds first at the nearest subsequent GC or<br />

repair po<strong>in</strong>t via the GCs or the TROB respectively. Then, recovery completes via<br />

the ROB. If no ROB is available, recovery first proceeds to the nearest earlier GC<br />

or repair po<strong>in</strong>t. Recovery completes by re-execut<strong>in</strong>g the <strong>in</strong>terven<strong>in</strong>g <strong>in</strong>structions<br />

as <strong>in</strong> [2]. In this paper we study the design that comb<strong>in</strong>es a TROB with few GCs<br />

and a ROB.<br />

3 Related Work<br />

Mispeculation recovery has been extensively studied <strong>in</strong> the literature. Related<br />

work can be classified <strong>in</strong>to the follow<strong>in</strong>g categories: 1) Reduc<strong>in</strong>g the mispeculation<br />

recovery latency, 2) Confidence estimation for speculation control, and<br />

3) Multipath execution and <strong>in</strong>struction reuse. Due to space limitations, we restrict<br />

our attention to the first two categories not<strong>in</strong>g that <strong>in</strong> pr<strong>in</strong>ciple the TROB<br />

is complementary to techniques <strong>in</strong> the third category.<br />

Reduc<strong>in</strong>g the Mispeculation Recovery Latency: Aragon et al. analyzed<br />

the causes of performance loss due to branch mispredictions [3] and found that<br />

the pipel<strong>in</strong>e-fill penalty is a significant source of performance loss due to mispredictions.<br />

The TROB reduces a significant component of this latency.<br />

The Reorder Buffer, orig<strong>in</strong>ally proposed by Smith and Pleszkun, is the traditional<br />

checkpo<strong>in</strong>t<strong>in</strong>g mechanism used to recover the mach<strong>in</strong>e state on mispredictions<br />

or exceptions [13]. As previous studies have shown, recover<strong>in</strong>g solely<br />

us<strong>in</strong>g the reorder buffer <strong>in</strong>curs significant penalties as the processor w<strong>in</strong>dow <strong>in</strong>creases<br />

[2,1,11,16]. To alleviate this concern, non-selective <strong>in</strong>-RAT checkpo<strong>in</strong>t<strong>in</strong>g<br />

has been implemented <strong>in</strong> the MIPS R10000 processor [15]. Moshovos proposed an<br />

architecture where the reorder buffer is complemented with GCs taken selectively<br />

at hard-to-predict branches to reduce the GC requirements for large <strong>in</strong>struction<br />

w<strong>in</strong>dow processors [11]. Akkary et al. proposed an architecture that does not<br />

utilize a reorder buffer and <strong>in</strong>stead creates GCs at low confidence branches [2,1].<br />

Recovery at branches without a GC proceeds by recover<strong>in</strong>g at an earlier GC<br />

and re-execut<strong>in</strong>g <strong>in</strong>struction up until the mis-speculated branch. As we show <strong>in</strong><br />

this paper, the TROB can be used <strong>in</strong> conjunction with <strong>in</strong>-RAT checkpo<strong>in</strong>t<strong>in</strong>g.<br />

Modern checkpo<strong>in</strong>t/recovery mechanisms have evolved out of earlier proposals<br />

for support<strong>in</strong>g speculative execution [7, 13, 14].<br />

Zhou et al. proposed Eager Misprediction Recovery (EMR), which allows some<br />

<strong>in</strong>structions whose <strong>in</strong>put registers’ map were not corrupted to be renamed <strong>in</strong><br />

parallel with RAT recovery [16]. While the idea is attractive, the implementation<br />

complexity has not been shown to be low. While Turbo-ROB can <strong>in</strong> pr<strong>in</strong>ciple be<br />

used with this approach also, this <strong>in</strong>vestigation is left for future work.<br />

Confidence Estimation for Speculation Control: Turbo-ROB relies on<br />

a confidence estimator for identify<strong>in</strong>g weak branches. Manne et al. propose

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

Saved successfully!

Ooh no, something went wrong!