Logical block addressing

sistema di accesso ai dati usato nei dischi fissi

Il Logical block addressing, abbreviato LBA, è un sistema di accesso ai dati usato nei dischi fissi, introdotto per superare il limite dei 504 MiB del precedente sistema CHS (cylinder-head-sector).

Brevemente, un disco rigido è costituito da piatti paralleli scritti su ambedue le superfici: ad ogni superficie corrisponde una testina. Ogni piatto è inoltre suddiviso in tracce concentriche, raggruppate per distanza dall'asse in cilindri, e divise in settori circolari. È chiaro quindi che per identificare un settore, l'unità fisica di memorizzazione sul disco, sono necessarie le tre coordinate cilindro, testina e settore.

Il metodo LBA, introdotto con lo standard ATA-2, esegue la numerazione dei settori partendo da 0 fino ad un massimo di , assegnando il valore 0 al primo settore della prima traccia del primo cilindro, procedendo poi lungo tutti i settori della stessa traccia, poi lungo tutte le tracce dello stesso cilindro per poi spostarsi al cilindro adiacente, continuando così fino all'ultimo settore dell'ultima traccia dell'ultimo cilindro. La conversione da indirizzo logico a indirizzo fisco, ovvero quello definito dalle tre coordinate, viene eseguita dal controllore.

Storia

Il primo PC XT IBM montava un disco Seagate da 10 MiB con un controllore Xebec (inizialmente i controllori erano installati su una scheda a parte). Il disco aveva 4 testine, 360 cilindri e 17 settori per traccia. Per scrivere e leggere sul disco il sistema operativo chiamava il BIOS, il quale si occupava a sua volta di scrivere sui registri del controllore per avviare i trasferimenti.[1]

Col tempo la tecnologia è migliorata, passando alle unità IDE, ma le procedure di chiamate al BIOS non vennero modificate per mantenere una compatibilità con i dispositivi precedenti (questa è una scelta molto frequente nell'informatica, si pensi alla retrocompatibilità dei processori Intel con tutti i modelli della famiglia 80x86). Tale metodo però era intrinsecamente limitato dato che prevedeva l'uso di 4 bit per specificare la testina, 6 per il settore e 10 per il cilindro. Con queste specifiche si potevano indirizzare massimo 16 testine, 63 settori e 1024 cilindri: da notare che i settori non erano   perché, probabilmente per un errore del programmatore, mentre la numerazione delle testine e dei cilindri cominciava da 0, quella dei settori partiva da 1, riducendone di fatto la rappresentazione di un'unità.

Con tale specifica, mantenuta fino allo standard ATA, si potevano indicizzare massimo 1.032.192 settori che, per una dimensione tipica di 512 byte ciascuno, portavano a massimo 504 Mib. In seguito furono introdotte realizzazioni più avanzate di BIOS (note a volte come Enhanced BIOS) che virtualizzavano la mappatura CHS, spesso generando più testine "virtuali" di quante ne possedesse realmente il disco, e che espandevano questo limite a 255 testine. Questo significava che un volume MS-DOS poteva arrivare a 7.8 GiB.

Con l'introduzione del secondo standard ATA fu introdotto, tra le altre innovazioni, lo schema LBA che di fatto a ha aumentato di gran lunga la capacità di indirizzamento dei settori sui dischi rigidi a 128 GiB, poi salito a 128 Pib con l'aumento a 48 bit per gli indirizzi nella standard ATA-6.

Note

  1. ^ Architettura dei calcolatori: Un approccio strutturato - 4a Edizione - A. Tanenbaum - Pearson Education [1]

Voci correlate

Altri progetti

  Portale Informatica: accedi alle voci di Wikipedia che trattano di Informatica