(57)【特許請求の範囲】
【請求項１】
データバスのnビットデータをエンコーディングする装置において、
前記nビットデータの最上位ビットの値が１であれば、下位(n−１)ビットデータをビット単位でインバーティングする条件付きインバーティング手段と、
前記データバスに出力された最後のnビットデータを貯蔵する貯蔵手段と、
前記条件付きインバーティング手段により条件付きでインバーティングされた下位(n−１)ビットデータを、前記貯蔵手段に貯蔵された下位(n−１)ビットデータとビット単位で排他論理和する第１排他論理和演算手段とを含み、
前記nビットデータの最上位ビットと前記第１排他論理和演算手段により排他論理和された(n−１)ビットのデータを出力することを特徴とするバスエンコーディング装置。
【請求項２】
前記条件付きインバーティング手段は、前記nビットデータ中の下位(n−１)ビットデータを、各ビット別に最上位ビットと排他論理和する第２排他論理和演算手段であることを特徴とする、請求項１に記載のバスエンコーディング装置。
【請求項３】
データバスのエンコーディングされたnビットデータをデコーディングする装置において、
前記データバスから入力されたエンコーディングされた以前nビットデータ中の下位(n−１)ビットデータを貯蔵する貯蔵手段と、
前記データバスから以前nビットデータの次に入力されたエンコーディングされた現在nビットのデータ中の下位(n−１)ビットデータと前記貯蔵手段に貯蔵された(n−１)ビットデータをビット単位で排他論理和する第１排他論理和演算手段と、
前記データバスから入力された現在nビットのデータ中の最上位ビットの値が１であれば前記排他論理和演算手段により排他論理和された(n−１)ビットデータをビット単位でインバーティングする条件付きインバーティング手段とを含み、
前記データバスから入力された現在nビットのデータ中の最上位ビットと前記条件付きインバーティング手段により条件付きでインバーティングされた(n−１)ビットデータを出力することを特徴とするバスデコーディング装置。
【請求項４】
前記条件付きインバーティング手段は、排他論理和された(n−１)ビットデータを各ビット別に前記最上位ビットと排他論理和する第２排他論理和演算手段であることを特徴とする請求項３に記載のバスエンコーディング装置。
【請求項５】
データバスのnビットデータをエンコーディングする方法において、
(a) 前記nビットデータの最上位ビットの値が１であれば、下位(n−１)ビットデータをビット単位でインバーティングする段階と、
(b) 前記(a)段階で条件付きでインバーティングされたデータの下位(n−１)ビットを最後にエンコーディングされたデータの下位(n−１)ビットとビット単位で排他論理和する段階と、
(c) 前記nビットデータの最上位ビットと排他論理和された(n−１)ビットのデータを前記データバスに出力する段階とを含むことを特徴とするバスエンコーディング方法。
【請求項６】
データバスのエンコーディングされたnビットデータをデコーディングする方法において、
(a) 前記データバスから入力されたエンコーディングされた以前nビットデータ中の下位(n−１)ビットデータを貯蔵する段階と、
(b) 前記データバスから以前nビットデータの次に入力されたエンコーディングされた現在nビットのデータ中の下位(n−１)ビットデータと前記(a)段階で貯蔵された(n−１)ビットデータをビット単位で排他論理和する段階と、
(c) 前記データバスから入力された現在nビットのデータ中の最上位ビットの値が１であれば排他論理和された(n−１)ビットデータをビット単位でインバーティングする段階と、
(d) 前記データバスから入力された現在nビットのデータ中の最上位ビットと前記(c)段階で条件付きでインバーティングされた(n−１)ビットデータを出力する段階とを含むことを特徴とするバスデコーディング方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明はバスエンコーディング/デコーディング装置に係り、特にナローデータバスを使用する低電力デジタル信号プロセッサー(Digital Signal Processor: DSP)システムのためのバスエンコーディング/デコーディング装置及びその方法に関する。
【０００２】
【従来の技術】
SOC(System On a Chip)技術の急速な発展によって一つのチップ内に色々な機能ブロックを搭載できるようになっている。このようなチップでは外部とのインタフェース時にさらに多数のピンを必要とする。チップのピン数を増やすことはチップのコストと消費電力に大きい負担を与えるため、限定された数のピンを効率的に使用する方法を考慮しなければならない。
【０００３】
ナローデータバス方式によれば、待機サイクルによるある程度の性能の減少が許されるため、チップのピン数不足に関する問題を縮められる。ここで、ナローデータバスとは、データバスのビット数が処理されるデータのビット数より少ないデータバスを称する。さらに、消費電力を縮めるためには、ピンのキャパシタンスにかかる消費電力を最小化するバスコーディング方法が用いられる。このためにはデータバスにデータを伝送する時、以前信号と現在信号とのトランジションが少なくなるように伝送する方法が考えられる。
【０００４】
従来の技術に係るコーディング方法には、BI(Bus-Invert)コーディング方法とBITS(Bus Invert with Transition signaling)コーディング方法がある。図１及び図２は各々BIコーディング方法によるエンコーダ及びデコーダを示すものであり、図３及び図４は各々BITSコーディング方法によるエンコーダ及びデコーダを示すものである。
【０００５】
先ず、BIコーディング方法は、無作為のデータパターンに対しては消費電力を減らす側面でよく動作するが、音声や音楽のようなデータパターンに対しては効果的ではない。その理由は、このようなデータが２の補数形態をとるので、例えば１６ビットデータの場合上位８ビットに０や１が偏るからである。
【０００６】
BITSコーディング方法は、BIコーディング方法と同じく余分のラインとデータをインバーティングすべきかどうかを決定する余分の回路を含めなければならないために、これに対するオーバーヘッドが大きくなる。結局、従来の技術に係るナローバスに対するコーディング方法は余分のラインに必要なピンをさらに追加する必要があり、既に作られたコアを使用する時間的制約を与える。
【０００７】
【発明が解決しようとする課題】
本発明は前記の問題点を解決するために創作されたものであって、既存の技術に係るBIコーディング方法とBITSコーディング方法で使用した余分のラインとマジョリティボータ(majority voter)というデータのインバーティング可否を決定する回路を除去することによって、コアとのインタフェース問題と追加回路に対するオーバーヘッドを縮めてチップ面積を縮小し消費電力を省くナローバスコーディング/デコーディング装置及びその方法を提供することを目的とする。
【０００８】
【課題を解決するための手段】
前記の目的を達成するために、本発明に係るデータバスのnビットデータをエンコーディングする装置の一実施例は、前記nビットデータの最上位ビットの値が１であれば、下位(n−１)ビットデータをビット単位でインバーティングする条件付きインバーティング手段と、データバスに出力された最後のnビットデータを貯蔵する貯蔵手段と、前記条件付きインバーティング手段で条件付きでインバーティングされた下位(n−１)ビットデータを前記貯蔵手段に貯蔵された下位(n−１)ビットデータとビット単位で排他論理和する第１排他論理和演算手段とを含み、前記nビットデータの最上位ビットと前記第１排他論理和演算手段により排他論理和された(n−１)ビットのデータを出力することを特徴とする。
【０００９】
本発明に係るデータバスのnビットデータをエンコーディングする装置の一実施例で、前記条件付きインバーティング手段は、前記nビットデータ中の下位(n−１)ビットデータを各ビット別に最上位ビットと排他論理和する第２排他論理和演算手段であることを特徴とする。
【００１０】
前記の他の目的を達成するために、本発明に係るデータバスのエンコーディングされたnビットデータをデコーディングする装置の一実施例は、前記データバスから入力されたエンコーディングされた以前nビットデータ中の下位(n−１)ビットデータを貯蔵する貯蔵手段と、前記データバスから以前nビットデータの次に入力されたエンコーディングされた現在nビットのデータ中の下位(n−１)ビットデータと前記貯蔵手段に貯蔵された(n−１)ビットデータをビット単位で排他論理和する第１排他論理和演算手段と、前記データバスから入力された現在nビットのデータ中の最上位ビットの値が１であれば前記排他論理和演算手段により排他論理和された(n−１)ビットデータをビット単位でインバーティングする条件付きインバーティング手段とを含み、前記データバスから入力された現在nビットのデータ中の最上位ビットと前記条件付きインバーティング手段により条件付きでインバーティングされた(n−１)ビットデータを出力することを特徴とする。
【００１１】
本発明に係るデータバスのエンコーディングされたnビットデータをデコーディングする装置の一実施例で、前記条件付きインバーティング手段は、排他論理和された(n−１)ビットデータを各ビット別に前記最上位ビットと排他論理和する第２排他論理和演算手段であることを特徴とする。
【００１２】
前記のさらに他の目的を達成するために、本発明に係るデータバスのnビットデータをエンコーディングする方法の一実施例は、(a) 前記nビットデータの最上位ビットの値が１であれば、下位(n−１)ビットデータをビット単位でインバーティングする段階と、(b) 前記(a)段階で条件付きでインバーティングされたデータの下位(n−１)ビットを最後にエンコーディングされたデータの下位(n−１)ビットとビット単位で排他論理和する段階と、(c) 前記nビットデータの最上位ビットと排他論理和された(n−１)ビットのデータを前記データバスに出力する段階とを含むことを特徴とする。
【００１３】
前記のさらに他の目的を達成するために、本発明に係るデータバスのエンコーディングされたnビットデータをデコーディングする方法の一実施例は、(a) 前記データバスから入力されたエンコーディングされた以前nビットデータ中の下位(n−１)ビットデータを貯蔵する段階と、(b) 前記データバスから以前nビットデータの次に入力されたエンコーディングされた現在nビットのデータ中の下位(n−１)ビットデータと前記(a)段階で貯蔵された(n−１)ビットデータをビット単位で排他論理和する段階と、(c) 前記データバスから入力された現在nビットのデータ中の最上位ビットの値が１であれば排他論理和された(n−１)ビットデータをビット単位でインバーティングする段階と、(d) 前記データバスから入力された現在nビットのデータ中の最上位ビットと前記(c)段階で条件付きでインバーティングされた(n−１)ビットデータを出力する段階とを含むことを特徴とする。
【００１４】
【発明の実施の形態】
以下、添付した図面を参照して本発明を詳細に説明する。
図５によれば、本発明に係るデータバスの８ビットデータをエンコーディングする装置の一実施例は、条件付きインバーティング手段１０、貯蔵手段１４及び第１排他的論理和演算手段１２を含む。図５でデータバスのビット数は８ビットで例示されているが、本発明ではデータバスのビット数に対する制約はない。
【００１５】
条件付きインバーティング手段１０は、８ビットデータxi0,…,xi6,xi7の最上位ビットxi7の値が１であれば、下位７ビットデータxi0,…,xi5,xi6をビット単位でインバーティングする。図５に示すように、本発明に係るエンコーディング装置の一実施例で条件付きインバーティング手段１０は、下位７ビットデータxi0,…,xi5,xi6を各ビット別に最上位ビットxi7と排他論理和する７個の排他論理和ゲートより構成することができる。
【００１６】
貯蔵手段１４は、データバスに出力された最後の８ビットデータxi-10,…,xi-16,xi-17を貯蔵するものであり、図５に示すように８個のラッチより構成することができる。
【００１７】
第１排他的論理和演算手段１２は、インバーティング手段１０で条件付きでインバーティングされた下位７ビットデータを、貯蔵手段１４に貯蔵された下位７ビットデータxi-10,…,xi-15,xi-16とビット単位で排他論理和するものであり、図５に示すように７個の排他論理和ゲートより構成することができる。
【００１８】
８ビットデータの最上位ビットと前記第１排他論理和演算手段１２により排他論理和された７ビットのデータは貯蔵手段１４を経てバスに出力される。
図６によれば、本発明に係るデータバスのエンコーディングされた８ビットデータをデコーディングする装置の一実施例は、貯蔵手段２０、第１排他論理和演算手段２２及び条付きインバーティング手段２４を含む。図６でデータバスのビット数は８ビットで例示されているが、本発明ではデータバスのビット数に対する制約はない。
【００１９】
貯蔵手段２０は、データバスから入力されたエンコーディングされた以前８ビットデータzi-10,…,zi-16,zi-17中で下位７ビットデータzi-10,…,zi-15,zi-16を貯蔵するものであり、図６に示すように７個のラッチより構成することができる。
【００２０】
第１排他論理和演算手段２２は、以前８ビットデータzi-10,…,zi-16,zi-17の次にデータバスから入力されたエンコーディングされた現在８ビットのデータzi0,…,zi6,zi7中の下位７ビットデータzi0,…,zi5,zi6と前記貯蔵手段２０に貯蔵された７ビットデータzi-10,…,zi-15,zi-16をビット単位で排他論理和するものあり、図６に示すように７個の排他論理和ゲートより構成することができる。
【００２１】
条件付きインバーティング手段２４は、前記データバスから入力されたエンコーディングされた現在８ビットのデータ中の最上位ビットzi7の値が１であれば、前記第１排他論理和演算手段２２により排他論理和された７ビットデータをビット単位でインバーティングする。図６に示すように、本発明に係るデコーディング装置の一実施例で条件付きインバーティング手段２４は、排他論理和された７ビットデータを各ビット別に最上位ビットzi7と排他論理和する７個の排他論理和ゲートより構成することができる。
【００２２】
前記データバスから入力されたエンコーディングされた８ビットのデータ中の最上位ビットと前記条件付きインバーティング手段２４により条件付きでインバーティングされた７ビットデータがデコーディングされたデータとして出力される。
【００２３】
以後は、本発明で提示されたコーディング方法をHIHR(Half Identity Half Reverse)コーディング方法と称し、従来の技術に係るBI(Bus−Invert)コーディング方法及びBITS(Bus Invert with Transition signaling)コーディング方法と比較する。
【００２４】
以下、次のようなデータパターンを有する人の音声を例として本発明の動作を説明する。
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
前記第１列は音声データパターンを１０進数で表現したものであり、第２列は１６ビットの２の補数固定小数点の表現であり、第３列は８ビットデータバスに伝送されるための形態で表現したものである。
【００２５】
前記第２列の１６ビットデータを８ビットデータバスに載せて送る場合を説明すれば次の通りである。送るデータの順序は１６ビットデータを前記第３列のように分離してX0,X1,…の順に送る。
【００２６】
【数１】
0003695329.tif 000002
８ビットデータを送る時は数学式１に示したような規則でコーディングして送る。即ち、X0＝00000101であるので、先ずYi式を適用すれば最上位ビットが０なのでインバーティングを行わずにY1＝00000101となり、Ziを適用すればY1の最上位ビットを除外したY1の残りの７ビットと直前にデータバスに載せられたデータZ0を排他論理和演算をしてZ1は00000101を維持する。この時、Z0は00000000に初期化されたことと見なす。
【００２７】
従って、Z1がデータバスに載せられる。次の値のX1＝10101111の場合には最上位ビットが１であるのでY2＝11010000にインバーティングされ、Z2はY2の最上位ビットを自分の最上位ビットで維持し、Y2の下位７ビットとZ1の下位７ビットを排他論理和する。すると、1|TR(Y2,Z1)＝1|TR(1010000,0000101)は結局1と1010101になって、Z2は11010101になる。以後、Z2がデータバスに載せられる。
【００２８】
前記例示された人の音声のデータパターンを本発明に係るHIHRコーディング方法に適用すれば、次のようにエンコーディングされる。
0003695329.tif 000003
本発明に係るHIHRコーディング方法でデコーディング過程はエンコーディング過程の逆過程であって、数学式２で表現される。
【００２９】
【数２】
0003695329.tif 000004
従来の技術に係るBIコーディング方法とBITSコーディング方法、そして本発明に係るHIHRコーディング方法の３つに対してトランジション数を比較すれば次の通りである。
【００３０】
先ず、BIコーディング方法によるトランジション数を表示する。
0003695329.tif 000005
BIコーディング方法では、元信号と以前信号のトランジション数がデータバス幅の半分を過ぎた時元信号をインバートする。
【００３１】
次に、BITSコーディング方法によるトランジション数を表示する。
0003695329.tif 000006
BITSコーディング方法はBIコーディング方法とは違って、自体信号の１の個数を数えてインバートするかどうかを決定する。１の個数がバス幅の半分より大きければトランジションする。
【００３２】
最後に、HIHRコーディング方法によるインバージョン(inversion)数を表示する。
0003695329.tif 000007
本発明に係るHIHRコーディング方法は元、信号の最上位ビット(Most Significant Bit: MSB)を用いてYデータを作る。MSBが１であればMSBはそのままにし、残りの７ビットをインバーティングし、MSBが０であれば元データをそのまま維持する。次に、新しく処理されたYデータと以前のZデータをビット単位で排他論理和演算する。排他論理和演算は被演算子が相異なる値の場合のみに論理１で、同じ時は論理０を出力する。
【００３３】
三つの場合を比較した時BITSコーディング方法が一番トランジションが少なく、その次がHIHRコーディング方法であることが分かる。しかし、BITSコーディング方法は余分のラインと追加的な回路が必要なのでチップ面積やコストを比較すればHIHRコーディング方法がさらに効果的であることが分かる。
【００３４】
【表１】
0003695329.tif 000008
【００３５】
【表２】
0003695329.tif 000009
表１と表２は、三つのコーディング方法でのトランジション数を相互比較したものである。この時、各パターンデータは１６ビットであるが、このデータを８ビットに分け、分けられたデータに３つのコーディング方法を適用した結果データ間のトランジション数を比較したものである。表１は音声とクラシック音楽に対する実験値であり、表２はFFT演算に対する結果である。
【００３６】
【表３】
0003695329.tif 000010
表３には、３つのコーディング方法それぞれの場合に用いられるエンコーダとデコーダの面積、遅延時間そして消費電力を音声パターンデータを適用して相互比較しておいた。表３のデータで提示されたように、本発明に係るHIHRコーディング方法が、エンコーダやデコーダで他の２つの場合より面積、遅延時間そして消費電力を総合して判断する時一番良い性能を示すことが分かる。
【００３７】
【表４】
0003695329.tif 000011
表４は、音声とクラシック音楽に３つのコーディング方法を使用した時のエンコーダ側だけ測定して相互比較したものである。表４で分かるように、HIHRの消費電力節減はCoffchip＝１０pFの時の３６.９%からCoffchip＝３０pFの時の３９.２%がなされる。これはBITSコーディング方法とほとんど同等な水準であるが、チップ面積と余分のラインに対するコストを勘案する時HIHR方法がさらに良い方法だといえる。
【００３８】
デジタル補聴器にHIHRコーディング方法を適用して消費電力を測定してみた。この際、外部メモリとデジタル信号プロセッサーコア(DSP core)とのデータ伝送時にHIHRコーディング方法を適用した。外部メモリを駆動する時には１０〜３０pFの範囲でキャパシタンスを変化させながらシミュレーションし、内部メモリを駆動する時には３pFを使用した。電源は３.３V、クロック周波数は１０MHzを適用した。表５は、１６ビットパターンデータを８ビットデータバスに載せて送ることを示すものである。
【００３９】
【表５】
0003695329.tif 000012
表５は、ラッチと出力駆動器だけを含んで測定した値である。デコーダでの消耗電力は１５３μWである。従って、HIHRコーディング方法は、uncoded方式と比較する時Coffchipが１０pFの時(１.６mW−１mW−０.１５３mW)/(１.６mW)＝２７.９%、３０pFの時(３.８７mW−２.２９mW−０.１５３mW)/(３.８７mW)＝３６.９%の電力を節約できた。
【００４０】
次に、１６ビットパターンデータを１６ビットデータバスに載せて送る場合、チップ内部ノードでのキャパシタンスは約３pFであるので、これを用いてシミュレーションすればUnencodedの場合消費電力は１.６３mWで、HIHRコーディング方式でのエンコーダ側の消費電力は１.０５mWで、デコーダ側の消費電力は０.２７６mWで測定された。従って、(１.６３mW−１.０５mW−０.２７６mW)/(１.６３mW)＝１８.７%の電力を節約できる。従って、たとえHIHRコーディング方式はナローデータバスに対して創作されたが、図７及び図８に示した音声や音楽パターンデータのように０周囲に多くのデータが集まっている分布を示せば、バス幅とデータ幅が同じでも効果的であることが分かる。
【００４１】
【発明の効果】
本発明によれば、既存の技術に係るBIコーディング方法とBITSコーディング方法で使用した余分のラインとマジョリティボータというデータのインバーティング可否を決定する回路を除去することによってコアとのインタフェース問題と追加回路に対するオーバーヘッドを縮めてチップ面積を縮小し、消費電力を省ける。
【００４２】
本発明は、ナローデータバスだけでなく０周囲に多くのデータが集まっている分布を示すパターンデータに対してはバス幅とデータ幅が同じでも消費電力を省ける。
【図面の簡単な説明】
【図１】従来の技術に係るBIエンコーダの回路図。
【図２】従来の技術に係るBIデコーダの回路図。
【図３】従来の技術に係るBITSエンコーダの回路図。
【図４】従来の技術に係るBITSデコーダの回路図。
【図５】本発明に係るHIHRエンコーダの回路図。
【図６】本発明に係るHIHRデコーダの回路図。
【図７】音声信号のデータパターン別頻度数を示すグラフ。
【図８】音楽信号のデータパターン別頻度数を示すグラフ。
【符号の説明】
１０  条件付きインバーティング手段
１２  第１排他的論理和演算手段
１４  貯蔵手段
【図１】
0003695329.tif 000013
【図２】
0003695329.tif 000014
【図３】
0003695329.tif 000015
【図４】
0003695329.tif 000016
【図５】
0003695329.tif 000017
【図６】
0003695329.tif 000018
【図７】
0003695329.tif 000019
【図８】
0003695329.tif 000020