Optimiizing embedded applications using DMA
Sachin Gupta and Lakshmi Natarajan ,
- November 16, 2010
The Direct Memory Access (DMA) helps to yield better results in terms of CPU usage and hence higher system throughput. Earlier, the concept of DMA was limited to computer applications like PCs, servers, etc. Due to complexity of modern electronics and the need to transfer a lot of data, it has become integral part of embedded applications as well.
Just like a human body is composed of many individual systems, an embedded system comprises multiple functions. Even a basic mobile phone in today’s world includes calling facilities, messaging facilities, entertainment options like games, music player, radio, camera, Bluetooth connectivity, and so on. Including so many different functions makes these systems quite complex.
The CPU handles the arithmetic and decision-making operations. Most real-time systems might include one or more processors to handle these functions with each processor interacting with the others. On the one hand, we add more CPUs to share the load; on the other, the CPUs may waste time transferring data between them.
An efficient real-time system is one where the CPU is used for the maximum number of tasks to yield better real-time responsiveness and lower power consumption while still being flexible enough to support future enhancements. In order to reduce the CPU time that is being wasted in data transfers, many systems include a peripheral which can do data transfer operations without including the CPU. This peripheral is called the Direct Memory Access (DMA).
To read the full article, click here.