LiteOn LDW burners seem to be often criticized by PC press for their “high CPU usage.” Frankly, this sounded nonsense to me because I had been sure that CPU usage had to do not with a drive, but with the controller the drive is attached to and the operating system. However, a rumour said that an average IDE controller was akin to pass-through wire rather than to a sophisticated VLSI device, and therefore the drive itself did matter. With a brand new LDW-451S in my PC, I’ve finally got a chance to verify the grounds for such a criticism.
First of all, I should confess that my PC is P-200 based. No, it is not the fabulous 200th generation of the Intel CPU delivered right from the future–it’s Pentium I, 200MHz. Despite being a fossil, it creates some curious opportunities to do (mis)performance testing. My motherboard is built around 430VX–yet another little dinosaur.
Windows 98SE on my PC
When DMA was disabled on the DVD drive, Nero 5.5 CD Speed yielded the following CPU Usage Test results:
1x - 4%; 2x - 9%; 4x - 17%; 8x - 34%.
When DMA was enabled, the results were as follows:
1x - 2%; 2x - 5%; 4x - 9%; 8x - 17%.
CPU usage clearly decreased by the factor of 2 when DMA was enabled. This is an obscure feature of Windows 98 I/O subsystem because one can expect CPU usage to drop more considerably with DMA on.
Copying from a CD-R or DVD+RW to “nul” was apparently CPU-bound. CPU usage stayed at maximum, 100%, during the operation, while throughput peaked at ~3.5M/sec. DMA was enabled on the DVD drive.
Burning a CD-RW at 10x w/DMA enabled was eating 70-80% CPU time.
FreeBSD 4.9 on my PC
Was copying a DVD+RW to /dev/null. W/DMA enabled, throughput peaked at 8M/sec near the outer edge of a DVD. The highest CPU usage observed, ~50%, corresponded to the peak performance. “Interrupt” time kept as low as 4-6%, indicating that only a small fraction of CPU time was dedicated to communication with the DVD drive–the rest of CPU time, mostly “system”, was obviously spent by the OS moving the data around RAM.
W/DMA disabled, in PIO4 mode, throughput was never higher than 4.6M/sec while CPU usage topped 85%, with most time spent in “interrupt.” According to “iostat” and “systat”, physical transfers where done in 60K chunks and required an average of 2.5 interrupts per transfer. Peak interrupt rate was 190Hz. For comparison, copying from a hard disk in PIO4 mode to /dev/null was done in 16K chunks and took 2 interrupts per chunk; peak interrupt rate was 1040 Hz.
Burning a DVD+RW at 4x (~6M/sec) with “dvd+rw-tools” never ate more than 20% CPU time, with <5% “interrupt” time.
Windows 2000 on AMD Athlon 1700+
With DMA disabled by accident, reading from the DVD drive at the full speed resulted in 100% CPU usage (!) Re-enabling DMA led to CPU usage dropping as low as less than 5%.
LiteOn LDW drives can challenge operating systems with poor I/O strategy–Windows 98 is an example. However, an OS of this kind is likely to show low performance with any high-speed optical drive.
When in PIO mode, LDW-451S indeed displayed very high CPU usage, requiring about 6 times more CPU cycles per transfer than a reference hard drive. This could be attributed to suboptimal bus management by the drive when in this outdated I/O mode. The question of how other high-speed optical drives perform in PIO mode is left open, though.
On the other hand, a modern OS that efficiently makes use of such advanced techniques as bus-mastering on IDE controllers should meet no trouble with the drives in question even on a slow CPU, e.g., Pentium I. The CPU requirements by LiteOn are actually somewhat excessive.
CPU usage test results found in press are to be taken with a grain of salt as long as a single OS may implement a number of I/O strategies with different performance profiles.