An Immediate Solution to Breaking the 528 MB DOS Barrier
- The PC architecture running the DOS operating
system imposes a 528 MB barrier on hard disk drives. Because of
multimedia, other graphics- intensive applications, and large databases, this barrier has become a major obstacle
to storage needs.
- Three solutions to the barrier have emerged: the "hard-wired" approach, which is simple to implement but
imposes capacity limitations; Logical Block Addressing (LBA), which requires major software retrofitting; and
Extended Cylinder, Head, Sector (CH S) addressing, which represents a "middle-of-the-road" approach.
- Quantum drives support both LBA addressing and Extended CHS addressing. But, because Extended CHS is the
easier-to-implement solution and imposes fewer engineering risks, the company believes this is the best current
- Quantum has implemented Extended CHS addressing as a device driver that ships on a floppy disk and is loaded onto the hard disk during boot-up. The device driver is now being shipped with Quantum AT-IDE drives of 500 MB or above.
This Quantum Technical Information Paper (TIP) discusses the 528 MB barrier imposed on hard disk drives by PCs running DOS. The paper examines three solutions to the barrier, their advantages and disadvantages, and explains why Quantum chose a middle-road solution to the problem.
In the computer industry, some problems lurk for years before they become obstacles. Such has been the case for the 528 MB barrier that the PC architecture running the DOS operating system imposes on hard disk drives. For most of the PC's existence, the limitation was only theoretical. Now it has become a significant obstacle. The reason: multimedia, other graphics-intensive applications, and large databases have raised the ante for storage capacity - fueling growth in the market for increasingly higher capacities. As a result, the computer industry has had to scramble for a solution to the 528 MB barrier.
It is important to note that the 528 MB barrier is specifically a DOS problem because DOS relies on the BIOS to address the hard disk drive. This architecture was established in 1982 when DOS was first developed, and it still affects every DOS system, as well as the Microsoft Windows environment, which is layered on top of DOS. The 528 MB barrier is not encountered in newer 32-bit operating systems, such as Windows NT and OS/2, because they bypass the BIOS.
Three solutions to the 528 MB barrier have emerged in recent months:
- The "hard-wired" approach, which is extremely simple to implement but imposes limitations on total system capacity
- LBA addressing, an almost revolutionary approach that requires major software retrofitting
- Extended CHS addressing, which represents a middle road in supporting disk drives that exceed 528 MB. Quantum has implemented Extended CHS addressing in a simple-to-install device driver
Quantum believes that Extended CHS addressing represents a pragmatic approach that can be implemented immediately, without limiting system capacity. Extended CHS is a stable, straightforward method for supporting drive capacities of greater than 528 MB on today's PC architectures, running the most popular operating system and graphical user environments. Quantum is convinced it is the best solution for this year and will remain so until Microsoft's "Chicago," the forthcoming major upgrade of the Windows operating system, is widely implemented.
The 528 MB barrier occurs on the data path that links the DOS operating system with the hard disk. When applications make use of the hard disk for either retrieving or writing information, they take advantage of a DOS function call, which is sent to the computer's BIOS (basic input/output system), which relays it, in turn, to the hard disk. This arrangement shields developers from having to know the specifics of each system architecture and hard disk subsystem. Ultimately, a request from the application must be translated into a specific cylinder, head, and sector on the hard disk. DOS issues cylinder, head, and sector (CHS) numbers to the BIOS, which relays them to the disk. The problem is that, along the way, these three numbers encounter two different, largely incompatible interfaces. One interface, ATA, links the hard drive with the BIOS. The other, INT13, links the
BIOS and DOS.
The problem occurs in the number of bits allocated to identify each cylinder, head, and sector. The ATA interface accommodates a cylinder number of 16 bits in length. But the INT13 interface uses just a 10-bit cylinder number. Similarly, the ATA interface uses a head number of just 4 bits, while INT13 uses 8 bits. These incompatibilities mean that only the lowest number - the least common denominator - can be used. So, while either of the interfaces working alone could provide sufficient addressing capability to far exceed 528 MB, when the two are combined and the least common denominator becomes the limiting factor, a 528 MB capacity maximum is the result.
The 528 MB barrier arises from the address variable between the ATA and the INT13 interfaces.
As the diagram shows, a combination of the ATA and INT13 interfaces allows just 10 bits for the cylinder number, 4 bits for the head, and 6 to identify sectors. Hence, the highest addressable cylinder number is 210 , or 1024.
Cylinders : 210 = 1024
Heads : 24 = 16
Sectors : 26 -1 = 63 (by convention, sector numbering begins at #1, not #0)
And so, 1024 x 16 x 63 X 512 bytes/sector = 528.48 MB.
The simplest approach to breaking the 528 MB barrier is to treat a single 1 GB drive as if it were two physical drives, each with 528 MB of storage capacity. At the software level, the drive occupies the address space of the C and D drive. At the hardware level, a standard ATA cable that ordinarily supports two drives - drive 0 and drive 1 - now supports only one. This "hard-wired" approach has the advantage of requiring no device driver or other software modifications. But it also imposes two capacity limitations: you can't add an additional drive nor can the single drive exceed 1 GB.
On the other end of the spectrum is LBA addressing. With this method, the standard addressing convention described above is completely replaced. The same registers are used to pass cylinder, head, and sector information, but the information itself is completely redefined as a logical block address, such as an address
found in SCSI.
This revolutionary approach is its own disadvantage. LBA requires changes to the operating system, the BIOS, and the disk drive. It is essentially an attempt to rewrite history and, while the resulting solution is clean, the amount of retrofitting required is prohibitively expensive.
LBA addressing is arguably the best long-term solution - when the operating system itself fully supports it. For example, when Chicago becomes available, it will implement LBA addressing at all levels of the software, thereby improving system performance. But under DOS, the advantages of LBA addressing are latent, representing a complex and impractical solution to the current problem.
By contrast to LBA addressing, Extended CHS addressing employs a simple address-conversion technique. Two unused bits are "borrowed" from the head number used in the INT13 interface and "loaned" to the cylinder number. So, instead of the operating system issuing a 10-bit cylinder number as it usually does, it can now send down a 12-bit cylinder number, making up for the deficit with excess bits from the head number. A similar translation is accomplished in the other direction, giving two extra bits to the head number.
Extended CHS addressing offers significant advantages because it maintains the existing INT13 interface between the operating system and the BIOS and the ATA interface between the BIOS and the drive. Unlike LBA addressing, it requires no modification of the operating system or disk drive, and only a minor substitution of the BIOS code. Unlike the hard-wired approach, it solves the problem for not only a single GB, but a theoretical 8 GB of capacity, while allowing two physical hard drives to be install ed.
Quantum has implemented Extended CHS addressing in a device driver that ships on a floppy disk and is loaded onto the hard disk. During boot-up, the device driver code replaces a small portion of the BIOS code located on the system's EPROM. When the operating system makes an INT13 call, the device driver intercepts it and performs the address conversion between the CHS geometry supported by the system and the CHS geometry supported by the drive.
Quantum's "Recipe" for Address Conversion
- Pass the sector number through unmodified
- Create a combined drive/cylinder head number:
- "AND" the combined cylinder/head with 0x000Fh to yield the drive head
- Shift the combined cylinder/head 4 bits right to yield the drive cylinder
Quantum's support for Extended CHS addressing represents a solution that can be implemented today and will not become obsolete even after Windows 3.1 is replaced. While Microsoft intends to support LBA addressing in Chicago, it has also promised to support Extended CHS.
For its part, Quantum also supports both Extended CHS and LBA addressing methods. But the company believes that CHS is currently the easier-to-implement solution that imposes fewer engineering risks. Quantum's device driver is now being shipped with Qua ntum AT-IDE drives of 500 MB or above.
Extended CHS addressing is the best current method for solving the 528 MB DOS barrier because it is easy to implement and less risky than alternative solutions. Quantum's device driver, which implements CHS addressing, gives DOS and Windows users sufficient hard drive capacity to run today's storage-hungry applications. The
solution will not become obsolete with Microsoft's future operating system.