Hi,
Octocontrabass wrote:
Yes. Most specifications refer to the register-level interface as IDE, so calling it that is the best way to stay consistent with those documents.
No, most specifications use "random whatever the author felt like", in some cases only using "IDE" for everything and not using "ATA" at all, and in some cases mixing both. For example, the first chapter of Intel's "Programming Interface for Bus Master IDE Controller" says:
Quote:
1.0. IDE Bus Master
This document defines a register level programming interface for a bus master ATA compatible (IDE) disk controller that directly moves data between IDE devices and main memory. By performing the IDE data transfer as a bus master, the Bus Master Device offloads the CPU (no programmed IO for data transfer) and improves system performance in multitasking environments.
It's obvious from the very first sentence (e.g. "
ATA compatible (IDE) disk controller") that they treating "ATA compatible" and "IDE" as synonyms.
Octocontrabass wrote:
Brendan wrote:
No, it doesn't. What it does do is describe the registers in the disk drives, and early controllers mostly just passed information between IO port and the registers in the drive/s (because it was all "integrated in the drive's electronics"), so by pure luck/history what you see in the early IDE and ATA specifications looks like a software interface (but isn't a software interface and was never intended to be a software interface).
It was specifically designed to be a software interface! It's no coincidence that ISA IDE adapters are nothing more than address decoding logic.
No. It was designed to be the interface a disk drive provides, and it was designed for the controller to be mostly just address decoding; and these things combined caused it to become a crude software interface by accident. It was not the opposite (where they designed a software interface that accidentally ended up being the interface a disk drive provides).
Octocontrabass wrote:
Even when it's connected to non-x86 computers, it's still unmistakably IDE. Adapting a PC-centric IDE driver to work with an Amiga IDE controller requires merely changing the addressing logic. It's address translation, and an OS developer should already be familiar with that.
No. The software interface originally used on 80x86 PCs (where there's IO ports at fixed bases and an ISA IRQ numbers) simply can not make any sense on anything else (that doesn't have IO ports and doesn't have ISA IRQs), and attempting to pretend the software interface remains the same in these cases (when that's obviously impossible) is extremely idiotic.
Octocontrabass wrote:
Brendan wrote:
Please understand that I'm trying to separate software interfaces and hardware interfaces
Then let's separate them. Call the software interfaces IDE and AHCI, the command sets ATA and ATAPI, and the hardware interfaces PATA and SATA.
No. ATA is just the successor to IDE, and both IDE and ATA covered the communication between a controller and a drive (and both include electronic signalling and commands). Calling IDE the software interface and ATA the command set is as wrong as saying that EFI is the core of the firmware and UEFI is a set of functions, or as wrong as saying that Windows 10 is a GUI (a user interface) that runs on top of Windows 8 (the underlying OS).
Cheers,
Brendan