Váení zákazníci, dovolujeme si Vás upozornit, e na tuto ukázku knihy se vztahují autorská práva, tzv. copyright. To znamená, e ukázka má slouit výhradnì pro osobní potøebu potenciálního kupujícího (aby ètenáø vidìl, jakým zpùsobem je titul zpracován a mohl se také podle tohoto, jako jednoho z parametrù, rozhodnout, zda titul koupí èi ne). Z toho vyplývá, e není dovoleno tuto ukázku jakýmkoliv zpùsobem dále íøit, veøejnì èi neveøejnì napø. umisováním na datová média, na jiné internetové stránky (ani prostøednictvím odkazù) apod. redakce nakladatelství BEN technická literatura
[email protected]
6.
DETEKCE CHYB
6.1
Lineární binární blokové kódy
Binární blokový kód je lineární, jestlie výsledkem souètu dvou kódových slov je opìt kódové slovo. Pro vytváøení úèinných zpùsobù kódování se nejèastìji pouívá úprava zprávy vyjádøené v binární podobì. Pøedpis pro úpravy zpráv je vhodné navrhovat jako lineární závislost. Bude se vdy jednat o vztah mezi informaèními (zdrojovými) slovy a kódovými slovy. Tento vztah je výhodné vytvoøit jako jednoznaèný pøedpis pro výpoèet kódového slova ze slova informaèního a jednoznaèný výpoèet pùvodního informaèního obsahu z kódového slova. Praktické zjednoduení synchronizace slov zprávy poskytuje tzv. blokové kódování. Pøi pouití systematického binárního blokového kódu je moné rozliit v kódovém slovì èást, která je pùvodním informaèním slovem (informaèní bity) a èást, která byla kódováním pøidána (zabezpeèovací nebo také kontrolní bity). Zpùsob vytváøení slov je moné zobrazit následovnì: informaèní slovo o délce k bitù u1u2 .... uk je kódováním zpracováváno na kódové slovo o délce n bitù u1u2....ukuk+1uk+2 ... un. Výhodou binárních lineárních kódù je to, e pøedpis pro kódování mùe být vdy popsán jako soustava rovnic, ve kterých jsou pouity operace sèítání a násobení binárních èísel. Pravidla platná pro binární èíslice vyjádøené znaky 0 a 1 jsou vyjádøena v tabulkách: n pro sèítání platí
n pro násobení platí
Æ
Tabulka pro násobení binárních èísel odpovídá obvyklým zvyklostem, ale tabulka pro sèítání definuje výsledek 1 + 1 = 0. To ovem znamená, e v této èíselné soustavì platí 1 = 1. Sèítání binárních èísel v nepolyadických soustavách je tedy toté, co odeèítání.
Komprese a kódová zabezpeèení v multimediálních komunikacích
71
6.2
Generující matice kódu
Maticový popis kódovacího pøedpisu binárního lineárního kódu je lineární soustava rovnic s binárními koeficienty a aritmetikou. Èasto pouívaným lineárním binárním kódem je tzv. kontrola parity, který je správnìji nazýván kód celkové parity. Spoèívá v tom, e k binárnímu slovu u1u2....uk pøipojíme pouze jeden znak uk+1, který je vyjádøen rovnicí pro kódování
X N + = X Æ X ÆÆX N . Protoe se jedná o lineární binární kódování, mùeme pouít vyjádøení pomocí maticového popisu. Jeho výhody nebudou zøejmé ihned. Na tomto jednoduchém pøíkladu kódování kódem celkové parity se mùe pouití maticového popisu jevit jako zbyteèná komplikace. Oznaème nejdøíve zmìny, které je nutné rozliovat, je-li posláno kódové slovo u1u2....ukuk+1 komunikaèním kanálem. Pøijaté slovo oznaèíme v1v2...vkvk+1. Pøijaté slovo, které bylo pokozeno chybou, bude w1w2...wkwk+1. Nyní mùeme definovat chybové slovo pomocí relace w1w2....wkwk+1 = v1v2....vkvk+1 + e1e2....ekek+1, pøitom pro obecné vyjádøení libovolného znaku chybového slova bude platit
Å Y L ¹ Z L HL = . ® Y L = Z L Budeme se zabývat pøípadem, kdy vybraná kódová slova obsahují v informaèních bitech pouze jednu jednièku a ostatní bity jsou nulové. (Z kódových slov je moné vypoèítat dalí slova kódu). Nyní budeme definovat tzv. generující matici [G] kódu. Tato matice je tvoøena kódovými slovy tzv. báze kódu (jsou lineárnì nezávislá). Chceme-li nalézt kódová slova lineárního binárního kódu, staèí, kdy nalezneme bázi kódu. Báze kódu je tvoøena slovy, která jsou lineárnì nezávislá. Ostatní slova lineárního kódu mohou být získána sèítáním libovolných dvou slov báze kódu. Matice G typu (k, n) je generující maticí lineárního kódu, jestlie: a) kadý její øádek je kódovým slovem, b)
kadé kódové slovo je lineární kombinací øádkù,
c) øádky jsou lineárnì nezávislé. Pro paritní systematický kód má generující matice tvar:
72
Komprese a kódová zabezpeèení v multimediálních komunikacích
« à à à *=à à à à ì
á ³ ³ ³ ³ ³ . ³ ³ ³ã
Není to jediná báze kódu. Báze kódu je tvoøena vemi kombinacemi kódových slov, která jsou lineárnì nezávislá. (Dokonce mohou být seètena dvì stejná slova; to ovem znamená, e výsledkem je nulové kódové slovo. Z tohoto pravidla plyne, e nulové slovo vdy patøí do lineárního kódu; ze stejného dùvodu vak nemùe být obsaeno v generující matici.) Vybraná kódová slova mohou tvoøit jednotkovou matici. Zabezpeèovací bityvá slova vytváøíme podle algoritmu daného kódování. Seøadíme-li takto vytvoøená kódová slova do øádkù a uzavøeme je do matice, získali jsme tzv. generující matici systematického kódu:
[ ]
* = (% . Generující matice má význam pro vytváøení kódu v tom, e souèinem informaèního slova s generující maticí získáme kódové slovo. Tomuto postupu se øíká zakódování, ale èastìji kódování. Kódováním je tedy mylen pøedpis (algoritmus) pro pøemìnu informaèních slov na slova kódová, ale také operace provádìná podle tohoto algoritmu. Význam slova kódování bude rozliován podle kontextu, ve kterém je pouit. Abychom netvoøili vìtinou nulová slova, provedeme zestruènìní lineární soustavy rovnic eliminací.
6.3
Kontrolní matice
Opaèný postup nazývaný dekódování se provádí po pøijetí slova z komunikaèního kanálu pomocí tzv. kontrolní matice, která pøedstavuje homogenní soustavu lineárních rovnic. Jestlie kódové slovo v1v2....vkvk+1 (respektive v1v2....vkvn, nebo kód celkové parity obsahuje pouze jeden kontrolní bit) pøijmeme nepokozené, jedná se o správné øeení lineární soustavy rovnic; její koeficienty tvoøí prvky kontrolní matice. V tom pøípadì platí
«Y á «á à ³ à ³ ÃY ³ ó + ¢ à ³ = ó à ³ à ³. à ³ ó ÃY ³ ó ¬ Qã ¬ ã Komprese a kódová zabezpeèení v multimediálních komunikacích
73
Vztah mezi generující maticí a kontrolní maticí je popsán pomocí matice B. Kontrolní matice H je definována vztahem:
[
]
+ = - %7 ( ë ,
kde E¢ je jednotková matice.
6.4
Kontrolní matice kódu celkové parity
Provedeme-li výpoèet kontrolní matice pro kód celkové parity, získáme ze sloupcové matice B transponováním øádkovou matici BT. Záporné znamínko u vech prvkù matice mùeme s ohledem na shodný výsledek sèítání nebo odeèítání zanedbat.
+ = [ ] . Poslední jednièka, která je k matici BT pøipojena, je jednotkovou maticí rozmìru 1. Souèinem této matice H se sloupcovým vektorem, který vznikl z vektoru pøijatého slova v1v2....vkvn, získáváme homogenní soustavu rovnic. Tato soustava je tvoøena jedinou rovnicí, která je totoná s definièním vztahem kódu celkové parity, který je tentokrát vyjádøený pro slovo pøenesené komunikaèním kanálem a pøijaté.
Y N + = Y Æ Y ÆÆY N . Z poslední rovnice je zøejmé, e nejmení vzdálenost mezi kódovými slovy kódu celkové parity je vdy d = 2. Zmìnou hodnoty v libovolném informaèním bitu se zmìní také hodnota kontrolního bitu. Odvození generující a kontrolní matice je základním postupem, který bude uplatòován i u dalích lineárních binárních kódù. Pro dekódování je pro kód celkové parity pouit implicitní vztah Y Æ Y ÆÆY N Æ Y Q = . Bude-li rovnice homogenní, bude pøijaté kódové slovo bez chyby. Bude-li pravá strana rovnice nenulová, signalizuje to, e bìhem pøenosu dolo k chybì. Poadavky, které jsou v praxi kladeny na rychlost výpoètu pøi kódování a pøi dekódování kódù vedou k pouití obvodových øeení kodérù a dekodérù. Program mikropoèítaèe by byl ve sloitìjích pøípadech pøíli pomalý. Obvodová øeení, která vyuívají efektivity návrhu pomocí programovatelných èíslicových obvodù, jsou dnes ji standardizována.
74
Komprese a kódová zabezpeèení v multimediálních komunikacích
6.5
VHDL model kodéru a dekodéru kódu celkové parity
Vìtina výrobcù dodává programové soubory, které podporují návrh obvodù na úrovni, která poskytuje technologickou nezávislost. To znamená, e návrháø rozhoduje o pouité technologii implementace a tehdy, kdy má návrh obvodu hotový a ovìøený pomocí simulaèních metod. Nástrojem pro technologicky nezávislý návrh je tzv. jazyk VHDL (Very High Speed Integrated Circuit Hardware Description Language). Výrobci dodávají ke svým logickým a hradlovým polím knihovny v jazyce VHDL, které usnadòují automatizovaný pøeklad do implementaèních souborù pro personifikaci obvodù. (podrobnosti viz Pøíloha B.) Návrh obvodu pomocí VHDL je metoda, která je nezávislá na pouité implementaèní technologii. Øeení návrhu pomocí jazyka VHDL spoèívá v popisu chování, který je zapsán pomocí modelu obvodu. K tomu se pouívá alfanumerického souboru sestaveného z prvkù jazyka VHDL. Popis se nazývá model chování a je tvoøen zápisem funkèních vztahù a procedur vyjádøených na úrovni procedurálního jazyka VHDL. Protoe jazyk umoòuje pracovat také na úrovni propojení jednotlivých prvkù èíslicových obvodù, je vybaven jednotným rozhraním, které se nazývá entita. Entita tedy popisuje rozhraní mezi navrhovaným modelem obvodu a okolím, které je rovnì tvoøeno entitami. Model obvodu má pomocí entity urèena pøipojovací místa a souèasnì je definováno, zda se jedná o vstupy, výstupy nebo obojí a to v podobì sbìrnice nebo jinak uspoøádaných vývodù. Rovnì je v entitì stanoveno, pro jaký typ vývodu (jednotlivý nebo hromadný) je pøipojovací místo urèeno. (17,7<[RUBJDWH,6 3257 LQLQ ,1ELW R 287ELW (1'[RUBJDWH
K uvedenému popisu rozhraní exclusive-or hradla je popis chování definován jako: $5&+,7(&785(H[RU2)[RUBJDWH,6 %(*,1 R LQ;25LQ$)7(5QV (1'H[RU
Kadý popis modelu obvodu v jazyce VHDL mùe být pouit jako tzv. knihovní prvek, tedy obvod, který je v dalích modelech pouze deklarován. Pøi simulaci je ovem nutné, aby knihovní prvek byl dostupný.
Komprese a kódová zabezpeèení v multimediálních komunikacích
75
6.6
Model propojení
Dekodér osmibitového kódu celkové parity je popsán entitou s osmi vstupy a jedním výstupem. Pro popis je pouito pøedchozího modelu hradla exclusiveor. Proto je nezbytné, aby v entitì byly deklarovány i vnitøní signály i1 a i7. (17,7<GHFRGHU,6 3257 XXXXXXXX X 6,*1$/LLLLLL (1'GHFRGHU
,1ELW 287ELW ELW
Popis modelu obsahuje odkaz na hradlo exclusive-or, které je pouito v modelu dekodéru kódu celkové parity jako knihovní prvek. $5&+,7(&785(GHFBSDULW\2)GHFRGHU,6 &20321(17[RUBJDWH 3257 LQLQ ,1ELW R 287ELW (1'&20321(17 %(*,1 Q [RUBJDWH32570$3XXL Q [RUBJDWH32570$3LXL Q [RUBJDWH32570$3LXL Q [RUBJDWH32570$3LXL Q [RUBJDWH32570$3LXL Q [RUBJDWH32570$3LXL Q [RUBJDWH32570$3LXX (1'GHFBSDULW\
Tento model nazvaný dec_parity je modelem propojení souèástek xor_gate.
6.7
Model chování
Chování modelu vak mùe být popsáno i bez pouití základních hradel exclusive-or. Popis modelu v tom pøípadì pouívá operátoru základní logické funkce, která je definována v jazyce VHDL. $5&+,7(&785(EHKDYBGHFBSDULW\2)GHFRGHU,6 %(*,1 X X;25X;25X;25X;25X;25X;25 X;25X$)7(5QV (1'EHKDYBGHFBSDULW\
76
Komprese a kódová zabezpeèení v multimediálních komunikacích
Popis chování se vztahuje ke stejné entitì nazvané decoder. Vnitøní signály deklarované v entitì zùstanou nevyuity. Optimalizace zapojení obvodu dekodéru parity je ponecháno na schopnostech návrhového systému a zejména na monostech, které nabízí knihovna dodaná výrobcem pro uvaovaný typ obvodu. V tomto pøípadì je èasová odezva AFTER 5 ns pouze odhadem, který musí být pøi podrobnìjí obvodové simulaci upøesnìn na základì pouitých knihovních blokù. Nevýhoda nepøesného návrhu je ale zároveò výhodou, protoe usnadòuje zaèlenìní dekodéru do návrhu vìtího obvodového øeení. Snadnìjí je také inovace takto popsaného bloku, protoe v modelu chování nemusí být provedeny ji ádné zmìny, které by u pøedchozího modelu propojení byly nezbytné, kdyby byl napøíklad pouitý jiný typ hradlového pole. Oba typy modelù mají svá opodstatnìní, ale kadý má své specifické pouití.
6.8
Disková pole Aplikace kódu celkové parity
K èetným aplikacím kódového zabezpeèení byla v roce 1987 pøipojena metoda zápisu informací do nìkolika diskových jednotek. Místo sekvenèního zápisu, který je obvyklý pøi pouití jedné diskové jednotky, je informace do diskového pole zapisována souèasnì do n diskových jednotek. Èinnost vnìjí pamìti se tím zrychlí asi n-krát. Kromì toho vak je moné zlepit spolehlivost diskové pamìti pouitím zabezpeèovacího kódu. Metoda souèasného zápisu informace na nìkolik diskù byla navrena pøed deseti lety na Universitì v Berkeley. Byla pojmenována RAID (Redundant Array of Inexpensive Discs). Metoda pøinesla nìkolikanásobné zvýení rychlosti zápisu a ètení informací ve srovnání s pouitím jednoho disku. Navíc vak pøinesla zlepení spolehlivosti diskové pamìti za cenu pomìrnì malé redundance. Ke kadé skupinì diskù se toti pøidává pouze jeden disk jako záloní. Této výhodné vlastnosti se pouívá v esti základních konfiguracích diskových polí. Podle toho jsou nazývány i metody v podrobnìjí specifikaci jako RAID 0 a RAID 5. Základní mylenka je spoleèná vem konfiguracím: informace se rozkládá na nìkolik diskù, pouze zpùsob rozloení je rozdílný. Zpùsob rozkladu informace je charakterizován nejmení jednotkou, která zùstává pohromadì na jednom disku. Mùe to být jakýkoliv objem informace od jedné slabiky a po celý sektor. Tomuto objemu informace odpovídá i poèet paritních bitù, které jsou zapisovány na záloní diskovou jednotku. Nejjednoduí diskové pole, oznaèované RAID 0 neobsahuje ádnou zálohu. Je pouíváno pouze pro zrychlení pøístupu k informacím pouitím paralelního zápisu a ètení. RAID 1 je v tomto pojetí pouze novým názvem pro ji døíve pouívanou metodu zálohování diskù zrcadlením. Zápis vech informací je pøi tom provádìn na dva disky souèasnì. Je zøejmé, e nadbyteèná informace má v tomto pøípadì stejný objem jako uiteèná informace. Pokud je v tomto pøípadì pro kadý disk Komprese a kódová zabezpeèení v multimediálních komunikacích
77
pouitý samostatný øadiè, zápis probíhá na oba disky souèasnì. Ke zrychlení zápisu tedy vlastnì nedochází, dochází vak k zálohování celého záznamu. Pokud je pouito kombinace RAID 0 a RAID 1, jsou ke dvìma øadièùm diskù pøipojena dvì stejnì velká pole diskù, která ovem nesou stejnou informaci. Nìkdy bývá tato kombinace metod oznaèována jako RAID 6. V systému RAID 2 se pøidané disky pouívají pro záznam zabezpeèovacích bitù Hammingova kódu, take velikost redundance je urèována vlastnostmi zvoleného kódu. Pro praktické pouití je vhodná konfigurace deseti diskù pro záznam dat a ètyø diskù pro záznam kontrolních bitù kódu. Z celkové kapacity je pro neredundantní informaci vyuito 71 % záznamové kapacity. Konfigurace RAID 2 je s výhodou pouívána pro tzv. støediskové poèítaèe. Disková pole RAID 3 a RAID 5 mají øadu spoleèných vlastností. Redundance záznamu je nií ne 20 %, protoe ke ètyøem diskùm pro záznam informací se pouívá jeden záloní obsahující kontrolní bity informací zapsaných na datových discích. Odolnost diskového pole proti poruchám je zajitìna moností rekonstrukce obsahu celého disku, který má poruchu. Dojde-li ke ztrátì jeho obsahu, spustí se proces rekonstrukce, v jeho prùbìhu jsou vypoèítány vechny chybìjící informace jako parita obsahu vech zachovaných diskù. Pøíklad rekonstrukce je uveden v následujícím postupu na obr. 6.1. První ètyøi disky jsou datové, pátý je paritní, take slabiky zapsané na tento disk vznikly jako parita slabik zapsaných na datové disky. Pøedpokládejme, e tøetí datový disk má poruchu a jeho obsah je tedy nutno rekonstruovat. Rekonstrukce tøí slabik jeho obsahu je popsána v pravé èásti obrázku. Systém RAID 3 pouívá rozprostøení informace na disky po slabikách a na pøidaný disk zapisuje do kontrolní slabiky paritu slabik zapsaných na datové disky po slabikách a na pøidaný disk zapisuje do kontrolní slabiky paritu slabik zapsaných na datové disky. Pøi zápisu i pøi ètení se informace pøenáí v blocích oznaèovaných jako jednotka pøenosu informace (JPI), jejich velikost je dána souèinem poètu slabik v jednom sektoru na jednom disku a poètem datových diskù. Pro typickou konfiguraci se ètyømi datovými disky a jedním paritním diskem pøi délce sektoru 512 dostáváme délku JPI 2048 slabik. Systém RAID 3 je výhodný, je-li objem pøenáené informace nejménì roven JPI. Pro mení objemy dat vznikají ztráty èasu, protoe vdy je tøeba èíst nebo zapsat celou délku JPI. Aby se odstranily rùznì dlouhé doby hledání sektoru zpùsobené rùzným úhlem natoèení diskù, pouívá se v této konfiguraci synchronizace vech vøeten diskù.
78
Komprese a kódová zabezpeèení v multimediálních komunikacích