JPH11224246A - 行列ベクトル乗算器 - Google Patents
行列ベクトル乗算器Info
- Publication number
- JPH11224246A JPH11224246A JP10025396A JP2539698A JPH11224246A JP H11224246 A JPH11224246 A JP H11224246A JP 10025396 A JP10025396 A JP 10025396A JP 2539698 A JP2539698 A JP 2539698A JP H11224246 A JPH11224246 A JP H11224246A
- Authority
- JP
- Japan
- Prior art keywords
- control signal
- data
- matrix
- addition
- bit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Complex Calculations (AREA)
Abstract
ると共に消費電力の上昇を抑え、データ蓄積手段と読出
し専用記憶手段の構造を簡略化する。 【解決手段】 行列データを符号−絶対値表現で蓄積す
る蓄積手段11と、列方向のアドレスを指定して列の符
号を制御するカウンタ13および行方向のデータの加算
を制御するセレクタ14を含む演算制御手段12と、行
列データの符号と反対符号を保持して符号制御信号によ
り列符号を出力するROM15と、この符号を制御して
演算量を低減させた累積加算手段20とを備え、この手
段20は、並列接続された複数の累積加算回路21より
成り、各回路21は、アドレスの1周期ごとに絶対値部
分を1ビット左シフトする入力レジスタ23,加算制御
信号に応じてROMからのデータの加算・非加算を切り
換える加算器24,その積算値を1ビット左シフトする
出力レジスタ25より各々が構成されている。
Description
器に係り、特に行列(マトリックス)とベクトルの演算
処理を高速かつ低消費電力で行なうことができる行列ベ
クトル乗算器に関するものである。
ルゴリズムとして広く用いられているものに、離散コサ
イン変換(以下、DCT― Discrete Cosine Transform
―と略記する。)方法およびその逆変換(以下、IDC
T―Inverse Discrete CosineTransform ―と略記す
る。)方法を用いた帯域圧縮技術がある。上記のDCT
やIDCTはいずれも直交変換の一種であるが、実際の
演算においては定数係数のマトリックスとベクトルの乗
算であり、画素値のベクトルxn 、DCT係数のベクト
ルXk に対し下式で定義される:
ture Experts Group)1、MPEG2等においては水平
方向・垂直方向に各々8画素ずつの64画素からなる正
方形型の領域(ブロック)を単位としたN=8の2次元
DCTおよびIDCTが用いられている。
きく、特に実時間処理が必要な利用形態(HDTV放
送、TV電話、映像監視システム等)における動画像圧
縮符号化・復号化はその処理系に対して要求される性能
が非常に高くなっている。このため、上記離散コサイン
変換および逆変換の計算も高速アルゴリズムと専用ハー
ドウェアを用いて処理するのが一般的であり、積和演算
の回数を大幅に削減できるチェン(Chen)の高速ア
ルゴリズムや、乗算器を用いずに計算を実行できる分散
演算(DA―Distributed Arithmetic―)法などの方式
が広範に用いられており、これらを応用した専用ハード
ウェアの構成としては、例えば文献IEICETrans. Electr
on., Vol. E75-C(1992), No.4 pp.390-397 等に開示さ
れている。ここではDA法による離散コサイン変換の計
算方法、およびハードウェアの構成方法を簡単に説明す
る。
トル乗算の第k行は次のような内積の形に表すことがで
きる:
る時、各Xn は2進数(2の補数表現)で:
と:
あるが、予めあらゆるビットパターン(2N 通り)につ
いて計算しメモリに格納しておけば、{bn,i }をNビ
ットのアドレスとみなして読み出すことができる。ま
た、2i-1 の乗算はi−1ビットの左シフトに対応して
いることに注意すると、結局上記式(4)はNビットア
ドレスのメモリ参照と左シフト、加算および減算の組み
合わせにより求めることができることが分かる。
り、以下、N=8の場合の具体的な乗算器の構成とその
手順の一例について図10ないし図12を参照しながら
説明する。まず、図10を用いて従来の行列ベクトル乗
算器の回路構成について説明する。図10において、従
来の行列ベクトル演算回路は、各行毎に入力ポートを有
し、第1の所定数であるn列と第2の所定数であるk行
の縦横方向に0か1の情報が配列されたデータとしての
マトリックス1と、図11を用いて後述するようなテー
ブルを格納すると共にアドレス信号により前記マトリッ
クス1のiビット目毎の行方向から読み出された情報に
より前記テーブルの対応する項目が読み出される読出し
専用メモリ(以下、ROM―Read Only Memory―と略記
する。)2と、このROM2より読出された値を累積加
算する累積加算器5と、を備えている。
ーブルより読み出したビットスライスを所定量、例えば
3ビットずつシフトさせるシフタ6と、このシフタ6の
出力を順次に累積加算する2入力1出力の加算器7と、
加算器7の出力を一時的に蓄積すると共に前記加算器7
の他方の入力側にその出力を供給する出力レジスタ8
と、を備えている。この従来の演算回路によれば、実質
上はシフタ3と加算器4だけでマトリックス・ベクトル
演算を行なっているために、簡単な構成で複雑な演算を
処理することができ、汎用の演算器回路を適用できる長
所がある。
作について説明する。まず、図11に示すように、全て
の8ビットパターン{bn }(28 =256通り)につ
いてマトリックスの各行k(k=0,…,7)に対応す
る部分和をあらかじめ必要な精度(例えば16ビット)
で計算したテーブルを作成する。図11に示されるテー
ブルは、上述したように、図10に示すROM2に予め
格納されている。このROM2は、8ビットのアドレス
で16ビットの精度を有する場合、その容量は4キロバ
イトとなる。
…,7}の各々から2進表現の最下位ビット(以下、L
SB― Least Significant Bit―と略記する。)を取り
出して、この8ビット{bn,0 }をアドレス信号として
前記ROM2から読出した部分和のデータを各行ごとに
累積加算器5により積算する。続いて、下から2番目の
ビット{bn,1 }をアドレスとして部分和のデータをR
OM2から読み出した後、1ビット左シフトを行ない
(これが2を乗算することに相当している)、累積加算
器5により積算する。以下同様に、図11に示すよう
に、下からi番目のビットについて部分和をi−1ビッ
ト左シフトして積算する動作{図12(a)(b)参
照}を最上位ビット(以下、MSB―Most Significant
Bit―と略記する。)の直前まで繰り返すことにより、
上記式(4)の第2項が累積加算器に積算される。MS
Bについては符号ビットであるため、{bn,M-1 }のア
ドレスで部分和を読み出して、これを「M−1」ビット
だけ左へシフトした後、符号を反転してから積算を行な
うと上記式(4)の第1項が加算されて、式(4)の解
が求められることになる。
ェアを用意することなく図10に示すようにな簡単な汎
用の演算回路により行列(マトリックス)とベクトルデ
ータとの積を簡単に計算することができるため、ハード
ウェア量を節約して高速に処理をする目的には適してい
る。
た従来の行列ベクトル乗算器によれば、入力データの性
質や内容の相関に関係なく、その演算量やハードウェア
の稼働率は常に一定であるため、例えば「0」を連続的
に演算する等のように、自明な計算や不必要な計算につ
いても累積加算器5を動作させなければならず、演算効
率が良好でないという問題があった。
おいてはどのような性質を持ったデータ列に対しても常
に同じ動作を行なうことになり、上述の例のように不要
な計算や自明な計算を繰り返すことに起因するスイッチ
ング動作の機会が増加し、このため効率が悪いばかりで
なく、消費電力の増加を招くという問題もあった。さら
に、メモリへのアクセスが入力データの各桁をアドレス
としたランダムアクセスとなるので、メモリに高度な機
能が要求されることになり、マトリックス1を読み込む
ROM2の構造が複雑になってしまうという問題点もあ
った。
る定数成分の行列(マトリックス)とベクトル変数の乗
算を行なう演算回路を、汎用の乗算器を用いるのではな
く、並列に動作する加算器およびシフタと、マトリック
スの成分を保持する読み出し専用メモリとを用いて構成
することにより、不必要な演算を省略して演算効率の改
善を図ると共に消費電力の上昇を抑え、更にマトリック
ス回路の構造が簡単なもので済む行列ベクトル乗算器を
提供することにある。
め、本発明に係る行列ベクトル乗算器は、第1の所定数
より成る列成分と第2の所定数より成る行成分により構
成される行列データを符号部分と絶対値部分とにより表
現して順次蓄積する行列データ蓄積手段と、前記行列デ
ータ蓄積手段に蓄積された行列データの特定の列成分の
列番号を指定するアドレス制御信号を出力すると共に前
記行列データの前記符号部分を符号制御信号として出力
する符号制御部と、前記アドレス制御信号に対応する前
記行列データの前記絶対値部分を加算制御信号として出
力する加算制御部と、を含む演算制御手段と、前記行列
データの特定の列成分の符号とその反対符号とを予め格
納すると共に前記符号制御部より出力される前記アドレ
ス制御信号および前記符号制御信号に基づいて対応する
列成分の符号を順次出力する読出し専用記憶手段と、前
記行列データの前記行成分ごとに設けられて前記読出し
専用記憶手段より供給された前記列成分の符号を一時的
に蓄積すると共に前記符号制御信号および加算制御信号
に基づいて前記アドレス制御信号の1周期ごとに前記行
列データの前記絶対値部分を所定量ずつ所定方向に移動
させる複数の入力蓄積部と、前記加算制御信号に応じて
前記複数の入力蓄積部のそれぞれに入力される加算制御
信号に応じて前記読み出し専用記憶手段からのデータの
加算・非加算を切り換える複数の加算部と、前記複数の
加算部の各々の積算値を一時的に蓄積すると共にこの積
算値を前記所定量ずつ前記所定方向に移動させる複数の
出力蓄積部と、より各々が構成される複数の累積加算回
路より成る累積加算手段と、を備えることを特徴として
いる。
は、請求項1に記載の乗算器において、前記累積加算手
段の入力蓄積部が前記符号制御信号および加算制御信号
に基づいて前記行列データの前記絶対値部分を1ビット
ずつ左へシフトさせるシフト機能を備えた入力レジスタ
により構成され、前記出力蓄積部が前記符号制御信号お
よび加算制御信号に基づいて前記加算部の積算値を1ビ
ットずつ左にシフトさせて出力する出力レジスタにより
構成されていることを特徴としている。
は、請求項1に記載の乗算器において、前記累積加算手
段の入力蓄積部が前記符号制御信号および加算制御信号
に基づいて前記行列データの前記絶対値部分を1ビット
ずつ右へシフトさせるシフト機能を備えた入力レジスタ
により構成され、前記出力蓄積部が前記符号制御信号お
よび加算制御信号に基づいて前記加算部の積算値を1ビ
ットずつ右にシフトさせて出力する出力レジスタにより
構成されていることを特徴としている。
は、請求項1に記載の乗算器において、前記累積加算手
段の前記累積加算回路が前記行列データの列数である前
記第1の所定数と同数設けられ、前記読出し専用記憶手
段は前記行列データの前記第1の所定数と同数の行成分
データを同時に出力し、前記累積加算回路が並列に動作
して前記読出し専用記憶手段からの行成分のデータを積
算することを特徴としている。
は、請求項1に記載の乗算器において、前記累積加算器
が、前記行列データ蓄積手段より入力される前記加算制
御信号およびアドレス制御信号の組み合わせにより、内
容を0に設定するリセットモード,現在の値を更新する
通常モード,現在の値を保持するホールドモード,およ
び入力を1ビットシフトして内部に設定するシフトモー
ドのそれぞれのモードを切り換える機能を有する一対の
前記入力蓄積部および出力蓄積部が一方の入力と出力に
接続され、さらに前記出力蓄積部の出力が分岐して他方
の入力に接続されるよう構成されていることを特徴とし
ている。
は、請求項1に記載の乗算器において、前記演算制御手
段の前記符号制御部が、クロック信号ごとにその内容を
1つずつ積算するカウンタにより構成されていることを
特徴としている。
器は、請求項6に記載の乗算器において、前記演算制御
手段の符号制御部は、前記カウンタの前記クロック信号
の下位側の複数のビットにより前記アドレス制御信号を
発生させることを特徴としている。
は、請求項1に記載の乗算器において、前記累積加算手
段は、前記行列データ蓄積手段の蓄積する行列データの
最下位ビットを前記加算制御信号として用い、前記アド
レス制御信号が1周期を経過するごとに前記加算制御部
と前記複数の出力蓄積部を構成する個々の出力蓄積部を
1ビット右シフトすることを特徴としている。
器は、請求項8に記載の乗算器において、前記累積加算
手段が、前記入力蓄積部の入力データビット幅分だけ左
シフトした位置に、前記読出し専用記憶手段から読出さ
れたデータの符号拡張を行なってから保持するように構
成されていることを特徴としている。
器は、請求項1に記載の乗算器において、前記演算制御
手段の前記加算制御部が、前記行列データ蓄積手段の任
意の桁からなるビット列を選択して、これを前記加算制
御信号である選択信号として送出する機能を備えるセレ
クタより構成されていることを特徴としている。
器は、請求項10に記載の乗算器において、前記演算制
御手段の前記符号制御部がクロック信号ごとにその内容
を1つずつ積算するカウンタにより構成され、このカウ
ンタの上位側の複数のビットを前記セレクタの選択信号
として前記累積加算手段が用いることを特徴としてい
る。
算器によれば、N成分からなる入力データの各成分を上
位の桁よりビットごとに取り出して、得られたビット列
(Nbit)を制御信号として加算器の動作モードを順次
切り替え、ROMから読み出された各ビットに対応する
係数データを積算する。この際、制御ビットが1ならば
レジスタに保持されたデータを加算し、0ならばレジス
タをホールドするようにモードを切り替えることによ
り、不必要な加算動作をレジスタの更新によるスイッチ
ングを減らすことができ、低消費電力動作が可能とな
る。N個の係数データを処理したら結果を1ビット左シ
フトし、入力データの次の桁について同様の操作を繰り
返す。以下同様に全桁を処理するまで繰り返すことにな
る。
なうために、累積加算手段の入力データに2の補数表現
ではなく符号−絶対値表現を用いている。MPEG等の
動き補償を用いた動画像圧縮処理においては、P−ピク
チャ等の差分画像のデータは0の周辺に集中している確
率が高いため、符号−絶対値表現を用いて表すと上位ビ
ットの0の個数が多くなるため、0が連続的に現れるマ
トリックスにおいては動作モードをホールド状態にする
ことにより、スイッチングの回数を一層少なくすること
ができる。
乗算器の実施形態について図面を参照しながら詳細に説
明する。まず、図1を参照して本発明の基本原理として
の第1実施形態に係る行列ベクトル乗算器の構成につい
て説明する。
クトル乗算器10は、第1の所定数であるn個より成る
列成分と第2の所定数であるk個より成る行成分より構
成される行列データを符号部分と絶対値部分とにより表
現して順次蓄積する行列データ蓄積手段11と、前記行
列データの特定の列成分の列番号を指定するアドレス信
号ヲ出力すると共に前記行列データの符号部分を符号制
御信号として出力する符号制御部13と、前記アドレス
制御信号に対応する前記行列データの前記絶対値部分を
加算制御信号として出力する加算制御部14と、を含む
演算制御手段12と、前記行列データの特定の列成分の
符号とその反対符号とを予め格納すると共に前記符号制
御部より出力される前記アドレス制御信号および前記符
号制御信号に基づいて対応する列成分の符号を順次出力
する読出し専用記憶手段(以下、ROM)15と、前記
行列データの前記第1の所定数nと同数のn個設けられ
た複数の累積加算回路21aないし21nを有する累積
加算手段20と、を備えている。
数の累積加算回路21a〜21nを有しており、この複
数の累積加算回路21a〜21nは、前記行列データの
前記行成分ごとに設けられて前記ROM15より供給さ
れた前記列成分の符号を一時的に蓄積すると共に前記符
号制御信号および加算制御信号に基づいて前記アドレス
制御信号の1周期ごとに前記行列データの前記絶対値部
分を所定量ずつ所定方向に移動させる複数の入力蓄積部
23a〜23nと、前記加算制御信号に応じて前記複数
の入力蓄積部23a〜23nのそれぞれに入力される加
算制御信号に応じて前記読み出し専用記憶手段からのデ
ータの加算・非加算を切り換える複数の加算部24a〜
24nと、前記複数の加算部24a〜24nの各々の積
算値を一時的に蓄積すると共にこの積算値を前記所定量
ずつ前記所定方向に移動させる複数の出力蓄積部25a
〜25nと、をそれぞれ備えている。
算器の動作については、以降に詳述する第2ないし第4
実施形態の動作の説明により補完するものとしてその詳
細説明を省略する。
クトル乗算器について、図2ないし図6を参照しながら
詳細に説明する。この第2実施形態に係る行列ベクトル
乗算器は、上記第1実施形態に係る乗算器の構成を更に
具体的なものにして説明するものである。
データを符号−絶対値表現の形で格納するN個のMビッ
トのレジスタと、そのレジスタ群のM−1桁目から取り
出したNビットのうち1つを指定するN:1セレクタ、
マトリックスの成分のデータを格納し列ごとに読み出す
ことのできるROM、N個が並列に動作してROMから
のデータを積算する累積加算器、マトリックスの列番号
を指定する信号を発生するカウンタとから構成される。
以下、N=8、M=12の場合についてそのアルゴリズ
ム、構成方法、機能および効果を説明する。ここで、上
記第1実施形態に係る乗算器10の構成において、第1
の所定数が「8」であり第2の所定数が「12」という
ことになる。
リズムについて説明する。入力データのxnはビット幅
を12として符号−絶対値表現を用いると:
性を用いると、
ところ式(6)はマトリックスの各行kについて「+a
k,n 」または「−ak,n 」または「0」の加算とシフト
演算との組み合わせにより求められる。
データおよびその反対符号のデータを格納した読み出し
用メモリを用意しておき、このメモリからn=0,…の
順にxn の符号に応じて+ak,n または−ak,n を順次
読み出す。8個の入力データxn は符号−絶対値表現で
表しておき、この絶対値部分の最上位ビット(10桁
目)を取り出したビット列{bn,10;n=0,…,7}
について、bn,10=1の場合のみ対応する+ak,n (ま
たは−ak,n )を累積加算器で積算し、0の場合は演算
しない。n=0,…,7について処理を終えた後、積算
結果を1ビット左シフトし、絶対値部分の次のビット
(9桁目)についても同様に+ak,n (または−
ak,n )を累積加算器で積算する処理を繰り返す。以
下、最下位ビットに至るまでこの処理を繰り返すことに
より式(6)を求めることができる。
随する符号は各列nごとにxn の符号によって(kによ
らずに)決定されるので、あらかじめマトリックスの第
n列の8個のデータを一組に、その反対符号のデータを
一組にしてメモリに格納しておき、各列ごとにどちらか
の符号をまとめて参照することによってk=0,…,7
の計算を並列に行なうことが可能となる。
成について、図2を参照しながら説明する。n列のM行
(有意データはk行)の行列より成るデータとしてのマ
トリックス1と、このマトリックス1の各成分について
の累積加算を制御する演算制御手段12と、乗算に必要
なデータをテーブルとして格納し演算制御手段の制御信
号により必要なデータを出力する読出し専用記憶手段と
してのROM15と、ROM15と演算制御手段12か
らの制御信号に基づいて乗算を行なうと共に並列に設け
られた複数(n個)の累積加算加算回路21aないし2
1nを備える累積加算手段20と、を備えている。上記
演算制御手段12は符号制御部として機能するカウンタ
13と、加算制御部として機能するセレクタ14と、を
備えており、カウンタ13はアドレス指定手段11とし
ても機能している。なお、in0〜in7は行列データ
蓄積手段11の各列成分を蓄積する入力レジスタであ
り、Acc0〜Acc7は累積加算手段20を構成する
個々の累積加算回路21a〜21nの演算対象としての
行成分であり、この第2実施形態においては、最上位ビ
ットから演算処理を開始する。
マトリックスを構成する「8×8」の各成分とその符号
を反転したデータ(すなわち、2の補数で表現されたも
の)との合計128個が、要求される精度に応じたビッ
ト幅により用意される。必要なビット幅は応用分野によ
って異なるが、例えばMPEG1やMPEG2等の場合
であれば16ビット程度の精度が要求される。これらの
データは読み出し専用メモリに格納することもできる
が、本発明の場合アドレス参照によるメモリへのランダ
ムアクセスは発生しないので、組合せ回路を用いたシー
ケンサ等を用いてもよい。上記ROM15は、これら種
々の機能構成を総称してこの用語を用いるものとする。
トリックスの列番号(0〜7)を指定する信号と各列の
符号を指定する信号S1(SIGN)によって対応する
列の対応する符号のデータを8個(精度が16ビットで
あれば128ビット分)ずつ同時に出力するように構成
されているものとする。ROM15の出力に含まれる各
データは、マトリックスの各行ごとに設けられ、各々が
並列に動作する8個の累積加算回路21aないし21n
へ供給される。この累積加算回路21aないし21nの
各々の回路は、本質的には図4に示すように2入力1出
力の加算器24であり、各々の加算器24が、ROMデ
ータD1が供給される1個の入力レジスタ23と、加算
器24の出力ポートに接続されると共に積算用に設けら
れた1個の出力レジスタ25と、を備えると共に、加算
器24の出力ポートからの信号線が出力レジスタ25に
接続された後、2つに分岐してその一方が加算器24の
他方の入力ポートに接続されたものである。
5に示すように、クロック信号に同期して入力値を内部
に設定するノーマルモードと、入力値に関係なく直前の
値を保持するホールドモードと、内容を0にリセットす
るリセットモードと、入力を1ビット左シフトして内部
にセットするシフトモードとを有しており、符号制御信
号としての信号S2(SHIFT)と加算制御信号とし
ての信号S4(EXEC)との2種類の制御信号の組合
せに応じてその動作モードが切り換えられている。
ット、入力データが12ビット(M=12)、入力8成
分(N=8)の場合、16+11+3ビット必要になる
が、この第2実施形態においては後述の理由により更に
1ビットを用意しておく。8個の入力データは通常は2
の補数表現で与えられているが、これを符号−絶対値表
現に変換して入力データレジスタに格納しておく。これ
は、例えば周知の方法であるが、入力データの最上位ビ
ット(MSB;12桁目)が1の時に限り1〜11桁目
をビット反転し、その結果に11ビット幅で1を加算し
て最上位ビットと再び連結すればよい。MSBが0の時
は何も操作する必要はない。各データのMSBは符号信
号S1(SIGN)としてROM15へ供給され、それ
ぞれ対応する列の出力データの符号が決定される。
分(1〜11桁目)の最上位(11桁目)から取り出し
た8ビットのビット列(ビットスライス){bn ;n=
0,…,7}を8:1セレクタで選択し、このセレクタ
の出力を各累積加算器の入力側および出力側レジスタの
EXEC信号として用いて通常モード(EXEC=1)
とホールドモード(EXEC=0)を切り換える。また
入力データレジスタはシフターを備えており、SHIF
T=1を受けると次のクロックに伴ってその絶対値部分
が1ビット左シフトを行なう。
出力信号S3は0〜7の値をとり、ROM15の列番号
を指定する信号S1と、セレクタの選択信号S4の両方
に用いられる。すなわち、入力レジスタの符号ビットカ
ウンタの値とによりROMの出力データが決まり、これ
に同期して累積加算器の動作モードも定まる。またカウ
ンタの下位3ビットが000の時に限りSHIFT=1
を累積加算器および入力データレジスタに送出する。ま
たカウンタの上位4ビットは入力データの何桁目までが
処理済みであるかを判定するのに用いられる。
乗算器における累積加算器の動作について説明する。演
算処理に先立ってカウンタおよび累積加算器の入出力レ
ジスタをリセットして、入力データは符号−絶対値表現
に変換して予め入力レジスタに格納しておく。演算処理
が開始されると、カウンタ値と符号に対応したROMデ
ータが累積加算回路21a〜21nに順次供給され、ま
たセレクタ14はカウンタ13の値に応じて、入力レジ
スタ23a〜23nの11ビット目b0 ,…,b7 をこ
の順でEXEC信号として加算器24a〜24nに送出
する。例えば、カウンタ13の下位3ビットが000の
時はマトリックスの第0列成分が、入力データの第0列
成分の符号に対応して正または負符号で累積加算器の入
力側レジスタに渡されることになる。このとき、もしも
EXEC=1(入力データの第0列成分の絶対値の最上
位ビットが1)であると累積加算回路21のレジスタ2
3はノーマルモードなので、次のクロックで累積加算回
路21の入力レジスタ23にROM15からのデータが
符号拡張してセットされ、出力ポートにはこの値と出力
レジスタ25の内容を加算した値が現れる。このとき、
EXEC=1であればこの値はその次のクロックで出力
レジスタ25にセットされる。一方、EXEC=0であ
れば累積加算回路21のレジスタ23,25はどちらも
ホールド状態となり、ROM15からのデータが入力レ
ジスタ23にセットされず、加算器24の出力ポートの
値も出力レジスタ25にセットされないので、図6に示
すように、加算器24は以前の状態を保ったままとなり
スイッチング動作をしないことになる。
ビットが111を示すとSHIFT=1が累積加算器に
送られ、次のクロックに伴って出力ポートのデータが1
ビット左シフトして(2を乗算することに相当)出力レ
ジスタ25にセットされる。このとき、入力レジスタ2
3の絶対値部分も1ビット左シフトされて入力データの
10桁目が入力レジスタ23の11桁目に入る。以降は
上の手順を絶対値部分の全ての桁について(11回)繰
り返せばよい。出力ポートがシフトされるごとに結果に
2が乗算されるので、最終的に11桁目の部分和には2
11が、10桁目の部分和には210が乗じられ、以下同様
に第i桁目の計算結果には2i が乗じられたものの総和
が求められる。カウンタ13が「1010111」を示
したその次のクロックで全ての桁に関する処理が終了し
ているので、累積加算器の出力レジスタから必要なビッ
ト幅のデータを取り出せば積和演算の結果が得られる。
ここで、各部分和に対する2の乗数が一つ多くなってい
るので、これを考慮してあらかじめ出力レジスタのビッ
ト幅を予め1ビット分増やしておいて、計算結果を取り
出す時に出力の最下位ビットを無視することで正しい結
果を得ることができる。
2実施形態に係る行列ベクトル乗算器の効果について説
明する。まず、通常モードではクロックに伴って入力レ
ジスタ23および出力レジスタ25の内容が更新される
と、加算器24の内部におけるスイッチング動作により
積算が行なわれるが、ホールドモードでは加算器24の
2つの入力ポートはともにクロック以前の値に固定され
ているため、スイッチング動作が行なわれず、余分な電
力消費が抑えられる。
れる0の個数が多いほど電力消費が少なくなるが、特に
動き補償を用いた動画像圧縮符号化・復号化処理におけ
る差分画像データではデータ分布は0の周囲に集中して
いるため、符号−絶対値表現を用いた場合にその上位ビ
ットが0である確率が高く、このような性質を持つデー
タ列に適用すると通常のDA法等に比較して消費電力を
大幅に削減できる。また、マトリックスの成分を格納し
ているROMはランダムアクセスされることがなく、一
定の順序でデータを順次送出するだけなので非常に構造
が単純であるという効果もある。
クトル乗算器について、図7および図8を用いて説明す
る。本発明の第3実施形態に係る乗算器は、本質的に第
2実施形態と同様のアルゴリズムを用い、その加算の順
序を反対に(下位の桁から)行なうように変更したもの
である。以下、N=8、M=12の場合について、その
構成方法、機能および効果を説明する。
構成を図7に示す。図7において、第2実施形態と同様
な構成、つまりカウンタ13およびセレクタ14を有す
る演算制御手段12、ROM15、累積加算手段20が
設けられている。また、行列データ蓄積手段11も第2
実施形態とほぼ同様に構成されているが、絶対値部分の
最上位ビットではなく最下位ビットについてビットスラ
イスを取り出してから8:1セレクタにより選択してE
XEC信号として送出する。また累積加算器の入力側レ
ジスタはROMからのデータを取得するにあたり、11
ビット左シフトした上で符号拡張して内部にセットし
(あらかじめ211を乗ずることに相当)、下位11ビッ
トは常に0とする。また、累積加算器の出力側レジスタ
は、シフトモードのとき、その入力を1ビット右シフト
して内部にセットしている。
能も第2実施形態と同様である。すなわち、演算処理に
先立ってカウンタおよび累積加算器の入出力側レジスタ
をリセットし、入力データは符号−絶対値表現で入力レ
ジスタに格納しておく。処理が開始されると、カウンタ
の下位3ビットと符号に対応したROMデータが累積加
算器に順次出力される。またセレクタは入力データレジ
スタの最下位ビットから取り出されたビットスライスb
0 ,…,b7 をカウンタの下位3ビットの示す値に応じ
て選択してこの順でEXEC信号として累積加算器に送
る。例えばカウンタの下位3ビットが010の時はマト
リックスの第2列成分(010に対応)が、入力データ
の第2成分の符号に対応した符号で累積加算器の入力側
レジスタに供給されることになる。この時EXEC=1
(入力データの第2成分の絶対値の最下位ビットが1)
で累積加算回路21のレジスタ23,25がノーマルモ
ードであるならば、次のクロックで入力レジスタ23の
12ビット目以上にROM15からのデータが符号拡張
してセットされ、第2の実施形態の場合と同様に加算器
24の出力ポートには、この値と出力側レジスタの内容
を加算した値が現れる。一方、EXEC=0であればこ
れも第2実施形態の場合と同様に累積加算回路のレジス
タ23,25は、図5のように何れもホールド状態とな
り、ROMからのデータが入力側のレジスタ23にセッ
トされず、出力ポートの値も出力側レジスタ25にセッ
トされないので、加算器24は以前の状態を保ったまま
スイッチング動作を行なうことはない。
なって、カウンタの下位3ビットが111を示すとSH
IFT=1が累積加算器に送られ、次のクロックに伴っ
て出力ポートのデータが1ビット右シフトして(1/2
を乗算することに相当)出力側レジスタ25にセットさ
れる。このとき、入力レジスタ23の絶対値部分も1ビ
ット右シフトされ、入力データの2桁目が入力データレ
ジスタの1桁目に入り入力データの1桁目に関する処理
が終了する。これ以降は、上記の手順を絶対値部分の全
ての桁につき11回繰り返せばよい。入力レジスタにあ
らかじめ211を乗じたデータが供給されているが、出力
ポートが右シフトされるごとにその結果に1/2が乗算
されるので、最終的に1桁目の部分和には20 が、2桁
目の部分和には2が、以下同様に第i桁目の計算結果に
は2i-1 が乗じられたものの総和が求められる。各桁と
もにカウンタが1010111を示したその次のクロッ
クで全ての桁に関する処理が終了しているので、累積加
算器の出力レジスタから必要なビット幅のデータを取り
出せば積和演算の結果が得られる。
形態に係る行列ベクトル乗算器の効果について説明す
る。まず、ROMからのデータを入力レジスタに供給す
る際に、ROMデータのビット幅と累積加算器のビット
幅の差に相当する部分は符号拡張を行なわなければなら
ず、図8に示すように、ROMから渡されるデータが負
であるのならばROMデータの最上位から入力側レジス
タの最上位までのビット(M=12、N=8ならば14
ビット)を全て1にセットし、正ならば0にしてレジス
タにセットする必要がある。差分画像のデータは0を中
心に正負の両側にほぼ一様に分布しているため、ROM
から渡されるデータの正負の比率は、ほぼ1:1で順序
の予測ができず、この部分のスイッング確率が非常に大
きくなる可能性があるが、あらかじめ11ビットシフト
して代入して下位11ビットを常に0にしておくと、符
号拡張に伴う上位ビットのスイッチング回数を少なくす
ることができ、さらなる低消費電力化が可能となる。
ベクトル乗算器の構成,機能および効果について、図9
を参照しながら説明する。この第4実施形態に係る乗算
器も、第1の所定数であるn列で8、第2の所定数であ
る行数も8であるがビット数Mが12の場合について説
明する。
算器の構成を図9に示す。この第4実施形態に係る乗算
器は、第2,第3実施形態に係る乗算器と同様な構成の
ROM15と、累積加算手段20と、カウンタ13が設
けられている。また、行列データ蓄積手段11も第1な
いし第3実施形態とほぼ同様の構成とするが、絶対値部
分の最上位ビットだけではなく任意のビットについてビ
ットスライスを取り出すことができ、信号S5により1
1:1の選択比率の第2のセレクタ34がカウンタの上
位4ビットに応じてどの桁を取り出すかを制御するもの
である。カウンタ13の上位4ビットと蓄積手段11と
の桁の対応は任意でよいが、例えば0000の時が11
桁目、1010の時が、1桁目のように対応づけておく
と、構成をより簡単にすることができる。
器の機能動作について説明する。第2実施形態に係る乗
算器と同様に、演算処理に先立ってカウンタ13および
累積加算回路21の入出力側のレジスタ23,25をリ
セットし、入力データは符号−絶対値表現で入力側のレ
ジスタ23に格納しておく。演算処理が開始されるとカ
ウンタ13の下位3ビットと符号に対応したROMデー
タが累積加算回路21の加算器24に順次渡される。ま
た、第2のセレクタ34は、行列データ蓄積手段11の
ある桁(カウンタの上位4ビットで指定)から取り出さ
れたビットスライスb0 ,…,b7 を、カウンタ13の
下位3ビットの示す値に応じてセレクタ14により選択
してこの順でEXEC信号S4として累積加算回路21
に送る。例えば、カウンタ13が0011101の時は
蓄積手段11に格納されているマトリックスの第5列成
分(101に対応)が、入力データの第5成分の符号に
対応して正または負符号で累積加算回路21の入力側レ
ジスタ23に渡され、入力レジスタの8桁目(0011
に対応)から取り出されたビットスライスの第5成分が
累積加算器へEXEC信号として渡されることになる。
以下第2実施形態と同様の手順で累積加算を行なう。
の加算を終了するごとに入力レジスタの1ビット左シフ
トを行なっていたが、ここではカウンタの上位4ビット
に応じてビットスライスを取り出す桁を切り換えるため
のハードウェアとして第2のセレクタ34を追加するだ
けで、左シフトのための機構を省略し、さらにシフトに
伴って生じるレジスタの更新を抑制するので、さらなる
低消費電力化が可能となる。
係る行列ベクトル乗算器によれば、入力された行列デー
タのビットが0の時は加算を行なわないので、消費電力
を大幅に低減することが可能となると共に、各行に関す
る積算を並列接続された複数の累積加算回路により並列
に演算処理することができるので、演算処理の高速化が
可能となる。
入出力レジスタのスイッチング動作の回数を削減するこ
ともできるので、この点においても消費電力の低減が可
能となるばかりでなく、読出し専用記憶手段へのランダ
ムアクセスが発生しないことになるので、読出し専用記
憶手段(ROM)の構造を簡単化するこもできる。
も削減することができ、消費電力の低減化が期待でき、
また、行列データ蓄積手段のシフト機能が不要となるの
で、蓄積手段の構造を簡略化でき、スイッチングの回数
も削減される。さらに、カウンタを共用することでハー
ドウェア量の削減を図ることもできる。
行列ベクトル乗算器の構成を示すブロック図。
器の構成を示すブロック図。
に用いられるROMの機能を表すテーブルと、第5列の
+符号を指定された場合とを示す説明図。
して用いられる累積加算回路を示すブロック図。
ぞれ入力される制御信号に対するモード割り当てテーブ
ルを示す説明図。
路の動作状態の一例を説明するため入力データ絶対値部
分の最上位ビットのビットスライスが(0110110
0)、次の桁のビットスライスが(0110....)
の場合を示す説明図。
器の構成を示すブロック図。
ける累積加算回路の入力側レジスタへのデータのセット
方法、(b)第3実施形態における累積加算回路の入力
側レジスタへのデータのセット方法をそれぞれ示す説明
図。
器の構成を示すブロック図。
構成を示すブロック図。
れたテーブルを示す説明図。
す説明図。
―) 25(a〜n) 出力蓄積部(出力レジスタ―BREG
―) 34 符号制御部(第2のセレクタ)
Claims (11)
- 【請求項1】第1の所定数より成る列成分と第2の所定
数より成る行成分により構成される行列データを符号部
分と絶対値部分とにより表現して順次蓄積する行列デー
タ蓄積手段と、 前記行列データ蓄積手段に蓄積された行列データの特定
の列成分の列番号を指定するアドレス制御信号を出力す
ると共に前記行列データの前記符号部分を符号制御信号
として出力する符号制御部と、前記アドレス制御信号に
対応する前記行列データの前記絶対値部分を加算制御信
号として出力する加算制御部と、を含む演算制御手段
と、 前記行列データの特定の列成分の符号とその反対符号と
を予め格納すると共に前記符号制御部より出力される前
記アドレス制御信号および前記符号制御信号に基づいて
対応する列成分の符号を順次出力する読出し専用記憶手
段と、 前記行列データの前記行成分ごとに設けられて前記読出
し専用記憶手段より供給された前記列成分の符号を一時
的に蓄積すると共に前記符号制御信号および加算制御信
号に基づいて前記アドレス制御信号の1周期ごとに前記
行列データの前記絶対値部分を所定量ずつ所定方向に移
動させる複数の入力蓄積部と、前記加算制御信号に応じ
て前記複数の入力蓄積部のそれぞれに入力される加算制
御信号に応じて前記読み出し専用記憶手段からのデータ
の加算・非加算を切り換える複数の加算部と、前記複数
の加算部の各々の積算値を一時的に蓄積すると共にこの
積算値を前記所定量ずつ前記所定方向に移動させる複数
の出力蓄積部と、より各々が構成される複数の累積加算
回路より成る累積加算手段と、 を備えることを特徴とする行列ベクトル乗算器。 - 【請求項2】前記累積加算手段の入力蓄積部は前記符号
制御信号および加算制御信号に基づいて前記行列データ
の前記絶対値部分を1ビットずつ左へシフトさせるシフ
ト機能を備えた入力レジスタにより構成され、前記出力
蓄積部は前記符号制御信号および加算制御信号に基づい
て前記加算部の積算値を1ビットずつ左にシフトさせて
出力する出力レジスタにより構成されていることを特徴
とする請求項1に記載の行列ベクトル乗算器。 - 【請求項3】前記累積加算手段の入力蓄積部は前記符号
制御信号および加算制御信号に基づいて前記行列データ
の前記絶対値部分を1ビットずつ右へシフトさせるシフ
ト機能を備えた入力レジスタにより構成され、前記出力
蓄積部は前記符号制御信号および加算制御信号に基づい
て前記加算部の積算値を1ビットずつ右にシフトさせて
出力する出力レジスタにより構成されていることを特徴
とする請求項1に記載の行列ベクトル乗算器。 - 【請求項4】前記累積加算手段の前記累積加算回路は前
記行列データの列数である前記第1の所定数と同数設け
られ、前記読出し専用記憶手段は前記行列データの前記
第1の所定数と同数の行成分データを同時に出力し、前
記累積加算回路が並列に動作して前記読出し専用記憶手
段からの行成分のデータを積算することを特徴とする請
求項1に記載の行列ベクトル乗算器。 - 【請求項5】前記累積加算器は、前記行列データ蓄積手
段からの前記加算制御信号およびアドレス制御信号の組
合わせにより、内容を0に設定するリセットモード,現
在の値を更新する通常モード,現在の値を保持するホー
ルドモード,および入力を1ビットシフトして内部に設
定するシフトモードのそれぞれのモードを切り換える機
能を有する1対の前記入力蓄積部および出力蓄積部が一
方の入力と出力とに接続され、さらに前記出力蓄積部の
出力が分岐して他方の入力に接続されるよう構成されて
いることを特徴とする請求項1に記載の行列ベクトル乗
算器。 - 【請求項6】前記演算制御手段の前記符号制御部は、ク
ロック信号ごとにその内容を1つずつ積算するカウンタ
により構成されていることを特徴とする請求項1に記載
の行列ベクトル乗算器。 - 【請求項7】前記演算制御手段の前記符号制御部は、前
記カウンタの前記クロック信号の下位側の複数のビット
により前記アドレス制御信号を発生させることを特徴と
する請求項6に記載の行列ベクトル乗算器。 - 【請求項8】前記累積加算手段は、前記行列データ蓄積
手段の蓄積する行列データの最下位ビットを前記加算制
御信号として用いて、前記アドレス制御信号が1周期を
経過するごとに前記加算制御部と前記複数の出力蓄積部
の個々の出力蓄積部を1ビット右シフトすることを特徴
とする請求項1に記載の行列ベクトル乗算器。 - 【請求項9】前記累積加算手段は、前記行列データ蓄積
手段の入力データビット幅分だけ左シフトした位置に、
前記読出し専用記憶手段から読出されたデータの符号拡
張を行なってから保持するように構成されていることを
特徴とする請求項8に記載の行列ベクトル乗算器。 - 【請求項10】前記演算制御手段の前記加算制御部は、
前記行列データ蓄積手段の任意の桁からなるビット列を
選択して、これを前記加算制御信号である選択信号とし
て送出する機能を備えるセレクタより構成されているこ
とを特徴とする請求項1に記載の行列ベクトル乗算器。 - 【請求項11】前記演算制御手段の前記符号制御部は、
クロック信号ごとにその内容を1つずつ積算するカウン
タにより構成され、このカウンタの上位側の複数のビッ
トを前記セレクタの選択信号として前記累積加算手段が
用いることを特徴とする請求項10に記載の行列ベクト
ル乗算器。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP02539698A JP3895031B2 (ja) | 1998-02-06 | 1998-02-06 | 行列ベクトル乗算器 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP02539698A JP3895031B2 (ja) | 1998-02-06 | 1998-02-06 | 行列ベクトル乗算器 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH11224246A true JPH11224246A (ja) | 1999-08-17 |
| JP3895031B2 JP3895031B2 (ja) | 2007-03-22 |
Family
ID=12164744
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP02539698A Expired - Fee Related JP3895031B2 (ja) | 1998-02-06 | 1998-02-06 | 行列ベクトル乗算器 |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP3895031B2 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3686733A1 (en) | 2019-01-23 | 2020-07-29 | Fujitsu Limited | Calculation processing apparatus, program, and method of controlling the calculation processing apparatus |
-
1998
- 1998-02-06 JP JP02539698A patent/JP3895031B2/ja not_active Expired - Fee Related
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP3686733A1 (en) | 2019-01-23 | 2020-07-29 | Fujitsu Limited | Calculation processing apparatus, program, and method of controlling the calculation processing apparatus |
Also Published As
| Publication number | Publication date |
|---|---|
| JP3895031B2 (ja) | 2007-03-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US6820102B2 (en) | DSP unit for multi-level global accumulation | |
| JP2001142678A (ja) | 処理コアの操作方法および乗算実行方法 | |
| US5894430A (en) | Orthogonal transform processor | |
| JP2001147804A (ja) | パッケージデータのシフト方法および処理コア | |
| KR19990022657A (ko) | 이산코사인변환 연산회로 | |
| KR20010067275A (ko) | 벡터화 데이터에 대한 연산 동작 방법 및 장치 | |
| US4853887A (en) | Binary adder having a fixed operand and parallel-serial binary multiplier incorporating such an adder | |
| US20020040378A1 (en) | Single instruction multiple data processing | |
| US20010033617A1 (en) | Image processing device | |
| KR20010072420A (ko) | 이미지 프로세싱 동안에 2차원 변환을 실행하기 위한 회로및 방법 | |
| US5668748A (en) | Apparatus for two-dimensional discrete cosine transform | |
| WO2002029552A1 (en) | Single instruction multiple data processing | |
| JPH11224246A (ja) | 行列ベクトル乗算器 | |
| JP5589628B2 (ja) | 内積演算装置および内積演算方法 | |
| JP2002519957A (ja) | 符号関数を処理する方法および装置 | |
| US5671169A (en) | Apparatus for two-dimensional inverse discrete cosine transform | |
| US5999958A (en) | Device for computing discrete cosine transform and inverse discrete cosine transform | |
| KR0178746B1 (ko) | 매크로블럭의 반픽셀처리장치 | |
| JP3970442B2 (ja) | 離散コサイン変換装置及び逆離散コサイン変換装置 | |
| JPH0644291A (ja) | 離散コサイン変換器及び情報符号化器 | |
| KR100350943B1 (ko) | 분포연산방식을 이용한 고속 dct 연산회로 | |
| CN114781627B (zh) | 一种神经网络计算终端及神经网络计算方法 | |
| US8693796B2 (en) | Image processing apparatus and method for performing a discrete cosine transform | |
| EP1269308A2 (en) | Multiplier architecture in a general purpose processor optimized for efficient multi-input addition | |
| CN107018420A (zh) | 一种低功耗二维离散余弦变换方法及其电路 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040413 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060425 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060512 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060711 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20061201 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061213 |
|
| LAPS | Cancellation because of no payment of annual fees |