diff options
-rw-r--r-- | linuxgraphicsdrivers.lyx | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/linuxgraphicsdrivers.lyx b/linuxgraphicsdrivers.lyx index e1fc13c..d0ebe6e 100644 --- a/linuxgraphicsdrivers.lyx +++ b/linuxgraphicsdrivers.lyx @@ -708,8 +708,15 @@ The first user of the bus is the CPU. information directly. In particular, a peripheral which has the ability to read and write to memory without the CPU intervention is said to be DMA (Direct Memory Access) - capable, and the memory transaction is called a DMA. - Today, all graphics cards feature this ability (named DMA bus mastering) + capable, and the memory transaction is usually called a DMA. + This type of transaction is interesting, because it allows the driver to use + the GPU instead of the CPU to do memory transfers. + Since the CPU doesn't need to actively work any more to achieve those transfers, + and since it allows better asynchronicity between the CPU and the GPU, + better performance can be attained. + Common uses of DMA include improving the performance of + texture uploads or streaming video. + Today, all graphics processors feature this ability (named DMA bus mastering) which consists in the card requesting and subsequently taking control of the bus for a number of microseconds. \end_layout @@ -730,7 +737,10 @@ Notice that the DMA capability can be a downside in some cases. For example on real time systems, this means the CPU is unable to access the bus while a DMA transaction is in progress, and since DMA transactions happen asynchronously this can lead to missing a real time scheduling deadline. - Therefore, while DMA has a lot of advantages from a performance viewpoint, + Another example is small DMA memory transfers, where the CPU overhead of setting + up the DMA is greater than the gain in asynchronicity and therefore transfers + slow down. + So while DMA has a lot of advantages from a performance viewpoint, there are situations where it should be avoided. \end_layout |