Learn about the technologies behind the Internet with The TCP/IP Guide!|
NOTE: Using robot software to mass-download the site degrades the server and is prohibited. See here for more.
Find The PC Guide helpful? Please consider a donation to The PC Guide Tip Jar. Visa/MC/Paypal accepted.
|View over 750 of my fine art photos any time for free at DesktopScenes.com!|
The 1,024 Cylinder (504 MiB / 528 MB) Barrier
The most (in)famous hard disk barrier of all time was probably the 504 MiB limitation for standard IDE/ATA hard disks, which started showing up in systems starting in around 1994. Today hard disks are so much larger and this barrier is so many years in the past, that many PC users aren't aware of how much trouble this first big size barrier caused. At the time though, this barrier was a very new experience for PC users and technicians alike.
Due to this barrier, a hard disk with a size over 504 MiB will normally appear only as having 504 MiB under some circumstances. This problem is a result of combining the geometry-specification limitations of the IDE/ATA standard and the BIOS Int 13h standard. This barrier is alternatively referred to as the 504 MB or the 528 MB barrier, depending on whether you are looking at binary or decimal megabytes.
OK, now I'll try explaining it in English. :^) Every hard disk is presented to the BIOS through its geometry, which tells the BIOS how many cylinders, heads and sectors the disk uses. This is the way that the hard disk is addressed, when a sector needs to be read or written. The geometry that a modern hard disk uses for the BIOS is normally its logical geometry, and not the physical geometry actually inside the hard disk assembly.
Various software structures reserve a certain amount of space for specifying each of the three parameters that make up the hard disk geometry. The amount of space reserved is dictated by standards that control how IDE/ATA hard disks are supposed to work, and also how the BIOS sees hard disks through its Int13h software interface.
The problem is that due to (very) poor planning and coordination, the standards are not the same; they each reserve different numbers of bits for the geometry. In order to use an IDE/ATA hard disk with the standard BIOS disk routines then, the limitations of both standards must be observed, which means that only the smaller of each geometry number can be used. Here is how the two standards allocate bits for the geometry:
Since each geometry figure is a binary number with a number of bits indicated above, this means that the maximum number supported for any parameter is 2^N, where N is the number in the table above. So for example, under IDE/ATA, 2^16 or 65,536 cylinders are supported. We can then multiply all the figures together to get a total number of sectors supported, and then multiply that by 512 bytes (per sector) to get the maximum supported capacity:
Note: The BIOS Int 13h limit
for sectors is 63, and not 64, because by convention sectors are numbered starting at 1
and not 0.
As you can see, the 504 MiB figure is just 1,024 * 16 * 63 * 512, which equals 528,482,304. The problem is the combination of the limitations of the two standards. Due to the 16-head limitation of IDE/ATA, no IDE hard disk is ever specified with more than 16 logical heads; they always have a large number of cylinders instead. The problem is that when you put the disk in a machine with a standard, non-translating BIOS, it can't see more than 1,024 of the cylinders. There are several different ways that the system may react to a drive too large for it to handle.
The normal solution to the 504 MiB problem is to use a system that supports BIOS translation. This gets around the problem by using what is little more than a software trick, but it does work. Software drive overlays will also avoid the problem, but at a cost. See this section for a full discussion on dealing with this disk size barrier.