2002-06-28

SerialATA: The Future of Commodity Storage

Originally Posted 2002 Jun 28 to PC_Support

Overview:

Quick Specs

For those that just "want the facts" (without TheBS' verbage) here's how SerialATA (1st gen) is different:















Speed:1.2Gbps (150MBps)
Signaling (Analog):1.5GHz, 250mV diff
Signaling (Digital):8/10b encoded, full-duplex TX/RX, 32-bit CRC
Channel:1 Device per "Port" (period no master/slave)
Cable:1m max length, one device per cable (period)
Connector (Signal):7-pin copper shielded (non-twisted)
Connector (Power):15-pin 3.3/5/12V (optional legacy 4-pin Molex)


Design:

SerialATA Organization

As the name suggests, Serial AT Attachment (SerialATA) is a serial transfer, aka transfer one bit at a time, technology. It will augment and eventually replace today's current [Parallel] AT Attachment and AT Attachment Peripherial Interfaces (ATA/ATAPI) which use 16-bit wide transfers.

Although it does transfer one bit at time, data is still organized into transfered bytes (8-bits, in a 10-bit encoding) and buffered double-words (32-bits) from the digital standpoint. For those familiar with the OSI model often used in networking, the 4 organization layers of SerialATA are very similar:










Application:BIOS and operating system drivers
Transport:sector addressing and 32-bit buffering/FIFO
Data Control:digital transfer layer, 8/10-bit codec, CRC
Physical:analog transfer layer, differential signaling on wire
Like in the OSI model, we start on the transmitting side at the top, go down to the physical, send to the receiving side and come back up again.

Design:

Signaling and Speeds

At the physical level, the first generation of Serial ATA uses a 1.5GHz signal. It uses a 250mV differential to maintain signal quality over its short distance. The signal is direct, point-to-point, with a 100 Ohm resistor at each end. Yes, this means there is only the host controller and a device on its end "port" -- with nothing else on theline (see Cabling and Power below).


At the data control/link level, 8-bit bytes of data are encoded into 10-bit frames. There are different frame types and 32-bit CRCs are used to verify the integrity of the frame. Assuming no overhead, the maximum data transfer rate (DTR) is 1.5GHz signaling * 8/10 encoding = 1.2Gbps = 150MBps. Of course there are costs involved with control and CRC frames.

Sounds a lot like Ethernet, eh? Only no collisions since there are only devices, each at the end of the bus. Furthermore, there are both transmit and receive pairs, so both ends can talk at the same time aka full duplex. Far higher performing than USB at storage and, like parallel ATA versus SCSI, less overhead than FireWire at a cost of flexibility.

Design:

BIOS/CMOS and Drivers

Closer to the software side is the transport layer. For those familiar with the OSI model, you're probably saying "where's the 'network' layer?" Well Serial ATA need not be addressed nor routed because everything is transfered only between the the same two nodes, host and device.
So we skip directly to the transport layer where FIFO buffers are organized around 32-bit double-words addressed to specific sectors. Kinda like a TCP packet going to a specific port at the OSI's transport layer (yes, that is an oversimplification, but still a viable analogy).

Which brings us to the application level. A disk or other SerialATA device on a SerialATA controller's "port" is designed to look like a "master-only" ATA device from the standpoint of the BIOS. And thanks to the Transport layer, it looks like any typical, dumb 32-bit block device like today's common parallel UltraATA disks. That way existing CMOS and Operating System configuration space needs to changed as little as possible to support SerialATA, both on and off-chipset. A two port SerialATA controller can even emulate a single channel, master/slave [parallel] ATA arrangment from the driver standpoint (only without the
bottlenecks).

This also allows for the creation of a variety of different devices. First off, it makes it easier create a chipset with both SerialATA and [parallel] ATA support**, and then "pin out" to connectors whatever option is desired on the mainboard while still using the same BIOS/CMOS. Secondly, SerialATA-to-[Parallel]ATA bridges are easy to create with minimal logic changes, so SerialATA devices can be sued on existing [parallel] ATA channels (although only 1 device per channel).

[ **NOTE: Additional physical circuitry is still required in those chipsets designs which can implement both SerialATA or [parallel] ATA if SerialATA ports are used. This is usually implemented with an external PHY chip for the two (or possibly even four) SerialATA ports.

Yes, this is very akin to Ethernet switches, which usually use 4-8 port PHY chips in addition to the switching ASIC on the board. At 1.5GHz, integrating the PHY would make noise a design issue for the southbridge as well. So even 100% SerialATA, legacy-free southbridges still might use an external PHY chip in the future. ]

SerialATA, of course, has its own registers and other programming interfaces, so it is not completely transparent for mainboard manufacturers and BIOS and driver developers though.

Technology:

Cabling and Power


Okay, enough design talk, let's talk about what you see. The cable. SerialATA, like existing parallel ATA, uses separate cables for data and power.

The data cable is a 7-pin, hot pluggable (not necessarily hot-swappable though, long story), shielded pair of both transmit and receive lines plus 3 ground wires. It is usually implemented as a "thick," but "flat" cable, with lines distributed in parallel with no twist. The cost is supposed to be no more costly, overall, than existing, 80-pin UltraATA parallel cabling. Again, SerialATA is point-to-point, so only one device can be used per "port."

Along with a 7-pin data cable, a new 15-pin power cable is introduced. This cable provides 3.3, 5 and 12V lines for the device. The addition of 3.3V to the device improves power and thermal efficiency. The 7 + 15 data and power connector has a strictly aligned form-factor which will bring about a standardized "hot-swap" configuration, akin to single connector attachment (SCA) used for SCSI.

If you physically inspect the mechanics of the pins on both the data and the power connectors, you will note they are staggered. This is a simple, but effective way to test for connection and disconnection of a device since some pins will differ in their potential for a very brief period of time when the device is being either connected or disconnected (and the pins will differ depending on which).

Optionally, drive manufacturer's can include a legacy, 5/12V, 4-pin Molex power connector. This can be done either in addition to or as a replacement for the newer 15-pin SerialATA power connector. First generation drives will probably ship with both, although many might ship with only a legacy Molex connector instead.


Technology:

Initial Chipset Implementations

For the most part, early SerialATA adopters will be using off-chipset, add-in SerialATA controllers -- either on-mainboard or on an add-in PCI/PCI-X card. From the standpoint of BIOS, POST and operating system, the extra chips or cards will be no different than any other add-in [parallel] ATA or SCSI host adapter. They will have their own configuration menu, Int13h BIOS services, etc... BIOS Disk IDs (and boot priority) will be assigned no differently, 80h, 81h, etc... all separate from the on-chipset ATA channels (depending on the BIOS/CMOS settings, as before). Several new mainboards are already being marketed with Promise, High-Point Technologies and other off-chipset SerialATA controllers on them.

But some newer chipsets themselves are starting to appear with integrated SerialATA directly into their southbridge logic. No chipset designer, ALi, AMD, Intel, SiS, ViA nor anyone else is not making the move. This is where things gets interesting. As discussed previously, SerialATA does not support more than one device per "port." But SerialATA was designed so a 2-port controller could emulate a single [parallel] ATA channel with a 2-device, master/slave combination. As such, the typical arrangement of these new, SerialATA-enabled southbridge designs are (2) SerialATA ports and (1) legacy [parallel] UltraATA/133 channel for non-hard disk devices.

This is a very natural approach since their are still a maximum of 4 devices, which makes BIOS/CMOS configuration issues simple for technicians. Only now the first two devices operate independently from each other in the hardware (unlike [parallel] ATA master/slave), so there are no more worries about performance issues when both "ports." are used. At the same time, there is still a legacy [parallel] ATA channel available for legacy optical devices. Since optical device performance is far, far less, two optical devices in a aster/slave combination is usually not a bottleneck. So even in the first generation of Serial/Parallel hybrid ATA chipsets, upto 2 hard drives and 2 optical devices can be used just on the chipset's southbridge without fear of performance issues!


The Future of SerialATA


SerialATA is designed to be a non-intrusive replacement for [parallel] ATA. From the design of hard disks to chipset southbridges to BIOS/CMOS to driver support, it is designed to be very natural progression in hardware design. Firmware and software changes are designed to be minimized by providing legacy support interfaces. And the first generation of SerialATA-enabled chipsets will accomodate both new SerialATA disks and legacy [parallel] ATA devices in a well-implemented, hybrid approach.
As SerialATA completely replaces [parallel] ATA, the legacy channels will be removed. And chipsets may begin integrating more SerialATA "ports" beyond the standard 4. Even with only 4 ports in a standard southbridge design, SerialATA RAID will become a standard feature on all mainboards. So SerialATA will only increase the capabilities of commodity storage.

On the speed front, 3 and 6GHz SerialATA signaling is already in development. SerialATA II will work on the same cabling as the first generation, but deliver speeds upto 2.4Gbps (300MBps). Beyond that, shield twisted pair (STP) cabling will probably be used for 4.8Gbps (600MBps) and faster for SerialATA. The new SerialATA II spec is being written to guarantee that 2nd generation drives will be upward compatible with any cabling and configuration changes for those higher speeds. At that time, at least one set of first generation SerialATA ports will probably remain for older, slower devices on the same chipset as those with 3rd+ generation primary storage devices.

The only limitation to SerialATA is the cabling. It is point-to-point upto only 1m. This removes it from consideration as an external storage option for both flexibility and mechanical considerations. But that's where technologies like FireWire (and some argue USB, although I heavily disagree) come in for external storage. FireWire is an intelligent, flexible bus designed for multiple devices on a single channel, including device-to-device transfer without host intervention. Such configurations, when required, are worth the additional overhead costs versus "dumb block" busses like SerialATA.