summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--linuxgraphicsdrivers.lyx16
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