Download - Computer Architecture Seminar
Data-Triggered ThreadsEliminating Redundant Computation
Hung-Wei Tseng and Dean M. TullsenDepartment of Computer Science and Engineering
University of California, San Diego
(HPCA 2011)
Seminar by: Naman Kumar for http://carg.uwaterloo.ca
Eliminating Redundant Computation
Silent Store:A memory store operation that does not change the contents at that location
20-68% of all stores are silent [Lepak and Lipasti]
How about eliminating the entire stream of computation surrounding a silent store!
Eliminating Redundant Computation
Redundant loads: silent stores result in redundant loads
(last time this load loaded this address, it fetched the same value)
SPEC2000 C:– 78% of all loads are
redundant– 50% of all instructions
depend on redundant loads
Data-Triggered Threads
DTT: Implementation
Place redundant computation in a separate thread:• Thread is restartable• Thread may be aborted/restarted multiple times• Thread management is through architectural changes.• Easy to verify data races as thread life is between time
between triggering store and main thread join point.
The Programming Model
DTT: ImplementationThe Programming Model
Trigger is placed in data section, not code section
DTT: ImplementationThe Programming Model
Main Thread
DTT: ImplementationThe Programming Model
Support thread
• Thread registry (table)
• Thread Queue (table)
• Thread Status Table (table) PC
DTT: ImplementationArchitectural Support
PC of DTT Start PC Destination PC Post skip PC
PC of DTT Start PC Triggering Addr
Stack Pointer Global Pointer
Start PC Destination PC Triggering Addr Output Value
Following tables are all implemented in hardware
• tstore – generate thread when mem modified is not silent
• tspawn – spawn the thread using thread registry
• treturn – finish execution of the current thread
• tcancel – terminate a running thread
DTT: ImplementationArchitectural Support
ISA modifications