In my last article in this series, I explained the differences between Parallel ATA and Serial ATA 1.0. In this article, I will expand this coverage to include the relatively new SATA II standard. SATA II is the evolutionary next-step in the development of Serial ATA, and boasts significant performance and feature improvements over SATA 1.0, making it more suitable for enterprise-level applications. Let's take a look under the hood at this new technology.
Serial ATA II (SATA II)/SATA 3G/SATA-IO
Before I get into features, let me address the SATA II/SATA 3G/SATA-IO naming issue. SATA II was originally the name of the committee that was formed to extend the original SATA 1.x specifications to include new features. This group has since been renamed to the SATA International Organization (SATA-IO). The name SATA II has stuck, though. Different vendors and publications still call it different things. SATA 3G is also common--referring to the speed of the interface--and I've also seen SATA 300, SATA 3Gb/s, and SATA-IO. To make matters more confusing, SATA-IO is currently working on version 2.5 of the SATA specification. The overseeing organization uses the SATA-IO nomenclature, and for clarity, I'm going to stick with the SATA-IO label.
While Serial ATA 1.0 helped pave the way for a transition from parallel to serial data transfer in the IDE disk world, Serial ATA IO takes the standard to a whole new level by adding capabilities including Native Command Queuing, port multiplication, hot plugging, external enclosures, port selection (and others described below), and by increasing the potential speed of the interface to 3GB/s. That's the good part. The bad part: Many of the new enhancements are only optional, but the SATA label can still be used. Therefore, if you are buying a SATA-IO disk or controller and specifically need one of the new features, make sure you carefully read the fine print and all of the specifications for both your controllers and disks. For example, your new disk may say SATA-IO and run at the newer speed, but may only support two of the SATA-IO features.
What are all of these new features and what do they actually do?
3Gb/s: With a potential interface speed of 3Gb/s, SATA-IO-compliant devices can, optionally by the manufacturer, run twice as fast as older SATA devices. It's important to keep in mind that SATA-IO != 3Gb/s. SATA-IO disks can also run at the slower 1.5 Gb/s, as the discretion of the manufacturer. Okay...so how do you get from 3Gb/sec to a 300MB/sec transfer rate? Keep in mind that SATA uses what's called 8b/10b encoding, a mechanism by which 8 bits of actual data are transmitted inside a 10-bit wrapper. 8b/10b encoding is 80 percent efficient. Further, SATA can transmit 1 bit per clock cycle. So, doing the math, you get SATA-IO's 3000MHz clock speed with 1 bit transmitted per clock cycle multiplied by the efficiency value (3000 x 1 x 80%) = 2400. There are 8 bits in a byte, so 2400/8 = 300 MB/s. 3Gb/s SATA is 100 percent backward-compatible with 1.5Gb/s SATA.
Native Command Queuing: Without Native Command Queuing, when commands are sent to a hard disk, they arrive and are processed in the order in which they are received. Even though this sounds like a fair way to handle commands, it can be inefficient. Suppose, for example, your hard disk has been sent three commands to read data from the disk. The first command is to read data on the inside-most track, the second on the outer-most track, and the last back on the inner-most track. By executing the three commands in order, your disk-read heads will have to travel back and forth across the disk when it would be much more efficient to just read the two blocks (the first and third requests) on the outer-most track before moving to the inner-most track and handling the second read request. This is the situation resolved by Native Command Queuing. With SATA-IO's Native Command Queuing capability, the disk can look at multiple requests and decide on the most mechanically efficient way to handle the requests. Handling commands in this way will improve disk system performance, and, since the mechanics are used more efficiently, could also result in a longer life of the disk.
Port Multipliers: I mentioned in my last article that port multipliers--devices that allow you to increase the number of disks on a single SATA channel from one up to fifteen--were an add-on spec that is backward compatible with the SATA 1 standard. As such it is considered one of the SATA-IO set of standards. Take a look at my previous article for more information on this feature.
Asynchronous Notification: Under older mechanisms such as ATA, hosts had to regularly poll ATAPI devices (this happens about every one second) to look for changes in media (i.e., when you insert a new CD). Asynchronous notification relieves the host of these responsibilities. Instead, the ATAPI device itself will notify the host of changes to the media. This has implications that may not be immediately apparent. First, anything you do to relieve the host of regular responsibilities is good for system performance. Second, it's good for mobile device power consumption since a CD-ROM drive can now be put to sleep when it's not in use, thus extending battery life.
ClickConnect: The original SATA connector was designed for internal use only and was kind of flimsy, although it was generally adequate for its intended use. The problem: The cable could come loose from the drive or motherboard fairly easily. ClickConnect is a new cabling mechanism that includes a latch that keeps the SATA cable connected. The "Click" in ClickConnect is there for a reason. The connector will actually audibly click into place so you know it's tight.
eSATA (external SATA): eSATA brings the beauty of SATA out into the open by allowing you to connect SATA disks externally rather than relegating them to the inside of your computer. Sure, you can use USB or FireWire to do this today, but SATA is faster (300MB/s [1500Mb/s] vs. 60 MB/s [480Mb/s] for USB 2.0, and 50MB/s [400Mb/s] for FireWire). Like USB and FireWire, eSATA provides the capability for hot plugging new devices with cables up to 2 meters in length (vs. 1 meter for internal SATA connections). However, this external connection can be extended to 8 meters with another extension, xSATA, described below.
Hot Plug: Allows you to add and remove SATA drives on-the-fly, without taking the system down. This is especially important in the enterprise space, where replacing a single disk in an array should not require downtime.
Link Power Management: Allows the SATA link to be placed into one of three states: Active, Partial, or Slumber, thus allowing the disk system to be placed into a lower power state, which helps to conserve power, which is particularly important in mobile applications.
Staggered Spin-Up: Suppose you have an array of 16 SATA disks. When you power on the array, all 16 disks would need to draw a great amount of power in order to start up. With staggered spin-up, the disks can be powered up separately to avoid this significant initial power drain. Fibre Channel and SCSI drives already do this.
The author of this article, Scott Lowe, is currently the IT director for a national legal association, where he runs the day-to-day operations, plans the long-term strategy of the IT group, and provides technical advice and assistance to the membership.