JPH0746351B2 - ベクトル演算装置 - Google Patents

ベクトル演算装置

Info

Publication number
JPH0746351B2
JPH0746351B2 JP63049879A JP4987988A JPH0746351B2 JP H0746351 B2 JPH0746351 B2 JP H0746351B2 JP 63049879 A JP63049879 A JP 63049879A JP 4987988 A JP4987988 A JP 4987988A JP H0746351 B2 JPH0746351 B2 JP H0746351B2
Authority
JP
Japan
Prior art keywords
vector
vector data
elements
data
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.)
Expired - Lifetime
Application number
JP63049879A
Other languages
English (en)
Other versions
JPS641060A (en
JPH011060A (ja
Inventor
真吾 太田
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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP63049879A priority Critical patent/JPH0746351B2/ja
Publication of JPS641060A publication Critical patent/JPS641060A/ja
Publication of JPH011060A publication Critical patent/JPH011060A/ja
Publication of JPH0746351B2 publication Critical patent/JPH0746351B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • G06F7/509Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination for multiple operands, e.g. digital integrators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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

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)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はベクトル演算装置に関し,特にベクトルデータ
の加算を行なうベクトル加算装置に関する。
〔従来の技術〕
ここで,まず,第10図を参照して,従来のベクトル演算
装置について説明する。
図示のベクトル演算装置は第1及び第2の入力線16,17
に接続されたベクトル加算器15を備えている。2つのベ
クトルデータA及びBがそれぞれ第1及び第2の入力線
16,17を介してベクトル加算器15に与えられる。ベクト
ルデータAは複数のベクトル要素(a1,a2,…,an)で構
成され,同様にベクトルデータBは複数のベクトル要素
(b1,b2,…,bn)で構成されている。
ベクトルデータAとBとの加算によりベクトル要素
(o1,o2,…,on)からなるベクトルデータOが出力され
る。即ち,ベクトル加算器15はベクトル要素(a1,a2,
…,an)と(b1,b2,…,bn)を連続的に合計して,ベクト
ル要素(o1,o2,…,on)を出力線18に出力する。従っ
て,出力ベクトル要素は,oi=ai+biと表わせる。(た
だしi=1,…,n) ここで3つのベクトルデータA,B,Cを加算する場合には
(ベクトルデータCのベクトル要素を(c1,c2,…,cn
とする。),まず,ベクトル加算器15で連続してベクト
ル要素aiとbiとを加算して,中間ベクトルデータDを出
力する(D=(d1,d2,…,dn))。即ち,di=ai+biを出
力する。
その後,ベクトル加算器15で中間ベクトル要素d1とベク
トル要素ciとを加算して,oi=ai+bi+ciとなる出力ベ
クトルデータOを求める。
このことから明らかなように,従来のベクトル演算装置
では,中間ベクトルデータDをレジスター等に保持して
おく必要がある。実際には,ベクトル加算器15はパイプ
ライン処理でベクトル演算ができるように複数のフリッ
プフロップを備えており,各ベクトル要素は,クロック
パルスによってフリップフロップで順次遅延される。そ
して,所定の時間の後出力ベクトル要素の一つが出力さ
れる。即ち,ベクトル要素の一つ(ベクトル要素ごと)
の演算が上記の所定時間必要となる。
ここで,第11図も参照して,一つのベクトル要素の加算
を行うのにmTかかるものとし(mは正整数,Tはクロック
サイクルを示す),ベクトル要素a1とb1がクロックパル
スの0番目に同期して第1及び第2の入力線16,17を介
してベクトル加算器15に与えられる。その後,ベクトル
要素a2〜anとb1〜bnがクロックパルスの1番目から(n
−1)番目に同期して入力される。その結果,ベクトル
要素a1〜anとb1〜bnは1番目からn番目までのクロック
サイクルで配列される。
従って,第11図に示すように,ベクトル加算器15は,ベ
クトル要素a1とb1に応答してm番目のクロックパルスの
時間で中間ベクトル要素d1を出力する。即ち,第1の中
間ベクトル要素d1はm番目のクロックパルスに同期して
出力される。同様にして,2番目からn番目の中間ベクト
ル要素d2〜dnは(m+1)番目から(n+m−1)番目
のパルスに同期して出力される。この中間ベクトル要素
d1〜dnはレジスタ(図示せず)に格納される。
次に,ベクトルデータCと中間ベクトルデータDとが,
第1及び第2の入力線によってベクトル加算器15に与え
られる。即ち,まず,第1のベクトル要素c1と第1の中
間ベクトル要素d1とが(n+m−1)番目のクロックパ
ルスに同期して,同時にベクトル加算器15に与えられ
る。同様にして,第2から第nのベクトル要素c2〜cn
第2から第nの中間ベクトル要素d2〜dnが対で,(n+
m)番目から(2n+m−1)番目までのクロックパルス
に同時してベクトル加算器15に入力され,(n+2m−
1)番目のクロックパルスに同期して,第1の出力ベク
トル要素o1が出力される。同様にして,第2から第nの
出力ベクトル要素o2〜onが(n+2m)番目から2(n+
m−1)番目の時間関係で出力される。従って,3つのベ
クトルデータのベクトル加算を行うには2(n+m−
1)Tの時間間隔が必要となる。
ここで,ベクトル要素のすべての和を求める場合につい
て説明する。なお,ベクトル要素は2n個あるものとす
る。
まず,2n個のベクトル要素を2n-1個のベクトル要素を含
むベクトルデータAと2n-1個のベクトル要素を含むベク
トルデータBとに分け,上述したベクトル加算により,2
n-1個のベクトル要素を含む中間ベクトルデータCを求
める。同様にして,2n-1個のベクトル要素を含む中間ベ
クトルデータCを2n-2個のベクトル要素を含むベクトル
データA′と2n-2個のベクトル要素を含むベクトルデー
タB′とに分け,2n-2個のベクトル要素を含む中間ベク
トルデータC′を求める。以下同様にして,加算結果を
半分にしてベクトル加算をくり返すことによって,2n
のベクトル要素の加算を求める。
第10図及び第12図を参照して,さらに詳しく説明する
と,ベクトルデータAの第1のベクトル要素a1とベクト
ルデータBの第1のベクトル要素とがそれぞれ第1及び
第2の入力線16,17からベクトル加算器15に0番目のク
ロックパルスの時間で加えられる。同様に,ベクトルデ
ータA及びBの第2から第2n-1のベクトル要素が1番目
から(2n-1−1)番目のクロックパルスに同期してベク
トル加算器15に加えられる。なお,第12図において,簡
単のため2n-1をrでも表わす。
第1から第rのベクトル要素c1〜crがそれぞれm番目か
ら(r+m−1)番目のクロックパルスに同期して出力
される。従って,2n-1個の中間ベクトル要素を得るため
には,(2n-1+m−1)Tの演算時間が必要となる。即
ち,2n-1個の中間ベクトル要素を得るためには,(r+
m−1)Tの演算時間が必要となる。
その後,中間ベクトル要素c1〜crがそれぞれ2n-1個のベ
クトル要素を含むベクトルデータA′とB′とに分けら
れる。そしてベクトル要素a1′とb1′とが(r+m−
1)番目のクロックパルスに同期してベクトル加算器15
に与えられる。同様に,第2から第sのベクトル要素
a2′〜as′及びb2′〜bs′はそれぞれ(r+m+s−
2)番目のクロックパルスにより連続してベクトル加算
器15に加えられる(なおsは2n-2を示す)。そして,合
計ベクトル要素ci′が(r+2m−1)番目から(r+s
+2m−2)番目のクロックパルスで出力される(なお,
ここではiは1からsである)。従って,2n-2個のベク
トル要素の演算時は(2n-2+(m−1))Tとなる。
このようにして,2n個のベクトル要素の合計を演算を計
算すると,合計時間は となる。
また,2n個のベクトル要素を加算して,2l個のベクトル要
素とするまでには(2l<2n),前述と同様にして, となる。
〔発明が解決しようとする課題〕
上述のように,ベクトル演算装置では,極めて多くベク
トル要素を含むベクトルデータ同士の演算が行われ,し
かも,3つのベクトルデータを加算を行う場合には,前述
のように,出力ベクトルデータの一つのベクトル要素を
求めるのに2回の演算を行わなければならない。
さらに,一つのベクトルデータのベクトル要素の合計を
求めようとする場合,まず2つのベクトル要素を加算し
て第1の中間結果を得この中間結果に他のベクトル要素
を加算して第2の中間結果を求め,以下順次同様に加算
をして,合計を求めているから,極めて多くの演算を行
わなければならない。
いずれにしても,ベクトル演算を行うのに極めて長い時
間を必要とするという問題点がある。
本発明の目的は,高速でベクトル演算を行うことのベク
トル演算装置を提供することにある。
〔課題を解決するための手段〕
本発明によれば,複数のベクトル要素からなる第1及び
第2のベクトルデータと選択的に第3のベクトルデータ
とが入力され,ベクトル演算を行なうベクトル演算装置
であって,前記第3のベクトルデータ及び固定値ゼロが
入力され,該第3のベクトルデータのベクトル要素及び
前記固定値のいずれか一方を出力する選択手段と,前記
第1及び第2のベクトルデータと前記選択手段からの出
力ベクトルデータとが入力され,キャリーセーブ加算を
行い,中間演算結果とキャリーとを出力する第1の加算
手段と,該中間演算結果とキャリーとが入力され,該中
間演算結果とキャリーとを加算して,最終演算結果を出
力する第2の加算手段とを有することを特徴とするベク
トル演算装置が得られる。
さらに,本発明によれば複数のベクトル要素からなる第
1及び第2のベクトルデータと選択的に第3のベクトル
データが入力され,ベクトル演算を行なうベクトル演算
装置であって,該第1,第2及び第3のベクトルデータが
入力され,キャリーセーブ加算を行い,中間演算結果と
キャリーとを出力する第1の加算手段と,該中間演算結
果と前記第1のベクトルデータとが入力され,ベクトル
要素ごとに,前記中間演算結果及び第1のベクトルデー
タのいずれか一方を選択する第1の選択手段と,前記キ
ャリーと前記第2のベクトルデータとが入力され,ベク
トル要素ごとに,前記キャリー及び第2のベクトルデー
タのいずれか一方を選択する第2の選択手段と,前記第
1及び第2の選択手段の出力を受け,加算して,最終演
算結果を出力する第2の加算手段とを有することを特徴
とするベクトル演算装置が得られる。
〔実施例〕
以下本発明について実施例によって説明する。
まず,第1図を参照して,ベクトル演算装置21は選択回
路25,第1の加算回路26,及び第2の加算回路を備えてお
り,ベクトルデータ生成回路22と演算制御回路23ととも
に用いられる。
ベクトル演算装置21にはベクトルデータ生成回路22から
第1及び第2のベクトルデータA,Bと第1〜第Lの付加
ベクトルデータC1〜CL(Lは正整数)が加えられる。さ
らに,固定値“0"(ゼロ)がベクトルデータ生成回路22
から加えられる。ここで,第1及び第2のベクトルデー
タA,Bと第1〜第Lの付加ベクトルデータはn個のベク
トル要素を備えている。第1及び第2のベクトルデータ
A,Bのn個のベクトル要素をそれぞれ(a1,a2,…,an)及
び(b1,b2,…,bn)で表わし,第1〜第Lの付加ベクト
ルデータのn個のベクトル要素を(cj1,cj2,…,cjn)で
表わす。なお,jは1〜Lを示す。
第1〜第LのベクトルデータC1〜CLは演算制御回路23か
らのコントロール信号CTによって制御される選択回路25
に加えられる。選択回路25には,後述する内部ベクトル
データV=(v1,v2,…,vn)が加えられる。付加ベクト
ルデータC1〜CLと内部ベクトルデータVの第1のベクト
ル要素は固定値ゼロとともに第1の時間で選択回路25に
加えられ,同様にベクトルデータC1〜CLと内部ベクトル
データVの第2〜第nのベクトル要素が第2〜第nの時
間間隔で生成される。従って,第iの時間間隔で生成さ
る第Lのベクトル要素はcji,vi,及びゼロである。
コントロール信号CTに応答して,選択回路25は第iの時
間間隔で選択ベクトル要素diとしてベクトル要素cjn,
vi,ゼロのうち1つを選ぶ。この選択は第1〜第nの時
間間隔で連続して行われるから,選択回路25は第1〜第
nのベクトル要素d1〜dnを含む第3のベクトルデータD
を生成する。いずれにしても,ベクトル要素d1〜dnは選
択回路25から選択ベクトル要素として生成される。
第1の加算回路26は第1,第2,及び第3のベクトルデータ
A,B,Dに応答して動作し,第1〜第3のベクトルデータ
A,B,Dのキャリーセーブ加算を行うキャリーセーブ加算
器を備えている。加えて,第1の加算回路26は,パイプ
ライン処理で第1〜第3のベクトルデータA,B,Dを処理
するため,第10図に示すベクトル加算器15のような複数
のフリップフロップ等を備えている。
第1の加算回路26には第1のベクトル要素a1,b1,及びd1
が並列に第1の時間間隔で与えられ,第2〜第nのベク
トル要素a2〜an,b2〜bn,及びd2〜dnが第2〜第nの時間
間隔で第1の加算回路に加えられる。この場合,第3の
ベクトルデータDの第iのベクトル要素diは選択ベクト
ル要素として選択回路25から与えられ,一方,第1及び
第2のベクトルデータA及びBの第iのベクトル要素ai
及びbiはベクトルデータ生成回路22から与えられる。
第1の加算回路26は,3つのベクトル要素の受信後,所定
の演算時間(mT)が経過すると,3つのベクトル要素のキ
ャリーセーブ加算の結果を生成する(ここで,Tはクロッ
クパルスのクロックサイクルを示す)。なお,第11図及
び第12図に示すように,第1から第iの時間間隔は第0
番目から第(i−1)番目のクロックパルスによって限
定される。第iの時間におけるキャリーセーブ加算の結
果は,中間結果eiとキャリー(桁上げ)fiとに分けられ
る。
ここで,中間結果eiとキャリーfiの合計とは3つのベク
トル要素ai,bi,及びdiの合計に等しく,第(1)式で示
される。
ei+fi=ai+bi+di …(1) さらに,中間結果eiとキャリーfiとは第(2)に示され
る。
なお,はモジュロ2の加算を示す。
この結果,中間結果及びキャリーが第1〜第nの時間間
隔で連続して生成され,中間結果の連続及びキャリーの
連続が第1及び第2の結果ベクトルデータE及びFとな
る。そして,第1及び第2の結果ベクトルデータE及び
FはE=(e1,e2,…,en),F=(f1,f2,…,fn)と表わせ
る。
第2の加算回路27は第1の加算回路26に縦列に接続さ
れ,第1の結果ベクトルデータEと第2の結果ベクトル
データFとを加算して,第1〜第nのベクトル要素g1
gnを有する出力ベクトルデータGを生成する。即ち,第
iの出力ベクトル要素giはgi=ei+fiと表わされる。こ
の出力ベクトル要素giはベクトル演算の最終結果として
出力される一方,内部ベクトルデータのベクトル要素vi
として選択回路25にフィードバックされる。
第1及び第2の加算回路26,27の縦列接続により,特別
のクロックパルスが要求されることはないし,演算時間
が長くなることはない。
ここで,第1図及び第2図を参照して,第1及び第2の
ベクトルデータA,Bと付加ベクトルデータC2とのベクト
ル加算について説明する。ここでは,ベクトルデータA,
B,C2はn個のベクトル要素からなり,3つのベクトル要素
のおのおのの演算時間はmTとする。即ち,ベクトルデー
タA=(a1,a2,…,an),ベクトルデータB=(b1,b2,
…,bn),ベクトルデータC2=(c21,c22,…,c2n)であ
る。
まず,選択回路25はコントロール信号CTにより連続して
ベクトルデータC2の第1〜第nのベクトル要素(c21,c
22,…,c2n)を選択する。このベクトルデータC2(c21,c
22,…,c2n)は第3のベクトルデータD(d1,d2,…,dn
として選択回路25から第1の加算回路26に伝達される。
一方,第1の加算回路26には第1及び第2のベクトルデ
ータA,Bのベクトル要素a1〜an及びb1〜bnが与えられて
いる。
第2図において,第1のベクトル要素a1,b1,及びC21
0番目のクロックパルスで同期され,また第2のベクト
ル要素a2,b2,及びc22が1番目のクロックパルスで同期
されている。第1のベクトル要素a1,b1及びc21が第1及
び第2の加算回路26,27を通して互いに加算され,第1
の出力ベクトル要素g1として,m番目のクロックパルスに
同期して生成される。同様に,第2のベクトル要素a2,b
2,及びc22から第nのベクトル要素an,bn,及びc2nが連続
して互いに加算され,(m+1)番目から(n+m−
1)番目のクロックパルスに同期して,第2から第nの
出力ベクトル要素g2〜gnを出力する。
上述のように,この実施例では,それぞれがn個のベク
トル要素を有する3つのベクトルデータのベクトル演算
を実行する際に,全演算時間が(n+m−1)Tとな
る。次に,第1図及び第3図を参照して,2n個のベクト
ル要素の加算について説明する。
これらベクトル要素は第1のベクトルデータA,第2のベ
クトルデータBで示される第1のグループ,及び第2の
グループに分割される。第1及び第2のベクトルデータ
A,Bはそれぞれ2n-1個のベクトル要素(a1,a2,…,ar),
(b1,b2,…,br)を備えている。ここでrは2n-1を示
す。また,3つのベクトルデータの各ベクトル要素のベク
トル演算の実行にmTの演算時間を必要とする。
m番目のクロックパルスの生成前には第2の加算回路27
からは出力ベクトル要素は出力されない。従って,第1
及び第2のベクトルデータA,Bの第1〜第mのベクトル
要素の各ペアは,0番目から(m−1)番目のクロックパ
ルスに同期して第1及び第2の加算回路26,27で連続し
て加算される。選択回路26は,m番目のクロックパルスの
生成前には,第3のベクトルデータDのベクトル要素と
して固定値0(ゼロ)を選択する。この結果,第1の加
算回路26は連続してベクトル要素aiとbi及び“0"に保持
されたベクトル要素diのベクトル加算を実行し,第
(1)式で示される中間結果eiとキャリーfiを生成す
る。この中間結果eiとキャリーfiとは第2の加算回路26
で合計され,ベクトル要素ai,bi及び0のベクトル加算
の結果を表わす出力ベクトル要素giを生成する。
演算時間mTの経過の後,出力ベクトル要素g1,g2,…は内
部ベクトルデータVのベクトル要素として選択回路25に
加えられる。その結果,第1の出力ベクトル要素g1が,
第3図に示すように,m番目のクロックパルスに同期して
出力される。いずれにしてもm番目のクロックパルス生
成後,出力ベクトル要素g1,g2…は,選択回路25によっ
て第3のベクトルデータDの第(m+1),第(m+
2),…のベクトル要素として連続して選択される。従
って,m番目のクロックパルスが生成された後,ベクトル
演算装置21は3つのベクトルデータA,B,Cのベクトル演
算を行うことができる。即ち,m番目のクロックパルス受
信の後,第1及び第2のベクトルデータA及びBの(m
+1)番目から2n-1番目のベクトル要素対がベクトルデ
ータDの第(m+1)〜第2n-1のベクトル要素dm+1〜dr
に加算される。第(m+1)から第2n-1のベクトル要素
が第iのベクトル要素であるとき,出力ベクトル要素は
gi-mとなる。
このように,第1の加算回路26は,ai,bi,及びdiのキャ
リーセーブ加算を行い,第1及び第2のベクトルデータ
A及びBの第(m+1)から第2n-1のベクトル要素に関
して,連続して中間結果ei及びキャリーfiを生成する。
第2の加算回路27は連続して中間結果eiとキャリーfi
を加算して,出力ベクトル要素giを生成する。そして,
この出力ベクトル要素giは内部ベクトルデータVのベク
トル要素vi-mとして選択回路25へ送られる。
ここで,出力ベクトル要素がm番目のクロックパルスか
らカウントされ,giによって表わされるとすると,出力
ベクトル要素gi間において,複数の出力ベクトル要素の
一部分,即ち,g1,g2,…,gr-mが選択回路25に送られ,一
方,残りの出力ベクトル要素gr-m+1〜grがベクトル演算
の結果として出力される。
第3図に示すように,残りの出力ベクトル要素の和(m
個)を得るためには(2n-1+m+1)Tの第1の演算時
間が必要である。残りの出力ベクトル要素gr-m+1からgr
は数がmであり,次の式で与えられる。
従って,数がmに等しい上述の出力ベクトル要素を合計
することにより,2n個のベクトル要素の合計を算出する
ことができる。
ここで,数がmの出力ベクトル要素を合計するための第
2の演算時間を考えると,まずmが2kより小さく,2k-1
より大きいようなkを選択する。即ち,2k>m>2k-1
する。この場合,第2の演算時間は{2k−1+k(m-1)
Tで表わせる。
全出力ベクトル要素の全演算時間は第1の演算時間と第
2の演算時間の合計に等しく,次の式で与えられる。
(2n-1+m−1)T+(2k−1+k(m-1)T} ={2n-1+2k−1+(k+1)(m−1)}T 次に第4図を参照して,それぞれ数が2n-1のベクトル要
素からなる第1及び第2のベクトルデータA,Bの合計を
演算するための他の演算法を第1図に示すベクトル演算
装置21を用いて説明する。
第4図において,第1から第mの出力ベクトル要素が第
1から第pのベクトル要素に関して,上述と同様の方法
で演算される。なお,ここで,p=2n-1−tであり,また
tは正整数である。数がtの残りの出力ベクトル要素に
関して,p番目のクロックパルス生成の後,2つのベクトル
データのベクトル演算が第4図に示すように実行され
る。この結果,数が(m+r)のベクトル要素が直ちに
演算され,gp-m+1,gp-m+2,…,gp,…,grとして表わされ
る。従って,m以上の所定の数で,出力ベクトル要素の数
を選ぶことができる。
第5図を参照して,第2の実施例について説明する。
ベクトル演算装置21′にはベクトルデータ生成回路(第
5図には示さず)から第1,第2,及び第3のベクトルデー
タA,B,及びCが供給される。なおこの第1,第2,及び第3
のベクトルデータA,B,及びCはそれぞれ第1〜第nのベ
クトル要素,即ち(a1,a2,…,an),(b1,b2,…,bn),
及び(c1,c2,…,cn)で構成される。第1の加算回路26
には,第1図と同様の構成及び動作で第1〜第3のベク
トルデータA〜Cが与えられる。さらに,第1及び第2
のベクトルデータA及びBは第1及び第2の選択回路31
及び32に与えられる。
第1の加算回路26は,第1図と同様の方法で,第1から
第3のベクトルデータAからCのベクトル演算を行い,
キャリーセーブ加算の結果を生成して,第1及び第2の
中間ベクトルデータD及びEとして出力する。第1及び
第2の中間ベクトルデータD及びEはそれぞれ第1〜第
nの中間ベクトル要素(d1,d2,…,dn)及び(e1,e2,…,
en)からなり,キャリーセーブ加算における中間結果合
計とキャリーを表わす。この中間結果及びキャリーは,
第(1)式及び第(2)式と同様に第(3)式で表わせ
る。
ここで,i=1,…,n, 第1及び第2の中間ベクトルデータD及びEは,それぞ
れ第1及び第2のベクトルデータA及びBが与えられる
第1及び第2の選択回路31及び32に伝達される。第1及
び第2の選択回路31及び32は演算制御回路(第5図には
示さず)からのコントロール信号(図示せず)に応答し
て動作する。
従って,第1の選択回路31は第1のベクトルデータAの
ベクトル要素ai及び第1の中間ベクトルデータDのベク
トル要素diのどちらか一方を選択し,第1の選択ベクト
ルデータFを構成する第1の選択ベクトル要素fiを出力
する。ここで,第1の選択ベクトルデータFは(f1,f2,
…,fn)からなる同様に,第2の選択回路32は第2のベ
クトルデータBのベクトル要素bi及び第2の中間ベクト
ルデータEのベクトル要素eiのどちらか一方を選択し,
第2の選択ベクトルG=(g1,g2,…,gn)を構成する第
1の選択ベクトルgiを出力する。
第1及び第2の選択ベクトルデータF及びGは,第1図
と同様の構成及び動作を行う第2の加算回路27に送られ
る。第2の加算回路27は第1の選択ベクトル要素fiと第
2の選択ベクトル要素giとを加算して,第1から第nの
出力ベクトル要素(h1,h2,…,hn)からなる出力ベクト
ルデータHを生成する。この場合,第iの出力ベクトル
要素hiは,hi=fi+giで与えられる。
第5図及び第6図を参照して,第1から第3のベクトル
データがそれぞれ第1から第nのベクトルデータ要素
(a1,a2,…,an),(b1,b2,…,bn),及び(c1,c2,…,c
n)を有し,第5図に示すベクトル演算装置21′で互い
に加算されるとし,また,第1から第nのベクトル要素
セット(a1,b1,c1),(a2,b2,c2),…(an,bn,cn)が
ベクトル演算装置21′に連続して与えられ,各ベクトル
要素セットの演算時間がmTであるとする(ここでmは正
整数,Tはクロックサイクルである)。各ベクトル要素セ
ットはai,bi及びciで表わされ,第1の加算回路26で第
1及び第2の中間ベクトル要素d1及びeiに加算される。
3つのベクトルデータのベクトル加算において,第1及
び第2の選択回路31及び32は,コントロール信号に応答
して,それぞれ第1及び第2の中間ベクトルデータD及
びEを選択する。従って,第1及び第2の中間ベクトル
要素di及びeiはそれぞれ第1及び第2の選択回路31及び
32によって選択され,第1及び第2の選択ベクトル要素
fi及びgiとして生成される。その後,第2の加算回路27
によって第1及び第2の選択ベクトル要素fi及びgiが加
算され,出力ベクトル要素hiが生成される。
第6図に示すように,ベクトル要素セットa1,b1,及びc1
は,0番目のクロックパルスに同期してベクトル演算装置
21′に与えられ,一方,出力ベクトル要素h1はm番目の
クロックパルスに同期して生成される。ベクトル要素セ
ットan,bn,及びcnの演算結果である出力ベクトル要素hn
は(n+m−1)番目のクロックパルスに同期して生成
される。従って,3つのベクトルデータのベクトル加算は
(n+m−1)Tの演算時間で終了する。
第7図及び第8図を参照して,本発明の第3の実施例に
ついて説明する。なお,第7図に示すベクトル演算装置
21″は,出力ベクトルデータHが第3のベクトルデータ
として第1の加算回路26に与えられる点を除いて,第5
図に示すベクトル演算装置と同様である。
2n個のベクトル要素の合計を求める場合,2n個のベクト
ル要素はそれぞれ第1〜第2n-1のベクトル要素(a1,a2,
…,ar)及び(b1,b2,…,br)からなる第1及び第2のベ
クトルデータA及びBに分割される(ここで,r=2n-1
ある)。第8図に示すように,第1から第rのベクトル
要素は,それぞれ対で連続して第0〜第(r−1)のク
ロックパルスの時間関係でベクトル演算装置21″に与え
られる。
第iのベクトル要素ai及びbiがベクトル演算装置2″で
互いに加算され,第1図及び第5図のようにmTの演算時
間で演算が行われるとすると(i=1,…,2n-1),出力
ベクトル要素はm番目のクロックパルス受信後,第3の
ベクトルデータCのベクトル要素として使用可能とな
る。第1から第mのベクトル要素がベクトル演算装置2
1″に与えられると,ベクトル演算装置21″は第1及び
第2のベクトルデータA及びBのベクトル加算を行う。
m番目のクロックパルスが生成されると,ベクトル演算
装置21″で第1から第3のベクトルデータA,B,及びCの
ベクトル加算が行われる。ここで,出力ベクトル要素h1
からhrはそれぞれ第(m+1)から第(m+r)のベク
トル要素cm+1からcm+rとして与えられるものとする。
さらに,iが(m+1)以下の時,第1及び第2の選択回
路31及び32はそれぞれ第1及び第2のベクトルデータA
及びBのベクトル要素ai及びbiを選択する。従って,第
1のベクトルデータAのベクトル要素aiは連続して第1
の選択ベクトル要素fiとして第1の選択回路31から送出
され,また,第2のベクトルデータBのベクトル要素bi
は第2の選択ベクトル要素giとして第2の選択回路32か
ら送出される(i=1,2,…,m.)。
第1及び第2の選択ベクトル要素fi及びgiは第2の加算
回路27で互いに加算され,出力ベクトル要素hiとして出
力される。この出力ベクトル要素hiは,第8図に示すよ
うに演算時間mT経過の後,連続して出力される。よっ
て,第2の加算回路27は加算器に付加されて,mの数のフ
リップフロップ段を備えていることになる。
iがmより大きい場合,即ち,i=m+1,m+2,…,2n-1
時,出力ベクトル要素hi-mは第3のベクトルデータCの
第iのベクトル要素として第1の加算回路26に連続して
送られる。第1の加算回路26はm番目から(r−1)番
目のクロックパルスに応答して3つのベクトル要素,即
ち,ai,bi,及びciのキャリーセーブ加算を行い,第1及
び第2の中間ベクトル要素di及びeiを生成する。ここ
で,di及びeiは第(3)式で与えられ,そしてそれぞれ
第1及び第2の選択回路31及び32に送られる。
演算時間mT経過の後,第1及び第2の選択回路31及び32
はそれぞれ第1及び第2の選択ベクトル要素fi及びgi
して第1及び第2の中間ベクトル要素di及びeiを選択す
る。この第1及び第2の選択ベクトル要素fi及びgiは連
続して,上述のように第2の加算回路27で互いに加算さ
れ,第2の加算回路27は出力ベクトル要素hi-mを出力す
る。
出力ベクトル要素hi-mは,m番目から2n-1番目(r番目)
のクロックパルスの間の期間,第3のベクトルデータC
のベクトル要素ciとして第1のベクトル加算器26に送ら
れる。m番目のクロックパルスからカウントして,出力
ベクトル要素hiが第3のベクトルCのベクトル要素ci+m
として与えられる。出力ベクトル要素hiのうちの一部
分,即ちh1,h2,…,hr-mが第1の加算回路26に送られ,
一方,残りの出力ベクトル要素hr-m+1からhrがベクトル
演算の結果として出力される。この残りの出力ベクトル
要素hr-m+1からhrは次の式で与えられる。
このように,ベクトル演算の結果は,数がmに等しく,
さらに,2n個のベクトル要素の合計を演算するべく,合
計されねばならない。数がmの結果を求めるため,2j
m>2j-1の条件のjを選ぶと,数mの結果の加算に要す
る時間は{2j−1+j(m−1)}Tとなる。従って,
全演算時間は,第1の加算時間と第2の加算時間とを合
計することによって,次のように求められる。
(2n-1+m−1)T+{2j−1+j(m−1)}T ={2n-1+2j−1+(j+1)(m−1)}T 第9図を参照して,ベクトル演算装置21″による他の演
算について説明する。
それぞれ2n-1個のベクトル要素を有するベクトルデータ
A及びBがそれぞれp個及びt個のベクトル要素からな
る第1及び第2の部分に分けられる(ここでp=(2n-1
−t)である)。
p個のベクトル要素からなる第1の部分に関して,上述
の出力ベクトルデータHを考慮して,ベクトル加算が行
われる。その結果,p番目のクロックパルスの後m個の演
算結果が算出され,hp-m+1,hp-m+2,…,hpとして出力され
る。
一方,第1及び第2のベクトルデータA及びBが,第1
及び第2のベクトルデータA及びBのt個のベクトル要
素に関して,第3のベクトルデータCなしで加算され,t
個の演算結果を生成し,hp+1,hp+2,…,hrとして出力する
(r=2n-1)。
(m+t)個の演算結果は,第8図と同様の方法で互い
に加算され,2n個のベクトル要素の合計を求める。
なお,第1の加算回路26は,複数のベクトルデータの1
つベクトルデータを選択するように選択回路25に接続し
てもよい。
上述の実施例では,3つのベクトルデータの加算について
説明したが3つ以上の複数のベクトルデータの加算につ
いて同様に適用できる。
なお,上述の実施例において,各ベクトル要素のベクト
ル加算は,ベクトル要素の1ビット毎に行われる。
(発明の効果) 以上説明したように,本発明によれば,複数のベクトル
データを演算する際の演算時間を大幅に短縮することが
できる。即ち,従来に比べて約半分の時間でベクトル演
算を行うことができ,ベクトルデータベクトル要素の数
が多いほど有効である。
【図面の簡単な説明】
第1図は本発明によるベクトル演算装置の第1の実施例
を示すブロック図,第2図は第1図に示すベクトル演算
装置の動作を説明するための図,第3図は第1図に示す
ベクトル演算装置の他の動作を説明するための図,第4
図は第1図に示すベクトル演算装置のように他の動作を
説明するための図,第5図は本発明によるベクトル演算
装置の第2の実施例を示すブロック図,第6図は第5図
に示すベクトル演算装置の動作を説明するための図,第
7図は本発明によるベクトル演算装置の第3の実施例を
示すブロック図,第8図は第7図に示すベクトル演算装
置の動作を説明するための図,第9図は第7図に示すベ
クトル演算装置の他の動作を説明するための図,第10図
はベクトル加算を行うため,従来用いられているベクト
ル演算回路を示すブロック図,第11図は第10図に示すベ
クトル演算回路の動作を説明するための図,第12図は第
10図に示すベクトル演算回路の他の動作を説明するため
の図である。 21……ベクトル演算装置,22……ベクトルデータ生成回
路,23……演算制御回路,25……選択回路,26……第1の
加算回路,27……第2の加算回路,31……第1の選択回
路,32……第2の選択回路。

Claims (2)

    【特許請求の範囲】
  1. 【請求項1】複数のベクトル要素からなる第1及び第2
    のベクトルデータと選択的に第3のベクトルデータとが
    入力され、ベクトル演算を行なうベクトル演算装置であ
    って、前記第3のベクトルデータ及び固定値ゼロが入力
    され、該第3のベクトルデータのベクトル要素及び前記
    固定値のいずれか一方を出力する選択手段と、前記第1
    及び第2のベクトルデータと前記選択手段からの出力ベ
    クトルデータとが入力され、キャリーセーブ加算を行
    い、中間演算結果とキャリーとを出力する第1の加算手
    段と、該中間演算結果とキャリーとが入力され、該中間
    演算結果とキャリーとを加算して、最終演算結果を出力
    する第2の加算手段とを有し、該第2の加算手段からの
    最終演算結果を前記第3のベクトルデータとして前記選
    択手段に入力するようにしたことを特徴とするベクトル
    演算装置。
  2. 【請求項2】複数のベクトル要素からなる第1及び第2
    のベクトルデータと選択的に第3のベクトルデータが入
    力され、ベクトル演算を行なうベクトル演算装置であっ
    て、該第1、第2、及び第3のベクトルデータが入力さ
    れ、キャリーセーブ加算を行い、中間演算結果とキャリ
    ーとを出力する第1の加算手段と、該中間演算結果と前
    記第1のベクトルデータとが入力され、ベクトル要素ご
    とに、前記中間演算結果及び第1のベクトルデータのい
    ずれか一方を選択する第1の選択手段と、前記キャリー
    と前記第2のベクトルデータとが入力され、ベクトル要
    素ごとに、前記キャリー及び第2のベクトルデータのい
    ずれか一方を選択する第2の選択手段と、前記第1及び
    第2の選択手段の出力を受け、加算して、最終演算結果
    を出力する第2の加算手段とを有し、該第2の加算手段
    からの最終演算結果が前記第3のベクトルデータとして
    前記第1の加算手段に入力されることを特徴とするベク
    トル演算装置。
JP63049879A 1987-03-04 1988-03-04 ベクトル演算装置 Expired - Lifetime JPH0746351B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP63049879A JPH0746351B2 (ja) 1987-03-04 1988-03-04 ベクトル演算装置

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP4771187 1987-03-04
JP62-47714 1987-03-04
JP62-47711 1987-03-04
JP4771487 1987-03-04
JP63049879A JPH0746351B2 (ja) 1987-03-04 1988-03-04 ベクトル演算装置

Publications (3)

Publication Number Publication Date
JPS641060A JPS641060A (en) 1989-01-05
JPH011060A JPH011060A (ja) 1989-01-05
JPH0746351B2 true JPH0746351B2 (ja) 1995-05-17

Family

ID=27293056

Family Applications (1)

Application Number Title Priority Date Filing Date
JP63049879A Expired - Lifetime JPH0746351B2 (ja) 1987-03-04 1988-03-04 ベクトル演算装置

Country Status (1)

Country Link
JP (1) JPH0746351B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH04177462A (ja) * 1990-11-08 1992-06-24 Koufu Nippon Denki Kk ベクトル総和演算装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS56168276A (en) * 1980-05-30 1981-12-24 Hitachi Ltd Arithmetic processing unit
JPS5727360A (en) * 1980-07-25 1982-02-13 Fujitsu Ltd Accumulation instruction processing system

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KaiHwang著堀越彌監訳「コンピュータの高速演算方式」P.98−101

Also Published As

Publication number Publication date
JPS641060A (en) 1989-01-05

Similar Documents

Publication Publication Date Title
JPS62286307A (ja) 多重ステージデジタル信号乗算加算装置
US4644488A (en) Pipeline active filter utilizing a booth type multiplier
JP2511914B2 (ja) 複素乗算器及び複素乗算方法
JPS6037513B2 (ja) デジタル回路
US4692888A (en) Method and apparatus for generating and summing the products of pairs of numbers
EP0281132B1 (en) Vector calculation circuit capable of rapidly carrying out vector calculation of three input vectors
JPH0618040B2 (ja) 剰余検査装置
US4528639A (en) Method of and apparatus for generating an inerstitial point in a data stream having an even number of data points
JPH0514936B2 (ja)
JPH05197741A (ja) インターリーブド乗算器累算器
JPH0746351B2 (ja) ベクトル演算装置
JPS63147255A (ja) 複数の直列接続段を有する計算用プロセッサおよびこのプロセッサを応用したコンピュータならびに計算方法
JPH01295365A (ja) デジタル計算用集積回路
US5309385A (en) Vector division processing method and system
JP2864597B2 (ja) ディジタル演算回路
RU2797164C1 (ru) Конвейерный умножитель по модулю
JPS6310263A (ja) ベクトル処理装置
Cirainiera et al. Efficient serial-parallel arrays for multiplication and addition
RU2814657C9 (ru) Конвейерный накапливающий сумматор по модулю
JP3695561B2 (ja) 積和器
JPH011060A (ja) ベクトル演算装置
RU1784969C (ru) Вычислительное устройство
JPS6259828B2 (ja)
JPH0448252B2 (ja)
JPWO2020152826A1 (ja) フーリエ変換装置及びフーリエ変換方法