Transactional WaveCache: Towards Speculative and Out-of-Order DataFlow Execution of Memory Operations

  • Leandro A. J. Marzulo UFRJ
  • Felipe M. G. Franca UFRJ
  • Vítor Santos Costa Universidade do Porto

Resumo


The WaveScalar is the first dataflow architecture that can efficiently provide the sequential memory semantics required by imperative languages. This work presents a speculative memory disambiguation mechanism for this architecture, the transaction WaveCache. Our mechanism maintains the execution order of memory operations within blocks of code, called waves, but adds the ability to speculatively execute, out-of-order, operations from different waves. This mechanism is inspired by progress in supporting transactional memories. Waves are considered as atomic regions and executed as nested transactions. Wave that have finished the execution of all their memory operations are committed, as soon as the previous waves are also committed. If a hazard is detected in a speculative wave, all the following waves (children) are aborted and re-executed. We evaluated the transactional WaveCache on a set of benchmarks from Spec 2000, Mediabench and Mibench (telecomm). Speedups ranging from 1.31 to 2.24 (related to the original WaveScalar) where observed when the benchmark doesn't perform lots of emulated function calls or access memory very often. Low speedups of 1.1 to slowdowns of 0.96 were observed when the opposite happens or when the memory concurrency was high.
Palavras-chave: Out of order, Computer architecture, Parallel processing, High performance computing, Telecommunications, Concurrent computing, Hardware, Data engineering, Systems engineering and theory, Computer science, DataFlow, WaveScalar, Transactional Memories
Publicado
29/10/2008
MARZULO, Leandro A. J.; FRANCA, Felipe M. G.; COSTA, Vítor Santos. Transactional WaveCache: Towards Speculative and Out-of-Order DataFlow Execution of Memory Operations. In: INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE AND HIGH PERFORMANCE COMPUTING (SBAC-PAD), 20. , 2008, Campo Grande/MS. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2008 . p. 183-190.