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

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

Kodowanie RLL (2,7)
IBM, Seagate
Bity wejścioweBity wyjściowe
000000100
100100
010100100
001000100100
111000
011001000
001100001000

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

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:

KodowanieBity wejścioweBity wyjściowe
RLL(0,1)101100101110111110101110
RLL(0,2)1011 001001011 10010
RLL(1,3)101100100100010100100100
RLL(1,7)10 11 00 10001 010 101 001
RLL(2,7)10 11 001001001000 00100100
RLL example 10110010.svg


Zobacz też

Media użyte na tej stronie

RLL example 10110010.svg
Autor: Tohaomg, Licencja: CC BY-SA 4.0
Example of different Run-length limited encodings. Number 10110010 in different encodings.