Inverzní kódování - Inversion encoding

Inverzní kódování je technika kódování používaná pro kódování přenosů sběrnice pro systémy s nízkou spotřebou. Je založen na skutečnosti, že kvůli přechodům dochází k plýtvání velkým množstvím energie, zejména v externích sběrnicích, a tím se snižuje tyto přechody, což pomáhá ztráta výkonu. To se provádí zavedením další signální linky s názvem INV do linek sběrnice. Tento signál určuje, zda mají být ostatní linky invertovány nebo ne.

Přehled

Technika kódování invertování sběrnice používá zvláštní signál (INV) k indikaci „polarity“ dat. Mít kódové slovo pro inverzi sběrnice INV @ x, kde @ je operátor zřetězení a x označuje buď zdrojové slovo, nebo jeho doplněk, převezme dekodér sběrnice kódové slovo a vytvoří odpovídající zdrojové slovo. Pokud je signál INV 1, výsledkem je něčí doplněk x, jinak je to x.

Scénáře použití

  • Vysokokapacitní vedení
  • Vysoká spínací aktivita

Bus-invertní metoda

  1. The Hammingova vzdálenost (počet bitů, v nichž se liší) mezi aktuální hodnotou sběrnice (počítá se také přítomná invertní čára) a další datovou hodnotou.
  2. Pokud je Hammingova vzdálenost větší než n / 2, obráceně je nastavena na 1 a další hodnota sběrnice je rovna invertované další hodnotě dat.
  3. v opačném případě obráceně je nastavena na 0 a další hodnota sběrnice se rovná další hodnotě dat.
  4. Na straně přijímače musí být obsah sběrnice podmíněně invertován podle invertního řádku, pokud data nejsou uložena zakódovaná tak, jak jsou (např. V RAM). V každém případě musí být hodnota inverze přenášena po sběrnici (metoda zvyšuje počet linek z n na n + 1).[1]

Příklad

Vezmeme-li v úvahu příklad systému, který získává jedno ze svých dat ze senzoru, může senzor většinu času měřit nějaký šum. V tomto příkladu by se měly měřené hodnoty považovat za alternativně (0) a (-1). U 32bitové datové sběrnice se hodnota 0 převede na 0x00000000 (0000 0000 0000 0000 0000 0000 0000 0000), zatímco (-1) se převede na 0xFFFFFFFF (1111 1111 1111 1111 1111 1111 1111 1111) v doplněk dvou zastoupení. Hammingova vzdálenost je v tomto případě 32 (protože všech 32 bitů mění svůj stav). Hammingova vzdálenost je mnohem menší pomocí znaková bitová reprezentace. I při použití doplňku dvou však inverzní kódování snižuje potřebnou aktivitu. V tomto případě by 0 byla reprezentována jako 0x00000000 s INV = 0 a -1 by byla reprezentována jako 0x00000000 s INV = 1. Vzhledem k tomu, že INV = 1, přijímač by data před jejich spotřebováním invertoval, čímž by je interně převedl na 0xFFFFFFFF. V tomto případě se na sběrnici změní pouze 1 bit (bit INV), což vede k aktivitě faktoru 1, která je ještě lepší než zobrazení bitů znaménka.

Přehled pro analýzu výkonu: kódování inverze

Analýza výkonu

Metoda invertování sběrnice generuje kód, který má tu vlastnost, že maximální počet přechodů na časový slot je snížen z n na n / 2, a tedy špičkový ztrátový výkon pro vstup výstup (I / O) je snížen na polovinu. Z teorie kódování z pohledu je invertní kód sběrnice časově závislý Markovianův kód.

Zatímco maximální počet přechodů je snížen na polovinu, průměrný počet má menší pokles. Například pro 8bitovou sběrnici se průměrný počet přechodů pomocí kódování invertování sběrnice stává 3,27 (místo 4) nebo 0,41 (místo 0,5) přechodů na sběrnici po časovém úseku. To znamená, že průměrný počet přechodů je 81,8% z počtu s nekódovanou sběrnicí. Je tomu tak proto, že invertní přímka přispívá určitými přechody a rozdělení Hammingových vzdáleností není rovnoměrné.[1]

Rozdělené kódování inverze

Aby se snížil průměrný ztrátový výkon I / O u širokých sběrnic, lze k rozdělení sběrnice na několik užších dílčích sběrnic použít pozorování, že metoda invertování sběrnice funguje lépe pro malé velikosti sběrnice. Každá z těchto dílčích sběrnic pak může být kódována nezávisle s vlastním invertním signálem. Například 64bitová sběrnice by mohla být rozdělena do osmi 8bitových subbusů s celkem 8 přidanými invertními signály. Vzhledem k předpokladu, že data, která mají být přenesena přes širokou sběrnici, jsou rovnoměrně rozloženo, budou statistiky pro užší subbusy nezávislý a sekvence dat pro každou subbus bude rovnoměrně distribuována. Například pro 64bitovou sběrnici rozdělenou do osmi 8bitových subbusů bude průměrný počet přechodů na časový slot 26,16 (8krát 3,27, průměr pro jednu 8bitovou subbus) a průměrný počet přechodů na sběrnici -line na časový slot bude 0,41 (jako u 8bitové sběrnice s jednou invertní linkou). Maximální počet přechodů se rozdělením sběrnice nezlepší a zůstane stejný na n / 2. Vždy však existuje další režie při použití více řádků, ale výpočetně se zjistilo, že kódování inverzní sběrnice funguje dobře pro většinu účelů.[1]

Viz také

Reference

  1. ^ A b C Stan, Mircea R .; Burleson, Wayne P. (březen 1995). "Bus-Invert kódování pro I / O s nízkou spotřebou". Transakce IEEE na systémech integrace Very Large Scale Integration (VLSI). 3 (1): 49–58. CiteSeerX  10.1.1.89.2154. doi:10.1109/92.365453. 1063-8210/95$04.00.

Další čtení