Run Length Limited

Z Wikipedii, wolnej encyklopedii

RLL (ang. Run Length Limited) – grupa metod kodowania danych zapisywanych na nośnikach magnetycznych, takich jak dyski twarde, dyskietki i dyski optyczne, stosowana masowo od początku lat 80. do wczesnych lat 90.

Historia[edytuj | edytuj kod]

Kodowanie RLL zostało komercyjnie wprowadzone przez IBM w 1979 roku do zapisu danych na dyskach twardych ich komputerów typu mainframe. Pierwsze napędy dyskowe używały bardzo prostego kodowania RLL (0,1) zwanego kodowaniem FM, które w połowie lat 80. zostało wyparte przez kodowanie RLL (1,3) nazywane metodą MFM, a które nadal jest wykorzystywane w przypadku dysków optycznych takich jak CD, MD, DVD i Blu-Ray. Na początku lat 90. standardem kodowania danych stosowanym w dyskach twardych były metody RLL (1,7) i RLL (2,7) pozwalające na upakowanie do 50% więcej danych na dysku (przy takiej samej częstotliwości maksymalnej sygnału) niż metoda MFM.

Idea[edytuj | edytuj kod]

Kodowanie RLL (2,7)
IBM, Seagate
Bity wejściowe Bity wyjściowe
000 000100
10 0100
010 100100
0010 00100100
11 1000
011 001000
0011 00001000

Metoda RLL polega na tym, że grupy bitów są zamieniane na ciągi innych bitów tak, by uzyskać jednoznaczne kodowanie przy ograniczonym minimalnym i maksymalnym czasie bez zmiany sygnału. Zgodnie z tą ideą można uzyskać wiele różnych wersji kodowania. Wersje te oznaczane są cyfrowo np. technika RLL (2,7) oznacza, że najkrótszy czas bez zmiany sygnału wynosi 2 takty, a najdłuższy 7 taktów. Pierwsza liczba decyduje o maksymalnej częstotliwości jaka wystąpi na głowicy zapisującej (tu częstotliwość taktowania / (2+1)), natomiast druga o minimalnej częstotliwości (maksymalnym czasie między zmianami). Zwiększenie pierwszej liczby umożliwia zwiększenie częstotliwości taktowania przy niezmienionej częstotliwości na głowicy zapisującej, ale wymaga to zwiększenia drugiej liczby. Zwiększenie drugiej liczby oznacza zwiększenie maksymalnych czasów, jednak nie można ich zbytnio zwiększać, bo niedokładności w obrotach talerza dysku mogą spowodować nieprawidłowe rozpoznawanie długości sygnału.

Przykłady[edytuj | edytuj kod]

W bitach wyjściowych zero oznacza „nie zmieniać kierunku prądu”, jedynka – „zmienić kierunek prądu”.

Przykładowy ciąg bitów 010011 zostanie rozbity na grupy i zakodowany:

010 – 100100
011 – 001000

Powyższy ciąg sygnałów 100100001000 odpowiada przebiegowi prądu głowicy –––_____––––, więc do zakodowania 6 bitów wystarczyły 3 zmiany kierunku prądu, najkrótszy czas między zmianami jest równy 3 takty, a najdłuższy 5. Dla porównania, w metodzie FM maksymalna liczba zmian jest równa 2 na bit, w MFM 1 na bit, a w RLL (2,7) – 1 na 2 zapisywane bity.

Przykładowe przebiegi sygnałów dla sekwencji bitów 10110010 dla najczęściej spotykanych rodzajów kodowania RLL:

Kodowanie Bity wejściowe Bity wyjściowe
RLL(0,1) 10110010 1110111110101110
RLL(0,2) 1011 0010 01011 10010
RLL(1,3) 10110010 0100010100100100
RLL(1,7) 10 11 00 10 001 010 101 001
RLL(2,7) 10 11 0010 01001000 00100100


Zobacz też[edytuj | edytuj kod]