2.11 EDMA3 Transfer Controller (EDMA3TC)
2.11.1 Architecture Details
2.11.1.1 Command Fragmentation
www.ti.com
EDMA3 Transfer Controller (EDMA3TC)
The EDMA3 channel controller is the user-interface of the EDMA3 and the EDMA3 transfer controller
(EDMA3TC) is the data movement engine of the EDMA3. The EDMA3CC submits transfer requests (TR)
to the EDMA3TC and the EDMA3TC performs the data transfers dictated by the TR; thus, the EDMA3TC
is a slave to the EDMA3CC.
The TC read and write controllers in conjunction with the source and destination register sets are
responsible for issuing optimally-sized reads and writes to the slave endpoints. An optimally-sized
command is defined by the transfer controller default burst size (DBS), which is defined in
The EDMA3TC attempts to issue the largest possible command size as limited by the DBS value or the
ACNT/BCNT value of the TR. EDMA3TC obeys the following rules:
•
The read/write controllers always issue commands less than or equal to the DBS value.
•
The first command of a 1D transfer is always issued so that subsequent commands align to the DBS
value.
shows the command fragmentation for a DBS of 32 bytes. In summary, if the ACNT value is
larger than the DBS value, then the EDMA3TC breaks the ACNT array into DBS-sized commands to the
source/destination addresses. Each BCNT number of arrays are then serviced in succession.
Example 2-3. Command Fragmentation (DBS = 32)
The pseudo code:
1. ACNT = 8, BCNT = 8, SRCBIDX = 8, DSTBIDX = 10, SRCADDR = 64, DSTADDR = 191
Read Controller: This is optimized from a 2D-transfer to a 1D-transfer such that the read side is
equivalent to ACNT = 64, BCNT = 1.
Cmd0 = 32 byte, Cmd0 = 32 byte
Write Controller: Since DSTBIDX != ACNT, it is not optimized.
Cmd0 = 8 byte, Cmd1 = 8 byte, Cmd2 = 8 byte, Cmd3 = 8 byte, Cmd4 = 8 byte, Cmd5 = 8 byte,
Cmd6 = 8 byte, Cmd7 = 8 byte.
2. ACNT=64, BCNT = 1, SRCADDR = 31, DSTADDR = 513
Read Controller: Read address is not aligned.
Cmd0 = 1 byte, (now the SRCADDR is aligned to 32 for the next command)
Cmd1 = 32 bytes
Cmd2 = 31 bytes
Write Controller: The write address is also not aligned.
Cmd0 = 31 bytes, (now the DSTADDR is aligned to 32 for the next command)
Cmd1 = 32 bytes
Cmd2 = 1 byte
For BCNT arrays of ACNT bytes (that is, a 2D transfer), if the ACNT value is less than or equal to the
DBS value, then the TR may be optimized into a 1D-transfer in order to maximize efficiency, as per the
rules in
. The optimization takes place if the EDMA3TC recognizes that the 2D-transfer is
organized as a single dimension (SAM/DAM = INCR), BIDX = ACNT, the ACNT value is a power of 2, and
the BCNT value is less than or equal to 1023.
lists conditions in which the optimizations are performed.
SPRUG34 – November 2008
EDMA3 Architecture
57
Summary of Contents for TMS320DM357
Page 2: ...2 SPRUG34 November 2008 Submit Documentation Feedback ...
Page 12: ...List of Tables 12 SPRUG34 November 2008 Submit Documentation Feedback ...
Page 16: ...Read This First 16 SPRUG34 November 2008 Submit Documentation Feedback ...
Page 64: ...EDMA3 Architecture 64 SPRUG34 November 2008 Submit Documentation Feedback ...