
R01UH0218EJ0110 Rev.1.10
Page 197 of 664
Sep 12, 2011
R32C/142 Group and R32C/145 Group
13. DMAC II
13.7
Execution Time
The DMAC II execution cycle is calculated by the following equations:
Mode other than multiple transfer: t = 6 + (26 + a + b + c + d) × m + (4 + e) × n cycles
When using multiple transfer: t = 21 + (11 + b + c) × k cycles
a: When IMM is 0 (transfer source is immediate data), a is 0;
When IMM is 1 (transfer source is memory), a is -1
b: When UPDS is 1 (source addressing is incrementing), b is 0;
When UPDS is 0 (source addressing is non-incrementing), b is 1
c: When UPDD is 1 (destination addressing is incrementing), c is 0;
When UPDD is 0 (destination addressing is non-incrementing), c is 1
d: When OPER is 0 (calculation transfer is not selected), d is 0;
When OPER is 1 (calculation transfer is selected) and UPDS is 0 (source addressing is
immediate data or non-incrementing), d is 7;
When OPER is 1 (calculation transfer is selected) and UPDS is 1 (source addressing is
incrementing), d is 8
e: When CHAIN is 0 (chained transfer is not selected), e is 0;
When CHAIN is 1 (chained transfer is selected), e is 4
m: When BRST is 0 (single transfer), m is 1;
When BRST is 1 (burst transfer), m is COUNT
n: When COUNT is 0001h, n is 0; if COUNT is 0002h or more, n is 1
k: The number of transfers set using bits CNT2 to CNT0
The equations above are estimations. The number of cycles may vary depending on CPU state, bus wait
state, and DMAC II index allocation.
Figure 13.5 Transfer Cycles
The following assumes a DMA II transfer complete interrupt (transfer counter = 2) is
generated with no chained transfer after a memory-to-memory transfer is performed
twice with a incremented source address and a non-incremented destination address in
single transfer mode.
Transfer counter = 2
Transfer counter decrements
Transfer counter = 1
7 cycles
DMA II transfer request
(a = -1, b = 0, c = 1, d = 0, e = 0, m = 1)
Program
First DMA II transfer
t = 6 + (26 - 1 + 0 + 1 + 0) × 1 + (4 + 0) × 1 = 36 cycles
Second DMA II transfer t = 6 + (26 - 1 + 0 + 1 + 0) × 1 + (4 + 0) × 0 = 32 cycles
DMA II transfer request
DMA II transfer
(first time)
DMA II transfer complete
interrupt processing
32 cycles
Program
Transfer counter = 1
Transfer counter decrements
Transfer counter = 0
DMA II transfer
(second time)
36 cycles