I did a series of tests with my M4 and came to the result that performance is the very same for both DMA mode and PIO (CPU driven) mode. Both can reach maximum throughput in all situations, both cause about the same CPU load and both are seriously affected by any CPU power-saving C-states (especially C1E, but also C3/6/7).
So can anyone explain why there seems to be no discernable difference between using DMA and PIO with SSDs, and especially why DMA mode is affected by CPU C-states?
I would suspect that AHCI drivers don't use DMA mode when connected to a SSD even while reporting to do so, but I know that there *is* a difference when it comes to link/communication errors, so there must be *some* kind of difference. Still the CPU issues make no sense for a DMA connected drive.
Another explanation would be that *drivers* (both Intel and MSAHCI) are affected heavily (and cause same CPU load for both modes). If this is the case I still wonder why DMA driven drives are so much affected.
Last but not least it is possible that benchmarking/measuring software is affected. But if this is the case then *all* of them seem to be affected the same (tried ATTO, ASSD, CDM and IOMETER).
So what is going on here?
-
Even worse, not only idle C-states have a considerable impact on SSD performance, but also non idle P-states. This means that SSD throughput changes with CPU clock-rate! Can anyone explain why my i7 Quad SNB CPU needs to run at over 3.3 gHz to get full 4 kb throughput? Where is the DMA in that?
Just to make this clear: I'm not ranting, I'm asking these questions hoping that someone knows more than myself. -
To give an idea about the numbers/differences, here some screenshots of benchmarks. All done on a Sandybridge i7 2.3 Quad mobile CPU.
CPU @ 3.3 gHz, all idle C-states demoted to C1, C1E disabled
CPU @ 1.3 gHz, all idle C-states demoted to C1, C1E disabled
Windows stock "High Performance" profile, all C-states + C1E enabled
-
Excerpt from the AHCI specification:
What is going on with SSD in DMA mode?
Discussion in 'Hardware Components and Aftermarket Upgrades' started by T1mur, Jul 16, 2011.