Tradeoffs in Buffering Memory State for Thread-Level Speculation in Multiprocessors

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

  • Affiliations:
  • -;-;-;-;-;-

  • Venue:
  • HPCA '03 Proceedings of the 9th International Symposium on High-Performance Computer Architecture
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

Thread-level speculation 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 state may contain multiple versions of the same variable.In this paper, we introduce a novel taxonomy of approaches to buffer and manage multi-version speculative memory state in multiprocessors. We also present a detailed complexity-benefit trade-off 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 merging the state of tasks with main memory lazily. Moreover, both supports can be gainfully combined and, in large machines, their effect is nearly fully additive. Finally, the more complex support for future state in main memory can boost performance when buffers are under pressure, but hurts performance when squashes are frequent.