JPH0340422B2 - - Google Patents

Info

Publication number
JPH0340422B2
JPH0340422B2 JP60014768A JP1476885A JPH0340422B2 JP H0340422 B2 JPH0340422 B2 JP H0340422B2 JP 60014768 A JP60014768 A JP 60014768A JP 1476885 A JP1476885 A JP 1476885A JP H0340422 B2 JPH0340422 B2 JP H0340422B2
Authority
JP
Japan
Prior art keywords
vector
register
operand
address
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.)
Expired - Lifetime
Application number
JP60014768A
Other languages
English (en)
Other versions
JPS61173345A (ja
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 filed Critical
Priority to JP60014768A priority Critical patent/JPS61173345A/ja
Priority to US06/823,531 priority patent/US4812974A/en
Publication of JPS61173345A publication Critical patent/JPS61173345A/ja
Publication of JPH0340422B2 publication Critical patent/JPH0340422B2/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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/34Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
    • G06F9/345Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes of multiple operands or results

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Complex Calculations (AREA)
  • Advance Control (AREA)
  • Fax Reproducing Arrangements (AREA)

Description

【発明の詳細な説明】 〔発明の利用分野〕 本発明はベクトルレジスタを持たない汎用計算
機システムに係り、特にリスト演算の高速化に最
適な計算機システムに関する。
〔発明の背景〕
本発明で対象とする汎用計算機システムを第4
図に示す。第4図中、命令制御部1は、該計算機
システムで実行される命令の解読、演算部2や記
憶制御部3への動作指令、命令実行順序の制御等
を行う。演算部2は命令の実行を行う。記憶制御
部3は、主記憶装置4に対するデータの読み出し
(以下、フエツチと呼ぶことにする)、データの格
納(以下ストアと呼ぶことにする)を行う。主記
憶装置4はアドレスづけされた記憶媒体であり、
記憶制御部3の指令により、データの読出し、格
納を行う。以後、アドレスという時は、主記憶装
置4のアドレスを指すものとする。汎用レジスタ
群5は、番号づけされた複数のレジスタからな
り、使用するレジスタ番号は命令中に指定され
る。
さて、第4図で示される汎用計算機でベクトル
演算を行う場合、通常、演算部2の中にベクトル
演算を高速に行う機構として内蔵アルイプロセツ
サ(IAP:Integrated Array Processor)を付
加する。このIAPについては、例えば、HITAC
M−180/200H/280H内蔵アレイプロセツサ解
説書(資料番号8080−2−041−20)に述べられ
ている。こゝで、IAPを使用する命令をIAP命令
(ベクトル命令)と呼ぶ。
IAP命令の形式を第5図に示す。命令の動作は
「Bフイールドに示された汎用レジスタの値+D
フイールドの値」によつて指定される。R1フイ
ールドで示された汎用レジスタは、演算すべきベ
クトル要素の起点を示す初期カウントを格納す
る。R1+1で示された汎用レジスタは、演算回
数に対応するベクトル長を格納する。R3フイー
ルドで示された汎用レジスタは、OAV(Operand
Address Vector)の最初のバイトの主記憶アド
レスを与える。OAVは、ベクトルオペランドに
対するVDT(Vector Descriptor Table)のアド
レスを与える主記憶上のテーブルである。具体的
には、第5図に示すように、VDT2(第2オペラ
ンドのVDT)の先頭アドレス、VDT3(第3オペ
ランドのVDT)先頭アドレス、VDT1(第1オペ
ランドのVDT)の先頭アドレス、コントロール
ベクトル・アドレスから成る。
VDTは、第6図に示す形成をしており、最左
端または最左端のベクトル要素アドレス(すなわ
ち演算の対象となる最初のベクトル要素のアドレ
ス)、フラグ、インクリメント値(ベクトル要素
間の間隔)から成る。
コントロールベクトルは、0または1のビツト
列であり、第7図に示す形式をしている。コント
ロールベクトルの各々のビツトがオペレーシヨン
単位に対応する。つまり、左端のビツトが初期カ
ウント0に対応し、順次右へ1、2、…に対応す
る。コントロールベクトルの長さ(n+1)は、
R1フイールド中の数+1で示された汎用レジス
タ示された数である。
IAP命令は、第2オペランドと第3オペランド
を演算して、第1オペランドに書き込む。演算の
種類は、前述の「Bフイールドに示された汎用レ
ジスタの値+Dフイールドの値」によつて指定さ
れ、各オペランドベクトルのアドレスは前述の
VDTに示される。演算の最初のオペランドの位
置は、各オペランドの先端アドレスに、前述の
R1フイールドで示される初期カウントとVDT中
のインクリメント値の積を代数的に加算すること
によつて得られる。R1フイールドで示される汎
用レジスタの内容は、1組のベクトル要素に対す
る演算が終了するたびに1ずつ加算され、次の演
算は、各オペランドの先端アドレスに、この更新
されたR1レジスタ中の数とVDT中のインクリメ
ント値の積を代数的に加算したアドレスにあるオ
ペランドに対して行われる。そして、R1レジス
タの内容がR1+1レジスタの内容と等しくなつ
た時、命令の実行は終了する。なお、コントロー
ルベクトルは、演算の実行の許可を行うものであ
る。
ところで、次のようなフオートラン文で表わさ
れるプログラムを考えてみる。
DO 10 I=1100 A(I)=B(C(I)) 10 CONTINUE このプログラアムは、配列の引数が配列になつ
ている演算、すなわち、ベクトルの要素番号が別
のベクトルの要素となつている所謂リスト演算を
表わしている。
従来のIAPを付加した汎用計算機システムは、
このようなリスト演算をサーポートする構成とな
つていない。したがつて、上記リスト演算は、要
素を1個ずつ処理しなければならず(すなわち、
ベクトル要素を1個ずつロード命令、ストア命令
等を用いて処理する)、演算時間が長くかゝる欠
点があつた。
〔発明の目的〕
本発明の目的は、リスト演算をベクトル演算と
して高速に実行する計算機システムを提供するこ
とにある。
〔発明の概要〕 科学技術計算プログラムには、しばしば、配列
の引数が別の配列の要素になつていることがあ
る。このケースは、ベクトルオペランドの要素番
号が、別のベクトルオペランドの要素となつてい
る所謂リスト演算と呼ばれる。本発明は、リスト
ベクトルというベクトルオペランドを用いたリス
ト演算命令を新設して、リスト演算をベクトル演
算として実行することを可能とするものである。
〔発明の実施例〕
はじめに、リストベクトルについて述べる。リ
ストベクトルは以下に示す働きをする。Jをある
整数とすると、通常のIAP命令のベクトルオペラ
ンドのJ番目の要素のアドレスは、オペランド先
頭アドレスにインクリメント値を(J−1)倍し
た値を加えた値である(オペランド先頭アドレス
とインクリメント値はVDT中に示される)。これ
に対し、リストベクトルで指定されたベクトルオ
ペランドのJ番目の要素のアドレスは、オペラン
ド先頭アドレスにリストベクトルのJ番目の要素
を扱うデータに応じて、何倍かした値を加えた値
である。
リストベクトルを用いた命令として、VMSX
(Vector Move Source Indexed)命令と、
VMTX(Vector Move Target Indexed)命令
を設定し、それぞれ、以下に示す仕様とする。
VMSX命令:第2オペランドがリストベクト
ルで指定され、第1オペランドはリストベクトル
を用いない。第2オペラントの各ベクトル要素が
対応する第1オペランド位置に格納される。
VMTX命令:第1オペランドがリストベクト
ルで指定され、第2オペランドはリストベクトル
を用いない。第2オペランドの各ベクトル要素が
対応する第1オペランド位置に格納される。
以下、VMSX命令を例にとつてリストベクト
ル命令の動作を説明する。
第3図はVMSX命令のオペランド指定形式を
示す。OAVは、リストベクトルのVDTの先頭ア
ドレス、第2オペランドベクトルのVDTの先頭
アドレス、第1オペランドベクトルのVDTの先
頭アドレスから成る。リストベクトルのVDTは、
リストベクトル先頭アドレスとインキリメント値
から成る。
リストベクトルの最初のベクトル要素のアドレ
スは、リストベクトルのVDT中に示されたリス
トベクトル先頭アドレスに、R1フイールドで示
される初期カウントとリストベクトルのVD中の
インクリメント値の積を加えることによつて得ら
れる。このアドレスを使つて、リストベクトルの
最初のベクトル要素が得られる。
演算の最初の第2オペランドのベクトル要素の
アドレスは、第2オペランドのVDTに示された
第2オペランドの先頭アドレスに、前記のリスト
ベクトルの最初のベクトル要素の4倍(オペラン
ドが32ビツトデータの場合)、または8倍(オペ
ランドが64ビツトデータの場合)を加えた値であ
る。このアドレスを使つて第2オペランドの最初
のベクトル要素が求まる。
第1オペランドのベクトル要素のアドレスの求
め方は、前述の通常のIAP命令の場合と同様であ
る。
R1フイールドで示される汎用レジスタの内容
は、1組のベクトル要素に対する演算(この場合
は、第2オペランド要素を、第1オペランドアド
レスに格納する処理)がん終了するたびに1ずつ
加算される。次の演算に用いる第2オペランド要
素は、リストベクトル先頭アドレスに、この更新
されたR1レジスタ中の数とVDT中のインクリメ
ント値の積を代数的に加算されることによつて得
られるアドレスにあるリストベクトル要素を用い
て指定される。この指定のしかたは、前述と同様
で、第2オペランドの先端アドレスに、前記リス
トベクトル要素の4倍または8倍を加えることで
ある。
R1レジスタの内容がR1+1レジスタの内容と
等しくなつた時、命令の実行は終了する。
VMTX命令は第1オペランドがリストベクト
ルで指定され、第2オペランドがリストベクトル
を用いないことを除いて、以上説明したVMSX
命令と同じである。
以下、本発明の一実施例を第1図および第2図
により説明する。
第1図は第4図の演算部2に係わる。第1図に
おいて、10,13はフエツチアドレスレジスタ
であり、フエツチするデータのアドレスがセツト
される。フエツチアドレスレジスタ10,13に
セツトされたアドレスは、それぞれフエツチアド
レス線17,18を通して記憶制御部3に送ら
れ、そのアドレスにおける主記憶装置4中のデー
タが読みだされる。フエツチアドレスレジスタ2
1は、主記憶装置4から読み出されたデータをフ
エツチデータ線19を通して格納する。シフタ2
2は、レジスタ21にセツトされたデータを、シ
フトカウントレジスタ31にセツトされた値だけ
左または右にシフトする。レジスタ30は、この
シフトされたデータを格納する。26はストアア
ドレスレジスタであり、ストアするデータのアド
レスがセツトされる。ストア動作は、記憶制御部
3がストアデータレジスタ23中のデータをセト
アデータ線24を通して入手し、同じくストアア
ドレス線29を通して入手するストアアドレスレ
ジスタ26中の主記憶装置アドレスなストアする
ことによつて行われる。
本発明の特徴は、以上の構成にインクリメント
レジスタ11,15,27、初期アドレスレジス
タ14、アドレス加算器12,16,28、デー
タ線25を付け加えたことになる。
インクリメントレジスタ11には、リストベク
トルのインクリメント値(第3図中のリストの
VDT中に示されている)が格納される。初期ア
ドレスレジスタ14には、第2オペランドの先頭
アドレス(第3図中の第2オペランドのVDT中
に示されている)が格納される。インクリメント
レジスタ15には、レジスタ30の値がセツトさ
れる。インクリメントレジスタ27には、第1オ
ペランドベクトルのインクリメント値(第1オペ
ランドのVDT中にある)がセツトされる。アド
レス加算器12は、フエツチアドレスレジスタ1
0とインクリメントレジスタ11の値を加え、フ
エツチアドレスレジスタ10に再格納する。アド
レス加算器16は、初期アドレスレジスタ14と
インクリメントレジスタ15の値を加え、フエツ
チアドレスレジスタ13に格納する。アドレス加
算器28は、ストアアドレスレジスタ26とイン
クリメントレジスタ27の値を加え、ストアアド
レスレジスタ26に再格納する。以後、VMSX
命令の動作を例にとつて説明する。
本発明に係わる演算部2は、マイクロプログラ
ムで制御されるとする。VMSX命令のマイクロ
プログラムを第2図に示す。該マイクロプログラ
ムの実施に先立つて、命令制御部1は、フエツチ
アドレスレジスタ10にリストベクトルの先頭ア
ドレス(第3図中のリストベクトルのVDT中に
示してある)を、インクリメントレジスタ11に
リストベクトルのインクリメント値を、初期アド
レスレジスタ14に第2オペランドの先頭アドレ
スを、ストアアドレスレジスタ26に第1オペラ
ンドの先頭アドレス(第1オペランドのVDT中
にある)を、インクリメントレジスタ27に第1
オペランドベクトルのインクリメント値を、シフ
トカウントレジスタ31、オペランドデータが32
ビツトデータの場合は4、オペランドデータが64
ビツトデータの場合は8をそれぞれセツトしてお
く。これが前処理である。以下、第2図に従つて
説明する。
マイクロプログラムのステツプで、フエツチ
レジスタ10の値をアドレスとして、主記憶装置
4からデータを読み出す。この読み出されたデー
タがリストベクトルの最初の要素である。また、
「1要素処理した」ということで、R1レジスタ
(初期カウントがはいつている)に1を加える。
ステツプでは、ステツプで読み出されたリ
ストベクトルの最初の要素がフエツチデータ線1
9上に乗るので、該データをフエツチデータ21
にセツトする。また、リストベクトルの次の要素
のアドレスを求めることを、ストアアドレスレジ
スタ10にインクリメントレジスタ11の値を加
えることによつて行う。
ステツプでは、フエツチデータレジスタ21
に格納されているリストベクトルの最初の要素
を、シフトカウントレジスタ31に示す数だけシ
フタ22で左シフトして、レジスタ30にセツト
する。
ステツプでは、レジスタ30の値、すなわ
ち、リストベクトルの最初の値をシフトした値
を、インクリメントレジスタ15にセツトする。
ステツプでは、初期アドレスレジスタ14に
格納されている第2オペランド先頭アドレスに、
インクリメントレジスタ15に格納されているリ
ストベクトルの最初の要素のシフト結果を加え
て、フエツチアドレスレジスタ13にセツトす
る。このレジスタ13にセツトされた値が第2オ
ペランドの最初の要素のアドレスである。
ステツプでは、フエツチアドレスレジスタ1
3の示すアドレスで、主記憶装置4からデータを
読み出す。このデータが、第2オペランドの最初
の要素である。
ステツプでは、この読み出された第2オペラ
ンドの最初の要素を、ストアデータレジスタ23
にセツトする。
ステツプでは、主記憶装置4中の、ストアア
ドレスレジスタ26で示す第1オペランド先頭ア
ドレスに、ストアデータレジスタ23に格納され
ている第2オペランドの最初の要素をストアす
る。これによつて、VSMX命令の要素が処理さ
れたことになる。また、第1オペランドの次の要
素のアドレスを求めることを、ストアアドレスレ
ジスタ26に格納されている第1オペランド先頭
アドレスと、インクリメントレジスタ27に格納
されている第1オペランドのインクリメント値を
加算して、ストアアドレスレジスタ26に再セツ
トすることによつて行う。
R1レジスタの値(最後に処理した要素の番号)
がR1+1レジスタ23の値(最終要素の番号)
に等しければ、演算終了とみなして、後処理へ行
く。等しくなければ、ステツプへ戻つて、次の
要素の処理を始める。後処理では、最後のステツ
プが実行された後に生じる割込みの受付けと
R1レジスタに“0”をセツトする動作が行われ
る。
以上の操作によつて、VMSX命令の実行がさ
れる。VSMX命令も、ほゞ同様の操作で実行さ
れる。
〔発明の効果〕
本発明によれば、汎用計算機システムにおい
て、リスト演算をベクトル演算として実行できる
ので、配列の引数が、別の配列の要素となつてい
るリスト演算を含むプログラムの処理が高速化さ
れる効果がある。
【図面の簡単な説明】
第1図は本発明の一実施例の構成図、第2図は
第1図の動作を説明するためのフロー図、第3図
は本発明で新設したVMSX命令の形式を示す図、
第4図は本発明で対象とする計算機システムの全
体構成図、第5図はIAP命令の形式を示す図、第
6図は第5図のVDTの形式を示す図、第7図は
第5図中のコントロールベクトルの形式を示す図
である。 1……命令制御部、2……演算部、3……記憶
制御部、、……主記憶装置、5……汎用レジスタ
群、10,13……フエツチアドレスレジスタ、
11,15,27……インクリメントレジスタ、
12,16,28……アドレス加算器、14……
初期アドレスレジスタ、21……フエツチデータ
レジスタ、2……シフタ、23……ストアデータ
レジスタ、26……ストアアドレスレジスタ、3
0……レジスタ、31……シフトカウントレジス
タ。

Claims (1)

    【特許請求の範囲】
  1. 1 ベクトルレジスタを持たない汎用計算機シス
    テムにおいて、ベクトルオペランドの要素番号が
    別のベクトルオペランドの要素で表わされるよう
    なベクトルに関する演算(以下、リスト演算とい
    う)を行うため、リストベクトルのインクリメン
    ト値を格納するレジスタと、第2オペランドベク
    トルのインクリメント値を格納するレジスタと、
    第2オペランドベクトルの初期アドレスを格納す
    るレジスタと、第1オペランドベクトルのインク
    リメント値を格納するレジスタと、フエツチデー
    タアドレスに前記リストベクトルインクリメント
    レジスタの値を加える手段と、フエツチデータア
    ドレスに前記第2オペランドベクトルインクメン
    トレジスタの値を加える手段と、ストアデータア
    ドレスに前記第1オペランドインクリメントレジ
    スタの値を加える手段と、記憶装置から読み出さ
    れたデータをビツトシフトした値を前記第2オペ
    ランドインクリメントレジスタに格納する手段と
    を設け、リストベクトルアドレスに順次、前記リ
    ストベクトルインクリメントレジスタの値を加え
    たアドレスで、記憶装置からリストベクトル要素
    を読み出し、該要素をビツトシフトした値を前記
    第2オペランドインクリメントレジスタに格納
    し、該レジスタの内容を前記第2オペランド初期
    アドレスレジスタに加えた値をアドレスとして、
    記憶装置から第2オペランドベクトル要素を読み
    出し、該要素を第1オペランドアドレスに順次、
    前記第1オペランドベクトルインクリメントレジ
    スタの値を加えたアドレスで示される記憶位置に
    格納することを特徴とする計算機システム。
JP60014768A 1985-01-29 1985-01-29 計算機システム Granted JPS61173345A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP60014768A JPS61173345A (ja) 1985-01-29 1985-01-29 計算機システム
US06/823,531 US4812974A (en) 1985-01-29 1986-01-29 Data processing apparatus for processing list vector instructions

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP60014768A JPS61173345A (ja) 1985-01-29 1985-01-29 計算機システム

Publications (2)

Publication Number Publication Date
JPS61173345A JPS61173345A (ja) 1986-08-05
JPH0340422B2 true JPH0340422B2 (ja) 1991-06-18

Family

ID=11870242

Family Applications (1)

Application Number Title Priority Date Filing Date
JP60014768A Granted JPS61173345A (ja) 1985-01-29 1985-01-29 計算機システム

Country Status (2)

Country Link
US (1) US4812974A (ja)
JP (1) JPS61173345A (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5438669A (en) * 1991-11-20 1995-08-01 Hitachi, Ltd. Data processor with improved loop handling utilizing improved register allocation
US5727229A (en) * 1996-02-05 1998-03-10 Motorola, Inc. Method and apparatus for moving data in a parallel processor
US6282634B1 (en) 1998-05-27 2001-08-28 Arm Limited Apparatus and method for processing data having a mixed vector/scalar register file
GB2338094B (en) * 1998-05-27 2003-05-28 Advanced Risc Mach Ltd Vector register addressing

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5148937A (en) * 1974-10-25 1976-04-27 Fujitsu Ltd Kiokusochi niokeru junjoseigyohoshiki
JPS5852265B2 (ja) * 1977-01-12 1983-11-21 株式会社日立製作所 デ−タ処理装置
JPS5725069A (en) * 1980-07-21 1982-02-09 Hitachi Ltd Vector data processing equipment
US4541046A (en) * 1981-03-25 1985-09-10 Hitachi, Ltd. Data processing system including scalar data processor and vector data processor
JPS58114274A (ja) * 1981-12-28 1983-07-07 Hitachi Ltd デ−タ処理装置
US4594682A (en) * 1982-12-22 1986-06-10 Ibm Corporation Vector processing
JPS59128670A (ja) * 1983-01-12 1984-07-24 Hitachi Ltd ベクトル処理装置
JPS60134974A (ja) * 1983-12-23 1985-07-18 Hitachi Ltd ベクトル処理装置

Also Published As

Publication number Publication date
US4812974A (en) 1989-03-14
JPS61173345A (ja) 1986-08-05

Similar Documents

Publication Publication Date Title
JPH1091443A (ja) 情報処理回路、マイクロコンピュータ及び電子機器
JPH09212361A (ja) データ処理装置およびデータ処理方法
JP2001516916A (ja) デジタル信号処理能力を有するデータ処理装置
JPS6313215B2 (ja)
JPH03218523A (ja) データプロセッサ
JP7048612B2 (ja) ベクトル生成命令
US5757685A (en) Data processing system capable of processing long word data
JP3578883B2 (ja) データ処理装置
JPH0340422B2 (ja)
JPH0523447B2 (ja)
JP3599499B2 (ja) 中央処理装置
KR100188374B1 (ko) 연산처리장치
GB2380283A (en) A processing arrangement comprising a special purpose and a general purpose processing unit and means for supplying an instruction to cooperate to these units
JP2625510B2 (ja) 計算機システム
JP2000029696A (ja) プロセッサおよびパイプライン処理制御方法
JPH0517589B2 (ja)
JP2522048B2 (ja) マイクロプロセッサ及びそれを使用したデ―タ処理装置
JP3102399B2 (ja) データ処理装置及び方法
JPH07110769A (ja) Vliw型計算機
JP2009059187A (ja) マイクロプロセッサおよびデータ処理方法
JP3147884B2 (ja) 記憶装置及び情報処理装置
JP3568737B2 (ja) 条件実行命令を備えるマイクロプロセッサ
JP4382076B2 (ja) データ処理装置
JPH07191845A (ja) 即値データ転送装置
JPH04316127A (ja) 情報処理装置