
Sun Microelectronics
232
UltraSPARC User’s Manual
Note:
These instructions are used for transferring large blocks of data (more
than 256 bytes); for example, BCOPY and BFILL. On UltraSPARC they do not
allocate in the D-Cache or E-Cache on a miss. UltraSPARC updates the E-Cache
on a hit. UltraSPARC allows one BLD and two BSTs to be outstanding on the
interconnect at one time.
To simplify the implementation, BLD destination registers may or may not inter-
lock like ordinary load instructions. Before referencing the block load data, a sec-
ond BLD (to a different set of registers) or a MEMBAR
#Sync
must be performed.
If a second BLD is used to synchronize with returning data, then UltraSPARC
continues execution before all data has been returned. The lowest number regis-
ter being loaded may be referenced in the first instruction group following the
second BLD, the second lowest number register may be referenced in the second
group, and so on. If this rule is violated, data from before or after the load may be
returned.
Similarly, BST source data registers are not interlocked against completion of pre-
vious load instructions (even if a second BLD has been performed). The previous
load data must be referenced by some other intervening instruction, or an inter-
vening MEMBAR
#Sync
must be performed. If the programmer violates these
rules, data from before or after the load may be used. UltraSPARC continues exe-
cution before all of the store data has been transferred. If store data registers are
overwritten before the next block store or MEMBAR
#Sync
instruction, then the
following rule must be observed. The first register can be overwritten in the same
instruction group as the BST, the second register can be overwritten in the in-
struction group following the block store and so on. If this rule is violated, the
store may store correct data or the overwritten data.
There must be a MEMBAR
#Sync
or a trap following a BST before executing a
DONE, RETRY, or WRPR to PSTATE instruction. If this is rule is violated, instruc-
tions after the DONE, RETRY, or WRPR to PSTATE may not see the effects of the
updated PSTATE.
BLD does not follow memory model ordering with respect to stores. In particular,
read-after-write and write-after-read hazards to overlapping addresses are not
detected. The side effects bit associated with the access is ignored (see Section 6.2,
“Translation Table Entry (TTE),” on page 41). If ordering with respect to earlier
stores is important (for example, a block load that overlaps previous stores), then
there must be an intervening MEMBAR
#StoreLoad
or stronger MEMBAR. If
ordering with respect to later stores is important (e.g. a block load that overlaps a
subsequent store), then there must be an intervening MEMBAR
#LoadStore
or
reference to the block load data. This restriction does not apply when a trap is
Artisan Technology Group - Quality Instrumentation ... Guaranteed | (888) 88-SOURCE | www.artisantg.com