トップ :: G 物理学 :: G06 計算;計数




【発明の名称】 バスエンコーディング/デコーディング装置及びその方法
【発明者】 【氏名】辛 英 洙

【氏名】崔 起 榮

【氏名】閔 丙 昊

【氏名】張 英 勳

【要約】 【課題】ナローデータバスを使用する低電力デジタル信号プロセッサーシステムのためのバスエンコーディング/デコーディング装置及びその方法を提供する。

【解決手段】nビットデータの最上位ビットの値が1であれば、下位(n−1)ビットデータをビット単位でインバーティングする条件付きインバーティング手段と、データバスに出力された最後のnビットデータを貯蔵する貯蔵手段と、条件付きインバーティング手段で条件付きでインバーティングされた下位(n−1)ビットデータを貯蔵手段に貯蔵された下位(n−1)ビットデータとビット単位で排他論理和する第1排他論理和演算手段とを含み、nビットデータの最上位ビットと第1排他論理和演算手段により排他論理和された(n−1)ビットのデータを出力することを特徴とする。
【特許請求の範囲】
【請求項1】データバスのnビットデータをエンコーディングする装置において、前記nビットデータの最上位ビットの値が1であれば、下位(n−1)ビットデータをビット単位でインバーティングする条件付きインバーティング手段と、前記データバスに出力された最後のnビットデータを貯蔵する貯蔵手段と、前記条件付きインバーティング手段により条件付きでインバーティングされた下位(n−1)ビットデータを、前記貯蔵手段に貯蔵された下位(n−1)ビットデータとビット単位で排他論理和する第1排他論理和演算手段とを含み、前記nビットデータの最上位ビットと前記第1排他論理和演算手段により排他論理和された(n−1)ビットのデータを出力することを特徴とするバスエンコーディング装置。
【請求項2】前記条件付きインバーティング手段は、前記nビットデータ中の下位(n−1)ビットデータを、各ビット別に最上位ビットと排他論理和する第2排他論理和演算手段であることを特徴とする、請求項1に記載のバスエンコーディング装置。
【請求項3】データバスのエンコーディングされたnビットデータをデコーディングする装置において、前記データバスから入力されたエンコーディングされた以前nビットデータ中の下位(n−1)ビットデータを貯蔵する貯蔵手段と、前記データバスから以前nビットデータの次に入力されたエンコーディングされた現在nビットのデータ中の下位(n−1)ビットデータと前記貯蔵手段に貯蔵された(n−1)ビットデータをビット単位で排他論理和する第1排他論理和演算手段と、前記データバスから入力された現在nビットのデータ中の最上位ビットの値が1であれば前記排他論理和演算手段により排他論理和された(n−1)ビットデータをビット単位でインバーティングする条件付きインバーティング手段とを含み、前記データバスから入力された現在nビットのデータ中の最上位ビットと前記条件付きインバーティング手段により条件付きでインバーティングされた(n−1)ビットデータを出力することを特徴とするバスデコーディング装置。
【請求項4】前記条件付きインバーティング手段は、排他論理和された(n−1)ビットデータを各ビット別に前記最上位ビットと排他論理和する第2排他論理和演算手段であることを特徴とする請求項3に記載のバスエンコーディング装置。
【請求項5】データバスのnビットデータをエンコーディングする方法において、(a) 前記nビットデータの最上位ビットの値が1であれば、下位(n−1)ビットデータをビット単位でインバーティングする段階と、(b) 前記(a)段階で条件付きでインバーティングされたデータの下位(n−1)ビットを最後にエンコーディングされたデータの下位(n−1)ビットとビット単位で排他論理和する段階と、(c) 前記nビットデータの最上位ビットと排他論理和された(n−1)ビットのデータを前記データバスに出力する段階とを含むことを特徴とするバスエンコーディング方法。
【請求項6】データバスのエンコーディングされたnビットデータをデコーディングする方法において、(a) 前記データバスから入力されたエンコーディングされた以前nビットデータ中の下位(n−1)ビットデータを貯蔵する段階と、(b) 前記データバスから以前nビットデータの次に入力されたエンコーディングされた現在nビットのデータ中の下位(n−1)ビットデータと前記(a)段階で貯蔵された(n−1)ビットデータをビット単位で排他論理和する段階と、(c) 前記データバスから入力された現在nビットのデータ中の最上位ビットの値が1であれば排他論理和された(n−1)ビットデータをビット単位でインバーティングする段階と、(d) 前記データバスから入力された現在nビットのデータ中の最上位ビットと前記(c)段階で条件付きでインバーティングされた(n−1)ビットデータを出力する段階とを含むことを特徴とするバスデコーディング方法。
【発明の詳細な説明】【0001】
【発明の属する技術分野】本発明はバスエンコーディング/デコーディング装置に係り、特にナローデータバスを使用する低電力デジタル信号プロセッサー(Digital Signal Processor:DSP)システムのためのバスエンコーディング/デコーディング装置及びその方法に関する。
【0002】
【従来の技術】SOC(System On a Chip)技術の急速な発展によって一つのチップ内に色々な機能ブロックを搭載できるようになっている。このようなチップでは外部とのインタフェース時にさらに多数のピンを必要とする。チップのピン数を増やすことはチップのコストと消費電力に大きい負担を与えるため、限定された数のピンを効率的に使用する方法を考慮しなければならない。
【0003】ナローデータバス方式によれば、待機サイクルによるある程度の性能の減少が許されるため、チップのピン数不足に関する問題を縮められる。ここで、ナローデータバスとは、データバスのビット数が処理されるデータのビット数より少ないデータバスを称する。さらに、消費電力を縮めるためには、ピンのキャパシタンスにかかる消費電力を最小化するバスコーディング方法が用いられる。このためにはデータバスにデータを伝送する時、以前信号と現在信号とのトランジションが少なくなるように伝送する方法が考えられる。
【0004】従来の技術に係るコーディング方法には、BI(Bus-Invert)コーディング方法とBITS(Bus Invert with Transition signaling)コーディング方法がある。図1及び図2は各々BIコーディング方法によるエンコーダ及びデコーダを示すものであり、図3及び図4は各々BITSコーディング方法によるエンコーダ及びデコーダを示すものである。
【0005】先ず、BIコーディング方法は、無作為のデータパターンに対しては消費電力を減らす側面でよく動作するが、音声や音楽のようなデータパターンに対しては効果的ではない。その理由は、このようなデータが2の補数形態をとるので、例えば16ビットデータの場合上位8ビットに0や1が偏るからである。
【0006】BITSコーディング方法は、BIコーディング方法と同じく余分のラインとデータをインバーティングすべきかどうかを決定する余分の回路を含めなければならないために、これに対するオーバーヘッドが大きくなる。結局、従来の技術に係るナローバスに対するコーディング方法は余分のラインに必要なピンをさらに追加する必要があり、既に作られたコアを使用する時間的制約を与える。
【0007】
【発明が解決しようとする課題】本発明は前記の問題点を解決するために創作されたものであって、既存の技術に係るBIコーディング方法とBITSコーディング方法で使用した余分のラインとマジョリティボータ(majority voter)というデータのインバーティング可否を決定する回路を除去することによって、コアとのインタフェース問題と追加回路に対するオーバーヘッドを縮めてチップ面積を縮小し消費電力を省くナローバスコーディング/デコーディング装置及びその方法を提供することを目的とする。
【0008】
【課題を解決するための手段】前記の目的を達成するために、本発明に係るデータバスのnビットデータをエンコーディングする装置の一実施例は、前記nビットデータの最上位ビットの値が1であれば、下位(n−1)ビットデータをビット単位でインバーティングする条件付きインバーティング手段と、データバスに出力された最後のnビットデータを貯蔵する貯蔵手段と、前記条件付きインバーティング手段で条件付きでインバーティングされた下位(n−1)ビットデータを前記貯蔵手段に貯蔵された下位(n−1)ビットデータとビット単位で排他論理和する第1排他論理和演算手段とを含み、前記nビットデータの最上位ビットと前記第1排他論理和演算手段により排他論理和された(n−1)ビットのデータを出力することを特徴とする。
【0009】本発明に係るデータバスのnビットデータをエンコーディングする装置の一実施例で、前記条件付きインバーティング手段は、前記nビットデータ中の下位(n−1)ビットデータを各ビット別に最上位ビットと排他論理和する第2排他論理和演算手段であることを特徴とする。
【0010】前記の他の目的を達成するために、本発明に係るデータバスのエンコーディングされたnビットデータをデコーディングする装置の一実施例は、前記データバスから入力されたエンコーディングされた以前nビットデータ中の下位(n−1)ビットデータを貯蔵する貯蔵手段と、前記データバスから以前nビットデータの次に入力されたエンコーディングされた現在nビットのデータ中の下位(n−1)ビットデータと前記貯蔵手段に貯蔵された(n−1)ビットデータをビット単位で排他論理和する第1排他論理和演算手段と、前記データバスから入力された現在nビットのデータ中の最上位ビットの値が1であれば前記排他論理和演算手段により排他論理和された(n−1)ビットデータをビット単位でインバーティングする条件付きインバーティング手段とを含み、前記データバスから入力された現在nビットのデータ中の最上位ビットと前記条件付きインバーティング手段により条件付きでインバーティングされた(n−1)ビットデータを出力することを特徴とする。
【0011】本発明に係るデータバスのエンコーディングされたnビットデータをデコーディングする装置の一実施例で、前記条件付きインバーティング手段は、排他論理和された(n−1)ビットデータを各ビット別に前記最上位ビットと排他論理和する第2排他論理和演算手段であることを特徴とする。
【0012】前記のさらに他の目的を達成するために、本発明に係るデータバスのnビットデータをエンコーディングする方法の一実施例は、(a) 前記nビットデータの最上位ビットの値が1であれば、下位(n−1)ビットデータをビット単位でインバーティングする段階と、(b) 前記(a)段階で条件付きでインバーティングされたデータの下位(n−1)ビットを最後にエンコーディングされたデータの下位(n−1)ビットとビット単位で排他論理和する段階と、(c) 前記nビットデータの最上位ビットと排他論理和された(n−1)ビットのデータを前記データバスに出力する段階とを含むことを特徴とする。
【0013】前記のさらに他の目的を達成するために、本発明に係るデータバスのエンコーディングされたnビットデータをデコーディングする方法の一実施例は、(a) 前記データバスから入力されたエンコーディングされた以前nビットデータ中の下位(n−1)ビットデータを貯蔵する段階と、(b) 前記データバスから以前nビットデータの次に入力されたエンコーディングされた現在nビットのデータ中の下位(n−1)ビットデータと前記(a)段階で貯蔵された(n−1)ビットデータをビット単位で排他論理和する段階と、(c) 前記データバスから入力された現在nビットのデータ中の最上位ビットの値が1であれば排他論理和された(n−1)ビットデータをビット単位でインバーティングする段階と、(d) 前記データバスから入力された現在nビットのデータ中の最上位ビットと前記(c)段階で条件付きでインバーティングされた(n−1)ビットデータを出力する段階とを含むことを特徴とする。
【0014】
【発明の実施の形態】以下、添付した図面を参照して本発明を詳細に説明する。図5によれば、本発明に係るデータバスの8ビットデータをエンコーディングする装置の一実施例は、条件付きインバーティング手段10、貯蔵手段14及び第1排他的論理和演算手段12を含む。図5でデータバスのビット数は8ビットで例示されているが、本発明ではデータバスのビット数に対する制約はない。
【0015】条件付きインバーティング手段10は、8ビットデータxi0,…,xi6,xi7の最上位ビットxi7の値が1であれば、下位7ビットデータxi0,…,xi5,xi6をビット単位でインバーティングする。図5に示すように、本発明に係るエンコーディング装置の一実施例で条件付きインバーティング手段10は、下位7ビットデータxi0,…,xi5,xi6を各ビット別に最上位ビットxi7と排他論理和する7個の排他論理和ゲートより構成することができる。
【0016】貯蔵手段14は、データバスに出力された最後の8ビットデータxi-10,…,xi-16,xi-17を貯蔵するものであり、図5に示すように8個のラッチより構成することができる。
【0017】第1排他的論理和演算手段12は、インバーティング手段10で条件付きでインバーティングされた下位7ビットデータを、貯蔵手段14に貯蔵された下位7ビットデータxi-10,…,xi-15,xi-16とビット単位で排他論理和するものであり、図5に示すように7個の排他論理和ゲートより構成することができる。
【0018】8ビットデータの最上位ビットと前記第1排他論理和演算手段12により排他論理和された7ビットのデータは貯蔵手段14を経てバスに出力される。図6によれば、本発明に係るデータバスのエンコーディングされた8ビットデータをデコーディングする装置の一実施例は、貯蔵手段20、第1排他論理和演算手段22及び条付きインバーティング手段24を含む。図6でデータバスのビット数は8ビットで例示されているが、本発明ではデータバスのビット数に対する制約はない。
【0019】貯蔵手段20は、データバスから入力されたエンコーディングされた以前8ビットデータzi-10,…,zi-16,zi-17中で下位7ビットデータzi-10,…,zi-15,zi-16を貯蔵するものであり、図6に示すように7個のラッチより構成することができる。
【0020】第1排他論理和演算手段22は、以前8ビットデータzi-10,…,zi-16,zi-17の次にデータバスから入力されたエンコーディングされた現在8ビットのデータzi0,…,zi6,zi7中の下位7ビットデータzi0,…,zi5,zi6と前記貯蔵手段20に貯蔵された7ビットデータzi-10,…,zi-15,zi-16をビット単位で排他論理和するものあり、図6に示すように7個の排他論理和ゲートより構成することができる。
【0021】条件付きインバーティング手段24は、前記データバスから入力されたエンコーディングされた現在8ビットのデータ中の最上位ビットzi7の値が1であれば、前記第1排他論理和演算手段22により排他論理和された7ビットデータをビット単位でインバーティングする。図6に示すように、本発明に係るデコーディング装置の一実施例で条件付きインバーティング手段24は、排他論理和された7ビットデータを各ビット別に最上位ビットzi7と排他論理和する7個の排他論理和ゲートより構成することができる。
【0022】前記データバスから入力されたエンコーディングされた8ビットのデータ中の最上位ビットと前記条件付きインバーティング手段24により条件付きでインバーティングされた7ビットデータがデコーディングされたデータとして出力される。
【0023】以後は、本発明で提示されたコーディング方法をHIHR(Half Identity Half Reverse)コーディング方法と称し、従来の技術に係るBI(Bus−Invert)コーディング方法及びBITS(Bus Invert with Transition signaling)コーディング方法と比較する。
【0024】以下、次のようなデータパターンを有する人の音声を例として本発明の動作を説明する。
5.683954 0000010110101111 X0:00000101,X1:10101111 10.578125 0000101010010100 X2:00001010,X3:10010100 −5.625000 1111101001100000 X4:11111010,X5:01100000 1.019531 0000000100000100 X6:00000001,X7:00000100 3.484375 0000001101111100 X8:00000011,X9:01111100前記第1列は音声データパターンを10進数で表現したものであり、第2列は16ビットの2の補数固定小数点の表現であり、第3列は8ビットデータバスに伝送されるための形態で表現したものである。
【0025】前記第2列の16ビットデータを8ビットデータバスに載せて送る場合を説明すれば次の通りである。送るデータの順序は16ビットデータを前記第3列のように分離してX0,X1,…の順に送る。
【0026】
【数1】

8ビットデータを送る時は数学式1に示したような規則でコーディングして送る。即ち、X0=00000101であるので、先ずYi式を適用すれば最上位ビットが0なのでインバーティングを行わずにY1=00000101となり、Ziを適用すればY1の最上位ビットを除外したY1の残りの7ビットと直前にデータバスに載せられたデータZ0を排他論理和演算をしてZ1は00000101を維持する。この時、Z0は00000000に初期化されたことと見なす。
【0027】従って、Z1がデータバスに載せられる。次の値のX1=10101111の場合には最上位ビットが1であるのでY2=11010000にインバーティングされ、Z2はY2の最上位ビットを自分の最上位ビットで維持し、Y2の下位7ビットとZ1の下位7ビットを排他論理和する。すると、1|TR(Y2,Z1)=1|TR(1010000,0000101)は結局1と1010101になって、Z2は11010101になる。以後、Z2がデータバスに載せられる。
【0028】前記例示された人の音声のデータパターンを本発明に係るHIHRコーディング方法に適用すれば、次のようにエンコーディングされる。

本発明に係るHIHRコーディング方法でデコーディング過程はエンコーディング過程の逆過程であって、数学式2で表現される。
【0029】
【数2】

従来の技術に係るBIコーディング方法とBITSコーディング方法、そして本発明に係るHIHRコーディング方法の3つに対してトランジション数を比較すれば次の通りである。
【0030】先ず、BIコーディング方法によるトランジション数を表示する。
X Z トランジション数 X0: 00000101 ----> 000001010 0 X1: 10101111 ----> 101011110 4 X2: 00001010 ----> 000010100 4 X3: 10010100 ----> 011010111 4 X4: 11111010 ----> 111110100 4 X5: 01100000 ----> 011000000 4 X6: 00000001 ----> 000000010 3 X7: 00000100 ----> 000001000 2 X8: 00000011 ----> 000000110 3 X9: 01111100 ----> 100000111 2=30回のトランジション発生BIコーディング方法では、元信号と以前信号のトランジション数がデータバス幅の半分を過ぎた時元信号をインバートする。
【0031】次に、BITSコーディング方法によるトランジション数を表示する。
1の個数 Y|I Z|I トランジション数 X0: 00000101 ---> 000001010 ---> 000001010 X1: 10101111 ---> 010100001 ---> 010101011 3 X2: 00001010 ---> 000010100 ---> 010111110 3 X3: 10010100 ---> 100101000 ---> 110010110 3 X4: 11111010 ---> 000001011 ---> 110011101 3 X5: 01100000 ---> 011000000 ---> 101011100 3 X6: 00000001 ---> 000000010 ---> 101011110 1 X7: 00000100 ---> 000001000 ---> 101010110 1 X8: 00000011 ---> 000000110 ---> 101010000 2 X9: 01111100 ---> 100000111 ---> 001010111 4= 23回のトランジションBITSコーディング方法はBIコーディング方法とは違って、自体信号の1の個数を数えてインバートするかどうかを決定する。1の個数がバス幅の半分より大きければトランジションする。
【0032】最後に、HIHRコーディング方法によるインバージョン(inversion)数を表示する。
X Y Z トランジション数 X0: 00000101 ---> 00000101 ---> 00000101 X1: 10101111 ---> 11010000 ---> 11010101 3 X2: 00001010 ---> 00001010 ---> 01011111 3 X3: 10010100 ---> 11101011 ---> 10110100 6 X4: 11111010 ---> 10000101 ---> 10110001 2 X5: 01100000 ---> 01100000 ---> 01010001 3 X6: 00000001 ---> 00000001 ---> 01010000 1 X7: 00000100 ---> 00000100 ---> 01010100 1 X8: 00000011 ---> 00000011 ---> 01010111 2 X9: 01111100 ---> 01111100 ---> 00101011 5= 23回のトランジション本発明に係るHIHRコーディング方法は元、信号の最上位ビット(Most Significant Bit: MSB)を用いてYデータを作る。MSBが1であればMSBはそのままにし、残りの7ビットをインバーティングし、MSBが0であれば元データをそのまま維持する。次に、新しく処理されたYデータと以前のZデータをビット単位で排他論理和演算する。排他論理和演算は被演算子が相異なる値の場合のみに論理1で、同じ時は論理0を出力する。
【0033】三つの場合を比較した時BITSコーディング方法が一番トランジションが少なく、その次がHIHRコーディング方法であることが分かる。しかし、BITSコーディング方法は余分のラインと追加的な回路が必要なのでチップ面積やコストを比較すればHIHRコーディング方法がさらに効果的であることが分かる。
【0034】
【表1】

【0035】
【表2】

表1と表2は、三つのコーディング方法でのトランジション数を相互比較したものである。この時、各パターンデータは16ビットであるが、このデータを8ビットに分け、分けられたデータに3つのコーディング方法を適用した結果データ間のトランジション数を比較したものである。表1は音声とクラシック音楽に対する実験値であり、表2はFFT演算に対する結果である。
【0036】
【表3】

表3には、3つのコーディング方法それぞれの場合に用いられるエンコーダとデコーダの面積、遅延時間そして消費電力を音声パターンデータを適用して相互比較しておいた。表3のデータで提示されたように、本発明に係るHIHRコーディング方法が、エンコーダやデコーダで他の2つの場合より面積、遅延時間そして消費電力を総合して判断する時一番良い性能を示すことが分かる。
【0037】
【表4】

表4は、音声とクラシック音楽に3つのコーディング方法を使用した時のエンコーダ側だけ測定して相互比較したものである。表4で分かるように、HIHRの消費電力節減はCoffchip=10pFの時の36.9%からCoffchip=30pFの時の39.2%がなされる。これはBITSコーディング方法とほとんど同等な水準であるが、チップ面積と余分のラインに対するコストを勘案する時HIHR方法がさらに良い方法だといえる。
【0038】デジタル補聴器にHIHRコーディング方法を適用して消費電力を測定してみた。この際、外部メモリとデジタル信号プロセッサーコア(DSP core)とのデータ伝送時にHIHRコーディング方法を適用した。外部メモリを駆動する時には10〜30pFの範囲でキャパシタンスを変化させながらシミュレーションし、内部メモリを駆動する時には3pFを使用した。電源は3.3V、クロック周波数は10MHzを適用した。表5は、16ビットパターンデータを8ビットデータバスに載せて送ることを示すものである。
【0039】
【表5】

表5は、ラッチと出力駆動器だけを含んで測定した値である。デコーダでの消耗電力は153μWである。従って、HIHRコーディング方法は、uncoded方式と比較する時Coffchipが10pFの時(1.6mW−1mW−0.153mW)/(1.6mW)=27.9%、30pFの時(3.87mW−2.29mW−0.153mW)/(3.87mW)=36.9%の電力を節約できた。
【0040】次に、16ビットパターンデータを16ビットデータバスに載せて送る場合、チップ内部ノードでのキャパシタンスは約3pFであるので、これを用いてシミュレーションすればUnencodedの場合消費電力は1.63mWで、HIHRコーディング方式でのエンコーダ側の消費電力は1.05mWで、デコーダ側の消費電力は0.276mWで測定された。従って、(1.63mW−1.05mW−0.276mW)/(1.63mW)=18.7%の電力を節約できる。従って、たとえHIHRコーディング方式はナローデータバスに対して創作されたが、図7及び図8に示した音声や音楽パターンデータのように0周囲に多くのデータが集まっている分布を示せば、バス幅とデータ幅が同じでも効果的であることが分かる。
【0041】
【発明の効果】本発明によれば、既存の技術に係るBIコーディング方法とBITSコーディング方法で使用した余分のラインとマジョリティボータというデータのインバーティング可否を決定する回路を除去することによってコアとのインタフェース問題と追加回路に対するオーバーヘッドを縮めてチップ面積を縮小し、消費電力を省ける。
【0042】本発明は、ナローデータバスだけでなく0周囲に多くのデータが集まっている分布を示すパターンデータに対してはバス幅とデータ幅が同じでも消費電力を省ける。
【出願人】 【識別番号】390019839
【氏名又は名称】三星電子株式会社
【識別番号】500585638
【氏名又は名称】崔 起 榮
【出願日】 平成12年12月25日(2000.12.25)
【代理人】 【識別番号】100094145
【弁理士】
【氏名又は名称】小野 由己男 (外1名)
【公開番号】 特開2001−243049(P2001−243049A)
【公開日】 平成13年9月7日(2001.9.7)
【出願番号】 特願2000−392190(P2000−392190)