ACM Home Page
Please provide us with feedback. Feedback
Speculative return address stack management revisited
Full text PdfPdf (286 KB)
Source
ACM Transactions on Architecture and Code Optimization (TACO) archive
Volume 5 ,  Issue 3  (November 2008) table of contents
Article No. 15  
Year of Publication: 2008
ISSN:1544-3566
Authors
Hans Vandierendonck  Ghent University, Gent, Belgium
André Seznec  IRISA/INRIA, Cedex, France
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 11,   Downloads (12 Months): 198,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1455650.1455654
What is a DOI?

ABSTRACT

Branch prediction feeds a speculative execution processor core with instructions. Branch mispredictions are inevitable and have negative effects on performance and energy consumption. With the advent of highly accurate conditional branch predictors, nonconditional branch instructions are gaining importance.

In this article, we address the prediction of procedure returns. On modern processors, procedure returns are predicted through a return address stack (RAS). The overwhelming majority of the return mispredictions are due to RAS overflows and/or overwriting the top entries of the RAS on a mispredicted path. These sources of misprediction were addressed by previously proposed speculative return address stacks [Jourdan et al. 1996; Skadron et al. 1998]. However, the remaining misprediction rate of these RAS designs is still significant when compared to state-of-the-art conditional predictors.

We present two low-cost corruption detectors for RAS predictors. They detect RAS overflows and wrong path corruption with 100% coverage. As a consequence, when such a corruption is detected, another source can be used for predicting the return. On processors featuring a branch target buffer (BTB), this BTB can be used as a free backup predictor for predicting returns when corruption is detected.

Our experiments show that our proposal can be used to improve the behavior of all previously proposed speculative RASs. For instance, without any specific management of the speculative states on the RAS, an 8-entry BTB-backed up RAS achieves the same performance level as a state-of-the-art, but complex, 64-entry self-checkpointing RAS [Jourdan et al. 1996]. Therefore, our proposal can be used either to improve the performance of the processor or to reduce its hardware complexity.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
2
 
3
Calder, B., Grunwald, D., and Zorn, B. 1994. Quantifying behavioral differences between C and C++ programs. Journal of Programming Languages 2, 4, 313--351.
 
4
Desmet, V., Sazeides, Y., Kourouyiannis, C., and De Bosschere, K. 2005. Correct alignment of a return-address-stack after call and return mispredictions. In Workshop on Duplicating, Deconstructing and Debunking. 25--33.
 
5
6
 
7
Gwennap, L. 1996. Digital 21264 sets new standard. Microprocessor Report 10, 14 (Oct.), 1--6.
 
8
 
9
10
 
11
12
 
13
 
14
15
 
16
McGregor, J., Karig, D., Shi, Z., and Lee, R. 2003. A processor architecture defense against buffer overflow attacks. In Proceedings of the International Conference on Information Technology: Research and Education. 243--250.
 
17
18
19
 
20
Seznec, A. and Michaud, P. 2006. A case for (partially) TAgged GEometric history length branch prediction. Journal of Instruction-Level Parallelism 8, 1 (Feb.), 1--23.
21
 
22
 
23
Song, P. 1997. UltraSPARC-3 aims at MP servers. Microprocessor Report.
24
 
25
Webb, C. F. 1988. Subroutine call/return stack. IBM Tech. Disc. Bulletin 30, 11 (Apr.), 221--225.
 
26
Xu, J., Kalbarczyk, Z., Patel, S., and Iyer, R. 2002. Architecture support for defending against buffer overflow attacks. In Proceedings of the 5th Workshop on Evaluating and Architecting System Dependability.
27

Collaborative Colleagues:
Hans Vandierendonck: colleagues
André Seznec: colleagues