JPH0340169A - 多重プロセツサシステムおよび複数の処理装置を制御する方法 - Google Patents
多重プロセツサシステムおよび複数の処理装置を制御する方法Info
- Publication number
- JPH0340169A JPH0340169A JP2161489A JP16148990A JPH0340169A JP H0340169 A JPH0340169 A JP H0340169A JP 2161489 A JP2161489 A JP 2161489A JP 16148990 A JP16148990 A JP 16148990A JP H0340169 A JPH0340169 A JP H0340169A
- Authority
- JP
- Japan
- Prior art keywords
- instruction
- processing
- target
- execution
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 31
- 238000012545 processing Methods 0.000 claims description 83
- 230000000873 masking effect Effects 0.000 claims description 2
- 230000005540 biological transmission Effects 0.000 abstract description 7
- 230000006870 function Effects 0.000 description 17
- 238000004891 communication Methods 0.000 description 16
- 230000000694 effects Effects 0.000 description 12
- 238000006073 displacement reaction Methods 0.000 description 11
- 230000001360 synchronised effect Effects 0.000 description 6
- 241000208822 Lactuca Species 0.000 description 5
- 235000003228 Lactuca sativa Nutrition 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 235000013305 food Nutrition 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 206010011224 Cough Diseases 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 241000282887 Suidae Species 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000001012 protector Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 239000000126 substance Substances 0.000 description 1
Landscapes
- Multi Processors (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
技術分野
本発明はデータ処理の分野に関し、特に複数の相互に接
続された処理装置から構成される多重プロセッサシステ
ムに関t、B。
続された処理装置から構成される多重プロセッサシステ
ムに関t、B。
従来技術
データの高いスループットの達成や大量のブタの処理を
目的としたデータ処理システムは、その性能を向上させ
るために並列処理を採用するのが通例である。これらの
システムは、相互に独立して動作し、かつ相互に接続さ
れた処理装置(プロセッサ)の配列から通常構成される
。システムによっては、監視プロセッサを使用して他の
すべての処理装置の動作を制御している。しかしながら
この方法によれば、ハードウェア上の負担と処理上の負
担とが著しく増加する。
目的としたデータ処理システムは、その性能を向上させ
るために並列処理を採用するのが通例である。これらの
システムは、相互に独立して動作し、かつ相互に接続さ
れた処理装置(プロセッサ)の配列から通常構成される
。システムによっては、監視プロセッサを使用して他の
すべての処理装置の動作を制御している。しかしながら
この方法によれば、ハードウェア上の負担と処理上の負
担とが著しく増加する。
他の方法としては、監視プロセッサを使用せず、各処理
装置□それぞれの動作の自己制御を行なわせる方法があ
る。この方法によれば、すべての処理装置に共通のオペ
レーティングシステムの内部で監視制御が達成される。
装置□それぞれの動作の自己制御を行なわせる方法があ
る。この方法によれば、すべての処理装置に共通のオペ
レーティングシステムの内部で監視制御が達成される。
この方法では処理装置間の通信ネットワークが必要とな
る。かかる通信ネットワークは、各処理装置のアクティ
ビティがオペレーティングシステムによって制御され、
かつ該アクティビティが必要に応じて他の処理装置のア
クティビティと同期されるように機能する。
る。かかる通信ネットワークは、各処理装置のアクティ
ビティがオペレーティングシステムによって制御され、
かつ該アクティビティが必要に応じて他の処理装置のア
クティビティと同期されるように機能する。
従来の多重プロセッサシステムにおいては、プロセッサ
間の通信機能は限定されていた。大多数の従来のシステ
ムは、各プロセッサ間でメモリを共有しており、「読み
山−変更一書き込み」シケンスのようなメモリ操作によ
ってプロセッサ間でデータの交換を行なっている。制御
機能も同様な方法で実施される。すなわち、いずれかの
プロセッサが共有メモリの制御フード位置に書き込みを
行なうと、該位置が他のプロセッサによって読み出され
る。各プロセッサは、共有メモリ領域(もしくはその一
部)のローカルコピーを保有できる。デネルコア(De
nelcor)のHEPプロセツサは、共有メモリ通信
の一方式を使用している。
間の通信機能は限定されていた。大多数の従来のシステ
ムは、各プロセッサ間でメモリを共有しており、「読み
山−変更一書き込み」シケンスのようなメモリ操作によ
ってプロセッサ間でデータの交換を行なっている。制御
機能も同様な方法で実施される。すなわち、いずれかの
プロセッサが共有メモリの制御フード位置に書き込みを
行なうと、該位置が他のプロセッサによって読み出され
る。各プロセッサは、共有メモリ領域(もしくはその一
部)のローカルコピーを保有できる。デネルコア(De
nelcor)のHEPプロセツサは、共有メモリ通信
の一方式を使用している。
この方式では、各共有メモリ位置にアクセス制御用のロ
ックピットが含まれている。
ックピットが含まれている。
従来の多重プロセッサシステムのなかには、プロセッサ
間の限定直接通信リンクを採用しているものもある。た
とえばカーネギ−メロン研究所のWARPプロセッサは
、各プロセッサとその両隣のプロセッサとの間に、先入
れ先出しくFIFO)バッファを介して送受信機能を設
けている。インモス社(Inmos Ltd、)の「
トランスピユータ」も、プロセッサ間でメツセージを交
換するためのアーキテクチャを備えている。
間の限定直接通信リンクを採用しているものもある。た
とえばカーネギ−メロン研究所のWARPプロセッサは
、各プロセッサとその両隣のプロセッサとの間に、先入
れ先出しくFIFO)バッファを介して送受信機能を設
けている。インモス社(Inmos Ltd、)の「
トランスピユータ」も、プロセッサ間でメツセージを交
換するためのアーキテクチャを備えている。
いずれの従来の多重プロセッサシステムにおいても、プ
ロセッサ間の直接通信リンクを利用してデータや制御情
報を複数の選択可能なプロセッサに回報通信する手段を
備えているものはない。
ロセッサ間の直接通信リンクを利用してデータや制御情
報を複数の選択可能なプロセッサに回報通信する手段を
備えているものはない。
概要
本発明は、多重プロセッサシステムにおいてプロセッサ
間制御/同期機能を実施するための方法と装置とを提供
する。相互に接続された処理装置内部の処理アクティビ
ティの調整を容易にする専用命令が提供される。回報通
信命令により、各処理装置は、データ値とアクティビテ
ィ開始アドレスとを少なくとも他の一つの目標処理装置
へと送信し、該目標処理装置がその実行を完了するかも
しくは中断する1で待つことができる。目標処理装置指
定用の各回報通信命令の命令コードには、複数のピット
で構成される処理装置マスクフィールドが含1れている
。このフィールドは、システム内の各処理装置に対応す
る専用ピットを有する。
間制御/同期機能を実施するための方法と装置とを提供
する。相互に接続された処理装置内部の処理アクティビ
ティの調整を容易にする専用命令が提供される。回報通
信命令により、各処理装置は、データ値とアクティビテ
ィ開始アドレスとを少なくとも他の一つの目標処理装置
へと送信し、該目標処理装置がその実行を完了するかも
しくは中断する1で待つことができる。目標処理装置指
定用の各回報通信命令の命令コードには、複数のピット
で構成される処理装置マスクフィールドが含1れている
。このフィールドは、システム内の各処理装置に対応す
る専用ピットを有する。
いずれかの目標処理装置が停止した場合、再開命令は、
該装置の現在のプログラムカウンタ内にあるアドレスか
ら該装置に実行を再開させる。開始命令は再開命令に類
似しているが、各停止した目標処理装置へとアドレスを
供給し、該目標処理装置に該アドレスから実行を開始さ
せる点が異なる。これらの目標処理装置のうち停止して
いない装置があれば、開始命令と再開命令とは同期機能
を実行する。この機能は、目標処理装置が停止する會で
現在実行中の処理装置にその実行を中断させる機能であ
る。
該装置の現在のプログラムカウンタ内にあるアドレスか
ら該装置に実行を再開させる。開始命令は再開命令に類
似しているが、各停止した目標処理装置へとアドレスを
供給し、該目標処理装置に該アドレスから実行を開始さ
せる点が異なる。これらの目標処理装置のうち停止して
いない装置があれば、開始命令と再開命令とは同期機能
を実行する。この機能は、目標処理装置が停止する會で
現在実行中の処理装置にその実行を中断させる機能であ
る。
送信命令は、実行中の処理装置に属する指定されたレジ
スタに格納されているデータ値を他の各処理装置に送信
する命令である。受信命令は、ブタ交換機能を完成する
命令であって、各送信命令に対応する目標処理装置が送
信命令の実行を完了するためには、この受信命令を当該
目標処理装置で実行する必要がある。
スタに格納されているデータ値を他の各処理装置に送信
する命令である。受信命令は、ブタ交換機能を完成する
命令であって、各送信命令に対応する目標処理装置が送
信命令の実行を完了するためには、この受信命令を当該
目標処理装置で実行する必要がある。
待ち命令は、実行中の処理装置自身が目標処理装置とし
て指定された場合に、停止機能を実行する。実行中の処
理装置が目標処理装置として指定されていない場合は、
待ち命令は同期機能を実行する。これにより、実行中の
処理装置は目標処理装置が停止するまでその実行を中断
する。
て指定された場合に、停止機能を実行する。実行中の処
理装置が目標処理装置として指定されていない場合は、
待ち命令は同期機能を実行する。これにより、実行中の
処理装置は目標処理装置が停止するまでその実行を中断
する。
処理装置は、回報通信命令の使用に加えて、ロック命令
とアンロック命令とによって制御されるセマフォを使用
して各装置のアクティビティの調整を行なう。ロック命
令は該当するセマフォを検査して、該セマフォがアンロ
ック状態であればこれをロックする。該セマフォがロッ
クされた状態であれば、アンロックされるまでロック命
令は待ちの状態になる。アンロック命令は該当するセマ
フォを無条件にアンロックする。
とアンロック命令とによって制御されるセマフォを使用
して各装置のアクティビティの調整を行なう。ロック命
令は該当するセマフォを検査して、該セマフォがアンロ
ック状態であればこれをロックする。該セマフォがロッ
クされた状態であれば、アンロックされるまでロック命
令は待ちの状態になる。アンロック命令は該当するセマ
フォを無条件にアンロックする。
処理装置間トラップ(割込み)は、先取り命令とりスタ
ート命令とによって実行される。これらの命令は、同報
通信命令と同じく、少なくとも1台の目標処理装置を、
指定する。先取り命令は、各目標処理装置にトラップを
生成させる。この場合、該処理装置が割込みやトラップ
を許可しているか否かは問わない。
ート命令とによって実行される。これらの命令は、同報
通信命令と同じく、少なくとも1台の目標処理装置を、
指定する。先取り命令は、各目標処理装置にトラップを
生成させる。この場合、該処理装置が割込みやトラップ
を許可しているか否かは問わない。
表記と名称
以下の詳細な説明では、計算機内部におけるデータピッ
トに対する演算のアルゴリズムと記号表記とをおもに使
用する。これらのアルゴリズムの記述と記号表記とは、
データ処理分野の熟練した技能者が、その作業の内容を
他の同業者にもつとも効果的に伝達するために使用する
手段である。
トに対する演算のアルゴリズムと記号表記とをおもに使
用する。これらのアルゴリズムの記述と記号表記とは、
データ処理分野の熟練した技能者が、その作業の内容を
他の同業者にもつとも効果的に伝達するために使用する
手段である。
本明細書では、慣用に準じて、アルゴリズムを所望の結
果に到達するための一連の自己統一性のあるステップと
定義する。これらのステップは、物理的な数量を物理的
に操作するために必要なステップである。通常(常にで
はないが)、これらの数量は電気信号または磁気信号の
形式をとシ、格納、転送、組合せ、比較その他の演算を
受けることができる。主として慣例でおるという理由で
、これらの信号をピット、値、要素、記号、文字、用語
、数字その他の表記で参照することが便利であることが
ある。ただし、これらの表記や他の同様々表記は、咳当
する物理的な数量に結び付けられたものであって、該数
量に付加された便宜的なラベルに過ぎない。またこれら
の数量に対する演算は、加算、比較といった人間が心の
なかで行なう演算を示す用語に慣例上関連付けられてい
る。
果に到達するための一連の自己統一性のあるステップと
定義する。これらのステップは、物理的な数量を物理的
に操作するために必要なステップである。通常(常にで
はないが)、これらの数量は電気信号または磁気信号の
形式をとシ、格納、転送、組合せ、比較その他の演算を
受けることができる。主として慣例でおるという理由で
、これらの信号をピット、値、要素、記号、文字、用語
、数字その他の表記で参照することが便利であることが
ある。ただし、これらの表記や他の同様々表記は、咳当
する物理的な数量に結び付けられたものであって、該数
量に付加された便宜的なラベルに過ぎない。またこれら
の数量に対する演算は、加算、比較といった人間が心の
なかで行なう演算を示す用語に慣例上関連付けられてい
る。
しかしながら、以下で説明する本発明の一部をなす演算
では、入間のかかる機能はほとんどの場合不用であシ、
むしろ好筐しく々い。演算はマシンが実行するからであ
る。本発明はマイクロプロセッサに適用してもつとも効
果があるが、演算を実行する他のマシン、すなわち汎用
ディジタルコンピュータもしくは同様の装置に適用して
もよい。
では、入間のかかる機能はほとんどの場合不用であシ、
むしろ好筐しく々い。演算はマシンが実行するからであ
る。本発明はマイクロプロセッサに適用してもつとも効
果があるが、演算を実行する他のマシン、すなわち汎用
ディジタルコンピュータもしくは同様の装置に適用して
もよい。
1
いずれの場合でも、演算を実行し、コンピュータを操作
する方式と、計算自体の方式とを明確に区別する必要が
ある。本発明は、プロセッサを操作して電気信号を処理
することにより、他の所望の電気信号を生成するステッ
プからなる方式に一部関する。
する方式と、計算自体の方式とを明確に区別する必要が
ある。本発明は、プロセッサを操作して電気信号を処理
することにより、他の所望の電気信号を生成するステッ
プからなる方式に一部関する。
実施例
以下の説明は、もっばら本発明の説明を目的としたもの
であってこれを制限するものではない。
であってこれを制限するものではない。
ここでは具体的なデータ表現、ピット割当て、演算シー
ケンス等を説明して本発明の十分な理解を期している。
ケンス等を説明して本発明の十分な理解を期している。
しかしながら、本発明がかかる明細を離れて他の態様に
おいても実施できることは本分野の有能な技能者には明
白である。筐た場合によυ、データ処理に関する周知の
装置、技法、アルゴリズム等の詳細な説明は省略する。
おいても実施できることは本分野の有能な技能者には明
白である。筐た場合によυ、データ処理に関する周知の
装置、技法、アルゴリズム等の詳細な説明は省略する。
これは、本発明の説明を不用な明細で不明瞭にしなした
めである。
めである。
本発明は、微粒並列処理を効率よく支援する緊密結合多
重プロセッサCPUに適用して効果があ19 る。CPUのアーキテクチャは、シングルチップVLS
I構成の相互接続性を活用する設計であることが望まし
い。このようなCPUは、最小限の構成部品で構成され
た高性能のパンコンシステムで作動する処理要素として
使用される。本発明の十分な理解を助けるため、本発明
を実施したCPUの概要を以下でまず解説する。
重プロセッサCPUに適用して効果があ19 る。CPUのアーキテクチャは、シングルチップVLS
I構成の相互接続性を活用する設計であることが望まし
い。このようなCPUは、最小限の構成部品で構成され
た高性能のパンコンシステムで作動する処理要素として
使用される。本発明の十分な理解を助けるため、本発明
を実施したCPUの概要を以下でまず解説する。
CPUの概要
第1図において、CPU10は、命令キャッシュ14へ
のアクセスを共有する4個の独立した処理装置(PU)
12a−12d 、データキャッシュ16、メモリ管理
装置(MaU)1a、>よびメモリ/バスインタフェー
ス20とからなる。PU’12a12dは、メモリを介
して通信を行なうほか、回報命令を使用してそれぞれの
アクティビティを伝達、調整することができる。回報命
令を使用すると、1個のpUは、他のPUへとデータや
アドレスを同時に伝送し、他のPUがそれぞれのアクテ
ィビティを完了するまで該PUはその実行を保留するこ
とができる。複数のCPUをプロセッサ間バスを介して
接続すると、多重プロセッサシステムが構成できる。こ
のシステムでは、各CPUは独自のローカルメモリを保
有し、このメモリを他のCPUと共有することができる
。
のアクセスを共有する4個の独立した処理装置(PU)
12a−12d 、データキャッシュ16、メモリ管理
装置(MaU)1a、>よびメモリ/バスインタフェー
ス20とからなる。PU’12a12dは、メモリを介
して通信を行なうほか、回報命令を使用してそれぞれの
アクティビティを伝達、調整することができる。回報命
令を使用すると、1個のpUは、他のPUへとデータや
アドレスを同時に伝送し、他のPUがそれぞれのアクテ
ィビティを完了するまで該PUはその実行を保留するこ
とができる。複数のCPUをプロセッサ間バスを介して
接続すると、多重プロセッサシステムが構成できる。こ
のシステムでは、各CPUは独自のローカルメモリを保
有し、このメモリを他のCPUと共有することができる
。
CPU10 の4個のPU12a−12dは、構造が同
一であシ、かつそれぞれ独立している。このPUは、3
2ビツトのRISO(縮小命令セットコンピュータ)で
ある。4個のPUは、相互接続ネットワーク22および
24を介して命令キャッシュとデータキャッシュとをア
クセスする。これらのネットワークは、PUにキャッシ
ュデータの転送経路を提供するほか、同報命令用の直接
PU間通信経路、大域レジスタアクセス、釦よび割込み
ルーティング用経路を提供する。命令キャッシュとデー
タキャッシュは4個のバンクに分割され、各相互接続ネ
ットワークは5X4クロスバスイツチを含んでいるため
、4個のPUは、命令とデータのアクセスをすべて同時
に行なうことができる。
一であシ、かつそれぞれ独立している。このPUは、3
2ビツトのRISO(縮小命令セットコンピュータ)で
ある。4個のPUは、相互接続ネットワーク22および
24を介して命令キャッシュとデータキャッシュとをア
クセスする。これらのネットワークは、PUにキャッシ
ュデータの転送経路を提供するほか、同報命令用の直接
PU間通信経路、大域レジスタアクセス、釦よび割込み
ルーティング用経路を提供する。命令キャッシュとデー
タキャッシュは4個のバンクに分割され、各相互接続ネ
ットワークは5X4クロスバスイツチを含んでいるため
、4個のPUは、命令とデータのアクセスをすべて同時
に行なうことができる。
CPU10がメツセージ割込み−または外部割込み(入
出力割込みなと)を受信すると、CPUは4個のPUの
状態を調べる。PUのうち1個が停止していれば、該割
込みを処理するためにこのPUが割当てられる。実際に
PUの実行を中断する必要があるのは、4個のPUがい
ずれも作動中である場合だけである。したがって、アプ
リケーションの実行と平行して割込みを頻繁に行なうこ
とができる。各PUにはフラグがあう、このフラグによ
って該PUの状態を割込み時に退避できるか否かを示す
。PUがこのフラグを作動停止前に設定すると、割込み
処理時に状態の退避を行なうための負担を軽減すること
ができる。
出力割込みなと)を受信すると、CPUは4個のPUの
状態を調べる。PUのうち1個が停止していれば、該割
込みを処理するためにこのPUが割当てられる。実際に
PUの実行を中断する必要があるのは、4個のPUがい
ずれも作動中である場合だけである。したがって、アプ
リケーションの実行と平行して割込みを頻繁に行なうこ
とができる。各PUにはフラグがあう、このフラグによ
って該PUの状態を割込み時に退避できるか否かを示す
。PUがこのフラグを作動停止前に設定すると、割込み
処理時に状態の退避を行なうための負担を軽減すること
ができる。
これらのPUには、小規模なレジスタ対応命令セットが
ある。この命令セットでは、レジスタロード命令とレジ
スタ格納命令とによって、メモリへのすべてのアクセス
が行なわれる。レジスタサイズとワードサイズはそれぞ
れ32ビツトである。
ある。この命令セットでは、レジスタロード命令とレジ
スタ格納命令とによって、メモリへのすべてのアクセス
が行なわれる。レジスタサイズとワードサイズはそれぞ
れ32ビツトである。
各PU 12a−12dは、16個の汎用レジスタと7
個のローカルレジスタとをそれぞれ有する。すなわちC
PU10には合計64個の汎用レジスタがある。ローカ
ルレジスタには、積格納レジスタ、15− 余シ格納レジスタ、グレフィクス格納レジスタおよびそ
の他の状態を格納するレジスタが金塗れる。
個のローカルレジスタとをそれぞれ有する。すなわちC
PU10には合計64個の汎用レジスタがある。ローカ
ルレジスタには、積格納レジスタ、15− 余シ格納レジスタ、グレフィクス格納レジスタおよびそ
の他の状態を格納するレジスタが金塗れる。
さらに、これら4個のPUは8個の大域レジスタを共有
している。これらの大域レジスタには、割込みレジスタ
、イベントカウンタ、訟よび大域状態レジスタが含まれ
る。
している。これらの大域レジスタには、割込みレジスタ
、イベントカウンタ、訟よび大域状態レジスタが含まれ
る。
命令の長さはすべて16ビツトである。アドレスモード
には、レジスタアドレス指定モードと基底追加変位アド
レス指定モードの2種類がある。
には、レジスタアドレス指定モードと基底追加変位アド
レス指定モードの2種類がある。
基底追加変位アドレス指定では、ペースレジスタのアド
レスから起算して最大64ワードの変位を行なう。ただ
し、プレフイクス処理を行なえば、変位の範囲を拡大し
、レジスタアドレス指定を基底追加変位アドレス指定(
基底はいずれのレジスタでも可)へと変換し、さらに符
号つきの変位を行なうことができる。
レスから起算して最大64ワードの変位を行なう。ただ
し、プレフイクス処理を行なえば、変位の範囲を拡大し
、レジスタアドレス指定を基底追加変位アドレス指定(
基底はいずれのレジスタでも可)へと変換し、さらに符
号つきの変位を行なうことができる。
命令の長さは16ビツトであるため、命令内の直接フィ
ールドと変位フィールドとのサイズは限定される。しか
しながら、プログラム内で検出される直接値と変位値の
大部分はそのサイズが小さいため、これらのフィールド
に十分格納できる。
ールドと変位フィールドとのサイズは限定される。しか
しながら、プログラム内で検出される直接値と変位値の
大部分はそのサイズが小さいため、これらのフィールド
に十分格納できる。
必要に応じて直接フィールド値や変位フィールド値にグ
レフィクス処理を行なえば、太きi値を生成することが
できる。各PUには、プレフイクスレジスタと呼ばれる
ローカルレジスタがある。このレジスタの状態(空きか
使用中かのいずれか)は、プレフイクス有効フラグによ
って示される。
レフィクス処理を行なえば、太きi値を生成することが
できる。各PUには、プレフイクスレジスタと呼ばれる
ローカルレジスタがある。このレジスタの状態(空きか
使用中かのいずれか)は、プレフイクス有効フラグによ
って示される。
値はプレフイクス命令によってプレフィクスレジスタへ
とロードされる。プレフイクス命令の実行時にグレフィ
クスレジスタが空いていれば、プレフイクス命令の直接
フィールドがブレフィクスレジスクの下位ピットに格納
され、符号で拡張されたのち、プレフイクス有効フラグ
が設定されて該レジスタが使用されていることを示す。
とロードされる。プレフイクス命令の実行時にグレフィ
クスレジスタが空いていれば、プレフイクス命令の直接
フィールドがブレフィクスレジスクの下位ピットに格納
され、符号で拡張されたのち、プレフイクス有効フラグ
が設定されて該レジスタが使用されていることを示す。
次のプレフイクス命令が実行されると、ブレフイクスレ
ジスタの内容が左側にシフトされ、該プレフイクス命令
の直接フィールドは、プレフイクスレジスタの下位ピッ
トに格納される。ブレフイクス処理可能な直接フィール
ドまたは変位フィールドを有する命令が実行されると、
グレフィクス有効フラグが調べられる。ここでブレフイ
クスレジスタが使用中であると判明すると、該レジスタ
の内容は咳命令の直接フィールドlたは変位フィールド
と連結されて、有効な直接値もしくは変位値を形成する
。プレフイクス処理は、フィールド操作命令用のフィー
ルドの定義にも使用される。
ジスタの内容が左側にシフトされ、該プレフイクス命令
の直接フィールドは、プレフイクスレジスタの下位ピッ
トに格納される。ブレフイクス処理可能な直接フィール
ドまたは変位フィールドを有する命令が実行されると、
グレフィクス有効フラグが調べられる。ここでブレフイ
クスレジスタが使用中であると判明すると、該レジスタ
の内容は咳命令の直接フィールドlたは変位フィールド
と連結されて、有効な直接値もしくは変位値を形成する
。プレフイクス処理は、フィールド操作命令用のフィー
ルドの定義にも使用される。
CPU10の構成要素と構成は、プログラミングモデル
を使用すればさらKよ〈理解することができる。このプ
ログラミングモデルは、プログラマから見える(すなわ
ち命令によって操作できる)CPUの構成要素からなる
。これらの要素には、汎用レジスタ、状態レジスタ、プ
ログラムカウンタ、特殊レジスタ、命令キャッシュなら
びにデータキャッシュが含まれる。
を使用すればさらKよ〈理解することができる。このプ
ログラミングモデルは、プログラマから見える(すなわ
ち命令によって操作できる)CPUの構成要素からなる
。これらの要素には、汎用レジスタ、状態レジスタ、プ
ログラムカウンタ、特殊レジスタ、命令キャッシュなら
びにデータキャッシュが含まれる。
各種の命令が、32ビツトのフルフード、16ビツトの
ハーフワード、8ビツトのバイト、kよび各ピットに対
して実行される。命令自体の長さは常にハーフワードで
ある。ワードとバイトのみがメモリからレジスタに直接
ロードでき、またレジスタからメモリへと直接格納でき
る。算術演算は、フード、ハーフワード卦よびバイトに
対して実行できる。第2図に示すように、ワード内の3
2ビツトは、右から左に0−31と番号付けされている
。ピット0、すなわち右端のピットが最下位のピットで
ある。高い番号のピットはしばしば上位ピットと呼ばれ
、低い番号のピットは下位ピットと呼ばれる。
ハーフワード、8ビツトのバイト、kよび各ピットに対
して実行される。命令自体の長さは常にハーフワードで
ある。ワードとバイトのみがメモリからレジスタに直接
ロードでき、またレジスタからメモリへと直接格納でき
る。算術演算は、フード、ハーフワード卦よびバイトに
対して実行できる。第2図に示すように、ワード内の3
2ビツトは、右から左に0−31と番号付けされている
。ピット0、すなわち右端のピットが最下位のピットで
ある。高い番号のピットはしばしば上位ピットと呼ばれ
、低い番号のピットは下位ピットと呼ばれる。
フード内のハーフワードとバイトは、第2図に示すよう
に配置されている。第2図ではi7’l:、、ハフワー
ド内とバイト内のピットの配列も示している。パイ)O
が最上位のバイト(左端のバイト)であう、バイト3が
最下位のバイト(右端のバイト)である。
に配置されている。第2図ではi7’l:、、ハフワー
ド内とバイト内のピットの配列も示している。パイ)O
が最上位のバイト(左端のバイト)であう、バイト3が
最下位のバイト(右端のバイト)である。
一般に、命令とデータは、行と呼ばれる64バイト(1
6ワード)のブロックを単位としてメモリとCPUとの
間で転送される。これらの行は、命令キャッシュまたは
データキャッシュの内部に格納される。1行」及び「キ
ャッシュ行」なる用語は、キャッシュ内の物理位置と、
該位置に格納できる16個のメモリワードからなるブロ
ックとの双方を示している。命令キャッシュとデータキ
ャッシュとは、アーキテクチャ的にはプログラマから見
える存在である。命令は、キャッシュ行に対して演算が
行なわれるように提供される。かかる演算には先取シ、
無効化1 フラッシュが含まれる。
6ワード)のブロックを単位としてメモリとCPUとの
間で転送される。これらの行は、命令キャッシュまたは
データキャッシュの内部に格納される。1行」及び「キ
ャッシュ行」なる用語は、キャッシュ内の物理位置と、
該位置に格納できる16個のメモリワードからなるブロ
ックとの双方を示している。命令キャッシュとデータキ
ャッシュとは、アーキテクチャ的にはプログラマから見
える存在である。命令は、キャッシュ行に対して演算が
行なわれるように提供される。かかる演算には先取シ、
無効化1 フラッシュが含まれる。
命令とデータのアドレスはバイトアドレスであシ、各ア
ドレスの長さは32ビツトであって、4.096メガバ
イトの仮想アドレス空間を占めている。すべてのアドレ
スはバイトアドレスであるが、命令やデータに対するメ
モリへのアクセスは、適切な境界内に限定されている。
ドレスの長さは32ビツトであって、4.096メガバ
イトの仮想アドレス空間を占めている。すべてのアドレ
スはバイトアドレスであるが、命令やデータに対するメ
モリへのアクセスは、適切な境界内に限定されている。
ハーフワード境界は、ピット<o>−”0′°であるバ
イトアドレスである。ワード境界は、ピット<1.:0
>”00″であるバイトアドレスである。また行境界は
、ピット<5 : 0>−=” oooooo” であ
るバイトアドレスである。命令は常にハーフワードの境
界上に整列されなければならない。この場合、命令アド
レスの下位ピットは無視される。ワードオペランドは常
にフード境界上に整列されなげれ19 ばならない。この場合、ワードロード命令やフド格納命
令におけるオペランドアドレスの下位2ビツトは無視さ
れる。定義上、キャッシュ行はキャッシュ行境界上に整
列される。CPUとメモリとの間の行の転送は、常に行
境界上で行なわれる。
イトアドレスである。ワード境界は、ピット<1.:0
>”00″であるバイトアドレスである。また行境界は
、ピット<5 : 0>−=” oooooo” であ
るバイトアドレスである。命令は常にハーフワードの境
界上に整列されなければならない。この場合、命令アド
レスの下位ピットは無視される。ワードオペランドは常
にフード境界上に整列されなげれ19 ばならない。この場合、ワードロード命令やフド格納命
令におけるオペランドアドレスの下位2ビツトは無視さ
れる。定義上、キャッシュ行はキャッシュ行境界上に整
列される。CPUとメモリとの間の行の転送は、常に行
境界上で行なわれる。
キャッシュ制御命令にかけるオペランドアドレスの下位
6ビツトは無視される。
6ビツトは無視される。
プログラミングモデルには、汎用レジスタセット、状態
レジスタ、プログラムカウンタ、特殊レジスタセット、
命令キャッシュ訟よびデータキャッシュが含1れる。各
PUには、それぞれ独自の汎用レジスタセット、状態レ
ジスタおよびプログラムカウンタがある。これらのレジ
スタは、 PUに対してローカルであるといわれる。ま
た各PUは、所定の特殊レジスタのコピーをそれぞれ独
自に有している一方、他の特殊レジスタは他のPUと共
有している。共有される特殊レジスタを大域レジスタと
呼ぶ。
レジスタ、プログラムカウンタ、特殊レジスタセット、
命令キャッシュ訟よびデータキャッシュが含1れる。各
PUには、それぞれ独自の汎用レジスタセット、状態レ
ジスタおよびプログラムカウンタがある。これらのレジ
スタは、 PUに対してローカルであるといわれる。ま
た各PUは、所定の特殊レジスタのコピーをそれぞれ独
自に有している一方、他の特殊レジスタは他のPUと共
有している。共有される特殊レジスタを大域レジスタと
呼ぶ。
PUは、ユーザモードもしくはシステムモードのいずれ
かで作動する。あるPUの任意の時点の0 モードは、pU状態/制御レジスタに卦けるフラグの設
定によって決定される。一般に、アプリケジョンはユー
ザモードで実行され、オペレーティングシステムの核そ
の他の構成部分はシステムモードで実行される。システ
ムモードでの実行には特権があたえられている。す々わ
ち、特殊レジスタのいくつかはシステムモードでのみア
クセスでき、命令のいくつかはシステムモードでのみ実
行でき、噴た「システム専用−1と記されたページはシ
ステムモードでのみアクセス可能である。
かで作動する。あるPUの任意の時点の0 モードは、pU状態/制御レジスタに卦けるフラグの設
定によって決定される。一般に、アプリケジョンはユー
ザモードで実行され、オペレーティングシステムの核そ
の他の構成部分はシステムモードで実行される。システ
ムモードでの実行には特権があたえられている。す々わ
ち、特殊レジスタのいくつかはシステムモードでのみア
クセスでき、命令のいくつかはシステムモードでのみ実
行でき、噴た「システム専用−1と記されたページはシ
ステムモードでのみアクセス可能である。
各PUは、0−15と番号付けされた16個の32ビツ
ト汎用レジスタを有する。したがってCpUには合計6
4個の汎用レジスタがある。汎用レジスタは一般に互換
性がある。すなわちいずれの汎用レジスタをいずれの目
的に使用してもよい。
ト汎用レジスタを有する。したがってCpUには合計6
4個の汎用レジスタがある。汎用レジスタは一般に互換
性がある。すなわちいずれの汎用レジスタをいずれの目
的に使用してもよい。
各汎用レジスタは、その内容をメモリからロードし、筐
たメモリへと格納することができる。1から151で番
号の付けられたレジスタは、その内容を複数ロード/格
納命令を介してメモリからロドし、またメモリへと格納
することができる。
たメモリへと格納することができる。1から151で番
号の付けられたレジスタは、その内容を複数ロード/格
納命令を介してメモリからロドし、またメモリへと格納
することができる。
バイトロード命令は、アドレス指定されたバイトを、右
寄せでゼロを充填して汎用レジスタへとロードする。バ
イト格納命令は、任意の汎用レジスタの右端のバイトを
メモリに格納する。
寄せでゼロを充填して汎用レジスタへとロードする。バ
イト格納命令は、任意の汎用レジスタの右端のバイトを
メモリに格納する。
2種類のプログラムカウンタ(PC,)があシ、これら
を現pc\次PCと呼ぶ。現pcは、現在実行中の命令
のアドレスを保持している。次PCは、次に実行される
命令のアドレスを保持している。遅延分岐方式を採用し
ているため、プログラムカウンタは2個必要となる。分
岐もしくはジャンプが行なわれると、現PCは分岐シャ
ドー命令のアドレスを保持し、分岐目標アドレスは次P
Cに格納される。順次コードとしてみると、次PC内の
アドレスは通常、現PC内のアドレスプラス2に等しい
。命令はハーフワード境界上で開始されなければならな
いため、プログラムカウンタのピッ)<O>は常に”0
”である。
を現pc\次PCと呼ぶ。現pcは、現在実行中の命令
のアドレスを保持している。次PCは、次に実行される
命令のアドレスを保持している。遅延分岐方式を採用し
ているため、プログラムカウンタは2個必要となる。分
岐もしくはジャンプが行なわれると、現PCは分岐シャ
ドー命令のアドレスを保持し、分岐目標アドレスは次P
Cに格納される。順次コードとしてみると、次PC内の
アドレスは通常、現PC内のアドレスプラス2に等しい
。命令はハーフワード境界上で開始されなければならな
いため、プログラムカウンタのピッ)<O>は常に”0
”である。
現PCの内容は、プログラムカウンタロード命令を実行
することによって読取る。この命令は、現pc内のアド
レスに2を加算したものを汎用し3 タスクにロードする。プログ2ムカウンタの内容は、順
次コードの実行による通常の増加によるほか、分岐命令
やジャンプ命令の実行や割込みからの復帰によって変更
される。割込みやトラップに対して使用を許可されたP
Uによって割込み−やトラップが検出されると、現PC
と次PCの内容は、pc退避待ち行列と呼ばれ・る一対
の特殊レジスタのなかに退避される。割込みからの復帰
後、pc退避待ち行列の内容は現pcと次pcとに転送
される。
することによって読取る。この命令は、現pc内のアド
レスに2を加算したものを汎用し3 タスクにロードする。プログ2ムカウンタの内容は、順
次コードの実行による通常の増加によるほか、分岐命令
やジャンプ命令の実行や割込みからの復帰によって変更
される。割込みやトラップに対して使用を許可されたP
Uによって割込み−やトラップが検出されると、現PC
と次PCの内容は、pc退避待ち行列と呼ばれ・る一対
の特殊レジスタのなかに退避される。割込みからの復帰
後、pc退避待ち行列の内容は現pcと次pcとに転送
される。
回報通信命令
本発明の・特徴のうちそのいくつかは、集合的に「回報
通信」命令と呼ばれる命令を実行することによシ達成さ
れる。これらの命令は、1個のP−Uで実行されると、
他のPUのなかから選択されたPUに対して制御情報と
同期情報とを回報通信によシ伝送する。たとえば、開始
命令、再開命令、送信命令を使用すると、1個のPUは
1回の動作で命令アドレスまたはデータ値を他のPUへ
と送信できる。かかる命令アドレスまたはデータ値を2
4 受信したPUは、当該命令の目標と呼ばれ、本発明の好
ましい実施例においては、とのPUは該命令の4ビツト
のPUマスクフィールドで指定される。このフィールド
は”b3b2blbo”女る形式を有する。かかる形式
に卦いて、blは、PUiが当該命令の目標であれば”
O”であ、9.PUiが該命令の目標でなければ”1”
である。開始命令、再開命令、送信命令の3種の命令に
釦いては、当該命令を発行したPUに該当するPUマス
クピットは無視される。泡出は、各PUは自己に対して
アドレスやデータ値を送信できないからである。
通信」命令と呼ばれる命令を実行することによシ達成さ
れる。これらの命令は、1個のP−Uで実行されると、
他のPUのなかから選択されたPUに対して制御情報と
同期情報とを回報通信によシ伝送する。たとえば、開始
命令、再開命令、送信命令を使用すると、1個のPUは
1回の動作で命令アドレスまたはデータ値を他のPUへ
と送信できる。かかる命令アドレスまたはデータ値を2
4 受信したPUは、当該命令の目標と呼ばれ、本発明の好
ましい実施例においては、とのPUは該命令の4ビツト
のPUマスクフィールドで指定される。このフィールド
は”b3b2blbo”女る形式を有する。かかる形式
に卦いて、blは、PUiが当該命令の目標であれば”
O”であ、9.PUiが該命令の目標でなければ”1”
である。開始命令、再開命令、送信命令の3種の命令に
釦いては、当該命令を発行したPUに該当するPUマス
クピットは無視される。泡出は、各PUは自己に対して
アドレスやデータ値を送信できないからである。
上記の同報通信命令のPUマスクフィールドと異なる手
段によっても、目標PUを指定できることがわかる。た
とえば、等価な機能を実行するマスクレジスタを設けて
もよい。かかるレジスタは、当該タスク専用として備え
るか、あるいは命令によって汎用レジスタを指定するこ
とによって備える。もしくは、任意のレジスタの特定の
フィールドを指定してもよい。さらに、これらの手法を
適宜組合せて使用してもよい。7?−とえば、あるレジ
5 スタ内のしくつかのPUマスクピットを、当該命令の任
意のフィールド内の追加マスク、ピットと連結する方法
がある。他のさ筐ざ1なマスク手法も本分野の熟練した
技能者には自明である。
段によっても、目標PUを指定できることがわかる。た
とえば、等価な機能を実行するマスクレジスタを設けて
もよい。かかるレジスタは、当該タスク専用として備え
るか、あるいは命令によって汎用レジスタを指定するこ
とによって備える。もしくは、任意のレジスタの特定の
フィールドを指定してもよい。さらに、これらの手法を
適宜組合せて使用してもよい。7?−とえば、あるレジ
5 スタ内のしくつかのPUマスクピットを、当該命令の任
意のフィールド内の追加マスク、ピットと連結する方法
がある。他のさ筐ざ1なマスク手法も本分野の熟練した
技能者には自明である。
PUのマスキングにおいては、特定のPUを直接識別す
る必要はない。すなわち、仮想PUil別方法が使用で
きる。この方法によれば、物理的な装置としての各PU
が仮想装置としてのPUの役割を果せるか否かに応じて
、物理PUが仮想PUに関連付けられる。各物理PUの
仮想実体は、PU状態/制御レしスク内もしくは専用の
特殊レジスタ内に保有される。
る必要はない。すなわち、仮想PUil別方法が使用で
きる。この方法によれば、物理的な装置としての各PU
が仮想装置としてのPUの役割を果せるか否かに応じて
、物理PUが仮想PUに関連付けられる。各物理PUの
仮想実体は、PU状態/制御レしスク内もしくは専用の
特殊レジスタ内に保有される。
開始命令
開始命令は、実行中のpuに属する汎用レジスタのうち
指定されたレジスフ内にあるアドレスを停止した各目標
PUへと送信し、該目標PUに該アドレスから実行を開
始させる命令である。指定された目標PUが、開始命令
の発行された時点で停止しているか否かは不定である。
指定されたレジスフ内にあるアドレスを停止した各目標
PUへと送信し、該目標PUに該アドレスから実行を開
始させる命令である。指定された目標PUが、開始命令
の発行された時点で停止しているか否かは不定である。
開始命令の一実施例では、開始命令を発行したPUがそ
の実行を開始した時点ですでに目標PUが停止しており
、該目標PUばただちに実行を開始する。他の目標PU
は、停止後ただちに実行を開始する。開始命令の実行は
、各目標PUが該開始命令を発行したPUと同一のモー
ド(ユーザモードまたはシステムモード)で停止し、新
しい開始アドレスを受信したのち、そこから実行を開始
する笠で完了しない。任意のPUを目標PUとして指定
するには、命令内部のPUマスクフィールドにあって該
PUに対応するピットを“0”に設定して行なう。命令
を発行したPUに対応するPUマスクフィールドのピッ
トは無親される。PU状態/制御レしタス内のPU使用
可能フラグはクリアされる。
の実行を開始した時点ですでに目標PUが停止しており
、該目標PUばただちに実行を開始する。他の目標PU
は、停止後ただちに実行を開始する。開始命令の実行は
、各目標PUが該開始命令を発行したPUと同一のモー
ド(ユーザモードまたはシステムモード)で停止し、新
しい開始アドレスを受信したのち、そこから実行を開始
する笠で完了しない。任意のPUを目標PUとして指定
するには、命令内部のPUマスクフィールドにあって該
PUに対応するピットを“0”に設定して行なう。命令
を発行したPUに対応するPUマスクフィールドのピッ
トは無親される。PU状態/制御レしタス内のPU使用
可能フラグはクリアされる。
すでに説明したように、「モード」とは本発明の実施例
における211類の動作モード、すなわちユーザモード
とシステムモードとをさす。ただし、各プロセッサに対
して別な動作モードを追加定義してもよい。たとえば、
特定のタスクの実行を目的としてクラスタで動作するよ
うにPUを割当ててもよい。この場合、PUを割当てた
クラスタを27 該PUの動作モードで識別してもよい。このように、目
標PUのモードに依存している開始命令のよう々命令は
、共通りラスタ内のPUの制御と同期とを行なうことが
できる。各PUの動作モードは、大域状態レジスタ(す
べてのPUが共有する8個の大域レジスタのうち01個
)によって保持される。この実施例では、大域状態レジ
スタがピットのフィールドを割当てることにより(各P
Uに対して1個のピット)、PU停止フラグ、待ちフラ
グ、ユーザ/システムモードフラグ、および割込み/ト
ラップ使用可能フラグのコピーを保持している。ただし
、すでに説明したように、別なモードを追加定義しても
よい。この場合、大域状態レジスタ内で追加フィールド
を割当てれば、これらのモードの状態フラグを保持でき
る。この大域状態レジスタはすべてのPUによって共有
されているため、システム内の各PUの状態はいずれの
PUによっても確認することができる。
における211類の動作モード、すなわちユーザモード
とシステムモードとをさす。ただし、各プロセッサに対
して別な動作モードを追加定義してもよい。たとえば、
特定のタスクの実行を目的としてクラスタで動作するよ
うにPUを割当ててもよい。この場合、PUを割当てた
クラスタを27 該PUの動作モードで識別してもよい。このように、目
標PUのモードに依存している開始命令のよう々命令は
、共通りラスタ内のPUの制御と同期とを行なうことが
できる。各PUの動作モードは、大域状態レジスタ(す
べてのPUが共有する8個の大域レジスタのうち01個
)によって保持される。この実施例では、大域状態レジ
スタがピットのフィールドを割当てることにより(各P
Uに対して1個のピット)、PU停止フラグ、待ちフラ
グ、ユーザ/システムモードフラグ、および割込み/ト
ラップ使用可能フラグのコピーを保持している。ただし
、すでに説明したように、別なモードを追加定義しても
よい。この場合、大域状態レジスタ内で追加フィールド
を割当てれば、これらのモードの状態フラグを保持でき
る。この大域状態レジスタはすべてのPUによって共有
されているため、システム内の各PUの状態はいずれの
PUによっても確認することができる。
開始命令は、その実行時に同期動作が暗黙的に行なわれ
るように実施することも可能である。同8 期を達成するためには、アドレスの回報通信が未だに行
なわれず、かつ開始命令の実行が完了する前に、すべて
の目標PUを適当なモードで同時に停止することが必要
である。
るように実施することも可能である。同8 期を達成するためには、アドレスの回報通信が未だに行
なわれず、かつ開始命令の実行が完了する前に、すべて
の目標PUを適当なモードで同時に停止することが必要
である。
再開命令
再開命令は開始命令と基本的には同一であるが、開始ア
ドレスが提供されない点が異なる。再開命令が実行され
ると、該命令で指定された各目標PUが停止していれば
、該目標PUの現PC(プログラムカウンタ)内にある
アドレスからその実行が再開される。指定された目標P
Uが、再開命令の発行時点で停止しているか否かは不定
である。
ドレスが提供されない点が異なる。再開命令が実行され
ると、該命令で指定された各目標PUが停止していれば
、該目標PUの現PC(プログラムカウンタ)内にある
アドレスからその実行が再開される。指定された目標P
Uが、再開命令の発行時点で停止しているか否かは不定
である。
再開命令のある実施例では、再開命令を発行したPUが
該命令の実行を開始した時点ですでに目標PUが停止し
ている場合には、該目標PUの実行はただちに再開され
る。他の目標PUは、停止後ただちにその実行を再開す
る。再開命令の実行は、すべての目1iJPUが停止し
たのち(すでに停止していない場合のみ)その実行を再
開する1で完了しない。実行の再開後、各目標pUは各
自のプロダラム状態レジスタ内のPU使用可能/停止フ
ラグをクリアする。
該命令の実行を開始した時点ですでに目標PUが停止し
ている場合には、該目標PUの実行はただちに再開され
る。他の目標PUは、停止後ただちにその実行を再開す
る。再開命令の実行は、すべての目1iJPUが停止し
たのち(すでに停止していない場合のみ)その実行を再
開する1で完了しない。実行の再開後、各目標pUは各
自のプロダラム状態レジスタ内のPU使用可能/停止フ
ラグをクリアする。
再開命令を発行したPUがユーザモードである場合、す
べての目標PUは、該再開命令がその実行を完了する前
に、ユーザモードで停止しなければならない。再開命令
を発行したPUがシステムモードであれば、目標PUは
いずれのモードで停止しても(かつ実行を再開しても)
よい。PUを目標PUとして指定するには、当該PUの
マスクフィールド内の対応ピットを”0”に設定する。
べての目標PUは、該再開命令がその実行を完了する前
に、ユーザモードで停止しなければならない。再開命令
を発行したPUがシステムモードであれば、目標PUは
いずれのモードで停止しても(かつ実行を再開しても)
よい。PUを目標PUとして指定するには、当該PUの
マスクフィールド内の対応ピットを”0”に設定する。
命令を発行したPUに対応するPUマスクフィルド内の
ピットは無視される。PU状態/制御レしタス内のPU
使用可能フラグはクリアされる。
ピットは無視される。PU状態/制御レしタス内のPU
使用可能フラグはクリアされる。
開始命令と同様、再開命令は、その実行時に同期動作が
暗黙的に行なわれるように実施することも可能である。
暗黙的に行なわれるように実施することも可能である。
同期を達成するためには、すべての目標PUの実行がま
だ再開されず、かつ再開命令の実行が完了する前に、か
かるすべての目標PUを適当彦モードで同時に停止する
ことが必要である。
だ再開されず、かつ再開命令の実行が完了する前に、か
かるすべての目標PUを適当彦モードで同時に停止する
ことが必要である。
待ち命令
待ち命令は2種類の機能を有する。そのうちひとつの機
能は、待ち命令を発行したPUの実行を停止する機能で
あり、他の機能は複数のPtJのアクティビティを同期
させる機能である。
能は、待ち命令を発行したPUの実行を停止する機能で
あり、他の機能は複数のPtJのアクティビティを同期
させる機能である。
待ち命令を発行するPUが、自己を該命令の目標となる
PUとして指定する場合(すなわちPUマスクフィール
ド内の対応するピットが0“である場合)、残りのPU
マスクフィールド内のピットは無視される。命令を発行
したPUに属するPU状態/制御レしタス内の停止フラ
グは1”に設定される。このPUが停止すると、待ち命
令の直後の命令のアドレスが現PCに格納される。
PUとして指定する場合(すなわちPUマスクフィール
ド内の対応するピットが0“である場合)、残りのPU
マスクフィールド内のピットは無視される。命令を発行
したPUに属するPU状態/制御レしタス内の停止フラ
グは1”に設定される。このPUが停止すると、待ち命
令の直後の命令のアドレスが現PCに格納される。
停止したPUの実行を再開するには、先G説明したよう
に他のPUで再開命令もしくは開始命令を実行すればよ
い。
に他のPUで再開命令もしくは開始命令を実行すればよ
い。
待ち命令を発行したpU自身が該命令の目標ではない場
合(すなわちpUマスクフィールド内でとのPUに対応
するPUマスクピットが“1”に設定されている場合)
、とのPUは、すべての目標PUが、停止するか、もし
くは該命令を発行したPUと同一のモードで待ち状態に
々る唸でその実行を停止する。待ち命令の実行が完了す
ると、該命令を発行したPUはその実行を再開する。
合(すなわちpUマスクフィールド内でとのPUに対応
するPUマスクピットが“1”に設定されている場合)
、とのPUは、すべての目標PUが、停止するか、もし
くは該命令を発行したPUと同一のモードで待ち状態に
々る唸でその実行を停止する。待ち命令の実行が完了す
ると、該命令を発行したPUはその実行を再開する。
待ち命令の停止機能と同期機能とを説明するために、該
命令を使用して単一命令多重データストリーム(8IM
D)の実行を停止する場合を考えてみる。たとえば、4
個のPUのすべてをアクティブとして同一のコードを実
行させるよう々8IMDタスクがあるとする。PUがそ
れぞれの現アクティビティを完了してい←過程で、これ
らのPUは、PUマスクピットを(0001)2に設定
した待ち命令を実行する。PUI−PU3では、この命
令によって停止動作が実行される。理由は、これらのP
Uに対応するPUマスクピットが”02に設定されてし
るからである。PUOでは、この命令によって同期動作
が実行されるが、これはPUマスクピットが°1”に設
定されているからである。
命令を使用して単一命令多重データストリーム(8IM
D)の実行を停止する場合を考えてみる。たとえば、4
個のPUのすべてをアクティブとして同一のコードを実
行させるよう々8IMDタスクがあるとする。PUがそ
れぞれの現アクティビティを完了してい←過程で、これ
らのPUは、PUマスクピットを(0001)2に設定
した待ち命令を実行する。PUI−PU3では、この命
令によって停止動作が実行される。理由は、これらのP
Uに対応するPUマスクピットが”02に設定されてし
るからである。PUOでは、この命令によって同期動作
が実行されるが、これはPUマスクピットが°1”に設
定されているからである。
この時点では、PUOに対し、他のすべてのPUが各自
のアクティビティを完了し、必要に応じて9− 演算の結果を格納したのち、停止したことが保証されて
いる。この状態でPUOは、演算に必要な逐次ステップ
を実行し、開始命令もしくは再開命令を介してPUI
ないしPU3のうち少なくとも1個の実行を再開し、メ
モリもしくは送信命令を介して新しいデータをPUI−
PU3へと送信することができる。
のアクティビティを完了し、必要に応じて9− 演算の結果を格納したのち、停止したことが保証されて
いる。この状態でPUOは、演算に必要な逐次ステップ
を実行し、開始命令もしくは再開命令を介してPUI
ないしPU3のうち少なくとも1個の実行を再開し、メ
モリもしくは送信命令を介して新しいデータをPUI−
PU3へと送信することができる。
SIMDモードの実行は、2個以上のPUを介して構成
されてhるループから発生することが多い。
されてhるループから発生することが多い。
ループ内部の依存条件により、ループの各実行ごとに、
もしくはループのすべての実行が終了した時点で、待ち
命令を実行して同期を行なう必要のおることがある。
もしくはループのすべての実行が終了した時点で、待ち
命令を実行して同期を行なう必要のおることがある。
PUの待ち状態は、停止状態とは異なることに留意し々
ければならない。理由は、停止したPUは、外部の事象
によってその停止状態から開放する必要があるからであ
る。かかる事象とは、たとえば開始命令や再開命令によ
って停止状態のPUを目標と指定したう、該PUに割込
みを指定したジすることをいう。一方、待ち状態のPU
は、待ち条件が満たされればただちに実行を再開する。
ければならない。理由は、停止したPUは、外部の事象
によってその停止状態から開放する必要があるからであ
る。かかる事象とは、たとえば開始命令や再開命令によ
って停止状態のPUを目標と指定したう、該PUに割込
みを指定したジすることをいう。一方、待ち状態のPU
は、待ち条件が満たされればただちに実行を再開する。
すなわち、待ち命令の実行中は、すべての目標PUを停
止する。すべてのPUが同時に停止状態もしくは待ち状
態にある場合(システムがデッドロック状態の場合)、
デッドロック割込みをPU 1個筐たは所望のPUのサ
ブセットに対して発行する。
止する。すべてのPUが同時に停止状態もしくは待ち状
態にある場合(システムがデッドロック状態の場合)、
デッドロック割込みをPU 1個筐たは所望のPUのサ
ブセットに対して発行する。
送信命令
送信命令は、実行中のPUに属する汎用レジスタのうち
選択された汎用レジスタ1個の内容を、各目標PUへと
送信する。送信命令の実行は、各目標PUが、送信して
いるPUと同一のモードで受信命令(以下で説明する)
を実行するまでは完了しない。任意のPUを目標PUと
指定するには、命令のPUマスクフィールド内の対応ピ
ットを”0”に設定する。命令を発行するPUに対応す
るPUマスクフィールドピットは、無視される。
選択された汎用レジスタ1個の内容を、各目標PUへと
送信する。送信命令の実行は、各目標PUが、送信して
いるPUと同一のモードで受信命令(以下で説明する)
を実行するまでは完了しない。任意のPUを目標PUと
指定するには、命令のPUマスクフィールド内の対応ピ
ットを”0”に設定する。命令を発行するPUに対応す
るPUマスクフィールドピットは、無視される。
送信命令は、その実行時に同期動作が暗黙的に行なわれ
るように実施することも可能である。同期を達成するた
めには、データ値の回報通信が未だに行なわれず、かつ
送信命令の実行が完了する前に、すべての目標PUが適
当なモードで同時に受信状態にあることが必要である。
るように実施することも可能である。同期を達成するた
めには、データ値の回報通信が未だに行なわれず、かつ
送信命令の実行が完了する前に、すべての目標PUが適
当なモードで同時に受信状態にあることが必要である。
受信命令
受信命令が、対応する送信命令(これによう受信PUが
目標と指定される)に先立って起動されると、受信命令
は実行中のPUにデータ値を待つように指示を与える。
目標と指定される)に先立って起動されると、受信命令
は実行中のPUにデータ値を待つように指示を与える。
このデータ値は、他のPUによって回報通信される。こ
の場合、受信状態のPUは目標と指定される。このよう
に他のPUによって送信されたデータ値は、受信状態の
pUに属する汎用レジスタのうち1個に格納され、次の
命令で中断されていた実行が再開される。送信命令が受
信命令に先立って起動されている場合、送信されたデー
タ値は格納され、受信命令の実行は待ち状態を介さずに
完了する。
の場合、受信状態のPUは目標と指定される。このよう
に他のPUによって送信されたデータ値は、受信状態の
pUに属する汎用レジスタのうち1個に格納され、次の
命令で中断されていた実行が再開される。送信命令が受
信命令に先立って起動されている場合、送信されたデー
タ値は格納され、受信命令の実行は待ち状態を介さずに
完了する。
各PUは、自身を送信命令の目標と指定することによっ
てデータを汎用レジスタ間で転送することはできZい。
てデータを汎用レジスタ間で転送することはできZい。
理由は、実行中のPUに対応するPUマスクピットが送
信命令によって無視される=35 からである。
信命令によって無視される=35 からである。
先取シ命令とりスタート命令
先取り命令とりスタート命令は、少なくとも1個のPU
にトラップを生成させる命令でおる。トラップが割込み
と異なる点は、割込みの処理は使用可能なPUであれば
いずれでも可能でおるのに対し、トラップは少なくとも
1個の特定のPUのみを対象としている点である。先取
シ命令とりスタート命令は、PUマスクフィールドを使
用して、トラップを生成させるPUを指定する。この点
は回報通信命令に類似している。先取ジ命令またはりス
タート命令を発行するPUに刻応するPUマスクフィー
ルドピットは無視される。
にトラップを生成させる命令でおる。トラップが割込み
と異なる点は、割込みの処理は使用可能なPUであれば
いずれでも可能でおるのに対し、トラップは少なくとも
1個の特定のPUのみを対象としている点である。先取
シ命令とりスタート命令は、PUマスクフィールドを使
用して、トラップを生成させるPUを指定する。この点
は回報通信命令に類似している。先取ジ命令またはりス
タート命令を発行するPUに刻応するPUマスクフィー
ルドピットは無視される。
先取ジ命令は、各目標PUにPU先取りトラップを生成
させる命令である。いずれのPUでも、PU状態/制御
レしタス内の対応ピットの設定によって割込み/トラッ
プに対して使用を許可されてしれば、該PUはトラップ
をただちに認識する。
させる命令である。いずれのPUでも、PU状態/制御
レしタス内の対応ピットの設定によって割込み/トラッ
プに対して使用を許可されてしれば、該PUはトラップ
をただちに認識する。
トラップの認識後、目標pUは次のような動作を行なう
。すなわち、該PUに属するトラップレジ6− スタ(ローカルレジスタのひとつ)内でPU先取シトラ
ップフラグがまず設定される。PU状態レジスタとプロ
グラムカウンタレジスタとの内容は、専用のローカル特
殊レジスタに格納される。PUモードはシステムモード
に設定される。割込み/トラップ使用可能フラグはクリ
アされ、制御は所定のエントリアドレスへと転送される
。目標PUが割込み/トラップに対して使用禁止となっ
ていれば、回報通信されたトラップに関する認識は、該
PUが割込み/トラップに対して使用を許可されるまで
保留される。先取シ命令の実行は、各目標PUがトラッ
プを認識するはで完了しない。
。すなわち、該PUに属するトラップレジ6− スタ(ローカルレジスタのひとつ)内でPU先取シトラ
ップフラグがまず設定される。PU状態レジスタとプロ
グラムカウンタレジスタとの内容は、専用のローカル特
殊レジスタに格納される。PUモードはシステムモード
に設定される。割込み/トラップ使用可能フラグはクリ
アされ、制御は所定のエントリアドレスへと転送される
。目標PUが割込み/トラップに対して使用禁止となっ
ていれば、回報通信されたトラップに関する認識は、該
PUが割込み/トラップに対して使用を許可されるまで
保留される。先取シ命令の実行は、各目標PUがトラッ
プを認識するはで完了しない。
1個の先取シ命令で複数のPUにトラップを生成させる
ことは可能ではあるが、該命令を発行したPUは、目標
PUのいずれかが割込み/トラップに対して使用禁止と
なっている場合、遅れを経験する。この遅れを最小限と
するため、オペレーティングシステムが1回につき1個
のPUi先取ジすることができる。この場合オペレーテ
ィングシステムは、大域状態レジスタ内の情報を使用し
て、各目標PUが使用可能であるか使用禁止となってい
るかを確認する。確認の時点から先取り命令が発行され
た時点渣での間に目標PUの状態が変化してしlうこと
があシ、このため結局遅れが生じてしまうこともあるが
、この方法によれば遅れ時間の平均値を低めることがで
きる。
ことは可能ではあるが、該命令を発行したPUは、目標
PUのいずれかが割込み/トラップに対して使用禁止と
なっている場合、遅れを経験する。この遅れを最小限と
するため、オペレーティングシステムが1回につき1個
のPUi先取ジすることができる。この場合オペレーテ
ィングシステムは、大域状態レジスタ内の情報を使用し
て、各目標PUが使用可能であるか使用禁止となってい
るかを確認する。確認の時点から先取り命令が発行され
た時点渣での間に目標PUの状態が変化してしlうこと
があシ、このため結局遅れが生じてしまうこともあるが
、この方法によれば遅れ時間の平均値を低めることがで
きる。
先取り命令は、オペレーティングシステムが、アドレス
空間の切換えを行なう時点でPUの実行に割込みをかけ
る場合に使用して特に効果的である。メモリ内のメツセ
ージ領域を使用して、先取シされたPUに先取シの理由
全通知することができる。”t&オペレーティングシス
テムは、システムタスクの並列処理に備えてPUを先取
9することもできる。オペレーティングシステムばプロ
グラムコードのクリティカルセクションで先取ジを行な
うことが望ましい。こうすれば、任意の時点で1個のみ
のPUが他のPUの先取りを試みることになる。たとえ
ば、PUOとPUI とが同時にPU2の先取シを試
みると、実施例の構成によシPUOまたはPUIが最初
に先取シに成功し、その後PU2が割込み/トラップに
対して使用を許可されると、PUOが続いてPU2の先
取やを行なう。ただし、PUOとPUIとが同時に互い
の先取シを試みる場合、結果は不定である。
空間の切換えを行なう時点でPUの実行に割込みをかけ
る場合に使用して特に効果的である。メモリ内のメツセ
ージ領域を使用して、先取シされたPUに先取シの理由
全通知することができる。”t&オペレーティングシス
テムは、システムタスクの並列処理に備えてPUを先取
9することもできる。オペレーティングシステムばプロ
グラムコードのクリティカルセクションで先取ジを行な
うことが望ましい。こうすれば、任意の時点で1個のみ
のPUが他のPUの先取りを試みることになる。たとえ
ば、PUOとPUI とが同時にPU2の先取シを試
みると、実施例の構成によシPUOまたはPUIが最初
に先取シに成功し、その後PU2が割込み/トラップに
対して使用を許可されると、PUOが続いてPU2の先
取やを行なう。ただし、PUOとPUIとが同時に互い
の先取シを試みる場合、結果は不定である。
リスタート命令は、各目標PUにPUリスタトトラップ
を生成させた後、ただちにこれを認識させる。この場合
、目標PUが割込み/トラップに対して使用禁止とされ
ているか否かは問わない。
を生成させた後、ただちにこれを認識させる。この場合
、目標PUが割込み/トラップに対して使用禁止とされ
ているか否かは問わない。
該目標PUはただちに次のような動作を行なう。
すなわち、該PUに属するトラップレジスタ内でPUリ
スタートトラップフラグが1ず設定される。
スタートトラップフラグが1ず設定される。
PUのモードはシステムモードに設定される。割込み/
トラップ使用可能フラグが該PUのPU状態/制御レし
タス内でクリアされ、制御が所定のエントリアドレスへ
と転送される。PUリスタートトラップが認識された時
点でPUが割込み/トラップに対して使用可能であれば
、PU状態/制御レジスタとプログラムカウンタレジス
タとの内容は退避されない。
トラップ使用可能フラグが該PUのPU状態/制御レし
タス内でクリアされ、制御が所定のエントリアドレスへ
と転送される。PUリスタートトラップが認識された時
点でPUが割込み/トラップに対して使用可能であれば
、PU状態/制御レジスタとプログラムカウンタレジス
タとの内容は退避されない。
リスタート命令は、致命的エラーの検出後、実行をリス
タートするのに使用して好適である。致命的エラーはハ
ードウェアもしくはン7トウエアによって検出される。
タートするのに使用して好適である。致命的エラーはハ
ードウェアもしくはン7トウエアによって検出される。
いずれの場合でも、現在アクティブなアドレス空間での
実行は終了し、当該PUの現時点における動作状態ので
きる限シ多くの部分を退避させて、後のエラーの分析C
備える。
実行は終了し、当該PUの現時点における動作状態ので
きる限シ多くの部分を退避させて、後のエラーの分析C
備える。
致命的エラーを示す割込みやトラップが認識されると、
これを認識したPUは、現在のアドレス空間での実行を
終了する処理を開始する。該エラーの発生時に他のPU
が割込み/トラップに対して使用可能となっていれば、
本PUは、先取シ命令を使用してこれら他のPUの実行
に割込みをかけることができる。これらのPUは、各々
に属するPU状態/制御レジスタとプログラムカウンタ
レジスタとの内容を退避させることによシ、のちのエラ
ーの分析に備えることができる。いずれかのPUが割込
み/トラップに対して使用禁止となっていれば、該PU
に対してはりスタート命令を使用して割込みをかけるこ
とができる。
これを認識したPUは、現在のアドレス空間での実行を
終了する処理を開始する。該エラーの発生時に他のPU
が割込み/トラップに対して使用可能となっていれば、
本PUは、先取シ命令を使用してこれら他のPUの実行
に割込みをかけることができる。これらのPUは、各々
に属するPU状態/制御レジスタとプログラムカウンタ
レジスタとの内容を退避させることによシ、のちのエラ
ーの分析に備えることができる。いずれかのPUが割込
み/トラップに対して使用禁止となっていれば、該PU
に対してはりスタート命令を使用して割込みをかけるこ
とができる。
ロック命令とアンロック命令
PUは、各々のアクティビティを相互に調整する場合、
回報通信命令とPU間トラップとの使用に加えて、セマ
フォ命令を使用することができる。
回報通信命令とPU間トラップとの使用に加えて、セマ
フォ命令を使用することができる。
大域状態レジスタ内の大域状態情報には、1ビツトのセ
マフォが複数個含まれている。この多重プロセッサシス
テムの実施例では、ユーザモードセマフォとシステムモ
ードセマフォの2116のセマフォが提供される。これ
らのピットは、大域状態レジスタの読取り書込みによっ
て一グループとして確認、変更が行なわれる。セマフォ
を追加するには、大域状態レジスタ内で追加ピットを割
当て、これらのピットを操作する特殊な命令を定義すれ
ばよい。いずれのセマフォに対する操作も、ロック命令
とアンロック命令とを使用して行なう。
マフォが複数個含まれている。この多重プロセッサシス
テムの実施例では、ユーザモードセマフォとシステムモ
ードセマフォの2116のセマフォが提供される。これ
らのピットは、大域状態レジスタの読取り書込みによっ
て一グループとして確認、変更が行なわれる。セマフォ
を追加するには、大域状態レジスタ内で追加ピットを割
当て、これらのピットを操作する特殊な命令を定義すれ
ばよい。いずれのセマフォに対する操作も、ロック命令
とアンロック命令とを使用して行なう。
ロック命令筐たはアンロック命令を発行したPUがユー
ザモードであれば、これらの命令はユーザモードセマフ
ォに対して実行される。かかるPUがシステムモードで
あれば、これらの命令はシステムモードセマフォに対し
て実行される。
ザモードであれば、これらの命令はユーザモードセマフ
ォに対して実行される。かかるPUがシステムモードで
あれば、これらの命令はシステムモードセマフォに対し
て実行される。
ロック命令は、該当するセマフォ(ユーザモード會たは
システムモード)を確認する。セマフォが設定されてい
る場合(セマフォピット−”1”)、セマフォはクリア
(ロック)されて、ロック命令の実行は完了する。セマ
フォが当初からクリアされていれば、該セマフォが他の
PUによって設定されるまでロック命令の実行はブロッ
クされる。
システムモード)を確認する。セマフォが設定されてい
る場合(セマフォピット−”1”)、セマフォはクリア
(ロック)されて、ロック命令の実行は完了する。セマ
フォが当初からクリアされていれば、該セマフォが他の
PUによって設定されるまでロック命令の実行はブロッ
クされる。
セマフォはいったん設定された後、クリアされて、ロッ
ク命令の実行が完了する。
ク命令の実行が完了する。
アンロック命令は、該当するセマフォ(ユーザモードま
たはシステムモード)を無条件に設定する。あるセマフ
ォをアンロックしたPUが該セマフォを先にロックした
PUであるとは限らない。
たはシステムモード)を無条件に設定する。あるセマフ
ォをアンロックしたPUが該セマフォを先にロックした
PUであるとは限らない。
複数のPUかすでにロックされているセマフォのロック
を試みることがある。この場合、該セマフォがアンロッ
クされるまでこれらのPUの実行はブロックされる。ア
ンロック命令が実行されると、ブロックされたPUのう
ち1個が選択され、該PUのロック命令の実行が許可さ
れる。これによって該セマフォは再度ロックされる。残
シのPUは、次のアンロック処理が可能と寿るまで待た
なければならない。アンロック処理を待っPUが任意の
セマフォQアンロックを許可される順序は、実施例によ
う異なる。
を試みることがある。この場合、該セマフォがアンロッ
クされるまでこれらのPUの実行はブロックされる。ア
ンロック命令が実行されると、ブロックされたPUのう
ち1個が選択され、該PUのロック命令の実行が許可さ
れる。これによって該セマフォは再度ロックされる。残
シのPUは、次のアンロック処理が可能と寿るまで待た
なければならない。アンロック処理を待っPUが任意の
セマフォQアンロックを許可される順序は、実施例によ
う異なる。
グループ処理方式を使用して、セマフォを要求するPU
を公平に処理(サービス)することもできる。あるセマ
フォに対する要求がなく、かつこのセマフォが当初アン
ロックされている場合で、該セマフォがロックされると
、ロックされている期間中に該セマフォのロックを試み
る各PUの番号が記録される。これらのPUはグループ
、すなわちバッチを構成する。このセマフォがアンロッ
クされると、該セマフォはグループ内で最下位から2番
目に低い番号を有するPUに割当てられる。
を公平に処理(サービス)することもできる。あるセマ
フォに対する要求がなく、かつこのセマフォが当初アン
ロックされている場合で、該セマフォがロックされると
、ロックされている期間中に該セマフォのロックを試み
る各PUの番号が記録される。これらのPUはグループ
、すなわちバッチを構成する。このセマフォがアンロッ
クされると、該セマフォはグループ内で最下位から2番
目に低い番号を有するPUに割当てられる。
このグループ内のすべてのPUに割当てられる。
このグループ内のすべてのPUi/i:該セマフォが割
当てられる1で他のPUはこのグループに入ることがで
きない。このように、最初のロック期間中に到着したす
べての要求は、続くロック期間中に到着した要求に先立
って上記の方式で処理される。
当てられる1で他のPUはこのグループに入ることがで
きない。このように、最初のロック期間中に到着したす
べての要求は、続くロック期間中に到着した要求に先立
って上記の方式で処理される。
たとえば、あるセマフォに対する要求がなく、か3
つこのセマフォが当初アンロックされている場合で、P
UOがロック命令を実行したとする。この場合、PUO
が該セマフォをアンロックする前に、PU3が該セマフ
ォに対する要求を生成し、続いてPU2が同じ要求を生
成する(すなわちロック命令を発行する)。PUOが該
セマフォをアンロックすると、PU2とPU3はサービ
スを受けるグループの一部であるように指定されている
ことが判明する。これによシ該セマフォはPU2に割当
てられる。PU2がセマフォをアンロックする前にPU
Iが該セマフォに対する要求を生威し、続いてPUOが
同じ要求を生成すると仮定する。
UOがロック命令を実行したとする。この場合、PUO
が該セマフォをアンロックする前に、PU3が該セマフ
ォに対する要求を生成し、続いてPU2が同じ要求を生
成する(すなわちロック命令を発行する)。PUOが該
セマフォをアンロックすると、PU2とPU3はサービ
スを受けるグループの一部であるように指定されている
ことが判明する。これによシ該セマフォはPU2に割当
てられる。PU2がセマフォをアンロックする前にPU
Iが該セマフォに対する要求を生威し、続いてPUOが
同じ要求を生成すると仮定する。
この場合、これらPUI とPUOの要求は、PU2が
該セマフォをアンロックした後PU3がこれをロックす
る雀での間無視される。この時点で、元のグループに属
するすべてのPUはサービスを受けているため、PUI
とPUOとは該グループに加わることができる。
該セマフォをアンロックした後PU3がこれをロックす
る雀での間無視される。この時点で、元のグループに属
するすべてのPUはサービスを受けているため、PUI
とPUOとは該グループに加わることができる。
セマフォ命令は、クリティカルな領域の実行順序の制御
とデータ構造へのアクセスの制御とを行々うのに好適で
ある。たとえば、あるPUが割込みもしくはトラップを
g識した後に状態の退避を行なう場合、とのPUは大域
スクラッチレジスタ内の汎用レジスタ1個の内容を退避
させ、この汎用レジスタ1個を使用して、汎用レジスタ
全般の格納を行なうメモリ内のアドレスを設定する。複
数のPUが同時に状態の退避を試みることがあう、大域
スクラッチレジスタは1個しかないため、汎用レジスタ
の退避はクリティカルセクションで行なわれる。
とデータ構造へのアクセスの制御とを行々うのに好適で
ある。たとえば、あるPUが割込みもしくはトラップを
g識した後に状態の退避を行なう場合、とのPUは大域
スクラッチレジスタ内の汎用レジスタ1個の内容を退避
させ、この汎用レジスタ1個を使用して、汎用レジスタ
全般の格納を行なうメモリ内のアドレスを設定する。複
数のPUが同時に状態の退避を試みることがあう、大域
スクラッチレジスタは1個しかないため、汎用レジスタ
の退避はクリティカルセクションで行なわれる。
本発明は、上記で開示された精神や基本特性から逸脱す
ることなく他の態様で実施できることは自明である。す
なわち、本発明は上記の詳細によって限定されるもので
はなく、添付の特許請求の範囲によってのみ定義される
。
ることなく他の態様で実施できることは自明である。す
なわち、本発明は上記の詳細によって限定されるもので
はなく、添付の特許請求の範囲によってのみ定義される
。
第1図は本発明を説明する中央処理装置の基本フロック
図、第2図は第1図装置のデータワードのピットとバイ
トの構造を示す図である。 14・・・・命令キャッシュ、22.24・・・・相互
接続ネットワーク、16・・・・データキャッシュ、1
8・・・・メモリ管理装置、20・・・、メモリ/バス
インタフェース。
図、第2図は第1図装置のデータワードのピットとバイ
トの構造を示す図である。 14・・・・命令キャッシュ、22.24・・・・相互
接続ネットワーク、16・・・・データキャッシュ、1
8・・・・メモリ管理装置、20・・・、メモリ/バス
インタフェース。
Claims (5)
- (1)複数の処理装置を有し、前記複数の処理装置がそ
れぞれプログラムされた一連の命令を実行し、かつ複数
の動作モードのうちいずれかで選択的に動作が可能であ
る多重プロセッサシステムにおいて、大域状態レジスタ
手段を有し、前記レジスタ手段は前記複数の処理装置の
いずれによつても複数の動作状態コードを格納するため
のアクセスが可能であり、前記複数の動作状態コードは
それぞれ対応する処理装置における前記複数の動作モー
ドのいずれかを示すことを特徴とする多重プロセッサシ
ステム。 - (2)多重プロセッサシステムにおいて、それぞれがプ
ログラムされた一連の命令を実行する複数の処理装置の
動作を制御する方法であつて、前記複数の処理装置のう
ち複数の第一の装置で第一の命令を実行し、前記第一の
命令が前記複数の第一の処理装置を第一の目標処理装置
として指定する段階と、 前記複数の第一の処理装置による命令の実行を停止する
段階と、 前記複数の第一の処理装置のいずれとも異なる他の前記
複数の処理装置のうち第二の装置において、第二の命令
を実行する段階であつて、前記第二の命令が前記複数の
第一の処理装置のうち少なくともいくつかを複数の第二
の目標処理装置として指定する段階と、 前記複数の第一の処理装置のうち前記少なくともいくつ
かの装置による複数の命令の実行を再開する段階と、 からなることを特徴とする複数の処理装置を制御する方
法。 - (3)多重プロセッサシステムにおいて、それぞれがプ
ログラムされた一連の命令を実行する複数の処理装置の
動作を制御する方法であつて、前記複数の処理装置のう
ち第一の装置で第一の命令を実行し、前記第一の命令が
前記複数の処理装置から前記第一の処理装置を除外した
グループのなかで少なくとも一つの目標処理装置を指定
する段階と、 前記第一の処理装置による前記第一の命令の実行を停止
させる段階と、 前記目標処理装置が所定の複数の状態のうちいずれかの
状態に入るまで待つ段階と、 前記目標処理装置のおのおのがすべて前記所定の複数の
状態のいずれかに入つた後に、前記第一の処理装置に前
記第一の命令の実行を完了させる段階と、 からなることを特徴とする複数の処理装置を制御する方
法。 - (4)多重プロセッサシステムにおいて、それぞれがプ
ログラムされた一連の命令を実行する複数の処理装置の
動作を制御する方法であつて、前記複数の処理装置のう
ち第一の処理装置のレジスタにデータ値を格納する段階
と、 前記第一の処理装置で第一の命令を実行する段階であつ
て、前記第一の命令が少なくとも一つの目標処理装置を
指定する段階と、 前記レジスタに格納された前記データ値を前記目標処理
装置のすベてに送達する段階と、前記少なくとも一つの
目標処理装置で第二の命令を実行して前記データ値を受
領する段階と、からなることを特徴とする複数の処理装
置を制御する方法。 - (5)それぞれがプログラムされた一連の命令を実行す
る複数の処理装置を有する多重プロセッサシステムにお
いて、前記複数の処理装置の動作を制御する方法であつ
て、 前記複数の処理装置のうちの複数の装置に対応する複数
のピットを格納するためのマスク手段を提供する段階と
、 前記マスク手段の前記ピットのうち少なくとも1個のピ
ットを設定することにより、前記複数の処理装置のうち
少なくとも対応する装置を指定する段階と、 前記指定された少なくとも装置におけるプログラム制御
を所定の開始アドレスに転送する段階と、からなること
を特徴とする方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US37494389A | 1989-06-30 | 1989-06-30 | |
US374,943 | 1989-06-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH0340169A true JPH0340169A (ja) | 1991-02-20 |
Family
ID=23478837
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2161489A Pending JPH0340169A (ja) | 1989-06-30 | 1990-06-21 | 多重プロセツサシステムおよび複数の処理装置を制御する方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH0340169A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010013053A (ja) * | 2008-07-07 | 2010-01-21 | Honda Motor Co Ltd | 車体後部構造 |
CN102193508A (zh) * | 2010-03-12 | 2011-09-21 | 株式会社山武 | 设备启动装置以及cpu |
JP2013533545A (ja) * | 2010-06-24 | 2013-08-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 処理を逐次化するための診断命令を実行する方法、システム及びプログラム |
-
1990
- 1990-06-21 JP JP2161489A patent/JPH0340169A/ja active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010013053A (ja) * | 2008-07-07 | 2010-01-21 | Honda Motor Co Ltd | 車体後部構造 |
CN102193508A (zh) * | 2010-03-12 | 2011-09-21 | 株式会社山武 | 设备启动装置以及cpu |
JP2013533545A (ja) * | 2010-06-24 | 2013-08-22 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 処理を逐次化するための診断命令を実行する方法、システム及びプログラム |
US9632780B2 (en) | 2010-06-24 | 2017-04-25 | International Business Machines Corporation | Diagnose instruction for serializing processing |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2564805B2 (ja) | 情報処理装置 | |
US6671827B2 (en) | Journaling for parallel hardware threads in multithreaded processor | |
US6829697B1 (en) | Multiple logical interfaces to a shared coprocessor resource | |
US6944850B2 (en) | Hop method for stepping parallel hardware threads | |
EP0432075B1 (en) | Multiprocessor with relatively atomic instructions | |
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 | |
US20080109569A1 (en) | Remote DMA systems and methods for supporting synchronization of distributed processes in a multi-processor system using collective operations | |
US20040205747A1 (en) | Breakpoint for parallel hardware threads in multithreaded processor | |
US20010049763A1 (en) | Methods and apparatus for scalable array processor interrupt detection and response | |
US7802025B2 (en) | DMA engine for repeating communication patterns | |
US5210828A (en) | Multiprocessing system with interprocessor communications facility | |
JP2006503385A (ja) | マルチスレッド・プロセッサの高速スレッド間割込みのための方法および装置 | |
JP2007052790A (ja) | プロセッサとメモリ・フロー・コントローラとの間でコマンド・パラメータを通信するためのシステム、方法、コンピュータ・プログラム、および装置 | |
JPS58151655A (ja) | 情報処理装置 | |
US8086766B2 (en) | Support for non-locking parallel reception of packets belonging to a single memory reception FIFO | |
GB2580314A (en) | Exchange of data between processor modules | |
US7610451B2 (en) | Data transfer mechanism using unidirectional pull bus and push bus | |
JP2539352B2 (ja) | 階層型多重計算機システム | |
JPH0778088A (ja) | プロセッサシステムで複数個の割込を処理するための装置、プロセッサシステムで複数個の割込トリガからの割込に応動する方法、ならびに複数個のプロセッサ間の同時タスクのための方法および装置 | |
US20170147345A1 (en) | Multiple operation interface to shared coprocessor | |
US20050278720A1 (en) | Distribution of operating system functions for increased data processing performance in a multi-processor architecture | |
US20080109604A1 (en) | Systems and methods for remote direct memory access to processor caches for RDMA reads and writes | |
US7716407B2 (en) | Executing application function calls in response to an interrupt | |
JP2000293436A (ja) | パイプラインメモリシステムにおける複数のターゲットへの複数の未解決要求のサポート | |
JP2884831B2 (ja) | 処理装置 |