[go: up one dir, main page]

JP2602240B2 - マルチプロセツサシステム - Google Patents

マルチプロセツサシステム

Info

Publication number
JP2602240B2
JP2602240B2 JP62212755A JP21275587A JP2602240B2 JP 2602240 B2 JP2602240 B2 JP 2602240B2 JP 62212755 A JP62212755 A JP 62212755A JP 21275587 A JP21275587 A JP 21275587A JP 2602240 B2 JP2602240 B2 JP 2602240B2
Authority
JP
Japan
Prior art keywords
field
vector
signal line
instruction
register
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 - Fee Related
Application number
JP62212755A
Other languages
English (en)
Other versions
JPS6457366A (en
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP62212755A priority Critical patent/JP2602240B2/ja
Priority to US07/237,418 priority patent/US5109499A/en
Publication of JPS6457366A publication Critical patent/JPS6457366A/ja
Application granted granted Critical
Publication of JP2602240B2 publication Critical patent/JP2602240B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30032Movement instructions, e.g. MOVE, SHIFT, ROTATE, SHUFFLE
    • 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
    • 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/8092Array of vector units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30003Arrangements for executing specific machine instructions
    • G06F9/30007Arrangements for executing specific machine instructions to perform operations on data operands
    • G06F9/30036Instructions to perform operations on packed data, e.g. vector, tile or matrix operations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/30098Register arrangements
    • G06F9/30105Register structure
    • G06F9/30109Register structure having multiple operands in a single register

Landscapes

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

Description

【発明の詳細な説明】 〔産業上の利用分野〕 本発明はマルチプロセツサ構成の計算機システムにお
けるプロセツサ間の同期通信制御方式に関する。
〔従来の技術〕
科学技術計算の高速処理を目的としてベクトルプロセ
ツサが開発されている。ベクトルプロセツサは、単一プ
ロセツサでも高性能を発揮するが、さらに性能を向上さ
せるため、複数台のベクトルプロセツサを結合し、これ
らのプロセツサを並列に動作させるマルチプロセツサ構
成のベクトルプロセツサシステム(以下、マルチベクト
ルプロセツサと呼ぶ)が開発されている。
マルチベクトルプロセツサの従来技術として、特開昭
60−37064がある。
〔発明が解決しようとする問題点〕
マルチベクトルプロセツサには次のような利用形態が
ある。
(1)複数のプロセツサで一つのプログラムを実行す
る。即ち、一つのプログラムを複数個のタスクに分割
し、各タスクを複数のプロセツサで並列に処理して性能
向上をはかる。
(2)それぞれのプロセツサが別々のプログラムを並列
に処理する。即ち、複数個のプログラムが同時に処理さ
れる。
(3)(1)と(2)の組合せ このような形態で使用されるマルチベクトルプロセツ
サにおいては、プロセツサ間の同期あるいは通信手段に
次の機能が備つていることが必要である。
(1)プロセツサ間で高速の通信、すなわち高速のデー
タ転送が可能であること。
(2)各プロセツサで実行されるタクス間の同期が高速
にとれること (3)異なるプログラムを処理しているプロセツサ間で
不当な干渉が発生しないこと。
ここで、(1),(2)は複数のプロセツサで一つの
プログラムを処理する場合に重要な機能であり、(3)
は複数のプログラムを別々のプロセツサ群で同時に処理
する場合に重要な機能である。
本発明の目的は、マルチプロセツサ構成のベクトルプ
ロセツサにおいて、一つのプログラムを複数個のプロセ
ツサで処理するときには、プロセツサ間で高速に同期を
とることとプロセツサ間で高速にデータを転送すること
を可能にし、また、複数のプログラムを別個のプロセツ
サ群で処理するときには、プロセツサ群同志で不当な干
渉が生じないようにすることにある。
〔問題点を解決するための手段〕
上記目的は次のような手段を設けることにより達成さ
れる。すなわち、マルチプロセツサを構成するすべての
ベクトルプロセツサからアクセス可能な共有ベクトルレ
ジスタを設け、ベクトルプロセツサ間で高速のベクトル
データ転送を可能とする。この共有ベクトルレジスタ
は、ベクトルデータの値を保持するデータフイールドの
他に、異なるプロセツサ間で共有ベクトルレジスタを介
してベクトルデータのやりとりをするとき、データ送受
の同期をとるために使用するアクセス制御フイールドを
データフイールド対応に、また共有ベクトルレジスタの
それぞれについて、該ベクトルレジスタの参照が許され
たベクトルロセツサの番号を管理するアクセス権フイー
ルドを設ける。このような3種のフイールドをもつ共有
ベクトルレジスタを操法する命令としては、 (1)共有ベクトルレジスタと各々のベクトルプロセツ
サ内のベクトルレジスタとの間でデータを転送する命令 (2)共有ベクトルレジスタと主記憶との間でデータを
転送する命令 (3)共有ベクトルレジスタのアクセス権フイールドの
内容を変更する命令、およびその内容を読み出す命令 の3種の命令を設ける。ここで、(1),(2)の命令
においては、共有ベクトルレジスタのデータフイールド
を参照するときに各データフイールドに対応するアクセ
ス制御フイールドの値がどのようになつていなければな
らないのかを指定する機能、および各データフイールド
を参照後、各データフイールドに対応するアクセス制御
フイールドの内容をどのように変更するかを指定する機
能を合わせて持つ。また、(1),(2)の命令が実行
されるときには、参照する共有ベクトルレジスタのアク
セス権フイールドが参照され、参照が許可されていない
プロセツサからの参照要求であれば、参照要求は拒絶さ
れる。(3)の命令は特権命令と、システムプログラム
のみが使用できるようにすることが望ましい。
〔作用〕
一つのプログラムを複数のタスクに分割し、各々のタ
スクを別々のプロセツサで並列に処理するとき、タスク
間でベクトルデータのやりとりを行うときには、送り側
ベクトルプロセツサから共有ベクトルレジスタにベクト
ルデータを書き込み、書き込まれた共有ベクトルプロセ
ツサの内容を受側ベクトルプロセツサが読み出すことに
より、ベクトルデータを主記憶を介さずに高速に送受す
ることができる。このとき、共有ベクトルレジスタのア
クセス制御フイールドを使用することにより、ベクトル
データの送受の同期を極めて効率良くとりながらベクト
ルデータのやりとりができる。すなわち、送り側ベクト
ルプロセツサが共有ベクトルレジスタにベクトルデータ
を書込むときには、各データフイールドに対応するアク
セス制御フイールドの値にかかわらずデータを書き込
み、書き込み後、書き込んだデータフイールドに対応す
るアクセス制御フイールドの値を例えば1に変更するよ
うに指定して、共有ベクトルレジスタへの書き込みを行
つたことを指定する。また、受側ベクトルレジスタが共
有ベクトルレジスタに書込まれたベクトルデータを読み
出すときには、各データフイールドに対応するアクセス
制御フイールドの値が1になつているベクトル要素のみ
読出すように指定し、読出した後のアクセス制御フイー
ルドの値を例えば0に変更するように指定して、共有ベ
クトルレジスタの内容を読み出す。このようにすれば、
プロセツサ間のベクトルデータの送受が各ベクトル要素
単位に行われ、かつ送り側ベクトルプロセツサからの共
有ベクトルレジスタへのベクトルデータの書込みと、受
側ベクトルプロセツサによる該共有ベクトルレジスタの
読出しとを並行して処理することができる。すなわち、
送り側ベクトルプロセツサから共有ベクトルレジスタへ
データを書込む命令と、受側プロセツサから共有ベクト
ルレジスタの内容を読出す命令を同時に開始してよく、
ベクトルデータの各要素が書込まれる毎にその要素を書
込んだデータフイールドに対応するアクセス制御フイー
ルドの値が1になり、ベクトルデータを読出す命令は値
が1に変わつたアクセス制御フイールドに対応するデー
タフイールドの値を読み出すので、ベクトルデータの送
受の順序関係をそこねることなくベクトルデータの送受
が高速に行われる。また、受側ベクトルプロセツサが送
り側ベクトルプロセツサにより書込まれたベクトルデー
タを2度以上参照するときには、最後の参照を行う共有
ベクトルレジスタの読出しにおいては、読出し後のアク
セス制御フイールドの値を0に変更するように指定し、
それ以前の参照のための命令においては、参照後のアク
セス制御フイールドの値を変更しないように指定すれば
実現できる。
また、複数台のベクトルプロセツサのうちの何台かを
あるプログラムの処理に使用し、それらのプロセツサ間
では共有ベクトルレジスタを使用して同期通信を行い、
別の何台かのプロセツサにより別のあるプログラムを、
やはり共有ベクトルレジスタを用いて同期通信を行いな
がら処理するときには、前記のプログラムで用いる共有
ベクトルレジスタと後者のプログラムで使用する共有ベ
クトルレジスタとを区別し、前者のプログラムで使用す
る共有ベクトルレジスタは前者のプログラムを処理する
プロセツサだけが、また後者のプログラムで使用する共
有ベクトルレジスタは後者のプログラムを処理するプロ
セツサだけが参照できるよう各々の共有ベクトルレジス
タのアクセス権フイールドに設定しておけば、行なるプ
ログラム間で共有ベクトルレジスタを誤つて使用して互
いに干渉しあうことを防護できる。ここで、アクセス権
フイールドへの値の設定は、システムの保全を考えて、
オペレーテイングシステムなどのシステムプログラムが
行うようにしておけばよい。
〔実施例〕
以下、本発明の一実施例を詳細に説明する。
第2図は、本発明の一実施例のマルチベクトルプロセ
ツサの全体構成を説明する図である。第2図において、
100は本発明の特徴である共有ベクトルレジスタ群であ
る。詳細は後述する。200ないし203はそれぞれベクトル
プロセツサである。本実施例では、4台のベクトルプロ
セツサのマルチプロセツサとなつているが、4台という
ことに特に意味はなく、何台であつてもよい。200ない
し203のベクトルプロセツサの内部の構造は、例えば日
本出願特許特公61−52512にあるようなベクトルプロセ
ツサであり、ベクトルレジスタやパイプライン構造の演
算器などをもつ。300は主記憶装置である。350ないし35
3は各々のベクトルプロセツサと主記憶とを結ぶ信号線
群であり、制御信号線とデータ信号線とから構成されて
いる。各々のベクトルプロセツサは主記憶を介して互い
に結合されている。400ないし403は、各々のベクトルプ
ロセツサと共有ベクトルレジスタ群との間を結ぶ信号線
群であり、制御信号線群とデータ信号線群とからなつて
いる。各々のベクトルプロセツサは共有ベクトルレジス
タ群を介して互いに結合されている。第2図の200〜203
のベクトルプロセツサはそれぞれ命令制御部をもち(図
示せず)、互いに独立して動作することができる。
第3図に、第2図の100の共有ベクトルレジスタ群の
論理的な構成の一実施例を示す。本実施例の共有ベクト
ルレジスタ群は、16個の共有ベクトルレジスタから構成
され、第0番から第15番まで番号付けされている(それ
ぞれCVR0,CVR1,…,CVR14,CVR15と略す)。ここで、共有
ベクトルレジスタの本数が16個かどうかということは本
発明の本質ではなく、何個であつてもさしつかえない。
1個の共有ベクトルレジスタは次の3種のフイールドか
ら構成されている。
(1)データフイールド(Dフイールドと略す) ベクトルデータの値を保持するフイールドである。本
実施例においては、1個の共有ベクトルレジスタで最大
256個の要素から成るベクトルデータを保持することが
できる。また、1個の要素のデータ幅は64ビツトであ
る。1個の共有ベクトルレジスタで保持することができ
るベクトル要素データの数を、共有ベクトルレジスタの
長さという。本実施例の場合、共有ベクトルレジスタの
長さは256である。1個の共有ベクトルレジスタにおい
ては、その長さに等しい数のDフイールドがあり、それ
ぞれに番号付けされている。本実施例の場合は、0,1,
…,255と番号付けされている。
(2)アクセス制御フイールド(ACフイールドと略す) 1個の共有ベクトルレジスタにおいて、その長さに等
しい数だけACフイールドが存在し、番号付けされてい
る。本実施例の場合は、0,1,…,255と番号付けされてい
る。1個の共有ベクトルレジスタにおいて、番号が同じ
であるDフイールドとACフイールドは対応関係がある。
ACフイールドはそれぞれ1ビツト幅であり、セツト状
態,リセツト状態の2つの状態がある。
(3)アクセス権フイールド(Rフイールド) 1個の共有ベクトルレジスタに1個存在する。データ
幅はマルチベクトルプロスセツサを構成するベクトルプ
ロセツサの台数に等しいかそれより大きい数のビツト数
あればよく、本実施例の場合、4ビツトである。各ビツ
トには、0,1,2,3のビツト位置を示す番号が付されてお
り、各ビツトはマルチベクトルプロセツサを構成するベ
クトルプロセツサの番号に対応している。すなわち、R
フイールドのビツト0の値が1のとき、プロセツサ番号
0のベクトルプロセツサから該共有ベクトルレジスタへ
への参照要求は許可され、ビツト0の値が0のとき、プ
ロセツサ番号0のベクトルプロセツサから該ベクトルレ
ジスタへの参照要求は拒絶される。Rフイールドのビツ
ト0は、プロセツサ番号0以外のベクトルプロセツサか
らの該共有ベクトルレジスタの参照要求には何ら関与し
ない。また、例えばRフイールドのビツト0とビツト1
の値がいずれも1の場合は、プロセツサ番号0およびプ
ロセツサ番号1のいずれのベクトルプロセツサからの該
共有ベクトルレジスタへの参照も許可される。従つて、
例えば、あるプログラムを二つのタスクに分割し、それ
ぞれのタスクをプロセツサ番号0のベクトルプロセツサ
とプロセツサ番号1のベクトルプロセツサで並列に処理
し、かつ共有ベクトルレジスタの第0番と第1番(CVR
0,CVR1)を使つてタスク間でベクトルデータの通信が行
われるときには、プログラムの実行開始前にCVR0とCVR1
のRフイールドのビツト0とビツト1を値1、ビツト2
とビツト3を値0としておけばよい。
次に、共有ベクトルレジスタを操作する命令の一実施
例について説明する。これ等を命令は、マルチベクトル
プロセツサを構成する各々のベクトルプロセツサで実行
される命令である。
まず最初に、共有ベクトルレジスタ操作命令のフオー
マツトの実施例を第4図により説明する。本実施例にお
いては、命令の長さは4バイト(=32ビツト)であり、
5個のフイールドから構成されている。命令のビツト0
〜15の16ビツトはOPフイールド、ビツト16〜19の4ビツ
トはR1フイールド、ビツト20〜23の4ビツトはR2フイー
ルド、ビツト24〜27の4ビツトはAC0フイールド、ビツ
ト28〜31の4ビツトはAC1フイールドである。
OPフイールドは命令コードを指定し、R1フイールド、
R2フイールドはそれぞれ共有ベクトルレジスタの番号ま
たは各ベクトルプロセツサ内のベクトルレジスタの番号
を指定するフイールドである。
AC0フイールドは、共有ベクトルレジスタを参照する
ときの共有ベクトルレジスタのアクセス制御フイールド
の条件を指定するフイールドである。
AC1フイールドは、共有ベクトルレジスタを参照した
後にその共有ベクトルレジスタのアクセス制御フイール
ドの値をどのように設定するかを指定するフイールドで
ある。
AC0フイールド、AC1フイールドで指定される値とその
意味を第5図に示す。
次に、共有ベクトルレジスタを操作する命令を具体的
に説明する。
(1)RCVR命令 (Read CVR) R2フイールドで指定される共有ベクトルレジスタの内
容を読みだし、R1フイールドで指定されるベクトルレジ
スタに書き込む命令である。R1フイールドで指定される
ベクトルレジスタは本命令を発行するベクトルプロセツ
サ内のベクトルレジスタである。命令のR1フイールド
で、本命令を発行するベクトルプロセツサ内のベクトル
レジスタの番号を指定する。命令のR2フイールドで、共
有ベクトルレジスタの番号を指定する。命令のAC0フイ
ールドで、共有ベクトルレジスタを読みだすときのアク
セス制御フイールドの条件を指定する。指定する値とそ
の意味は第5図に示した通りである。AC1フイールド
で、共有ベクトルレジスタの読みだしが完了したときに
設定するアクセス制御フイールドの値を指定する。指定
する値とその意味は第5図に示した通りである。
本命令の処理において、AC0フイールドで指定された
アクセス制御フイールドの条件のチエツク、共有ベクト
ルレジスタのデータフイールドの読みだし、およびAC1
フイールドで指定されるアクセス制御フイールドの値を
設定処理は共有ベクトルレジスタの各ベクトル要素ごと
に順次行なわれる。例えば、第10番目のベクトル要素の
処理に於いて、第10番目のベクトル要素に対応するアク
セス制御フイールドの値がAC0フイールドで指定される
条件と一致しない場合は条件が満たされるまで待ち、条
件が満たされたら第10番目の要素に対応するデータフイ
ールドの値を読みだしてR1フイールドで指定されるベク
トルレジスタへの書き込み処理を行なうと共に、AC1フ
イールドで指定される内容に従つて第10番目の要素に対
応するアクセス制御フイールドの値を変更し、第11番目
のベクトル要素の処理に移る。
(2)WCVR命令 (Write CVR) R2フイールドで指定されるベクトルレジスタの内容を
読みだし、R1フイールドで指定される共有ベクトルレジ
スタに書き込む命令である。
R2フイールドで指定されるベクトルレジスタは本命令
を発行するベクトルプロセツサ内のベクトルレジスタで
ある。命令のR1フイールドで、共有ベクトルレジスタの
番号を指定する。命令のR2フイールドで、本命令を発行
するベクトルプロセツサ内のベクトルレジスタの番号を
指定する。命令のAC0フイールドで、共有ベクトルレジ
スタに書き込むときのアクセス制御フイールドの条件を
指定する。指定する値とその意味は第5図に示した通り
である。AC1フイールドで、共有ベクトルレジスタへの
書き込みが完了したときに設定するアクセス制御フイー
ルドの値を指定する。指定する値とその意味は第5図に
示した通りである。
本命令の処理において、AC0フイールドで指定された
アクセス制御フイールドの条件のチエツク、共有ベクト
ルレジスタのデータフイールドへの書き込み、およびAC
1フイールドで指定されるアクセス制御フイールドの値
の設定処理は、RCVR命令と同様、共有ベクトルレジスタ
の各ベクトル要素ごとに順次行なわれる。
(3)LCVR命令 (Load CVR) 主記憶上のデータを、R1フイールドで指定される共有
ベクトルレジスタにロードする命令である。命令のR1フ
イールドで、共有ベクトルレジスタの番号を指定する。
命令のR2フイールドで、主記憶上のデータの所在を示す
汎用レジスタの番号を指定する。指定される汎用レジス
タは本命令を発行するベクトルプロセツサ内の汎用レジ
スタである。命令のAC0フイールドで、共有ベクトルレ
ジスタにデータをロードするときのアクセス制御フイー
ルドの条件を指定する。指定する値とその意味は第5図
に示した通りである。AC1フイールドで、共有ベクトル
レジスタへのロードが完了したときに設定するアクセス
制御フイールドの値を指定する。指定する値とその意味
は第5図に示した通りである。
本命令の処理において、AC0フイールドで指定された
アクセス制御フイールドの条件のチエツク、共有ベクト
ルレジスタのデータフイールドへのロード、およAC1フ
イールドで指定されるアクセス制御フイードの値の設定
処置は、WCVR命令と同様、共有ベクトルレジスタの各ベ
クトル要素ごとに順次行なわれる。
R2フイールドにおいて0を指定したときには、共有ベ
クトルレジスタへのデータのロードは行なわれず、また
AC0フイールドの指定内容も無視されて、AC1フイールド
で指定される内容に従つて、R1フイールドで指定された
共有ベクトルレジスタのアクセス制御フイールドの値だ
けが変更される。すなわち、ある共有ベクトルレジスタ
のアスセス制御フイールドのみを変更したいときには、
本命令に於いて、R2フイールドに0を指定すればよい。
(4)STCVR命令 (Store CVR) R1フイールドで指定される共有ベクトルレジスタの内
容を主記憶にストアする命令である。命令のR1フイール
ドで、共有ベクトルレジスタの番号を指定する。命令の
R2フイールドで、データをストアする主記憶のアドレス
が保持されている汎用レジスタの番号を指定する。指定
される汎用レジスタは本命令を発行するベクトルプロセ
ツサ内の汎用レジスタである。命令のAC0フイールド
で、共有ベクトルレジスタのデータをストアするときの
アクセス制御フイールドの条件を指定する。指定する値
とその意味は第5図に示した通りである。AC1フイール
ドで、共有ベクトルレジスタのストアが完了したときに
設定するアクセス制御フイールドの値を指定する。指定
する値とその意味は第5図に示した通りである。
本命令の処理において、AC0フイールドで指定された
アクセス制御フイールドの条件のチエツク、共有ベクト
ルレジスタのデータフイールドの主記憶へのストア、お
よびAC1フイールドで指定されるアクセス制御フイール
ドの値の設定処理は、RCVR命令と同様、共有ベクトルレ
ジスタの各ベクトル要素ごとに順次行なわれる。
R2フイールドにおいて0を指定したときには、共有ベ
クトルレジスタのデータのストアは行なわれず、またAC
0フイールドの指定内容も無視されて、AC1フイールドで
指定される内容に従つて、R1フイールドで指定された共
有ベクトルレジスタのアクセス制御フイールドの値だけ
が変更される。すなわち、ある共有ベクトルレジスタの
アクセス制御フイールドのみを変更したいときには、本
命令に於いて、R2フイールドに0を指定すればよい。
この他、共有ベクトルレジスタのアクセス権フイール
ドを操作する命令として、以下の命令がある。これらの
命令はいずれも特権命令であり、オペレーテイングシス
テムのみが使用出来る命令である。
(1)SRCVR命令 (Set Rfield of CVR) R1フイールドで指定される共有ベクトルレジスタのア
クセス権フイールドに、主記憶上のデータをセツトする
命令である。セツトすべきデータの主記憶上のアドレス
は、R2フイールドで指定される汎用レジスタ保持してい
る。命令のR1フイールドで共有ベクトルレジスタの番号
を指定する。命令のR2フイールドで汎用レジスタの番号
を指定する。命令のAC0フイールド、AC1フイールドは使
用されない。
(2)STRCVR命令 (Store Rfield of CVR) R1フイールドで指定される共有ベクトレジスタのアク
セス権フイールドの内容を、主記憶上に格納する命令で
ある。格納するアドレスはR2フイールドで指定される汎
用レジスタが保持している。命令のR1フイールドで共有
ベクトルレジスタの番号を指定する。命令のR2フイール
ドで汎用レジスタの番号を指定する。命令のAC0フイー
ルド、AC1フイールドは使用されない。
では次に、以上のような本発明の実施例の共有ベクト
ルレジスタ操作命令を処理する共有ベクトルレジスタの
構成について述べる。
第1図は、第2図のCVR群100の詳細を示した図であ
る。110,111,112,113はそれぞれCVR群と各CPUとのイン
タフエース部であり、内部の構成は全く同一である。CP
Uインタフエース部110は信号線群400を介し第2図のCPU
の200と結合されている。同様に、CPUインタフエース部
111は信号線群401を介し第2図のCPUの201と、CPUイン
タフエース部112は信号線群402を介し第2図のCPUの202
と、CPUインタフエース部113は信号線群403を介し第2
図のCPUの203とそれぞれ結合されている。第1図に於い
て、120−0ないし120−15は共有ベクトルレジスタ本体
であり、その詳細は後述する。第1図に於いて、130はC
VR読みだしスイツチマトリクスであり、各CVRの読み出
しに関し、各CVRと各CPUインタフエース部とを対応付け
る回路である。信号線群150−0ないし150−3はそれぞ
れCVR読みだしスイツチマトリクス回路130とCPUインタ
フエース部110ないし113とを結合する信号線群であり、
CVRの読みだしに関する制御情報やCVRから読みだしたデ
ータをそれぞれのCPUインタフエース部とやりとりする
のに使用される。信号線群160−0ないし160−3はそれ
ぞれCVR読みだしスイツチマトリクスを設定する情報を
各CPUインタフエース部から供給する信号線群である。
第1図に於いて、140はCVR書き込みスイツチマトリクス
であり、各CVRの書き込みに関し、各CVRと各CPUインタ
フエース部とを対応付ける回路である。信号線群170−
0ないし170−3はそれぞれCVR書き込みスイツチマトリ
クス回路140とCPUインタフエース部110ないし113とを結
合する信号線群であり、CVRの書き込みに関する制御情
報やCVRへ書き込むデータをそれぞれのCPUインタフエー
ス部とやりとりするのに使用される。信号線群180−0
ないし180−3はそれぞれCVR書き込みスイツチマトリク
スを設定する情報を各CPUインタフエース部から供給す
る信号線群である。
次に、第1図におけるCPUインタフエース部110ないし
113の詳細を第6図により説明する。第6図に於いて
は、第1図のCPUインタフエース部110の構成について示
すが、第1図のその他のCPUインタフエース部111,112,1
13も同様の構成である。CPUインタフエース部110は信号
線群400を介し、CPU0と結合されている。信号線群400を
介し伝達される情報の詳細を第6図により説明する。信
号線400−1によりCPU0からCVR参照の起動信号が伝達さ
れる。信号線400−2により参照するCVRの番号、信号線
400−3により読みだしや書き込みなどのCVR参照の種
類、信号線400−4により参照前のアクセス制御フイー
ルドの値(命令のAC0フイールドで指定される値)、信
号線400−5によりCVR参照後に設定すべきアクセス制御
フイールドの値(命令のAC1フイールドで指定される
値)が送られてくる。信号線400−6により処理するベ
クトルの要素数(ベクトル長)が送られてくる。信号線
400−7,400−8,400−9はCPU0との間でCVRに書き込んだ
り読みだしたりするデータの受け渡しを行なうときの制
御信号線である。信号線400−7は、CPU0からのデータ
送出指示信号であり、本信号とともに信号線400−10よ
りデータが送られてきて、レジスタ110−1に設定され
る。信号線400−8は、CVRから読みだしたデータをCPU0
に送出するときのデータ送出指示信号であり、本信号と
ともに信号線400−11よりデータがCPU0に送られる。信
号線400−9は、一つのCVR参照命令に関する最後のデー
タを信号線400−11から送出するときにオンとなる信号
であり、最終ベクトル要素の送出を指示する信号であ
る。第6図に於いて、信号線群150−0,170−0はCVR読
みだしスイツチマトリクスを介し各CVRと結合されるも
のである。また、信号線群160−0,180−0はCVR書き込
みスイツチマトリクスを介し各CVRと結合されるもので
ある。ここで、信号線群150−0と170−0、160−0と1
80−0とは結合される相手が読みだしスイツチマトリク
スか書き込みスイツチマトリクスかがちがうだけで、送
受される情報の内容は同様である。送受される情報の内
容の総裁を第6図により説明する。信号線160−0−1
は読みだしスイツチマトリクス設定起動信号であり、本
信号の送出と合わせて信号線160−0−2より参照するC
VRの番号が送出される。それらの信号により、第1図に
示したCVR読み出しスイツチマトリクス130はCPU0インタ
フエース110と参照するCVRとの対応付けを行なう。同様
に、信号線180−0−1は書き込みスイツチマトリクス
設定起動信号であり、本信号の送出と合わせて信号線18
0−0−2より参照するCVRの番号が送出される。これら
の信号により、第1図に示したCVR書き込みスイツチマ
トリクス140はCPU0インタフエース110と参照するCVRと
の対応付けを行なう。信号線150−0−1ないし150−0
−4、および信号線170−0−1ないし170−0−4は参
照するCVRアクセス権フイールドの扱いに関する情報を
やりとりする信号線である。CVRの参照形態が読みだし
であるときには信号線150−0系を介しCVR読みだしスイ
ツチマトリクス130を経由して参照するCVRアクセス権フ
イールドが調べられる。CVRの参照形態が書き込みであ
るときには信号線170−0系を介しCVR書き込みスイツチ
マトリクス140を経由して参照するCVRのアクセス権フイ
ールドが調べられる。読みだしスイツチマトリクス130
あるいは書き込みスイツチマトリクス140は信号線160−
1系あるいは信号線180−0系によりCPU0インタフエー
スと参照するCVRとの対応付けが行なわれているので参
照するCVRのアクセス権フイールドが調べられる。信号
線150−0−1あるいは170−0−1はアクセス権フイー
ルドの操作の内容を指示する信号である。信号線150−
0−2あるいは170−0−2は参照の形態が読みだしあ
るいは書き込みであるときに参照を行なうCPUの番号を
通知する信号線である。信号線150−0−3あるいは170
−0−3は、アクセス権フイールドの内容を変更する処
理であるときに(SRCVR命令)設定すべきアクセス権フ
イールドの種を送る信号線である。信号線150−0−4
あるいは170−0−4は、アクセス権フイールドの内容
を読みだす処理であるときに(STRCVR命令)、アクセス
権フイールドの値を受け取る信号線である。信号線150
−0−5ないし150−0−6、信号線170−0−5ないし
170−0−6は、CVRの参照形態がそれぞれ読みだしある
いは書き込みであるときに参照時のアクセス制御フイー
ルドの条件を送る信号線である。信号線150−0−5、
信号線170−0−5は参照前のアクセス制御フイールド
の条件(命令のAC0フイールドで指定される値)、信号
線150−0−6、信号線170−0−6は参照後のアクセス
制御フイールドの条件(命令のAC1フイールドで指定さ
れる値)をそれぞれ送出する信号線である。信号線170
−0−7ないし170−0−8は、CVRの参照の形態が書き
込みであるときに、書き込むデータの送出を行なうため
に使用される。信号線170−0−7はデータの送出指示
信号であり、本信号とともに信号線170−0−8よりCVR
に書き込むデータが送出される。このデータはすでに設
定されている書き込みスイツチマトリクス140を経由し
て参照するCVRに書き込まれる。信号線150−0−7ない
し150−0−8は、CVRの参照の形態が読みだしであると
きに、読みだすデータを受け取るために使用される。信
号線150−0−7はCVR側からのデータの送出指示信号で
あり、本信号ともに信号線1570−0−8よりCVRから読
みだされたデータが送られてくる。このデータはすでに
設定されている読みだしスイツチマトリクス140を経由
して参照するCVRから読み出される。次に、CPUインタフ
エース部の構成要素について説明する。第6図に於い
て、110−2,110−3,110−4,110−5,110−6はレジスタ
であり、CPUから送られてくる情報を保持するものであ
る。これらのレジスタはCPUからの起動信号400−1によ
りセツトされる。レジスタ110−2は信号線400−2から
送られてくる参照CVR番号を保持する。レジスタ110−3
は信号線400−3から送られてくる要求処理内容の種類
(命令のオペコード)を保持する。レジスタ110−4は
信号線400−4から送られてくる参照前のアクセス制御
フイールドの条件(命令のAC0フイールド)を保持す
る。レジスタ110−5は信号線400−5から送られてくる
参照後のアクセス制御フイールドの条件(命令のAC1フ
イールド)を保持する。レジスタ110−6は信号線400−
6から送られてくる処理ベクトル要素数(ベクトル長)
を保持する。第6図において、110−7はスイツチマト
リクス設定部であり、CPU0から送られてくる起動信号40
0−1により起動され、レジスタ110−2に保持されてい
る参照CVRの番号、レジスタ110−3に保持されている要
求処理内容の種類から、スイツチマトリクスの設定信号
を生成し送出する。要求処理の内容が読みだしであると
きには信号線160−0−1より読みだしスイツチマトリ
クス設定起動信号、信号線160−0−2より参照するCVR
の番号が送出される。要求処理の内容が書き込みである
ときには信号線180−0−1より書き込みスイツチマト
リクス設定起動信号、信号線180−0−2より参照するC
VRの番号が送出される。第6図において、110−8はア
クセス権フイールド制御部であり、CPU0から送られてく
る起動信号400−1により起動され、レジスタ110−2に
ある参照CVRの番号およびレジスタ110−3にある要求処
理内容の種類が入力される。要求処理内容がCVRの読み
だしである場合には、信号線150−0−1よりアクセス
権フイールドの処理の内容として“一致チエツク”が送
出され、同時に信号線150−0−2よりCVRの内容を読み
出すCPUの番号が送られる。これらの情報は読みだしス
イツチマトリクス130を経由して参照するCVRに送られ、
一致チエツクの結果が信号線150−0−4を介して返信
されてくる。要求処理内容がCVRの書き込みである場合
には、信号線170−0−1よりアクセス権フイールドの
処理の内容として“一致チエツク”が送出され、同時に
信号線170−0−2よりCVRに内容を書き込むCPUの番号
が送られる。これらの情報は書き込みスイツチマトリク
ス140を経由して参照するCVRに送られ、一致チエツクの
結果が信号線170−0−4を介して返信されてくる。信
号線150−0−4あるいは170−0−4より、一致チエツ
クの結果、一致したという返信があつた場合には、CVR
の読みだしあるいは書き込みが許可されたということ
で、その旨が信号線110−50を介し返信される。要求処
理内容がアクセス権フイールドの変更である場合には、
信号線150−0−1によりアクセス権フイールドの処理
の内容として“アクセス権フイールドの変更”が指示さ
れ、変更すべきアクセス権フイールドの値が信号線150
−0−3より送られる。これらの処理は信号線170−0
−1および170−0−3を用いて行なうこともできる。
要求処理内容がアクセス権フイールドの読みだしである
場合には、信号線150−0−1によりアクセス権フイー
ルドの処理の内容として“アクセス権フイールドの読み
だし”が指示され、読み出されたアクセス権フイールド
の値が信号線150−0−4より送られてくる。これらの
処理は信号線170−0−1および170−0−4を用いて行
なうこともできる。第6図において、110−9はアクセ
ス制御フイールド情報送出部であり、信号線110−50を
介してアクセス権フイールド制御部110−8から送られ
てくる、読みだし/書き込み処理許可信号により起動さ
れる。アクセス制御フイールド情報送出部110−9に
は、レジスタ110−3にある要求処理内容の種類、レジ
スタ110−4にある命令のAC0フイールドの内容、レジス
タ110−5にある命令のAC1フイールドの内容が入力され
る。要求処理の内容がCVRの読みだしであれば、信号線1
50−0−5より命令のAC0フイールドの内容、信号線150
−0−6より命令のAC0フイールドの内容が送出され
る。要求処理の内容がCVRの書き込みであれば、信号線1
70−0−5より命令のAC0フイールドの内容、信号線170
−0−6より命令のAC1フイールドの内容が送出され
る。AC0フイールドおよびAC1フイールドの内容の送出が
完了すると、送出完了の旨が信号線110−51により通知
される。第6図において、110−10はデータ送受制御部
であり、CVRから読み出したデータあるいはCVRへ書き込
むデータをCVRとCPUとの間でやりとるする制御を司る。
データ送受制御部110−10は信号線110−51を介してアク
セス制御フイールド情報送出部110−9より送られてく
るアクセス制御フイールド情報の送出完了信号により起
動される。データ送受制御部110−10には、レジスタ110
−3にある要求処理内容の種類、レジスタ110−6にあ
る処理ベクトル要素数が入力される。要求処理の内容が
CVRへの書き込みである場合には、信号線400−7を介し
てCPU0から送られてくるデータ送出指示信号を受け、そ
れと同時に信号線400−10により送られてくるデータを
レジスタ110−1に設定する。引き続き、信号線170−0
−7により書き込みスイツチマトリクス140を介してCVR
にデータの送出指示信号を送り、同時に信号線170−0
−8によりデータを送出する。要求処理の内容がCVRか
らの読みだしである場合には、信号線150−0−7を介
してCVRから読みだしスイツチマトリクス130を経由して
送られてくるデータ送出指示信号を受け、それと同時に
信号線150−0−8により送られてくるデータをレジス
タ110−1に設定する。引き続き、信号線400−8により
CPU0にデータの送出指示信号を送り、同時に信号線400
−11によりデータを送出する。データを一個送出する度
に処理ベクトル要素数の値を1ずつ減じ、0になればす
べての要素の処理が完了したということで、信号線400
−9によりデータ送出の終了信号を送る。
次に、第1図に示したCVR0ないしCVR15(図中、120−
0ないし120−15)の内部構成を第7図を用いて説明す
る。CVR0ないしCVR15の内部構成はいずれも同一であ
り、第7図ではCVR0の構成について説明する。
第7図において、701はCVR0のRフイールド(アクセ
ス権フイールド)、702はACフイールド(アクセス制御
フイールド)、703はDフイールド(データフイール
ド)である。本実施例においては一個の共有ベクトルレ
ジスタで保持できるベクトル要素の最大数は256であ
り、Dフイールドは各ベクトル要素に対応して256個、A
Cフイールドも各Dフイールドに対応して256個ある。
第7図に於いて、710−1は一致チエツク回路、710−
2は選択回路であり、Rフイールドの制御に関連するも
のである。信号線710−10および710−11はそれぞれRフ
イールドの操作の内容を指示する信号およびこれからCV
Rの参照を行なおうとするCPUの番号を送つてくる信号線
である。例えば、CVR0を参照するCPUの番号がゼロであ
る場合には、読みだしスイツチマトリクス130を介して
第6図に示した信号線150−0−1および150−0−2と
結合させるべき信号線である。信号線710−10の指示内
容が“一致チエツク”の場合には、信号線710−11から
送られてくるCPUの番号とレジスタ701から取り出したR
フイールドの内容を一致チエツク回路710−1で比較
し、比較結果が信号線710−14に反映される。また、比
較の結果一致した場合には、信号線710−15がオンとな
る。比較結果は信号線710−14から選択回路710−2を経
由して信号線710−13によりCPUインタフエース部に返送
される。信号線710−13は、CVR0を参照するCPUの番号
が、例えばゼロであれば、読みだしスイツチマトリクス
回路130を介して第6図に示した信号線150−0−4と結
合されるべきものである。信号線710−10の指示内容が
“Rフイールドの変更”である場合には、変更すべき値
が信号線710−12を介して送られて、選択回路710−2を
介してレジスタ701に書き込まれる。信号線710−12は、
CVR0を参照するCPUの番号が例えばゼロであれば、読み
だしスイツチマトリクス回路130を介して第6図に示し
た信号線150−0−3と結合されるべきものである。信
号線710−10の指示内容が“Rフイールドの読みだし”
である場合には、レジスタ701から読み出されたRフイ
ールドの内容が選択回路710−2を介して信号線710−13
より読みだしスイツチマトリクス130を経由してCPUイン
タフエース部に送られる。
第7図に於いて、720−1,720−2,720−10,720−11,72
0−12,720−13,720−14,720−15は、機能的には、それ
ぞれ710−1,710−2,710−10,710−11,710−12,710−13,
710−14,710−15に全く対応している。ただ、これらは
書き込みスイツチマトリクス140を介してCPUインタフエ
ース部と結合されている点がことなるだけである。
第7図に於いて、730−1,730−2,730−3,730−4,730
−5,730−6,730−7,730−8,730−10,730−20は、CVRか
らデータを読みだし、CPUインタフエース部に送る制御
に関するものである。第7図に於いて、730−1は読み
だしポインタであり、つぎに読み出すべきDフイールド
の場所およびACフイールドの場所を指定する回路であ
る。730−1は読みだしポインタの更新回路であつて、
一個のベクトル要素の処理が終わると読みだしポインタ
の更新処理を行なつてつぎに読み出すべきDフイールド
およびACフイールドの場所を設定する。730−3,730−4,
730−5はそれぞれレジスタである。レジスタ730−3は
CPUインタフエース部より読みだしスイツチマトリクス1
30を経由して送られてくるアクセス制御フイールドのCV
R参照前の条件(命令のAC0フイールドで指定される値)
を保持するものである。レジスタ730−4はCPUインタフ
エース部より読みだしスイツチマトリクス130を経由し
て送られてくるアクセス制御フイールドのCVR参照後の
条件(命令のAC1フイールドで指定される値)を保持す
るものである。レジスタ730−5は、ACフイールドより
読み出された値を保持するものである。730−6は比較
回路であつて、レジスタ730−3とレジスタ730−5の内
容を比較して、その結果を信号線730−51に反映させる
ものである。730−7,730−8はゲート回路であつて、信
号線730−95および730−96を介し、CPUインタフエース
から読みだしスイツチマトリクス130を経由して送られ
てくる、アクセス制御フイールドのCVRの参照前の条件
(命令のAC0フイールドで指定される値)およびアクセ
ス制御フレームのCVR参照後の条件(命令のAC1フイール
ドで指定される値)を、それぞれレジスタ730−3およ
びレジスタ730−4に設定するものである。これらのゲ
ート回路は信号線710−15がオンになつたとき動作し、
信号線730−95および730−96の内容をレジスタ730−3
および730−4に設定する。すなわち、CVRの参照に於い
てアクセス権フイールドのチエツクの結果CVRの参照が
許可されたときに設定される。なお、例えばCPU0がCVR0
の読みだしを行なう場合であれば、信号線730−95及び7
30−96は読み出しスイツチマトリクス130を介して信号
線150−0−5及び150−0−6と結合されるものであ
る。次に、CVRの読みだし処理の内容を説明する。CVRの
読みだし処理に於いては、アクセス権フイールドのチエ
ツクの結果CVRへのアクセスが許可されると、信号線710
−15がオンとなつて、読みだしポインタ730−1が初期
化されて最初のベクトル要素をペイントする。また、レ
ジスタ730−3およびレジスタ730−4に命令で指定され
るAC0フイールド及びAC1フイールドの内容が設定され
る。まず最初に、読みだしポインタ730−1の値が信号
線730−52を介してACフイールド読みだし制御部702−10
に伝えられる。ACフイールド読みだし制御部702−10は
指定された位置のACフイールドの内容を読み出し、読み
だしゲート回路730−10を経由して読み出した値をレジ
スタ730−5に設定する。つぎに、比較回路730−6によ
りレジスタ730−3とレジスタ730−5の値が比較され、
その結果が信号線730−51に反映される。比較の結果一
致した場合には、CVRを読みだしに関しアクセス制御フ
イールドの条件が満たされたということで、Dフイール
ドの読みだし動作に入る。すなわち、読みだしポインタ
の値がDフイールド読みだし制御部703−10に与えられ
ており、Dフイールド読みだしゲート730−20は信号線7
30−52によりアクセス制御フイールドの条件が満たされ
たことが通知されてDフイールド読みだしゲート730−2
0が開かれ、読み出されたDフイールドの内容が信号線7
30−96を介して読みだしスイツチマトリクス130を経由
してCPUインタフエース部に送られる。ここで、例えばC
PU0がCVR0を読み出す処理の場合であれば、信号線730−
96は読みだしスイツチマトリクス130を介して信号線150
−0−8と結合されるべきものである。Dフイールドの
読みだしと並行してACフイールドの更新が行なわれる。
すなわち、信号線730−51によりアクセス制御フイール
ドの条件が満たされたことが通知されるとACフイールド
書き込みゲート740−10が開かれ、また更新すべきACフ
イールドの位置が信号線730−52によりACフイールド書
き込み制御部702−20に送られ、レジスタ730−4の内容
が信号線730−53、ACフイールド書き込みゲート740−10
を経由してACフイールドの所定の位置に書き込まれ、AC
フイールドの値が更新される。最後に、信号線730−51
よりアクセス制御フイールドの条件が満たされたことに
より読みだしポインタ更新回路730−2が動作して、読
みだしポインタ730−1が次に処理すべきACフイールド
およびDフイールドの位置を示すように更新される。
第7図に於いて、740−1,710−2,740−3,740−4,740
−5,740−6,740−7,740−8,740−10,740−20は、CPUイ
ンタフエース部から書き込みスイツチマトリクス140を
経由してデータをCVRに書き込む制御に関するものであ
る。第7図に於いて、740−1は書き込みポインタであ
り、つぎに書き込むべきDフイールドの場所およびACフ
イールドの場所を指定する回路である。740−2は書き
込みポインタの更新回路であつて、一個のベクトル要素
の処理が終わると書き込みポインタの更新処理を行なつ
てつぎに書き込むべきDフイールドおよびACフイールド
の場所を設定する。740−3,740−4,740−5はそれぞれ
レジスタである。レジスタ740−3はCPUインタフエース
部より書き込みスイツチマトリクス140を経由して送ら
れてくるアクセス制御フイールドのCVR参照前の条件
(命令のAC0フイールドで指定される値)を保持するも
のである。レジスタ740−4はCPUインタフエース部より
書き込みスイツチマトリクス140を経由して送られてく
るアクセス制御フイールドのCVR参照後の条件(命令のA
C1フイールドで指定される値)を保持するものである。
レジスタ740−5は、ACフイールドにより読み出された
値を保持するものである。740−6は比較回路であつ
て、レズスタ740−3とレジスタ740−5の内容を比較し
て、その結果を信号線740−51に反映させるものであ
る。740−7,740−8はゲート回路であつて、信号線740
−95および740−96を介し、CPUインタフエースから書き
込みスイツチマトリクス140を経由して送られてくる、
アクセス制御フイールドのCVR参照前の条件(命令のAC0
フイールドで指定される値)およびアクセス制御フイー
ルドのCVR参照後の条件(命令のAC1フイールドで指定さ
れる値)を、それぞれレジスタ740−3およびレジスタ7
40−4に設定するものである。これらのゲート回路は信
号線720−15がオンになつたとき動作し、信号線740−95
および740−96の内容をレジスタ740−3および740−4
に設定する。すなわち、CVRの参照に於いてアクセス権
フイールドのチエツクの結果CVRの参照が許可されたと
きに設定される。なお、例えばCPU0がCVR0の書き込みを
行なう場合であれば、信号線740−95及び740−96は書き
込みスイツチマトリクス140を介して信号線170−0−5
及び170−0−6と結合されるものである。次に、CVRの
書き込み処理の内容を説明する。CVRの書き込み処理に
於いては、アクセス権フイールドのチエツクの結果CVR
へのアクセスが許可されると、信号線720−15がオンと
なつて、書き込みポインタ740−1が初期化されて最初
のベクトル要素をポイントする。また、レジスタ740−
3およびレジスタ740−4に命令で指定されるAC0フイー
ルド及びAC1フイールドの内容が設定される。まず最初
に、書き込みポインタ740−1の値が信号線740−52を介
してACフイールド読みだし制御部702−10に伝えられ
る。ACフイールド読みだし制御部702−10は指定された
位置のACフイールドの内容を読み出し、読みだしゲート
回路730−10を経由して読み出した値をレジスタ740−5
に設定する。つぎに、比較回路740−6によりレジスタ7
40−3とレジスタ740−5の値が比較され、その結果が
信号線740−51に反映される。比較の結果一致した場合
には、CVRの書き込みに関しアクセス制御フイールドの
条件が満たされたということで、Dフイールドの書き込
み動作に入る。すなわち、書き込みポインタの値がDフ
イールド書き込み制御部703−20に与えられており、D
フイールド書き込みゲート740−20は信号線740−52によ
りアクセス制御フイールドの条件が満たされたことが通
知されて開かれる。書き込むデータは、CPUインタフエ
ース部から書き込みスイツチマトリクス140を経由して
信号線740−97により送られ、Dフイールド書き込みゲ
ート740−20を介して所定の位置に書き込まれる。ここ
で、例えばCPU0がCVR0に書き込む処理の場合であれば、
信号線740−97は書き込みスイツチマトリクス140を介し
て信号線170−0−8と結合されるべきものである。D
フイールドの書き込みと並行してACフイールドの更新が
行なわれる。すなわち、信号線740−51によりアクセス
制御フイールドの条件が満たされたことが通知されると
ACフイールド書き込みゲート740−10が開かれ、また更
新すべきACフイールドの位置が信号線740−52によりAC
フイールド書き込み制御部702−20に送られ、レジスタ7
40−4の内容が信号線740−53、ACフイールド書き込み
ゲート740−10を経由してACフイールドの所定の位置に
書き込まれ、ACフイールドの値が更新される。最後に、
信号線740−51よりアクセス制御フイールドの条件が満
たされたことにより書き込みポインタ更新回路740−2
が動作して、書き込みポインタ740−1が次に処理すべ
きACフイールドおよびDフイールドの位置を示すように
更新される。
つぎに、本発明の実施例に於ける共有ベクトルレジス
タを用いたマルチプログラミング/マルチタスキングの
簡単な適用例を示す。
今、第2図に示したマルチベクトル計算機構成におい
て、ジヨブPとジヨブQの二つのジヨブが処理されるも
のとする。さらに、ジヨブPは二つの並列処理が可能な
タスクであるタスクP0とタスクP1を実行することにより
処理されるものとする。同様に、ジヨブQは二つの並列
処理が可能なタスクであるタスクQ0とタスクQ1を実行す
ることにより処理されるものとする。ここで、ジヨブP
のタスクP0はCPU0(第2図の200)、タスクP1はCPU1
(第2図の201)、ジヨブQのタスクQ0はCPU2(第2図
の202)、タスクQ1はCPU3(第2図の203)で処理される
ものとする。また、ジヨブPのタスクP0とP1は共有ベク
トルレジスタ第0番(CVR0)を介してベクトルデータの
やりとりを行ない、ジヨブQのタスクQとQ1は共有ベク
トルレジスタ第15番(CVR15)を介してベクトルデータ
をやりとりするものとする。
この場合、まずオペレーテイングシステムがCVR0及び
CVR15のアクセス権フイールド(Rフイールド)を設定
しておく。CVR0のRフイールドに設定する値は、CPU0と
CPU1(それぞれタスクP0とP1を処理)からのアクセスを
許可し、CPU2とCPU3からのアクセスを拒絶するから、
‘1100'である。値の設定にはSRCVR命令を使用する。CV
R15のRフイールドに設定する値は、CPU2とCPU2(それ
ぞれタスクQ0とQ1を処理)からのアクセスを許可し、CP
U0とCPU1からのアクセスを拒絶するから、‘0011'であ
る。値の設定にはSRCVR命令を使用する。これにより、
例えばジヨブQを構成するプログラムのなかに不良があ
つて、誤つてCVR0を参照しようとしたときにも、CVR0へ
の参照は拒絶され、ジヨブPの実行に悪影響が及ぶこと
はない。
さて、ジヨブPのタスクP0とP1とが第8図に示すよう
な処理をして互いに通信するものとする。すなわち、タ
スクP1でつかう配列A(I)の値はタスクP0で計算され
たタスクP1に渡される。タスクP1では配列A(I)を2
回参照する。配列AはタスクP0とP1の間でCVR0を介して
授受される。第8図の機械語コーデイングにあるよう
に、タスクP0はWCVR命令によりCPU0内のベクトルレジス
タ第0番(VR0)に得られた配列Aの値をCVR0に書き込
む。このとき、WCVR命令のAC0フイールドでは値‘1111'
を指定し、CVR0のアクセス制御フイールドの値にかかわ
らず値を書き込むように指定する。命令のAC1フイール
ドでは値‘0010'を指定し、CVR0にデータを書き込んだ
後にアクセス制御フイールドの値をセツト状態にするこ
とを指定する。一方、タスクP1に於いては、RCVR命令に
よりCVR0の内容を読み出して配列Aの値を得る。配列A
の値は2回参照するが、1回目の参照のRCVR命令におい
てはAC0フイールドで値‘0010'を指定し、CVR0のアクセ
ス制御フイールドがセツト状態になつてからデータを読
み出すことを指定する。これにより、タスクP0を処理す
るCPU0がWCVR命令によりCVR0に配列Aの値を書き込んだ
後に速やかに読み出すことができる。また命令のAC1フ
イールドでは値‘0000'を指定し、データの読み出し後
にアクセス制御フイールドを変更しないことを指定す
る。2回目の参照のRCVR命令に於いては、AC0フイール
ドはやはり値‘0010'を指定し、アクセス制御フイール
ドがセツト状態にあるデータ(CPU0のデータ書き込み済
み)を読み出すことを指定する。また、命令のAC1フイ
ールドでは、タスクP1においてこれ以上CVR0を参照しな
いのでアクセス制御フイールドの値をリセツト状態にす
るため値‘0001'を指定する。これにより、それぞれの
タスクにおいて、CVR0にデータを書き込むWCVR命令とCV
R0からデータを読み出すRCVR命令とを独立して発行して
よく、書き込まれる前に読みだしたりすることなく、WC
VR命令とRCVR命令とが最大限に並列して実行され、タス
ク間でベクトルデータの転送が高速に行なわれる。
〔発明の効果〕
以上のように本発明によれば、マルチプロセツサ構成
のベクトル計算機システムにおいて、一つのジヨブを複
数のベクトルプロセツサに於いて並列して処理出来るタ
スクを実行することにより処理速度の向上を図る場合に
は、ベクトルプロセツサ間でベクトルデータを高速に転
送することを可能にし、また、並列処理可能な一つ以上
のタスクから構成される複数のジヨブを複数のベクトル
プロセツサで分担して処理を行なう場合には、異なるジ
ヨブを処理するベクトルプロセツサ間で不当な干渉が発
生し、あるジヨブの処理が他のジヨブの処理に悪影響を
与えるといつた事態を簡便に防止することができ、マル
チプロセツサ構成のベクトルプロセツサシステムをいろ
いろな利用形態で効率よく使用することが可能となる。
【図面の簡単な説明】
第1図は、本発明の実施例に於ける共有ベクトルレジス
タ群の全体構成を示す図、第2図は、本発明の実施例に
於けるマルチプロセツサ構成のベクトルプロセツサシス
テムの全体構成を示す図、第3図は、本発明の実施例に
於ける共有ベクトルレジスタの論理的な構成を説明する
図、第4図は、本発明の実施例に於いて共有ベクトルレ
ジスタを操作する命令の書式を説明する図、第5図は、
第4図に示した共有ベクトルレジスタを操作する命令の
機能を補足説明する図、第6図は、本発明の実施例にお
いて各ベクトルプロセツサと共有ベクトルレジスタ群と
のインタフエース部を説明する図、第7図は、本発明の
実施例に於ける共有ベクトルレジスタの内部構成を説明
する図、第8図は、本発明の実施例において複数のタス
ク間で効率よく通信を行なう事例を説明する図、であ
る。 110,113……CPUインタフエース部、120−0,120−15……
共有ベクトルレジスタ、701……アクセス権フイール
ド、702……アクセス制御フイールド、703……データフ
イールド。
フロントページの続き (56)参考文献 特開 昭60−37064(JP,A) 特開 昭56−157518(JP,A) 特開 昭60−45862(JP,A)

Claims (2)

    (57)【特許請求の範囲】
  1. 【請求項1】複数のプロセッサから構成されるマルチプ
    ロセッサシステムにおいて、 少なくとも二つ以上のプロセッサからアクセス可能な共
    有のベクトルレジスタ群を有し、 各ベクトルレジスタは、当該ベクトルレジスタへのアク
    セスが許可されているプロセッサを管理する第1フィー
    ルド、複数のベクトル要素データから成るベルトルデー
    タ値を保持する第2フィールド、および各ベクトル要素
    データに対応してそれらベクトル要素データのセット/
    リセット状態を表示する第3フィールドを有し、 更に、当該マルチプロセッサシステムはプロセッサから
    該第2フィールドへのアクセスを、該第1フィールド、
    該第3フィールド、および、当該アクセスの内容により
    制御する手段を有することを特徴とするマルチプロセッ
    サシステム。
  2. 【請求項2】特許請求の範囲第1項において、 該ベクトルレジスタに該プロセッサからアクセスがなさ
    れたときに、該プロセッサからの該アクセスで特定され
    たベクトル要素データに対応する該第3フィールドの内
    容が、該アクセスの内容と異なるときには、ベクトル要
    素データへの該アクセスを一時保留する手段を有するこ
    とを特徴とするマルチプロセッサシステム。
JP62212755A 1987-08-28 1987-08-28 マルチプロセツサシステム Expired - Fee Related JP2602240B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP62212755A JP2602240B2 (ja) 1987-08-28 1987-08-28 マルチプロセツサシステム
US07/237,418 US5109499A (en) 1987-08-28 1988-08-29 Vector multiprocessor system which individually indicates the data element stored in common vector register

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP62212755A JP2602240B2 (ja) 1987-08-28 1987-08-28 マルチプロセツサシステム

Publications (2)

Publication Number Publication Date
JPS6457366A JPS6457366A (en) 1989-03-03
JP2602240B2 true JP2602240B2 (ja) 1997-04-23

Family

ID=16627875

Family Applications (1)

Application Number Title Priority Date Filing Date
JP62212755A Expired - Fee Related JP2602240B2 (ja) 1987-08-28 1987-08-28 マルチプロセツサシステム

Country Status (2)

Country Link
US (1) US5109499A (ja)
JP (1) JP2602240B2 (ja)

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5187796A (en) * 1988-03-29 1993-02-16 Computer Motion, Inc. Three-dimensional vector co-processor having I, J, and K register files and I, J, and K execution units
JP2658397B2 (ja) * 1989-06-13 1997-09-30 日本電気株式会社 マルチプロセッサシステム
US5657429A (en) 1992-08-10 1997-08-12 Computer Motion, Inc. Automated endoscope system optimal positioning
US5762458A (en) 1996-02-20 1998-06-09 Computer Motion, Inc. Method and apparatus for performing minimally invasive cardiac procedures
US7074179B2 (en) 1992-08-10 2006-07-11 Intuitive Surgical Inc Method and apparatus for performing minimally invasive cardiac procedures
JPH06103068A (ja) * 1992-09-18 1994-04-15 Toyota Motor Corp データ処理装置
EP0594240B1 (en) * 1992-10-19 2000-01-05 Koninklijke Philips Electronics N.V. Data processor with operation units sharing groups of register files
DE69421103T2 (de) * 1993-01-22 2000-06-08 Matsushita Electric Industrial Co., Ltd. Programmgesteuertes Prozessor
US6646541B1 (en) * 1996-06-24 2003-11-11 Computer Motion, Inc. General purpose distributed operating room control system
US6463361B1 (en) 1994-09-22 2002-10-08 Computer Motion, Inc. Speech interface for an automated endoscopic system
US7053752B2 (en) * 1996-08-06 2006-05-30 Intuitive Surgical General purpose distributed operating room control system
US6714841B1 (en) 1995-09-15 2004-03-30 Computer Motion, Inc. Head cursor control interface for an automated endoscope system for optimal positioning
US5855583A (en) * 1996-02-20 1999-01-05 Computer Motion, Inc. Method and apparatus for performing minimally invasive cardiac procedures
US6436107B1 (en) 1996-02-20 2002-08-20 Computer Motion, Inc. Method and apparatus for performing minimally invasive surgical procedures
US6699177B1 (en) 1996-02-20 2004-03-02 Computer Motion, Inc. Method and apparatus for performing minimally invasive surgical procedures
US6496099B2 (en) * 1996-06-24 2002-12-17 Computer Motion, Inc. General purpose distributed operating room control system
US6911916B1 (en) * 1996-06-24 2005-06-28 The Cleveland Clinic Foundation Method and apparatus for accessing medical data over a network
US6132441A (en) 1996-11-22 2000-10-17 Computer Motion, Inc. Rigidly-linked articulating wrist with decoupled motion transmission
US20040236352A1 (en) * 1997-09-22 2004-11-25 Yulun Wang Method and apparatus for performing minimally invasive cardiac procedures
US6951535B2 (en) 2002-01-16 2005-10-04 Intuitive Surgical, Inc. Tele-medicine system that transmits an entire state of a subsystem
US8527094B2 (en) 1998-11-20 2013-09-03 Intuitive Surgical Operations, Inc. Multi-user medical robotic system for collaboration or training in minimally invasive surgical procedures
US6659939B2 (en) 1998-11-20 2003-12-09 Intuitive Surgical, Inc. Cooperative minimally invasive telesurgical system
US6852107B2 (en) 2002-01-16 2005-02-08 Computer Motion, Inc. Minimally invasive surgical training using robotics and tele-collaboration
US6398726B1 (en) 1998-11-20 2002-06-04 Intuitive Surgical, Inc. Stabilizer for robotic beating-heart surgery
US7217240B2 (en) * 1999-10-01 2007-05-15 Intuitive Surgical, Inc. Heart stabilizer
US6742083B1 (en) * 1999-12-14 2004-05-25 Genesis Microchip Inc. Method and apparatus for multi-part processing of program code by a single processor
US6920543B1 (en) * 1999-12-14 2005-07-19 Genesis Microchip, Inc. Method and apparatus for performing distributed processing of program code
US6738884B1 (en) * 1999-12-14 2004-05-18 Genesis Microchip Inc. Method and apparatus for processing data with semaphores
US6775757B1 (en) * 1999-12-14 2004-08-10 Genesis Microchip Inc. Multi-component processor
US6726699B1 (en) 2000-08-15 2004-04-27 Computer Motion, Inc. Instrument guide
EP2269500B1 (en) 2000-11-28 2017-06-21 Intuitive Surgical Operations, Inc. Endoscopic beating-heart stabilizer and vessel occlusion fastener
US20020165524A1 (en) * 2001-05-01 2002-11-07 Dan Sanchez Pivot point arm for a robotic system used to perform a surgical procedure
EP1286270A1 (en) * 2001-07-24 2003-02-26 Deutsche Thomson-Brandt Gmbh An integrated circuit having a generic communication interface
US6728599B2 (en) * 2001-09-07 2004-04-27 Computer Motion, Inc. Modularity system for computer assisted surgery
US6839612B2 (en) 2001-12-07 2005-01-04 Institute Surgical, Inc. Microwrist system for surgical procedures
US6793653B2 (en) 2001-12-08 2004-09-21 Computer Motion, Inc. Multifunctional handle for a medical robotic system
US9710384B2 (en) 2008-01-04 2017-07-18 Micron Technology, Inc. Microprocessor architecture having alternative memory access paths
US8156307B2 (en) * 2007-08-20 2012-04-10 Convey Computer Multi-processor system having at least one processor that comprises a dynamically reconfigurable instruction set
US8122229B2 (en) * 2007-09-12 2012-02-21 Convey Computer Dispatch mechanism for dispatching instructions from a host processor to a co-processor
US9015399B2 (en) 2007-08-20 2015-04-21 Convey Computer Multiple data channel memory module architecture
US8561037B2 (en) * 2007-08-29 2013-10-15 Convey Computer Compiler for generating an executable comprising instructions for a plurality of different instruction sets
US8095735B2 (en) * 2008-08-05 2012-01-10 Convey Computer Memory interleave for heterogeneous computing
JP4874304B2 (ja) * 2008-07-18 2012-02-15 株式会社キンタロー ペット用サークル
US8205066B2 (en) * 2008-10-31 2012-06-19 Convey Computer Dynamically configured coprocessor for different extended instruction set personality specific to application program with shared memory storing instructions invisibly dispatched from host processor
US20100115233A1 (en) * 2008-10-31 2010-05-06 Convey Computer Dynamically-selectable vector register partitioning
US8423745B1 (en) 2009-11-16 2013-04-16 Convey Computer Systems and methods for mapping a neighborhood of data to general registers of a processing element
US9021237B2 (en) * 2011-12-20 2015-04-28 International Business Machines Corporation Low latency variable transfer network communicating variable written to source processing core variable register allocated to destination thread to destination processing core variable register allocated to source thread
US10430190B2 (en) 2012-06-07 2019-10-01 Micron Technology, Inc. Systems and methods for selectively controlling multithreaded execution of executable code segments
WO2016067107A1 (en) 2014-10-27 2016-05-06 Kinaxis Inc. Data storage using vectors of vectors
US11144522B2 (en) 2014-10-27 2021-10-12 Kinaxis Inc. Data storage using vectors of vectors
CN115248701B (zh) * 2022-09-21 2022-12-20 进迭时空(杭州)科技有限公司 一种处理器寄存器堆之间的零拷贝数据传输装置及方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3940743A (en) * 1973-11-05 1976-02-24 Digital Equipment Corporation Interconnecting unit for independently operable data processing systems
JPS586973B2 (ja) * 1975-02-20 1983-02-07 パナフアコム カブシキガイシヤ メモリコテイバンチアクセスセイギヨホウシキ
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
JPS5791644A (en) * 1980-11-28 1982-06-07 Matsushita Electric Works Ltd Rotor for flat motor
DE3151120C2 (de) * 1981-12-23 1983-12-01 Siemens AG, 1000 Berlin und 8000 München Datenverarbeitungsanlage mit Arbeitsspeicher und mehreren in Serie geschalteten Prozessoren
JPS58114274A (ja) * 1981-12-28 1983-07-07 Hitachi Ltd デ−タ処理装置
JPS58225432A (ja) * 1982-06-24 1983-12-27 Toshiba Corp 要求バツフア装置
DE3379690D1 (en) * 1982-09-03 1989-05-24 Hitachi Ltd Data processing system
US4636942A (en) * 1983-04-25 1987-01-13 Cray Research, Inc. Computer vector multiprocessing control
US4591982A (en) * 1983-08-29 1986-05-27 International Business Machines Corporation Storage selection override apparatus for a multimicroprocessor implemented data processing system
JPS6224366A (ja) * 1985-07-03 1987-02-02 Hitachi Ltd ベクトル処理装置
US4794521A (en) * 1985-07-22 1988-12-27 Alliant Computer Systems Corporation Digital computer with cache capable of concurrently handling multiple accesses from parallel processors
US4661990A (en) * 1986-01-29 1987-04-28 Rifkin Arnold S Hooded type bag seal

Also Published As

Publication number Publication date
US5109499A (en) 1992-04-28
JPS6457366A (en) 1989-03-03

Similar Documents

Publication Publication Date Title
JP2602240B2 (ja) マルチプロセツサシステム
US6223279B1 (en) Single chip microcomputer having a dedicated address bus and dedicated data bus for transferring register bank data to and from an on-line RAM
US4951193A (en) Parallel computer with distributed shared memories and distributed task activating circuits
US5557766A (en) High-speed processor for handling multiple interrupts utilizing an exclusive-use bus and current and previous bank pointers to specify a return bank
US5864738A (en) Massively parallel processing system using two data paths: one connecting router circuit to the interconnect network and the other connecting router circuit to I/O controller
US4991079A (en) Real-time data processing system
US4648034A (en) Busy signal interface between master and slave processors in a computer system
JP3604091B2 (ja) マルチタスキングデータ処理システム
JP2564805B2 (ja) 情報処理装置
JP3206914B2 (ja) 多重プロセッサ・システム
US6363453B1 (en) Parallel processor with redundancy of processor pairs
US5442755A (en) Multi-processor system with lock address register in each processor for storing lock address sent to bus by another processor
JPH01131949A (ja) 処理依頼機能を持つ並列計算機
JP2511397B2 (ja) 多重プロセッサデ―タ処理システム及びその操作方法
JPS6270964A (ja) デ−タハブ
US5210828A (en) Multiprocessing system with interprocessor communications facility
JPH0374760A (ja) データ処理システム
JPH056223B2 (ja)
US5696939A (en) Apparatus and method using a semaphore buffer for semaphore instructions
JP2825906B2 (ja) 計算機システム
KR970003321B1 (ko) 코프로세서 지정 시스템
US5179691A (en) N-byte stack-oriented CPU using a byte-selecting control for enhancing a dual-operation with an M-byte instruction word user program where M<N<2M
US5881256A (en) Bus interface unit capable of simultaneously proceeding with two bus cycles in a high-performance microprocessor
CA1137641A (en) Single chip microcomputer selectively operable in response to instructions stored on the computer chip or in response to instructions stored external to the chip
EP0560393B1 (en) Microprocessor and data processing system with register file

Legal Events

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