JP2511397B2 - 多重プロセッサデ―タ処理システム及びその操作方法 - Google Patents

多重プロセッサデ―タ処理システム及びその操作方法

Info

Publication number
JP2511397B2
JP2511397B2 JP59081238A JP8123884A JP2511397B2 JP 2511397 B2 JP2511397 B2 JP 2511397B2 JP 59081238 A JP59081238 A JP 59081238A JP 8123884 A JP8123884 A JP 8123884A JP 2511397 B2 JP2511397 B2 JP 2511397B2
Authority
JP
Japan
Prior art keywords
cluster
flag
register
processing
registers
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
JP59081238A
Other languages
English (en)
Other versions
JPS6037064A (ja
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.)
Cray Research LLC
Original Assignee
Cray Research LLC
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
Priority claimed from US06/488,082 external-priority patent/US4636942A/en
Application filed by Cray Research LLC filed Critical Cray Research LLC
Publication of JPS6037064A publication Critical patent/JPS6037064A/ja
Application granted granted Critical
Publication of JP2511397B2 publication Critical patent/JP2511397B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/18Handling requests for interconnection or transfer for access to memory bus based on priority control
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/17Interprocessor communication using an input/output type connection, e.g. channel, I/O port
    • 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/3004Arrangements for executing specific machine instructions to perform operations on memory
    • 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/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30087Synchronisation or serialisation instructions
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

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)
  • Multi Processors (AREA)
  • Executing Machine-Instructions (AREA)
  • Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
  • Control Of Ac Motors In General (AREA)
  • Error Detection And Correction (AREA)

Description

【発明の詳細な説明】 発明の背景 本発明は高速デジタルデータプロセッサに関し、さら
に詳細にはベクトル処理に適する演算機械に関する。
多くの科学的データ処理タスクは順序づけされたデー
タアレイの詳細にわたる演算操作を含む。一般に、この
種の操作すなわち「ベクトル」処理は、一組のデータの
それぞれ連続する要素について同じ演算を繰返し実行す
ることを含む。多くのコンピュータは、記憶装置及び入
出力装置(I/O)と通信することができる演算ユニット
を伴なって編成される。算術機能を実行するためには、
それぞれのオペランドを記憶装置から演算ユニットへ連
続して移し、機能を実行し、結果を記憶装置に戻さなけ
ればならない。この種の編成を利用する機械、すなわち
「スカラ」機械は低速すぎて、ハードウエアは大規模ベ
クトル処理タスクにおいて実際に使用するには効率が悪
いことが判明している。
配列されたデータアレイを処理する際の処理速度を速
め且つハードウエア効率を高めるために、「ベクトル」
機械が開発された。基本的には、ベクトル機械はソフト
ウエアプログラム及び索引づけではなくハードウエア組
織を利用して配列されたデータアレイを処理するので、
高動作速度が達成される。そのようなベクトル機械の1
つが1978年12月5日発行の米国特許第4,128,880号に記
載されている。この特許のベクトル処理機械は、中央記
憶装置からベクトルデータセットを受取り、それらのデ
ータセットを演算が実行されるセグメント化された機能
ユニットにクロック速度で供給する1つ又は複数のレジ
スタを使用する。さらに詳細には、それぞれ64個までの
ベクトル要素を保持す8つのベクトルレジスタが設けら
れる。それらのレジスタは、それぞれ複数の機能ユニッ
トのいずれか1つに選択的に接続され、1つ又は複数の
オペランドは各クロック周期でレジスタに供給される。
同様に、それぞれのベクトルレジスタは結果を受取るよ
うに選択的に接続される。通常の動作においては、機能
ユニットにオペランドを供給するために2つのベクトル
レジスタが使用され、第3のベクトルレジスタは機能ユ
ニットから結果を受取るために使用される。
シングルポート記憶装置は、ベクトルレジスタと記憶
装置との間のデータ転送のためにデータバスを介してそ
れぞれのベクトルレジスタに接続される。すなわち、1
ブロックのベクトルデータは記憶装置からベクトルレジ
スタへ転送され、演算はベクトルレジスタから直接得ら
れるデータを利用して機能ユニットにおいて実行され
る。このベクトル処理により記憶装置の使用はなかり減
少し、同じデータについて繰返し演算が必要であるの
で、そのような演算に関する始動時の固有の記憶装置制
御遅延をなくすことができる。
さらに、スカラ演算も可能であり、そのためにスカラ
レジスタ及び機能ユニットが設けられる。スカラレジス
タは、アドレスレジスタ及び命令バッファと共に、メモ
リ転送動作を最少限にとどめ且つ命令の実行をスピード
アップするために使用される。転送の度合は2つの付加
的バッファによりさらに低下され、1つのバッファは記
憶装置とスカラレジスタとの間、もう1つは記憶装置と
アドレスレジスタとの間に設けられる。すなわち、メモ
リ転送はブロック転送ベースで実行されるため、それに
関連する演算遅延は最少限である。
さらに別の並行処理は、上述のシステムにおいて「連
鎖処理」と呼ばれるプロセスにより達成される。このプ
ロセスにおいては、ベクトル結果レジスタは次の機能演
算のためのオペランドレジスタとなる。この種の連鎖処
理は、全ての発行条件が満たされる特定のクロック周
期、すなわち「チェインスロット」時間に限定される。
このような連鎖処理は、ある程度まで、命令が発行され
る順序と、機能ユニットのタイミングとに依存する。
このように、米国特許第4,128,880号のシステムは、
ベクトル化可能な大きなクラスの問題について従来のス
カラ処理に比べて処理速度の大幅なスピードアップを達
成する。レジスタごとのベクトル命令の使用、連鎖処理
概念及び複数の独立したセグメント形機能ユニットの使
用により、処理の大半は並行して実行される。さらに、
ベクトル演算の始動時間は公称のものであるので、短い
ベクトルであってもベクトル処理の利点が得られる。
本発明は、多重タスク処理のための汎用マルチプロセ
ッサシステムを提供するために上述のベクトル処理機械
を改良して使用する。動作中、様々なジョブの独立した
タスク又は1つのジョブの関連するタスクは複数のプロ
セッサで進行する。先行技術においてはマルチプロセッ
サ組織が達成されたが、このような先行技術の機械のCP
U内通信は主記憶装置を介して「粗結合」方式で実行さ
れる。この種のCPU内通信は、比較的低速の主又は中央
記憶装置に繰返し依存しなければならないため及びプロ
セッサ間のアクセス競合のために妨げられる。
本発明のマルチプロセッサは、粗結合多重処理と関連
するかなり大きな遅延及びソフトウエア調整の問題を、
共用又は中央記憶装置とは無関係の「密結合」通信回路
をCPU間に設けることにより解決する。密結合通信回路
は、いずれか一方のCPUによりCPU内動作に比例する速度
でアクセスされうる一組の共用レジスタを提供する。す
なわち、共用レジスタは、頻繁なデータ交換を伴なう小
さなタスクの多重タスク処理のためのオーバヘッドを最
少限にとどめる高速CPU内通信経路を提供する。本発明
のマルチプロセッサシステムは、先行技術により提供さ
れるような共用記憶装置を介してタスクを結合しても良
い。しかしながら、密結合通信回路は、粗結合タスク並
びに密結合タスクを効率良く調整しうるハードウエア同
期化回路を提供する。
通常、先行技術のマルチプロセッサはプロセッサ間の
主従関係を特徴とする。この組織においては、主プロセ
ッサは、1度に唯一つのジョブが進行するように多重タ
スク処理動作を開始し、制御しなければならない。多く
のジョブはマルチプロセッサ能力を必要としないので、
この種の主従組織はマルチプロセッサの利用不足となる
ことが多い。
本発明のマルチプロセッサシステムにおいては、全て
のプロセッサはプログラミング機能に関して全く同一の
対称形であるので、主従関係は不要である。すなわち、
1つ又は複数のプロセッサが選択的に「クラスタ」に編
成され、オペレーティングシステムにより単一のジョブ
の関連タスクを実行するように割当てられる。この構成
により、各プロセッサは独立して動作することもできる
ため、異なるジョブの独立したタスクも実行可能であ
る。従って、本発明のマルチプロセッサシステムは、利
用不足の問題を回避すると共に、より高いシステムスル
ープットを提供する。
本発明のマルチプロセッサは、さらに、中央記憶装置
のアクセス時間と、CPUの対メモリ及びI/O動作の対メモ
リを含むアクセス競合をできる限り少なくするのに適す
る独特のものである。これは、中央記憶装置をそれぞれ
独立してアクセス可能であり且つ各機械クロック周期の
中で並行するインターリーブされたメモリバンクとして
組織することにより達成される。各プロセッサは、メモ
リアクセス遅延を最少限にとどめ且つ競合するメモリ参
照の保全性を維持することができるハードウエア制御ア
クセス競合解決ハードウエアを介して中央記憶装置に接
続される複数の並列メモリポートを有する。このインタ
ーリーブと多重ポートのメモリ設計と短いメモリサイク
ル時間とが組合わされて、高い性能と釣合いのとれたメ
モリ組織を提供し、帯域幅は同時高速CPU動作及びI/O動
作を支援するのに十分である。
処理速度及び効率は、本発明のシステムにおいて、付
加的な記憶装置−ベクトルレジスタ間データ転送経路及
びかなり高められたハードウエアの自動「フレキシブ
ル」連鎖処理能力を提供する新しいベクトルレジスタの
構成と組織によりさらに改善される。この新しいベクト
ルレジスタ組織と、並列メモリポート構成とにより、従
来は実行不可能であったようなメモリ取出し、算術及び
メモリ記憶の動作などを一連の関連ベクトル演算で同時
に実行することができる。すなわち、本発明のマルチプ
ロセッサ構成は長いベクトルと短いベクトルの双方につ
いてより高速で、より釣合いのとれたベクトル処理能力
を提供し、重いレジスタからレジスタへの又はメモリか
らメモリへのベクトル演算を特徴とする。
発明の要約 本発明は、ベクトル処理を含む多重タスク処理用途の
ための汎用マルチプロセッサシステムに関する。それぞ
れプログラミング機能の上で全く同一であり、対称形で
ある2つ又は3つ以上のベクトル処理機械が設けられ
る。全てのプロセッサは、各機械のクロック周期の間に
独立して並行アクセスされうるインターリーブされたメ
モリバンクとして編成される中央又は共用記憶装置を共
用する。各プロセッサは、中央メモリ参照を処理するた
めに中央記憶装置に接続される複数の並列メモリポート
を有する。
複数の共用データ・周期化レジスタセットは、選択さ
れたプロセッサの内部通信のために設けられる。1台又
は複数のプロセッサから成るクラスタは、独自の一組の
共用レジスタを利用して単一のタスクを実行するように
割当てられる。1つのクラスタの各プロセッサは、ユー
ザープログラムにより決定されるスカラ演算又はベクト
ル演算を非同期的に実行する。
各プロセッサは奇数−偶数メモリバンクとして編成さ
れるベクトルレジスタを含み、中央記憶装置のメモリに
至る複数の並列データ経路を有する。ベクトルレジスタ
はフレキシブル連鎖処理能力を提供するためにハードウ
エアを介して自動的に制御され、それにより、メモリ取
出し演算及びメモリ記憶などの動作を一連の関連ベクト
ル演算で実行することができる。
本発明の別の面によれば、多重ポート記憶装置は、遅
延をできる限り短くし且つ同じバンクへの、そして同時
に全てのプロセッサのポートからの全てのメモリ参照の
保全性を維持するために、内蔵の競合解決ハードウエア
回路網を有する。
以下、添付の図面を参照して本発明の実施例を説明す
る。
実施例 本発明の全体的なシステム組織を第1図に概略的に示
す。好ましい実施例には2台のベクトルプロセッサ10及
び11が設けられる。一般に、これらのプロセッサは特に
バッファ、レジスタ及び機能ユニットの組織に関して米
国特許第4,128,880号に記載されているベクトル処理装
置にそれぞれ類似している。以下、本明細書中でCPUデ
ータ経路について使用される図中符号、たとえばAi,Si
などは上記特許に記載されるシステムの対応するデータ
経路を指すものとするが、システムはある程度変形され
ている。
中央記憶装置12はベクトルプロセッサ10及び11用とし
て設けられる。各プロセッサは中央記憶装置12との間に
それぞれのデータ経路13及び14と、それぞれの制御経路
15及び16とを有する。各プロセッサは、同様にそれぞれ
の制御経路21及び22を介してCPU I/O制御装置20に接続
される。この制御装置20は、データ伝送経路23を介して
中央記憶装置12にさらに接続される。
動作中、I/OはCPU−I/O制御装置20を介し、それぞれ
のデータ経路32及び33を介してSSD30又は入力−出力プ
ロセッサIOP31へ伝送される。それぞれの制御経路34及
び35は制御通信を成立させる。IOP31は、データ経路36
を介していくつかの大容量記憶装置40のいずれか1つに
インターフェース接続される。
ベクトルプロセッサ10及び11は通信制御回路50を介し
て通信することができる。データ経路51及び52と、制御
回路53及び54とは、プロセッサ10及び11をそれぞれ通信
制御回路50に接続する。通信制御回路50は、一般に、ベ
クトルプロセッサ10及び11により共通して制御され且つ
いずれか一方のプロセッサから対応するデータ経路51及
び52を介して読出し又は書込みされる一組の共用レジス
タから構成される。一般に、通信制御回路50は、ループ
カウント、記憶アドレス及びスカラ定数などのスカラデ
ータをプロセッサ間で伝送する高速で、時間効率の良い
機構を提供する。通信制御回路50は、いずれか一方のベ
クトルプロセッサにより試験、セット又はクリア可能で
あり且つ回路50のレジスタ又は中央記憶装置12を介する
データ転送を調整する機構を形成するレジスタ(以下セ
マフォレジスタという)をさらに提供する。通信制御回
路50は、システムのクロックサイクルをカウントする共
用クロックをさらに含む。
中央記憶装置12とベクトルプロセッサ10及び11との間
のデータ転送は、それぞれの経路13〜16を介してプロセ
ッサ制御の下に独立して達成することができる。中央記
憶装置12及びCPU I/O制御装置20と、SSD30、IOP31及び
大容量記憶装置40との間のI/O転送は、いずれか一方の
ベクトルプロセッサ10又は11の制御の下に又はIOP31の
制御の下に進行する。CPU I/O制御装置20は、データ経
路23を介して中央記憶装置12に対して独立してアクセス
するので、いくつかのI/O機能をベクトルプロセッサ10
又は11に依存せずに実行することができる。
SSD30は、CPU I/O制御装置20を介してSSDと中央記憶
装置12との間に非常に高いブロック転送速度を達成する
ことができる大型固体回路記憶機構である。IOP31は大
容量記憶装置40と中央記憶装置12との間に少なくとも2
種類のI/Oチャンネルを含むと共に、それらのチャンネ
ルを制御するので、ベクトルプロセッサ10及び11に処理
動作のより大きな割合を実行する余裕が与えられる。
ベクトルプロセッサ10及び11はそのプログラミング機
能の上で全く同一で対称形であり、様々なジョブの独立
したタスクを実行するために互いに独立して動作するか
又は単一のジョブの関連するタスクを実行するために
「集合制御(クラスタ化)」される。集合制御(クラス
タ化)動作の場合、1台又は複数台のプロセッサが通信
制御回路50の特定の一組又は一群(クラスタ)のレジス
タに割当てられる。通信制御回路50の各組又は各クラス
タのレジスタは、データを通過させる記憶レジスタと、
セマフォレジスタである。本実施例においては、2台の
プロセッサと、共用レジスタの3つのクラスタとが設け
られる。すなわち、各プロセッサは共用レジスタの独自
の組と関連し、残る1つのクラスタはオペレーティング
システム用である。しかしながら、本発明は2つのプロ
セッサを有するシステムに限定されるのではなく、プロ
セッサの数Pがいくつであろうと適用することができ
る。この場合、設けられる共用レジスタの組の数はP+
1である。
本発明の多重タスク処理は共用又は中央記憶装置12を
介して又は通信制御回路50の共用レジスタを介して又は
双方の組合せにより達成される。第1の方式で実行され
るタスクは粗結合タスクといわれ、第2の方式で実行さ
れるタスクは密結合タスクといわれる。密結合動作の場
合、共用レジスタはタスク開始のオーバーヘッドをタス
ク及びソフトウエア実現技術の細分性に応じて1マイク
ロ秒から1ミリ秒の範囲まで減少させる。粗結合動作の
場合には、中央記憶装置12を介する通信は共用レジス
タ、さらに詳細にはセマフォレジスタを介して同期化又
は対応づけされる。
すなわち、本発明のマルチプロセッサシステムの組織
はプロセッサの集合制御(クラスタ化)のためのフレキ
シブルなアーキテクチャを提供することがわかる。この
アーキテクチャにより、K台のプロセッサを含む1つの
クラスタはオペレーティングシステムにより単一のタス
クを実行するように指定され、その結果、プロセッサは
データレジスタ及び同期化レジスタを共用して、密結合
通信を成立させる。さらに、1つのクラスタの中の各プ
ロセッサはオペレーティングシステムの制御に従ってモ
ニタモード又はユーザーモードで動作し、プログラミン
グ要件により決定されるスカラ動作又はベクトル動作を
非同期的に実行することができる。さらに、モニタモー
ドで動作するプロセッサは、いずれも、他のプロセッサ
に割込み、そのプロセッサをユーザーモードからモニタ
モードに切換えてオペレーティングシステムにタスク間
の切換えを制御させることができる。さらに、ユーザー
のデータ及びプログラムのそれぞれについて記憶セグメ
ントを分離するような構成となっているので、並行プロ
グラミングが容易である。
密結合通信回路 密結合通信回路50の全体図を第2図に概略的に示す。
これらの回路はCPU(プログラム)間で直接通信するた
めのものであり、共通又は共用レジスタ200を介してデ
ータを伝送又は交換すると共に、さらにセマフォレジス
タ160により共用レジスタ200又は中央記憶装置を介する
データ転送を容易に監視又は制御する。
有効な多重処理を実現するために、ベクトル情報、ス
カラ情報及びアドレス情報などの共用データ資源を双方
のプロセッサにより同時に使用されないように保護しな
ければならない。セマフォレジスタ160は、複数のセマ
フォレジスタのうち1つ又はいくつをか試験、セット又
はクリアするためにセマフォレジスタ160に直接アクセ
スしうるプロセッサ間のソフトウエア通信のための高速
ハードウエア機構を提供する。
ループインデクス値、記憶アドレス及びスカラデータ
などの共通パラメータは共用レジスタ200を介して伝送
される。すなわち、入れ子構成であるか否かにかかわら
ず、いくつかのループはソフトウエア制御の下での双方
のプロセッサにおける並行実行のために分割され、共用
データの記憶装置における場所は迅速に交換され、スカ
ラ定数は比較的低速である中央記憶装置に依存すること
なく伝送される。中央記憶装置をこのような種類のデー
タ転送から解放することにより、実行速度を高めること
のみならず、ベクトルデータも中央記憶装置を介してよ
り小さな遅延で伝送又は交換される。
通信制御回路50の共用レジスタは、ソフトウエア制御
の下にCIP制御レジスタ151及び152を介して利用され
る。これらのレジスタへ送られる命令は制御回路140に
より監視され、条件が許すならばそれぞれの発行制御線
141及び142を介して発行される。制御回路140は、デー
タ経路143及び144をセマフォレジスタ160、RTC195又は
共用レジスタ200のいずれか1つの選択されたレジスタ
にマルチプレクスする機能も有する。
次に第3図及び第4図に関して説明する。これらの図
は、並べて置いたときに、通信制御回路50を詳細に示す
単一の機能ブロック線図を形成する。共用レジスタ200
とセマフォレジスタ160は3つのクラスタとしてアクセ
ス可能である。各クラスタは32個の1ビットセマフォレ
ジスタと、8個の24ビットSBレジスタと、8個の64ビッ
トSTレジスタとから構成される。CPUによるセマフォレ
ジスタクラスタ161〜163のいずれか1つへのアクセス
は、以下にさらに詳細に説明するように多重化により達
成される。共用SBレジスタクラスタ及び共用STレジスタ
クラスタ200は記憶モジュールを構成し、これらのクラ
スタのいずれか1つのアクセスは選択的アドレシングを
介して達成され、アクセスされるべきクラスタを指示す
るアドレスの一部分によってアクセスされる。クラスタ
がCPUに対してアクセス可能であるか否か、及びどのク
ラスタがアクセス可能であるかはオペレーティングシス
テムにより決定され、始動時に実行されるべきジョブに
クラスタ番号を割当てることにより指示される。さらに
詳細には、オペレーティングシステムは、プログラムの
実行を切換えるのに必要な情報の全てを含む記憶装置の
ジョブ交換パッケージイメージに割当てられたクラスタ
番号をロードする。割当てられたクラスタ番号を保持す
るためにCPU0とCPU1についてレジスタ148とレジスタ149
がそれぞれ設けられており、そのため、共用レジスタ制
御回路に対して共用レジスタへのアクセス権を指示しう
る。レジスタ148及び149は交換中にCPUデータ経路から
読出し又は書込みされるか、あるいは後述するようにオ
ペレーティングシステムによる命令によって操作され
る。
ジョブに割当てられるクラスタ番号は4つの値のいず
れか1つを有する。値がゼロのとき、共用レジスタへの
アクセスは阻止される。値が1,2又は3のとき、CPUは対
応するクラスタをアクセスすることができる。並行動作
するCPUの間の密結合通信を達成するために、2つのCPU
を同じクラスタに割当てなければならない。各CPUにお
いて異なるジョブを実行することが望まれる場合又は多
重処理のために符号化されたジョブを実行するためにCP
Uを1台しか利用できない場合には、クラスタへのアク
セスは1台のCPUにのみ制限される。クラスタ番号1
は、通常は、いずれか一方のプロセッサにおいて動作す
るオペレーティングシステムのために予約され、オペレ
ーティングシステムをプロセッサ間で同期化する。これ
により、以下に詳述するようにマルチプロセッサを利用
する上で最大限のフレキシビリティが与えられる。
共用レジスタの利用に関してソフトウエア命令が提供
される。それらの命令によりセマフォレジスタ161〜163
との通信並びに共用SBレジスタ及び共用STレジスタ200
へのアクセスが可能になる。テストアンドセット命令
は、セマフォレジスタの状態を試験し、セマフォレジス
タがクリア状態であるときにそれをセットするために提
供される。クリア命令及びセット命令は、セマフォレジ
スタを無条件でクリア又はセットするために提供され
る。CIPレジスタ151及び152は、CPU0及びCPU1から米国
特許第4,128,880号に概略的に記載される現行命令パー
セルをそれぞれ受取るために設けられる。動作中、CIP
レジスタ151又は152に保持される命令が評価され、条件
が許せば、命令は発行制御線141及び142の信号としてそ
れぞれ発行される。検査される条件は、以下に詳述する
ように、他のCPUレジスタ及びデータ経路の可用度と、
共用レジスタの状態とを含む。
各セマフォレジスタクラスタ161〜163へのアクセス
は、命令及びそれに割当てられるクラスタ番号を発行す
るCPUに従って、それぞれのゲート164〜166により制御
される。ゲート167及び168も同様に、CPU0又はCPU1につ
いて、セマフォレジスタ160の適切なクラスタをセマフ
ォ試験回路170及び171、セット又はクリア回路172及び1
73並びに選択読出しデータ回路174及び175に接続するよ
うに制御される。
セマフォ試験回路170及び171は、CIPレジスタ151及び
152のそれぞれからの試験されるべきセマフォを示す5
つのデータビットと、適切なクラスタからの32のセマフ
ォレジスタビット(並行して受取られる)とを一方の入
力端子において受取る。試験されるセマフォビットがク
リア状態であれば、テストアンドセット命令が発行制御
回路153及び154のうち対応する一方のものを介して発行
される。それにより、セット又はクリアセマフォ回路17
2及び173のうち対応する一方のものは適切なセマフォビ
ットをセットし、このビットを選択データゲート180及
び181のそれぞれを介して選択されたクラスタに戻し、
ロードする。試験されるセマフォビットがセット状態で
あれば、試験中のCPUは、他方のCPUによりそのビットが
クリアされるまで発行を保持するのが普通である。
選択データゲート180及び181は、さらに、それぞれの
CPU0Siデータ経路182又はCPU1Siデータ経路183からセマ
フォレジスタクラスタを並行ロードするように切換えら
れ、これを実行するためのソフトウエア命令が提供され
る。同様に、選択読出しデータ回路174及び175も、それ
ぞれのCPU0又は1がデータ経路184及び185により提供さ
れる対応するSiデータ経路を介して1つのセマフォレジ
スタクラスタの内容全体を読出すことができるように切
換えられる。また、この動作を実行するためのソフトウ
エア命令が提供される。これらの命令は、オペレーティ
ングシステムにより達成されるような、1つのジョブの
開始時におけるレジスタのローディング又は1つのジョ
ブの実行時間終了時におけるレジスタ内容のセービング
に有用である。
セット又はクリア命令は無条件に発行可能である。発
行されると、セット又はクリアセマフォ回路172又は173
のうち適切な一方の回路は適切なセマフォレジスタをセ
ット又はクリアする。セマフォ制御回路155は、1つの
セマフォレジスタクラスタの並行書込み又は並行読出し
を達成しようとする同時の試みを阻止しない。
3つの共用レジスタ200のクラスタのいずれか1つへ
のアクセスは、通常は、命令発行制御においてはレジス
タについての予約が行なわれないのでプロセッサ間でそ
の調整を行なうためにセマフォレジスタを利用して、CP
Uソフトウエアのみにより制御される。しかしながら、
本発明のレジスタ構成における制限により要求されるよ
うに、同じクロックサイクルで双方のCPUにより同時ア
クセスが行なわれるのを阻止するためにハードウエア共
用レジスタアクセス制御回路190が設けられる。共用レ
ジスタアクセス制御回路190はその入力端子において、C
IPレジスタ151又は152に含まれる読出し命令又は書込み
命令の適切なビットを受取り、その出力端子は発行制御
回路153及び154にそれぞれ接続される。アクセス競合状
態は、SB又はSTレジスタ200を読出そうとする同時の試
みを含み、この場合、一方のCPUが1つのクロック周期
間に発行を保持することが必要とされる。発行を保持す
ることが必要とされるCPUは、命令がCIPに入力されると
きの順序づけのような要因を考慮に入れた所定の優先順
位階層に従って選択される。書込み命令についてのアク
セス競合は同じように処理すれば良いが、書込み動作に
固有の3つのクロック周期遅延を考慮しなければならな
い。すなわち、読出し動作が書込み命令の発行に続くCI
Pの3つのクロック周期にある場合、同時アクセス競合
が発生すると考えられ、少なくとも1つのクロック周期
について読出し命令の発行を保持しなければならない。
たとえば、読出し命令がCPU0のCIP151に入力され、書込
み命令が3つのクロック周期だけ前にCPU0から発行され
た場合、CPU0は1クロック周期だけ発行を保持する。同
様に、CPU1において書込み命令が3つのクロック周期だ
け前に発行された場合、CPU0は1クロック周期だけ発行
を保持する。こうして、共用レジスタアクセス制御回路
190は共用B又はTレジスタへの同時アクセスを阻止す
る。
読出し命令又は書込み命令が発行可能となったとき、
適切なCPU命令パーセルは選択アドレスゲート191を介し
て、命令を発行するCPUと関連するクラスタ番号により
決定される適切な共用レジスタ200のクラスタに導かれ
る。書込みデータ命令の場合、選択書込みデータゲート
192は、適切なCPUレジスタをアクセスすることと関連す
る遅延により発行後3クロックサイクルを経てから、適
切なそれぞれのデータ情報又はアドレス情報Si又はAiを
導くように切換えられる。選択されたクラスタの適切な
レジスタのアドレスは命令パーセルを介して提供され、
選択アドレスゲート191により影響を受け、遅延回路199
において3クロックサイクル分だけ遅延され、そのレジ
スタへの書込みは、命令が発行されてから3クロックサ
イクル後に達成される。読出し命令の場合もクラスタと
アドレスが同様に選択され、選択読出しデータゲートの
適切な一方のゲート174又は175は、選択されたレジスタ
の出力を必要に応じてSi又はAiデータ経路に導くように
切換えられる。
クラスタ番号用レジスタ148又は149が全てのクラスタ
に対してアクセスしうるようにそのレジスタの内容を変
更するために、オペレーティングシステムにより使用さ
れるべき命令が提供される。活動交換パッケージにより
決定されるように、CPUがモニタモードで動作している
場合に限り、この命令によりクラスタ番号用レジスタの
内容を変更することができる。
通信制御回路50は、いずれか一方のCPUのSiデータ経
路からの選択リアルタイムクロックゲート196を介する
書込みのため又はCPU0及びCPU1のそれぞれについての選
択読出しデータゲート174及び175を介する読出しのため
に選択しうる共用リアルタイムクロック(RTC)レジス
タ195をさらに含む。クロックレジスタ増分回路97は、
クロックサイクルごとにリアルタイムクロックレジスタ
195のカウントを増分するために設けられる。
単一のCPUによる多重処理タスクの実行を調整するた
め及び双方のCPUがテストアンドセット命令の並行発行
を保持する可能性を排除するために、検出回路145及び1
46と、比較器147とから構成されるデッドロック割込み
機構が設けられる。検出回路145及び146は、それぞれ、
各発行制御回路153及び154からの発行保持信号と、クラ
スタ番号用レジスタ148及び149に接続される比較器147
からのクラスタ番号比較信号とを受取る。デッドロック
割込みは2つの状態のいずれか一方においてCPUで発生
する。一方の状態において、一方のCPUはテストアンド
セット命令の発行を保持し、2台のCPUのクラスタ番号
は比較器147により指示されるように異なる。従って他
方のCPUが選択されたセマフォビットをアクセスし、ク
リアして保持中のCPUに処理を続行させることは不可能
である。この場合、デッドロック割込みは検出回路145
及び146のうち適切な一方により発生され、デッドロッ
クされたCPUでジョブの交換が実行されるので、処理は
継続する。第2の状態においては、双方のCPUは同じク
ラスタにあり、テストアンドセット命令の発行を保持し
ている。このデッドロック状態で、デッドロック割込み
は同様に、双方のCPUにおいて現在実行されているジョ
ブを交換するので、処理は継続する。
すなわち、密結合通信制御回路50はアドレスデータ又
はスカラデータについて、並びに共用データ資源の制御
及び保護についてCPUの間で高速通信路を提供する。セ
マフォレジスタ、SBレジスタ及びSTレジスタが集合制御
(クラスタ)配置されるので、いくつかのマルチプロセ
ッサジョブを唯一台のCPUで実行できると共に、1つの
クラスタをオペレーティングシステムによる使用のため
に予約することができる。このように、密結合通信制御
回路は、さらに低速で且つ複雑なソフトウエア保護方法
の適用を不要にし、かなり低速の中央記憶装置経路を介
する通信の必要性を著しく減少させる。
中央記憶装置 CPU0及び1を中央記憶装置にインターフェース接続す
るポートを第5図に概略的に示す。明瞭且つ簡潔を期す
るために、CPU1のインターフェースの一部分のみを示
す。しかしながら、CPU1について対称形の構成が設けら
れることは自明であろう。明瞭且つ簡潔を期するため
に、機能ユニット及びそれと関連するいくつかの相互接
続部を図面から省略した。しかしながら、それらは米国
特許第4128880号に示されるのと同じように図示される
様々なレジスタに接続される。ただし、第5図に示され
るようにいくつかの点で変形が行なわれている。たとえ
ば、双方のCPUについて唯一組のCA及びCLレジスタが設
けられ、それらのレジスタは前述のようにいずれか一方
のCPUによりアクセスされる。同様に、先により詳細に
説明したように唯一つのRTCレジスタが設けられてい
る。
中央記憶装置12は8つのポートを有し、各CPUと4つ
のポートがそれぞれ関連する。一般に、それぞれのポー
トは、記憶参照要求の監視、記憶装置アドレシング及び
CPUレジスタ又はI/O装置と記憶装置との間のデータ経路
指定を含む記憶参照動作を制御する。3つのポート、す
なわちポートA、ポートB及びポートCは記憶装置とCP
Uレジスタとの間でデータを転送する。第4のポート、
すなわちI/Oポートは、たとえばディスク又はSSD記憶装
置により提供される周辺記憶装置と中央記憶装置との間
でデータを転送するために設けられる。
ポートAは中央記憶装置からのデータ転送のためにV
(ベクトル)レジスタ260、Bレジスタ261又はAレジス
タ265にデータ経路250を介して接続される。ポートB
は、中央記憶装置からデータ経路251を介してVレジス
タ260に至る別のデータ転送経路を提供し、さらに、転
送のためにTレジスタ262又はSレジスタ263に接続され
る。すなわち、ポートA及びポートBは中央記憶装置か
らデータを読出し、そのデータをそれぞれのV,B,T,S又
はAレジスタ260,261,262,263及び265のいずれか1つに
転送する。ポートCはVレジスタ260,Bレジスタ261及び
Tレジスタ262からのデータをデータ経路253を介して転
送するように接続され、データは中央記憶装置に記憶さ
れる。さらに、ポートCはA(アドレス)レジスタ265
及びS(スカラ)レジスタ263からのデータをそれぞれ
転送することもできる。すべてのI/OはI/Oポートを介し
て送られる。
活動交換パッケージレジスタ266は、読出し参照及び
書込み参照のそれぞれの交換のためにデータ経路250及
びデータ経路253に接続される。データ経路250及び253
はそれぞれ64ビット幅である。上方の40ビットはレジス
タ266に選択的に接続され、交換活動中にのみデータを
搬送し、それ以外のときはゼロにセットされる。活動交
換パッケージレジスタ266の動作については以下にさら
に詳細に説明する。
命令バッファ264は、以下に詳述する命令読出し動作
の独特な性質に対処するために、ポートとは無関係に記
憶装置アクセスバス270を有する。A,B,Cの各ポートは対
応するCPUにより独占的に制御され、利用される。2つ
のI/Oポートは共用システム資源であり、それぞれ異な
る一組のI/Oチャンネルを処理する。いずれか一方のI/O
ポートをいずれか一方のCPUにより動作させ、利用する
こともできる。すなわち、I/O現行アドレス(CA)レジ
スタ及びチャンネル制限(CL)レジスタはそれぞれのAi
データ経路及びAkデータ経路を介して双方のCPUに接続
される。共用I/O制御・記憶回路252はCAレジスタ及びCL
レジスタに応答し、以下にさらに詳細に説明するように
そのハードウェア組織に従って2つのI/Oポートを介し
てI/O動作を実行する。従って、各I/Oポートは異なる一
組のI/Oチャンネルとインターフェースを接続するが、
いずれか一方のCPUはいずれか1つのチャンネルを、そ
のチャンネルがどのポートにより制御されるかにかかわ
らず利用する。
本発明のマルチプロセッサの中央記憶装置は32の独立
して制御可能な記憶バンクに分割される。それらのバン
クは、それぞれ8つのバンクを含む4つの部分に組織さ
れる。第6図に示されるように、各部分は記憶装置の32
のバンクのうち8つを介在(インタリーブ)配列で含
む。部分0はバンク0,4,8,12,16,20,24及び28を含む。
部分1はバンク1,5,9,13,17,21,25及び29を含む。以
下、同様である。4つの部分は、それぞれ、2つの独立
したアクセス経路を有し、各経路は記憶装置のバンクに
至り、一方のCPUにより制御される。各アクセス経路は
1本の記憶装置アドレス経路と、1本の書込みデータ経
路と、1本の読出しデータ経路と、1本の制御経路とを
含む。アクセス経路は、各クロックサイクルで1つのメ
モリ参照−読出し又は書込み−を許容する。すなわち、
各部分の2つまでのバンクが各クロックサイクルで参照
され、同じクロックサイクルのうちに8つまでのメモリ
参照が可能である。
競合解決 第6図に関して説明する。各ポートは、メモリ競合解
決回路網290を介して4つのメモリ部分0〜3,280〜283
の全てにそれぞれ接続されることがわかる。この回路
は、1つのメモリバンクが4クロックサイクルごとに1
回以上参照されないこと、クロックサイクルごとにCPU1
台について唯一つの参照がメモリの1つの部分に許容さ
れること;及び1つのポートにより為される全ての参照
がそれらが発生されたシーケンスで保持されることを保
証する。メモリ競合解決回路網290は4つの独立した競
合解決回路網291〜294から構成され、1つの回路は各メ
モリ部分に対応し、各回路は8つのポート全てに接続さ
れ、1つの部分に対し2つの独立したアクセス経路を提
供する。前述のように、命令バッファ264は独立したメ
モリアクセスバス270を有し、メモリ競合解決回路網290
をバイパスする8本のデータ経路を含むように図示され
ている。
一般に、命令がポートに発行されたことを指示する命
令発行制御回路、すなわちCIPレジスタの予約フラグに
より提供されるように、一度に唯一つの命令が1つのポ
ートに発行される。予約はセット状態のままであり、ポ
ートに発行された命令についての全ての参照が為される
まで、命令によるポートのそれ以上の使用は阻止され
る。この時点で、以下に詳述するようにポート制御回路
は予約を解除する。
次に第7図及び第8図について説明する。これらの図
は並置すると競合解決回路の1つの部分を示す単一の線
図を形成する。第7図において、入力ゲート(300〜30
3)はポートA,B,C及びI/Oからのメモリ参照要求の5つ
のLSB(最下位)ビットを受取り、2つのLSBは適切な競
合解決回路網の部分をエネイブルする。メモリ参照要求
は、アドレスデータの22ビットから構成される。最下位
の2つのビットは4つのメモリ部分の1つを指定し、次
の3ビットはメモリ部分内の8つのバンクのうち1つを
指定する。入力ゲート304〜307はCPU1から対応する参照
要求を受取る。入力ゲート302及び306は、以下に詳述す
るようにスカラメモリ参照要求も受取る。入力ゲート30
0〜307のいずれか1つにおいて参照要求が受取られる
と、バンクを指示する3ビットは復合化され、参照が向
けられる8つのバンクのそれぞれのものに対応するバン
ク使用中信号と比較される。バンク使用中監視回路310
は、メモリ部分の各バンクの活動を監視するために設け
られる。この回路310の出力信号はデータ経路311を介し
てバンク競合検査回路320〜327のそれぞれに接続され
る。バンク競合検査回路320〜327は、対応するバンク使
用中信号を入力ゲート300〜307を介して通過された参照
のそれぞれと比較する。この比較の結果は、参照競合解
決回路330〜337のうち対応するものへ搬送される。
各参照要求は、他方のCPUに対応する入力ゲートの出
力に存在する何らかの有効要求とも比較される。この比
較は、入力ゲート300〜307のそれぞれの出力を受取り、
ポート参照競合解決回路330〜337のそれぞれに出力を提
供すると共に他の3つのメモリ部分競合回路からのその
ポートについての競合信号を受取る同時バンク参照検査
回路312により達成される。特定のポートについての基
準が1つのメモリ部分回路網において競合を有する場
合、他の全てのメモリ部分回路網は通知を受けるので、
そのポートからの、別のメモリ部分へ向かうと考えられ
る次の参照は進行することができない。これにより、各
ポートからの参照の順次動作が保証される。この比較、
バンク使用中比較、他の競合、CPU内優先順位及びCPU外
優先順位の結果に基づいて、参照競合解決回路網330〜3
37は参照要求が進行できるか否かを決定する。もし進行
できなければ、対応するポートに対し競合信号が発生さ
れるので、競合が解決されるまで、そのポートはさらに
参照要求を発生するのを阻止される。CPU内優先順位は
交互ベースで決定されるため、各CPUは8クロックサイ
クルごとに優先順位4を有する。
CPUの内部の複数のポートが同じメモリ部分のバンク
を要求している場合、バンク使用中競合及び同時参照競
合をもたない最高優先順位のポートが参照を形成し、他
のポートは競合信号を受取る。2つのポートがバンク使
用中競合又は同時参照競合をもたない場合には、奇数ア
ドレス増分を伴なうポートが偶数アドレス増分を伴なう
ポートより優先する。双方の増分が同じであれば、最も
早く動作されたポートの参照要求が最初に進行する。す
なわち、1つのメモリ部分に対する参照の数はクロック
サイクルごとにCPU1台当たり1つに制限される。
ポートがそれ以上メモリ参照要求を形成するのを阻止
されたとき、競合を受取る要求は、競合が存在しなくな
るまで入力ゲート300〜307のそれぞれの上方入力端子を
介して再び提供される。これにより、各ポートの順次動
作が保証される。メモリ参照要求が競合をもたないと
き、メモリ参照は要求されたバンクに移行され、バンク
使用中監視回路310の対応するバンク使用中信号は4ク
ロックサイクルだけセットされ、従って、そのバンクに
ついての別の要求がバンク参照サイクルの完了前に許容
されることはない。参照が為されると、メモリ参照アド
レスの最上位の17ビットを以下に詳述するように参照さ
れるメモリ部分及びバンクに導くために、同時に制御信
号が発生される。
進行する参照はゲート340及び341を介してそれぞれの
ゲート342及び343に導かれる。ゲート342,343,344と、
取出し又は交換競合解決回路345とは、取出し又は交換
メモリ参照動作という特殊な場合に対処するために設け
られる。取出し又は交換参照動作の場合、競合は全ての
ポートに強制的に発生される。取出し又は交換動作は、
全てのバンク使用中がクリアされるまで開始されない。
第5図に戻って説明すると、取出し又は交換動作がメモ
リ競合解決回路網290をバイパスするために、この動作
が必要であることがわかる。交換参照動作の場合、記憶
装置への2回までの参照は、各メモリ部分から交換パッ
ケージワードを順次読出し、書込むためにポートA,B及
びCを利用して、各クロックサイクルの間に達成され
る。いくらかの読出しと書込みは同時に実行されるが、
これは、読出し動作がポートA及びBを介して進行し、
書込み動作はポートCを介して進行するためである。双
方のCPUにより同時取出し又は交換の要求が行なわれた
場合には競合が発生し、競合解決回路345がCPU1からの
要求を保持する。取出し又は交換参照がCPU0により完了
されたとき、CPU1は進行することができる。
唯一つのメモリ部分の競合解決回路しか図示されてい
ないが、前述のように、記憶装置の各メモリ部分が対応
する競合解決回路を有することは自明である。すなわ
ち、各CPUの4つのポート全てについて、それぞれが異
なるメモリ部分に対するものであるならば同じクロック
サイクルで参照を行うことができる。また、各CPUは、
同じメモリ部分内の異なるバンクに対するものであるな
らばその同じ部分に対し同時参照を形成することができ
る。さらに、条件によっては、各クロック周期に最高8
回の参照を実施することができる。
メモリ参照の発生及び制御 CPU及びIOP(入/出力プロセッサ)からのメモリ参照
要求を収集し、その発生を制御する回路を第9図、第10
図、第11図、第12図、第13図、第14図及び第15図に概略
的に示す。前述のように、参照要求はポートA,B,C及びI
/Oのいずれか1つにより発生され、さらに、取出し又は
交換参照の特殊な場合にはポートに依存せずに実行され
る。第9図、第10図、第11図、第12図及び第13図は、本
発明の多重処理システムのI/O参照収集・制御回路を概
略的に示す。これらの回路は、第5図にI/O制御回路55
としてより一般的に示されている。
第9図及び第10図は、競合解決回路網への万一の入力
のためにI/Oメモリ参照要求を発生し、制御する回路を
機能ブロック線図の形態で示す。これらは、記憶装置と
周辺記憶装置との間でデータを転送するために利用でき
る3種類のI/Oチャンネルである。第1のチャンネルは
低速チャンネル(LSP)であり、4対設けられる。各対
は入力チャンネルと、出力チャンネルとを含む。低速チ
ャンネルを介する転送動作を開始させるために、現行ア
ドレスCAとチャンネル制御アドレスCLとが第5図にさら
に概略的に示されるレジスタのうち適切なものにロード
される。第5図によれば、いずれか一方のプロセッサは
Aiデータ経路及びAkデータ経路を介してレジスタをアク
セスする。レジスタ401,402,405及び407は低速入力チャ
ンネルアドレスレジスタである。これらのレジスタは、
それぞれ、低速出力参照動作を実行するために設けられ
るそれぞれのレジスタ402,404,406及び408と対を成す。
CAアドレス及びCLアドレスは、入力端子において双方の
CPUのためのAkデータ経路の分岐を受取るマルチプレク
サ410を介していずれか一方のCPUによりレジスタ401〜4
08のいずれか1つにロードされても良い。
2対の高速チャンネル(HSP)も設けられる。メモリ
参照はこれらのチャンネルを介し、入/出力プロセッサ
(IOP31)からロードされる入力又は出力現行アドレスC
Aと、ブロック長BLとをそれぞれ保持するレジスタ420,4
22及び421,423を利用して形成される。入/出力プロセ
ッサは、参照を始動すべき場合及び転送されるワードの
数を中央記憶装置に指示する。これらの高速チャンネル
はCPUを介して制御することはできない。
さらにもう2対のI/Oチャンネルが設けられる。これ
らのチャンネルは記憶装置を高速固体回路記憶装置(SS
D)とインターフェース接続し、CPUからのCAデータ及び
BLデータを低速チャンネル400〜408がCAデータ及びCLデ
ータを受取るのと全く同じように受取るレジスタ424及
び426を利用して入力又は出力の転送を開始し、制御す
る。この場合、BLはSSDから転送すべきデータのブロッ
クの数を指定し、各ブロックは複数のデータワードを含
む。使用されるSSDは、同時係属出願、名称「ソリッド
・ステート・ストレッジ・デバイス」(Solid State St
orage Devic)出願日( 年 月 日、出願番号 に
記載されるようなものであるのが好ましい。これらのSS
DチャンネルはCPUの制御の下にあり、いずれか一方のCP
Uによりマルチプレクサ410を介して動作される。
レジスタ401〜425は、それぞれ、レジスタ401〜408,4
20〜425のいずれか1つの選択的ローディングのための
適切な命令の発行時に発生される入力アドレス信号409
を供給され、参照アドレシングデータはそれらのレジス
タの入力端子に供給される。レジスタ401〜425のいずれ
か1つがロードされると、対応するI/Oチャンネルは動
作されてI/Oメモリ参照動作を開始する。メモリへの参
照はレジスタに最初にロードされる現行アドレスCAにお
いて始まる。低速チャンネル401〜408及び高速チャンネ
ル420〜423の場合、チャンネル制限アドレス又はブロッ
ク長さに場合により達するまで参照が進行するにつれ
て、アドレスは増分回路428及び429を介して1だけ増分
される。SSDチャンネルの参照は双方のCPUを介して常に
結合して進行するので、2つのメモリ参照を各クロック
サイクルで達成することができる。従って、レジスタ42
4〜425のアドレスは各参照サイクルにつき2つずつ増分
される。当初、レジスタ425は参照が行なわれないとき
に1だけ増分される。SSDチャンネル制御回路427は、SS
D始動アドレス及びBLパラメータをSSDに供給し且つマル
チプロセッサとSSDとの間に転送プロトコルを提供するS
SDインターフェースケーブルに設けられる。
このシステムは、I/O転送の完了時に発生するI/O割込
みをフレキシブルに処理する。I/O割込みがCPUによりサ
ービスされるように、そのようなことを指示するフラグ
をCPUの活動交換レジスタ266においてセットしなければ
ならない。これにより、CPUはI/Oチャンネルの割込みを
サービスするためにCPUはモニタモードに入る。どのCPU
が割込みをサービスするかの選択は、適切なフラグをセ
ットする選択されたCPUの交換レジスタにCPU I/O割込み
信号を提供するI/O制御回路252において実行される。CP
U I/O割込みは、いずれか一方のCPUが交換動作を進行し
ている場合又は一方のCPUがモニタモードにある場合に
はI/O制御回路252により発生される。すなわち、I/O制
御回路252は、不要なI/O割込みを遅延させるか又は阻止
する手段を提供する。たとえば、CPUが交換プロセスに
ある場合、その交換は定義上はI/Oをサービスするオペ
レーティングシステム(すなわちモニタモード)に対す
るものであり、この場合、交換中のCPUも、他方のCPUも
割込みの必要はない。いずれのCPUもモニターモード又
は交換プロセスにない場合、I/O割込みは以下の方式に
従って進行する。一方のCPUの活動交換レジスタ266が外
部割込みモード選択ビット又はフラグビット(オペレー
ティングシステムによる操作のために提供される)を有
する場合、I/O割込みはそのCPUで発生される。いずれの
CPUの外部割込みビッドもセットされていない場合、割
込みは、試験・セット命令についての発行を保持してい
るCPUに向かって導かれる。これらの条件のいずれもが
双方のCPUについて存在する場合又は存在しない場合に
は、I/O割込みは現在割込み中のチャンネルへの割込み
をサービスした最後のCPUに導かれる。すなわち、1回
のI/O割込みをサービスするために唯一台のCPUが割込ま
れ、オペレーティングシステムにより外部割込みモード
選択フラグを介して又はCPUの動作条件により決定され
るように最も望ましいCPUが選択される。
マルチプレクサ及び制御回路440〜442及び443〜445は
対応するレジスタの出力端子のいずれか1つの出力を、
後述するCPUのI/Oメモリ参照制御・メモリアドレス選択
回路の対応するものに切換えるために設けられる。マル
チプレクサ442と制御回路445は、第11図及び第12図によ
り詳細に示されるように、チャンネル優先順位及びメモ
リ競合に従ってI/O参照要求の処理を制御する。レジス
タ440及び443は選択されたレジスタのCAをCPU0及びCPU1
のAiデータ経路に提供し、参照動作の進行を監視できる
ようにする。
レジスタ401〜408及び420〜425に現在あるメモリ参照
要求のうちどれの制御が各参照サイクルで進行するか
は、第11図に示されるI/O参照制御方式により決定され
る。第11図の参照制御方式はCPU0を介して進行する参照
に対応し、第12図の参照制御はCPU1を介して進行する要
求に対応する。低速チャンネル0〜7を介する参照要求
は、常に、CPUの参照制御回路のそれぞれについて4つ
の優先順位群又は優先順位対を形成するために高速チャ
ンネル又はSSDチャンネルからの要求に対して従属され
る。すなわち、顕著な参照要求対501及び502,503及び50
4、505及び506、507及び508、509及び510、511及び51
2、513及び514、515及び516は、それぞれの対の優先順
位決定回路520〜527により監視され、それによって優先
順位決定される。回路520〜523及び524〜527からの優先
順位参照要求は、次に、回転ベースでそれぞれのタイム
スロット回路530及び531によりさらに優先順位決定され
るので、各優先順位群は4クロック周期ごとに1つの参
照を許容される。高速チャンネル(HSP)参照又はSSD参
照が進行を許される場合、タイムスロットは継続する前
に16の参照が形成されるように停止する。すなわち、I/
Oチャンネル優先順位が決定され、回路442及び445はそ
れに相応してI/O参照要求をゲートする。
CPUにおいて発生するメモリ参照は第13図に示される
ポート参照制御回路により発生され、制御される。第13
図は各CPUについて全く同じ構成を示す。メモリ参照ア
ドレスレジスタ551〜553は、A0データ経路を介してポー
トA,B及びCについての相対メモリ参照アドレスを受取
る。この相対アドレスはそれぞれの加算回路554〜556に
おいて、現在実行中のCPUジョブに対応する交換パッケ
ージから収集されるデータベースアドレスと加算され
る。この加算はメモリポート動作の最初の2つのクロッ
クサイクルで実行される。第1回のクロックサイクルに
おいて、メモリ参照アドレスレジスタ551〜553には相対
メモリアドレスがロードされ、それぞれ対応するレジス
タ557〜559にはそれぞれのゲート540〜542を介して交換
パッケージからのデータベースアドレスがロードされ
る。次のクロックサイクルにおいては、加算はそれぞれ
の加算回路554〜556で実行され、それぞれのレジスタ55
1〜553に戻され、ロードされる。その後、レジスタ557
〜559は増分レジスタとして動作し、選択される増分はA
kデータ経路に沿ってゲート540〜542のうち適切な1つ
のゲートを介して搬送される。メモリ参照アドレスレジ
スタ551〜553に存在するメモリ参照はポートA、ポート
B及びポートCの参照制御回路561〜563の制御の下にそ
れぞれ進行する。これらの回路は、それぞれ、4つのメ
モリ部分競合解決回路のそれぞれからの対応するポート
競合信号と、それぞれのポートについての「ゴーポー
ト」信号とを受取る。ゴーポート信号は、メモリ動作命
令がCIPを出たこと及び「ゴーポート」信号を発生する
ポートによりメモリ参照を発生すべきであることを指示
する。各制御回路561〜563は、命令発行制御回路すなわ
ちCIPにおいて前述の予約フラグをクリアするためにポ
ート予約解除信号を発生する。このフラグは、ゴーポー
ト信号が発生されたときにセットされる。制御信号出力
は、一般に、制御回路の制御機能を実行するためのハー
ドウェア規定を表わす。ポートAについて制御回路561
のみが図示されているが、各制御回路561〜563は、ベク
トル転送のためのVLレジスタからのブロック長パラメー
タ又はB又はTレジスタ転送のためのAiデータ経路から
のAiを受取り且つ参照をカウントし、転送の完了を通知
する参照長制御回路545を含む。この時点で、ポート予
約解除信号が発生される。参照要求が許可されるたび
に、メモリ参照アドレスはそれぞれの加算回路において
増分される。ポートCの制御回路563は、さらに、記憶
装置への書込みベクトルデータの要求が進行許可された
ときにベクトルレジスタにゴーメモリデータ信号を供給
する。
スカラ、I/O、取出し及び交換の要求についての参照
制御回路を第14図、第15図及び第16図にそれぞれ示す。
スカラ参照動作は独特の性質を有するので、独自の制御
回路を有する。スカラ参照命令は、スカラ参照命令の前
にポートA,B及びCの予約がクリアされていることを要
求する。これは、スカラ参照要求がポートCの参照要求
とOR演算れ、ポートA及びBの読出しデータ経路は回路
の利用率を最大限に高めるために使用されるためであ
る。しかしながら、希望に応じてスカラ参照のために全
く別個の経路を設けても良い。スカラ要求は唯一つの記
憶場所に対するもので、従って増分回路は不要である。
データベースアドレス、Ahデータ及びjkmデータの加算
回路570で実行され、その結果はスカラメモリ参照アド
レスレジスタ571に搬送される。スカラメモリ参照はス
カラ参照制御回路572の制御の下にスカラメモリ参照ア
ドレスレジスタ571に保持される。この制御回路572は競
合解決回路網からのポートC競合信号と、発行スカラ参
照信号とを受信し、スカラメモリ参照命令の発行を指示
する。他の参照要求とは異なり、2つまでのスカラ参照
が発生され、同時にそれらは顕著である。ただし、それ
らの要求は唯一の参照要求を必要とすることが認識され
る。
各CPUは、第9図及び第10図のI/Oメモリアドレス回路
のそれぞれからレジスタ575のI/O参照要求アドレスの5
つのLSBを受取る第15図のI/O参照制御回路を有する。I/
O参照制御回路576は競合解決回路網からのI/O競合信号
と、I/Oメモリ要求信号とを受信し、有効I/O参照要求を
指示する。参照制御回路576は要求される参照のための
アドレス及び経路を制御するために設けられる。
第16図は、メモリへの取出し又は交換参照要求を制御
する回路を示す。命令基底アドレス及びプログラムカウ
ンタ(P)データは加算回路580により受取られ、取出
し又は交換アドレスレジスタ581への入力のために加算
される。常に32ワードの長さである取出し動作のための
範囲検査は、命令制限アドレスを越えたときに取出し、
交換制御回路583への取出し放棄信号を発生するために
加算回路580の出力及び命令制限アドレスを受取る取出
し範囲検査回路582で実行される。取出し・交換制御回
路583は、さらに、取出し又は交換要求信号と、取出し
又は交換進行信号とを取出し又は交換競合解決回路網34
5から受取る。交換アドレスレジスタ584は、新しい交換
パッケージからのローディングのためにAjデータ経路及
びポートCメモリ読出しデータを受取る。交換アドレス
レジスタ584の出力は、古い交換パッケージを記憶する
ためにポートCメモリ書込みデータとなり、取出し又は
交換アドレスレジスタ581に送られる。取出し・交換制
御回路583は取出し又は交換動作、たとえば、データが
利用可能であることを命令バッファに信号で通知する動
作又は交換パラメータレジスタに対して交換パラメータ
を入出力する動作などのためにアドレス経路及びデータ
経路を制御する。
1つのメモリ部分へのメモリ参照要求が競合解決回路
網により進行を許可されたとき、メモリ部分の内部の参
照されるべき場所を指定する参照アドレスの最上位の17
ビットは記憶装置の適切なメモリ部分アドレシング回路
網にゲートされる。第17図のメモリアドレス選択回路は
この目的のために設けられる。ポートA、ポートB、ポ
ートC、スカラ、I/O又は取出し又は交換に関する参照
要求は、参照の進行が許可されたときに第17図の回路に
より適切なメモリ部分へゲートされる。ゲート600は、
ポートC参照要求アドレス又はスカラ参照要求アドレス
を選択するために設けられる。ゲート601〜604は、ポー
トA、ポートB、ポートC又はスカラの参照要求アドレ
スを状況に応じて選択するために設けられる。ゲート60
5〜608は、ゲート601〜604の出力、I/O参照アドレス又
は取出し又は交換参照アドレスを選択するために設けら
れる。すなわち、ポートA、ポートB、ポートC、スカ
ラ、I/O又は取出し又は交換参照アドレスのいずれか1
つが4つのメモリ部分アドレシング回路網のいずれか1
つを介してゲートされる。
範囲検査回路620〜623は、参照アドレスが指定の範囲
の内部にあることを保証し且つ適切なときにそれぞれの
メモリ部分に参照放棄信号を発生するために設けられ
る。範囲制限レジスタ610は、ポートA、ポートB、ポ
ートC及びスカラの参照に関する交換パッケージからデ
ータ基底アドレス及びデータ制限アドレスを受取る。前
述のように、取出し参照範囲検査は第16図の取出し範囲
検査回路582において実行され、それにより発生される
放棄信号は範囲検査回路620〜623のそれぞれに入力され
る。I/Oアドレシング又は交換については範囲検査能力
は提供されない。
記憶装置への各書込み参照のためのデータは適切なレ
ジスタ又はI/Oチャンネルから適切なメモリ部分に導か
れる。前述のように、記憶装置への書込み参照はポート
C又はI/Oポートを介して実行される。メモリ書込みデ
ータ選択は第18図に示される回路で実行される。ゲート
650は、検査バイト発生回路651への入力のためにポート
CのAiデータ経路、Bデータ経路、Siデータ経路、Tデ
ータ経路又はVjデータ経路からのデータを選択する。ベ
クトルデータの競合解決回路網290への伝播には3クロ
ックサイクル分の遅延があり、メモリ部分競合信号がCP
Uのレジスタへ戻るのに1クロックサイクル分の遅延が
あるため、競合が発生したときに、1つにつき1ワード
ずつベクトルデータの3つのワードを保持する3つのデ
ータスタッキングレジスタ655〜657が設けられる。ゲー
ト650は、必要に応じて第1のワードを保持する。ゲー
ト658は、ポートCに入力される3つのデータ経路の中
から選択を行なう。ポートC書込み動作が進行を許可さ
れたとき、ゲート650は、それぞれ連続する参照サイク
ルについて1つのレジスタ655〜657の出力を検査バイト
発生回路651に順次ゲートする。データスタッキングレ
ジスタ655〜657のどれが選択されるかは、スタックされ
ているワードの数によって決まる。検査バイト発生回路
651は8ビットのパリティ情報を発生し、メモリ書込み
のために72ビットのワードを提供するためにこの情報を
ゲート650から受取られる64ビットのワードと組合わせ
る。
ゲート660〜663は、検査ビット発生回路651の出力又
はI/O書込みデータを選択するために設けられる。すな
わち、CPU1台につき合わせて2種類の書込み動作がクロ
ック周期ごとに可能である。
ゲート660〜663に供給されるI/O書込みデータは、第1
9図の回路における処理の後にI/Oチャンネルから到達す
る。低速入力チャンネル0,2,4及び6の場合、データはI
/O装置から16ビットのワードとして受取られ、このワー
ドはそれぞれのアセンブリレジスタ670〜673において64
ビットのワードに組立てられなければならない。
高速チャンネル0及び2と、SSD入力チャンネルの場
合には、入力されるデータを緩衝するためにバッファ67
4〜681が設けられる。マルチプレクサ690及び691は、CP
U0及びCPU1についてそれぞれの入力チャンネルからデー
タを受取り、それぞれの誤り修正・検査バイト発生回路
692及び693への出力のために適切な書込みデータを選択
するために設けられる。これらの回路692及び693の出力
は対応するCPUのメモリ書込みデータ選択回路のI/O書込
みデータ経路のうち適切なものに供給される。
メモリ部分から適切なCPUレジスタ及びI/O出力回路
(第21図)へのメモリ読出し参照動作のためのデータル
ート指定は、第20図の回路において実行される。メモリ
部分のデータ読出し経路は、データを一方のCPUのA,B,
S,T又はVレジスタのそれぞれに又はI/O出力回路に導く
ために設けられる選択ゲート701〜703のそれぞれの一方
の入力端子に接続される。Vレジスタへ向けられるメモ
リ読出し動作は、8つのVレジスタのいずれか1つにデ
ータ経路を切換える付加的なゲート704を介してルート
指定される。ゲート704は、さらに、6つの機能ユニッ
トのいずれか1つの結果又はSiデータ経路をVレジスタ
へルート指定することができる。I/Oへの記憶のため
に、4つのメモリ部分のそれぞれから8ビットの検査バ
イトが提供され、I/O出力回路への搬送のためにゲート7
03において組合わされる。
選択ゲート703の出力は、第21図に示されるようにマ
ルチプレクシング回路と、バッファ回路と、分解回路と
を含むI/O出力回路のうち対応するものにより受取られ
る。ファンアウト回路750及び751はメモリデータ選択回
路から72ビットのメモリワードを受取り、現在実行中の
選択された参照を実行するチャンネルに従ってレジスタ
752〜755又はバッファ756〜763を分解するためにそのメ
モリワードをマルチプレクスする。マルチプレクサ765
〜768は、バッファ756〜763の対応する出力を高速出力
チャンネルケーブル及びSSD出力チャンネルケーブルの
うち対応するものにマルチプレクスするために設けられ
る。低速チャンネルケーブルは20ビット幅、高速チャン
ネルケーブルは72ビット幅、そしてSSDチャンネルは144
ビット幅であって、クロックサイクルごとに2ワードの
動作能力を支援する。
ベクトルレジスタ 前述のように、本発明のマルチプロセッサシステムの
CPUは米国特許第4128880号のベクトル処理機械の改良さ
れた構成であるのが好ましい。この機械においては、本
発明の改良された構成と同様に、ベクトルレジスタ260
(第5図)はCPUの主演算レジスタであり、ベクトル演
算は一連のベクトル要素を処理することにより実行され
る。この処理は常にレジスタの最初のベクトル要素と共
に開始され、関連するベクトルレジスタの全ての要素が
処理されるまで継続する。この場合、前述のように、1
つ又は複数のベクトルレジスタがオペランド供給用とし
て指定され、別のベクトルレジスタはベクトル処理演算
中に結果を受取るために指定され、数学的演算及び論理
演算は、全て完全にセグメントされ且つ独立して動作可
能である機能ユニットにおいて実行される。すなわち、
複数のベクトルレジスタと機能ユニットを利用すること
により、並行動作によってベクトル処理速度は著しく速
められる。
ベクトル結果レジスタは連続するベクトル処理演算に
ついてオペランドレジスタとなることが多いので、結果
レジスタの要素がオペランド要素として「連鎖処理」さ
れると非常に有利であり、この種の動作は米国特許第41
28880号のベクトル処理機械においては可能である。し
かしながら、この特許にさらに詳細に記載されているよ
うに、連鎖処理は、このシステムにおいては、ベクトル
レジスタ及び関連する機能ユニットを介するベクトルデ
ータストリームにおける特定の1つのクロック周期に限
定される。本発明のベクトルレジスタの改良によれば、
結果が受取られ、オペランドが必要とされる速度が原因
となって生じるベクトルレジスタ内部のタイミング競合
とは無関係に、結果ベクトルデータストリームの任意の
時点における連鎖処理を可能にすることによりこの制限
を克服する。この「フレキシブル連鎖処理」能力を実行
するために、1つの読出し動作又は書込み動作を実行す
るために1クロックサイクルを必要とするベクトルレジ
スタのメモリ回路は、2つの独立してアドレス可能なバ
ンクとして配列される。一方のバンクはベクトルの全て
の偶数要素を保持し、他方のバンクはベクトルの全ての
奇数要素を保持する。すなわち、2つのバンクはクロッ
クサイクルごとに独立して参照される。
各レジスタは、命令発行制御回路内に、適切な命令が
発行されたときにセットされる2つの予約フラグを有す
る。一方のフラグはレジスタをオペランドレジスタとし
て予約し、他方のフラグはレジスタを結果レジスタとし
て予約する。結果レジスタとして予約され、オペランド
レジスタとして予約されなかったレジスタはいつでもオ
ペランドレジスタとして使用することができる。オペラ
ンドレジスタとして予約され、結果レジスタとして予約
されなかったレジスタは、オペランド予約がクリアされ
るまで結果レジスタとして使用することはできない。双
方の予約がクリアされれば、レジスタを同じ動作におい
てオペランドと結果の双方に使用することができる。こ
れらの予約は、レジスタ内の適切な制御回路830又は831
によりクリアされる。
第22図によれば、偶数ベクトル要素バンク810と奇数
ベクトル要素バンク820とが設けられている。ベクトル
書込みデータはデータゲート810及び820を介してこれら
のバンク810及び820にそれぞれ供給される。バンク810
及び820への参照のためのアドレシングは読出しアドレ
スレジスタ812及び書込みアドレスレジスタ822により提
供される。これらのアドレスレジスタ812及び822におい
て発生するアドレスはそれぞれのゲート813及び823を介
して、どの参照動作が実行されようとしているかに従っ
て偶数ベクトル要素バンク810及び奇数ベクトル要素バ
ンク820に導かれる。動作中、これらのアドレスレジス
タにはゼロアドレスがロードされ、レジスタ835又は836
には、読出し動作であるか又は書込み動作であるかに応
じてベクトル長レジスタのデータ経路からのベクトル長
パラメータのコピーがロードされる。次に、アドレス
は、VLレジスタがゼロまでカウントダウンするまで参照
サイクルごとに増分される。ゼロにカウントダウンした
時点で、演算は完了し、発行制御回路においてそれぞれ
のレジスタ予約を解除するために信号が発生される。最
下位ビットは、奇数であれ偶数であれどのバンクにアド
レス及び対応するデータが導かれるかを決定する。すな
わち、一連の読出し又は書込み参照は1つのアドレスの
最下位ビットの状態に従ってゲート813及び823を介して
バンク間でトグルされる。
アドレス選択ゲート814及び824はゲート813及び823か
らアドレスを受取ると共に、Vレジスタへのスカラ参照
のためのCPUのAkデータ経路から入力をそれぞれ受取
る。ゲート813及び823は、読出しアドレスレジスタ812
に保持される読出しアドレス(RA)の下位ビットにより
制御される。すなわち、RAは読出されるべきバンクへゲ
ートされ、AWは読出されるべきでないバンクへゲートさ
れる。選択ゲート814は、入力されたいずれか一方のア
ドレスをメモリバンク(偶数ベクトル要素バンク)810
と、アドレス選択ゲート824の上方入力端子へゲートす
るように制御可能である。アドレス選択ゲート824は、
その3つの入力されたアドレスのいずれか1つを奇数ベ
クトル要素バンク820へ送るように制御される。以下に
さらに詳述するように、アドレス選択ゲート814及び824
はメモリ参照競合が発生した場合を処理する機構を提供
する。
ベクトルオペランドの可用性はベクトル演算が進行す
る速度を決定する。すなわち、ベクトル読出し制御回路
830はベクトル要素バンク810及び820からデータを読出
す中央制御回路である。ベクトル読出し制御回路830は
比較器832及び制御信号選択ゲート833からの入力と、ベ
クトルオペランド発行制御信号とを受取る。このゲート
833は他の7つのベクトルレジスタのそれぞれからのベ
クトルデータ動作可能制御信号と、中央記憶装置基準回
路網のCポートからのゴーメモリデータ信号と、ベクト
ル読出し制御回路830の出力端子からのベクトルデータ
動作可能信号とを受取る。これら9つの信号のいずれか
1つが選択的に切換えられてゲート833を介してベクト
ル読出し制御回路830に送られ、機能ユニット又は中央
記憶装置へのベクトルデータの供給の同期化を進める。
ベクトル読出し制御回路830は、さらに、他のベクト
ルレジスタへのベクトルデータ動作可能信号及び機能ユ
ニットタイミングを発生すべきときを決定する際にベク
トル書込み制御回路831を監視する。ベクトル演算にお
いてオペランドとして2つのベクトルレジスタが使用さ
れる場合、各レジスタの読出し制御回路は、機能ユニッ
トによる処理のために要素を利用できるときを決定する
ために他のレジスタのデータ動作可能信号を監視する。
双方のレジスタがデータ動作可能信号を有するとき、各
レジスタは機能ユニットに1つの要素を送る。ベクトル
レジスタを記憶装置に記憶すべき場合、データ動作可能
信号は、要素を書込みのために利用できることを適切な
メモリポートCに指示し、次に読出し制御回路830はそ
れ以上のデータを送ることができるときを決定するため
にメモリポートの競合信号を監視する。
ベクトルデータ動作可能信号は、読出し制御装置830
が適切なベクトル命令の発行により動作され且つ次の条
件の1つが存在するときに発生される:(1)書込み制
御回路831が動作していない。すなわち全ての要素が有
用であり、レジスタが結果レジスタとして使用されな
い;(2)RAは比較器832からのWAと等しくない。すな
わち、演算に必要とされる要素がレジスタに書込まれて
いる;(3)RAがWAと等しく且つ書込み制御回路831の
入力端子に書込み進行信号が存在するため、必要な要素
が受取られ、書込みデータを読出しデータ選択回路840
に送られるべきである;(4)ベクトルデータ動作可能
信号が発生されているが、別の動作可能信号が制御信号
選択回路網833から受取られていない。多くの場合、条
件(2)はRAがWAより小さいことを指すが、例外的な特
殊な場合においては、レジスタは同じ演算でオペランド
と結果の双方に使用される。次に、条件(2)はRAがWA
より大きいことを意味する。この特殊な場合、書込み活
動信号はこの条件に従って1クロック周期だけ遅延し、
読出し動作と書込み動作は同じクロック周期に従って開
始されたので、第1のデータ動作可能信号は条件(1)
により発生される。第1の読出しRAが増分されて、RAが
WAと等しくなくなると、条件(2)によって読出しが継
続される。
ベクトル書込み動作の直接制御は、機能ユニットタイ
ミング回路からの書込み進行信号及びベクトル結果発行
信号を受取るベクトル書込み制御回路831により提供さ
れる。書込み進行信号は、オペランドが機能ユニットに
送られたときにベクトル読出し制御回路において発生す
る。書込み進行信号は、機能ユニットのタイミングに対
応するいくつかのクロック周期だけ信号を遅延され、次
にその信号をベクトル書込み制御回路へ搬送する適切な
機能ユニットタイミング回路へ供給される。ベクトルオ
ペランドの各ブロックに唯一つの書込み進行信号が提供
される米国特許第4128880号のシステムとは異なり、本
発明のシステムは機能ユニットからのそれぞれの有効な
結果出力に対して書込み進行信号を提供する。書込み進
行信号を伴なわない結果は結果レジスタにより無視され
る。すなわち、ベクトル読出し制御回路830は、読出さ
れるべきデータの可用性により発生する制限を受ける書
込みタイミングを間接的に制御する。
比較器832の1つの機能は、同じクロックサイクル中
の同じベクトルメモリバンクに対する読出し要求と書込
み要求の発生を検出することである。この状態におい
て、競合が発生し、書込み要求は機能抑止され、読出し
要求は進行を許可されるので、機能ユニットへのデータ
の流れは中断されない。書込み要求はベクトル書込み制
御回路831により1クロックサイクルだけ遅延され、書
込みデータはデータ遅延レジスタ834において1クロッ
クサイクルだけ遅延される。次のクロックサイクルにお
いて、書込みはベクトル書込み制御回路831によりゲー
ト811及び821のうち適切なものを介して進行を許可され
る。ベクトル演算の順次性によりそれぞれ連続する読出
し及び書込みは対向するバンクに強制的に発生し、従っ
て、遅延された書込みと次の読出し/書込み要求との間
に別の競合は起こりえないので、ベクトルレジスタを介
するデータの流れはこの競合により影響を受けることは
ない。
遅延された書込みが偶数ベクトル要素バンクにあれ
ば、書込みアドレスは遅延された書込みに使用される。
書込みアドレスの最下位ビットは増分されているが、最
上位の5つのビットは変化しないので、アドレスは有効
のままである。遅延された書込みが奇数ベクトル要素バ
ンクにあるならば、遅延された書込みアドレスの増分は
最上位の5つのビットに変化を生じさせる。すなわち、
奇数アドレス選択ゲート824の上方入力端子において提
供されるような有効アドレスを偶数バンクアドレスレジ
スタから選択しなければならない。
比較器832のもう1つの機能は、同じバンクの同じ要
素に対して読出し要求と書込み要求が同時に発生したと
きを検出することである。この状態が検出されると、ベ
クトル書込みデータはデータ経路841を介して読出しデ
ータ選択ゲート840を通って直接送られる。その他の場
合、このゲート840はメモリバンク810及び820の適切な
一方のバンクを適切な機能ユニットに切換える。
レジスタが同じ演算で結果とオペランドの双方として
使用される場合を除いて、書込み場所より大きい記憶場
所に対して読出し要求が決して発生しないことは重要で
ある。命令発行制御回路は、レジスタが演算にオペラン
ドとして既に含まれている場合に、レジスタが結果レジ
スタとして使用されるのを阻止する。
ベクトルレジスタに何らかの参照が行なわれると、活
動交換パッケージ266においてビットとして使用されな
いベクトルはクリアされる。これにより、オペレーティ
ングシステムはユーザーコードがベクトルレジスタを参
照しなかったときを検出することができ、この場合、タ
スク間のスイッチング又は交換のときにはベクトルレジ
スタの内容を中央記憶装置に記憶する必要はない。すな
わち、場合によっては交換時間を節減でき、記憶装置の
利用度が低下するので、本発明のデータ処理効率の向上
に寄与する。
本発明のベクトルレジスタは、米国特許第4128880号
に記載されるシステムの場合と全く同じように機能ユニ
ットとインターフェース接続されるが、ただし、ベクト
ル読出し制御回路830により提供されるような機能動作
の進行と連鎖処理と、ベクトルデータ動作可能信号の機
能ユニットに対するタイミングの制御に関して前述のよ
うな相違がある。しかしながら、奇数−偶数ベクトルメ
モリ組織によりベクトルメモリへの読出し経路と書込み
経路は別個にされる。これは、上記特許のベクトルレジ
スタメモリ組織では不可能であった。すなわち、以下に
さらに詳細に説明するように、本発明のシステムのベク
トルレジスタから主記憶装置へのインターフェースは記
憶装置に至る別個の読出しデータ経路及び書込みデータ
経路を含み、この点においては米国特許第4128880号に
示されるインターフェースとは異なる。
このように、本発明のベクトルレジスタのアーキテク
チャは、フレキシブル連鎖処理の採用によりコンピュー
タの速度を利用するために必要なソフトウェアの量を減
少させるものである。従って、ベクトル処理並行度は高
められ、著しく高い処理速度が可能になる。
動作 以上のことからわかるように、本発明のマルチプロセ
ッサシステムは多重タスク処理用の汎用マルチプロセッ
サシステムを提供する。システムレベルにおいて、共用
レジスタ及びクラスタ能力により異なるジョブの独立し
たタスク又は1つのジョブの関連するタスクを並行して
実行することができる。オペレーティングシステムは周
期的にジョブ要件を解析し、処理効率及び処理速度をで
きる限り高くするためにプロセッサ間でジョブ又はタス
クの割当てを制御するのが好ましい。たとえば、共用レ
ジスタ及び/又は中央記憶装置を介して、他のプロセッ
サと並行して関連タスクのいくつかを処理する各プロセ
ッサと通信する複数のプロセッサにおいて単一のジョブ
を実行しても良く、あるいは、異なるジョブの独立した
タスクを各プロセッサで実行するためにプロセッサを互
いに独立して利用しても良い。この動作性能は、多重タ
スク処理が不要である場合に非常に望ましい。クラスタ
構成により、さらに、1台のプロセッサがディスエーブ
ルされた場合でも多重処理ジョブを実行することができ
る。この状態において、オペレーティングシステムは唯
一つのプロセッサを共用レジスタの特定のクラスタに割
当て、全てのタスクをそのプロセッサにより順次実行さ
れるように割当てる。
オペレーティングシステムによる多重タスク処理の制
御は共用レジスタにより、さらに詳細には共用データ、
臨界コード領域及びI/Oチャンネルなどの共用ハードウ
ェア資源の同期化により容易になる。さらに、共用レジ
スタは、複数の臨界コード領域を独立して同期化させる
ことによりオペレーティングシステムの多重系処理を容
易にする。臨界コード領域とはディスク割当て表、ジョ
ブ及びタスクキュー、メッセージキューなどである。オ
ペレーティングシステムは、プロセッサをジョブ/タス
クに対してマルチプレクスし、インターリーブするジョ
ブスケジューラを含んでいても良い。この動作モードに
おいて、ジョブはデータセットとして開始し、ジョブス
ケジューラにより動作のためにスケジューリングされ
る。次に、ジョブは中央記憶装置にロードされ、この時
点でジョブスケジューラは多重タスク処理を実行するた
めにジョブについて1台又は複数のプロセッサをスケジ
ューリングする。
本発明のマルチプロセッサの多重タスク処理能力は、
多重ポートメモリ構成、競合解決回路網及び介在配列メ
モリバンク組織によりさらに高められる。システムレベ
ルにおいて、競合解決回路網と介在配列メモリバンク構
成とは組合わされて、競合に関連する基準遅延を最小限
に抑えると共に、同時に同じバンクに対する全てのメモ
リ資源の保全性を維持する。さらに詳細には、多くの状
態において、複数のメモリ参照は様々に異なるポートを
介して同時に実行される。さらに、競合解決回路網は参
照要求を優先順位決定し、それにより、潜在的な競合は
回避され、下位優先順位要求は従属される。多重ポート
構成の別の面によれば、I/O参照は要求を行なうプロセ
ッサとは無関係にいずれかのプロセッサについてのI/O
ポートを介して進行し、SSDに対する高速I/O転送の場合
には、双方のプロセッサのI/Oポートはきわめて高いデ
ータ転送速度を達成するために使用される。
1つのプロセッサレベルにおいて、多重ポートメモリ
組織はメモリからメモリへのデータストリーム動作を可
能にし、ポートA又はBは記憶装置からのベクトル取出
し参照を処理し、ポートCは並行してベクトル記憶動作
を処理する。たとえば、2つのベクトルレジスタがポー
トA及びBを介して中央記憶装置から同時にロードさ
れ、一方、ポートCは同時にベクトルレジスタからの結
果を中央記憶装置に戻し、記憶するために利用される。
この動作により、プロセッサのデータストリーム及び処
理並行能力は著しく高められる。
本発明のマルチプロセッのシステムのデータストリー
ム能力は、さらに、ベクトルレジスタのハードウェア自
動フレキシブル連鎖処理能力によっても高められる。各
ベクトルレジスタにおいて奇数−偶数メモリバンク組織
を利用すると、第1の結果が受取られるクロック周期及
びそれらが受取られる速度とはほぼ無関係に、結果ベク
トルレジスタをオペランドレジスタとして使用できる。
ベクトルレジスタメモリの組織により、各レジスタは2
つの独立したアドレシング制御回路を有するので、オペ
ランドレジスタを結果レジスタとして利用することもで
きる。すなわち、ベクトルレジスタをより効率の良い方
式で、大量の機能ユニットと関連して並行して利用でき
るので、全体的な処理並行度は著しく高められる。この
フレキシブル連鎖処理能力は自動的にハードウェアで行
なわれるため、処理速度はソフトウェアへの依存性をさ
らになくし、同様に、プログラミングの複雑さとオーバ
ヘッドは減少される。
【図面の簡単な説明】
第1図は、本発明のシステム全体の組織のブロック線
図、 第2図は、本発明の密結合通信回路の概観を示すブロッ
ク線図、 第3図及び第4図は、本発明の密結合通信回路の機能ブ
ロック線図、 第5図は、本発明のCPUインターフェースに至る記憶装
置ポートの機能ブロック線図、 第6図(a)及び第6図(b)は、本発明の競合解決回
路網の機能ブロック線図、 第7図及び第8図は、本発明の競合解決回路の一部の機
能ブロック線図、 第9図及び第10図は、本発明のI/Oメモリ参照発生・制
御回路の機能ブロック線図、 第11図及び第12図は、本発明のI/O参照優先順位決定回
路の機能ブロック線図、 第13図は、本発明のCPUメモリ参照発生・制御回路の機
能ブロック線図、 第14図は、本発明のスカラ参照制御回路の機能ブロック
線図、 第15図は、本発明の別のI/O参照制御回路の機能ブロッ
ク線図、 第16図は、本発明の取出し・交換参照制御回路の機能ブ
ロック線図、 第17図は、本発明のメモリアドレス選択回路の機能ブロ
ック線図、 第18図は、本発明のメモリ書込みデータ選択回路の機能
ブロック線図、 第19図は、本発明のI/O入力データチャンネルの機能ブ
ロック線図、 第20図は、本発明のメモリ読出しデータ経路指定回路の
機能ブロック線図、 第21図は、本発明のI/O出力データチャンネル機能ブロ
ック線図、及び 第22図は、本発明のベクトルレジスタの機能ブロック線
図である。 10,11……ベクトルプロセッサ、12……中央記憶装置、2
0……CPU I/O制御装置、30……SSD、31……入出力プロ
セッサIOP、40……大容量記憶装置、50……通信制御回
路、140……共用レジスタ制御回路、160……セマフォレ
ジスタ、195……共用リアルタイムクロック(RTC)レジ
スタ、200……共用レジスタ、260……ベクトルレジス
タ、290……メモリ競合解決回路網。
フロントページの続き (72)発明者 ユージン アール.ソムダール アメリカ合衆国,ミネソタ 55108,セ ント ポール,カーター アベニユ 2349 (72)発明者 リー ヒグビー アメリカ合衆国,イリノイ 60005,ア ーリングトンハイツ,サウス ベルモン ト アベニユ 1507 (56)参考文献 特開 昭56−88561(JP,A) 特開 昭58−2959(JP,A) 特開 平6−231088(JP,A) 特開 平6−231094(JP,A) 日経エレクトロニクス(1983−4− 11)P.105−126 日経エレクトロニクス(1984−11− 19)P.237−272

Claims (26)

    (57)【特許請求の範囲】
  1. 【請求項1】(a)中央記憶装置と、 (b)制御及びデータ情報用の内部経路と、該内部経路
    からの参照要求を受け取り前記中央記憶装置への参照を
    実行するための1つ以上のポートとを含む、複数の処理
    装置と、 (c)複数のセマフォレジスタであって、前記内部経路
    を介して前記処理装置とインターフェースすることによ
    って、前記処理装置が、該複数のセマフォレジスタに保
    持されたフラグをテストし、セットし、クリアすること
    ができる、複数のセマフォレジスタと、を有し、 (d)前記複数のセマフォレジスタは、複数のクラスタ
    を形成し、 (e)処理装置が前記クラスタをアクセスするのを制御
    して、処理装置が選択的に割り当てられたクラスタをア
    クセスするようにする、クラスタアクセス手段と、 (f)前記処理装置の内のどの装置においてでも動作可
    能であり、前記クラスタアクセス手段と通信して、前記
    処理装置が参照するべきクラスタを選択的に割り当て、
    また変更する、オペレーティングシステム手段と、を有
    し、 (g)前記処理装置の各々は、テストアンドセット命令
    を実行する手段を含み、該命令は、セマフォレジスタ内
    のフラグをテストし、もしそのフラグがクリアならその
    フラグをセットし、もしそのフラグがセットなら前記命
    令の発行を保留して前記処理装置を一時的にアイドル状
    態にしてそのビットがクリアするまで待ち、 (h)あるフラグのクリアを処理装置が待っており、そ
    のフラグをクリアできる同じクラスタ内で動作している
    処理装置が無い状態を検出し、処理を継続させるため
    に、そのデッドロック状態の処理装置を動作状態に変更
    するデッドロック割込み手段と、を有する、 ことを特徴とする多重プロセッサデータ処理システム。
  2. 【請求項2】特許請求の範囲第1項記載のシステムにお
    いて、前記クラスタの各々が更に一組の共有情報レジス
    タを含み、該共有情報レジスタが前記処理装置と前記内
    部経路を介してインターフェースすることによって、前
    記処理装置が一組の共有情報レジスタを選択的に割り当
    てられて、それを介して情報を他のジョブ又はタスクに
    渡すことを特徴とする多重プロセッサデータ処理システ
    ム。
  3. 【請求項3】特許請求の範囲第1項記載のシステムにお
    いて、該システムがP個の処理装置を含み、Pは2以上
    の整数であり、前記システムがP+1個のクラスタを有
    することを特徴とする多重プロセッサデータ処理システ
    ム。
  4. 【請求項4】特許請求の範囲第3項記載のシステムにお
    いて、前記オペレーティングシステム手段が、その排他
    的使用のために前記クラスタの内の一つを予約する手段
    を含むことを特徴とする多重プロセッサデータ処理シス
    テム。
  5. 【請求項5】特許請求の範囲第1項記載のシステムにお
    いて、前記オペレーティングシステム手段が、前記処理
    装置の内の一つにおいて実行されるべきソフトウエアジ
    ョブの各々に対するアクティブな交換パッケージを組み
    立てる手段を含み、前記アクティブな交換パッケージ
    が、前記処理装置がそのジョブを実行する時にどのクラ
    スタを参照するべきかの指示を含むことを特徴とする多
    重プロセッサデータ処理システム。
  6. 【請求項6】(a)中央記憶装置と、 (b)制御及びデータ情報用の内部経路と、該内部経路
    からの参照要求を受け取り前記中央記憶装置への参照を
    実行するための1つ以上のポートとを含む、複数の処理
    装置と、 (c)複数のセマフォレジスタと、を有し、 (d)前記複数のセマフォレジスタは、複数のクラスタ
    を形成し、 (e)前記処理装置毎に1つづつの複数のクラスタコー
    ドレジスタであって、各々前記対応する処理装置が前記
    クラスタのどれについて参照許可を与えられているかを
    示すクラスタコードを保持するものと、 (f)前記処理装置を前記セマフォレジスタにインター
    フェースするために、前記内部経路を介して前記処理装
    置に接続されているインターフェース手段であって、該
    インターフェース手段は、セマフォレジスタに対する処
    理装置の参照を、対応するクラスタコードレジスタ内に
    示されたクラスタにルーティングする手段を含み、 (g)前記処理装置の内のどの装置においてでも動作可
    能であり、前記クラスタコードレジスタ内に保持されて
    いるコードを変更して、前記処理装置が前記クラスタに
    選択的に割り当てられるようにするオペレーティングシ
    ステム手段と、を有し、 (h)前記処理装置の各々は、テストアンドセット命令
    を実行する手段を含み、該命令は、セマフォレジスタ内
    のフラグをテストし、もしそのフラグがクリアならその
    フラグをセットし、もしそのフラグがセットなら前記命
    令の発行を保留して前記処理装置を一時的にアイドル状
    態にしてそのビットがクリアするまで待ち、 (i)あるフラグのクリアを処理装置が待っており、そ
    のフラグをクリアできる同じクラスタ内で動作している
    処理装置が無い状態を検出し、処理を継続させるため
    に、そのデッドロック状態の処理装置を動作状態に変更
    するデッドロック割込み手段と、を有する、 ことを特徴とする多重プロセッサデータ処理システム。
  7. 【請求項7】特許請求の範囲第6項記載のシステムにお
    いて、前記クラスタの各々が更に一組の共有情報レジス
    タを含み、前記インターフェース手段が前記処理装置を
    前記共有情報レジスタにインターフェースする手段を含
    み、それによって前記処理装置が一組の共有情報レジス
    タを選択的に割り当てられて、それを介して情報を他の
    ジョブ又はタスクに渡すことを特徴とする多重プロセッ
    サデータ処理システム。
  8. 【請求項8】特許請求の範囲第6項又は第7項記載のシ
    ステムにおいて、該システムがP個の処理装置を含み、
    Pは2以上の整数であり、前記システムがP+1個のク
    ラスタを有することを特徴とする多重プロセッサデータ
    処理システム。
  9. 【請求項9】特許請求の範囲第8項記載のシステムにお
    いて、前記オペレーティングシステム手段が、その排他
    的使用のために前記クラスタの内の一つを予約する手段
    を含むことを特徴とする多重プロセッサデータ処理シス
    テム。
  10. 【請求項10】特許請求の範囲第6項記載のシステムに
    おいて、前記オペレーティングシステム手段が、前記処
    理装置の内の一つにおいて実行されるべきソフトウエア
    ジョブの各々に対するアクティブな交換パッケージを組
    み立てる手段を含み、前記アクティブな交換パッケージ
    が、前記処理装置がそのジョブを実行する時にどのクラ
    スタを参照するべきかを指示するクラスタコードを保持
    することを特徴とする多重プロセッサデータ処理システ
    ム。
  11. 【請求項11】(a)中央記憶装置と、 (b)制御及びデータ情報用の内部経路と、該内部経路
    からの参照要求を受け取り前記中央記憶装置への参照を
    実行するための1つ以上のポートとを含む、複数の処理
    装置と、 (c)前記処理装置の内のどの装置においてでも動作可
    能なオペレーティングシステム手段と、 (d)複数のセマフォフラグを含むセマフォレジスタフ
    ラグセットを維持する、複数のクラスタと、を有し、 (e)前記処理装置の各々は、前記フラグセットを参照
    するための、フラグ参照命令を実行する手段を含み、 (f)前記クラスタの内の一つのセマフォフラグセット
    を選択的に参照できるように、処理装置がフラグ参照命
    令を発行した時にどのセマフォレジスタクラスタフラグ
    セットが参照されるかを選択的に制御する、クラスタア
    クセス手段と、を有し、 (g)前記オペレーティングシステムは、前記クラスタ
    アクセス手段をプログラムして、処理装置が動作中にど
    のクラスタをアクセスするかを制御する手段を含み、 (h)前記処理装置の各々は、テストアンドセット命令
    を実行する手段を含み、該命令は、前記フラグセット内
    の一つのフラグをテストし、もしそのフラグがクリアな
    らそのフラグをセットし、もしそのフラグがセットなら
    前記命令の発行を保留して前記処理装置を一時的にアイ
    ドル状態にしてそのビットがクリアするまで待ち、 (i)あるフラグのクリアを処理装置が待っており、そ
    のフラグをクリアできる同じクラスタ内で動作している
    処理装置が無い状態を検出し、処理を継続させるため
    に、そのデッドロック状態の処理装置に次の交換パッケ
    ージをオペレーティングシステムにロードさせるデッド
    ロック割込み手段と、を有する、 ことを特徴とする多重プロセッサデータ処理システム。
  12. 【請求項12】特許請求の範囲第11項記載のシステムに
    おいて、前記複数のクラスタが複数の共有情報レジスタ
    を含み、前記処理装置の各々が、前記共有情報レジスタ
    の参照を実行する手段を含むことを特徴とする多重プロ
    セッサデータ処理システム。
  13. 【請求項13】特許請求の範囲第11項記載のシステムに
    おいて、該システムがP個の処理装置を含み、Pは2以
    上の整数であり、前記システムがP+1個のクラスタを
    有することを特徴とする多重プロセッサデータ処理シス
    テム。
  14. 【請求項14】特許請求の範囲第13項記載のシステムに
    おいて、前記オペレーティングシステム手段が、その排
    他的使用のために前記クラスタの内の一つを予約する手
    段を含むことを特徴とする多重プロセッサデータ処理シ
    ステム。
  15. 【請求項15】特許請求の範囲第11項記載のシステムに
    おいて、前記オペレーティングシステム手段が、前記処
    理装置の内の一つにおいて実行されるべきソフトウエア
    ジョブの各々に対するアクティブな交換パッケージを組
    み立てる手段を含み、前記アクティブな交換パッケージ
    が、前記処理装置がそのジョブを実行する時にどのクラ
    スタを参照するべきかの指示を含むことを特徴とする多
    重プロセッサデータ処理システム。
  16. 【請求項16】(a)中央記憶装置と、 (b)内部経路からの参照要求を受け取る1つ以上のポ
    ートを含み、前記中央記憶装置への参照を実行する複数
    の処理装置と、 (c)前記処理装置の内のどの装置においてでも動作可
    能なオペレーティングシステムと、を有し、 (d)複数のセマフォフラグを含むセマフォレジスタフ
    ラグセットを維持する、複数のクラスタと、を有し、 (e)前記処理装置の各々は、前記セマフォレジスタフ
    ラグセットの内の1つを参照するための、フラグ参照命
    令を実行する手段を含み、該フラグ参照命令は参照され
    るべき特定のセマフォレジスタフラグセットを指定する
    ものでなく、 (f)前記複数のクラスタの内の1つのセマフォレジス
    タフラグセットを選択的に参照できるように、処理装置
    がフラグ参照命令を発行した時に、どのセマフォレジス
    タフラグセットが参照されるかを選択的に制御する、前
    記フラグ参照命令と独立に動作するクラスタアクセス手
    段と、を有し、 (g)前記オペレーティングシステムは、前記クラスタ
    アクセス手段をプログラムして、処理装置が動作中にど
    のクラスタをアクセスするかを制御することによって、
    一つ以上の処理装置が1つのクラスタの参照を割り当て
    られ得る、手段を含み、 (h)前記処理装置の各々は、テストアンドセット命令
    を実行する手段を含み、該命令は、前記フラグセット内
    の一つのフラグをテストし、もしそのフラグがクリアな
    らそのフラグをセットし、もしそのフラグがセットなら
    前記命令の発行を保留して前記処理装置を一時的にアイ
    ドル状態にしてそのビットがクリアするまで待ち、 (i)あるフラグのクリアを処理装置が待っており、そ
    のフラグをクリアできる同じクラスタ内で動作している
    処理装置が無い状態を検出し、処理を継続させるため
    に、そのデッドロック状態の処理装置に次の交換パッケ
    ージをオペレーティングシステムにロードさせるデッド
    ロック割込み手段と、を有する、 ことを特徴とする多重プロセッサデータ処理システム。
  17. 【請求項17】特許請求の範囲第16項記載のシステムに
    おいて、前記複数のクラスタが複数の共有情報レジスタ
    を含み、前記処理装置の各々が、前記共有情報レジスタ
    の参照を実行する手段を含むことを特徴とする多重プロ
    セッサデータ処理システム。
  18. 【請求項18】特許請求の範囲第16項又は第17項記載の
    システムにおいて、該システムがP個の処理装置を含
    み、Pは2以上の整数であり、前記システムがP+1個
    のクラスタを有することを特徴とする多重プロセッサデ
    ータ処理システム。
  19. 【請求項19】特許請求の範囲第18項記載のシステムに
    おいて、前記クラスタアクセス手段が、各々前記処理装
    置に対応するP個のクラスタコードレジスタを含み、前
    記プログラム手段が、前記クラスタコードレジスタ内に
    クラスタコードをセットする手段を含み、該クラスタコ
    ードは、もし有れば、前記対応する処理装置が前記クラ
    スタのどれにアクセスするように割り当てられているか
    を指示するものであることを特徴とする多重プロセッサ
    データ処理システム。
  20. 【請求項20】特許請求の範囲第19項記載のシステムに
    おいて、前記オペレーティングシステムが、前記クラス
    タの内の一つをその排他的な使用のために予約する手段
    を含むことを特徴とする多重プロセッサデータ処理シス
    テム。
  21. 【請求項21】特許請求の範囲第16項記載のシステムに
    おいて、前記オペレーティングシステム手段が、前記処
    理装置の内の一つにおいて実行されるべきソフトウエア
    ジョブの各々に対するアクティブな交換パッケージを組
    み立てる手段を含み、前記アクティブな交換パッケージ
    が、前記処理装置がそのジョブを実行する時にどのクラ
    スタを参照するべきかの指示を含むことを特徴とする多
    重プロセッサデータ処理システム。
  22. 【請求項22】中央記憶装置と、 制御及びデータ情報用の内部経路と、該内部経路からの
    参照要求を受け取り前記中央記憶装置への参照を実行す
    るための1つ以上のポートとを含む、第1と第2の処理
    装置を含む複数の処理装置と、 セマフォレジスタフラグセットを維持する、第1のクラ
    スタを含む複数のクラスタを有し、前記セマフォレジス
    タフラグセットは複数のセマフォフラグを含み、 前記処理装置の各々は、前記フラグセットを参照するた
    めの、フラグ参照命令を実行する手段を含み、該フラグ
    参照命令はどのクラスタを参照するかを指定するもので
    なく、 前記クラスタの各々に夫々対応する複数のクラスタコー
    ドレジスタであって、各々前記対応する処理装置が前記
    クラスタのどれを参照するかの割り当てを示すクラスタ
    コードを保持するものと、 前記複数のクラスタの内の一つのセマフォフラグセット
    を選択的に参照できるように、処理装置がフラグ参照命
    令を発行した時に、どのセマフォレジスタフラグセット
    が参照されるかを、前記クラスタコードに応答して選択
    的に制御する、クラスタアクセス手段と、 を有する多重プロセッサデータ処理システムを操作する
    方法であって、 (a)前記中央記憶装置内に記憶されるオペレーティン
    グシステムを与え、 (b)前記オペレーティングシステムを前記処理装置の
    内の一つにロードし、 (c)前記オペレーティングシステムを走らせて、処理
    装置において実行されるべきジョブに対応するアクティ
    ブな交換パッケージを組み立てさせ、 (d)前記第1のクラスタを指示するクラスタコードと
    共に前記交換パッケージをロードし、 (e)前記交換パッケージを前記中央記憶装置内に記憶
    し、 (f)前記パッケージを前記第一の処理装置にロードし
    て前記クラスタコードが前記第1の処理装置内のクラス
    タコードレジスタにロードされるようにする、 ステップからなる操作方法。
  23. 【請求項23】特許請求の範囲第22項記載の方法におい
    て、更に、 (g)前記オペレーティングシステムを走らせて、前記
    ジョブに対応するもう一つのアクティブな交換パッケー
    ジを組み立てさせ、 (h)前記第1のクラスタを示すクラスタコードと共に
    前記もう一つの交換パッケージをロードし、 (i)前記もう一つの交換パッケージを前記中央記憶装
    置に記憶し、 (j)前記もう一つのパッケージを前記第二の処理装置
    にロードして前記クラスタコードが該第2の処理装置内
    のクラスタコードレジスタにロードされるようにして、
    前記第一および第二の処理装置が、前記ジョブの異なる
    タスクで走っている時に前記第1のクラスタを介して相
    互に通信できるようにする、 ステップを含むことを特徴とする操作方法。
  24. 【請求項24】特許請求の範囲第22項記載の方法におい
    て、前記ジョブが第1と第2のタスクを含む複数の独立
    のタスクを含み、該複数のタスクが、従って前記1つの
    ジョブが、二つ以上の処理装置において同時に走ること
    が可能なように、前記タスクが書かれていることを特徴
    とする操作方法。
  25. 【請求項25】中央記憶装置と、 制御及びデータ情報用の内部経路と、該内部経路からの
    参照要求を受け取り前記中央記憶装置への参照を実行す
    るための1つ以上のポートとを含む、複数の処理装置
    と、 セマフォレジスタフラグセットを維持する、複数のクラ
    スタを有し、前記セマフォレジスタフラグセットは複数
    のセマフォフラグを含み、 前記処理装置の各々は、前記フラグセットを参照するた
    めの、フラグ参照命令を実行する手段を含み、該フラグ
    参照命令はどのクラスタを参照するかを指定するもので
    なく、 前記クラスタの各々に夫々対応する複数のクラスタコー
    ドレジスタであって、各々前記対応する処理装置が前記
    クラスタのどれを参照するかの割り当てを示すクラスタ
    コードを保持するものと、 前記複数のクラスタの内の一つのセマフォレジスタフラ
    グセットを選択的に参照できるように、処理装置がフラ
    グ参照命令を発行した時に、どのセマフォレジスタフラ
    グセットが参照されるかを、前記クラスタコードに応答
    して選択的に制御する、クラスタアクセス手段と、 を有する多重プロセッサデータ処理システムを操作する
    方法であって、 (a)二つ以上の前記処理装置で同時に一つのジョブの
    異なる関連するタスクを走らせ、 (b)前記二つ以上の処理装置の対応するコードレジス
    タに同一のクラスタコードをロードすることによって、
    前記二つ以上の処理装置を前記同じクラスタに割り当
    て、 (c)テストアンドセット命令を含む前記フラグ参照命
    令を用いて、前記二つ以上の処理装置で走っている複数
    のタスクの間で通信し、 (d)前記参照されるべきフラグが既にセットされてい
    る時、テストアンドセット命令の発行を保留して、該発
    行を保留する処理装置が一時的にアイドル状態になるよ
    うにして該フラグがクリアされるのを待つ、 ステップからなる操作方法。
  26. 【請求項26】特許請求の範囲第25項記載の方法におい
    て、更に、デッドロックを検出し、該デッドロックを脱
    出するために命令の発行を保留している処理装置にオペ
    レーティングシステムをロードする、 ステップを含むことを特徴とする操作方法。
JP59081238A 1983-04-25 1984-04-24 多重プロセッサデ―タ処理システム及びその操作方法 Expired - Lifetime JP2511397B2 (ja)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US48808383A 1983-04-25 1983-04-25
US06/488,082 US4636942A (en) 1983-04-25 1983-04-25 Computer vector multiprocessing control
US488082 1983-04-25
US488083 1983-04-25

Related Child Applications (2)

Application Number Title Priority Date Filing Date
JP5302106A Division JP2577865B2 (ja) 1983-04-25 1993-12-01 ベクトル処理装置及びその制御方法
JP5302105A Division JP2501419B2 (ja) 1983-04-25 1993-12-01 多重プロセッサメモリシステム及びメモリ参照競合解決方法

Publications (2)

Publication Number Publication Date
JPS6037064A JPS6037064A (ja) 1985-02-26
JP2511397B2 true JP2511397B2 (ja) 1996-06-26

Family

ID=27049214

Family Applications (3)

Application Number Title Priority Date Filing Date
JP59081238A Expired - Lifetime JP2511397B2 (ja) 1983-04-25 1984-04-24 多重プロセッサデ―タ処理システム及びその操作方法
JP5302105A Expired - Fee Related JP2501419B2 (ja) 1983-04-25 1993-12-01 多重プロセッサメモリシステム及びメモリ参照競合解決方法
JP5302106A Expired - Lifetime JP2577865B2 (ja) 1983-04-25 1993-12-01 ベクトル処理装置及びその制御方法

Family Applications After (2)

Application Number Title Priority Date Filing Date
JP5302105A Expired - Fee Related JP2501419B2 (ja) 1983-04-25 1993-12-01 多重プロセッサメモリシステム及びメモリ参照競合解決方法
JP5302106A Expired - Lifetime JP2577865B2 (ja) 1983-04-25 1993-12-01 ベクトル処理装置及びその制御方法

Country Status (5)

Country Link
EP (2) EP0123509B1 (ja)
JP (3) JP2511397B2 (ja)
AT (2) ATE154151T1 (ja)
CA (1) CA1218754A (ja)
DE (2) DE3486451T2 (ja)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS62152071A (ja) * 1985-12-25 1987-07-07 Nec Corp デ−タ処理装置
US4760518A (en) * 1986-02-28 1988-07-26 Scientific Computer Systems Corporation Bi-directional databus system for supporting superposition of vector and scalar operations in a computer
DE3786583T2 (de) * 1986-03-12 1993-12-02 Hitachi Ltd Prozessor.
US6379998B1 (en) 1986-03-12 2002-04-30 Hitachi, Ltd. Semiconductor device and method for fabricating the same
US5297260A (en) * 1986-03-12 1994-03-22 Hitachi, Ltd. Processor having a plurality of CPUS with one CPU being normally connected to common bus
JPH0628051B2 (ja) * 1986-04-25 1994-04-13 株式会社日立製作所 記憶制御方式
JPS6353678A (ja) * 1986-08-22 1988-03-07 Hitachi Ltd ベクトル処理装置
JP2828972B2 (ja) * 1986-10-17 1998-11-25 株式会社日立製作所 並列プロセツサ
JPH06103494B2 (ja) * 1986-11-18 1994-12-14 株式会社日立製作所 ベクトル処理装置の制御方式
JPH01194055A (ja) * 1988-01-29 1989-08-04 Hitachi Ltd 並列計算機及びそのデータ転送方法
JPS6432379A (en) * 1987-07-29 1989-02-02 Hitachi Ltd Computer
US4980817A (en) * 1987-08-31 1990-12-25 Digital Equipment Vector register system for executing plural read/write commands concurrently and independently routing data to plural read/write ports
US5276902A (en) * 1988-11-07 1994-01-04 Fujitsu Limited Memory access system for vector data processed or to be processed by a vector processor
JPH0769896B2 (ja) * 1988-11-07 1995-07-31 富士通株式会社 ベクトル処理システム
US5142638A (en) * 1989-02-07 1992-08-25 Cray Research, Inc. Apparatus for sharing memory in a multiprocessor system
US5202970A (en) * 1989-02-07 1993-04-13 Cray Research, Inc. Method for sharing memory in a multiprocessor system
IL97315A (en) * 1990-02-28 1994-10-07 Hughes Aircraft Co Multi-group signal processor
GB9008366D0 (en) * 1990-04-12 1990-06-13 British Aerospace Data interaction architecture(dia)for real time embedded multi processor systems
US5247637A (en) * 1990-06-01 1993-09-21 Cray Research, Inc. Method and apparatus for sharing memory in a multiprocessor system
US5206952A (en) * 1990-09-12 1993-04-27 Cray Research, Inc. Fault tolerant networking architecture
WO2008045341A1 (en) * 2006-10-05 2008-04-17 Arc International Inter-processor communication method
JP5495822B2 (ja) 2010-01-29 2014-05-21 キヤノン株式会社 情報処理装置、その制御方法及びプログラム
JP6086230B2 (ja) 2013-04-01 2017-03-01 日本電気株式会社 中央演算装置、情報処理装置、および仮想コア内レジスタ値取得方法
US10684858B2 (en) * 2018-06-01 2020-06-16 Intel Corporation Indirect memory fetcher
CN110654326B (zh) * 2018-06-29 2023-08-22 现代摩比斯株式会社 多主机系统、电力控制器及其工作方法

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3812473A (en) * 1972-11-24 1974-05-21 Ibm Storage system with conflict-free multiple simultaneous access
US4212057A (en) * 1976-04-22 1980-07-08 General Electric Company Shared memory multi-microprocessor computer system
US4128880A (en) * 1976-06-30 1978-12-05 Cray Research, Inc. Computer vector register processing
US4244018A (en) * 1978-05-15 1981-01-06 Gte Automatic Electric Laboratories Incorporated Interlock control of asynchronous data transmission between a host processor and a plurality of microprocessors through a common buffer
JPS5688561A (en) * 1979-12-21 1981-07-18 Fujitsu Ltd Vector arithmetic processor
JPS5727363A (en) * 1980-07-24 1982-02-13 Fujitsu Ltd Vector data processor
KR860001434B1 (ko) * 1980-11-21 1986-09-24 후지쑤 가부시끼가이샤 데이타 처리시 스템
JPS57153359A (en) * 1981-03-18 1982-09-21 Ibm Data processing system with common memory
US4541046A (en) * 1981-03-25 1985-09-10 Hitachi, Ltd. Data processing system including scalar data processor and vector data processor
DE3112693A1 (de) * 1981-03-31 1982-10-14 Stollmann & Co, 2000 Hamburg Modular aufgebautes dezentrales datenverarbeitungssystem
US4471458A (en) * 1981-06-18 1984-09-11 Allied Corporation Computer interface
JPS582959A (ja) * 1981-06-30 1983-01-08 Nec Corp アクセス制御装置
JPS58114274A (ja) * 1981-12-28 1983-07-07 Hitachi Ltd デ−タ処理装置
JPS6054694B2 (ja) * 1982-01-27 1985-12-02 株式会社日立製作所 記憶制御装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
日経エレクトロニクス(1983−4−11)P.105−126
日経エレクトロニクス(1984−11−19)P.237−272

Also Published As

Publication number Publication date
DE3486451T2 (de) 1997-09-25
JP2577865B2 (ja) 1997-02-05
JPH06231088A (ja) 1994-08-19
DE3486451D1 (de) 1997-07-10
ATE74675T1 (de) 1992-04-15
EP0389001A3 (en) 1991-12-04
EP0123509B1 (en) 1992-04-08
JPH06231094A (ja) 1994-08-19
JPS6037064A (ja) 1985-02-26
EP0123509A3 (en) 1988-04-27
CA1218754A (en) 1987-03-03
EP0389001B1 (en) 1997-06-04
ATE154151T1 (de) 1997-06-15
JP2501419B2 (ja) 1996-05-29
EP0123509A2 (en) 1984-10-31
DE3485635D1 (de) 1992-05-14
EP0389001A2 (en) 1990-09-26

Similar Documents

Publication Publication Date Title
JP2511397B2 (ja) 多重プロセッサデ―タ処理システム及びその操作方法
US4636942A (en) Computer vector multiprocessing control
US4901230A (en) Computer vector multiprocessing control with multiple access memory and priority conflict resolution method
US4661900A (en) Flexible chaining in vector processor with selective use of vector registers as operand and result registers
US4754398A (en) System for multiprocessor communication using local and common semaphore and information registers
EP0712076B1 (en) System for distributed multiprocessor communication
US4481572A (en) Multiconfigural computers utilizing a time-shared bus
US5970510A (en) Distributed memory addressing system
US5155854A (en) System for arbitrating communication requests using multi-pass control unit based on availability of system resources
US5263169A (en) Bus arbitration and resource management for concurrent vector signal processor architecture
US5574939A (en) Multiprocessor coupling system with integrated compile and run time scheduling for parallelism
US20080109569A1 (en) Remote DMA systems and methods for supporting synchronization of distributed processes in a multi-processor system using collective operations
US20080109573A1 (en) RDMA systems and methods for sending commands from a source node to a target node for local execution of commands at the target node
JPH0797363B2 (ja) 多重階層レベルマルチプロセツサ装置
US5165038A (en) Global registers for a multiprocessor system
JPS6270964A (ja) デ−タハブ
JPH0241553A (ja) データ処理システム及び同期方法
US20080109604A1 (en) Systems and methods for remote direct memory access to processor caches for RDMA reads and writes
US20030229721A1 (en) Address virtualization of a multi-partitionable machine
EP0797803B1 (en) Chunk chaining for a vector processor
CA1228675A (en) Computer vector multi-processing control
Tuazon et al. Mark IIIfp hypercube concurrent processor architecture
RU2042193C1 (ru) Вычислительная система
JPH0535507A (ja) 中央処理装置
JPH054711B2 (ja)

Legal Events

Date Code Title Description
EXPY Cancellation because of completion of term
R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250