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
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
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ż
Media użyte na tej stronie
Autor: Tohaomg, Licencja: CC BY-SA 4.0
Example of different Run-length limited encodings. Number 10110010 in different encodings.