X-Fi and the Elite Pro: SoundBlaster's Return to Greatnessby Derek Wilson on August 30, 2005 11:59 AM EST
The X-Fi Audio Ring: Powerful and FlexiblePutting aside marketing buzz words and the slightly tacky Xtreme Fidelity moniker, the new generation of sound cards from Creative Labs is quite impressive. The technological advancements come from the inclusion of four key new features: the ring based architecture, a high quality sample rate converter, a powerful DSP, and on-board RAM. First on the chopping block is the Audio Ring.
Current sound card architectures are based on a linear flow of data. For straight up audio listening or recording, this is not a problem - there isn't any need to deviate from the norm in these cases. And that's why we haven't seen a fundamental change in audio architecture until now. It is when we want to intensively multiplex these components and perform operations on large numbers of audio streams that we run into problems. The backbone of X-Fi is its ability to process any audio stream on any component in the audio chain in any order, and any number of times without having to leave and come back in.
The ring supports up to 4096 internal audio channels that can all be taking different paths through the hardware. Don't confuse these internal channels with the number of voices that the card can handle. The X-Fi is maximally capable of playing up to 127 simultaneous voices. These 4096 channels include channels necessary for advanced filtering and effects processing. The bus is time division multiplexed rather than interrupt driven or otherwise mastered. Time division multiplexing involves handing out the entire bandwidth of the bus to a single channel on a set time interval. The result is that each channel has a deterministic bandwidth and latency - aspects important to effective audio processing. For example, in a household with two teenage daughters, we could time division phone bandwidth by letting one daughter talk during even hours of the day and the other during odd hours. This way, the entire bandwidth of the phone (or audio ring) is fully allocated and you would always know which daughter (or channel) is using the bandwidth at a given time.
Another reason why Creative may have chosen to support so many internal channels is so that it can handle algorithms that call for splitting or duplicating an audio stream for multiple different types of processing and analysis. This could range from using CMSS-3D (Creative's new surround upmixing feature) to efficient implementations of complicated high order N-tap and feedback filters. Creative doesn't talk much about the uses of these internal channels, but many of their new features include detecting aspects of the audio being played in order to enhance the sound. It seems likely to us that the algorithms that implement their new features would rely on the high number of channels and the flexibility of the ring architecture to get as much done at one time as possible in order to keep from introducing an unacceptable amount of latency.
Now that we know how the ring works, here's what each node on the ring does:
Transport: This handles moving audio streams in and out of local RAM as well as over the PCI bus to system RAM. The Transport engine manages over 1000 DMA channels to both the PCI bus and local SDRAM. Being able to manage so many DMA requests at a time is important for dealing with the latency of PCI and effectively managing the volume of data with which the new solution is capable of working.
Tank: Its name is based on the tanks that held mercury used to create high quality analog delay lines. The tank engine is capable of fractional and modulated delay lines (delays that don't line up with the sample pattern and delays that change over time). The tank engine supports up to 1024 accesses per sample. This means that the tank engine can assist in many types of effects including: chorus, reverb, reflections, and interaural time delays (for positional audio effects). These effects are employed quite a bit in many of the audio processing features of the X-Fi, so avoiding the use of a DSP for the creation of a delay line is very helpful in spreading out processing power.
SRC: The Sample Rate Converter seamlessly transforms any audio stream or channel to any other supported sample rate with very low ripple and THD+N. We will cover this node in detail as it is one of the key features of the new architecture, allowing Creative to convert the sample rate of all audio multiple times independently of any other audio with little to no discernable loss in quality.
Filter: The filter engine implements 512 floating point 2nd order IIR filters. This is the fundamental building block of sound synthesis, 3D spatialization, equalizers, speaker calibration, and a host of other features. There are 13 filter types implemented in hardware from direct and parametric 5 parameter EQs to notch and peak filters. Complex (higher order) filtering and synthesis can be achieved by looping through the filter engine multiple times until the desire result is achieved.
Mixer: Consisting of 256 audio summers, 1024 parameter combiners, and 4096 single segment parameter rampers, the mixer is where internal audio channels come together. Parameter mixing and ramping are used to control effects combining for things like 3D audio effects in game. Instead of single segment, the parameter rampers can also support either 1536 multi segment rampers or 4 multi segment shapes (possible shapes are linear, pseudo exponential, and pseudo logarithmic).
DSP: The X-Fi Quartet DSP is so named because it supports 4 hardware threads. Each thread has access to two SIMD (single instruction, multiple data) units for easy stereo and complex math processing. NVIDIA has called a multiple SIMD processing unit MIMD (multiple instruction multiple data), but Creative has dubbed the overall architecture TIMD (Thread Interleaved Multiple Data) due to the hardware threading support alongside traditional methods. The Quartet DSP is central to many of the X-Fi features and we will cover this hardware at length as with the SRC engine.
Audio I/O: This node handles moving the final processed audio streams to output either digitally or through a DAC, and can also acquire input from each of the source options on the hardware. Audio sources in memory do not enter the path through this node, and likewise for audio written to memory (or a file). This block manages all the physical I/O ports on the X-Fi card.
Having easy access to any of these structures at any time during audio processing will greatly simplify the process and increase the complexity of operations possible on X-Fi hardware. In order to further optimize the architecture, Creative has introduced three distinct modes in X-Fi. These modes outline the basic type of path that audio streams will take through the ring. For instance, professional audio programs require very low latency audio from the sound card when recording. In order to accommodate this, the Creation mode limits the types of processing done to less complex (and faster) algorithms. Creation mode also allows synchronized audio streams for proper integration into a studio setting. These features aren't necessary when in Gaming or Entertainment modes, as the focus of these modes is on generating or heavily processing audio before input or output.
Architecting the card like this isn't useful unless the nodes on the ring are powerful enough to exploit the potential. Creative has spent quite a bit of time in making sure that this is the case. Their components are high quality and introduce as little distortion and noise as possible in order to make heavy processing of audio on a consumer sound card a reality. (Whether this is really a good thing or not is still up to the end user.) Over the next couple of sections, we will cover the most important components of the audio ring, as well as explore what is possible when all of this hardware sings in unison.