(57)【要約】【課題】従来のデータ乗算装置で無駄に使われていたデータ保存領域を減らし、回路規模を縮小し、かつ消費電力を改善することができる乗算装置を提供する。【解決手段】乗算係数用ＲＯＭ１３は、符号付１０進数表現において正負のアンバランスな数を、２の補数又は符号付絶対値で表現されるｍビットよりも少ないｎ（ｎ＜ｍ）ビットで表現し、係数データとして記憶する。乗算器１２は、乗算係数用ＲＯＭ１３に記憶された前記係数データを入力データに乗算し、ｎビットの演算を行う。【選択図】  図１
2004362345.tif 000002
【特許請求の範囲】
【請求項１】
入力データに正負のアンバランスな係数を乗算する乗算装置であって、
正負のアンバランスな数を２の補数又は符号付絶対値で表現されるｍビットよりも少ないｎ（ｎ＜ｍ）ビットで表現し、係数データとして記憶する係数記憶手段と、
前記係数記憶手段に記憶された前記正負のアンバランスな数を表現するｎビットの係数データを入力データに乗算してｎビットの演算をする乗算手段と
を備えることを特徴とする乗算装置。
【請求項２】
前記乗算手段は前記係数データにマイナスを示すデータが含まれるときにはマイナスデータの最小値に加算結果が０以上になる値ｇ（ｇ＝２ｘ）を加算し、ｎビットの演算をすることを特徴とする請求項１記載の乗算装置。
【請求項３】
前記乗算手段は、Ａを符号付、Ｂを符号なしｎビットの値としたとき、Ａ×Ｂを、
Ａ×Ｂ＝（Ａ＋ｇ）×Ｂ−ｇ×Ｂ
によって演算することを特徴とする請求項２記載の乗算装置。
【請求項４】
入力データに正負のアンバランスな係数を乗算するための乗算方法であって、
正負のアンバランスな数を２の補数又は符号付絶対値で表現されるｍビットよりも少ないｎ（ｎ＜ｍ）ビットで表現した係数データを係数記憶手段から取り出して入力データに乗算し、ｎビットの演算をする乗算工程
を備えることを特徴とする乗算方法。
【請求項５】
前記係数記憶手段は正負のアンバランスな数を２の補数又は符号付絶対値で表現されるｍビットよりも少ないｎ（ｎ＜ｍ）ビットで表現した係数データを記憶し、前記乗算工程は前記係数データにマイナスを示すデータが含まれるときにはマイナスデータの最小値に加算結果が０以上になる値ｇ（ｇ＝２ｘ）を加算し、ｎビットの演算をすることを特徴とする請求項４記載の乗算方法。
【請求項６】
前記乗算工程は、Ａを符号付、Ｂを符号なしｎビットの値としたとき、Ａ×Ｂを、
Ａ×Ｂ＝（Ａ＋ｇ）×Ｂ−ｇ×Ｂ
によって演算することを特徴とする請求項５記載の乗算方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、入力データに所定のデータ群αを乗算する乗算装置及び乗算方法に関し、特に正負のアンバランスな係数を乗算する乗算装置及び乗算方法に関する。
【０００２】
【従来の技術】
所定のデータ群α（−４以上１１以下）があり、それを乗算係数として用い、入力データに乗算したい場合に、従来はデータを５ビットで表現した後５ビットのデータ乗算装置で演算していた。
【０００３】
この演算技術は、従来から一般的に行われている技術であり、先行技術文献を調査しても該当する文献はなかった。
【０００４】
【発明が解決しようとする課題】
しかしながら、前記従来のデータ乗算装置で演算する場合αの要素の範囲は１６である為に、各データは４ビットで表せるはずである。それにもかかわらず１ビット多い５ビットを割り当てないと演算できないのでこの部分が無駄になる。このαの様に範囲が決まっており、なおかつ比較的小さなデータを大量に扱う分野ではこの１ビットの影響が大きくなる。この例つまり４ビットと５ビットではデータ保存領域に２５％もの差ができる。
【０００５】
本発明は、前記実情に鑑みてなされたものであり、従来のデータ乗算装置で無駄に使われていたデータ保存領域を減らし、回路規模を縮小し、かつ消費電力を改善することができる乗算装置及び乗算方法に関する。
【０００６】
【課題を解決するための手段】
本発明に係る乗算装置は、前記課題を解決するために、入力データに正負のアンバランスな係数を乗算する乗算装置であって、正負のアンバランスな数を、２の補数又は符号付絶対値で表現されるｍビットよりも少ないｎ（ｎ＜ｍ）ビットで表現し、係数データとして記憶する係数記憶手段と、前記係数記憶手段に記憶された前記正負のアンバランスな数を表現するｎビットの係数データを入力データに乗算し、ｎビットの演算をする乗算手段とを備える。
【０００７】
係数記憶手段は、正負のアンバランスな数を、２の補数又は符号付絶対値で表現されるｍビットよりも少ないｎ（ｎ＜ｍ）ビットで表現した係数データを記憶している。乗算手段は、係数記憶手段に記憶された正負のアンバランスな数を表現するｎビットの係数データを用いてｎビットの演算を行う。
【０００８】
本発明に係る乗算方法は、前記課題を解決するために、入力データに正負のアンバランスな係数を乗算するための乗算方法であって、正負のアンバランスな数を２の補数又は符号付絶対値で表現されるｍビットよりも少ないｎ（ｎ＜ｍ）ビットで表現した係数データを係数記憶手段から取り出して入力データに乗算し、ｎビットの演算をする乗算工程を備える。
【０００９】
乗算工程は、正負のアンバランスな数を２の補数又は符号付絶対値で表現されるｍビットよりも少ないｎ（ｎ＜ｍ）ビットで表現した係数データを係数記憶手段から取り出して入力データに乗算し、ｎビットの演算を行う。
【００１０】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照しながら説明する。この実施の形態は、半導体装置等にて実現されるフィルタに用いられる乗算装置であり、図１に示すような構成を採る。
【００１１】
すなわち、図１において、乗算装置１０は、入力データに正負のアンバランスな係数を乗算する乗算装置であって、ｎビットの正負のアンバランスな係数データを記憶する乗算係数用ＲＯＭ１３と、この乗算係数用ＲＯＭ１３に記憶された係数データを入力データに乗算し、ｎビットの演算をする乗算器１２とを備える。
【００１２】
この乗算装置１０にあって、乗算係数用ＲＯＭ１３は符号付１０進数表現において正負のアンバランスな数を、２の補数又は符号付絶対値で表現されるｍビットよりも少ないｎ（ｎ＜ｍ）ビットで表現し、係数データとして記憶する。乗算器１２は前記係数データにマイナスを示すデータが含まれるときにはマイナスデータの最小値に加算結果が０以上になる値ｇを加算し、ｎビットの演算をする。
【００１３】
以下、乗算装置１０の原理、構成、動作を説明する。
【００１４】
通常あるビット数、例えば４ビットで表わす数は絶対値表現で０から１５、２の補数表現で−８から７であるが、データの種類によっては負の範囲を減らしても正の範囲を増やす事によって表現したいときがある。
【００１５】
例えば、半導体装置等にて実現されるフィルタに用いられるデータの乗算装置では、負の範囲を減らして−４から１１のようにした計１６個の乗算係数を必要とする場合がある。図１に示すような構成の乗算装置１０において乗算係数用ＲＯＭ１３に格納される。乗算器１２には入力端子１１から入力データが供給され、乗算器１２では前記乗算係数用ＲＯＭ１３から前記乗算係数を取り出し前記入力データに乗算して乗算結果を出力端子１４から出力する。図２は乗算係数用ＲＯＭから取り出したディジタルフィルタに使う係数の特性の具体例である。負のレベル範囲は正のレベル範囲に比べ少ない。
【００１６】
符号付１０進数で表現すると−４から＋１１である正負のアンバランスな数は、２の補数で表現すると、図３に示すように、１１１００〜０１０１１というように各５ビットで表現される。これを、本発明では、１１００〜１０１１というように前記５ビットよりも１ビット少ない各４ビットで表現されるデータとして扱う。−４から＋１１の範囲においては、同じに表現されるデータはない。なお、本実施の形態では、２の補数表現のデータを用いて説明しているが、絶対値表現のデータも１０１００〜０１０１１という各５ビットが必要となる。
【００１７】
例えば、Ａを符号付、Ｂを符号なし４ビットの数とするとＡとＢの乗算、
Ａ×Ｂ＝｛Ａ３，Ａ２，Ａ１，Ａ０｝×｛Ｂ３，Ｂ２，Ｂ１，Ｂ０｝・・（１）
は、汎用的には図４に示すようになる。
【００１８】
前記（１）式を用いて、Ａ＝１１０１ｂ（１０進数では−３）、Ｂ＝００１１ｂ（１０進数では３）を計算すると、図５のようになり、
“１，１，１，１，０，１，１，１”となり−９が得られる。
【００１９】
ここで、４ビットで−４から１１まで表わす数値の演算を考える。最小値が−４なので４を加えれば０以上になる。そこで、４をｇとして表せば、以下の（２）式が成り立つ。なお、ｇは一般化すると２ｘとなり、ｘは１以上の整数である。
Ａ×Ｂ＝（Ａ＋ｇ）×Ｂ−ｇ×Ｂ，（ｇ＝４）      ・・（２）
【００２０】
このように、係数データにマイナスを示すデータが含まれるときにはマイナスデータの最小値に加算結果が０以上になる値ｇを加算し、ｎビットの演算をすることができる。つまり、先の式（１）をこの様な式（２）に表わすと符号なし演算が利用でき、（Ａ＋ｇ）×Ｂと−ｇ×Ｂビットを表現すれば図６となる。図６において破線で囲った部分は４を加えた結果変化した場所を示す。
【００２１】
−ｇ×Ｂの部分をまとめて変形すると図７及び図８になる。図７は図６における−ｇ×Ｂの部分をまとめた結果であり、図８はマイナスを２の補数表現の性質を利用してもう一度変形した結果である。
【００２２】
これらをまとめた結果Ａ×Ｂは図９となる。ここで！Ａ２とＢ０を変化させたときに図１０が成り立つので、Ａ×Ｂは図１１となる。
【００２３】
この図１１を回路として構成する一例を図１２に示す。これは、Ａ×Ｂ＝Ｃの回路を表す。この回路は、前記図１に示した乗算器１２を実現する回路である。ここで、（）内の数字はビット位置を示す。＃付の数字は各々結線するものとする。また、Ｈは１ビット半加算器を、Ａは１ビット全加算器を示すものとする。
【００２４】
図１１の下位側（図の右側）から始まる列毎の加算結果を、図１２のようにＣ（０）、Ｃ（１）、Ｃ（２）、Ｃ（３）、Ｃ（４）、Ｃ（５）、Ｃ（６）、Ｃ（７）とする。Ｃ（０）はＡ（０）とＢ（０）を論理積（ＡＮＤ）ゲートで演算した結果の＃１となる。Ｃ（１）はＡ（１）とＢ（０）のＡＮＤゲートによる＃２とＡ（０）とＢ（１）のＡＮＤゲートによる＃４との１ビット半加算器２１による加算結果となる。
【００２５】
Ｃ（２）はＡ（２）とＢ（０）の否定論理積（ＮＡＮＤ）ゲートによる＃３と、Ａ（１）とＢ（１）のＡＮＤゲートによる＃５との１ビット半加算器２２による加算結果と、Ａ（０）とＢ（２）のＡＮＤゲートによる＃７とを１ビット全加算器２３により加算し、その全加算結果に“１”を１ビット半加算器２４により加算した結果となる。１ビット全加算器２３には、＃２と＃４を加算した１ビット半加算器２１からの加算出力も供給されている。
【００２６】
Ｃ（３）はＡ（２）とＡ（３）の排他的論理和（ＸＯＲ）ゲートによる＃Ａ２３とＢ（０）のＡＮＤゲートによる＃１３と、Ａ（２）とＢ（１）のＮＡＮＤゲートによる＃６との１ビット半加算器２５による加算結果と、Ａ（１）とＢ（２）とのＡＮＤゲートによる＃８とを１ビット全加算器２６により加算し、その全加算結果にＡ（０）とＢ（３）のＡＮＤゲートによる＃１０とを１ビット全加算器２７により加算し、その全加算結果に前記Ｃ（２）を出した１ビット半加算器２４の加算出力を１ビット半加算器２８にて加算した結果となる。ここで、１ビット全加算器２６には１ビット半加算器２２からの加算結果も供給されている。また、１ビット全加算器２７には１ビット全加算器２３からの加算結果も供給されている。
【００２７】
Ｃ（４）はＡ（２）とＡ（３）のＸＯＲゲートによる＃Ａ２３とＢ（１）のＡＮＤゲートによる＃１４と、Ａ（２）とＢ（２）のＮＡＮＤゲートによる＃９との１ビット全加算器２９による加算結果と、Ａ（１）とＢ（３）とのＡＮＤゲートによる＃１１とを１ビット全加算器３０により加算し、その全加算結果に１ビット全加算器２７の加算結果と１ビット半加算器２８の加算結果を１ビット全加算器３１で加算した結果として得られる。
【００２８】
Ｃ（５）はＡ（２）とＡ（３）のＸＯＲゲートによる＃Ａ２３とＢ（２）のＡＮＤゲートによる＃１５と、Ａ（２）とＢ（３）のＮＡＮＤゲートによる＃１２との１ビット全加算器３２による加算結果と、１ビット全加算器３０の加算結果と１ビット全加算器３１の加算結果とを１ビット全加算器３３で加算した結果として得られる。ここで、１ビット全加算器３２には１ビット半加算器２９からの加算結果も供給されている。
【００２９】
Ｃ（６）はＡ（２）とＡ（３）のＸＯＲゲートによる＃Ａ２３とＢ（３）のＡＮＤゲートによる＃１６と、Ａ（０）とＢ（０）のＡＮＤゲートによる＃１との１ビット半加算器３４による加算結果と、１ビット全加算器３２の加算結果と１ビット全加算器３３の加算結果とを１ビット全加算器３５で加算した結果として得られる。
【００３０】
Ｃ（７）は１ビット半加算器３４の加算結果と１ビット全加算器３５の加算結果とに“１”を加算した結果として得られる。
【００３１】
図１１において、（Ａ３＋Ａ２）の桁上げを破棄すると最終的に図１３と変形できる。
【００３２】
Ａ＝１１０１ｂ（１０進数では−３）、Ｂ＝００１１ｂ（１０進数では３）のときに、従来方式と本発明の方式とで結果が同じになるか否かを図１４を用いて検証する。図１４に示したとおり、結果は同じになる。
【００３３】
このように、図１３に示した演算によれば、通常の符号付乗算装置と回路規模や速度差の無い演算ができるので、これに従って設計した乗算装置は通常の符号付乗算装置と回路規模や速度差の無い装置となる。
【００３４】
ここで、Ａ＝１００１ｂ（１０進数では９）、Ｂ＝００１０ｂ（１０進数では２）のときに、Ａ×Ｂが従来方式と本発明の方式とでどのようになるかを図１５を用いて比較する。従来方式ではＡは通常では−７となり、４ビット表現は出来ない。このため、Ａ×Ｂは、図１５のように−１４となってしまう。これに対して本発明の当方式では、１８になる。
【００３５】
この乗算装置を使うことにより従来技術で無駄に使われていたデータ保存領域を２５％程減らすことができ、全体の回路規模を縮小できる。また、回路規模が減ることにより消費電力の改善に寄与する。
【００３６】
なお、本実施の形態では、図３に示すような正負のアンバランスな数を２の補数又は符号付絶対値で表現される５ビットよりも少ない４ビットで表現し、係数データとして乗算係数用ＲＯＭ１３に記憶したが、これは例示に過ぎず、例えば従来２５６個の乗算係数を９ビットで表現した後、９ビットのデータ乗算装置で演算していたような場合でも、本来２５６を表せる８ビットで正負のアンバランスな数を表現し、本発明を適用すれば、データ保存領域を１２．５％程節約できる。
【００３７】
【発明の効果】
本発明に係る乗算装置にあって乗算手段は、係数記憶手段に記憶された正負のアンバランスな数を表現するｎビットの係数データを用いてｎビットの演算を行う。係数記憶手段は、正負のアンバランスな数を、２の補数又は符号付絶対値で表現されるｍビットよりも少ないｎ（ｎ＜ｍ）ビットで表現した係数データを記憶しているので、従来の乗算装置で無駄に使われていたデータ保存領域を減らし、回路規模を縮小し、かつ消費電力を改善することができる。
【００３８】
また、本発明に係る乗算装置の前記係数記憶手段は正負のアンバランスな数を、２の補数又は符号付絶対値で表現されるｍビットよりも少ないｎ（ｎ＜ｍ）ビットで表現した係数データを記憶し、前記乗算手段は前記係数データにマイナスを示すデータが含まれるときにはマイナスデータの最小値に加算結果が０以上になる値ｇを加算し、ｎビットの演算をするので、ｎビットの演算を通常の符号付乗算機と回路規模や速度差無く実行できる。
【００３９】
本発明に係る乗算方法にあって乗算工程は、正負のアンバランスな数を２の補数又は符号付絶対値で表現されるｍビットよりも少ないｎ（ｎ＜ｍ）ビットで表現した係数データを係数記憶手段から取り出して入力データに乗算し、ｎビットの演算を行う。係数記憶手段は、正負のアンバランスな数を２の補数又は符号付絶対値で表現されるｍビットよりも少ないｎ（ｎ＜ｍ）ビットで表現した係数データを記憶しているので、従来の乗算装置で無駄に使われていたデータ保存領域を減らし、回路規模を縮小し、かつ消費電力を改善することができる。
【００４０】
また、本発明に係る乗算方法の前記係数記憶手段は正負のアンバランスな数を２の補数又は符号付絶対値で表現されるｍビットよりも少ないｎ（ｎ＜ｍ）ビットで表現した係数データを記憶し、前記乗算工程は前記係数データにマイナスを示すデータが含まれるときにはマイナスデータの最小値に加算結果が０以上になる値ｇを加算し、ｎビットの演算を行うので、ｎビットの演算を通常の符号付乗算機と回路規模や速度差無く実行できる。
【図面の簡単な説明】
【図１】乗算装置の構成を示す図である。
【図２】ディジタルフィルタの特性図である。
【図３】符号付１０進数表現の−４〜＋１１に対する各表現でのデータを示す図である。
【図４】汎用的なＡ×Ｂの演算を説明するための図である。
【図５】Ａ＝１１０１ｂ（１０進数では−３）、Ｂ＝００１１ｂ（１０進数では３）のときの演算を説明するための図である。
【図６】本発明で用いる（Ａ＋ｇ）×Ｂと−ｇ×Ｂビットの演算を説明するための図である。
【図７】図６にて説明した演算のうち、−ｇ×Ｂの部分をまとめた図である。
【図８】図７にて説明した部分をマイナスを２の補数表現の性質を利用してもう一度変形した結果を示す図である。
【図９】本発明によるＡ×Ｂをまとめた結果を示す図である。
【図１０】！Ａ２とＢ０を変化させたときに成立する結果を示す図である。
【図１１】図１０から得られるＡ×Ｂの演算を示す図である。
【図１２】図１１を回路とした回路図を示す図である。
【図１３】図１１の演算を変形した演算を示す図である。
【図１４】従来方式と本発明の方式とで結果が同じになるか否かを検証した図である。
【図１５】Ａ＝１００１ｂ（１０進数では９）、Ｂ＝００１０ｂ（１０進数では２）のときに、Ａ×Ｂが従来方式と本発明の方式とでどのようになるかを比較した図である。
【符号の説明】
１０  乗算装置、１２  乗算器、１３  乗算係数用ＲＯＭ
【図１】
2004362345.tif 000003
【図２】
2004362345.tif 000004
【図３】
2004362345.tif 000005
【図４】
2004362345.tif 000006
【図５】
2004362345.tif 000007
【図６】
2004362345.tif 000008
【図７】
2004362345.tif 000009
【図８】
2004362345.tif 000010
【図９】
2004362345.tif 000011
【図１０】
2004362345.tif 000012
【図１１】
2004362345.tif 000013
【図１２】
2004362345.tif 000014
【図１３】
2004362345.tif 000015
【図１４】
2004362345.tif 000016
【図１５】
2004362345.tif 000017