Download Computer Microarchitecture: Data Speculation and Memory Conflict Buffer and more Study notes Computer Architecture and Organization in PDF only on Docsity!
IMPACTIMPACTIMPACT
Compile-Time Data
Speculation
Wen-mei Hwu Dept. of ECE University of Illinois at Urbana-Champaign
IMPACTIMPACTIMPACT
Types of Data Speculation
- Compile-time Data Speculation
- executing an instruction before knowing input is up to date - Dependence Speculation - moving a load and its use above a potentially conflicting store - must correct the load and the uses thus moved in case of conflict
IMPACTIMPACTIMPACT
Load/Store Dependence
Conditions
STORE (addr1) <- R LOAD R2 <- (addr2)
- Always access the same location
- redundant load elimination
- Never access the same location
IMPACTIMPACTIMPACT
Load/Store Dependence
Conditions
- May access the same location
- They sometimes access the same location - No conclusion can be reached • How often do they access the same location?
IMPACTIMPACTIMPACT
Memory Conflict Buffer
- Deals with very frequent or very infrequent dependence conditions - Allows uses of the load value to move above the store - Eliminates effect of memory dependence to exploit parallelism
IMPACTIMPACTIMPACT
Data Spec. Motivations
- Lower entrance level requirement of static disambiguation - Achieve performance earlier and more consistently for - new languages, e.g., C -> C++ • new applications and libraries - e.g., object oriented and dynamically linked - Allow performance to increase smoothly as static disambiguationmatures
IMPACTIMPACTIMPACT
Runtime Memory
Disambiguation
IMPACTIMPACTIMPACT
Key Issues
- Number of explicit comparisons • Amount of conflict correction code • Varying access sizes • Potential payoff in performance vs. overhead and resourceconsumption
IMPACTIMPACTIMPACT
Preload Register Update
- Register State Bits (See figure)
- P: preload register, coherence mechanism on - F: freeze state for I/O ports • R: ready bit for interlocking mechanism - T: trap bit for exception detection • Preload Type: size and data alignment
IMPACTIMPACTIMPACT
Example Pipeline Timing
and Code Example
IMPACTIMPACTIMPACT
PRU Subset Operation
- Save preload address in an empty address register - Set V bit and GRP entry • Use of preload destination register will turn off coherence
IMPACTIMPACTIMPACT
Address Register
Replacement
- An old entry is overwritten • Set F bit of GR associated with the replaced entry - Replaced register is reloaded with address field at time of use
IMPACTIMPACTIMPACT
Compiler Terms
–The first ambiguous store before the memory operation
- Closest ambiguous store after
(CASA):
–The first ambiguous store after the memory operation
IMPACTIMPACTIMPACT
Dependence Graph
- Remove all previous store dependence to potential preloads - Insert dependence arc from CASB to USE