MAXPC - The Hard Disk Drive
Welcome to MaxPC! In this section we'll look at the important subsystems in your PC, and show how to eke out that extra bit of performance. If you are like many of us, it just might become an obsession as well as a full time hobby. Our first installment focuses on hard drives.
Hard drives are without a doubt the slowest sub system in your PC, and quite often the bottleneck in PC performance. Since drives have moving parts, the rotational speed of the drive plays an an important role. All three winners of PC Pitstop's December 2004 Top Dawg Challenge had remarkably similar hard drive configurations--Western Digital Raptors in a RAID 0 setup. We'll analyze this popular setup, and also take a peek at where hard drive subsystems are headed in order to get maximum hard drive performance.
RAID stands for Redundant Array of Independent Drives. In RAID, two or more drives are configured so that they appear as a single drive to the operating system software. The goal is to improve performance, data security, or both. There are currently at least 11 different RAID configurations, but only two of these are of interest in our quest for maximum performance, RAID 0 and RAID 5. Both of these RAID technologies get their performance advantage from a technique called striping.
Earning Your Stripes
In the data-moving hierarchy of a PC, the hard drive is by far the slowest link in the chain. The CPU, system memory, and data transfer interfaces can all move data at least several times faster than it can be transferred off the moving platters of even the fastest hard drive. One way to improve performance is to create a logical disk drive that consists of several physical disk drives. The data on the logical drive is "striped" so that when a file is requested it actually consists of data that is stored on two or more drives. The RAID controller takes care of combining the data so that the operating system just sees the logical drive. The performance improvements from striped data are almost linear; two striped drives give twice the disk performance, four striped drives quadruple performance, and so on.
RAID 0: Speed Demon
RAID 0 is the simplest and fastest of the RAID configurations where the data is broken into blocks by the controller and written simultaneously to two or more drives using the data striping technique described above. For example, four 100GB drives could be striped to create a single logical 400GB drive. RAID 0 is hands-down the fastest RAID array you can build. However, it also has no fault tolerance. For every drive added to the array, the probability of failure increases, or viewed another way, the mean time to failure decreases. Since the logical drive's data is interleaved across all drives, there is a high potential for data loss in the event of even a single disk failure. There is no simple way to recover short of restoring an offline backup.
RAID 5: Speed and Security
RAID Level 5 is also known as Block Interleaved Distributed Parity. The data is striped as with RAID 0, but an additional drive is used to hold parity information for each block on the other drives. RAID 5 requires at least three drives and is usually configured with five drives since additional drives reduce the overhead cost of the parity drive. For example, five 100GB drives (a total of 500GB of raw capacity) could be used to create a single logical 400GB drive in a RAID 5 configuration. If one of the drives fails during operation, the data on the failed drive can be recreated by using the four remaining drives. Software for the RAID controller usually notifies the user that a drive has failed, allowing them to replace it. The controller then rebuilds the new drive using its parity information. In normal operation, the read performance of RAID 5 is comparable to RAID 0, and write performance is slightly lower due to the overhead of writing the parity information.
The RAID controller's job is to break down, distribute, and reassemble the blocks of data that are sent to the drives. There is quite a wide difference in performance among those currently available. Although RAID controllers can be purchased as PCI add-in cards, the 32-bit PCI bus can act as a bottleneck on very high-performance RAID setups. Many, if not most, new motherboards build in one or more RAID controllers as part of the onboard package. Since most desktop boards support only two to four drives per controller, they most commonly support RAID 0 and RAID 1 (mirrored) solutions. RAID 5 support is more common with controllers that support four to eight drives.
Hard drive architecture
While a RAID 0 array will significantly speed up the read/write time, overall performance is also dependent on the mechanical aspects of the drive. Modern hard drives usually contain multiple platters and multiple read heads, all moving at incredible speeds. The arm on a typical hard drive can move from the hub to the edge and back up to 50 times per second, while the platters themselves typically spin at 7,200 RPM. If you’ve ever had a CD disintegrate in the burner while it was spinning, you have some idea of the centrifugal forces that hard drive manufacturers must accomodate.
Data transfer rate and seek time are two essential measures of hard drive performance. The faster the platters spin and the faster the arm can move the heads over the disk, the higher the transfer rate. Higher rotational speed means that more data travels beneath the heads, and is available for use, in the same amount of time as a slower drive.
Breaking 10,000 RPM
The first Serial ATA hard disk drive with a 10,000 RPM spindle rotation speed and 8MB cache-buffer was released by Western Digital in April of 2003. The original Raptors were targeted as inexpensive enterprise storage solutions, but their reasonable price and very high performance made them an instant hit with the enthusiast and desktop markets. The current 74 GB drives have a seek time of 4.5 ms, and the 36 GB drives are a bit slower but still a worthy 5.2 ms.
If absolute maximum performance is the goal, it would be hard to beat the 74 GB Raptors in a RAID 0 array. And the more drives in the array, the faster the transfer time. The current champion at PC Pitstop is the nVidia nForce chipset with four WD Raptors in a RAID 0 array pumping data at an incredible 270 MB per second! By comparison, a single 7,200 RPM Serial ATA drive will typically run at 65 to 80 MB/sec and older 5400 RPM ATA drives drop into the teens.
Eye to the future
The original SATA specification was in three phases, which can be denoted very basically by their respective transfer speeds: Sata I (150 MB/sec), Sata II (300 MB/sec), and Sata III (600 MB/sec). Although increased data throughput is important to keep up with drive improvements, there are more enhancements to each phase than just speed. One of the more dramatic improvements in Sata II is the introduction of Native Command Queuing, or NCQ.
Native Command Queuing is a method (command protocol) whereby the drive itself is able to arrange the requests it receives into a more efficient processing order, as opposed to the traditional "first in first out" way of doing business. Suppose the drive received requests for sectors 1000, 500, and 1100 in that order. In SATA I the drive would need to process the requests in the order given which would require the head to change directions and travel back over sector 1000 to reach sector 500, then travel back over sector 1000 again to reach sector 1100. With NCQ, the drive might process the request for sector 500 first and then read sector 1000 and 1100. The end result is more work in the same amount of time with much less head movement. Since head movement is slow, reducing that movement improves performance.
As drives rotate faster and faster with multiple platters and heads, certain mechanical limitations throw up obstacles to higher performance, effectively increasing the cost per megabyte of storage, but NCQ provides increased performance while reducing the mechanical load on the drive. That can also lead to less wear and improved reliability.