JPH0260026B2 - - Google Patents
Info
- Publication number
- JPH0260026B2 JPH0260026B2 JP60030665A JP3066585A JPH0260026B2 JP H0260026 B2 JPH0260026 B2 JP H0260026B2 JP 60030665 A JP60030665 A JP 60030665A JP 3066585 A JP3066585 A JP 3066585A JP H0260026 B2 JPH0260026 B2 JP H0260026B2
- Authority
- JP
- Japan
- Prior art keywords
- vector
- register
- operand
- operations
- processing
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/80—Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
- G06F15/8053—Vector processors
- G06F15/8076—Details on data register 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)
- Memory System Of A Hierarchy Structure (AREA)
Description
以下の順序で本発明を説明する。
A 産業上の利用分野
B 開示の概要
C 従来の技術
D 発明が解決しようとする問題点
E 問題点を解決するための手段
F 実施例
a 分散処理システムの一般的説明(第1図)
b 分散処理システムの詳細構成(第2A図及び
第2B図) c ランダム・アクセス記憶40、プログラム記
憶54およびデータ記憶60の内容(第3図) d 分散処理システムの操作例(第4図及び第5
図) G 発明の効果 A 産業上の利用分野 本発明はベクトル処理システムに係り、更に詳
細に説明すれば、複数の仮想ベクトル・レジスタ
を設けることにより、ユーザが複数のベクトル・
オペランドのレジスタ間処理を制御することがで
きるようにした、改良されたベクトル処理システ
ムに係る。 B 開示の概要 本発明は、主記憶装置および処理装置を有する
ベクトル処理システムにおいて、上記主記憶装置
と上記処理装置の間に接続された高速のバツフア
記憶装置を複数の仮想ベクトル・レジスタとして
使用し、該仮想ベクトル・レジスタの数および該
仮想ベクトル・レジスタに保持されるオペランド
要素の数を問題(ユーザ)プログラム中の命令に
よつて指定することにより、ユーザがレジスタ間
ベクトル処理操作をきめ細かく制御できるように
したものである。 C 従来の技術 ベクトル処理は周知のデータ処理形式であつ
て、アレイないしベクトル・オペランドを処理対
象とするものである。「アレイ」および「ベクト
ル」という用語は同意語であり、以下ではこれら
の用語を区別せずにそのまま使用することにす
る。「ベクトル・オペランド」とは、一組の順序
づけられた、または関連づけられたデータ項目な
いしベクトル要素である。「ベクトル処理」は、
一般にベクトル・オペランドの各要素に対して同
一操作を実行することを含んでいる。従来技術の
一つのベクトル処理法では、ベクトル・オペラン
ドを主記憶に記憶する。ユーザ命令を実行する
と、記憶域間操作が実行されて、一つ以上のベク
トル・オペランドが主記憶から処理装置に入力さ
れ、そしてその処理結果が主記憶に戻される。 処理装置の操作速度は一般に、主記憶との間の
データ転送速度よりもかなり速いので、主記憶と
処理装置の間に高速バツフア(キヤツシユ)を接
続することができる。かかるバツフアの操作は、
記憶域間操作の間ユーザに対して透明であるのが
普通である。すなわち、この操作は自動的に実行
されるので、ユーザはバツフアの使用態様を制御
することができない。かかる制御はマイクロプロ
グラムによつて行われるのが普通であり、所与の
システムにおける各種のベクトル処理操作のそれ
ぞれについて予め定められている。 IBM3838アレイ処理装置では、処理装置と主
記憶の間に「作業用記憶」と呼ばれるバツフアが
接続されていた。これは米国特許第4041461号お
よび第4149243号に記載されている。かかる作業
用記憶は並行して働く2つのセクシヨンを含んで
いるので、一方のセクシヨンがオペランドを処理
装置に入力しその処理結果を受け取るとき、他方
のセクシヨンは以前の処理結果を主記憶へ出力す
るとともに、現処理の終了時に処理すべき新しい
オペランドを主記憶から受け取ることができる。
記憶制御機構が、作業用記憶と主記憶の間のデー
タ転送を制御する。ユーザから見ると、すべての
操作は記憶域間操作であり、作業用記憶の操作は
ユーザにとつて透明である。 上記のアーキテクチヤは、信号解析や地震信号
の処理でみられるような、1500〜2000個の要素か
ら成る比較的長いベクトル・オペランドを処理す
ることに適していた。処理の際、長いベクトル・
オペランドの各々はより少数の要素、例えば256
個の要素を含む複数のセグメントに分解された。
或るオペランドの最終セグメントは、一セグメン
トを構成する要素の総数よりも少ない要素を含む
ことがあり、従つてかかるセグメントは「剰余」
として処理された。一セグメントを構成する要素
の数よりも少ない要素を含むベクトル・オペラン
ドについては、かかる短いオペランドは剰余とほ
ぼ同じやり方で処理された。各セグメントは、操
作の種類および含まれるベクトル・オペランドの
数に応じて、作業用記憶の固定領域ないし予定領
域に割り当てられた。 複数のベクトル・レジスタを使用することも、
当該技術分野では周知である。IBM2938アレイ
処理装置は、XバツフアおよびYバツフアと呼ば
れる2つのベクトル・レジスタを含んでいた。各
バツフアは、比較的小さく、32個のベクトル要素
を収容した。すべてのベクトル操作は記憶域間処
理を経て実行され、その場合、一般に長いベクト
ル・オペランドは32個の要素から成るセグメント
に分解されて、そのセグメントの各々が記憶域間
処理の中間段階としてバツフアの一つに一時的に
記憶された。例えば、2つのベクトル・オペラン
ドが要素毎に加算されるとき、一つのベクトル・
オペランド・セグメントがXバツフアに記憶さ
れ、もう一つのベクトル・オペランド・セグメン
トがYバツフアに記憶された。次に、各バツフア
からの要素対が一つずつ加算されて結果要素を生
成し、それがXバツフアに戻されてその元の要素
にオーバーレイする形で記憶され、そしてその結
果として得られたベクトル・オペランド・セグメ
ントが主記憶に転送されるようになつていた。か
かるベクトル・レジスタの使用は、ユーザにとつ
て完全に透明であつた。 米国特許第4128880号は、8個のベクトル・レ
ジスタと関連する機能装置を備えた汎用データ処
理システムを開示しており、後者の機能装置は当
該システムをアレイ処理に適合させるように構成
されている。ベクトル・レジスタの各々はそれぞ
れ64個までのベクトル要素を記憶することが可能
であり、ユーザはこれらのベクトル・レジスタを
汎用レジスタと幾分か似た方法で利用することが
できる。 D 発明が解決しようとする問題点 しかしながら、このような従来技術において
は、ベクトル・レジスタの数や長さは固定されて
いて、ユーザはこれを制御することができなかつ
た。また、ベクトル・レジスタは作業用記憶ない
しキヤツシユの形式で実現されていたので、ユー
ザはその操作の細部を制御することができなかつ
た。というのは、作業用記憶やキヤツシユの操作
は、ユージにとつて透明にされていたからであ
る。 従つて、本発明の一目的は、作業用記憶バツフ
アとベクトル・レジスタの利点を新規なやり方で
組合せた、ベクトル処理システムを提供すること
である。 本発明の他の目的は、ユーザがベクトル・オペ
ランドのレジスタ間処理を実行するのに利用でき
る。サイズの異なる可変数のベクトル・レジスタ
を備えた、ベクトル処理システムを提供すること
である。 本発明の他の目的は、記憶域間およびレジスタ
間形式のベクトル処理を実行するのに使用される
作業用記憶を備えた、ベクトル処理システムを提
供することである。 本発明の他の目的は、記憶域間ベクトル操作を
追加的にサポートするのに必要なマシン・レベル
のコードの量を最小限に抑えることができるよう
な、ユーザが制御可能なレジスタ間ベクトル操作
を提供することである。 本発明の他の目的は、ある操作の結果がその後
のベクトル操作に使用できるようにベクトル・レ
ジスタに記憶される、バツフア・レジスタ間ベク
トル操作をユーザが制御できるようにすることで
ある。 本発明の他の目的は、従来技術のベクトル・レ
ジスタで得られるよりも高度の融通性と多くの機
能をもたらす、ユーザが制御可能な複数の仮想ベ
クトル・レジスタを提供することである。 本発明の他の目的は、ユーザまたはプログラマ
が利用できる複数の仮想ベクトル・レジスタを備
えた、ベクトル処理システムを提供することであ
る。 E 問題点を解決するための手段 簡単に言えば、本発明の上記の諸目的のあるも
のは、主記憶とベクトル処理装置の間に作業用記
憶ないしバツフア記憶を設けることによつて達成
される。バツフア記憶は、ユーザの制御下で働く
1つまたは複数の仮想ベクトル・レジスタを含ん
でいる。レジスタ間ベクトル操作の場合、ユーザ
は処理すべきベクトル・オペランドの長さ、実行
すべき操作の種類、およびどのベクトル・レジス
タを使用するかを指定する。かかる指定に応じて
希望する操作を実行する際、ベクトル・レジスタ
中の各ベクトル・オペランドが処理装置に入力さ
れ、そしてその結果ベクトル・オペランドがその
後の操作に使用できるようにベクトル・レジスタ
に置かれる。 本発明の他の特徴によれば、ベクトル処理は、
処理装置のコード・レベルで定義されるプログラ
ムによつて制御される。その場合、所与の機能ま
たは操作について、レジスタ間処理と記憶域間処
理に同じプログラムが使用される。記憶域間処理
は、予定パラメータをプログラムにパスすること
によつて制御され、レジスタ間処理はユーザのプ
ログラム命令に応じて生成されるパラメータをパ
スすることによつて制御される。 F 実施例 a 分散処理システムの一般的説明(第1図) 以下図面を参照して本発明の実施例を説明す
る。第1図はホスト・システム(HS)10とア
レイ処理システム(APS)11を含む分散処理
システムを示す。ホスト・システム10は、ホス
ト・プロセツサ12、ホスト記憶14、およびシ
ステム母線17を介して相互接続された外部通信
用周辺装置16を含んでいる。周辺装置16は、
プリンタ、CRTデイスプレイ、通常の周辺イン
ターフエースなどの通常の装置を含んでいる。ホ
スト・システム10は市販のIBM9001システム
であることが望ましい。 APS11は、アレイ処理システムの操作を制
御するためのプロセス制御装置(PCU)18を
含んでいる。さらにAPS11は、アレイ操作を
実行するための高速の演算装置(AU)20と、
アレイないしベクトル・オペランドを含む情報を
記憶するための記憶22を含んでいる。PCU1
8は、2本の母線26と27によつてAU20に
接続されている。記憶22も母線26に接続され
ている。さらにAPS11は、その選択機構とし
て、測定インターフエース24およびデータを分
析するのにアレイ操作が必要な種類のデータを生
成する測定装置25を含んでいる。 上記システムの操作において、HS10は分散
処理システム全体の制御を行う。しかし、アレイ
操作に関しては、アレイ操作を実行するための問
題(ユーザ)プログラムは、ホスト・プロセツサ
12ではなくてPCU18で実行される。HS10
は操作を開始して問題プログラムをPCU18に
ダウンロードするか、または問題プログラムを記
憶22からPCU18にロードするためのポイン
タをPCU18にパスする。このように、アレイ
操作をAPS11中で行うことによつて、HS10
は、これと同時に他の機能、たとえば一般的なハ
ウスキーピング機能、測定装置25の(データ収
集部分以外の)監視操作およびデータや結果を周
辺装置16から出力する操作などを行うことがで
きる。すなわち、HS10はアレイ操作には干渉
せず、しかもアレイ・オペランドの高速転送を低
下させたり、そのボトルネツクを作り出すことな
しに、制御、通信、入出力などの機能を並行して
行うことができるのである。上記の記述は、下記
でさらに詳しく説明する、本発明の環境を一般的
に示すためのものである。 b 分散処理システムの詳細構成(第2A図およ
び第2B図) 次に、第2A図と第2B図を参照すると、
PCU18は制御プロセツサ(CP)30を含み、
該プロセツサは母線32を介してアービタ34、
制御およびステータス・レジスタ36、プログラ
マブル読取り専用記憶(PROM)38、および
ランダム・アクセス記憶(RAM)40に接続さ
れている。PCU18のこれらのハードウエア・
エレメントは、一般にHS10の対応するエレメ
ントと同じであり、当該技術分野では周知である
ので、その詳細を省略する。この点については、
CP30はモトローラ社製のMC68000プロセツサ
を使用することができることを指摘しておけば十
分であろう。母線32は、選択的に働くスイツチ
(SW)41,42,43を介してシステムの他
の母線に接続されている。これらのスイツチは、
母線32を他の母線およびエレメントから電気的
に絶縁したり、またはこれらを電気的に接続する
働きをする。ここで述べる各種の母線は、データ
線とアドレス線のみならず、各種の制御線をも含
み、またスイツチ機能は制御線に影響を与えずに
アドレス線とデータ線について行われることを了
解すべきである。スイツチ41は、母線32を上
記の母線26に接続する。母線32はPCU18
の内部母線とみなされ、母線26は外部母線であ
る。母線26と32は一緒になつてその組合せの
セグメントを形成している。すなわち、母線26
と32は、それぞれこの2つのセグメントの組合
せによつて形成されるより大きな母線のセグメン
トである。 さらにPCU18は、母線45に接続された高
速の共用記憶44を含んでおり、また母線45は
スイツチ46,47に接続されている。スイツチ
46,47は、HS10またはPCU18からの信
号によつて作動し、HS10、PCU18または
AU20がデータ、オペランド、命令などを共用
記憶44に書き込みまたはそこから読み取れるよ
うにする。 AU20は、演算プロセツサ(AP)50とデ
ータ転送コントローラ(DTC)52の二つの主
要エレメントを含んでいる。AP50は、プログ
ラム記憶54に記憶されているプログラムを実行
する処理装置であり、プログラム記憶54はプロ
グラム母線55によつてAP50とスイツチ43
に接続されている。PCU18は、RAM40から
のプログラムをスイツチ43と母線55を経てプ
ログラム記憶54にロードして、AP50の操作
に備える。データ母線64はAP50に接続され
ており、アレイ操作を行う際に使用される各種の
オペランドとデータを提供する。データ母線64
は、オペランドと命令の並行取出しが可能なよう
に、プログラム母線55から分離している。デー
タ記憶60と係数記憶63は、一対のピンポン式
バツフア記憶61,62に入る母線64に接続さ
れている。データ記憶60は、中間結果、テーブ
ル、制御ブロツクなどを記憶するのに用いられ、
係数記憶63はアレイ操作に使用される各種の係
数を記憶する。バツフア記憶61,62はそれぞ
れスイツチ66,67によつてデータ母線64に
接続され、またそれぞれスイツチ70,71によ
つて母線26に接続されている。スイツチ66,
67,70,71はDTC52とAP50の制御下
で選択的に作動されて、バツフア記憶61,62
の一方がAP50と一緒に働き、他方がDTC50
の制御下で働くようにする。記憶22は、第1図
よりも第2図により詳しく示してあり、RAM7
4およびハード・デイスク・コントローラ76を
介して母線26に接続されたバード・デイスク7
5を含んでいる。APS11は、各種エレメント
がそのアドレスに応じて選択されるような記憶写
像システムである。この目的のために、PCU1
8とAU20の内部にアドレス・デコーダ78,
79′,79が設けられている。 以上に説明したシステムの操作において、アレ
イないしベクトル・オペランドが記憶22に記憶
される。かかるオペランドは、測定装置25、
HS10または以前の操作から引き出されたデー
タから取ることができる。HS10は、アレイ操
作を開始するために、問題プログラムをPCU1
8にダウンロードするか、または問題プログラム
が記憶22のどこに位置するかを示すポインタを
RAM40にパスする。アレイ操作が一度開始さ
れると、HS10は、測定装置25を監視したり、
データをCRTまたはプリンタに出力したり、あ
るいは通信回線を介して他のシステムにデータを
出力するなどの他の操作を自由に行うことができ
る。 「仮想」とは、ここではベクトル・レジスタが
事実上存在するけれども、実際には存在しないこ
とを意味する。というのは、これらのベクトル・
レジスタはバツフア記憶61,62中に形成され
るものの、該バツフア記憶61,62は通常の場
合は非ベクトル・レジスタ操作用のキヤツシユと
して働らくからである。このシステムをアレイ処
理に使用するには、ユーザは、関連するアレイ操
作を指定する一連の呼出しステートメントないし
呼出し命令を含むプログラムを書かねばならな
い。一般に、これらの操作は、記憶域間(SS)
操作、レジスタ間(RR)操作、記憶域−レジス
タ間(SR)操作、レジスタ−記憶域間(RS)操
作の4種類に分けられる。SS操作は、例えば上
記のIBM3838アレイ処理装置で行われるアレイ
操作と同様のものにすることができる。すなわ
ち、IBM3838アレイ処理装置では、主記憶に記
憶されている1つ以上のベクトル・オペランドを
作業用記憶に逐次に入力し、処理装置によつて結
果を生成し、次にその結果を作業用記憶を通して
転送し、最後に主記憶に記憶するようにしてい
る。RR操作は、これと同じ処理を含んでいる
が、入力ベクトルの供給源はベクトル・レジスタ
であり、そしてその出力ないし結果は下記にもつ
と詳しく説明するやり方でベクトル・レジスタに
置かれる。SR操作は、ベクトル・オペランドを
主記憶からベクトル・レジスタに入力できるよう
にするものであり、RS操作は、ベクトル・オペ
ランドをベクトル・レジスタから主記憶に出力で
きるようにするものである。作業用記憶の使用
は、SS操作の間はユーザにとつて透明であるが、
他の操作ではユーザがこれを制御する。 各種のベクトル操作は、問題プログラムに含ま
れる一組のマクロ命令または定義によつて規定さ
れる。マクロ命令の例として、一つのベクトル・
オペランドの各要素を他のベクトル・オペランド
の対応する要素に加算して和を生成し、それが結
果ベクトル・オペランドの対応する要素となるよ
うな、ベクトル操作を考えてみる。かかる操作
は、要素毎の加算と呼ばれている。SS操作およ
びRR操作用の関連するマクロ命令は、次のよう
なものである。 簡略命令コード パラメータ VADD n,V1,V2,V3 VADDR n,V1,V2,V3 ただし、nはベクトル・オペランド中の要素数
であり、Vxは各ベクトル・オペランドのベクト
ル識別子である。かかる識別子は、SS操作では
オペランドの最初の要素が記憶されている主記憶
中の記号アドレスを含み、RR操作ではベクト
ル・オペランドを記憶するためのベクトル・レジ
スタの識別子を含んでいる。この識別子は、また
基本アレイからベクトル・オペランドを生成する
ためのスキツプまたは増分値を含むことができ
る。 c ランダム・アクセス記憶40、プログラム記
憶54およびデータ記憶60の内容(第3図) 次に第3図を参照すると、問題プログラム10
0はPCU18中のRAM40に記憶されており、
これは行うべきアレイ操作を指定する各種の呼出
しステートメントまたは呼出しマクロを含んでい
る。各呼出しステートメントと関連する簡略命令
コードは、マクロ機能実行プログラム102への
入口点の名前を表わし、このプログラムもRAM
40に記憶されている。このプログラム102
は、コンパイル時に問題プログラムにリンクされ
る。問題プログラム100における呼出しに応じ
て、マクロ機能実行プログラム102は、アレイ
操作の実行をサポートするために適当な制御ブロ
ツク・パラメータを書式化し、実行をサポートす
るために係数テーブルとAUルーチンを更新し、
入力オペランドと制御ブロツク情報をAU20へ
転送する。このようにして、アレイ操作の実行が
開始され、これに応じて生成された結果の記憶が
行われることになる。マクロ機能実行プログラム
102は、タスク制御ブロツク(TCB)シエル
104をAUルーチン106を含んでいる。また
RAM40は、DTCパラメータ・バツフア110
を含んでおり、マクロ機能実行プログラム102
はAU20との間の情報転送を制御する際にDTC
52が使用する情報をこのバツフアに入れる。
RAM40のスカラ入出力バツフア112は、ア
レイ操作で使用されるスカラ情報を記憶する。行
うべき各アレイ操作ごとに、マクロ機能実行プロ
グラム102は、特定のルーチンおよび情報を含
んでいる。これらのルーチンおよび情報は、特定
のアレイ操作を実行するために、問題プログラム
中のマクロ命令に関連するユーザ・パラメータに
応じて発生されるものである。 特定の機能を実行するために必要な特定のAU
ルーチン106′は、プログラム記憶54にロー
ドされる。そのロード開始アドレスは、データ記
憶60中に設けられたAUルーチン・デイレクト
リ116に記憶されている。AU実行プログラム
114は当初はプログラム記憶54に記憶されて
おり、AP50の操作を制御する。AU実行プロ
グラム114がロードされると、AP50はルー
プないし遊休状態に置かれる。問題プログラム1
00中のマクロ命令に応じて、特定のTCBがデ
ータ記憶60中のTCBストリング・バツフア1
05にロードされる。このようにTCBがロード
されると、AP50はリセツト状態に強制される。
リセツト状態が解除されると、AU実行プログラ
ム114が処理の制御権をとつて、TCBによつ
て定義された特定のアレイ操作の実行を開始す
る。TCBの実行をサポートするために必要な、
APS20の外部におけるすべての入出力活動は、
マクロ機能実行プログラム102によつて管理さ
れる。 データ記憶60は、TCBストリング・バツフ
ア105とAUルーチン・デイレクトリ116を
含む実行パラメータ領域120を備えている。こ
の領域120は、AU実行プログラム114と
AUルーチン106′が使用するように厳格に予
約された領域である。さらに実行パラメータ領域
120は、共通に使用される係数のユーテイリテ
イ・ソースとしての実行定数124、係数テーブ
ルに対するポインタのデイレクトリ128、およ
び処理状態、実行コード・ポインタ、演算ルーチ
ンのユーザ・パラメータを定義するステータス・
ワード126を記憶している。 d 分散処理システムの操作例(第4図および第
5図) 第4図および第5図は、要素毎の加算を実行す
るための例示的なマクロ命令と関連する、例示的
なSS操作およびRR操作の情報の流れを示す概略
図である。矢印を付した各流れ線は、その線に関
連する円内の数字で識別される。各ステツプない
し流れ線は、図面番号とそれに続くステツプ番号
によつて特定することができる。例えば、ステツ
プ4−6は第4図のRAM40からDS60に向く
流れ線を指す。図示した例では、800個の要素を
有する2つのベクトル・オペランドV1,V2が
要素毎に加算されて、800個の要素を有するベク
トル・オペランドV3を生成する。SS操作の場
合、マクロ命令は次のように定義される。 VADD 800,A1,A2,A3 ただし、A1−A3は、各ベクトル・オペラン
ドの最初の要素が記憶されるRAM74中の開始
アドレスを表わす。 準備ステツプとして、RAM74の開始アドレ
スA1,A2にベクトル・オペランドV1,V2
を記憶することが必要である。ステツプ4−1に
おいて、CP30が問題プログラム100中の上
記マクロ命令にぶつかると、RAM40中のマク
ロ機能実行プログラム102のうちその特定のマ
クロ命令に対応する点に入つて、このアレイ操作
に関連する各種ステツプを開始する。最初のステ
ツプの1つは、バツフア記憶61と62のどちら
がベクトルを受け取るかをマクロ機能実行プログ
ラム102によつて判断することである。それが
判断されると、次の判断はかかるバツフアが使用
可能かどうか、または現在操作に使用できるよう
になる前にそれをアンロードしなければならない
かどうかを決定することである。例に挙げた特定
の状況で、BS61が選ばれるものと仮定すると、
かかるバツフア記憶が使用可能になる場合、ステ
ツプ4−2は必要な情報をRAM40中のDTCパ
ラメータ・バツフア110(第3図)からDTC
52に転送する。ステツプ4−3では、RAM7
4中の開始アドレスA1から始まるベクトルV1
の800個の要素が、BS61の開始アドレス0から
始まる複数の位置にすべて転送される。ステツプ
4−4では、RAM74中のアドレスA2から始
まるベクトルV2の800個の要素が、BS61のア
ドレス1024から始まる複数の位置にすべて転
送される。この特定のマクロ命令については、
BS61はそのアドレス0,1024,2048
でそれぞれ始まる3つの領域に分割されているの
で、各領域は最大1024個の要素から成るベクト
ル・オペランドをそれぞれ受け取ることができ
る。これらの開始アドレスは予め割り当てられて
おり、この特定マクロについては変わらない。 このようにベクトル・オペランドV1およびV
2がBS61に記憶され、そしてAP50が使用可
能になると、ステツプ4−5は関連するAUルー
チンをPS54に転送し、またステツプ4−6は
TCBシエル104をDS60のTCBストリング・
バツフア105に転送する。このTCBシエル1
04は、当該操作中に増分値が使用されないもの
と仮定すれば、以下の第1表に示した値を含んで
いる。ステツプ4−7は、BS61に記憶されて
いるベクトル・オペランドV1とV2のそれぞれ
からの2つの対応する要素を、AP50に入力し、
そこでこれらの要素が加算されて結果要素を与え
る。次のステツプ4−8では、この結果要素をベ
クトル・オペランドV3の一要素としてBS61
に転送する。ステツプ4−7と4−8は、ベクト
ル・オペランドV1およびV2の全ての要素が処
理されるまで、パイプライン式に800回行われる。
それが完了すると、AP50はこの操作による使
用から解放され、次にDTC52はステツプ4−
9を利用して結果ベクトルV3を転送し、それを
RAM74のアドレスA3から始まるベクトル・
オペランドV3の領域に記憶し、かくてこの操作
が完了する。 第1表 TCB(VADD)フイールド 1 L=TCBの長さ。 2 ID=OPコード。 3 第1ベクトル・オペランドの第一要素に対す
るバツフア記憶内でのO−オフセツト・アドレ
ス。 4 第2ベクトル・オペランドの第一要素に対す
るバツフア記憶内での1024−オフセツト・
アドレス。 5 結果ベクトル・オペランドの第一要素に対す
るバツフア記憶内での2048−オフセツト・
アドレス。 次に、第5図を参照してRR形式の加算操作の
例を説明する。マクロ命令VADDRの実行に先立
つ予備ステツプとして、ベクトル・オペランドV
1とV2がBS61中の仮想ベクトル・レジスタ
R1とR2にロードされる。選んだ特定の例は、
R1とR2が等化(equate)ステートメントに
よつてそれぞれBS61のアドレス800および0か
ら始まるように定義されているものである。かか
るアドレスは、ベクトル・オペランドが互いに連
続しており、そして先に第4図に関して説明した
ものとは逆の順であることを規定する。この点に
関して、BS61と62のどちらが使用され、そ
してかかるバツフアのどこにレジスタまたはベク
トル・レジスタが存在するかということを、ユー
ザが完全に支配できることに注意すべきである。
ステツプ5−1において、CP30はマクロ命令
にぶつかつてステツプ5−2を開始する。ステツ
プ5−2では、適当なAUルーチンがPS54中に
ない場合、このルーチンをPS54中に置く。ス
テツプ5−3では、RAM40中のTCBシエル1
04をDS60中のTCBストリング・バツフア1
05に転送し、そこでシエル・フイールドが第2
表に示した値で位置決めされる。次に支配権が
AP50に転送され、かくてステツプ5−4では、
ベクトル・オペランドV1とV2からの各オペラ
ンド要素がAP50に転送される。次のステツプ
5−5では、AP50はこれらの要素を処理して
ベクトル・オペランドV3の要素を生成し、それ
が仮想ベクトル・レジスタR3に記憶される。
800個の要素がすべて処理されると、操作は完了
する。 第2表 TCB(VADDR)フイールド 1 L=TCBの長さ。 2 ID=OPコード。 3 バツフア記憶におけるベクトル・レジスタR
1の800−オフセツト・アドレス。 4 ベクトル・レジスタR2のO−オフセツト・
アドレス。 5 ベクトル・レジスタR3の1600−オフセ
ツト・アドレス。 SS操作とRR操作に使用されるAUルーチンは
同一である。この2種の操作の違いは、SS操作
用のTCBシエル104が、通常はベクトル・オ
ペランドの各要素がバツフア記憶のどこに入れら
れるかを示す予定された開始アドレスを含んでい
ることである。これらの開始アドレスは、特定の
マクロ命令の各々については変わらない。それと
は対照的に、第2表のフイールド3−5にそれぞ
れ生じるアドレスは、RR操作については種々の
ベクトル・レジスタの開始アドレスでそれぞれ重
ね書きされるのである。これらの開始アドレスは
ユーザによつて予め定められており、従つてユー
ザはバツフア記憶の使用を完全に制御することが
できる。RR操作とSS操作の違いを対照的に説明
すると、両者の主な違いは、RRマクロ命令中の
オペランド参照は、AU20の外部にある記憶位
置について行われるのではなく、AU20の内部
にある記憶位置について行われるのであり、従つ
てRRマクロ命令の実行中にDTC52による入出
力転送活動は一切起こらないという点にある。さ
らに、RRマクロ命令中のTCBは互いにストリン
グ化されて単一の大きなマルチ・ステートメント
TCBを形成し、これによりスーパ・マクロ命令
の一部としてAU20におけるマクロ免令の実行
を開始することができるが、SSマクロ命令は常
に個別に実行されるにすぎない。さらに、AU2
0によるバツフア記憶の直接的な選択は、RRマ
クロ命令によつて定義されるが、SSマクロ命令
についてはマクロ機能実行プログラム102が選
択を行う。RRマクロ命令を使用するという一つ
の大きな利点は、通常マシンと共に提供される基
本のマクロ命令セツトでは提供されない追加機能
を生成するための大きな融通性がユーザに与えら
れることである。このため、ユーザはユーザ自身
が定義した機能を実施するためのスーパ・マクロ
命令のセツトを構成することができる。また以前
のアレイ処理からの出力を、追加処理のための入
力として使用することもできる。例えば、上記の
要素毎の加算に関連して説明すれば、ベクトルV
3が一度生成されると、それをその後のマクロ命
令またはアレイ操作に使用できる。 RR操作の使用の融通性とユーザが追加機能を
定義できる能力についてさらに説明すると、次の
例は5個の要素から成る基準フイールドを1024個
の要素から成るデータ・フイールドと相関させる
ようにして、大フイールドの相関を小フイールド
ごとに求めるようにしたものである。この分析の
数式は、下記に示すとおりである。 Zj=4 〓i=0 Xi+jEi (式1) Zjは結果ベクトル・オペランドZのj番目の要
素を表わし、jは0から1019まで変化する。 Xは大データ・フイールドの要素である。 Eは基準フイールドの要素である。 一般に、Zベクトル・オペランドの各要素は、
そのデータ・フイールドの連続する5個の要素に
基準フイールドの5個の要素を掛け、次にこれら
の5個の積を加えることによつて形成される。相
関分析を実施する一般的なやり方は、ユーザが
RAM40のスーパ・マクロ・ライブラリ113
に記憶されるスーパ・マクロ命令を生成するとい
うものである。スーパ・マクロ命令は、ユーザ・
プログラム100に置かれたラベルで呼び出され
る。説明中の例では、相関分析に関して使用され
るラベルがCORRであると仮定する。マクロ命令
生成プロセスの一部として、ユーザは使用される
仮想ベクトル・レジスタを定義しなければならな
い。なぜなら、ユーザは全面的な制御権、すなわ
ちバツフア記憶61と62のどちらがこれらの仮
想ベクトル・レジスタを含むことになり、所与の
バツフア記憶のどこにこれらの仮想ベクトル・レ
ジスタが配置され、そしてその各サイズがどのよ
うなものであるかを制御することができるからで
ある。次の第3表は、バツフア記憶61のシステ
ム・アドレスに対応するシステム16進アドレスを
用いた4つの等化(EQ)ステートメントによつ
てこれらのレジスタを定義したものである。 第3表 レジスタの定義ステートメント番号 レジスタ 16進アドレス (1) R0 EQ F90000 (2) R1 EQ F90004 (3) R2 EQ F90404 (4) R3 EQ F90804 以上のことから、レジスタR0は5個の基準要
素を収容し、レジスタR1は1024個のデータ要素
を収容し、レジスタR2はサイズが1024であるが
1020個の結果要素を収容し、レジスタR3は5個
の要素から成る中間ベクトル・オペランドを収容
することになる。 ラベル・シールRRで識別されるスーパ・マク
ロ命令中で使用される各種のマクロ定義は、次の
第4表に示されている。 第4表 ラベル:CORR マクロ命 令番号 簡略命令コ ード パラメータ 1 AULD (5、R0、REF) 2 AULO (1024、R1、DATA) 3 VMULR (5、R0、R1、R3) 4 SSUMR (5、R3、R2) 5 BRCHR (1020、2、2、2、 1、1、2、1) 6 AUST (1020、R2、RESULT) このスーパ・マクロ命令CORRを呼び出すため
の準備として、5個の基準値がRAM74の記号
アドレスREFから始まる複数の記憶位置に記憶
され、1024個のデータ要素がRAM74の記号ア
ドレスDATAから始まる複数の記憶位置に記憶
される。マクロ命令#1はSR形式のロード命令
であり、RAM74のアドレスREFから始まる5
個の基準要素を仮想ベクトル・レジスタR0に記
憶する。これによつて、これらの基準値がバツフ
ア記憶61にロードされるはずである。マクロ命
令#1に初めてぶつかると、マクロ機能実行プロ
グラム102は、BS61のアンロードの如き以
前の操作を完了し、次にバツフア記憶を使用する
制御権をユーザ・プログラム100に渡す。マク
ロ命令#2は1024個の要素をRAM74のアドレ
スDATAからベクトル・レジスタR1にロード
するための同様の命令である。マクロ命令#3
は、ベクトル・レジスタR0,R1からの5個の
要素をそれぞれ掛け合せ、それらの5個の積をベ
クトル・レジスタR3に記憶すべきことを指示す
る、ベクトル要素間乗算命令である。マクロ命令
#4は、ベクトル・レジスタR3に記憶されてい
る5個の要素を互いに加算してこの5個の要素に
対する単一のスカラ値を形成し、それをレジスタ
R2の一つの位置に記憶する、ベクトル加算プロ
セスである。これらのマクロ定義を通つた最初の
パスで、上記の式1に従つたベクトルZの最初の
要素が形成される。マクロ命令#5は、結果ベク
トルZの計算を完了するためにマクロ命令3,
4,5を通るループをさらに1019回行わせるため
の制御用マクロ命令である。マクロ命令#5は、
分岐マクロ命令であり、その各パラメータは次の
値をもつ。 1 1019 ループ・カウント−ループをさらに
1019回通過する。 2 2 2つのTCBを(マクロ命令#3に関連
する1つのものに)ブランチ・バツクす
る。 3 2 TCBを2回バツク修正する。 4 2 第2オペランド(R1)のポインタを増
分する。 5 1 増分値。 6 1 TCBを1回バツク修正する。 7 2 第2オペランド(R2)のポインタを増
分する。 8 1 増分値。 前述のように、連続する一連のマクロ命令につ
いては、関連するTCBが互いにストリング化さ
れ、TCBストリング・バツフア105内に置か
れる。上記のマクロ命令#5の説明で、これらの
マクロ・パラメータにおけるTCBへの参照は、
スーパ・マクロ命令の実行中にこれらのストリン
グにおけるTCB間で分岐し且つこれらのストリ
ングまたはTCBを動的に修正できることを示す
ものである。 この例について注意すべき点は、マクロ命令
#3の実行から得られてベクトル・レジスタR3
に入れられたベクトルが中間ベクトルレジスタな
いし一時ベクトル・レジスタであり、その内容は
AU20の外部に記憶されず、またそこから出力
されないことである。かかる中間レジスタの古い
内容は、ループ通過中にマクロ命令#3が実行さ
れる度にオーバレイされる。さらに、ベクトル・
レジスタ内でスーパ・マクロ命令の計算を行うこ
とにより、DTC52がAU20と記憶22の間で
データを転送するという意味での入出力活動は伴
わない。すなわち、これらの操作はバツフア記憶
中の各種ベクトル・レジスタについて作用する
AP50に対してローカルに且つ高速で行われる。
この種の分析は、SS操作のみを使用すると大量
の入出力活動を伴うために、極めて遅くなるはず
である。 上記の例で本発明の融通性と利点を示したが、
次にもういくつかの例について説明する。第3表
にあるような等化ステートメントを使用すること
によつて、ベクトル・オペランドの最初の要素が
どこにあるか、またはどこに記憶されるかを示す
開始アドレスが定義され、ベクトル操作の要素数
によつて関連するベクトル・オペランドの長さが
定義され、従つて関連するベクトル・レジスタの
長さが定義される。また、要素数の指定によつて
操作の数が定義される。かくて、ユーザは別々の
離散的ベクトル・オペランドを処理しうるだけで
なく、それらをオーバラツプさせることもできる
ようになる。例えば、2つのベクトル・レジスタ
が互いにn個の要素だけ離れたアドレスから開始
するように定義され、そしてこれらのベクトル・
オペランドの長さがnよりも大きいと指定されて
いるものと仮定する。そうすると、ベクトル・レ
ジスタのオーバラツプが実現されるので、信号処
理や離散的フーリエ変換のたたみ込みや、あるい
は行と列の両方にアクセスするマトリツクスたた
み込みの如きある種のベクトル解析技術で有用で
ある。ベクトル・オペランドはサブベクトルに分
解したり、再配列することができる。 G 発明の効果 上記のように、このシステムは個々のバツフア
記憶61と62が連続したアドレスをもつ、記憶
写像システムである。このため、ユーザは下側ア
ドレスのバツフア記憶に始まり且つもう一方のバ
ツフア記憶に延在する、仮想ベクトル・レジスタ
を定義することができる。例えば、各バツフア記
憶は4K個の要素を相当する記憶容量をもつ。ユ
ーザは最大8K個の要素を有する単一のベクト
ル・オペランドをセグメント化せずに処理するこ
とができる。ユーザは両方のバツフア記憶中で複
数の仮想ベクトル・レジスタを定義することもで
きる。 当業者には自明の、本発明のもう一つの利点
は、バツフア記憶61と62に仮想ベクトル・レ
ジスタを設け、それらのバツフア記憶を使用する
制御権をユーザに与えているために、ユーザは記
憶22に記憶されているずつと長いベクトル・オ
ペランドを、複数のセグメントに分解し、次に各
セグメントについて、レジスタ間形式の操作を実
施することによつてこれを処理できるということ
である。これによつて、ユーザが利用できる能力
と融通性が広がる。
第2B図) c ランダム・アクセス記憶40、プログラム記
憶54およびデータ記憶60の内容(第3図) d 分散処理システムの操作例(第4図及び第5
図) G 発明の効果 A 産業上の利用分野 本発明はベクトル処理システムに係り、更に詳
細に説明すれば、複数の仮想ベクトル・レジスタ
を設けることにより、ユーザが複数のベクトル・
オペランドのレジスタ間処理を制御することがで
きるようにした、改良されたベクトル処理システ
ムに係る。 B 開示の概要 本発明は、主記憶装置および処理装置を有する
ベクトル処理システムにおいて、上記主記憶装置
と上記処理装置の間に接続された高速のバツフア
記憶装置を複数の仮想ベクトル・レジスタとして
使用し、該仮想ベクトル・レジスタの数および該
仮想ベクトル・レジスタに保持されるオペランド
要素の数を問題(ユーザ)プログラム中の命令に
よつて指定することにより、ユーザがレジスタ間
ベクトル処理操作をきめ細かく制御できるように
したものである。 C 従来の技術 ベクトル処理は周知のデータ処理形式であつ
て、アレイないしベクトル・オペランドを処理対
象とするものである。「アレイ」および「ベクト
ル」という用語は同意語であり、以下ではこれら
の用語を区別せずにそのまま使用することにす
る。「ベクトル・オペランド」とは、一組の順序
づけられた、または関連づけられたデータ項目な
いしベクトル要素である。「ベクトル処理」は、
一般にベクトル・オペランドの各要素に対して同
一操作を実行することを含んでいる。従来技術の
一つのベクトル処理法では、ベクトル・オペラン
ドを主記憶に記憶する。ユーザ命令を実行する
と、記憶域間操作が実行されて、一つ以上のベク
トル・オペランドが主記憶から処理装置に入力さ
れ、そしてその処理結果が主記憶に戻される。 処理装置の操作速度は一般に、主記憶との間の
データ転送速度よりもかなり速いので、主記憶と
処理装置の間に高速バツフア(キヤツシユ)を接
続することができる。かかるバツフアの操作は、
記憶域間操作の間ユーザに対して透明であるのが
普通である。すなわち、この操作は自動的に実行
されるので、ユーザはバツフアの使用態様を制御
することができない。かかる制御はマイクロプロ
グラムによつて行われるのが普通であり、所与の
システムにおける各種のベクトル処理操作のそれ
ぞれについて予め定められている。 IBM3838アレイ処理装置では、処理装置と主
記憶の間に「作業用記憶」と呼ばれるバツフアが
接続されていた。これは米国特許第4041461号お
よび第4149243号に記載されている。かかる作業
用記憶は並行して働く2つのセクシヨンを含んで
いるので、一方のセクシヨンがオペランドを処理
装置に入力しその処理結果を受け取るとき、他方
のセクシヨンは以前の処理結果を主記憶へ出力す
るとともに、現処理の終了時に処理すべき新しい
オペランドを主記憶から受け取ることができる。
記憶制御機構が、作業用記憶と主記憶の間のデー
タ転送を制御する。ユーザから見ると、すべての
操作は記憶域間操作であり、作業用記憶の操作は
ユーザにとつて透明である。 上記のアーキテクチヤは、信号解析や地震信号
の処理でみられるような、1500〜2000個の要素か
ら成る比較的長いベクトル・オペランドを処理す
ることに適していた。処理の際、長いベクトル・
オペランドの各々はより少数の要素、例えば256
個の要素を含む複数のセグメントに分解された。
或るオペランドの最終セグメントは、一セグメン
トを構成する要素の総数よりも少ない要素を含む
ことがあり、従つてかかるセグメントは「剰余」
として処理された。一セグメントを構成する要素
の数よりも少ない要素を含むベクトル・オペラン
ドについては、かかる短いオペランドは剰余とほ
ぼ同じやり方で処理された。各セグメントは、操
作の種類および含まれるベクトル・オペランドの
数に応じて、作業用記憶の固定領域ないし予定領
域に割り当てられた。 複数のベクトル・レジスタを使用することも、
当該技術分野では周知である。IBM2938アレイ
処理装置は、XバツフアおよびYバツフアと呼ば
れる2つのベクトル・レジスタを含んでいた。各
バツフアは、比較的小さく、32個のベクトル要素
を収容した。すべてのベクトル操作は記憶域間処
理を経て実行され、その場合、一般に長いベクト
ル・オペランドは32個の要素から成るセグメント
に分解されて、そのセグメントの各々が記憶域間
処理の中間段階としてバツフアの一つに一時的に
記憶された。例えば、2つのベクトル・オペラン
ドが要素毎に加算されるとき、一つのベクトル・
オペランド・セグメントがXバツフアに記憶さ
れ、もう一つのベクトル・オペランド・セグメン
トがYバツフアに記憶された。次に、各バツフア
からの要素対が一つずつ加算されて結果要素を生
成し、それがXバツフアに戻されてその元の要素
にオーバーレイする形で記憶され、そしてその結
果として得られたベクトル・オペランド・セグメ
ントが主記憶に転送されるようになつていた。か
かるベクトル・レジスタの使用は、ユーザにとつ
て完全に透明であつた。 米国特許第4128880号は、8個のベクトル・レ
ジスタと関連する機能装置を備えた汎用データ処
理システムを開示しており、後者の機能装置は当
該システムをアレイ処理に適合させるように構成
されている。ベクトル・レジスタの各々はそれぞ
れ64個までのベクトル要素を記憶することが可能
であり、ユーザはこれらのベクトル・レジスタを
汎用レジスタと幾分か似た方法で利用することが
できる。 D 発明が解決しようとする問題点 しかしながら、このような従来技術において
は、ベクトル・レジスタの数や長さは固定されて
いて、ユーザはこれを制御することができなかつ
た。また、ベクトル・レジスタは作業用記憶ない
しキヤツシユの形式で実現されていたので、ユー
ザはその操作の細部を制御することができなかつ
た。というのは、作業用記憶やキヤツシユの操作
は、ユージにとつて透明にされていたからであ
る。 従つて、本発明の一目的は、作業用記憶バツフ
アとベクトル・レジスタの利点を新規なやり方で
組合せた、ベクトル処理システムを提供すること
である。 本発明の他の目的は、ユーザがベクトル・オペ
ランドのレジスタ間処理を実行するのに利用でき
る。サイズの異なる可変数のベクトル・レジスタ
を備えた、ベクトル処理システムを提供すること
である。 本発明の他の目的は、記憶域間およびレジスタ
間形式のベクトル処理を実行するのに使用される
作業用記憶を備えた、ベクトル処理システムを提
供することである。 本発明の他の目的は、記憶域間ベクトル操作を
追加的にサポートするのに必要なマシン・レベル
のコードの量を最小限に抑えることができるよう
な、ユーザが制御可能なレジスタ間ベクトル操作
を提供することである。 本発明の他の目的は、ある操作の結果がその後
のベクトル操作に使用できるようにベクトル・レ
ジスタに記憶される、バツフア・レジスタ間ベク
トル操作をユーザが制御できるようにすることで
ある。 本発明の他の目的は、従来技術のベクトル・レ
ジスタで得られるよりも高度の融通性と多くの機
能をもたらす、ユーザが制御可能な複数の仮想ベ
クトル・レジスタを提供することである。 本発明の他の目的は、ユーザまたはプログラマ
が利用できる複数の仮想ベクトル・レジスタを備
えた、ベクトル処理システムを提供することであ
る。 E 問題点を解決するための手段 簡単に言えば、本発明の上記の諸目的のあるも
のは、主記憶とベクトル処理装置の間に作業用記
憶ないしバツフア記憶を設けることによつて達成
される。バツフア記憶は、ユーザの制御下で働く
1つまたは複数の仮想ベクトル・レジスタを含ん
でいる。レジスタ間ベクトル操作の場合、ユーザ
は処理すべきベクトル・オペランドの長さ、実行
すべき操作の種類、およびどのベクトル・レジス
タを使用するかを指定する。かかる指定に応じて
希望する操作を実行する際、ベクトル・レジスタ
中の各ベクトル・オペランドが処理装置に入力さ
れ、そしてその結果ベクトル・オペランドがその
後の操作に使用できるようにベクトル・レジスタ
に置かれる。 本発明の他の特徴によれば、ベクトル処理は、
処理装置のコード・レベルで定義されるプログラ
ムによつて制御される。その場合、所与の機能ま
たは操作について、レジスタ間処理と記憶域間処
理に同じプログラムが使用される。記憶域間処理
は、予定パラメータをプログラムにパスすること
によつて制御され、レジスタ間処理はユーザのプ
ログラム命令に応じて生成されるパラメータをパ
スすることによつて制御される。 F 実施例 a 分散処理システムの一般的説明(第1図) 以下図面を参照して本発明の実施例を説明す
る。第1図はホスト・システム(HS)10とア
レイ処理システム(APS)11を含む分散処理
システムを示す。ホスト・システム10は、ホス
ト・プロセツサ12、ホスト記憶14、およびシ
ステム母線17を介して相互接続された外部通信
用周辺装置16を含んでいる。周辺装置16は、
プリンタ、CRTデイスプレイ、通常の周辺イン
ターフエースなどの通常の装置を含んでいる。ホ
スト・システム10は市販のIBM9001システム
であることが望ましい。 APS11は、アレイ処理システムの操作を制
御するためのプロセス制御装置(PCU)18を
含んでいる。さらにAPS11は、アレイ操作を
実行するための高速の演算装置(AU)20と、
アレイないしベクトル・オペランドを含む情報を
記憶するための記憶22を含んでいる。PCU1
8は、2本の母線26と27によつてAU20に
接続されている。記憶22も母線26に接続され
ている。さらにAPS11は、その選択機構とし
て、測定インターフエース24およびデータを分
析するのにアレイ操作が必要な種類のデータを生
成する測定装置25を含んでいる。 上記システムの操作において、HS10は分散
処理システム全体の制御を行う。しかし、アレイ
操作に関しては、アレイ操作を実行するための問
題(ユーザ)プログラムは、ホスト・プロセツサ
12ではなくてPCU18で実行される。HS10
は操作を開始して問題プログラムをPCU18に
ダウンロードするか、または問題プログラムを記
憶22からPCU18にロードするためのポイン
タをPCU18にパスする。このように、アレイ
操作をAPS11中で行うことによつて、HS10
は、これと同時に他の機能、たとえば一般的なハ
ウスキーピング機能、測定装置25の(データ収
集部分以外の)監視操作およびデータや結果を周
辺装置16から出力する操作などを行うことがで
きる。すなわち、HS10はアレイ操作には干渉
せず、しかもアレイ・オペランドの高速転送を低
下させたり、そのボトルネツクを作り出すことな
しに、制御、通信、入出力などの機能を並行して
行うことができるのである。上記の記述は、下記
でさらに詳しく説明する、本発明の環境を一般的
に示すためのものである。 b 分散処理システムの詳細構成(第2A図およ
び第2B図) 次に、第2A図と第2B図を参照すると、
PCU18は制御プロセツサ(CP)30を含み、
該プロセツサは母線32を介してアービタ34、
制御およびステータス・レジスタ36、プログラ
マブル読取り専用記憶(PROM)38、および
ランダム・アクセス記憶(RAM)40に接続さ
れている。PCU18のこれらのハードウエア・
エレメントは、一般にHS10の対応するエレメ
ントと同じであり、当該技術分野では周知である
ので、その詳細を省略する。この点については、
CP30はモトローラ社製のMC68000プロセツサ
を使用することができることを指摘しておけば十
分であろう。母線32は、選択的に働くスイツチ
(SW)41,42,43を介してシステムの他
の母線に接続されている。これらのスイツチは、
母線32を他の母線およびエレメントから電気的
に絶縁したり、またはこれらを電気的に接続する
働きをする。ここで述べる各種の母線は、データ
線とアドレス線のみならず、各種の制御線をも含
み、またスイツチ機能は制御線に影響を与えずに
アドレス線とデータ線について行われることを了
解すべきである。スイツチ41は、母線32を上
記の母線26に接続する。母線32はPCU18
の内部母線とみなされ、母線26は外部母線であ
る。母線26と32は一緒になつてその組合せの
セグメントを形成している。すなわち、母線26
と32は、それぞれこの2つのセグメントの組合
せによつて形成されるより大きな母線のセグメン
トである。 さらにPCU18は、母線45に接続された高
速の共用記憶44を含んでおり、また母線45は
スイツチ46,47に接続されている。スイツチ
46,47は、HS10またはPCU18からの信
号によつて作動し、HS10、PCU18または
AU20がデータ、オペランド、命令などを共用
記憶44に書き込みまたはそこから読み取れるよ
うにする。 AU20は、演算プロセツサ(AP)50とデ
ータ転送コントローラ(DTC)52の二つの主
要エレメントを含んでいる。AP50は、プログ
ラム記憶54に記憶されているプログラムを実行
する処理装置であり、プログラム記憶54はプロ
グラム母線55によつてAP50とスイツチ43
に接続されている。PCU18は、RAM40から
のプログラムをスイツチ43と母線55を経てプ
ログラム記憶54にロードして、AP50の操作
に備える。データ母線64はAP50に接続され
ており、アレイ操作を行う際に使用される各種の
オペランドとデータを提供する。データ母線64
は、オペランドと命令の並行取出しが可能なよう
に、プログラム母線55から分離している。デー
タ記憶60と係数記憶63は、一対のピンポン式
バツフア記憶61,62に入る母線64に接続さ
れている。データ記憶60は、中間結果、テーブ
ル、制御ブロツクなどを記憶するのに用いられ、
係数記憶63はアレイ操作に使用される各種の係
数を記憶する。バツフア記憶61,62はそれぞ
れスイツチ66,67によつてデータ母線64に
接続され、またそれぞれスイツチ70,71によ
つて母線26に接続されている。スイツチ66,
67,70,71はDTC52とAP50の制御下
で選択的に作動されて、バツフア記憶61,62
の一方がAP50と一緒に働き、他方がDTC50
の制御下で働くようにする。記憶22は、第1図
よりも第2図により詳しく示してあり、RAM7
4およびハード・デイスク・コントローラ76を
介して母線26に接続されたバード・デイスク7
5を含んでいる。APS11は、各種エレメント
がそのアドレスに応じて選択されるような記憶写
像システムである。この目的のために、PCU1
8とAU20の内部にアドレス・デコーダ78,
79′,79が設けられている。 以上に説明したシステムの操作において、アレ
イないしベクトル・オペランドが記憶22に記憶
される。かかるオペランドは、測定装置25、
HS10または以前の操作から引き出されたデー
タから取ることができる。HS10は、アレイ操
作を開始するために、問題プログラムをPCU1
8にダウンロードするか、または問題プログラム
が記憶22のどこに位置するかを示すポインタを
RAM40にパスする。アレイ操作が一度開始さ
れると、HS10は、測定装置25を監視したり、
データをCRTまたはプリンタに出力したり、あ
るいは通信回線を介して他のシステムにデータを
出力するなどの他の操作を自由に行うことができ
る。 「仮想」とは、ここではベクトル・レジスタが
事実上存在するけれども、実際には存在しないこ
とを意味する。というのは、これらのベクトル・
レジスタはバツフア記憶61,62中に形成され
るものの、該バツフア記憶61,62は通常の場
合は非ベクトル・レジスタ操作用のキヤツシユと
して働らくからである。このシステムをアレイ処
理に使用するには、ユーザは、関連するアレイ操
作を指定する一連の呼出しステートメントないし
呼出し命令を含むプログラムを書かねばならな
い。一般に、これらの操作は、記憶域間(SS)
操作、レジスタ間(RR)操作、記憶域−レジス
タ間(SR)操作、レジスタ−記憶域間(RS)操
作の4種類に分けられる。SS操作は、例えば上
記のIBM3838アレイ処理装置で行われるアレイ
操作と同様のものにすることができる。すなわ
ち、IBM3838アレイ処理装置では、主記憶に記
憶されている1つ以上のベクトル・オペランドを
作業用記憶に逐次に入力し、処理装置によつて結
果を生成し、次にその結果を作業用記憶を通して
転送し、最後に主記憶に記憶するようにしてい
る。RR操作は、これと同じ処理を含んでいる
が、入力ベクトルの供給源はベクトル・レジスタ
であり、そしてその出力ないし結果は下記にもつ
と詳しく説明するやり方でベクトル・レジスタに
置かれる。SR操作は、ベクトル・オペランドを
主記憶からベクトル・レジスタに入力できるよう
にするものであり、RS操作は、ベクトル・オペ
ランドをベクトル・レジスタから主記憶に出力で
きるようにするものである。作業用記憶の使用
は、SS操作の間はユーザにとつて透明であるが、
他の操作ではユーザがこれを制御する。 各種のベクトル操作は、問題プログラムに含ま
れる一組のマクロ命令または定義によつて規定さ
れる。マクロ命令の例として、一つのベクトル・
オペランドの各要素を他のベクトル・オペランド
の対応する要素に加算して和を生成し、それが結
果ベクトル・オペランドの対応する要素となるよ
うな、ベクトル操作を考えてみる。かかる操作
は、要素毎の加算と呼ばれている。SS操作およ
びRR操作用の関連するマクロ命令は、次のよう
なものである。 簡略命令コード パラメータ VADD n,V1,V2,V3 VADDR n,V1,V2,V3 ただし、nはベクトル・オペランド中の要素数
であり、Vxは各ベクトル・オペランドのベクト
ル識別子である。かかる識別子は、SS操作では
オペランドの最初の要素が記憶されている主記憶
中の記号アドレスを含み、RR操作ではベクト
ル・オペランドを記憶するためのベクトル・レジ
スタの識別子を含んでいる。この識別子は、また
基本アレイからベクトル・オペランドを生成する
ためのスキツプまたは増分値を含むことができ
る。 c ランダム・アクセス記憶40、プログラム記
憶54およびデータ記憶60の内容(第3図) 次に第3図を参照すると、問題プログラム10
0はPCU18中のRAM40に記憶されており、
これは行うべきアレイ操作を指定する各種の呼出
しステートメントまたは呼出しマクロを含んでい
る。各呼出しステートメントと関連する簡略命令
コードは、マクロ機能実行プログラム102への
入口点の名前を表わし、このプログラムもRAM
40に記憶されている。このプログラム102
は、コンパイル時に問題プログラムにリンクされ
る。問題プログラム100における呼出しに応じ
て、マクロ機能実行プログラム102は、アレイ
操作の実行をサポートするために適当な制御ブロ
ツク・パラメータを書式化し、実行をサポートす
るために係数テーブルとAUルーチンを更新し、
入力オペランドと制御ブロツク情報をAU20へ
転送する。このようにして、アレイ操作の実行が
開始され、これに応じて生成された結果の記憶が
行われることになる。マクロ機能実行プログラム
102は、タスク制御ブロツク(TCB)シエル
104をAUルーチン106を含んでいる。また
RAM40は、DTCパラメータ・バツフア110
を含んでおり、マクロ機能実行プログラム102
はAU20との間の情報転送を制御する際にDTC
52が使用する情報をこのバツフアに入れる。
RAM40のスカラ入出力バツフア112は、ア
レイ操作で使用されるスカラ情報を記憶する。行
うべき各アレイ操作ごとに、マクロ機能実行プロ
グラム102は、特定のルーチンおよび情報を含
んでいる。これらのルーチンおよび情報は、特定
のアレイ操作を実行するために、問題プログラム
中のマクロ命令に関連するユーザ・パラメータに
応じて発生されるものである。 特定の機能を実行するために必要な特定のAU
ルーチン106′は、プログラム記憶54にロー
ドされる。そのロード開始アドレスは、データ記
憶60中に設けられたAUルーチン・デイレクト
リ116に記憶されている。AU実行プログラム
114は当初はプログラム記憶54に記憶されて
おり、AP50の操作を制御する。AU実行プロ
グラム114がロードされると、AP50はルー
プないし遊休状態に置かれる。問題プログラム1
00中のマクロ命令に応じて、特定のTCBがデ
ータ記憶60中のTCBストリング・バツフア1
05にロードされる。このようにTCBがロード
されると、AP50はリセツト状態に強制される。
リセツト状態が解除されると、AU実行プログラ
ム114が処理の制御権をとつて、TCBによつ
て定義された特定のアレイ操作の実行を開始す
る。TCBの実行をサポートするために必要な、
APS20の外部におけるすべての入出力活動は、
マクロ機能実行プログラム102によつて管理さ
れる。 データ記憶60は、TCBストリング・バツフ
ア105とAUルーチン・デイレクトリ116を
含む実行パラメータ領域120を備えている。こ
の領域120は、AU実行プログラム114と
AUルーチン106′が使用するように厳格に予
約された領域である。さらに実行パラメータ領域
120は、共通に使用される係数のユーテイリテ
イ・ソースとしての実行定数124、係数テーブ
ルに対するポインタのデイレクトリ128、およ
び処理状態、実行コード・ポインタ、演算ルーチ
ンのユーザ・パラメータを定義するステータス・
ワード126を記憶している。 d 分散処理システムの操作例(第4図および第
5図) 第4図および第5図は、要素毎の加算を実行す
るための例示的なマクロ命令と関連する、例示的
なSS操作およびRR操作の情報の流れを示す概略
図である。矢印を付した各流れ線は、その線に関
連する円内の数字で識別される。各ステツプない
し流れ線は、図面番号とそれに続くステツプ番号
によつて特定することができる。例えば、ステツ
プ4−6は第4図のRAM40からDS60に向く
流れ線を指す。図示した例では、800個の要素を
有する2つのベクトル・オペランドV1,V2が
要素毎に加算されて、800個の要素を有するベク
トル・オペランドV3を生成する。SS操作の場
合、マクロ命令は次のように定義される。 VADD 800,A1,A2,A3 ただし、A1−A3は、各ベクトル・オペラン
ドの最初の要素が記憶されるRAM74中の開始
アドレスを表わす。 準備ステツプとして、RAM74の開始アドレ
スA1,A2にベクトル・オペランドV1,V2
を記憶することが必要である。ステツプ4−1に
おいて、CP30が問題プログラム100中の上
記マクロ命令にぶつかると、RAM40中のマク
ロ機能実行プログラム102のうちその特定のマ
クロ命令に対応する点に入つて、このアレイ操作
に関連する各種ステツプを開始する。最初のステ
ツプの1つは、バツフア記憶61と62のどちら
がベクトルを受け取るかをマクロ機能実行プログ
ラム102によつて判断することである。それが
判断されると、次の判断はかかるバツフアが使用
可能かどうか、または現在操作に使用できるよう
になる前にそれをアンロードしなければならない
かどうかを決定することである。例に挙げた特定
の状況で、BS61が選ばれるものと仮定すると、
かかるバツフア記憶が使用可能になる場合、ステ
ツプ4−2は必要な情報をRAM40中のDTCパ
ラメータ・バツフア110(第3図)からDTC
52に転送する。ステツプ4−3では、RAM7
4中の開始アドレスA1から始まるベクトルV1
の800個の要素が、BS61の開始アドレス0から
始まる複数の位置にすべて転送される。ステツプ
4−4では、RAM74中のアドレスA2から始
まるベクトルV2の800個の要素が、BS61のア
ドレス1024から始まる複数の位置にすべて転
送される。この特定のマクロ命令については、
BS61はそのアドレス0,1024,2048
でそれぞれ始まる3つの領域に分割されているの
で、各領域は最大1024個の要素から成るベクト
ル・オペランドをそれぞれ受け取ることができ
る。これらの開始アドレスは予め割り当てられて
おり、この特定マクロについては変わらない。 このようにベクトル・オペランドV1およびV
2がBS61に記憶され、そしてAP50が使用可
能になると、ステツプ4−5は関連するAUルー
チンをPS54に転送し、またステツプ4−6は
TCBシエル104をDS60のTCBストリング・
バツフア105に転送する。このTCBシエル1
04は、当該操作中に増分値が使用されないもの
と仮定すれば、以下の第1表に示した値を含んで
いる。ステツプ4−7は、BS61に記憶されて
いるベクトル・オペランドV1とV2のそれぞれ
からの2つの対応する要素を、AP50に入力し、
そこでこれらの要素が加算されて結果要素を与え
る。次のステツプ4−8では、この結果要素をベ
クトル・オペランドV3の一要素としてBS61
に転送する。ステツプ4−7と4−8は、ベクト
ル・オペランドV1およびV2の全ての要素が処
理されるまで、パイプライン式に800回行われる。
それが完了すると、AP50はこの操作による使
用から解放され、次にDTC52はステツプ4−
9を利用して結果ベクトルV3を転送し、それを
RAM74のアドレスA3から始まるベクトル・
オペランドV3の領域に記憶し、かくてこの操作
が完了する。 第1表 TCB(VADD)フイールド 1 L=TCBの長さ。 2 ID=OPコード。 3 第1ベクトル・オペランドの第一要素に対す
るバツフア記憶内でのO−オフセツト・アドレ
ス。 4 第2ベクトル・オペランドの第一要素に対す
るバツフア記憶内での1024−オフセツト・
アドレス。 5 結果ベクトル・オペランドの第一要素に対す
るバツフア記憶内での2048−オフセツト・
アドレス。 次に、第5図を参照してRR形式の加算操作の
例を説明する。マクロ命令VADDRの実行に先立
つ予備ステツプとして、ベクトル・オペランドV
1とV2がBS61中の仮想ベクトル・レジスタ
R1とR2にロードされる。選んだ特定の例は、
R1とR2が等化(equate)ステートメントに
よつてそれぞれBS61のアドレス800および0か
ら始まるように定義されているものである。かか
るアドレスは、ベクトル・オペランドが互いに連
続しており、そして先に第4図に関して説明した
ものとは逆の順であることを規定する。この点に
関して、BS61と62のどちらが使用され、そ
してかかるバツフアのどこにレジスタまたはベク
トル・レジスタが存在するかということを、ユー
ザが完全に支配できることに注意すべきである。
ステツプ5−1において、CP30はマクロ命令
にぶつかつてステツプ5−2を開始する。ステツ
プ5−2では、適当なAUルーチンがPS54中に
ない場合、このルーチンをPS54中に置く。ス
テツプ5−3では、RAM40中のTCBシエル1
04をDS60中のTCBストリング・バツフア1
05に転送し、そこでシエル・フイールドが第2
表に示した値で位置決めされる。次に支配権が
AP50に転送され、かくてステツプ5−4では、
ベクトル・オペランドV1とV2からの各オペラ
ンド要素がAP50に転送される。次のステツプ
5−5では、AP50はこれらの要素を処理して
ベクトル・オペランドV3の要素を生成し、それ
が仮想ベクトル・レジスタR3に記憶される。
800個の要素がすべて処理されると、操作は完了
する。 第2表 TCB(VADDR)フイールド 1 L=TCBの長さ。 2 ID=OPコード。 3 バツフア記憶におけるベクトル・レジスタR
1の800−オフセツト・アドレス。 4 ベクトル・レジスタR2のO−オフセツト・
アドレス。 5 ベクトル・レジスタR3の1600−オフセ
ツト・アドレス。 SS操作とRR操作に使用されるAUルーチンは
同一である。この2種の操作の違いは、SS操作
用のTCBシエル104が、通常はベクトル・オ
ペランドの各要素がバツフア記憶のどこに入れら
れるかを示す予定された開始アドレスを含んでい
ることである。これらの開始アドレスは、特定の
マクロ命令の各々については変わらない。それと
は対照的に、第2表のフイールド3−5にそれぞ
れ生じるアドレスは、RR操作については種々の
ベクトル・レジスタの開始アドレスでそれぞれ重
ね書きされるのである。これらの開始アドレスは
ユーザによつて予め定められており、従つてユー
ザはバツフア記憶の使用を完全に制御することが
できる。RR操作とSS操作の違いを対照的に説明
すると、両者の主な違いは、RRマクロ命令中の
オペランド参照は、AU20の外部にある記憶位
置について行われるのではなく、AU20の内部
にある記憶位置について行われるのであり、従つ
てRRマクロ命令の実行中にDTC52による入出
力転送活動は一切起こらないという点にある。さ
らに、RRマクロ命令中のTCBは互いにストリン
グ化されて単一の大きなマルチ・ステートメント
TCBを形成し、これによりスーパ・マクロ命令
の一部としてAU20におけるマクロ免令の実行
を開始することができるが、SSマクロ命令は常
に個別に実行されるにすぎない。さらに、AU2
0によるバツフア記憶の直接的な選択は、RRマ
クロ命令によつて定義されるが、SSマクロ命令
についてはマクロ機能実行プログラム102が選
択を行う。RRマクロ命令を使用するという一つ
の大きな利点は、通常マシンと共に提供される基
本のマクロ命令セツトでは提供されない追加機能
を生成するための大きな融通性がユーザに与えら
れることである。このため、ユーザはユーザ自身
が定義した機能を実施するためのスーパ・マクロ
命令のセツトを構成することができる。また以前
のアレイ処理からの出力を、追加処理のための入
力として使用することもできる。例えば、上記の
要素毎の加算に関連して説明すれば、ベクトルV
3が一度生成されると、それをその後のマクロ命
令またはアレイ操作に使用できる。 RR操作の使用の融通性とユーザが追加機能を
定義できる能力についてさらに説明すると、次の
例は5個の要素から成る基準フイールドを1024個
の要素から成るデータ・フイールドと相関させる
ようにして、大フイールドの相関を小フイールド
ごとに求めるようにしたものである。この分析の
数式は、下記に示すとおりである。 Zj=4 〓i=0 Xi+jEi (式1) Zjは結果ベクトル・オペランドZのj番目の要
素を表わし、jは0から1019まで変化する。 Xは大データ・フイールドの要素である。 Eは基準フイールドの要素である。 一般に、Zベクトル・オペランドの各要素は、
そのデータ・フイールドの連続する5個の要素に
基準フイールドの5個の要素を掛け、次にこれら
の5個の積を加えることによつて形成される。相
関分析を実施する一般的なやり方は、ユーザが
RAM40のスーパ・マクロ・ライブラリ113
に記憶されるスーパ・マクロ命令を生成するとい
うものである。スーパ・マクロ命令は、ユーザ・
プログラム100に置かれたラベルで呼び出され
る。説明中の例では、相関分析に関して使用され
るラベルがCORRであると仮定する。マクロ命令
生成プロセスの一部として、ユーザは使用される
仮想ベクトル・レジスタを定義しなければならな
い。なぜなら、ユーザは全面的な制御権、すなわ
ちバツフア記憶61と62のどちらがこれらの仮
想ベクトル・レジスタを含むことになり、所与の
バツフア記憶のどこにこれらの仮想ベクトル・レ
ジスタが配置され、そしてその各サイズがどのよ
うなものであるかを制御することができるからで
ある。次の第3表は、バツフア記憶61のシステ
ム・アドレスに対応するシステム16進アドレスを
用いた4つの等化(EQ)ステートメントによつ
てこれらのレジスタを定義したものである。 第3表 レジスタの定義ステートメント番号 レジスタ 16進アドレス (1) R0 EQ F90000 (2) R1 EQ F90004 (3) R2 EQ F90404 (4) R3 EQ F90804 以上のことから、レジスタR0は5個の基準要
素を収容し、レジスタR1は1024個のデータ要素
を収容し、レジスタR2はサイズが1024であるが
1020個の結果要素を収容し、レジスタR3は5個
の要素から成る中間ベクトル・オペランドを収容
することになる。 ラベル・シールRRで識別されるスーパ・マク
ロ命令中で使用される各種のマクロ定義は、次の
第4表に示されている。 第4表 ラベル:CORR マクロ命 令番号 簡略命令コ ード パラメータ 1 AULD (5、R0、REF) 2 AULO (1024、R1、DATA) 3 VMULR (5、R0、R1、R3) 4 SSUMR (5、R3、R2) 5 BRCHR (1020、2、2、2、 1、1、2、1) 6 AUST (1020、R2、RESULT) このスーパ・マクロ命令CORRを呼び出すため
の準備として、5個の基準値がRAM74の記号
アドレスREFから始まる複数の記憶位置に記憶
され、1024個のデータ要素がRAM74の記号ア
ドレスDATAから始まる複数の記憶位置に記憶
される。マクロ命令#1はSR形式のロード命令
であり、RAM74のアドレスREFから始まる5
個の基準要素を仮想ベクトル・レジスタR0に記
憶する。これによつて、これらの基準値がバツフ
ア記憶61にロードされるはずである。マクロ命
令#1に初めてぶつかると、マクロ機能実行プロ
グラム102は、BS61のアンロードの如き以
前の操作を完了し、次にバツフア記憶を使用する
制御権をユーザ・プログラム100に渡す。マク
ロ命令#2は1024個の要素をRAM74のアドレ
スDATAからベクトル・レジスタR1にロード
するための同様の命令である。マクロ命令#3
は、ベクトル・レジスタR0,R1からの5個の
要素をそれぞれ掛け合せ、それらの5個の積をベ
クトル・レジスタR3に記憶すべきことを指示す
る、ベクトル要素間乗算命令である。マクロ命令
#4は、ベクトル・レジスタR3に記憶されてい
る5個の要素を互いに加算してこの5個の要素に
対する単一のスカラ値を形成し、それをレジスタ
R2の一つの位置に記憶する、ベクトル加算プロ
セスである。これらのマクロ定義を通つた最初の
パスで、上記の式1に従つたベクトルZの最初の
要素が形成される。マクロ命令#5は、結果ベク
トルZの計算を完了するためにマクロ命令3,
4,5を通るループをさらに1019回行わせるため
の制御用マクロ命令である。マクロ命令#5は、
分岐マクロ命令であり、その各パラメータは次の
値をもつ。 1 1019 ループ・カウント−ループをさらに
1019回通過する。 2 2 2つのTCBを(マクロ命令#3に関連
する1つのものに)ブランチ・バツクす
る。 3 2 TCBを2回バツク修正する。 4 2 第2オペランド(R1)のポインタを増
分する。 5 1 増分値。 6 1 TCBを1回バツク修正する。 7 2 第2オペランド(R2)のポインタを増
分する。 8 1 増分値。 前述のように、連続する一連のマクロ命令につ
いては、関連するTCBが互いにストリング化さ
れ、TCBストリング・バツフア105内に置か
れる。上記のマクロ命令#5の説明で、これらの
マクロ・パラメータにおけるTCBへの参照は、
スーパ・マクロ命令の実行中にこれらのストリン
グにおけるTCB間で分岐し且つこれらのストリ
ングまたはTCBを動的に修正できることを示す
ものである。 この例について注意すべき点は、マクロ命令
#3の実行から得られてベクトル・レジスタR3
に入れられたベクトルが中間ベクトルレジスタな
いし一時ベクトル・レジスタであり、その内容は
AU20の外部に記憶されず、またそこから出力
されないことである。かかる中間レジスタの古い
内容は、ループ通過中にマクロ命令#3が実行さ
れる度にオーバレイされる。さらに、ベクトル・
レジスタ内でスーパ・マクロ命令の計算を行うこ
とにより、DTC52がAU20と記憶22の間で
データを転送するという意味での入出力活動は伴
わない。すなわち、これらの操作はバツフア記憶
中の各種ベクトル・レジスタについて作用する
AP50に対してローカルに且つ高速で行われる。
この種の分析は、SS操作のみを使用すると大量
の入出力活動を伴うために、極めて遅くなるはず
である。 上記の例で本発明の融通性と利点を示したが、
次にもういくつかの例について説明する。第3表
にあるような等化ステートメントを使用すること
によつて、ベクトル・オペランドの最初の要素が
どこにあるか、またはどこに記憶されるかを示す
開始アドレスが定義され、ベクトル操作の要素数
によつて関連するベクトル・オペランドの長さが
定義され、従つて関連するベクトル・レジスタの
長さが定義される。また、要素数の指定によつて
操作の数が定義される。かくて、ユーザは別々の
離散的ベクトル・オペランドを処理しうるだけで
なく、それらをオーバラツプさせることもできる
ようになる。例えば、2つのベクトル・レジスタ
が互いにn個の要素だけ離れたアドレスから開始
するように定義され、そしてこれらのベクトル・
オペランドの長さがnよりも大きいと指定されて
いるものと仮定する。そうすると、ベクトル・レ
ジスタのオーバラツプが実現されるので、信号処
理や離散的フーリエ変換のたたみ込みや、あるい
は行と列の両方にアクセスするマトリツクスたた
み込みの如きある種のベクトル解析技術で有用で
ある。ベクトル・オペランドはサブベクトルに分
解したり、再配列することができる。 G 発明の効果 上記のように、このシステムは個々のバツフア
記憶61と62が連続したアドレスをもつ、記憶
写像システムである。このため、ユーザは下側ア
ドレスのバツフア記憶に始まり且つもう一方のバ
ツフア記憶に延在する、仮想ベクトル・レジスタ
を定義することができる。例えば、各バツフア記
憶は4K個の要素を相当する記憶容量をもつ。ユ
ーザは最大8K個の要素を有する単一のベクト
ル・オペランドをセグメント化せずに処理するこ
とができる。ユーザは両方のバツフア記憶中で複
数の仮想ベクトル・レジスタを定義することもで
きる。 当業者には自明の、本発明のもう一つの利点
は、バツフア記憶61と62に仮想ベクトル・レ
ジスタを設け、それらのバツフア記憶を使用する
制御権をユーザに与えているために、ユーザは記
憶22に記憶されているずつと長いベクトル・オ
ペランドを、複数のセグメントに分解し、次に各
セグメントについて、レジスタ間形式の操作を実
施することによつてこれを処理できるということ
である。これによつて、ユーザが利用できる能力
と融通性が広がる。
第1図は、本発明を具体化した分散処理システ
ムの概略ブロツク図、第2図は、第2A図と第2
B図の結合様式を示す図、第2A図および第2B
図は、第1図に示した分散処理システムの詳細ブ
ロツク図、第3図ないし第5図は、本発明を具体
化したシステムの各種の操作を示す概略図であ
る。 30……制御プロセツサ(CP)、40……ラン
ダム・アクセス記憶(RAM)、50……演算プ
ロセツサ(AP)、54……プログラム記憶
(PS)、60……データ記憶(DS)、61,62
……バツフア記憶(BS)。
ムの概略ブロツク図、第2図は、第2A図と第2
B図の結合様式を示す図、第2A図および第2B
図は、第1図に示した分散処理システムの詳細ブ
ロツク図、第3図ないし第5図は、本発明を具体
化したシステムの各種の操作を示す概略図であ
る。 30……制御プロセツサ(CP)、40……ラン
ダム・アクセス記憶(RAM)、50……演算プ
ロセツサ(AP)、54……プログラム記憶
(PS)、60……データ記憶(DS)、61,62
……バツフア記憶(BS)。
Claims (1)
- 【特許請求の範囲】 1 下記の手段(a)ないし(c)を備えて成る、主記憶
装置及び処理装置を有するベクトル処理システ
ム。 (a) レジスタ間ベクトル処理操作を規定する少く
とも1つの命令を含むユーザ・プログラムを記
憶するための手段。前記命令は、第1ベクト
ル・オペランドの長さと該第1ベクトル・オペ
ランドを保持するソース仮想ベクトル・レジス
タと、前記ベクトル処理操作によつて得られる
第2ベクトル・オペランドを受取るための行先
仮想ベクトル・レジスタをそれぞれ指定する。 (b) 前記ソース仮想ベクトル・レジスタ及び前記
行先仮想ベクトル・レジスタを含む、長さが異
なる可変数の仮想ベクトル・レジスタを与える
ように、前記主記憶装置と前記処理装置の間に
接続された仮想ベクトル・レジスタ手段。仮想
ベクトル・レジスタの前記数は前記命令で指定
された仮想ベクトル・レジスタの数によつて決
定され、各仮想ベクトル・レジスタの長さは前
記命令で指定された関連するベクトル・オペラ
ンドの長さによつて決定される。 (c) 前記命令に応答して前記第1ベクトル・オペ
ランドを前記ソース仮想ベクトル・レジスタか
ら前記処理装置へ入力して前記第2ベクトル・
オペランドを生成せしめるとともに、該第2ベ
クトル・オペランドを前記処理装置から前記行
先仮想ベクトル・レジスタへ入力するように動
作する制御手段。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US623602 | 1984-06-22 | ||
| US06/623,602 US4771380A (en) | 1984-06-22 | 1984-06-22 | Virtual vector registers for vector processing system |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS619760A JPS619760A (ja) | 1986-01-17 |
| JPH0260026B2 true JPH0260026B2 (ja) | 1990-12-14 |
Family
ID=24498714
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP60030665A Granted JPS619760A (ja) | 1984-06-22 | 1985-02-20 | ベクトル処理システム |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US4771380A (ja) |
| EP (1) | EP0165539B1 (ja) |
| JP (1) | JPS619760A (ja) |
| AT (1) | ATE56293T1 (ja) |
| DE (1) | DE3579507D1 (ja) |
Families Citing this family (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5142681A (en) * | 1986-07-07 | 1992-08-25 | International Business Machines Corporation | APL-to-Fortran translators |
| US5063497A (en) * | 1987-07-01 | 1991-11-05 | Digital Equipment Corporation | Apparatus and method for recovering from missing page faults in vector data processing operations |
| US5369778A (en) * | 1987-08-21 | 1994-11-29 | Wang Laboratories, Inc. | Data processor that customizes program behavior by using a resource retrieval capability |
| US4888679A (en) * | 1988-01-11 | 1989-12-19 | Digital Equipment Corporation | Method and apparatus using a cache and main memory for both vector processing and scalar processing by prefetching cache blocks including vector data elements |
| CA2074769C (en) * | 1991-08-09 | 2001-03-20 | International Business Machines Corporation | Formula processor |
| US5418973A (en) * | 1992-06-22 | 1995-05-23 | Digital Equipment Corporation | Digital computer system with cache controller coordinating both vector and scalar operations |
| JP2752902B2 (ja) * | 1994-05-31 | 1998-05-18 | 甲府日本電気株式会社 | ベクトル処理装置 |
| US5881302A (en) * | 1994-05-31 | 1999-03-09 | Nec Corporation | Vector processing unit with reconfigurable data buffer |
| US5513366A (en) * | 1994-09-28 | 1996-04-30 | International Business Machines Corporation | Method and system for dynamically reconfiguring a register file in a vector processor |
| US5689653A (en) * | 1995-02-06 | 1997-11-18 | Hewlett-Packard Company | Vector memory operations |
| GB9514695D0 (en) * | 1995-07-18 | 1995-09-13 | Sgs Thomson Microelectronics | Combining data values |
| US5913069A (en) * | 1997-12-10 | 1999-06-15 | Cray Research, Inc. | Interleaving memory in distributed vector architecture multiprocessor system |
| US5946496A (en) * | 1997-12-10 | 1999-08-31 | Cray Research, Inc. | Distributed vector architecture |
| GB2343268B (en) * | 1998-10-30 | 2003-06-04 | Ericsson Telefon Ab L M | Memory devices |
| US8819311B2 (en) * | 2007-05-23 | 2014-08-26 | Rpx Corporation | Universal user input/output application layers |
| JP5699554B2 (ja) * | 2010-11-11 | 2015-04-15 | 富士通株式会社 | ベクトル処理回路、命令発行制御方法、及びプロセッサシステム |
| JP5971635B2 (ja) * | 2011-01-25 | 2016-08-17 | エヌエックスピー カナダ インコーポレイテッド | ベクトルユニット共有の装置および方法 |
| US20130024647A1 (en) * | 2011-07-20 | 2013-01-24 | Gove Darryl J | Cache backed vector registers |
| WO2017181017A1 (en) | 2016-04-15 | 2017-10-19 | Wal-Mart Stores, Inc. | Partiality vector refinement systems and methods through sample probing |
| GB2564610A (en) * | 2016-04-15 | 2019-01-16 | Walmart Apollo Llc | Systems and methods for providing content-based product recommendations |
| WO2017180977A1 (en) | 2016-04-15 | 2017-10-19 | Wal-Mart Stores, Inc. | Systems and methods for facilitating shopping in a physical retail facility |
| US20170371654A1 (en) * | 2016-06-23 | 2017-12-28 | Advanced Micro Devices, Inc. | System and method for using virtual vector register files |
| US10373464B2 (en) | 2016-07-07 | 2019-08-06 | Walmart Apollo, Llc | Apparatus and method for updating partiality vectors based on monitoring of person and his or her home |
| WO2018118189A1 (en) * | 2016-12-20 | 2018-06-28 | Walmart Apollo, Llc | Systems and methods for customizing content of a billboard |
Family Cites Families (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4041461A (en) * | 1975-07-25 | 1977-08-09 | International Business Machines Corporation | Signal analyzer system |
| US4128880A (en) * | 1976-06-30 | 1978-12-05 | Cray Research, Inc. | Computer vector register processing |
| JPS5852265B2 (ja) * | 1977-01-12 | 1983-11-21 | 株式会社日立製作所 | デ−タ処理装置 |
| US4149243A (en) * | 1977-10-20 | 1979-04-10 | International Business Machines Corporation | Distributed control architecture with post and wait logic |
| US4371927A (en) * | 1977-11-22 | 1983-02-01 | Honeywell Information Systems Inc. | Data processing system programmable pre-read capability |
| US4594682A (en) * | 1982-12-22 | 1986-06-10 | Ibm Corporation | Vector processing |
| US4661900A (en) * | 1983-04-25 | 1987-04-28 | Cray Research, Inc. | Flexible chaining in vector processor with selective use of vector registers as operand and result registers |
-
1984
- 1984-06-22 US US06/623,602 patent/US4771380A/en not_active Expired - Fee Related
-
1985
- 1985-02-20 JP JP60030665A patent/JPS619760A/ja active Granted
- 1985-06-11 DE DE8585107136T patent/DE3579507D1/de not_active Expired - Lifetime
- 1985-06-11 EP EP85107136A patent/EP0165539B1/en not_active Expired - Lifetime
- 1985-06-11 AT AT85107136T patent/ATE56293T1/de not_active IP Right Cessation
Also Published As
| Publication number | Publication date |
|---|---|
| US4771380A (en) | 1988-09-13 |
| DE3579507D1 (de) | 1990-10-11 |
| JPS619760A (ja) | 1986-01-17 |
| EP0165539A3 (en) | 1988-07-27 |
| EP0165539A2 (en) | 1985-12-27 |
| EP0165539B1 (en) | 1990-09-05 |
| ATE56293T1 (de) | 1990-09-15 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US4771380A (en) | Virtual vector registers for vector processing system | |
| US5261113A (en) | Apparatus and method for single operand register array for vector and scalar data processing operations | |
| US6542985B1 (en) | Event counter | |
| EP0378830B1 (en) | Method and apparatus for handling multiple condition codes as for a parallel pipeline computer | |
| US7467288B2 (en) | Vector register file with arbitrary vector addressing | |
| US5513366A (en) | Method and system for dynamically reconfiguring a register file in a vector processor | |
| US4016545A (en) | Plural memory controller apparatus | |
| US5203002A (en) | System with a multiport memory and N processing units for concurrently/individually executing 2N-multi-instruction-words at first/second transitions of a single clock cycle | |
| US4587632A (en) | Lookahead stack oriented computer | |
| JP2750311B2 (ja) | データ処理装置内のデータ・オペレーションの実行を制御する装置及び方法 | |
| EP0730226B1 (en) | Hardware support for fast software emulation of unimplemented instructions | |
| US6272596B1 (en) | Data processor | |
| US4228498A (en) | Multibus processor for increasing execution speed using a pipeline effect | |
| US4722071A (en) | Compiler for evaluating Boolean expressions | |
| EP0205809A2 (en) | Vector processing | |
| US4037213A (en) | Data processor using a four section instruction format for control of multi-operation functions by a single instruction | |
| US5881259A (en) | Input operand size and hi/low word selection control in data processing systems | |
| JPH0374434B2 (ja) | ||
| JPH0412503B2 (ja) | ||
| JPH03286332A (ja) | デジタルデータ処理装置 | |
| JPH0319986B2 (ja) | ||
| US4028670A (en) | Fetch instruction for operand address calculation | |
| EP0227900B1 (en) | Three address instruction data processing apparatus | |
| EP0260837B1 (en) | Microprocessor with selective cache memory | |
| US3942156A (en) | Indirect arithmetic control |