No question, storage devices and storage technologies have helped fuel our digital lifestyle. The amount of storable information and the requirement for fast, efficient, state-of-the-art storage technologies are the primary mechanisms that must continue to evolve if we are to meet the demands for all things digital.
One of the more promising storage technology solutions to develop is Serial ATA, or SATA. Before we can fully appreciate the benefits behind the SATA standard, it makes sense to look back on the history of data storage.
Fifty years of growth
The first data storage device was introduced in the 1950's by IBM. This rather rudimentary storage device consisted of magnetic tape. It was a huge hit since one of the primary methods for data storage at the time was the punch card. With one magnetic tape being able to replace thousands of punch cards, it was clear data storage would soon take off. While magnetic tape held its popularity until the early 1980's, there has been remarkable progress in hard disk drive (HDD) technology in the past two decades. In fact, HDD has provided fertile ground on which the entire industry of storage systems exists today.
In the past decade, the number of bits stored per unit of HDD media has doubled every year as shown in Figure 1. Looking at this time line numerous milestones stand out as new or improved technology applications were enabled by improvements in storage technology. For example, in 1996 digital storage became more cost-effective than paper due to its ability to store large amounts of data for less money and in less space.
It's safe to say that storage technology advancements have been driven by the evolution in data utilization and the extensive demand for storage solutions. Regardless of the application, data storage must be reliable, fast, and cost-effective " across a broad spectrum of market domains from specialized consumer use platforms to high-end enterprise applications.
1. The storage technology evolution: It's all about media density versus cost.
Click here for a larger version
The rise and fall of parallel ATA
The first interface for HDD was called the Advanced Technology Attachment (ATA) standard developed in the mid 1980's by T13 under ANSI. At the time, the ATA standard was known as Integrated Device Electronics (IDE); incidentally, the two terms are interchangeable today. The ATA standard has gone through at least seven revisions over time with each revision increasing the transfer speed and adding in additional feature sets. While it has always been a parallel interface, the term Parallel ATA (PATA) wasn't used until the introduction of Serial ATA (SATA).
Around the 2003 time frame, the industry realized it needed to address the growing problems that PATA was starting to run into as the speeds increased across the interface. These problems included lack of support for lower voltages, the discontinuity in performance roadmaps (PATA could not support the necessary doublings in data transfer rates), the limited cable length of 18 inches, the wide ribbon cable congestion effecting airflow and interior space, the high pin count connector (40 pins), and the incapability of supporting hot swapping of new HDDs. The industry leaders came together under the SATA IO Organization and developed the SATA standard to address these problems in order to prevent storage technology from stalling out.
SATA on the rise
The SATA specification was developed with the fundamental goals of having a ten-year scalable performance roadmap. Some of the primary goals included 100 percent software backward compatible with PATA, support for lower voltages in silicon manufacturing, a lower pin count, and easing installation by the elimination of jumpers on HDD. The market demanded a cost-competitive solution to PATA, so SATA responded with power management options for the mobile market, minimal protocol overhead, first-party direct memory access (DMA) to Host memory, and improved cables or connectors for external usage models.
The SATA specification: A functional description
SATA is a high-speed serial link replacement for the parallel ATA attachment of mass storage devices. The SATA serial link employs a high-speed differential layer that utilizes Gigabit technology and 8b/10b encoding. Data transfer rates are 150 MB/sec for first generation speed (GEN1) and 300 MB/sec for second generation speed (GEN2).
2. PATA connectivity versus SATA connectivity.
Click here for a larger version
The left side of Figure 2 shows two devices connected to a PATA Host adapter. This method allows up to two devices to be connected to a PATA bus using a Master/Slave communication technique. To the right, in Figure 2 we see an example of how the same two devices are connected to a Serial ATA host bus adapter (HBA). Host software that is only "PATA aware" accesses the SATA subsystem in exactly the same manner and functions correctly to maintain SATA software backward compatibility with PATA. The SATA HBA converts the normal operations of the software into a serial data/control stream and connects each of the two drives with their own respective cables in point-to-point fashion.
Four communication layers
There are four layers in the SATA architecture: Command, Transport, Link, and PHY as depicted in Figure 3. The layers are used for communication on both ends of a storage system which are the Host and the Device. The Command layer is responsible for overall ATA command execution, and the Host may interact with the Command layer through a register interface that is equivalent to that presented by a traditional PATA Host adapter.
3. SATA has four communication layers.
Click here for a larger version
The Transport layer is responsible for creating the packets for transmitting between the Host and Device. These packets (or frames) include the combination of control information and data into a format known as a Frame Information Structure (FIS).
The Link layer is responsible for taking the constructed frames, encoding or decoding the data using the common 8b/10b encoding scheme, and inserting control characters so that the 10-bit interface can be decoded correctly.
And finally, the Physical layer (PHY) is responsible for transmitting and receiving the encoded information as a serial data stream on the SATA cable. SATA has two main data transfer modes for communication between the Host and the Device, Programmed Input Output (PIO) and DMA mode. The main drawback to the PIO mode is that it requires a great deal of CPU overhead to configure a data transaction and transfer the data. However, it is still useful in applications that don't demand high performance because of the simple logic necessary to implement this mode. The DMA mode allows direct access for the memory to increase the performance.
SATA's layered architecture extends to error handling as well. As each layer in the Serial ATA stack has an input that indicates an error was detected in the previous layer. In addition, each layer has its own local error detection capability for identifying errors specific to that layer based on the received data from the other layers. Each layer performs local recovery and control actions and will sometimes forward error data to the next layer in the stack according to the rules defined by the standard.