6 DMA CONTROLLER (DMAC)
S1C31D50/D51 TECHNICAL MANUAL
Seiko Epson Corporation
6-7
(Rev. 2.00)
6.5.4 Memory Scatter-Gather Transfer
In scatter-gather transfer mode, first the DMAC, using the primary data structure, copies a data structure from the
data structure table, which has been prepared with multiple data structures included in advance, to the alternate data
structure, and then it performs DMA transfer using the alternate data structure. The DMAC performs this operation
repeatedly. By programming the transfer mode of the data structure located at the end of the table as a basic transfer,
the DMA transfer can be terminated with a transfer completion interrupt. This mode requires a DMA transfer request
only for starting the first data transfer. Subsequent data transfers are performed by auto-requests.
Data structure for Task A
Reserved
Control data
Transfer destination end pointer
Transfer source end pointer
Data structure for Task B
Reserved
Control data
Transfer destination end pointer
Transfer source end pointer
Data structure for Task C
Reserved
Control data
Transfer destination end pointer
Transfer source end pointer
Data structure for Task D
Reserved
Control data
Transfer destination end pointer
Transfer source end pointer
Figure 6.5.4.1 Example of Data Structure Table for Scatter-Gather Transfer
Task A setting
DMA transfer request
Task A
(cycle_ctrl = 0x5, 2
R
= 4, N = 3)
Auto-request
Auto-reques
t
Auto-request
Auto-reques
t
Auto-request
Auto-request
Auto-reques
t
(cycle_ctrl = 0x4, 2
R
= 4, N = 16)
Copy the data structure for
Task A to the alternate data structure.
DMA transfer
completion interrupt
Task B setting
Copy the data structure for
Task B to the alternate data structure.
Task B
(cycle_ctrl = 0x5, 2
R
= 2, N = 8)
Auto-request
Auto-request
Auto-request
Task C setting
Copy the data structure for
Task C to the alternate data structure.
Task C
(cycle_ctrl = 0x5, 2
R
= 8, N = 5)
Task D setting
Copy the data structure for
Task D to the alternate data structure.
Task D
(cycle_ctrl = 0x1, 2
R
= 4, N = 4)
Transfer using primary data structure
Transfer using alternate data structure
Figure 6.5.4.2 Memory Scatter-Gather Transfer Operation Example