Direct Memory Access Controller (DMAC)
User Manual All information provided in this document is subject to legal disclaimers. © REALTEK 2019. All rights reserved.
113
Referring to Fig 9-30, notice that a burst request from the destination is not triggered, since the destination FIFO contents are above the
watermark level. The DMAC has space for one data item in the channel FIFO. So, does the DMAC initiate a single AHB transfer from the source
peripheral to fill the channel FIFO?
The answer depends on the value of CFG
x
.FIFO_MODE. If CFG
x
.FIFO_MODE = 0, then the DMAC attempts to perform a single AHB transfer in
order to fill the channel FIFO. If CFG
x
.FIFO_MODE = 1, then the DMAC waits until the channel FIFO is less than half-full before initiating a burst
from the source, as illustrated in Fig 9-30.
Fig 9-30 FIFO status after early-terminated burst
Observation:
When CFG
x
.FIFO_MODE = 1, the number of bursts per block is less than when CFG
x
.FIFO_MODE = 0 and, hence, the bus
utilization will improve. This setting favors longer bursts. However, the latency of DMA transfers may increase when CFG
x
.FIFO_MODE = 1,
since the DMAC waits for the channel FIFO contents to be less than half the FIFO depth for source transfers, or greater than or equal to half the
FIFO depth for destination transfers. Therefore, system bus occupancy and usage can be improved by delaying the servicing of multiple
requests until there is sufficient data/space available in the FIFO to generate a burst (rather than multiple single AHB transfers); this comes at
the expense of transfer latency. For reduced block transfer latency, set CFG
x
.FIFO_MODE = 0. For improved bus utilization, set
CFG
x
.FIFO_MODE = 1.
9.2.8.1.7
Example 7
Scenario:
Example block transfer when the destination is the flow controller; the effect of data pre-fetching (CFG
x
.FCMODE = 0) and possible
data loss.
Note
: Data pre-fetching is when data is fetched from the source before the destination requests it.
Flow Control Mode:
Determines when source transaction requests are serviced when the Destination Peripheral is the flow controller.
0 = Source transaction requests are serviced when they occur. Data pre-fetching is enabled.
1 = Source transaction requests are not serviced until a destination transaction request occurs. In this mode, the amount of data
transferred from the source is limited such that it is guaranteed to be transferred to the destination prior to block termination by the
destination. Data pre-fetching is disabled.
Table 9-9 lists the parameters used in this example.
Table 9-9 Parameters in transfer operation – Example 7
Parameter
Description
CTL
x
.TT_FC = 3’b111
Peripheral-to-peripheral transfer with DMAC as flow controller
CTL
x
.BLOCK_TS =
x
–
Realtek confidential files
The document authorized to
SZ99iot
2019-05-15 10:08:03