Home > Articles > Hardware > Upgrading & Repairing

  • Print
  • + Share This
This chapter is from the book

SATA

The development of ATA-8 marked the beginning of the end for the PATA standard that has been in use since 1986. Sending data at rates faster than 133MBps down a parallel ribbon cable originally designed for only 8.3Mbps is fraught with all kinds of problems because of signal timing, electromagnetic interference (EMI), and other integrity problems. The solution, Serial ATA, is an evolutionary replacement for the venerable PATA physical storage interface. When set in non-AHCI/RAID modes (in other words, IDE or legacy mode), SATA is software-compatible with PATA, which means it emulates all the commands, registers, and controls so existing software can run without changes. In other words, the existing BIOSs, operating systems, and utilities that work on PATA also work with SATA.

Of course, they do differ physically—that is, you can’t plug PATA drives into SATA host adapters, and vice versa, although signal converters do make that possible. The physical changes are all for the better because SATA uses much smaller and thinner cables with only seven conductors that are easier to route inside the PC and easier to plug in with smaller, redesigned cable connectors. The interface chip designs also are improved, with far fewer pins and lower voltages. All these improvements are designed to eliminate the design problems inherent in PATA.

Figure 7.8 shows the official Serial ATA International Organization working group logo that identifies most SATA devices.

Figure 7.8

Figure 7.8. Serial ATA official logo, which identifies SATA devices.

Although SATA didn’t immediately replace PATA, most systems sold following SATA’s standardization included SATA interfaces alongside PATA interfaces. Over time, SATA has predominantly replaced PATA as the de facto standard internal storage device interface found in PCs, and most current systems lack PATA support. However, some motherboards and devices with PATA support are still available, and where repairs are considered they will likely remain available at a minimum level for some time.

SATA Standards and Performance

Development for SATA started when the Serial ATA Working Group effort was announced at the Intel Developer Forum in February 2000. The initial members of the Serial ATA Working Group included APT Technologies, Dell, IBM, Intel, Maxtor, Quantum, and Seagate. The original group later became known as the Serial ATA II Working Group, and finally in July 2004, it became the Serial ATA International Organization. These groups have released the following SATA specifications:

  • The first SATA 1.0 draft specification was released in November 2000 and was officially published as a final specification in August 2001.
  • The first SATA II Working Group extensions to this specification, which made SATA suitable for network storage, were released in October 2002.
  • SATA Revision 2 was released in April 2004. It added the 3Gbps (300MBps) signaling speed.
  • SATA Revision 2.5 was released in August 2005. It added Native Command Queuing (NCQ), staggered spin-up, hot plug, port multiplier, and eSATA support.
  • SATA Revision 2.6 was released in March 2007. It added new internal Slimline and Micro cables and connectors as well as modifications to NCQ.
  • SATA Revision 3.0 was released in 2009. It added the 6Gbps (600MBps) signaling speed.
  • SATA Revision 3.1 was released in 2011. It added improvements in power management, hardware control, and a Queued Trim Command for improving SSD performance.
  • SATA Revision 3.2 was released in 2013. It adds a new interface called SATA Express, which uses SATA commands over a PCIe hardware interface for transfer speeds up to 16Gbps.

You can download the specifications from the Serial ATA International Organization website at www.serialata.org. Since forming, the group has grown to include more than 200 contributor and adopter companies from all areas of industry.

Systems using SATA were released in late 2002 using discrete PCI interface boards and chips. SATA was integrated directly into motherboard chipsets in April 2003 with the introduction of the Intel ICH5 chipset component. Since then, virtually all new motherboard chipsets have included SATA.

The performance of SATA is impressive, although current hard drive designs can’t fully take advantage of its bandwidth. Solid State Drives (SSDs), on the other hand, can and do take advantage of all of the bandwidth that SATA has to offer and are the driving force for the introduction of even higher bandwidth standards. Three main variations of the original standard use the same cables and connectors; they differ only in transfer rate performance. SATA Express, in contrast, uses new cables and connectors for dramatically increased throughput. Table 7.9 shows the bandwidth specifications; devices supporting the second-generation 300MBps (3Gbps) version became available in 2005, and devices supporting the third-generation 600MBps (6Gbps) versions became available in 2011. SATA Express devices are expected to be available in 2014.

Table 7.9. SATA Transfer Modes

SATA Type

Signal Rate (Gbps)

Bus Width (Bits)

Bus Speed (MHz)

Data Cycles per Clock

Throughput

SATA-150

1.5

1

1,500

1

150

SATA-300

3.0

1

3,000

1

300

SATA-600

6.0

1

6,000

1

600

SATA Express

8.0

2

16,000

1

1,969*

*Note SATA Express uses 128b/130b encoding, which is 98.5% efficient vs. the 80% efficient 8b/10b encoding used by SATA.

SATA Express

The advent of high-performance SSD (solid-state drive) storage has pushed the need for greater and greater interface bandwidth. SATA 3.0 offers up to 600MBps throughput, which by 2011 many SSDs could deliver. Since then the development of faster and faster drives has been mostly limited by the interface bandwith, and that SATA had become the bottleneck. To eliminate this bottleneck, the Serial ATA International Organization (SATA-IO) first studied doubling the SATA 6Gbps rate to 12Gbps; however, they found that doing so required extensive (and expensive) changes in cabling and signaling, not to mention that development would take some time. Instead, they decided to take a much easier way out by using the existing PCI Express interface. SATA-IO first announced in 2011 that it was developing a faster version of SATA called SATA Express, which was finally completed and published in 2013 as part of the SATA 3.2 specification.

SATA Express combines PCI Express signaling with the SATA software protocol (command set), plus a new set of cables and connectors that are backward compatible with SATA. When using PCIe 3.0 signaling, SATA Express offers up to 16Gbps in raw data throughput, which translates to nearly 2 gigabytes per second of actual data bandwidth. That is nearly 3.3 times faster than conventional SATA at 600MBps.

Not only is the SATA Express signaling speed much faster, but it is also more efficient, resulting in even higher bandwiths than the raw signaling rate would imply. Conventional SATA uses 8b/10b encoding, which is 80% efficient. That means that 8 out of every 10 bits (or 80%) in the raw data stream are actual data; the other 2 bits (or 20%) are overhead. SATA Express uses the more advanced 128b/130b encoding scheme found in PCI Express 3.0, which is an incredible 98.5% efficient, with only 1.5% overhead. This is achieved by scrambling the raw data to be sent using a known binary polynomial and then unscrambling it at the other end using the inverse polynomial. Because SATA Express uses two PCIe lanes with up to 8Gbps per lane, combined with the more efficient encoding, the end result is a whopping 1,969MBps maximum throughput as compared to 600MBps for conventional SATA.

SATA Express uses a wider cable with 18 conductors vs. the 7 conductors in a standard SATA cable. SATA Express motherboard connectors are backward compatible with SATA, meaning you can plug one or two standard SATA cables into a single SATA Express connector (see Figure 7.9). Connecting conventional SATA drives to a SATA Express port causes the port to shift down to conventional SATA mode.

Figure 7.9

Figure 7.9. SATA Express motherboard and cable connectors, showing backward compatibility with conventional SATA.

With SATA Express offering more than three times the throughput of conventional SATA, high-performance storage devices like SSDs will become even faster in the future.

SATA Cables and Connectors

From Table 7.9, you can see that conventional SATA sends data only a single bit at a time, while SATA Express sends 2 bits. The cable used for SATA has only seven wires (four signal and three ground) and is a thin design, with keyed connectors only 14mm (0.55 inches) wide on each end. This eliminates problems with airflow compared to the wider PATA ribbon cables. Each cable has connectors only at each end, and each cable connects the device directly to the host adapter (typically on the motherboard). There are no master/slave settings because each cable supports only a single device. The cable ends are interchangeable; the connector on the motherboard is the same as on the device, and both cable ends are identical. Maximum SATA cable length is 1 meter (39.37 inches), which is considerably longer than the 18-inch maximum for PATA.

Although SATA-600 uses the same cables and connectors as the previous (slower) versions, it does place higher demands for quality, so some manufacturers will mark higher quality cables with a rating like “SATA 6Gbps.” One issue that becomes more of a problem is bending cables. Data moving at the higher 3Gbps and 6Gbps rates can be corrupted when encountering a severe right-angle bend, so it is recommended that when routing SATA cables you do not crimp or bend them sharply with a pliers; use more gradual curves or bends instead. Note that this does not apply to cables with right-angle connectors; the wires in the connectors have multiple bends or curve instead.

SATA uses a special encoding scheme called 8b/10b to encode and decode data sent along the cable. IBM initially developed (and patented) the 8b/10b transmission code in the early 1980s for use in high-speed data communications. Many high-speed data transmission standards, including Gigabit Ethernet, Fibre Channel, FireWire, and others, use this encoding scheme. The main purpose of the 8b/10b encoding scheme is to guarantee that never more than four 0s (or 1s) are transmitted consecutively. This is a form of Run Length Limited (RLL) encoding called RLL 0,4, in which the 0 represents the minimum and the 4 represents the maximum number of consecutive 0s or 1s in each encoded character.

The 8b/10b encoding also ensures that there are never more than six or fewer than four 0s (or 1s) in a single encoded 10-bit character. Because 1s and 0s are sent as voltage changes on a wire, this ensures that the spacing between the voltage transitions sent by the transmitter is fairly balanced, with a more regular and steady stream of pulses. This presents a steadier load on the circuits, increasing reliability. The conversion from 8-bit data to 10-bit encoded characters for transmission leaves several 10-bit patterns unused. Many of these additional patterns provide flow control, delimit packets of data, perform error checking, or perform other special functions.

The physical transmission scheme for SATA uses differential NRZ (Non Return to Zero). This uses a balanced pair of wires, each carrying +0.25V (one-quarter volt). The signals are sent differentially: If one wire in the pair carries +0.25V, the other wire carries –0.25V, where the differential voltage between the two wires is always 0.5V (one-half volt). So, for a given voltage waveform, the opposite voltage waveform is sent along the adjacent wire. Differential transmission minimizes electromagnetic radiation and makes the signals easier to read on the receiving end.

A 15-pin power cable and power connector is optional with SATA, providing 3.3V power in addition to the 5V and 12V provided via the industry-standard 4-pin device power connectors. Although it has 15 pins, this new power connector design is only 24mm (0.945 inches). With 3 pins designated for each of the 3.3V, 5V, and 12V power levels, enough capacity exists for up to 4.5 amps of current at each voltage, which is plenty for even the most power-hungry drives. For compatibility with existing power supplies, SATA drives can be made with the original, standard 4-pin device power connector or the new 15-pin SATA power connector (or both). If the drive doesn’t have the type of connector you need, adapters are available to convert from one type to the other.

Figure 7.10 shows what the SATA signal and power connectors look like, and Figure 7.11 shows SATA and PATA host adapters on a typical motherboard.

Figure 7.10

Figure 7.10. SATA signal and power connectors on a typical SATA hard drive.

Figure 7.11

Figure 7.11. A motherboard with SATA and PATA host adapters.

The pinouts for the SATA data and optional power connectors are shown in Tables 7.10 and 7.11, respectively.

Table 7.10. SATA Data Connector Pinout

Signal Pin

Signal

Description

S1

Gnd

First mate

S2

A+

Host Transmit +

S3

A-

Host Transmit –

S4

Gnd

First mate

S5

B–

Host Receive –

S6

B+

Host Receive +

S7

Gnd

First mate

All pins are in a single row spaced 1.27mm (.050 inches) apart.

All ground pins are longer so they will make contact before the signal/power pins to allow hot-plugging.

Table 7.11. SATA Optional Power Connector Pinout

Signal Pin

Signal

Description

P1

+3.3V

3.3V power

P2

+3.3V

3.3V power

P3

+3.3V

3.3V power

P4

Gnd

First mate

P5

Gnd

First mate

P6

Gnd

First mate

P7

+5V

5V power

P8

+5V

5V power

P9

+5V

5V power

P10

Gnd

First mate

P11

Gnd

First mate

P12

Gnd

First mate

P13

+12V

12V power

P14

+12V

12V power

P15

+12V

12V power

All pins are in a single row spaced 1.27mm (.050 inches) apart.

All ground pins are longer, so they make contact before the signal/power pins to allow hot-plugging.

Three power pins carry 4.5 amps, a maximum current for each voltage.

Mini-SATA (mSATA)

Mini-SATA (mSATA) is a form factor specification developed by Intel for very small solid-state drives (SSDs), primarily in laptop or tablet systems. The mSATA form factor is virtually identical to Mini-PCI Express, which is the form factor used for mobile WLAN (wireless local area network or WiFi) and WWAN (wireless wide-area network) adapters. By using the same card size and shape but with a slightly modified connector design, a Mini-PCIe socket can function in both Mini-PCIe and mSATA modes.

mSATA drives are significantly smaller than the standard 2.5-inch drives used in most laptops (see Figure 7.12).

Figure 7.12

Figure 7.12. An mSATA drive compared to a standard 2.5-inch drive.

Tablet devices typically have a dedicated mSATA connector internally, which is designed solely for mSATA SSDs. Many laptops, however, have an internal combination mSATA/WWAN connector, which can accept either an mSATA SSD or a WWAN interface card. Depending on which type of device is installed, the port will automatically switch to the proper mode.

mSATA SSDs are not available in nearly as high capacities as 2.5-inch SSDs, but they are also physically smaller and less expensive. Laptops with mSATA/WWAN ports can have a high-performance mSATA SSD installed as the boot drive, and then use a much cheaper and higher capacity conventional HDD as a data storage drive.

eSATA

When SATA was first released, the ability to run longer cables of up to 1 meter (3.3 ft.) made people think about running cables out of the system to external drives. Some companies jumped on this demand, creating a market for proprietary cable and connector designs allowing SATA drives to be run in external enclosures. Unfortunately, the designs were proprietary, and since SATA cables lacked the shielding and other design criteria to allow external operation, some of the designs were unreliable. Realizing that there was a market for external SATA, the Serial ATA International Organization (SATA-IO) released the official standard for external SATA called eSATA in 2004.

eSATA is a variation on SATA specifically designed for external connections. The main differences between SATA and eSATA are in the cables. eSATA allows for longer cables of up to 2 meters (6.6 ft.), and the cables have extra shielding. The connectors are different both electrically and mechanically as well. They have deeper contacts, metal springs for shielding and mechanical retention, and are designed for up to 5,000 mating cycles vs. only 50 for internal cables. The eSATA cable and port connectors are shown in Figure 7.13.

Figure 7.13

Figure 7.13. eSATA (left) and standard internal SATA (right) cable and port connectors compared.

eSATA supports all SATA transfer speeds up to 6Gbps rate (600MBps); however, some are limited to 3Gbps (300MBps) or less. Even at 300MBps, eSATA is significantly faster than other popular external interfaces such as 1394a/FireWire 400 (50MBps) and USB 2.0 (60MBps). In fact, with 300MBps or 600MBps of bandwidth, eSATA is three to six times faster than 1394b/FireWire 800 (100MBps), and even the 3Gbps (300MBps) mode of eSATA is faster than USB 3.0 (5Gbps or 500MBps). How can 300MBps eSATA be faster than 500GBps USB 3.0? One reason is that there is a large amount of overhead in the USB specification to allow for even longer cable lengths (5 meters or 16 ft.), which drops the actual data throughput to well under 400MBps, but the other reality is that any external drive connected via USB 3.0 consists of a SATA drive plus circuitry converting the data from SATA to USB 3.0 inside the enclosure, thereby reducing efficiency even more. When using eSATA, there is no signal conversion inside the external enclosure (eSATA is SATA, after all) making the interface much more efficient. In short, eSATA is just about the ideal connection for external drives, allowing them to work just as if they were internal to the system.

If your system doesn’t have an eSATA port built in, you can easily add one using a very inexpensive cable and bracket assembly. The cable will plug into one of your motherboard-based SATA ports, and the other end of the cable will be an eSATA connector mounted in an expansion card bracket (see Figure 7.14). Brackets are available with one or two ports as necessary.

Figure 7.14

Figure 7.14. SATA to eSATA bracket assembly for adding eSATA ports to a system.

Power Over eSATA (eSATAp)

One drawback to eSATA over USB is that eSATA does not provide power. To rectify this, several manufacturers got together and informally created the eSATA USB Hybrid Port (EUHP) that combines USB and eSATA ports into a single physical connector. The SATA International Organization (SATA-IO) is working to make this an official standard called the Power Over eSATA (eSATAp) specification.

An eSATAp port is basically both a USB port and an eSATA port combined in one single connector (see Figure 7.15). These ports will normally be identified with an “eSATA + USB” notation. They accept standard USB or eSATA cables, and when attached, the proper connections will be made for the desired interface to function. A third option is to plug in an eSATAp cable, which will combine the eSATA and USB signals with +5V or +12V power, allowing the connection of USB, SATA, or eSATAp devices with no separate power adapter necessary. eSATAp ports have become very popular in laptops for connecting high-speed external drives, and you can get bracket adapters to add them to desktop systems (see Figure 7.16).

Figure 7.15

Figure 7.15. An eSATAP (Power Over eSATA) combination eSATA and USB connector.

Figure 7.16

Figure 7.16. An eSATAp (Power Over eSATA) bracket showing optional USB 3.0/2.0, eSATAp, and eSATA connections.

There are several variations on eSATAp ports. The USB part of eSATAp can be either USB 2.0 or 3.0, depending on the specific implementation. Just as with standard USB only ports, if the eSATAp port is blue in color, that indicates USB 3.0 capability. Another variation is the eSATA speed. Some supply the full 6Gbps (600MBps) rate of SATA 3.0, while others allow only 3Gbps (300MBps) mode. Finally, another variation is in the power. In most laptop systems, an eSATAp port will only supply +5V power, which is fine for powering external 2.5-inch drives. Desktop versions of eSATAp can supply both +5V and +12V power, allowing external 3.5-inch drives to be powered as well.

Besides allowing faster data transfer than even USB 3.0, connecting external drives using eSATA or eSATAp has another major advantage over USB, and that is bootability. Windows does not allow booting from USB drives; however, drives connected via eSATA or eSATAp do not have that restriction. Windows will treat them the same as if they were internally connected. Using eSATA or eSATAp, one can use and easily swap external bootable drives, a feature especially useful for diagnostics and testing purposes.

SATA Configuration

Configuration of SATA devices is also much simpler because the master/slave or cable select jumper settings used with PATA are no longer necessary.

BIOS setup for SATA drives is also quite simple. Because SATA is based on ATA, autodetection of drive settings on systems with SATA connectors is performed in the same way as on PATA systems. Depending on the system, SATA interfaces will support legacy (usually called “IDE”), AHCI (Advanced Host Controller Interface) or RAID (redundant array of independent disks) modes. In most cases you will want to set AHCI mode for the SATA host adapter to run in its native, most fully featured mode. RAID mode is a superset of AHCI and allows multiple drives to be configured in an array to act as a single drive. (See Chapter 5, “BIOS,” for details.)

If you want to use SATA drives but don’t want to install a new motherboard with SATA host adapters already included, you can install a separate SATA host adapter into a PCI or PCIe expansion slot (see Figure 7.17). Many of these adapters include RAID capability as well.

Figure 7.17

Figure 7.17. Typical 4-port SATA RAID host adapter.

Advanced Host Controller Interface (AHCI)

SATA was designed not only as a replacement for PATA, but as an interface that would evolve into something with many more capabilities and features than its predecessor. Initially, compatibility with PATA was one of the most important features of SATA because it enabled a smooth and easy transition from one to the other. This compatibility extends to the driver level, allowing SATA devices to use the same BIOS-level drivers and software as legacy PATA devices.

Although the intent of SATA was to allow an easy transition from PATA, it was also designed to allow future growth and expansion of capabilities. To accomplish this, an enhanced software interface called the Advanced Host Controller Interface (AHCI) was initially developed by the AHCI Contributor Group, a group chaired by Intel and originally consisting of AMD, Dell, Marvell, Maxtor, Microsoft, Red Hat, Seagate, and StorageGear. The AHCI Contributor Group released a preliminary version of AHCI v0.95 in May 2003 and released the 1.0 version of the specification in April 2004. You can download the latest version (1.3, released in 2008) from Intel at www.intel.com/technology/serialata/ahci.htm.

AHCI provides an industry-standard, high-performance interface to system driver/OS software for discovering and implementing such advanced SATA features as command queuing, hot-plugging, and power management. AHCI was integrated into SATA-supporting chipsets in 2004 and is supported by AHCI drivers for Windows. The main idea behind AHCI is to have a single driver-level interface supported by all advanced SATA host adapters. This greatly simplifies the installation of operating systems, eliminating the need for custom SATA drivers for each manufacturer’s SATA host adapter. For example, Windows Vista and later include AHCI drivers and automatically support any advanced SATA host adapters that are AHCI compatible.

Unfortunately, AHCI drivers are not included by default on the Windows XP and earlier installation CDs, because AHCI was developed long after XP was released. This means, for example, that if you install Windows XP on a system with an integrated SATA host adapter set to AHCI mode, you will probably need to press the F6 key at the beginning of the installation and provide a floppy disk with the AHCI drivers; otherwise, Windows XP will not be able to recognize the drives. The implication here is that the system must include a floppy drive, and you must have copied the drivers to a floppy disk in advance. But what if your system doesn’t even include a floppy drive? Fortunately, several solutions are available.

One option is to keep a spare floppy drive in your toolkit and temporarily connect it during the installation. Just open the case, plug in a floppy cable from the floppy drive connector (FDC) on the motherboard to the drive, and connect power to the drive. There is no need to actually mount the drive in the chassis because you will only need to read the disk once at the beginning of the installation.

Another option is to set the SATA host adapter to ATA/IDE compatibility mode (disable AHCI/RAID) in the BIOS Setup, after which you can boot from a standard Windows XP CD and install Windows without requiring special drivers. You could leave the adapter in compatibility mode, but you might be missing out on the performance offered by the advanced capabilities your hard drives support.

Although the first two options can work in most situations, I think the best overall solution is to simply create a custom Windows XP installation disc that already has the SATA AHCI (and even RAID) drivers preinstalled. This can be accomplished via a somewhat tedious manual integration process for each set of drivers, but to make things really easy you can use the menu-driven BTS DriverPacks from www.driverpacks.net to integrate virtually all the popular mass storage drivers directly into your Windows XP install disc. The DriverPacks allow you to easily add all kinds of drivers to your Windows XP installation discs. For example, in addition to the mass storage drivers, I like to integrate the various processor, chipset, and network (both wired and wireless) drivers because all of these still fit on a CD. If you are willing to move to a DVD instead of a CD, you can fit Windows XP and all of the available XP DriverPacks on a single DVD.

Non-Volatile Memory Express (NVMe)

The Advanced Host Controller Interface (AHCI) has long been the preferred software interface for SATA devices. AHCI can be used with conventional SATA as well as SATA Express devices, allowing both to use the same software interface and therefore the same drivers. While using AHCI mode with SATA Express allows for maximum compatibility, it does not allow for maximum performance when interfacing with low-latency devices like solid-state drives (SSDs), which internally behave more like RAM than a spinning disk. To improve the performance of SSDs connected via high-speed PCI Express–based interfaces like SATA Express, a new software interface called the Non-Volatile Memory Host Controller Interface (NVMHCI) was first defined in 2007 by the NVMHCI Workgroup (www.nvmexpress.org), a group including more than 75 major companies from the computing and storage industries. Owing to its intention on being used in combination with PCIe and SATA Express devices, the NVMHCI specification was subsequently named NVM Express (NVMe), and the NVMe specification 1.0 was published in 2011.

Like AHCI before it, NVMe is a software interface specification that defines the commands and functions for communicating with PCIe or SATA Express devices. SSDs are by nature very low latency devices, a characteristic that NVMe is designed to fully exploit. NVMe is also designed to more fully utilize the parallelism built in to modern systems such as multicore hyper-threaded processors, multi-lane buses, and multi-tasking operating systems. The biggest technical difference between AHCI and NVMe is that AHCI supports a single command queue with up to 32 commands, while NVMe supports up to 64K queues with up to 64K commands per queue. Having many more and much deeper queues allows for commands to be far more rapidly delivered to SSDs, where due to their low-latency characteristics they can be processed much more rapidly than drives with spinning disks.

SATA Express host adapters support both AHCI and NVMe modes. Using AHCI mode will allow for backward compatibility with existing AHCI drivers, while choosing NVMe mode will require new NVMe drivers. Since NVMe drivers were not included by default with Windows 8 and earlier versions, NVMe drivers will need to be supplied during the OS installation procedure for Windows to recognize any devices connected to SATA Express host adapters in NVMe mode. Using AHCI mode instead, you can install Windows Vista and later on SATA Express drives right out of the box, with no additional drivers necessary; however, there will be some loss in performance.

SATA Transfer Modes

SATA transfers data in a completely different manner from PATA. As indicated previously, the transfer rates are 1.5Gbps (150MBps), 3Gbps (300MBps), and 6Gbps (600MBps), with most drives today supporting the 3Gbps or 6Gbps rates. Note that speeds are backward compatible—for example, drives supporting the 6Gbps rate also work at 3Gbps or 1.5Gbps. Note that because SATA is designed to be backward compatible with PATA, some confusion can result because the BIOS and drives can report speeds and modes that emulate PATA settings for backward compatibility.

For example, many motherboards detect and report a SATA drive as supporting Ultra DMA Mode 5 (ATA/100), which is a PATA mode operating at 100MBps. This is obviously incorrect because even the slowest SATA mode (1.5Gbps) is 150MBps, and Ultra DMA modes simply do not apply to SATA drives.

PATA and SATA are completely different electrical and physical specifications, but SATA does emulate PATA in a way that makes it completely software transparent. In fact, the PATA emulation in SATA specifically conforms to the ATA-5 specification.

This is especially apparent in the IDENTIFY DEVICE command that the autodetect routines use in the BIOS to read the drive parameters. The SATA specification indicates that many of the items returned by IDENTIFY DEVICE are to be “set as indicated in ATA/ATAPI-5,” including available UDMA modes and settings.

The SATA 1 specification also says,

  • Emulation of parallel ATA device behavior, as perceived by the host BIOS or software driver, is a cooperative effort between the device and the SATA host adapter hardware. The behavior of Command and Control Block registers, PIO and DMA data transfers, resets, and interrupts are emulated. The host adapter contains a set of registers that shadow the contents of the traditional device registers, referred to as the Shadow Register Block. All SATA devices behave like Device 0 devices. Devices shall ignore the DEV bit in the Device/Head field of received Register FISs, and it is the responsibility of the host adapter to gate transmission of Register FISs to devices, as appropriate, based on the value of the DEV bit.

This means the shadow register blocks are “fake” PATA registers, allowing all ATA commands, modes, and so on to be emulated. SATA was designed to be fully software compatible with ATA/ATAPI-5, which is why a SATA drive can report in some ways as if it were PATA or running in PATA modes, even though it isn’t.

  • + Share This
  • 🔖 Save To Your Account