PC Hardware

IDE and EIDE Drives

IDE (Integrated Drive Electronics) drives have been in use since the late 1980s. The purpose of the IDE was to integrate the drive controller with the drive itself rather than use a separate controller card. The ATA (Advanced Technology Attachment-the official name for IDE drives) standard is based on the original IBM AT standard for hard disk drives. ATA drives use the same interface command set as the original ST-506 drives and are handled by the system BIOS built in to the original IBM AT. ATA was, and is, a good command set, but its limitations led to its decline as a viable hard drive interface. These limitations set the stage for the development of the Enhanced Integrated Drive Electronics (EIDE). The EIDE drive system was developed with two essential objectives: increasing the size of available disk drives and increasing the speed of data transfer between the host and the disk drive.

The EIDE specification:

  • Increased the numbers of drives available to the average computer.
  • Increased the data transfer rate.
  • Allowed for non-hard disk drives such as CD-ROM, ZIP, and tape drives to be configured to EIDE standards and used from an EIDE controller.
  • Broke the 528-MB storage capacity limit of the ATA standard.
NOTE
The above remarks apply only to IDE-style drives. SCSI drives and how they deal with the size and number of drive issues are covered later in this tutorial.

Let's examine these improvements in detail.

Number of Drives

The ATA standard allows two hard disk drives to connect to one common controller. IBM set aside (reserved) I/O address 1FOh and IRQ 14 for the use of hard disk drive controllers. IBM also reserved I/O address 170h and IRQ 15 for a second controller (two more hard drives). Early computers had no BIOS support for this second controller. The BIOS installed on newer computers takes full advantage of both controllers, allowing up to four EIDE devices. (You'll find a fuller discussion of addresses and IRQs in Tutorial 10, "Expansion Buses.")

Most SCSI controllers offer the ability to use IRQ 13 for hard disk drive support without the use of special drivers. To do so, the SCSI card must be set with boot BIOS enabled, and the hard disk drive must be properly formatted for the operating system in question.

Data Transfer Rate

ATA drives transfer data to and from the hard disk drive and memory using standardized protocols called PIO (Programmed Input/Output) modes. With PIO, data is exchanged between the main memory and a peripheral device, not by means of DMA (direct memory access), but with in-and-out instructions through the CPU. The Small Forms Factor (SFF) standards committee defined these data transfer rates as PIO mode 0, PIO mode 1, and PIO mode 2. ATA drives can use PIO mode 0, 1, or 2. With each improved PIO standard, the efficiency and speed of data transfer increased. The original ATA drives could transfer data from the hard disk drive to RAM at a maximum rate of roughly 3.3 MB per second. Speed increases to 5.2 MB per second, and then 8.3 MB per second and beyond, followed shortly thereafter.

Non-Hard Disk Drives

The original controllers allowed only for hard disk drives-and just two of them. The ATAPI (AT Attachment Packet Interface) was developed by an independent industry group to allow non-hard disk drives (CD-ROM drives and high-speed streaming tape units) access to the ATA interface.

The 528-MB Limit

Early BIOSs had a limitation on the maximum CHS (cylinder, head, and sector) values allowed, and the ATA standard added to that. As a result, for several years the maximum hard disk drive size was restricted to 528 MB. The following table shows how CHS limits are determined.

BIOS Limit IDE (ATA) Limit Maximum Usable Limit
Cylinders 1024 65,536 1024
Heads 255 16 16
Sector/track 63 255 63
Maximum capacity 8.4 billion bytes 136.9 billion bytes 528 million bytes
IMPORTANT
There are two ways to look at 528,000,000 bytes-the marketers' way (528 MB means 528 million bytes) or the literal way, which takes into account that there are 1,048,576 bytes per megabyte (1024 bytes x 1024 bytes). The second way, which is more accurate, yields a value of 528,000,000 divided by 1,048,576-a total of 504MB. Also be aware that an operating system will have to use part of the space for its housekeeping functions, as well as command and system files. The actual usable space for application and data files might be considerably smaller.