29 September 1997 – Subject To Change
Internal Architecture
2–29
Miss Address File and Load-Merging Rules
•
Load-after-store trap: A replay trap occurs if a load instruction is issued in the
cycle immediately following a store instruction that hits in the Dcache, and both
access the same location. The address match is exact for address bits <12:2>
(longword granularity), but ignores address bits <42:13>.
•
When a load instruction is followed, within one cycle, by any instruction that
uses the result of that load, and the load misses in the Dcache, the consumer
instruction traps and is restarted from the beginning of the pipeline. This occurs
because the consumer instruction is issued speculatively while the Dcache hit is
being evaluated. If the load misses in the Dcache, the speculative issue of the
consumer instruction was incorrect. The replay trap generally brings the con-
sumer instruction to the issue point before or simultaneously with the availability
of fill data.
2.5 Miss Address File and Load-Merging Rules
The following sections describe the miss address file (MAF) and its load-merging
function, and the load-merging rules that apply after a load miss.
2.5.1 Merging Rules
When a load miss occurs, each MAF entry is checked to see if it contains a load miss
that addresses the same 32-byte Dcache block. If it does, and certain merging rules
3
are satisfied, then the new load miss is merged with an existing MAF entry. This
allows the MTU to service two or more load misses with one data fill from the CBU.
The merging rules for an individual MAF entry are different for cacheable and non-
cacheable space.
2.5.1.1 Cacheable Space Load-Merge Rules
The merging rules for cacheable space loads (physical address bit <39>=0) are as
follows:
•
Merging only occurs if the new load miss addresses a different INT8 from all
loads previously entered or merged to that MAF entry. If it addresses the same
INT8, the machine traps and replays the instruction. This continues until the
MAF entry is retired, at which time the trapping load hits in the Dcache.
•
Bytes, words, longwords, and quadwords can merge with each other, provided
that they are not in the same INT8.
3
Merging rules result primarily from limitations of the implementation.