Run Length Limited
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]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