AT Attachment (ATA) is a standard interface for connecting storage devices such as hard disks and CD-ROM drives inside personal computers, maintained by X3/INCITS comittee T13. Many terms and synonyms for ATA exist, including abbreviations such as IDE, ATAPI, and UDMA.
With the market introduction of Serial ATA in 2003, the original ATA was retroactively renamed Parallel ATA (PATA). In line with the original naming, this article only covers Parallel ATA.
Parallel ATA standards only allow cable lengths up to 46 centimetres (18 inches) although cables up to 91 cm (36 inches) can be readily purchased. Because of this length limit, the technology normally appears as an internal computer storage interface. It provides the most common and the least expensive interface for this application.
History
ATA connection sockets on a PC motherboard located below RAM socketsThe name of the standard was originally conceived as PC/AT Attachment as its primary feature was a direct connection to the 16-bit ISA bus then known as 'AT bus'; the name was shortened to inconclusive "AT Attachment" to avoid possible trademark issues.
An early version of the specification, conceived by Western Digital in late 1980s, was commonly known Integrated Drive Electronics (IDE) due to the drive controller being contained on the drive itself as opposed to a separate controller connected to the motherboard, thus making the interface on the motherboard a host adapter — in contrast to popular belief, not an actual controller. Enhanced IDE (EIDE), an extension to original ATA standard again developed by Western Digital, allowed the support of drives having a storage capacity larger than 528 megabytes (504 mebibytes), up to 8.4 gigabytes. Although these new names originated in branding convention and not as an official standard, the terms IDE and EIDE often appear as if interchangeable with ATA. This may be attributed to the two technologies being introduced with the same consumable devices, these "new" ATA hard drives. With the introduction of Serial ATA around 2003, conventional ATA was retroactively renamed to Parallel ATA (P-ATA), referring to the method in which data travels over wires in this interface.
The interface at first only worked with hard disks, but eventually an extended standard came to work with a variety of other devices—generally those using removable media. Principally, these devices include CD-ROM and DVD-ROM drives, tape drives, and large-capacity floppy drives such as the Zip drive and SuperDisk drive. The extension bears the name AT Attachment Packet Interface (ATAPI), which started as non-ANSI SFF-8020 standard developed by Western Digital and Oak Technologies, but then included in the full standard now known as ATA/ATAPI starting with version 4. Removable media devices other than CD and DVD drives are classified as ARMD (ATAPI Removable Media Device) and can appear as either a floppy or a hard drive to the operating system.
The move from programmed input/output (PIO) to direct memory access (DMA) provided another important transition in the history of ATA. As every computer word must be read by the CPU individually, PIO tends to be slow and use a lot of CPU. This is especially a problem on faster CPUs where accessing an address outside of the cacheable main memory (whether in the I/O map or the memory map) is a relatively expensive process. This meant that systems based around ATA devices generally performed disk-related activities much more slowly than computers using SCSI or other interfaces. However, DMA (and later Ultra DMA, or UDMA) greatly reduced the amount of processing time the CPU had to use in order to read and write the disks. This is possible because DMA and UDMA allow the disk controller to write data to memory directly, thus bypassing the CPU.
The original ATA specification used a 28-bit addressing mode. This allowed for the addressing of 228 (268,435,456) sectors of 512 bytes each, resulting in a maximum capacity of 137 gigabytes (128 GiB). The standard PC BIOS system supported up to 7.88 GiB (8.46 GB), with a maximum of 1024 cylinders, 256 heads and 63 sectors. When the lowest common denominators of the CHS limitations in the standard PC BIOS system and the IDE standard were combined, the system as a whole was left limited to a mere 504 mebibytes. BIOS translation and LBA were introduced, removing the need for the CHS structure on the drive itself to match that used by the BIOS and consequently allowing up to 7.88 GiB when accessed through Int 13h interface. This barrier was overcome with Int 13H extensions, which used 64 bit linear address and therefore allowed access to the full 128 GiB and more (although some BIOSes initially had problems handling more than 31.5 GiB due to a bug in implementation).
ATA-6 introduced 48 bit addressing, increasing the limit to 128 PiB (or 144 petabytes). Some OS environments like Windows 2000 do not enable 48-bit LBA by default, so the user is required to take extra steps to get full capacity on a 160 GB drive.
All these size limitations come about because some part of the system is unable to deal with block addresses above some limit. This problem may manifest itself by the system thinking the size of a drive is only the limit value, or by the system refusing to boot and hanging on the BIOS screen at the point when drives are initialized. In some cases, a BIOS upgrade for the motherboard will resolve the problem. This problem is also found in older external FireWire disk enclosures, which limit the usable size of a disk to 128 GB. By early 2005 most enclosures available have practically no limit. (Earlier versions of the popular Oxford 911 FireWire chipset had this problem. Later Oxford 911 versions and all Oxford 922 chips resolve the problem.)
Parallel ATA interface
Until the introduction of Serial ATA, 40-pin connectors generally attached drives to a ribbon cable. Each cable has two or three connectors, one of which plugs into an adapter that interfaces with the rest of the computer system. The remaining one or two connectors plug into drives. Parallel ATA cables transfer data 16 bits at a time.
Parallel ATA Pins Pin Function Pin Function
1 Reset 2 Ground
3 Data 7 4 Data 8
5 Data 6 6 Data 9
7 Data 5 8 Data 10
9 Data 4 10 Data 11
11 Data 3 12 Data 12
13 Data 2 14 Data 13
15 Data 1 16 Data 14
17 Data 0 18 Data 15
19 Ground 20 Key
21 DDRQ 22 Ground
23 I/O Write 24 Ground
25 I/O Read 26 Ground
27 IOC HRDY 28 Cable Select
29 DDACK 30 Ground
31 IRQ 32 No Connect
33 Addr 1 34 GPIO_DMA66_Detect
35 Addr 0 36 Addr 2
37 Chip Select 1P 38 Chip Select 3P
39 Activity 40 Ground
ATA's ribbon cables had 40 wires for most of its history, but an 80-wire version appeared with the introduction of the Ultra DMA/66 (UDMA4) mode. All of the additional wires in the new cable are ground wires, interleaved with the previously defined wires. The interleaved ground wire reduces the effects of capacitive coupling between neighboring signal wires, thereby reducing crosstalk. Capacitive coupling is more of a problem at higher transfer rates, and this change was necessary to enable the 66 megabytes per second (MB/s) transfer rate of UDMA4 to work reliably. The faster UDMA5 and UDMA6 modes also require 80-conductor cables.
Though the number of wires doubled, the number of connector pins and the pinout remain the same as on 40-conductor cables, and the external appearance of the connectors is identical. Internally, of course, the connectors are different: The connectors for the 80-wire cable connect a larger number of ground wires to a smaller number of ground pins, while the connectors for the 40-wire cable connect ground wires to ground pins one-for-one. 80-wire cables usually come with three differently colored connectors (blue, gray & black) as opposed to uniformly colored 40-wire cable's connectors (all black). The gray connector has pin 28 CSEL not connected; this makes it the slave position for drives configured cable select.
The ATA standard has always specified a maximum cable length of just 46 cm (18 inches). This can cause difficulties in connecting drives within a large computer case, or when mounting several physical drives into one computer, and it all but completely eliminates the possibility of using parallel ATA for external devices. Although longer cables are widely available on the market, it must be understood that they are outside the parameters set by the specifications. The same is true of the "rounded" cables also commonly available: The ATA standard describes flat cables with particular impedance and capacitance characteristics. This is of course not a guarantee that other cables will not work, but an indication that nonstandard cables should be used, if at all, with caution.
Multiple Devices on a Cable
If two devices attach to a single cable, one is commonly referred to as a master and the other as a slave. The master drive generally appears first when the computer's BIOS and/or operating system enumerates available drives. On old BIOSes (486 era and older) the drives are often misleadingly referred to by the bios as "C" for the master and "D" for the slave.
If there is a single device on a cable, in most cases it should be configured as master. However, some hard drives have a special setting called single for this configuration (Western Digital, in particular). Also, depending on the hardware and software available, a single drive on a cable can work reliably even though configured as the slave drive (this configuration is most often seen when a CDROM has a channel to itself).
Cable Select
A drive setting called cable select was described as optional in ATA-1 and has come into fairly widespread use with ATA-5 and later. A drive set to "cable select" automatically configures itself
as master or slave, according to its position on the cable. Cable select is controlled by pin 28. The host adapter grounds this pin; if a device sees that the pin is grounded, it becomes the master device; if it sees that pin 28 is open, the device becomes the slave device.
With the 40-wire cable it was very common to implement cable select by simply cutting this wire between the two device connectors. This puts the slave device at the end of the cable, and the master on the "middle" connector. This arrangement eventually was standardized in later versions of the specification. If there is just one device on the cable, this results in an unused "stub" of cable. This is undesirable, both for physical convenience and electrical reasons: The stub causes signal reflections, particularly at higher transfer rates.
When the 80-wire cable was defined for use with UDMA4, these details were changed. The master device now goes at the end of the cable, so if there is only one device on the cable, there is no cable "stub" to cause reflections. Also, cable select is now implemented in the slave device connector, usually simply by omitting the contact from the connector body. Since 80-wire cables require special connectors anyway, this was a small additional effort. The standard also dictates color-coded connectors for easy identification by both installer and cable maker.
Master and Slave Clarification
Although they are in extremely common use, the terms master and slave do not actually appear in current versions of the ATA specifications. The two devices are correctly referred to as device 0 (master) and device 1 (slave), respectively. It is a common myth that "the master drive arbitrates access to devices on the channel." In fact, the drivers in the host operating system perform the necessary arbitration and serialization (as described in the next section). There is therefore no suggestion in the ATA protocols that one device has to ask the other if it can use the channel. Both are really "slaves" to the driver in the host OS.
Serialized, Overlapped, and Queued Operations
The parallel ATA protocols up through ATA-3 require that once a command has been given to one device on a cable, that command must complete before any subsequent command may be given to any device on the cable. In other words, commands must be serialized—with only one command in progress at a time—with respect to the ATA host interface. This function is usually performed by a device driver in the host operating system.
For example, suppose a read operation is in progress on one drive on a given interface (cable). It is not possible to initiate another command on another drive on the same interface, or inform the first drive of additional commands that it should perform later (capabilities referred to as "overlapped" and "queued" operations, respectively), until the first drive's read operation completes. This is true even though the total I/O time is dominated by seek time and rotational latency, and during these phases, the first drive is transferring no data.
A useful mental model is that the host ATA interface is busy with the first request for its entire duration, and therefore can't be told about another request until the first one is complete.
The ATA-4 and subsequent versions of the specification have included both an "overlapped feature set" and a "queued feature set" as optional features. However, support for these is extremely rare in actual parallel ATA products and device drivers.
By contrast, overlapped and queued operations have been common in other storage buses for some time. In particular, tagged command queuing is characteristic of SCSI, and this has long been seen as a major advantage of SCSI over parallel ATA. The Serial ATA standard has supported what it calls native command queueing since its first released version, but the feature is only present in a few (generally the highest-priced) Serial ATA drives.
Mixed Device Speeds
It is a common misconception that, if two devices of different speed capabilities are on the same cable, both will necessarily transfer data at the speed of the slower device. This is true only with very old chipsets or add-in adapters. All modern ATA interfaces (since, at least, the late Pentium III and AMD K7 era) support independent timing, which allows each device on the cable to transfer data at its own best speed.
However, due to the omission of both overlapped and queued feature sets from most real-world parallel ATA products, the preceding paragraph must be clarified. It applies to the data transfer phase, but this is usually the shortest part of a complete read or write operation. Devices do differ markedly in the total time required to perform an I/O (irrespective of the burst data transfer rate), and since only one device on a cable can have on operation in progress at one time, they do affect each others' performance.
For example, consider an optical device such as a DVD-ROM, and a hard drive on the same parallel ATA cable. With average seek and rotation speeds for such devices, a read operation to the DVD-ROM will take an average of around 100 milliseconds, while a typical fast parallel ATA hard drive can complete a read or write in less than 10 milliseconds.
This means that the hard drive, if unencumbered, could perform more than 100 operations per second (and far more than that if only short head movements are involved). But since the devices are on the same cable, once a "read" command is given to the DVD-ROM, the hard drive will be inaccessible (and idle) for as long as it takes the DVD-ROM to complete its read—seek time included. Frequent accesses to the DVD-ROM will therefore vastly reduce the maximum throughput available from the hard drive. If the DVD-ROM is kept busy with average-duration requests, and if the host operating system driver sends commands to the two drives in a strict "round robin" fashion, then the hard drive will be limited to about 10 operations per second while the DVD-ROM is in use... even though the burst data transfers to and from the hard drive still happen at the hard drive's usual speed.
The impact of this on a system's performance depends on application. For example, when copying data from an optical drive to a hard drive (such as during software installation), this effect probably doesn't matter: Such jobs are necessarily limited by the speed of the optical drive no matter where it is. But if the hard drive in question is also expected to provide good throughput for other tasks at the same time, it probably should not be on the same cable as the optical drive.
On the other hand, it is worth emphasizing that this effect only occurs if the slow drive is actually being accessed. If it is idle, its mere presence on the cable will not affect the performance of any other device on the same cable (provided, of course, that the host adapter supports independent timing).
ATA standards versions, transfer rates, and features
The following table shows the names of the versions of the ATA standards and the transfer modes and rates supported by each. Note that the transfer rate for each mode (for example, 66.7 MB/s for UDMA4, commonly called "Ultra-DMA 66") gives its maximum theoretical transfer rate on the cable. This is simply two bytes multiplied by the effective clock rate, and presumes that every clock cycle is used to transfer end-user data. In practice, of course, protocol overhead reduces this value.
Congestion on the host bus to which the ATA adapter is attached may also limit the maximum burst transfer rate. For example, the maximum data transfer rate for conventional PCI bus is 133 MB/s, and this is shared among all active devices on the bus.
In addition, as of October 2005 no ATA hard drives exist capable of measured sustained transfer rates of above 80 MB/s. Furthermore, sustained transfer rate tests do not give realistic throughput expectations for most workloads: They use I/O loads specifically designed to encounter almost no delays from seek time or rotational latency. Hard drive performance under most workloads is limited first and second by those two factors; the transfer rate on the bus is a distant third in importance. Therefore, transfer speed limits above 66 MB/s only really affect performance when the hard drive can satisfy all I/O requests by reading from its internal cache — a very unusual situation, especially considering that such data is usually already buffered by the operating system.
Standard Other Names Transfer Modes Added (MB/s) Maximum disk size Other New Features ANSI Reference
ATA-1 ATA, IDE PIO 0,1,2 (3.3, 5.2, 8.3)
Single-word DMA 0,1,2 (2.1, 4.2, 8.3)
Multi-word DMA 0 (4.2) 137 GB X3.221-1994
(obsolete since 1999)
ATA-2 EIDE, Fast ATA,
Fast IDE, Ultra ATA PIO 3,4: (11.1, 16.6)
Multi-word DMA 1,2 (13.3, 16,6) 28-bit logical block addressing (LBA) X3.279-1996
(obsolete since 2001)
ATA-3 EIDE
S.M.A.R.T., Security X3.298-1997
(obsolete since 2002)
ATA/ATAPI-4 ATA-4, Ultra ATA/33 Ultra DMA 0,1,2 (16.7, 25.0, 33.3)
aka Ultra-DMA/33 Incorporated ATAPI packet commands, i.e. support for CD-ROM, tape drives etc.,.
Overlapped and queued command sets added as optional features.
NCITS 317-1998
ATA/ATAPI-5 ATA-5, Ultra ATA/66 Ultra DMA 3,4 (44.4, 66.7)
aka Ultra DMA 66 80-wire cables NCITS 340-2000
ATA/ATAPI-6 ATA-6, Ultra ATA/100 UDMA 5 (100)
aka Ultra DMA 100 144 PB 48-bit LBA
Automatic Acoustic Management NCITS 361-2002
ATA/ATAPI-7 ATA-7, Ultra ATA/133 UDMA 6 (133)
aka Ultra DMA 133
SATA/150 SATA 1.0, Streaming feature set, long logical/physical sector feature set for non-packet devices NCITS 397-2005
ATA/ATAPI-8 ATA-8 — Hybrid drive featuring non-volatile cache to speed up critical OS files in progress
In August 2004, Sam Hopkins and Brantley Coile of Coraid specified a lightweight protocol to carry ATA commands over Ethernet instead of directly connecting them to a PATA host adapter. This permitted the established block protocol to be reused in Network-attached storage applications.
2006-08-13 06:10:00
·
answer #5
·
answered by PK LAMBA 6
·
0⤊
0⤋