Three Architectural Models for Compiler-Controlled Speculative Execution

Pohua P. Chang, Nancy J. Warter, Scott A. Mahlke, William Y. Chen, Wen Mei W. Hwu

Research output: Contribution to journalArticle

Abstract

To effectively exploit instruction level parallelism, the compiler must move instructions across branches. When an instruction is moved above a branch that it is control dependent on, it is considered to be speculatively executed since it is executed before it is known whether or not its result is needed. There are potential hazards when speculatively executing instructions. If these hazards can be eliminated, the compiler can more aggressively schedule the code. The hazards of speculative execution are outlined in this paper. Three architectural models: restricted, general, and boosting, which have increasing amounts of support for removing these hazards are discussed. The performance gained by each level of additional hardware support is analyzed using the IMPACT C compiler which performs superblock scheduling for superscalar and superpipelined processors.

Original languageEnglish (US)
Pages (from-to)481-494
Number of pages14
JournalIEEE Transactions on Computers
Volume44
Issue number4
DOIs
StatePublished - Apr 1995

Fingerprint

Speculative Execution
Hazard
Compiler
Hazards
Branch
Superscalar
Instruction Level Parallelism
Boosting
Model
Schedule
Scheduling
Hardware
Architecture
Dependent

Keywords

  • Conditional branches
  • exception handling
  • speculative execution
  • static code scheduling
  • superblock
  • superpipelining
  • superscalar

ASJC Scopus subject areas

  • Software
  • Theoretical Computer Science
  • Hardware and Architecture
  • Computational Theory and Mathematics

Cite this

Three Architectural Models for Compiler-Controlled Speculative Execution. / Chang, Pohua P.; Warter, Nancy J.; Mahlke, Scott A.; Chen, William Y.; Hwu, Wen Mei W.

In: IEEE Transactions on Computers, Vol. 44, No. 4, 04.1995, p. 481-494.

Research output: Contribution to journalArticle

Chang, Pohua P. ; Warter, Nancy J. ; Mahlke, Scott A. ; Chen, William Y. ; Hwu, Wen Mei W. / Three Architectural Models for Compiler-Controlled Speculative Execution. In: IEEE Transactions on Computers. 1995 ; Vol. 44, No. 4. pp. 481-494.
@article{f5098c9cd4bf45dc97d6b61710ec26c4,
title = "Three Architectural Models for Compiler-Controlled Speculative Execution",
abstract = "To effectively exploit instruction level parallelism, the compiler must move instructions across branches. When an instruction is moved above a branch that it is control dependent on, it is considered to be speculatively executed since it is executed before it is known whether or not its result is needed. There are potential hazards when speculatively executing instructions. If these hazards can be eliminated, the compiler can more aggressively schedule the code. The hazards of speculative execution are outlined in this paper. Three architectural models: restricted, general, and boosting, which have increasing amounts of support for removing these hazards are discussed. The performance gained by each level of additional hardware support is analyzed using the IMPACT C compiler which performs superblock scheduling for superscalar and superpipelined processors.",
keywords = "Conditional branches, exception handling, speculative execution, static code scheduling, superblock, superpipelining, superscalar",
author = "Chang, {Pohua P.} and Warter, {Nancy J.} and Mahlke, {Scott A.} and Chen, {William Y.} and Hwu, {Wen Mei W.}",
year = "1995",
month = "4",
doi = "10.1109/12.376164",
language = "English (US)",
volume = "44",
pages = "481--494",
journal = "IEEE Transactions on Computers",
issn = "0018-9340",
publisher = "IEEE Computer Society",
number = "4",

}

TY - JOUR

T1 - Three Architectural Models for Compiler-Controlled Speculative Execution

AU - Chang, Pohua P.

AU - Warter, Nancy J.

AU - Mahlke, Scott A.

AU - Chen, William Y.

AU - Hwu, Wen Mei W.

PY - 1995/4

Y1 - 1995/4

N2 - To effectively exploit instruction level parallelism, the compiler must move instructions across branches. When an instruction is moved above a branch that it is control dependent on, it is considered to be speculatively executed since it is executed before it is known whether or not its result is needed. There are potential hazards when speculatively executing instructions. If these hazards can be eliminated, the compiler can more aggressively schedule the code. The hazards of speculative execution are outlined in this paper. Three architectural models: restricted, general, and boosting, which have increasing amounts of support for removing these hazards are discussed. The performance gained by each level of additional hardware support is analyzed using the IMPACT C compiler which performs superblock scheduling for superscalar and superpipelined processors.

AB - To effectively exploit instruction level parallelism, the compiler must move instructions across branches. When an instruction is moved above a branch that it is control dependent on, it is considered to be speculatively executed since it is executed before it is known whether or not its result is needed. There are potential hazards when speculatively executing instructions. If these hazards can be eliminated, the compiler can more aggressively schedule the code. The hazards of speculative execution are outlined in this paper. Three architectural models: restricted, general, and boosting, which have increasing amounts of support for removing these hazards are discussed. The performance gained by each level of additional hardware support is analyzed using the IMPACT C compiler which performs superblock scheduling for superscalar and superpipelined processors.

KW - Conditional branches

KW - exception handling

KW - speculative execution

KW - static code scheduling

KW - superblock

KW - superpipelining

KW - superscalar

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

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

U2 - 10.1109/12.376164

DO - 10.1109/12.376164

M3 - Article

AN - SCOPUS:0029289555

VL - 44

SP - 481

EP - 494

JO - IEEE Transactions on Computers

JF - IEEE Transactions on Computers

SN - 0018-9340

IS - 4

ER -