Logical block addressing

Logical block addressing (LBA) is a hard disk sector addressing scheme used on all SCSI hard disks, and on IDE hard disks that conform to ATA specs. The addressing conversion is performed by the hard disk firmware.

History
Prior to LBA, combined limitations of the IBM BIOS and ATA restricted the useful capacity of IDE hard disks on early PC compatibles to 22 bits, or 1024 cylinders * 63 sectors per track * 16 heads * 512 bytes per sector = 528 million bytes = 504 megabytes. Newer BIOSes select LBA mode automatically, and work around the 1024-cylinder BIOS limit by representing a hard disk to the operating system as having e.g. half as many cylinders and twice as many heads. There was still a BIOS disk size limit of 1024 cylinders * 63 sectors per track * 256 heads * 512 bytes per sector = 8 gigabytes, but newer operating systems (including Windows 95/98, Windows NT and Linux) were not affected by it as they issued direct LBA-based calls, bypassing the BIOS hard disk services completely.

28-bit logical block addressing was used through ATA-5 (also known as Ultra ATA/66), which supported recognizable drive space up to 128 GB. This required hard drives larger than that to be partitioned down to increments of 128 GB or less. ATA-6 (also known as Ultra ATA/100) introduced, which increased the limit to 144 petabytes (PB).