Logical block addressing

Logical block addressing, afkorting LBA, is een techniek om het adresseren van grote harde schijven mogelijk te maken.

De gegevens op een schijf worden verdeeld in sectoren. Een sector is op de PC haast altijd 512 bytes lang. Een aantal sectoren vormen een track, tracks op verschillende schijven boven elkaar vormen een cilinder.

Vanouds kon een floppy diskette worden gelezen door het nummer van de cilinder, de kop en de sector op te geven. De sectornummering begon bij 1, de nummering van cilinder en kop begon bij 0. Elk van deze drie waarden werd in een byte (8 bits) opgegeven. Om opeenvolgende sectoren te kunnen lezen was het nodig te weten hoe de schijf was ingedeeld. Waren er 18 sectoren en 2 koppen, dan wist men dat cilinder 3, kop 1, sector 18 gevolgd werd door cilinder 4, kop 0, sector 1.

Voor een harde schijf gold hetzelfde principe. Harde schijven werden echter steeds groter en al gauw waren er meer dan 256 cilinders. Dat werd aanvankelijk opgelost door ongebruikte bits in het sectornummer en kopnummer te gebruiken. De adressering werd hierdoor vrij gecompliceerd, en bovendien was de grootte van een schijf beperkt tot ruim 16 miljoen sectoren.

Moderne schijven gebruiken LBA. De programmeur heeft nu niets meer te maken met het aantal cilinders, koppen en sectoren. Het is zelfs mogelijk dat er op de rand van de schijf meer sectoren zijn dan in het midden. Om de schijf te kunnen lezen, wordt er een volgnummer van 64 bits opgegeven. De schijf berekent zelf daaruit het cilinder-, kop- en sectornummer.