When I started in computing, I had to build a tape drive to provide around 120 KB of storage. I later upgraded machines to create a pair of 520-KB 5.25″ floppies, an improvement by a factor of four. My next computer, my first IBM-compatible PC, had a 40-MB drive, eighty times my original setup. Today, most new computers are equipped with 20- to 80-GB drives, and the clamor for more isn’t slowing. An old adage of the storage world is that a technical drive limitation appears every six years, despite the near exponential growth of drive media. Old adages tend to be true, but this one may have just seen the end of its days.
The number of cylinders, heads, and sectors defines a hard drive’s geometry, which indicates just how big the drive can be. The heads are indicative of the number of surfaces in use, cylinders the number of rings on a platter, and sectors the number of data blocks per cylinder. You can calculate the capacity of a drive by multiplying these values by 512, the number of bytes per sector. Problems with hard drive capacities are caused by the BIOS being unable to deal with a larger set of geometries, as we’ll see below.
528 MB: The first hurdle
The early limit of the ATA architecture was 528 MB. Early drives and BIOS were limited to reading a small number of cylinders, heads, and sectors due to a mismatch between the way BIOS thinks drives work and the way ATA drives actually work. Take a look at Table A below to see how the first standard eventually developed.
LBA to the rescue
Not satisfied with the initial limitation, the industry came up with a solution. Oddly enough, it wasn’t to fix the BIOS to match the ATA specification. Instead, it decided to create a translation system. Known as the Logical Block Addressing (LBA) system, it allowed the BIOS to deal with much larger drives by using a fixed 63 sectors per track, and by going from 16 to 256 drive heads with a variable number of cylinders. The drive has to support LBA to complete the process, but even with this solution, it limits the drive capacity at 8.4 GB.
Extended Int13h was introduced as an alternative to LBA. This solution increased the number of cylinders that the BIOS would recognize. Named for the data field used to store the number of cylinders, the Int13h extensions were quite popular, as they simplified LBA. The initial Int13h extension only went to 16,383, enabling 8.4 GB of drive space.
However, Extended Int13h didn’t eliminate all problems. For starters, some BIOS were unable to deal with disks larger than 2.1 GB, and later, some were unable to read a disk larger than 3.27 GB. Both problems were due to the fact that BIOS manufacturers didn’t properly implement the extensions. A further snag occurred with the 16-bit DOS file system (FAT16), as it was unable to deal with a disk partition larger than 2.1 GB. This pushed the adoption of FAT32, and eventually the use of NTFS. These were not entirely bad developments, but they did represent stumbles along the storage path. Soon enough, the 8.4-GB limit became a problem and a second extension was applied to Int13h, pushing things all the way to the ATA limit of 136.9 GB.
Beyond 137 GB…way, way, way beyond
What does the future hold? Well, Maxtor has pushed a new extension to the ATA standard that enables 48-bit addressing, pushing disk sizes out to 144 PB. PB, if you have never seen it, stands for Petabytes, the size beyond Terabytes. I’m not entirely sure what the word is for 1,000 trillion, but that’s what Peta means. And that’s a lot of bytes!
While this is an official ATA extension, it’s not all cut and dried. Other extensions are possible, especially since only Maxtor, Via, and HP/Compaq are currently behind the so-called “Big Drive” technology. Even if this extension is adopted, we’ve seen how well other ATA extensions have been implemented in the past, and currently Maxtor offers only a 160-GB drive using the Big Drive technology. Nonetheless, you can see from my examples that disk technology is still known as the primary limiting factor to drive capacity.