Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Коммуникациялық технологияда кодтау техникасы
Coding technique in communication technology
Run length limited немесе RLL кодтау – жолақты кодтау техникасы, ол жолақты ені шектелген коммуникациялық арна арқылы кез келген деректерді жіберу үшін қолданылады. RLL кодтары төрт негізгі параметрмен анықталады: m, n, d, k. Алғашқы екеуі, m/n, кодтың жылдамдығын көрсетеді, ал қалған екеуі тізбектеп келген бірліктер арасындағы ең кем d және ең көп k нөлдер санын көрсетеді. Бұл телекоммуникация және сақтау жүйелерінде қолданылады, олар ортаны бекітілген жазу басының арқынан жылдырады. Атап айтқанда, RLL сигналдың өспейтін қайталама биттердің (секуенциялардың) ұзындығын шектейді. Егер секуенциялар тым ұзын болса, сағатты синхрондау қиын; егер олар тым қысқа болса, коммуникациялық арна жоғары жиіліктерді әлсірете алады. Деректерді модуляциялау арқылы RLL сақталған деректерді декодтаудағы уақыт белгісіздігін азайтады, бұл деректерді оқығанда қателіктерге алып келуі мүмкін, яғни биттердің енгізілуіне немесе жойылуына. Бұл механизм биттер арасындағы шекараларды әрқашан дәл табуға мүмкіндік береді (биттердің жылғанын болдырмайды), сонымен қатар белгілі бір кеңістікте максималды дерек көлемін сенімді сақтау үшін ортаны тиімді пайдаланады. Алғашқы дискілік жетектерде RLL (0,1) FM коды сияқты өте қарапайым кодтау схемалары қолданылды, одан кейін RLL (1,3) MFM коды қолданылды, олар 1980-ші жылдардың ортасына дейін кеңінен қолданылды және әлі де CD, DVD, MD, Hi MD және Blu-ray сияқты цифрлық оптикалық дискілерде қолданылады. Жоғары тығыздықтағы RLL (2,7) және RLL (1,7) кодтары 1990-шы жылдардың басында қатты дискілер үшін де-факто индустриялық стандартқа айналды.
Run length limited or RLL coding is a line coding technique that is used to send arbitrary data over a communications channel with bandwidth limits. RLL codes are defined by four main parameters: m, n, d, k. The first two, m/n, refer to the rate of the code, while the remaining two specify the minimal d and maximal k number of zeroes between consecutive ones. This is used in both telecommunication and storage systems that move a medium past a fixed recording head. Specifically, RLL bounds the length of stretches (runs) of repeated bits during which the signal does not change. If the runs are too long, clock recovery is difficult; if they are too short, the high frequencies might be attenuated by the communications channel. By modulating the data, RLL reduces the timing uncertainty in decoding the stored data, which would lead to the possible erroneous insertion or removal of bits when reading the data back. This mechanism ensures that the boundaries between bits can always be accurately found (preventing bit slip), while efficiently using the media to reliably store the maximal amount of data in a given space. Early disk drives used very simple encoding schemes, such as RLL (0,1) FM code, followed by RLL (1,3) MFM code, which were widely used in hard disk drives until the mid 1980s and are still used in digital optical discs such as CD, DVD, MD, Hi MD and Blu ray. Higher density RLL (2,7) and RLL (1,7) codes became the de facto industry standard for hard disks by the early 1990s.
RLL кодтамасының қажеттілігі
Қатты дискіде ақпарат дискідегі магнит өрісінің бағытындағы өзгерістермен көрсетіледі, ал магниттік ортада ойнату нәтижесі ағынның өту тығыздығына пропорционалды. Компьютерде ақпарат сымдағы кернеумен көрсетіледі. Сымдағы кернеудің белгіленген нөлдік деңгейге қатысты болмауы бинарлық нөлді білдіреді, ал жерге қатысты сымдағы оң кернеу бинарлық бірді білдіреді. Магниттік ортада, керісінше, әрқашан магниттік ағын болады – «солтүстік» немесе «оңтүстік» полюс. Магниттік өрістерді екілік деректерге түрлендіру үшін екеуінің арасын аудару үшін бір кодтау әдісі қолданылуы керек. Ең қарапайым практикалық кодтардың бірі – өзгертілген нөлге қайта оралмайтын инверсия (NRZI) – бірді магниттік полярлықтың өзгеруі ретінде, сондай-ақ «ағынның кері өзгеруі» деп аталады, ал нөлді – өзгерудің болмауы ретінде кодтайды. Диск тұрақты жылдамдықпен айналғанда, әр бит магниттік сигналмен көрсетілген тең уақыт аралығын, «деректер терезесін» алады, ал ағынның кері өзгеруі, егер болса, осы терезенің басында болады. (Ескерту: ескі қатты дискілер бүкіл дискіде деректер терезесі ретінде бір уақыт аралығын қолданды, бірақ қазіргі дискілер күрделірек; толығырақ білу үшін аймақтық биттерді жазуды қараңыз.) Бұл әдіс толығымен қарапайым емес, себебі ойнату нәтижесі бірлердің тығыздығына пропорционалды, ал нөлдердің ұзақ тізбегі ойнату нәтижесін мүлдем болдырмайды. Мысал ретінде, 1 нс (бір наносекунд, секундының миллиардтан бір бөлігі) деректер терезесі бар 101 екілік үлгісін қарастырайық. Бұл дискіде өзгеріс, содан кейін өзгеріссіз, содан кейін тағы бір өзгеріс ретінде сақталады. Егер алдыңғы магниттік полярлық оң болса, нәтиже мынадай болуы мүмкін: −−+. 255 саны немесе барлық екілік бірлер −+−+−+−+ немесе +−+−+−+− ретінде жазылады. 0 байт ++++++++ немесе −−−−−−−− ретінде жазылады. 512 байттық нөлдер секторы 4096 реттелген бит ретінде жазылады. Диск дискінің физикалық бөлігі болғандықтан, дискінің айналу жылдамдығы қозғалтқыштың жылдамдығының өзгеруіне немесе дискінің табағының жылулық кеңеюіне байланысты сәл өзгеруі мүмкін. Флопи-дискідегі физикалық орта деформациялануы мүмкін, бұл үлкен уақыт қателеріне әкеледі, ал контроллердегі уақыт тізбегінде жылдамдықтың шағын ауытқулары болуы мүмкін. Мәселе мынада, нөлдердің ұзақ тізбегі болғанда, дискінің контроллері оқу басының нақты орнын біле алмайды, демек, қанша нөл бар екенін нақты біле алмайды. Тіпті 0,1% жылдамдық өзгеруі, бұл кез келген практикалық дискетадан да дәл, 4096 биттік дерек ағынына 4 бит қосылуына немесе алынып тасталуына әкелуі мүмкін. Синхрондау және қателерді түзетусіз деректер мүлдем қолданыссыз болады. Екінші мәселе магниттік ортаның шектелуімен байланысты: белгілі бір кеңістікте тек белгілі бір мөлшерде полярлық өзгерістерді жазуға болады, сондықтан бірнеше бірлерді қатарлап жазуға болатын жоғарғы шек бар, бұл сызықтық жылдамдық пен бас арақашықтығына байланысты. Бұл мәселені болдырмау үшін деректер бір-бір екілік мәннің ұзақ қайталануын болдырмайтын етіп кодталады. Бірінен соң бірі жазылатын нөлдердің санын ең көп k-ға дейін шектеу арқылы, диск контроллерінің синхронды болуы мүмкін болады. Бір қатарда жазылған нөлдердің санын әрқайсысы мен әрқайсысы арасындағы ең аз d-ге шектеу арқылы полярлық өзгерістердің жалпы жиілігі азаяды, бұл дискіге бірдей кеңістікте көбірек деректерді сақтауға мүмкіндік береді, нәтижесінде сол сандағы деректер үшін кішірек пакет немесе бірдей көлемдегі пакетке көбірек сақтау.
On a hard disk drive, information is represented by changes in the direction of the magnetic field on the disk, and on magnetic media, the playback output is proportional to the density of flux transition. In a computer, information is represented by the voltage on a wire. No voltage on the wire in relation to a defined ground level would be a binary zero, and a positive voltage on the wire in relation to ground represents a binary one. Magnetic media, on the other hand, always carries a magnetic flux either a "north" pole or a "south" pole. In order to convert the magnetic fields to binary data, some encoding method must be used to translate between the two. One of the simplest practical codes, modified non return to zero inverted (NRZI), simply encodes a 1 as a magnetic polarity transition, also known as a "flux reversal", and a zero as no transition. With the disk spinning at a constant rate, each bit is given an equal time period, a "data window", for the magnetic signal that represents that bit, and the flux reversal, if any, occurs at the start of this window. (Note: older hard disks used one fixed length of time as the data window over the whole disk, but modern disks are more complicated; for more on this, see zoned bit recording.) This method is not quite that simple, as the playback output is proportional to the density of ones, a long run of zeros means no playback output at all. In a simple example, consider the binary pattern 101 with a data window of 1 ns (one nanosecond, or one billionth of a second). This will be stored on the disk as a change, followed by no change, and then another change. If the preceding magnetic polarity was already positive, the resulting pattern might look like this: −−+. A value of 255, or all binary ones, would be written as −+−+−+−+ or +−+−+−+−. A zero byte would be written as ++++++++ or −−−−−−−−. A 512 byte sector of zeros would be written as 4096 sequential bits with the same polarity. Since a disk drive is a physical piece of hardware, the rotational speed of the drive can change slightly, due to a change in the motor speed or thermal expansion of the disk platter. The physical media on a floppy disk can also become deformed, causing larger timing errors, and the timing circuit on the controller itself may have small variations in speed. The problem is that, with a long string of zeros, there's no way for the disk drive's controller to know the exact position of the read head, and thus no way to know exactly how many zeros there are. A speed variation of even 0.1%, which is more precise than any practical floppy drive, could result in 4 bits being added to or removed from the 4096 bit data stream. Without some form of synchronization and error correction, the data would become completely unusable. The other problem is due to the limits of magnetic media itself: it is only possible to write so many polarity changes in a certain amount of space, so there's an upper limit to how many ones can also be written sequentially, this depends on the linear velocity and the head gap. To prevent this problem, data is coded in such a way that long repetitions of a single binary value do not occur. By limiting the number of zeros written consecutively to some maximum k, this makes it possible for the drive controller to stay synchronized. By limiting the number of zeros written in a row to some minimum d between each and every one, the overall frequency of polarity changes is reduced, allowing the drive to store more data in the same amount of space, resulting in either a smaller package for the same amount of data or more storage in the same size package.
Тарих
Магниттік дискілерге жазу үшін қолданылатын барлық кодтар ауысусыз тізбектің ұзақтығын шектейді, сондықтан оларды RLL кодтары деп сипаттауға болады. Ең ерте және қарапайым түрлеріне арнайы атаулар берілді, мысалы, өзгертілген жиілік модуляциясы (MFM), ал "RLL" атауы көбінесе осындай нақты атаулары жоқ күрделі түрлер үшін қолданылады, бірақ техникалық тұрғыдан бұл термин олардың барлығына да қатысты. Қатты дискілерде алғаш рет қолданылған "RLL" коды – IBM инженерлері әзірлеген RLL (2,7), ол 1979 жылы IBM 3370 DASD құрылғысында 4300 сериялы мейнфрейммен бірге коммерциялық тұрғыда қолданылды. 1980-жылдардың соңында дербес компьютерлердің (PC) қатты дискілері RLL-ді пайдалана бастады (яғни, MFM сияқты өздерінің жеке атаулары бар түрлерге қарағанда күрделі түрлерді). RLL кодтары 1980 жылдан бері оптикалық дискілерді жазу тәжірибесінде кеңінен қолданылып келеді. Тұтыну электроникасында RLL сияқты EFM коды (rate = 8/17, d = 2, k = 10) Compact Disc (CD) және MiniDisc (MD) құрылғыларында, ал DVD-де қолданылатын EFMPlus коды (rate = 8/16, d = 2, k = 10) қолданылады. d және k параметрлері – ең аз және ең көп рұқсат етілген тізбек ұзындығын көрсетеді. Сақтау технологиялары туралы толыққанды ақпарат алу үшін осы мақалада келтірілген сілтемелер көмектеседі.
All codes used to record on magnetic disks have limited the length of transition free runs and can therefore be characterized as RLL codes. The earliest and simplest variants were given specific names, such as modified frequency modulation (MFM), and the name "RLL" is commonly used only for the more complex variants not given such specific names, but the term technically applies to them all. The first "RLL" code used in hard drives was RLL (2,7), developed by IBM engineers and first used commercially in 1979 on the IBM 3370 DASD, for use with the 4300 series mainframe. During the late 1980s, PC hard disks began using RLL proper (i. e. variants more complex than those that had received their own proper names, such as MFM). RLL codes have found almost universal application in optical disc recording practice since 1980. In consumer electronics, RLLs like the EFM code (rate = 8/17, d = 2, k = 10) are employed in the Compact Disc (CD) and MiniDisc (MD), and the EFMPlus code (rate = 8/16, d = 2, k = 10) used in the DVD. Parameters d and k are the minimal and maximal allowed run lengths. For more coverage on the storage technologies, the references cited in this article are useful.
Техникалық шолу
Жалпы, орындалу ұзындығы – сигнал өзгермейтін биттердің саны. 1-биттің 3 орындалу ұзындығы 111 тізбегін білдіреді. Мысалы, дискідегі магниттік поляризацияның үлгісі +−−−++−−−++++++ болуы мүмкін, онда орындалу ұзындығы 1, 4, 2, 3 және 6 болады. Дегенмен, орындалу ұзындығы шектеулі кодтау терминологиясы NRZI кодтауын қарастырады, сондықтан 1 биттер өзгерістерді, ал 0 биттер өзгеріс болмауын көрсетеді. Жоғарыдағы тізбек 11000101001000001 ретінде беріледі және тек нөлдік биттердің орындалуы есептеледі. Сәл шатастыратын жайт, орындалу ұзындығы – жанындағы 1-лер арасындағы нөлдердің саны (алдыңғы мысалда 0, 3, 1, 2 және 5), бұл сигналдың нақты өзгермейтін уақытынан бір кем. Орындалу ұзындығы шектеулі тізбектер екі параметрмен сипатталады: d және k, олар тізбекте болуы мүмкін ең кішкентай және ең үлкен нөлдік биттердің ұзындығын анықтайды. Сондықтан RLL кодтары әдетте (d,k) RLL түрінде көрсетіледі, мысалы: (1,3) RLL.
Generally run length is the number of bits for which signal remains unchanged. A run length of 3 for bit 1, represents a sequence 111. For instance, the pattern of magnetic polarizations on the disk might be +−−−−++−−−++++++, with runs of length 1, 4, 2, 3, and 6. However, run length limited coding terminology assumes NRZI encoding, so 1 bits indicate changes and 0 bits indicate the absence of change, the above sequence would be expressed as 11000101001000001, and only runs of zero bits are counted. Somewhat confusingly, the run length is the number of zeros (0, 3, 1, 2 and 5 in the preceding) between adjacent ones, which is one less than the number of bit times the signal actually remains unchanged. Run length limited sequences are characterized by two parameters, d and k, which stipulate the minimal and maximal zero bit run length that can occur in the sequence. So RLL codes are generally specified as (d,k) RLL, e. g.: (1,3) RLL.
Кодтау
Кодталған форматта "1" биті магниттік өрістің өзгеруін, ал "0" биті дискідегі магниттік өрістің сол уақыт аралығында өзгермейтінін көрсетеді.
In the encoded format a "1" bit indicates a flux transition, while a "0" indicates that the magnetic field on the disk does not change for that time interval.
Тығыздықтары
Магниттік лентада бір дюймге 3200-ге дейін магниттік өріс полярлігінің өзгеруі болуы мүмкін деп есептейік. Өзгертілген жиілік модуляциясы немесе (1,3) RLL кодтамасы әрбір дерек битін таспаға екі бит ретінде жазады, бірақ кез келген 1 (магниттік өріс полярлігінің өзгеруі) битінің арасында бір 0 (магниттік өріс полярлігінің өзгеруі жоқ) битінің болуы кепілдендірілгендіктен, таспаға дюймге 6400 кодталған битті немесе дюймге 3200 дерек битін жазуға болады. (1,7) RLL кодтамасы таспаға дюймге 6400 кодталған битті жасай алады, бірақ 2 дерек битін жазу үшін 3 кодталған бит қана керек болғандықтан, бұл дюймге 4267 дерек битіне тең. (2,7) RLL кодтамасы әрбір дерек битін жазу үшін 2 кодталған битті қажет етеді, бірақ кез келген 1 биттің арасында екі 0 биттің болуы кепілдендірілгендіктен, таспаға дюймге 9600 кодталған битті немесе дюймге 4800 дерек битін жазуға болады. Қатты дискілердегі магниттік өріс полярлігінің өзгеру тығыздығы әлдеқайда жоғары, бірақ әртүрлі кодтау жүйелерін қолдану арқылы сақтау тығыздығының да сол сияқты жақсаруы байқалады.
Suppose a magnetic tape can contain up to 3200 flux reversals per inch. A modified frequency modulation, or (1,3) RLL encoding, stores each data bit as two bits on tape, but since there is guaranteed to be one 0 (no flux reversal) bit between any 1 (flux reversal) bits, then it is possible to store 6400 encoded bits per inch on the tape, or 3200 data bits per inch. A (1,7) RLL encoding can also store 6400 encoded bits per inch on the tape, but since it only takes 3 encoded bits to store 2 data bits, this is 4267 data bits per inch. A (2,7) RLL encoding takes 2 encoded bits to store each data bit, but since there is guaranteed to be two 0 bits between any 1 bits, then it is possible to store 9600 encoded bits per inch on the tape, or 4800 data bits per inch. The flux reversal densities on hard drives are significantly greater, but the same improvements in storage density are seen by using different encoding systems.