Saturday, September 8, 2007

What the 2 MiB SDRAM bank on the X-Fi Xtreme Gamer card is for.

This isn't the first time I'm buying a Sound Blaster X-Fi series sound card. The last time around it was an X-Fi Platinum. That's the card that comes with the internal 5.23" bay-fitting i/o module. To look at, all the X-Fi series cards had an identical PCB layout. Just that the Xtreme Music card, just like the now Xtreme Gamer card didn't really have X-RAM. It did have a SDRAM memory bank chip alongside the X-Fi processing unit though. Nor did it have that Relay choke at the NW of the PCB that gave a clicking sound when modes were changed. My older card did. Basically, the choke turns off certain parts of the card when the current mode didn't require them. For example, say you're playing a simple .mp3 file, you really wouldn't need the 10000 MIPS processing unit running, consuming power and heating up. So when in the Entertainment Mode , The X-Fi processor has registers that route the Cirrus Logic DAC directly to the PCI Bus-master. In this way the CPU does the audio processing which really doesn't burden the CPU, and keeps the card cool. But when in gaming mode, the DACs are routed to the Audio Processing unit that accelerates hardware voice mixing, sample rate conversion and EAX HD and 3D Audio API hardware acceleration that'd otherwise tax the CPU heavily, as in the case of on-board audio solutions or sound cards without native processing.

Now, getting back to where we started, the 2048 KiB memory bank on the Xtreme Gamer and Xtreme Music cards: Well, Back in the early '90s, the CPUs weren't very powerful to cope with multimedia tasks, where huge chunks of streaming data were dealt with. So add-on devices had native processing where the core-logics of the peripheral device would do its computational job by itself, I'm talking about things like Network cards, Sound cards even Digital Video capture cards. But with growth in the computational power of the CPUs and feature-sets like MMX, everyone started making stuff that'd depend on the CPU for its core-logic. With growth in computational power, so did applications started being made that became more and more demanding to the hardware like games and content-creation software. The need for components that were autonomous grew, so now we have a sound card with a heatsink for its "processor" that can crunch 10,000 million instructions per second!

To the point: The X-RAM in the higher versions of the card serve as hardware memory that Direct-Sound supports, that greatly enhances hardware mixing and reducing latencies between the system's sound stacks, the Audio Processor and the DAC. Another advantage is that the application that supports X-RAM technology can write its raw sound samples directly into the X-RAM and have the AP do its job with minimal CPU intervention. While talking about all this we tend to forget that all processors in existence require some extended set of instructions that run the processor at the hardware-level. The PC's processor itself requires the system BIOS to make it perform its operations. In other words, there's a requirement of a software code that instructs the processor on how to function. Now all the higher X-Fi series cards that feature X-RAM have at least 64 MiB of it in size, of which, at any point in time, 2 MiB will be reserved for storing the X-Fi processor's BIOS microcode. The processor needs this in whichever card it is in. Now, in all cards that have the X-Fi processor you will have a memory bank with at least 2 MiB of size. So, in all these cards, when the OS loads the driver, the driver transfers this microcode that's bundled with the driver into this memory bank, irrespective of the bank's size. Only after that the X-Fi processor starts up, has 256 KiB of its emulated ROM into the bank, 1024 KiB as the processor's instruction set cache, the rest on reserve, in case future drivers have bigger micro-codes. Now, if the card features "X-RAM", the rest of the 62 MiB of the bank is used for the above mentioned functions. Else, that doesn't affect the processor's normal operation, just that the driver will use the system's main memory instead with the only disadvantage being that raw audio data moves all the way from the X-Fi processor to the PCI bus, to the CPU to the memory controller to the system memory, with the system BIOS 's commands. This increases latency by a huge margin. This is what causes the frame-rate difference between the X-RAM featuring cards and those without it. Ciao.


Ghost said...

very useful blog. it helped me understand the purpose of ram on sound cards. thx!!

Ralph said...

I recently came across your blog and have been reading along. I thought I would leave my first comment. I don't know what to say except that I have enjoyed reading. Nice blog. I will keep visiting this blog very often.