ADSP-BF537 Blackfin Processor Hardware Reference
5-57
Direct Memory Access
Polling of the current address, pointer, and count registers can permit
loose synchronization of DMA with software, however, if allowances are
made for the lengths of the DMA/memory pipeline. The length of the
DMA FIFO for a peripheral DMA channel is four locations (either four 8-
or 16-bit data elements, or two 32-bit data elements) and for an MDMA
FIFO is eight locations (four 32-bit data elements). The DMA will not
advance current address/pointer/count registers if these FIFOs are filled
with incomplete work (including reads that have been started but not yet
finished).
Additionally, the length of the combined DMA and L1 pipelines to inter-
nal memory is approximately six 8- or 16-bit data elements. The length of
the DMA and External Bus Interface Unit (EBIU) pipelines is approxi-
mately three data elements, when measured from the point where a DMA
register update is visible to an MMR read to the point where DMA and
core accesses to memory become strictly ordered. If the DMA FIFO
length and the DMA/memory pipeline length are added, an estimate can
be made of the maximum number of incomplete memory operations in
progress at one time. (Note this is a maximum, as the DMA/memory
pipeline may include traffic from other DMA channels.)
For example, assume a peripheral DMA channel is transferring a work
unit of 100 data elements into internal memory and its
DMAx_CURR_X_
COUNT
register reads a value of 60 remaining elements, so that processing of
the first 40 elements has at least been started. The total pipeline length is
no greater than the sum of 4 (for the peripheral DMA FIFO) plus 6 (for
the DMA/memory pipeline), or 10 data elements, so it is safe to conclude
that the DMA transfer of the first 40-10 = 30 data elements is complete.
For precise synchronization, software should either wait for an interrupt
or consult the channel’s
DMAx_IRQ_STATUS
register to confirm completion
of DMA, rather than polling current address/pointer/count registers.
When the DMA system issues an interrupt or changes an
DMAx_IRQ_STA-
TUS
bit, it guarantees that the last memory operation of the work unit has
been completed and will definitely be visible to DSP code. For memory
Summary of Contents for Blackfin ADSP-BF537
Page 42: ...Contents xlii ADSP BF537 Blackfin Processor Hardware Reference ...
Page 90: ...Development Tools 1 32 ADSP BF537 Blackfin Processor Hardware Reference ...
Page 138: ...Programming Examples 4 26 ADSP BF537 Blackfin Processor Hardware Reference ...
Page 340: ...SDC Programming Examples 6 84 ADSP BF537 Blackfin Processor Hardware Reference ...
Page 606: ...Programming Examples 9 94 ADSP BF537 Blackfin Processor Hardware Reference ...
Page 660: ...Programming Examples 10 54 ADSP BF537 Blackfin Processor Hardware Reference ...
Page 720: ...Electrical Specifications 11 60 ADSP BF537 Blackfin Processor Hardware Reference ...
Page 840: ...Programming Examples 13 42 ADSP BF537 Blackfin Processor Hardware Reference ...
Page 876: ...Programming Examples 14 36 ADSP BF537 Blackfin Processor Hardware Reference ...
Page 938: ...Programming Examples 15 62 ADSP BF537 Blackfin Processor Hardware Reference ...
Page 958: ...Programming Examples 17 12 ADSP BF537 Blackfin Processor Hardware Reference ...
Page 986: ...Programming Examples 18 28 ADSP BF537 Blackfin Processor Hardware Reference ...
Page 1162: ...G 26 ADSP BF537 Blackfin Processor Hardware Reference ...
Page 1218: ...Index I 56 ADSP BF537 Blackfin Processor Hardware Reference ...