Transactional WaveCache: Towards Speculative and Out-of-Order DataFlow Execution of Memory Operations
Leandro A. J. Marzulo, Felipe M. G. França and Vítor Santos Costa
October/November 2008
Abstract
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.
Bibtex
@InProceedings{marzulo-sbac-pad08,
author = {L. A. J. Marzulo and F. M. G. França and V. Santos Costa},
title = {{Transactional WaveCache: Towards Speculative and Out-of-Order DataFlow Execution
of Memory Operations}},
booktitle = {Proceedings of the 20th International Symposium on Computer Architecture and
High Performance Computing (SBAC-PAD 2008)},
pages = {183--190},
publisher = {IEEE Computer Society}
month = {October/November},
year = {2008},
address = {Campo Grande, Mato Grosso do Sul, Brazil},
}
Download Paper
IEEE Computer Society