Vés al contingut

RLL

De la Viquipèdia, l'enciclopèdia lliure
Gràfic que il·lustra la codificació del byte 01011000 (en binari) mitjançant codi limitat de longitud d'execució.
Exemple de diferents codificacions limitades de longitud d'execució. Número 10110010 en diferents codificacions.

La codificació de longitud limitada o RLL és una tècnica de codificació de línia que s'utilitza per enviar dades arbitràries a través d'un canal de comunicacions amb límits d'amplada de banda. Els codis RLL es defineixen per quatre paràmetres principals: m, n, d, k. Els dos primers, m / n, fan referència a la velocitat del codi, mentre que els dos restants especifiquen el nombre d mínim i k màxim de zeros entre uns consecutius. S'utilitza tant en sistemes de telecomunicacions com d'emmagatzematge que mouen un suport més enllà d'un capçal d'enregistrament fix.[1]

Concretament, RLL limita la longitud dels trams (execucions) de bits repetits durant els quals el senyal no canvia. Si els recorreguts són massa llargs, la recuperació del rellotge és difícil; si són massa curts, les freqüències altes podrien ser atenuades pel canal de comunicacions. En modular les dades, RLL redueix la incertesa temporal en la descodificació de les dades emmagatzemades, la qual cosa comportaria la possible inserció o eliminació errònia de bits en tornar a llegir les dades. Aquest mecanisme garanteix que els límits entre bits sempre es puguin trobar amb precisió (evitant el lliscament de bits), alhora que s'utilitza de manera eficient els mitjans per emmagatzemar de manera fiable la màxima quantitat de dades en un espai determinat.[2]

Les primeres unitats de disc utilitzaven esquemes de codificació molt senzills, com el codi RLL (0,1) FM, seguit del codi RLL (1,3) MFM, que es van utilitzar àmpliament en les unitats de disc dur fins a mitjans dels anys 80 i encara s'utilitzen en digital. discs òptics com ara CD, DVD, MD, Hi-MD i Blu-ray. Els codis RLL (2,7) i RLL (1,7) de densitat més alta es van convertir en el de estàndard de facto per a discs durs a principis dels anys noranta.[3]

Necessitat de codificació RLL

[modifica]

En una unitat de disc dur, la informació es representa mitjançant canvis en la direcció del camp magnètic al disc, i en suports magnètics, la sortida de reproducció és proporcional a la densitat de transició de flux. En un ordinador, la informació es representa per la tensió d'un cable. Cap tensió al cable en relació a un nivell de terra definit seria un zero binari, i una tensió positiva al cable en relació a terra en representa un binari. Els mitjans magnètics, en canvi, sempre porten un flux magnètic – ja sigui un pol "nord" o un pol "sud". Per convertir els camps magnètics en dades binàries, s'ha d'utilitzar algun mètode de codificació per traduir entre els dos.[4]

Un dels codis pràctics més senzills, modificat sense retorn a zero invertit (NRZI), simplement codifica un 1 com a transició de polaritat magnètica, també coneguda com a "inversió de flux", i un zero com a sense transició. Amb el disc girant a una velocitat constant, a cada bit se li dóna un període de temps igual, una "finestra de dades", per al senyal magnètic que representa aquest bit, i la inversió de flux, si n'hi ha, es produeix a l'inici d'aquesta finestra. (Nota: els discs durs més antics utilitzaven un període de temps fix com a finestra de dades sobre tot el disc, però els discs moderns són més complicats; per obtenir-ne més informació, vegeu Enregistrament de bits per zones).

Aquest mètode no és tan senzill, ja que la sortida de reproducció és proporcional a la densitat d'uns, un llarg recorregut de zeros significa que no hi ha cap sortida de reproducció.

En un exemple senzill, considereu el patró binari 101 amb una finestra de dades d'1 ns (un nanosegon o una mil milions de segon). Això s'emmagatzemarà al disc com un canvi, seguit de cap canvi i després un altre canvi. Si la polaritat magnètica anterior ja era positiva, el patró resultant podria semblar així: −−+. Un valor de 255, o tots els binaris, s'escriurien com −+−+−+−+ o +−+−+−+−. Un byte zero s'escriuria com a ++++++++ o −−−−−−−−−. Un sector de zeros de 512 bytes s'escriuria com a 4096 bits seqüencials amb la mateixa polaritat.

Com que una unitat de disc és una peça física de maquinari, la velocitat de rotació de la unitat pot canviar lleugerament a causa d'un canvi en la velocitat del motor o de l'expansió tèrmica del plat de disc. El suport físic d'un disquet també es pot deformar, provocant errors de temporització més grans, i el circuit de temporització del mateix controlador pot tenir petites variacions de velocitat. El problema és que, amb una llarga cadena de zeros, no hi ha manera que el controlador de la unitat de disc conegui la posició exacta del capçal de lectura i, per tant, no hi ha manera de saber exactament quants zeros hi ha. Una variació de velocitat fins i tot del 0,1%, que és més precisa que qualsevol disquetera pràctica, podria provocar que s'afegeixin o s'eliminin 4 bits al flux de dades de 4096 bits. Sense alguna forma de sincronització i correcció d'errors, les dades es tornarien completament inutilitzables.

Seagate ST11R, un controlador de disc dur ISA RLL de 8 bits produït el 1990.

L'altre problema es deu als límits dels mateixos mitjans magnètics: només és possible escriure tants canvis de polaritat en una certa quantitat d'espai, de manera que hi ha un límit superior a quants també es poden escriure seqüencialment, això depèn de la línia lineal. velocitat i la bretxa del cap.

Per evitar aquest problema, les dades es codifiquen de manera que no es produeixin repeticions llargues d'un sol valor binari. En limitar el nombre de zeros escrits consecutivament a un k màxim, això fa possible que el controlador de la unitat es mantingui sincronitzat. En limitar el nombre de zeros escrits en una fila a un mínim d entre tots i cadascun, es redueix la freqüència general dels canvis de polaritat, permetent que la unitat emmagatzemi més dades en la mateixa quantitat d'espai, donant lloc a un paquet més petit per la mateixa quantitat de dades o més emmagatzematge en el mateix paquet de mida.

Visió general tècnica

[modifica]

En general, la longitud d'execució és el nombre de bits per als quals el senyal no canvia. Una longitud d'execució de 3 per al bit 1, representa una seqüència 111. Per exemple, el patró de polaritzacions magnètiques al disc podria ser +−−−−++−−−++++++, amb recorreguts de longitud 1, 4, 2, 3 i 6. Tanmateix, la terminologia de codificació limitada de durada d'execució assumeix la codificació NRZI, de manera que 1 bit indiquen canvis i 0 bits indiquen l'absència de canvi, la seqüència anterior s'expressaria com a 11000101001000001 i només es compten les tirades de zero bits.

De manera una mica confusa, la longitud d'execució és el nombre de zeros (0, 3, 1, 2 i 5 a l'anterior) entre els adjacents, que és un menys que el nombre de vegades que el senyal es manté sense canvis. Les seqüències limitades de longitud d'execució es caracteritzen per dos paràmetres, d i k, que estipulen la longitud d'execució de bits zero mínima i màxima que es pot produir a la seqüència. Així, els codis RLL generalment s'especifiquen com a ( d, k ) RLL, per exemple: (1,3) RLL.

Codificació

[modifica]

En el format codificat, un bit "1" indica una transició de flux, mentre que un "0" indica que el camp magnètic del disc no canvia durant aquest interval de temps.

Referències

[modifica]
  1. Kees Schouhamer Immink IEEE Communications Magazine, 60, 10, 10-2022, pàg. 20–24. DOI: 10.1109/MCOM.002.2200249. «A constrained system is defined by a constrained set of 'good' or 'allowable' sequences to be recorded or transmitted. Constrained coding focuses on the analysis of constrained systems and the design of efficient encoders and decoders that transform arbitrary user sequences into constrained sequences.»
  2. «RLL: Run-Length Limited - Itexus» (en anglès americà), 19-03-2024. [Consulta: 21 octubre 2024].
  3. «Run Length Limited (RLL)» (en anglès americà). [Consulta: 21 octubre 2024].
  4. published, Bestofmedia Team. «Hard Drives 101: Magnetic Storage» (en anglès), 31-08-2011. [Consulta: 21 octubre 2024].