JPH036546B2 - - Google Patents

Info

Publication number
JPH036546B2
JPH036546B2 JP57028905A JP2890582A JPH036546B2 JP H036546 B2 JPH036546 B2 JP H036546B2 JP 57028905 A JP57028905 A JP 57028905A JP 2890582 A JP2890582 A JP 2890582A JP H036546 B2 JPH036546 B2 JP H036546B2
Authority
JP
Japan
Prior art keywords
register
index
data
address
contents
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
Application number
JP57028905A
Other languages
English (en)
Other versions
JPS58146969A (ja
Inventor
Isamu Yamazaki
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.)
Toshiba Corp
Original Assignee
Tokyo Shibaura Electric Co Ltd
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 Tokyo Shibaura Electric Co Ltd filed Critical Tokyo Shibaura Electric Co Ltd
Priority to JP57028905A priority Critical patent/JPS58146969A/ja
Priority to EP83300817A priority patent/EP0088544B1/en
Priority to DE8383300817T priority patent/DE3373945D1/de
Publication of JPS58146969A publication Critical patent/JPS58146969A/ja
Priority to US07/098,313 priority patent/US4823258A/en
Publication of JPH036546B2 publication Critical patent/JPH036546B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8053Vector processors
    • G06F15/8061Details on data memory access

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)

Description

【発明の詳細な説明】 〔発明の技術分野〕 本発明は科学技術計算でしばしば必要とされる
ベクトルやマトリクスの計算を高速に行なうプロ
セツサに関する。
〔発明の技術的背景〕
科学技術計算では少し規模が大きくなるとベク
トルやマトリクスに対する計算を必要とし、計算
機時間がかかる。これらのベクトルやマトリクス
の各要素は通常、計算機のメモリ中で、そのイン
デツクスの順に一定のアドレス間隔で格納される
ことが多い。そこでこのようなデータの集合を
“配列”と呼ぶ。ベクトルプロセツサ(またはア
レイプロセツサ)はこのような、一定のアドレス
間隔で格納されているデータに対して、パイプラ
イン技術を用いて、連続的に高速に同一種類の演
算を行なうよう構成されており、これによつて、
配列に対する計算のスピードを上げようとするも
のである。すなわち従来のベクトルプロセツサは
次のような計算を高速に実行することができる。
(例 1) DO10I=1100 A(I)=B(I)※C(I) 10 CONTINUE (例 2) DO 20 J=1,99,2 X(I,J)=Y(I,J)+Z(J) 20 CONTINUE しかし実際の応用では次のような要素毎に計算
内容が異なる場合がかなり頻繁に現われる。
(例 3) DO 30 I=1100 IF(G(I).GT.0.0) A(I)=A(I)+C(I) IF(G(I).LE.0.0) A(I)=A(I)※D(J.I) 30 CONTINUE この場合には、B(I)の正/負(または零)
により演算内容が異なり、かつオペランドが異つ
ているので、パイプラインがその都度中断し、そ
の結果従来のベクトルプロセツサでは高速に処理
できないという問題があつた。
〔発明の目的〕
本発明は上記事情に鑑みて為されたものであ
り、その目的は指定されたデータの性質によつて
演算内容が異なる配列の計算についても高速化し
たインデツクス限定連続演算ベクトルプロセツサ
を提供することにある。
〔発明の概要〕
上記欠点を克服するため、例えば上記(例3)
を次のように考えなおす。
(第1ステツプ) POSG={I|G(I)>0}、 NEGG={I|G(I)≦0} (第2ステツプ) FOR Ie POSG, A(I)=A(I)+C(I) (第3ステツプ) FOR IeNEGG, A(I)=A(2)※D(J,I) ここでPOSGはG(I)>0であるようなインデツ
クスIの集合、NEGGはG(I)≦0であるよう
なインデツクスIの集合である。本発明のベクト
ルプロセツサは、(第1ステツプ)のようなイン
デツクス集合を生成し記憶する機能と、(第2ス
テツプ),(第3ステツプ)のように、指定したイ
ンデツクス集合に属するインデツクス値に対して
のみオペランドアクセスを連続して行なう機能と
を備えることによつて、このような場合でもパイ
プライン処理の効率を失なわないようにしたもの
である。
〔発明の効果〕
科学技術計算で何かの臨界曲線の両側である量
の評価式が異なるような場合が非常に多く、この
ようなアプリケーシヨンでは従来のベクトルプロ
セツサは非常に能率の悪いものであつたが、本発
明のベクトルプロセツサにより、そのような場合
でも問題なく高効率で演算を実行できる。
また、本発明のベクトルプロセツサは、ある式
を評価すると同時に、あらかじめ指定した性質に
よりその評価結果を分類し、インデツクス集合を
発生することができるので、判断分岐命令のよう
な効率の悪いプログラムをほとんど用いずに関数
演算用にプログラムできる。
またスパースマトリクスの場合、マトリクスと
ベクトルの積の計算などで零要素との積和をでき
るだけ行なわないようにすることによつて、計算
を高速化することができるが、本発明のベクトル
プロセツサでは非零要素のみを選択して演算する
ことが容易にできるので、能率的にスパースマト
リクスを取りあつかうことができる(従来は極め
て困難であつた)。
〔発明の実施例〕
第1図に本発明の一実施例を示す。図におい
て、10はベクトル演算部、20はオペランドア
ドレス計算部、30はインデツクス計算部、50
はこれらを制御する制御部である。
ベクトル演算部10は、被演算データ、演算結
果データ、その他のデータを収容するデータメモ
リ11、レジスタB12、レジスタB13、レジ
スタC14、ALU15、レジスタA16、及び
アドレスレジスタDA17を有し、指定されたデ
ータすなわちベクトル又はマトリツクス(以下配
列)の演算を実行する。
オペランドアドレス計算部30は、演算に必要
なオペランドすなわちデータメモリ11内におけ
る配列のアドレスを計算するもので、乗数の値を
収容するレジスタMA21、レジスタMB22、
レジスタMC23、ベースの値を収容するレジス
タBA24、レジスタBB25、レジスタBC2
6、乗算器27、加算器28を有する。
インデツクス計算部30は、上述した(第1ス
テツプ)に示すようなインデツクス集合を生成し
記憶するもので、インデツクスメモリ31、レジ
スタ(V)32、レジスタW33、レジスタIB0
34、レジスタIB135、レジスタI36、レジ
スタI′37、加算器38、アドレスレジスタIA3
9、+1加算器40、終了判定回路41及び正/
負判定回路42を有する。このベクトルプロセツ
サは基本的に次の演算を行なうことができる。
FOR I∈UA(I)=FUNC(B(
I),C(I))V={I|P(A(I))} V={L|P(A(I))} W={I|>P(A(I))} ここにFUNC(X,Y)はALU15のもつ2項ス
カラ−演算(加減乗除算など)、P(X)は次の3
種類の命題関数:X>0の時真、X≧0の時
真、X=0の時真、のいずれか。
U,V,Wはインデツクスメモリ31に、A
(I),B(I),C(I)はデータメモリ11に格
納される。命題関数P(X)は判定回路42によ
つて判定される。A(I),B(I),C(I)はベ
クトル(すなわち1次元の配列)の時は、データ
メモリ11のアドレス順に各要素を格納し、従つ
て、その最初の要素(A(0)等)のアドレスを
BAとすると、一般にA(I)のアドレスは、BA
+Iとなる。すなわちベクトルの時はMA,
MB,MCは1となる。一方A(I),B(I),C
(I)が2次元以上の配列の一部、例えばA(I)
が3次元配列AA(X,Y,Z)でX=J,Y=
K,Z=Iなどである時、AA(0,0,0)の
アドレスをBA′とするとA(I)=AA(J,K,
I)のアドレスはBA′+J+XMAX※K+XMAX
Iとなるから、BA′+J+XMAX※Kを改ためて
BAとし、XMAX※YMAXをMAとすると、BA+
MA※Iとなる。
このようにオペランドアドレス計算部20では
3組の配列A,B,Cに対し、インデツクス値I
またはI′と乗数MA,MB,MCとベースの値BA,
BB,BCから、乗算器27と加算器28を用い
て、実際のデータメモリアドレスDAを計算する
ことができる。
演算を行うべき配列の部分集合は、そのインデ
ツクスIの集合として、インデツクスメモリ31
に記憶させるがその形式はインデツクス・チエイ
ンの形式である。ある集合(例えばPOSG)とそ
の補集合(NEGG)とは同時に発生させること
ができ、1つのインデツクスベクトルエリアに2
本のチエインとして記憶される(第2図参照)。
このインデツクスベクトルエリアの先頭番地を
IBとすると、インデツクスIに対応するインデ
ツクスベクトル要素のアドレスはIB+Iであり、
そこには、このIと同一グループの次のIの値が
格納されている。第2図はIの降順にチエインが
形成されているが、昇順でもまたランダムでもか
まわない。最後のインデツクス値の対応箇所には
終端記号(a)が書き込まれる。
このような部分集合(インデツクスチエイン)
の生成方法(第1ステツプ)の一例を説明する。
Vレジスタ32及びWレジスタ33に終端記
号(ロ)をセツトする。Iレジスタ36に0を
セツトする(又はI=X)とする。
データメモリ11からデータG(I)をRead
する。
判定回路42により、データG(I)の判定
を行なう。
(i) G(I)>0ならば、Vレジスタ32の内容
をインデツクスメモリ31のIB1+I番地に
書込み、Vレジスタ32にIレジスタの内容
をセツトする。
(ii) G(I)≦0ならば、Wレジスタ33の内容
をインデツクスメモリ31のIB1+I番地に
書込み、Wレジスタ33にIレジスタ36の
内容をセツトする。
+1加算器40によりIレジスタ36の内容
を+1する(またはインデツクスメモリ31の
IB0+I番地の内容をIレジスタ36にセツト
する)。
終了判定回路41により、Iレジスタ36の
内容がIの最大値(または終端記号)であれは
次のへ、そうでなければへもどる。
POSG=V,NEGG=Wとする。
すなわちVレジスタ32の内容、第2図では
“9”をPOSGとし、Wレジスタ33の内容、第
2図では“10”をNEGGとする。,,の
ステツプで( )内を用いた時は部分集合の部分
集合つまり積集合を求めることができる。(Xか
つG(I)>0など) 次に第2ステツプではI∈POSGに対する演算
を行なう。この場合、まずPOSGすなわち“9”
をIレジスタ36にセツトし、Iの更新タイミン
グ(第3図の(※)で、I+IB0をアドレスとし
てインデツクスメモリ31をReadし、読出した
インデツクス値をIレジスタ36にセツトするよ
うに動作する。これにより、G(I)>0であるI
の値のみが次々とIレジスタ36にセツトされ、
それに対し同一演算FUNCがALU15で行なわ
れる。
この動作を第3図を用いて説明する。本実施例
ではIからはじめて5段のパイプライン制御を行
なつている。第3図では第(n)サイクルから第
(n)+6)サイクルのみを示している。
第(n)サイクルの初めでIレジスタ36には
“5”がセツトされると、オペランドアドレス計
算部20はデータB(5)のアドレスを計算する。
すなわち、乗算器27はIレジスタ36の値5と
MBレジスタ22の乗数を乗算し、この乗算結果
にBBレジスタ25のベースを加える。この結果
得られた値BB+5・MBは第(n+1)サイク
ルの初めでDAレジスタ17にセツトさる。次に
データメモリ11のアドレスBB+5・MBの内
容すなわちデータB(5)をReadし、第(n+2)
サイクルの初めでBレジスタ12にセツトされた
後、第(n+3)サイクルの初めでB′レジスタ
13にセツトされる。
一方、同様にして第(n+1)サイクルでMC
レジスタ23及びBCレジスタ26の内容を用い
てオペランドアドレス計算部20はデータC(5)の
アドレスBC+5・MCを求め、第(n+2)サ
イクルの初めでDAレジスタ17にセツトする。
次にDAレジスタ17の内容で指定されるデータ
メモリ11の内容すなわちデータC(5)がReadさ
れ、第(n+3)サイクルの初めでCレジスタ1
4にセツトされる。
ALU15はFUNCの実行に3サイクル(第
(n+3)〜(n+5)サイクル)要し、この間
B′レジスタ13及びCレジスタ14の内容は保
持されている。
ALU15の演算結果はデータA(5)としてデー
タメモリ11に収容する必要上、第(n+3)サ
イクルの初めでIの値を更新(“5”から“3”
へ)する直前にIレジスタ36の内容はI′レジス
タ37にセツトされる。このI′レジスタ37に再
セツトされた値“5”を用いて、第(n+5)サ
イクルでオペランドアドレス計算部20はデータ
A(5)のアドレスをMAレジスタ21及びBAレジ
スタ24の内容を用いて算出し、第(n+5)サ
イクルの初めでDAレジスタ17にセツトする。
しかして、第(n+6)サイクルの初めでALU
の演算結果(FUNC(13(5),C(5))がAレジスタ
A(5)としてデータメモリ11にWriteされる。
このように、ALU15によるFUNCの実行が
行なわれる3サイクル間、その第1サイクルは直
前の演算結果のデータメモリ11への書込みとオ
ーバーラツプし、第2、第3サイクルでは夫々次
に演算すべきオペランドの読出しとオーバーラツ
プしている。更にこれらデータメモリ11への書
込み又は読出しとオーバーラツプして、夫々次の
サイクルで必要となるオペランドのアドレスがオ
ペランドアドレス計算部20により実行されてい
る。
このようにしてI∈POSGの演算が実行され、
Iレジスタ36に終端マーク(m)がセツトされ
ると終了判定回路41はこれを検出し、Iレジス
タ36にNEGGすなわち“10”をセツトし、以
下同様にしてI∈NEGGの演算が実行される。
なお上記実施例ではインデツクス値のグループ
を2組に分けたが一般に複数組に分けその夫々に
ついて異なる演算を実行してもよい。また、上記
実施例ではデータメモリ内の値G(I)に基づい
てインデツクスのグループ分けを行つているが、
ALUの演算結果を用いることもできる。
【図面の簡単な説明】
第1図は本発明の一実施例を示す図、第2図及
び第3図は本発明の一実施例を説明するための図
である。 10…ベクトル演算器、20…オペランドアド
レス計算部、30…インデツクス計算部、50
制御部。

Claims (1)

    【特許請求の範囲】
  1. 1 データが格納されているデータメモリから、
    あらかじめ指定された順序で連続して読出される
    データに対し、指定された同一種の演算を連続し
    て高速に実行するベクトルプロセツサにおいて、
    上記演算結果またはデータメモリからの読出デー
    タに対しあらかじめ指定された性質の有無を判定
    する判定手段と、上記判定の対象である演算結果
    または読出データのインデツクス値を上記判定手
    段の判定結果に応じて複数個のグループに分けて
    記憶する記憶手段と、この記憶手段から指定され
    たグループのインデツクス値を連続して読出す手
    段と、前記読出されたインデツクス値から指定ベ
    クトルまたはマトリクスの要素のデータメモリ中
    のアドレスを計算する手段とを有することを特徴
    とするインデツクス限定連続演算ベクトルプロセ
    ツサ。
JP57028905A 1982-02-26 1982-02-26 インデツクス限定連続演算ベクトルプロセツサ Granted JPS58146969A (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP57028905A JPS58146969A (ja) 1982-02-26 1982-02-26 インデツクス限定連続演算ベクトルプロセツサ
EP83300817A EP0088544B1 (en) 1982-02-26 1983-02-17 Index limited continuous operation vector processor
DE8383300817T DE3373945D1 (en) 1982-02-26 1983-02-17 Index limited continuous operation vector processor
US07/098,313 US4823258A (en) 1982-02-26 1987-09-18 Index limited continuous operation vector processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP57028905A JPS58146969A (ja) 1982-02-26 1982-02-26 インデツクス限定連続演算ベクトルプロセツサ

Publications (2)

Publication Number Publication Date
JPS58146969A JPS58146969A (ja) 1983-09-01
JPH036546B2 true JPH036546B2 (ja) 1991-01-30

Family

ID=12261418

Family Applications (1)

Application Number Title Priority Date Filing Date
JP57028905A Granted JPS58146969A (ja) 1982-02-26 1982-02-26 インデツクス限定連続演算ベクトルプロセツサ

Country Status (4)

Country Link
US (1) US4823258A (ja)
EP (1) EP0088544B1 (ja)
JP (1) JPS58146969A (ja)
DE (1) DE3373945D1 (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5157778A (en) * 1986-08-20 1992-10-20 Digital Equipment Corporation Method and apparatus for circuit simulation using parallel processors including memory arrangements and matrix decomposition synchronization
US5167018A (en) * 1986-09-24 1992-11-24 Daikin Industries, Ltd. Polygon-filling apparatus
JPS63251835A (ja) * 1987-04-08 1988-10-19 Hitachi Ltd ベクトル処理装置
JP2512778B2 (ja) * 1988-01-13 1996-07-03 株式会社日立製作所 演算処理方法
JPH0766324B2 (ja) * 1988-03-18 1995-07-19 三菱電機株式会社 データ処理装置
GB8808569D0 (en) * 1988-04-12 1988-05-11 Texas Instruments Ltd Improvements in/relating to digital signal processors
US5257394A (en) * 1988-10-18 1993-10-26 Japan Atomic Energy Research Institute Logical expression processing pipeline using pushdown stacks for a vector computer
JPH02109160A (ja) * 1988-10-18 1990-04-20 Japan Atom Energy Res Inst ベクトル計算機用演算装置
EP0369396A3 (en) * 1988-11-14 1992-10-07 Nec Corporation Arithmetic processing unit capable of performing vector/matrix processing
US5179530A (en) * 1989-11-03 1993-01-12 Zoran Corporation Architecture for integrated concurrent vector signal processor
JPH0772864B2 (ja) * 1990-05-11 1995-08-02 パイオニア株式会社 ディジタル信号プロセッサ
KR100331565B1 (ko) * 1999-12-17 2002-04-06 윤종용 매트릭스 연산 장치 및 매트릭스 연산기능을 갖는 디지털신호처리 장치
JP3940714B2 (ja) * 2003-09-25 2007-07-04 株式会社東芝 演算装置、および、暗号・復号演算装置
US11113028B2 (en) * 2019-07-25 2021-09-07 Arm Limited Apparatus and method for performing an index operation

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3827031A (en) * 1973-03-19 1974-07-30 Instr Inc Element select/replace apparatus for a vector computing system
US4025771A (en) * 1974-03-25 1977-05-24 Hughes Aircraft Company Pipe line high speed signal processor
JPS5148937A (en) * 1974-10-25 1976-04-27 Fujitsu Ltd Kiokusochi niokeru junjoseigyohoshiki
US4051551A (en) * 1976-05-03 1977-09-27 Burroughs Corporation Multidimensional parallel access computer memory system
US4075704A (en) * 1976-07-02 1978-02-21 Floating Point Systems, Inc. Floating point data processor for high speech operation
US4149242A (en) * 1977-05-06 1979-04-10 Bell Telephone Laboratories, Incorporated Data interface apparatus for multiple sequential processors
JPS6024985B2 (ja) * 1978-08-31 1985-06-15 富士通株式会社 デ−タ処理方式
US4435758A (en) * 1980-03-10 1984-03-06 International Business Machines Corporation Method for conditional branch execution in SIMD vector processors

Also Published As

Publication number Publication date
US4823258A (en) 1989-04-18
DE3373945D1 (en) 1987-11-05
EP0088544A1 (en) 1983-09-14
JPS58146969A (ja) 1983-09-01
EP0088544B1 (en) 1987-09-30

Similar Documents

Publication Publication Date Title
US5226171A (en) Parallel vector processing system for individual and broadcast distribution of operands and control information
US3828175A (en) Method and apparatus for division employing table-lookup and functional iteration
CN115552523B (zh) 使用存储器内处理的基于计数器的乘法
JPH036546B2 (ja)
JPH0727456B2 (ja) 浮動小数点演算装置
CA2189148A1 (en) Computer utilizing neural network and method of using same
US4150434A (en) Matrix arithmetic apparatus
Iwata et al. An artificial neural network accelerator using general purpose 24 bit floating point digital signal processors
EP4018388B1 (en) Neural network training with decreased memory consumption and processor utilization
JPH0145649B2 (ja)
CN118839094A (zh) 用支持卷积的单元进行矩阵乘的方法、系统、设备和介质
US3290493A (en) Truncated parallel multiplication
CN1047152A (zh) 高速数字处理器
US3641331A (en) Apparatus for performing arithmetic operations on numbers using a multiple generating and storage technique
US3973243A (en) Digital image processor
CA2293953A1 (en) A method and system for implementing a coprocessor
US5072419A (en) Binary tree multiplier constructed of carry save adders having an area efficient floor plan
US3500027A (en) Computer having sum of products instruction capability
Cariow An algorithm for dividing two complex numbers
KR102868915B1 (ko) Mac 어레이 및 이를 포함하는 하드웨어 가속기
US20230222315A1 (en) Systems and methods for energy-efficient data processing
JP2605792B2 (ja) 演算処理装置
JPH02304676A (ja) ディジタル信号処理装置
CN119623543A (zh) 一种基于权值拓扑连接的大模型计算装置及其方法
Roch An environment for parallel algebraic computation