The earlier IDE standard from
Western Digital introduced 22-bit LBA; in 1994, the
ATA-1 standard allowed for 28 bit addresses in both LBA and CHS modes. The CHS scheme used 16 bits for cylinder, 4 bits for head and 8 bits for sector, counting sectors from 1 to 255. This means the reported number of heads never exceeds 16 (0–15), the number of sectors can be 255 (1–255; though 63 is often the largest used) and the number of cylinders can be as large as 65,536 (0–65535), limiting disk size to 128 GiB (≈137.4 GB), assuming 512 byte sectors. These values can be accessed by issuing the ATA command "Identify Device" (ECh) to the drive. However, the
IBM BIOS implementation defined in the
INT 13h disk access routines used quite a different 24-bit scheme for CHS addressing, with 10 bits for cylinder, 8 bits for head, and 6 bits for sector, or 1024 cylinders, 256 heads, and 63 sectors. This INT 13h implementation had pre-dated the ATA standard, as it was introduced when the
IBM PC had only
floppy disk storage, and when hard disk drives were introduced on the
IBM PC/XT, INT 13h interface could not be practically redesigned due to
backward compatibility issues. Overlapping ATA CHS mapping with BIOS CHS mapping produced the lowest common denominator of 10:4:6 bits, or 1024 cylinders, 16 heads, and 63 sectors, which gave the practical limit of 1024×16×63 sectors and 528MB (504
MiB), assuming 512 byte sectors. In order for the BIOS to overcome this limit and successfully work with larger hard drives, a CHS translation scheme had to be implemented in the BIOS disk I/O routines which would convert between 24-bit CHS used by INT 13h and 28-bit CHS numbering used by ATA. The translation scheme was called
large or
bit shift translation. This method would remap 16:4:8 bit ATA cylinders and heads to 10:8:6 bit scheme used by INT 13h, generating much more "virtual" drive heads than the physical disk reported. This increased the practical limit to 1024×256×63 sectors, or 8.4GB (7.8
GiB). To further overcome this limit,
INT 13h Extensions were introduced with the
BIOS Enhanced Disk Drive Services, which removed practical limits on disk size for operating systems which are aware of this new interface, such as the
DOS 7.0 component in
Windows 95. This
enhanced BIOS subsystem supports LBA addressing with
LBA or
LBA-assisted method, which uses native 28-bit LBA for addressing ATA disks and performs CHS conversion as needed. The
normal or
none method reverts to the earlier 10:4:6 bit CHS mode which does not support addressing more than 528MB. Until the release of ATA-2 standard in 1996, there were a handful of large hard drives which did not support LBA addressing, so only
large or
normal methods could be used. However, using the
large method also introduced portability problems, as different BIOSes often used different and incompatible translation methods, and hard drives partitioned on a computer with a BIOS from a particular vendor often could not be read on a computer with a different make of BIOS. The solution was to use conversion software such as
OnTrack Disk Manager, Micro House EZ-Drive/EZ-BIOS, etc., which installed to the disk's
OS loader and replaced INT 13h routines at boot time with custom code. This software could also enable LBA and INT 13h Extensions support for older computers with non LBA-compliant BIOSes.
LBA-assisted translation When the BIOS is configured to use a disk in LBA-assisted translation mode, the BIOS accesses the hardware using LBA mode, but also presents a translated CHS geometry via the INT 13h interface. The number of cylinders, heads, and sectors in the translated geometry depends on the total size of the disk, as shown in the following table.
LBA48 The current 48-bit LBA scheme was introduced in 2002 with the
ATA-6 standard, raising the addressing limit to 2× 512 bytes, which is exactly 128
PiB or approximately 144
PB. Current PC-compatible computers support INT 13h Extensions, which use 64-bit structures for LBA addressing and should encompass any future extension of LBA addressing, though modern operating systems implement direct disk access and do not use the
BIOS subsystems, except at
boot load time. Disks partitioned with
MBR use 32-bit logical block addressing LBA to handle the total number of physical or logical sectors, that is, they can handle a total maximum of 4,294,967,296 sectors (2^32). This means that traditionally a maximum data limit of 2
tebibytes could be stored per hard disk, since these have a physical and logical sector size of 512 bytes. This limit can be exceeded up to 16 TiB with a physical and logical sector of 4096 bytes. ==CHS conversion==