Adresowanie bloków logicznych

LBA lub adresowania bloków logicznych ( „zajęcie przez blok logiczny” w języku angielskim), jest historycznie sposób, aby rozwiązać te sektory o twardym . Ta metoda adresowania została następnie uogólniona na dużą liczbę nośników danych .

To adresowanie umożliwia wyznaczenie w unikalny sposób sektora dysku (najmniejszej możliwej do przesłania jednostki danych, w odczycie lub na piśmie, przez ten ostatni). Rozmiar sektora to najczęściej 512  bajtów , ale niektóre nośniki (w szczególności dyski optyczne lub optomagnetyczne w emulacji dysku twardego) używają innych wartości, takich jak 1024 bajtów lub 2048 bajtów.

Historia

BIOS starych komputerów osobistych pozwalają jedynie adres do CHS z dysków twardych . Do połowy 1994 roku największe sprzedane dyski twarde IDE miały pojemność ponad 2  GiB (chociaż Windows 95 obsługiwał tylko partycje FAT16 o wielkości 2  GiB lub mniej), podczas gdy większe dyski twarde SCSI oferowały pojemność rzędu 9  GiB . Adresowanie przez CHS stawało się zbyt restrykcyjne i musiało zostać zastąpione.

W tym czasie stosowano dwa fortele, aby umożliwić dostęp do maksymalnej pojemności dysków. Pierwszy z nich nosił nazwę ECHS (ang. Enhanced CHS w języku angielskim lub „Cylindre / Tête / Secteur better” w języku francuskim). Drugą sztuczką było całkowite ukrycie geometrii dysku przed programami, które go używają.

Adres CHS - chociaż ma fizyczną rzeczywistość dla dysku twardego  - w rzeczywistości prawie nigdy nie jest użyteczny dla BIOS-u, systemu operacyjnego , ani nawet dla programów, które on uruchamia. Ponadto model adresu CHS jest odpowiedni tylko dla dysków twardych i dyskietek (nie dotyczy na przykład taśm magnetycznych lub kluczy USB ).

Standard SCSI jako pierwszy wprowadził użycie adresów LBA.

Adres LBA

Adres LBA sektora danych to po prostu niepowtarzalna liczba pochodząca z zakresu [ 0 ... N [, gdzie N jest całkowitą liczbą sektorów na nośniku]. Ponieważ 0 to numer pierwszego sektora danych, to N - 1 jest numerem ostatniego (a nie N ).

Adres ten był jedyny dostępny w urządzeniach SCSI ( dyski twarde , urządzenia, taśmy magnetyczne , napęd CD-ROM ,  itp .). W ten sposób zamaskowana jest fizyczna geometria (liczba płyt, liczba cylindrów  itp. ). BIOS zintegrowany z kontrolerów SCSI zatem obejmować algorytm konwersji pomiędzy adresami CHS stosowanych MS-DOS i Windows, płyt adresy i LBA (patrz konwersji LBA / CHS ).

Dwie wersje LBA istniały na dysku twardym IDE , pierwsza wersja wykorzystująca 28  bitów do kodowania adresu i zarządzania dyskami o pojemności 128  Gio to 137.438 953  GB, a druga później (w 2002 w standardzie ATA / ATAPI-6 ) wykorzystujący 48 bitów i pozwalający na zarządzanie dyskami o maksymalnej pojemności 128  Pio .

Istniało również kilka wersji adresu LBA dla SCSI, pierwsza (dostępna od momentu powstania SASI  (in) w 1979 r. ) Wykorzystuje 21 bitów, druga (dostępna od 1987 r., Ale znormalizowana z SCSI -2 w 1994 r.) Wykorzystuje 32 bity, ostatnia (około 2000 ) używa 64 bitów i może zarządzać dyskami o pojemności do 8 388 608  Pio .

Konwersje LBA / CHS

W przypadku dysku z głowicami NT na cylinder i sektorami NS na ścieżkę (patrz Cylinder / głowica / sektor w celu uzyskania dokładnej definicji tych wielkości) konwersja adresu LBA A na CHS jest uzyskiwana w następujący sposób (w tych wzorach symbol % reprezentuje operację modulo i ÷ dzielenie bez miejsc po przecinku lub reszty):

S = ( A % NS ) + 1 H = ( A - S + 1 ) / NS % NT C = ( A - S + 1 ) / NS ÷ NT

lub stosując tylko dzielenia bez miejsc po przecinku:

C = A ÷ NT ÷ NS H = ( A - ( C × NT × NS ) ) ÷ NS S = 1 + A - ( C × NT × NS ) - H × NS

ostatnia linia logicznie odpowiada odwrotnej konwersji adresu C / H / S na LBA:

A = ( C × NT × NS ) + ( H × NS ) + S - 1

Zobacz też

Powiązane artykuły

Linki zewnętrzne