CPROB: Checkpoint processing with opportunistic minimal recovery
Abstract
CPR (Checkpoint Processing and Recovery) is a physical register management scheme
that supports a larger instruction window and higher average IPC than conventional
ROB-style register management. It does so by restricting mis-speculation recovery
to checkpoints created at rename, and leveraging this restriction to aggressively
reclaim registers that don't appear in checkpoints. The cost of CPR is checkpoint
overhead, which is incurred when a mis-speculation occurs on an instruction for which
a checkpoint was not created a priori. Here, CPR must recover to the immediately older
checkpoint, squashing instructions older than the mis-speculation itself. In contrast,
a ROB processor performs minimal recovery and only squashes instructions younger than
the mis-speculation. CPROB is a hybrid register management scheme that preserves CPR's
aggressive reclamation while opportunistically minimizing checkpoint overhead. CPROB
extends CPR to track and hold the registers needed to perform minimal recovery to
un-executed branches within each checkpoint. Recovery registers are held on a best-effort
basis only. A checkpoint's recovery registers can be freed spontaneously when all
branches in the checkpoint execute. They can also be aggressively victimized if dispatch
needs registers to proceed. CPROB naturally adapts the register reclamation policy
to dynamic branch behavior. When branch mis-predictions are infrequent and registers
are needed to support a large window, CPROB victimizes registers and behaves like
CPR. When mis-predictions are frequent and the window is small, CPROB holds on to
registers and behaves like ROB. As a result, it out-performs both CPR and ROB for
a given program. This performance improvement, combined with reduced checkpoint overhead,
makes CPROB more energy-efficient than either ROB or CPR.
Type
ConferencePermalink
https://hdl.handle.net/10161/11638Published Version (Please cite this version)
10.1109/PACT.2009.42Collections
More Info
Show full item recordScholars@Duke
Andrew Douglas Hilton
Professor of the Practice in the Department of Electrical and Computer Engineering
Drew Hilton is an Associate Professor of the Practice in Electrical and Computer Engineering,
as well as Pratt’s Director of Innovation in Computing Education.
His main focus is on teaching professional-level programming skills to ECE’s master's
students to prepare them for software engineering careers.
Professor Hilton also teaches a 3-week introduction to Programming Python for Duke's
Master in Interdisciplinary Data Science, and Duke's Center for Computatio

Articles written by Duke faculty are made available through the campus open access policy. For more information see: Duke Open Access Policy
Rights for Collection: Scholarly Articles
Works are deposited here by their authors, and represent their research and opinions, not that of Duke University. Some materials and descriptions may include offensive content. More info