JPH0573604A - 内積演算回路 - Google Patents

内積演算回路

Info

Publication number
JPH0573604A
JPH0573604A JP3261403A JP26140391A JPH0573604A JP H0573604 A JPH0573604 A JP H0573604A JP 3261403 A JP3261403 A JP 3261403A JP 26140391 A JP26140391 A JP 26140391A JP H0573604 A JPH0573604 A JP H0573604A
Authority
JP
Japan
Prior art keywords
circuit
bit
equation
inner product
value
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
JP3261403A
Other languages
English (en)
Inventor
Mitsuharu Oki
光晴 大木
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.)
Sony Corp
Original Assignee
Sony 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 Sony Corp filed Critical Sony Corp
Priority to JP3261403A priority Critical patent/JPH0573604A/ja
Priority to US07/942,410 priority patent/US5285405A/en
Publication of JPH0573604A publication Critical patent/JPH0573604A/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/52Multiplying; Dividing
    • G06F7/523Multiplying only
    • G06F7/533Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even
    • G06F7/5332Reduction of the number of iteration steps or stages, e.g. using the Booth algorithm, log-sum, odd-even by skipping over strings of zeroes or ones, e.g. using the Booth Algorithm
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)

Abstract

(57)【要約】 【目的】 本発明は強力なバッファや下位側ビットの制
御回路等を不要にして回路規模を小さくするとともに、
係数の値に応じて特定の値を初期設定値として設定する
だけで前記係数を用いた内積演算を高速で実行する。 【構成】 選択反転回路2によって各ベクトルデータの
各ビットを選択的に反転した後、ビット位置変更回路5
によって前記選択反転回路2で選択的にビット反転され
たベクトルデータの各ビット位置を変更するとともに、
プルアップ回路4によって前記ビット位置変更回路5で
ビット位置が変更されたベクトルデータの空ビットに
“1”または“0”を与え、加算回路7によって前記プ
ルアップ回路4で空ビットに“1”または“0”が補充
されたベクトルデータと前記係数に対応して設定されて
いる初期設定値とを累積加算して前記各ベクトルデータ
と前記各係数との内積演算結果を求める。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はベクトル演算の一種であ
る内積演算を高速で行なう内積演算回路に関する。
【0002】
【従来の技術】ベクトル演算の1つである内積演算で
は、次に述べる基本原理に基づいて内積対象となる係数
と、ベクトルとの内積値を求めている。なお、以下の説
明においては、文字“O”に付けたアンダーラインはア
ルファベットの“O”を表わし、他の文字“Ai”、
“Bi”“Ii”に付けたアンダーラインは反転したビッ
トを表わすものとする。
【0003】まず、次式に示す如く2つのベクトル係数
C0、C1と、2つのベクトルA、Bとの内積を求める
場合について考察する。
【数1】 この場合、係数C0、C1は次式に示す如く変形すること
ができる。
【数2】 したがって、前記(1)式は次式に示す如く変形するこ
とができる。
【数3】 この(4)式から明らかなように、ベクトルA、Bをビ
ットシフトする処理と、“−1”倍する処理と、(4)
式で示される5つの部分積を加算する処理とを行なうこ
とにより、前記(1)式の但し書きで示す条件でこの
(1)式を演算することができる。
【0004】また、(4)式の第1項は次式に示す如く
変形することができる。
【数4】 そして、前記(1)式に示す内積のビット数を予め設
定されている値、例えば13ビットとするために、前記
(5)式の最上位ビット(符号ビット)を上位側に必要
なだけコピーしてビット拡張すると、次式に示す式が得
られる。
【数5】 同様に、前記(4)式に示す第2項目に対して同じ処理
を施すしてビット拡張すると、次式に示す式が得られ
る。
【数6】 同様に、前記(4)式に示す第3項目に対して同じ処理
を施すしてビット拡張すると、次式に示す式が得られ
る。
【数7】 同様に、前記(4)式に示す第4項目に対して同じ処理
を施すしてビット拡張すると、次式に示す式が得られ
る。
【数8】 同様に、前記(4)式に示す第5項目に対して同じ処理
を施すしてビット拡張すると、次式に示す式が得られ
る。
【数9】 この結果、前記(4)式に示す演算はアキュームレータ
を用いて次式に示す演算を行なうことになる。
【数10】
【0005】
【発明が解決しようとする課題】ところで、前記(1
1)式に示す演算を回路によって実際に計算する場合、
各部分積の符号ビット(A3、A3、B3、B3、)をアキ
ュームレータの上位ビット側に全て供給しなければなら
ず、このため入力段に強力なドライブ能力を持つバッフ
ァを配置しなければならない。また、前記(11)式を
見て分かるように、下位側には“1”または“0”のど
ちらかを加算するための制御回路が必要になる。このた
め、このような内積演算を行なう場合、回路規模が増大
してしまうという問題があった。
【0006】本発明は上記の事情に鑑み、強力なバッフ
ァや下位側ビットの制御回路等を不要にして回路規模を
小さくすることができるとともに、係数の値に応じて特
定の値を初期設定値として設定するだけで前記係数を用
いた内積演算を高速で実行することができる内積演算回
路を提供することを目的としている。
【0007】
【課題を解決するための手段】上記の目的を達成するた
めに本発明による内積演算回路は、1つもしくは複数の
ベクトルデータと1つもしくは複数の係数とに基づいて
内積演算を行なう内積演算回路において、前記各ベクト
ルデータの各ビットを選択的に反転させる選択反転部
と、前記係数に対応して前記選択反転部で選択的にビッ
ト反転されたベクトルデータの各ビット位置を変更する
ビット位置変更部と、このビット位置変更部によってビ
ット位置が変更されたベクトルデータの空ビットに
“1”または“0”を与えるビット補充部と、前記係数
に対応して設定されている初期設定値と前記ビット補充
部で空ビットに“1”または“0”が補充されたベクト
ルデータとを累積加算する加算部とを備えたことを特徴
としている。
【0008】
【作用】上記の構成において、選択反転部によって各ベ
クトルデータの各ビットが選択的に反転された後、ビッ
ト位置変更部によって係数に対応して前記選択反転部で
選択的にビット反転されたベクトルデータの各ビット位
置が変更されるとともに、ビット補充部によって前記ビ
ット位置変更部でビット位置が変更されたベクトルデー
タの空ビットに“1”または“0”が与えられ、加算部
によって前記ビット補充部で空ビットに“1”または
“0”が補充されたベクトルデータと前記係数に対応し
て設定されている初期設定値とが累積加算されて前記各
ベクトルデータと前記各係数との内積演算結果が求めら
れる。
【0009】
【実施例】まず、第1実施例の詳細な回路構成の説明に
先だって、本発明による内積演算回路の基本原理を説明
する。
【0010】一般的なビット演算では、次式が成り立
つ。
【数11】 したがって、この(12)式に次式に示す値を割り付
け、
【数12】 前記(11)式にこの(13)式および前記(12)式
を適用すると、前記(11)式は次式によって表わすこ
とができる。
【数13】 そして、この(14)式の(a)段、(b)段、(c)
段、(d)段、(e)段、(f)段、(g)段、(i)
段、(k)段、(l)段にある“1”を上側に移項する
と、次式が得られる。
【数14】 ここで、この(15)式の(a)段〜(h)段にある
“1”を計算すると、次式が得られる。
【数15】 したがって、前記(15)式は次式に示す式に変形する
ことができる。
【数16】 つまり、前記(1)式の値は前記(17)式を計算する
ことによって求めることができる。
【0011】本発明による第1実施例は、前記(17)
式を演算することによって、前記(1)式の演算結果を
得ることを基本原理としている。以下、この基本原理を
用いた本発明の第1実施例を図面を参照しながら詳細に
説明する。
【0012】図1は本発明による内積演算回路の第1実
施例を示すブロック図である。この図に示す内積演算回
路1は選択反転回路2と、係数制御回路3と、プルアッ
プ回路4と、ビット位置変更回路5と、反転回路6と、
加算回路7とを備えており、係数制御回路3によって選
択反転回路2およびビット位置変更回路5を制御して内
積演算対象となるベクトルA、Bの各ビットを個々に非
反転、反転させるとともに、これら各ベクトルA、Bの
ビット位置(桁)を変更して前記(17)式の(b)段
〜(f)段にあるビット列の反転ビット列を生成させた
後、これを反転回路6に導いて反転させる。そして、加
算回路7によって前記(17)式の(a)段にある初期
設定値と、前記反転回路6から出力される前記(17)
式の(b)段〜(f)段のビット列とを順次、累積加算
させて前記(17)式に示す内積値を算出させ、これ
を出力する。
【0013】係数制御回路3は内積演算対象となる係数
C0、C1の各値に対応する選択データが格納されている
制御テーブルやこの制御テーブル内に格納されている各
選択データを読み出す読出し回路等を備えており、入力
されるクロック信号に基づいて前記制御テーブルに格納
されている選択データを読み出して2つの選択信号を生
成するとともに、これらの各選択信号を前記選択反転回
路2と、ビット位置変更回路5とに、各々供給する。
【0014】選択反転回路2は入力端子8に入力される
ベクトルA、Bの各ビット毎に設けられる4つの反転・
非反転回路9と、これらの各反転・非反転回路9から出
力される反転ビット信号、非反転ビット信号のいずれか
を選択する4つの選択スイッチ10とを備えており、各
反転・非反転回路9によって入力端子8に入力されてい
るベクトルAまたはベクトルBの各ビットを反転、非反
転するとともに、前記係数制御回路3から出力される選
択信号に応じて前記各反転・非反転回路9から出力され
る各反転ビット、各非反転ビットのいずれかを選択して
これをビット位置変更回路5に供給する。
【0015】また、プルアップ回路4は11個の抵抗1
1を備えており、これら各抵抗11の一端に印加されて
いる電圧によって前記ビット位置変更回路5の各選択ス
イッチ15をプルアップする。
【0016】ビット位置変更回路5は4本のビット入力
ライン(横ライン)12と、11本の出力ライン(縦ラ
イン)13と、8本の制御ライン(斜めライン)14
と、これら入力ライン12ないし制御ライン14が交差
する点に設けられる複数の選択スイッチ15とを備えて
おり、前記係数制御回路3からいずれかの制御ライン1
4に選択信号が供給されたとき、前記選択反転回路2か
ら各入力ライン12に入力されている各ビットの位置を
決定するとともに、前記ビット以外のビットに“1”を
セットして11ビットのビット列にし、これを反転回路
6に供給する。この場合、前記各選択スイッチ15は各
々、図2に示す如く一方の端子が前記出力ライン13を
介して前記抵抗11の他端に接続され、他方の端子が前
記入力ライン12を介して前記選択反転回路2の出力端
子に接続されるスイッチ16を備えており、前記係数制
御回路3から選択信号が供給されたとき、前記選択反転
回路2から出力されるビットを選択して、これを出力ラ
イン13を介して前記反転回路6に供給し、また前記係
数制御回路3から選択信号が供給されていないとき、プ
ルアップ回路4から出力される電圧によって“1”を示
すビット信号を生成し、これを出力ライン13を介して
前記反転回路6に供給する。
【0017】反転回路6は前記ビット位置変更回路5の
各出力ライン13を介して供給される各ビットの値を各
々、反転させる11個のインバータ17を備えており、
前記ビット位置変更回路5の各出力ライン13を介して
供給される各ビットの値を各々、反転させて加算回路7
に供給する。
【0018】加算回路7は前記(17)式の(a)段に
ある値((1)式の但し書き部分にある係数C0、C1に
対応する値)を初期設定値として取り込んだり、前回ま
での累積加算結果を取り込んだりする切換スイッチ18
と、この切換スイッチ18によって選択された初期設定
値(または、前回までの累積加算結果)と前記反転回路
6から出力されるビット列とを加算する加算器19と、
この加算器19の加算動作によって得られた値(累積加
算結果)を一時的に記憶して前記切換スイッチ18に供
給するレジスタ20とを備えており、前記(17)式の
(a)段にある値を初期設定値として前記反転回路6か
ら順次、出力される各ビット列を累積加算し、この加算
動作によって得られた値を前記(17)式の演算結果と
して出力する。
【0019】次に、図3ないし図8を参照しながら本実
施例の動作を説明する。 《1サイクル目》まず、図3に示す如く入力端子8から
ベクトルAの各ビット値が入力されると、係数制御回路
3によって選択反転回路2の各選択スイッチ10の切り
換えが行われて前記各ビットの値から前記(17)式の
(b)段にあるベクトル成分部分の反転ビット列が生成
されるとともに、ビット位置変更回路5にある上位から
7つ目の制御ライン14が選択されて、前記選択反転回
路2によって得られたビット列から前記(17)式の
(b)段に示すビット列の反転ビット列が生成され、こ
れが反転回路6によって反転されて前記(17)式の
(b)段に示すビット列にされた後、加算回路7に供給
される。そして、この加算回路7の加算器19によって
選択スイッチ18で選択されている初期設定値と、前記
反転回路6から出力される今回のビット列とが加算さ
れ、この加算動作によって得られたビット列(累積加算
結果)がレジスタ20に記憶される。
【0020】《2サイクル目》次いで、図4に示す如く
各選択スイッチ10がそのままの接続状態に保たれたま
ま、ビット位置変更回路5にある上位から5つ目の制御
ライン14が選択されて、前記選択反転回路2によって
得られたビット列から前記(17)式の(c)段に示す
ビット列の反転ビット列が生成され、これが反転回路6
によって反転されて前記(17)式の(c)段に示すビ
ット列にされた後、加算回路7に供給される。またこの
動作と並行して、加算回路7の選択スイッチ18がレジ
スタ20側に切り換えられてこのレジスタ20に記憶さ
れている前回までの累積加算結果が選択されるととも
に、加算器20によって前記反転回路6から出力される
今回のビット列と、前記選択スイッチ18によって選択
されているビット列(前回までの累積加算結果)とが加
算され、この加算動作によって得られたビット列が再び
レジスタ20に記憶される。
【0021】《3サイクル目》次いで、図5に示す如く
各選択スイッチ10の切り換えが行われて前記入力端子
8に入力されている前記ベクトルAの各ビット値から前
記(17)式の(d)段にあるベクトル成分部分の反転
ビット列が生成されるとともに、ビット位置変更回路5
にある最上位の制御ライン14が選択されて、前記選択
反転回路2によって得られたビット列から前記(17)
式の(d)段に示すビット列の反転ビット列が生成さ
れ、これが反転回路6によって反転されて前記(17)
式の(d)に示すビット列にされた後、加算回路7に供
給される。そして、この加算回路7の加算器19によっ
て選択スイッチ18で選択されているレジスタ20内の
値(前回までの累積加算結果)と、前記反転回路6から
出力される今回のビット列とが加算され、この加算動作
によって得られたビット列(累積加算結果)が再びレジ
スタ20に記憶される。
【0022】《4サイクル目》次いで、図6に示す如く
入力端子8からベクトルBの各ビット値が入力される
と、各選択スイッチ10の切り換えが行われて前記入力
端子8に入力されている前記ベクトルBの各ビット値か
ら前記(17)式の(e)段にあるベクトル成分部分の
反転ビット列が生成されるとともに、ビット位置変更回
路5にある最下位の制御ライン14が選択されて、前記
選択反転回路2によって得られたビット列から前記(1
7)式の(e)段に示すビット列の反転ビット列が生成
され、これが反転回路6によって反転されて前記(1
7)式の(e)段に示すビット列にされた後、加算回路
7に供給される。そして、この加算回路7の加算器19
によって選択スイッチ18で選択されているレジスタ2
0内の値(前回までの累積加算結果)と、前記反転回路
6から出力される今回のビット列とが加算され、この加
算動作によって得られたビット列(累積加算結果)が再
びレジスタ20に記憶される。
【0023】《5サイクル目》次いで、図7に示す如く
各選択スイッチ10の切り換えが行われて前記入力端子
8に入力されている前記ベクトルBの各ビット値から前
記(17)式の(f)段にあるベクトル成分部分の反転
ビット列が生成されるとともに、ビット位置変更回路5
にある上位から2つ目の制御ライン14が選択されて、
前記選択反転回路2によって得られたビット列から前記
(17)式の(f)段に示すビット列の反転ビット列が
生成され、これが反転回路6によって反転されて前記
(17)式の(f)段に示すビット列にされた後、加算
回路7に供給される。そして、この加算回路7の加算器
19によって選択スイッチ18で選択されているレジス
タ20内の値(前回までの累積加算結果)と前記反転回
路6から出力される今回のビット列とが加算され、この
加算動作によって得られたビット列(累積加算結果)が
前記(17)式の演算結果として出力される。
【0024】このように、この実施例においては、前記
(17)式を演算することによって、前記(1)式の演
算結果を得るようにしているので、強力なバッファや下
位側ビットの制御回路等を不要にして回路規模を小さく
することができるとともに、係数C0、C1の値に応じて
特定の値を初期設定値として設定するだけで前記係数C
0、C1を用いた内積演算を高速で実行することができ
る。
【0025】次に、第2実施例の詳細な回路構成の説明
に先だって、この第2実施例の動作原理を説明する。ま
ず、一般的なビット演算では次式が成立する。
【数17】 そして、この(18)式を前記(17)式に適用する
と、次式が得られる。
【数18】 ここで、この(19)式に示す(a)段、(c)段、
(e)段、(g)段、(i)段、(k)段の部分を抜き
出してこれを計算すると、次式に示す値が得られる。
【数19】 そして、この(20)式の演算結果を用いて前記(1
9)式を書き直すと、次式が得られる。
【数20】 つまり、前記(17)式は前記(21)式を計算するこ
とによって求めることができる。
【0026】本発明による第2実施例は、前記(21)
式を演算することによって、前記(1)式の演算結果を
得ることを基本原理としている。以下、この基本原理を
用いた本発明の第2実施例を図面を参照しながら詳細に
説明する。
【0027】図8は本発明による内積演算回路の第2実
施例を示すブロック図である。なお、この図において、
図1の各部と同じ部分には、同じ符号を付して再度、説
明する。
【0028】この図に示す内積演算回路1aは選択反転
回路2と、係数制御回路3と、プルアップ回路4と、ビ
ット位置変更回路5と、加算回路7とを備えており、係
数制御回路3によって選択反転回路2およびビット位置
変更回路5を制御して内積演算対象となるベクトルA、
Bの各ビットを個々に非反転、反転させるとともに、こ
れら各ベクトルA、Bのビット位置(桁)を変更して前
記(21)式の(b)段〜(f)段にあるビット列を生
成させる。そして、加算回路7によって前記(21)式
の(a)段にある初期設定値と、前記ビット位置変更回
路5から出力される前記(21)式の(b)段〜(f)
段のビット列とを順次、累積加算させて前記(21)式
に示す内積値を算出させ、これを出力する。
【0029】係数制御回路3は内積演算対象となる係数
C0、C1の各値に対応する選択データが格納されている
制御テーブルやこの制御テーブル内に格納されている各
選択データを読み出す読出し回路等を備えており、入力
されるクロック信号に基づいて前記制御テーブルに格納
されている選択データを読み出して2つの選択信号を生
成するとともに、これら各選択信号を前記選択反転回路
2と、ビット位置変更回路5とに、各々供給する。
【0030】選択反転回路2は入力端子8に入力される
ベクトルA、Bの各ビット毎に設けられる4つの反転・
非反転回路9と、これらの各反転・非反転回路9から出
力される反転ビット信号、非反転ビット信号のいずれか
を選択する4つの選択スイッチ10とを備えており、各
反転・非反転回路9によって入力端子8に入力されてい
るベクトルAまたはベクトルBの各ビットを反転、非反
転するとともに、前記係数制御回路3から出力される選
択信号に応じて前記各反転・非反転回路9から出力され
る各反転ビット、各非反転ビットのいずれかを選択して
これをビット位置変更回路5に供給する。
【0031】また、プルアップ回路4は11個の抵抗1
1を備えており、これら各抵抗11の一端に印加されて
いる電圧によって前記ビット位置変更回路5の各選択ス
イッチ15をプルアップする。
【0032】ビット位置変更回路5は4本のビット入力
ライン(横ライン)12と、11本の出力ライン(縦ラ
イン)13と、8本の制御ライン(斜めライン)14
と、これら入力ライン12ないし制御ライン14が交差
する点に設けられる複数の選択スイッチ15とを備えて
おり、前記係数制御回路3からいずれかの制御ライン1
4に選択信号が供給されたとき、前記選択反転回路2か
ら各入力ライン12に入力される各ビットの位置を決定
するとともに、前記ビット以外のビットに“1”をセッ
トして11ビットのビット列にし、これを加算回路7に
供給する。この場合、前記各選択スイッチ15は各々、
図9に示す如く一方の端子が前記出力ライン13を介し
て前記抵抗11の他端に接続され、他方の端子が前記入
力ライン12を介して前記選択反転回路2の出力端子に
接続されるスイッチ16を備えており、前記係数制御回
路3から選択信号が供給されたとき、前記選択反転回路
2から出力されるビットを選択して、これを出力ライン
13を介して前記加算回路7に供給し、また前記係数制
御回路3から選択信号が供給されていないとき、プルア
ップ回路4から出力される電圧によって“1”を示すビ
ット信号を生成し、これを出力ライン13を介して前記
加算回路7に供給する。
【0033】加算回路7は前記(21)式の(a)段に
ある値を初期設定値として取り込んだり、前回の加算結
果を取り込んだりする切換スイッチ18と、この切換ス
イッチ18によって選択された初期設定値(または、前
回までの累積加算結果)と前記ビット位置変更回路5か
ら出力されるビット列とを加算する加算器19と、この
加算器19の加算動作によって得られた値(累積加算結
果)を一時的に記憶して前記切換スイッチ18に供給す
るレジスタ20とを備えており、前記(21)式の
(a)段にある値を初期設定値として前記ビット位置変
更回路5から順次、出力される各ビット列を累積加算
し、この加算動作によって得られたビット列を前記(2
1)式の演算結果として出力する。
【0034】次に、図10ないし図14を参照しながら
この実施例の動作を説明する。 《1サイクル目》まず、図10に示す如く入力端子8か
らベクトルAの各ビット値が入力されると、係数制御回
路3によって選択反転回路2の各選択スイッチ10の切
り換えが行われて前記各ビットの値から前記(21)式
の(b)段にあるベクトル成分部分のビット列が生成さ
れるとともに、ビット位置変更回路5にある上位から7
つ目の制御ライン14が選択されて、前記選択反転回路
2によって得られたビット列から前記(21)式の
(b)段に示すビット列が生成され、これが加算回路7
に供給される。そして、この加算回路7の加算器19に
よって選択スイッチ18で選択されている初期設定値と
前記ビット位置変更回路5から出力される今回のビット
列とが加算されてこの加算動作によって得られたビット
列(累積加算結果)がレジスタ20に記憶される。
【0035】《2サイクル目》次いで、図11に示す如
く各選択スイッチ10がそのままの接続状態に保たれた
まま、ビット位置変更回路5にある上位から5つ目の制
御ライン14が選択されて、前記選択反転回路2によっ
て得られたビット列から前記(21)式の(c)段に示
すビット列が生成され、これが加算回路7に供給され
る。またこの動作と並行して、加算回路7の選択スイッ
チ18がレジスタ20側に切り換えられてこのレジスタ
20に記憶されている前回までの累積加算結果が選択さ
れるとともに、加算器20によって前記ビット位置変更
回路5から出力される今回のビット列と、前記選択スイ
ッチ18によって選択されているビット列(前回までの
累積加算結果)とが加算され、この加算動作によって得
られたビット列が再びレジスタ20に記憶される。
【0036】《3サイクル目》次いで、図12に示す如
く各選択スイッチ10の切り換えが行われて前記入力端
子8に入力されている前記ベクトルAの各ビット値から
前記(21)式の(d)段ににあるベクトル成分部分の
ビット列が生成されるとともに、ビット位置変更回路5
にある最上位の制御ライン14が選択されて、前記選択
反転回路2によって得られたビット列から前記(21)
式の(d)段に示すビット列が生成され、これが加算回
路7に供給される。そして、この加算回路7の加算器1
9によって選択スイッチ18で選択されているレジスタ
20内の値(前回までの累積加算結果)と前記ビット位
置変更回路5から出力される今回のビット列とが加算さ
れ、この加算動作によって得られたビット列(累積加算
結果)が再びレジスタ20に記憶される。
【0037】《4サイクル目》次いで、図13に示す如
く入力端子8からベクトルBの各ビット値が入力される
と、各選択スイッチ10の切り換えが行われて前記入力
端子8に入力されている前記ベクトルBの各ビット値か
ら前記(21)式の(e)段にあるベクトル成分部分の
ビット列が生成されるとともに、ビット位置変更回路5
にある最下位の制御ラインが選択されて、前記選択反転
回路2によって得られたビット列から前記(21)式の
(e)段に示すビット列が生成され、これが加算回路7
に供給される。そして、この加算回路7の加算器19に
よって選択スイッチ18で選択されているレジスタ20
内の値(前回までの累積加算結果)と、前記ビット位置
変更回路5から出力される今回のビット列とが加算さ
れ、この加算動作によって得られたビット列(累積加算
結果)が再びレジスタ20に記憶される。
【0038】《5サイクル目》次いで、図14に示す如
く各選択スイッチ10の切り換えが行われて、前記入力
端子8に入力されている前記ベクトルBの各ビット値か
ら前記(21)式の(f)段にあるベクトル成分部分の
ビット列が生成されるとともに、ビット位置変更回路5
にある上位から2つ目の制御ライン14が選択されて、
前記選択反転回路2によって得られたビット列から前記
(21)式に示すビット列が生成され、これが加算回路
7に供給される。そして、この加算回路7の加算器19
によって選択スイッチ18で選択されているレジスタ2
0内の値(前回までの累積加算結果)と、前記ビット位
置変更回路5から出力される今回のビット列とが加算さ
れてこの加算動作によって得られたビット列(累積加算
結果)が前記(21)式の演算結果として出力される。
【0039】このように、この実施例においては、前記
(21)式を演算することによって、前記(1)式の演
算結果を得るようにしているので、強力なバッファや下
位側ビットの制御回路等を不要にして回路規模を小さく
することができるとともに、係数C0、C1の値に応じて
特定の値を初期設定値として設定するだけで前記係数C
0、C1を用いた内積演算を高速で実行することができ
る。
【0040】図15は本発明による内積演算回路の第3
実施例を示すブロック図である。この図に示す内積演算
回路は2つの内積演算回路1b、1cと、1つのレジス
タ25とを備えており、一方の内積演算回路1bで初期
設定値とベクトルAとに基づいて前記(17)式の
(a)段〜(d)段の累積加算演算(または、前記(2
1)式の(a)段〜(d)段の累積加算演算)を行なっ
た後、この実行結果をレジスタ25を介して他方の内積
演算回路1cに供給し、この内積演算回路1cによって
前記レジスタ25を介して供給される前記内積演算回路
1bの演算結果とベクトルBとに基づいて前記(17)
式の(e)段、(f)の累積加算演算(または、前記
(21)式の(e)段、(f)の累積加算演算)を行な
って前記(17)式に示す演算結果(または前記(2
1)式に示す演算結果)を求める。
【0041】一方の内積演算回路1bは図1に示す内積
演算回路1(または、図8に示す内積演算回路1a)に
よって構成されており、初期設定値とベクトルAとに基
づいて前記(17)式の(a)段〜(d)段の累積加算
演算(または、前記(21)式の(a)段〜(d)段の
累積加算演算)を行ない、この演算結果をレジスタ25
に供給する。
【0042】レジスタ25は前記内積演算回路1bから
出力される演算結果を取り込んで、これを一時的に記憶
した後、他方の内積演算回路1cに供給する。内積演算
回路1cは前記内積演算回路1bと同様に図1に示す内
積演算回路1(または、図8に示す内積演算回路1a)
によって構成されており、前記レジスタ25から出力さ
れる前記内積演算回路1bの演算結果とベクトルBとに
基づいて前記(17)式の(e)段、(f)の累積加算
演算(または、前記(21)式の(e)段、(f)の累
積加算演算)を行なって前記(17)式に示す演算結果
(または前記(21)式に示す演算結果)を求める。
【0043】このようにこの実施例においては、一方の
内積演算回路1bによって初期設定値とベクトルAとの
演算を行ない、他方の内積演算回路1cによって前記内
積演算回路1bの演算結果とベクトルBとの演算を行な
うようにしたので、ベクトルAを一方の内積演算回路1
bにセットし、ベクトルBを他方の内積演算回路1cに
セットするだけで、前記(17)式に示す演算(また
は、前記(21)式に示す演算)を行なうことができ、
これによって強力なバッファや下位側ビットの制御回路
等を不要にして回路規模を小さくすることができるとと
もに、係数C0、C1の値に応じて特定の値を初期設定値
として設定するだけで前記係数C0、C1を用いた内積演
算を高速で実行することができる。
【0044】図16は本発明による内積演算回路の第4
実施例を示すブロック図である。この図に示す内積演算
回路は2つの内積演算回路1d、1eと、1つの加算器
26とを備えており、一方の内積演算回路1dで初期設
定値とベクトルAとに基づいて前記(17)式の(a)
段〜(d)段の累積加算演算(または、前記(21)式
の(a)段〜(d)段の累積加算演算)を行なうととも
に、他方の内積演算回路1eによって予めセットされて
いる値“0”とベクトルBとに基づいて前記(17)式
の(e)段、(f)の累積加算演算(または、前記(2
1)式の(e)段、(f)の累積加算演算)を行なった
後、加算器26によって前記各内積演算回路1d、1e
の累積加算結果を加算して前記(17)式に示す演算結
果(または前記(21)式に示す演算結果)を求める。
【0045】一方の内積演算回路1dは図1に示す内積
演算回路1(または、図8に示す内積演算回路1a)に
よって構成されており、初期設定値とベクトルAとに基
づいて前記(17)式の(a)段〜(d)段の累積加算
演算(または、前記(21)式の(a)段〜(d)段の
累積加算演算)を行ない、この演算結果を加算器26に
供給する。
【0046】また、他方の内積演算回路1eは前記内積
演算回路1dと同様に図1に示す内積演算回路1(また
は、図8に示す内積演算回路1a)によって構成されて
おり、初期設定としてセットされている値“0”とベク
トルBとに基づいて前記(17)式の(e)段、(f)
の累積加算演算(または、前記(21)式の(e)段、
(f)の累積加算演算)を行ない、この演算結果を前記
加算器26に供給する。加算器26は前記各内積演算回
路1d、1eから出力される各累積加算結果を加算して
前記(17)式に示す演算結果(または、前記(21)
式に示す演算結果)を求め、これを出力する。
【0047】このようにこの実施例においては、一方の
内積演算回路1dによって初期設定値とベクトルAとの
演算を行ない、他方の内積演算回路1eによって予め設
定されている値“0”とベクトルBとの演算を行なうよ
うにしたので、ベクトルAを一方の内積演算回路1dに
セットし、ベクトルBを他方の内積演算回路1eにセッ
トするだけで、上述した各実施例よりも少ないサイクル
数で前記(17)式に示す演算(または、前記(21)
式に示す演算)を行なうことができ、これによって強力
なバッファや下位側ビットの制御回路等を不要にして回
路規模を小さくすることができるとともに、係数の値に
応じて特定の値を初期設定値として設定するだけで前記
係数を用いた内積演算を高速で実行することができる。
【0048】また、上述した各実施例においては、前記
(1)式に示す各係数C0、C1に対応した内積演算回路
について説明しているが、これら係数C0、C1の値が他
の値のとき、同様な手順で初期設定値や各制御データを
求めてこれらのデータに基づいて係数制御回路3内の制
御テーブルに書き変えるとともに、加算回路7の初期設
定値の値を変更するだけで、係数C0、C1の値が他の値
のときでも、内積演算結果を求めることができる。ま
た、上述した各実施例においては、入力データ語長が4
ビットの2次内積演算に対して本発明を適用している
が、これに限らず、入力データ語長が4ビット以外の内
積演算や1次の内積演算や3次以上の内積演算に対して
本発明を適用しても良い。
【0049】
【発明の効果】以上、説明したように本発明によれば、
強力なバッファや下位側ビットの制御回路等を不要にし
て回路規模を小さくすることができるとともに、係数の
値に応じて特定の値を初期設定値として設定するだけで
前記係数を用いた内積演算を高速で実行することができ
る。
【図面の簡単な説明】
【図1】本発明による内積演算回路の第1実施例を示す
ブロック図である。
【図2】図1に示す選択スイッチの詳細な構成例を示す
回路図である。
【図3】図1に示す内積演算回路の動作例を示す1サイ
クル目の模式図である。
【図4】図1に示す内積演算回路の動作例を示す2サイ
クル目の模式図である。
【図5】図1に示す内積演算回路の動作例を示す3サイ
クル目の模式図である。
【図6】図1に示す内積演算回路の動作例を示す4サイ
クル目の模式図である。
【図7】図1に示す内積演算回路の動作例を示す5サイ
クル目の模式図である。
【図8】本発明による内積演算回路の第2実施例を示す
ブロック図である。
【図9】図8に示す選択スイッチの詳細な構成例を示す
回路図である。
【図10】図8に示す内積演算回路の動作例を示す1サ
イクル目の模式図である。
【図11】図8に示す内積演算回路の動作例を示す2サ
イクル目の模式図である。
【図12】図8に示す内積演算回路の動作例を示す3サ
イクル目の模式図である。
【図13】図8に示す内積演算回路の動作例を示す4サ
イクル目の模式図である。
【図14】図8に示す内積演算回路の動作例を示す5サ
イクル目の模式図である。
【図15】本発明による内積演算回路の第3実施例を示
すブロック図である。
【図16】本発明による内積演算回路の第4実施例を示
すブロック図である。
【符号の説明】
1 内積演算回路 2 選択反転回路(選択反転部) 3 係数制御回路 4 プルアップ回路(ビット補充部) 5 ビット位置変更回路(ビット位置変更部) 6 反転回路 7 加算回路(加算部)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】 1つもしくは複数のベクトルデータと1
    つもしくは複数の係数とに基づいて内積演算を行なう内
    積演算回路において、 前記各ベクトルデータの各ビットを選択的に反転させる
    選択反転部と、 前記係数に対応して前記選択反転部で選択的にビット反
    転されたベクトルデータの各ビット位置を変更するビッ
    ト位置変更部と、 このビット位置変更部によってビット位置が変更された
    ベクトルデータの空ビットに“1”または“0”を与え
    るビット補充部と、 前記係数に対応して設定されている初期設定値と前記ビ
    ット補充部で空ビットに“1”または“0”が補充され
    たベクトルデータとを累積加算する加算部と、 を備えたことを特徴とする内積演算回路。
JP3261403A 1991-09-13 1991-09-13 内積演算回路 Pending JPH0573604A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP3261403A JPH0573604A (ja) 1991-09-13 1991-09-13 内積演算回路
US07/942,410 US5285405A (en) 1991-09-13 1992-09-09 Inner product calculating circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP3261403A JPH0573604A (ja) 1991-09-13 1991-09-13 内積演算回路

Publications (1)

Publication Number Publication Date
JPH0573604A true JPH0573604A (ja) 1993-03-26

Family

ID=17361388

Family Applications (1)

Application Number Title Priority Date Filing Date
JP3261403A Pending JPH0573604A (ja) 1991-09-13 1991-09-13 内積演算回路

Country Status (2)

Country Link
US (1) US5285405A (ja)
JP (1) JPH0573604A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230132254A1 (en) * 2013-08-08 2023-04-27 Movidius Limited Variable-length instruction buffer management
US11768689B2 (en) 2013-08-08 2023-09-26 Movidius Limited Apparatus, systems, and methods for low power computational imaging

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2108736B (en) * 1981-10-27 1984-12-12 Standard Telephones Cables Ltd Sum of products multiplier
US4495593A (en) * 1982-07-01 1985-01-22 Hewlett-Packard Company Multiple bit encoding technique for combinational multipliers
US4736335A (en) * 1984-11-13 1988-04-05 Zoran Corporation Multiplier-accumulator circuit using latched sums and carries
US4868778A (en) * 1987-05-19 1989-09-19 Harris Corporation Speed enhancement for multipliers using minimal path algorithm
US4958312A (en) * 1987-11-09 1990-09-18 Lsi Logic Corporation Digital multiplier circuit and a digital multiplier-accumulator circuit which preloads and accumulates subresults

Also Published As

Publication number Publication date
US5285405A (en) 1994-02-08

Similar Documents

Publication Publication Date Title
JP2585649B2 (ja) 除算回路
JP2012209755A (ja) 演算回路及び2進数の変換方法
JPH0250492B2 (ja)
JPH0573604A (ja) 内積演算回路
US7296048B2 (en) Semiconductor circuit for arithmetic processing and arithmetic processing method
JPH0736152B2 (ja) 演算回路
CN1666173A (zh) 快速乘法电路
JPH10283340A (ja) 演算プロセッサ
JP2766133B2 (ja) パラレル・シリアル・データ変換回路
JPS6027024A (ja) 演算装置
US4563749A (en) Floating point digital differential analyzer
JPH0716163B2 (ja) 冗長2進d/a変換器およびそれを用いた冗長2進信号処理装置
JP3203454B2 (ja) 乗算器
JP3223560B2 (ja) 波形データ読出し装置
JPS6047609B2 (ja) 乗算回路
JP3198868B2 (ja) 乗算処理装置
JP3166781B2 (ja) 加算回路
Tao et al. Approximate parallel annealing Ising machines (APAIMs): Controller and arithmetic design
JPH10215187A (ja) 誤り検出符号化復号装置および方法
JP2575856B2 (ja) 演算回路
JPS6039239A (ja) 直並列変換回路
JPH1011418A (ja) 積和演算装置
JP2806459B2 (ja) フリップフロップが評価可能な論理シミュレーション装置
JPH0315209B2 (ja)
JPH0334615A (ja) ディジタルフィルタ