Data Storage - Logical Block Addressing (LBA)

1 - About

Logical block addressing (LBA) is a common scheme used for specifying the location of blocks of data stored on computer storage devices, generally secondary storage systems such as hard disks.

LBA has replaced the CHS scheme in order to overcome certain of its limitations.

LBA provides a simple linear address space to the host. The host only need to provide the LBA address without knowing anything of the physical sector positions.

For a 32-bit address mode, the system can support up to 232 blocks of capacity which is about 2T bytes. In a 64-bit address mode, the system capacity support up to 264 blocks. Without 48-bit LBA support, drivers with only 32-bits of addressing will only be capable of addressing up to 137 GB on the hard drive.

The term LBA can mean either:

to which it refers.

Logical Block Addressing (LBA) is also known as the BIOS INT 13h extensions drive geometry translation.

3 - The LBA scheme

LBA is a particularly simple linear addressing scheme.

Blocks are located by an index, with the first block being LBA=0, the second LBA=1, and so on.

The LBA scheme replaces earlier schemes which exposed the physical details of the storage device to the software of the operating system.

Chief among these was the cylinder-head-sector (CHS) scheme, where blocks were addressed by means of a tuple which defined the cylinder, head, and sector at which they appeared on the hard disk.

CHS didn't map well to devices other than hard disks (such as tapes and networked storage), and was generally not used for them.

SCSI introduced LBA as an abstraction. While the drive controller still addresses data blocks by their CHS address, this information is generally not used by the SCSI device driver, the OS, filesystem code, or any applications (such as databases) that access the “raw” disk. System calls requiring block-level I/O pass LBA definitions to the storage device driver; for simple cases (where one volume maps to one physical drive), this LBA is then passed directly to the drive controller.

4 - Conversion between CHS to LBA

CHS addresses can be converted to LBA addresses using the following formula:

LBA = (( C x HPC ) + H ) x SPT + S - 1


  • C, H and S are the cylinder number, the head number, and the sector number
  • LBA is the logical block address
  • HPC is the number of heads per cylinder
  • SPT is the number of sectors per track

5 - Documentation / Reference

data_storage/lba.txt · Last modified: 2018/02/06 12:44 by gerardnico