Single page Print

XFX's Revo64 Serial ATA RAID card

Hardware-accelerated RAID 3
— 2:52 AM on November 10, 2005


SUPPORT FOR MULTI-DRIVE arrays in core-logic chipsets has made RAID more accessible to enthusiasts and mainstream users alike. Of course, high-end motherboards have supported RAID for a while, but these days it's difficult to find even a mid-range mobo that doesn't support multi-drive arrays. Heck, RAID can even be found on budget motherboards costing well under $100. And there are plenty of RAID add-in cards, too.

The market may be brimming with multi-drive goodness, but that doesn't mean that there isn't room for something new. You see, most affordable RAID solutions, be they add-in cards or motherboard implementations, are software-based solutions and lack dedicated onboard memory. Most stick to supporting a mix of RAID levels 0, 1, 10/0+1, and 5, as well. We haven't seen much in the way of RAID 3 or hardware acceleration, and that's where XFX's new Revo64 comes in. Based on technology from Netcell, the Revo64 combines byte-level striping with hardware-accelerated parity calculations and onboard memory to provide a potentially potent mix of performance and fault tolerance with as few as three hard drives. What's more, the Revo works its magic without requiring drivers, giving the card instant compatibility with newer versions of both Windows and Linux.

At first glance, the Revo64 looks too good to be true, especially considering its affordable street price. Does it live up to the hype? Join us as we explore the technology behind XFX's Revo64 and take an in-depth look at its performance.

Talking 'bout a Revolution?
Before diving into the specifics of the Revo64, we should take a moment to explain RAID 3. Like RAID 0, RAID 3 stripes data across multiple disks. However, unlike most striped arrays, data is broken up into individual bytes rather than larger blocks that are typically at least 64KB in size. Byte-level striping ensures that virtually every I/O request will reference data spread over all drives in a RAID 3 array, allowing the array to maximize transfer rates by pressing all drives into action to satisfy each I/O request. Arrays that rely on block-level striping can often encounter I/O requests that reference files that fit within a single block, preventing them from exploiting the performance advantages of using multiple physical drive mechanisms simultaneously. Byte-level striping isn't perfect, though. Because RAID 3 arrays generally tap all drives while servicing a single I/O request, they don't deal well with multiple simultaneous I/O requests.

There's more to RAID 3 than just byte-level striping, though. RAID 3 also calculates and stores parity data to add a measure of fault tolerance to the array. The parity calculation is similar to that employed by RAID 5, but instead of spreading parity data across the entire array, RAID 3 stores it on a dedicated parity drive. Since that single parity drive must be accessed every time data is written to the array, it could be a potential bottleneck. At least parity allows RAID 3 arrays to achieve higher storage capacities from a fewer number of disks than redundant RAID 10 or 0+1 arrays. The storage capacity of a RAID 3 array is identical to that of a RAID 5, and is expressed as the following:

capacity = (size of smallest drive in the array) * (# of drives in the array - 1)
The capacity of a RAID 10 or 0+1 array, on the other hand, is expressed as:
capacity = (size of smallest drive in the array) * (# of drives in the array) / 2
That means it's possible to create a fault-tolerant RAID 3 array with only three disks that can match the capacity of a fault tolerant RAID 10/0+1 array that requires at least four disks.

The parity calculation that gives RAID 3 its fault tolerance relies on an exclusive OR (XOR) operation that can be computationally costly. Parity must be calculated every time data is written to the array, and that's a lot of binary math. Fortunately, the Revo64's Netcell Revolution NC3000 Storage Processing Unit (SPU, as they call it) has a hardware XOR engine capable of calculating parity in real time with no CPU overhead. The hardware XOR engine should also allow the Revo64 to maintain consistent performance in the event of a drive failure.

Netcell has actually been around for a while, and the NC3000 SPU's lack of a native Serial ATA interface shows the chip's age. The NC3000 only has an ATA/100 connection to each drive, which XFX converts to SATA with a Marvell 88i8030-TBC bridge chip. The 88i8030-TBC is the same bridge used on Western Digital's Raptor hard drives, so it's a proven performer. Since not even the Raptor can sustain transfer rates that would saturate an ATA/100 connection, the NC3000's native interface shouldn't be a big concern. However, we've seen the latest SATA drives push over 200MB/s when bursting from cache, so the NC3000's 100MB/s ATA/100 interface could hamper performance in some situations. It's also worth noting that because it's an ATA/100 chip at heart, the NC3000 doesn't support Native Command Queuing (NCQ). That could hamper the card's performance under multitasking and multi-user loads, areas where RAID 3 is already at a theoretical disadvantage.

Speaking of cache, the Revo64 comes equipped with 64MB of SDRAM running at 100MHz. You won't find onboard memory on many RAID cards in the Revo's price range, so it's a definite bonus. The Revo64 line actually supports up to 128MB of memory, as well; you can see above where the extra chips might go.

128MB of memory can be found on five-port versions of the Revo64. XFX also makes a three-port version of the card with 64MB of memory, and we'll be focusing our attention on that product today. The three-port Revo64 actually comes in three versions: the Revo64 for Music Professionals, the Revo64 for Home Multimedia, and the Revo64 for Gamers. Despite slightly different model numbers, each version of the three-port Revo64 is essentially identical. Welcome to the wonderful world of arbitrary product segmentation. XFX says it may change up the bundle for each card down the road, though.

XFX's future plans also include a PCI Express version of the Revo64. The card currently rides the PCI bus, although it does support 32-bit/66MHz PCI—not that 66MHz PCI slots are common on anything but workstation and server platforms. Netcell says it already has PCI Express cards up and running, and that we can expect retail products in the first quarter of 2006 or sooner.