IDE is the most used bus for device connection. IDE is somewhat of a descendent from SCSI, it was designed
to be a more economical replacement for the low end. IDE controllers are able to support only 2 devices at a time, a
master and a slave. The master device is allowed priority over the bus, and is usually
located at the end of the IDE cable. Devices are detected as either master or slave device by the IDE
controller with help of the jumpers on the devices themselves.
IDE does not allow for multi-threading of commands, or concurrent actions. This means that
while one device is completing a request, the other devices are not able to use the bus for transferring, or
even prepare itself for the next request. For this reason, it is a good idea to separate devices by
themselves on separate controllers. Most motherboards have 2 IDE controllers, a primary and
a secondary. If only a hard drive and a CDROM are being used, they should both be masters
of their own controller to improve performance.
IDE devices are only able to operate at the same speed as the slowest device. Each IDE device is
made with its own separate controller circuitry.
| Transfer Rate | Format | ATA | PIO Mode | DMA Mode |
| 2.1MB/s | IDE | ATA | | single word 0 |
| 3.3MB/s | IDE | ATA | 0 | |
| 4.2MB/s | IDE | ATA | | single word 1, multiword 0 |
| 5.2MB/s | IDE | ATA | 1 | |
| 8.3MB/s | IDE | ATA | 2 | single word 2 |
| 11.1MB/s | EIDE | ATA-2 | 3 | |
| 13.3MB/s | EIDE | ATA-2 | | multiword 1 |
| 16.6MB/s | EIDE | ATA-2 | 4 | multiword 2 |
| 33.3MB/s | UDMA/33 | Ultra-ATA | | multiword 3 |
| 66.6MB/s | UDMA/66 | Ultra-ATA | | multiword 4 |
| 100MB/s | UDMA/100 | Ultra-ATA | | multiword 5 |
IDE uses multiple transfer modes, such as PIO, DMA, and UltraDMA.
These transfer modes have to be supported by both the device and the IDE controller in order to work.
Advanced Technology Attachment is the official name of the protocol that IDE uses. ATA is
compatible with all other versions of ATA. The ATA controller accesses data in 16-bit words
of data at a time. ATA is capable of block mode writing, this is where multiple read or write
commands are grouped together so that they only use one interrupt. Newer drives are capable of
handling up to 16 or 32 sectors with a single interrupt. This improves performance because the
processor is "interrupted" less frequency so it can maintain attention to other tasks.
ATA-2 extends ATA, and is commonly called Extended IDE. EIDE supports faster
data rates, 32-bit transactions and DMA support. To maintain backward compatibility with
ATA, ATA-2's 32-bit transfers are actually two 16-bit transfers at a time. ATA-2 supports
DMA transfers, allowing it to directly access memory without CPU requests, improving overall
system performance.
| PIO Mode | Transfer Rate | Compatible With |
| Mode 0 | 3.3 MB/s | All |
| Mode 1 | 5.2 MB/s | All |
| Mode 2 | 8.3 MB/s | All |
| Mode 3 | 11.1 MB/s | ATA-2, ATA-3, UltraATA |
| Mode 4 | 16.6 MB/s | ATA-2, ATA-3, UltraATA |
Programmed I/O modes (PIO) were the first mode of transfer. Programmed I/O is called
"programmed" because all access is done according to software. Once a request is made by a PIO
device to make a data transfer, the CPU starts a set routine. It initiates the I/O
Controller to monitor the device for information. When the device is ready, the CPU reads the
data from the device and then outputs the information into system memory. This is very lengthy and
tedious to the CPU.
There are 5 different modes that were used. PIO modes use the CPU to moderate and allow access to
system memory. This is the opposite of DMA, where the hard drive is capable of memory access
without CPU assistance. PIO mode 3 and 4 are only capable of running with controllers that support
ATA-2 or greater, while the other three modes; PIO 0, 1 and 2; are compatible with any IDE
controller.
Having 2 devices that operate with different PIO modes are possible if both the IDE controller and
system BIOS support it. This is done through 'independent device timing'. If independent
device timing is not supported by the either the controller or system BIOS, both devices will have to
operate at the PIO mode of the slowest device.
| DMA Mode | Transfer Rate | Compatible With |
| Single Word 0 | 2.1 MB/s | All |
| Single Word 1 | 4.2 MB/s | All |
| Single Word 2 | 8.3 MB/s | All |
| Multiword 0 | 4.2 MB/s | All |
| Multiword 1 | 13.3 MB/s | ATA-2,ATA-3,UltraATA |
| Multiword 2 | 16.6 MB/s | ATA-2,ATA-3,UltraATA |
| Multiword 3 | 33.3 MB/s | UltraATA |
Direct Memory Access is a replacement to the PIO mode operations. DMA allows the IDE
controller to directly access system memory without the help of the CPU. This improves the overall
performance of the system. Older DMA was implemented by having devices use special channels that
were connected to a DMA controller. This DMA controller would act like a second CPU, in that it
would moderate the system memory. There are up to 8 DMA channels in computers, but a newer
versions of DMA was introduced that wouldn't rely on a DMA controller. This is know as Ultra
DMA. UDMA functions with the help of bus mastering to allow for direct memory access.
Bus mastering allows the device to take control over the bus so that it can quickly and efficiently access
memory without bothering any other device. Bus mastering has to be supported by the device, the
chipset, and the operating system in order to work.