Correctly implementing value prediction in microprocessors that support multithreading or multiprocessing

Journal Article

This paper explores the interaction of value prediction with thread-level parallelism techniques, including multithreading and multiprocessing, where correctness is defined by a memory consistency model. Value prediction subtly interacts with the memory consistency model by allowing data dependent instructions to be reordered. We find that predicting a value and later verifying that the value eventually calculated is the same as the value predicted is not always sufficient. We present an example of a multithreaded pointer manipulation that can generate a surprising and erroneous result when value prediction is implemented without considering memory consistency correctness. We show that this problem can occur with real software, and we discuss how to apply existing techniques to eliminate the problem in both sequentially consistent systems and systems that obey relaxed memory consistency models.

Full Text

Duke Authors

Cited Authors

  • Martin, MMK; Sorin, DJ; Cain, HW; Hill, MD; Lipasti, MH

Published Date

  • December 1, 2001

Published In

Start / End Page

  • 328 - 337

International Standard Serial Number (ISSN)

  • 1072-4451

Digital Object Identifier (DOI)

  • 10.1109/MICRO.2001.991130

Citation Source

  • Scopus