Integrated Drive Electronics (IDE) was the original bus standard for hard drives and storage media. Originally developed by Western Digital, ATA, and APTI in 1986, it was dubbed Advanced Technology Attachment (ATA). As mass storage devices became larger, the standard could no longer handle the physical size of drives. Thus, Enhanced IDE (EIDE) was born allowing drives up to 8.4 GB in size. At the same time, this standard extended its ability to allow other device such as CD and DVD-ROMS, tape drives, and large-capacity floppy. Hard drives continued to become larger and thus the ATA standard continued to be revised to accommodate 137 GB then 160 GB, and now 128 PiB (or 144 Petabytes). Since the introduction of Serial ATA (SATA), the names IDE, EIDE, and ATA are all synonymous and interchangeable to Parallel ATA (PATA).
Serial Advanced Technology Attachment (SATA) was introduced in 2003 to alleviate the burden of constantly refining PATA’s dated technology. In addition, this new standard introduced a number of new features unavailable to PATA. One large difference in SATA is the use of Low Voltage Differential Signaling (LVDS), allowing signaling rates of 1.5 Gbit/s and higher. The data is encoded using the 8B/10B standard similar to that used in Ethernet, Fiber and PCI Express. Since the 8B/10B standard is 80% efficient, actual realized transfer-rate is 1.2 Gbits/s (150 MB/s) for the first introduction of SATA, SATA/150 (SATA at 150 MB/s).
SATA is currently a non-shared bus interface (To change with SATA 6.0 Gbits/s). Therefore it is one bus, one drive allowing for dedicated bandwidth. Also, with certain implementations, SATA interface allows drives to be hot-swappable. After SATA/150 was released, a number of shortcomings soon revealed themselves. The first and most important was SATA’s emulation of the PATA interface during the transition period. PATA could only handle 1 pending transaction at a time while SCSI had long benefited from its support of multiple outstanding requests, enabling the controller to re-order requests to optimize response-time. Native Command Queuing (NCQ) was introduced as an alternative to Native SATA (non-PATA emulated drives), both SATA/150 and SATA/300. SATA/300 is simply a doubled signaling rate to obtain 3 Gbit/s, allowing transfer rates of 300 MB/s burst-throughput; a response to the idea that SATA/150 is hardly faster than ATA/133, even though the fastest desktop hard drives barely saturate the SATA/150 link. Serial ATA 6.0 Gbit/s is in the current road map to allow for port multipliers, allowing the bus to be shared or perhaps enabling the use of solid-state drives such as RAM disks.
Redundant Array of Inexpensive Disks (RAID), also known as Redundant Array of Independent Drives, is a general term for mass storage schemes that split or replicate data across multiple hard drives. Essentially, RAID combines a number of hard disks into one logical unit through hardware or software. A number of different RAID configurations have appeared, but the main levels, RAID 1-5, will be discussed here:
- RAID 0: Striped Set without Parity (Requires Minimum 2 Disks) – Data is equally divided into fragments across a number of disks. This multiplies the read and write speed by the number of hard drives present in the system (with a little loss to overhead) since one portion of data is equally split and written to or read from all disks at the same time. While dramatically increasing performance, if any one drive fails, the entire array is corrupted and cannot be recovered.
- RAID 1: Mirrored Set (Requires Even Number, Minimum 2 Disks) – Data is mirrored across drives. Increased read performance with slightly decreased write. Operates as long as one drive is functioning.
- RAID 2: Striped data at the bit (rather than block) level – The disks are synchronized by the controller to spin in perfect tandem. Extremely high data transfer rates are possible. This is the only original level of RAID that is not currently used.RAID 2 is the only standard RAID level which can automatically recover accurate data from corrupt data. Other RAID levels can detect corrupt data, or can reconstruct missing data, but cannot reliably resolve contradictions between parity bits and data bits without human intervention.
- RAID 3 and RAID 4: Striped Set (Requires Minimum 3 Disks) with Dedicated Parity – Similar to RAID 0 but one extra drive is dedicated for Parity. Maximum write performance is determined by the ability to write the parity data to the single drive. Read performance is equal to RAID 0. Fault tolerant to 1 drive.
- RAID 5: Striped Set (Requires Minimum 3 Disks) with Distributed Parity – Similar to RAID 3 and RAID 4, but parity is rotated through all disks allowing reconstruction should any one drive fail. Performance increase is just below RAID 0 but increased fault protection makes RAID 5 an ideal choice over RAID 0.
Figure 1: Striping Data Across Multiple Disks By Using RAID