Technical Reports


Display by Author:
A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z
Search by for:

TR-577-98
Improving Prediction for Procedure Returns with Return-Address-Stack Repair Mechanisms
Authors: Skadron, Kevin, Ahuja, Pritpal S., Martonosi, Margaret, Clark, Douglas W.
Date:March 1998
Pages:13
Download Formats: [Postscript]
Abstract:
This paper evaluates several mechanisms for repairing the return-address stack after branch mispredictions. The return-address stack is a small but important structure for achieving better control-flow prediction accuracy and therefore better performance. But wrong-path execution after mispredictions frequently corrupts the return-address stack, making repair mechanisms necessary. If the processor implements multipath execution -- simultaneously executing both sides of a branch -- the contention among different paths makes the problem more severe.

For conventional, single-path processors, this paper proposes saving both the top-of-stack pointer and the top-of-stack contents for later restoration in case of a misprediction. This simple technique achieves nearly 100% hit rates and improves performance by up to 8.7% compared to a stack with no repair mechanism. For multipath processors, providing each path with its own return-address stack completely eliminates contention, improving performance by over 25%.

This technical report has been published as
Improving Prediction for Procedure Returns with Return-Address-Stack Repair Mechanisms. K. Skadron, P.S. Ahuja, M. Martonosi, and D.W. Clark. In Proceedings of the 31st Annual ACM/IEEE International Symposium on Microarchitecture, pp. 259-71, December 1998.