The impact of incorrectly speculated memory operations in a multithreaded architecture

Resit Sendag, Ying Chen, David J. Lilja

Research output: Contribution to journalArticle

3 Scopus citations

Abstract

The speculated execution of threads in a multithreaded architecture plus the branch prediction used in each thread execution unit, allows many instructions to be executed speculatively, that is before it is known whether they actually will be needed by the program. In this study, we examine how the load instructions executed on what turn out to be incorrectly executed program paths impact the memory system performance. We find that incorrect speculation (wrong execution) on the instruction and thread-level provides an indirect prefetching effect for the later correct execution paths and threads. By continuing to execute the mispredicted load instructions even after the instruction or thread-level control speculation is known to be incorrect, the cache misses observed on the correctly executed paths can be reduced by 16 to 73 percent, with an average reduction of 45 percent. However, we also find that these extra loads can increase the amount of memory traffic and can pollute the cache. We introduce the small, fully associative Wrong Execution Cache (WEC) to eliminate the potential pollution that can be caused by the execution of the mispredicted load instructions. Our simulation results show that the WEC can improve the performance of a concurrent multithreaded architecture up to 18.5 percent on the benchmark programs tested, with an average improvement of 9.7 percent, due to the reductions in the number of cache misses.

Original languageEnglish (US)
Pages (from-to)271-285
Number of pages15
JournalIEEE Transactions on Parallel and Distributed Systems
Volume16
Issue number3
DOIs
StatePublished - Mar 1 2005

    Fingerprint

Keywords

  • Mispredicted loads
  • Multithreaded architecture
  • Prefetching
  • Speculation
  • Wrong execution
  • Wrong execution cache

Cite this