360
Chapter 26 DMA Controller
3.DMA Controller (DMAC) Operation
• If a transfer request for another channel with a higher priority is received during transfer, the channel is
switched after the transfer is stopped and then restarted. Priority in a step transfer is valid only if transfer
requests occur simultaneously.
[Block transfer]
If any value other than 1 is specified as the block size, a block transfer sequence is generated.
The following are some features of a block transfer:
• The block transfer has the same features as those of a step transfer except that one transfer unit consists of
multiple transfer cycle counts (number of blocks).
Figure 3-4 Example of block transfer for a start for an external pin on a rising edge, number of blocks = 2,
and transfer count = 2
● Step/block transfer fly-by transfer
This transfer has the same features as those of a 2-cycle transfer except that the transfer area can only be
external areas, and the transfer unit is read (memory --> I/O) or write (I/O --> memory) only.
3.3 General Aspects of DMA Transfer
This section describes the block size for DMA transfers and the reload operation.
■ Block Size
• The unit and increment for transfer data is a set of (the number set in the block size specification register x
data width) data.
• Since the amount of data transferred in one transfer cycle is determined by the value specified as the data
width, one transfer unit is consists of the number of transfer cycles for the specified block size.
• If a transfer request with a higher priority is received during transfer or if a temporary stop request for a
transfer occurs, the transfer stops only at the transfer unit boundary, whether or not the transfer is a block
transfer. This arrangement makes it possible to protect data for which division or temporary stopping is not
desirable. However, if the block size is large, response time decreases.
• Transfer stops immediately only when a reset occurs, in which case the data being transferred cannot be
guaranteed.
■ Reload Operation
In this module, the following three types of reloading can be set for each channel:
Table 3-5 Specifiable transfer addresses (step/block transfer fly-by transfer)
Transfer source addressing Direction Transfer destination addressing
Specification not required (invalid) None External area
CPU SA DA SA DA SA DA SA DA
21 12
0
CPU
21
Transfer count
Bus operation
Number of blocks
Transfer end
Transfer request ( edge)