Hard Drive Size Limitations and Barriers
The Basics (Cont.)
Now that we have reviewed some of the background that has led to the first drive size limitation, let's take a look at the individual drive size barriers and limitations beginning with the 528MB barrier. This is good place to start as we will review the two methods developed to overcome the barrier, Bit Shift Translation and LBA Assist Translation. As we mentioned at the beginning, new barriers and limitations are being uncovered as you read through these segments, and as quickly as those are overcome, new ones develop. We are making every effort to make these segments as all-inclusive as possible by providing updated information as soon as a new limitations or barriers are recognized and solutions are developed. At times, all-inclusive may not be possible. Let's begin at the beginning!
The 528 MB Barrier
At the time engineers were developing the first BIOS's, the general belief was that the capacity of a hard disk drive would ever exceed 500 MB. As a result, when translating addresses from the Int 13 API to the ATA registers they simply took the 10-bit cylinder address and placed it into the ATA Cylinder High and Cylinder Low registers, always filling the upper six bits of the Cylinder High register with zeros. They took the 6-bit sector number address and placed it into the ATA Sector Number register, always filling the upper two bits with zeros. Finally, they made the assumption that the head address would never have more than four significant bits, and with that took the lower four bits and placed them in the ATA Device/Head register.
So, in this instance, up to 1,024 cylinders (210) could be addressed, up to 16 heads (24) could be addressed, and up to 63 sectors (26-1) could be addressed. Therefore, up to 1,032,192 sectors (1,024 x 16 x 63) could be addressed, and with 512 bytes per sector, this yields a maximum theoretical capacity of about 528.4 MB. This is the root cause of the first drive size boundary, the 528 MB barrier.
In order to overcome this, engineers developed a different BIOS that implemented either of two new algorithms for converting the Int 13 API address to the ATA address.
During early drive development, many disk drives did not support LBA addressing, and the first and most prevalent algorithm was known as Bit Shift Translation. This involved translating the cylinder and head addresses so that the total number of sectors remained the same but the addresses would fit within the already allotted register space. Table 1 below defines the translations for you.
Bit Shift Translation
|ATA cylinder max address||ATA head max address||Int 13 cylinder max address||Int 13 head max address||Theoretical maximum capacity|
Let's review an example of Bit Shift Translation. If the disk drive reports 16,384 cylinders and 16 heads to the BIOS disk services, the BIOS disk services reports that it has 1,048 cylinders and 256 heads to the upper layers. Note that this will yield the same number of total sectors on the disk, however the addresses for cylinder and head will now fit within the original 10-bits and 8-bits of the Int 13 register fields. The BIOS disk services then translates the 16-bit and 4-bit values when passing them to the ATA registers. These translations yield the theoretical maximum capacities as shown in Table 1.
Important! If the disk drive cannot be configured with the number of cylinders and heads that will fit into one of the translation values as indicated in Table 1, bit shift translation will not work. In addition, since the bit shift translation only translates the cylinder and head values, should the number of sectors the drive reports be less than 63, the theoretical maximum drive capacity cannot be achieved.
Now let's take a look at the second translation method, LBA Assist Translation. This translation method can only be utilized "if the disk drive supports LBA addressing". There are no exceptions! The disk itself must support LBA, and this has nothing to do with your motherboard, drivers or anything else! With this type of translation, the BIOS disk services first determines the total number of sectors reported by the disk drive by multiplying the number of cylinders by the number of heads and then by the number of sectors reported by the drive. It then reports the configuration to the upper layers as shown in Table 2.
LBA Assist Translation
|Total number of sectors reported||Number of sectors reported||Number of heads reported||Number of cylinders reported||Theoretical maximum capacity|
|1 X 1,032,192||63||16||X/(63*16)||528.4 MB|
|1,032,192 X 2,064,384||63||32||X/(63*32)||1.057 GB|
|2,064,384 X 4,128,768||63||64||X/(63*64)||2.114 GB|
|4,128,768 X 8,257,536||63||128||X/(63*128)||4.228 GB|
|8,257,536 X 16,450,560||63||255||X/(63*255)||8.422 GB|
With this type of translation, the cylinder, head and sector address values will always fit into the Int 13 API registers. When the BIOS disk services gets the Int 13 address, it multiplies the three values thereby obtaining a valid LBA address for the disk drive. It then issues the resultant command to the drive using LBA addressing. With this translation of the cylinder, head and sector information, the entire capacity of the disk drive can be utilized.
This barrier or limitation is most often found in older legacy systems (pre-Pentium II) such as 286, 386, 486 and early Pentium I systems. Unless there is a very good reason for retaining these old units, our first recommendation would be to replace the problem system. Here are the recommended solutions.
The 2.1 GB Barrier
The 2.1 GB barrier is actually two barriers in one, a hardware barrier as well as a software barrier. Let's take a look at these two barriers and the associated problems they create.
The Hardware Barrier
BIOS developers and engineers, in order to solve the 528 MB problem we mentioned earlier, employed different methods to accomplish resolution. One such solution was to take the top 2 bits from the Int 13h head register and use them for bits 11 and 12 of the cylinder count. By doing this, the maximum head value that can be stored in the remaining 6 bits of the head register is 63 (64 heads total). This, however, creates yet another problem as you are about to see.
Keep in mind, none of the predominant operating systems is use today use this method of translation!
The presumption is that all bits of the head register will define the logical head count. Therefore, in order to properly translate a drive with 4,096 physical cylinders you must divide the cylinder count by four (1,024 logical cylinders) and multiply the head count by four (128 logical heads). But, since some of the early BIOS's used the top two bits of the head register as part of the cylinder count, there is no way in which to define 128 heads. A BIOS that handles drives in this fashion may hang during the system POST process, as the BIOS attempts the "Identify Drive" command and tries to set the CHS values.
The Software Barrier
The software barrier is one directly related to DOS or MS-DOS® partitioning issues which are derived from the File Allocation Table (FAT) that DOS uses to keep track of hard disk space. The FAT is only capable of working with 32,768 bytes per cluster and no more than 65,536 clusters. If you multiply the two numbers together you get the maximum partition size that DOS can use of 2,147,483,648 bytes or 2,048 MB (2,147,483,648 / 1,0242). Hence, the 2,048 MB maximum partition size is the 2.1GB software barrier, and DOS, MS-DOS® and FAT are the culprits.
This barrier or limitation is most often found in older legacy systems (pre-Pentium® II) such as 286, 386, 486 and early Pentium® I systems. Unless there is a very good reason for retaining these old units, our first recommendation would be to replace the problem system. Here are the recommended solutions.
As you review the remaining groups of barriers that have arisen as drive capacities increase, please keep the original barriers in mind. You will find this original historical information useful when trying to understand the overall scope of these problems.
The 4.2 GB Barrier
Unlike the 528MB barrier, which is both hardware and software related, the 4.2GB barrier is a limitation imposed by the underlying operating system. Some operating systems store the number of heads reported as an 8-bit value. Therefore, if the BIOS reports 256 heads, then these systems will only be saving the lower eight bits, which will then result in a value of zero and a disk drive that cannot be configured. Referring to Table 1, this occurs any time the device reports 16 heads and greater than 8,192 cylinders to the Bit Shift translation.
When Bit Shift Translation is used with one these operating systems, the maximum capacity that can be configured is 4.2 GB.
LBA Assist Translation never reports more than 255 heads so the problem does not exist in situations where LBA Assist Translation is in use.
Operating systems affected by this issue are DOS, MS-DOS®, Windows 3x, Windows 95® (version 95A). There are some related issues with Windows NT® 3x and Windows NT® 4x when deployed on drives using the FAT file system. When deployed on NTFS volumes, the problem usually disappears.
This barrier or limitation is most often found in older legacy systems such as early Pentium® I and II systems. Unless there is a very good reason for retaining these old units, our first recommendation would be to replace the problem system. Here are the recommended solutions.
The 8.4 GB Barrier
One of the more recent barriers or limitations to surface is the 8.4GB Barrier. As demand for more usable drive space grew, and as drive development progressed, hard drive manufacturers and system builders faced yet another hurdle. This barrier arose just a short time after the development of Bit Translation and LBA Translation methods, and in spite beliefs that such barriers were finally over.
The LBA translation method discussed above uses ID words 1,3 and 6 of the Identify Drive command, for which the maximum values are 16,383 cylinders, 16 heads and 63 sectors for a total capacity of 8.456 GB. In order to go beyond this boundary, new Extended Int 13 functions had to be defined that no longer pass the disk drive addressing via the host registers. Instead, the address of a Device Address Packet in the hosts memory is passed. The BIOS disk service then reads this packet to determine the actual disk address. The address provided in the Device Address Packet is a 64-bit LBA address. If the disk drive supports LBA addressing, the lower 28 bits of this address may be passed directly to the ATA registers. If the device does not support LBA addressing, the host converts the LBA address to a CHS address and places that in the ATA registers.
Some of you who are system builders, or even those of you who build your own personal systems, may recall when these new Extended Int 13 functions first appeared. This new development enabled computer component manufacturers to again breach the drive size barriers they thought they had cured just a short time before. More important though is the fact that the redevelopment of the Extended Int 13 function would move the barrier substantially, giving drive manufacturers and BIOS developers some breathing room for the immediate future. This change in the Extended Int13 function creates a theoretical 136.9 GB capacity addressable via CHS, or 137.4 GB addressable via LBA, which can be utilized over the ATA bus.
In these first two segments we touched upon the basic drive barriers and limitations and where all of the problems began, however, the barriers and limitations we have mentioned thus far are just the tip of the iceberg. Our in-depth discussion covers most, if not all, of the known barriers and limitations through April of 2002.
Now that you have had a look at the basic barriers and limitations, you may want to take a moment and review some of the symptoms of these barriers as well as potential solutions that you might use to resolve the problem, even if only temporarily. Possible Symptoms and Solutions for Basic Barriers. If you would rather skip the next segment and move on to an in-depth review, just follow the link below.
For an in-depth look at these drive barriers and limitations see our segment, Hard Drive Size Barriers and Limitations - In Depth.
Notice: Windows® 95, Windows® 98, Windows® NT, Windows® 2000, Windows® XP and
Microsoft® Office are registered trademarks or trademarks of the Microsoft Corporation.
All other trademarks are the property of their respective owners.
Copyright ©1995-2003 DEW Associates Corporation. All rights reserved.