digger
Experienced Member
Here's a question to ponder on and debate on a quiet Sunday afternoon...
As is well known, most sound cards in the DOS era used DMA to enable sound output (and input) at low CPU utilization. Sound solutions that lacked DMA capability, such as the internal speaker, or an LPT DAC, required excessive CPU power if one wanted to do anything interesting, such as mixing and outputting digital PCM sound.
But there was also a third possible option that was already being used in graphics cards and other hardware, namely memory-mapped I/O. A sound card could've had dedicated memory on the card, say 32KB or perhaps even 64KB, just enough for containing a MIDI/FM playlist and a PCM audio buffer. After sending the audio or music data to the memory-mapped buffer, all the CPU would then have to do is instruct the sound card to process it, by sending it the correct commands through I/O ports, and then the sound card would take care of things independently.
Of course it would require a sound card to be a bit smarter, but then again: the added complexity would have been negated by being able to do away with a DMA controller on the card.
Also, it would have been easier to maintain hardware compatibility when the transition from ISA to PCI was made in the early and mid 90s.
So what I'm wondering is why no sound card manufacturer ever tried going down the memory-mapped I/O route as a viable alternative to DMA-based audio solutions?
Perhaps there were good practical reasons for that? (For instance, a DMA controller might have been much cheaper than dedicated RAM on the card? I don't know?)
Any ideas?
As is well known, most sound cards in the DOS era used DMA to enable sound output (and input) at low CPU utilization. Sound solutions that lacked DMA capability, such as the internal speaker, or an LPT DAC, required excessive CPU power if one wanted to do anything interesting, such as mixing and outputting digital PCM sound.
But there was also a third possible option that was already being used in graphics cards and other hardware, namely memory-mapped I/O. A sound card could've had dedicated memory on the card, say 32KB or perhaps even 64KB, just enough for containing a MIDI/FM playlist and a PCM audio buffer. After sending the audio or music data to the memory-mapped buffer, all the CPU would then have to do is instruct the sound card to process it, by sending it the correct commands through I/O ports, and then the sound card would take care of things independently.
Of course it would require a sound card to be a bit smarter, but then again: the added complexity would have been negated by being able to do away with a DMA controller on the card.
Also, it would have been easier to maintain hardware compatibility when the transition from ISA to PCI was made in the early and mid 90s.
So what I'm wondering is why no sound card manufacturer ever tried going down the memory-mapped I/O route as a viable alternative to DMA-based audio solutions?
Perhaps there were good practical reasons for that? (For instance, a DMA controller might have been much cheaper than dedicated RAM on the card? I don't know?)
Any ideas?