The TPTC module is the EDMA transfer engine that
generates transfers as programmed in dedicated working registers, using two
dedicated controller ports: a read-only port and a write-only port.
Figure 11-5 shows a functional block diagram and of the EDMA transfer controller (EDMA_TPTC) and its connection to the EDMA_TPCC.
Note: The port data bus width of the instances of the
TPTC is fixed at 64 bits.
Two instances of the EDMA_TPTC generate concurrent
traffic on the L3_VBUSM interconnect. Each TC
controller consists of the following components:
- DMA Program Register Set: Stores the context for
the DMA transfer that is loaded into the active
register set when the current active register set
completes. The CPU or TPCC programs the Program
Register Set, not the active register set. For
typical standalone operation, the CPU programs the
Program Register while the TC services the Active
register set. The Program Register set includes
ownership control such that CPU software and the
EDMA stay synchronized relative to one
another.
- Source Active Register Set : Stores the context
(src/dst/cnt/etc) for the DMA Transfer Request
(TR) in progress in the Read Controller. The
Active register set is split into independent
Source and Destination, because the source
interconnect controller and the destination
interconnect controller operate independently of
one another.
- Destination FIFO Register Set: Stores the context
(src/dst/cnt/etc) for the DMA Transfer Request
(TR) in progress, or pending, in the Write
Controller. The pending register must allow the
source controller to begin processing a new TR
while the destination register set processes the
previous TR.
- Channel FIFO: Temporary holding buffer for
in-flight data. The read return data of the source
peripheral is stored in the Data FIFO, and then is
written to the destination peripheral by the write
command/data bus.
- Read Controller/Interconnect Read Interface: The
Interconnect read interface issues optimally sized
read commands to the source peripheral, based on a
burst size of 32 bytes and available landing space
in the channel FIFO.
- Write controller/Interconnect Write interface:
The local interconnect write interface issues
optimally sized write commands to the destination
peripheral, based on a burst size of 32 bytes and
available data in the channel FIFO.
- Completion interface: sends completion codes to
the EDMA_TPCC when a transfer completes and
generates interrupts and chained events in the
TPCC module.
- Configuration port: Target interface that
provides read/write access to program registers
and read access to all memory-mapped TPTC
registers.
When one EDMA_TPTC module is idle and receive its first TR, DMA program register set receives the TR, where it transitions to the DMA source active set and the destination FIFO register set immediately. The second TR (if pending from EDMA_TPCC) is loaded into the DMA program set, ensuring it can start as soon as possible when the active transfer completes. As soon as the current active set is exhausted, the TR is loaded from the DMA program register set into the DMA source active register set as well as to the appropriate entry in the destination FIFO register set.
The read controller issues read commands controlled by the rules of command fragmentation and optimization. These are issued only when the data FIFO has space available for the data read. When sufficient data is in the data FIFO, the write controller starts issuing a write command again following the rules for command fragmentation and optimization.
Depending on the number of entries, the read controller can process up to two or four transfer requests ahead of the destination subject to the amount of free data FIFO.