JPH0319986B2 - - Google Patents

Info

Publication number
JPH0319986B2
JPH0319986B2 JP59143578A JP14357884A JPH0319986B2 JP H0319986 B2 JPH0319986 B2 JP H0319986B2 JP 59143578 A JP59143578 A JP 59143578A JP 14357884 A JP14357884 A JP 14357884A JP H0319986 B2 JPH0319986 B2 JP H0319986B2
Authority
JP
Japan
Prior art keywords
vector
register
maximum
length
vector length
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
JP59143578A
Other languages
English (en)
Other versions
JPS6123275A (ja
Inventor
Sada Watanabe
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
Nippon 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 Nippon Electric Co Ltd filed Critical Nippon Electric Co Ltd
Priority to JP59143578A priority Critical patent/JPS6123275A/ja
Priority to FI852738A priority patent/FI90149C/fi
Priority to EP85108617A priority patent/EP0173040B1/en
Priority to NO852772A priority patent/NO169989C/no
Priority to DE8585108617T priority patent/DE3583264D1/de
Priority to AU44796/85A priority patent/AU578874B2/en
Priority to US06/753,943 priority patent/US4710867A/en
Publication of JPS6123275A publication Critical patent/JPS6123275A/ja
Publication of JPH0319986B2 publication Critical patent/JPH0319986B2/ja
Granted legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/8076Details on data register access
    • G06F15/8084Special arrangements thereof, e.g. mask or switch

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)
  • Image Analysis (AREA)

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はベクトルレジスタを備えベクトルレジ
スタ長の判別を行なうベクトル処理装置に関す
る。
〔従来の技術〕 従来、CRAY−1に代表されるベクトル処理
装置においては、固定長(CRAY−1では64)
のベクトルレジスタを複数個備え、ベクトルレジ
スタ中のベクトルデータを対象として、ベクトル
演算を実行している。前記固定長は、一つのベク
トルレジスタが保持する最大のベクトル長なので
以下最大ベクトル長(MVL)と呼ぶ。
ベクトル演算にあたつては、ベクトル演算を実
行する前に該演算において、実行すべき演算数
(ベクトル要素数)を保持するベクトル長レジス
タと呼ばれる記憶手段に、予じめ実行すべきベク
トル要素数が命令で設定されたあとベクトル演算
が実行される。ベクトル演算ユニツトではベクト
ル長レジスタに設定された回数だけの命令で指定
された演算をベクトルレジスタから次々と読み出
したベクトル要素に対して実行され、演算結果が
ベクトルレジスタまたは主記憶装置に順次格納さ
れる。このとき、FORTRAN等で書かれた元々
のベクトル演算を実行すべきループのループ長
(N)が前記最大ベクトル長(MVL)を超えてい
る場合にはこのループを複数個に分割して、1回
のベクトル演算が最大ベクトル長を超えないよう
にして、複数回、該ベクトル演算が実行される。
この結果、ループ長(N)>最大ベクトル長
(MVL)なるループのベクトル化が行われてい
る。すなわちループ長(N)≦最大ベクトル長
(MVL)ならばループ長(N)がベクトル長レジ
スタにセツトされてベクトル演算が実行される。
この結果、ループ長(N)>最大ベクトル長
(MVL)ならば、ループを〔(N−1)/MVL〕
+1個に分割し(N−1)/MVLの余りに1を
加えた値が、まずベクトル長レジスタにセツトさ
れて第1回目のベクトル演算が実行される。次は
最大ベクトル長(MVL)がベクトル長レジスタ
にセツトされて、残りの〔(N−1)/MVL〕回
のベクトル演算が実行される。(〔x〕はxを超え
ない最大の整数。)このようにしてループ長(N)
>最大ベクトル長(MVL)なるループは、最大
ベクトル長を固定長とするベクトルレジスタを持
つベクトル処理装置においてもベクトル化でき
る。このときCRAY−1のような従来装置では、
ベクトルレジスタの最大長が固定であるのみなら
ず、定数として、オブジエクトプログラム中で設
定しておく必要がある。このことは、例えば、将
来、VLSI技術等で高速大容量の記憶素子が実現
されるとより大容量のベクトルレジスタを処理装
置内に備えることが可能となり、このとき必然的
に、ベクトルレジスタの最大長も大きくなる。
〔発明が解決しようとする問題点〕
しかし、従来装置では、最大ベクトル長がオブ
ジエクトプログラム中に定数として設定されてい
るので、より小容量のベクトルレジスタ用に作ら
れた従来のプログラムを再コンパイルすることな
く大容量ベクトルレジスタを有効に利用すること
はできない。また、ベクトル処理装置を製品化す
る場合に、性能/価格比を最適に、ユーザにより
適した製品とするために、ベクトルレジスタの容
量により、複数個のモデルを設定する場合もあ
る。このとき、モデル間で、最大ベクトル長が通
常は異なるが、従来装置では前記同様、最大ベク
トル長(MVL)が定数となつているため、モデ
ル間のオブジエクトレベルの互換性がない、とい
う欠点がある。
本発明の目的は上述の欠点を解決し、ベクトル
レジスタの容量が異なるモデル間のオブジエクト
レベルの互換性を与えるようにしたベクトル処理
装置を提供することにある。
〔問題点を解決するための手段〕
本発明の処理装置は命令およびオペランドを記
憶する主記憶装置と、命令でアクセス可能な少な
くとも1個以上のスカラレジスタと、順序づけら
れた複数個のベクトル要素をそれぞれ保持する複
数個のベクトルレジスタと、該ベクトルレジスタ
の内容を演算する少なくとも一つ以上の演算ユニ
ツトと、該演算ユニツトが実行すべき演算要素数
を保持する少なくとも一つ以上のベクトル長保持
手段とを備えたベクトル処理装置において、前記
ベクトルレジスタの保持しうる最大ベクトル長を
記憶し、かつ、外部から設定可能な最大ベクトル
長記憶手段と、該最大ベクトル長記憶手段からの
読出し命令検出に応答して該最大ベクトル長記憶
手段の内容を、前記スカラレジスタもしくは主記
憶装置に読出す制御手段とを備えたことを特徴と
する。
〔実施例〕
次に本発明について、図面を参照して詳細に説
明する。
第1図を参照すると、本発明の一実施例では8
個のベクトルレジスタ1を備え、各ベクトルレジ
スタ1は0番地から63番地までの順序付けられた
64個のベクトル要素を保持することができるので
最大ベクトル長(MVL)は64である。各ベクト
ルレジスタ1は加減算器などの演算ユニツト3に
接続されている。ベクトル長レジスタ(VL)2
は、各演算ユニツト3が実行すべきベクトル演算
要素数を保持するレジスタであり、演算ユニツト
3に接続されている。前記レジスタ2は命令で内
容を設定することができ、本実施例ではスカラレ
ジスタ4を通して内容が設定される。
本実施例のベクトル処理装置では命令が主記憶
装置5から読み出され、命令レジスタ6に設定さ
れ、デコーダ10で解読される。該命令がベクト
ル演算命令であると解読結果が適当な演算ユニツ
ト3に送出される。該演算ユニツト3では、命令
で指定されたベクトルレジスタ1からのベクトル
要素が順次読み出され、指定された演算が実行さ
れて、演算結果のベクトル要素が次々とベクトル
レジスタに格納される。このとき実行されるベク
トル演算数は予じめベクトル長(VL)レジスタ
2に設定されている回数だけ実行される。
スカラ演算やアドレス計算に使用するスカラレ
ジスタ4は16個あり、32ビツトの長さを持ち、ベ
クトルレジスタ1同様、演算ユニツト3に接続さ
れている。
第1図の最大ベクトル長レジスタ(MVR)7
は、前記ベクトルレジスタ1の最大ベクトル長を
保持するレジスタであり、本実施例では、最大ベ
クトル長は64なので、“64”が固定的に設定され
ている。設定手段8は第1図に示したようにジヤ
ンパ線、スイツチであつてもよく、あるいは保
守・診断用のサービスプロセツサ((SVP)でも
よい。このような設定手段8以外に、スキヤンパ
スのような特別なパスを通して設定してもよく、
ベクトルレジスタの構成によつて、一意に定まる
値が設定される。
第1図において、主記憶装置5から命令レジス
タ6に命令が取出され、該命令が最大ベクトル長
レジスタ7からスカラレジスタ4への読み出し命
令であると命令のビツト8−11で指定されるスカ
ラレジスタ4の内容が選択回路9によつて選択さ
れる。そのあとで最大ベクトル長レジスタ7の内
容が信号線lを介して選択されたスカラレジスタ
4にロードされる。本実施例では最大ベクトル長
レジスタ7の内容は、スカラレジスタ4に読み出
されるものとしたが、最大ベクトル長レジスタ7
の内容を主記憶装置5に直接転送するよう構成し
てもよい。
次に、最大ベクトル長レジスタ7の内容を主記
憶制御装置11を通して主記憶装置5に転送する
よう構成した第2の実施例を第2図を参照して詳
細に説明する。この場合最大ベクトル長レジスタ
7を転送するよう指示した命令のビツト12−31で
は主記憶装置5のアドレスを指定する。
第3A図は第1図に示した実施例による
FORT−RANのDOループのベクトル制御部分の
ソースプログラムを示し、第3B図はそのオブジ
エクトプログラムを示す。第3B図において←は
右辺の内容を左辺の記憶手段に設定(ロード)す
ることを示す。
第3B図においてステツプ(1)では第3A図に示
したソースプログラムのループ長Nがスカラレジ
スタS1にロードされている。ステツプ(2)ではベ
クトルレジスタの最大ベクトル長、すなわち最大
ベクトル長レジスタの内容である“64”がスカラ
レジスタS2にロードされる。ステツプ(3)では数
値N−1がレジスタS3にロードされている。ス
テツプ(4)ではスカラレジスタS2の内容から1が
差し引かれている、つまり、最大ベクトル長
(MVL)−1が求められる。ステツプ(5)ではスカ
ラレジスタS3およびS4の論理積をとつてスカ
ラレジスタS5にロードされる。ステツプ(3)から
ステツプ(5)の一連の処理では通常、最大ベクトル
長(MVL)は2のべき乗であることを利用して、
(N−1)/MVLの剰余が求められている。ステ
ツプ(6)では前記剰余に1が加えられて、加算結果
がスカラレジスタS6にロードされる。本実施例
では、アドレス情報はバイトを単位としており、
かつ、一つのベクトルデータは4バイト長であ
る。従つて、ステツプ(7)ではスカラレジスタS6
の内容が2ビツト左にシフト、すなわち、4倍さ
れている。これは、ループを分割したときのベク
トル要素間の距離が求められていることに相当す
る。ステツプ(8)ではステツプ(7)と同様最大ベクト
ル長時のベクトル要素間の距離が求められてい
る。ステツプ(9)では最初のベクトル要素の相対ベ
ースアドレスがセツトされている。ここまでが第
3A図のDOループの前処理部分である。ステツ
プ(10)ではスカラレジスタS6の内容がベクトル長
レジスタ2にロードされる。スカラレジスタS6
の内容は前記(N−1)/MVLの剰余+1また
は最大ベクトル長(MVL)のいずれかである。
ステツプ(11)では次のループの繰返しのため
に、ベクトルの相対ベースアドレスが求められ
る。ステツプ(12)ではループ間のベクトル要素
間距離がスカラレジスタS7に移送される。ステ
ツプ(13)ではスカラレジスタS1の内容からス
カラレジスタS6の内容が差し引かれて演算すべ
き残りのベクトル要素数が求められている。ステ
ツプ(14)ではスカラレジスタS2、すなわち、
最大ベクトル長MVLがスカラレジスタS6に移
送されている。ステツプ(15)では演算すべき残
りのベクトル要素があるかどうかが判定され、残
りがあればLOOPへ分岐してさらにループが繰返
される。
この実施例においては、第3B図から明らかな
ように、ベクトルレジスタの保持しうる最大ベク
トル長を定数とするオブジエクトプログラムとは
なつていないので、ベクトルレジスタの最大長が
異なるモデルであつても、同一のオブジエクトプ
ログラムが使用できる。
発明の効果 本発明には外部から設定可能なベクトルレジス
タの保持しうる最大ベクトル長を記憶する手段を
設け、該記憶手段の内容を命令によつて、プログ
ラムに見えるレジスタもしくは主記憶に読み出す
ように構成することにより、ベクトル長が異なる
ベクトルレジスタを有するベクトル処理装置間で
オブジエクトレベルの互換性をプログラムに与え
るという効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例を示す図、第2図は
本発明の他の実施例を示す図、第3A図は
FORTRANのDOループのループ制御部分のコー
デイング例を示す図および第3B図は本発明によ
る場合の第3A図のに対応するオブジエクトプロ
グラムの例を示す図である。 1……ベクトルレジスタ、2……ベクトル長レ
ジスタ、3……演算ユニツト、4……スカラレジ
スタ、5……主記憶装置、6……命令レジスタ、
7……最大ベクトル長レジスタ、8……設定手
段、9……選択回路、10……デコーダ、11…
…主記憶制御装置。

Claims (1)

  1. 【特許請求の範囲】 1 命令およびオペランドを記憶する主記憶装置
    と、命令でアクセス可能な少なくとも1個以上の
    スカラレジスタと、順序づけられた複数個のベク
    トル要素を保持する複数個のベクトルレジスタ
    と、これらベクトルレジスタの内容を演算する少
    なくとも一つ以上の演算ユニツトと、該演算ユニ
    ツトが実行すべき演算要素数を保持する少なくと
    も一つ以上のベクトル長保持手段とを備えたベク
    トル処理装置において、 前記ベクトルレジスタの保持しうる最大のベク
    トル長の値を記憶し、かつ、外部から設定可能な
    最大ベクトル長記憶手段と、該最大ベクトル長記
    憶手段からの読出し命令検出に応答して該最大ベ
    クトル長記憶手段の内容を前記スカラレジスタに
    読出す制御手段とを備えたことを特徴とするベク
    トル処理装置。 2 特許請求の範囲第1項記載のベクトル処理装
    置において、前記最大ベクトル長記憶手段からの
    読出し命令検出に応答して、前記最大ベクトル長
    記憶手段の内容を前記主記憶装置に読出す制御手
    段を備えたことを特徴とするベクトル処理装置。
JP59143578A 1984-07-11 1984-07-11 ベクトル処理装置 Granted JPS6123275A (ja)

Priority Applications (7)

Application Number Priority Date Filing Date Title
JP59143578A JPS6123275A (ja) 1984-07-11 1984-07-11 ベクトル処理装置
FI852738A FI90149C (fi) 1984-07-11 1985-07-10 Vektorbehandlingssystem
EP85108617A EP0173040B1 (en) 1984-07-11 1985-07-10 Vector processing system
NO852772A NO169989C (no) 1984-07-11 1985-07-10 Vektorbehandlingssystem
DE8585108617T DE3583264D1 (de) 1984-07-11 1985-07-10 Vektorverarbeitungssystem.
AU44796/85A AU578874B2 (en) 1984-07-11 1985-07-11 Vector processing system
US06/753,943 US4710867A (en) 1984-07-11 1985-07-11 Vector processing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP59143578A JPS6123275A (ja) 1984-07-11 1984-07-11 ベクトル処理装置

Publications (2)

Publication Number Publication Date
JPS6123275A JPS6123275A (ja) 1986-01-31
JPH0319986B2 true JPH0319986B2 (ja) 1991-03-18

Family

ID=15341996

Family Applications (1)

Application Number Title Priority Date Filing Date
JP59143578A Granted JPS6123275A (ja) 1984-07-11 1984-07-11 ベクトル処理装置

Country Status (7)

Country Link
US (1) US4710867A (ja)
EP (1) EP0173040B1 (ja)
JP (1) JPS6123275A (ja)
AU (1) AU578874B2 (ja)
DE (1) DE3583264D1 (ja)
FI (1) FI90149C (ja)
NO (1) NO169989C (ja)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0814817B2 (ja) * 1986-10-09 1996-02-14 株式会社日立製作所 自動ベクトル化方法
JPH03150636A (ja) * 1989-11-08 1991-06-27 Matsushita Electric Ind Co Ltd コンパイル方法
US5742842A (en) * 1992-01-28 1998-04-21 Fujitsu Limited Data processing apparatus for executing a vector operation under control of a master processor
US7308559B2 (en) * 2000-02-29 2007-12-11 International Business Machines Corporation Digital signal processor with cascaded SIMD organization
US6665790B1 (en) 2000-02-29 2003-12-16 International Business Machines Corporation Vector register file with arbitrary vector addressing
JP4203979B2 (ja) * 2000-08-02 2009-01-07 富士通株式会社 パケット処理装置
US6941548B2 (en) * 2001-10-16 2005-09-06 Tensilica, Inc. Automatic instruction set architecture generation
US6961888B2 (en) * 2002-08-20 2005-11-01 Flarion Technologies, Inc. Methods and apparatus for encoding LDPC codes
JP2004152049A (ja) * 2002-10-31 2004-05-27 Renesas Technology Corp データ処理装置
US7543119B2 (en) * 2005-02-10 2009-06-02 Richard Edward Hessel Vector processor
US8356159B2 (en) * 2008-08-15 2013-01-15 Apple Inc. Break, pre-break, and remaining instructions for processing vectors
US8933954B2 (en) * 2011-03-23 2015-01-13 Qualcomm Incorporated Register allocation for graphics processing
CN102968379B (zh) * 2012-10-24 2015-05-06 无锡江南计算技术研究所 一种寄存器分配方法、系统及处理器
US11544214B2 (en) 2015-02-02 2023-01-03 Optimum Semiconductor Technologies, Inc. Monolithic vector processor configured to operate on variable length vectors using a vector length register

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
JPS6055864B2 (ja) * 1980-07-21 1985-12-06 株式会社日立製作所 ベクトルプロセツサ
JPS59112364A (ja) * 1982-12-20 1984-06-28 Fujitsu Ltd ベクトル演算処理方式
JPS6069746A (ja) * 1983-09-26 1985-04-20 Fujitsu Ltd ベクトル・デ−タ処理装置の制御方式

Also Published As

Publication number Publication date
FI90149B (fi) 1993-09-15
NO169989C (no) 1992-08-26
EP0173040A3 (en) 1988-01-07
FI90149C (fi) 1993-12-27
AU578874B2 (en) 1988-11-03
JPS6123275A (ja) 1986-01-31
FI852738A0 (fi) 1985-07-10
EP0173040A2 (en) 1986-03-05
EP0173040B1 (en) 1991-06-19
US4710867A (en) 1987-12-01
NO169989B (no) 1992-05-18
NO852772L (no) 1986-01-13
FI852738L (fi) 1986-01-12
DE3583264D1 (de) 1991-07-25
AU4479685A (en) 1986-01-16

Similar Documents

Publication Publication Date Title
US7467288B2 (en) Vector register file with arbitrary vector addressing
JPH0319986B2 (ja)
KR880011681A (ko) 메모리연결형 파면어레이 프로세서
US4771380A (en) Virtual vector registers for vector processing system
JPS6058490B2 (ja) 命令ブランチ機構
JPH0248931B2 (ja)
US5692163A (en) Process system which generates sets of output data from sets of predetermined input data with duplicate data
JPS5826584B2 (ja) デ−タ処理装置
JPH0319985B2 (ja)
WO1992017847A1 (en) Central processor
JPH0319983B2 (ja)
JPS59114677A (ja) ベクトル処理装置
JPH0319984B2 (ja)
JPS6150359B2 (ja)
JP3145545B2 (ja) メモリアクセス装置
JPS61500992A (ja) コンピュ−タシステムにおける、またはそれに関する改良
JP3771682B2 (ja) ベクトル処理装置
JPH07110769A (ja) Vliw型計算機
JP2895892B2 (ja) データ処理装置
JP2743947B2 (ja) マイクロプログラム制御方式
JP3693873B2 (ja) マスクビット数演算装置、ベクトル処理装置、情報処理装置
JPH0511328B2 (ja)
JPH11143710A (ja) 処理対象値入力装置及びプログラム変換装置
JPS59212972A (ja) メモリの有効利用方式
JPH04227589A (ja) データフロープログラムの割付け装置および割付け方法

Legal Events

Date Code Title Description
LAPS Cancellation because of no payment of annual fees