What does DMA mean? What is DMA?
The English spelling of DMA is "Direct Memory
Access, which means direct memory access, is a data exchange mode that directly accesses data from the memory without going through the CPU. In PIO mode
CPU control. In DMA mode, the CPU only needs to issue commands to the DMA controller for the DMA controller to transmit the data. After the data is transferred, the information is fed back to the CPU, this is a great deal.
CPU usage is reduced. The difference between the DMA mode and the PIO mode is that the DMA mode is not dependent on the CPU, which can greatly save system resources. The difference in transmission speed between the two is not very
Obviously. The DMA mode can be divided into single-word DMA (single-byte DMA) and Multi-word
Two types of DMA (Multi-byte DMA), the maximum transmission rate is only 16.6 Mb/s.
Direct Memory Access (DMA) controller is a unique peripheral for data transfer within the system, it can be considered as a way to integrate internal and external memory with each
The controller that connects the peripheral of the Force. It belongs to peripherals because it executes transmission under the programming control of the processor. It is worth noting that only the data traffic is large (kbps or higher ).
Peripherals need to support DMA capabilities. Typical examples of these applications include video, audio, and network interfaces.
Generally, the DMA controller will include an address bus, a data bus, and a control register. An efficient DMA controller can access any resources it needs without the intervention of the processor itself. It must be able to interrupt. Finally, it must be able to calculate the address inside the controller.
A single processor can contain multiple DMA controllers. Each controller has multiple DMA channels and multiple direct connections with the memory
Bank) is connected to the peripheral bus, as shown in 1. Two types of DMA controllers are integrated in many high-performance processors. The first type is usually called "system DMA controller", which can be implemented for any resource
For this type of controller, the number of signal cycles is counted by the system clock (sclk). Taking the ADI Blackfin Processor as an example, the maximum frequency is reachable.
133 MHz. The second type is called the internal memory DMA controller (imdma), which is used for mutual access between the locations of the internal memory. Because access occurs internally (L1-L1,
L1-L2, or L2-L2), the count of the number of cycles is performed based on the INCORE clock (cclk), the clock speed can exceed 600 MHz.
Each DMA controller has a set of FIFO, acting as a buffer between the DMA subsystem and peripherals or memory. For memdma (memory DMA), both the source and target ends of the transmission have a set of FIFO instances. When resources are insufficient and data transmission cannot be completed, the FIFO can provide a temporary data storage area to improve performance.
Because you usually configure the DMA controller during code initialization, the kernel only needs to respond to the interruption after data transmission is complete. You can program the DMA control so that it can move data in parallel with the kernel, while allowing the kernel to execute its basic processing tasks-the work that should be focused on.