CPROB: Checkpoint Processing with Opportunistic Minimal Recovery

Andrew Hilton, Neeraj Eswaran and Amir Roth

Recent research on high performance processors has focused onefficiently scaling key window structures to effectively accommodatethousands of in-flight instructions. Checkpoint Processing andRecovery (CPR) scales one of these key structures---the physicalregister file. CPR restricts mis-speculation recovery to checkpointscreated at rename, and leverages this restriction to aggressivelyreclaim registers between checkpoints. The benefit of CPR is a largereffective window and higher IPC (than ROB) in the average case. Thecost is checkpointing overhead, a CPR-specific penalty which canresult in lower IPC. CPR incurs checkpointing overhead when amis-speculation occurs on an instruction for which a checkpoint was notcreated a priori. Here, it must recover to the immediately oldercheckpoint, squashing and re-doing instructions older than themis-speculation itself.We propose CPROB, a hybrid register management scheme thatpreserves CPR's aggressive reclamation while opportunisticallyminimizing checkpointing overhead. CPROB extends CPR's registerreference counting mechanism to track and hold the over-writtenregisters corresponding to the instructions in each checkpoint. As longas they are held, these registers support serial recovery to olderuncheckpointed instructions. When all the branches in a checkpointexecute---and serial recovery is no longer needed---the checkpoint'sover-written registers are freed en masse. They can also beaggressively scavenged from checkpoints with un-executed branches toprevent front-end stalls.Cycle-level simulation shows that CPROB reduces CPR's checkpointingoverhead from 4% to 1% and matches or exceeds its IPC on allbenchmarks. It comes within 1% on one benchmark of matching orexceeding ROB's IPC.

Back to Program