Using Program Slicing to Drive Pre-Execution on Simultaneous Multithreading Processors

dc.contributor.authorKim, Dongkeunen_US
dc.contributor.authorYeung, Donalden_US
dc.date.accessioned2004-05-31T23:11:53Z
dc.date.available2004-05-31T23:11:53Z
dc.date.created2001-06en_US
dc.date.issued2001-11-21en_US
dc.description.abstractPre-execution uses helper threads running in spare hardware contexts to trigger cache missesin front of the main thread, hence hiding their latency. At the heart of pre-execution is the code that runs in the pre-execution threads themselves. The most common approach is f or pre-execution threads to run a subset of the instructions executed by the ori ginal program, called backward slices [18], which are extracted from the main th read at the instruction level.This paper proposes a new pre-execution technique that uses program slicing [2] to extract the code for pre-execution threads. Pro gram slicing performs static analysis on the programsource to create slices consisting of source code rather than binary code. Compared to previous techniques, our approach requires less hardware, and is more natural to automate in a com-pi ler. To study the feasibility of our approach, we built a slicing system based o n a publicly available program slicer, called Unravel, that constructs program s lices for pre-execution. Wealso developed several program slice parallelization techniques that partition our program slices onto multiple pre-execution threads . Our techniques enable pre-execution threads to effectivelyget ahead of the mai n thread by exploiting thread-level parallelism. Finally, our work provides an e valuation of program slice driven pre-execution using a detailed simulator of a simultane-ous multithreading (SMT) processor. Our techniques achieve a 27.4% speedup across 7 integer applications on an 8-way SMT with 4 contexts, and a 56.7% speedup on an SMT with 9 contexts. (Also referenced as UMIACS-TR-2001-49)en_US
dc.format.extent906217 bytes
dc.format.mimetypeapplication/postscript
dc.identifier.urihttp://hdl.handle.net/1903/1143
dc.language.isoen_US
dc.relation.isAvailableAtDigital Repository at the University of Marylanden_US
dc.relation.isAvailableAtUniversity of Maryland (College Park, Md.)en_US
dc.relation.isAvailableAtTech Reports in Computer Science and Engineeringen_US
dc.relation.isAvailableAtUMIACS Technical Reportsen_US
dc.relation.ispartofseriesUM Computer Science Department; CS-TR-4268en_US
dc.relation.ispartofseriesUMIACS; UMIACS-TR-2001-49en_US
dc.titleUsing Program Slicing to Drive Pre-Execution on Simultaneous Multithreading Processorsen_US
dc.typeTechnical Reporten_US

Files

Original bundle
Now showing 1 - 2 of 2
No Thumbnail Available
Name:
CS-TR-4268.ps
Size:
884.98 KB
Format:
Postscript Files
Loading...
Thumbnail Image
Name:
CS-TR-4268.pdf
Size:
201.06 KB
Format:
Adobe Portable Document Format
Description:
Auto-generated copy of CS-TR-4268.ps