Answers are grounded in this paper and cite their sources.
Conventionally, branch mispredictions are resolved by flushing wrongly speculated instructions from the reorder buffer and refetching instructions along the correct path. However, a large part of the misspeculated instructions could have reconverged with the correct path and executed correctly. Yet, they are flushed to ensure in-order commit. This inefficiency has been recognized in prior work, which proposes either complex additions to a core to reuse the correctly executed instructions, or less intrusive solutions that only reuse part of the converged instructions.
No takes yet. Share an insight, caveat, or question.
Eyerman et al. (2021) studied this question.
Synapse has enriched 8 closely related papers on similar clinical questions. Consider them for comparative context: