Talk:AT Attachment

From Wikipedia, the free encyclopedia

Contents

[edit] Suggested fix for picture of cables

On my monitor I can't see any difference between the "80 conductor cable" and the "40 conductor cable" (second picture), except that the connectors are colored. I think we should find a picture that better shows the different conductor spacing. All of you others, get right on that. ;) Seriously, I'll see if I can't take one myself. Jeh 09:19, 21 October 2006 (UTC)

[edit] IDE and ATA are the same thing?

I thought ATA is a type of IDE drive/cable, not that they are the same thing, like this article says. the article on SATA says all ATA drives are IDE drives, not that they are the same thing —The preceding unsigned comment was added by The snare (talkcontribs).

I think the confusion comes from the fact that the abbreviation IDE has taken on a different meaning from the words that make it up. IDE at least in common use refers not to "integrated drive electronics" but to one particular system of connecting to integrated drive electronics. The same goes for HTML (one particular hypertext markup language, not hypertext markup languages in general) CSS (one particular system for cascading style sheets) etc. Plugwash 12:26, 23 January 2007 (UTC)
The confusion comes from the fact that IDE was never properly spec'ed out. SCSI, PATA, and SATA are all IDE implementations - therefore it is completely misleading and wrong to do as this article claims and say PATA=IDE. When I have the time, I'll get some proper references and do my best to clean this disaster up. --Riluve 05:47, 17 February 2007 (UTC)

[edit] Future enhancements

what are the future enhancements of ATA (unsigned comment)

[edit] what is 40/80 physical connection?

Here and elsewhere I see

"The 80-wire cable provides one ground wire to each signal wire.... Though the number of wires doubled, the number of connector pins remains the same as on 40-conductor cables. The physical connectors are identical between the two cable types."

But nowhere does anyone explain how that works. Isn't anyone besides me curious? I've spent about an hour googling for a description of the 40-pin connector that magically connects very other wire in an 80-wire cable to ground. I *have* one of thesein my hand, and I may go crazy and just take it apart, thus wasting $2.50....

-- jgo / owen_bda4@yahoo.com

The purpose of an 80 wire cable is to reduce capacitive coupling, a phenomenon that occurs between wires that carry signals at high frequencies. Putting a ground wire between data wires couples the data wires to ground instead of to another data wire, reducing interference in the data carrying wires.
It would seem necessary to have an 80 pin connector for 80 wires, however, there only needs to be one ground connector pin at most, although there are several shown in the diagram, and all of the ground wires share the ground connection, (they are connected in some way inside of the connector). (unsigned comment, i cba to dig through the page history to find out whoose)
afaict its a special connector made specifically to do this extra grounding, not any kind of standard part from the electronics industry. When you standard is as widely used as ATA is you can afford to specify custom connectors to provide backwards compatibility whilst allowing a better wiring type. Plugwash 00:04, 30 September 2005 (UTC)
cleaned up the description of the 80-wire cable and the connector. Jeh 22:25, 8 October 2005 (UTC)

[edit] ATAPI != ATA

ATAPI is a specific form of communication across ATA for optical and other removable media drives, as noted in the article's section on ATAPI, not a synonym for ATA as the introduction claimed. Matir 15:39, 18 October 2006 (UTC)

[edit] Parallel ATA Interface

The second paragraph needs to be rewritten or at least copyedited. The necessary changes are above my command of the english language. The problem is in the redundancy of electromagnetic induction and crosstalk (the latter is caused by the former).--Deelkar (talk) 02:13, 18 May 2005 (UTC)

Done. The actual issue here is capacitive coupling, since that is more of a problem at higher freqs, just the opposite of inductive coupling. Jeh 22:33, 8 October 2005 (UTC)

[edit] "Parallel ATA cables transfer data 16 or 32 bits at a time."

How can you do 32 bit transfers with only 16 data pins? Maybe the 32 bits are transfered between ATA controller and CPU/DMA controller, but i doubt you can do this on the ATA bus.

You can't. Fixed. Jeh 22:33, 8 October 2005 (UTC)

[edit] master/slave terminology

In a comment imbedded in the article page, Plugwash asked:

Is it fair to say that the idea of master/slave probablly originated from the way the master is generally the boot drive and the slave is then acting as a slave to whatever the code loaded from the master decides to do ?

My response (I'm the guy who put in the "they aren't really called 'master' and 'slave'" paragraph):
That seems like quite a stretch to me. There is another hint of an origin back in the ATA-1 spec in the description of the SPSYNC (Spindle sync) interface signal (section 6.3.16). But even there, both devices could be "slaves" to a sync signal from the host controller! SPSYNC was relegated to simply "defined by the vendor" status in ATA-2 and dropped completely in ATA-3. It shared the same pin on the 40-pin connector with CSEL (cable select) and so when CSEL became more strongly recommended, SPSYNC had to go. And... shouldn't this sort of thing be in the talk page? Jeh 06:44, 2 October 2005 (UTC)
Master and slave have less to do with the OS's conception of logical devices as they do with the AT BIOS and the origins of ATA itself. ATA's register set is based directly on the old Western Digital 1003 ST-506 controller board used in the AT (and cloned by just about everyone back in the pre-ATA days), and the 1003 could either have one drive as Drive 0, or two drives as Drive 0 and Drive 1 -- you couldn't have a single drive as Drive 1, because the BIOS wouldn't boot from it (and I think IBM's own BIOS would complain about it, actually). On ATA, this setup is emulated by the drives listening to the bus (all commands are available to both drives) and seeing what the DEV bit in the Device/Head register is set to, then only interpreting commands that it expects to see based on its jumper settings. This used to be undefined behavior in a single-drive-set-to-Slave system, but later versions of ATA let you run a drive jumpered as Slave or Drive 1 by itself, with some restrictions. Also, if the drives can't agree on who has control of the bus, you've got problems, and this was a big issue back in the early days (when there were various methods of deciding if there was a slave present).
Also, SPSYNC was an artifact of the days when drives didn't have a lot of on-board cache, and synchronising the spindles actually made a difference with access times; when drives started having caches capable of holding hundreds of sectors at a time (even a 512k cache, common in the late 1990s but puny by 2005 standards, can hold 1024 512-byte sectors...), this became a lot less important, and people stopped using it. -lee 16:08, 22 November 2005 (UTC)

[edit] is cable select mandatory

in the standard for the 80 wire cables, they certainly all seem to have it in practice. Plugwash 13:09, 9 October 2005 (UTC)

I'm not sure. I think so... but the wording is a little vague. Jeh 20:08, 9 October 2005 (UTC)

[edit] What's the meaning of Ultra DMA/100, /133, etc...

The article should mention what is the meaning of "Ultra DMA/100", "Ultra DMA/133", etc. I have always assumed the number was the maximum burst throughput in megabytes per second, but I've had a surprisingly difficult time looking for the answer to this.

While discussing the throughput rate, it would also be good to mention whether the /100 or /133 (etc) burst rate makes any real-world difference, typically, with a reference to typical sustained throughput rates of today's ATA hard disks. Tempshill 19:39, 10 October 2005 (UTC)

Good point. "Ultra DMA/100", etc., are unofficial names. Yes, the number is the max transfer rate on the bus in MB/sec. They're commonly used on drive boxes because it's far easier to remember that "Ultra DMA/100 means 100 MB/sec" than it is to remember that for the official name of "Ultra DMA 4." And yes, these make little difference for today's (or even tomorrow's) hard drives.
The short paragraph immediately above the "modes" table mentions this a bit. I've been thinking that that should go UNDER the "Modes" table, or at least under the heading where the table is, and that is a good place to amplify these points too. Jeh 23:45, 10 October 2005 (UTC)
... ok, done. What does anyone think? Did I get too far into opinion in dismissing STR results as not important? If you think so, you know where the "edit" button is. ;) Jeh 00:35, 11 October 2005 (UTC)
Not at all; this type of analysis is what is needed in technical Wikipedia articles. I thought the sentence "In addition, as of October 2005 no ATA hard drives exist capable of measured sustained transfer rates of above 80 MB/s, let alone higher" formed an excellent grounding for that whole discussion. Thanks! Tempshill 05:38, 13 October 2005 (UTC)

[edit] Three devices on a cable?

The page says

One occasionally finds cables that allow for the connection of three ATA devices onto one IDE channel, but in this case one drive remains read-only (this type of configuration virtually never occurs).

and then someone added this comment: how is that done then?

I'd like to know that too. It seems to me that I may have seen (how's that for indefinite?) configurations like this involving some of those cheap ratty little tape drives sold for PCs. But I don't really believe it; I think I'm thinking of similar kluges on floppy cables, which I know did exist.

Whatever, such a configuration is absolutely not supported or allowed by the ATA specs.

My first impulse is to delete this reference completely, as in "no, it didn't ever happen." But I certainly haven't seen even a tiny fraction of all the nonstandard (or even all the standard) things that have been attached to PCs over the years. So... does anyone have anything more definite than a vague memory of how this worked? Since there's only one bit for "device address" in the ATA command structure I am not at all certain how this could have worked, but of course if someone has seen it working, that blows all theoretical arm-waving out of the water... Jeh 23:33, 10 October 2005 (UTC)

It could work, theoretically, by commandeering one of the unused bits in the Device/Head register, but the other drives would have to know about what you did for it to work right. This works better on floppy setups because the floppy bus has 4 device select lines. -lee 16:11, 22 November 2005 (UTC)
How does the controller indicate what drive it wants active anyway? Plugwash 23:40, 19 March 2006 (UTC)
An ATA controller works by writing binary-coded commands into registers implemented on each device. One of these is called the Device register; each device has one (and several others). Unlike in older interfaces like ST-506, there are no "device select" lines in the cable. There are bits (the CS, chip select, and DA, device address) in the wires that indicate which register is being addressed, but whatever is sent is actually written into the selected registers of both devices on the cable. The devices figure out which commands to pay attention to and which to ignore by looking at the DEV bit in the Device register. When reading from device registers, only the device whose logical address ("device 0" or "device 1") matches this bit responds. Since there is only one bit there is no obvious way to support more than two devices! Jeh 03:16, 2 August 2006 (UTC)

[edit] "Maximum disk size" values wrong

For all I know, the total number of addressable sectors was 2**28 (28 bit) from ATA-1 onwards, in both CHS and LBA mode. Which means 2**28 * 512 Byte = 128 GiB maximum disk size for all ATA specs prior to the introduction of the 48-bit extensions in ATA-6.

Quoted from the ATA-1 spec (http://www.t13.org/project/d0791r4c-ATA-1.pdf):

7.2.3 Cylinder high register
This register contains the high order bits of the starting cylinder address
for any disk access. [...]
In LBA Mode this register contains Bits 16-23. At the end of the command,
this register is updated to reflect the current LBA Bits 16-23.
NOTE 4 - Prior to the introduction of this standard, only the lower 2 bits of
this register were valid, limiting cylinder address to 10 bits i.e., 1024
cylinders.
7.2.4 Cylinder low register
This register contains the low order 8 bits of the starting cylinder address
for any disk access. At the end of the command, this register is updated to
reflect the current cylinder number.
In LBA Mode this register contains Bits 8-15. At the end of the command, this
register is updated to reflect the current LBA Bits 8-15.
[...]
7.2.8 Drive/head register
[...]
- If L=0, HS3 through HS0 contain the binary coded address of the head to
be selected e.g., if HS3 through HS0 are 0011b, respectively, head 3
will be selected. HS3 is the most significant bit. At command
completion, these bits are updated to reflect the currently selected
head.
- If L=1, HS3 through HS0 contain bits 24-27 of the LBA. At command
completion, these bits are updated to reflect the current LBA bits
24-27.
[...]
7.2.12 Sector number register
This register contains the starting sector number for any disk data access for
the subsequent command. The sector number may be from 1 to the maximum number
of sectors per track.
In LBA Mode this register contains Bits 0-7.

There you have it. 16+4+8=28 bits for the sector addressing, meaning 128 GiB addressable space, in both CHS and LBA mode, from ATA-1 onwards. *prior to ATA-1*, there were only 10 bits for the cylinder number, giving 10+4+8=22 bits for the sector addressing and 2 GiB addressable space.

The "maximum disk size" values in the article appear to be limitations mandated by various MS-DOS and/or BIOS routines (or weird combinations of both) that were in use at one time or another. There were no such limits in the underlying ATA controllers.

Unless I'm missing something obvious here, the text should be updated. Multi io 01:29, 21 May 2006 (UTC)

I just removed
ATA devices have suffered from a number of "barriers" in terms of how much data they can handle. However, new addressing systems and programming techniques have broken most of these barriers. Some of the ATA-specific barriers included: 504 MiB, ~8 GiB, ~32 GiB, and 128 GiB. A variety of other barriers have existed, usually due to device drivers and disk I/O layers in operating systems that did not correspond with ATA standards.
The paragraph below says the same thing in much better terms clearly attributing it to the PC BIOS. We still need some info on the 32 gig limit though. Plugwash 01:31, 21 May 2006 (UTC)
Oh -- yes, that paragraph seems accurate. I was referring to the table in "ATA standards, versions, ...". I've corrected that one now -- 28-bit addressing from ATA-1 onwards, as the spec and the paragraph says. Right? Multi io 02:29, 21 May 2006 (UTC)


[edit] Size limits

There's an excellent resource which provides detailed explanations of why and when a certain size limit was introduced. http://www.pcguide.com/ref/hdd/bios/size.htm --Dmitry (talkcontibs ) 08:11, 7 August 2006 (UTC)


[edit] ATAPI 8

what is new in ATAPI 8 ?

Updated from draft. --Dmitry (talkcontibs ) 08:10, 7 August 2006 (UTC)

[edit] missing pin

I have a drive where Pin 1 has broken off. Now the drive otherwise works fine, and I want to know what side effects I should expect from no reset pin being present, and if I should toss the drive or get it repaired. Stormscape 05:03, 9 April 2006 (UTC)

The drive works so far because its internals automatically reset themselves at power-up. The product manual of Seagate CP2064 (20 MB, mfd. 1990) states that #1 is only active at power-up as well -- perhaps a "just to be sure" from the host adapter. Because power-on-reset circuitries are similar and reliable unless in case of a slow voltage rise, the drive might remain uninitialized after a short brownout which nonetheless manages to reset the motherboard. As long as the power is consistent and the PSU does its job, you won't notice anything. --saimhe 15:42, 21 March 2007 (UTC)

[edit] 2.5-inch drives?

The 44-pin interface on 2.5-inch drives - is that ATA also? If so, what are the extra 4 pins? - Brian Kendig 23:58, 7 June 2006 (UTC)

Yes, it's ATA. And you can get adapters (e.g. "laptop drive adapter") to use a 2.5-inch drive on a standard 40-pin ATA connector, or vice versa (in theory, I haven't seen one in that direction). The extra pins are for +5Vdc power and ground. Jeh 21:28, 3 July 2006 (UTC)

[edit] Missing in article

What is otherwise a quite decent article is missing any and all reference to the transfer rates of ATA devices when more than one device is connected on a data cable / port...

  • Will the transfer rate revert to the slowest device?
  • Will it revert per above only when the slower device is accessed?
  • Will that hold true for both, M/S & CS settings?
  • Will that hold true when data cable is 80-wire?

etc...

Excellent point. Does the article answer your questions now? It's a complex issue, not limited to just the actual transfer speeds. Jeh 03:03, 2 August 2006 (UTC)

[edit] IDE != ATA?

The article frequently suggests that IDE was an early name given to ATA, but if ATA really does stand for "AT attachment", then this can't be the case. IDE comes in two forms, a version that implements the 16 bit AT ISA bus, and an eight bit version supporting the XT bus. (I've seen this referred to as XTIDE)

I only know this because the Amiga A590 SCSI controller contained a little used implementation of the eight bit version of IDE in addition to the built-in SCSI2 interface.

IDE redirects to this page, so the distinction probably should be made clear. —The preceding unsigned comment was added by 208.152.231.254 (talkcontribs) 00:19, 10 August 2006 (UTC)

IDE stands for "Integrated drive electronics", a non-standardized market name for any hard drive with built-in controller directly attached to the bus, and such drives existed many years before the official draft of ATA standard was introduced - they just used proprietary standards submitted by manufacturers, mostly Western Digital. The name reflects the fact that 16-bit AT bus attachment was the most popular choice of hard drive manufacturers until the rise of VESA Local Bus and PCI . --Dmitry (talkcontibs ) 10:33, 11 August 2006 (UTC)

[edit] inconsistancy about int 13h extentions

the BIOS interrupt call article shows extended int13 as having 64 bits for offset and no indication of the size of the offset, the INT 13 article states "The original version of this interface supports 32-bit LBAs. Newer versions support 48-bit and 64-bit LBAs. These allow addressing of 2 TiB, 128 PiB, and 8 ZiB respectively.". Which is correct and if its the INT 13 article that is correct what are the real packet structure? Plugwash 10:45, 10 August 2006 (UTC)

  • It seems like the data packet allowed for 64-bit LBA right from the start (at least as of version 1.1 of Enhanced Disk Drive spec), but it later was altered to allow a 48-bit LBA in Enhanced Disk Drive version 2 (2004). The data structures still accept 64-bit number.--Dmitry (talkcontibs ) 10:23, 11 August 2006 (UTC)

[edit] EIDE=ATAPI?

I'd heard that IDE=ATA, and EIDE=ATAPI. Both are mentioned as being extensions for larger disk support; are they indeed synonymous terms? 70.228.77.77 03:49, 18 August 2006 (UTC)

See the section above, IDE != ATA. --Dmitry (talkcontibs ) 07:30, 18 August 2006 (UTC)
ATAPI more specifically is the ATA Packet Interface. On the whole, this article is rather sketchy. :\ —StationaryTraveller 08:16, 11 September 2006 (UTC)

[edit] HPA/DCO

It might be nice to see at least some mention of the HPA and DCO features added in later ATA revisions. -- TDM 13:58, 20 August 2006 (UTC)

[edit] ATA standards versions, transfer rates, and features

The table says on ATA/ATAPI-7 (ATA-7, Ultra ATA/133) that there is SATA/150. But where is SATA/300 ? It is not listed. -- Frap

AT/ATAPI doesn't describe physical interface anymore - it could be Parallel ATA, Serial ATA or eSATA (and FireWire or USB for that matter), and any ATA/ATAPI drive will still respond to commands defined by the ATA/ATAPI standard (what's more, Serial ATA can also be used to interconnect SCSI devices as in Serial Attached SCSI). --Dmitry (talkcontibs ) 21:13, 5 October 2006 (UTC)

[edit] Compatibility

Please help improve this article or section by expanding it.
Further information might be found on the talk page or at requests for expansion.
This article has been tagged since January 2007.

I learned today that at least for 2.5" laptop drives, EIDE is incompatible with SATA, despite apparently being a different version of the same protocol. Could someone explain, in general, which of the protocols in the table are compatible with which others (in either direction)? -- Beland 23:18, 14 December 2006 (UTC)

[edit] Merge with Programmed input/output and WDMA (computer)

Regarding the proposed merge with the two pages mentioned above: I agree, I think both pages should be merged into AT Attachment. 59.167.212.218 11:11, 29 January 2007 (UTC)

As far as I know, both PIO and WDMA can be used for non-AT Attachment devices, such as network adapters. I've seen references to PIO network adapters, so I fixed the PIO page to speak of them. Unless they're usable only for ATA devices, those pages should not be merged. Guy Harris 04:44, 31 January 2007 (UTC)
I agree with Guy. This proposed merge is a bad idea. Jeh 20:08, 4 February 2007 (UTC)
Clarification: Upon further thought, I think the material in the WDMA (computer) article as it stands now should probably be merged here; as it is it describes only DMA modes used by ATA and there is no purpose in a separate article. The same is true of the material now in the Programmed input/output article. That is not to say that there shouldn't be a separate article on PIO in general. There is already a separate article for Direct memory access, and it is correctly general, not specific to DMA under ATA. Jeh 02:04, 5 February 2007 (UTC)
I also agree that the PIO page should remain separate. PIO has been used for years by various kinds of devices: network cards, SCSI cards, bus mice, etc. In fact, PIO easily predates IDE/ATA, going back to the early MFM and ESDI cards (I think the first IBM PC floppy interfaces even used PIO). This may need to be clarified, but it should not be merged. EJSawyer 22:22, 13 March 2007 (UTC)
Sorry, but I strongly disagree. Did you actually read the "programmed input/output" page? It speaks only of PIO modes defined for ATA devices; these have nothing to do with PIO as used on any other device. Jeh 10:10, 14 March 2007 (UTC)
Yes, I've read it, and I agree with your earlier assertion that the PIO page it leans too heavily on ATA. But I've worked with PCs for nearly 25 years, and PIO predates ATA by at least 5 years. Clean it up? Sure. Merge it? No, that would be a mistake. EJSawyer 18:58, 23 March 2007 (UTC)
What I'm saying is that the ATA-specific stuff from the PIO page should be merged here (most of it is already here), with a reference link to here: "For information on AT Attachment-specific PIO modes, ... "
That will leave almost nothing in the existing PIO article. Yes, wiki needs a general article on programmed I/O, but the existing article is not it -- it has approximlately ONE sentence that is not ATA-specific. btw, the original IBM PC had DMA... it was required for the floppy controller! Both PIO and DMA concepts have been around for FAR longer than the PC; I first encountered them when building interfaces for and writing drivers for them on an HP 2100. Jeh 20:11, 23 March 2007 (UTC)

[edit] Proposed that the "cable select" article be merged into this one

The Cable select article amounts to three paragraphs and mostly repeats information already available here. The wikipedia "how to" page on merging suggests four good reasons for merging a page. This qualifies under three of the four. If the "cable select" concept applied to anything but ATA that would be a different story, but it does not. Jeh 20:16, 4 February 2007 (UTC)

Using cable select with this cable select compatible 40-conductor cable, a device connected to the black connector on the left side of this IDE cable is a master, a device in the middle (usually gray) is a slave, and the connector on the right (usually blue) connects to the IDE controller, most often the motherboard.
Using cable select with this cable select compatible 40-conductor cable, a device connected to the black connector on the left side of this IDE cable is a master, a device in the middle (usually gray) is a slave, and the connector on the right (usually blue) connects to the IDE controller, most often the motherboard.
Merge. Here's a picture from that page, just in case anyone wants it again. Please note though that the text is inconsistent with the usual implementation of CS on 40-conductor cables, wherein "slave" goes at the end.

[edit] ATA != UDMA

UDMA is a group of ATA transfer modes and thus not a synonym for ATA as claimed in the second paragraph. (130.234.5.136)

Fixed. (which you could have done, you know. ;) ) Jeh 21:03, 6 March 2007 (UTC)