ACM Home Page
Please provide us with feedback. Feedback
Tradeoffs in buffering speculative memory state for thread-level speculation in multiprocessors
Full text PdfPdf (798 KB)
Source ACM Transactions on Architecture and Code Optimization (TACO) archive
Volume 2 ,  Issue 3  (September 2005) table of contents
Pages: 247 - 279  
Year of Publication: 2005
ISSN:1544-3566
Authors
María Jesús Garzarán  University of Illinois at Urbana-Champaign, Urbana, IL
Milos Prvulovic  Georgia Institute of Technology
José María Llabería  Universitat Politècnica de Catalunya, Spain
Víctor Viñals  Universidad de Zaragoza, Spain
Lawrence Rauchwerger  Texas A&M University
Josep Torrellas  University of Illinois at Urbana-Champaign, Urbana, IL
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 6,   Downloads (12 Months): 63,   Citation Count: 3
Additional Information:

abstract   references   cited by   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/1089008.1089010
What is a DOI?

ABSTRACT

Thread-Level Speculation (TLS) provides architectural support to aggressively run hard-to-analyze code in parallel. As speculative tasks run concurrently, they generate unsafe or speculative memory state that needs to be separately buffered and managed in the presence of distributed caches and buffers. Such a state may contain multiple versions of the same variable. In this paper, we introduce a novel taxonomy of approaches to buffer and manage multiversion speculative memory state in multiprocessors. We also present a detailed complexity-benefit tradeoff analysis of the different approaches. Finally, we use numerical applications to evaluate the performance of the approaches under a single architectural framework. Our key insights are that support for buffering the state of multiple speculative tasks and versions per processor is more complexity-effective than support for lazily merging the state of tasks with main memory. Moreover, both supports can be gainfully combined and, in large machines, their effect is nearly fully additive. Finally, the more complex support for storing future state in the main memory can boost performance when buffers are under pressure, but hurts performance when squashes are frequent.


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
Barnes, J. E. 1994. ftp://hubble.ifa.hawaii.edu/pub/barnes/treecode/. University of Hawaii.
 
3
4
 
5
 
6
 
7
Frank, M., Lee, W., and Amarasinghe, S. 2001. A Software Framework for Supporting General Purpose Applications on Raw Computation Fabrics. Tech. rep., MIT/LCS Technical Memo MIT-LCS-TM-619. July.
 
8
 
9
 
10
 
11
12
13
 
14
15
16
17
 
18
Rundberg, P. and Stenström, P. 2000. Low-cost thread-level data dependence speculation on multiprocessors. In Fourth Workshop on Multithreaded Execution, Architecture and Compilation.
 
19
20
 
21
Steffan, J., Colohan, C. B., and Mowry, T. C. 1997. Architectural Support for Thread-Level Data Speculation. Tech. rep., CMU-CS-97-188, Carnegie Mellon University. November.
22
 
23
Tremblay, M. 1999. MAJC: Microprocessor Architecture for Java Computing. Hot Chips.
 
24
 
25
 
26


Collaborative Colleagues:
María Jesús Garzarán: colleagues
Milos Prvulovic: colleagues
José María Llabería: colleagues
Víctor Viñals: colleagues
Lawrence Rauchwerger: colleagues
Josep Torrellas: colleagues