JPH0962653A - 積和演算装置、積和演算器集積回路装置及び累積加算器 - Google Patents

積和演算装置、積和演算器集積回路装置及び累積加算器

Info

Publication number
JPH0962653A
JPH0962653A JP7220513A JP22051395A JPH0962653A JP H0962653 A JPH0962653 A JP H0962653A JP 7220513 A JP7220513 A JP 7220513A JP 22051395 A JP22051395 A JP 22051395A JP H0962653 A JPH0962653 A JP H0962653A
Authority
JP
Japan
Prior art keywords
data
product
bit
input
output
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.)
Pending
Application number
JP7220513A
Other languages
English (en)
Inventor
Kunihiko Hara
邦彦 原
Yutaka Arima
裕 有馬
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP7220513A priority Critical patent/JPH0962653A/ja
Priority to US08/580,193 priority patent/US5764557A/en
Priority to KR1019960014014A priority patent/KR970012132A/ko
Publication of JPH0962653A publication Critical patent/JPH0962653A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/552Powers or roots, e.g. Pythagorean sums
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/544Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices for evaluating functions by calculation
    • G06F7/5443Sum of products

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Image Analysis (AREA)

Abstract

(57)【要約】 【課題】 従来例に比較して小さくでき、かつ演算時間
を短くでき、しかも低価格で製造できる積和演算装置、
積和演算器集積回路及び累積加算器を提供する。 【解決手段】 第2の入力データ106のビット状態が
1であるビット信号の桁位置データ6を出力するビット
位置エンコーダ2と、第1の入力データ105を桁位置
データ6の数だけ桁移動して出力するバレルシフタ1
と、バレルシフタ1から出力されるデータ3とマルチプ
レクサ104から出力されるデータ119とを加算して
出力する加算器102と、加算器102から出力される
データを一時保持した後、出力端子から出力する一方、
マルチプレクサ104に出力するレジスタと、第3の入
力データ107とレジスタ103から入力されるデータ
の一方を、加算器102に出力するマルチプレクサ10
4を備え、第1と第2の入力データの積と第3の入力デ
ータの和を演算して出力する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、画像処理に適した
積和演算装置、積和演算器集積回路装置及び累積加算器
に関する。
【0002】
【従来の技術】画像処理システムにおいては、一般に入
力された画像データから例えば輪郭などの特徴量を抽出
したり、ノイズを除去するために畳み込み積分(コンボ
ルーション)を行うことが不可欠である。この画像デー
タの畳み込み積分を実行するためには,大量の積和演算
を処理しなければならない。しかも、動画の実時間処理
を実現するためには極めて高速な演算処理が必要とな
る。現在の動画レートは、CCDレートで表すと、毎秒
30フレーム程度である。また標準的な画素数は512
×512である。従って、サイズ16×16のカーネル
を用いた畳み込み積分を実行する場合の積和演算回数
は、毎秒約20億回(2GOPS)であり、サイズ32
×32のカーネルを用いた場合には毎秒約80億回(8
GOPS)の積和演算が必要となる。既存の装置でこの
処理性能を実現するためには、演算処理チップを数多く
用いる必要がある。一方、一般に、低コストの積和演算
装置を実現するためには、半導体集積回路技術を用いて
より小さなサイズのチップに積和演算回路を数多く集積
する必要があるが、現在の半導体集積回路技術では比較
的小さなチップの中で、前述の性能を実現することは極
めて困難である。従って、現実的なコストで、上述した
回数の積和演算を実行することができる積和演算装置を
実現することは困難である。また将来、ピクセルサイズ
やフレームレートはさらに大きくなり、益々の高速処理
が要求されることになる。この種の画像データの前処理
が低コストで実現できるようになれば、より有益な画像
処理システムを社会に普及させることができる。
【0003】次に回路技術の観点から従来例の積和演算
装置を考察する。図35は、第1の従来例の積和演算装
置の構成を示すブロック図である。当該積和演算装置
は、乗算器101と加算器102とレジスタ103とマ
ルチプレクサ104とを備えて構成され、第1の入力デ
ータ105と第2の入力データ106の積算を乗算器1
01で行い、マルチプレクサ104で選択された、第3
の入力データ107もしくは蓄積加算結果データ111
と、乗算結果データ108とを加算器102で加算し、
その加算結果データ110をレジスタ103に保持する
ことで積和演算が実行できる。ここで、マルチプレクサ
104が蓄積加算結果データ111を常に選択した状態
で、第1の入力データ105と第2の入力データ106
を更新する度毎にレジスタ103に加算結果データ11
0を保持することを繰り返すことで、複数の積算値の累
積加算を実行することができる。
【0004】次に、積和演算装置の別の構成例である第
2の従来例の積和演算装置について、図36を参照して
説明する。この例では、図35の乗算器101の代わり
に1ビットシフタ121とアンドゲートアレイ124お
よびセレクタ123が用いられている。レジスタ122
は1ビットシフタ121の出力を保持するためのもの
で、第1の入力データ105を1ビットずつビットシフ
トした状態を一時的に保持するために用いる。この構成
例では、第2の入力データ106の各ビット毎にそのビ
ットの桁に合わせて第1の入力データ105をビットシ
フトしたデータ113と、セレクタ123で選択された
第2の入力データ106とのアンドゲートアレイ124
による部分積算結果116を、加算器102で累積加算
することで第1の入力データ105と第2の入力データ
106の積算を実行している。つまり、積算処理過程の
最初の処理では第1の入力データ105をマルチプレク
サ120によって選択し、そのときは1ビットシフタ
は、ビットシフトせずにそのままレジスタ122に保持
させる。そのときセレクタ123は第2の入力データ1
06の最下位ビットを選択しており、そのビット信号値
とレジスタ122の保持データ114とのアンド結果を
加算器102で加算してその結果をレジスタ103に保
持する。そのあと、マルチプレクサ120によってレジ
スタ122の保持データ114を選択した状態で、1ビ
ットシフタ121でビットシフトしたデータ113をレ
ジスタ122に保持し、そのデータとセレクタ123で
選択した第2の入力データ106の次の桁のビット信号
とのアンド結果を加算し、その結果をレジスタ103に
保持する。以後この動作を第2の入力データ106の全
ビット選択が完了するまで繰り返す。この一連の操作で
第1の入力データ105と第2のデータ106の積算が
実行できる。第3の入力データ107との加算や累積加
算については第1の従来例と同様に実行する。
【0005】また,図37は、「PeterA.Rue
tz,“The Architectures and
Design of a 20−MHz Real−
Time DSP Chip Set”,IEEE J
ournal on Solid−State Cir
cuits,Vol.24,No2,pp338−34
8,1989年」に示された第3の従来例の積和演算装
置の構成を示すブロック図である。第3の従来例の積和
演算装置は、第1の入力端子125と第2の入力端子1
26と演算結果出力端子131とを有し、レジスタ12
7−1乃至127−6と乗算器129−1乃至129−
6と加算器130−1乃至130−5とを備えて構成さ
れる。
【0006】次に、第3の従来例において、6×6の画
像データ{Xi}に対して3×2のカーネル{W1,W
2,W3:W4,W5,W6}を用いた畳み込み積分を
実行する場合の動作を説明する。画像データ{Xi
(i=1,2,3,…)は、第1の入力端子125に入
力されてレジスタ127−1,127−2,127−3
に順次転送され、画像データ{Xi+6}(i=1,2,
3,…)は、第2の入力端子126に入力されてレジス
タ127−4,127−5,127−6に順次転送され
る。ここで、乗算器129−3に画像データ{Xi}が
入力されるとき、すなわちW1にXiが乗じられるとき
には、乗算器129−2によってW2にはXi+1が乗じ
られ、乗算器129−1によってW3にはXi+2が乗じ
られる。また、このとき、乗算器129−6によってW
4にはXi+6が乗じられ、乗算器129−5によってW
5にはXi+7が乗じられ、さらに乗算器129−4によ
ってW6にはXi+8が乗じられる。6つの乗算結果は加
算器130−1乃至130−5によって加算され、演算
結果出力端子131からW1Xi+W2Xi+1+W3X
i+2+W4Xi+6+W5Xi+7+W6Xi+8が出力される。
これによって、6×6の画像データ{Xi}に対して3
×2のカーネル{W1,W2,W3:W4,W5,W
6}を用いた畳み込み積分を実行することができる。上
記参考文献の中ではこの回路を利用してサイズ8×8の
カーネルを用いた畳み込み積分を実行する回路をLSI
化している。しかし、そのチップ面積は、比較的大きな
値である225mm2と報告されている。従って、低コ
ストが要求される分野においてこのような大きなチップ
を適用することは困難である。
【0007】
【発明が解決しようとする課題】第1の従来例と第3の
従来例の積和演算装置に用いた乗算器101、129−
1乃至129−6は、入力データのビット幅の2乗に比
例してその回路規模が増大する。これに対して、加算器
102,130−1乃至130−5の回路規模は、入力
データのビット幅に比例する。従って、乗算器101、
129−1乃至129−6を用いて構成した第1と第3
の従来例の積和演算回路は、ビット幅が大きくなると、
乗算器を用いていない積和演算装置に比較して極めて大
きくなるという問題点があった。このために、第1の従
来例と第3の従来例の積和演算装置は、1チップ内にお
いて演算器を並列に動作させて処理の高速化を図ること
は困難であるという問題点があった。
【0008】また、第2の従来例の積和演算装置は、占
有面積の大きい乗算器101を含んでいないので、第1
と第3の従来例に比較して高集積化には有効であるが、
前述のように乗算するために多くの処理を繰り返す必要
があるために、第1の従来例の積和演算装置の積算に要
する時間に比較すると、処理時間が長くなるという問題
点があった。一般的に、第2の従来例の積和演算装置に
おける演算時間は、第1の従来例の積和演算装置の演算
時間に、第2の入力データ106のビット幅を乗じた時
間になる。従って、演算時間が大幅に増大するので、高
速化が図れないという問題点があった。
【0009】本発明の目的は、以上の問題点を解決し
て、第1と第3の従来例に比較して小さくでき、かつ第
2の従来例に比較して演算時間を短くでき、しかも比較
的低価格で製造することができる積和演算装置、積和演
算器集積回路装置及び累積加算器を提供することにあ
る。
【0010】
【課題を解決するための手段】本発明に係る第1の態様
の積和演算装置は、第1の入力データと第2の入力デー
タとの積を累積加算して出力端子から出力する積和演算
装置であって、第1の入力データを、第2の入力データ
に基づいて所定のビット数だけ桁移動して出力するバレ
ルシフタと、上記バレルシフタから出力され加算器の一
方の入力端子に入力されるデータと加算器の他方の入力
端子から入力されるデータとを加算して出力する加算器
と、上記加算器から出力されるデータを一時保持した
後、保持したデータを上記加算器の他方の入力端子を介
して上記加算器に入力する一方、保持したデータを上記
出力端子から出力するレジスタとを備えたことを特徴と
する。
【0011】また、第2の態様の積和演算装置は、上記
第1の態様の積和演算装置においてさらに、マルチプレ
クサの一方の入力端子から入力される第3の入力データ
とマルチプレクサの他方の入力端子から入力されるデー
タのうち一方を選択して、上記加算器の他方の入力端子
を介して上記加算器に出力するマルチプレクサを備え、
上記第1の入力データと上記第2の入力データとの積
と、上記第3の入力データとを加算して出力端子から出
力することを特徴とする。
【0012】さらに、第3の態様の積和演算装置は、第
1又は第2の態様の積和演算装置においてさらに、上記
第2の入力データのビット状態が1であるビット信号の
桁位置を示す桁位置データを、上記バレルシフタに出力
するビット位置エンコーダを備え、上記バレルシフタ
は、上記第1の入力データを上記桁位置データに基づい
て桁移動して出力することを特徴とする。
【0013】またさらに、第4の態様の積和演算装置
は、第3の態様の積和演算装置において、上記ビット位
置エンコーダは、シフトレジスタとエンコーダとを備
え、上記シフトレジスタは、第1の遅延型フリップフロ
ップと第2の遅延型フリップフロップと、上記第1と第
2の遅延型フリップフロップの間に、上記第2の入力デ
ータの各ビット信号に対応して設けられた複数の第3の
遅延型フリップフロップと、上記各ビット信号に対応し
て設けられ、対応するビット信号のビット状態が1の場
合には、上記第1の遅延型フリップフロップから出力さ
れる信号を当該ビット信号に対応する第3の遅延型フリ
ップフロップを介して伝送させ、対応するビット信号の
ビット状態が0の場合には、当該ビット信号に対応する
第3の遅延型フリップフロップを介しないで伝送させる
1対のセレクタとを備え、上記シフトレジスタは、上記
第1の遅延型フリップフロップから出力される信号を、
クロック信号に応答して、第2の入力データのビット状
態が1であるビット信号に対応する第3の遅延型フリッ
プフロップに順次転送し、かつ上記第1の遅延型フリッ
プフロップから出力された信号が転送された第3の遅延
型フリップフロップの位置を示す信号を出力し、上記エ
ンコーダは、上記シフトレジスタから出力される信号に
基づいて、第2の入力データのビット状態が1であるビ
ット信号の位置を検出して、当該位置を示す位置データ
を出力することを特徴とする。
【0014】また、第5の態様の積和演算装置は、第3
又は第4の積和演算装置において、上記ビット位置エン
コーダは、上記第2の入力データのビット状態が1であ
るビット信号の数が所定の数以上の場合には、上記第2
の入力データの上位の桁から上記所定の数のビット状態
が1であるビット信号についてのみ位置を検出して、位
置データを出力することを特徴とする。
【0015】さらに、第6の態様の積和演算装置は、第
5の態様の積和演算装置において、上記ビット位置エン
コーダは、上記クロック信号のパルスを計数して上記第
1の遅延型フリップフロップから出力される信号のシフ
ト回数を出力するカウンタと、上記シフト回数と入力さ
れるシフト回数指定値とを比較して上記シフト回数がシ
フト回数指定値より大きい場合には位置検出を終了させ
る信号を出力するコンパレータとを備え、上記ビットシ
フト回数がシフト回数指定値より大きい場合には位置検
出を終了することを特徴とする。
【0016】また、第7の態様の積和演算装置は、第3
又は第4の態様の積和演算装置においてさらに、第2の
入力データをビット状態が1であるビット信号の数が第
2の入力データのビット幅より小さい所定の制限数以下
である圧縮データに変換して出力するデータ圧縮手段を
備え、上記ビット位置エンコーダは、上記圧縮データの
ビット状態が1であるビット信号の桁位置を示す桁位置
データを、上記バレルシフタに出力することを特徴とす
る。
【0017】さらに、第8の態様の積和演算装置は、第
7の積和演算装置において、上記データ圧縮手段は、第
2の入力データを、第2の入力データと同一の桁数を有
し、かつビット状態が1であるビット信号の数が上記制
限数以下のデータであって、第2の入力データとの差が
最小となるように設定された圧縮データに変換して出力
することを特徴とする。
【0018】またさらに、第9の態様の積和演算装置
は、第7の態様の積和演算装置において、上記データ圧
縮手段は、第2の入力データを、第2の入力データに比
べて1桁多い桁数を有し、かつビット状態が1であるビ
ット信号の数が上記制限数以下のデータであって、第2
の入力データとの差が最小となるように設定された圧縮
データに変換して出力することを特徴とする。
【0019】また、第10の態様の積和演算装置は、第
7、8又は9の態様の積和演算装置において、上記デー
タ圧縮手段はさらに、圧縮データのビット状態が1であ
るビット信号の数Fを示す数値データを上記ビット位置
エンコーダに出力し、上記ビット位置エンコーダは、上
記F個のビット状態が1であるビット信号の桁位置を示
す桁位置データを出力した後、次の圧縮データの処理を
開始することを特徴とする。
【0020】さらに、第11の態様の積和演算装置は、
第2の態様の積和演算装置と、データ変換手段とを備
え、上記データ変換手段は、第2の入力データを、絶対
値が2のべき乗である正及び負の数値を第2の入力デー
タのビット幅より小さい個数以下だけ加算したデータに
変換することを特徴とする。
【0021】本発明に係る第12の態様の積和演算器集
積回路装置は、第1又は第2の態様の少なくとも2つの
積和演算装置と、第2の入力データのビット状態が1で
あるビット信号の桁位置を示す桁位置データを、上記各
積和演算装置のバレルシフタに出力する1つのビット位
置エンコーダとを備え、上記各積和演算装置のバレルシ
フタは、上記第1の入力データを上記桁位置データに基
づいて桁移動して出力することを特徴とする。
【0022】また、第13の態様の積和演算器集積回路
装置は、データ変換手段と並置されて設けられた複数N
個の第2の態様の積和演算装置1乃至Nを備え、上記デ
ータ変換手段は、第2の入力データをビット状態が1で
あるビット信号の数が第2の入力データのビット幅より
小さい所定の制限数以下である圧縮データに変換して出
力するデータ圧縮手段と、上記圧縮データのビット状態
が1であるビット信号の桁位置を示す桁位置データを上
記バレルシフターに出力するビット位置エンコーダとか
らなり、上記桁位置データを各積和演算装置kに出力
し、初段の積和演算装置1は、上記桁位置データに基づ
いて第1の入力端子から入力されるデータと第2の入力
データとの間の積と、第3の入力データとの和を演算し
て出力し、積和演算装置k(k=2,3,…,N−1)
はそれぞれ、上記桁位置データに基づいて、上記桁位置
データが入力される端子とは別の入力端子から入力され
るデータと第2の入力データとの積と、前段の積和演算
装置(k−1)から出力される演算結果との和を演算し
て、後段の積和演算装置(k+1)に出力し、最終段の
積和演算装置Nは、上記桁位置データに基づいて、第N
の入力端子から入力されるデータと第2の入力データと
の積と、前段の積和演算装置N−1から出力される演算
結果との和を演算して出力することを特徴とする。
【0023】さらに、第14の態様の積和演算器集積回
路装置は、第13の態様の積和演算器集積回路装置にお
いて、上記積和演算装置kと上記積和演算装置(k+
1)(k=1,2,…,N−1)との間の少なくとも1
カ所に、上記積和演算装置kから出力される演算結果を
一時保持して、上記積和演算装置(k+1)に出力する
記憶手段を備えたことを特徴とする。
【0024】またさらに、第15の態様の積和演算器集
積回路装置は、第14の態様の積和演算器集積回路装置
において、上記記憶手段は、複数M個のデータを記憶す
ることができ、入力されるデータの数がM個を越えると
最初に入力されたデータから順次出力することを特徴と
する。
【0025】また、第16の態様の積和演算器集積回路
装置は、第15の態様の積和演算器集積回路装置におい
て、上記記憶手段は、記憶できるデータ数M個を外部か
ら指定することができることを特徴とする。
【0026】さらに、第17の態様の積和演算器集積回
路装置は、第13、14、15又は16の態様の積和演
算器集積回路装置において、最終段の積和演算装置から
出力される演算結果を一時保持した後、出力する出力用
記憶手段を設けたことを特徴とする。
【0027】またさらに、第18の態様の積和演算器集
積回路装置は、複数b個の第17の態様の積和演算器集
積回路装置1乃至bを備え、上記積和演算器集積回路装
置k(k=2,3,…,b)の各出力用記憶手段から出
力される演算結果を後段の積和演算器集積回路装置k+
1に入力することを特徴とする。
【0028】また、第19の態様の積和演算器集積回路
装置は、2つの第17の態様の積和演算器集積回路装置
と、加算器とを備え、上記加算器は上記各積和演算器集
積回路装置から出力される演算結果データを加算して出
力することを特徴とする。
【0029】また、第20の態様の積和演算器集積回路
装置は、複数c個の第17又は18の態様のの積和演算
器集積回路装置PM11a−1乃至PM11a−cと、
(c−1)個の加算器89−1乃至89−(c−1)
と、(c−2)個の接続用記憶手段90−1乃至90−
(c−2)とを備え、加算器89−1は、積和演算装置
PM11a−1から出力される演算結果データと、積和
演算装置PM11a−2から出力される演算結果データ
とを加算して加算データを出力し、加算器89−k(k
=2,3,…,c−2)は、積和演算装置PM11a−
(k+1)から出力される演算結果データと、接続用記
憶手段90−(k−1)から出力される保持データとを
加算して加算データを出力し、接続用記憶手段90−k
(k=1,2,…,c−2)は、加算器89−kから出
力される加算データを所定の周期だけ保持した後、加算
器89−(k+1)に出力し、加算器89−(c−1)
は、積和演算装置PM11a−cから出力される演算結
果データと、接続用記憶手段90−(c−2)から出力
される保持データとを加算して加算データを出力するこ
とを特徴とする。
【0030】本発明に係る第21の態様の累積加算器
は、それぞれキャリー入力端子とキャリー出力端子を有
し、2つの入力端子に入力される2つのデータを加算し
て加算結果のデータを出力端子から出力する複数個の加
算器と、レジスタを備えた累積加算器であって、各加算
器の出力端子から出力されるデータ、並びにキャリー出
力端子から出力されるキャリー信号はレジスタに入力さ
れ、各加算器の一方の入力端子にはレジスタを介して累
積加算器の一部のビット域のデータもしくは初期値のデ
ータを入力し、各加算器の他方の入力端子には各加算器
に対応する各ビット域のデータを入力し、各加算器のキ
ャリー入力端子には当該各加算器が処理するビット域の
下位側のビット域を処理する加算器のキャリー出力端子
から出力されるキャリー信号をレジスタを介して入力す
ることを特徴とする。
【0031】また、第22の態様の積和演算装置は、第
21の態様の累積加算器と、第1の入力データをビット
状態が1であるビット信号の数が第1の入力データのビ
ット幅より小さい所定の制限数以下である圧縮データに
変換して出力するデータ圧縮手段と、上記圧縮データの
ビット状態が1であるビット信号の桁位置を示す桁位置
データを出力するビット位置エンコーダと、第2の入力
データを上記桁位置データに基づいて桁移動して、桁移
動したデータの上記各加算器に対応する各ビット域のデ
ータを当該各加算器の他方の入力端子に出力するバレル
シフタとを備えたことを特徴とする。
【0032】
【発明の実施の形態】
実施の形態1 本発明に係る実施の形態1の積和演算装置PM1につい
て図1を参照して説明する。実施の形態1の積和演算装
置PM1は、第1の入力データ105と第2の入力デー
タ106との積と、第3の入力データ107の和を演算
する積和演算回路であって、図1に示すように、バレル
シフタ1と、ビット位置エンコーダ2と、加算器102
と、レジスタ103と、マルチプレクサ104と、アン
ドゲートアレイ124とからなり、以下の特徴を有す
る。 (1)ビット位置エンコーダ2は、ビット位置エンコー
ダシフト信号5(クロック信号)が与えられる度に、第
2の入力データ106のビット状態が”1”であるビッ
ト位置を、詳述後述するように下位または上位から順に
コード化して、第2の入力データ106のビット状態が
“1”であるビット位置を示すビット位置エンコードデ
ータ6(シフトビット幅制御信号)を、バレルシフタ1
に出力する一方、ビット位置エンコード非終了信号7を
アンドゲートアレイ124に出力する。 (2)バレルシフタ1は、ビット位置エンコードデータ
6(シフトビット幅制御信号)で示される数だけ、第1
の入力データ105を桁移動して、第1の入力データ1
05を桁移動したデータであるバレルシフトデータ3を
アンドゲートアレイ124に出力する。
【0033】以下、実施の形態1の積和演算装置PM1
の構成について詳細に説明する。まず最初に、図2を参
照して、ビット位置エンコーダ2の構成を説明する。ビ
ット位置エンコーダ2は、図2に示すように、遅延型フ
リップフロップ(以下、Dフリップフロップという。)
12−1乃至12−N,16,29とセレクタ17−1
乃至17−N,21,22−1乃至22−Nとオアゲー
ト26とからなるシフトレジスタ20と、アンドゲート
アレイ11と、インバータ10,27と、エンコーダ2
8とを備える。
【0034】インバータ10は、入力されたビット位置
エンコーダリセット信号4の論理を反転させて、論理を
反転させたビット位置エンコーダリセット信号4aを、
アンドゲートアレイ11とセレクタ21とに出力する。
アンドゲートアレイ11は、ビット位置エンコーダリセ
ット信号4aのビット状態が“1”の場合には、第2の
入力データ106を出力し、ビット位置エンコーダリセ
ット信号4aのビット状態が“0”の場合には、すべて
のビット信号のビット状態が“0”である信号を出力す
る。ここで、アンドゲートアレイ11は、出力するデー
タのうち最上位桁のビット信号y1をセレクタ17−1
とセレクタ22−1に出力し、次の桁に位置するビット
信号y2をセレクタ17−2とセレクタ22−2に出力
し、以下同様に最上位桁からk番目(k=3,4,…,
N)に位置するビット信号ykをセレクタ17−kとセ
レクタ22−kに出力する。
【0035】シフトレジスタ20において、Dフリップ
フロップ29は、クロック信号であるビット位置エンコ
ーダシフト信号5に応答して、記憶していた“1”又は
“0”のビット信号をセレクタ17−1とセレクタ22
−1とに出力する一方、入力されたビット位置エンコー
ダリセット信号4のビット信号を新たに記憶する。
【0036】セレクタ17−1は、アンドゲートアレイ
11から入力されるビット信号y1のビット状態に応じ
て、ビット信号y1のビット状態が“1”の場合には、
Dフリップフロップ29から入力されたビット信号をD
フリップフロップ12−1に出力し、ビット信号y1の
ビット状態が“0”の場合には、ビット状態が“0”で
あるビット信号をDフリップフロップ12−1に出力す
る。Dフリップフロップ12−1は、ビット位置エンコ
ーダシフト信号5に応答して、記憶していたビット信号
をセレクタ22−1とエンコーダ28とに出力する一
方、セレクタ17−1から入力されるビット信号を新た
に記憶する。セレクタ22−1は、アンドゲートアレイ
11から入力される最上位桁のビット信号y1のビット
状態に応じて、ビット信号y1のビット状態が“1”の
場合には、Dフリップフロップ12−1から入力される
ビット信号をセレクタ17−2とセレクタ22−2とに
出力し、最上位のビット信号のビット状態が“0”の場
合には、Dフリップフロップ29から入力される信号を
セレクタ17−2とセレクタ22−2とに出力する。す
なわち、1対のセレクタ17−1とセレクタ22−1
は、ビット信号y1のビット状態が“1”の場合には、
Dフリップフロップ29から出力されるビット信号をD
フリップフロップ12−1を介して伝送させ、ビット信
号y1のビット状態が“0”の場合には、Dフリップフ
ロップ29から出力されるビット信号をDフリップフロ
ップ12−1を介さずに伝送させる。
【0037】以下同様に、セレクタ17−k(k=2,
…,N)は、アンドゲートアレイ11から入力される最
上位からk番目の桁のビット信号ykのビット状態に応
じて、ビット信号ykのビット状態が“1”の場合に
は、セレクタ22−(k−1)から入力されるビット信
号をDフリップフロップ12−kに出力し、ビット信号
ykのビット状態が“0”の場合には、ビット状態が
“0”であるビット信号をDフリップフロップ12−k
に出力する。Dフリップフロップ12−k(k=2,
…,N)は、ビット位置エンコーダシフト信号5に応答
して、記憶していたビット状態をセレクタ22−kとエ
ンコーダ28に出力する一方、セレクタ17−kから入
力されるビット信号のビット状態を新たに記憶する。
【0038】セレクタ22−k(k=2,…,N−1)
は、アンドゲートアレイ11から入力されるビット信号
ykのビット状態に応じて、ビット信号ykのビット状
態が“1”の場合には、Dフリップフロップ12−kか
ら入力されるビット信号をセレクタ17−(k+1)と
セレクタ22−(k+1)とに出力し、ビット信号yk
のビット状態が“0”の場合には、セレクタ22−(k
−1)から入力される信号をセレクタ17−(k+1)
とセレクタ22−(k+1)とに出力する。すなわち、
1対のセレクタ17−kとセレクタ22−kは、ビット
信号ykのビット状態が“1”の場合には、Dフリップ
フロップ29から出力されるビット信号をDフリップフ
ロップ12−kを介して伝送させ、ビット信号ykのビ
ット状態が“0”の場合には、Dフリップフロップ29
から出力されるビット信号をDフリップフロップ12−
kを介さずに伝送させる。
【0039】セレクタ22−Nは、アンドゲートアレイ
11から入力されるビット信号yNのビット状態に応じ
て、ビット信号yNのビット状態が“1”の場合には、
Dフリップフロップ12−Nから入力されるビット信号
をオアゲート26に出力し、ビット信号yNのビット状
態が“0”の場合には、セレクタ22(N−1)から入
力されるビット信号をオアゲート26に出力する。
【0040】オアゲート26は、セレクタ22−Nから
出力されるビット信号とDフリップフロップ16から出
力されるビット信号のうち少なくとも一方の信号のビッ
ト状態が“1”の場合には、ビット状態が“1”のビッ
ト信号を出力し、共にビット状態が“0”の場合には、
ビット状態が“0”であるビット信号を出力する。セレ
クタ21は、インバータ10から入力されるビット位置
エンコーダリセット信号4aのビット状態に応じて、ビ
ット位置エンコーダリセット信号4aのビット状態が
“1”である場合には、オアゲート26から出力される
ビット信号をDフリップフロップ16に出力する一方、
ビット位置エンコーダリセット信号4aのビット状態が
“0”である場合には、ビット状態が“0”であるビッ
ト信号をDフリップフロップ16に出力する。Dフリッ
プフロップ16は、セレクタ21から出力される信号を
記憶して、ビット位置エンコーダシフト信号5に応答し
て、記憶していた信号をオアゲート26とインバータ2
7とに出力する。
【0041】以上のように構成されたシフトレジスタ2
0は、Dフリップフロップ29から出力される信号を、
ビット位置エンコーダシフト信号5に応答して、ビット
状態が“1”であるビット信号ykに対応するDフリッ
プフロップ12−kに順次転送し、かつDフリップフロ
ップ29から出力された信号が転送されたDフリップフ
ロップ12−kの位置を示す信号をエンコーダ28に出
力するそして、シフトレジスタ20は、Dフリップフロ
ップ29から出力されたビット状態が“1”である信号
が、Dフリップフロップ12−1乃至12−Nのうちの
いずれかに転送されている間は、ビット位置エンコーダ
シフト信号5に応答して、ビット状態が“0”である信
号をインバータ27に出力する。
【0042】インバータ27は、Dフリップフロップ1
6から出力されるビット信号の論理を反転させて、論理
を反転させた信号であるビット位置エンコード非終了信
号7をアンドゲートアレイ124に出力する。これによ
って、オアゲート26,セレクター21,Dフリップフ
ロップ16およびインバータ27で構成されるシフトレ
ジスタ20の最終段の回路は、Dフリップフロップ16
にビット状態が“1”である信号が転送されるまでは、
ビット位置エンコーダシフト信号5の各パルスに応答し
て、ビット状態が“1”であるビット位置エンコード非
終了信号7をアンドゲートアレイ124に出力し、Dフ
リップフロップ16にビット状態が“1”である信号が
転送された以降のパルスに応答して、ビット状態が
“0”であるビット位置エンコード非終了信号7を出力
する。
【0043】エンコーダ28は、Dフリップフロップ1
7−1乃至17−Nから出力される信号に基づいて、第
2の入力データのビット状態が“1”であるビット信号
の位置を検出して、当該ビット信号の位置を示す信号で
あるビット位置エンコードデータ6をバレルシフタ1に
出力する。以上のようにビット位置エンコーダ2は構成
される。
【0044】バレルシフタ1は、ビット位置エンコーダ
2から出力されたビット位置エンコードデータ6で示さ
れた数だけ、入力される第1の入力データ105を上位
の方向に桁移動して、桁移動した信号であるバレルシフ
トデータ3をアンドゲートアレイ124に出力する。
【0045】アンドゲートアレイ124は、ビット位置
エンコード非終了信号7のビット状態が“1”の場合に
は、バレルシフトデータ3と等しい加算入力データ11
6を加算器102に出力する。マルチプレクサ104
は、入力される第3の入力データ107とレジスタ10
3から入力される蓄積加算結果データ118のうちの一
方のデータを加算器102に出力する。加算器102
は、アンドゲートアレイ124から入力される加算入力
データ116とマルチプレクサ104から入力されるデ
ータとを加算して、加算された加算結果データ117を
レジスタ103に出力する。レジスタ103は、加算結
果データ117が入力されると、それまで記憶していた
蓄積加算結果データ118を外部回路とマルチプレクサ
104に出力して、入力された加算結果データ117を
記憶する。以上のようにして実施の形態1の積和演算装
置PM1は構成される。
【0046】次に、以上のように構成された実施の形態
1の積和演算装置PM1の動作について説明する。図1
に示すように、当該積和演算装置PM1において、第1
の入力データ105はバレルシフタ1に入力され、第2
の入力データ106とビット位置エンコーダリセット信
号4とビット位置エンコーダシフト信号5とはビット位
置エンコーダ2に入力される。ここで、以下の説明で
は、ビット位置エンコード非終了信号7のビット状態が
“0”になるまで、第1の入力データ105と第2の入
力データ106は変化しないとする。
【0047】まず、最初に、ビット状態が“1”である
ビット位置エンコーダリセット信号4とビット位置エン
コーダシフト信号5(クロック信号)とが与えられる
と、Dフリップフロップ29には、ビット状態が“1”
であるビット位置エンコーダリセット信号4とビット位
置エンコーダシフト信号5(クロック信号)とが入力さ
れるので、Dフリップフロップ29には、ビット状態
“1”が記憶される。また、アンドゲートアレイ11に
は、インバータ10によってビット位置エンコーダリセ
ット信号4の論理が反転されたビット状態が“0”であ
るビット位置エンコーダリセット信号4aが入力される
ので、セレクタ17−1乃至17−Nには、ビット状態
が“0”である信号が入力される。これによって、Dフ
リップフロップ12−1乃至12−Nには、ビット状態
が“0”である信号が入力され、ビット状態が“0”が
記憶される。このようにして、シフトレジスタ20は初
期状態に設定される。
【0048】次に、ビット状態が“0”であるビット位
置エンコーダリセット信号4が入力され、アンドゲート
アレイ11に第2の入力データ106が入力されると、
アンドゲートアレイ11に、ビット状態が“1”である
ビット位置エンコーダリセット信号4aが入力されるの
で、第2の入力データ106は、アンドゲートアレイ1
1から出力される。そして、第2の入力データ106の
うち最上位桁のビット信号y1は、セレクタ17−1と
セレクタ22−1に入力され、次の桁に位置するビット
信号y2は、セレクタ17−2とセレクタ22−2に入
力され、最上位桁からk番目(k=3,4,…,N)に
位置するビット信号ykは、セレクタ17−kとセレク
タ22−kに入力される。これによって、ビット状態が
“1”であるビット信号に対応するセレクタ17−kと
セレクタ22−kは、信号をDフリップフロップ12−
kを介して伝送させ、ビット状態が“0”であるビット
信号に対応するセレクタ17−kとセレクタ22−k
は、信号をDフリップフロップ12−kを介さずに伝送
させる。
【0049】この状態で、クロック信号であるビット位
置エンコーダシフト信号5の2番目のパルスが入力され
ると、初期状態でDフリップフロップ29に記憶された
ビット状態“1”のビット信号は、最上位の桁から数え
て最初のビット状態が“1”のビット信号に対応するD
フリップフロップ12−k1まで転送される。この時D
フリップフロップ12−k1のみに、ビット状態が
“1”のビット信号が記憶され、それ以外のDフリップ
フロップには、ビット状態が“0”のビット信号が記憶
される。
【0050】次に、ビット位置エンコーダリセット信号
4のビット状態を“1”に保持した状態で、ビット位置
エンコーダシフト信号5の3番目のパルスが入力される
と、Dフリップフロップ12−k(k=1,2,…,
N)に記憶されているビット信号はそれぞれ、エンコー
ダ28に出力される。そして、ビット状態が“1”であ
るビット信号を出力したDフリップフロップ12−k1
の位置が、エンコーダ28によってコード化されて、最
上位の桁から数えて最初のビット状態“1”であるビッ
ト信号の位置を示すビット位置エンコードデータ6が出
力される。一方、セレクタ22−k1に出力されたビッ
ト状態“1”のビット信号は、最上位の桁から数えて2
番目のビット状態“1”のビット信号に対応するDフリ
ップフロップ12−k2まで転送される。また、2番目
のパルスに応答して、Dフリップフロップ16によっ
て、ビット状態が“0”のビット信号がインバータ27
に出力されて、当該ビット信号はインバータ27によっ
てビット状態が反転され、インバータ27からビット状
態が“1”であるビット位置エンコード非終了信号7が
出力される。
【0051】次に、4番目のパルスが入力されると、ビ
ット状態が“1”であるビット信号を出力したDフリッ
プフロップ12−k2の位置が、エンコーダ28によっ
てコード化されて、最上位の桁からみて2番目に位置す
るビット状態“1”のビット信号の位置を示すビット位
置エンコードデータ6がエンコーダ27から出力され
る。一方、セレクタ22−k2に出力されたビット状態
“1”のビット信号は、最上位の桁から数えて3番目の
ビット状態“1”のビット信号に対応するDフリップフ
ロップ12−k3まで転送される。そして、インバータ
27からビット状態が“1”であるビット位置エンコー
ド非終了信号7が出力される。
【0052】以下同様にして、ビット位置エンコーダシ
フト信号5のパルスが入力される毎に、ビット状態
“1”のビット信号の位置を示すビット位置エンコード
データ6が、上位桁から順番にエンコーダ28から出力
される一方、ビット状態が“1”であるビット位置エン
コード非終了信号7がインバータ27から出力されて、
第2の入力データ106のうち最も下位に位置するビッ
ト状態が“1”のビット信号に対応するDフリップフロ
ップ12−kLにビット状態が“1”のビット信号が転
送される。そして、次のパルスに応答して、最も下位に
位置するビット状態“1”のビット信号の位置を示すビ
ット位置エンコードデータ6が、エンコーダ28から出
力される一方、ビット状態が“1”であるビット位置エ
ンコード非終了信号7がインバータ27から出力され
る。この時、Dフリップフロップ12−kLから出力さ
れた信号は、セレクタ22−kL乃至22−Nを介し
て、オアゲート26に入力され、ビット状態が“1”で
あるビット信号がオアゲート26からセレクタ21を介
してDフリップフロップ16に入力される。
【0053】そして、次のビット位置エンコーダシフト
信号5のパルスに応答して、Dフリップフロップ16に
記憶されていたビット状態“1”の信号がインバータ2
7に入力されて、インバータ27によってビット状態が
反転されたビット状態が“0”であるビット位置エンコ
ード非終了信号7が出力される。そして、次にビット状
態が“1”であるビット位置エンコーダリセット信号4
が入力されるまで、Dフリップフロップ16には、ビッ
ト状態“1”が保持されて、ビット状態が“0”である
ビット位置エンコード非終了信号7が出力される。
【0054】すなわち、第2の入力データ106のビッ
ト状態が“1”である全てのビットの位置が検出される
と、シフトレジスタ20の最終段のDフリップフロップ
16にビット状態“1”が転送され、次のビット位置エ
ンコーダシフト信号5が入力されたときに、ビット位置
エンコード非終了信号7が“0”となり、ビット列のビ
ット状態が“1”である全てのビットの位置の検出が終
了したことを知らせることができる。以後、ビット状態
が“1”であるビット位置エンコーダリセット信号4が
与えられるまでDフリップフロップ16にはビット状態
“1”が保持される。
【0055】一方、バレルシフタ1に入力される第1の
入力データ105は、バレルシフタ1によって、各パル
ス毎に入力されるビット位置エンコードデータ6の数だ
け桁移動されて、桁移動されたバレルシフトデータ3
は、アンドゲートアレイ124に入力される。この時、
ビット状態が“1”であるビット位置エンコード非終了
データ7がアンドゲートアレイ124に入力されるの
で、バレルシフトデータ3と同一の加算入力データ11
6が加算器102に入力される。ここで、ビット位置エ
ンコード非終了データ7のビット状態が“0”の場合に
は、各ビット信号がすべて“0”である加算入力データ
116が加算器102に出力される。
【0056】また、マルチプレクサ104に入力された
第3の入力データ107と蓄積加算結果データ118の
うち、マルチプレクサ104によって選択された一方の
選択加算データ119は、加算器102に入力される。
加算入力データ116と選択加算データ119は、加算
器102によって加算されて、加算結果データ117
は、レジスタ103に入力されて記憶される。レジスタ
103に記憶された蓄積加算結果データ118は、外部
回路とマルチプレクサ104に入力される。
【0057】ここで、マルチプレクサ104を、入力さ
れるデータのうち蓄積加算結果データ118を常に選択
して出力するように設定して動作させると、ビット位置
エンコーダシフト信号5が1クロック与えられる毎に、
第2の入力データ106の状態が“1”である次のビッ
ト信号の位置データによって第1の入力データ105が
ビットシフトされ累積加算されることを繰り返す。この
累積加算は、第2の入力データ106の状態が“1”で
ある全てのビットをスキャンし終ったところで、ビット
位置エンコード非終了信号7が“0”になることによ
り、アンドゲートアレイ124の出力は“0”となり、
累積加算の実質的処理は終了する。すなわち、この一連
の処理によって、第1の入力データ105と第2の入力
データ106の積算が実行できる。また、第1の入力デ
ータ105と第2の入力データ106とを積算が終了す
る毎に更新することによって、複数の積算値の累積加算
を実行することができる。
【0058】以上詳述したように、ビット位置エンコー
ダ2とバレルシフタ1を備えた実施の形態1の積和演算
装置PM1によれば、第2の入力データ106のビット
状態が“1”である場合の処理のみを抜き出して累積加
算して積算を実行しているので、言い換えると第2の入
力データ106のビット状態が“0”である場合の無意
味な累積加算処理を省くことができるので、従来例に比
較して、積和演算処理を高速で実行することができる。
【0059】また、一般にバレルシフタ1の回路面積
は、入力データのビット幅の2乗に比例して増大するも
のの、実用的な入力データのビット幅(8〜16)にお
いては乗算器と比べて一桁以上も回路規模が小さくでき
るので、従来例に比較して、積和演算装置PM1の回路
面積を小さくできる。
【0060】以上の実施の形態1の積和演算装置PM1
では、第2の入力データ106のビット状態が“1”で
あるビット信号の位置を上位の桁から順に検出をして当
該位置を示すデータを出力するようにビット位置エンコ
ーダ2を構成したが、本発明はこれに限らず、第2の入
力データ106のビット状態が“1”であるビット信号
の位置を下位の桁から順に検出をして当該位置を示すデ
ータを出力するように構成してもよい。以上のように構
成しても実施の形態1の積和演算装置PM1と同様の効
果を有する。
【0061】実施の形態2 次に、本発明に係る実施の形態2の積和演算装置PM2
について、図3を参照して説明する。実施の形態2の積
和演算装置PM2は、図1の実施の形態1の積和演算装
置PM1において、ビット位置エンコーダ2に代えて、
最大シフト回数を所定の値に制限する機能を有するビッ
ト位置エンコーダ8を用いて構成したことを特徴とす
る。
【0062】実施の形態2の積和演算装置PM2のビッ
ト位置エンコーダ8は、図4に示すように、図2のビッ
ト位置エンコーダ2においてさらに、カウンタ30とコ
ンパレータ31とノアゲート32とを備えて構成され
る。カウンタ30は、ビット位置エンコーダリセット信
号4とビット位置エンコーダシフト信号5とが入力され
て、ビット状態が“1”であるビット位置エンコーダリ
セット信号4が入力された後のビット位置エンコーダシ
フト信号5のパルスを計数することによりビットシフト
回数を求めて、当該ビットシフト回数をコンパレータ3
1に出力する。コンパレータ31は、入力されるビット
シフト回数と入力される最大シフト回数指定データ9と
を比較して、ビットシフト回数が最大シフト回数指定デ
ータ9以下の場合には、ビット状態が“0”である信号
をノアゲート32に出力し、ビットシフト回数が最大シ
フト回数指定データ9より大きい場合には、ビット状態
が“1”である信号をノアゲート32に出力する。ノア
ゲート32は、Dフリップフロップ16から出力される
信号と、コンパレータ31から出力される信号のうちど
ちらか一方の信号のビット状態が“1”である場合に
は、ビット状態が“1”であるビット位置エンコード非
終了信号7を出力する。
【0063】以上のように構成された実施の形態2の積
和演算装置PM2において、カウンタ30によってビッ
ト位置エンコーダシフト信号5のパルスを計数すること
によりビットシフト回数を計数して、ビットシフト回数
と最大シフト回数指定データ9によって指定された最大
シフト回数とをコンパレータ31で比較し、ビットシフ
ト回数が最大シフト回数を越えた場合には、ノアゲート
32にビット状態が“1”である信号を与えて、強制的
にビット位置エンコード非終了信号7を“0”にする。
【0064】従って、ビット位置エンコーダ8を備えた
実施の形態2の積和演算装置PM2は、第2の入力デー
タ106のビット状態が“1”である割合が大きくなっ
た場合には、一定数の処理を間引くことができので、高
速で積和演算処理を実行することができる。
【0065】本発明者は、上述のように処理を間引くこ
とにより発生する演算結果の誤差を評価した。図5は、
第2の入力データ106のビット幅を8に設定したとき
の最大シフト回数に対する変換誤差の関係を示すグラフ
である。図5から明らかなように、最大シフト回数の低
下の程度に比べ変換誤差の増大は小さいことがわかる。
【0066】最大シフト回数を制限しても変換誤差があ
まり大きくならない理由は、以下のように説明すること
ができる。Nビットの第2の入力データ106におい
て、ビット状態が“1”であるビットの数をN個より小
さい繰り返し回数NUM個に制限した場合に、第2の入
力データ106が表現できる場合の数Bは、次の数1で
表わすことができる。これに対して、ビット状態が
“1”であるビットの数を制限しない場合に、第2の入
力データ106が表現できる場合の数B0は、2Nにな
る。例えば、ビット数N=8に対して繰り返し回数NU
M=5に設定したとき、場合の数Bは256から219
にしか減少しない。このように繰り返し回数NUMをビ
ット数Nより多少小さくしても場合の数Bは極端に減少
することなく、変換誤差を小さくできる。
【0067】
【数1】
【0068】以上詳述したように、本実施の形態2の積
和演算装置PM2は、ほとんど演算精度を犠牲にするこ
となく、実施の形態1の積和演算装置PM1に比較し
て、積和演算処理を高速で実行することができる。
【0069】実施の形態3 本発明に係る実施の形態3の積和演算器集積回路装置P
S3は、図6に示すように、1つのビット位置エンコー
ダ8に対して並列に設けられた複数M個の積和演算装置
PM1aを備え、ビット位置エンコーダ8は、ビット位
置エンコードデータ6を各積和演算装置PM1aのバレ
ルシフタ1に出力し、かつビット位置エンコード非終了
信号7を各積和演算装置PM1aのアンドゲートアレイ
124に出力することを特徴とする。ここで、各積和演
算装置PM1aはそれぞれ、実施の形態1の積和演算装
置PM1からビット位置エンコーダ2をとり除いて構成
され、各積和演算回路PM1aにはそれぞれ、1つのビ
ット位置エンコーダ8からビット位置エンコードデータ
6とビット位置エンコード非終了信号7とが入力され
る。
【0070】以上のように構成することにより、実施の
形態3の積和演算器集積回路装置PS3において、各積
和演算装置PM1aはそれぞれ、入力される第1の入力
データ105と第2の入力データ106との積和演算を
並列に実行することができる。この場合、各積和演算装
置PM1aに入力される第1の入力データ105として
互いに異なるデータを入力することにより、第2の入力
データ106と互いに異なる第1の入力データ105と
の積和演算を並列に実行することができる。
【0071】以上のように構成された積和演算器集積回
路装置PS3において、1つのビット位置エンコーダ8
は、ビット位置エンコードデータ6とビット位置エンコ
ード非終了信号7を各積和演算装置PM1aに出力す
る。従って、ビット位置エンコーダ8を各積和演算装置
PM1aに個別に備えた場合に比較して、積和演算器集
積回路装置PS3の面積を小さくすることができる。以
上の実施の形態3では、ビット位置エンコーダ8を用い
て構成したが、本発明はこれに限らずビット位置エンコ
ーダ2を用いて構成してもよい。
【0072】実施の形態4 図7は、本発明に係る実施の形態4の積和演算装置PM
4の構成を示すブロック図である。積和演算装置PM4
は、図7に示すように、バレルシフタ44と、加算器4
5とレジスタ46とマルチプレクサ47とからなる基本
演算器PUと、データ圧縮回路48とレジスタ50とシ
フト量変換回路51とからなるデータ変換器72とを備
える。ここで、実施の形態4の積和演算装置PM4は、
第2の入力データ41と同一の桁数を有しかつビット状
態が“1”であるビット信号の数が繰り返し回数NUM
以下の圧縮データ49に変換して出力するデータ圧縮回
路48を備えたことを特徴とする。
【0073】次に、図7を参照して実施の形態4の積和
演算装置PM4の構成について、詳細に説明する。実施
の形態4の積和演算装置PM4において、データ圧縮回
路48は、入力端子T41を介して入力される第2の入
力データ41を、次のステップ1とステップ2の処理を
実行することによって、ビット幅が第2の入力データ4
1と同じでかつビット状態が“1”であるビット信号の
数が繰り返し回数NUM以下の圧縮データ49に変換し
て圧縮データ49をレジスタ50を介してシフト量変換
回路51に出力する。
【0074】<ステップ1>ビット状態が“1”である
ビット信号を、最上位桁から数えて、繰り返し回数NU
M個目にあたるビット信号の位置fを検出する。そし
て、最上位桁から位置fまでの圧縮データ49aの各ビ
ット信号を、第2の入力データ41の各ビット信号と同
一に設定し、かつ圧縮データ49aの位置fから最下位
桁までの各ビットを、0に設定することによって、圧縮
データ49aを求める。
【0075】<ステップ2>次の数2を満足するとき、
圧縮データ49aの位置fにあるビット信号con
(f)に1を加算してその加算結果データを圧縮データ
49として出力し、数2を満足しないときは加算をしな
いで圧縮データ49aを圧縮データ49として出力す
る。ただし、数2を満足しても、この加算によって、圧
縮データ49がオーバーフローした場合は、ステップ2
を無効にする。すなわち、この加算は行わないで、圧縮
データ49aを圧縮データ49として出力する。ここ
で、con(f)は圧縮データ49aの位置fにおける
ビット信号を表わす。
【0076】
【数2】
【0077】ここで、数2のなかで、{}・{}の・
は、論理積を表し、第2番目の{}内の+は、論理和を
表わす。また、in(k)は、第2の入力データ41の
位置kにおけるビット信号を表す。従って、数2を満足
する場合とは、位置fのビット信号のビット状態が
“1”であって、かつ位置fより下位に位置するビット
信号のうち少なくとも1つのビット信号のビット状態が
“1”である場合を意味する。
【0078】上述のステップ1,2の処理を、具体例を
挙げて説明する。例えば第2の入力データ41を8ビッ
トデータとし、かつ繰り返し回数NUMを4とする。ま
ず、第2の入力データ41を10111001とする
と、ステップ1で圧縮データ49aは、1011100
0となり、ステップ2では数2を満足しないので無処理
である。従って、この場合は、圧縮データ49aが、圧
縮データ49としてデータ圧縮回路48から出力され
る。また、第2の入力データ41を10111101と
すると、ステップ1で圧縮データ49aは101110
00となり、ステップ2では数2を満足するので000
01000が加算されて、その結果データ110000
00が、圧縮データ49としてデータ圧縮回路48から
出力される。さらに、第2の入力データ41を1111
1001とすると、ステップ1で圧縮データ49aは、
11110000となり、ステップ2では数2を満足す
るので00010000を加算するが、その結果データ
はオーバーフローする。従って、この場合は、圧縮デー
タ49a=11110000が、圧縮データ49として
データ圧縮回路48から出力される。
【0079】次に、図8を参照して、データ圧縮回路4
8の構成を説明する。データ圧縮回路48は、図8に示
すように、フラグ生成モジュール54と、マスク生成モ
ジュール55と、マスク処理モジュール56と、誤差チ
ェックモジュール57と、マルチプレクサ58と、加算
器59と、マルチプレクサ60とからなる。
【0080】データ圧縮回路48において、フラグ生成
モジュール54は、第2の入力データ41におけるビッ
ト状態が“1”であるビット信号を、最上位桁から数え
て繰り返し回数NUM個目に位置するビット信号の位置
fを検出する。ここで、繰り返し回数NUMは、入力端
子T53を介して入力される。そして、位置fに対応す
るビット信号が“1”であって、他のビット信号は
“0”であるフラグ信号を、マスク生成モジュール55
と誤差チェックモジュール57とマルチプレクサ58に
出力する。例えば、第2の入力データ41が10111
001であるとすると、繰り返し回数NUMが4の場合
には、フラグ信号は00001000になる。マスク生
成モジュール55は、フラグ信号に応じてマスク信号を
生成して、当該マスク信号をマスク処理モジュール56
と誤差チェックモジュール57とに出力する。ここで、
例えばフラグ信号が00001000であれば、マスク
信号は11111000である。マスク処理モジュール
56は、マスク信号と第2の入力データ41のビット毎
の論理積を実行して、その結果データである圧縮データ
49aを加算器59とマルチプレクサ60とに出力す
る。例えば、第2の入力データ41が10111001
であって、マスク信号が11111000であれば、マ
スク処理モジュール56は10111000の圧縮デー
タ49aを出力する。すなわち、フラグ生成モジュール
54とマスク生成モジュール55とマスク処理モジュー
ル56とによって、ステップ1の処理が実行される。
【0081】誤差チェックモジュール57は、第2の入
力データ41が、数2を満足するか否かの判定を行い、
数2を満足するときは、マルチプレクサ58にフラグ信
号を選択して出力する制御信号を入力し、数2を満足し
ないときにはマルチプレクサ58にすべてのビット信号
が“0”である信号を出力する制御信号を出力する。加
算器59は、マスク処理モジュール56から出力される
データ信号とマルチプレクサ58から出力されるデータ
信号とを加算して、マルチプレクサ60に出力する。す
なわち、誤差チェックモジュール57とマルチプレクサ
58と加算器59とによってステップ2の処理が実行さ
れる。
【0082】マルチプレクサ60は、加算器59から出
力されるデータ信号にオーバーフローが生じていない場
合は、圧縮データ49として、加算器59から出力され
るデータ信号を選択的に出力し、加算器59から出力さ
れるデータ信号にオーバーフローが生じたときは、圧縮
データ49として、マスク処理モジュール56から入力
される圧縮データ49aを出力する。以上のように構成
されたデータ圧縮回路48は、第2の入力データ41
を、ビット幅が第2の入力データ41と同じでかつビッ
ト状態が“1”であるビット信号の数が繰り返し回数N
UM以下であって、しかも第2の入力データ41との差
が最小になるように設定された圧縮データ49に変換し
て出力する。
【0083】また、図7のシフト量変換回路51は、実
施の形態1におけるビット位置エンコーダ2と同様に構
成されて、圧縮データ49のビット状態が“1”の位置
を表す変換データZi(1),…,Zi(NUM)を出
力する。例えば繰り返し回数NUMが4のときの圧縮デ
ータ49を10111000とすると、Zi(0)=0
11(ビット3に対応),Zi(1)=100(ビット
4に対応),Zi(2)=101(ビット5に対応),
Zi(3)=111(ビット7に対応)がシフト量とし
て順次バレルシフタ44に送られる。
【0084】図7の基本演算器PUにおいて、バレルシ
フタ44は、データ変換器72から出力される変換デー
タZi[j](j=1,…,NUM)に基づいて、入力
端子T40を介して入力される第1の入力データ40を
桁移動してバレルシフトデータ3として加算器45に出
力する。マルチプレクサ47は、バレルシフタ44にZ
i[1]が入力されたときは、入力端子T42を介して
入力される第3の入力データ42を選択して加算器45
に出力し、バレルシフタ44にZi[1]以外のデータ
が入力されたときはレジスタ46から出力されるデータ
を選択して加算器45に出力する。加算器45は、バレ
ルシフトデータ3とマルチプレクサ47から出力される
データを加算して、加算データをレジスタ46に出力す
る。レジスタ46は、入力される加算データを一時的に
保持して、保持した保持データをマルチプレクサ47に
出力する一方、出力端子T43を介して出力する。
【0085】以上のように構成された実施の形態4の積
和演算装置PM4において、データ変換器72に入力さ
れた第2の入力データ41は、データ圧縮回路48によ
って圧縮データ49に変換され、圧縮データ49は、シ
フト量変換回路51によって変換データZi[j](j
=1,…,NUM)に変換されて、基本演算器PUのバ
レルシフタ44に出力される。一方、基本演算器PUの
バレルシフタ44に入力される第1の入力データ40
は、データ変換器72から入力された変換データZi
[j](j=1,…,NUM)に基づいて桁移動され
て、第1の入力データ40が桁移動されたバレルシフト
データ3は、変換データZi[j](j=1,…,NU
M)が入力される毎に加算器45で累積加算される。こ
れによって、第1の入力データ40と第2の入力データ
41の乗算が実行される。ところで、この乗算の過程で
Zi[1]を用いて桁移動が行われたときには、第3の
入力データ42が加算器45の一方の入力に供給されて
いる。すなわち、乗算のための累積加算の初期値は第3
の入力データ42である。以上のようにして、実施の形
態4の積和演算装置PM4によって、(第1の入力デー
タ40)×(第2の入力データ41)+(第3の入力デ
ータ42)を演算することができる。
【0086】以上のように構成された実施の形態4の積
和演算装置PM4では、第2の入力データ41を、第2
の入力データ41との差が最小になるように設定された
圧縮データ49を用いて演算している。これによって、
実施の形態2の積和演算装置PM2に比較して、演算の
精度を向上させることができる。例えば、実施の形態2
の積和演算装置PM2において、8ビットの第2の入力
データ41を用いて、ビットシフト回数を4に設定し
て、演算した場合の平均変換誤差は1.2であるが、実
施の形態4の積和演算装置PM4において、繰り返し回
数NUM=4として演算した場合の平均変換誤差は0.
95にできる。
【0087】以上の実施の形態4の積和演算装置PM4
は、実施の形態2の積和演算装置PM2に比較して、演
算の精度を向上させることができるとともに、実施の形
態2の積和演算装置PM2と同様に、繰り返し回数NU
Mを変えることにより演算精度と演算時間を変えること
ができる。
【0088】実施の形態5 本発明に係る実施の形態5の積和演算装置PM5は、デ
ータ変換器72aと実施の形態4と同様に構成された基
本演算器PUとからなる。データ変換器72aは、実施
の形態4のデータ変換器72において、データ圧縮回路
48に代えて、図9に示すデータ圧縮回路48aを用い
て構成される。データ圧縮回路48aは、図8のデータ
圧縮回路48からマルチプレクサ60を取り除いて構成
されている。そして、加算器59のオーバーフロー端子
を圧縮データの最上位桁とすることにより、第2の入力
データ41より1桁大きい圧縮データ49が得られるよ
うに構成している。
【0089】以上のように構成されたデータ圧縮回路4
8aは、実施の形態4で説明したステップ1とステップ
2の処理を実行する。ここで、実施の形態5では、圧縮
データ49のビット幅が第2の入力データ41に比較し
て1桁大きいので、ステップ2においてオーバーフロー
が生じない。この点が、実施の形態4と異なる。従っ
て、データ圧縮回路48aは、第2の入力データ41
を、ビット幅が第2の入力データ41より1桁大きくか
つビット状態が“1”であるビット信号の数が繰り返し
回数NUM以下であって、しかも第2の入力データ41
との差が最小になるように設定された圧縮データ49に
変換して出力する。
【0090】図10は、データ変換器72aにおける繰
り返し回数NUMと演算におけるデータ精度の関係を示
す。第2の入力データ41のビット幅は8とし、データ
精度は数式{8−log2(1+平均変換誤差)}を用
いて求めた。一方、演算におけるシフト+加算の回数は
繰り返し回数NUMに比例する。つまり演算時間は繰り
返し回数NUMに比例する。例えば繰り返し回数NUM
=4に設定すれば演算時間は半分になるが、データ精度
はわずかしか低下しない(8ビット→7.2ビット)。
逆に言えば、精度を1ビット程度低下させるだけで、2
倍の高速化が図れることを意味する。
【0091】以上のように構成された実施の形態5の積
和演算装置PM5では、第2の入力データ41を、ビッ
ト幅が第2の入力データ41より1桁大きくかつビット
状態が“1”であるビット信号の数が繰り返し回数NU
M以下であって、しかも第2の入力データ41との差が
最小になるように設定された圧縮データ49を用いて演
算している。これによって、実施の形態2の積和演算装
置PM2に比較して、演算の精度を向上させることがで
きる。例えば、実施の形態2の積和演算装置PM2にお
いて、8ビットの第2の入力データ41を用いて、ビッ
トシフト回数を4に設定して、演算した場合の平均変換
誤差は1.2であるが、実施の形態5の積和演算装置P
M5において、繰り返し回数NUM=4として演算した
場合の平均変換誤差は0.7にできる。
【0092】実施の形態6 図11は、本発明に係る実施の形態6の積和演算器集積
回路装置PS6の構成を示すブロック図である。当該積
和演算器集積回路装置PS6は、図11に示すように、
基本演算器PU1,PU2,PU3と、データ変換器7
2aとからなる。ここで、基本演算器PU1,PU2,
PU3はそれぞれ、実施の形態5における基本演算器P
Uと同様に構成され、データ変換器72aは、実施の形
態5のデータ変換器72aと同様に構成される。そし
て、データ変換器72aは、入力端子T71を介して入
力される第2の入力データXiを圧縮変換するとともに
その圧縮データYiのビット状態が“1”であるビット
信号の位置を示す変換データZi(1),…,Zi(N
UM)をそれぞれ、基本演算器PU1,PU2,PU3
のバレルシフタ44に出力する。基本演算器PU1は、
入力端子T70−1を介して第1の入力データとして入
力される重みデータW1と第2の入力データXiの圧縮
データYiとの積と、入力端子T75を介して第3の入
力データとして入力されるオフセットデータO1との和
を演算して、その積和演算の結果データを基本演算器P
U2のマルチプレクサ47に出力する。基本演算器PU
2は、入力端子T70−2を介して第1の入力データと
して入力される重みデータW2と第2の入力データXi
の圧縮データYiとの積と基本演算器PU1から入力さ
れる演算結果データとの和を演算して、その演算結果デ
ータを基本演算器PU3のマルチプレクサ47に出力す
る。基本演算器PU3は、入力端子T70−3を介して
第1の入力データとして入力される重みデータW3と第
2の入力データXiの圧縮データYiとの積と、基本演算
器PU2から入力される演算結果データとの和を演算し
て出力する。
【0093】次に、以上のように構成された積和演算器
集積回路装置PS6の動作を説明する。周期T=iのと
きにデータ圧縮回路48aに入力された時系列信号であ
る第2の入力データXiは、データ圧縮回路48aで第
2の入力データXiより1桁大きく、かつビット状態が
“1”であるビットの数が繰り返し回数NUM以下でか
つ第2の入力データXiとの差が最も小さい圧縮データ
iに変換されて、レジスタ50を介してシフト量変換
回路51に入力される。圧縮データYiはシフト量変換
回路51でビット状態が“1”のビットの位置を表す変
換データZi[1],…,Zi[NUM]に変換され
て、変換データZi[1],…,Zi[NUM]は、基
本演算器PU1乃至PU3のバレルシフタ44に入力さ
れる。
【0094】基本演算器PU1のバレルシフタ44に入
力される重みデータW1は、変換データZi[j]に基
づいてシフトされて加算器45に入力される。加算器4
5に入力された重みデータW1のシフト値は、加算器4
5で、バレルシフタ44にZi[1]が入力されたとき
は第3の入力であるオフセットデータO1が加算され、
バレルシフタ44にZi[1]以外のデータが入力され
たときはレジスタ46のデータが加算されてレジスタ4
6を介して基本演算器PU2のマルチプレクサ47に出
力される。
【0095】基本演算器PU2のバレルシフタ44に入
力される重みデータW2は、変換データZi[j]に基
づいてシフトされて加算器45に入力される。加算器4
5に入力された重みデータW2のシフト値は、加算器4
5で、バレルシフタ44にZi[1]が入力されたとき
は基本演算器PU1から出力されたデータが加算され、
バレルシフタ44にZi[1]以外のデータが入力され
たときはレジスタ46のデータが加算されてレジスタ4
6を介して基本演算器PU3のマルチプレクサ47に出
力される。
【0096】基本演算器PU3のバレルシフタ44に入
力される重みデータW3は、変換データZi[j]に基
づいてシフトされて加算器45に入力される。加算器4
5に入力された重みデータW3のシフト値は、加算器4
5で、バレルシフタ44にZi[1]が入力されたとき
は基本演算器PU2から出力されたデータが加算され、
バレルシフタ44にZi[1]以外のデータが入力され
たときはレジスタ46のデータが加算されてレジスタ4
4を介して出力される。
【0097】
【表1】
【0098】すなわち、表1に示すように、周期T=i
の時には、基本演算器PU1において、バレルシフタ4
4におけるシフトと加算器45における加算を計NUM
回繰り返すことによって、W1Yi+O1が演算されて、
演算されたW1Yi+O1は基本演算器PU2のマルチプ
レクサ47に出力される。そして、周期T=i+1の時
に、基本演算器PU2において、バレルシフタ44にお
けるシフトと加算器45における加算を計NUM回繰り
返すことによって、W2Yi+1+(基本演算器PU1か
ら出力されたデータ)が計算されるので、W2Yi+1
W1Yi+O1が基本演算器PU3のマルチプレクサ47
に出力される。周期T=i+2のときには、基本演算器
PU3において、バレルシフタ44におけるシフトと加
算器45における加算を計NUM回繰り返すことによっ
て、W3Yi+2+W2Yi+1+W1Yi+O1が出力され
る。
【0099】以上のようにして、演算結果W3Yi+2
W2Yi+1+W1Yi+O1(i=1,2,3,…)が出
力端子T74から順に出力される。オフセットデータO
1=0の場合を考えると、圧縮データ(Y1,Y2,Y3
…)とカーネル(W1,W2,W3)の畳み込み積分
(コンボルーション)を実行することができる。すなわ
ち、第2の入力データ(X1,X2,X3,…)とカーネ
ル(W1,W2,W3)の畳み込み積分(コンボルーシ
ョン)を実行することができる。ただし、第2の入力デ
ータXiを圧縮データYiに変換してから演算するので、
演算結果W3Yi+2+W2Yi+1+W1Yi+O1=演算結
果W3Yi+2+W2Yi+1+W1Yi+O1+誤差Sにな
る。ここで、誤差Sは変換誤差によって生じる誤差であ
って、繰り返し回数NUMの値に応じて大きさが変化す
る。
【0100】ここで、実施の形態6では、カーネルサイ
ズが3の場合について示したが、本発明はこれに限ら
ず、基本演算器をさらに直列に接続して構成しても良
い。これによって、さらに大きなカーネルを用いた畳み
込み積分を実行できるようにできる。
【0101】以上の実施の形態6の積和演算器集積回路
装置PS6では、演算精度を許容できる範囲に保って繰
り返し回数NUMを最小に設定することにより演算時間
を大幅に短縮できる。例えば、乗算器と加算器によって
構成される積和演算器集積回路装置では,精度8ビット
まで対応できるように回路を作製すると精度が7ビット
でよい場合でも演算時間はわずか数%短縮されるだけで
ある。一方、本実施の形態6の積和演算器集積回路装置
PS6では精度が7ビットで良い場合には、繰り返し回
数NUM=4に設定することができるので,演算時間は
半分に短縮できる。
【0102】実施の形態7 図12は実施の形態7の積和演算器集積回路装置PS7
の構成を示すブロック図である。図12の積和演算器集
積回路装置PS7が、図11の積和演算器装置PS6に
比較して異なる点は、基本演算器PU1と基本演算器P
U2との間にレジスタR1を設け、基本演算器PU2と
基本演算器PU3との間にレジスタR2を設けた点であ
る。ここで、レジスタR1は、基本演算器PU1から出
力される積和演算結果データをクロックの1周期の時間
だけ保持して基本演算器PU2に出力し、レジスタR2
は、基本演算器PU2から出力される積和演算結果デー
タをクロックの1周期の時間だけ保持して基本演算器P
U3に出力する。
【0103】次に、以上のように構成された積和演算器
集積回路装置PS7の動作を説明する。ここで、重みデ
ータW1,W2は、入力端子T70−1を介して基本演
算器PU1のバレルシフタ44に入力され、重みデータ
W3,W4は入力端子T70−2を介して基本演算器P
U2のバレルシフタ44に入力され、重みデータW5,
W6は、入力端子T70−3を介して基本演算器PU2
に入力される。入力端子T71を介してデータ変換器7
2に入力された第2の入力データXiは、データ変換器
72によって、図12の積和演算装置PM6と同様に処
理されて、基本演算器PU1乃至PU3に入力される。
【0104】周期T=2i−1のとき第2の入力データ
iがデータ変換器72aに入力され、変換データZi
[1],…,Zi[NUM]に変換されて、変換データ
Zi[j]は周期T=2i−1と周期T=2iのときに
それぞれ、変換データZi[1]から順に変換データZ
i[NUM]まで各基本演算器PUのバレルシフタ44
に入力される。
【0105】基本演算器PU1のバレルシフタ44では
変換データZi[j]に応じて周期T=2i−1のとき
はW2,周期T=2iのときはW1がシフトされ加算器
45に入力される。加算器45には、周期T=2iの期
間でバレルシフタ44にZi[1]が入力されたときに
は第3の入力データであるオフセットデータO1が入力
され、それ以外のときはレジスタ46のデータが入力さ
れる。このバレルシフタ44におけるシフトと加算器4
5における加算を各周期で計NUM回繰り返すと周期T
=2i−1のときはW2Yi+(周期T=2(i−1)
のときの演算結果)が出力され、周期T=2iのときは
W1Yi+O1が出力される。
【0106】基本演算器PU2,PU3についても基本
演算器PU1と同様に動作し、レジスタR1は周期T=
2iの最初に左側の基本演算器PU1の出力すなわちW
2Yi+(周期T=2(i−1)のときの演算結果)を
取り込み、レジスタR2は周期T=2iの最初に左側の
基本演算器PU1の出力すなわちW4Yi+(周期T=
2(i−1)のときの演算結果)を取り込む。
【0107】次にデータの流れを表2を参照して説明す
る。ここで、以下の説明では、オフセットデータO1
0とする。
【0108】
【表2】
【0109】周期T=2iで基本演算器PU1ではW1
iが計算される。周期T=2(i+1)−1では基本
演算器PU1でW2Yi+1+W1Yiが計算される。周期
T=2(i+1)でW2Yi+1+W1YiはレジスタR1
に取り込まれる。周期T=2(i+2)−1のときはレ
ジスタR1に引き続き保持される。周期T=2(i+
2)では基本演算器PU2でW3Yi+2+W2Yi+1+W
1Yiが計算される。周期T=2(i+3)−1では基
本演算器PU2でW4Yi+3+W3Yi+2+W2Yi+1
W1Yiが計算される。周期T=2(i+3)でW4Y
i+3+W3Yi+2+W2Yi+1+W1YiはレジスタR2に
取り込まれる。周期T=2(i+4)−1のときは引き
続きレジスタR2に保持される。周期T=2(i+4)
では基本演算器PU3でW5Yi+4+W4Yi+3+W3Y
i+2+W2Yi+1+W1Yiが計算される。周期T=2
(i+5)−1では基本演算器PU3でW6Yi+5+W
5Yi+4+W4Yi+3+W3Yi+2+W2Yi+1+W1Yi
が計算される。
【0110】表3と表4にはiに数値を代入してデータ
の流れを示した。表4から明らかなようにW6Yi+5
W5Yi+4+W4Yi+3+W3Yi+2+W2Yi+1+W1Y
i(i=1,2,3,…)が出力端子T74から順に出
力される。これは、圧縮データ(Y1,Y2,Y3,…)
とカーネル(W1,W2,W3,W4,W5,W6)の
畳み込み積分(コンボルーション)が実行できることを
意味する。従って、図12の積和演算器集積回路装置P
S7によれば、第2の入力データ(X1,X2,X3
…)とカーネル(W1,W2,W3,W4,W5,W
6)の畳み込み積分(コンボルーション)が実行でき
る。
【0111】
【表3】
【0112】
【表4】
【0113】以上の実施の形態7の積和演算器集積回路
装置PS7では、カーネルサイズが6の場合を示した
が、基本演算器PUkとレジスタRkとをさらに直列に
接続して構成してもよい。以上のように構成することに
より、基本演算器PUkがn個のとき、カーネルサイズ
は2nにでき、さらにおおきなカーネルを用いた畳み込
み積分を実行することができる。このように、積和演算
器集積回路装置PS7によれば、n個の基本演算器PU
kを備えた回路規模(コスト)で2nという大きなカー
ネルサイズの演算を実行することができる。
【0114】実施の形態8 図13は実施の形態8の積和演算器集積回路装置PS8
の構成を示すブロック図である。当該積和演算器集積回
路装置PS8は、基本演算器PU1乃至PU6と、デー
タ変換器72aと、ラインバッファ82とを備える。こ
こで、当該積和演算器集積回路装置PS8は、基本演算
器PU3と基本演算器PU4との間にラインバッファ8
2を設けたことを特徴とする。
【0115】積和演算器集積回路装置PS8において、
データ変換器72aは、基本演算器PU1乃至PU6に
変換データZi[j]を出力する。基本演算器PU1
は、入力される変換データZi[j]に基づいて、入力
端子T70−1を介して入力される重みデータW1と圧
縮データYiとの積と、入力端子75を介して入力され
るオフセットデータO1との和を演算して、基本演算器
PU2に出力する。基本演算器PU2は、入力される変
換データZi[j]に基づいて、入力端子T70−2を
介して入力される重みデータW2と圧縮データYiとの
積と、基本演算器PU1から入力される演算結果データ
との和を演算して、基本演算器PU3に出力する。基本
演算器PU3は、入力される変換データZi[j]に基
づいて、入力端子T70−3を介して入力される重みデ
ータW3と圧縮データYiとの積と、基本演算器PU2
から入力される演算結果データとの和を演算して、ライ
ンバッファ82に出力する。ラインバッファ82は、基
本演算器PU3から入力されるクロック信号の3周期分
の演算結果データを保持して、保持データを基本演算器
PU4に入力する。
【0116】基本演算器PU4は、入力される変換デー
タZi[j]に基づいて、入力端子T70−4を介して
入力される重みデータW4と圧縮データYiとの積と、
ラインバッファ82から入力されるデータとの和を演算
して、基本演算器PU5に出力する。基本演算器PU5
は、入力される変換データZi[j]に基づいて、入力
端子T70−5を介して入力される重みデータW5と圧
縮データYiとの積と、基本演算器PU4から入力され
る演算結果データとの和を演算して、基本演算器PU6
に出力する。基本演算器PU6は、入力される変換デー
タZi[j]に基づいて、入力端子T70−6を介して
入力される重みデータW6と圧縮データYiとの積と、
基本演算器PU5から入力される演算結果データとの和
を演算して出力端子74から出力する。
【0117】図14(a)はシフトレジスタを用いたラ
インバッファ82の構成を示す。図14(a)のライン
バッファ82は、縦続接続されたレジスタBR1,BR
2,…,BRLを備え、入力されたデータは順次所定の
クロック信号に応答して右のレジスタBRk(k=1,
2,…,L)に転送される。そして、入力データが長さ
Lを越えると最初に入力されたデータから順に出力され
る。
【0118】図14(b)は、ラインバッファ82とは
異なるラインバッファ82aの構成を示すブロック図で
ある。ラインバッファ82aは、メモリ83とアドレス
ループカウンタ84とからなり、アドレスループカウン
タ84は所定のアドレスadrを示すアドレスデータを
アドレスバスを介してメモリ83に入力し、メモリ83
はアドレスループカウンタ84から入力されるアドレス
データに基づいてアドレスadrに記憶されたデータを
データバスを介して出力端子T83bから出力するとと
もに入力端子T83aからデータバスを介して入力され
るデータをメモリ83のアドレスadrに記憶する。
【0119】次に、図14(c)のフローチャートを参
照して、図14(b)のラインバッファ82aの動作を
説明する。ステップS1でアドレスadrを0に設定す
る。ステップS2で、積和演算器集積回路装置PS8の
演算処理が終了したか否かを判断して、終了した場合に
はステップS3に進みラインバッファ82aの処理を終
了させる。終了していない場合には、ステップS4に進
む。ステップS4では、アドレスadr+1をアドレス
adrに代入してアドレスadrを設定して、ステップ
S5に進む。ステップS5では、アドレスadr<Lか
否かを判断して、アドレスadr<Lの場合には、ステ
ップS7に進み、アドレスadr<Lでない場合には、
ステップS6に進む。ステップS6では、0をアドレス
adrに代入してアドレスadrを設定してステップS
7に進む。ステップS7では、メモリ83のアドレスa
drに記憶されたデータを読み出して出力端子T83b
から出力してステップS8に進む。ステップS8では、
入力端子T83aから入力されたデータをメモリ83の
アドレスadrに書き込んで記憶させて、ステップS2
に進む。以下、ステップS3乃至ステップS8を繰り返
すことにより、図14(a)のラインバッファ82と同
じ動作をさせることができる。従って、積和演算器集積
回路装置PS8では、図14(a)のラインバッファ8
2に代えて、図14(b)のラインバッファ82aを用
いて構成してもよい。ここで、積和演算器集積回路装置
PS8では、ラインバッファ82又はラインバッファ8
2aの長さLは3に設定される。これによって、ライン
バッファ82は、クロック信号の3周期分のデータを保
持する。
【0120】次に、以上のように構成された図13の積
和演算器集積回路装置PS8の動作を説明する。周期T
=iのとき時系列信号の第2の入力データXiが入力端
子71を介してデータ変換器72に入力され、データ変
換器72で第2の入力データXiより1桁大きく、かつ
ビット状態が“1”であるビット信号の数が繰り返し回
数NUM以下でかつ第2の入力データXiとの差が最も
小さい圧縮データYiに圧縮され、さらに圧縮データYi
はビット状態が“1”のビット信号の位置を表す変換デ
ータZi[1],…Zi[NUM]に変換される。変換
データZi[j](j=1,2,…,NUM)は各基本
演算器PUkのバレルシフタ44に順に入力される。各
基本演算器PUkでは周期T=iのときWkYi+(第
3の入力)が出力として得られる。ここで、第3の入力
は、基本演算器PU1の場合には、入力端子T75から
入力されるオフセットデータO1であり、基本演算器P
Uk(k=2,3,4,5,6)の場合には、基本演算
器PU(k−1)から出力される演算データである。た
だし、WkYi=WkXi+(変換誤差)であり、その変
換誤差は、繰り返し回数NUMの値に応じて変わる。
【0121】次に、図15を参照して、この積和演算器
集積回路装置PS8におけるデータの流れを説明する。
ここで、図15においては、オフセットデータO1=0
とした。図15(a)に示すように周期T=1のとき基
本演算器PU1でW1Y1が計算される。また、図15
(b)に示すように周期T=2では、基本演算器PU2
でW2Y2+(基本演算器PU1から出力されるデー
タ)、すなわちW2Y2+W1Y1が計算される。さら
に、図15(c)に示すように周期T=3では、基本演
算器PU3でW3Y3+(基本演算器PU2から出力さ
れるデータ)、すなわちW3Y3+W2Y2+W1Y1
計算される。またさらに、図15(d)に示すように周
期T=4では、ラインバッファ82のレジスタBR1で
W3Y3+W2Y2+W1Y1が保持される。図15
(e)に示すように周期T=5では、レジスタBR1か
ら転送されたW3Y3+W2Y2+W1Y1がレジスタB
R2で保持される。図15(f)に示すように周期T=
6では、レジスタBR2から転送されたW3Y3+W2
2+W1Y1がレジスタBR3で保持される。図15
(g)に示すように周期T=7では、基本演算器PU4
でW4Y7+(レジスタBR3から出力されたデー
タ)、すなわちW4Y7+W3Y3+W2Y2+W1Y1
計算される。周期T=8では、基本演算器PU5でW5
8+(基本演算器PU4から出力されるデータ)、す
なわちW5Y8+W4Y7+W3Y3+W2Y2+W1Y1
が計算される。周期T=9では、基本演算器PU6でW
6Y9+(基本演算器PU5から出力されるデータ)、
すなわちW6Y9+W5Y8+W4Y7+W3Y3+W2Y
2+W1Y1が計算され、演算結果として出力される。
【0122】このように出力端子T74からは周期毎に
W6Yi+8+W5Yi+7+W4Yi+6+W3Yi+2+W2Y
i+1+W1Yi(i=1,2,3,…)が順次出力され
る。以上のように動作する積和演算器集積回路装置PS
8は、2種類の演算を実行することができる。第1は第
2の入力データ(X1,X2,X3,…)とカーネル(W
1,W2,W3,0,0,0,W4,W5,W6)の畳
み込み積分(コンボルーション)である。第2は図16
(a)に示す幅6の2次元データ{Xi}と図16
(b)に示す3×2のカーネル(W1,W2,W3;W
4,W5,W6)の畳み込み積分(コンボルーション)
である。一般に画像のサイズをm×n、カーネルサイズ
をa×bとするとラインバッファの長さL=m−aに設
定すればよい。
【0123】この積和演算器集積回路装置PS8の演算
では第2の入力データXiではなく圧縮データYiが用い
られている。そのため繰り返し回数NUM<(Xiのビ
ット幅)の場合、変換誤差が生じる。この変換誤差の画
像コンボルーションへの影響をシミュレーションにより
評価した。入力画像は8ビット精度、256×240画
素、カーネルは図17に示す16×16のラプラシアン
フィルタを用いた。演算は繰り返し回数NUM=8すな
わち圧縮データYi=第2の入力データXiの場合と繰り
返し回数NUM=4の場合について実行した。図18
(a)は繰り返し回数NUM=8の場合の演算結果の各
画素の値の度数分布を表す。大きさは8ビット(25
5)以内になるように規格化してある。図18(b)は
NUM=8のときとNUM=4のときの各画素の値の差
の分布を表す。NUM=4としたことによる変換誤差の
画像コンボルーションへの影響は非常に小さいことが確
認できる。
【0124】以上の実施の形態8の積和演算器集積回路
装置PS8によれば、例えば、ラスタスキャンの画像に
対する畳み込み積分を外部にバッファメモリを設けなく
ても実行できる。これによって、積和演算器集積回路装
置PS8を用いた画像処理装置は、積和演算器集積回路
装置PS8を用いていない画像処理装置に比較して、低
価格にでき、かつボードへの実装を容易にできる。
【0125】実施の形態9 図19は実施の形態9の積和演算器集積回路装置PS9
の構成を示すブロック図である。当該積和演算器集積回
路装置PS9が図13の積和演算器集積回路装置PS8
と比較して異なる所は、図13の積和演算器集積回路装
置PS8におけるラインバッファ82に代えてラインバ
ッファ82bを用いて構成している点である。ここで、
ラインバッファ82bは、図20(a)に示すように、
n個のレジスタBR1乃至BRnが縦続接続されたシフ
トレジスタ82bsとマルチプレクサ86とからなるい
わゆる可変長ラインバッファである。すなわち、ライン
バッファ82bにおいて、シフトレジスタ82bsは所
定のクロック信号に同期して入力されるデータを順次後
段のレジスタBRkに入力するとともに各レジスタBR
kに記憶されたデータを後段の各レジスタBR(k+
1)にシフトして記憶する。また、各レジスタBRkは
記憶していたデータをマルチプレクサ86に出力する。
マルチプレクサ86は、各レジスタBRkから入力され
たデータのうち、入力端子T85を介して入力される長
さLに基づいてレジスタBRLから入力された1つのデ
ータを選択的に出力する。
【0126】当該ラインバッファ82bにおいて、入力
されたデータは順次右のレジスタBRkに転送され、マ
ルチプレクサ86によって左からL本目のレジスタBR
Lの信号が選択されて出力され、これによって、長さL
のラインバッファ82bが実現できる。また、図20
(b)に示すラインバッファ82cは、メモリ83とア
ドレスループカウンタ84とを備える。ラインバッファ
82cが、図14(b)のラインバッファ82aと比べ
て異なる点は、アドレスループカウンタ84に長さLを
入力するための入力端子T85を設けた点である。これ
によって、アクセスするメモリアドレスをループさせる
長さを外部から与えられる値に設定することができる。
すなわち、入力端子T85に所定の長さLを入力すれ
ば、長さLのラインバッファ82cが実現できる。従っ
て、実施の形態9の積和演算器集積回路装置PS9で
は、ラインバッファ82bに代えて図20(b)のライ
ンバッファ82cを用いて構成してもよい。
【0127】以上のように構成された積和演算器集積回
路装置PS9において、重みデータWi(i=1,2,
…,6)は、入力端子T70−iを介して基本演算器P
Uiに入力され、入力端子T71を介して第2の入力デ
ータXiが入力される。また、ラインバッファ82bに
は、ラインバッファの長さを設定するパラメータLを示
す信号が入力端子T85を介して入力される。ここで、
長さL=3とすると、積和演算器集積回路装置PS9
は、第8の実施の形態と同様の動作をする。すなわち、
基本演算器PU6から周期毎にW6Yi+8+W5Yi+7
W4Yi+6+W3Yi+2+W2Yi+1+W1Yiが順次出力
端子T74を介して出力される。幅6の2次元データで
ある第2の入力データ{Xi}と3×2のカーネル(W
1,W2,W3;W4,W5,W6)の畳み込み積分
(コンボルーション)が実行される。長さL=0の場合
は、出力端子T74から周期毎にW6Yi+5+W5Yi+4
+W4Yi+3+W3Yi+2+W2Yi+1+W1Yiが順次出
力される。幅6の2次元データである第2の入力データ
{Xi}と6×1のカーネル(W1,W2,W3,W
4,W5,W6)の畳み込み積分(コンボルーション)
が実行される。
【0128】以上のように、実施の形態9の積和演算器
集積回路装置PS9によれば、長さLの大きさを“0”
に設定することにより図21(a)に示すカーネルの形
状を選択することができ、また、長さLの大きさを“m
−a”(この場合は6−3=3)に設定することにより
図21(b)に示すカーネルの形状を選択することがで
きる。また、画像の大きさ(m×n)が変わっても、長
さL(=m−a)を変えることにより同じ積和演算器集
積回路装置PS9で対応できる。すなわち、1つの回路
(チップ)でいろいろな画像サイズ,カーネル形状に対
応できる。
【0129】実施の形態10 図22は、本発明に係る実施の形態10の積和演算器集
積回路装置PS10の構成を示すブロック図である。当
該積和演算器集積回路装置PS10が図19の積和演算
器集積回路装置PS9と比較して異なる所は、基本演算
器PU6と、出力端子74との間にラインバッファ87
を設けて構成した点である。
【0130】以上のように構成された積和演算器集積回
路装置PS10において、重みデータWi(i=1,
2,…,6)は、入力端子T70−iを介して基本演算
器PUiに入力され、入力端子T71を介して第2の入
力データXiが入力される。そして、基本演算器PU6
から出力された信号はラインバッファ87の長さLの分
だけ遅れて出力端子T74を介して出力される。すなわ
ち、周期T=i+5+LのときにW6Yi+5+W5Yi+4
+W4Yi+3+W3Yi+2+W2Yi+1+W1Yiが出力さ
れる。このようにラインバッファ87により、演算結果
の出力のタイミング(遅延)の大きさが調整できる。こ
れによって、次の実施の形態11で示すように、積和演
算器集積回路装置PS10を複数個接続することができ
る。すなわち、出力タイミングが調整できるので他の素
子との接続を容易にできる。
【0131】実施の形態11 図23は本発明に係る実施の形態11の積和演算器集積
回路装置PS11の構成を示すブロック図である。当該
積和演算器集積回路装置PS11は、2つの積和演算器
集積回路装置PS9,PS10を縦続接続して構成され
る。すなわち、積和演算器集積回路装置PS10の出力
端子T74と積和演算器集積回路装置PS9の入力端子
T75とを接続して構成される。ここで、積和演算器集
積回路装置PS9は、実施の形態9と同様に構成され、
積和演算器集積回路装置PS10は、実施の形態10と
同様に構成される。また、積和演算器集積回路装置PS
9と積和演算器集積回路装置PS10とには、同一の第
2の入力データXiが入力される。
【0132】以上のように構成された積和演算器集積回
路装置PS11の動作を説明する。ここで、第2の入力
データXiはm×nの画像データとする。積和演算器集
積回路装置PS9,PS10のラインバッファ82bの
長さLは0、積和演算器集積回路装置PS10のライン
バッファ87はの長さLはm−6に設定される。積和演
算器集積回路PS10の各基本演算器PU1乃至PU6
に入力される重みデータをそれぞれ、W1,…,W6と
すると、周期T=mのときのPM10の出力端子T74
からはW6Y6+W5Y5+…+W1Y1が出力される。
この信号は積和演算器集積回路PS9の入力端子75に
入力される。積和演算器集積回路装置PS9の基本演算
器PU1乃至PU6に入力される重みデータをそれぞ
れ、W7,…,W12とすると、周期T=m+6のとき
のPM9からの出力はW12Ym+6+…+W7Ym+1+W
6Y6+…+W1Y1となる。これは第2の入力データ
{X}と図24に示す6×2のカーネル(W1,…,
W6;W7,…,W12)の畳み込み積分(コンボルー
ション)結果である。
【0133】図25の積和演算器集積回路装置PS11
aは、b個の積和演算器集積回路装置PS10−1乃至
PS10−bを縦続接続したものである。ここで、積和
演算器集積回路装置PS10−1乃至PS10−bはそ
れぞれ、実施の形態10の積和演算器集積回路装置PS
10と同様に構成される。以上のように構成された積和
演算器集積回路装置PS11aは、6×bのカーネルを
用いた、畳み込み積分(コンボルーション)を実行する
ことができる。すなわち、b個の積和演算器集積回路装
置PS10−1乃至PS10−bを接続することにより
演算できるカーネルサイズを1方向にb倍に拡大でき
る。また、積和演算器集積回路装置PS10の間を直接
接続することができるので、他の素子は不要である。こ
れによって、マルチチップモジュール技術を用いた実装
に適する。
【0134】実施の形態12 図26は、本発明に係る実施の形態12の積和演算器集
積回路装置PS12の構成を示すブロック図である。当
該積和演算器集積回路装置PS12は、図22の実施の
形態10と同様に構成された2つの積和演算器集積回路
装置PS10a,PS10bと、積和演算器集積回路装
置PS10a,PS10bから出力される演算結果デー
タを加算する加算器89とを備えて構成される。ここ
で、積和演算器集積回路装置PS10aと積和演算器集
積回路装置PS10bとは、実施の形態10の積和演算
器集積回路PS10と同様に構成される。また、積和演
算器集積回路装置PS10aと積和演算器集積回路装置
PS10bとには、同一の第2の入力データXが入力
される。
【0135】次に以上のように構成された積和演算器集
積回路装置PS12の動作を説明する。積和演算器集積
回路装置PS10a,PS10bのラインバッファ82
bの長さは0、PM10aのラインバッファ87の長さ
Lは6、積和演算器集積回路装置PS10bのラインバ
ッファ87の長さLは0とする。積和演算器集積回路P
S10aの基本演算器PU1乃至PU6に入力される重
みデータをそれぞれ、W1,…,W6とすると、周期T
=12のときの積和演算器集積回路装置PS10aの出
力端子74aからはW6Y6+W5Y5+…+W1Y1
出力される。一方、積和演算器集積回路装置PS10b
の基本演算器PU1乃至PU6に入力される重みデータ
をそれぞれ、W7,…,W12とすると、周期T=12
のときの積和演算器集積回路装置PS10bの出力端子
74bからW12Y12+W11Y11+…+W7Y7が出
力される。これを加算器89で和を取ると、W12Y12
+…+W1Y1が得られる。このようにして第2の入力
データ{Xi}と図27に示す12×1のカーネルとの
畳み込み積分(コンボルーション)が実行できる。
【0136】実施の形態13 図28は、本発明に係る実施の形態13の積和演算器集
積回路装置PS13の構成を示すブロック図である。当
該積和演算器集積回路装置PS13は、図26の積和演
算器集積回路装置PS12と、積和演算器集積回路装置
PS12の加算器89から出力されるデータをクロック
信号の6周期の時間だけ保持した後加算器89aに出力
する接続ラインバッファ90と、積和演算器集積回路装
置PS10cと、積和演算器集積回路装置PS10cか
ら出力される信号と接続ラインバッファ90から出力さ
れるデータとを加算する加算器89aとからなる。ここ
で、積和演算器集積回路装置PS10cは、実施の形態
10の積和演算器集積回路装置PS10と同様に構成さ
れる。
【0137】次に、以上のように構成された積和演算器
集積回路装置PS13の動作を説明する。積和演算器集
積回路装置PS10a,PS10b,PS10cのライ
ンバッファ82bの長さLはそれぞれ0に設定され、積
和演算器集積回路PM10aのラインバッファ87の長
さLは6、積和演算器集積回路PM10b,PM10c
のラインバッファ87の長さLは0に設定する。接続ラ
インバッファ90の長さLは6に設定する。積和演算器
集積回路装置PS10aの基本演算器PU1乃至PU6
に入力される重みデータをW1,…,W6とすると、周
期T=12のときの積和演算器集積回路装置PS10a
からW6Y6+W5Y5+…+W1Y1が出力される。一
方、積和演算器集積回路装置PS10bの基本演算器P
U1乃至PU6に入力される重みデータをW7,…,W
12とすると、周期T=12のとき、積和演算器集積回
路装置PS10bからW12Y12+W11Y11+…+W
7Y7が出力される。これを加算器89で和を取ると、
T=12のときにW12Y12+…+W1Y1が得られ
る。この値は接続ラインバッファ90でクロック信号の
6周期の時間だけ保持されT=18のとき加算器89a
に入力される。積和演算器集積回路装置PS10cの基
本演算器PU1乃至PU6に入力される重みデータをW
13,…,W18とすると、T=18のとき、積和演算
器集積回路装置PS10cからW18Y18+W17Y17
+…+W13Y13が出力される。その結果、加算器89
aのT=18のときの出力はW18Y18+…+W1Y1
となる。このようにして第2の入力{Xi}と図29に
示す18×1のカーネルの畳み込み積分(コンボルーシ
ョン)が実行できる。
【0138】同様にして図30に示すようにc個の積和
演算器集積回路装置PS10−1乃至PS10−cと、
(c−2)個の接続ラインバッファ90−1乃至90−
(c−2)と,(c−1)個の加算器89−1乃至89
−(c−2)を以下のように接続することにより、積和
演算器集積回路装置PS13aを構成することができ
る。
【0139】積和演算器集積回路装置PS13aにおい
て、積和演算器集積回路装置PS10−1と積和演算器
集積回路装置PS10−2はそれぞれ演算結果を加算器
89−1に出力する。加算器89−1は積和演算器集積
回路装置PS10−1から出力された演算結果と積和演
算器集積回路装置PS10−2から出力された演算結果
を加算して接続ラインバッファ90−1に出力する。接
続ラインバッファ90−1は加算器89−1から出力さ
れたデータをクロック信号の6周期の時間保持して加算
器89−2に出力する。積和演算器集積回路装置PS9
0−3は、演算結果を加算器89−2に出力する。加算
器89−2は接続ラインバッファ90−1から出力され
たデータと積和演算器集積回路装置PS90−3から出
力された演算結果とを加算して接続ラインバッファ90
−2(図示せず)に出力する。
【0140】以下同様にして、接続演算器集積回路装置
PS−k(k=4,5,…,c)は、演算結果を加算器
89−(k−1)に出力する。また、加算器89−k
(k=3,4,…,c−2)は、接続ラインバッファ9
0−(k−1)から出力されるデータと積和演算器集積
回路装置PS10−(k+1)から出力される演算結果
を加算して、接続ラインバッファ90−kに出力する。
接続ラインバッファ90−k(k=2,3,…,c−
2)は、加算器89−kから出力されるデータをクロッ
ク信号の6周期の時間保持して加算器89−(k+1)
に出力する。加算器89−(c−1)は、接続ラインバ
ッファ90−(c−2)から出力されるデータと積和演
算器集積回路装置PS10−cから出力される演算結果
を加算して出力する。以上のように構成された積和演算
器集積回路装置PS13aは、(6×c)×1のカーネ
ルを用いた畳み込み積分を実行することができる。
【0141】実施の形態14 図31は本発明に係る実施の形態14の積和演算器集積
回路装置PS14の構成を示すブロック図である。積和
演算器集積回路装置PS14はc個の積和演算器集積回
路装置PS11a−1乃至PS11a−cを備えたこと
を特徴とし、c個の積和演算器集積回路装置PS11a
−1乃至PS11a−cと、(c−1)個の加算器89
−1乃至89−(c−1)と、(c−2)個の接続ライ
ンバッファ90−1乃至90−(c−2)とからなる。
ここで、積和演算器集積回路装置PS11a−1乃至P
S11a−cはそれぞれ、図25の積和演算器集積回路
装置PS11aと同様に構成される。
【0142】積和演算器集積回路装置PS14におい
て、積和演算器集積回路装置PS11a−1と積和演算
器集積回路装置PS11a−2とはそれぞれ、演算結果
を加算器89−1に出力する。また、積和演算器集積回
路装置PS11a−k(k=3,4,…,c)は、演算
結果を加算器89−(k−1)に出力する。加算器89
−1は、積和演算器集積回路装置PS11a−1ら出力
される演算結果データと、積和演算器集積回路装置PS
11a−2から出力される演算結果データとを加算して
接続ラインバッファ90−1に出力する。接続ラインバ
ッファ90−1は、加算器89−1から出力される加算
データをクロック信号の所定の周期の時間だけ保持した
後、加算器89−2に出力する。加算器89−2は、積
和演算器集積回路装置PS11a−3から出力される演
算結果データと、接続ラインバッファ90−1から出力
される保持データとを加算して加算結果データを出力す
る。
【0143】接続ラインバッファ90−k(k=2,
3,…,c−2)は、加算器89−kから出力される加
算データをクロック信号の所定の周期の時間だけ保持し
た後、加算器89−(k+1)に出力する。加算器89
−k(k=3,4,…,c−2)は、積和演算器集積回
路装置PS11a−(k+1)から出力される演算結果
データと、接続ラインバッファ90−(k−1)から出
力される保持データとを加算して加算結果データを出力
する。加算器89−(c−1)は、積和演算器集積回路
装置PS11a−cから出力される演算結果データと、
接続ラインバッファ90−(c−2)から出力される保
持データとを加算して加算結果データを、積和演算器集
積回路装置PS14の出力として出力する。ここで、第
2の入力データ{Xi}はすべての積和演算器集積回路
装置PS11a−1乃至PS11a−cに入力される。
【0144】以上のように構成された積和演算器集積回
路装置PS14は、実施の形態12と13の動作と同様
に、第2の入力データ{Xi}と(6×c)×(b)の
カーネルとの畳み込み積分(コンボルーション)を実行
することができる。
【0145】実施の形態15 図32は、本発明に係る実施の形態15の積和演算装置
PM15の構成を示すブロック図である。当該積和演算
装置PM15は、図7の実施の形態3の積和演算装置P
M3における基本演算器PUと、データ変換器72cを
用いて構成され、以下の特徴を有する。すなわち、デー
タ変換器72cにおいて、データ圧縮回路48bは、第
2の入力データXiを圧縮データYiに変換して、圧縮デ
ータYiをレジスタ50に出力する一方、圧縮データYi
の中でビット状態が“1”のビット信号の数F(最大N
UM)をシフト量変換回路51aに出力する。そして、
シフト量変換回路51aは、圧縮データYiを圧縮デー
タYiの中でビット状態が“1”であるビット信号の位
置を示すF個の変換データZi(1),…,Zi(F)
に変換して出力するが、データ圧縮回路48bから数F
が入力されているので、最後の変換データZi(F)の
変換出力が終了した後、待ち時間なく次の第2の入力デ
ータXi+1の処理を開始する。
【0146】データ変換器72cは、図32に示すよう
に、データ圧縮回路48bとレジスタ50とシフト量変
換回路51aとからなる。データ圧縮回路48bは、第
2の入力データXiをビット状態が“1”のビット信号
の数がNUM以下であって、桁数が第2の入力データX
iより1つ多く、かつ第2の入力データXiとの差がもっ
と小さい圧縮データYiに変換して、圧縮データYiをレ
ジスタ50に出力する一方、圧縮データYiの中でビッ
ト状態が“1”のビット信号の数F(最大NUM)をシ
フト量変換回路51aに出力する。ここで、繰り返し回
数NUMは入力端子T76を介して入力される。シフト
量変換回路51aは、レジスタ50に記憶された圧縮デ
ータYiに応答して、当該圧縮データYiをビット状態が
“1”であるビット信号の位置を示す変換データZi
(1),…Zi(F)に変換してバレルシフタ44に出
力する。ここで、シフト量変換回路51aは、データ圧
縮回路48bから数Fが入力されているので、圧縮デー
タYiの中でビット状態が“1”であるビット信号の位
置を示す最後の変換データZi(F)の変換出力が終了
した後、待ち時間なく次の第2の入力データXi+1の処
理を開始する。
【0147】次に動作を説明する。入力端子T62を介
して入力される第2の入力データXiはデータ圧縮回路
48bでビット状態が“1”のビット信号の数がNUM
であって、桁数が第2の入力データXiより1つ多く、
かつ第2の入力データXiとの差がもっと小さい圧縮デ
ータYiに変換される。このとき圧縮データYiの中でビ
ット状態が“1”であるビット信号の数F(最大NU
M)も出力される。シフト量変換回路51aで、圧縮デ
ータYiは圧縮データYiのビット状態が“1”であるビ
ット信号の位置を表す変換データZi(1),…Zi
(F)に変換されて、基本演算器PUのバレルシフタ4
4に出力される。基本演算器PUにおいては、実施の形
態3と同様に、この第2の入力データXiから導かれた
変換データZi(1),…Zi(F)と第1の入力デー
タ40とから第1の入力データ40と第2の入力データ
iとの積を演算し、その演算結果データと第3の入力
データ42との和を演算して、すなわち、(第1の入力
データ40)×(第2の入力データXi)+(第3の入
力データ42)を演算して出力端子T46を介して出力
する。
【0148】実施の形態4乃至実施の形態14では、繰
り返し回数NUM回シフトと加算を行うのに必要な時間
を1回の演算時間としているので、変換後の圧縮データ
iにおけるビット状態が“1”であるビット信号の数
が繰り返し回数NUMよりも小さい場合は待ち時間が生
じることになる。これに対し、本実施の形態15の積和
演算装置PM15では変換後のデータにおける“1”の
数Fを検出することにより待ち時間をのぞくことができ
る。従って、実施の形態15の積和演算装置PM15に
よれば、第2の入力データXiに応じてシフト回数と加
算の回数とを必要な最小の回数に設定できるので、演算
時間を短縮できる。
【0149】実施の形態16 図33は本発明に係る実施の形態16の積和演算装置P
M16の構成を示すブロック図である。積和演算装置P
M16は、データ変換器72dとバレルシフタ65とイ
クスクルーシブオアゲートアレイ(以下、EXオアゲー
トアレイと称する。)93と加算器66とレジスタ67
とマルチプレクサ68とからなり以下の特徴を有する。
データ変換器72dは、第2の入力データXiをΣAj
j−ΣBj2jに変換して、Ajが状態“1”であれば
jをシフト量としてバレルシフタ65に出力する一方、
符号信号“0”をEXオアゲートアレイ93と加算器6
6の入力キャリー端子に出力し、Bjが状態“1”であ
ればjをシフト量としてバレルシフタ65に出力する一
方、符号信号“1”をEXオアゲートアレイ93の各ゲ
ートの一入力と加算器66の入力キャリー端子に出力す
る。
【0150】積和演算装置PM16において、データ変
換器72dは、第2の入力データXiをΣAj2j−ΣB
j2jに変換する。ここで、Σはj=0からj=M−1
までjを繰り返したときの積和である。ここで、Mは第
2の入力データXiのビット数である。また、Aj,B
jは“0”または“1”であるが、その決定方法の一例
を以下に示す。まず、第2の入力データXiの最上位桁
から最初のビット状態が“1”である位置(以下、位置
topと称する。)を検出し、次に位置jtopから(繰り
返し回数NUM−1)個目のビット状態が“0”の位置
(以下、位置jlimitと称する。)を検出し、さらに位
置jtopから位置jlimitの間で最も下位にあるビット状
態が“1”である位置(以下、位置jbottomと称す
る。)を検出する。そして、位置jtopから位置j
bottomの間におけるビット状態が“1”であるビット信
号の数(以下、数S1と称する。)とビット状態が
“0”であるビット信号の数(以下、数S0と称す
る。)とを求める。そして、繰り返し回数NUM=1又
は(S0+3)≦S1の場合には、実施の形態4で示し
たステップ1とステップ2の処理を実行することによっ
て、第2の入力データXiを圧縮データYiに変換して、
圧縮データYiのビット状態が“1”であるビット信号
に対応するAjを1に設定し、圧縮データYiのビット
状態が“0”であるビット信号に対応するAjを0に設
定し、Bjをすべて0に設定する。繰り返し回数NUM
≠1かつ(S0+3)>S1の場合には、j=jtop
1に対応するAjのみを1に設定しそれ以外のAjを0
に設定し、かつj=jbottomに対応するBjと第2の入
力データXiのうち位置jtopと位置jbottomの間でビッ
ト状態が“0”のビット信号に対応するBjを1に設定
しそれ以外のBjを0に設定する。以上のようにAj,
Bjを設定することにより、Aj,Bjの中で“1”の
合計数は繰り返し回数NUM以下になる条件で、変換誤
差が小さくなるように、第2の入力データXiはΣAj
j−ΣBj2jに変換される。言い換えると、データ変
換器72dは、第2の入力データXiを絶対値が2のべ
き乗である正及び負の数値を第2の入力データXiのビ
ット幅より小さい個数以下だけ加算したデータに変換す
る。そして、Ajが状態“1”であればjをシフト量と
してバレルシフタ65に出力する一方、符号信号“0”
をEXオアゲートアレイ93の各ゲートの一入力と加算
器66の入力キャリー端子に転送する。次にBjが状態
“1”であればjをシフト量としてバレルシフタ65に
出力する一方、符号信号“1”をEXオアゲートアレイ
93の各ゲートの一入力と加算器66の入力キャリー端
子に転送する。
【0151】バレルシフタ65は第1の入力データWi
を、入力されるシフト量jだけ桁移動して、EXオアゲ
ートアレイ93に出力する。EXオアゲートアレイ93
は、符号信号が“0”のときには、バレルシフタ65か
ら出力されるバレルシフトデータをそのまま加算器66
に出力し、符号信号が“1”のときは、バレルシフタ6
5から出力されるバレルシフトデータを反転させて加算
器66に出力する。加算器66は、EXオアゲートアレ
イ93から出力されるデータとマルチプレクサ68から
入力されるデータとを加算してレジスタ67に出力す
る。レジスタ67は、加算器66から出力される加算デ
ータをクロック信号の所定の周期の時間だけ保持して、
マルチプレクサ68と出力端子64から出力する。
【0152】次に動作を説明する。入力端子T62を介
して入力される第2の入力データXiはデータ変換器7
2dによってΣAj2j−ΣBj2jに変換される。ここ
で、Aj,Bjはそれぞれ“0”または“1”である。
Aj,Bjの中で“1”の合計数は繰り返し回数NUM
以下になる条件で、変換誤差が小さくなるように変換さ
れる。ここで、繰り返し回数NUMは、入力端子T76
を介して入力される。次にAjが状態“1”であればj
がシフト量としてバレルシフタ65に入力され、符号信
号“0”がEXオアゲートアレイ93の各ゲートの一入
力と加算器66の入力キャリー端子に転送される。バレ
ルシフタ65では入力端子T61を介して入力される第
1の入力Wiがシフトされたのち、EXオアゲートアレ
イ93に送られる。EXオアゲートアレイ93の各ゲー
トの片方の入力である符号信号は“0”なので、バレル
シフタ65の出力がそのまま加算器66に入力される。
状態“1”のすべてのAjに対し順次実行されて、加算
器66の出力として、WiΣAj2j が出力される。
次にBjが状態“1”であればjがシフト量としてバレ
ルシフタ65に出力され、符号信号“1”がEXオアゲ
ートアレイ93の各ゲートの一入力と加算器66の入力
キャリー端子に転送される。バレルシフタ65では第1
の入力Wiがシフトされたのち、EXオアゲートアレイ
93に送られる。EXオアゲートアレイ93の各ゲート
の片方の入力である符号信号は“1”なので、バレルシ
フタ65の出力データの反転が加算器66に入力され
る。また加算器66の入力キャリー端子にも“1”が入
力される。このとき加算器66ではバレルシフタ65の
出力の2の補数と加算器66の他方の入力との加算が実
行される。このときの結果は−WiBj2j+(レジス
タ67のデータ)である。状態“1”のすべてのBjに
対し順次実行すれば、加算器66の出力として、最終的
にWi(ΣAj2j−ΣBj2j)が得られる。これはW
iXiが演算されることを意味する。
【0153】以上の実施の形態16の積和演算装置PM
16によれば、正負のべき乗の加算値に変換するので正
のみの加算に比べ変換誤差が低減できる。
【0154】実施の形態17 図34は本発明に係る実施の形態17の積和演算装置P
M17の構成を示すブロック図である。実施の形態17
の積和演算装置PM17は、図7の実施の形態4の積和
演算装置PM4において、加算器45に代えて、累積加
算器PK17の出力データの下位8ビット用の加算器4
5aと累積加算器PK17の出力データの中位8ビット
用の加算器45bと累積加算器PK17の上位8ビット
用の加算器45cとを備え、加算器45a,45b,4
5cにより累積加算することを特徴とする。ここで、累
積加算器PK17は、加算器45aと加算器45bと加
算器45cとレジスタ46とマルチプレクサ47とから
なる。
【0155】図34の積和演算装置PM17において、
データ変換器72は、入力端子T41を介して入力され
る8ビットデータの第2の入力データXiを変換データ
Zi[j](j=1,…,NUM)に変換してバレルシ
フタ44に出力する。バレルシフタ44は、変換データ
Zi[j]に基づいて、入力端子T40を介して入力さ
れる8ビットデータである重みデータWiを桁移動し
て、桁移動した16ビットデータであるバレルシフトデ
ータ(b0−b15)の下位8ビットデータ(b0−b
7)203を加算器45aの一方の入力端子に入力し、
バレルシフトデータ(b0−b15)の上位8ビットデ
ータ(b8−b15)204を加算器45bの一方の入
力端子に入力する。
【0156】加算器45aは、バレルシフタ44から入
力される下位8ビットデータ(b0−b7)203とマ
ルチプレクサ47から入力されるデータとを加算して加
算結果のデータを累積加算器PK17の下位8ビットデ
ータとしてレジスタ46に出力する一方、下位キャリー
信号208をキャリー出力端子202aからレジスタ4
6に出力する。ここで、加算器45aは、加算結果のデ
ータに桁あふれが生じた場合にはビット状態が“1”で
ある下位キャリー信号208をレジスタ46に出力し、
加算結果のデータに桁あふれが生じていない場合にはビ
ット状態が“0”である下位キャリー信号208をレジ
スタ46に出力する。
【0157】加算器45bは、キャリー入力端子201
bから入力されるキャリー信号に基づいて、バレルシフ
タ44から入力される上位8ビットデータ(b8−b1
5)204とマルチプレクサ47から入力されるデータ
とを加算して加算結果のデータを累積加算器PK17の
中位8ビットデータとしてレジスタ46に出力する一
方、中位キャリー信号209をキャリー出力端子202
bからレジスタ46に出力する。ここで、加算器45b
は、入力されるキャリー信号のビット状態が“1”の場
合には、上位8ビットデータ(b8−b15)204と
マルチプレクサ47から入力されるデータとの加算デー
タの最下位桁にさらに1を加算して加算結果のデータと
してレジスタ46に出力し、キャリー信号のビット状態
が“0”の場合には、上位8ビットデータ(b8−b1
5)204とマルチプレクサ47から入力されるデータ
との加算データをそのまま加算結果のデータとしてレジ
スタ46に出力する。また、加算器45bは、加算結果
のデータに桁あふれが生じた場合にはビット状態が
“1”である中位キャリー信号209をレジスタ46に
出力し、加算結果のデータに桁あふれが生じていない場
合にはビット状態が“0”である中位キャリー信号20
9をレジスタ46に出力する。
【0158】加算器45cは、キャリー入力端子201
cから入力されるキャリー信号に基づいて、キャリー信
号のビット状態が“1”の場合には、マルチプレクサ4
7から入力されるデータの最下位桁に1を加算して加算
結果のデータとしてレジスタ46に出力し、当該キャリ
ー信号のビット状態が“0”の場合には、マルチプレク
サ47から入力されるデータをそのまま加算結果のデー
タとしてレジスタ46に出力する。ここで、加算器45
cの一方の入力端子は接地され、当該入力端子には常に
0のデータが入力される。レジスタ46は、加算器45
aから入力される加算結果のデータと、下位キャリー信
号208と、加算器45bから入力される加算結果のデ
ータと、中位キャリー信号209と、加算器45cから
入力される加算結果のデータとをクロックの1周期の時
間だけ保持してマルチプレクサ47に出力する。
【0159】マルチプレクサ47は、入力端子T42を
介して入力されるデータとレジスタ46から入力される
データとを切り替えて出力する。すなわち、マルチプレ
クサ47は、第1番目のクロックに応答して入力端子T
42を介して入力される0である第3の入力データ42
を選択的に加算器45aの他方の入力端子と、加算器4
5bのキャリー入力端子201bと、加算器45bの他
方の入力端子と、加算器45cのキャリー入力端子20
1cと、加算器45cの他方の入力端子とに出力する。
また、マルチプレクサ47は、第2番目以降のクロック
に応答して、レジスタ46から入力される各データを各
加算器45a,45b,45cに以下のように入力す
る。マルチプレクサ47は、加算器45aから出力され
る加算結果のデータを加算器45aの他方の入力端子に
入力し、加算器45aから出力される下位キャリー信号
208を加算器45bのキャリー入力端子201bに入
力し、加算器45bから出力される加算結果のデータを
加算器45bの他方の入力端子に入力し、加算器45b
から出力される中位キャリー信号209を加算器45c
のキャリー入力端子201cに入力し、加算器45cか
ら出力される加算結果のデータを加算器45cの他方の
入力端子に入力する。
【0160】以上のように構成された積和演算装置PM
17において、入力端子T41を介して入力される8ビ
ットデータの第2の入力データXiは、データ圧縮回路
48でビット状態が“1”であるビット信号の数が繰り
返し回数NUM以下であってかつ変換誤差が小さくなる
ように変換された8ビットデータの圧縮データYiに変
換される。圧縮データYiはシフト量変換回路51によ
って変換データZi[j](j=1,…,NUM)に変
換されてバレルシフタ44に入力される。そして、バレ
ルシフトデータ(b0−b15)の下位8ビットデータ
(b0−b7)203は加算器45aに入力され、上位
8ビツトデータ(b8−b15)204は加算器45b
に入力される。
【0161】加算器45aに入力された下位8ビットデ
ータ(b0−b7)203は、加算器45aで累積加算
器PK17の出力データの積和結果下位8ビットデータ
(s0−s7)A205と加算され、積和結果下位8ビ
ットデータ(s0−s7)205と下位キャリー信号2
08がレジスタ46に入力される。ここで、積和結果下
位8ビットデータ(s0−s7)A205は、1周期前
のクロックに応答して加算器45aから出力された積和
結果下位8ビットデータ(s0−s7)205である。
積和結果下位8ビットデータ(s0−s7)205は、
レジスタ46でクロックの1周期の時間だけ保持され
て、マルチプレクサ47を介して加算器45aに入力さ
れる。下位キャリー信号208は、レジスタ46でクロ
ックの1周期の時間だけ保持されてマルチプレクサ47
を介して加算器45bのキャリー入力端子201bに入
力される。
【0162】加算器45bに入力された下位8ビットデ
ータ(b8−b15)204は、累積加算器PK17の
出力データの積和結果中位8ビットデータ(s8−s1
5)A206と加算され、下位キャリー信号A208に
基づいて、下位キャリー信号A208のビット状態が
“1”の場合には、最下位桁にさらに1が加算されて、
積和結果中位8ビットデータ(s8−s15)206と
中位キャリー信号209がレジスタ46に入力される。
ここで、積和結果中位8ビットデータ(s8−s15)
A206は、1周期前のクロックに応答して加算器45
bから出力された積和結果中位8ビットデータ(s8−
s15)206であり、下位キャリー信号A208は、
1周期前のクロックに応答して加算器45aから出力さ
れた下位キャリー信号208である。積和結果中位8ビ
ットデータ(s−s)206は、レジスタ46でクロッ
クの1周期の時間だけ保持されてマルチプレクサ47を
介して加算器45bに入力される。中位キャリー信号2
09は、レジスタ46でクロックの1周期の時間だけ保
持されてマルチプレクサ47を介して加算器45cに入
力される。
【0163】加算器45cに入力された累積加算器PK
17の出力データの積和結果上位8ビットデータ(s−
s)A207は、中位キャリー信号A209のビット状
態が“1”の場合には、最下位桁に1が加算され積和結
果上位8ビットデータ(s16−s23)207として
レジスタ46に出力され、中位キャリー信号A209の
ビット状態が“0”の場合には、積和結果上位8ビット
データ(s16−s23)A207がそのまま積和結果
上位8ビットデータ(s16−s23)207としてレ
ジスタ46に出力される。ここで、積和結果上位8ビッ
トデータ(s16−s23)A207は、1周期前のク
ロックに応答して加算器45cから出力された積和結果
上位8ビットデータ(s16−s23)207であり、
中位キャリー信号A209は、1周期前のクロックに応
答して加算器45bから出力された中位キャリー信号2
09である。積和結果上位ビツト(s16−s23)2
07は、レジスタ46でクロックの1周期の時間だけ保
持されて加算器45cに入力される。
【0164】以上の動作を最後の変換データZi[NU
M]に対応する下位8ビットデータ(b0−b7)20
3と上位8ビットデータ(b8−b15)204とがそ
れぞれ加算器45aと加算器45bで加算されるまで繰
り返し、その後、バレルシフタ44の出力を0にして、
加算器45a,45b,45cにおいてさらに2回の加
算を実行する。これによって、変換データZi[j]
(j=1,…,NUM)に対応し、最後に残る下位キャ
リー信号208と中位キャリー信号209に基づいた加
算を含む累積加算を実行することができるので、重みデ
ータWiと圧縮データYiとの乗算、すなわち重みデータ
Wiと第2の入力データXiとの乗算を実行して出力端
子T43を介して出力することができる。さらに、重み
データWiと第2の入力データXiとを更新して、上述
の動作を繰り返すことにより、複数個の重みデータWi
と第2の入力データXiの積和演算を実行することがで
きる。
【0165】以上の実施の形態17の積和演算装置PM
17は、3つの8ビットの加算器45a,45b,45
cとレジスタ46とを備えることにより24ビットの加
算器を構成し、加算器45aの下位キャリー信号208
と加算器45bの中位キャリー信号209とをそれぞれ
レジスタ46でクロックの1周期の時間だけ保持した
後、すなわち次のクロックの加算時に上位側の加算器4
5b,45cに伝搬されるように構成している。これに
よって、1回の加算におけるキャリー伝搬が短くなるの
でその遅延時間が短くなる。従って、実施の形態17の
積和演算装置PM17は、累積加算の終了後、加算器4
5a,45b,45cにおいてさらに2回の加算を実行
する必要があるが、累積数が大きい場合には、1回の加
算時間を短くできるので積和演算時間を短くすることが
できる。
【0166】以上の実施の形態17の積和演算装置PM
17では、3つの加算器45a,45b,45cを備え
て構成したが、本発明はこれに限らず少なくとも2つの
加算器を備えて構成してもよいし、3つ以上の加算器を
用いて構成してもよい。以上のように構成しても実施の
形態17と同様の効果を有する。
【0167】
【発明の効果】この発明は、以上説明したように構成さ
れているので、以下に示すような効果を奏する。
【0168】本発明に係る第1の態様の積和演算装置
は、上記バレルシフタと上記加算器と上記レジスタを備
えて積和演算装置を構成しているので、乗算器を用いた
従来例の積和演算装置に比較して、回路面積を小さくで
きる。
【0169】また、第2の態様の積和演算装置は、第1
の態様の積和演算装置においてさらに、マルチプレクサ
を備えることにより、第1の入力データと第2の入力デ
ータとの積と、第3の入力データとを加算して出力でき
る。
【0170】さらに、第3の態様の積和演算装置は、第
1又は第2の態様の積和演算装置においてさらに、上記
ビット位置エンコーダを備え、第2の入力データのビッ
ト状態が0であるビット信号に対応する演算を間引くこ
とができるので、上記ビット位置エンコーダを備えてい
ない積和演算装置に比較して、演算処理時間を短くでき
る。
【0171】またさらに、第4の態様の積和演算装置に
おいて、上記ビット位置エンコーダは、上記第1と第2
と第3の遅延型フリップフロップと、上記1対のセレク
タと、上記エンコーダとを備え、第2の入力データのビ
ット状態が1であるビット信号の位置を検出して、当該
位置を示す位置データを出力できる。
【0172】また、第5の態様の積和演算装置は、上記
ビット位置エンコーダを上記第2の入力データの上位の
桁から所定の数のビット状態が1であるビット信号の位
置を検出して、位置データを出力するように構成してい
るので、上記第2の入力データのビット信号のうち下位
に位置する比較的演算結果への影響の少ないビット信号
に対応する演算処理を間引くことができ、演算処理時間
を短縮することができる。
【0173】さらに、第6の態様の積和演算装置におい
て、上記ビット位置エンコーダは、上記カウンタと上記
コンパレータとを備え、シフト回数がシフト回数指定値
より大きい場合には、位置検出を終了するように構成さ
れる。これによって、第6の態様の積和演算装置は、上
記第2の入力データのビット信号のうち下位に位置する
比較的演算結果への影響の少ないビット信号に対応する
演算処理を間引くことができる。
【0174】またさらに、第7の態様の積和演算装置
は、上記データ圧縮手段を備え、第2の入力データをビ
ット状態が1であるビット信号の数が第2の入力データ
のビット幅より小さい所定の制限数以下である圧縮デー
タに変換して演算を実行するので、演算速度を速くでき
る。
【0175】また、第8の態様の積和演算装置におい
て、上記データ圧縮手段は、第2の入力データを、第2
の入力データと同一の桁数を有し、かつビット状態が1
であるビット信号の数が上記制限数以下であって、第2
の入力データとの差が最小となるように設定された圧縮
データに変換して出力する。これによって、第8の態様
の積和演算装置は、演算誤差を小さくできかつ演算速度
を速くできる。
【0176】さらに、第9の態様の積和演算装置におい
て、上記データ圧縮手段は、第2の入力データを、第2
の入力データに比べて1桁多い桁数を有し、かつビット
状態が1であるビット信号の数が上記制限数以下であっ
て、第2の入力データとの差が最小となるように設定さ
れた圧縮データに変換して出力する。これによって、第
9の態様の積和演算装置は、第8の態様の積和演算装置
と同様に演算速度を速くでき、第8の態様の積和演算装
置に比較して演算誤差を小さくできる。
【0177】さらにまた、第10の態様の積和演算装置
において、上記データ圧縮手段は圧縮データのビット状
態が1であるビット信号の数Fを出力し、上記ビット位
置エンコーダは、上記F個のビット状態が1であるビッ
ト信号の桁位置を示す桁位置データを出力した後、次の
圧縮データの処理を開始する。これによって、上記ビッ
ト位置エンコーダは、待ち時間なく処理を実行すること
ができ、第10の態様の積和演算装置は演算速度を速く
できる。
【0178】また、第11の態様の積和演算装置におい
て、上記データ変換手段は、絶対値が2のべき乗である
正及び負の数値を加算したデータに変換して演算する。
これによって、第11の態様の積和演算装置は、変換誤
差を小さくできる。
【0179】また、第12の態様の積和演算装置は、1
つのビット位置エンコーダと複数の積和演算装置を備
え、上記ビット位置エンコーダを各積和演算装置に桁位
置データを出力するように構成しているので、回路面積
を小さくできる。
【0180】また、第13の態様の積和演算器集積回路
装置は、データ変換手段と複数の積和演算装置とを備え
る。そして、上記データ変換手段は、桁位置データを各
積和演算装置に出力し、各積和演算装置は、当該積和演
算装置における乗算結果と前段の積和演算装置から出力
される演算結果とを加算して出力する。これによって、
第13の態様の積和演算器集積回路装置によれば、演算
時間を大幅に短縮できる積和演算器集積回路装置を提供
することができる。
【0181】また、第14の態様の積和演算器集積回路
装置は記憶手段を備え、回路規模(コスト)を大きくす
ることなく演算できるカーネルサイズを大きくすること
ができる。
【0182】さらに、第15の態様の積和演算器集積回
路装置において、上記記憶手段は、複数M個のデータを
記憶することができる。これによって、外部にバッファ
メモリを設ける必要のない積和演算器集積回路装置を提
供できる。
【0183】またさらに、第16の態様の積和演算器集
積回路装置において、上記記憶手段の記憶できるデータ
の個数Mを外部から指定することができる。これによっ
て、演算することができるデータの大きさを変化させる
ことができる。
【0184】また、第17の態様の積和演算器集積回路
装置は、第13,14,15又は16の積和演算器集積
回路装置において、出力用記憶手段を備えているので、
出力タイミングが調整できる。これによって、他の素子
との接続を容易にできる。
【0185】またさらに、第18の態様の積和演算器集
積回路装置は、第17の態様の複数b個の積和演算器集
積回路装置を備え、演算することができる第1の入力デ
ータのサイズを、第17の態様の積和演算器集積回路装
置の演算することができるデータのサイズを一方向にb
倍に拡大できる。
【0186】また、第19の態様の積和演算器集積回路
装置は、2個の第17の態様の積和演算器集積回路装置
と上記各積和演算器集積回路装置から出力される演算結
果データを加算する加算器とを備え、演算することがで
きる第1の入力データのサイズを、第17の態様の積和
演算器集積回路装置の演算することができるデータのサ
イズを第18の態様とは異なる方向に2倍に拡大でき
る。
【0187】また、第20の態様の積和演算器集積回路
装置は、複数c個の第17又は第18の態様の積和演算
器集積回路装置PM11a−1乃至PM11a−cを備
え、演算することができる第1の入力データのサイズを
上記積和演算器集積回路装置PM11a−1乃至PM1
1a−cの演算することができるデータのサイズのc倍
に拡大できる。
【0188】さらに、第21の態様の累積加算器は、複
数個の加算器とレジスタとを備え、各加算器のキャリー
入力端子には当該各加算器が処理するビット域の下位側
のビット域を処理する加算器のキャリー出力端子から出
力されるキャリー信号をレジスタを介して入力するよう
に構成される。これによって、1回の加算時間が短くで
きので、累積加算時間を短くできる。
【0189】またさらに、第22の態様の積和演算装置
は、上記累積加算器を備え、加算時間を短くできるので
積和演算時間を短くすることができる。
【図面の簡単な説明】
【図1】 本発明に係る実施の形態1の積和演算装置P
M1の構成を示すブロック図である。
【図2】 図1のビット位置エンコーダ2の構成を示す
ブロック図である。
【図3】 本発明に係る実施の形態2の積和演算装置P
M2の構成を示すブロック図である。
【図4】 図2の制限機能を有するビット位置エンコー
ダ8の構成を示すブロック図である。
【図5】 図3の実施の形態2の積和演算装置における
最大シフト回数に対する変換誤差を示したグラフであ
る。
【図6】 本発明に係る実施の形態3の積和演算器集積
回路装置PS3の構成を示すブロック図である。
【図7】 本発明に係る実施の形態4の積和演算装置P
M4の構成を示すブロック図である。
【図8】 図7のデータ圧縮回路48の構成を示すブロ
ック図である。
【図9】 本発明に係る実施の形態5におけるデータ圧
縮回路48aの構成を示すブロック図である。
【図10】 実施の形態5における繰り返し回数NUM
に対するデータ精度を示すグラフである。
【図11】 本発明に係る実施の形態6の積和演算器集
積回路装置PS6の構成を示すブロック図である。
【図12】 本発明に係る実施の形態7の積和演算器集
積回路装置PS7の構成を示すブロック図である。
【図13】 本発明に係る実施の形態8の積和演算器集
積回路装置PS8の構成を示すブロック図である。
【図14】 (a)はラインバッファ82の構成を示す
図であり、(b)はラインバッファ82aの構成を示す
図であり、(c)は(b)のラインバッファ82aの動
作を示すフローチャートである。
【図15】 図13の積和演算器集積回路装置PS8に
おけるデータの流れを示す図であって、(a)は周期T
=1における基本演算器PU1の演算結果を示す図であ
り、(b)は周期T=2における基本演算器PU2の演
算結果を示す図であり、(c)は周期T=3における基
本演算器PU3の演算結果を示す図であり、(d)は周
期T=4におけるレジスタBR1の記憶データを示す図
であり、(e)は周期T=5におけるレジスタBR2の
記憶データを示す図であり、(f)は周期T=6におけ
るレジスタBR3の記憶データを示す図であり、(g)
は周期T=7における基本演算器PU4の演算結果を示
す図である。
【図16】 (a)は図13の積和演算器集積回路装置
PS8における入力画像データを示す図であり、(b)
はカーネルを示す図である。
【図17】 図13の積和演算器集積回路装置PS8に
おいて、変換誤差の画像コンボルーションへの影響を評
価するためにカーネルとして用いたラプラシアンフィル
タを示す図である。
【図18】 (a)は繰り返し回数NUM=8の場合の
演算結果の各画素の値の度数分布を示すグラフであり、
(b)は繰り返し回数NUM=8のときと繰り返し回数
NUM=4のときの各画素の値の差の度数分布を示す図
である。
【図19】 本発明に係る実施の形態9の積和演算器集
積回路装置PS9の構成を示すブロック図である。
【図20】 (a)は図19のラインバッファ82bの
構成を示すブロック図であり、(b)は、(a)のライ
ンバッファ82bとは異なるラインバッファ82cを示
すブロック図である。
【図21】 (a)は図19の積和演算器集積回路装置
PS9において、ラインバッファ82bの長さLを3に
設定したときに選択できるカーネルを示す図であり、
(b)は図19の積和演算器集積回路装置PS9におい
て、ラインバッファ82bの長さLを0に設定したとき
に選択できるカーネルを示す図である。
【図22】 本発明に係る実施の形態10の積和演算器
集積回路装置PS10の構成を示すブロック図である。
【図23】 本発明に係る実施の形態11の積和演算器
集積回路装置PS11の構成を示すブロック図である。
【図24】 図23の積和演算器集積回路装置PS11
の動作の説明に用いた6×2のカーネルを示す図であ
る。
【図25】 図22の積和演算器集積回路装置PS10
をb個接続して構成した積和演算装置PM11aを示す
ブロック図である。
【図26】 本発明に係る実施の形態12の積和演算器
集積回路装置PS12の構成を示すブロック図である。
【図27】 図26の積和演算器集積回路装置PS12
の動作の説明に用いた12×1のカーネルを示す図であ
る。
【図28】 本発明に係る実施の形態13の積和演算器
集積回路装置PS13の構成を示すブロック図である。
【図29】 図28の積和演算器集積回路装置PS13
の動作の説明に用いた18×1のカーネルを示す図であ
る。
【図30】 図28の積和演算器集積回路装置PS13
の変形例の積和演算装置PM13aの構成を示すブロッ
ク図である。
【図31】 本発明に係る実施の形態14の積和演算器
集積回路装置PS14の構成を示すブロック図である。
【図32】 本発明に係る実施の形態15の積和演算装
置PM15の構成を示すブロック図である。
【図33】 本発明に係る実施の形態16の積和演算装
置PM16の構成を示すブロック図である。
【図34】 本発明に係る実施の形態17の積和演算装
置PM17の構成を示すブロック図である。
【図35】 第1の従来例の積和演算装置の構成を示す
ブロック図である。
【図36】 第2の従来例の積和演算装置の構成を示す
ブロック図である。
【図37】 第3の従来例の積和演算装置の構成を示す
ブロック図である。
【符号の説明】
PM1,PM1a,PM2,PM4,PM15,PM1
6 積和演算装置、PU,PU1,PU2,PU3,P
U4,PU5,PU6 基本演算器、1,44,65
バレルシフタ、R1,R2,46,50,67,79,
81,103 レジスタ、2,8 ビット位置エンコー
ダ、PS3,PS5,PS6,PS7,PS8,PS
9,PS10,PS11,PS11a−1乃至PS11
a−c,PS12,PS13,PS14 積和演算器集
積回路装置、10,27 インバータ、11,124
アンドゲートアレイ、12−1乃至12−N,16,2
9 Dフリップフロップ、17−1乃至17−N,2
1,22−1乃至22−N セレクタ、PK17 累積
加算器、20 シフトレジスタ、26 オアゲート、2
8エンコーダ、30 カウンタ、31 コンパレータ、
32 ノアゲート、45,45a,45b,45c,5
9,66,89,89a,89−1乃至89−(c−
1),102 加算器、47,58,60,68,8
6,104 マルチプレクサ、48,48a データ圧
縮回路、51,51a シフト量変換回路、54 フラ
グ生成モジュール、55 マスク生成モジュール、56
マスク処理モジュール、57 誤差チェックモジュー
ル、T70−1乃至T70−6,T71,T75,T8
5 入力端子、72,72a,72c,72d データ
変換器、T74 出力端子、82,82a,82b,8
2c,85,87 ラインバッファ、83 メモリ、8
4 アドレスループカウンタ、90,90−1乃至90
−(c−2) 接続ラインバッファ、93 イクスクル
ーシブオアゲートアレイ、201b,201c キャリ
ー入力端子、202a,202b キャリー出力端子。

Claims (22)

    【特許請求の範囲】
  1. 【請求項1】 第1の入力データと第2の入力データと
    の積を累積加算して出力端子から出力する積和演算装置
    であって、 第1の入力データを、第2の入力データに基づいて所定
    のビット数だけ桁移動して出力するバレルシフタと、 上記バレルシフタから出力され加算器の一方の入力端子
    に入力されるデータと加算器の他方の入力端子から入力
    されるデータとを加算して出力する加算器と、 上記加算器から出力されるデータを一時保持した後、保
    持したデータを上記加算器の他方の入力端子を介して上
    記加算器に入力する一方、保持したデータを上記出力端
    子から出力するレジスタとを備えたことを特徴とする積
    和演算装置。
  2. 【請求項2】 上記積和演算装置はさらに、 マルチプレクサの一方の入力端子から入力される第3の
    入力データとマルチプレクサの他方の入力端子から入力
    されるデータのうち一方を選択して、上記加算器の他方
    の入力端子を介して上記加算器に出力するマルチプレク
    サを備え、 上記第1の入力データと上記第2の入力データとの積
    と、上記第3の入力データとを加算して出力端子から出
    力することを特徴とする請求項1記載の積和演算装置。
  3. 【請求項3】 上記積和演算装置はさらに、上記第2の
    入力データのビット状態が1であるビット信号の桁位置
    を示す桁位置データを、上記バレルシフタに出力するビ
    ット位置エンコーダを備え、 上記バレルシフタは、上記第1の入力データを上記桁位
    置データに基づいて桁移動して出力することを特徴とす
    る請求項1又は2記載の積和演算装置。
  4. 【請求項4】 上記ビット位置エンコーダは、シフトレ
    ジスタとエンコーダとを備え、 上記シフトレジスタは、第1の遅延型フリップフロップ
    と第2の遅延型フリップフロップと、 上記第1と第2の遅延型フリップフロップの間に、上記
    第2の入力データの各ビット信号に対応して設けられた
    複数の第3の遅延型フリップフロップと、 上記各ビット信号に対応して設けられ、対応するビット
    信号のビット状態が1の場合には、上記第1の遅延型フ
    リップフロップから出力される信号を当該ビット信号に
    対応する第3の遅延型フリップフロップを介して伝送さ
    せ、対応するビット信号のビット状態が0の場合には、
    当該ビット信号に対応する第3の遅延型フリップフロッ
    プを介しないで伝送させる1対のセレクタとを備え、 上記シフトレジスタは、上記第1の遅延型フリップフロ
    ップから出力される信号を、クロック信号に応答して、
    第2の入力データのビット状態が1であるビット信号に
    対応する第3の遅延型フリップフロップに順次転送し、
    かつ上記第1の遅延型フリップフロップから出力された
    信号が転送された第3の遅延型フリップフロップの位置
    を示す信号を出力し、 上記エンコーダは、上記シフトレジスタから出力される
    信号に基づいて、第2の入力データのビット状態が1で
    あるビット信号の位置を検出して、当該位置を示す位置
    データを出力することを特徴とする請求項3記載の積和
    演算装置。
  5. 【請求項5】 上記ビット位置エンコーダは、上記第2
    の入力データのビット状態が1であるビット信号の数が
    所定の数以上の場合には、上記第2の入力データの上位
    の桁から上記所定の数のビット状態が1であるビット信
    号についてのみ位置を検出して、位置データを出力する
    ことを特徴とする請求項3又は4記載の積和演算装置。
  6. 【請求項6】 上記ビット位置エンコーダは、上記クロ
    ック信号のパルスを計数して上記第1の遅延型フリップ
    フロップから出力される信号のシフト回数を出力するカ
    ウンタと、上記シフト回数と入力されるシフト回数指定
    値とを比較して上記シフト回数がシフト回数指定値より
    大きい場合には位置検出を終了させる信号を出力するコ
    ンパレータとを備え、上記ビットシフト回数がシフト回
    数指定値より大きい場合には位置検出を終了することを
    特徴とする請求項5記載の積和演算装置。
  7. 【請求項7】 上記積和演算装置はさらに、第2の入力
    データをビット状態が1であるビット信号の数が第2の
    入力データのビット幅より小さい所定の制限数以下であ
    る圧縮データに変換して出力するデータ圧縮手段を備
    え、 上記ビット位置エンコーダは、上記圧縮データのビット
    状態が1であるビット信号の桁位置を示す桁位置データ
    を、上記バレルシフタに出力することを特徴とする請求
    項3又は4記載の積和演算装置。
  8. 【請求項8】 上記データ圧縮手段は、第2の入力デー
    タを、第2の入力データと同一の桁数を有し、かつビッ
    ト状態が1であるビット信号の数が上記制限数以下のデ
    ータであって、第2の入力データとの差が最小となるよ
    うに設定された圧縮データに変換して出力することを特
    徴とする請求項7記載の積和演算装置。
  9. 【請求項9】 上記データ圧縮手段は、第2の入力デー
    タを、第2の入力データに比べて1桁多い桁数を有し、
    かつビット状態が1であるビット信号の数が上記制限数
    以下のデータであって、第2の入力データとの差が最小
    となるように設定された圧縮データに変換して出力する
    ことを特徴とする請求項7記載の積和演算装置。
  10. 【請求項10】 上記データ圧縮手段はさらに、圧縮デ
    ータのビット状態が1であるビット信号の数Fを示す数
    値データを上記ビット位置エンコーダに出力し、 上記ビット位置エンコーダは、上記F個のビット状態が
    1であるビット信号の桁位置を示す桁位置データを出力
    した後、次の圧縮データの処理を開始することを特徴と
    する請求項7、8又は9記載の積和演算装置。
  11. 【請求項11】 請求項2記載の上記積和演算装置と、
    データ変換手段とを備え、 上記データ変換手段は、第2の入力データを、絶対値が
    2のべき乗である正及び負の数値を第2の入力データの
    ビット幅より小さい個数以下だけ加算したデータに変換
    することを特徴とする積和演算装置。
  12. 【請求項12】 請求項1又は2記載の少なくとも2つ
    の積和演算装置と、第2の入力データのビット状態が1
    であるビット信号の桁位置を示す桁位置データを、上記
    各積和演算装置のバレルシフタに出力する1つのビット
    位置エンコーダとを備え、 上記各積和演算装置のバレルシフタは、上記第1の入力
    データを上記桁位置データに基づいて桁移動して出力す
    ることを特徴とする積和演算器集積回路装置。
  13. 【請求項13】 データ変換手段と並置されて設けられ
    た複数N個の請求項2記載の積和演算装置1乃至Nを備
    え、 上記データ変換手段は、第2の入力データをビット状態
    が1であるビット信号の数が第2の入力データのビット
    幅より小さい所定の制限数以下である圧縮データに変換
    して出力するデータ圧縮手段と、上記圧縮データのビッ
    ト状態が1であるビット信号の桁位置を示す桁位置デー
    タを上記バレルシフターに出力するビット位置エンコー
    ダとからなり、上記桁位置データを各積和演算装置kに
    出力し、 初段の積和演算装置1は、上記桁位置データに基づいて
    第1の入力端子から入力されるデータと第2の入力デー
    タとの間の積と、第3の入力データとの和を演算して出
    力し、 積和演算装置k(k=2,3,…,N−1)はそれぞ
    れ、上記桁位置データに基づいて、上記桁位置データが
    入力される端子とは別の入力端子から入力されるデータ
    と第2の入力データとの積と、前段の積和演算装置(k
    −1)から出力される演算結果との和を演算して、後段
    の積和演算装置(k+1)に出力し、 最終段の積和演算装置Nは、上記桁位置データに基づい
    て、第Nの入力端子から入力されるデータと第2の入力
    データとの積と、前段の積和演算装置N−1から出力さ
    れる演算結果との和を演算して出力することを特徴とす
    る積和演算器集積回路装置。
  14. 【請求項14】 上記積和演算装置kと上記積和演算装
    置(k+1)(k=1,2,…,N−1)との間の少な
    くとも1カ所に、上記積和演算装置kから出力される演
    算結果を一時保持して、上記積和演算装置(k+1)に
    出力する記憶手段を備えたことを特徴とする請求項13
    記載の積和演算器集積回路装置。
  15. 【請求項15】 上記記憶手段は、複数M個のデータを
    記憶することができ、入力されるデータの数がM個を越
    えると最初に入力されたデータから順次出力することを
    特徴とする請求項14記載の積和演算器集積回路装置。
  16. 【請求項16】 上記記憶手段は、記憶できるデータ数
    M個を外部から指定することができることを特徴とする
    請求項15記載の積和演算器集積回路装置。
  17. 【請求項17】 上記積和演算器集積回路はさらに、最
    終段の積和演算装置から出力される演算結果を一時保持
    した後、出力する出力用記憶手段を設けたことを特徴と
    する請求項13、14、15又は16記載の積和演算器
    集積回路装置。
  18. 【請求項18】 複数b個の請求項17記載の積和演算
    器集積回路装置1乃至bを備え、上記積和演算器集積回
    路装置k(k=2,3,…,b)の各出力用記憶手段か
    ら出力される演算結果を後段の積和演算器集積回路装置
    k+1に入力することを特徴とする積和演算器集積回路
    装置。
  19. 【請求項19】 2つの請求項17記載の積和演算器集
    積回路装置と、加算器とを備え、上記加算器は上記各積
    和演算器集積回路装置から出力される演算結果データを
    加算して出力することを特徴とする積和演算器集積回路
    装置。
  20. 【請求項20】 複数c個の請求項17又は18記載の
    積和演算器集積回路装置PM11a−1乃至PM11a
    −cと、(c−1)個の加算器89−1乃至89−(c
    −1)と、(c−2)個の接続用記憶手段90−1乃至
    90−(c−2)とを備え、 加算器89−1は、積和演算装置PM11a−1から出
    力される演算結果データと、積和演算装置PM11a−
    2から出力される演算結果データとを加算して加算デー
    タを出力し、 加算器89−k(k=2,3,…,c−2)は、積和演
    算装置PM11a−(k+1)から出力される演算結果
    データと、接続用記憶手段90−(k−1)から出力さ
    れる保持データとを加算して加算データを出力し、 接続用記憶手段90−k(k=1,2,…,c−2)
    は、加算器89−kから出力される加算データを所定の
    周期だけ保持した後、加算器89−(k+1)に出力
    し、 加算器89−(c−1)は、積和演算装置PM11a−
    cから出力される演算結果データと、接続用記憶手段9
    0−(c−2)から出力される保持データとを加算して
    加算データを出力することを特徴とする積和演算器集積
    回路装置。
  21. 【請求項21】 それぞれキャリー入力端子とキャリー
    出力端子を有し、2つの入力端子に入力される2つのデ
    ータを加算して加算結果のデータを出力端子から出力す
    る複数個の加算器と、レジスタを備えた累積加算器であ
    って、 各加算器の出力端子から出力されるデータ、並びにキャ
    リー出力端子から出力されるキャリー信号はレジスタに
    入力され、 各加算器の一方の入力端子にはレジスタを介して累積加
    算器の一部のビット域のデータもしくは初期値のデータ
    を入力し、 各加算器の他方の入力端子には各加算器に対応する各ビ
    ット域のデータを入力し、 各加算器のキャリー入力端子には当該各加算器が処理す
    るビット域の下位側のビット域を処理する加算器のキャ
    リー出力端子から出力されるキャリー信号をレジスタを
    介して入力することを特徴とする累積加算器。
  22. 【請求項22】 請求項21記載の累積加算器と、 第1の入力データをビット状態が1であるビット信号の
    数が第1の入力データのビット幅より小さい所定の制限
    数以下である圧縮データに変換して出力するデータ圧縮
    手段と、 上記圧縮データのビット状態が1であるビット信号の桁
    位置を示す桁位置データを出力するビット位置エンコー
    ダと、 第2の入力データを上記桁位置データに基づいて桁移動
    して、桁移動したデータの上記各加算器に対応する各ビ
    ット域のデータを当該各加算器の他方の入力端子に出力
    するバレルシフタとを備えたことを特徴とする積和演算
    装置。
JP7220513A 1995-08-29 1995-08-29 積和演算装置、積和演算器集積回路装置及び累積加算器 Pending JPH0962653A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP7220513A JPH0962653A (ja) 1995-08-29 1995-08-29 積和演算装置、積和演算器集積回路装置及び累積加算器
US08/580,193 US5764557A (en) 1995-08-29 1995-12-28 Product-sum calculation apparatus, product-sum calculating unit integrated circuit apparatus, and cumulative adder suitable for processing image data
KR1019960014014A KR970012132A (ko) 1995-08-29 1996-04-30 곱-합 계산 장치, 곱-합 계산 장치의 집적 회로 장치, 및 영상 데이타를 처리하기에 적절한 누적 가산기

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7220513A JPH0962653A (ja) 1995-08-29 1995-08-29 積和演算装置、積和演算器集積回路装置及び累積加算器

Publications (1)

Publication Number Publication Date
JPH0962653A true JPH0962653A (ja) 1997-03-07

Family

ID=16752203

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7220513A Pending JPH0962653A (ja) 1995-08-29 1995-08-29 積和演算装置、積和演算器集積回路装置及び累積加算器

Country Status (3)

Country Link
US (1) US5764557A (ja)
JP (1) JPH0962653A (ja)
KR (1) KR970012132A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6360242B1 (en) 1998-06-04 2002-03-19 Nec Corporation Summing circuit with high precision
JP2012022363A (ja) * 2010-07-12 2012-02-02 Ricoh Co Ltd 内積演算装置および内積演算方法
JP2020161054A (ja) * 2019-03-28 2020-10-01 株式会社エヌエスアイテクス 畳込み演算装置
CN113098519A (zh) * 2021-04-01 2021-07-09 中国科学技术大学 一种用于拓展单比特相干积累算法的预加电路

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6449630B1 (en) * 1999-04-07 2002-09-10 Mitsubishi Electric Research Laboratories, Inc. Multiple function processing core for communication signals
US6513053B1 (en) * 2000-01-12 2003-01-28 Arm Limited Data processing circuit and method for determining the first and subsequent occurences of a predetermined value in a sequence of data bits
US7580968B2 (en) * 2002-02-28 2009-08-25 Texas Instruments Incorporated Processor with scaled sum-of-product instructions
US7565388B1 (en) * 2003-11-21 2009-07-21 Altera Corporation Logic cell supporting addition of three binary words
EP1542145A1 (en) * 2003-12-12 2005-06-15 Sap Ag A method of planning demand for at least one configurable product in a managed supply chain and a demand planner apparatus for planning demand for a configurable product in a managed supply chain
EP1542144A1 (en) * 2003-12-12 2005-06-15 Sap Ag Method and apparatus for planning demand for a configurable product in a managed supply chain
US20060167825A1 (en) * 2005-01-24 2006-07-27 Mehmet Sayal System and method for discovering correlations among data
US7739324B1 (en) 2006-03-22 2010-06-15 Cadence Design Systems, Inc. Timing driven synthesis of sum-of-product functional blocks
KR100951794B1 (ko) * 2008-04-30 2010-04-07 포항공과대학교 산학협력단 다양한 정밀도를 갖는 적화(積和) 연산기 및 그 연산방법
JP5548087B2 (ja) * 2010-09-30 2014-07-16 オリンパス株式会社 演算装置および演算方法
JP6780522B2 (ja) * 2017-01-31 2020-11-04 株式会社島津製作所 材料試験機

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4110832A (en) * 1977-04-28 1978-08-29 International Business Machines Corporation Carry save adder
JPS6347874A (ja) * 1986-08-16 1988-02-29 Nec Corp 算術演算装置
JP2646778B2 (ja) * 1990-01-17 1997-08-27 日本電気株式会社 ディジタル信号処理装置
US5287299A (en) * 1992-05-26 1994-02-15 Monolith Technologies Corporation Method and apparatus for implementing a digital filter employing coefficients expressed as sums of 2 to an integer power
US5650952A (en) * 1992-12-18 1997-07-22 U.S. Philips Corporation Circuit arrangement for forming the sum of products
US5436860A (en) * 1994-05-26 1995-07-25 Motorola, Inc. Combined multiplier/shifter and method therefor

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6360242B1 (en) 1998-06-04 2002-03-19 Nec Corporation Summing circuit with high precision
JP2012022363A (ja) * 2010-07-12 2012-02-02 Ricoh Co Ltd 内積演算装置および内積演算方法
JP2020161054A (ja) * 2019-03-28 2020-10-01 株式会社エヌエスアイテクス 畳込み演算装置
WO2020196407A1 (ja) * 2019-03-28 2020-10-01 株式会社エヌエスアイテクス 畳込み演算装置
CN113098519A (zh) * 2021-04-01 2021-07-09 中国科学技术大学 一种用于拓展单比特相干积累算法的预加电路
CN113098519B (zh) * 2021-04-01 2023-03-10 中国科学技术大学 一种用于拓展单比特相干积累算法的预加电路

Also Published As

Publication number Publication date
KR970012132A (ko) 1997-03-29
US5764557A (en) 1998-06-09

Similar Documents

Publication Publication Date Title
JPH0962653A (ja) 積和演算装置、積和演算器集積回路装置及び累積加算器
US10698657B2 (en) Hardware accelerator for compressed RNN on FPGA
CN113420788B (zh) 实现卷积神经网络的混合计算系统和系统中融合卷积层的方法
CN110515587B (zh) 乘法器、数据处理方法、芯片及电子设备
US10853037B1 (en) Digital circuit with compressed carry
CN110851779A (zh) 用于稀疏矩阵运算的脉动阵列架构
Shu et al. High energy efficiency FPGA-based accelerator for convolutional neural networks using weight combination
JPH0715346A (ja) 2ベクトルのスカラ積を決定するためのデジタル信号の符号化方法および回路
US20070198811A1 (en) Data-driven information processor performing operations between data sets included in data packet
US6477555B1 (en) Method and apparatus for performing rapid convolution
CN110673802B (zh) 数据存储方法、装置、芯片、电子设备和板卡
CN116151321A (zh) 半导体装置
Do et al. A high-accuracy and high-speed 2-D 8x8 discrete cosine transform design
Mohanty et al. Efficient multiplierless designs for 1-D DWT using 9/7 filters based on distributed arithmetic
CN111897513B (zh) 一种基于反向极性技术的乘法器及其代码生成方法
Saad et al. Real-time implementation of fractal image compression in low cost FPGA
US4893184A (en) Arrangement for DPCM-coding with high data rate
JPH10224224A (ja) 半導体演算装置
Poornima et al. Memory efficient high speed systolic array architecture design with multiplexed distributive arithmetic for 2D DTCWT computation on FPGA
CN113836481B (zh) 矩阵计算电路、方法、电子设备及计算机可读存储介质
CN217034730U (zh) 多位选择器及运算电路及芯片
TWI564735B (zh) 資料分配裝置、訊號處理裝置及其資料分配方法
US11461625B1 (en) Tensor compression
CN116796816B (zh) 处理器、计算芯片和计算设备
JP4408727B2 (ja) ディジタル回路