[vox-tech] update on the audio CD problem

Peter Jay Salzman p at dirac.org
Fri Jan 27 16:38:30 PST 2006


On Fri 27 Jan 06,  3:17 PM, Bill Kendrick <nbs at sonic.net> said:
> On Fri, Jan 27, 2006 at 04:05:23PM -0500, Peter Jay Salzman wrote:
> > No.  The CPU is involved in many read-copy operations when the signal passes
> > through the sound card.
> <snip>
> 
> It was my understanding that in this "analog" CD audio playback scheme,
> the data is extracted by the CD Drive itself, converted to analog with the
> drive's own built-in DAC (just like what's in a CD Walkman or a stereo),
> and then wired directly to the sound card's "Line In" pins, and passed
> along to the speakers.  (Mixed on the card in an analog state.)
> 
> So in this case, the only time the PC's CPU is used is to tell the CD player
> "Play", then it sits idle.  Everything is done by the CDROM drive.

you're not thinking low level enough.  system calls are performed by the
kernel.  when a read() is performed, the kernel reads data from a file
abstraction of a hardware device.  the data is in kernel space.  the data
must be recopied into user space.

now the kernel must execute write().  it reads data in user space back into
kernel space to perform the write() to the sound card's file abstraction.

a kernel always executes system calls in kernel mode.

> In the "digital extraction" mode (which Norm has to do -- perhaps because
> that little wire connecting the CD drive to the soundcard is missing),
> the CPU is used to actually take the data off the CD and send it to the
> sound card (via the motherboard, rather than that little wire).

not quite.  with digital extraction, DMA transfer is used to transfer data
directly from the ATA device to userland memory.  that's the whole point of
DMA transfer.

pete


More information about the vox-tech mailing list