Load/Store Operation
6-70
ADSP-BF53x/BF56x Blackfin Processor Programming Reference
If the branch is taken, then the load is flushed from the pipeline, and any
results that are in the process of being returned can be ignored. Con-
versely, if the branch is not taken, the memory will have returned the
correct value earlier than if the operation were stalled until the branch
condition was resolved.
However, in the case of an off-chip I/O device, this could cause an unde-
sirable side effect for a peripheral that returns sequential data from a FIFO
or from a register that changes value based on the number of reads that are
requested. To avoid this effect, use synchronizing instructions (
CSYNC
or
SSYNC
) to guarantee the correct behavior between read operations.
Store operations never access memory speculatively, because this could
cause modification of a memory value before it is determined whether the
instruction should have executed.
On-chip peripherals are guarded against destruction due to speculative
reads. There, a separate strobe triggers the read side-effect when the
instruction actually executes.
Conditional Load Behavior
The synchronization instructions force all speculative states to be resolved
before a load instruction initiates a memory reference. However, the load
instruction itself may generate more than one memory-read operation,
because it is interruptible. If an interrupt of sufficient priority occurs
between the completion of the synchronization instruction and the com-
pletion of the load instruction, the sequencer cancels the load instruction.
After execution of the interrupt, the interrupted load is executed again.
This approach minimizes interrupt latency. However, it is possible that a
memory-read cycle was initiated before the load was canceled, and this
would be followed by a second read operation after the load is executed
again. For most memory accesses, multiple reads of the same memory
address have no side effects. However, for some off-chip memory-mapped
Summary of Contents for ADSP-BF53x Blackfin
Page 38: ...Conventions xxxviii ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 134: ...System Reset and Powerup 3 18 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 324: ...Instruction Overview 7 20 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 486: ...Instruction Overview 13 28 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 512: ...Instruction Overview 14 26 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 604: ...Instruction Overview 15 92 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 688: ...Instruction Overview 18 48 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 742: ...Instruction Overview 19 54 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 752: ...Examples 20 10 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 790: ...ADSP BF535 Flags A 10 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 800: ...Performance Monitor Registers B 10 ADSP BF53x BF56x Blackfin Processor Programming Reference...
Page 1042: ...Index I 40 ADSP BF53x BF56x Blackfin Processor Programming Reference...