BigDumbDinosaur wrote:
Snial wrote:
Quote:
From what I recall, the original "ATA" interface was designed to be trivially interfaced with the bus on the PC/AT, hence the name "AT Attachement".
The ATA acronym was invented much later than the drives themselves. Originally PC hard drives were basically raw & a PC needed a card to drive it, which for the first HD equipped PC/XT was the seagate ST-506 controller card.
In the meantime Shugart Associates created the intelligent interface SASI which was standardized as SCSI. Here, the controller was effectively attached to the drive (well, its enclosure).
Your narrative is a bit off. SASI was created c. 1978 as an in-house standard and was publicly disclosed in early 1981 when NCR Corporation decided to adopt SASI for a new line of minicomputers. Their move was soon followed by Point 4 and some other minicomputer builders of the day, as SASI produced high (for the time) performance, and was adaptable to peripherals other than just disks. This all occurred well before the PC-XT was released. NCR subsequently spearheaded the process of getting SASI adopted as a formalized ANSI standard, which was completed in 1986 (along with the name change). NCR also produced the first SCSI ASIC, which had enough intelligence to sequence the SCSI bus in hardware. Later versions off-loaded much of the interface logic from the host machine, substantially reducing the size of the code required to handle SCSI transactions.
Quote:
So IDE was created to compete with SCSI, but all it was, was an ST-506 card bolted to the drive, hence "Integrated Drive Electronics". Only later was it re-termed ATA, But the protocol was still the same.
IDE wasn't designed to compete with anything. It was designed to be cheap and to be able to use off-the-shelf silicon, which was the guiding philosophy of the PC design in general during the 1980s (microchannel was a reversal of that philosopy). The hard drive mechanisms that were available at the time of the PC-XT's introduction were all ST-506/412 devices. The XT's hard drive interface was very crude and was simply IBM's quick and dirty response to requests for more capacious storage than could be had with floppy disks. The cost of adapting SASI to the PC was never considered, as the interface itself was never considered, due to it not being any kind of formalized standard (use of SASI/SCSI would come later when attention turned to making servers out of PCs). IBM was not entirely convinced at the time that the PC had a long-term role in the computing universe. Remember, these were folks who made their money selling big iron, not microcomputers.
The "advanced technology attachment" (ATA) predates IDE by several years and was introduced with the PC-AT. ST-506/412 devices have absolutely no intelligence—they are incapable of understanding any of the commands understood by later devices. Therefore, the host machine has to tell the drive about every little detail of its operation, e.g., which cylinder on which to position the heads, etc. In the PC-XT, primitives in the BIOS controlled the disk, which made for slow performance and a great deal of complication—among other things, the BIOS had to have detailed knowledge of the drive's geometry, which had to be entered via the CMOS setup utility.
ATA was an attempt by IBM to separate the mechanics of controlling an ST-506/412 disk from the operation of the computer itself. The idea was to move the grunt work involved in telling the drive what to do out of the BIOS and onto an "intelligent" card, intelligence being relative—ATA is quite crude when compared to SASI. The BIOS still had to know the drive geometry and such, but didn't have to get involved with niggling details such as head step pulse frequency and width and write precompensation, among other things. However, the interface card wasn't smart enough to eliminate the need for the BIOS to know about cylinders, heads and sectors—logical block addressing wasn't supported in hardware as it is now.
In contrast, what SASI did was insulate the host machine from having to handle all these details. SASI introduce the concept of logical block addresses, device numbers, logical units, etc., some five years before the development of the PC-AT. Incidentally, when the combination of ST-506/412 mechanisms and SASI was introduced to minicomputers, the host adapter was a humongous controller card plugged into the mainboard. It was connected to the mechanism controller card (often an OMTI 5300 type) via a 50 conductor ribbon cable, which morphed into the "narrow" SCSI bus after ANSI ratified the standard. The OMTI 5300 was of a size that allowed it to be attached to the underside of a full or half height hard drive or a QIC-02 tape mechanism. The controller could control two disks and one tape, and was capable of directly copying data between disks or one disk and a tape without host intervention. The first generation of the Lt. Kernal hard drive subsystem for the Commodore 64 mated an ST-506/412 drive to an OMTI 5300.
IDE ("integrated drive electronics") came later when the demand for hard drives in PCs ratcheted up and drive manufacturers started building more logic into their mechanisms in an effort to ease adaptation to PC hardware. By the later 1980s, use of ST-506/412 mechanisms was rapidly declining. In the SASI/SCSI arena, the combination of an ST-506/412 mechanism mated to an OMTI controller gave way to embedded SCSI drives, which did a lot to drive down the cost.
IDE went the cheap route, and SCSI went the high performance route. SATA is essentially the same thing: different hardware, same accountant-mentality design.
Well, the original PC-XT had a controller card for the hard drive that was populated with Western Digital chips. There was no CMOS setup utility, only a 4-position DIP switch to select one of four drive types (drive geometry) per drive, two max (default setting for the 10MB drive). The CMOS setup utility came with the PC-AT later... as it had a realtime clock chip and battery and the extra CMOS bytes were used for some config data, floppy drive types and hard disk types. There was a limited table of geometry specs with the original PC-AT BIOS and also only supported two drives. The PC-AT had a newer controller card, still based on WD chips... and the same ST interface (34-pin control and 20-pin data cables). ATA did not come out with the PC-AT however, as the PC-AT came out in 1984.... ATA was much later.
During the PC-AT days, we managed to secure some larger drives (Seagate ST-4096 80MB and higher), no standard table entry could manage the drives, so I wrote some new code to replace the partition sector for the hard drive which could redefine the BIOS parameters on boot up... and would handle a second drive with my partition loaded on the second drive as well (wrote a utility to handle this). This worked quite well, but you had to boot from the hard disk to enable it as the BIOS still had a default drive config selected via CMOS. The AT also changed the sector interleave which was the only reason the drive transfer rate increased.... the PC-XT setup had an interleave 6, while the PC-AT had an interleave of 3. I wrote a new low-level format utility that had selectable interleave and could go down to 2 on the PC-AT with an appropriate increase in transfer rate.
IDE (acronym) was used before... when the PS/2 machines were announced. The model 70 (computer in a desk drawer size) had a single hard drive with integrated drive controller electronics and a large proprietary edge connector that plugged into an interposer card, which also handled two diskette drives with modified edge connectors to include power. We called it an IDE drive, go figure. It was also at that time when the ESDI drives came out in the larger floor standing PS/2 machines. This was also the first time that the drives had defect mapping with spare sectors, so a low-level format could yield 100% good drive space by utilizing spares... it also was the first drives to utilize logical block addressing and map to the BIOS geometry interface which was limited. The ESDI drives also had sector skewing... which allows the sector index to be skewed from one disk head surface to the next. As drive electronics were still not as well developed as they are now, head switch time was long enough that you would miss the next sequential sector on the next disk surface and have to wait for the disk to spin around. Nice feature... and this coupled to an interleave of 1 pretty much maximized the disk performance that could be had at the time.
Once we had logically mapped drives with 100% good data, the concept of copying a hard drive made sense, so I wrote the first hard disk copying utility (for the PC.... already had them for large DASD) and it was used for initial pre-loading of drives for all kinds of internal use... and for billable services to roll out large customer PC installations, etc. Fun stuff in all... and a old buddy took my code and wrapped a NetBIOS interface around it so we could copy drives thru a network... and this was still in the 80's.
SCSI drives came later in the PS/2 line... and then they phased out the PS/2s.... too expensive and, like pretty much everything IBM made back then, far too overbuilt for a product whose usable life was relatively short compared to the other products being made. It's an interesting history.... the original PC was more of a test the market... product life was set around 250K units... who knew. In any case, being built of entirely off the shelf components, and the entire source code listed available for the BIOS, it was only a matter of time before the clones set in. As to being short-sighted... doubt it... and I seriously doubt any company could have managed the explosive growth anywhere near as well. But ultimately, when something becomes a disposable commodity, it just didn't make for a profitable business model.... and as pointed out, bean-counters run everything nowadays.... even Mercedes-Benz's products fell victim to it, who knew.