Dynamic Memory Disambiguation Using the Memory Conflict Buffer

David M. Gallagher, William Y. Chen, Scott A. Mahlke, John C. Gyllenhaal, Wen-Mei W Hwu

Research output: Contribution to journalArticle

Abstract

To exploit instruction level parallelism, compilers for VLIW and superscalar processors often employ static code scheduling. However, the available code reordering may be severely restricted due to ambiguous dependences between memory instructions. This paper introduces a simple hardware mechanism, referred to as the memory conflict buffer, which facilitates static code scheduling in the presence of memory store/load dependences. Correct program execution is ensured by the memory conflict buffer and repair code provided by the compiler. With this addition, significant speedup over an aggressive code scheduling model can be achieved for both non-numerical and numerical programs.

Original languageEnglish (US)
Pages (from-to)183-193
Number of pages11
JournalACM SIGPLAN Notices
Volume29
Issue number11
DOIs
StatePublished - Jan 11 1994

Fingerprint

Data storage equipment
Scheduling
Computer hardware
Repair

ASJC Scopus subject areas

  • Software
  • Computer Graphics and Computer-Aided Design

Cite this

Gallagher, D. M., Chen, W. Y., Mahlke, S. A., Gyllenhaal, J. C., & Hwu, W-M. W. (1994). Dynamic Memory Disambiguation Using the Memory Conflict Buffer. ACM SIGPLAN Notices, 29(11), 183-193. https://doi.org/10.1145/195470.195534

Dynamic Memory Disambiguation Using the Memory Conflict Buffer. / Gallagher, David M.; Chen, William Y.; Mahlke, Scott A.; Gyllenhaal, John C.; Hwu, Wen-Mei W.

In: ACM SIGPLAN Notices, Vol. 29, No. 11, 11.01.1994, p. 183-193.

Research output: Contribution to journalArticle

Gallagher, DM, Chen, WY, Mahlke, SA, Gyllenhaal, JC & Hwu, W-MW 1994, 'Dynamic Memory Disambiguation Using the Memory Conflict Buffer', ACM SIGPLAN Notices, vol. 29, no. 11, pp. 183-193. https://doi.org/10.1145/195470.195534
Gallagher, David M. ; Chen, William Y. ; Mahlke, Scott A. ; Gyllenhaal, John C. ; Hwu, Wen-Mei W. / Dynamic Memory Disambiguation Using the Memory Conflict Buffer. In: ACM SIGPLAN Notices. 1994 ; Vol. 29, No. 11. pp. 183-193.
@article{aa867959764740148a9aa9dc032940e5,
title = "Dynamic Memory Disambiguation Using the Memory Conflict Buffer",
abstract = "To exploit instruction level parallelism, compilers for VLIW and superscalar processors often employ static code scheduling. However, the available code reordering may be severely restricted due to ambiguous dependences between memory instructions. This paper introduces a simple hardware mechanism, referred to as the memory conflict buffer, which facilitates static code scheduling in the presence of memory store/load dependences. Correct program execution is ensured by the memory conflict buffer and repair code provided by the compiler. With this addition, significant speedup over an aggressive code scheduling model can be achieved for both non-numerical and numerical programs.",
author = "Gallagher, {David M.} and Chen, {William Y.} and Mahlke, {Scott A.} and Gyllenhaal, {John C.} and Hwu, {Wen-Mei W}",
year = "1994",
month = "1",
day = "11",
doi = "10.1145/195470.195534",
language = "English (US)",
volume = "29",
pages = "183--193",
journal = "ACM SIGPLAN Notices",
issn = "1523-2867",
publisher = "Association for Computing Machinery (ACM)",
number = "11",

}

TY - JOUR

T1 - Dynamic Memory Disambiguation Using the Memory Conflict Buffer

AU - Gallagher, David M.

AU - Chen, William Y.

AU - Mahlke, Scott A.

AU - Gyllenhaal, John C.

AU - Hwu, Wen-Mei W

PY - 1994/1/11

Y1 - 1994/1/11

N2 - To exploit instruction level parallelism, compilers for VLIW and superscalar processors often employ static code scheduling. However, the available code reordering may be severely restricted due to ambiguous dependences between memory instructions. This paper introduces a simple hardware mechanism, referred to as the memory conflict buffer, which facilitates static code scheduling in the presence of memory store/load dependences. Correct program execution is ensured by the memory conflict buffer and repair code provided by the compiler. With this addition, significant speedup over an aggressive code scheduling model can be achieved for both non-numerical and numerical programs.

AB - To exploit instruction level parallelism, compilers for VLIW and superscalar processors often employ static code scheduling. However, the available code reordering may be severely restricted due to ambiguous dependences between memory instructions. This paper introduces a simple hardware mechanism, referred to as the memory conflict buffer, which facilitates static code scheduling in the presence of memory store/load dependences. Correct program execution is ensured by the memory conflict buffer and repair code provided by the compiler. With this addition, significant speedup over an aggressive code scheduling model can be achieved for both non-numerical and numerical programs.

UR - http://www.scopus.com/inward/record.url?scp=84976845370&partnerID=8YFLogxK

UR - http://www.scopus.com/inward/citedby.url?scp=84976845370&partnerID=8YFLogxK

U2 - 10.1145/195470.195534

DO - 10.1145/195470.195534

M3 - Article

AN - SCOPUS:84976845370

VL - 29

SP - 183

EP - 193

JO - ACM SIGPLAN Notices

JF - ACM SIGPLAN Notices

SN - 1523-2867

IS - 11

ER -