Cylinder-head-sector - CHS To LBA Mapping

CHS To LBA Mapping

CHS tuples can be mapped onto LBA (Logical Block Addressing) addresses using the following formula:

Where is the LBA address, is the number of heads on the disk, is the number of sectors per track, and is the CHS address.

A Logical Sector Number formula in the ECMA-107 and ISO/IEC 9293:1994 (superseding ISO 9293:1987) standards for FAT file systems matches exactly the LBA formula given above: Logical Block Address and Logical Sector Number (LSN) are synonyms. The formula does not use the number of cylinders, but requires the number of heads and the number of sectors per track in the disk geometry, because the same CHS tuple addresses different logical sector numbers depending on the geometry. Examples:

For geometry 1020 16 63 of a disk with 1028160 sectors CHS 3 2 1 is LBA 3150=(3* 16+2)* 63
For geometry 1008 4 255 of a disk with 1028160 sectors CHS 3 2 1 is LBA 3570=(3* 4+2)*255
For geometry 64 255 63 of a disk with 1028160 sectors CHS 3 2 1 is LBA 48321=(3*255+2)* 63
For geometry 2142 15 32 of a disk with 1028160 sectors CHS 3 2 1 is LBA 1504=(3* 15+2)* 32

To help visualize the sequencing of sectors into a linear LBA model, note that;

The first LBA sector is sector # zero, the same sector in a CHS model is called sector # one.
All the sectors of each head/track get counted before incrementing to the next head/track.
All the heads/tracks of the same cylinder get counted before incrementing to the next cylinder.
The outside half of a whole Hard Drive would be the first half of the drive.

In 2002 the ATA-6 specification introduced an optional 48 bits logical block addressing and declared CHS addressing as obsolete, but still allowed to implement the ATA-5 translations. Unsurprisingly the CHS to LBA translation formula given above also matches the last ATA-5 CHS translation. In the ATA-5 specification CHS support was mandatory for up to 16 514 064 sectors and optional for larger disks. The ATA-5 limit corresponds to CHS 16383 16 63 or equivalent disk capacities (16514064=16383×16×63=1032×254×63), and requires 24=14+4+6 bits (16383+1=214).

Read more about this topic:  Cylinder-head-sector