JPH0656587B2 - フオールト・トレラント・データ処理システム - Google Patents
フオールト・トレラント・データ処理システムInfo
- Publication number
- JPH0656587B2 JPH0656587B2 JP2125646A JP12564690A JPH0656587B2 JP H0656587 B2 JPH0656587 B2 JP H0656587B2 JP 2125646 A JP2125646 A JP 2125646A JP 12564690 A JP12564690 A JP 12564690A JP H0656587 B2 JPH0656587 B2 JP H0656587B2
- Authority
- JP
- Japan
- Prior art keywords
- pair
- processors
- processor
- data
- bus
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1479—Generic software techniques for error detection or fault masking
- G06F11/1482—Generic software techniques for error detection or fault masking using middleware or operating system [OS] functionalities
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Description
【発明の詳細な説明】 以下の順序で本発明を説明する。
A.産業上の利用分野 B.従来の技術 C.発明が解決しようとする課題 D.課題を解決するための手段 E.実施例 E1.序論 E2.フォールト・トレラント環境において通常非フォ
ールト・トレラントであるプロセッサを動作させること E3.別のプロセッサからあるプロセッサへのコマンド
及びデータを禁止するために、そのプロセッサを関連ハ
ードウェアから切り放すこと E4.オペレーティング・システムに対して透過的なシ
ステムに対して割り込みを与えること E5.異なる仮想記憶オペレーティング・システムを実
行する2つまたはそれ以上のプロセッサの間で実記憶を
共用すること E6.単一システム・イメージ E7.要約 E8.序論−従来のシステム/88 E9.HSDIネットワークを介して相互接続されたフ
ォールト・トレラントS/370モジユール E10.2重化プロセッサ対ユニット21、23の一般
的説明 E11.S/370及びS/88プロセッサ要素の結合
(第11及び第10図) E12.プロセッサ間インターフェース89 E12A.I/Oアダプタ154 E12B.I/Oアダプタ・チャネルO及びチャネル1
バス(第16図) E12C.バス制御ユニット156−一般的な説明(第
16及び第17図) E12D.直接メモリ・アクセス・コントローラ209 E12E.バス制御ユニット156−詳細な説明 (第19A乃至第19C図と第20図) E13.S/370プロセッサ要素PE85 E14.プロセッサ・バス170(第11及び30図)
とプロセッサ・バス・コマンド E15.S/370記憶管理ユニット81 E16.S/370 I/Oサポート(第37図) E17.S/370 I/O動作、ファームウェアの概
要 E18.システム・マイクロコード・デザイン E19.バス制御ユニット(BCU)の動作 E20.S/370 I/O開始シーケンス・フロー、
概要及び詳細説明 E21.S/370 I/Oデータ転送シーケンス・フ
ロー、一般的説明 E22.カウント、キー、及びデータ・フォーマット・
エミュレーション(第46AないしK図) E23.S/88とS/370による実記録16の共有 E24.S/370によって開始されるS/88割り込
みのための初期化機能 E25.S/88オペレーティング・システムを変更す
ることなく空きを獲得すること E26.S/88オペレーティング・システムを変更す
ることなく記憶を獲得(STEAL)すること E27.フォールト・トレラント・ハードウェア同期化 F.発明の効果 A.産業上の利用分野 本発明は、フォールト・トレラント(障害許容性)デー
タ処理システムに関するものである。
ールト・トレラントであるプロセッサを動作させること E3.別のプロセッサからあるプロセッサへのコマンド
及びデータを禁止するために、そのプロセッサを関連ハ
ードウェアから切り放すこと E4.オペレーティング・システムに対して透過的なシ
ステムに対して割り込みを与えること E5.異なる仮想記憶オペレーティング・システムを実
行する2つまたはそれ以上のプロセッサの間で実記憶を
共用すること E6.単一システム・イメージ E7.要約 E8.序論−従来のシステム/88 E9.HSDIネットワークを介して相互接続されたフ
ォールト・トレラントS/370モジユール E10.2重化プロセッサ対ユニット21、23の一般
的説明 E11.S/370及びS/88プロセッサ要素の結合
(第11及び第10図) E12.プロセッサ間インターフェース89 E12A.I/Oアダプタ154 E12B.I/Oアダプタ・チャネルO及びチャネル1
バス(第16図) E12C.バス制御ユニット156−一般的な説明(第
16及び第17図) E12D.直接メモリ・アクセス・コントローラ209 E12E.バス制御ユニット156−詳細な説明 (第19A乃至第19C図と第20図) E13.S/370プロセッサ要素PE85 E14.プロセッサ・バス170(第11及び30図)
とプロセッサ・バス・コマンド E15.S/370記憶管理ユニット81 E16.S/370 I/Oサポート(第37図) E17.S/370 I/O動作、ファームウェアの概
要 E18.システム・マイクロコード・デザイン E19.バス制御ユニット(BCU)の動作 E20.S/370 I/O開始シーケンス・フロー、
概要及び詳細説明 E21.S/370 I/Oデータ転送シーケンス・フ
ロー、一般的説明 E22.カウント、キー、及びデータ・フォーマット・
エミュレーション(第46AないしK図) E23.S/88とS/370による実記録16の共有 E24.S/370によって開始されるS/88割り込
みのための初期化機能 E25.S/88オペレーティング・システムを変更す
ることなく空きを獲得すること E26.S/88オペレーティング・システムを変更す
ることなく記憶を獲得(STEAL)すること E27.フォールト・トレラント・ハードウェア同期化 F.発明の効果 A.産業上の利用分野 本発明は、フォールト・トレラント(障害許容性)デー
タ処理システムに関するものである。
B.従来の技術 フォールト・トレラント・システムは、典型的には、フ
ォールト・トレラント動作のためのボトム・アップから
設計されたものである。それにおいては、プロセッサ、
記憶、I/O装置及びオペレーティング・システムが特
別にフォールト・トレラント環境のために仕立てられて
いる。しかし、顧客ベースの広がりと、そのオペレーテ
ィング・システムの成熟度と、可用ユーザー・プログラ
ムの数と範囲は、インターナショナル・ビジネス・マシ
ーンズ・コーポレーションによって販売されているシス
テム370(S/370)などのいくつかの製造メーカ
ーの際立って古いメインフレーム・システムほどには大
きくない。
ォールト・トレラント動作のためのボトム・アップから
設計されたものである。それにおいては、プロセッサ、
記憶、I/O装置及びオペレーティング・システムが特
別にフォールト・トレラント環境のために仕立てられて
いる。しかし、顧客ベースの広がりと、そのオペレーテ
ィング・システムの成熟度と、可用ユーザー・プログラ
ムの数と範囲は、インターナショナル・ビジネス・マシ
ーンズ・コーポレーションによって販売されているシス
テム370(S/370)などのいくつかの製造メーカ
ーの際立って古いメインフレーム・システムほどには大
きくない。
今日のフォールト・トレラント・データ処理システムの
あるものは、旧来の非フォールト・トレラント・メイン
フレーム上で可用でない、またはメインフレーム・オプ
レーティング・システムによってサポートされない多く
の先進機能を提供する。これらの機能としては、分散処
理ネットワークに亙る単一のシステム・イメージや、プ
ロセッサ及びI/Oコントローラをホットプラグする
(電源オンによりカードを除去しまたは導入する)能力
や、瞬間的にエラーを検出して故障を分離し、コンピュ
ータ・ユーザに対する割り込みなしで故障素子のサービ
スから電気的に除去する機能や、素子の故障から生じる
動的再構成またはシステムが連続的に動作している間に
システムに対して追加の装置を加えることがある。
あるものは、旧来の非フォールト・トレラント・メイン
フレーム上で可用でない、またはメインフレーム・オプ
レーティング・システムによってサポートされない多く
の先進機能を提供する。これらの機能としては、分散処
理ネットワークに亙る単一のシステム・イメージや、プ
ロセッサ及びI/Oコントローラをホットプラグする
(電源オンによりカードを除去しまたは導入する)能力
や、瞬間的にエラーを検出して故障を分離し、コンピュ
ータ・ユーザに対する割り込みなしで故障素子のサービ
スから電気的に除去する機能や、素子の故障から生じる
動的再構成またはシステムが連続的に動作している間に
システムに対して追加の装置を加えることがある。
そのようなフォールト・トレラント・システムの1つの
例として、インターナショナル・ビジネス・マシーンズ
・コーポレーションによって販売されているシステム8
8(S/88)がある。本発明の好適な形態の統合部分
を形成するのが、このIBM S/88の1つのモデル
及びIBM S/370の1つのモデルである。
例として、インターナショナル・ビジネス・マシーンズ
・コーポレーションによって販売されているシステム8
8(S/88)がある。本発明の好適な形態の統合部分
を形成するのが、このIBM S/88の1つのモデル
及びIBM S/370の1つのモデルである。
上述の機能をS/370環境及びアーキテクチャに組み
込もうとすることは、典型的には、オペレーティング・
システム及びアプリケーション・プログラムの大幅な書
き直しと、スクラッチから開発された新しいハードウェ
アを要する。しかし、VM、VSE、IX370などの
オペレーティング・システムの書き直しは、まさに途方
もない作業であって、膨大な数のプログラマと、相当の
期間を要するというのが多数の者が考えるところであ
る。IBM S/370またはMVSなどの複雑なオペ
レーティング・システムが成熟するには通常5年以上か
かる。現時点まで、大抵のシステム故障は、オペレーテ
ィング・システム・エラーの結果である。また、ユーザ
ーがオペレーティング・システムの使用に収益を見出す
ようになるには多くの年月を要する。不幸にも、あるオ
ペレーティング・システムが一旦成熟し大きいユーザー
・ベースを形成してしまうと、そのコードを、フォール
ト・トレランス、動的再構成、単一システム・イメージ
などの新しい機能を導入するように変更することは容易
な努力ではない。
込もうとすることは、典型的には、オペレーティング・
システム及びアプリケーション・プログラムの大幅な書
き直しと、スクラッチから開発された新しいハードウェ
アを要する。しかし、VM、VSE、IX370などの
オペレーティング・システムの書き直しは、まさに途方
もない作業であって、膨大な数のプログラマと、相当の
期間を要するというのが多数の者が考えるところであ
る。IBM S/370またはMVSなどの複雑なオペ
レーティング・システムが成熟するには通常5年以上か
かる。現時点まで、大抵のシステム故障は、オペレーテ
ィング・システム・エラーの結果である。また、ユーザ
ーがオペレーティング・システムの使用に収益を見出す
ようになるには多くの年月を要する。不幸にも、あるオ
ペレーティング・システムが一旦成熟し大きいユーザー
・ベースを形成してしまうと、そのコードを、フォール
ト・トレランス、動的再構成、単一システム・イメージ
などの新しい機能を導入するように変更することは容易
な努力ではない。
成熟したオペレーティング・システムを新しいマシン・
アーキテクチャに移植することの複雑性と費用のため、
設計者は通常、新しいオペレーティング・システムを開
発しようと決心することになるが、これはユーザーの社
会によって容易に受け入れられないことがある。成熟し
たオペレーティング・システムを、新しく開発されたオ
ペレーティング・システムによって例示される新しい機
能を組み込むように変更することは非現実的であること
が分かっているが、この新しいオペレーティング・シス
テムは実質的なユーザー・ベースを決して形成すること
が出来ないかもしれず、ほとんどの問題が解決される前
に多年のフィールドでの使用を経ることになろう。
アーキテクチャに移植することの複雑性と費用のため、
設計者は通常、新しいオペレーティング・システムを開
発しようと決心することになるが、これはユーザーの社
会によって容易に受け入れられないことがある。成熟し
たオペレーティング・システムを、新しく開発されたオ
ペレーティング・システムによって例示される新しい機
能を組み込むように変更することは非現実的であること
が分かっているが、この新しいオペレーティング・シス
テムは実質的なユーザー・ベースを決して形成すること
が出来ないかもしれず、ほとんどの問題が解決される前
に多年のフィールドでの使用を経ることになろう。
C.発明が解決しようとする課題 この発明の主要な目的は、オペレーティング・システム
をあまり書き直すことなく、通常非フォールト・トレラ
ントである処理システム及びオペレーティング・システ
ムのために、フォールト・トレラント環境及びアーキテ
クチャを提供することにある。
をあまり書き直すことなく、通常非フォールト・トレラ
ントである処理システム及びオペレーティング・システ
ムのために、フォールト・トレラント環境及びアーキテ
クチャを提供することにある。
D.課題を解決するための手段 上述の目的は、第1の複数の、今まで非フォールト・ト
レラント(NFT)であった中央処理装置(CPU)の
各々を互いに一意的に接続し、また、フォールト・トレ
ラント環境を提供するオペレーティング・システム・ソ
フトウェアの制御の下で通常フォールト・トレラント形
式で動作する異なる第2の複数のCPUの各々とも一意
的に接続することによる好適な実施例において達成され
る。複数のCPUの各々は、プログラム制御の下で同時
にそれぞれ同一の動作を行う。この相互接続によって、
非フォールト・トレラントである第1のCPUが、各々
の非フォールト・トレラント・オペレーティング・シス
テム・ソフトウェアの制御の下でのプログラム命令の実
行の間にフォールト・トレラント様式で動作することが
可能となる。これら第2のCPUは、フォールト・トレ
ラント主記憶及びフォールト・トレラント入出力(I/
O)装置に接続され、第1のCPUのためのI/Oコン
トローラとして動作するように制御される。また、エラ
ーを検出するために、それらめいめいのCPUの状態を
互いに周期的に比較するための手段も設けられる。フォ
ールト・トレラント動作は、結合された第1及び第2の
CPUのうちの少なくとも2つがエラーがないことが見
出される限り継続される。
レラント(NFT)であった中央処理装置(CPU)の
各々を互いに一意的に接続し、また、フォールト・トレ
ラント環境を提供するオペレーティング・システム・ソ
フトウェアの制御の下で通常フォールト・トレラント形
式で動作する異なる第2の複数のCPUの各々とも一意
的に接続することによる好適な実施例において達成され
る。複数のCPUの各々は、プログラム制御の下で同時
にそれぞれ同一の動作を行う。この相互接続によって、
非フォールト・トレラントである第1のCPUが、各々
の非フォールト・トレラント・オペレーティング・シス
テム・ソフトウェアの制御の下でのプログラム命令の実
行の間にフォールト・トレラント様式で動作することが
可能となる。これら第2のCPUは、フォールト・トレ
ラント主記憶及びフォールト・トレラント入出力(I/
O)装置に接続され、第1のCPUのためのI/Oコン
トローラとして動作するように制御される。また、エラ
ーを検出するために、それらめいめいのCPUの状態を
互いに周期的に比較するための手段も設けられる。フォ
ールト・トレラント動作は、結合された第1及び第2の
CPUのうちの少なくとも2つがエラーがないことが見
出される限り継続される。
E.実施例 E1.序論 本発明を実現するための好適な実施例は、フォールト・
トレラント・システムを有する。フォールト・トレラン
ト・システムは、典型的には、フォールト・トレラント
動作のためのボトム・アップから設計されたものであ
る。それにおいては、プロセッサ、記憶、I/O装置及
びオペレーティング・システムが特別にフォールト・ト
レラント環境のために仕立てられている。しかし、顧客
ベースの広がりと、そのオペレーティング・システムの
成熟度と、可用ユーザー・プログラムの数と範囲は、イ
ンターナショナル・ビジネス・マシーンズ・コーポレー
ションによって販売されているシステム370(S/3
70)などのいくつかの製造メーカーの際立って古いメ
インフレーム・システムほどには大きくない。
トレラント・システムを有する。フォールト・トレラン
ト・システムは、典型的には、フォールト・トレラント
動作のためのボトム・アップから設計されたものであ
る。それにおいては、プロセッサ、記憶、I/O装置及
びオペレーティング・システムが特別にフォールト・ト
レラント環境のために仕立てられている。しかし、顧客
ベースの広がりと、そのオペレーティング・システムの
成熟度と、可用ユーザー・プログラムの数と範囲は、イ
ンターナショナル・ビジネス・マシーンズ・コーポレー
ションによって販売されているシステム370(S/3
70)などのいくつかの製造メーカーの際立って古いメ
インフレーム・システムほどには大きくない。
今日のフォールト・トレラント・データ処理システムの
あるものは、旧来の非フォールト・トレラント・メイン
フレーム上で可用でない、またはメインフレーム・オペ
レーティング・システムによってサポートされない多く
の先進機能を提供する。これらの機能としては、分散処
理ネットワークに亙る単一のシステム・イメージや、プ
ロセッサ及びI/Oコントローラをホットプラグする
(電源オンによりカードを除去しまたは導入する)能力
や、瞬間的にエラーを検出して故障を分離し、コンピュ
ータ・ユーザに対する割り込みなしで故障素子のサービ
スから電気的に除去する機能や、素子の故障から生じる
動的再構成またはシステムが連続的に動作している間に
システムに対して追加の装置を加えることがある。
あるものは、旧来の非フォールト・トレラント・メイン
フレーム上で可用でない、またはメインフレーム・オペ
レーティング・システムによってサポートされない多く
の先進機能を提供する。これらの機能としては、分散処
理ネットワークに亙る単一のシステム・イメージや、プ
ロセッサ及びI/Oコントローラをホットプラグする
(電源オンによりカードを除去しまたは導入する)能力
や、瞬間的にエラーを検出して故障を分離し、コンピュ
ータ・ユーザに対する割り込みなしで故障素子のサービ
スから電気的に除去する機能や、素子の故障から生じる
動的再構成またはシステムが連続的に動作している間に
システムに対して追加の装置を加えることがある。
そのようなフォールト・トレラント・システムの1つの
例として、インターナショナル・ビジネス・マシーンズ
・コーポレーションによって販売されているシステム8
8(S/88)がある。本発明の好適な形態の統合部分
を形成するのが、このIBM S/88の1つのモデル
及びIBM S/370の1つのモデルである。
例として、インターナショナル・ビジネス・マシーンズ
・コーポレーションによって販売されているシステム8
8(S/88)がある。本発明の好適な形態の統合部分
を形成するのが、このIBM S/88の1つのモデル
及びIBM S/370の1つのモデルである。
上述の機能をS/370環境及びアーキテクチャに組み
込もうとすることは、典型的には、オペレーティング・
システム及びアプリケーション・プログラムの大幅な書
き直しと、スクラッチから開発された新しいハードウェ
アを要する。しかし、VM、VSE、IX370などの
オペレーティング・システムの書き直しは、まさに途方
もない作業であって、膨大な数のプログラマと、相当の
期間を要するというのが多数の者が考えるところであ
る。IBM S/370またはMVSなどの複雑なオペ
レーティング・システムが成熟するには通常5年以上か
かる。現時点まで、大抵のシステム故障は、オペレーテ
ィング・システム・エラーの結果である。また、ユーザ
ーがオペレーティング・システムの使用に収益を見出す
ようになるには多くの年月を要する。不幸にも、あるオ
ペレーティング・システムが一旦成熟し大きいユーザー
・ベースを形成してしまうと、そのコードを、フォール
ト・トレランス、動的再構成、単一システム・イメージ
などの新しい機能を導入するように変更することは容易
な努力ではない。
込もうとすることは、典型的には、オペレーティング・
システム及びアプリケーション・プログラムの大幅な書
き直しと、スクラッチから開発された新しいハードウェ
アを要する。しかし、VM、VSE、IX370などの
オペレーティング・システムの書き直しは、まさに途方
もない作業であって、膨大な数のプログラマと、相当の
期間を要するというのが多数の者が考えるところであ
る。IBM S/370またはMVSなどの複雑なオペ
レーティング・システムが成熟するには通常5年以上か
かる。現時点まで、大抵のシステム故障は、オペレーテ
ィング・システム・エラーの結果である。また、ユーザ
ーがオペレーティング・システムの使用に収益を見出す
ようになるには多くの年月を要する。不幸にも、あるオ
ペレーティング・システムが一旦成熟し大きいユーザー
・ベースを形成してしまうと、そのコードを、フォール
ト・トレランス、動的再構成、単一システム・イメージ
などの新しい機能を導入するように変更することは容易
な努力ではない。
成熟したオペレーティング・システムを新しいマシン・
アーキテクチャに移植することの複雑性と費用のため、
設計者は通常、新しいオペレーティング・システムを開
発しようと決心することになるが、これはユーザーの社
会によって容易に受け入れられないことがある。成熟し
たオペレーティング・システムを、新しく開発されたオ
ペレーティング・システムによって例示される新しい機
能を組み込むように変更することは非現実的であること
が分かっているが、この新しいオペレーティング・シス
テムは実質的なユーザー・ベースを決して形成すること
が出来ないかもしれず、ほとんどの問題が解決される前
に多年のフィールドでの使用を経ることになろう。
アーキテクチャに移植することの複雑性と費用のため、
設計者は通常、新しいオペレーティング・システムを開
発しようと決心することになるが、これはユーザーの社
会によって容易に受け入れられないことがある。成熟し
たオペレーティング・システムを、新しく開発されたオ
ペレーティング・システムによって例示される新しい機
能を組み込むように変更することは非現実的であること
が分かっているが、この新しいオペレーティング・シス
テムは実質的なユーザー・ベースを決して形成すること
が出来ないかもしれず、ほとんどの問題が解決される前
に多年のフィールドでの使用を経ることになろう。
従って、本発明は、オペレーティング・システムをあま
り書き直すことなく、通常非フォールト・トレラントで
ある処理システム及びオペレーティング・システムのた
めに、フォールト・トレラント環境及びアーキテクチャ
を提供することを意図している。好適な実施例では、I
BMシステム/88の1つのモデルが、IBM S/3
70の1つのモデルに接続される。
り書き直すことなく、通常非フォールト・トレラントで
ある処理システム及びオペレーティング・システムのた
めに、フォールト・トレラント環境及びアーキテクチャ
を提供することを意図している。好適な実施例では、I
BMシステム/88の1つのモデルが、IBM S/3
70の1つのモデルに接続される。
異なるプロセッサ及びオペレーティング・システムを結
合するための現在の方法として、ある種の通信コントロ
ーラを各システムに追加し、オペレーティング・システ
ムにデバイス・ドライバを付加し、データを輸送するた
めにシステム・ネットワーク・アーキテクチャ(SN
A)またはOSIなどのある種の通信コードを使用する
ことを通じての方法がある。通常、ネットワーク中の端
点コンピュータの間のデータ通信を達成するためには、
それらの端点がめいめい、交換されるべきデータに対す
るサービスの一貫したセットを理解し適用することが必
要である。
合するための現在の方法として、ある種の通信コントロ
ーラを各システムに追加し、オペレーティング・システ
ムにデバイス・ドライバを付加し、データを輸送するた
めにシステム・ネットワーク・アーキテクチャ(SN
A)またはOSIなどのある種の通信コードを使用する
ことを通じての方法がある。通常、ネットワーク中の端
点コンピュータの間のデータ通信を達成するためには、
それらの端点がめいめい、交換されるべきデータに対す
るサービスの一貫したセットを理解し適用することが必
要である。
それらの設計上の複雑さを低減するために、ほとんどの
ネットワークは、めいめいの層またはレベルが1つ下の
層またはレベル上に構成されてなる一連の層またはレベ
ルとして構成されている。層の数、各層の名称、及び各
層の機能は、ネットワークによって異なる。しかし、あ
らゆるネットワークにおいて、各層の目的は、上位のサ
ービスに対してサービスを提供し、以てそれら上位の層
を、提供されるサービスが実際に実現される様式の詳細
情報から遮蔽することにある。1つのマシン上の層n
は、別のマシン上の層nと会話をやりとりする。この会
話で使用される規則と会話は、層nプロトコルとして集
合的に知られている。異なるマシン上の対応層を有する
エンティティは、対等(peer)プロセスと呼ばれ、そのプ
ロトコルを使用して通信すると言われるのがこの対等プ
ロセスである。
ネットワークは、めいめいの層またはレベルが1つ下の
層またはレベル上に構成されてなる一連の層またはレベ
ルとして構成されている。層の数、各層の名称、及び各
層の機能は、ネットワークによって異なる。しかし、あ
らゆるネットワークにおいて、各層の目的は、上位のサ
ービスに対してサービスを提供し、以てそれら上位の層
を、提供されるサービスが実際に実現される様式の詳細
情報から遮蔽することにある。1つのマシン上の層n
は、別のマシン上の層nと会話をやりとりする。この会
話で使用される規則と会話は、層nプロトコルとして集
合的に知られている。異なるマシン上の対応層を有する
エンティティは、対等(peer)プロセスと呼ばれ、そのプ
ロトコルを使用して通信すると言われるのがこの対等プ
ロセスである。
実際上、1つのマシン上の層nから別のマシンの層nに
直接転送されるデータはない(最下位または物理層の場
合は例外)。すなわち、異なるまたは相違するシステム
上で動作するアプリケーション・プログラムの直接的結
合はあり得ない。そうではなくて、各層は、最下位層に
達するまでデータ及び制御情報をその直ぐ下の層に渡す
のである。最下位層では、より上位の層によって使用さ
れる仮想通信とは対照的に、別のマシンとの物理的通信
が存在する。
直接転送されるデータはない(最下位または物理層の場
合は例外)。すなわち、異なるまたは相違するシステム
上で動作するアプリケーション・プログラムの直接的結
合はあり得ない。そうではなくて、各層は、最下位層に
達するまでデータ及び制御情報をその直ぐ下の層に渡す
のである。最下位層では、より上位の層によって使用さ
れる仮想通信とは対照的に、別のマシンとの物理的通信
が存在する。
これらのサービスのセットの定義は上述の複数の異なる
ネットワーク中に存在し、より最近は、異なるベンダか
らのシステムの相互接続を容易ならしめるためのプロト
コルの提供に興味が集まっている。これらのプロトコル
の開発の1つの構成として、ISOの7層OSI(解放
システム相互接続)モデルによって定義される枠組みが
ある。このモデルの各層は、その下の層からサービスを
要求しつつその上の層に対してネットワーク・サービス
を与える役目を果たす。各層で与えられるサービスは、
それらをネットワーク中の各ステーションによって矛盾
なく適用することができるように良好に定義されてい
る。これは、異なるベンダの装置の相互接続を可能なら
しめるということである。あるノード内の層から層への
サービスの実現は、その実現構成に特有であり、あるス
テーション内で与えられたサービスに基づきベンダ差別
化を可能ならしめる。
ネットワーク中に存在し、より最近は、異なるベンダか
らのシステムの相互接続を容易ならしめるためのプロト
コルの提供に興味が集まっている。これらのプロトコル
の開発の1つの構成として、ISOの7層OSI(解放
システム相互接続)モデルによって定義される枠組みが
ある。このモデルの各層は、その下の層からサービスを
要求しつつその上の層に対してネットワーク・サービス
を与える役目を果たす。各層で与えられるサービスは、
それらをネットワーク中の各ステーションによって矛盾
なく適用することができるように良好に定義されてい
る。これは、異なるベンダの装置の相互接続を可能なら
しめるということである。あるノード内の層から層への
サービスの実現は、その実現構成に特有であり、あるス
テーション内で与えられたサービスに基づきベンダ差別
化を可能ならしめる。
そのようなプロトコルの構造化されたセットを実現する
全体の目的は、データの端点から端点への転送を実現す
ることにある、ということに留意することは重要であ
る。OSIモデル内の主な区分けは、ユーザー・ノード
が、ソース側アプリケーション・プログラムから受信側
アプリケーション・プログラムへのデータの引き渡しに
関与していると考えてみるならよりよく理解されよう。
このデータを引き渡すために、OSIプロトコルは、各
レベルのデータに働きかけ、ネットワークに対してフレ
ームを供給する。それらのフレームは次に、ビットのセ
ットとして物理媒体に与えられ、それはその物理媒体を
通じて伝送される。それらは次に、受取りステーション
側のアプリケーション・プログラムにデータを提供する
ために、逆の手続を受ける。
全体の目的は、データの端点から端点への転送を実現す
ることにある、ということに留意することは重要であ
る。OSIモデル内の主な区分けは、ユーザー・ノード
が、ソース側アプリケーション・プログラムから受信側
アプリケーション・プログラムへのデータの引き渡しに
関与していると考えてみるならよりよく理解されよう。
このデータを引き渡すために、OSIプロトコルは、各
レベルのデータに働きかけ、ネットワークに対してフレ
ームを供給する。それらのフレームは次に、ビットのセ
ットとして物理媒体に与えられ、それはその物理媒体を
通じて伝送される。それらは次に、受取りステーション
側のアプリケーション・プログラムにデータを提供する
ために、逆の手続を受ける。
異なるプロセッサ及びオペレーティング・システムを結
合するための現在の方法として、ある種の通信コントロ
ーラを各システムに追加し、オペレーティング・システ
ムにデバイス・ドライバを付加し、データを輸送するた
めにシステム・ネットワーク・アーキテクチャ(SN
A)またはOSIなどのある種の通信コードを使用する
ことを通じての方法がある。第3図は、ローカル・エリ
ア・ネットワーク(LAN)による2つのコンピュータ
・システムの標準的な相互接続を示すものである。特
に、IBM システム/88アーキテクチャに接続され
たIBM S/370アーキテクチャが示されている。
ここで、めいめいの場合、アプリケーション・プログラ
ムが、プロセッサを制御しI/Oチャネルまたはバスに
アクセスするために、オペレーティング・システムとの
インターフェースを通じて動作することが見て取れよ
う。各アーキテクチャ装置は、データを交換するための
通信コントローラをもっている。通信するためには、デ
ータが対応するアプリケーション・プログラムの間で交
換されることを可能ならしめるように多層プロトコルを
利用しなくてはならない。
合するための現在の方法として、ある種の通信コントロ
ーラを各システムに追加し、オペレーティング・システ
ムにデバイス・ドライバを付加し、データを輸送するた
めにシステム・ネットワーク・アーキテクチャ(SN
A)またはOSIなどのある種の通信コードを使用する
ことを通じての方法がある。第3図は、ローカル・エリ
ア・ネットワーク(LAN)による2つのコンピュータ
・システムの標準的な相互接続を示すものである。特
に、IBM システム/88アーキテクチャに接続され
たIBM S/370アーキテクチャが示されている。
ここで、めいめいの場合、アプリケーション・プログラ
ムが、プロセッサを制御しI/Oチャネルまたはバスに
アクセスするために、オペレーティング・システムとの
インターフェースを通じて動作することが見て取れよ
う。各アーキテクチャ装置は、データを交換するための
通信コントローラをもっている。通信するためには、デ
ータが対応するアプリケーション・プログラムの間で交
換されることを可能ならしめるように多層プロトコルを
利用しなくてはならない。
データを交換するための別の方法として、コプロセッサ
がシステム・バス上にあってシステム・バスを調停し、
そのI/Oをホスト・プロセッサとして使用するよう
な、コプロセッサによる方法がある。このコプロセッサ
による方法の欠点は、同種でない(相違する)ホストI
/Oをサポートするために必要なコードの書き直しの量
である。別の欠点として、コプロセッサとホスト・オペ
レーティング・システムの間で切り換えを行うためにユ
ーザーが両方のシステム・アーキテクチャに慣れ親しま
なくてはならず、すなわちユーザー・フレンドリでない
環境である、ということがある。
がシステム・バス上にあってシステム・バスを調停し、
そのI/Oをホスト・プロセッサとして使用するよう
な、コプロセッサによる方法がある。このコプロセッサ
による方法の欠点は、同種でない(相違する)ホストI
/Oをサポートするために必要なコードの書き直しの量
である。別の欠点として、コプロセッサとホスト・オペ
レーティング・システムの間で切り換えを行うためにユ
ーザーが両方のシステム・アーキテクチャに慣れ親しま
なくてはならず、すなわちユーザー・フレンドリでない
環境である、ということがある。
従来技術のフォールト・トレラント・コンピュータ・シ
ステムは、処理装置と、ランダム・アクセス・メモリ装
置と、周辺制御装置と、幾つかのモジュール単位間のす
べての情報転送を与える単一バス構造を含むプロセッサ
・モジュールを有する。各プロセッサ・モジュール内の
システム・バス構造は、重複相手(duplicate partner)
バスを有し、プロセッサ・モジュール内の各機能ユニッ
トもまた重複相手ユニットをもつ。このバス構造は、モ
ジュールのユニットに対する動作電力と、主クロックか
らのシステム・タイミング信号を与える。
ステムは、処理装置と、ランダム・アクセス・メモリ装
置と、周辺制御装置と、幾つかのモジュール単位間のす
べての情報転送を与える単一バス構造を含むプロセッサ
・モジュールを有する。各プロセッサ・モジュール内の
システム・バス構造は、重複相手(duplicate partner)
バスを有し、プロセッサ・モジュール内の各機能ユニッ
トもまた重複相手ユニットをもつ。このバス構造は、モ
ジュールのユニットに対する動作電力と、主クロックか
らのシステム・タイミング信号を与える。
第2図は、機能ブロック図の形式でプロセッサ・モジュ
ールのプロセッサ・ユニットの構造を示すものである。
共通の交換カード上に取り付けられ同期して同一の動作
を実行する対になった同一のプロセッサを使用すること
によって、処理エラーを検出するための比較を行うこと
ができる。各カードは通常、同一の構造の、相手となる
冗長ユニットをもつ。
ールのプロセッサ・ユニットの構造を示すものである。
共通の交換カード上に取り付けられ同期して同一の動作
を実行する対になった同一のプロセッサを使用すること
によって、処理エラーを検出するための比較を行うこと
ができる。各カードは通常、同一の構造の、相手となる
冗長ユニットをもつ。
このコンピュータ・システムは、全体のプロセッサ・モ
ジュール内の各機能ユニットのレベルで故障検出を行
う。エラー検出器は、各ユニット内のハードウェア動作
を監視し、ユニット間の情報転送をチェックする。エラ
ーの検出によって、プロセッサ・モジュールがそのエラ
ーを引き起こしたユニットを分離し、そのユニットが別
のユニットに情報を伝送するのを禁止し、モジュール
は、その故障ユニットの相手側のユニットを使用するこ
とによって動作を継続する。
ジュール内の各機能ユニットのレベルで故障検出を行
う。エラー検出器は、各ユニット内のハードウェア動作
を監視し、ユニット間の情報転送をチェックする。エラ
ーの検出によって、プロセッサ・モジュールがそのエラ
ーを引き起こしたユニットを分離し、そのユニットが別
のユニットに情報を伝送するのを禁止し、モジュール
は、その故障ユニットの相手側のユニットを使用するこ
とによって動作を継続する。
どれかのユニットで故障が検出されると、そのユニット
は分離され、それが誤った情報を別のユニットに転送す
ることができないように、切り放し状態(off-line)に置
かれる。この今や切りはなされたユニットの相手は動作
を継続し、以てモジュール全体が動作を継続するのを可
能ならしめる。ユーザーは、その切りはなされたユニッ
トにサービスする保守要求の表示を除けば、そのような
故障検出及び切り放し状況への転移に気付くことはめっ
たにない。このカード配置は、除去及び交換を容易なら
しめる。
は分離され、それが誤った情報を別のユニットに転送す
ることができないように、切り放し状態(off-line)に置
かれる。この今や切りはなされたユニットの相手は動作
を継続し、以てモジュール全体が動作を継続するのを可
能ならしめる。ユーザーは、その切りはなされたユニッ
トにサービスする保守要求の表示を除けば、そのような
故障検出及び切り放し状況への転移に気付くことはめっ
たにない。このカード配置は、除去及び交換を容易なら
しめる。
メモリ・ユニットにはまた、システム・バスをチェック
するタスクが割当てられる。このために、そのユニット
は、アドレス信号をテストし、そのバス構造上のデータ
信号をテストするパリティ・チェッカをもつ。どのバス
が故障であるかを決定すると、メモリ・ユニットは、モ
ジュールの他のユニットに、非故障バスにのみ従うよう
に通知する。プロセッサ・モジュールの電源ユニット
は、2つの電源を使用し、そのめいめいが、組となった
対のユニットのうちの1つのユニットに対してのみ電力
を与える。そして、障害供給電圧が検出されると、それ
によって影響を受けるユニットからバス構造に至るすべ
ての出力線がアース電位にクランプされ、以て電力の障
害がバス構造に対する障害情報の伝送を引き起こすのを
防止する。
するタスクが割当てられる。このために、そのユニット
は、アドレス信号をテストし、そのバス構造上のデータ
信号をテストするパリティ・チェッカをもつ。どのバス
が故障であるかを決定すると、メモリ・ユニットは、モ
ジュールの他のユニットに、非故障バスにのみ従うよう
に通知する。プロセッサ・モジュールの電源ユニット
は、2つの電源を使用し、そのめいめいが、組となった
対のユニットのうちの1つのユニットに対してのみ電力
を与える。そして、障害供給電圧が検出されると、それ
によって影響を受けるユニットからバス構造に至るすべ
ての出力線がアース電位にクランプされ、以て電力の障
害がバス構造に対する障害情報の伝送を引き起こすのを
防止する。
第1図は、機能ブロック図の形式で、データの直接交換
を可能ならしめるためのフォールト・トレラント構造の
様式の、対S/370プロセッサと対S/88プロセッ
サの相互接続を示す図である。従来技術のS/88構造
(第4図)に対する類似性は意図的なものであるが、本
発明の好適な実施例を確立するのは、ハードウェアとソ
フトウェアの両方の手段による独特の相互接続である。
このとき、S/370プロセッサが、S/88タイプ比
較論理以外に記憶制御論理及びバス・インターフェース
にも接続されていることが見て取れよう。後述するが、
その比較論理は、S/88プロセッサの比較論理と同様
に機能する。さらに、S/370プロセッサはシステム
・バスを介して対応するS/88プロセッサに直接接続
されている。S/88プロセッサの場合と同様に、S/
370プロセッサは対に接続され、その対は、フィール
ド変換可能で、ホットプラグ可能な回路カード上に取り
付けられるように意図されている。いくつかのドライバ
の相互接続の詳細は、後で詳細に説明する。
を可能ならしめるためのフォールト・トレラント構造の
様式の、対S/370プロセッサと対S/88プロセッ
サの相互接続を示す図である。従来技術のS/88構造
(第4図)に対する類似性は意図的なものであるが、本
発明の好適な実施例を確立するのは、ハードウェアとソ
フトウェアの両方の手段による独特の相互接続である。
このとき、S/370プロセッサが、S/88タイプ比
較論理以外に記憶制御論理及びバス・インターフェース
にも接続されていることが見て取れよう。後述するが、
その比較論理は、S/88プロセッサの比較論理と同様
に機能する。さらに、S/370プロセッサはシステム
・バスを介して対応するS/88プロセッサに直接接続
されている。S/88プロセッサの場合と同様に、S/
370プロセッサは対に接続され、その対は、フィール
ド変換可能で、ホットプラグ可能な回路カード上に取り
付けられるように意図されている。いくつかのドライバ
の相互接続の詳細は、後で詳細に説明する。
この好適な実施例は、S/370オペレーティング・シ
ステムの制御の下で同一のS/370命令を同時に実行
するために複数のS/370プロセッサを相互接続す
る。これらは、対応するS/88プロセッサ、I/O装
置及び主記憶に接続され、それらはすべて、S/88オ
ペレーティング・システムの制御の下で同一のS/88
命令を同時に実行する。また、後述するが、S/88プ
ロセッサが結合されていない間にS/370プロセッサ
からのS/370 I/Oコマンド及びデータをS/8
8プロセッサに渡し、S/88プロセッサがI/O装置
及び主記憶に再結合されたときに後でS/88プロセッ
サによって処理するためにS/88によって使用可能な
形式にそのコマンド及びデータを変換するために、S/
88プロセッサをそのI/O装置及び記憶から非同期的
に切り放すための手段も含まれている。
ステムの制御の下で同一のS/370命令を同時に実行
するために複数のS/370プロセッサを相互接続す
る。これらは、対応するS/88プロセッサ、I/O装
置及び主記憶に接続され、それらはすべて、S/88オ
ペレーティング・システムの制御の下で同一のS/88
命令を同時に実行する。また、後述するが、S/88プ
ロセッサが結合されていない間にS/370プロセッサ
からのS/370 I/Oコマンド及びデータをS/8
8プロセッサに渡し、S/88プロセッサがI/O装置
及び主記憶に再結合されたときに後でS/88プロセッ
サによって処理するためにS/88によって使用可能な
形式にそのコマンド及びデータを変換するために、S/
88プロセッサをそのI/O装置及び記憶から非同期的
に切り放すための手段も含まれている。
E2.フォールト・トレラント環境において通常非フォ
ールト・トレラントであるプロセッサを動作させること 前記にリストしたフォールト・トレラント機能は、1つ
のS/370オペレーティング・システムの制御の下で
同一のS/370命令を同時に実行する第1の対として
S/370プロセッサなどの通常非フォールト・トレラ
ントであるプロセッサを結合することによって好適な実
施例で達成される。また、一方または両方のプロセッサ
中のエラーを瞬間的に検出するために、一方のプロセッ
サ中のさまざまな信号の状態を他方のプロセッサ中のそ
れらと比較するための手段も設けられている。
ールト・トレラントであるプロセッサを動作させること 前記にリストしたフォールト・トレラント機能は、1つ
のS/370オペレーティング・システムの制御の下で
同一のS/370命令を同時に実行する第1の対として
S/370プロセッサなどの通常非フォールト・トレラ
ントであるプロセッサを結合することによって好適な実
施例で達成される。また、一方または両方のプロセッサ
中のエラーを瞬間的に検出するために、一方のプロセッ
サ中のさまざまな信号の状態を他方のプロセッサ中のそ
れらと比較するための手段も設けられている。
さらに、第1の対と同時に同一のS/370命令を実行
し第2の対のS/370中のエラーを検出するための、
比較手段をもつ第2の対のS/370プロセッサが設け
られている。各S/370プロセッサは、第1及びそれ
の相手の第2のプロセッサと、S/88 I/O装置
と、S/88主記憶をもつS/88データ処理システム
などのフォールト・トレラント・システムの個別のS/
88プロセッサに結合されている。各S/88プロセッ
サは、それをI/O装置及び主記憶に結合するためのハ
ードウェアを接続されてなる。
し第2の対のS/370中のエラーを検出するための、
比較手段をもつ第2の対のS/370プロセッサが設け
られている。各S/370プロセッサは、第1及びそれ
の相手の第2のプロセッサと、S/88 I/O装置
と、S/88主記憶をもつS/88データ処理システム
などのフォールト・トレラント・システムの個別のS/
88プロセッサに結合されている。各S/88プロセッ
サは、それをI/O装置及び主記憶に結合するためのハ
ードウェアを接続されてなる。
個別のS/370及びS/88プロセッサはそれぞれ、
バス制御ユニットを含む手段によってそのプロセッサ・
バスを互いに接続されてなる。各バス制御ユニットは、
個別のS/88プロセッサをそれの関連ハードウェアか
ら非同期的に切り放し、(1)S/370プロセッサか
らのS/370コマンド及びデータをS/88プロセッ
サに転送し(2)そのS/370コマンド及びデータ
を、S/88プロセッサによって実行可能なコマンド及
び使用可能なデータに変換するためにS/88プロセッ
サをバス制御ユニットに結合するために、個々のS/8
8プロセッサ上で走るアプリケーション・プログラムと
対話する手段を含む。
バス制御ユニットを含む手段によってそのプロセッサ・
バスを互いに接続されてなる。各バス制御ユニットは、
個別のS/88プロセッサをそれの関連ハードウェアか
ら非同期的に切り放し、(1)S/370プロセッサか
らのS/370コマンド及びデータをS/88プロセッ
サに転送し(2)そのS/370コマンド及びデータ
を、S/88プロセッサによって実行可能なコマンド及
び使用可能なデータに変換するためにS/88プロセッ
サをバス制御ユニットに結合するために、個々のS/8
8プロセッサ上で走るアプリケーション・プログラムと
対話する手段を含む。
S/88データ処理システムはその後、S/88オペレ
ーティング・システムの制御の下でそのコマンド及びデ
ータを処理する。S/88データ処理システムはまた、
S/370プロセッサ対のどちらか1つ、または個々の
S/88プロセッサ結合対におけるエラー信号に応答
し、その結合対をサービスから除去して他方のS/37
0及びS/88対によってフォールト・トレラント動作
の継続を可能ならしめる。この構成により、S/370
プログラムは、(I/O動作のためのS/88システム
の援助により)、S/370及びS/88オペレーティ
ング・システムにあまり変更を加えることなくS/88
の有利な機能を以てフォールト・トレラント(FT)環
境でS/370プロセッサによって実行される。
ーティング・システムの制御の下でそのコマンド及びデ
ータを処理する。S/88データ処理システムはまた、
S/370プロセッサ対のどちらか1つ、または個々の
S/88プロセッサ結合対におけるエラー信号に応答
し、その結合対をサービスから除去して他方のS/37
0及びS/88対によってフォールト・トレラント動作
の継続を可能ならしめる。この構成により、S/370
プログラムは、(I/O動作のためのS/88システム
の援助により)、S/370及びS/88オペレーティ
ング・システムにあまり変更を加えることなくS/88
の有利な機能を以てフォールト・トレラント(FT)環
境でS/370プロセッサによって実行される。
さらに、S/88プロセッサの記憶管理は、S/88主
記憶中の専用領域を、S/88オペレーティング・シス
テムの知識なく重複化されたS/370プロセッサ対及
びそのオペレーティング・システムに割当てるように制
御される。その重複化されたS/370プロセッサ対の
プロセッサは、S/370命令及びデータをその専用記
憶領域からフェッチし記憶するために、記憶管理装置及
びS/88バス・インターフェースを介してS/88の
共通バス構造に個別に結合される。
記憶中の専用領域を、S/88オペレーティング・シス
テムの知識なく重複化されたS/370プロセッサ対及
びそのオペレーティング・システムに割当てるように制
御される。その重複化されたS/370プロセッサ対の
プロセッサは、S/370命令及びデータをその専用記
憶領域からフェッチし記憶するために、記憶管理装置及
びS/88バス・インターフェースを介してS/88の
共通バス構造に個別に結合される。
この好適な実施例は、S/370オペレーティング・シ
ステムまたはS/370アプリケーションを書き直すこ
となくS/370ハードウェア中でフォールト・トレラ
ンスを実現するための方法と手段を提供する。そして、
フォールト・トレランスをサポートするようにプロセッ
サをカスタム設計することなく、完全なS/370 C
PUハードウェア冗長性及び同期が与えられる。S/3
70オペレーティング・システム及びフォールト・トレ
ラント・オペレーティング・システム(どちらも仮想メ
モリ・システムである)は、どちらのオペレーティング
・システムをもあまり書き直す必要なく同時に走る。こ
の好適な実施例においては、対等プロセッサ対の間には
ハードウェア/マイクロコード・インターフェースが与
えられ、各プロセッサは異なるオペレーティング・シス
テムを実行する。一方のプロセッサは、IBMオペレー
ティング・システム(例えばVM、VSE、IX370
など)を実行する、マイクロコード制御されるIBM
S/370エンジンであり、好適な実施例の第2のプロ
セッサは、S/88 VOS(仮想オペレーティング・
システム)を実行する、ハードウェア・フォールト・ト
レラント環境を制御することのできるオペレーティング
・システム(例えばIBMシステム/88)を実行する
ハードウェア・フォールト・トレラント・エンジンであ
る。
ステムまたはS/370アプリケーションを書き直すこ
となくS/370ハードウェア中でフォールト・トレラ
ンスを実現するための方法と手段を提供する。そして、
フォールト・トレランスをサポートするようにプロセッ
サをカスタム設計することなく、完全なS/370 C
PUハードウェア冗長性及び同期が与えられる。S/3
70オペレーティング・システム及びフォールト・トレ
ラント・オペレーティング・システム(どちらも仮想メ
モリ・システムである)は、どちらのオペレーティング
・システムをもあまり書き直す必要なく同時に走る。こ
の好適な実施例においては、対等プロセッサ対の間には
ハードウェア/マイクロコード・インターフェースが与
えられ、各プロセッサは異なるオペレーティング・シス
テムを実行する。一方のプロセッサは、IBMオペレー
ティング・システム(例えばVM、VSE、IX370
など)を実行する、マイクロコード制御されるIBM
S/370エンジンであり、好適な実施例の第2のプロ
セッサは、S/88 VOS(仮想オペレーティング・
システム)を実行する、ハードウェア・フォールト・ト
レラント環境を制御することのできるオペレーティング
・システム(例えばIBMシステム/88)を実行する
ハードウェア・フォールト・トレラント・エンジンであ
る。
プロセッサ対の間のハードウェア/マイクロコード・イ
ンターフェースは、その2つのオペレーティング・シス
テムが、ユーザーによって単一のシステム環境として知
覚される環境に共存することを可能ならしめる。このハ
ードウェア/マイクロコード資源(メモリ、システム・
バス、ディスクI/O、テープ、通信I/O端末、電源
及び筺体)は、各オペレーティング・システムがそのシ
ステム機能の部分を処理する間に互いに独立に作用す
る。尚、メモリという用語と記憶という用語は、ここで
は同じように使用される。FTプロセッサとオペレーテ
ィング・システムは、エラ検出/分離及び回復と、動的
再構成と、I/O動作を管理する。非フォールト・トレ
ラント(NFT)プロセッサは、FTプロセッサを意識
することなく本来の命令を実行する。FTプロセッサ
は、NFTプロセッサには、多重I/Oチヤネルのよう
に見える。
ンターフェースは、その2つのオペレーティング・シス
テムが、ユーザーによって単一のシステム環境として知
覚される環境に共存することを可能ならしめる。このハ
ードウェア/マイクロコード資源(メモリ、システム・
バス、ディスクI/O、テープ、通信I/O端末、電源
及び筺体)は、各オペレーティング・システムがそのシ
ステム機能の部分を処理する間に互いに独立に作用す
る。尚、メモリという用語と記憶という用語は、ここで
は同じように使用される。FTプロセッサとオペレーテ
ィング・システムは、エラ検出/分離及び回復と、動的
再構成と、I/O動作を管理する。非フォールト・トレ
ラント(NFT)プロセッサは、FTプロセッサを意識
することなく本来の命令を実行する。FTプロセッサ
は、NFTプロセッサには、多重I/Oチヤネルのよう
に見える。
ハードウェア/マイクロコード・インターフェースは、
両方の仮想メモリ・プロセッサが共通のフォールト・ト
レラント・メモリを共有するのを可能ならしめる。各N
FTプロセッサには、FTプロセッサのメモリ割り振り
テーブルからの連続的な記録ブロックが割当てられる。
NFTプロセッサの動的アドレス変換機能は、FTプロ
セッサによって割り振られた記憶のブロックを制御す
る。NFTプロセッサは、オフセット・レジスタの使用
を通じて、そのメモリがアドレス・ゼロでスタートする
ことを認識する。そして、NFTプロセッサをその記憶
境界に維持するために限界チェックが実行される。FT
プロセッサは、NFT記憶及びNFTアドレス空間の内
及び外のデータのDMA I/Oブロックにアクセスす
ることができるが、NFTプロセッサは、その割当てら
れたアドレス空間の外の記憶にアクセスすることは禁止
されている。NFT記憶サイズは、構成テーブルを変更
することによって変えることができる。
両方の仮想メモリ・プロセッサが共通のフォールト・ト
レラント・メモリを共有するのを可能ならしめる。各N
FTプロセッサには、FTプロセッサのメモリ割り振り
テーブルからの連続的な記録ブロックが割当てられる。
NFTプロセッサの動的アドレス変換機能は、FTプロ
セッサによって割り振られた記憶のブロックを制御す
る。NFTプロセッサは、オフセット・レジスタの使用
を通じて、そのメモリがアドレス・ゼロでスタートする
ことを認識する。そして、NFTプロセッサをその記憶
境界に維持するために限界チェックが実行される。FT
プロセッサは、NFT記憶及びNFTアドレス空間の内
及び外のデータのDMA I/Oブロックにアクセスす
ることができるが、NFTプロセッサは、その割当てら
れたアドレス空間の外の記憶にアクセスすることは禁止
されている。NFT記憶サイズは、構成テーブルを変更
することによって変えることができる。
E3.別のプロセッサからなるプロセッサへのコマンド
及びデータを禁止するために、そのプロセッサを関連ハ
ードウェアから切り放すこと 既存のプロセッサ及びオペレーティング・システムに新
しい装置を追加するには、一般的に、バスまたはチヤネ
ルを介してハードウェアを取り付け、オペレーティング
・システムのために新しいテバイス・ドライバ・ソフト
ウェアを書くことが必要である。本発明の改善された
「切り放し」機能は、一方のプロセッサをバスまたはチ
ャネルに接続することなく、またバスの占有権を巡って
調停することなく、2つの異なるプロセッサが互いに通
信することが可能となる。それらのプロセッサは、オペ
レーティング・システムをあまり変更することなく、デ
バイス・ドライバを追加する必要なく、通信する。本発
明の機能は、2つの相違するプロセッサが組み合わされ
た時、たとえめいめいのプロセッサが自分本来のオペレ
ーティング・システムを実行していても、ユーザーには
単一のシステムのイメージを与える。
及びデータを禁止するために、そのプロセッサを関連ハ
ードウェアから切り放すこと 既存のプロセッサ及びオペレーティング・システムに新
しい装置を追加するには、一般的に、バスまたはチヤネ
ルを介してハードウェアを取り付け、オペレーティング
・システムのために新しいテバイス・ドライバ・ソフト
ウェアを書くことが必要である。本発明の改善された
「切り放し」機能は、一方のプロセッサをバスまたはチ
ャネルに接続することなく、またバスの占有権を巡って
調停することなく、2つの異なるプロセッサが互いに通
信することが可能となる。それらのプロセッサは、オペ
レーティング・システムをあまり変更することなく、デ
バイス・ドライバを追加する必要なく、通信する。本発
明の機能は、2つの相違するプロセッサが組み合わされ
た時、たとえめいめいのプロセッサが自分本来のオペレ
ーティング・システムを実行していても、ユーザーには
単一のシステムのイメージを与える。
この機能は、より最近になって開発されたオペレーティ
ング・システムによって提示される特殊な機能を、成熟
したオペレーティング・システムのユーザーの見解及び
信頼性と結合する方法及び手段を提供する。この機能
は、2つのシステム(ハードウェア及びソフトウェア)
を結合して新しい第3のシステムを形成する。この分野
の当業者には、この好適な実施例がS/88システムに
結合されたS/370システムを示しているけれども、
任意の2つの異なるシステムを結合することができるこ
とを理解するであろう。この概念の設計基準は、信頼性
を維持するために成熟したオペレーティング・システム
にはほとんどあるいは全く変更を加えないこと、及びコ
ードの開発期間のためより最近になって開発されたオペ
レーティング・システムに対するインパクトが最初であ
ることである。
ング・システムによって提示される特殊な機能を、成熟
したオペレーティング・システムのユーザーの見解及び
信頼性と結合する方法及び手段を提供する。この機能
は、2つのシステム(ハードウェア及びソフトウェア)
を結合して新しい第3のシステムを形成する。この分野
の当業者には、この好適な実施例がS/88システムに
結合されたS/370システムを示しているけれども、
任意の2つの異なるシステムを結合することができるこ
とを理解するであろう。この概念の設計基準は、信頼性
を維持するために成熟したオペレーティング・システム
にはほとんどあるいは全く変更を加えないこと、及びコ
ードの開発期間のためより最近になって開発されたオペ
レーティング・システムに対するインパクトが最初であ
ることである。
この機能は、2つの相違するオペレーティング・システ
ムをそれら固有の特徴を維持しつつ両方の特徴をもつ第
3のシステムに結合する方法に関与する。この発明の好
適な形式は、主に直接メモリ・アクセス・コントローラ
(DMAC)として機能するシステムの間の結合論理を
必要とする。この機能の主要な目的は、フォールト・ト
レラント・プロセッサ(例えば好適な実施例ではS/8
8)中で走りフォールト・トレラント・オペレーティン
グ・システム上にあるアプリケーション・プログラム
に、異種プロセッサ(例えば好適な実施例ではS/37
0)及びそのオペレーティング・システムからデータ及
びコマンドを獲得する方法を与えることにある。侵入
(すなわち、監視プログラム対ユーザー状態、メモリ・
マップ、チェッキングなど)を防止するために、どのプ
ロセッサにもハードウェアとソウトフェアの両方の防止
機構が存在する。典型的には、オペレーティング・シス
テムは、割り込み、DMAチャネル、I/O装置及びコ
ントローラなどのすべてのシステム資源を制御する傾向
がある。それゆえ、異なる2つのアーキテクチャを結合
し、この機能を徹底的に設計してしまうことなくこれら
のマシンの間でコマンド及びデータを転送することを、
多くの人々は、膨大な作業であり、現実的でないと考え
ている。
ムをそれら固有の特徴を維持しつつ両方の特徴をもつ第
3のシステムに結合する方法に関与する。この発明の好
適な形式は、主に直接メモリ・アクセス・コントローラ
(DMAC)として機能するシステムの間の結合論理を
必要とする。この機能の主要な目的は、フォールト・ト
レラント・プロセッサ(例えば好適な実施例ではS/8
8)中で走りフォールト・トレラント・オペレーティン
グ・システム上にあるアプリケーション・プログラム
に、異種プロセッサ(例えば好適な実施例ではS/37
0)及びそのオペレーティング・システムからデータ及
びコマンドを獲得する方法を与えることにある。侵入
(すなわち、監視プログラム対ユーザー状態、メモリ・
マップ、チェッキングなど)を防止するために、どのプ
ロセッサにもハードウェアとソウトフェアの両方の防止
機構が存在する。典型的には、オペレーティング・シス
テムは、割り込み、DMAチャネル、I/O装置及びコ
ントローラなどのすべてのシステム資源を制御する傾向
がある。それゆえ、異なる2つのアーキテクチャを結合
し、この機能を徹底的に設計してしまうことなくこれら
のマシンの間でコマンド及びデータを転送することを、
多くの人々は、膨大な作業であり、現実的でないと考え
ている。
第2図は、この好適な実施例の環境でS/88プロセッ
サに結合されたS/370プロセッサを図式的に示して
いる。第1図に示すS/370プロセッサと対照的に、
メモリはS/88バス・インターフェース論理によって
置き換えられ、S/370チャネル・プロセッサは、バ
ス・アダプタ及びバス制御ユニットによって置き換えら
れている。注目すべきであるのは、2重の破線で示すS
/370バス制御ユニットとS/88プロセッサの間の
相互接続である。
サに結合されたS/370プロセッサを図式的に示して
いる。第1図に示すS/370プロセッサと対照的に、
メモリはS/88バス・インターフェース論理によって
置き換えられ、S/370チャネル・プロセッサは、バ
ス・アダプタ及びバス制御ユニットによって置き換えら
れている。注目すべきであるのは、2重の破線で示すS
/370バス制御ユニットとS/88プロセッサの間の
相互接続である。
この特徴は、プロセッサ結合論理を、大抵の装置が接続
されるシステム・バスまたはチャネルではなく、S/8
8フォールト・トレラント・プロセッサの仮想アドレス
・バス、データ・バス、制御バス及び割り込みバス構造
に接続することにある。有効アドレスがフォールト・ト
レラント・プロセッサの仮想アドレス・バス上にあるこ
とを示すストローブ線は、アドレス信号が活動化された
後の数ナノ秒滑動化される。バス・アダプタ及びバス制
御ユニットをもつ結論論理は、ストローブ信号があらわ
れる前にS/88アプリケーション・プログラムによっ
て、予め選択されたアドレス範囲が提供されているかど
うかを決定する。もしこのアドレス範囲が検出されたな
ら、アドレス・ストローブ信号は、フォールト・トレラ
ント・プロセッサ・ハードウェアへ行くことをブロック
される。この信号がブロックされることは、フォールト
・トレラント・ハードウェア及びオペレーティング・シ
ステムが、マシン・サイクルが生じたことを知るのを防
止する。このハードウェア中のフォールト・トレラント
・チェック論理は、このサイクルの間に分離され、この
期間に起こったいかなる活動をも完全に見逃すことにな
る。そして、そのプロセッサ・バス上のすべてのキャッ
シュ、仮想アドレス・マッピング論理及び浮動小数点プ
ロセッサは、マシン・サイクルが発生したことを認識し
ないことになる。すなわち、すべてのS/88CPU機
能は「凍結」され、S/88プロセッサによるアドレス
・ストローブ信号の確認を待つ。
されるシステム・バスまたはチャネルではなく、S/8
8フォールト・トレラント・プロセッサの仮想アドレス
・バス、データ・バス、制御バス及び割り込みバス構造
に接続することにある。有効アドレスがフォールト・ト
レラント・プロセッサの仮想アドレス・バス上にあるこ
とを示すストローブ線は、アドレス信号が活動化された
後の数ナノ秒滑動化される。バス・アダプタ及びバス制
御ユニットをもつ結論論理は、ストローブ信号があらわ
れる前にS/88アプリケーション・プログラムによっ
て、予め選択されたアドレス範囲が提供されているかど
うかを決定する。もしこのアドレス範囲が検出されたな
ら、アドレス・ストローブ信号は、フォールト・トレラ
ント・プロセッサ・ハードウェアへ行くことをブロック
される。この信号がブロックされることは、フォールト
・トレラント・ハードウェア及びオペレーティング・シ
ステムが、マシン・サイクルが生じたことを知るのを防
止する。このハードウェア中のフォールト・トレラント
・チェック論理は、このサイクルの間に分離され、この
期間に起こったいかなる活動をも完全に見逃すことにな
る。そして、そのプロセッサ・バス上のすべてのキャッ
シュ、仮想アドレス・マッピング論理及び浮動小数点プ
ロセッサは、マシン・サイクルが発生したことを認識し
ないことになる。すなわち、すべてのS/88CPU機
能は「凍結」され、S/88プロセッサによるアドレス
・ストローブ信号の確認を待つ。
フォールト・トレラント・プロセッサ論理からブロック
されたアドレス・ストローブ信号は、結合論理に送られ
る。これによりS/88フォールト・トレラント・プロ
セッサに、フォールト・トレラント特殊アプリケーショ
ン・プログラムとそれに接続されたS/370プロセッ
サの間のインターフェースである結合論理に対する完全
な制御が与えられる。アドレス・ストローブ信号と仮想
アドレスは、結合論理の要素である論理記憶、レジスタ
及びDMACを選択するために使用される。第5図は、
適切なレベルにあり適切なアドレスに対応していると決
定される、S/370バス制御論理からの割り込みの検
出の結果を図式的に示すものである。それゆえ、その最
も広い側面においては、切り放し機構は、その関連ハー
ドウェアからプロセッサを切断し、データをそのエンテ
ィティとともに有効に転送するためにプロセッサを異種
エンティティに接続する。
されたアドレス・ストローブ信号は、結合論理に送られ
る。これによりS/88フォールト・トレラント・プロ
セッサに、フォールト・トレラント特殊アプリケーショ
ン・プログラムとそれに接続されたS/370プロセッ
サの間のインターフェースである結合論理に対する完全
な制御が与えられる。アドレス・ストローブ信号と仮想
アドレスは、結合論理の要素である論理記憶、レジスタ
及びDMACを選択するために使用される。第5図は、
適切なレベルにあり適切なアドレスに対応していると決
定される、S/370バス制御論理からの割り込みの検
出の結果を図式的に示すものである。それゆえ、その最
も広い側面においては、切り放し機構は、その関連ハー
ドウェアからプロセッサを切断し、データをそのエンテ
ィティとともに有効に転送するためにプロセッサを異種
エンティティに接続する。
結合論理は、入来S/370コマンドをキューし、S/
370との間で行来するデータを記憶するために使用さ
れる局所記憶をもつ。データ及びコマンドは、結合論理
中の多重DMAチャネルによって局所記憶へと移動され
る。フォールト・トレラント・アプリケーション・プロ
グラムは、DMACを初期化してDMACからの割り込
みにサービスし、DMACは、コマンドが到来した時ま
たはデータのブロックが送信あるいは受信された時、ア
プリケーション・プログラムに通知する働きを行う。動
作を完了するためには、結合論理は、フォールト・トレ
ラント・プロセッサの両側が同期状態にあることを保証
するために、プロセッサのクロツク端の前に、データ・
ストローブ承認線に信号を返さなくてはならない。
370との間で行来するデータを記憶するために使用さ
れる局所記憶をもつ。データ及びコマンドは、結合論理
中の多重DMAチャネルによって局所記憶へと移動され
る。フォールト・トレラント・アプリケーション・プロ
グラムは、DMACを初期化してDMACからの割り込
みにサービスし、DMACは、コマンドが到来した時ま
たはデータのブロックが送信あるいは受信された時、ア
プリケーション・プログラムに通知する働きを行う。動
作を完了するためには、結合論理は、フォールト・トレ
ラント・プロセッサの両側が同期状態にあることを保証
するために、プロセッサのクロツク端の前に、データ・
ストローブ承認線に信号を返さなくてはならない。
アプリケーション・プログラムは、スタートI/O、テ
ストI/OなどのS/370タイプのコマンドを受け取
る。アプリケーション・プログラムは次に、各S/37
0 I/Oコマンドをフォールト・トレラントI/Oコ
マンドに変換して通常のフォールト・トレラントI/O
コマンド・シーケンスを初期化する。
ストI/OなどのS/370タイプのコマンドを受け取
る。アプリケーション・プログラムは次に、各S/37
0 I/Oコマンドをフォールト・トレラントI/Oコ
マンドに変換して通常のフォールト・トレラントI/O
コマンド・シーケンスを初期化する。
これはオペレーティング・システムの周辺でアプリケー
ション・プログラムに対してデータのブロックを入手す
る新規な方法であると考える。それはまた、通常はオペ
レーティング・システムによって実行される機能である
割り込みをアプリケーションが処理することを可能なら
しめる方法でもある。このアプリケーション・プログラ
ムは、フォールト・トレラント・プロセッサをその通常
プロセッサ機能からI/Oコントローラ機能に随意に切
り換えることができ、それは1サイクル・ベースで単に
それが選択する仮想アドレスによって行なわれる。
ション・プログラムに対してデータのブロックを入手す
る新規な方法であると考える。それはまた、通常はオペ
レーティング・システムによって実行される機能である
割り込みをアプリケーションが処理することを可能なら
しめる方法でもある。このアプリケーション・プログラ
ムは、フォールト・トレラント・プロセッサをその通常
プロセッサ機能からI/Oコントローラ機能に随意に切
り換えることができ、それは1サイクル・ベースで単に
それが選択する仮想アドレスによって行なわれる。
このように、異種の命令及びメモリ・アドレシング・ア
ーキテクチャをもつ2つのデータ処理システムが、他方
のシステムが一方のシステムの存在に気付くことなく一
方のシステムが他方のシステムの仮想メモリ空間の任意
の部位に効率的にアクセスすることを可能ならしめるよ
うに緊密に結合される。その他方のシステム中の特殊な
コードは、バス上に特殊アドレスを配置することによっ
てハードウェアを介して一方のシテムと通信する。ハー
ドウェアは、そのアドレスが特殊なものかどうかを判断
する。そしてもしそうなら、ストローブが別のシステム
の回路によって感知されるのをブロックされ、別のシス
テムのCPUが特殊なハードウェアと、両方のシステム
にアクセス可能なメモリ空間を制御することができるよ
うに方向転換される。
ーキテクチャをもつ2つのデータ処理システムが、他方
のシステムが一方のシステムの存在に気付くことなく一
方のシステムが他方のシステムの仮想メモリ空間の任意
の部位に効率的にアクセスすることを可能ならしめるよ
うに緊密に結合される。その他方のシステム中の特殊な
コードは、バス上に特殊アドレスを配置することによっ
てハードウェアを介して一方のシテムと通信する。ハー
ドウェアは、そのアドレスが特殊なものかどうかを判断
する。そしてもしそうなら、ストローブが別のシステム
の回路によって感知されるのをブロックされ、別のシス
テムのCPUが特殊なハードウェアと、両方のシステム
にアクセス可能なメモリ空間を制御することができるよ
うに方向転換される。
その他方のシステムは、必要時、初期化及び構成タスク
などのために、一方のシステムを完全に制御することが
できる。その一方のシステムは、いかようにしてもその
他方のシステムを制御することができないが、その他方
のシステムに対して、次のようにしてサービスの要求を
出すことができる。
などのために、一方のシステムを完全に制御することが
できる。その一方のシステムは、いかようにしてもその
他方のシステムを制御することができないが、その他方
のシステムに対して、次のようにしてサービスの要求を
出すことができる。
すなわち、その一方のシステムは、I/Oコマンドまた
はデータを共通にアクセス可能なメモリ空間中の1つの
システム・フォーマットでステージし、特殊なハードウ
ェアを使用して、その他方のシステムに対して、特殊な
アプリケーション・プログラムを呼び出して活動化させ
る特殊なレベルで割り込みを与える。
はデータを共通にアクセス可能なメモリ空間中の1つの
システム・フォーマットでステージし、特殊なハードウ
ェアを使用して、その他方のシステムに対して、特殊な
アプリケーション・プログラムを呼び出して活動化させ
る特殊なレベルで割り込みを与える。
その他方のシステムは、ステージされた情報を含むメモ
リ空間へと指向され、そのフォーマットを別のシステム
の固有の形式に変換するようにそれを処理する。次に、
アプリケーシヨン・プログラムは、その変換されたコマ
ンド及びデータ上で本来のI/O動作を実行するように
その他方のシステムの本来のオペレーティング・システ
ムを指令する。このように、上述のすべてのことは両方
のシステムの本来のオペレーティング・システムに対し
て完全に透過的であって、両方のシステムの本来のオペ
レーティング・システムにあまり変更をくわえることな
く起こるのである。
リ空間へと指向され、そのフォーマットを別のシステム
の固有の形式に変換するようにそれを処理する。次に、
アプリケーシヨン・プログラムは、その変換されたコマ
ンド及びデータ上で本来のI/O動作を実行するように
その他方のシステムの本来のオペレーティング・システ
ムを指令する。このように、上述のすべてのことは両方
のシステムの本来のオペレーティング・システムに対し
て完全に透過的であって、両方のシステムの本来のオペ
レーティング・システムにあまり変更をくわえることな
く起こるのである。
E4.オペレーティング・システムに対して透過的なシ
ステムに対して割り込みを与えること 現在の大抵のプログラムは、2つ(またはそれ以上)の
状態、すなわち、監視状態またはユーザー状態のうちの
1つの状態で実行する。アプリケーション・プログラム
はユーザー状態で実行し、割り込みなどの機能は監視状
態で走る。
ステムに対して割り込みを与えること 現在の大抵のプログラムは、2つ(またはそれ以上)の
状態、すなわち、監視状態またはユーザー状態のうちの
1つの状態で実行する。アプリケーション・プログラム
はユーザー状態で実行し、割り込みなどの機能は監視状
態で走る。
アプリケーションはI/Oポートに接続し、そのポート
をオープンし、読取、書込または制御の形式のI/O要
求を発行する。その時点で、プロセッサは、タスク切り
換えを行うことになる。オペレーティング・システム
が、I/O完了を通知する割り込みを受け取る時、オペ
レーティング・システムはこの情報を読取キューに入れ
それをシステム資源の優先順位によってソートする。
をオープンし、読取、書込または制御の形式のI/O要
求を発行する。その時点で、プロセッサは、タスク切り
換えを行うことになる。オペレーティング・システム
が、I/O完了を通知する割り込みを受け取る時、オペ
レーティング・システムはこの情報を読取キューに入れ
それをシステム資源の優先順位によってソートする。
オペレーティング・システムはすべての割り込みベクタ
を自己使用のため留保し、よっていかなる割り込みベク
タも、他のマシンからのI/O要求を通知する外部割り
込みなどの新しい機能には可用でない。
を自己使用のため留保し、よっていかなる割り込みベク
タも、他のマシンからのI/O要求を通知する外部割り
込みなどの新しい機能には可用でない。
好適な実施例のS/88においては、可用な割り込みベ
クタの大部分は実際には未使用であり、これらは、オペ
レーティング・システムにおいて慣用である「非初期
化」または「疑似」割り込みのための共通エラー・ハン
ドラに対するベクタリングをもたらすためのセットアッ
プである。本発明の好適な実施例は、これらの、さもな
くば未使用であるところのベクタのサブセットを、S/
370結合論理割り込みのための特殊な割り込みハンド
ラに対する適切なベクタと交換する。この変更されたS
/88オペレーティング・システムは、次に、適所に新
規に構成されたベクタによる使用のために再構成(rebou
nd)される。
クタの大部分は実際には未使用であり、これらは、オペ
レーティング・システムにおいて慣用である「非初期
化」または「疑似」割り込みのための共通エラー・ハン
ドラに対するベクタリングをもたらすためのセットアッ
プである。本発明の好適な実施例は、これらの、さもな
くば未使用であるところのベクタのサブセットを、S/
370結合論理割り込みのための特殊な割り込みハンド
ラに対する適切なベクタと交換する。この変更されたS
/88オペレーティング・システムは、次に、適所に新
規に構成されたベクタによる使用のために再構成(rebou
nd)される。
好適な実施例のシステム/88は、8つの割り込みレベ
ルをもち、レベル4を除くすべてのレベルで自動ベクタ
(autovector)を使用する。本発明のこの実施例は、これ
らの自動ベクタ・レベルのうちの1つ、すなわち最高レ
ベルの次のレベルであるレベル6を使用する。このレベ
ル6は、通常、システム/88によってA/C電力擾乱
割り込みのために使用される。
ルをもち、レベル4を除くすべてのレベルで自動ベクタ
(autovector)を使用する。本発明のこの実施例は、これ
らの自動ベクタ・レベルのうちの1つ、すなわち最高レ
ベルの次のレベルであるレベル6を使用する。このレベ
ル6は、通常、システム/88によってA/C電力擾乱
割り込みのために使用される。
システム/370をシステム/88に結合する論理は、
その割り込み要求をA/C電力擾乱の割り込みとORす
ることによってレベル6に対する割り込みを提供する。
システム初期化の間に、論理割り込みを接合するための
特殊な割り込みハンドラに対する適切なベクタ番号が、
S/88オペレーティング・システムに対して透過的で
あるアプリケーション・プログラムによって、結合論理
中に(例えばDMACレジスタ中に)ロードされる。
その割り込み要求をA/C電力擾乱の割り込みとORす
ることによってレベル6に対する割り込みを提供する。
システム初期化の間に、論理割り込みを接合するための
特殊な割り込みハンドラに対する適切なベクタ番号が、
S/88オペレーティング・システムに対して透過的で
あるアプリケーション・プログラムによって、結合論理
中に(例えばDMACレジスタ中に)ロードされる。
なんらかの割り込みがシステム/88によって受け取ら
れる時、その割り込みは、その割り込みを処理し最初の
割り込みハンドラ命令をフェッチするためのハードウェ
ア及びS/88プロセッサの内部命令のみを使用して割
り込み承認(IACK)サイクルを初期化する。そのと
き、プログラム命令の実行は必要とされない。しかし、
ベクタ番号もまた取得され透過的な様式で与えられなく
てはならない。このことは、好適な実施例では、レベル
6の割り込みが結合論理によって提供されるときS/8
8を(A/C電力擾乱のための割り込み提供機構を含
む)その関連ハードウェアから切り放し、S/370−
S/88結合論理にS/88プロセッサを結合すること
によって達成される。
れる時、その割り込みは、その割り込みを処理し最初の
割り込みハンドラ命令をフェッチするためのハードウェ
ア及びS/88プロセッサの内部命令のみを使用して割
り込み承認(IACK)サイクルを初期化する。そのと
き、プログラム命令の実行は必要とされない。しかし、
ベクタ番号もまた取得され透過的な様式で与えられなく
てはならない。このことは、好適な実施例では、レベル
6の割り込みが結合論理によって提供されるときS/8
8を(A/C電力擾乱のための割り込み提供機構を含
む)その関連ハードウェアから切り放し、S/370−
S/88結合論理にS/88プロセッサを結合すること
によって達成される。
より詳しくは、S/88プロセッサはその出力に機能コ
ードと割り込みレベルを設定し、IACKサイクルの開
始時点でアドレス・ストローブ(AS)及びデータ・ス
トローブ(DS)をも立ち上げ(assert)る。アドレス・
ストローブは、もし結合論理割り込み提供信号が活動状
態にあるなら、AC電力擾乱割り込み機構を含むS/8
8ハードウェアからブロックされ、適切なベクタ番号を
読みだすためにASが結合論理に送られ、その適切なベ
クタ番号は、データ・ストローブによってS/88プロ
セッサ中にゲートされる。データ・ストローブはS/8
8ハードウェアからブロックされるので、マシン・サイ
クル(IACK)は、結合論理割り込みベクタ番号を取
得することに関連してS/88オペレーティング・シス
テムに対して透過的である。
ードと割り込みレベルを設定し、IACKサイクルの開
始時点でアドレス・ストローブ(AS)及びデータ・ス
トローブ(DS)をも立ち上げ(assert)る。アドレス・
ストローブは、もし結合論理割り込み提供信号が活動状
態にあるなら、AC電力擾乱割り込み機構を含むS/8
8ハードウェアからブロックされ、適切なベクタ番号を
読みだすためにASが結合論理に送られ、その適切なベ
クタ番号は、データ・ストローブによってS/88プロ
セッサ中にゲートされる。データ・ストローブはS/8
8ハードウェアからブロックされるので、マシン・サイ
クル(IACK)は、結合論理割り込みベクタ番号を取
得することに関連してS/88オペレーティング・シス
テムに対して透過的である。
もし結合論理割り込み信号がIACKサイクルの開始時
点で活動状態でなかったなら、通常のS/88レベル6
割り込みが行なわれることになる。
点で活動状態でなかったなら、通常のS/88レベル6
割り込みが行なわれることになる。
E5.異なる仮想記憶オペレーティング・システムを実
行する2つまたはそれ以上のプロセッサの間で実記憶を
共用すること この機能は、フォールト・トレラント・システムを、フ
ォールト・トレラント記憶をサポートするためのコー
ド、すなわちホットプラギングを介しての記憶ボートの
除去及び挿入と、こわれたデータの瞬間的検出と、もし
適当ならその回復をサポートするためのコードをもたな
い異種プロセッサ及びオペレーティング・システムに結
合する。
行する2つまたはそれ以上のプロセッサの間で実記憶を
共用すること この機能は、フォールト・トレラント・システムを、フ
ォールト・トレラント記憶をサポートするためのコー
ド、すなわちホットプラギングを介しての記憶ボートの
除去及び挿入と、こわれたデータの瞬間的検出と、もし
適当ならその回復をサポートするためのコードをもたな
い異種プロセッサ及びオペレーティング・システムに結
合する。
この機能は、めいめいが異なる仮想オペレーティング・
システムを実行する2つまたはそれ以上のプロセッサが
両方のオペレーティング・システムに対して透過的であ
るような様式で単一の実記憶を共有し、これら複数のプ
ロセッサの間のデータ転送を行うことができるように1
つのプロセッサが、別のプロセッサの記憶にアクセスす
ることができるような手段と方法を提供する。
システムを実行する2つまたはそれ以上のプロセッサが
両方のオペレーティング・システムに対して透過的であ
るような様式で単一の実記憶を共有し、これら複数のプ
ロセッサの間のデータ転送を行うことができるように1
つのプロセッサが、別のプロセッサの記憶にアクセスす
ることができるような手段と方法を提供する。
この機能は、ユーザーには2つに見えるオペレーティン
グ・システム環境を結合して、ユーザーに単一のオペレ
ーティング・システムのように見えるようにする。各オ
ペレーティング・システムは、通常自己の実記憶空間全
体を制御する仮想オペレーティング・システムである。
この発明は、共通システム・バスを介して両方のプロセ
ッサによって共有される実記憶空間を1つだけもつ。そ
して、どちらのオペレーティング・システムも実質的に
書き直されることはなく、どちらのオペレーティング・
システムも他方のオペレーティング・システムが存在
し、あるいは実記憶が共有されていることを知らない。
この機能は、第1のオペレーティング・システムの記憶
割り振りキューを検索するために第1のプロセッサ上で
走るアプリケーション・プログラムを使用する。そし
て、第2のオペレーティング・システムの必要条件を満
足するに十分な連続的な記憶空間が見出されると、この
記憶空間は、ポインタを操作することによって、第1の
オペレーティング・システムの記憶割り振りテーブルか
ら除去される。第1のオペレーティング・システムは、
もしアプリケーション・プログラムが第1のオペレーテ
ィング・システムに記憶を返さないなら、この除去され
た記憶の使用権(例えば、再割り振りする能力)をも
つ。
グ・システム環境を結合して、ユーザーに単一のオペレ
ーティング・システムのように見えるようにする。各オ
ペレーティング・システムは、通常自己の実記憶空間全
体を制御する仮想オペレーティング・システムである。
この発明は、共通システム・バスを介して両方のプロセ
ッサによって共有される実記憶空間を1つだけもつ。そ
して、どちらのオペレーティング・システムも実質的に
書き直されることはなく、どちらのオペレーティング・
システムも他方のオペレーティング・システムが存在
し、あるいは実記憶が共有されていることを知らない。
この機能は、第1のオペレーティング・システムの記憶
割り振りキューを検索するために第1のプロセッサ上で
走るアプリケーション・プログラムを使用する。そし
て、第2のオペレーティング・システムの必要条件を満
足するに十分な連続的な記憶空間が見出されると、この
記憶空間は、ポインタを操作することによって、第1の
オペレーティング・システムの記憶割り振りテーブルか
ら除去される。第1のオペレーティング・システムは、
もしアプリケーション・プログラムが第1のオペレーテ
ィング・システムに記憶を返さないなら、この除去され
た記憶の使用権(例えば、再割り振りする能力)をも
つ。
第1のオペレーティング・システムは、I/Oの立場か
らは第2のオペレーティング・システムに対して従属し
ており、第2のオペレーティング・システムに対してI
/Oコントローラとして応答する。
らは第2のオペレーティング・システムに対して従属し
ており、第2のオペレーティング・システムに対してI
/Oコントローラとして応答する。
第1のオペレーティング・システムは、全てのシステム
資源の支配者であり、好適な実施例ではハードウェア・
フォールト・トレラント・オペレーティング・システム
である。第1のオペレーティング・システムは、初期的
には(第2のオペレーティング・システムのために「盗
まれた」記憶を例外として)記憶を割り振り且つ割り振
り解除し、全ての関連ハードウェア障害及び回復を処理
する。その目的は、オペレーティング・システムに大幅
な変更を加えることなく2つのオペレーティング・シス
テムを結合することである。各オペレーティング・シス
テムは、自分がすべてのシステム記憶を制御していると
信じなくてはならない。なぜなら、それが両方のプロセ
ッサによって使用されつつある単一の資源だからであ
る。
資源の支配者であり、好適な実施例ではハードウェア・
フォールト・トレラント・オペレーティング・システム
である。第1のオペレーティング・システムは、初期的
には(第2のオペレーティング・システムのために「盗
まれた」記憶を例外として)記憶を割り振り且つ割り振
り解除し、全ての関連ハードウェア障害及び回復を処理
する。その目的は、オペレーティング・システムに大幅
な変更を加えることなく2つのオペレーティング・シス
テムを結合することである。各オペレーティング・シス
テムは、自分がすべてのシステム記憶を制御していると
信じなくてはならない。なぜなら、それが両方のプロセ
ッサによって使用されつつある単一の資源だからであ
る。
システムに電源が投入されたとき、第1のオペレーティ
ング・システムとそのプロセッサは、システムの制御を
引き受け、ハードウェアが第2のプロセッサをリセット
状態に保持する。第1のオペレーティング・システムは
システムをブートし、どれだけの量の実記憶があるかを
決定する。オペレーティング・システムは結局はすべて
の記憶を4KB(4096バイト)ブロックに構成し、
可用な各ブロックを記憶割り振りキュー中にリストす
る。キュー中にリストされた各4KBブロックは、可用
な次の4KBブロックを指し示す。第1のシステムによ
って使用される記憶は、除去されるか、キューの先頭か
ら4KBブロックとして追加されるかのどちらかであ
る。そしてブロック・ポインタは適宜調節される。ユー
ザーがオペレーティング・システムからメモリ空間を要
求する時、その要求は、キューから実メモリの必要な数
の4KBブロックを割当てることによって満足される。
その記憶が最早必要でなくなったとき、ブロックはキュ
ーに戻される。
ング・システムとそのプロセッサは、システムの制御を
引き受け、ハードウェアが第2のプロセッサをリセット
状態に保持する。第1のオペレーティング・システムは
システムをブートし、どれだけの量の実記憶があるかを
決定する。オペレーティング・システムは結局はすべて
の記憶を4KB(4096バイト)ブロックに構成し、
可用な各ブロックを記憶割り振りキュー中にリストす
る。キュー中にリストされた各4KBブロックは、可用
な次の4KBブロックを指し示す。第1のシステムによ
って使用される記憶は、除去されるか、キューの先頭か
ら4KBブロックとして追加されるかのどちらかであ
る。そしてブロック・ポインタは適宜調節される。ユー
ザーがオペレーティング・システムからメモリ空間を要
求する時、その要求は、キューから実メモリの必要な数
の4KBブロックを割当てることによって満足される。
その記憶が最早必要でなくなったとき、ブロックはキュ
ーに戻される。
次に、第1のオペレーティング・システムが、システム
を構成する、モジュール・スタートアップと呼ばれる一
連の機能を実行する。このモジユール・スタートアップ
によって実行されるアプリケーション・プログラムは、
第1のオペレーティング・システムから記憶を捕捉しそ
れを第2のオペレーティング・システムに割り振るため
に使用される新しいアプリケーシヨンである。このプロ
グラムは、記憶割り振りリスト全体を走査し記憶の4K
Bブロックの連続的なストリングを見出す。このアプリ
ケーション・プログラムは次に、そのキューの一部のポ
インタをブロックのその連続的なストリングに対応する
ように変更し、以て第1のオペレーティング・システム
のメモリ割り振りリストから記憶の連続的なブロックを
除去する。好適な実施例においては、除去された第1の
4KBブロックに先行する4KBブロックのポインタ
が、その除去されたブロックの連続的なストリングの直
ぐ次に続く4KBブロックを指し示すように変更され
る。
を構成する、モジュール・スタートアップと呼ばれる一
連の機能を実行する。このモジユール・スタートアップ
によって実行されるアプリケーション・プログラムは、
第1のオペレーティング・システムから記憶を捕捉しそ
れを第2のオペレーティング・システムに割り振るため
に使用される新しいアプリケーシヨンである。このプロ
グラムは、記憶割り振りリスト全体を走査し記憶の4K
Bブロックの連続的なストリングを見出す。このアプリ
ケーション・プログラムは次に、そのキューの一部のポ
インタをブロックのその連続的なストリングに対応する
ように変更し、以て第1のオペレーティング・システム
のメモリ割り振りリストから記憶の連続的なブロックを
除去する。好適な実施例においては、除去された第1の
4KBブロックに先行する4KBブロックのポインタ
が、その除去されたブロックの連続的なストリングの直
ぐ次に続く4KBブロックを指し示すように変更され
る。
この時点で第1のオペレーティング・システムは、もし
システムが再ブートされずアプリケーション・プログラ
ムが記憶ポインタを返しもしないならこの実メモリ空間
のことを知らずそれの制御も有さない。それはあたかも
第1のオペレーティング・システムが、それ自体上で走
るプロセスに割り振られ、再割り振り可能でない実記憶
のセグメントを考慮しているかのようである、というの
は、ブロックはテーブルから除去され、ユーザーに単に
割当てられているのではないからである。
システムが再ブートされずアプリケーション・プログラ
ムが記憶ポインタを返しもしないならこの実メモリ空間
のことを知らずそれの制御も有さない。それはあたかも
第1のオペレーティング・システムが、それ自体上で走
るプロセスに割り振られ、再割り振り可能でない実記憶
のセグメントを考慮しているかのようである、というの
は、ブロックはテーブルから除去され、ユーザーに単に
割当てられているのではないからである。
除去されたアドレス空間は次に、第2のオペレーティン
グ・システムへと向けられる。第1のオペレーティング
・システムから取得された第2のオペレーティング・シ
ステムに与えられたアドレス・ブロックを、第2のオペ
レーティング・システムに対してアドレス・ゼロから始
まるように見せるハードウェア・オフセット論理が存在
する。第2のオペレーティング・システムは次に、あた
かも自己の実記憶であるかのように、第1のオペレーテ
ィング・システムから取得した記憶を制御し、自己の仮
想記憶マネジャを通じてその記憶を制御する。すなわ
ち、第2のシステムによって発行された仮想アドレス
を、その割当てられた実記憶アドレス空間内の実アドレ
スに変換する。
グ・システムへと向けられる。第1のオペレーティング
・システムから取得された第2のオペレーティング・シ
ステムに与えられたアドレス・ブロックを、第2のオペ
レーティング・システムに対してアドレス・ゼロから始
まるように見せるハードウェア・オフセット論理が存在
する。第2のオペレーティング・システムは次に、あた
かも自己の実記憶であるかのように、第1のオペレーテ
ィング・システムから取得した記憶を制御し、自己の仮
想記憶マネジャを通じてその記憶を制御する。すなわ
ち、第2のシステムによって発行された仮想アドレス
を、その割当てられた実記憶アドレス空間内の実アドレ
スに変換する。
第1のオペレーティング・システムは、第2のプロセッ
サの記憶空間にI/Oデータを出入することができる
が、第2のプロセッサのプロセッサが追加記憶空間につ
いて知らないため、第2のプロセッサは、その割り振ら
れた空間から読み書きすることができない。もし第2の
オペレーティング・システム中でオペレーティング・シ
ステムの誤動作が生じると、ハードウェア・トラップ
が、第2のオペレーティング・システムが第1のオペレ
ーティング・システムの空間に不用意に書き込みを行う
のを防止することになる。
サの記憶空間にI/Oデータを出入することができる
が、第2のプロセッサのプロセッサが追加記憶空間につ
いて知らないため、第2のプロセッサは、その割り振ら
れた空間から読み書きすることができない。もし第2の
オペレーティング・システム中でオペレーティング・シ
ステムの誤動作が生じると、ハードウェア・トラップ
が、第2のオペレーティング・システムが第1のオペレ
ーティング・システムの空間に不用意に書き込みを行う
のを防止することになる。
第2のオペレーティング・システムに割り振られた記憶
空間の量は、ユーザーによって、モジュール・スタート
アップ・プログラム中のテーブルに定義される。もしユ
ーザーが、第2のプロセッサが16メガバイトをもつよ
うに望むなら、ユーザーはそのことをモジュール・スタ
ートアップ・テーブル中に定義し、アプリケーション・
プログラムがそれだけの空間を第1のオペレーティング
・システムから獲得することになる。特殊SVC(サー
ビス・コール)により、アプリケーション・プログラム
が、ポインタを変更することができるように、第1のオ
ペレーティング・システムの監視領域にアクセスするこ
とが可能ならしめられる。
空間の量は、ユーザーによって、モジュール・スタート
アップ・プログラム中のテーブルに定義される。もしユ
ーザーが、第2のプロセッサが16メガバイトをもつよ
うに望むなら、ユーザーはそのことをモジュール・スタ
ートアップ・テーブル中に定義し、アプリケーション・
プログラムがそれだけの空間を第1のオペレーティング
・システムから獲得することになる。特殊SVC(サー
ビス・コール)により、アプリケーション・プログラム
が、ポインタを変更することができるように、第1のオ
ペレーティング・システムの監視領域にアクセスするこ
とが可能ならしめられる。
両方のオペレーティング・システムが同一の記憶を共有
することが望ましい理由は、その記憶が第1のプロセッ
サ上でフォールト・トレラントであり、第2のプロセッ
サが第1のプロセッサからのフォールト・トレラント記
憶及びI/Oを使用することが許されるからである。第
2のプロセッサは、ハードウェアのうちのあるものを複
製し、アドレス、データ及び制御線のうちのあるものを
比較することによってフォールト・トレラントとなされ
る。これらの技術を使用することによって、第2のプロ
セッサは、フォールト・トレラント能力をもたないにも
かかわらず、事実上、フォールト・トレラント・マシン
となる。また、各異種プロセッサ毎に設けられた個別の
実記憶を用いることにより、第2のタイプのプロセッサ
及びオペレーティング・システムを2つ以上、第1のタ
イプのオペレーティング・システムに結合することがで
きる。
することが望ましい理由は、その記憶が第1のプロセッ
サ上でフォールト・トレラントであり、第2のプロセッ
サが第1のプロセッサからのフォールト・トレラント記
憶及びI/Oを使用することが許されるからである。第
2のプロセッサは、ハードウェアのうちのあるものを複
製し、アドレス、データ及び制御線のうちのあるものを
比較することによってフォールト・トレラントとなされ
る。これらの技術を使用することによって、第2のプロ
セッサは、フォールト・トレラント能力をもたないにも
かかわらず、事実上、フォールト・トレラント・マシン
となる。また、各異種プロセッサ毎に設けられた個別の
実記憶を用いることにより、第2のタイプのプロセッサ
及びオペレーティング・システムを2つ以上、第1のタ
イプのオペレーティング・システムに結合することがで
きる。
好適な実施例では、第1のオペレーティング・システム
は、フォールト・トレラントS/88のオペレーティン
グ・システムであり、第2のオペレーティング・システ
ムは、S/370のオペレーティング・システムのうち
の1つであり、第1及び第2のプロセッサはそれぞれS
/88及びS/370プロセッサである。この機能は、
通常非フォールト・トレラントであるシステムをして、
フォールト・トレラント・システムによって維持される
フォールト・トレラント記憶を使用することを可能なら
しめるのみならず、非フォールト・トレラント・システ
ムをして、(1)フォールト・トレラント・システムに
よって維持されるフォールト・トレラントI/O装置に
対するアクセスを共有し、(2)チャネル対チャネル結
合の対した遅延を生じることなくより効率的な様式でシ
ステム間のデータ交換を可能ならしめるのである。
は、フォールト・トレラントS/88のオペレーティン
グ・システムであり、第2のオペレーティング・システ
ムは、S/370のオペレーティング・システムのうち
の1つであり、第1及び第2のプロセッサはそれぞれS
/88及びS/370プロセッサである。この機能は、
通常非フォールト・トレラントであるシステムをして、
フォールト・トレラント・システムによって維持される
フォールト・トレラント記憶を使用することを可能なら
しめるのみならず、非フォールト・トレラント・システ
ムをして、(1)フォールト・トレラント・システムに
よって維持されるフォールト・トレラントI/O装置に
対するアクセスを共有し、(2)チャネル対チャネル結
合の対した遅延を生じることなくより効率的な様式でシ
ステム間のデータ交換を可能ならしめるのである。
E6.単一システム・イメージ 単一システム・イメージという用語は、ユーザーの遠隔
データ及び資源(例えば、プリンタ、ハードファィルな
ど)に対するアクセスが、ユーザーにとって、そのユー
ザーのキーボードに接続されているローカル端末のデー
タ及び資源に対するアクセスと同一に見えるようなコン
ピュータ・ネットワークを特徴づけるために使用され
る。このとき、ユーザーは、オブジェクトのネットワー
ク中の位置を知る必要なく単に名前でデータ・ファイル
または資源にアクセスすることができる。
データ及び資源(例えば、プリンタ、ハードファィルな
ど)に対するアクセスが、ユーザーにとって、そのユー
ザーのキーボードに接続されているローカル端末のデー
タ及び資源に対するアクセスと同一に見えるようなコン
ピュータ・ネットワークを特徴づけるために使用され
る。このとき、ユーザーは、オブジェクトのネットワー
ク中の位置を知る必要なく単に名前でデータ・ファイル
または資源にアクセスすることができる。
ここで、「誘導された(derived)単一システム・イメー
ジ」という概念が新しい用語として導入され、これは、
単一システム・イメージをもつネットワークに直接接続
するための設備は欠くけれども、効果的な単一システム
・イメージによってそれに直接接続するためにネットワ
ークのハードウェア及びソフトウェア資源を利用するネ
ットワークのコンピュータ要素に適用することを意図し
ている。
ジ」という概念が新しい用語として導入され、これは、
単一システム・イメージをもつネットワークに直接接続
するための設備は欠くけれども、効果的な単一システム
・イメージによってそれに直接接続するためにネットワ
ークのハードウェア及びソフトウェア資源を利用するネ
ットワークのコンピュータ要素に適用することを意図し
ている。
説明の便宜上、「誘導された単一システム・イメージ」
の効果を生じさせるための、コンピュータ・システムの
直接接続は、そのシステム及びネットワークの要素の間
のさまざまな程度の結合によって有効化することができ
る。ここで使用する「緩い結合」という用語は、ネット
ワークの一部である、誘導されたコンピュータと「本来
の」コンピュータのI/Oチャネルを介して有効化され
た結合である。「緊密結合」とは、誘導されたコンピュ
ータと「本来の」コンピュータのおのおのをして、直接
的に(すなわち、既存のI/Oチャネルを使用すること
なく)互いに通信することを可能ならしめる特殊なハー
ドウェアを通じて確立される、それらの関係を記述する
ために使用される。
の効果を生じさせるための、コンピュータ・システムの
直接接続は、そのシステム及びネットワークの要素の間
のさまざまな程度の結合によって有効化することができ
る。ここで使用する「緩い結合」という用語は、ネット
ワークの一部である、誘導されたコンピュータと「本来
の」コンピュータのI/Oチャネルを介して有効化され
た結合である。「緊密結合」とは、誘導されたコンピュ
ータと「本来の」コンピュータのおのおのをして、直接
的に(すなわち、既存のI/Oチャネルを使用すること
なく)互いに通信することを可能ならしめる特殊なハー
ドウェアを通じて確立される、それらの関係を記述する
ために使用される。
いま考慮する、「透過的緊密結合」と称する特殊なタイ
プの緊密結合は、各コンピュータ(誘導されたコンピュ
ータと「本来の」コンピュータ)のおのおのをして、め
いめいのコンピュータのオペレーティング・システムが
利用を意識することがないような様式で、他方のコンピ
ュータの資源を利用することを可能ならしめる結合ハー
ドウェアの適用に関与するものである。透過的緊密結合
は、結合ネットワークにおいてコスト及び性能上の利点
を達成するためのベースを形成する。結合ハードウェア
のコストは、設計の複雑さにも拘らず、さもなければ必
要とされるであろうところのオペレーティング・システ
ム・ソフトウェアの大幅な変更を回避することによって
実減される節約による埋め合わせ以上のものである。性
能上の利点は、結合インターフェースにおける直接結合
及び帯域干渉の低減によるより迅速な接続から生じてく
る。
プの緊密結合は、各コンピュータ(誘導されたコンピュ
ータと「本来の」コンピュータ)のおのおのをして、め
いめいのコンピュータのオペレーティング・システムが
利用を意識することがないような様式で、他方のコンピ
ュータの資源を利用することを可能ならしめる結合ハー
ドウェアの適用に関与するものである。透過的緊密結合
は、結合ネットワークにおいてコスト及び性能上の利点
を達成するためのベースを形成する。結合ハードウェア
のコストは、設計の複雑さにも拘らず、さもなければ必
要とされるであろうところのオペレーティング・システ
ム・ソフトウェアの大幅な変更を回避することによって
実減される節約による埋め合わせ以上のものである。性
能上の利点は、結合インターフェースにおける直接結合
及び帯域干渉の低減によるより迅速な接続から生じてく
る。
「ネットワーク」という用語は、ここでは、ある特殊な
プロトコルに従い多くの相違するマシン・タイプのもの
が接続されるような大規模な国際遠隔通信/衛星接続の
構成である、現在より一般的なネットワークの概念より
も限定的である。ここではむしろ、「ネットワーク」
は、システム/88の接続された複合体、または単一シ
ステム・イメージの特徴をもつ別のプロセッサの接続さ
れた複合体に当てはまるように使用される。
プロトコルに従い多くの相違するマシン・タイプのもの
が接続されるような大規模な国際遠隔通信/衛星接続の
構成である、現在より一般的なネットワークの概念より
も限定的である。ここではむしろ、「ネットワーク」
は、システム/88の接続された複合体、または単一シ
ステム・イメージの特徴をもつ別のプロセッサの接続さ
れた複合体に当てはまるように使用される。
ここで考慮する単一システム・イメージの概念を説明す
るためにいくつかの注意深く定義された用語が使用さ
れ、この発明の次のような特殊な実施例を説明の根拠と
して使用するとことにする。
るためにいくつかの注意深く定義された用語が使用さ
れ、この発明の次のような特殊な実施例を説明の根拠と
して使用するとことにする。
(a)高速データ相互接続(HSDI)とは、個別のハ
ードウェア・ユニット間のデータ転送のためのハードウ
ェア・サブシステム(及びケーブル)のことをいう。
ードウェア・ユニット間のデータ転送のためのハードウ
ェア・サブシステム(及びケーブル)のことをいう。
(b)リンクとは、完全に、別のソフトウェア・オブジ
ェクトに対する多重部分ポインタからなり、別名のキャ
ラクタを大部分もつソフトウェア構成またはオブジェク
トのことをいう。
ェクトに対する多重部分ポインタからなり、別名のキャ
ラクタを大部分もつソフトウェア構成またはオブジェク
トのことをいう。
(e)モジュールとは、筺体、電源、CPU、メモリ及
びI/O装置のそれぞれを少なくとも1つもつ自立的処
理装置のことをいう。モジュールは、追加の周辺装置を
取り囲んでより大型の単一モジュールを形成するように
複数の筺体をボルトで繋ぎあわせることによって拡張す
ることができる。I/Oには外部的なものもあって(端
末、プリンタ)、ケーブルによって筺体に接続される。
それらは、単一モジュールの一部と見なされる。モジュ
ールはCPU複合体を1つだけもつ。
びI/O装置のそれぞれを少なくとも1つもつ自立的処
理装置のことをいう。モジュールは、追加の周辺装置を
取り囲んでより大型の単一モジュールを形成するように
複数の筺体をボルトで繋ぎあわせることによって拡張す
ることができる。I/Oには外部的なものもあって(端
末、プリンタ)、ケーブルによって筺体に接続される。
それらは、単一モジュールの一部と見なされる。モジュ
ールはCPU複合体を1つだけもつ。
(d)CPU複合体とは、同一の筺体内にある1つまた
はそれ以上の単一または双対プロセッサ・ボードのこと
であって、単一のCPUとして動作するようにオペレー
ティング・システム・ソフトウェアによって管理され制
御される。導入されるプロセッサ・ボードの実際の数に
関係なく、どのユーザー・プログラムまたはアプリケー
ション・プログラムは、あたかも一個のCPUが存在す
るかのように書かれ実行される。処理作業量は、可用な
CPUボードの間でおおまかには共用され、複数のタス
クを並行して実行することもできるが、各アプリケーシ
ョン・プログラムに与えられるのは「単一CPUイメー
ジ」である。
はそれ以上の単一または双対プロセッサ・ボードのこと
であって、単一のCPUとして動作するようにオペレー
ティング・システム・ソフトウェアによって管理され制
御される。導入されるプロセッサ・ボードの実際の数に
関係なく、どのユーザー・プログラムまたはアプリケー
ション・プログラムは、あたかも一個のCPUが存在す
るかのように書かれ実行される。処理作業量は、可用な
CPUボードの間でおおまかには共用され、複数のタス
クを並行して実行することもできるが、各アプリケーシ
ョン・プログラムに与えられるのは「単一CPUイメー
ジ」である。
(d)オブジェクトとは、階層的な名称によって一意的
に識別することができるシステム(ディスク、テープ)
中に記憶される(実行可能プログラム)データの集まり
のことである。リンクは別のリンクに対する、一意的に
名付けられたポインタであり、よってオブジェクト自体
であると考えられる。I/Oポートは、特殊I/O装置
(データ・ソースまたはターゲット)を指し示す、一意
的に名付けられたソフトウェア構成であり、よってやは
りオブジェクトである。オペレーティング・システム
は、オブジェクト名の重複を効率的に防止する。
に識別することができるシステム(ディスク、テープ)
中に記憶される(実行可能プログラム)データの集まり
のことである。リンクは別のリンクに対する、一意的に
名付けられたポインタであり、よってオブジェクト自体
であると考えられる。I/Oポートは、特殊I/O装置
(データ・ソースまたはターゲット)を指し示す、一意
的に名付けられたソフトウェア構成であり、よってやは
りオブジェクトである。オペレーティング・システム
は、オブジェクト名の重複を効率的に防止する。
「単一システム・イメージ」という用語は、従来の文献
で一貫的に使用されている訳ではないので、ここでは
「誘導された単一システム・イメージ」について詳細に
説明することにする。「単一システム・イメージ」とい
う用語を定義し記述することにおいて、「イメージ」と
は、システム及び環境に対するアプリケーション・プロ
グラムの支点のことを言うものとする。この文脈での
「システム」とは、アプリケーションのプログラマが命
令を指向するところのハードウェア(CPU複合体)及
びソフトウェア(オペレーティング・システムとそのユ
ーティリィ)の結合を意味する。「環境」とは、オペレ
ーティング・システムに対するサービス要求を通じて、
オペレーティング・システムによってアクセス可能であ
り従ってプログラマによって間接的にアクセス可能であ
るすべてのI/O装置及びその他の接続された設備を意
味する。
で一貫的に使用されている訳ではないので、ここでは
「誘導された単一システム・イメージ」について詳細に
説明することにする。「単一システム・イメージ」とい
う用語を定義し記述することにおいて、「イメージ」と
は、システム及び環境に対するアプリケーション・プロ
グラムの支点のことを言うものとする。この文脈での
「システム」とは、アプリケーションのプログラマが命
令を指向するところのハードウェア(CPU複合体)及
びソフトウェア(オペレーティング・システムとそのユ
ーティリィ)の結合を意味する。「環境」とは、オペレ
ーティング・システムに対するサービス要求を通じて、
オペレーティング・システムによってアクセス可能であ
り従ってプログラマによって間接的にアクセス可能であ
るすべてのI/O装置及びその他の接続された設備を意
味する。
真に単一の、オペレーティング・システムをもつ自立的
コンピュータは、プログラマに対して単一システム・イ
メージを提供しなくてはならない。プログラマが眺める
この「イメージ」が変わり始めるのは、I/O装置及び
分散処理を共有するために複数のシステムを互いに結合
することを要望するときだけである。すなわち、遠隔通
信線(ケーブルの場合さえも)を介しての2つのマシン
の通常の相互接続は、拡張された機能を利用するため
に、プログラマに、2つの環境を理解しその処理を習得
することを強いるのである。
コンピュータは、プログラマに対して単一システム・イ
メージを提供しなくてはならない。プログラマが眺める
この「イメージ」が変わり始めるのは、I/O装置及び
分散処理を共有するために複数のシステムを互いに結合
することを要望するときだけである。すなわち、遠隔通
信線(ケーブルの場合さえも)を介しての2つのマシン
の通常の相互接続は、拡張された機能を利用するため
に、プログラマに、2つの環境を理解しその処理を習得
することを強いるのである。
一般的に、別の環境の設備にアクセスするためには、プ
ログラマは、自分のローカルのオペレーティング・シス
テムに、別のオペレーティング・システムに対する必要
条件を通信するように要求し、これらの必要条件を詳細
に記述しなくしはならない。
ログラマは、自分のローカルのオペレーティング・シス
テムに、別のオペレーティング・システムに対する必要
条件を通信するように要求し、これらの必要条件を詳細
に記述しなくしはならない。
プログラマは次に、任意の長さの遅延の後、(適切な順
序で)要求の結果を非同期的に受け取る能力をもたなく
てはならない。複数メッセージの処理と制御及びマシン
間のデータ転送は、両方のマシンに相当な処理オーバー
ヘッドをもたらし、そのような双対システム環境ではプ
ログラマにとってやっかいで、非能率で困難な状況にな
ることがある。また、そのように慣用的に接続されたマ
シンの数が増大するにつれて、プログラマにとっての複
雑度は激増する。
序で)要求の結果を非同期的に受け取る能力をもたなく
てはならない。複数メッセージの処理と制御及びマシン
間のデータ転送は、両方のマシンに相当な処理オーバー
ヘッドをもたらし、そのような双対システム環境ではプ
ログラマにとってやっかいで、非能率で困難な状況にな
ることがある。また、そのように慣用的に接続されたマ
シンの数が増大するにつれて、プログラマにとっての複
雑度は激増する。
システム/88のもとのデザインは、この状況を簡単化
し、プログラマに対して単一システム・イメージを与え
るための手段、すなわち、各モジュール間のHSDI接
続、及び各モジュール内のHSDI駆動ソフトウェアを
含んでいた。このとき、例えば2モジュール・システム
においては、2つのオペレーティング・システムの各々
がシステム全体について「知り」、他方のオペレーティ
ング・システムの動的な介在なくHSDIを亙る設備に
アクセスすることができる。通信オーバーヘッドの低減
も相当である。
し、プログラマに対して単一システム・イメージを与え
るための手段、すなわち、各モジュール間のHSDI接
続、及び各モジュール内のHSDI駆動ソフトウェアを
含んでいた。このとき、例えば2モジュール・システム
においては、2つのオペレーティング・システムの各々
がシステム全体について「知り」、他方のオペレーティ
ング・システムの動的な介在なくHSDIを亙る設備に
アクセスすることができる。通信オーバーヘッドの低減
も相当である。
さまざまなサイズとモデル・タイプの多数のモジュール
をHSDIを介して接続し、プログラマにとって(拡張
可能な)環境のように見えるシステム複合体を形成する
ことができる。そして、プログラマの製作物、すなわち
アプリケーション・プログラムは、このシステム複合体
のディスクに記憶し、複合体中の任意のCPUで実行
し、複合体の実質的に任意の端末から制御あるいはモニ
タし、データを複合体の任意のI/O装置の間で転送す
ることができ、しかもそれにはいかなる特殊なプログラ
ミング的配慮は要さず、従来の方法よりも実行効率が改
善されている、という次第である。
をHSDIを介して接続し、プログラマにとって(拡張
可能な)環境のように見えるシステム複合体を形成する
ことができる。そして、プログラマの製作物、すなわち
アプリケーション・プログラムは、このシステム複合体
のディスクに記憶し、複合体中の任意のCPUで実行
し、複合体の実質的に任意の端末から制御あるいはモニ
タし、データを複合体の任意のI/O装置の間で転送す
ることができ、しかもそれにはいかなる特殊なプログラ
ミング的配慮は要さず、従来の方法よりも実行効率が改
善されている、という次第である。
オペレーティング・システム及びそのさまざまの機能と
設備は、本来的に分散環境を想定し、ユーザーが、さま
ざまなエンティティ(ユティリティ、アプリケーショ
ン、データ、言語プロセッサなど)が存在する場所に係
わったりそれに制御を及ぼす必要がないような環境内で
動作するような方法で書かれている。このことの全てを
可能ならしめるための重要な点は、各オブシェクトが固
有な名前をもつなくてはならない、という強制された規
則である。この規則は、最も基本的な名前修飾子がモジ
ュール名であり、それ自体が複合体内で固有でなくては
ならないので、システム複合体全体に容易に拡張され
る。それゆえ、複合体全体でどれかのオブジェクトを見
付けだすのは、それに正しく名前をつけるのと同じ位に
簡単である。オフヘジェクトに名前を付けることは、リ
ンクを与えることによってプログラマのために簡易化さ
れ、それにより、非常に短い別名ポインタが、極めて長
く複雑な名前をもつオブジェクトの名前に置き換えられ
ることが可能となる。
設備は、本来的に分散環境を想定し、ユーザーが、さま
ざまなエンティティ(ユティリティ、アプリケーショ
ン、データ、言語プロセッサなど)が存在する場所に係
わったりそれに制御を及ぼす必要がないような環境内で
動作するような方法で書かれている。このことの全てを
可能ならしめるための重要な点は、各オブシェクトが固
有な名前をもつなくてはならない、という強制された規
則である。この規則は、最も基本的な名前修飾子がモジ
ュール名であり、それ自体が複合体内で固有でなくては
ならないので、システム複合体全体に容易に拡張され
る。それゆえ、複合体全体でどれかのオブジェクトを見
付けだすのは、それに正しく名前をつけるのと同じ位に
簡単である。オフヘジェクトに名前を付けることは、リ
ンクを与えることによってプログラマのために簡易化さ
れ、それにより、非常に短い別名ポインタが、極めて長
く複雑な名前をもつオブジェクトの名前に置き換えられ
ることが可能となる。
この相互接続されたS/88モジュール内で「誘導され
た単一システム・イメージ」の概念を達成するために、
複数のS/370プロセッサが、S/88プロセッサに
対して、S/370ユーザーのために、S/88単一シ
ステム・イメージの少なくともある側面を提供するよう
に結合される。S/370プロセッサ及びオペレーティ
ング・システムは、これらの機能を与えない。
た単一システム・イメージ」の概念を達成するために、
複数のS/370プロセッサが、S/88プロセッサに
対して、S/370ユーザーのために、S/88単一シ
ステム・イメージの少なくともある側面を提供するよう
に結合される。S/370プロセッサ及びオペレーティ
ング・システムは、これらの機能を与えない。
S/88モジュール内には、1つまたはそれ以上のS/
370プロセッサが与えられる。S/88プロセッサ
は、各S/370プロセッサに一意的に結合される。見
て取れるように、各S/370プロセッサは重複化さ
れ、フォールト・トレラント動作のためにS/88ソウ
トフェアによって制御される。S/88とS/370プ
ロセッサのこの一意的な直接結合は、好適には前述の切
り放し及び割り込み機構によって行なわれ、S/88及
びS/370オペレーティング・システムの両方に対し
て透過的であるプロセッサの間でデータ転送を行う。そ
して、どちらのオペレーティング・システムも、他方の
プロセッサまたはオペレーティング・システムの存在に
気づかない。
370プロセッサが与えられる。S/88プロセッサ
は、各S/370プロセッサに一意的に結合される。見
て取れるように、各S/370プロセッサは重複化さ
れ、フォールト・トレラント動作のためにS/88ソウ
トフェアによって制御される。S/88とS/370プ
ロセッサのこの一意的な直接結合は、好適には前述の切
り放し及び割り込み機構によって行なわれ、S/88及
びS/370オペレーティング・システムの両方に対し
て透過的であるプロセッサの間でデータ転送を行う。そ
して、どちらのオペレーティング・システムも、他方の
プロセッサまたはオペレーティング・システムの存在に
気づかない。
各S/370プロセッサは、S/370主記憶、及びエ
ミュレートされたS/370 I/OチャネルとI/O
装置を完全に提供するために、フォールト・トレラント
S/88システムを使用する。このS/370は、S/
88の一部でない主記憶、チャネル、またはI/O装置
をもたず、これらの設備は全て設計によりフォールト・
トレラントである。
ミュレートされたS/370 I/OチャネルとI/O
装置を完全に提供するために、フォールト・トレラント
S/88システムを使用する。このS/370は、S/
88の一部でない主記憶、チャネル、またはI/O装置
をもたず、これらの設備は全て設計によりフォールト・
トレラントである。
システム構成時に、各S/370プロセッサには、S/
88スプールからの主記憶の1乃至16メガバイトの専
用連続ブロックが割当てられる。このブロックは、S/
88オペレーティング・システムが不意にすらもアクセ
スすることができないように、S/88の構成テーブル
から除去される。フォールト・トレラント・ハードウェ
ア・レジスタは、各S/370のための記憶ポインタを
保持し、以てS/370は、割当てられた以外の主記憶
にアクセスするすべがない。その結果は、S/370に
よって完全に慣用的な単一システムの視点が与えられ、
メモリのフォールト・トレラントな側面は、完全に透過
的である。S/88中のアプリケーション・プログラム
(EXEC370)は、実際のS/88装置及びS/8
8オペレーティング・システム・コールを使用してS/
370チャネル及びI/O装置をエミュレートする。そ
れはアプリケーション・プログラムであるのでS/88
複合体の単一システム・イメージをもち、以てこの視点
は、S/370の「疑似チャネル」全体に拡張される。
88スプールからの主記憶の1乃至16メガバイトの専
用連続ブロックが割当てられる。このブロックは、S/
88オペレーティング・システムが不意にすらもアクセ
スすることができないように、S/88の構成テーブル
から除去される。フォールト・トレラント・ハードウェ
ア・レジスタは、各S/370のための記憶ポインタを
保持し、以てS/370は、割当てられた以外の主記憶
にアクセスするすべがない。その結果は、S/370に
よって完全に慣用的な単一システムの視点が与えられ、
メモリのフォールト・トレラントな側面は、完全に透過
的である。S/88中のアプリケーション・プログラム
(EXEC370)は、実際のS/88装置及びS/8
8オペレーティング・システム・コールを使用してS/
370チャネル及びI/O装置をエミュレートする。そ
れはアプリケーション・プログラムであるのでS/88
複合体の単一システム・イメージをもち、以てこの視点
は、S/370の「疑似チャネル」全体に拡張される。
その逆の観点、すなわちS/370オペレーティング・
システムの観点(拡張によるアプリケーション・プログ
ラム)からは、全てのI/O動作が行なわれる窓(チャ
ネル)を視覚化してみることができる。すなわち、窓は
性質は変わらず、すなわちS/370プログラマは変わ
る必要がないが、その窓が拡大される視点は、「単一シ
ステム・イメージ」属性を有している。そうして、わず
かな概念的なステップが、S/88によって管理される
ものである、単一のデータベースを効率的に管理する多
数のS/370を描き出すのである。
システムの観点(拡張によるアプリケーション・プログ
ラム)からは、全てのI/O動作が行なわれる窓(チャ
ネル)を視覚化してみることができる。すなわち、窓は
性質は変わらず、すなわちS/370プログラマは変わ
る必要がないが、その窓が拡大される視点は、「単一シ
ステム・イメージ」属性を有している。そうして、わず
かな概念的なステップが、S/88によって管理される
ものである、単一のデータベースを効率的に管理する多
数のS/370を描き出すのである。
この接続技術の結論は、比較的簡単で迅速な各S/37
0の動的再構成である。チャネル「窓」は双方向であ
り、S/88制御プログラムEXEC370は、その反
対側にある。EXEC370は、S/370CPUを停
止し、再初期化し、再構成し、再開させる完全な能力を
もつ。こうして、単一システム・イメージ属性(S/8
8 I/O及びオペレーティング・システム)を所有す
る別の設備を使用したS/370 I/O設備の透過的
なエミュレーションによって、この属性は拡張されS/
370に供される。
0の動的再構成である。チャネル「窓」は双方向であ
り、S/88制御プログラムEXEC370は、その反
対側にある。EXEC370は、S/370CPUを停
止し、再初期化し、再構成し、再開させる完全な能力を
もつ。こうして、単一システム・イメージ属性(S/8
8 I/O及びオペレーティング・システム)を所有す
る別の設備を使用したS/370 I/O設備の透過的
なエミュレーションによって、この属性は拡張されS/
370に供される。
S/370には、それゆえ、オブジェクト位置従属性が
与えられている。そのユーザーは、S/88オペレーテ
ィング・システム・ディレクトリにおいて割当てられた
名前である、その名前によってデータ・ファィルまたは
他の資源にアクセスすることができる。ユーザーは、S
/370及びS/88モジュールの複合体におけるデー
タ・ファイルの位置について知る必要はない。
与えられている。そのユーザーは、S/88オペレーテ
ィング・システム・ディレクトリにおいて割当てられた
名前である、その名前によってデータ・ファィルまたは
他の資源にアクセスすることができる。ユーザーは、S
/370及びS/88モジュールの複合体におけるデー
タ・ファイルの位置について知る必要はない。
1つのモジュール中のS/370処理装置によって発行
されたS/370 I/Oコマンドは、同一または他の
接続されたモジュール中にあるデータ・ファィルなどに
アクセスするために、同一モジュール中のS/370処
理装置に緊密に結合された関連S/88処理装置によっ
て(あるいは、モジュール9に相互接続され、マルチプ
ロセッシングをサポートするS/88仮想オペレーティ
ング・システムの同一のコピーによって制御される別の
S/88処理装置によって)処理される。そのコマンド
は、アクセスされたファィルを、要求側S/370処理
装置に戻すか、例えば別のファィルと組合せるためにそ
れらを別のモジュールへと送る。
されたS/370 I/Oコマンドは、同一または他の
接続されたモジュール中にあるデータ・ファィルなどに
アクセスするために、同一モジュール中のS/370処
理装置に緊密に結合された関連S/88処理装置によっ
て(あるいは、モジュール9に相互接続され、マルチプ
ロセッシングをサポートするS/88仮想オペレーティ
ング・システムの同一のコピーによって制御される別の
S/88処理装置によって)処理される。そのコマンド
は、アクセスされたファィルを、要求側S/370処理
装置に戻すか、例えば別のファィルと組合せるためにそ
れらを別のモジュールへと送る。
E7.要約 このようにして、2つの仮想オペレーティング・システ
ム(S/370 VM、VSE、またはIX370及び
S/88 OS)の機能が1つの物理的システムに組み
合わされる。S/88プロセッサはS/88 OSを走
らせ、そのシステムのフォールト・トレラント的側面を
処理する。それと同時に、1つまたはそれ以上のS/3
70プロセッサがS/88ラックに差し込まれ、各S/
370プロセッサ毎に、S/88 OSによって、1乃
至16メガバイトの連続的なメモリが割り振られる。各
S/370仮想オペレーティング・システムは、そのメ
モリ位置がアドレス0で開始すると考え、そのメモリ
を、通常のS/370動的メモリ割り振り及びページン
グ技術を用いて管理する。S/370は、S/370が
S/88メモリ空間にアクセスするのを防止するために
限界チェックされる。S/88は、S/88がI/Oデ
ータをS/370 I/Oバッファに移動しなくてはな
らないので、S/370アドレス空間にアクセスしなく
てはならない。S/88オペレーティング・システム
は、全てのハードウェア及びI/O装置に対して支配権
をもつ。単一システム環境において対等プロセッサ対
は、どちらのオペレーティング・システムをもあまり書
き直すことなく、めいめいのオペレーティング・システ
ムを実行する。
ム(S/370 VM、VSE、またはIX370及び
S/88 OS)の機能が1つの物理的システムに組み
合わされる。S/88プロセッサはS/88 OSを走
らせ、そのシステムのフォールト・トレラント的側面を
処理する。それと同時に、1つまたはそれ以上のS/3
70プロセッサがS/88ラックに差し込まれ、各S/
370プロセッサ毎に、S/88 OSによって、1乃
至16メガバイトの連続的なメモリが割り振られる。各
S/370仮想オペレーティング・システムは、そのメ
モリ位置がアドレス0で開始すると考え、そのメモリ
を、通常のS/370動的メモリ割り振り及びページン
グ技術を用いて管理する。S/370は、S/370が
S/88メモリ空間にアクセスするのを防止するために
限界チェックされる。S/88は、S/88がI/Oデ
ータをS/370 I/Oバッファに移動しなくてはな
らないので、S/370アドレス空間にアクセスしなく
てはならない。S/88オペレーティング・システム
は、全てのハードウェア及びI/O装置に対して支配権
をもつ。単一システム環境において対等プロセッサ対
は、どちらのオペレーティング・システムをもあまり書
き直すことなく、めいめいのオペレーティング・システ
ムを実行する。
8.序論−従来のシステム/88 本発明の実施例は、(VM、VSE、IX370などの
S/370オペレーティング・システムのどれかの制御
の下でS/370命令を実行する)IBMシステム/3
70(S/370)が、単一システム・イメージのシス
テム/88機能と、ホットプラグ可能性と、瞬間的エラ
ー検出と、I/O負荷分散と、故障分離及び動的再構成
可能性をもつS/370処理装置のフォールト・トレラ
ント動作を可能ならしめるような方法で、(S/88シ
ステム命令を、フォールト・トレラント環境で、S/8
8オペレーティング・システムの制御の下でフォールト
・トレラント的に実行する)IBMシステム/88(S
/88)処理装置に緊密に結合されてなる好適な形式に
関して説明される。
S/370オペレーティング・システムのどれかの制御
の下でS/370命令を実行する)IBMシステム/3
70(S/370)が、単一システム・イメージのシス
テム/88機能と、ホットプラグ可能性と、瞬間的エラ
ー検出と、I/O負荷分散と、故障分離及び動的再構成
可能性をもつS/370処理装置のフォールト・トレラ
ント動作を可能ならしめるような方法で、(S/88シ
ステム命令を、フォールト・トレラント環境で、S/8
8オペレーティング・システムの制御の下でフォールト
・トレラント的に実行する)IBMシステム/88(S
/88)処理装置に緊密に結合されてなる好適な形式に
関して説明される。
インターナショナル・ビジネス・マシーンズ・コーポレ
ーションによって販売されてるIMBシステム/88
は、1986年に発行された、IBM System Digest第2
版、及び他の入手可能なS/88刊行物に説明されてい
る。モジュール10(第6A図)を含むシステム/88
のコンピュータ・システムは、高信頼性オンライン・シ
ステム処理を必要とする顧客の要請を満たすように設計
された高可用性システムである。システム/88は、2
重化されたハードウェア・アーキテクチャを、フォール
ト・トレラント・システムを提供するように、複雑なオ
ペレーティング・システム・ソフトウェアと結合する。
システム/88はまた、システム/88高速データ相互
接続(HSDI)(第6B図)を通じた多重システム/
88モジュール10a、10b、10e、及びシステム
/88ネットワークを通じた(第6e図)モジュール1
0d乃至10gの接続によって垂直方向の拡張を与え
る。
ーションによって販売されてるIMBシステム/88
は、1986年に発行された、IBM System Digest第2
版、及び他の入手可能なS/88刊行物に説明されてい
る。モジュール10(第6A図)を含むシステム/88
のコンピュータ・システムは、高信頼性オンライン・シ
ステム処理を必要とする顧客の要請を満たすように設計
された高可用性システムである。システム/88は、2
重化されたハードウェア・アーキテクチャを、フォール
ト・トレラント・システムを提供するように、複雑なオ
ペレーティング・システム・ソフトウェアと結合する。
システム/88はまた、システム/88高速データ相互
接続(HSDI)(第6B図)を通じた多重システム/
88モジュール10a、10b、10e、及びシステム
/88ネットワークを通じた(第6e図)モジュール1
0d乃至10gの接続によって垂直方向の拡張を与え
る。
システム/88は、要素の故障が発生した時それがどこ
かを検出し、そのような故障によってもたらされるエラ
ー及び中断がシステムに導入されるのを防止するように
設計されている。フォールト・トレランスはシステム/
88ハードウェア設計の一部であるので、アプリケーシ
ョン・プログラムの開発者によるプログラミングを必要
としない。すなわち、フォールト・トレランスは、ソフ
トウェアのオーバーヘッドまたは性能の低下をもたらす
ことなく達成される。システム/88は、プロセッサ、
直接アクセス記憶装置(DASD)、ディスク、メモリ
及びコントローラなどの主要な構成要素を複写(2重
化)することによってフォールト・トレランスを達成す
る。もし2重化された要素が故障すると、その2重化さ
れた相手が自動的に処理を継続し、システムは末端ユー
ザーに対して可用的であり続ける。システム/88及び
そのソフトウェア製品は、拡張の容易性と、ユーザー間
の資源を共有と、複雑な必要条件に対する解決を与えつ
つ、端末ユーザーに対して単一システム・イメージを維
持するのである。
かを検出し、そのような故障によってもたらされるエラ
ー及び中断がシステムに導入されるのを防止するように
設計されている。フォールト・トレランスはシステム/
88ハードウェア設計の一部であるので、アプリケーシ
ョン・プログラムの開発者によるプログラミングを必要
としない。すなわち、フォールト・トレランスは、ソフ
トウェアのオーバーヘッドまたは性能の低下をもたらす
ことなく達成される。システム/88は、プロセッサ、
直接アクセス記憶装置(DASD)、ディスク、メモリ
及びコントローラなどの主要な構成要素を複写(2重
化)することによってフォールト・トレランスを達成す
る。もし2重化された要素が故障すると、その2重化さ
れた相手が自動的に処理を継続し、システムは末端ユー
ザーに対して可用的であり続ける。システム/88及び
そのソフトウェア製品は、拡張の容易性と、ユーザー間
の資源を共有と、複雑な必要条件に対する解決を与えつ
つ、端末ユーザーに対して単一システム・イメージを維
持するのである。
単一システム・イメージは、ネットワークまたはLAN
によって相互接続され、めいめいが自分のファイルとI
/Oをもつ多くのプロセッサからなり、ユーザーに対し
て、単一マシンにログオンしているかのごとき印象を与
える分散処理環境である。オペレーティング・システム
は、ユーザーをして、ディレクトリを変更するだけで、
1つのマシンから別のマシンへ移行することを可能なら
しめる。
によって相互接続され、めいめいが自分のファイルとI
/Oをもつ多くのプロセッサからなり、ユーザーに対し
て、単一マシンにログオンしているかのごとき印象を与
える分散処理環境である。オペレーティング・システム
は、ユーザーをして、ディレクトリを変更するだけで、
1つのマシンから別のマシンへ移行することを可能なら
しめる。
適切な計画により、システム/88が走っている間に、
末端ユーザーに対する単一システム・イメージを保った
ままで、システム/88の処理容量を拡張することがで
きる。システム/88HSDIを使用して複数の処理モ
ジュールをシステムに結合し、システム/88ネットワ
ークを使用して複数のシステムをネットワークに結合す
ることにより、水平方向の拡張が達成される。
末端ユーザーに対する単一システム・イメージを保った
ままで、システム/88の処理容量を拡張することがで
きる。システム/88HSDIを使用して複数の処理モ
ジュールをシステムに結合し、システム/88ネットワ
ークを使用して複数のシステムをネットワークに結合す
ることにより、水平方向の拡張が達成される。
システム/88処理モジュールは、第6A図に示すよう
に、完全な、単独コンピュータである。システム/88
システムは、単一モジュールであるか、または、第6B
図に示すようにIBM HSDIを用いた、ローカル・
ネットワークである。遠隔伝送設備を使用したシステム
/88ネットワークは、ユーザーに対して単一システム
・イメージを形成するように複数のシステムを相互接続
するために使用される設備である。長距離ネットワーク
を形成するために、通信回線によって、2つまたはそれ
以上のシステムを相互接続することができる。この接続
は、直接ケーブル、リースされた電話回線、またはX.
25ネットワークを通じて行うことができる。システム
/88ネットワークは、遠隔資源に対する参照を検出
し、ユーザーには完全に透過的に、モジュールとシステ
ムの間でメッセージを経路指示する。
に、完全な、単独コンピュータである。システム/88
システムは、単一モジュールであるか、または、第6B
図に示すようにIBM HSDIを用いた、ローカル・
ネットワークである。遠隔伝送設備を使用したシステム
/88ネットワークは、ユーザーに対して単一システム
・イメージを形成するように複数のシステムを相互接続
するために使用される設備である。長距離ネットワーク
を形成するために、通信回線によって、2つまたはそれ
以上のシステムを相互接続することができる。この接続
は、直接ケーブル、リースされた電話回線、またはX.
25ネットワークを通じて行うことができる。システム
/88ネットワークは、遠隔資源に対する参照を検出
し、ユーザーには完全に透過的に、モジュールとシステ
ムの間でメッセージを経路指示する。
ホットプラグ可能性とは、システム動作を中断させるこ
となく多くのハードウェア交換を可能ならしめるもので
ある。システム/88は、故障した要素をサービスから
外し、2重化した一方の側によってサービスを続け、全
くオペレータの介入なく、故障要素上で表示装置を点灯
させる。すると、処理が続いている間に、顧客またはサ
ービス要因が、故障した2重化ボードを除去し交換する
ことができる。このとき、顧客に対する恩恵として、タ
イムリーに修理できることと、保守コストが低いことが
ある。
となく多くのハードウェア交換を可能ならしめるもので
ある。システム/88は、故障した要素をサービスから
外し、2重化した一方の側によってサービスを続け、全
くオペレータの介入なく、故障要素上で表示装置を点灯
させる。すると、処理が続いている間に、顧客またはサ
ービス要因が、故障した2重化ボードを除去し交換する
ことができる。このとき、顧客に対する恩恵として、タ
イムリーに修理できることと、保守コストが低いことが
ある。
システム/88は、フォールト・トレラント、連続動作
マシンではあるけれども、マシン動作を停止させる必要
がある時もある。そのような例としては、システム/8
8オペレーティング・システムのアップグレード、ハー
ドウェア構成の変更(主記憶の追加)、またはある種の
サービス手続がある。
マシンではあるけれども、マシン動作を停止させる必要
がある時もある。そのような例としては、システム/8
8オペレーティング・システムのアップグレード、ハー
ドウェア構成の変更(主記憶の追加)、またはある種の
サービス手続がある。
2重化されたシステム/88の要素とシステム/88ソ
フトウェアは、データの完全性を維持することを支援す
る。システム/88は、故障または故障時点の過渡エラ
ーを検出し、それをアプリケーション・プログラムまた
はデータに伝搬しないようにする。データは汚染から保
護され、システムの完全性が維持される。各要素は、自
己のエラー検出論理及び診断手段をもっている。このエ
ラー検出論理は、各マシン・サイクルの並列動作の結果
を比較する。
フトウェアは、データの完全性を維持することを支援す
る。システム/88は、故障または故障時点の過渡エラ
ーを検出し、それをアプリケーション・プログラムまた
はデータに伝搬しないようにする。データは汚染から保
護され、システムの完全性が維持される。各要素は、自
己のエラー検出論理及び診断手段をもっている。このエ
ラー検出論理は、各マシン・サイクルの並列動作の結果
を比較する。
もしシステムが要素誤動作を検出したなら、その要素は
自動的にサービスから除去される。そして、故障要素が
内部診断によってチェックされている間に、処理は、2
重化した他方の側で続けられる。この故障検出機能は、
処理が2重化した他方の側で続けられる間に、サービス
から除去された故障要素上で自動的に診断ルーチンを走
らせる。もしその診断によりある要素の交換の必要あ
り、との決定がなされたなら、システム/88は、その
問題を報告するために、自動的にサポート・センターを
呼び出すことができる。すると、顧客は、迅速な修理
と、低い保守コストから恩恵を受ける訳である。
自動的にサービスから除去される。そして、故障要素が
内部診断によってチェックされている間に、処理は、2
重化した他方の側で続けられる。この故障検出機能は、
処理が2重化した他方の側で続けられる間に、サービス
から除去された故障要素上で自動的に診断ルーチンを走
らせる。もしその診断によりある要素の交換の必要あ
り、との決定がなされたなら、システム/88は、その
問題を報告するために、自動的にサポート・センターを
呼び出すことができる。すると、顧客は、迅速な修理
と、低い保守コストから恩恵を受ける訳である。
システム/88は一般的には、米国特許第445321
5号、同第4597084号、同第4654857号及
び同第4816990号に基づく。米国特許第4453
215号の一部が本願の第7図及び第8図に図式的に示
されている。
5号、同第4597084号、同第4654857号及
び同第4816990号に基づく。米国特許第4453
215号の一部が本願の第7図及び第8図に図式的に示
されている。
第7図及び第8図のコンピュータ・システムは、処理装
置12と、ランダム・アクセス記憶装置16と、周辺制
御装置20、24、32と、モジュールの複数の装置の
間の全ての情報を与える単一のバス構造をもつプロセッ
サ・モジュールを有する。各プロセッサ・モジュール内
のバス構造は、2重化対バスA、Bをもち、各機能ユニ
ット12、16、20、24、32も同一の相手ユニッ
トをもつ。非周期周辺装置によって動作する制御装置以
外の各ユニットは、通常、その相手ユニットと、ステッ
プをロックされて同期的に動作する。例えば、プロセッ
サ・モジュールの2つのメモリ・ユニット16、18は
通常、ともに2つの対バスA、Bを駆動し、ともにバス
構造30によって完全に同期して駆動される。
置12と、ランダム・アクセス記憶装置16と、周辺制
御装置20、24、32と、モジュールの複数の装置の
間の全ての情報を与える単一のバス構造をもつプロセッ
サ・モジュールを有する。各プロセッサ・モジュール内
のバス構造は、2重化対バスA、Bをもち、各機能ユニ
ット12、16、20、24、32も同一の相手ユニッ
トをもつ。非周期周辺装置によって動作する制御装置以
外の各ユニットは、通常、その相手ユニットと、ステッ
プをロックされて同期的に動作する。例えば、プロセッ
サ・モジュールの2つのメモリ・ユニット16、18は
通常、ともに2つの対バスA、Bを駆動し、ともにバス
構造30によって完全に同期して駆動される。
コンピュータ・システムは、プロセッサ・モジュール内
の各機能レベルで故障検出を行う。この機能を達成する
ために、エラー検出器が各ユニット内のハードウェア動
作を監視し、ユニット間の情報転送をチェックする。エ
ラーの検出により、プロセッサ・モジュールが、エラー
を生じたバスまたはユニットが別のユニットに情報を転
送しないようにエラーを生じたバスまたはユニットを分
離し、そのモジュールは動作を継続する。その継続され
る動作は、故障のバスまたはユニットの相手側のバスま
たはユニットを使用する。エラーの検出が情報の転送に
先行する場合、継続される動作は、その転送を、故障が
ない場合にその転送が行なわれるであろう時間と同一の
時間にその転送を行うことができる。エラー検出が情報
転送と同時である時には、継続される動作は、転送を反
復することができる。
の各機能レベルで故障検出を行う。この機能を達成する
ために、エラー検出器が各ユニット内のハードウェア動
作を監視し、ユニット間の情報転送をチェックする。エ
ラーの検出により、プロセッサ・モジュールが、エラー
を生じたバスまたはユニットが別のユニットに情報を転
送しないようにエラーを生じたバスまたはユニットを分
離し、そのモジュールは動作を継続する。その継続され
る動作は、故障のバスまたはユニットの相手側のバスま
たはユニットを使用する。エラーの検出が情報の転送に
先行する場合、継続される動作は、その転送を、故障が
ない場合にその転送が行なわれるであろう時間と同一の
時間にその転送を行うことができる。エラー検出が情報
転送と同時である時には、継続される動作は、転送を反
復することができる。
コンピュータ・システムは、上述の故障検出及び回復動
作を迅速に、すなわち1動作サイクル以内に行うことが
できる。コンピュータ・システムは、有効性があやしい
データ転送を、高々単一情報転送分もつだけであるの
で、全体のデータ有効性を保証するためには転送を反復
しさえすればよい。
作を迅速に、すなわち1動作サイクル以内に行うことが
できる。コンピュータ・システムは、有効性があやしい
データ転送を、高々単一情報転送分もつだけであるの
で、全体のデータ有効性を保証するためには転送を反復
しさえすればよい。
プロセッサ・モジュールは、フォールト・トレラント動
作を与えるために、相当なハードウェア冗長性をもって
いるけれども、2重化ユニットをもっていないモジュー
ルでも、やはり完全に動作する。
作を与えるために、相当なハードウェア冗長性をもって
いるけれども、2重化ユニットをもっていないモジュー
ルでも、やはり完全に動作する。
この機能的ユニット冗長性は、どれかのユニットで故障
が生じた時、モジュールが動作を継続するのを可能なら
しめる。一般的に、プロセッサ・モジュールは、故障が
検出されない限り、選択された同期性を以て、連続的に
動作する。そして、どれかのユニットで故障が検出され
ると、そのユニットは、モジュールの他のユニットに情
報を転送することができないように、分離され、切り放
される。切り放されたユニットの相手は、通常、実質的
に中断なく動作を継続する。
が生じた時、モジュールが動作を継続するのを可能なら
しめる。一般的に、プロセッサ・モジュールは、故障が
検出されない限り、選択された同期性を以て、連続的に
動作する。そして、どれかのユニットで故障が検出され
ると、そのユニットは、モジュールの他のユニットに情
報を転送することができないように、分離され、切り放
される。切り放されたユニットの相手は、通常、実質的
に中断なく動作を継続する。
フォールト・トレラント動作を与えるための、モジュー
ル内の機能ユニットの双対2重化に加えて、プロセッサ
・モジュール内の各ユニットは、一般的に、データ転送
に関連するハードウェアの複製をもつ。この機能ユニッ
ト内の複製の目的は、別のユニットとは独立に、そのユ
ニット内で障害をテストすることにある。エラー検出構
造などの、モジュール内の別の構造は、一般的には2重
化されない。
ル内の機能ユニットの双対2重化に加えて、プロセッサ
・モジュール内の各ユニットは、一般的に、データ転送
に関連するハードウェアの複製をもつ。この機能ユニッ
ト内の複製の目的は、別のユニットとは独立に、そのユ
ニット内で障害をテストすることにある。エラー検出構
造などの、モジュール内の別の構造は、一般的には2重
化されない。
プロセッサ・モジュールの全てのユニットにサービスを
行う共通バス構造は、好適には、前述の2レベルの複製
と、Aバスと、Aバスを複製するBバスと、Xバスを形
成する3組の導体をもつ。A及びBバスのおのおのは、
同一のセットのサイクル定義、アドレス、データ、パリ
ティ及び、ユニットの間のエラー情報の転送を警告する
ために比較することのできる他の信号を流す。2重化さ
れていないXバスの導体は、一般的には、タイミング、
エラー状態、及び電力などの、モジュール全体の信号及
び他の動作信号を流す。追加的なCバスは、相手のユニ
ットとの間のローカル通信のために設けられている。
行う共通バス構造は、好適には、前述の2レベルの複製
と、Aバスと、Aバスを複製するBバスと、Xバスを形
成する3組の導体をもつ。A及びBバスのおのおのは、
同一のセットのサイクル定義、アドレス、データ、パリ
ティ及び、ユニットの間のエラー情報の転送を警告する
ために比較することのできる他の信号を流す。2重化さ
れていないXバスの導体は、一般的には、タイミング、
エラー状態、及び電力などの、モジュール全体の信号及
び他の動作信号を流す。追加的なCバスは、相手のユニ
ットとの間のローカル通信のために設けられている。
プロセッサ・モジュールは、ユニットの2重化部分の動
作を比較し、パリティ及び他のエラー・チェック・コー
ドを使用することなどの、各機能ユニット内の技術の結
合と、供給電圧などの動作パラメータの監視によって、
故障を検出する。各中央処理装置は2つの冗長処理部分
をもち、もし比較結果が無効を示すなら、その処理ユニ
ットを、バス構造へ情報を転送しないように分離する。
このことは、プロセッサ・モジュールの他の機能ユニッ
トを、問題の処理装置から生じ得る障害情報から分離す
ることになる。各処理装置は、複製されない仮想メモリ
動作を実行するための段をもつ。この段では、処理装置
は寧ろ、障害を検出するためのパリティ技術を採用す
る。
作を比較し、パリティ及び他のエラー・チェック・コー
ドを使用することなどの、各機能ユニット内の技術の結
合と、供給電圧などの動作パラメータの監視によって、
故障を検出する。各中央処理装置は2つの冗長処理部分
をもち、もし比較結果が無効を示すなら、その処理ユニ
ットを、バス構造へ情報を転送しないように分離する。
このことは、プロセッサ・モジュールの他の機能ユニッ
トを、問題の処理装置から生じ得る障害情報から分離す
ることになる。各処理装置は、複製されない仮想メモリ
動作を実行するための段をもつ。この段では、処理装置
は寧ろ、障害を検出するためのパリティ技術を採用す
る。
ランダム・アクセス・メモリ装置16は、2つの非冗長
メモリ区画によって配列され、そのおのおのは、メモリ
・ワードの異なるバイトの記憶毎に配列されている。こ
の装置は、エラー訂正コードによって、各メモリ区画、
及び2つの区画の複合体の両方で障害を検出する。ここ
でも、エラー検出器は、そのメモリ・ユニットを、潜在
的にエラーの可能性がある情報がバス構造、ひいては別
のユニットに転送されないように無効化する。
メモリ区画によって配列され、そのおのおのは、メモリ
・ワードの異なるバイトの記憶毎に配列されている。こ
の装置は、エラー訂正コードによって、各メモリ区画、
及び2つの区画の複合体の両方で障害を検出する。ここ
でも、エラー検出器は、そのメモリ・ユニットを、潜在
的にエラーの可能性がある情報がバス構造、ひいては別
のユニットに転送されないように無効化する。
メモリ・ユニット16にはまた、2重化されたバス導
体、すなわちバスA及びバスBをチェックする、という
タスクが割当てられている。このため、ユニットは、ア
ドレス信号をテストし、バス構造上のデータ信号をテス
トするバリティ・チェッカをもっている。さらに、コン
パレータが、バスA上の全ての信号を、Bバス上の全て
のデータと比較する。このようにしてどちらかのバスが
故障していることを検出すると、メモリ・ユニットは、
Xバスによって、モジュールの他のユニットに、故障し
ていない側のバスにのみ従うように通知する。
体、すなわちバスA及びバスBをチェックする、という
タスクが割当てられている。このため、ユニットは、ア
ドレス信号をテストし、バス構造上のデータ信号をテス
トするバリティ・チェッカをもっている。さらに、コン
パレータが、バスA上の全ての信号を、Bバス上の全て
のデータと比較する。このようにしてどちらかのバスが
故障していることを検出すると、メモリ・ユニットは、
Xバスによって、モジュールの他のユニットに、故障し
ていない側のバスにのみ従うように通知する。
プロセッサ・モジュールのための周辺制御ユニットは、
共通バス構造との接続のためのバス・インターフェース
区画と、「駆動」及び「チェック」と称される2重化制
御区画と、ユニットがサービスを行う周辺入出力装置と
を採用する。また、ディスク・メモリ52a、52bを
動作させるためのディスク制御ユニット20、22と、
通信パネル50を通じて、端末、プリンタ及びモデムを
もつ通信装置を動作するための通信制御ユニット24、
26と、1つのプロセッサ・モジュールを、多重プロセ
ッサ・システム中の他のプロセッサと相互接続するため
のHSDI制御ユニット32、34が存在する。各例
で、バス・インターフェース区画が、AバスまたはBバ
スの駆動及びチェック制御区画に入力信号を供給し、バ
ス構造のある入力信号の論理エラーをテストし、駆動及
びチェック・チャネルからの信号出力の同一性をチェッ
クする。各周辺制御ユニット中の駆動制御区画は、その
ユニットにサービスするI/O装置に適切な、制御、ア
ドレス、状況及びデータ操作機能を与える。そのユニッ
トのデータ制御区画は、駆動制御区画をチェックする、
という目的のためには実質的に同一である。各制御ユニ
ットの周辺インターフェース区画は、制御ユニットと、
周辺装置の間を通過する信号にエラーがないかどうかを
テストするためのパリティ及びコンパレータ装置の組み
合わせをもつ。
共通バス構造との接続のためのバス・インターフェース
区画と、「駆動」及び「チェック」と称される2重化制
御区画と、ユニットがサービスを行う周辺入出力装置と
を採用する。また、ディスク・メモリ52a、52bを
動作させるためのディスク制御ユニット20、22と、
通信パネル50を通じて、端末、プリンタ及びモデムを
もつ通信装置を動作するための通信制御ユニット24、
26と、1つのプロセッサ・モジュールを、多重プロセ
ッサ・システム中の他のプロセッサと相互接続するため
のHSDI制御ユニット32、34が存在する。各例
で、バス・インターフェース区画が、AバスまたはBバ
スの駆動及びチェック制御区画に入力信号を供給し、バ
ス構造のある入力信号の論理エラーをテストし、駆動及
びチェック・チャネルからの信号出力の同一性をチェッ
クする。各周辺制御ユニット中の駆動制御区画は、その
ユニットにサービスするI/O装置に適切な、制御、ア
ドレス、状況及びデータ操作機能を与える。そのユニッ
トのデータ制御区画は、駆動制御区画をチェックする、
という目的のためには実質的に同一である。各制御ユニ
ットの周辺インターフェース区画は、制御ユニットと、
周辺装置の間を通過する信号にエラーがないかどうかを
テストするためのパリティ及びコンパレータ装置の組み
合わせをもつ。
通信制御ユニット24などの、同期的I/O装置により
動作する周辺制御ユニットは、その相手ユニット24
と、ステップをロックされた同期状態で動作する。しか
し、対のディスク制御ユニット20、22は、異なる非
同期ディスク・メモリにより動作するので、その同期は
限定的である。対のディスク制御ユニット20、22
は、同時に書きこみ動作を行うが、ディスク・メモリが
互いに非同期的に動作する限りにおいて、厳密な同期に
はない。制御ユニット32及びその相手もまた、典型的
には、限定された程度の同期で動作する。
動作する周辺制御ユニットは、その相手ユニット24
と、ステップをロックされた同期状態で動作する。しか
し、対のディスク制御ユニット20、22は、異なる非
同期ディスク・メモリにより動作するので、その同期は
限定的である。対のディスク制御ユニット20、22
は、同時に書きこみ動作を行うが、ディスク・メモリが
互いに非同期的に動作する限りにおいて、厳密な同期に
はない。制御ユニット32及びその相手もまた、典型的
には、限定された程度の同期で動作する。
モジュールのための電源ユニットは、2つのバルク電源
を使用し、そのおのおのは、対のユニットの一方のユニ
ットにのみ動作電力を提供する。このように、1つのバ
ルク電源が、バス構造の1つの2重化部分と、2つの対
メモリ・ユニットの1つと、周辺制御ユニットの各対の
1つのユニットに給電する。バルク電源はまた、プロセ
ッサ・モジュールの非2重化ユニットにも電力を与え
る。このモジュールの各ユニットは、1つのパルク電源
から動作電力を受取り、そのユニットが必要とする動作
電圧を発生する電力供給段をもつ。この電力供給段は、
さらに、供給電圧を監視する。そして、障害的な供給電
圧を検出すると、その電力段は、そのユニットからバス
構造への全ての出力線をアース電位にクランプする信号
を発生する。この動作は、任意のユニットにおける電力
障害が、バス構造への障害的な情報の伝送をもたらすの
を防止する。
を使用し、そのおのおのは、対のユニットの一方のユニ
ットにのみ動作電力を提供する。このように、1つのバ
ルク電源が、バス構造の1つの2重化部分と、2つの対
メモリ・ユニットの1つと、周辺制御ユニットの各対の
1つのユニットに給電する。バルク電源はまた、プロセ
ッサ・モジュールの非2重化ユニットにも電力を与え
る。このモジュールの各ユニットは、1つのパルク電源
から動作電力を受取り、そのユニットが必要とする動作
電圧を発生する電力供給段をもつ。この電力供給段は、
さらに、供給電圧を監視する。そして、障害的な供給電
圧を検出すると、その電力段は、そのユニットからバス
構造への全ての出力線をアース電位にクランプする信号
を発生する。この動作は、任意のユニットにおける電力
障害が、バス構造への障害的な情報の伝送をもたらすの
を防止する。
プロセッサ・モジュールのうちには、実際の情報転送の
前にエラー検出タイミング・フェーズを含む動作サイク
ルによって各情報転送を実行するものがある。この動作
を行うユニット、例えば、周辺装置のための制御ユニッ
トは、このようにして、障害が検出される際の情報転送
を禁止する。しかし、このモジュールは、中断または遅
延なく動作を継続することができ、非禁止相手ユニット
から情報転送を行う。
前にエラー検出タイミング・フェーズを含む動作サイク
ルによって各情報転送を実行するものがある。この動作
を行うユニット、例えば、周辺装置のための制御ユニッ
トは、このようにして、障害が検出される際の情報転送
を禁止する。しかし、このモジュールは、中断または遅
延なく動作を継続することができ、非禁止相手ユニット
から情報転送を行う。
一般的には、動作時間がより重要である中央処理装置と
メモリ・ユニットとを少なくとも含む、プロセッサ・モ
ジュールの他のユニットは、各情報転送を、その転送に
関連するエラー検出と同時に実行する。そして、障害が
検出されると、そのユニットは直ちに、別の処理ユニッ
トに直ぐ前の情報転送を無視するように報知する信号を
発生する。プロセッサ・モジュールは、その障害状態を
報告したユニットの相手からその情報転送を反復するこ
とができる。この動作方法は、各情報転送が、エラー訂
正のための遅延を生じることなく実行される、という点
で、最大の動作速度をもたらすものである。遅延は、障
害が検出される比較的わずかの例でのみ生じる。また、
複数のユニットがアクセスを要求している時に、どのユ
ニットがシステム・バスに対するアクセスを獲得するの
かを決定するためのバス調停手段が設けられている。
メモリ・ユニットとを少なくとも含む、プロセッサ・モ
ジュールの他のユニットは、各情報転送を、その転送に
関連するエラー検出と同時に実行する。そして、障害が
検出されると、そのユニットは直ちに、別の処理ユニッ
トに直ぐ前の情報転送を無視するように報知する信号を
発生する。プロセッサ・モジュールは、その障害状態を
報告したユニットの相手からその情報転送を反復するこ
とができる。この動作方法は、各情報転送が、エラー訂
正のための遅延を生じることなく実行される、という点
で、最大の動作速度をもたらすものである。遅延は、障
害が検出される比較的わずかの例でのみ生じる。また、
複数のユニットがアクセスを要求している時に、どのユ
ニットがシステム・バスに対するアクセスを獲得するの
かを決定するためのバス調停手段が設けられている。
E9.HSDIネットワークを介して相互接続されたフ
ォールト・トレラントS/370モジュール 第7図は、前述の従来技術モジュール10における、S
/370及びS/882重化プロセッサ対12、14の
相互接続を示す。これらは、モジュール10の2重化S
/88ユニット12、14に置き換えられた時、新規且
つ独特のS/370モジュール9を形成する。そのよう
な独特のモジュール9が、モジュール10のための、第
6B及び6C図に示すのと同様の様式でS/88 HS
DIとネットワークによって相互接続されている時、そ
れらは、フォールト・トレランスと、単一システム・イ
メージと、ホットプラグ可能性と、同一モジュール内の
複数S/88処理装置間でのI/O負荷共有などのS/
88の機能をもつ(S/88複合体でなくて、S/37
0複合体を形成する。
ォールト・トレラントS/370モジュール 第7図は、前述の従来技術モジュール10における、S
/370及びS/882重化プロセッサ対12、14の
相互接続を示す。これらは、モジュール10の2重化S
/88ユニット12、14に置き換えられた時、新規且
つ独特のS/370モジュール9を形成する。そのよう
な独特のモジュール9が、モジュール10のための、第
6B及び6C図に示すのと同様の様式でS/88 HS
DIとネットワークによって相互接続されている時、そ
れらは、フォールト・トレランスと、単一システム・イ
メージと、ホットプラグ可能性と、同一モジュール内の
複数S/88処理装置間でのI/O負荷共有などのS/
88の機能をもつ(S/88複合体でなくて、S/37
0複合体を形成する。
特に、独自モジュール9の相手ユニット21、23中の
S/370プロセッサは、個々のS/370オペレーテ
ィング・システムの制御の下でS/370命令を実行
し、相互接続されたS/88プロセッサは、S/88ア
プリケーション・プログラムと連結したS/88オペレ
ーティング・システムの制御の下で、個別のS/88記
憶及びS/88周辺装置と連結したS/370 I/O
動作の全てを実行する。
S/370プロセッサは、個々のS/370オペレーテ
ィング・システムの制御の下でS/370命令を実行
し、相互接続されたS/88プロセッサは、S/88ア
プリケーション・プログラムと連結したS/88オペレ
ーティング・システムの制御の下で、個別のS/88記
憶及びS/88周辺装置と連結したS/370 I/O
動作の全てを実行する。
さらに、この新規なモジュール9内には、モジュール9
内でのS/370複数プロセッサ環境を可能ならしめる
ために、S/370−S/88プロセッサ対ユニット2
5及び27と、29及び31を収容することができる。
さらに、対ユニット21、23と、25,27と、2
9、31内のS/370プロセッサは、各組対毎に異な
るS/370オペレーティング・システムの下で動作す
ることができる。
内でのS/370複数プロセッサ環境を可能ならしめる
ために、S/370−S/88プロセッサ対ユニット2
5及び27と、29及び31を収容することができる。
さらに、対ユニット21、23と、25,27と、2
9、31内のS/370プロセッサは、各組対毎に異な
るS/370オペレーティング・システムの下で動作す
ることができる。
E10.2重化プロセッサ対ユニット21、23の一般
的説明 第8図は、S/370及びS/88プロセッサをユニッ
ト21内で相互接続するための好適な形式を示す図であ
る。
的説明 第8図は、S/370及びS/88プロセッサをユニッ
ト21内で相互接続するための好適な形式を示す図であ
る。
ユニット21の下部分は、各プロセッサ要素の対60、
62において単一のプロセッサ要素を除けば、前述の米
国特許第4453215号のプロセッサ12と実質的に
同一の中央プロセッサ12をもつ。米国特許第4453
215号においては、それぞれがユーザー・コードとオ
ペレーティング・システム・コードとを実行するため
に、参照番号60及び62のところに双対プロセッサが
設けられている。
62において単一のプロセッサ要素を除けば、前述の米
国特許第4453215号のプロセッサ12と実質的に
同一の中央プロセッサ12をもつ。米国特許第4453
215号においては、それぞれがユーザー・コードとオ
ペレーティング・システム・コードとを実行するため
に、参照番号60及び62のところに双対プロセッサが
設けられている。
本発明では、その両方の機能が、単一のマイクロプロセ
ッサ、好適にはモトローラMC68020マイクロプロ
セッサによって実行される。尚、MC68020マイク
ロプロセッサは、モトローラ社発行の、著作権198
9、1988、MC68020 Users Mann
ual、第3版に説明されている。
ッサ、好適にはモトローラMC68020マイクロプロ
セッサによって実行される。尚、MC68020マイク
ロプロセッサは、モトローラ社発行の、著作権198
9、1988、MC68020 Users Mann
ual、第3版に説明されている。
このように、各プロセッサ要素(PE)60及び62
は、好適にはモトローラMC68020マイクロプロセ
ッサである。マルチプレクサ(MPLX)61、63が
プロセッサ要素60、62を、米国特許第445321
5号に詳述されるような方法で、アドレス/データ/制
御A及びBバスとトランシーバ12eによってバス構造
30に接続する。また、要素60、62のためにローカ
ル制御64、66と仮想記憶マップ12eが設けられて
いる。コンパレータ(比較)12fは、バス30とプロ
セッサ要素60、62の間を行来する制御、データ及び
アドレス線上の信号を比較することによって、エラーを
もたらす障害をチェックする。その信号の不一致は、コ
ンパレータ12fから共通制御回路86へ至るエラー信
号を引き起こし、共通制御回路86は、バス構造30の
Xバス上にエラー信号を送出し、処理ユニット12を切
り放すためにトランシーバ12e中のドライバ(図示し
ない)を無効化する。クランプ回路89、90は、ユニ
ット12の電力障害に応答して、ユニット12からの全
ての出力線をアースにクランプする。これらの要素は、
米国特許第4453215号に詳述されている。
は、好適にはモトローラMC68020マイクロプロセ
ッサである。マルチプレクサ(MPLX)61、63が
プロセッサ要素60、62を、米国特許第445321
5号に詳述されるような方法で、アドレス/データ/制
御A及びBバスとトランシーバ12eによってバス構造
30に接続する。また、要素60、62のためにローカ
ル制御64、66と仮想記憶マップ12eが設けられて
いる。コンパレータ(比較)12fは、バス30とプロ
セッサ要素60、62の間を行来する制御、データ及び
アドレス線上の信号を比較することによって、エラーを
もたらす障害をチェックする。その信号の不一致は、コ
ンパレータ12fから共通制御回路86へ至るエラー信
号を引き起こし、共通制御回路86は、バス構造30の
Xバス上にエラー信号を送出し、処理ユニット12を切
り放すためにトランシーバ12e中のドライバ(図示し
ない)を無効化する。クランプ回路89、90は、ユニ
ット12の電力障害に応答して、ユニット12からの全
ての出力線をアースにクランプする。これらの要素は、
米国特許第4453215号に詳述されている。
第8図の上方部分は、S/370プロセッサ要素85、
87の対をS/88バス構造、及びS/88プロセッサ
要素60、62に接続する好適な形式を示す図である。
プロセッサ要素85、87は、マルチプレクサ71、7
3及びトランシーバ13を介して、要素60、62がバ
ス構造30に接続されているのと論理的に同様の様式で
バス構造30に接続されている。
87の対をS/88バス構造、及びS/88プロセッサ
要素60、62に接続する好適な形式を示す図である。
プロセッサ要素85、87は、マルチプレクサ71、7
3及びトランシーバ13を介して、要素60、62がバ
ス構造30に接続されているのと論理的に同様の様式で
バス構造30に接続されている。
コンパレータ(比較回路)15(第32A及び32B図
に詳述)と、クランプ回路77及び79と、共通制御7
5が設けられ、制御回路86は、プロセッサ要素60、
62のS/88割り込み機構に結合されている。S/3
70プロセッサ85、87とその関連ハードウェアは、
エラー処理と回復を行うためにS/88を使用する。こ
のため、共通制御回路75は、共通制御回路86が、比
較回路15によって検出されたエラーを処理することを
可能ならしめるために、線95を介して共通制御回路8
6に結合される。この結合線95はまた、共通制御75
及び86が、どちらかのプロセッサ対にエラーが生じた
場合に、その両方のプロセッサを切り放すことを可能な
らしめる。
に詳述)と、クランプ回路77及び79と、共通制御7
5が設けられ、制御回路86は、プロセッサ要素60、
62のS/88割り込み機構に結合されている。S/3
70プロセッサ85、87とその関連ハードウェアは、
エラー処理と回復を行うためにS/88を使用する。こ
のため、共通制御回路75は、共通制御回路86が、比
較回路15によって検出されたエラーを処理することを
可能ならしめるために、線95を介して共通制御回路8
6に結合される。この結合線95はまた、共通制御75
及び86が、どちらかのプロセッサ対にエラーが生じた
場合に、その両方のプロセッサを切り放すことを可能な
らしめる。
ユニット21中のS/370プロセッサ装置の好適な構
成は、中央処理(プロセッサ)要素85、87と、記憶
管理ユニット81、83と、プロセッサ間(例えばS/
370とS/88)インターフェース89、91をも
つ。記憶管理ユニット81、83は、マルチプレクサ7
1、73と、トランシーバ13と、バス構造30を介し
て、プロセッサ要素85、87をS/88主記憶16に
結合する。
成は、中央処理(プロセッサ)要素85、87と、記憶
管理ユニット81、83と、プロセッサ間(例えばS/
370とS/88)インターフェース89、91をも
つ。記憶管理ユニット81、83は、マルチプレクサ7
1、73と、トランシーバ13と、バス構造30を介し
て、プロセッサ要素85、87をS/88主記憶16に
結合する。
インターフェース89、91は、S/370プロセッサ
要素85、87をそれぞれ、S/88プロセッサ要素6
2、60のプロセッサ・バスに結合する。
要素85、87をそれぞれ、S/88プロセッサ要素6
2、60のプロセッサ・バスに結合する。
相手のプロセッサ・ユニット23は、プロセッサ・ユニ
ット21と同一である。上記説明に関連して、ユニット
21中の2つのプロセッサ要素60、62及び、ユニッ
ト23中の対応する2つの要素(図示しない)は全て、
同一のS/88オペレーティング・システムの制御の下
で、同一の命令を同時に実行するために、通常ロックス
テップ的に動作する。
ット21と同一である。上記説明に関連して、ユニット
21中の2つのプロセッサ要素60、62及び、ユニッ
ト23中の対応する2つの要素(図示しない)は全て、
同一のS/88オペレーティング・システムの制御の下
で、同一の命令を同時に実行するために、通常ロックス
テップ的に動作する。
同様に、ユニット21中の2つのプロセッサ要素85、
87及び、ユニット23中の対応する2つの要素(図示
しない)も、同一のS/370オペレーティング・シス
テムの制御の下で、同一の命令を同時に実行するため
に、互いにロックステップ的に動作する。
87及び、ユニット23中の対応する2つの要素(図示
しない)も、同一のS/370オペレーティング・シス
テムの制御の下で、同一の命令を同時に実行するため
に、互いにロックステップ的に動作する。
ユニット21または23にエラーが生じた場合、そのユ
ニットは、別のユニットによるフォールト・トレラント
動作の継続を可能ならしめるために、サービスから除去
される。
ニットは、別のユニットによるフォールト・トレラント
動作の継続を可能ならしめるために、サービスから除去
される。
さて、S/370処理ユニットのある特定の実現構成に
ついて以下説明するけれども、インターナショナル・ビ
ジネス・マシーンズ・コーポレーションから発行され入
手可能な、IBM System/370 Principles ofOperation
(発行番号GA22-7000-10、第11版、1987年9月)
に記述される必要条件と互換な別の実現構成を使用して
もよいことが理解されよう。
ついて以下説明するけれども、インターナショナル・ビ
ジネス・マシーンズ・コーポレーションから発行され入
手可能な、IBM System/370 Principles ofOperation
(発行番号GA22-7000-10、第11版、1987年9月)
に記述される必要条件と互換な別の実現構成を使用して
もよいことが理解されよう。
第9A及び第9B図は、第8図のプロセッサ・ユニット
21のS/370及びS/88構成要素の物理的パッケ
ージングの一形態を示す図である。対の処理要素85、
87を含むS/370要素が1つのボード101上に取
り付けられ、対の処理要素60、62を含むS/88要
素が別のボード102上に取り付けられる。2つのボー
ド101及び102は、サンドイッチ対103を形成す
るように互いに剛性的に接着され、モジュール9の背面
パネル(図示しない)の2つのスロットに挿入するよう
に適合され、慣用的な背面パネル結線技術によって、ボ
ード101及び102上の要素が、第8図及び米国特許
第4453215号に示されているように、互いに且つ
バス構造30に接続される。
21のS/370及びS/88構成要素の物理的パッケ
ージングの一形態を示す図である。対の処理要素85、
87を含むS/370要素が1つのボード101上に取
り付けられ、対の処理要素60、62を含むS/88要
素が別のボード102上に取り付けられる。2つのボー
ド101及び102は、サンドイッチ対103を形成す
るように互いに剛性的に接着され、モジュール9の背面
パネル(図示しない)の2つのスロットに挿入するよう
に適合され、慣用的な背面パネル結線技術によって、ボ
ード101及び102上の要素が、第8図及び米国特許
第4453215号に示されているように、互いに且つ
バス構造30に接続される。
S/370プロセッサの、S/88プロセッサに対する
直接結合を説明する前に、S/370プロセッサをし
て、(1)S/88主記憶の一部を使用し、(2)S/
88仮想記憶空間のあるものを利用するS/88とコマ
ンド及びデータを交換することを可能ならしめる機構に
ついて簡単に説明しておくことは、本発明の理解を助け
るであろう。これらの機構については後でも詳細に説明
する。
直接結合を説明する前に、S/370プロセッサをし
て、(1)S/88主記憶の一部を使用し、(2)S/
88仮想記憶空間のあるものを利用するS/88とコマ
ンド及びデータを交換することを可能ならしめる機構に
ついて簡単に説明しておくことは、本発明の理解を助け
るであろう。これらの機構については後でも詳細に説明
する。
第10図は、1つのモジュール9の記憶管理ユニット1
05による、実記憶16に対するS/88仮想記憶のマ
ッピングの好適な形式を示す図である。仮想記憶空間1
06は、S/88オペレーティング・システム空間10
7と、ユーザー・アプリケーション空間108とに分割
される。そのスペース内で、領域109(アドレス00
7E0000から007EFFFF)は、各S/370
プロセッサ要素を、ユニット21などのプロセッサ・ユ
ニット中のS/88プスセッサ要素に結合するために使
用されるハードウェア及びコードのために予約されてい
る。アドレス空間109は、通常のシステム動作の間S
/88オペレーティング・システムに対して透過的にな
されている。この空間109の用途については後で詳細
に説明する。
05による、実記憶16に対するS/88仮想記憶のマ
ッピングの好適な形式を示す図である。仮想記憶空間1
06は、S/88オペレーティング・システム空間10
7と、ユーザー・アプリケーション空間108とに分割
される。そのスペース内で、領域109(アドレス00
7E0000から007EFFFF)は、各S/370
プロセッサ要素を、ユニット21などのプロセッサ・ユ
ニット中のS/88プスセッサ要素に結合するために使
用されるハードウェア及びコードのために予約されてい
る。アドレス空間109は、通常のシステム動作の間S
/88オペレーティング・システムに対して透過的にな
されている。この空間109の用途については後で詳細
に説明する。
システム初期化の間に、記憶管理ユニット105は、S
/88主記憶装置16内に、ユニット21及び23など
の組(partnered)ユニット中の4つのS/370プロセ
ッサ要素からなる各セット毎に、S/370主記憶領域
を割当てる。こうして、組みユニット21、23と、2
5、27と、29、31のそれぞれに、3つのS/37
0主記憶領域162、163及び164が設けられる。
組みのユニット内のS/88プロセッサ要素は、米国特
許第4453215号に示すような様式で、記憶装置1
6の残りの部分にアクセスする。
/88主記憶装置16内に、ユニット21及び23など
の組(partnered)ユニット中の4つのS/370プロセ
ッサ要素からなる各セット毎に、S/370主記憶領域
を割当てる。こうして、組みユニット21、23と、2
5、27と、29、31のそれぞれに、3つのS/37
0主記憶領域162、163及び164が設けられる。
組みのユニット内のS/88プロセッサ要素は、米国特
許第4453215号に示すような様式で、記憶装置1
6の残りの部分にアクセスする。
S/370記憶領域162乃至164は、後述するよう
に、S/88オペレーティング・システムが、これらの
領域が「盗られて」おり、S/88空間に戻されないな
ら記憶管理ユニットによって再割当て可能でない、とい
うことを知ることができないような様式で、割当てられ
る。S/370システムは仮想システムであるので、そ
れはアドレス変換を介して主記憶領域にアクセスする。
組の主記憶装置18も、同一のS/370主記憶領域
(図示しない)を必要とする。各S/370プロセッサ
要素は、その個別のS/370主記憶領域にのみアクセ
スすることができ、それがS/88主記憶にアクセスし
ようとする試みであるならエラー信号を発生する。S/
88プロセッサはしかし、S/88プロセッサ要素がそ
れのS/370プロセッサ要素のためのI/Oコントロ
ーラとして動作するときに、S/370 I/O動作の
間に、S/370プロセッサ要素のS/370主記憶領
域にアクセス(またはアクセスを導く)ことができる。
に、S/88オペレーティング・システムが、これらの
領域が「盗られて」おり、S/88空間に戻されないな
ら記憶管理ユニットによって再割当て可能でない、とい
うことを知ることができないような様式で、割当てられ
る。S/370システムは仮想システムであるので、そ
れはアドレス変換を介して主記憶領域にアクセスする。
組の主記憶装置18も、同一のS/370主記憶領域
(図示しない)を必要とする。各S/370プロセッサ
要素は、その個別のS/370主記憶領域にのみアクセ
スすることができ、それがS/88主記憶にアクセスし
ようとする試みであるならエラー信号を発生する。S/
88プロセッサはしかし、S/88プロセッサ要素がそ
れのS/370プロセッサ要素のためのI/Oコントロ
ーラとして動作するときに、S/370 I/O動作の
間に、S/370プロセッサ要素のS/370主記憶領
域にアクセス(またはアクセスを導く)ことができる。
E11.S/370及びS/88プロセッサ要素の結合 第8図は、ユニット21、23のおのおので2つずつの
組みとなった、プロセッサ要素85などの4つのS/3
70プロセッサ要素と、ユニット21、23のおのおの
で2つずつの組みとなった、プロセッサ要素68などの
4つのプロセッサ要素S/88が与えられ、それらが、
全てのS/370プロセッサ要素が同時に同一のS/3
70命令を実行し、全てのS/88プロセッサ要素が同
時に同一のS/88命令を実行するように結合される様
子を図式的に示している。このように、4つのS/37
0プロセッサは、全て、プログラム実行に関する限り、
1つのS/370プロセッサ・ユニットとして動作す
る。同様に、4つのS/88プロセッサ要素は全て、1
つのS/88プロセッサ・ユニットとして働く。
組みとなった、プロセッサ要素85などの4つのS/3
70プロセッサ要素と、ユニット21、23のおのおの
で2つずつの組みとなった、プロセッサ要素68などの
4つのプロセッサ要素S/88が与えられ、それらが、
全てのS/370プロセッサ要素が同時に同一のS/3
70命令を実行し、全てのS/88プロセッサ要素が同
時に同一のS/88命令を実行するように結合される様
子を図式的に示している。このように、4つのS/37
0プロセッサは、全て、プログラム実行に関する限り、
1つのS/370プロセッサ・ユニットとして動作す
る。同様に、4つのS/88プロセッサ要素は全て、1
つのS/88プロセッサ・ユニットとして働く。
それゆえ、説明を容易にするために、要素の多重複製に
ついて説明が必要である場合を除き、以下の説明は、主
として1つのS/370プロセッサ要素85及び1つの
S/88プロセッサ要素62と、それに関連するハード
ウェア及びプログラム・コードに言及するものとする。
ついて説明が必要である場合を除き、以下の説明は、主
として1つのS/370プロセッサ要素85及び1つの
S/88プロセッサ要素62と、それに関連するハード
ウェア及びプログラム・コードに言及するものとする。
同様に、例えばマルチプレクサ61、63、71、73
及びトランシーバ12e、11による、バス構造30に
対するプロセッサ要素の結合も、説明の便宜上、実質的
に記載から省くこととする。この結合に関して、第32
図を参照されたい。
及びトランシーバ12e、11による、バス構造30に
対するプロセッサ要素の結合も、説明の便宜上、実質的
に記載から省くこととする。この結合に関して、第32
図を参照されたい。
それゆえ、第11図は、プロセッサ・バス170と、S
/370記憶管理ユニット81を含む第1の経路によっ
て、システム・バス30及びS/88記憶16にプロセ
ッサ要素85が結合された様子を示している。プロセッ
サ要素85は、プロセッサ要素間インターフェース89
を含む第2の経路によって、プロセッサ要素62のプロ
セッサ・バス161に結合されているものとして示され
ている。プロセッサ要素85は、記憶16中の、割当て
られたS/370主記憶領域162からデータ及び命令
をフェッチ(及び記憶)するためのS/370プログラ
ム実行の間に第1の経路を使用する。また、プロセッサ
要素62は、インターフェース89を含む第2の経路上
で、プロセッサ要素85のためのS/370 I/O動
作を実行する。
/370記憶管理ユニット81を含む第1の経路によっ
て、システム・バス30及びS/88記憶16にプロセ
ッサ要素85が結合された様子を示している。プロセッ
サ要素85は、プロセッサ要素間インターフェース89
を含む第2の経路によって、プロセッサ要素62のプロ
セッサ・バス161に結合されているものとして示され
ている。プロセッサ要素85は、記憶16中の、割当て
られたS/370主記憶領域162からデータ及び命令
をフェッチ(及び記憶)するためのS/370プログラ
ム実行の間に第1の経路を使用する。また、プロセッサ
要素62は、インターフェース89を含む第2の経路上
で、プロセッサ要素85のためのS/370 I/O動
作を実行する。
好適な実施例においては、S/370チップ・セット1
50(第11図)は、プロセッサ要素85と、クロック
152と、ディレクトリ・ルックアサイド・テーブル
(DLAT)341をもつキャッシュ・コントローラ1
53と、バス・アダプタ154と、オプションの浮動小
数点コプロセッサ151と、S/370アーキテクチャ
をサポートするマイクロコードのセットを記憶するため
の制御記憶171のための個別の機能チップを含む。こ
のS/370チップは、インターナショナル・ビジネス
・マシーンズ・コーポレーションによって販売されてい
る、(VSE/SP、VM/SP、IX/370など
の)既存のS/370オペレーティング・システムのど
れかによって動作されるように適合することができる。
50(第11図)は、プロセッサ要素85と、クロック
152と、ディレクトリ・ルックアサイド・テーブル
(DLAT)341をもつキャッシュ・コントローラ1
53と、バス・アダプタ154と、オプションの浮動小
数点コプロセッサ151と、S/370アーキテクチャ
をサポートするマイクロコードのセットを記憶するため
の制御記憶171のための個別の機能チップを含む。こ
のS/370チップは、インターナショナル・ビジネス
・マシーンズ・コーポレーションによって販売されてい
る、(VSE/SP、VM/SP、IX/370など
の)既存のS/370オペレーティング・システムのど
れかによって動作されるように適合することができる。
キャッシュ・コントローラ153は、記憶制御インター
フェース(STCI)155とともに、S/370記憶
管理ユニット81を形成する。バス・アダプタ154及
びバス制御ユニット(BCU)156は、プロセッサ要
素インターフェース89のためのプロセッサ要素を含
む。
フェース(STCI)155とともに、S/370記憶
管理ユニット81を形成する。バス・アダプタ154及
びバス制御ユニット(BCU)156は、プロセッサ要
素インターフェース89のためのプロセッサ要素を含
む。
好適な実施例においては、プロセッサ要素85などのS
/370CPUは、32ピット・データ・フローと、3
2ビット算術/論理ユニット(ALU)と、3つのポー
ト・データ・ローカル記憶中の32ビット・レジスタ
と、8バイトS/370命令バッファをもつ32ビット
・マイクロプロセッサである。S/370命令は、ハー
ドウェア中で実行されるかまたは、マイクロ命令によっ
て解釈される。チップ153は、S/370プログラム
命令及びデータと、関連記憶制御機能のためのキャッシ
ュ記憶を与える。チップ153は、プロセッサ要素85
がそのプログラム命令を実行するときに、プロセッサ要
素85から発行される全ての記憶要求を処理する。チッ
プ153はまた、I/Oデータの転送時に、バス・アダ
プタ154からの要求をも処理する。
/370CPUは、32ピット・データ・フローと、3
2ビット算術/論理ユニット(ALU)と、3つのポー
ト・データ・ローカル記憶中の32ビット・レジスタ
と、8バイトS/370命令バッファをもつ32ビット
・マイクロプロセッサである。S/370命令は、ハー
ドウェア中で実行されるかまたは、マイクロ命令によっ
て解釈される。チップ153は、S/370プログラム
命令及びデータと、関連記憶制御機能のためのキャッシ
ュ記憶を与える。チップ153は、プロセッサ要素85
がそのプログラム命令を実行するときに、プロセッサ要
素85から発行される全ての記憶要求を処理する。チッ
プ153はまた、I/Oデータの転送時に、バス・アダ
プタ154からの要求をも処理する。
バス・アダプタ154及びBCU156は、入出力動作
の間に、内部S/370プロセッサ・バス170をS/
88プロセッサ・バス161に直接に(あるいは緊密
に)相互接続するための論理及び制御を与える。BCU
156は、プロセッサ要素85及び62のプロセッサ・
バスを互いに直接接合するための主要な機構である。後
述するように、プロセッサ要素85及び62の間でデー
タ及びコマンドを転送するために、プロセッサ要素62
がその関連システム・ハードウェアから「切り放され
た」とき、S/88プロセッサ要素(PE)62と対話
するのがこのハードウェア機構である。
の間に、内部S/370プロセッサ・バス170をS/
88プロセッサ・バス161に直接に(あるいは緊密
に)相互接続するための論理及び制御を与える。BCU
156は、プロセッサ要素85及び62のプロセッサ・
バスを互いに直接接合するための主要な機構である。後
述するように、プロセッサ要素85及び62の間でデー
タ及びコマンドを転送するために、プロセッサ要素62
がその関連システム・ハードウェアから「切り放され
た」とき、S/88プロセッサ要素(PE)62と対話
するのがこのハードウェア機構である。
クロック・チップ152(第12図)は、クロック信号
発生のための集中論理を使用し、別のチップ85、15
1、153及び154のおのおのに適切なクロック信号
を供給する。クロック152は一方、S/370プロセ
ッサ要素85とS/88プロセッサ要素62の両方を同
期させるために、システム/88バス30からのクロッ
ク信号によって制御される。
発生のための集中論理を使用し、別のチップ85、15
1、153及び154のおのおのに適切なクロック信号
を供給する。クロック152は一方、S/370プロセ
ッサ要素85とS/88プロセッサ要素62の両方を同
期させるために、システム/88バス30からのクロッ
ク信号によって制御される。
プロセッサ結合/切り放しハードウェア以外に、2つの
異なるS/370及びS/88ハードウェア・アーキテ
クチャを組合せる統合部分は、非フォールト・トレラン
ト・ハードウェアを、フォールト・トレラント・バス構
造30に前以て同期的に接続する手段である。好適な実
施例では、このインターフェースは、S/370キャッ
シュ・コントローラ153及びS/88システム・バス
30と通信しなくてはならないSTCI論理155によ
って処理される。さらに、非フォールト・トレラント・
ハードウェアは、互いに相手ユニットをもってロックス
テップで走る能力をもつ「チェック」及び「駆動」論理
を形成するように、第8図に示すようにボード上で複製
されなくてはならない。このように、ボード101及び
102上のシステム要素からなる「単一の」CPUは、
その2重化された相手ユニットとロックステップで走ら
なくてはならない。最適な性能及び機能性を維持しつつ
上述の必要条件を実現するためのタスクは、異なるクロ
ック源の同期化を要する。
異なるS/370及びS/88ハードウェア・アーキテ
クチャを組合せる統合部分は、非フォールト・トレラン
ト・ハードウェアを、フォールト・トレラント・バス構
造30に前以て同期的に接続する手段である。好適な実
施例では、このインターフェースは、S/370キャッ
シュ・コントローラ153及びS/88システム・バス
30と通信しなくてはならないSTCI論理155によ
って処理される。さらに、非フォールト・トレラント・
ハードウェアは、互いに相手ユニットをもってロックス
テップで走る能力をもつ「チェック」及び「駆動」論理
を形成するように、第8図に示すようにボード上で複製
されなくてはならない。このように、ボード101及び
102上のシステム要素からなる「単一の」CPUは、
その2重化された相手ユニットとロックステップで走ら
なくてはならない。最適な性能及び機能性を維持しつつ
上述の必要条件を実現するためのタスクは、異なるクロ
ック源の同期化を要する。
好適な実施例では、S/88システム・クロック38
(第7図)が、共通バス構造30に接続された全ての装
置によって受け取られ、2つのS/88クロック・サイ
クルがバス30のサイクル毎に決定される。このシステ
ム・クロック38は、そのバス上の同期的通信を保証
し、個々のプロセッサまたはコントローラによって、そ
のシステム・クロックに基づき内部クロック周波数源を
作成するために使用される。S/370ハードウェア
は、S/370クロック・チップ152への発振器入力
を利用し、S/370クロック・チップ152は、それ
ぞれ別のS/370チップ85、151、153、15
4、155に対する固有のクロックの組を発生する。こ
のクロック・チップ152は、動作温度、製造偏差など
のさまざまなパラメータに基づく本来的な遅延を有す
る。この遅延偏差は、冗長チェック及び駆動論理の間の
ロックステップ同期を維持することと、STCI155
及びバス構造30の間の完全パイプラインを維持するこ
との両方において許容できない。
(第7図)が、共通バス構造30に接続された全ての装
置によって受け取られ、2つのS/88クロック・サイ
クルがバス30のサイクル毎に決定される。このシステ
ム・クロック38は、そのバス上の同期的通信を保証
し、個々のプロセッサまたはコントローラによって、そ
のシステム・クロックに基づき内部クロック周波数源を
作成するために使用される。S/370ハードウェア
は、S/370クロック・チップ152への発振器入力
を利用し、S/370クロック・チップ152は、それ
ぞれ別のS/370チップ85、151、153、15
4、155に対する固有のクロックの組を発生する。こ
のクロック・チップ152は、動作温度、製造偏差など
のさまざまなパラメータに基づく本来的な遅延を有す
る。この遅延偏差は、冗長チェック及び駆動論理の間の
ロックステップ同期を維持することと、STCI155
及びバス構造30の間の完全パイプラインを維持するこ
との両方において許容できない。
第12C及び第19C図に示すように、好適な実施例
は、ボード101をして、S/370プロセッサ・サイ
クルを、S/88バス30サイクルと同期させつつ、リ
セット後(すなわち、電源投入など)ロックステップで
走らせることを可能ならしめるように、冗長クロック同
期論理158(及び、その相手のS/370プロセッサ
・ユニットのための冗長クロック同期論理(図示しな
い))を利用する。S/88クロック38からのクロッ
ク信号は、バス製造30を介して、S/88とS/37
0の同期のためと、システム・バス30を介しての主記
憶へのアクセスのために、同期論理158とSTCI論
理155に供給される。
は、ボード101をして、S/370プロセッサ・サイ
クルを、S/88バス30サイクルと同期させつつ、リ
セット後(すなわち、電源投入など)ロックステップで
走らせることを可能ならしめるように、冗長クロック同
期論理158(及び、その相手のS/370プロセッサ
・ユニットのための冗長クロック同期論理(図示しな
い))を利用する。S/88クロック38からのクロッ
ク信号は、バス製造30を介して、S/88とS/37
0の同期のためと、システム・バス30を介しての主記
憶へのアクセスのために、同期論理158とSTCI論
理155に供給される。
この同期化は、先ず、S/370クロック・チップ15
2への所望のS/370発振器入力周波数を達成するた
めに、S/88クロックを乗算することによって達成さ
れる。この場合、それはS/88及びS/370クロッ
ク・サイクルの2倍である。第2に、S/370サイク
ルの開始を表す線159上のフィードバック・パルス
が、それ自体はS/88半サイクル周期に等しい、S/
370発振器入力クロック周期の前端及び後端を表すS
/88クロックによってサンプルされる。次に、線15
9上のサンプルされたS/370クロック・フィードバ
ック・パルスがサンプルされる窓から外れ、またはS/
88クロックの開始に重なるリセットの場合、S/37
0発振器入力が1つのS/370サイクルについて否定
される。このことは、この実施例では、次のS/370
クロック・フィールドバック・パルス(線159上)の
サンプリングが、その所望の窓内に収まることを保証す
るように、現在のS/370クロックを拡張する働きを
行う。第32図に詳細に示す(例えば参照番号402a
乃至402g)全ての比較論理15(第8図)は、チェ
ック及び駆動ハードウェアの同期を可能ならしめるため
に、この期間は無視される。
2への所望のS/370発振器入力周波数を達成するた
めに、S/88クロックを乗算することによって達成さ
れる。この場合、それはS/88及びS/370クロッ
ク・サイクルの2倍である。第2に、S/370サイク
ルの開始を表す線159上のフィードバック・パルス
が、それ自体はS/88半サイクル周期に等しい、S/
370発振器入力クロック周期の前端及び後端を表すS
/88クロックによってサンプルされる。次に、線15
9上のサンプルされたS/370クロック・フィードバ
ック・パルスがサンプルされる窓から外れ、またはS/
88クロックの開始に重なるリセットの場合、S/37
0発振器入力が1つのS/370サイクルについて否定
される。このことは、この実施例では、次のS/370
クロック・フィールドバック・パルス(線159上)の
サンプリングが、その所望の窓内に収まることを保証す
るように、現在のS/370クロックを拡張する働きを
行う。第32図に詳細に示す(例えば参照番号402a
乃至402g)全ての比較論理15(第8図)は、チェ
ック及び駆動ハードウェアの同期を可能ならしめるため
に、この期間は無視される。
それゆえ、S/370プロセッサ・サイクルは、S/8
8クロック周期の開始のS/88半サイクル周期内に開
始することが保証される。パス構造30及びS/370
キャッシュ・コントローラ153の間の全ての転送タイ
ミングは、最悪でもこの半サイクルの遅延しか呈さな
い。さらに、比較論理15は、S/88クロックでサン
プルされる線によってのみ供給され、以て「破断」論理
403の、随伴S/88プロセッサ・ボード102との
同期を保証する。よって、チェック及び駆動S/370
ハードウェアは実際はその個々のクロック発生論理にお
ける遅延偏差によってわずかに同期から外れるかもしれ
ないが、そのクロックの前後端はバス構造30に共通な
現在のS/88クロック38に相対的にロックステップ
的に走ることになり、遅延がS/88クロック・サイク
ルの開始後半サイクル以上になることは決してない。同
期論理158は、半サイクル周期を超えるドリフトがな
いことを保証するために、線159上のS/370クロ
ック・フィールドバックを連続的にモニタする。この実
施例においては、任意のシステム・リセットの間に両端
を同期させるには最大1バス30サイクルが必要であ
る。しかし、1つのクロック端をしてそのS/370ク
ロックを「延長」させる、リセットからの全体の遅延に
おける何らかのドリフトは、ボード「破断」状態、すな
わち、障害をもたらすことになる。
8クロック周期の開始のS/88半サイクル周期内に開
始することが保証される。パス構造30及びS/370
キャッシュ・コントローラ153の間の全ての転送タイ
ミングは、最悪でもこの半サイクルの遅延しか呈さな
い。さらに、比較論理15は、S/88クロックでサン
プルされる線によってのみ供給され、以て「破断」論理
403の、随伴S/88プロセッサ・ボード102との
同期を保証する。よって、チェック及び駆動S/370
ハードウェアは実際はその個々のクロック発生論理にお
ける遅延偏差によってわずかに同期から外れるかもしれ
ないが、そのクロックの前後端はバス構造30に共通な
現在のS/88クロック38に相対的にロックステップ
的に走ることになり、遅延がS/88クロック・サイク
ルの開始後半サイクル以上になることは決してない。同
期論理158は、半サイクル周期を超えるドリフトがな
いことを保証するために、線159上のS/370クロ
ック・フィールドバックを連続的にモニタする。この実
施例においては、任意のシステム・リセットの間に両端
を同期させるには最大1バス30サイクルが必要であ
る。しかし、1つのクロック端をしてそのS/370ク
ロックを「延長」させる、リセットからの全体の遅延に
おける何らかのドリフトは、ボード「破断」状態、すな
わち、障害をもたらすことになる。
第12図は、第11図の構成をより詳細に示すものであ
る。ここでは、S/370制御記憶171がプロセッサ
要素85に接続されているものとして示されている。こ
の好適な実施例における制御記憶171は、プロセッサ
要素85内のプログラム命令の実行及びI/O動作を制
御するマイクロ命令を記憶するための16KBのランダ
ム・アクセス・メモリからなる。制御記憶171は、主
記憶装置16内のS/370専用記憶162の一部であ
る内部オブジェクト領域(IOA)187(第28図)
からの要求に応じてロードされた過渡的マイクロコード
を保持するためのバッファとして使用される64Bブロ
ック186をも含む。この図では、プロセッサ要素62
のバス構造161が仮想アドレス・バス161A及びデ
ータ・バス161Dに分割されているものとして示され
ている。プロセッサ要素62は、不動小数点プロセッサ
172と、キャッシュ173と、ここではETIOとし
て参照されている結合マイクロコードを記憶するために
使用されるマイクロコード記憶装置174とを含むハー
ドウェアを接続されてなる。後で説明するように、キャ
ッシュ173中に記憶されるマイクロコード及びアプリ
ケーション・プログラムは、プロセッサ要素85のため
のI/O動作を実行するべくプロセッサ要素62及びB
CU論理156を制御するために使用される。プロセッ
サ要素62はまた、アドレス変換機構175を有する。
書込パイプ176は、システム/88の動作の高速化の
ために次のサイクルの間にシステム・バス30に対する
データの適用のために、1書込サイクルの間に一時的に
データを記憶する。米国特許第4453215号に記述
されているタイプのシステム/88バス論理177は、
米国特許第4453215号に概略的に説明されている
ような様式で変換機構175と書込パイプ176をシス
テム・バス30に結合する。また、同様のシステム/8
8バス論理ユニット178が、記憶制御インターフェー
ス155をシステム・バス30に結合する。
る。ここでは、S/370制御記憶171がプロセッサ
要素85に接続されているものとして示されている。こ
の好適な実施例における制御記憶171は、プロセッサ
要素85内のプログラム命令の実行及びI/O動作を制
御するマイクロ命令を記憶するための16KBのランダ
ム・アクセス・メモリからなる。制御記憶171は、主
記憶装置16内のS/370専用記憶162の一部であ
る内部オブジェクト領域(IOA)187(第28図)
からの要求に応じてロードされた過渡的マイクロコード
を保持するためのバッファとして使用される64Bブロ
ック186をも含む。この図では、プロセッサ要素62
のバス構造161が仮想アドレス・バス161A及びデ
ータ・バス161Dに分割されているものとして示され
ている。プロセッサ要素62は、不動小数点プロセッサ
172と、キャッシュ173と、ここではETIOとし
て参照されている結合マイクロコードを記憶するために
使用されるマイクロコード記憶装置174とを含むハー
ドウェアを接続されてなる。後で説明するように、キャ
ッシュ173中に記憶されるマイクロコード及びアプリ
ケーション・プログラムは、プロセッサ要素85のため
のI/O動作を実行するべくプロセッサ要素62及びB
CU論理156を制御するために使用される。プロセッ
サ要素62はまた、アドレス変換機構175を有する。
書込パイプ176は、システム/88の動作の高速化の
ために次のサイクルの間にシステム・バス30に対する
データの適用のために、1書込サイクルの間に一時的に
データを記憶する。米国特許第4453215号に記述
されているタイプのシステム/88バス論理177は、
米国特許第4453215号に概略的に説明されている
ような様式で変換機構175と書込パイプ176をシス
テム・バス30に結合する。また、同様のシステム/8
8バス論理ユニット178が、記憶制御インターフェー
ス155をシステム・バス30に結合する。
バッファ180と、プログラム可能読取専用メモリ18
1と、記憶182及びレジスタ・セット183が、シス
テム/88及びシステム/370の初期化の間に使用す
るために、プロセッサ要素62に結合されている。PR
OM181は、電源投入シーケンスからシステムをブー
トするために必要なテスト・コードとIDCODEをも
つ。PROM181は、S/88のための同期化コード
をもつ。レジスタ183は、システム状況及び制御レジ
スタをもつ。
1と、記憶182及びレジスタ・セット183が、シス
テム/88及びシステム/370の初期化の間に使用す
るために、プロセッサ要素62に結合されている。PR
OM181は、電源投入シーケンスからシステムをブー
トするために必要なテスト・コードとIDCODEをも
つ。PROM181は、S/88のための同期化コード
をもつ。レジスタ183は、システム状況及び制御レジ
スタをもつ。
S/370チップのうちの2つは同一の物理ボード上に
取り付けられ、同期され、ボード自体のチェックを行う
ために、ロックステップでプログラムを実行する。ST
Cバス157及びチャネル0,1バスは、S/370プ
ロセッサが別のフィールド交換可能ユニットにエラーを
伝搬することがないように、潜在的な障害をモニタされ
る。
取り付けられ、同期され、ボード自体のチェックを行う
ために、ロックステップでプログラムを実行する。ST
Cバス157及びチャネル0,1バスは、S/370プ
ロセッサが別のフィールド交換可能ユニットにエラーを
伝搬することがないように、潜在的な障害をモニタされ
る。
インターフェース89のBCU156及びアダプタ15
4は、どのオペレーティング・システムもシステムを完
全には制御しないように、各プロセッサ(プロセッサ要
素62及び85)が他方のプロセッサに対して適当な制
御をもつことを可能ならしめる。各プロセッサの機能
は、インターフェース89及び、各プロセッサで走るマ
イクロコードによって制御される。
4は、どのオペレーティング・システムもシステムを完
全には制御しないように、各プロセッサ(プロセッサ要
素62及び85)が他方のプロセッサに対して適当な制
御をもつことを可能ならしめる。各プロセッサの機能
は、インターフェース89及び、各プロセッサで走るマ
イクロコードによって制御される。
E12.プロセッサ間インターフェース89 E12A.I/Oアダプタ154 アダプタ154(第13図)は、その出力チャネル0,
1を介して、S/370プロセッサ85をBCU156
へインターフェースする。そのチャネルは、非同期2バ
イト幅データ・バス250,251の対をもつ。バス2
50,251は、一対の64バイト・バッファ259、
260を介して、プロセッサ・バス170中の同期4バ
イト幅データ経路に結合されている。データは、バス2
51を介してBCU156からアダプタ154(及びS
/370主記憶162)へ、そしてバス250を介して
アダプタ154からBCU156へ転送される。
1を介して、S/370プロセッサ85をBCU156
へインターフェースする。そのチャネルは、非同期2バ
イト幅データ・バス250,251の対をもつ。バス2
50,251は、一対の64バイト・バッファ259、
260を介して、プロセッサ・バス170中の同期4バ
イト幅データ経路に結合されている。データは、バス2
51を介してBCU156からアダプタ154(及びS
/370主記憶162)へ、そしてバス250を介して
アダプタ154からBCU156へ転送される。
アダプタ154は、次のようなレジスタを有する。
(1)ベース・レジスタ110は、ベース・アドレス
と、キュー及びメイルボックス・アドレッシングのため
に使用されるキュー長さを含む。
と、キュー及びメイルボックス・アドレッシングのため
に使用されるキュー長さを含む。
(2)読取ポインタ(RPNTR)レジスタ111及び
書込ポインタ(WPNTR)レジスタ112は、ベース
・アドレスから、それぞれ読取及び書込のためにアクセ
スすべき次のエントリへのオフセットを含む。その値
は、コマンドまたはアドレスがバス170を介してキャ
ッシュ制御153に転送されるべきときに、コマンドと
ともにバス送信レジスタ(BSR)116中にロードさ
れることになる。
書込ポインタ(WPNTR)レジスタ112は、ベース
・アドレスから、それぞれ読取及び書込のためにアクセ
スすべき次のエントリへのオフセットを含む。その値
は、コマンドまたはアドレスがバス170を介してキャ
ッシュ制御153に転送されるべきときに、コマンドと
ともにバス送信レジスタ(BSR)116中にロードさ
れることになる。
(3)状況レジスタ(IOSR)118は、全ての、プ
ロセッサ装置からBCUへの、及びBCUからプロセッ
サ装置への要求と、インバウンド・メッセージ・キュー
の状況と、BCUインターフェースの状況を含む。
ロセッサ装置からBCUへの、及びBCUからプロセッ
サ装置への要求と、インバウンド・メッセージ・キュー
の状況と、BCUインターフェースの状況を含む。
(4)もし例外イネーブル・レジスタ(ER)119中
のビットが1であり対応するIOSRビットが1である
なら、プロセッサ要素85中に例外が立ち上げられる。
のビットが1であり対応するIOSRビットが1である
なら、プロセッサ要素85中に例外が立ち上げられる。
(5)制御ワード・レジスタ(CW)120は、いくつ
かのIOSRビットのセット/リセットを制御する。
かのIOSRビットのセット/リセットを制御する。
(6)アドレス・チェック境界レジスタ(ACBR)1
21は、内部オブジェクト領域(IOA)187の開始
ページ・アドレスを保持する。
21は、内部オブジェクト領域(IOA)187の開始
ページ・アドレスを保持する。
(7)アドレス・キー・レジスタ(ADDR/KEY)
122、123は通常、記憶162中のある位置にアク
セスするために、アドレス・データ・バス250及び2
51を介してBCU156によってロードされる。これ
らのレジスタは、ステトのために、プロセッサ要素85
によってロードすることができる。
122、123は通常、記憶162中のある位置にアク
セスするために、アドレス・データ・バス250及び2
51を介してBCU156によってロードされる。これ
らのレジスタは、ステトのために、プロセッサ要素85
によってロードすることができる。
(8)コマンド・レジスタ(CMD0,1)124、1
25には通常、BCU156によって、コマンド及びバ
イト・カウントがロードされる。これらのレジスタは、
ステトのために、プロセッサ要素85によってロードす
ることができる。
25には通常、BCU156によって、コマンド及びバ
イト・カウントがロードされる。これらのレジスタは、
ステトのために、プロセッサ要素85によってロードす
ることができる。
アダプタ154は、プロセッサ要素85とBCU156
の間のインターフェースである。論理的には、アダプタ
154は、BCU156に対して次のようなサービスを
提供する。
の間のインターフェースである。論理的には、アダプタ
154は、BCU156に対して次のようなサービスを
提供する。
−S/370主記憶162に対するアクセス −S/370主記憶162中のメイルボックス及びメッ
セージ・キューに対するアクセス −プロセッサ要素85とBCU156の間の要求/応答
機構 BCU156は、そのIOA領域187(第28図)を
含む、記憶162の全体にアクセスを有する。アダプタ
154は、アダプタ154からプロセッサ・バス170
を介して、キー、コマンド及び記憶162アドレス・デ
ータを受け取った後キー・チェックがキャッシュ・コン
トローラ153によって実行されている間に、IOA領
域187とユーザー領域165の間のアドレス境界チェ
ック(ACBチェック)を行う。もし記憶すべきデータ
のアドレスされた線がキャッシュに保持されているな
ら、そのデータはキャッシュに記憶される。そうでない
なら、コントローラ153はそのデータを主記憶162
に転送する。データ・フェッチのためにも、それと同一
の機構がキャッシュ・コントローラ153中で使用され
る。
セージ・キューに対するアクセス −プロセッサ要素85とBCU156の間の要求/応答
機構 BCU156は、そのIOA領域187(第28図)を
含む、記憶162の全体にアクセスを有する。アダプタ
154は、アダプタ154からプロセッサ・バス170
を介して、キー、コマンド及び記憶162アドレス・デ
ータを受け取った後キー・チェックがキャッシュ・コン
トローラ153によって実行されている間に、IOA領
域187とユーザー領域165の間のアドレス境界チェ
ック(ACBチェック)を行う。もし記憶すべきデータ
のアドレスされた線がキャッシュに保持されているな
ら、そのデータはキャッシュに記憶される。そうでない
なら、コントローラ153はそのデータを主記憶162
に転送する。データ・フェッチのためにも、それと同一
の機構がキャッシュ・コントローラ153中で使用され
る。
プロセッサ要素(PE)85及びBCU156の間のI
/Oコマンド及びメッセージの転送は、第28図に示す
予定の記憶162位置(メイルボックス領域188及び
インバウンド・メッセージ・キュー189)を通じて行
なわれる。
/Oコマンド及びメッセージの転送は、第28図に示す
予定の記憶162位置(メイルボックス領域188及び
インバウンド・メッセージ・キュー189)を通じて行
なわれる。
BCU156は、16バイトのメイルボックス領域18
8からI/Oコマンドをフェッチする。メイルボックス
領域へのアクセスのためのアドレスは次のようにして計
算される。
8からI/Oコマンドをフェッチする。メイルボックス
領域へのアクセスのためのアドレスは次のようにして計
算される。
ベース・アドレス+メッセージ・キュー長さ+メイルボ
ックス中のオフセット 最初の2つの項は、アダプタ154中のベース・レジス
タ110によって供給され、最後の項は、BCU156
によって供給される。キュー長さは、ベース・レジスタ
110中の2つのビットによって、1、2、4または8
KB(すなわち、64乃至512エントリ)にセットさ
れる。そのベースは、ベース・レジスタ110中で、バ
ッファ・サイズの2倍(すなわち、2乃至16KB)に
セットされる。
ックス中のオフセット 最初の2つの項は、アダプタ154中のベース・レジス
タ110によって供給され、最後の項は、BCU156
によって供給される。キュー長さは、ベース・レジスタ
110中の2つのビットによって、1、2、4または8
KB(すなわち、64乃至512エントリ)にセットさ
れる。そのベースは、ベース・レジスタ110中で、バ
ッファ・サイズの2倍(すなわち、2乃至16KB)に
セットされる。
インバウンド・メッセージ・キュー189は、BCU1
54を介して受け取った全てのメッセージを、時系列順
に記憶する。各エントリは、16バイト長である。
54を介して受け取った全てのメッセージを、時系列順
に記憶する。各エントリは、16バイト長である。
レジスタ111、112中の読取ポインタ(RPNT
R)及び書込ポインタ(WPNTR)は、BCU156
によって、キュー189に対してエントリを読み出し、
または書き込むために使用される。プロセッサ要素85
は、センス動作によって読取ポインタにアクセスする。
そして、レジスタ110中のベース・アドレス+WPN
TRが、書き込むべき次のキュー・エントリを指し示
し、レジスタ110中のベース・アドレス+RPNTR
が、読み取るべき次のキュー・エントリを指し示す。
R)及び書込ポインタ(WPNTR)は、BCU156
によって、キュー189に対してエントリを読み出し、
または書き込むために使用される。プロセッサ要素85
は、センス動作によって読取ポインタにアクセスする。
そして、レジスタ110中のベース・アドレス+WPN
TRが、書き込むべき次のキュー・エントリを指し示
し、レジスタ110中のベース・アドレス+RPNTR
が、読み取るべき次のキュー・エントリを指し示す。
これらのポインタは、各キュー動作毎に更新される。
WPNTR+16=WPNTR(書き込み後) RPNTR+16=RPNTR(読取り後) 次の状態は、ポインタの比較から生じる。
RPNTR=WPNTR(キューが空) RPNTR=WPNTR+16(キューが一杯、もしB
CU156がキューに対する書き込みを要求するなら、
バッファ使用不可能(BNA)信号が状況バスを介して
BCUに送られる) メイルボックス領域188に記憶されたデータの有効性
は、次のような機構によってプロセッサ要素85からB
CU156へ、あるいはその逆へ報知される。
CU156がキューに対する書き込みを要求するなら、
バッファ使用不可能(BNA)信号が状況バスを介して
BCUに送られる) メイルボックス領域188に記憶されたデータの有効性
は、次のような機構によってプロセッサ要素85からB
CU156へ、あるいはその逆へ報知される。
線256a(第16図)上のプロセッサ装置からBCU
への要求は、制御マイクロ命令を用いてプロセッサ要素
85によってセットされる。その要求は、BCU156
に、メイルボックス188から命令をフェッチし、それ
を実行するように伝える。その要求は、その命令の実行
後は、BCUによってリセットされる。その要求の状態
は、プロセッサ要素85によってセンスすることができ
る。
への要求は、制御マイクロ命令を用いてプロセッサ要素
85によってセットされる。その要求は、BCU156
に、メイルボックス188から命令をフェッチし、それ
を実行するように伝える。その要求は、その命令の実行
後は、BCUによってリセットされる。その要求の状態
は、プロセッサ要素85によってセンスすることができ
る。
BCU156は、プロセッサ要素85によって開始され
た命令の実行の間または任意の時点で問題が生じた時
に、要求を作成する。それは、もし選択的にマスクされ
ないなら、プロセッサ要素85中に例外を引き起こす。
た命令の実行の間または任意の時点で問題が生じた時
に、要求を作成する。それは、もし選択的にマスクされ
ないなら、プロセッサ要素85中に例外を引き起こす。
アダプタ154は、非同期アダプタ・チャネル0,1の
転送速度を、同期プロセッサ・バス170に一致させ
る。それゆえ、BCU156は、BCU156との間の
データ転送のためにアダプタ154中にある64バイト
・データ・バッファ259、260によってサポートさ
れる。そのアレイは、チャネル0,1と、プロセッサ・
バス170に対する4バイト・ポートをもつ。
転送速度を、同期プロセッサ・バス170に一致させ
る。それゆえ、BCU156は、BCU156との間の
データ転送のためにアダプタ154中にある64バイト
・データ・バッファ259、260によってサポートさ
れる。そのアレイは、チャネル0,1と、プロセッサ・
バス170に対する4バイト・ポートをもつ。
同期レジスタ113及び114は、BCU156及びバ
ッファ・アレイ260,259の間のデータ転送をバッ
ファする。バス送信及び受信レジスタ115及び116
は、それぞれ、プロセッサ・バス170との間で受信さ
れ、または転送されたデータを記憶する。
ッファ・アレイ260,259の間のデータ転送をバッ
ファする。バス送信及び受信レジスタ115及び116
は、それぞれ、プロセッサ・バス170との間で受信さ
れ、または転送されたデータを記憶する。
記憶動作(I/Oデータ記憶、キュー動作)は、チャネ
ル1バスを介してアダプタ154に、コマンド/バイト
・カウント、保護キー及び記憶アドレスを送るBCU1
56によって開始される。そのコマンド/バイト・カウ
ントは、コマンド・バス252(第13図)上で受け取
られ、コマンド・レジスタ125に格納される。キー及
びアドレス・データは、アドレス/データ・バス251
(第13図)を介してBCU156から受け取られ、キ
ー/アドレス・レジスタ123中に格納される。アレイ
書込及び読取アドレス・ポインタは、レジスタ128中
の開始アドレスにセットされる。バス251上のデータ
転送の回数(一度に2バイト)は、バイト・カウントに
よって決定される。1回の記憶動作によって、64バイ
トまでのデータを転送することができる。ある記憶動作
内の任意のバイトの記憶アドレスは、64バイト境界と
交差してはならない。
ル1バスを介してアダプタ154に、コマンド/バイト
・カウント、保護キー及び記憶アドレスを送るBCU1
56によって開始される。そのコマンド/バイト・カウ
ントは、コマンド・バス252(第13図)上で受け取
られ、コマンド・レジスタ125に格納される。キー及
びアドレス・データは、アドレス/データ・バス251
(第13図)を介してBCU156から受け取られ、キ
ー/アドレス・レジスタ123中に格納される。アレイ
書込及び読取アドレス・ポインタは、レジスタ128中
の開始アドレスにセットされる。バス251上のデータ
転送の回数(一度に2バイト)は、バイト・カウントに
よって決定される。1回の記憶動作によって、64バイ
トまでのデータを転送することができる。ある記憶動作
内の任意のバイトの記憶アドレスは、64バイト境界と
交差してはならない。
そのコマンド/アドレスには、バス251上のデータ・
サイクルが続く。全てのデータは、64バイト・バッフ
ァ260中に集められる。最後のデータがBCU156
から受信された後、アダプタ154は最初に2つのデー
タ・バッファ259、260のための内部優先権チェッ
ク(図示しない)を実行し、次にプロセッサ・バス17
0上の支配権(図示しない)を要求し、そこでアダプタ
154は、最も高い要求優先権をもつことになる。
サイクルが続く。全てのデータは、64バイト・バッフ
ァ260中に集められる。最後のデータがBCU156
から受信された後、アダプタ154は最初に2つのデー
タ・バッファ259、260のための内部優先権チェッ
ク(図示しない)を実行し、次にプロセッサ・バス17
0上の支配権(図示しない)を要求し、そこでアダプタ
154は、最も高い要求優先権をもつことになる。
どちらの場合にも、バッファ259、260は、内部優
先権制御が最初にバッファ259に対してバス170を
許可すると同時に、そしてバッファに対する調停サイク
ルなしで転送を要求し、すなわち読取が書込に対して優
先権をもつことになる。
先権制御が最初にバッファ259に対してバス170を
許可すると同時に、そしてバッファに対する調停サイク
ルなしで転送を要求し、すなわち読取が書込に対して優
先権をもつことになる。
バスの支配権が許可されたとき、コマンド/バイト・カ
ウント、保護キー及び開始アドレスがキャッシュ・コン
トローラ153に転送される。コマンド転送サイクルの
後には、データ転送サイクルが続く。
ウント、保護キー及び開始アドレスがキャッシュ・コン
トローラ153に転送される。コマンド転送サイクルの
後には、データ転送サイクルが続く。
キャッシュ・コントローラ153は、保護キー・チェッ
クを実行する。キー違反は、バス170状況でアダプタ
154に報告される。キャッシュ・コントローラ及び主
記憶162によって検出される他のチェック状況は、別
のチェック状況として報告される。アダプタ154によ
って検出されるキー違反及び状況は、状況転送サイクル
中でBCU156に送られることになる。
クを実行する。キー違反は、バス170状況でアダプタ
154に報告される。キャッシュ・コントローラ及び主
記憶162によって検出される他のチェック状況は、別
のチェック状況として報告される。アダプタ154によ
って検出されるキー違反及び状況は、状況転送サイクル
中でBCU156に送られることになる。
BCU156によって報告され得る2つの可能なアダプ
タ154状況がある。どちらのチェック状況の場合に
も、記憶162に対するアクセスは抑止される。
タ154状況がある。どちらのチェック状況の場合に
も、記憶162に対するアクセスは抑止される。
BCU156から受け取った各主記憶アドレスは、その
アクセスが、IOA187に対するものか、または記憶
162のカスタマ領域165に対するものかを決定する
ために、ACBレジスタ中に保持されているアドレスと
比較される。BCU156から各コマンドとともに受け
取った「カスタマ」ビットが、その主記憶アクセスがI
OA領域187とカスタマ領域165のどちらに意図さ
れているのかを決定し、不正なアクセスをチェックす
る。
アクセスが、IOA187に対するものか、または記憶
162のカスタマ領域165に対するものかを決定する
ために、ACBレジスタ中に保持されているアドレスと
比較される。BCU156から各コマンドとともに受け
取った「カスタマ」ビットが、その主記憶アクセスがI
OA領域187とカスタマ領域165のどちらに意図さ
れているのかを決定し、不正なアクセスをチェックす
る。
以下で説明するバッファ利用不能(BNA)条件は、キ
ュー動作に対してのみ報告される。
ュー動作に対してのみ報告される。
読取動作(I/O読取、メイルボックス読取)は、格納
動作と実質的に同一の動作でBCU156によって開始
される。コマンド/バイト・カウントと、保護キーと、
アドレスがBCU156から受け取られると直ぐに、ア
ダプタ154内部優先権チェックが実行され、プロセッ
サ・バス170支配権が要求される。もしバス支配権が
許されると、コマンド/バイト・カウントと、保護キー
と、主記憶開始アドレスが読取サイクルを開始するため
にキャッシュ・コントローラ153に転送される。アダ
プタ154は先ず、要求されたデータをそのバッファ2
59にロードし、次にバス250を介してのBCU要求
上により、それをBCU156にロードする。
動作と実質的に同一の動作でBCU156によって開始
される。コマンド/バイト・カウントと、保護キーと、
アドレスがBCU156から受け取られると直ぐに、ア
ダプタ154内部優先権チェックが実行され、プロセッ
サ・バス170支配権が要求される。もしバス支配権が
許されると、コマンド/バイト・カウントと、保護キー
と、主記憶開始アドレスが読取サイクルを開始するため
にキャッシュ・コントローラ153に転送される。アダ
プタ154は先ず、要求されたデータをそのバッファ2
59にロードし、次にバス250を介してのBCU要求
上により、それをBCU156にロードする。
動作を記憶するための状況及び報告機構は、読取動作に
も適用される。
も適用される。
プロセッサ要素(PE)85は、バス170を介するセ
ンス(読取)及び制御(書込)動作により、アダプタ1
54中のほとんどのレジスタにアクセスすることができ
る。
ンス(読取)及び制御(書込)動作により、アダプタ1
54中のほとんどのレジスタにアクセスすることができ
る。
センス動作の場合、コマンドは、アダプタ154に転送
され、レジスタ129にラッチされる。次のサイクル
で、センス・マルチプレクサ126がコマンドに従い選
択され、そのコマンドは、次のバス170サイクルで有
効な期待されるデータを取得するために、BSR116
中にロードされる。
され、レジスタ129にラッチされる。次のサイクル
で、センス・マルチプレクサ126がコマンドに従い選
択され、そのコマンドは、次のバス170サイクルで有
効な期待されるデータを取得するために、BSR116
中にロードされる。
センスすべきレジスタ上の内部パリティ・エラーが検出
されたとき、アダプタ154は良好なパリティをもつデ
ータをプロセッサ要素85に送り返すが、キー/状況バ
ス上にはチェック状況を立てる。この機能は、特殊セン
ス・コード点でテストすることができる。
されたとき、アダプタ154は良好なパリティをもつデ
ータをプロセッサ要素85に送り返すが、キー/状況バ
ス上にはチェック状況を立てる。この機能は、特殊セン
ス・コード点でテストすることができる。
制御動作の場合、バス170コマンドの後データが続
き、そのデータは次のサイクルでターゲット・レジスタ
にロードされる。
き、そのデータは次のサイクルでターゲット・レジスタ
にロードされる。
もしセンスまたは制御動作のためのコマンド・サイクル
において、または制御動作のためのデータ・サイクルに
おいて、パリティ・エラーがバス170上で検出された
なら、アダプタ154はクロックの停止を強制する。
において、または制御動作のためのデータ・サイクルに
おいて、パリティ・エラーがバス170上で検出された
なら、アダプタ154はクロックの停止を強制する。
ベース・レジスタ110は、キュー及びメイルボックス
・アドレッシングのために使用されるベース・アドレス
と、キュー長さコードを含む。キューは、ベース・アド
レスで開始し、メイルボックス領域は、ベース+キュー
長さで開始する。
・アドレッシングのために使用されるベース・アドレス
と、キュー長さコードを含む。キューは、ベース・アド
レスで開始し、メイルボックス領域は、ベース+キュー
長さで開始する。
RPNTR及びWPNTRレジスタ111及び112
は、それぞれ、ベース・アドレスから読取及び書込のた
めにアクセスすべき次のキュー・エントリに対するオフ
セットを与える。
は、それぞれ、ベース・アドレスから読取及び書込のた
めにアクセスすべき次のキュー・エントリに対するオフ
セットを与える。
センスされた時、読取ポインタと書込ポインタは、アダ
プタ154中のセンス・マルチプレクサ126によって
ベース・アドレスと連結される。それゆえ、センス動作
によって返されるワードは、アクセスすべき次のキュー
・エントリの完全なアドレスである。
プタ154中のセンス・マルチプレクサ126によって
ベース・アドレスと連結される。それゆえ、センス動作
によって返されるワードは、アクセスすべき次のキュー
・エントリの完全なアドレスである。
I/O状況レジスタは、次に示すビット(及び、ここに
は説明しないその他のビット)を含む。
は説明しないその他のビット)を含む。
チェック(ビット0)−もしくCHSR〈0..24〉
中に何らかのチェック状態があり、対応するCHERビ
ットが1なら、1にセットされる。チェックは、ATT
N−REQを引き起こす。もしMODE−REQ〈1〉
=1なら、信号CLOCK STOP DIANAが活
動的になる。
中に何らかのチェック状態があり、対応するCHERビ
ットが1なら、1にセットされる。チェックは、ATT
N−REQを引き起こす。もしMODE−REQ〈1〉
=1なら、信号CLOCK STOP DIANAが活
動的になる。
BNA送信(ビット6)−バッファ利用不可能(BN
A)ビットは、BCU156がインバウンド・メッセー
ジをキューに格納しようと試み、キューが一杯、すなわ
ちRPNTRがWPNTR+16に等しいとき1にセッ
トされる。このビットは、CWレジスタ120のビット
6に1を書くことによってしかリセットすることはでき
ない。
A)ビットは、BCU156がインバウンド・メッセー
ジをキューに格納しようと試み、キューが一杯、すなわ
ちRPNTRがWPNTR+16に等しいとき1にセッ
トされる。このビットは、CWレジスタ120のビット
6に1を書くことによってしかリセットすることはでき
ない。
キュー空でない(ビット7)−このビットは、RPNT
RがWPNTRに等しくないなら1にセットされる。こ
れは、プロセッサ85に、新しいメッセージが受け取ら
れたことを通知するために使用される手段である。
RがWPNTRに等しくないなら1にセットされる。こ
れは、プロセッサ85に、新しいメッセージが受け取ら
れたことを通知するために使用される手段である。
BCUからプロセッサ装置への要求(ビット10及び1
4)−これは、チャネル0及び1の「BCUからプロセ
ッサ装置への要求」線256c上の信号を介してBCU
156によってセットされる。プロセッサ要素85によ
るビット10及び14のリセットは、チャネル0及び1
の線256d上に、BCUからプロセッサ装置への肯定
応答を発生させる。
4)−これは、チャネル0及び1の「BCUからプロセ
ッサ装置への要求」線256c上の信号を介してBCU
156によってセットされる。プロセッサ要素85によ
るビット10及び14のリセットは、チャネル0及び1
の線256d上に、BCUからプロセッサ装置への肯定
応答を発生させる。
プロセッサ装置からBCUへの要求(ビット11)−チ
ャネル0のCWレジスタ120のビット11と、チャネ
ル1のCWレジスタ120のビット15をセットするこ
とによってプロセッサ要素85によって線256a上で
セットされる。また、線256b上のプロセッサ装置か
らBCUへの肯定応答信号によってリセットされる。
ャネル0のCWレジスタ120のビット11と、チャネ
ル1のCWレジスタ120のビット15をセットするこ
とによってプロセッサ要素85によって線256a上で
セットされる。また、線256b上のプロセッサ装置か
らBCUへの肯定応答信号によってリセットされる。
BCU電力損失(ビット13)−このビットは、BCU
が電力を失い、または「電源投入リセット」が生じた
時、BCU156によってセットされる。それは、CW
レジスタ120の「リセットBCU電力損失」ビットに
「1」が書かれ、BCUが最早電力損失状態にないと
き、0にリセットされる。
が電力を失い、または「電源投入リセット」が生じた
時、BCU156によってセットされる。それは、CW
レジスタ120の「リセットBCU電力損失」ビットに
「1」が書かれ、BCUが最早電力損失状態にないと
き、0にリセットされる。
調停許容(ビット29)−このビットは、アダプタ・モ
ード・レジスタのビット3が活動的でないなら、チャネ
ル・バス信号「調停許容」を活動化させる。
ード・レジスタのビット3が活動的でないなら、チャネ
ル・バス信号「調停許容」を活動化させる。
BCU156から受け取ったコマンド/アドレス信号の
一部であるカスタマ・アクセス・ビットは、その記憶ア
クセスがIOAまたはカスタマ領域のどちらにあるのか
を決定する。もしカスタマ・アクセス・ビットが‘0’
であるなら、その記憶アクセスのベージ・アドレスは、
IOA領域187内になくてはならない。これらのアク
セスにはキー・チェックは行なわれず、従って、アダプ
タ・ハードウェアは、そのキーをゼロに強制する(すべ
てのキー・エントリと一致する)。
一部であるカスタマ・アクセス・ビットは、その記憶ア
クセスがIOAまたはカスタマ領域のどちらにあるのか
を決定する。もしカスタマ・アクセス・ビットが‘0’
であるなら、その記憶アクセスのベージ・アドレスは、
IOA領域187内になくてはならない。これらのアク
セスにはキー・チェックは行なわれず、従って、アダプ
タ・ハードウェアは、そのキーをゼロに強制する(すべ
てのキー・エントリと一致する)。
もしもしカスタマ・アクセス・ビットが‘1’であるな
ら、その記憶アクセスのページ・アドレスは、カスタマ
記憶領域165内になくてはならない。そうでないな
ら、そのアクセスに対してACBチェック条件が立ち上
げられる。
ら、その記憶アクセスのページ・アドレスは、カスタマ
記憶領域165内になくてはならない。そうでないな
ら、そのアクセスに対してACBチェック条件が立ち上
げられる。
プロセッサ要素85は、アダプタ154レジスタを読取
(センス)しまたは書き込む(制御)ためにメッセージ
・コマンドを使用する。
(センス)しまたは書き込む(制御)ためにメッセージ
・コマンドを使用する。
これらのコマンドのフォーマットは次のとおりである。
ビット0−7 CMD=コマンド・タイプ 8−11 SRC=要求元バス・ユニット・アドレス 12−15 DST=受信バス・ユニット・アドレス 16−23 MSG=コマンド・サイクルで伝送すべき
データ 24−27 REG1=制御のレジスタ番号 28−31 REG2=センスのレジスタ番号 プロセッサ装置とBCUの間のインターフェースのため
のDSTフィールドは、X‘8’である。アダプタ15
4はSRC及びMSGフィールドをデコードしない。と
いうのは、そこにはコマンド実行のための情報が含まれ
ていないからである。制御及びセンス動作の間、REG
1及びREG2ビットはそれぞれ、読み書きすべきアダ
プタ154中のレジスタを決定する。
データ 24−27 REG1=制御のレジスタ番号 28−31 REG2=センスのレジスタ番号 プロセッサ装置とBCUの間のインターフェースのため
のDSTフィールドは、X‘8’である。アダプタ15
4はSRC及びMSGフィールドをデコードしない。と
いうのは、そこにはコマンド実行のための情報が含まれ
ていないからである。制御及びセンス動作の間、REG
1及びREG2ビットはそれぞれ、読み書きすべきアダ
プタ154中のレジスタを決定する。
E12B.I/Oアダプタ・チャネル0及びチャネル1
バス(第16図) I/Oアダプタ・チャネル0及びチャネル1バスは、I
/Oアダプタ154からバス制御ユニット156への高
速相互接続である。
バス(第16図) I/Oアダプタ・チャネル0及びチャネル1バスは、I
/Oアダプタ154からバス制御ユニット156への高
速相互接続である。
チャネル0は、次のものを有する。
アドレス/データ・バス250(ビット0−16,P
0,P1) コマンド/状況バス249(ビット0−3,P) タグ・アップ(BCUからバッファへ)線262a タグ・ダウン(バッファからBCUへ)線262b プロセッサ装置からBCUへの要求線256a BCUからプロセッサ装置への肯定応答線256b チャネル1は、アドレス/データ・バス251と、コマ
ンド/状況バス252と、タグ・アップ及びタグ・ダウ
ン線262e及び262dを有する。
0,P1) コマンド/状況バス249(ビット0−3,P) タグ・アップ(BCUからバッファへ)線262a タグ・ダウン(バッファからBCUへ)線262b プロセッサ装置からBCUへの要求線256a BCUからプロセッサ装置への肯定応答線256b チャネル1は、アドレス/データ・バス251と、コマ
ンド/状況バス252と、タグ・アップ及びタグ・ダウ
ン線262e及び262dを有する。
チャネル0は、S/370記憶162(及びプロセッサ
要素85)からBCU156へのデータ転送に使用さ
れ、チャネル1は、BCU156から記憶162(及び
プロセッサ要素85)へのデータ転送に使用される。
要素85)からBCU156へのデータ転送に使用さ
れ、チャネル1は、BCU156から記憶162(及び
プロセッサ要素85)へのデータ転送に使用される。
チャネル・バス249、250、251及び252は、
実質的には64バイトまでのデータをめいめいが記憶す
ることができる制御論理をもつ一対のデータ・バッファ
であるI/Oアダプタ154に由来する。これらのバス
は、BCU156で終端する。I/Oアダプタ154
は、1ワード・フォーマット(32ビット)をもつ内部
プロセッサ・バス170と、半ワード(16ビット)フ
ォーマットをもつより低速のバス249乃至252との
間の速度一致手段として働く。
実質的には64バイトまでのデータをめいめいが記憶す
ることができる制御論理をもつ一対のデータ・バッファ
であるI/Oアダプタ154に由来する。これらのバス
は、BCU156で終端する。I/Oアダプタ154
は、1ワード・フォーマット(32ビット)をもつ内部
プロセッサ・バス170と、半ワード(16ビット)フ
ォーマットをもつより低速のバス249乃至252との
間の速度一致手段として働く。
各チャネルは、2バイト幅(半ワード)データ・バス
(250、251)と、半バイト幅(4ビット)コマン
ド/状況バス(249、252)という2つの部分に構
成されている。そして、タグ信号が、要求/応答、及び
特殊信号を介して動作を制御するための手段を与える。
(250、251)と、半バイト幅(4ビット)コマン
ド/状況バス(249、252)という2つの部分に構
成されている。そして、タグ信号が、要求/応答、及び
特殊信号を介して動作を制御するための手段を与える。
各チャネル上のデータ転送は、(2バイト・バスを介し
て4バイトを転送するために)常に2サイクルで行なわ
れる。論理的には、全てのデータ転送は、S/370主
記憶162及び、BCU156を含むI/Oサブシステ
ムの間の転送である。BCU156はマスターであっ
て、すなわち、プロセッサ要素85が一旦転送の必要性
を知らせると、いかなる転送であれそれを開始させる。
て4バイトを転送するために)常に2サイクルで行なわ
れる。論理的には、全てのデータ転送は、S/370主
記憶162及び、BCU156を含むI/Oサブシステ
ムの間の転送である。BCU156はマスターであっ
て、すなわち、プロセッサ要素85が一旦転送の必要性
を知らせると、いかなる転送であれそれを開始させる。
コマンド/状況バス(249,252)は、選択サイク
ルの間に、転送方向(フェッチ/記憶)、及び転送すべ
きデータの量を決定するために使用される。アドレス/
データ・バス(250,251)は、選択サイクルの間
に主記憶アドレスを転送し、実際の転送サイクルの間に
データを引き渡す働きをする。アドレス/データ・バス
はまた、「メイルボックス」及び「メッセージ・キュ
ー」として知られる記憶162中の特定領域188、1
89を指示するためにも使用される。これらの領域は、
プロセッサ要素85をして、BCU156とある情報を
交換することを可能ならしめる。
ルの間に、転送方向(フェッチ/記憶)、及び転送すべ
きデータの量を決定するために使用される。アドレス/
データ・バス(250,251)は、選択サイクルの間
に主記憶アドレスを転送し、実際の転送サイクルの間に
データを引き渡す働きをする。アドレス/データ・バス
はまた、「メイルボックス」及び「メッセージ・キュ
ー」として知られる記憶162中の特定領域188、1
89を指示するためにも使用される。これらの領域は、
プロセッサ要素85をして、BCU156とある情報を
交換することを可能ならしめる。
フェッチ動作(記憶162からの)の間に、その状況
は、コマンド/状況バス249上で、バス250上の2
バイトのデータとともに転送される。この状況は、なん
らかのアドレス・チェック、キー・チェックなどであ
り、あるいは動作の成功を示すためにゼロである。
は、コマンド/状況バス249上で、バス250上の2
バイトのデータとともに転送される。この状況は、なん
らかのアドレス・チェック、キー・チェックなどであ
り、あるいは動作の成功を示すためにゼロである。
もし記憶動作(記憶162への)が実行されるなら、全
てのデータが主記憶162に渡された後、状況サイクル
が続く。
てのデータが主記憶162に渡された後、状況サイクル
が続く。
第14A及び第14B図は、フェッチ及び記憶のそれぞ
れのサブサイクル1及びサブサイクル2の間のバス部分
の論理的用途を示す。ここで、 aaa...データ・フィールド中の第1の(左側の)バイト
のアドレス A: 1=アドレス・チェック B: 1=バッファが可用でない C: カスタマ記憶(165)アクセスの場合1で、マ
イクロコード領域アクセス(IOA187)の場合0 ddd... 記憶との間の4バイト・データ fff... バイト単位でのフィールド長マイナス1(10
進0..63) kkkk 記憶キー(10進0..15) k 1=キーチェック ooooo: 32バイト・メールボックス領域内のオフセ
ット pp 優先度(0..3、3が最高) .... 考慮せず ///: バスが浮動(未定義) イン インパウンド(BCUからバッファへ) アウト アウトバウンド(バッファからBCUへ) データ転送動作のために次のタグ線が使用される。
れのサブサイクル1及びサブサイクル2の間のバス部分
の論理的用途を示す。ここで、 aaa...データ・フィールド中の第1の(左側の)バイト
のアドレス A: 1=アドレス・チェック B: 1=バッファが可用でない C: カスタマ記憶(165)アクセスの場合1で、マ
イクロコード領域アクセス(IOA187)の場合0 ddd... 記憶との間の4バイト・データ fff... バイト単位でのフィールド長マイナス1(10
進0..63) kkkk 記憶キー(10進0..15) k 1=キーチェック ooooo: 32バイト・メールボックス領域内のオフセ
ット pp 優先度(0..3、3が最高) .... 考慮せず ///: バスが浮動(未定義) イン インパウンド(BCUからバッファへ) アウト アウトバウンド(バッファからBCUへ) データ転送動作のために次のタグ線が使用される。
(1)バス・アダプタ154からBCU156への、プ
ロセッサ装置からBCUへの要求線256aは、プロセ
ッサ要素85によってI/O動作の必要性を示すために
使用される。一旦セットされると、その信号は、BCU
156によってリセットされるまでアクティブのままで
ある。
ロセッサ装置からBCUへの要求線256aは、プロセ
ッサ要素85によってI/O動作の必要性を示すために
使用される。一旦セットされると、その信号は、BCU
156によってリセットされるまでアクティブのままで
ある。
(2)BCU156からアダプタ154へのタグ・アッ
プ線262aは、アダプタ154からアウトバウンド・
データを要求し、または入力データがバス上で可用であ
ることを示すために使用される。タグ・アップ線262
cも同様に機能する。
プ線262aは、アダプタ154からアウトバウンド・
データを要求し、または入力データがバス上で可用であ
ることを示すために使用される。タグ・アップ線262
cも同様に機能する。
(3)バス・アダプタ154からBCU156への、ダ
ウン線262bは、もし存在するならは、BCU156
へのデータの一時的な欠乏を示すために使用される。タ
グ・ダウンの下降端は、すると、そのバス上のアウトバ
ウンド・データの可用性を示すために使用される。タグ
・ダウン線262dも同様に機能する。
ウン線262bは、もし存在するならは、BCU156
へのデータの一時的な欠乏を示すために使用される。タ
グ・ダウンの下降端は、すると、そのバス上のアウトバ
ウンド・データの可用性を示すために使用される。タグ
・ダウン線262dも同様に機能する。
(4)BCU156からアダプタ154への、BCUか
らプロセッサ装置肯定応答線256bは、プロセッサ装
置からBCUへの要求信号をリセットするために使用さ
れる。このリセットは、I/Oメイルボックス動作が完
了されたときに実行される。
らプロセッサ装置肯定応答線256bは、プロセッサ装
置からBCUへの要求信号をリセットするために使用さ
れる。このリセットは、I/Oメイルボックス動作が完
了されたときに実行される。
プロセッサ要素85が開始I/O命令(SIO)を命令
ストリーム中で検出した時、プロセッサ要素85は、I
/Oサブシステム、すなわちBCU156に、「プロセ
ッサ装置からBCUへの要求」線256aを活動化させ
ることによって、I/O動作の必要性を警告する。この
タグは、BCU156をして、この動作がフェッチまた
は記憶のどちらであるのか、何バイトが転送されるの
か、などを見出すために記憶162内の「メイルボック
ス」188を調べさせる。メイルボックスは実際には、
関連I/O動作のチャネルSIO、CUA、CAW及び
コマンド・ワード(CCW)を含む。
ストリーム中で検出した時、プロセッサ要素85は、I
/Oサブシステム、すなわちBCU156に、「プロセ
ッサ装置からBCUへの要求」線256aを活動化させ
ることによって、I/O動作の必要性を警告する。この
タグは、BCU156をして、この動作がフェッチまた
は記憶のどちらであるのか、何バイトが転送されるの
か、などを見出すために記憶162内の「メイルボック
ス」188を調べさせる。メイルボックスは実際には、
関連I/O動作のチャネルSIO、CUA、CAW及び
コマンド・ワード(CCW)を含む。
記憶動作は、一般的には、BCU156がプロセッサ要
素85にデータを送るような動作である。このデータ
は、選択サイクルで送られるコマンド、キーまたはアド
レスであるか、主記憶162中に記憶すべき実I/Oデ
ータである。どちらの場合も、事象のシーケンスは同一
である。
素85にデータを送るような動作である。このデータ
は、選択サイクルで送られるコマンド、キーまたはアド
レスであるか、主記憶162中に記憶すべき実I/Oデ
ータである。どちらの場合も、事象のシーケンスは同一
である。
第15Aないし15C図は、データ及び状況情報が、ア
ダプタ154及びBCU156中の32ビット・バッフ
ァ/レジスタにゲート・インされ、またはゲート・アウ
トされる様子、及びその情報の高位(左側)及び低位
(右側)ビットがアダプタ154の18ビット・チャネ
ルに配置される様子を図式的に示すものである。
ダプタ154及びBCU156中の32ビット・バッフ
ァ/レジスタにゲート・インされ、またはゲート・アウ
トされる様子、及びその情報の高位(左側)及び低位
(右側)ビットがアダプタ154の18ビット・チャネ
ルに配置される様子を図式的に示すものである。
第25及び26図は、BCU156及びアダプタ154
の間のデータ転送のための特定の信号セットを示す。
の間のデータ転送のための特定の信号セットを示す。
記憶動作(第15A図)の間のBCUクロック・サイク
ルの開始により、BCU156は、第1のサイクルのた
めのデータをバス251上に配置する。もしこれが主記
憶データ動作のための選択サイクルなら、コマンド、バ
イト・カウント、アクセス・キー、及び主記憶アドレス
の第1バイトがそれぞれ、コマンド/状況バス252及
びアドレス/データ・バス251上にそれぞれ配置され
る。もしこれが、メイルボックス・ルックアップのため
の選択サイクルであるなら、コマンドが、固定位置にあ
るメイルボックスを示すため、主記憶アドレスは配置さ
れない。その第1のサブサイクルは、2サブサイクル期
間に亙ってバス上で有効状態に維持される。
ルの開始により、BCU156は、第1のサイクルのた
めのデータをバス251上に配置する。もしこれが主記
憶データ動作のための選択サイクルなら、コマンド、バ
イト・カウント、アクセス・キー、及び主記憶アドレス
の第1バイトがそれぞれ、コマンド/状況バス252及
びアドレス/データ・バス251上にそれぞれ配置され
る。もしこれが、メイルボックス・ルックアップのため
の選択サイクルであるなら、コマンドが、固定位置にあ
るメイルボックスを示すため、主記憶アドレスは配置さ
れない。その第1のサブサイクルは、2サブサイクル期
間に亙ってバス上で有効状態に維持される。
選択サイクルの間にバス251上にデータを配置した1
BCUクロック・サイクルの後、BCU156が「タグ
・アップ」信号線を立ち上げる。タグ・アップ線262
aは、アダプタ154をして、その最初の2バイトをレ
ジスタ113の左部分に記憶させる。次のクロック・サ
イクルの開始により、BCU156は、レジスタ113
のあと半分にデータを格納するために、アドレス/デー
タ・バス251上に次のサブサイクルのためのデータ
(第2の2バイト)を配置する。このデータは、主記憶
アドレスの残りの部分であるかまたは、(もしメイルボ
ックス・ルックアップ選択サイクルに属するなら)オフ
セットであるか、である。BCU156は、3BCUク
ロック・サイクルの間第2の2バイトを保持し、「タグ
・アップ」信号を下降させる。
BCUクロック・サイクルの後、BCU156が「タグ
・アップ」信号線を立ち上げる。タグ・アップ線262
aは、アダプタ154をして、その最初の2バイトをレ
ジスタ113の左部分に記憶させる。次のクロック・サ
イクルの開始により、BCU156は、レジスタ113
のあと半分にデータを格納するために、アドレス/デー
タ・バス251上に次のサブサイクルのためのデータ
(第2の2バイト)を配置する。このデータは、主記憶
アドレスの残りの部分であるかまたは、(もしメイルボ
ックス・ルックアップ選択サイクルに属するなら)オフ
セットであるか、である。BCU156は、3BCUク
ロック・サイクルの間第2の2バイトを保持し、「タグ
・アップ」信号を下降させる。
フェッチ動作は、一般的には、BCU156が、主記憶
データ空間162、主記憶162中のマイクロコード領
域、またはメイルボックスあるいはメッセージ・キュー
からデータを求めるような動作である。いかなる場合に
も、アダプタ154の論理に、実行しなくてはならない
動作を命令するためには、選択サイクルがそのようなフ
ェッチ・サイクルに先行しなくてはならない。選択サイ
クルはコマンド/状況バス249上のコマンドが「フェ
ッチ」コマンドであることを除いては、バス252を使
用する記憶記憶動作と同様の様式でバス249上にコマ
ンド/キー/アドレスを配置することによって実行され
る。
データ空間162、主記憶162中のマイクロコード領
域、またはメイルボックスあるいはメッセージ・キュー
からデータを求めるような動作である。いかなる場合に
も、アダプタ154の論理に、実行しなくてはならない
動作を命令するためには、選択サイクルがそのようなフ
ェッチ・サイクルに先行しなくてはならない。選択サイ
クルはコマンド/状況バス249上のコマンドが「フェ
ッチ」コマンドであることを除いては、バス252を使
用する記憶記憶動作と同様の様式でバス249上にコマ
ンド/キー/アドレスを配置することによって実行され
る。
(選択サイクルの完了後)次のサイクルの開始により、
BCU156が「タグ・アップ」信号を立ち上げ、それ
を3BCUクロック・サイクル維持する(第15B
図)。タグ・アップは、バッファからデータを要求す
る。すると、もしそのバッファがデータを渡すことがで
きるのなら、データは1サイクル後に可用となる。その
動作は、半同期的であるので、BCU156は、データ
の最初の2バイトが2サイクルの間有効に維持され、次
に1サイクル切り換え時間があって、その後2バイトの
データをBCU156へとゲートすることができる。
BCU156が「タグ・アップ」信号を立ち上げ、それ
を3BCUクロック・サイクル維持する(第15B
図)。タグ・アップは、バッファからデータを要求す
る。すると、もしそのバッファがデータを渡すことがで
きるのなら、データは1サイクル後に可用となる。その
動作は、半同期的であるので、BCU156は、データ
の最初の2バイトが2サイクルの間有効に維持され、次
に1サイクル切り換え時間があって、その後2バイトの
データをBCU156へとゲートすることができる。
しかし、アダプタ154が、「タグ・アップ」立上りの
瞬間可用なデータをもっていないような状況が存在す
る。これは、典型的には、「初期」データ・フェッチに
おいて生じ、そのとき、フェッチ要求がキャッシュ・コ
ントローラ153及び記憶コントローラ155を介して
処理され、アダプタ154に戻されるまでいくらか時間
ががかるような新しいアドレスからデータがフェッチさ
れる。主記憶162における再試行も同様の一時的な遅
延を引き起こすことがある。
瞬間可用なデータをもっていないような状況が存在す
る。これは、典型的には、「初期」データ・フェッチに
おいて生じ、そのとき、フェッチ要求がキャッシュ・コ
ントローラ153及び記憶コントローラ155を介して
処理され、アダプタ154に戻されるまでいくらか時間
ががかるような新しいアドレスからデータがフェッチさ
れる。主記憶162における再試行も同様の一時的な遅
延を引き起こすことがある。
アダプタ154がデータを引き渡すことができないとき
(第15C図)、アダプタ154は、「タグ・アップ」
が検出されると直ぐに「ダグ・ダウン」線を立ち上げ
る。BCU156は、「タグ・アップ」を立ち上げた後
5サイクル以内に「タグ・ダウン」線をサンプルしなく
てはならない。
(第15C図)、アダプタ154は、「タグ・アップ」
が検出されると直ぐに「ダグ・ダウン」線を立ち上げ
る。BCU156は、「タグ・アップ」を立ち上げた後
5サイクル以内に「タグ・ダウン」線をサンプルしなく
てはならない。
アダプタ154は、第1のデータ・ワード(4バイト)
が可用となるまで「タグ・ダウン」を維持する。その瞬
間、アダプタ154は、第1の2バイトをバス250上
に配置し、「タグ・ダウン」を下降させる。「タグ・ダ
ウン」信号の下降端は、BCUの論理253をトリガす
る。
が可用となるまで「タグ・ダウン」を維持する。その瞬
間、アダプタ154は、第1の2バイトをバス250上
に配置し、「タグ・ダウン」を下降させる。「タグ・ダ
ウン」信号の下降端は、BCUの論理253をトリガす
る。
BCU156は、「タグ・ダウン」の下降に続く2サイ
クルの間その第1のバイトが有効であり、そのあと第2
の2バイトが可用であると仮定する。選択サイクルの間
にセット・アップされるカウントに応じて、一度に2バ
イトずつ、60バイトまでのバイトがそれに続くことが
できる。
クルの間その第1のバイトが有効であり、そのあと第2
の2バイトが可用であると仮定する。選択サイクルの間
にセット・アップされるカウントに応じて、一度に2バ
イトずつ、60バイトまでのバイトがそれに続くことが
できる。
選択サイクルで指令された全てのメイルボックス・デー
タが受け取られた時、BCU156は、その動作を開始
させた線256a上の、プロセッサ装置からBCUへの
要求をリセットするために、アダプタ154に対して線
256b上の「BCUからプロセッサ装置への肯定応
答」信号を立ち上げる。
タが受け取られた時、BCU156は、その動作を開始
させた線256a上の、プロセッサ装置からBCUへの
要求をリセットするために、アダプタ154に対して線
256b上の「BCUからプロセッサ装置への肯定応
答」信号を立ち上げる。
プロセッサ要素85とBCU156の間の大抵のデータ
転送は、アダプタ154中のベース・レジスタ110に
記憶されたベース・アドレスとキュー長を使用して、予
定の記憶位置188、189を通じて行なわれる。イン
バウンド・メッセージ・キュー189は、BCU156
によって送られた全てのメッセージを時系列順に記憶す
る。
転送は、アダプタ154中のベース・レジスタ110に
記憶されたベース・アドレスとキュー長を使用して、予
定の記憶位置188、189を通じて行なわれる。イン
バウンド・メッセージ・キュー189は、BCU156
によって送られた全てのメッセージを時系列順に記憶す
る。
E12C.バス制御ユニット156−一般的な説明(第
16及び第17図) バス制御ユニット(BCU)156は、S/370プロ
セッサ85及び、S/370I/O命令を実行するため
に利用される関連S/88プロセッサ62との間の主要
な結合ハードウェアである。
16及び第17図) バス制御ユニット(BCU)156は、S/370プロ
セッサ85及び、S/370I/O命令を実行するため
に利用される関連S/88プロセッサ62との間の主要
な結合ハードウェアである。
BCU156は、プロセッサ62に対して割り込みを与
え、プロセッサ62をその関連ハードウエアから非同期
的に切り放し、プロセッサ62をBCU156に対して
結合することを、S/88オペレーティング・システム
に対して透過的に実行するために、S/88プロセッサ
62上で走っているアプリケーション・プログラム(E
XEC370)及びマイクロコード(ETIO)と対話
する手段を有している。その透過的割り込み及び切り放
し機構は、所望のS/370I/O動作を実行するべく
S/88プロセッサ62によって使用可能な形式にコマ
ンド及びデータを変換するために、S/370I/Oコ
マンド及びデータをS/370プロセッサ85からS/
88プロセッサ62へ効率的に転送するためにS/37
0及びS/88プロセッサの直接転送を可能ならしめる
ために利用される。
え、プロセッサ62をその関連ハードウエアから非同期
的に切り放し、プロセッサ62をBCU156に対して
結合することを、S/88オペレーティング・システム
に対して透過的に実行するために、S/88プロセッサ
62上で走っているアプリケーション・プログラム(E
XEC370)及びマイクロコード(ETIO)と対話
する手段を有している。その透過的割り込み及び切り放
し機構は、所望のS/370I/O動作を実行するべく
S/88プロセッサ62によって使用可能な形式にコマ
ンド及びデータを変換するために、S/370I/Oコ
マンド及びデータをS/370プロセッサ85からS/
88プロセッサ62へ効率的に転送するためにS/37
0及びS/88プロセッサの直接転送を可能ならしめる
ために利用される。
EXEC370及びETIOはともに、マイクロコード
またはアプリケーション・プログラムのどちらかであっ
て、記憶174またはキャッシュ173のどちらかに記
憶されていることが見て取れよう。
またはアプリケーション・プログラムのどちらかであっ
て、記憶174またはキャッシュ173のどちらかに記
憶されていることが見て取れよう。
BCU156(第16図)は、バス制御ユニット・イン
ターフェース論理及びレジスタ205と、直接メモリ・
アクセス・コントローラ(DMAC)209と、ローカ
ル記憶210を含む。ローカル・アドレス及びデータ・
バス247、223は、記憶210を、ドライバ/レシ
ーバ回路217、218を介してプロセッサ要素62ア
ドレス、データ・バス161a、161dに結合し、イ
ンターフェース論理205に結合する。DMAC209
は、ラッチ233を介してアドレス・バス247に結合
され、ドライバ/レシーバ234を介してデータ・デー
タ・バス223に結合されている。
ターフェース論理及びレジスタ205と、直接メモリ・
アクセス・コントローラ(DMAC)209と、ローカ
ル記憶210を含む。ローカル・アドレス及びデータ・
バス247、223は、記憶210を、ドライバ/レシ
ーバ回路217、218を介してプロセッサ要素62ア
ドレス、データ・バス161a、161dに結合し、イ
ンターフェース論理205に結合する。DMAC209
は、ラッチ233を介してアドレス・バス247に結合
され、ドライバ/レシーバ234を介してデータ・デー
タ・バス223に結合されている。
DMAC209は、好適な実施例では、以下で説明され
ている68450DMAコントローラである。
ている68450DMAコントローラである。
DMAC209は、それぞれが特定の機能に専用であ
る、要求及び肯定応答経路によって、インターフェース
論理205(第17図)に結合された4つのチャネル0
乃至3をもつ。チャネル0は、S/370記憶162中
のメイルボックス領域188(第28図)からローカル
記憶210へS/370I/Oコマンドを転送する(メ
イルボックス読取)。チャネル1は、記憶162から記
憶210へS/370データを転送する(S/370I
/O書込)チャネル2は、記憶210から記憶162へ
データを転送する(S/370I/O読取)。チャネル
3は、記憶210から記憶162中のメッセージ・キュ
ー領域189(第28図)に高優先度S/88メッセー
ジを転送する。(Qメッセージ書込み)。
る、要求及び肯定応答経路によって、インターフェース
論理205(第17図)に結合された4つのチャネル0
乃至3をもつ。チャネル0は、S/370記憶162中
のメイルボックス領域188(第28図)からローカル
記憶210へS/370I/Oコマンドを転送する(メ
イルボックス読取)。チャネル1は、記憶162から記
憶210へS/370データを転送する(S/370I
/O書込)チャネル2は、記憶210から記憶162へ
データを転送する(S/370I/O読取)。チャネル
3は、記憶210から記憶162中のメッセージ・キュ
ー領域189(第28図)に高優先度S/88メッセー
ジを転送する。(Qメッセージ書込み)。
バス・アダプタ154は、2つのチャネル0及び1をも
つ。アダプタ・チャネル0は、DMACチャネル0、1
のメイルボックス読取及びS/370I/O書込(すな
わち、S/370からBCU156へのデータの流れ)
を扱う。アダプタ・チャネル1は、DMAC2、3のS
/370I/O読取及びQメッセージ書込機能(すなわ
ち、BCU156からS/370へのデータの流れ)を
扱う。
つ。アダプタ・チャネル0は、DMACチャネル0、1
のメイルボックス読取及びS/370I/O書込(すな
わち、S/370からBCU156へのデータの流れ)
を扱う。アダプタ・チャネル1は、DMAC2、3のS
/370I/O読取及びQメッセージ書込機能(すなわ
ち、BCU156からS/370へのデータの流れ)を
扱う。
EI2D.直接メモリ・アクセス・コントローラ209 DMAC209は、好適には、モトローラ社が発行して
いるM68000Family Reference Manual,FR68K/D,1988に記
載されているタイプ(MC68450)である。DMA
C209は、プロセッサからの最小の介入で、データの
ブロックを迅速且つ効率的な方法で移動することによっ
て、(この実施例のM68020プロセッサなどの)モ
トローラM68000ファミリ・マイクロプロセッサの
性能及びアーチテクキャ的な能力を補うように設計され
ている。DMAC209は、メモリからメモリ、メモリ
から装置、装置からメモリのデータ転送を実行する。
いるM68000Family Reference Manual,FR68K/D,1988に記
載されているタイプ(MC68450)である。DMA
C209は、プロセッサからの最小の介入で、データの
ブロックを迅速且つ効率的な方法で移動することによっ
て、(この実施例のM68020プロセッサなどの)モ
トローラM68000ファミリ・マイクロプロセッサの
性能及びアーチテクキャ的な能力を補うように設計され
ている。DMAC209は、メモリからメモリ、メモリ
から装置、装置からメモリのデータ転送を実行する。
このDMACは、プログラム可能な優先順位をもつ独立
な4つのDMAチャネルをもち、24ビット・アドレス
と16ビット・データ・バスをもつ非同期M68000
バス構造を使用する。それは、明示的にも暗示的にもア
ドレスすることができる。
な4つのDMAチャネルをもち、24ビット・アドレス
と16ビット・データ・バスをもつ非同期M68000
バス構造を使用する。それは、明示的にも暗示的にもア
ドレスすることができる。
参照番号209などのDMACの主要な目的は、ソフト
ウェア制御下にあるマイクロプロセッサが扱うよりも通
常はるかに高速でデータを転送することにある。直接メ
モリ・アクセス(DMA)という用語は、マイクロプロ
セッサが行うのと同様にしてシステム中のメモリに周辺
装置がアクセスする能力のことである。この実施例にお
けるそのメモリとは、ローカル記憶210のことであ
る。DMA動作は、システム・プロセッサが実行する必
要がある別の動作と並行的に行うことができ、以て全体
のシステム性能を著しく高めるのである。
ウェア制御下にあるマイクロプロセッサが扱うよりも通
常はるかに高速でデータを転送することにある。直接メ
モリ・アクセス(DMA)という用語は、マイクロプロ
セッサが行うのと同様にしてシステム中のメモリに周辺
装置がアクセスする能力のことである。この実施例にお
けるそのメモリとは、ローカル記憶210のことであ
る。DMA動作は、システム・プロセッサが実行する必
要がある別の動作と並行的に行うことができ、以て全体
のシステム性能を著しく高めるのである。
DMAC209は、データのブロックを、ローカル・バ
ス223の限界に近付く速度で移動する。データのブロ
ックは、記憶中の特定アドレスで始まるバイト、ワード
または長ワード・オペランドの列からなり、転送カウン
トによって決定されるブロック長をもつ。単一チャネル
動作には、記憶210との間の複数ブロックのデータの
転送が関与することができる。
ス223の限界に近付く速度で移動する。データのブロ
ックは、記憶中の特定アドレスで始まるバイト、ワード
または長ワード・オペランドの列からなり、転送カウン
トによって決定されるブロック長をもつ。単一チャネル
動作には、記憶210との間の複数ブロックのデータの
転送が関与することができる。
DMAC209に係わるどの動作も、プロセッサ要素6
2によるチャネル初期化、データ転送及びブロックの終
了、という同一の基本的ステップの後に続くことにな
る。初期化フェーズでは、プロセッサ62がDMACの
レジスタに、制御情報と、アドレス・ポインタと、転送
カウントをロードし、チャネルを開始させる。転送フェ
ーズの間、DMAC209はオペランド転送のための要
素を受け入れて、その転送のためのアドレシングとバス
制御を与える。終了フェーズは、動作の完了後行なわ
れ、そのとき、DMACは状況レジスタCSR中に動作
の状況を表示する。データ転送の全てのフェーズの間、
DMAC209は次の3つの動作モードのうちの1つに
ある。
2によるチャネル初期化、データ転送及びブロックの終
了、という同一の基本的ステップの後に続くことにな
る。初期化フェーズでは、プロセッサ62がDMACの
レジスタに、制御情報と、アドレス・ポインタと、転送
カウントをロードし、チャネルを開始させる。転送フェ
ーズの間、DMAC209はオペランド転送のための要
素を受け入れて、その転送のためのアドレシングとバス
制御を与える。終了フェーズは、動作の完了後行なわ
れ、そのとき、DMACは状況レジスタCSR中に動作
の状況を表示する。データ転送の全てのフェーズの間、
DMAC209は次の3つの動作モードのうちの1つに
ある。
(1)IDLE(遊休)−これは、DMAC209が、
外部装置によってリセットされ、システム・プロセッサ
62による初期化、または周辺装置からのオペランド転
送要求を待っている時に想定する状態である。
外部装置によってリセットされ、システム・プロセッサ
62による初期化、または周辺装置からのオペランド転
送要求を待っている時に想定する状態である。
(2)MPU−これは、DMACがシステム中の別のバ
ス・マスタ(通常、主システム・プロセッサ62)によ
ってチップ選択されたとき入る状態である。このモード
では、チャネル動作をチェックし、あるいはブロック転
送の状況をチェックするために、DMAC内部レジスタ
が読み書きされる。
ス・マスタ(通常、主システム・プロセッサ62)によ
ってチップ選択されたとき入る状態である。このモード
では、チャネル動作をチェックし、あるいはブロック転
送の状況をチェックするために、DMAC内部レジスタ
が読み書きされる。
(3)DM−これは、DMAC209が、オペランド転
送を実行するためにバス・マスタとして動作していると
きに入る状態である。
送を実行するためにバス・マスタとして動作していると
きに入る状態である。
DMACは、暗示的アドレスまたは明示的アドレス・デ
ータ転送を実行することができる。明示的転送の場合、
データはソースから内部DMAC保持レジスタに転送さ
れ、次のバス・サイクルで保持レジスタから宛先へと移
動される。暗示的データ転送は、内部的DMACバッフ
ァ動作なしでソースから宛先へ直接データが転送される
ので、1バス・サイクルしか要さない。
ータ転送を実行することができる。明示的転送の場合、
データはソースから内部DMAC保持レジスタに転送さ
れ、次のバス・サイクルで保持レジスタから宛先へと移
動される。暗示的データ転送は、内部的DMACバッフ
ァ動作なしでソースから宛先へ直接データが転送される
ので、1バス・サイクルしか要さない。
さて、(A)単一ブロック転送、(B)連続動作、
(C)連鎖動作、という3つのタイプのチャネル動作が
存在する。単一ブロックのデータを転送するときには、
メモリ・アドレス・レジスタMAR及び装置アドレス・
レジスタDARは、ユーザーによって、転送のソース及
び宛先を指定するように初期化される。さらにまた、ブ
ロックの、転送されるオペランドの数をカウントするた
めに、メモリ転送カウント・レジスタも初期化される。
(C)連鎖動作、という3つのタイプのチャネル動作が
存在する。単一ブロックのデータを転送するときには、
メモリ・アドレス・レジスタMAR及び装置アドレス・
レジスタDARは、ユーザーによって、転送のソース及
び宛先を指定するように初期化される。さらにまた、ブ
ロックの、転送されるオペランドの数をカウントするた
めに、メモリ転送カウント・レジスタも初期化される。
2つの連鎖モードとして、アレイ連鎖と、連列アレイ連
鎖がある。アレイ連鎖モードは、メモリ・アドレス及び
転送カウントからなる、記憶210中の連続的アレイか
ら動作する。ベース・アドレス・レジスタBAR及びベ
ース転送カウントレジスタBTCは、そのアレイの開始
アドレスと、アレイ・エントリの数をそれぞれ指し示す
ように初期化される。そして、各ブロックの転送が完了
するにつれて、次のエントリがアレイからフェッチされ
て、ベース転送カウントがデクリメントされ、ベース・
アドレスは、次の新しいアレイ・エントリを指し示すよ
うにインクリメントされる。ベース転送カウントがゼロ
に達したとき、フェッチされたばかりのエントリがその
アレイで定義される最後のブロックである。
鎖がある。アレイ連鎖モードは、メモリ・アドレス及び
転送カウントからなる、記憶210中の連続的アレイか
ら動作する。ベース・アドレス・レジスタBAR及びベ
ース転送カウントレジスタBTCは、そのアレイの開始
アドレスと、アレイ・エントリの数をそれぞれ指し示す
ように初期化される。そして、各ブロックの転送が完了
するにつれて、次のエントリがアレイからフェッチされ
て、ベース転送カウントがデクリメントされ、ベース・
アドレスは、次の新しいアレイ・エントリを指し示すよ
うにインクリメントされる。ベース転送カウントがゼロ
に達したとき、フェッチされたばかりのエントリがその
アレイで定義される最後のブロックである。
件列アレイ連鎖モードは、アレイ連鎖モードに類似する
が、メモリ・アレイ中の各エントリがやはりアレイ中の
次のエントリを指し示す点で異なる。このことは、非連
続メモリ・アレイを許容する。最後のエントリは、ゼロ
にセットされたリンク・アドレスを含む。ベース転送カ
ウント・レジスタBTCは、このモードでは不要であ
る。ベース・アドレス・レジスタBARは、そのアレイ
の最初のエントリのアドレスに初期化される。連結アド
レスは、ベース・アドレスを、各ブロック転送の開始時
点で更新するために使用される。この連鎖モードは、ア
レイを順次的な順序に再構成する必要なくアレイ・エン
トリを容易に移動しまたは挿入することを可能ならしめ
る。また、アレイ中のエントリの数は、DMAC209
中で指定する必要はない。このアドレシング・モード
は、この実施例では、DMAC209によって、以下詳
述する方法でリンク・リストから自由ワーク・キュー・
ブロック(WQB)にアクセスするために使用される。
が、メモリ・アレイ中の各エントリがやはりアレイ中の
次のエントリを指し示す点で異なる。このことは、非連
続メモリ・アレイを許容する。最後のエントリは、ゼロ
にセットされたリンク・アドレスを含む。ベース転送カ
ウント・レジスタBTCは、このモードでは不要であ
る。ベース・アドレス・レジスタBARは、そのアレイ
の最初のエントリのアドレスに初期化される。連結アド
レスは、ベース・アドレスを、各ブロック転送の開始時
点で更新するために使用される。この連鎖モードは、ア
レイを順次的な順序に再構成する必要なくアレイ・エン
トリを容易に移動しまたは挿入することを可能ならしめ
る。また、アレイ中のエントリの数は、DMAC209
中で指定する必要はない。このアドレシング・モード
は、この実施例では、DMAC209によって、以下詳
述する方法でリンク・リストから自由ワーク・キュー・
ブロック(WQB)にアクセスするために使用される。
DMAC209は、DMA動作の完了、またはPCL線
57a乃至57dを使用する装置の要求時などのいくつ
かの事象発生に対応してプロセッサ要素62に割り込み
をかけることになる。DMAC209は、プロセッサ要
素62ベクタ割り込み構造で使用するために、8個のチ
ップ上ベクタ・レジスタに割り込みベクタを保持する。
2つの割り込みベクタ、すなわち、正常割り込みベクタ
(NIV)およびエラー割り込みベクタ(EIV)はど
のチャネルにも利用可能である。
57a乃至57dを使用する装置の要求時などのいくつ
かの事象発生に対応してプロセッサ要素62に割り込み
をかけることになる。DMAC209は、プロセッサ要
素62ベクタ割り込み構造で使用するために、8個のチ
ップ上ベクタ・レジスタに割り込みベクタを保持する。
2つの割り込みベクタ、すなわち、正常割り込みベクタ
(NIV)およびエラー割り込みベクタ(EIV)はど
のチャネルにも利用可能である。
各チャネルは、0、1、2または3の優先レベルを与え
られており、すなわち、チャネル0、1、2、3はそれ
ぞれ優先レベル0、2、2、1を割当てられている(優
先レベル0が最高である)。
られており、すなわち、チャネル0、1、2、3はそれ
ぞれ優先レベル0、2、2、1を割当てられている(優
先レベル0が最高である)。
要求は、装置によって外部的に発生されるか、DMAC
209の自動要求機構によって内部的に発生される。自
動要求は、チャネルが常に要求保留の場合は最大速度で
発生され、あるいはDMA活動に可用なバス帯域の一部
を選択することによって決定される限定された速度で発
生される。外部要求は、各チャネルに関連する要求信号
によって発生されるバースト要求またはサイクル・スチ
ール要求のどちらかである。
209の自動要求機構によって内部的に発生される。自
動要求は、チャネルが常に要求保留の場合は最大速度で
発生され、あるいはDMA活動に可用なバス帯域の一部
を選択することによって決定される限定された速度で発
生される。外部要求は、各チャネルに関連する要求信号
によって発生されるバースト要求またはサイクル・スチ
ール要求のどちらかである。
DMAC209は4つのチャネルに1つの汎用制御レジ
スタGCRを加えたもののめいめいごとに、17個のレ
ジスタ(第18図)をもち、それらは全てソフトウェア
の制御下にある。
スタGCRを加えたもののめいめいごとに、17個のレ
ジスタ(第18図)をもち、それらは全てソフトウェア
の制御下にある。
DMAC209レジスタは、ソース及び宛先アドレス及
び機能コードと、転送カウントと、オペランド・サイズ
と、装置ポート・サイズと、チャネル優先順位と、連続
アドレス及び転送カウントと、周辺制御線の機能などの
データ転送についての情報を含む。1つのレジスタCS
Rがまた、チャネル活動、周辺入力、及びDMA転送の
間に生じたかもしれないさまざまな事象についての状況
及びエラー情報を与える。一般制御レジスタGCRは、
限定された自動要求DMA動作で使用すべきバス利用係
数を選択する。
び機能コードと、転送カウントと、オペランド・サイズ
と、装置ポート・サイズと、チャネル優先順位と、連続
アドレス及び転送カウントと、周辺制御線の機能などの
データ転送についての情報を含む。1つのレジスタCS
Rがまた、チャネル活動、周辺入力、及びDMA転送の
間に生じたかもしれないさまざまな事象についての状況
及びエラー情報を与える。一般制御レジスタGCRは、
限定された自動要求DMA動作で使用すべきバス利用係
数を選択する。
入力及び出力信号は、機能的には、以下で説明する群に
構成される(第19A図参照)。
構成される(第19A図参照)。
アドレス/データ・バス(A8−A23,D0−D1
5)は、16ビット・バスであって、DMAモードの動
作の間にアドレス出力を与えるように時間的に多重化さ
れ、(プロセッサ要素62書込みまたはDMAC読取の
間に)外部装置からデータを入力し、(プロセッサ要素
62読取またはDMAC書込みの間に)外部装置にデー
タを出力するための両方向データ・バスとして使用され
る。これは3状態バスであって、マルチプレクス線OW
N及びDDIRによって制御される外部ラッチ及びバッ
ファ233、234を使用してデマルチプレクスされ
る。
5)は、16ビット・バスであって、DMAモードの動
作の間にアドレス出力を与えるように時間的に多重化さ
れ、(プロセッサ要素62書込みまたはDMAC読取の
間に)外部装置からデータを入力し、(プロセッサ要素
62読取またはDMAC書込みの間に)外部装置にデー
タを出力するための両方向データ・バスとして使用され
る。これは3状態バスであって、マルチプレクス線OW
N及びDDIRによって制御される外部ラッチ及びバッ
ファ233、234を使用してデマルチプレクスされ
る。
バス247の下位アドレス・バス線A1乃至A7は、M
PUモードにおいてDMAC内部レジスタにアクセス
し、且つDMAモードにおいて下位7アドレス出力を与
えるために使用される。
PUモードにおいてDMAC内部レジスタにアクセス
し、且つDMAモードにおいて下位7アドレス出力を与
えるために使用される。
機能コード線FC0乃至FC2は、3状態出力であっ
て、DMAモードにおいて、ユーザーによって決定する
ことができる個別のアドレス空間を与えるようにアドレ
ス・バス247上の値をさらに修飾するために使用され
る。これらの線上に配置される値は、DMAバス・サイ
クルの間に使用されるアドレスを与えるレジスタに応じ
て、内部機能コード・レジスタMFC、DFC、BFC
のうちの1つから持って来られる。
て、DMAモードにおいて、ユーザーによって決定する
ことができる個別のアドレス空間を与えるようにアドレ
ス・バス247上の値をさらに修飾するために使用され
る。これらの線上に配置される値は、DMAバス・サイ
クルの間に使用されるアドレスを与えるレジスタに応じ
て、内部機能コード・レジスタMFC、DFC、BFC
のうちの1つから持って来られる。
非同期バス制御線は、次の制御信号、すなわち、選択ア
ドレス・ストローブ、読取/書込、上方及び下方データ
・ストローブ、及びデータ転送肯定応答を使用して非同
期データ転送を制御する。
ドレス・ストローブ、読取/書込、上方及び下方データ
・ストローブ、及びデータ転送肯定応答を使用して非同
期データ転送を制御する。
選択入力線296は、MPUバス・サイクルのためにD
MAC209を選択するために使用される。その線が立
ち上げられた時、A1乃至A7上のアドレス及びデータ
・ストローブ(あるいは8ビット・バスを使用した時の
AO)は、その転送に関与することになる内部DMAC
レジスタを選択する。選択は、アドレス・デコード信号
をアドレス及びデータ・ストローブで修飾することによ
って発生されるべきである。
MAC209を選択するために使用される。その線が立
ち上げられた時、A1乃至A7上のアドレス及びデータ
・ストローブ(あるいは8ビット・バスを使用した時の
AO)は、その転送に関与することになる内部DMAC
レジスタを選択する。選択は、アドレス・デコード信号
をアドレス及びデータ・ストローブで修飾することによ
って発生されるべきである。
線270b上のアドレス・ストローブ(AS)は、DM
Aモードで、有効アドレスがアドレス・バス161上に
あることを示すために出力として使用される両方向信号
である。MPUまたはIDLEモードでは、それは(も
しDMACがバスの使用を要求しそれを許可されていた
なら)DMACが何時バスの制御を得ることができるか
を決定するために入力として使用される。
Aモードで、有効アドレスがアドレス・バス161上に
あることを示すために出力として使用される両方向信号
である。MPUまたはIDLEモードでは、それは(も
しDMACがバスの使用を要求しそれを許可されていた
なら)DMACが何時バスの制御を得ることができるか
を決定するために入力として使用される。
読取/書込は、バス・サイクルの間にデータ転送の方向
を示すために使用される両方向信号(図示しない)であ
る。MPUモードでは、その高レベルが、転送がDMA
C209からデータ・バス223へ向かっていることを
示し、低レベルが、データ・バスからDMAC209へ
の転送を示す。DMAモードでは、高レベルは、アドレ
スされたメモリ210からデータ・バス223への転送
を示し、低レベルが、データ・バス223からアドレス
されたメモリ210への転送を示す。
を示すために使用される両方向信号(図示しない)であ
る。MPUモードでは、その高レベルが、転送がDMA
C209からデータ・バス223へ向かっていることを
示し、低レベルが、データ・バスからDMAC209へ
の転送を示す。DMAモードでは、高レベルは、アドレ
スされたメモリ210からデータ・バス223への転送
を示し、低レベルが、データ・バス223からアドレス
されたメモリ210への転送を示す。
上方及び下方データ・ストローブ両方向線(図示しな
い)は、バス上でデータが有効である時と、D8−15
またはD0−7のうちバスのどの部分が転送に関与すべ
きかを示す。
い)は、バス上でデータが有効である時と、D8−15
またはD0−7のうちバスのどの部分が転送に関与すべ
きかを示す。
データ転送肯定応答(DTACK)両方向線265は、
非同期バス・サイクルを終了してもよいことを知らせる
ために使用される。MPUモードでは、この出力は、D
MAC209がプロセッサ要素62からデータを受け入
れ、またはプロセッサ要素62のためにバス上をデータ
を配置したことを示す。DMAモードでは、この入力2
65は、バス・サイクルを終了すべき時を決定するため
にDMACによってモニタされる。DTACK265が
否定される状態にとどまっている限り、DMACはバス
・サイクルに待ちサイクルを挿入し、DTACK265
が立ち上がった時、バス・サイクルは終了される(但
し、PCL257がレディ信号として使用されるときは
例外であって、その場合、両信号は、サイクルが完了す
る前に立ち上げられなくてはならない)。
非同期バス・サイクルを終了してもよいことを知らせる
ために使用される。MPUモードでは、この出力は、D
MAC209がプロセッサ要素62からデータを受け入
れ、またはプロセッサ要素62のためにバス上をデータ
を配置したことを示す。DMAモードでは、この入力2
65は、バス・サイクルを終了すべき時を決定するため
にDMACによってモニタされる。DTACK265が
否定される状態にとどまっている限り、DMACはバス
・サイクルに待ちサイクルを挿入し、DTACK265
が立ち上がった時、バス・サイクルは終了される(但
し、PCL257がレディ信号として使用されるときは
例外であって、その場合、両信号は、サイクルが完了す
る前に立ち上げられなくてはならない)。
線OWN及びDDIR上の多重制御信号は、バス248
上のアドレス及びデータ情報を分離し、あるDMACバ
ス・サイクルの間にデータ・バス223の上半分と下半
分の間でデータを転送するべく外部マルチプレクス/デ
マルチプレクス装置233、234を制御するために使
用される。OWN線は、DMAC209がバスを制御し
つつあることを示す出力である。それは、外部アドレス
・ドライバと、制御信号バッファとをターン・オンさせ
るために使用される。
上のアドレス及びデータ情報を分離し、あるDMACバ
ス・サイクルの間にデータ・バス223の上半分と下半
分の間でデータを転送するべく外部マルチプレクス/デ
マルチプレクス装置233、234を制御するために使
用される。OWN線は、DMAC209がバスを制御し
つつあることを示す出力である。それは、外部アドレス
・ドライバと、制御信号バッファとをターン・オンさせ
るために使用される。
バス要求(BR)線269は、ローカル・バス223、
247の制御を要求するためにDMACによって立ち上
げられる出力である。
247の制御を要求するためにDMACによって立ち上
げられる出力である。
バス許可(BG)線268は、DMAC209に、現在
のバス・サイクルが完了すると直ぐにバス支配権を引き
受けてよいことを知らせるために、外部バス・アービタ
16によって立ち上げられる入力である。
のバス・サイクルが完了すると直ぐにバス支配権を引き
受けてよいことを知らせるために、外部バス・アービタ
16によって立ち上げられる入力である。
線258a及び258b上の2つの割り込み制御信号I
RQ及びIACKは、割り込み論理212を介して、プ
ロセッサ要素62との割り込み要求/肯定応答ハンドシ
ェーク・シーケンスを形成する。線258b上の割り込
み肯定応答(IACK)は、プロセッサ要素62がDM
AC209から割り込みを受け取ったことを通知するた
めに、論理216を介してプロセッサ要素62によって
立ち上げられる。IACKの立ち上げに応答して、DM
AC209は、適正な割り込みハンドラ・ルーチンのア
ドレスをフェッチするために、プロセッサ要素62によ
って使用されることになるバス223のD0−D7上の
ベクタを配置する。
RQ及びIACKは、割り込み論理212を介して、プ
ロセッサ要素62との割り込み要求/肯定応答ハンドシ
ェーク・シーケンスを形成する。線258b上の割り込
み肯定応答(IACK)は、プロセッサ要素62がDM
AC209から割り込みを受け取ったことを通知するた
めに、論理216を介してプロセッサ要素62によって
立ち上げられる。IACKの立ち上げに応答して、DM
AC209は、適正な割り込みハンドラ・ルーチンのア
ドレスをフェッチするために、プロセッサ要素62によ
って使用されることになるバス223のD0−D7上の
ベクタを配置する。
装置制御線は、DMAC209と、4つのDMACチャ
ネルに結合された装置の間のインターフェースを実行す
る。3つの線の4つの組が単一のDMACチャネルとそ
の周辺装置に専用となっており、残りの線は全てのチャ
ネルによって共有される大域的信号である。
ネルに結合された装置の間のインターフェースを実行す
る。3つの線の4つの組が単一のDMACチャネルとそ
の周辺装置に専用となっており、残りの線は全てのチャ
ネルによって共有される大域的信号である。
線263a乃至263d上の要求(REQ0乃至REQ
3)入力は、主記憶162と記憶210の間のオペラン
ド転送を要求するために論理253によって立ち上げら
れる。
3)入力は、主記憶162と記憶210の間のオペラン
ド転送を要求するために論理253によって立ち上げら
れる。
線264a乃至264d上の肯定応答(ACK0乃至A
CH3)出力は、その前の転送要求に応答してオペラン
ドが転送されつつあることを知らせるためにDMAC2
09によって立ち上げられる。
CH3)出力は、その前の転送要求に応答してオペラン
ドが転送されつつあることを知らせるためにDMAC2
09によって立ち上げられる。
周辺制御線(PCL0乃至PCL3)257a乃至25
7dは、レディ、取り消し、再ロード、状況、割り込
み、またはイネーブル・クロック入力として、あるいは
開始パルス出力として機能するようにセットされる、イ
ンターフェース論理253及びDMAC209の間の双
方向線である。
7dは、レディ、取り消し、再ロード、状況、割り込
み、またはイネーブル・クロック入力として、あるいは
開始パルス出力として機能するようにセットされる、イ
ンターフェース論理253及びDMAC209の間の双
方向線である。
データ転送完了(DTC)267は、DMACバス・サ
イクルの間に、そのデータが成功裡に転送されたことを
示すためにDMAC209によって立ち上げられる出力
である。
イクルの間に、そのデータが成功裡に転送されたことを
示すためにDMAC209によって立ち上げられる出力
である。
完了(DONE)。この双方向信号は、DMACバス・
サイクルの間に、転送されつつあるデータがそのブロッ
クの最後の項目であることを示すために、DMAC20
9または周辺装置によって立ち上げられる。DMAC
は、メモリ転送カウント・レジスタがゼロにデクリメン
トされるときのバス・サイクルの間にこの信号を出す。
サイクルの間に、転送されつつあるデータがそのブロッ
クの最後の項目であることを示すために、DMAC20
9または周辺装置によって立ち上げられる。DMAC
は、メモリ転送カウント・レジスタがゼロにデクリメン
トされるときのバス・サイクルの間にこの信号を出す。
E12E.バス制御ユニット156−詳細な説明(第1
9A乃至第19C図と第20図) (A)高速データ転送のためのインターフェース・レジ
スタ 第19A乃至第19C図では、説明の便宜上、BCUイ
ンターフェース論理205(第16図)がさまざまな機
能ユニットに分けられている。このため、論理205
は、アダプタ154とBCU156の間のデータ転送の
速度と性能を高めるためローカル・データ・バス223
とアダプタ・チャネル0、1との間に介在された複数の
インターフェース・レジスタをもつ。インターフェース
205のハードウェア論理253は、DMAC209
と、アドレス・デコード及び調停論理216と、アドレ
ス・ストローブ論理215とともに、BCU156の動
作を制御する。
9A乃至第19C図と第20図) (A)高速データ転送のためのインターフェース・レジ
スタ 第19A乃至第19C図では、説明の便宜上、BCUイ
ンターフェース論理205(第16図)がさまざまな機
能ユニットに分けられている。このため、論理205
は、アダプタ154とBCU156の間のデータ転送の
速度と性能を高めるためローカル・データ・バス223
とアダプタ・チャネル0、1との間に介在された複数の
インターフェース・レジスタをもつ。インターフェース
205のハードウェア論理253は、DMAC209
と、アドレス・デコード及び調停論理216と、アドレ
ス・ストローブ論理215とともに、BCU156の動
作を制御する。
インターフェース・レジスタは、アダプタ154とBC
U156の間のデータ転送の状況を保持するために、チ
ャネル0及び1コマンド状況バス249、252に結合
されたチャネル0読取状況レジスタ229及びチャネル
1書込状況レジスタ230を有する。
U156の間のデータ転送の状況を保持するために、チ
ャネル0及び1コマンド状況バス249、252に結合
されたチャネル0読取状況レジスタ229及びチャネル
1書込状況レジスタ230を有する。
チャネル0及び1コマンド・レジスタ214、225
は、BCU156からアダプタ154、S/370への
データ転送コマンドを一時的に保持する。
は、BCU156からアダプタ154、S/370への
データ転送コマンドを一時的に保持する。
チャネル0、1アドレス/データ・レジスタ219、2
27は、S/370 I/Oデータ転送の間に、アダプ
タ154に転送するためのS/370アドレスを保持す
る。レジスタ227はまた、アダプタ154に対するデ
ータ転送(アドレス転送毎に64バイトまで)の成功し
たI/Oデータ・ワード(4バイトまで)をも保持す
る。
27は、S/370 I/Oデータ転送の間に、アダプ
タ154に転送するためのS/370アドレスを保持す
る。レジスタ227はまた、アダプタ154に対するデ
ータ転送(アドレス転送毎に64バイトまで)の成功し
たI/Oデータ・ワード(4バイトまで)をも保持す
る。
チャネル0読取バッファは、BCUメイルボックス読取
及びS/370 I/O書込動作の間に、アダプタ15
4から転送されたデータを受け取る。
及びS/370 I/O書込動作の間に、アダプタ15
4から転送されたデータを受け取る。
チャネル0、1BSM読取/書込セレクト・アップ・バ
イト・カウンタ220、222及びBSM読取/書込境
界カウンタ221、224は、BCU156からアダプ
タ154へのデータの転送のためのバイト・カウントを
保持する。その両カウンタは、データ転送によるS/3
7064バイト・アドレスの交差を防止するために各チ
ャネル毎に必要である。後で詳細に説明するけれども、
カウンタ220、221は、初期的にはI/O動作のた
めに転送されるべき全体のバイト・カウント(4KBま
で)を記憶し、最後のブロック(64バイト)転送の場
合にのみ、すなわち最後のコマンド/データ転送動作の
場合に、S/370開始アドレスを部分的に形成するよ
うにレジスタ214、225にカウント値を転送するた
めに使用される。境界カウンタ221、224は、どれ
かの単一のコマンド・データ転送動作の場合に、BCU
156によって境界交差が検出されたとき、またはバイ
ト・カウンタが64バイトよりも大きいとき、S/37
0アドレスを(部分的に)与えるために使用される。
イト・カウンタ220、222及びBSM読取/書込境
界カウンタ221、224は、BCU156からアダプ
タ154へのデータの転送のためのバイト・カウントを
保持する。その両カウンタは、データ転送によるS/3
7064バイト・アドレスの交差を防止するために各チ
ャネル毎に必要である。後で詳細に説明するけれども、
カウンタ220、221は、初期的にはI/O動作のた
めに転送されるべき全体のバイト・カウント(4KBま
で)を記憶し、最後のブロック(64バイト)転送の場
合にのみ、すなわち最後のコマンド/データ転送動作の
場合に、S/370開始アドレスを部分的に形成するよ
うにレジスタ214、225にカウント値を転送するた
めに使用される。境界カウンタ221、224は、どれ
かの単一のコマンド・データ転送動作の場合に、BCU
156によって境界交差が検出されたとき、またはバイ
ト・カウンタが64バイトよりも大きいとき、S/37
0アドレスを(部分的に)与えるために使用される。
カウンタ220、221、222及び224は、チャネ
ル0または1上での各データ転送の後に適宜デクリメン
トされる。
ル0または1上での各データ転送の後に適宜デクリメン
トされる。
キュー・カウンタ254は、アダプタ154を介するS
/370記憶への(16バイトまでの)メッセージ転送
のために、同様の機能を与える。
/370記憶への(16バイトまでの)メッセージ転送
のために、同様の機能を与える。
上記インターフェース・レジスタを選択するためのアド
レスは、記憶210アドレス空間(第23C図)に記憶
され、よく知られた方法でバス247上のアドレスをデ
コードすることにより選択される。
レスは、記憶210アドレス空間(第23C図)に記憶
され、よく知られた方法でバス247上のアドレスをデ
コードすることにより選択される。
アダプタ154から論理253に至る、プロセッサから
BCUへの要求線256a上の信号は、BCU156
に、S/370メイルボックス読取要求がレディである
ことを通知する。この信号は、メイルボックス情報がロ
ーカル記憶210に格納されてしまうまで、線256b
上のBCU PU肯定応答信号によってリセットされな
い。
BCUへの要求線256a上の信号は、BCU156
に、S/370メイルボックス読取要求がレディである
ことを通知する。この信号は、メイルボックス情報がロ
ーカル記憶210に格納されてしまうまで、線256b
上のBCU PU肯定応答信号によってリセットされな
い。
タグ・アップ及びタグ・ダウン線262a乃至262d
は、アダプタ・チャネル0,1上で、BCU156とア
ダプタ154の間のデータをストローブするために使用
される。
は、アダプタ・チャネル0,1上で、BCU156とア
ダプタ154の間のデータをストローブするために使用
される。
BCU論理253とDMAC209の間には、ハンドシ
ェーク信号が与えられる。BCU論理は、各DMAチャ
ネルに1つづつ、線263a乃至263d上にサービス
要求を行う。DMACは、線264a乃至264d上の
肯定応答信号で応える。選択270、データ転送応答2
65、周辺制御線257a乃至257d、データ転送完
了267などの他の線は、DMAC209に関連して既
に説明済みである。
ェーク信号が与えられる。BCU論理は、各DMAチャ
ネルに1つづつ、線263a乃至263d上にサービス
要求を行う。DMACは、線264a乃至264d上の
肯定応答信号で応える。選択270、データ転送応答2
65、周辺制御線257a乃至257d、データ転送完
了267などの他の線は、DMAC209に関連して既
に説明済みである。
(B)BCU切り放し及び割り込み論理215,216
(第20及び第21図) 前に、フォールド・トレラント動作及び単一システム・
イメージ環境などのS/88システムの固有の特徴の多
くをS/370システムのために用意するようにS/3
70及びS/88プロセッサの緊密結合を達成するには
2つの機能が重要であると述べた。これらの機能とは、
ここでは、S/88プロセッサの、その関連ハードウェ
アからの切り放し、及び固有の割り込み機構である。そ
の両機能は、S/88オペレーティング・システムに透
過的な様式で働く。BCU156には、切り放し及び割
り込み論理215、216が設けられている。
(第20及び第21図) 前に、フォールド・トレラント動作及び単一システム・
イメージ環境などのS/88システムの固有の特徴の多
くをS/370システムのために用意するようにS/3
70及びS/88プロセッサの緊密結合を達成するには
2つの機能が重要であると述べた。これらの機能とは、
ここでは、S/88プロセッサの、その関連ハードウェ
アからの切り放し、及び固有の割り込み機構である。そ
の両機能は、S/88オペレーティング・システムに透
過的な様式で働く。BCU156には、切り放し及び割
り込み論理215、216が設けられている。
「切り放し」論理は、各命令実行サイクルの間、S/8
8プロセッサアドレス・バス161Aに印加される仮想
アドレスをデコードする。もしBCU156及びその記
憶210に割当てられた、予め選択されたS/88仮想
アドレスのブロックの1つが検出されたなら、S/88
プロセッサ62からのアドレス・ストローブ(AS)信
号が、関連S/88ハードウェアに対してではなく、B
CU156に対してゲートされる。この動作は、S/8
8オペレーティング・システム及びハードウェアが、マ
シン・サイクルが生じていることを知ることを禁止し、
すなわち、その動作は、S/88には透過的である。
8プロセッサアドレス・バス161Aに印加される仮想
アドレスをデコードする。もしBCU156及びその記
憶210に割当てられた、予め選択されたS/88仮想
アドレスのブロックの1つが検出されたなら、S/88
プロセッサ62からのアドレス・ストローブ(AS)信
号が、関連S/88ハードウェアに対してではなく、B
CU156に対してゲートされる。この動作は、S/8
8オペレーティング・システム及びハードウェアが、マ
シン・サイクルが生じていることを知ることを禁止し、
すなわち、その動作は、S/88には透過的である。
しかし、S/88プロセッサ62は、このマシン・サイ
クルの間BCU156を制御するように結合され、AS
信号及び予め選択されたアドレスは、S/370 I/
O動作に関連する機能を実行するために、BCU156
中のさまざまな要素を選択し制御するために使用され
る。
クルの間BCU156を制御するように結合され、AS
信号及び予め選択されたアドレスは、S/370 I/
O動作に関連する機能を実行するために、BCU156
中のさまざまな要素を選択し制御するために使用され
る。
S/88プロセッサ62上で走る特殊アプリケーション
・コード(EXEC370)は、BCU156に、通信
を行わせる動作を実行するように指令するために、これ
らの予め選択した仮想アドレスをS/88バス161A
上に配置することによって、S/370プロセッサ85
との通信を開始する。
・コード(EXEC370)は、BCU156に、通信
を行わせる動作を実行するように指令するために、これ
らの予め選択した仮想アドレスをS/88バス161A
上に配置することによって、S/370プロセッサ85
との通信を開始する。
BCU156中のDMAC209及び他の論理は、この
特殊アプリケーション・コードを動作に呼び出す特殊レ
ベル(6)でS/88に割り込みを与える。各割り込み
の提供は、S/88オペレーティング・システムに対し
て透過的である。
特殊アプリケーション・コードを動作に呼び出す特殊レ
ベル(6)でS/88に割り込みを与える。各割り込み
の提供は、S/88オペレーティング・システムに対し
て透過的である。
これらの割り込みに応答する割り込みハンドラ・ルーチ
ンのいくつかによって実行されるタイプの機能につい
て、S/370 I/O動作のファームウェアの概要の
一例を参照して簡単に説明する。
ンのいくつかによって実行されるタイプの機能につい
て、S/370 I/O動作のファームウェアの概要の
一例を参照して簡単に説明する。
さて、多重相手ユニットをもつモジュールにおいて、対
のユニット・ベースで、DMAC209を介してS/8
8に対するS/370割り込みを扱うための機構及びS
/88オペレーティング・システムの変更について説明
する。
のユニット・ベースで、DMAC209を介してS/8
8に対するS/370割り込みを扱うための機構及びS
/88オペレーティング・システムの変更について説明
する。
ここで、1つの相手ユニットが、双対ローカル記憶、D
MAC、及びカスタム論理を含む双対S/370プロセ
ッサをもつ変更された双対S/88プロセッサ・ボード
とサンドイッチ状に接続されていることを想起された
い。この双対サンドイッチ・ボードの同一の要素は、障
害検出のため完全に同期して(ロックステップ的に)並
列に動作する。
MAC、及びカスタム論理を含む双対S/370プロセ
ッサをもつ変更された双対S/88プロセッサ・ボード
とサンドイッチ状に接続されていることを想起された
い。この双対サンドイッチ・ボードの同一の要素は、障
害検出のため完全に同期して(ロックステップ的に)並
列に動作する。
このサンドイッチ構造全体は、通常、同一の相手サンド
イッチ構造をもち、そして、その相手がロックステップ
的に動作するので、単一のフォールト・トレラントの実
態であるかのように見える。この2重に複製されたハー
ドウェアを、第21図に示すように、単一の動作ユニッ
トと考えても以下の説明では差し支えなかろう。
イッチ構造をもち、そして、その相手がロックステップ
的に動作するので、単一のフォールト・トレラントの実
態であるかのように見える。この2重に複製されたハー
ドウェアを、第21図に示すように、単一の動作ユニッ
トと考えても以下の説明では差し支えなかろう。
好適な実施例では、単一のモジュール筺体中に8個まで
の動作ユニット295乃至295−8が存在することが
でき、それらは、S/88オペレーティング・システム
の単一コピーの制御の下で、主記憶と、I/O機能と、
電源とを共有する。ユニット295(及び他のユニット
295−2と295−8)は、第7図のボード21、2
3などの組ボードの対に対応する。重要なことは、この
多重CPU構成において、S/88プロセッサ・ユニッ
ト62乃至62−8が、S/88のワークロードを共有
するマルチプロセッサとして動作するが、S/370ユ
ニット85乃至85−8は個別且つ独立に動作して、相
互に通信しないことである。各S/370ユニットは、
それ本来のオペレーティング・システムの制御のもとで
動作し、(S/370であれS/88であれ)筺体内の
他のCPUについては関知しない。
の動作ユニット295乃至295−8が存在することが
でき、それらは、S/88オペレーティング・システム
の単一コピーの制御の下で、主記憶と、I/O機能と、
電源とを共有する。ユニット295(及び他のユニット
295−2と295−8)は、第7図のボード21、2
3などの組ボードの対に対応する。重要なことは、この
多重CPU構成において、S/88プロセッサ・ユニッ
ト62乃至62−8が、S/88のワークロードを共有
するマルチプロセッサとして動作するが、S/370ユ
ニット85乃至85−8は個別且つ独立に動作して、相
互に通信しないことである。各S/370ユニットは、
それ本来のオペレーティング・システムの制御のもとで
動作し、(S/370であれS/88であれ)筺体内の
他のCPUについては関知しない。
多重処理環境及びS/88アーキテクチャのため、通常
のS/88システムの割り込みの処理は、CPUユニッ
ト62乃至62−8で共有される。簡略化された図式に
おいては、(I/O、タイマ、プログラム・トラップな
どからの)各割り込みは、全てのS/370プロセッサ
・ユニットに対して並列に共通バス30上に提供され、
1つのユニットがそれにサービスする責任を負い、別の
ユニットをしてそれを無視させることになる。サービス
を与えているユニットがどれであるかに拘らず、ハンド
ラ・コードのためにオペレーティング・システム内には
(ベクタ毎に)単一のエントリ点が存在し、割り込みの
後処理は、(単一の)オペレーティング・システムによ
って決定され処理される。
のS/88システムの割り込みの処理は、CPUユニッ
ト62乃至62−8で共有される。簡略化された図式に
おいては、(I/O、タイマ、プログラム・トラップな
どからの)各割り込みは、全てのS/370プロセッサ
・ユニットに対して並列に共通バス30上に提供され、
1つのユニットがそれにサービスする責任を負い、別の
ユニットをしてそれを無視させることになる。サービス
を与えているユニットがどれであるかに拘らず、ハンド
ラ・コードのためにオペレーティング・システム内には
(ベクタ毎に)単一のエントリ点が存在し、割り込みの
後処理は、(単一の)オペレーティング・システムによ
って決定され処理される。
多重S/370構成においては、全ての正常S/88割
り込みが上述のように動作し、S/88ハンドラ・コー
ドは変更されない。また、DMAC209乃至209−
8の割り込み提供を可能ならしめるわずかなハードウェ
アの変更は、通常のS/88割り込み機構及びソフトウ
ェアに対して完全に透過的である。
り込みが上述のように動作し、S/88ハンドラ・コー
ドは変更されない。また、DMAC209乃至209−
8の割り込み提供を可能ならしめるわずかなハードウェ
アの変更は、通常のS/88割り込み機構及びソフトウ
ェアに対して完全に透過的である。
必要条件として、DMAC割り込みが、DMAC、BC
U及びS/370が接続されるS/88プロセッサ62
によってのみ処理されなくさはならなず、以て複数のS
/370ユニット85乃至85−8は、互いに干渉する
ことができないようになっていなくてはならない、とい
うことがある。このため、DMAC IRQ線258a
は、S/88プロセッサ62に直接接続され、DMAC
209はS/88プロセッサ62に接続されて、通常の
S/88割り込み要求線のようには共通S/88バス3
0上にはあらわれない。S/370サポートのために、
S/88から奪われたタイム・スラスイの間に、所与の
S/88プロセッサ62が、直接接続されたS/370
に対して専用となる。
U及びS/370が接続されるS/88プロセッサ62
によってのみ処理されなくさはならなず、以て複数のS
/370ユニット85乃至85−8は、互いに干渉する
ことができないようになっていなくてはならない、とい
うことがある。このため、DMAC IRQ線258a
は、S/88プロセッサ62に直接接続され、DMAC
209はS/88プロセッサ62に接続されて、通常の
S/88割り込み要求線のようには共通S/88バス3
0上にはあらわれない。S/370サポートのために、
S/88から奪われたタイム・スラスイの間に、所与の
S/88プロセッサ62が、直接接続されたS/370
に対して専用となる。
主要S/88ベクタ・テーブル内の8つのユーザー・ベ
クタ位置は、DMACによる使用のために予約され、こ
れらのベクタは、S/88オペレーティング・システム
に追加された8つのDMAC割り込みハンドラのハード
・コードされたアドレスである。これらの8つの割り込
みハンドラは、関連S/370プロセッサのために全て
のDMACによって提供される割り込みを処理するため
に全てのS/88プロセッサによって使用される。
クタ位置は、DMACによる使用のために予約され、こ
れらのベクタは、S/88オペレーティング・システム
に追加された8つのDMAC割り込みハンドラのハード
・コードされたアドレスである。これらの8つの割り込
みハンドラは、関連S/370プロセッサのために全て
のDMACによって提供される割り込みを処理するため
に全てのS/88プロセッサによって使用される。
各DMAC209は、単一の割り込み要求(IRQ)出
力信号と、8個の内部ベクタ・レジスタ(チャネル毎に
2個であって、正常動作とDMAC検出エラーにつき1
個ずつ)をもつ。そして初期化時(後述)に、これらの
ベクタ・レジスタは、上述の8個の予約主要ベクタ・テ
ーブルに対応するようにプログラムされる。このように
して、DMACは、IRQを提供する時に8個のハンド
ラ・ルーチンのうちの1つを要求することができる。こ
れらのハンドラは、「隠蔽された」ローカル記憶210
のアドレス範囲内にある仮想アドレスを与えることによ
って、DMAC、BCUハードウェア、キュー、リンク
・リスト、及び全ての制御パラメータにアクセスする。
このハードウェア・デザインは、共通仮想アドレス切り
放し「窓」が複数のS/370ユニットで共有されてい
ても、各S/88S/37062が、自己の記憶210
にアクセスできることとを保証する。すなわち、S/8
8仮想アドレス空間007EXXXXは、21、23な
どの各組ユニットが第10図に示すように専用S/88
物理記憶をもっていても全てのS/88−S/370マ
イクロプロセッサによって使用される。
力信号と、8個の内部ベクタ・レジスタ(チャネル毎に
2個であって、正常動作とDMAC検出エラーにつき1
個ずつ)をもつ。そして初期化時(後述)に、これらの
ベクタ・レジスタは、上述の8個の予約主要ベクタ・テ
ーブルに対応するようにプログラムされる。このように
して、DMACは、IRQを提供する時に8個のハンド
ラ・ルーチンのうちの1つを要求することができる。こ
れらのハンドラは、「隠蔽された」ローカル記憶210
のアドレス範囲内にある仮想アドレスを与えることによ
って、DMAC、BCUハードウェア、キュー、リンク
・リスト、及び全ての制御パラメータにアクセスする。
このハードウェア・デザインは、共通仮想アドレス切り
放し「窓」が複数のS/370ユニットで共有されてい
ても、各S/88S/37062が、自己の記憶210
にアクセスできることとを保証する。すなわち、S/8
8仮想アドレス空間007EXXXXは、21、23な
どの各組ユニットが第10図に示すように専用S/88
物理記憶をもっていても全てのS/88−S/370マ
イクロプロセッサによって使用される。
多重S/370構成においては、全てのDMAC209
乃至209−8は、これらの8個のベクタ・レジスタに
関しては同様にプログラムされ、それらは全て主要ベク
タ・テーブルと、ハンドラ・ルーチンとを共用する。そ
して、記憶210などに対するめいめいのアクセス時
に、分化及び切り放しが生じる。DMAC IRQの、
そのS/88プロセッサ62へのハード接続による提供
は、その切り放しと相俟って、S/370プロセッサの
分離及び完全性と、S/88動作との非干渉性を保証す
る。そして、「遺失」S/88CPU時間を除き、これ
らの割り込みのサービスはS/88オペレーティング・
システムに透過的である。
乃至209−8は、これらの8個のベクタ・レジスタに
関しては同様にプログラムされ、それらは全て主要ベク
タ・テーブルと、ハンドラ・ルーチンとを共用する。そ
して、記憶210などに対するめいめいのアクセス時
に、分化及び切り放しが生じる。DMAC IRQの、
そのS/88プロセッサ62へのハード接続による提供
は、その切り放しと相俟って、S/370プロセッサの
分離及び完全性と、S/88動作との非干渉性を保証す
る。そして、「遺失」S/88CPU時間を除き、これ
らの割り込みのサービスはS/88オペレーティング・
システムに透過的である。
こうして、この割り込み設計構成の全体は、異なる割り
込みサービス思想を使用する多重処理環境から個々のプ
ロセッサ機能を奪うことによって、多重S/370ユニ
ットの分離及び保護を行ないながらS/370DMAC
割り込みの間欠的「要求時専用」サービスを、多重処理
システム動作に実質的に影響を与えることなく、また多
重処理オペレーティング・システムを実質的に変更する
ことなく達成するのである。
込みサービス思想を使用する多重処理環境から個々のプ
ロセッサ機能を奪うことによって、多重S/370ユニ
ットの分離及び保護を行ないながらS/370DMAC
割り込みの間欠的「要求時専用」サービスを、多重処理
システム動作に実質的に影響を与えることなく、また多
重処理オペレーティング・システムを実質的に変更する
ことなく達成するのである。
各DMAC割り込み機構を詳細に説明するために、ここ
で第19A及び第20図を参照する。選択ベクタをもつ
DMAC209などの周辺装置がS/88プロセッサ6
2に割り込み要求を提供する時、単一IRQ線258a
がその装置によってアクティブとなされる。このIRQ
線は、S/88プロセッサ・アーキテクチャによって記
述されているような様式でエンコーディング回路293
に結線され、以て、特定優先レベル6で入力ピンIPL
0乃至IPL2を介してS/88プロセッサ62にエン
コードされた割り込み要求を提供する。
で第19A及び第20図を参照する。選択ベクタをもつ
DMAC209などの周辺装置がS/88プロセッサ6
2に割り込み要求を提供する時、単一IRQ線258a
がその装置によってアクティブとなされる。このIRQ
線は、S/88プロセッサ・アーキテクチャによって記
述されているような様式でエンコーディング回路293
に結線され、以て、特定優先レベル6で入力ピンIPL
0乃至IPL2を介してS/88プロセッサ62にエン
コードされた割り込み要求を提供する。
プロセッサ62は、内部状況レジスタに保持されている
優先順位マスク・ビットを使用して、割り込みにサービ
スすることができる時を効率的に決定する。そして、レ
ディであるとき、プロセッサ62は、特殊な「割り込み
肯定応答(IACK)サイクル」を開始する。
優先順位マスク・ビットを使用して、割り込みにサービ
スすることができる時を効率的に決定する。そして、レ
ディであるとき、プロセッサ62は、特殊な「割り込み
肯定応答(IACK)サイクル」を開始する。
内部的にプロセッサ62によって制御されるIACKサ
イクルにおいては、サイクルのタイプと、サービスされ
ている優先レベルを識別するために、アドレス・バス1
61A上に、固有のアドレス構成が提供される。これは
また、効率的にも、割り込み装置からのベクタ番号の要
求でもある。要求を出す全ての装置は、サービスされて
いる優先レベルを自己の優先レベルと比較し、一致する
優先レベルをもつ装置が、プロセッサ62が読むため
に、1バイトのベクタ番号をそのデータ・バス161D
にゲートする。
イクルにおいては、サイクルのタイプと、サービスされ
ている優先レベルを識別するために、アドレス・バス1
61A上に、固有のアドレス構成が提供される。これは
また、効率的にも、割り込み装置からのベクタ番号の要
求でもある。要求を出す全ての装置は、サービスされて
いる優先レベルを自己の優先レベルと比較し、一致する
優先レベルをもつ装置が、プロセッサ62が読むため
に、1バイトのベクタ番号をそのデータ・バス161D
にゲートする。
ベクタ番号が一旦得られると、プロセッサ62は、監視
スタック上に基本的内部状況をセーブし、次に、使用す
べき例外ベクタのアドレスを発生する。このことは、装
置のベクタ番号に内部的に4を掛け、この結果を内部ベ
クタ・ベース・レジスタの内容に加えることによって達
成され、以て例外ベクタのメモリ・アドレスが与えられ
る。このベクタは、割り込みハンドラ・コードのための
新しいプログラム・カウンタ値である。
スタック上に基本的内部状況をセーブし、次に、使用す
べき例外ベクタのアドレスを発生する。このことは、装
置のベクタ番号に内部的に4を掛け、この結果を内部ベ
クタ・ベース・レジスタの内容に加えることによって達
成され、以て例外ベクタのメモリ・アドレスが与えられ
る。このベクタは、割り込みハンドラ・コードのための
新しいプログラム・カウンタ値である。
この新しいカウンタ値を使用して最初の命令がフェッチ
され、通常の命令デコーディング及び実行が、監視状態
で、プロセッサ62状況レジスタをこの現在の優先レベ
ルにセットすることにより再開される。
され、通常の命令デコーディング及び実行が、監視状態
で、プロセッサ62状況レジスタをこの現在の優先レベ
ルにセットすることにより再開される。
最初の割り込みハンドラ命令をフェッチすることを通じ
てのIACKサイクルの開始からの上述のステップは、
ハードウェア及びプロセッサ62の内部動作の組合せに
よって行なわれ、プログラム命令実行を必要としない。
その正味の効果は、より高い優先順位割り込みハンドラ
を実行するために、前以て走っている(より低い優先順
位の)プログラムの透過的優先使用である。
てのIACKサイクルの開始からの上述のステップは、
ハードウェア及びプロセッサ62の内部動作の組合せに
よって行なわれ、プログラム命令実行を必要としない。
その正味の効果は、より高い優先順位割り込みハンドラ
を実行するために、前以て走っている(より低い優先順
位の)プログラムの透過的優先使用である。
好適な実施例におけるDMAC209割り込みは、優先
レベル6に結び付けられ、プロセッサ62アーキテクチ
ャに完全に従う。DMAC209は内部的にプログラム
された8個のベクタ番号をもち、8つの個別のハンドラ
・ルーチンが使用される。
レベル6に結び付けられ、プロセッサ62アーキテクチ
ャに完全に従う。DMAC209は内部的にプログラム
された8個のベクタ番号をもち、8つの個別のハンドラ
・ルーチンが使用される。
デコード及び調停論理(第19A図)とAS制御論理2
15は、S/88プロセッサ62切り放し機能を与える
こと以外に、IACKサイクルの間にこの割り込み機能
を制御する。
15は、S/88プロセッサ62切り放し機能を与える
こと以外に、IACKサイクルの間にこの割り込み機能
を制御する。
これらの詳細なハードウェア機能を、第19A図の論理
215及び216を詳細に示す第20図を参照して説明
する。プロセッサ要素(PE)62からのアドレス・ス
トローブ線270は、制御論理215の1つの入力に結
合される。論理216は、一対のデコード回路280、
281をもつ。回路280の出力282は、論理215
に結合され、回路280の出力282もまた、ANDゲ
ート291及び287を介して論理215に結合され
る。通常、命令実行の間に、デコード回路280、28
1が線270上のストローブ信号(AS)を、PE62
に接続されたS/88ハードウェアに対する正常アドレ
ス・ストローブである線270aに論理215を介して
通過させる。
215及び216を詳細に示す第20図を参照して説明
する。プロセッサ要素(PE)62からのアドレス・ス
トローブ線270は、制御論理215の1つの入力に結
合される。論理216は、一対のデコード回路280、
281をもつ。回路280の出力282は、論理215
に結合され、回路280の出力282もまた、ANDゲ
ート291及び287を介して論理215に結合され
る。通常、命令実行の間に、デコード回路280、28
1が線270上のストローブ信号(AS)を、PE62
に接続されたS/88ハードウェアに対する正常アドレ
ス・ストローブである線270aに論理215を介して
通過させる。
しかし、S/88プロセッサ62によって実行される命
令が、アドレス・バス161A上に、“007E”(こ
れは、PE62をそのS/88ハードウェアから切り放
し、PE62をS/370 I/O動作に関連する機能
のためにBCU156に結合することを意味する)に等
しい、16進上位4桁をもつ仮想アドレスを印加するな
ら、デコード論理280は、線270a上のAS信号を
ブロックするために線282上に信号を配置し、線27
0bを介してBCU156にASを送る。デコード論理
280はまた、線FCO−2上の適当な機能コードを検
出するように設計することもできるが、それは単なる設
計事項である。第22、23及び24図は、バス161
A上のアドレス信号と、線270上のアドレス・ストロ
ーブとの間の遅延を示している。これは、AS信号が立
ち上げられる時点より前に線270a上のASをブロッ
クすることを可能ならしめる。尚、そのアドレス・バス
に印加されるS/88仮想アドレスの特殊なグループ以
外の手段を、PE62をその関連S/88ハードウェア
から切り放し、PE62をBCU156に結合すること
を示す条件をデコードするために使用することもできる
ことが理解されよう。
令が、アドレス・バス161A上に、“007E”(こ
れは、PE62をそのS/88ハードウェアから切り放
し、PE62をS/370 I/O動作に関連する機能
のためにBCU156に結合することを意味する)に等
しい、16進上位4桁をもつ仮想アドレスを印加するな
ら、デコード論理280は、線270a上のAS信号を
ブロックするために線282上に信号を配置し、線27
0bを介してBCU156にASを送る。デコード論理
280はまた、線FCO−2上の適当な機能コードを検
出するように設計することもできるが、それは単なる設
計事項である。第22、23及び24図は、バス161
A上のアドレス信号と、線270上のアドレス・ストロ
ーブとの間の遅延を示している。これは、AS信号が立
ち上げられる時点より前に線270a上のASをブロッ
クすることを可能ならしめる。尚、そのアドレス・バス
に印加されるS/88仮想アドレスの特殊なグループ以
外の手段を、PE62をその関連S/88ハードウェア
から切り放し、PE62をBCU156に結合すること
を示す条件をデコードするために使用することもできる
ことが理解されよう。
線282上のブロッキング信号は、調停論理285に至
る線190上のPE62ローカル・バス要求信号を発生
するために、OR回路284に印加される。論理285
は、DMAC209がまだ線269上に要求を配置して
いない場合にのみPE62に対する要求を許可する。P
E62バス許可線191は、DMAC要求がない場合に
のみ活動化される。線191上のPE62バス許可信号
は、BCU156によるPE62動作の準備のためにド
ライバ217及びドライバ/レシーバ218を介してロ
ーカル・バス247、223にPE62バス161A、
Dを結合するために論理253を介してイネーブル線2
86a、b(第19A図)を立ち上げる。データ及びコ
マンドは、プロセッサ・バス161A、Dが、PE62
によって実行されつつある命令の制御の下でローカル・
バス247、223に結合されている間に、PE62と
BCU156の要素の間で転送することができる。アプ
リケーション・プログラムEXEC370及びET10
ファームウェアがそのような命令を含む。
る線190上のPE62ローカル・バス要求信号を発生
するために、OR回路284に印加される。論理285
は、DMAC209がまだ線269上に要求を配置して
いない場合にのみPE62に対する要求を許可する。P
E62バス許可線191は、DMAC要求がない場合に
のみ活動化される。線191上のPE62バス許可信号
は、BCU156によるPE62動作の準備のためにド
ライバ217及びドライバ/レシーバ218を介してロ
ーカル・バス247、223にPE62バス161A、
Dを結合するために論理253を介してイネーブル線2
86a、b(第19A図)を立ち上げる。データ及びコ
マンドは、プロセッサ・バス161A、Dが、PE62
によって実行されつつある命令の制御の下でローカル・
バス247、223に結合されている間に、PE62と
BCU156の要素の間で転送することができる。アプ
リケーション・プログラムEXEC370及びET10
ファームウェアがそのような命令を含む。
もしDMAC要求が線269上にあるなら、論理285
はDMAC209に線190上のPE62要求に対する
優先権を与え、線268上のDMACバス許可信号がD
MAC209に戻され、ローカル・バス247、223
が、高速インターフェース・レジスタを介してローカル
記憶210とアダプタ・チャネル0、1の間に接続され
るか、またはBCU156によるDMAC動作の準備の
ためにDMAC209及びローカル記憶210の間に接
続される。
はDMAC209に線190上のPE62要求に対する
優先権を与え、線268上のDMACバス許可信号がD
MAC209に戻され、ローカル・バス247、223
が、高速インターフェース・レジスタを介してローカル
記憶210とアダプタ・チャネル0、1の間に接続され
るか、またはBCU156によるDMAC動作の準備の
ためにDMAC209及びローカル記憶210の間に接
続される。
それゆえ、アドレス007EXXXXが論理280によ
ってデコードされるとき、論理215、216がS/8
8プロセッサ62を関連ハードウェア(例えば175、
176、177)から切り放し、それをBCU156に
結合することが見て取れよう。この切り放しは、S/8
8オペレーティング・システムには透過的である。
ってデコードされるとき、論理215、216がS/8
8プロセッサ62を関連ハードウェア(例えば175、
176、177)から切り放し、それをBCU156に
結合することが見て取れよう。この切り放しは、S/8
8オペレーティング・システムには透過的である。
同様に、デコード論理281(及び関連ハードウェア)
は、アドレス・ストローブASを線270aからブロッ
クし、PE62に対するDMAC209割り込みシーケ
ンスの間に調停論理285に対するローカル・バス要求
を開始する。
は、アドレス・ストローブASを線270aからブロッ
クし、PE62に対するDMAC209割り込みシーケ
ンスの間に調停論理285に対するローカル・バス要求
を開始する。
より詳しくは、DMAC209が割り込み信号を線25
8a上に配置するとき、その割り込み信号は、OR回路
292a及び292と、S/88割り込み優先順位論理
293のレベル6入力と、線IPLO−2を介してPE
62に印加される。PE62は、割り込み肯定応答サイ
クルで応答する。(割り込みレベルを含む)予定の論理
ビットが出力FC0−2及びアドレス・バス161A
(ビットA1−3、A16−19)上に配置され、それ
らのビットは、線283上に出力を発生するために論理
281によってデコードされる。この出力及び線258
C上の割り込み信号がANDゲート291をして線28
7に信号を印加せしめ、以て論理215をして、線27
0bを介してBCU論理253にASを印加させる。
8a上に配置するとき、その割り込み信号は、OR回路
292a及び292と、S/88割り込み優先順位論理
293のレベル6入力と、線IPLO−2を介してPE
62に印加される。PE62は、割り込み肯定応答サイ
クルで応答する。(割り込みレベルを含む)予定の論理
ビットが出力FC0−2及びアドレス・バス161A
(ビットA1−3、A16−19)上に配置され、それ
らのビットは、線283上に出力を発生するために論理
281によってデコードされる。この出力及び線258
C上の割り込み信号がANDゲート291をして線28
7に信号を印加せしめ、以て論理215をして、線27
0bを介してBCU論理253にASを印加させる。
線287上のこの信号は、ASを線270aからブロッ
クし、OR回路284を介して線190上に、調停論理
285に対するPE62バス要求を配置する。アドレス
・ストローブ(AS)信号は、S/88ハードウェアに
至るのをブロックされるので、この割り込みは、S/8
8オペレーティング・システムには透過的である。
クし、OR回路284を介して線190上に、調停論理
285に対するPE62バス要求を配置する。アドレス
・ストローブ(AS)信号は、S/88ハードウェアに
至るのをブロックされるので、この割り込みは、S/8
8オペレーティング・システムには透過的である。
特殊なIACKビットが上述のようにバス161A及び
FCO−2上で受け取られるとき、線270a上のアド
レス・ストローブ信号をブロックし、OR回路284及
び線190を介して調停論理285上にPE62要求を
配置するために、デコード論理281が線283上に出
力信号を発生する。もし線269上にDMAC要求がな
いなら、ANDゲート294−1に対する線191上で
PE62バス許可信号が立ち上げられる。ANDゲート
294はDMAC209に対する線258b上でIAC
K信号を発生する。これにより、DMAC209に、そ
の割り込みベクタを提供するように警告される。DMA
Cは次に、ローカル・バス上にベクタを配置して論理2
53に対する線265上で「DTAC」を立ち上げる。
論理253は、線270b上のAS信号に応答して、D
MAC209からPE62に適切なベクタを読み込むべ
く回路217、218を介してローカル・バス248及
び223にプロセッサ・バス161A及びDを結合する
ために線286a、286b上のイネーブル信号を立ち
上げる。DMAC209は、ドライバ・レシーバ234
及びローカル・データ・バス223のビット23−16
を介して、そのデータ・バス248(第19A図)の最
下位バイトからの割り込みベクタをS/88プロセッサ
・データ・バス161Dに提供する。
FCO−2上で受け取られるとき、線270a上のアド
レス・ストローブ信号をブロックし、OR回路284及
び線190を介して調停論理285上にPE62要求を
配置するために、デコード論理281が線283上に出
力信号を発生する。もし線269上にDMAC要求がな
いなら、ANDゲート294−1に対する線191上で
PE62バス許可信号が立ち上げられる。ANDゲート
294はDMAC209に対する線258b上でIAC
K信号を発生する。これにより、DMAC209に、そ
の割り込みベクタを提供するように警告される。DMA
Cは次に、ローカル・バス上にベクタを配置して論理2
53に対する線265上で「DTAC」を立ち上げる。
論理253は、線270b上のAS信号に応答して、D
MAC209からPE62に適切なベクタを読み込むべ
く回路217、218を介してローカル・バス248及
び223にプロセッサ・バス161A及びDを結合する
ために線286a、286b上のイネーブル信号を立ち
上げる。DMAC209は、ドライバ・レシーバ234
及びローカル・データ・バス223のビット23−16
を介して、そのデータ・バス248(第19A図)の最
下位バイトからの割り込みベクタをS/88プロセッサ
・データ・バス161Dに提供する。
DMAC209によって発行されるベクタ番号は、S/
88インターフェース・マイクロコードETIO中の8
つの割り込みハンドラのうちの1つにジャンプするため
にS/88プロセッサ62によって使用される。
88インターフェース・マイクロコードETIO中の8
つの割り込みハンドラのうちの1つにジャンプするため
にS/88プロセッサ62によって使用される。
線265上のDTACK、及び論理253は、一対のO
R回路288を介してPE62サイクルを終了させるた
めに、線266a、b上のDSACKを活動化する。線
266a、bは、PE62の最終的なDSACK入力2
66e、fを形成するために、標準のS/88DSAC
K線266c,dとORされる。
R回路288を介してPE62サイクルを終了させるた
めに、線266a、b上のDSACKを活動化する。線
266a、bは、PE62の最終的なDSACK入力2
66e、fを形成するために、標準のS/88DSAC
K線266c,dとORされる。
統合サービス機能(第49図)から線562を介してO
R回路292aに印加される割り込み要求は、DMAC
割り込み要求に関連して前記に説明した動作と同様の動
作のシーケンスを引き起こす。また、一対のANDゲー
ト294−2及び294−3(第20図)が、第49図
の論理564、565と、ローカル・データ・バス22
3を介するBCU156からS/88プロセッサ装置6
2への適切なベクタ番号の転送を開始するために線25
8d、e上のIACK線を立ち上げる。
R回路292aに印加される割り込み要求は、DMAC
割り込み要求に関連して前記に説明した動作と同様の動
作のシーケンスを引き起こす。また、一対のANDゲー
ト294−2及び294−3(第20図)が、第49図
の論理564、565と、ローカル・データ・バス22
3を介するBCU156からS/88プロセッサ装置6
2への適切なベクタ番号の転送を開始するために線25
8d、e上のIACK線を立ち上げる。
尚、論理にわずかな変更を加えることによって(S/8
8レベル6割り込み要求がDMACまたはBCU割り込
み要求と並行しているとき)S/88レベル6割り込み
要求に、DMACまたはBCU割り込み要求に対する優
先を与えることができることが理解されよう。しかし、
現在、電力障害を2次割り込み源として認識すること
は、非常に適切である。
8レベル6割り込み要求がDMACまたはBCU割り込
み要求と並行しているとき)S/88レベル6割り込み
要求に、DMACまたはBCU割り込み要求に対する優
先を与えることができることが理解されよう。しかし、
現在、電力障害を2次割り込み源として認識すること
は、非常に適切である。
(C)BCUアドレス・マッピング ローカル記憶210(第41C図)は固定サイズであっ
て、S/88PE62仮想アドレス空間にマップされて
いる。ローカル記憶210は、3つの目的を差別化する
ために次の3つのアドレス範囲に分けられている。
て、S/88PE62仮想アドレス空間にマップされて
いる。ローカル記憶210は、3つの目的を差別化する
ために次の3つのアドレス範囲に分けられている。
(1)S/88PE62がローカル・データ・バッファ
に対して直接読み書きを行ない、リンク・リストを含む
構造を制御し、 (2)S/88PE62がBCU156との間でコマン
ド、読取状況を読み書きし、コマンドは特定アドレスか
らデコードされ、 (3)S/88PE62は(初期化及び正常動作の両方
のために)DMACレジスタに読み書きし、レジスタ番
号が特定のアドレスからデコードされる。
に対して直接読み書きを行ない、リンク・リストを含む
構造を制御し、 (2)S/88PE62がBCU156との間でコマン
ド、読取状況を読み書きし、コマンドは特定アドレスか
らデコードされ、 (3)S/88PE62は(初期化及び正常動作の両方
のために)DMACレジスタに読み書きし、レジスタ番
号が特定のアドレスからデコードされる。
ローカル記憶アドレス空間は次のものを有する。
(1)データ・パッファ及び制御構造(64Kバイトで
あって、512バイト以下が物理記憶210中にリンク
・リストを含む)。
あって、512バイト以下が物理記憶210中にリンク
・リストを含む)。
(2)BCUコマンド領域(特定アドレスからデコード
された256バイト・コマンド)。
された256バイト・コマンド)。
(3)DMACアクセス領域(特定アドレスからデコー
ドされた256バイト・レジスタ番号)。
ドされた256バイト・レジスタ番号)。
ローカル・アドレス・デコード及びバス調停ユニット2
16は、このローカル記憶空間内の全てのアドレスを検
出する。DMAC209は、それと同時に、上記領域
(1)内のアドレスを提供していてもよい。DMACは
上記(2)または(3)の領域をアドレスしてはなら
ず、このことは初期化マイクロコードによって保証され
る。
16は、このローカル記憶空間内の全てのアドレスを検
出する。DMAC209は、それと同時に、上記領域
(1)内のアドレスを提供していてもよい。DMACは
上記(2)または(3)の領域をアドレスしてはなら
ず、このことは初期化マイクロコードによって保証され
る。
BCU156は、ローカル・バス上の全てのアドレスを
モニタし、制御タグを介して、上記範囲(2)乃至
(3)内のアドレスをもつ動作を、ローカル記憶210
ではなく適正なユニット(BCUまたはDMAC)へと
再指向させる。このようにして、上記範囲(2)乃至
(3)によって表されるローカル記憶210のアドレス
領域は、存在するけれども、そこに記憶するためには決
して使用されない。
モニタし、制御タグを介して、上記範囲(2)乃至
(3)内のアドレスをもつ動作を、ローカル記憶210
ではなく適正なユニット(BCUまたはDMAC)へと
再指向させる。このようにして、上記範囲(2)乃至
(3)によって表されるローカル記憶210のアドレス
領域は、存在するけれども、そこに記憶するためには決
して使用されない。
好適な実施例では、第4のタイプの動作もまた、ローカ
ル・アドレス・デコード及びバス調停ユニット215に
よって処理される。
ル・アドレス・デコード及びバス調停ユニット215に
よって処理される。
すなわち、S/88プロセッサ62は、S/88プロセ
ッサ62に対するDMAC209割り込みを承認し、前
述のMC68020アーキテクチャに従って各割り込み
を完了させる。
ッサ62に対するDMAC209割り込みを承認し、前
述のMC68020アーキテクチャに従って各割り込み
を完了させる。
この特殊動作は、その(アーキテクチャ的な特殊)デコ
ードがローカル記憶210の範囲内のアドレスでない、
という相違点により、S/88PE62が提供するアド
レス及び機能コードによって検出される。
ードがローカル記憶210の範囲内のアドレスでない、
という相違点により、S/88PE62が提供するアド
レス及び機能コードによって検出される。
それゆえ、ローカル・バス調停ユニット216は、この
場合のための特殊デコーダをもち、DMACに、その予
めプログラムされた割り込みベクタを提供するように通
知する。その動作は、さもなければ、DMACレジスタ
を読み取るS/88プロセッサ62と同様である。
場合のための特殊デコーダをもち、DMACに、その予
めプログラムされた割り込みベクタを提供するように通
知する。その動作は、さもなければ、DMACレジスタ
を読み取るS/88プロセッサ62と同様である。
アドレス・バス247は、高位桁が16進007Eにデ
コードするときPE62によって選択される。
コードするときPE62によって選択される。
残りの4つの16進桁は、次のように割当てられる64
KBのローカル記憶アドレス範囲を与える。
KBのローカル記憶アドレス範囲を与える。
I/O装置 アドレス・デコード (またはコマンド) DMACレジスタ選択 007E0000− 007E00FF (上記領域3) BCUリセット 007E0100 (上記領域2) BSM書込セレクト・ 007E0104 アップ (上記領域2) BSM読取セレクト・ 007E0108 アップ (上記領域2) BCU状況読取 007E010C (上記領域2) ローカル記憶選択 007E0200− 007EFFFF (上記領域1) 次に示すデータが、選択されたDMACメモリ転送カウ
ント・レジスタと、後のBSM読取/書込選択コマンド
で使用すべきBCU156のために、S/88プロセッ
サ62によってローカル・データ・バス223上に配置
される。
ント・レジスタと、後のBSM読取/書込選択コマンド
で使用すべきBCU156のために、S/88プロセッ
サ62によってローカル・データ・バス223上に配置
される。
ビット31−16(0000 oqbb bbbb bbbb):DMAC
メモリ転送カウンタ中にセットされるバイト転送カウン
ト 26=高位バイト・カウント・ビット(最大バイト・カ
ウント(4096のみ)の場合1) 25−16=下位バイト・カウント・ビット。ビット2
6−16は、実際のバイト・カウントの1/4をあらわ
す(ダブル・ワード転送)。
メモリ転送カウンタ中にセットされるバイト転送カウン
ト 26=高位バイト・カウント・ビット(最大バイト・カ
ウント(4096のみ)の場合1) 25−16=下位バイト・カウント・ビット。ビット2
6−16は、実際のバイト・カウントの1/4をあらわ
す(ダブル・ワード転送)。
BCU156は、後のBSM読取/書込セレクト・アッ
プ・コマンドのために次のようにしてデータを捉える。
プ・コマンドのために次のようにしてデータを捉える。
31−27=BCUによって無視される。
26=高位バイト・カウント・ビット。このビットは、
最大バイト・カウントが転送されつつあるときのみ1に
等しい。
最大バイト・カウントが転送されつつあるときのみ1に
等しい。
26−14=4096バイトを転送する(バイト・カウ
ント1)を転送するためには、レジスタ220または2
22アダプタに対する転送バイト・カウント(最大40
96バイト)は、1111 1111 1111という
カウントを要する。それゆえ、BCU156は、(64
バイト・ブロックで)バイト・オフセット・ビット15
−14とともにそれを提供する前に一度、ダブルワード
境界ビット26−16をデクリメントする。
ント1)を転送するためには、レジスタ220または2
22アダプタに対する転送バイト・カウント(最大40
96バイト)は、1111 1111 1111という
カウントを要する。それゆえ、BCU156は、(64
バイト・ブロックで)バイト・オフセット・ビット15
−14とともにそれを提供する前に一度、ダブルワード
境界ビット26−16をデクリメントする。
15−14=下位バイト・カウント・ビット。これらの
ビットは、ダブルワード境界からの(バス・アダプタ条
件の場合)バイト・オフセット引く1をあらわす。これ
らのビットは、ダブルバイトのみを転送するので、DM
AC209またはBCU156によっては使用されな
い。それらは、S/370 BSM162に提供するた
めにバス・アダプタ154によって渡されるまでBCU
156中にラッチされている。
ビットは、ダブルワード境界からの(バス・アダプタ条
件の場合)バイト・オフセット引く1をあらわす。これ
らのビットは、ダブルバイトのみを転送するので、DM
AC209またはBCU156によっては使用されな
い。それらは、S/370 BSM162に提供するた
めにバス・アダプタ154によって渡されるまでBCU
156中にラッチされている。
13−12=レジスタ219または227に対するアダ
プタ・バス・チャネル優先順位。
プタ・バス・チャネル優先順位。
11−08=レジスタ219または227に対する記憶
キー 07=レジスタ219または227に対するカスタマ/
IOA空間ビット 06=S/88プロセッサは、1つの追加ローカル記憶
アクセスが必要であることを示すために、BSM書込み
セレクト・アップのためにこのビットを活動化させるこ
とになる。このことは、出発ローカル記憶アドレスがダ
ブルワード境界上にない場合に生じる。全てのBCUア
クセスはダブルワード境界で開始しなくてはならないの
で、最初のアクセスは指定された開始アドレスのバイト
と、そのダブルワード・アドレスに含まれる先行バイト
とを含むことになる。その先行バイトは捨てられる。
キー 07=レジスタ219または227に対するカスタマ/
IOA空間ビット 06=S/88プロセッサは、1つの追加ローカル記憶
アクセスが必要であることを示すために、BSM書込み
セレクト・アップのためにこのビットを活動化させるこ
とになる。このことは、出発ローカル記憶アドレスがダ
ブルワード境界上にない場合に生じる。全てのBCUア
クセスはダブルワード境界で開始しなくてはならないの
で、最初のアクセスは指定された開始アドレスのバイト
と、そのダブルワード・アドレスに含まれる先行バイト
とを含むことになる。その先行バイトは捨てられる。
05−00=予約済み 次に示すのは、DMACメモリ転送カウント・レジスタ
のためにS/88プロセッサ62によって、及び後のキ
ュー・セレクト・アップ・コマンドのためにBCU15
6によって、ローカル・バス223上に配置されるもの
である。
のためにS/88プロセッサ62によって、及び後のキ
ュー・セレクト・アップ・コマンドのためにBCU15
6によって、ローカル・バス223上に配置されるもの
である。
0000 0000 0000 bbbb 0000 kkkk cxxx xxxx バイト転送カウント(ビット31−16)は、DMAC
チャネル3メモリ転送カウント・レジスタMTCにセッ
トされる。
チャネル3メモリ転送カウント・レジスタMTCにセッ
トされる。
BCU156は、後のキュー・セレクト・アップ・コマ
ンドのために次のようにしてデータを捉える。
ンドのために次のようにしてデータを捉える。
31−20=BCUによって無視される。
19−16=レジスタ220または222に対するバイ
ト・カウント(最大64バイト) 15−12=BCUによって無視される。
ト・カウント(最大64バイト) 15−12=BCUによって無視される。
11−08=レジスタ227に対する記憶キー 07=レジスタ227に対するカスタマ/IOA空間ビ
ット 06−00=BCUによって無視される。
ット 06−00=BCUによって無視される。
(D)ローカル・バス及びデータ・バス動作 全てのローカル・バス動作は、S/88プロセッサ62
のたはDMAC209からのバス要求を介して開始され
る。S/88プロセッサ62ローカル・バス動作には次
のものがある。
のたはDMAC209からのバス要求を介して開始され
る。S/88プロセッサ62ローカル・バス動作には次
のものがある。
読取/書込ローカル記憶(32ビット) 読取/書込DMACレジスタ(8、16、32ビット) DMACに対する割り込み肯定応答サイクル(8ビット
割り込みベクタ読取) BCU状況読取(32ビットBCU読取) プログラムされたBCUリセット DMAC209ローカル・バス動作には次のものがあ
る。
割り込みベクタ読取) BCU状況読取(32ビットBCU読取) プログラムされたBCUリセット DMAC209ローカル・バス動作には次のものがあ
る。
リンク・リスト・ロード(16ビット) DMAC動作(32ビット) ローカル記憶アドレスのみを与える ローカル・バス要求を与える 割り込み 4チャネルのためにプロセッサ要素62に通常割り込み
ベクタを与える(8ビット) 不正DMAC動作及び他のDMAC検出エラーのために
エラー割り込みベクタを与える(8ビット) BCU156ローカル・バス動作には次のものがある。
ベクタを与える(8ビット) 不正DMAC動作及び他のDMAC検出エラーのために
エラー割り込みベクタを与える(8ビット) BCU156ローカル・バス動作には次のものがある。
DMA動作の間に読取/書込データ(32ビット)を与
える。
える。
DMAC209に対するデータ要求を開始する。
DMAC線PCLO 257aを介して、読取メイルボ
ックス割り込み要求を開始する。
ックス割り込み要求を開始する。
S/88プロセッサ62が、有効ローカル・バス・デコ
ード(007EXXXX)または、DMAC指示割り込
み肯定応答サイクルでそのアドレス・バスを活動化する
ときはいつでも、BCU156論理が次のことを実行す
る。
ード(007EXXXX)または、DMAC指示割り込
み肯定応答サイクルでそのアドレス・バスを活動化する
ときはいつでも、BCU156論理が次のことを実行す
る。
S/88に対するアドレス・ストローブ線をブロックす
る。
る。
競合論理216に対するパス要求を活動化する。
もしローカル・バスが使用状態にないなら、S/88プ
ロセッサ・アドレス・バス161A及びデータ・バス1
61Dが、ドライバ・レシーバ217、218を介して
ローカル・バス247、223に結合される。そして、
読取、書込またはIACK動作が実行される。
ロセッサ・アドレス・バス161A及びデータ・バス1
61Dが、ドライバ・レシーバ217、218を介して
ローカル・バス247、223に結合される。そして、
読取、書込またはIACK動作が実行される。
DSACK線266a、bは、そのサイクルを閉じるた
めに、BCU論理によって活動化される。
めに、BCU論理によって活動化される。
全てのローカル記憶及びBCU指示コマンドの場合32
ビットDSACK 全てのDMAC指示コマンドの場合16ビットDSAC
K IACKサイクルの場合16ビットDSACK DMAC209からのDMACバス要求(BR)線26
9は、DMACまたはリンク・リスト・ロード・シーケ
ンスの場合に活動化される。このことが生じると、BC
U156は次のことを実行する。
ビットDSACK 全てのDMAC指示コマンドの場合16ビットDSAC
K IACKサイクルの場合16ビットDSACK DMAC209からのDMACバス要求(BR)線26
9は、DMACまたはリンク・リスト・ロード・シーケ
ンスの場合に活動化される。このことが生じると、BC
U156は次のことを実行する。
もしローカル・バスが使用されていないなら、(DMA
C読取/書込またはリンク・リスト・ロードの間に)D
MACアドレスがローカル・アドレス・バス247にゲ
ートされる。BCU156論理は、DMACレジスタか
らのデータ(ローカル記憶210に対するDMAC書込
み)をローカル・データ・バス223にロードする。ロ
ーカル記憶210は、そのデータ(DMAC読取または
リンク・リスト・ロード)をローカル・バス223にロ
ードする。そして、読取/書込動作が実行される。
C読取/書込またはリンク・リスト・ロードの間に)D
MACアドレスがローカル・アドレス・バス247にゲ
ートされる。BCU156論理は、DMACレジスタか
らのデータ(ローカル記憶210に対するDMAC書込
み)をローカル・データ・バス223にロードする。ロ
ーカル記憶210は、そのデータ(DMAC読取または
リンク・リスト・ロード)をローカル・バス223にロ
ードする。そして、読取/書込動作が実行される。
(E)ローカル記憶210との間のS/88プロセッサ
62及びDMAC209アドレシング S/88プロセッサ62からローカル記憶210へのア
ドレス・ビット割当ては次のようである。すなわち、下
位ビット0、1(及び、図示しないがPE62のSIZ
0、1)が、転送すべきバイトの数とバス割当て(1−
4)を決定する。ビット2−15は、まとめて、記憶空
間210のためのアドレス・ビットである。
62及びDMAC209アドレシング S/88プロセッサ62からローカル記憶210へのア
ドレス・ビット割当ては次のようである。すなわち、下
位ビット0、1(及び、図示しないがPE62のSIZ
0、1)が、転送すべきバイトの数とバス割当て(1−
4)を決定する。ビット2−15は、まとめて、記憶空
間210のためのアドレス・ビットである。
リンク・リスト・モードにおいては、DMACアドレス
・ビットA2がローカル記憶210に対する下位アドレ
ス・ビット(ダブルワード境界)として使用される。D
MAC209は、ワード指向(16ビット)装置(A1
はその下位アドレス・ビットである)であり、また、ロ
ーカル・アドレス210はダブルワード(32ビット)
によってアクセスされるので、DMAC209が連続的
ローカル記憶位置からその内部リンク・リストへデータ
を読み込むことを可能ならしめるために、ハードウェア
中になんらかの手段が与えられる。このことは、A2を
下位アドレス・ビットとして使用して、記憶210中で
2度ダブルワード位置を読み取ることによって達成され
る。ビットA1は、ローカル・バスから高/低ワードを
選択するために使用される。ローカル記憶210に対す
るアドレス・ビット・シフトは、ハードウェア中で、D
MAC機能コード・ビットによって達成される。DMA
C209からの“7”以外の任意の機能コードは、アド
レス・ビットA15−A02をローカル記憶210に提
供させる。この構成は、DMAC209のためのローカ
ル記憶リンク・リスト・データを、記憶210中の連続
的位置に記憶することを可能ならしめる。
・ビットA2がローカル記憶210に対する下位アドレ
ス・ビット(ダブルワード境界)として使用される。D
MAC209は、ワード指向(16ビット)装置(A1
はその下位アドレス・ビットである)であり、また、ロ
ーカル・アドレス210はダブルワード(32ビット)
によってアクセスされるので、DMAC209が連続的
ローカル記憶位置からその内部リンク・リストへデータ
を読み込むことを可能ならしめるために、ハードウェア
中になんらかの手段が与えられる。このことは、A2を
下位アドレス・ビットとして使用して、記憶210中で
2度ダブルワード位置を読み取ることによって達成され
る。ビットA1は、ローカル・バスから高/低ワードを
選択するために使用される。ローカル記憶210に対す
るアドレス・ビット・シフトは、ハードウェア中で、D
MAC機能コード・ビットによって達成される。DMA
C209からの“7”以外の任意の機能コードは、アド
レス・ビットA15−A02をローカル記憶210に提
供させる。この構成は、DMAC209のためのローカ
ル記憶リンク・リスト・データを、記憶210中の連続
的位置に記憶することを可能ならしめる。
ローカル記憶読取/書込モードにおいては、DMACビ
ットA1は、ローカル記憶210に対する下位アドレス
めビットとして使用される。ひの読取データは、アダプ
タ・バス・チャネル1書込バッファ228から記憶21
0に供給される。データは、記憶210からアダプタ・
バス・チャネル1書込バッファ228に書き込まれる。
DMACは16ビット装置であるので、その下位アドレ
ス・ビットは、ワード境界をあらわすように意図されて
いる。しかし、各DMAC動作は、ダブルワードにアク
セスする。ワード・アクセス・アドレシング機構を用い
てダブルワード・アクセスに対処するためには、アドレ
ス・シフトが必要である。
ットA1は、ローカル記憶210に対する下位アドレス
めビットとして使用される。ひの読取データは、アダプ
タ・バス・チャネル1書込バッファ228から記憶21
0に供給される。データは、記憶210からアダプタ・
バス・チャネル1書込バッファ228に書き込まれる。
DMACは16ビット装置であるので、その下位アドレ
ス・ビットは、ワード境界をあらわすように意図されて
いる。しかし、各DMAC動作は、ダブルワードにアク
セスする。ワード・アクセス・アドレシング機構を用い
てダブルワード・アクセスに対処するためには、アドレ
ス・シフトが必要である。
ローカル記憶210に対するアドレス・ビット・シフト
は、DMAC機能コード・ビットを介してハードウェア
中で達成される。DMAC209からの「7」という機
能コードは、アドレス・ビットA14−A01のローカ
ル記憶210への提供をもたらす。正確な動作を可能な
らしめるために、DMACに実際のバイト・カウントの
1/4(実際のワード・カウントの1/2)がロードさ
れる。DMAC書込み動作のために、全てのDMAC動
作が通常ダブルワード・アクセスであるけれども、DM
AC209からのUDS及びLDS線(図示しない)を
制御することによって、ワード書込を許容するための手
段が存在する。UDS及びLDS信号は、高位(D31
−D16)及び下位(D15−D0)部分ローカル記憶
210のアクセスを引き起こす。
は、DMAC機能コード・ビットを介してハードウェア
中で達成される。DMAC209からの「7」という機
能コードは、アドレス・ビットA14−A01のローカ
ル記憶210への提供をもたらす。正確な動作を可能な
らしめるために、DMACに実際のバイト・カウントの
1/4(実際のワード・カウントの1/2)がロードさ
れる。DMAC書込み動作のために、全てのDMAC動
作が通常ダブルワード・アクセスであるけれども、DM
AC209からのUDS及びLDS線(図示しない)を
制御することによって、ワード書込を許容するための手
段が存在する。UDS及びLDS信号は、高位(D31
−D16)及び下位(D15−D0)部分ローカル記憶
210のアクセスを引き起こす。
PE2からDMAC209へのモードでは、S/88プ
ロセッサPE2は、DMAC動作の内部制御をセットア
ップするために、4つのDMACチャネル0−3のめい
めいのDMACレジスタに書込を行うことになる。PE
62はまた、全てのDMACレジスタを読み取る能力を
もつ。DMAC209は、2つの線DSACK0、DS
ACK1をもち、8、16、32ビットのポート・サイ
ズを許容するバス266上にワード(16ビット)DS
ACKを戻す。このことはまた、DMAC209が、D
MACロードを適切に実行するために必要なだけの数の
サイクルを用いることを可能ならしめる。
ロセッサPE2は、DMAC動作の内部制御をセットア
ップするために、4つのDMACチャネル0−3のめい
めいのDMACレジスタに書込を行うことになる。PE
62はまた、全てのDMACレジスタを読み取る能力を
もつ。DMAC209は、2つの線DSACK0、DS
ACK1をもち、8、16、32ビットのポート・サイ
ズを許容するバス266上にワード(16ビット)DS
ACKを戻す。このことはまた、DMAC209が、D
MACロードを適切に実行するために必要なだけの数の
サイクルを用いることを可能ならしめる。
S/88プロセッサSIZ0、SIZ1(図示しない)
及びA0線は、DMAC209に対してUDS(上方デ
ータ・ストローブ)及びLDS(下方データ・ストロー
ブ)I入力を発生するために使用される。このことは、
前述のDMACに関連する刊行物に詳細に説明されてい
るように、DMAC209中のバイト幅レジスタをアク
セスするために必要である。LDS線は、アドレス・バ
ス161Dの、NOT SIZ0と、SID0と、A0
の論理ORから発生される。UDS線は、A0の論理N
OTから発生される。SIZ0線は、ワード幅レジスタ
がアクセスされつつある時に(NOT SIZ0)下位
バイトにアクセスするために使用される。SIZ1線
は、ワード幅レジスタが「3バイトが残る」S/88プ
ロセッサ動作を介してアクセスされている時に、下位バ
イトにアクセスするために使用される。このことは、S
/88プロセッサがダブルワード(32ビット)読取/
書込動作を奇数バイト境界上でDMACに対して実行し
ているときのみ生じる。ビットA0は、2バイト・レジ
スタ中で、上位または下位バイトを選択するために使用
される。ビットA0、A1は、4バイトDMACレジス
タ中でバイトを選択するために使用される。PE62ア
ドレス・バス161DのビットA6、A7は、4つのD
MACチャネルのうちの1つを選択する。
及びA0線は、DMAC209に対してUDS(上方デ
ータ・ストローブ)及びLDS(下方データ・ストロー
ブ)I入力を発生するために使用される。このことは、
前述のDMACに関連する刊行物に詳細に説明されてい
るように、DMAC209中のバイト幅レジスタをアク
セスするために必要である。LDS線は、アドレス・バ
ス161Dの、NOT SIZ0と、SID0と、A0
の論理ORから発生される。UDS線は、A0の論理N
OTから発生される。SIZ0線は、ワード幅レジスタ
がアクセスされつつある時に(NOT SIZ0)下位
バイトにアクセスするために使用される。SIZ1線
は、ワード幅レジスタが「3バイトが残る」S/88プ
ロセッサ動作を介してアクセスされている時に、下位バ
イトにアクセスするために使用される。このことは、S
/88プロセッサがダブルワード(32ビット)読取/
書込動作を奇数バイト境界上でDMACに対して実行し
ているときのみ生じる。ビットA0は、2バイト・レジ
スタ中で、上位または下位バイトを選択するために使用
される。ビットA0、A1は、4バイトDMACレジス
タ中でバイトを選択するために使用される。PE62ア
ドレス・バス161DのビットA6、A7は、4つのD
MACチャネルのうちの1つを選択する。
(F)BCU BSM読取/書込バイト・カウンタ動作 BCU156は、各アダプタ・バス250、251に亙
って4KBまでのデータを転送するDMAC209から
の単一コマンドを受け取ることができる。しかし、各バ
スは、1回のデータ転送動作毎に64バイトのブロック
しか処理することができない。プロトコル必要条件を満
たすためにハードウェアが従わなくてはならない別のア
ダプタ・バスの制約がある。以下に、これを達成するB
CU156のハードウェアについて詳細に説明する。
って4KBまでのデータを転送するDMAC209から
の単一コマンドを受け取ることができる。しかし、各バ
スは、1回のデータ転送動作毎に64バイトのブロック
しか処理することができない。プロトコル必要条件を満
たすためにハードウェアが従わなくてはならない別のア
ダプタ・バスの制約がある。以下に、これを達成するB
CU156のハードウェアについて詳細に説明する。
BCU156は、アダプタ・バスBSM読取及びBSM
書込動作のために使用される2つのフルワード(11ビ
ット)カウンタ220、222と、2つの境界(4ビッ
ト)カウンタ221、224を含む。境界カウンタ22
1、224は、64バイト境界交差が何らかの単一コマ
ンド/データ転送動作についてBCU156によって検
出されるか、またはバイト・カウントが64バイトより
も大きいとき、バス・アダプタに対する開始アドレスを
あらわす。そのバイト境界の内容は、最後のブロック転
送以外の全ての場合に、バス・アダプタに提供される。
フルワード・カウンタの内容は、最後のブロック転送
(最後のコマンド/データ転送動作)の場合にのみ提供
される。
書込動作のために使用される2つのフルワード(11ビ
ット)カウンタ220、222と、2つの境界(4ビッ
ト)カウンタ221、224を含む。境界カウンタ22
1、224は、64バイト境界交差が何らかの単一コマ
ンド/データ転送動作についてBCU156によって検
出されるか、またはバイト・カウントが64バイトより
も大きいとき、バス・アダプタに対する開始アドレスを
あらわす。そのバイト境界の内容は、最後のブロック転
送以外の全ての場合に、バス・アダプタに提供される。
フルワード・カウンタの内容は、最後のブロック転送
(最後のコマンド/データ転送動作)の場合にのみ提供
される。
S/88プロセッサ62は、レジスタ222または22
0に対する転送のため、ローカル・バス223(第45
F図)上に、バイト・カウント、キー、及び優先順位ビ
ットを配置する。rビット(カウント・ビット1)は、
ワード(2バイト)境界をあらわし、sビット(カウン
ト・ビット0)はバイト境界をあらわす。フルワード・
カウンタ・ビットは、SKB−1ダブルワード転送能力
をあらわす。すべての転送は、ダブルワードを単位とし
て行うので、ビット2が下位デクリメント・ビットであ
る。r及びsビットは、BCUによってラッチされ、最
終の64B転送でバス・アダプタ154に提供される。
0に対する転送のため、ローカル・バス223(第45
F図)上に、バイト・カウント、キー、及び優先順位ビ
ットを配置する。rビット(カウント・ビット1)は、
ワード(2バイト)境界をあらわし、sビット(カウン
ト・ビット0)はバイト境界をあらわす。フルワード・
カウンタ・ビットは、SKB−1ダブルワード転送能力
をあらわす。すべての転送は、ダブルワードを単位とし
て行うので、ビット2が下位デクリメント・ビットであ
る。r及びsビットは、BCUによってラッチされ、最
終の64B転送でバス・アダプタ154に提供される。
以下のバス・アダプタ制約条件、及びローカル・バス2
23上ではダブルワード転送のみが行なわれるという事
実のため、バイト及びワード・カウント・ビットを扱う
ことが必要になってくる。このことは、奇数バイト/ワ
ードをS/370 PE84に転送することを可能なら
しめ、また、ダブルワード境界にない開始アドレスにも
対処するものである。バス・アダプタ154に提供され
るバイト・カウントは、64バイト以上であることはで
きない。そのカウントは、バイト数−1で与えられなく
てはならない。いかなるブロック転送も64バイト境界
に交差してはならない。バイト・カウントが64バイト
に等しいかそれよりも小さく、境界交差がなく、開始ア
ドレスがダブルワード境界上にないとき、ダブルワード
・カウントに対する追加的な調節が必要となることがあ
る。
23上ではダブルワード転送のみが行なわれるという事
実のため、バイト及びワード・カウント・ビットを扱う
ことが必要になってくる。このことは、奇数バイト/ワ
ードをS/370 PE84に転送することを可能なら
しめ、また、ダブルワード境界にない開始アドレスにも
対処するものである。バス・アダプタ154に提供され
るバイト・カウントは、64バイト以上であることはで
きない。そのカウントは、バイト数−1で与えられなく
てはならない。いかなるブロック転送も64バイト境界
に交差してはならない。バイト・カウントが64バイト
に等しいかそれよりも小さく、境界交差がなく、開始ア
ドレスがダブルワード境界上にないとき、ダブルワード
・カウントに対する追加的な調節が必要となることがあ
る。
64バイト境界交差が存在する時、カウント値に拘ら
ず、少なくとも2つのアダプタ・バス・コマンド/デー
タ転送動作が必要である。S/88プロセッサは、前述
の係数の検査に基づき、ダブルワード・カウントと、
r、s及びiビットを予備計算し、またバイト転送総カウ
ントを予備計算する。r及びsビットは、最後のコマンド
/データ転送動作までバス・アダプタ154に提供され
ない。
ず、少なくとも2つのアダプタ・バス・コマンド/デー
タ転送動作が必要である。S/88プロセッサは、前述
の係数の検査に基づき、ダブルワード・カウントと、
r、s及びiビットを予備計算し、またバイト転送総カウ
ントを予備計算する。r及びsビットは、最後のコマンド
/データ転送動作までバス・アダプタ154に提供され
ない。
S/88PE62がローカル・バス223(第45F
図)上にカウントを配置する時、DMAC209はビッ
ト31−16を捉え、BCU156はビット26−6を
捉える。BCU156はレジスタ220または222中
にビット26−14を格納する。ビット26−16は、
ダブルワード・カウント・フィールドをあらわす。カウ
ンタ220または222は、ダブルワード境界上(ビッ
ト2)でデクリメントされる。S/88プロセッサPE
62は、ローカル・アドレス・バス247上にBSM読
取/書込セレクト・アップ・コマンドを配置し、ローカ
ル・データ・バス223上にBSM開始アドレスを配置
する。
図)上にカウントを配置する時、DMAC209はビッ
ト31−16を捉え、BCU156はビット26−6を
捉える。BCU156はレジスタ220または222中
にビット26−14を格納する。ビット26−16は、
ダブルワード・カウント・フィールドをあらわす。カウ
ンタ220または222は、ダブルワード境界上(ビッ
ト2)でデクリメントされる。S/88プロセッサPE
62は、ローカル・アドレス・バス247上にBSM読
取/書込セレクト・アップ・コマンドを配置し、ローカ
ル・データ・バス223上にBSM開始アドレスを配置
する。
DMAC209は、32ビットに接続された16ビット
装置である。それは、全てのチャネル中のDMA動作の
間にワード(2バイト)を転送するようにプログラムさ
れており、各内部メモリ・アドレス・レジスタMAR
は、各転送毎に1ワード(2バイト)だけインクリメン
トする。しかし、各転送は実際には32ビットであるた
め、ダブルワード(4バイト)インクリメントが必要で
ある。これを達成するために、S/88プロセッサPE
62は常に、MARを(記憶210中の)所望の開始ア
ドレスの半分にセットする。BCU156は次に、それ
をローカル・バス223に提供する前にMARからのア
ドレスを2倍することによって補償し、以て、記憶21
0にあらわれる正しいアドレス順序付けがもたらされ
る。
装置である。それは、全てのチャネル中のDMA動作の
間にワード(2バイト)を転送するようにプログラムさ
れており、各内部メモリ・アドレス・レジスタMAR
は、各転送毎に1ワード(2バイト)だけインクリメン
トする。しかし、各転送は実際には32ビットであるた
め、ダブルワード(4バイト)インクリメントが必要で
ある。これを達成するために、S/88プロセッサPE
62は常に、MARを(記憶210中の)所望の開始ア
ドレスの半分にセットする。BCU156は次に、それ
をローカル・バス223に提供する前にMARからのア
ドレスを2倍することによって補償し、以て、記憶21
0にあらわれる正しいアドレス順序付けがもたらされ
る。
BCU156は、次のことを実行する。
(1)境界カウンタ221または224が、ローカル・
データ・バス223の反転ビット2−5からロードさ
れ、それと同時に、BSMアドレス・レジスタ228ま
たは231がロードされる。
データ・バス223の反転ビット2−5からロードさ
れ、それと同時に、BSMアドレス・レジスタ228ま
たは231がロードされる。
(2)ダブルワード境界(ビット2)上で、フルワード
・カウンタ220または222をデクリメントする。
・カウンタ220または222をデクリメントする。
(3)ダブルワード境界(ビット2)上で、BSMアド
レス・レジスタ228または231をインクリメントす
る。
レス・レジスタ228または231をインクリメントす
る。
64バイト以上が残り、またはデータのブロック転送の
間に境界交差が生じた時、BCU156が、境界カウン
タ221または224と、BSMアドレス・レジスタ2
31または228ビット1、0(反転)からコマンド/
状況バス249または231に、BSM読取/書込コマ
ンド・バイト・カウントをロードする。そして次に、読
取/書込動作が実行される。BCU156は、ダブルワ
ード境界上で、境界カウント・レジスタ221または2
24とフルワード・カウント・レジスタ220または2
22をデクリメントし、さらに、BSMアドレス・レジ
スタ231または228をダブルワード境界上でインク
リメントする。BCU156は、BSMアドレス・レジ
スタ231または228のビット5−2=0000とな
ったとき、すなわち、64バイト境界で停止する。境界
カウンタ・ビットはこのとき1111であるべきであ
る。
間に境界交差が生じた時、BCU156が、境界カウン
タ221または224と、BSMアドレス・レジスタ2
31または228ビット1、0(反転)からコマンド/
状況バス249または231に、BSM読取/書込コマ
ンド・バイト・カウントをロードする。そして次に、読
取/書込動作が実行される。BCU156は、ダブルワ
ード境界上で、境界カウント・レジスタ221または2
24とフルワード・カウント・レジスタ220または2
22をデクリメントし、さらに、BSMアドレス・レジ
スタ231または228をダブルワード境界上でインク
リメントする。BCU156は、BSMアドレス・レジ
スタ231または228のビット5−2=0000とな
ったとき、すなわち、64バイト境界で停止する。境界
カウンタ・ビットはこのとき1111であるべきであ
る。
64バイトまたはされ以下が残り、データのブロック転
送の間に境界交差がないなら、BCU156はカウンタ
220または222のビット5−2及び、r、sビットか
ら、アダプタ・バス・コマンド/状況バス249上に、
BSM読取/書込コマンド・バイト・カウントをロード
する。BCU156は次に、読取/書込動作を実行し、
その間に、BCU156は、ダブルワード境界上でレジ
スタ220または222をデクリメントし、ダブルワー
ド境界上でBSMアドレス・レジスタ231または22
8をインクリメントし、レジスタ220または222の
ビット12−2が全て1であるとき停止する。境界交差
は、カウント・レジスタ220または222のビット2
−5をその境界レジスタ221または224と比較する
ことによって検出される。もしカウント・レジスタ22
0、222の値が境界レジスタ221、224の値より
も大きいなら、境界交差が検出されている。
送の間に境界交差がないなら、BCU156はカウンタ
220または222のビット5−2及び、r、sビットか
ら、アダプタ・バス・コマンド/状況バス249上に、
BSM読取/書込コマンド・バイト・カウントをロード
する。BCU156は次に、読取/書込動作を実行し、
その間に、BCU156は、ダブルワード境界上でレジ
スタ220または222をデクリメントし、ダブルワー
ド境界上でBSMアドレス・レジスタ231または22
8をインクリメントし、レジスタ220または222の
ビット12−2が全て1であるとき停止する。境界交差
は、カウント・レジスタ220または222のビット2
−5をその境界レジスタ221または224と比較する
ことによって検出される。もしカウント・レジスタ22
0、222の値が境界レジスタ221、224の値より
も大きいなら、境界交差が検出されている。
(G)BCU156/アダプタ154ハンドシェーク・
シーケンス 第25図のタイミング・チャートはローカル記憶210
中のワーク・キュー・バッファに対する2回の32ビッ
ト・ワードの転送を行う読取メイルボックス・コマンド
及び記憶読取コマンドのための、BCU156とアダプ
タ154の間のハンドシェーク・シーケンスを示してい
る。
シーケンス 第25図のタイミング・チャートはローカル記憶210
中のワーク・キュー・バッファに対する2回の32ビッ
ト・ワードの転送を行う読取メイルボックス・コマンド
及び記憶読取コマンドのための、BCU156とアダプ
タ154の間のハンドシェーク・シーケンスを示してい
る。
メイルボックス読取または記憶読取コマンドがバス29
0上で発行されるとき(第19A図)、S/370記憶
162から適切なデータをフェッチするために、左ゲー
ト(GT LT)及び右ゲート(GT RT)という一
対の信号が順次的に、アダプタ154に対して、レジス
タ214及び219(第19B図)中のコマンド及びア
ドレスの右及び左部分をゲートする。タグ・アップ・コ
マンドは、線262a上で立ち上げられ、それに周期的
なレジスタ・データ信号が続く。タグ・ダウンは、フェ
ッチされたデータがバッファ259中に格納されるまで
線262b上で立ち上げられている。次の周期的クロッ
ク左及びクロック右信号が立ち上がるとき、フェッチさ
れた最初のワードの左及び右部分がバス250を介して
バッファ226中にゲートされる。
0上で発行されるとき(第19A図)、S/370記憶
162から適切なデータをフェッチするために、左ゲー
ト(GT LT)及び右ゲート(GT RT)という一
対の信号が順次的に、アダプタ154に対して、レジス
タ214及び219(第19B図)中のコマンド及びア
ドレスの右及び左部分をゲートする。タグ・アップ・コ
マンドは、線262a上で立ち上げられ、それに周期的
なレジスタ・データ信号が続く。タグ・ダウンは、フェ
ッチされたデータがバッファ259中に格納されるまで
線262b上で立ち上げられている。次の周期的クロッ
ク左及びクロック右信号が立ち上がるとき、フェッチさ
れた最初のワードの左及び右部分がバス250を介して
バッファ226中にゲートされる。
バス要求は、DMACチャネル0または1の場合、線2
63aまたはb上で立ち上げられる。DMACは、線2
69を介してローカル・バスの制御を巡って調停する。
この要求が論理216によって許可されたとき、線26
8上にバス許可が立ち上げられる。DMAC209は、
線264aまたは264b上で肯定応答信号を立ち上
げ、そのことは、DMAC209が選択されたローカル
記憶アドレスをローカル・アドレス・バス247上に配
置する間にBCUをしてバッファ226中のデータをロ
ーカル・バス223にゲートさせる。DMAC209は
次に、線267上にDTCを発行して論理253に線2
10a上の記憶選択信号を立ち上げさせる。バス223
上のデータは、ローカル記憶210中の適当なバッファ
に配置される。
63aまたはb上で立ち上げられる。DMACは、線2
69を介してローカル・バスの制御を巡って調停する。
この要求が論理216によって許可されたとき、線26
8上にバス許可が立ち上げられる。DMAC209は、
線264aまたは264b上で肯定応答信号を立ち上
げ、そのことは、DMAC209が選択されたローカル
記憶アドレスをローカル・アドレス・バス247上に配
置する間にBCUをしてバッファ226中のデータをロ
ーカル・バス223にゲートさせる。DMAC209は
次に、線267上にDTCを発行して論理253に線2
10a上の記憶選択信号を立ち上げさせる。バス223
上のデータは、ローカル記憶210中の適当なバッファ
に配置される。
継起する周期的タグ・アップ、クロック左及び右、DM
A要求が、継起するデータ・ワードをバッファ226に
ゲートする。そして、これらのワードは、DMAC20
9が、調停論理216を介してローカル・バス247、
223に対するアクセスを得て肯定応答及びDTC信号
を発生するとき、記憶210中の適当なバッファに転送
される。
A要求が、継起するデータ・ワードをバッファ226に
ゲートする。そして、これらのワードは、DMAC20
9が、調停論理216を介してローカル・バス247、
223に対するアクセスを得て肯定応答及びDTC信号
を発生するとき、記憶210中の適当なバッファに転送
される。
第26図は、キュー・セレクト・アップ及び記憶書込み
コマンドのためのハンドシェーキング・シーケンスを示
す。そのどちらかのコマンドがバス290上で発行され
た時、ゲート左及び右信号が(前以てレジスタ225及
び227に記憶されていた)コマンド及びアドレスをア
ダプタ154に転送する。周期的データ信号に続くタグ
・アップ・コマンドが線262a上で立ち上げられる。
そして、DMA要求が線263cまたはd上で立ち上げら
れる。DMAC209は、線269及び論理216を介
して、ローカルバス247、223を求めて調停する。
その要求が線268を介して許可された時、DMAC2
09は線264cまたはd上で肯定応答を立ち上げ、その
あと最初のデータ・ワードを記憶210からレジスタ2
27へ転送するための線267上のDTCが続く。次の
周期的ゲート左及び右信号は、その最初のデータ・ワー
ドをレジスタ227からアダプタ154のバッファ26
0に転送する。
コマンドのためのハンドシェーキング・シーケンスを示
す。そのどちらかのコマンドがバス290上で発行され
た時、ゲート左及び右信号が(前以てレジスタ225及
び227に記憶されていた)コマンド及びアドレスをア
ダプタ154に転送する。周期的データ信号に続くタグ
・アップ・コマンドが線262a上で立ち上げられる。
そして、DMA要求が線263cまたはd上で立ち上げら
れる。DMAC209は、線269及び論理216を介
して、ローカルバス247、223を求めて調停する。
その要求が線268を介して許可された時、DMAC2
09は線264cまたはd上で肯定応答を立ち上げ、その
あと最初のデータ・ワードを記憶210からレジスタ2
27へ転送するための線267上のDTCが続く。次の
周期的ゲート左及び右信号は、その最初のデータ・ワー
ドをレジスタ227からアダプタ154のバッファ26
0に転送する。
線263cまたはd上の継起するDMAC要求信号と、D
MAC肯定応答及びDTC信号は、DMAC209がロ
ーカル・バス247、223の制御を求めて調停すると
き、継起するデータ・ワードをレジスタ227に転送す
る。そして、継起する周期的ゲート左及び右信号がレジ
スタ227からバッファ260に各データ・ワードを転
送する。
MAC肯定応答及びDTC信号は、DMAC209がロ
ーカル・バス247、223の制御を求めて調停すると
き、継起するデータ・ワードをレジスタ227に転送す
る。そして、継起する周期的ゲート左及び右信号がレジ
スタ227からバッファ260に各データ・ワードを転
送する。
E13.S/370プロセッサ要素PE85 好適な実施例におけるPE85などの各プロセッサ要素
は、S/370命令の処理のための基本的機能を含み、
また次のような機構を有する。
は、S/370命令の処理のための基本的機能を含み、
また次のような機構を有する。
基本的32ビット・データ・フロー 32ビット算術/論理ユニット(ALU)306 32ビット・シフト・ユニット307 48レジスタ(めいめい32ビット)データ・ローカル
記憶 3ポート・アドレス可能性を有する303 8バイトS/370命令バッファ309 時間機構(CPUタイマ、コンパレータなど)315 PE85の好適な実施例の簡略化されたデータ・フロー
が第27図に示されている。このとき、従来技術でよく
知られている多くのS/370プロセッサ構成が存在す
ることを理解されたい。好適な実施例の各プロセッサ要
素85の好適な態様は、S/370アーキテクチャの命
令を実行することができるプロセッサである。そのプロ
セッサは、命令及びデータをプロセッサ・バス170上
で記憶16の実記憶領域16からフェッチする。この双
方向バス170は、PE85とS/370チップ・セッ
ト150の別のユニットとの間の汎用的な接続である。
PE85はマスターとして動作するが、システムでは最
も低い優先順位をもつ。その命令は、ハードウェアによ
って、及びマイクロ・モードにある時ひのプロセッサが
実行するマイクロ命令によって実行される。
記憶 3ポート・アドレス可能性を有する303 8バイトS/370命令バッファ309 時間機構(CPUタイマ、コンパレータなど)315 PE85の好適な実施例の簡略化されたデータ・フロー
が第27図に示されている。このとき、従来技術でよく
知られている多くのS/370プロセッサ構成が存在す
ることを理解されたい。好適な実施例の各プロセッサ要
素85の好適な態様は、S/370アーキテクチャの命
令を実行することができるプロセッサである。そのプロ
セッサは、命令及びデータをプロセッサ・バス170上
で記憶16の実記憶領域16からフェッチする。この双
方向バス170は、PE85とS/370チップ・セッ
ト150の別のユニットとの間の汎用的な接続である。
PE85はマスターとして動作するが、システムでは最
も低い優先順位をもつ。その命令は、ハードウェアによ
って、及びマイクロ・モードにある時ひのプロセッサが
実行するマイクロ命令によって実行される。
PE85は、4つの主要な機能グループを有する。
−送信及び受信レジスタ300、301と、オペランド
及び命令記憶のためのアドレス・レジスタ302からな
る「バス・グループ」 −データ・ローカル記憶(DLS)303、A及びBオ
ペランド・レジスタ304、305、ALU306、シ
フト・ユニット307からなる「算術/論理グループ」 −制御記憶アドレス・レジスタ(CSAR)308、S
/370命令バッファ(I−バッファ)309、OPレ
ジスタ310、とトラップ及び例外制御を有するサイク
ル・カウンタ311からなる「動作デコーダ・グルー
プ」 −期間タイマ315、日付クロック、クロック・コンパ
レータ、及びCPUタイマからなる、小さい、比較的独
立のユニット315である「タイマ・グループ」 以下の記載は、これらの論理グループの用途を記述する
ものである。
及び命令記憶のためのアドレス・レジスタ302からな
る「バス・グループ」 −データ・ローカル記憶(DLS)303、A及びBオ
ペランド・レジスタ304、305、ALU306、シ
フト・ユニット307からなる「算術/論理グループ」 −制御記憶アドレス・レジスタ(CSAR)308、S
/370命令バッファ(I−バッファ)309、OPレ
ジスタ310、とトラップ及び例外制御を有するサイク
ル・カウンタ311からなる「動作デコーダ・グルー
プ」 −期間タイマ315、日付クロック、クロック・コンパ
レータ、及びCPUタイマからなる、小さい、比較的独
立のユニット315である「タイマ・グループ」 以下の記載は、これらの論理グループの用途を記述する
ものである。
I−バッファ309は、S/370命令を、デコーダに
対して可能な限り高速で可用にする。OPコードを含む
最初の半ワードが、S/370I−フェーズを開始する
ために動作レジスタ310を介してデコーダ312に供
給される。第2及び第3半ワード(もしあるなら)は、
アドレス計算のためにALUに供給される。I−バッフ
ァ309は、S/370シーケンスの開始前に、レジス
タ313中の強制された動作(FOP)を介してIP
L、LOAD PSW、またはPSWスワップによって
ロードされるダブルワード・レジスタである。
対して可能な限り高速で可用にする。OPコードを含む
最初の半ワードが、S/370I−フェーズを開始する
ために動作レジスタ310を介してデコーダ312に供
給される。第2及び第3半ワード(もしあるなら)は、
アドレス計算のためにALUに供給される。I−バッフ
ァ309は、S/370シーケンスの開始前に、レジス
タ313中の強制された動作(FOP)を介してIP
L、LOAD PSW、またはPSWスワップによって
ロードされるダブルワード・レジスタである。
I−バッファ309は、命令が動作レジスタ310(及
びアドレス計算のためにALU306)に供給されると
きに1ワードずつ再充填され、成功する各分岐の間に完
全に再充填される。動作デコーダ312はどの動作を実
行すべきかを選択する。そのデコーダには動作及びマイ
クロコード動作レジスタ310から供給される。モード
・ビットは、どのデコーダ(強制動作の場合どれでもな
い)がデコードするための制御を得るかを決定する。
びアドレス計算のためにALU306)に供給されると
きに1ワードずつ再充填され、成功する各分岐の間に完
全に再充填される。動作デコーダ312はどの動作を実
行すべきかを選択する。そのデコーダには動作及びマイ
クロコード動作レジスタ310から供給される。モード
・ビットは、どのデコーダ(強制動作の場合どれでもな
い)がデコードするための制御を得るかを決定する。
I−バッファ309は、動作レジスタ310に供給さ
れ、それと並行して制御記憶171中のOPコードをア
ドレスするためにCSAR308にも供給される。この
テーブル中の各エントリは、2つの目的を果たす。すな
わち、まず、マイクロコード・ルーチンが存在するかど
うかを示し、そのルーチンの最初の命令をアドレスす
る。マイクロコード・ルーチンは、可変フィールド長命
令、及びハードウェアによって直接実行されない他の命
令などのより複雑な命令の実行のために存在している。
マイクロ命令中の特殊機能コードは、ほとんどが16ビ
ットのマイクロ命令を使用して32ビット・データを制
御することが可能となるように、サポートするハードウ
ェアを活動化させる。
れ、それと並行して制御記憶171中のOPコードをア
ドレスするためにCSAR308にも供給される。この
テーブル中の各エントリは、2つの目的を果たす。すな
わち、まず、マイクロコード・ルーチンが存在するかど
うかを示し、そのルーチンの最初の命令をアドレスす
る。マイクロコード・ルーチンは、可変フィールド長命
令、及びハードウェアによって直接実行されない他の命
令などのより複雑な命令の実行のために存在している。
マイクロ命令中の特殊機能コードは、ほとんどが16ビ
ットのマイクロ命令を使用して32ビット・データを制
御することが可能となるように、サポートするハードウ
ェアを活動化させる。
全ての処理は、次のようにして3段バイプラインで行な
われる。
われる。
−第1の段は、OPレジスタ310に命令を読み込む。
−第2の段は、データまたはアドレスを、A/Bレジス
タ304、305と、バス送信レジスタ300に読み込
む。OPレジスタ310は、その内容を、第3の段を制
御するOPデコーダ312に渡すことによって、別の第
1の段のために解放される。
タ304、305と、バス送信レジスタ300に読み込
む。OPレジスタ310は、その内容を、第3の段を制
御するOPデコーダ312に渡すことによって、別の第
1の段のために解放される。
−第3の段は、必要に応じて、ALU、シフト、または
バス動作を実行する。DLS書込み動作もまた第3の段
で実行される。
バス動作を実行する。DLS書込み動作もまた第3の段
で実行される。
デコーダを複数のグループ(図示しない)で、すなわち
1つは特にALU専用、別のものはバス・グループ専
用、というように実現することによって効率的な処理が
さらに増強される。A/Bレジスタ入力及びALU出力
におけるバイト選択可能マルチプレクサ(図示しない)
がさらに動作を増強する。このように、1サイクルにの
みめいめいのパイプライン段を占有するS/370RR
命令が存在する。
1つは特にALU専用、別のものはバス・グループ専
用、というように実現することによって効率的な処理が
さらに増強される。A/Bレジスタ入力及びALU出力
におけるバイト選択可能マルチプレクサ(図示しない)
がさらに動作を増強する。このように、1サイクルにの
みめいめいのパイプライン段を占有するS/370RR
命令が存在する。
内部制御のために、強制動作レジスタ(FOP)313
が使用される。それらのレジスタは、トラップ及び例外
条件から入力を取得して、デコーダ312を別のモード
へと強制する。典型的な動作は、I−バッファ・ロー
ド、トラップ・レベルへの転移、及び例外ルーチンの開
始である。
が使用される。それらのレジスタは、トラップ及び例外
条件から入力を取得して、デコーダ312を別のモード
へと強制する。典型的な動作は、I−バッファ・ロー
ド、トラップ・レベルへの転移、及び例外ルーチンの開
始である。
各動作レジスタ310は、自己のサイクル・カウンタ3
11をもつ。マイクロコード・カウンタは、いくつかの
強制動作(FOP)によって共有される。算術動作及び
大抵のマイクロ命令は1サイクルしか必要としない。プ
ロセッサ・バス動作を実行するマイクロ命令は、2サイ
クルを要する。
11をもつ。マイクロコード・カウンタは、いくつかの
強制動作(FOP)によって共有される。算術動作及び
大抵のマイクロ命令は1サイクルしか必要としない。プ
ロセッサ・バス動作を実行するマイクロ命令は、2サイ
クルを要する。
データ・ローカル記憶303は、2つが出力ポートであ
り、1つが入力ポートである3つのポートを介してアク
セス可能な48個のフルワード(4バイト)レジスタを
もつ。どのレジスタも入力のためレジスタ314を介し
てアドレスすることができ、それと同じレジスタまたは
2つの異なるレジスタを、出力のために同時にアドレス
することができる。この3とおりのアドレシングは、オ
ペランド・フェッチが処理と重なることを可能ならしめ
る。コンパレータ論理及びデータ・ゲート(図示しな
い)により、書込み動作のためにアドレスしたばかりの
レジスタを同一のサイクル中で入力のためにも同様に使
用することができる。これにより、パイプライン動作が
容易ならしめられる。
り、1つが入力ポートである3つのポートを介してアク
セス可能な48個のフルワード(4バイト)レジスタを
もつ。どのレジスタも入力のためレジスタ314を介し
てアドレスすることができ、それと同じレジスタまたは
2つの異なるレジスタを、出力のために同時にアドレス
することができる。この3とおりのアドレシングは、オ
ペランド・フェッチが処理と重なることを可能ならしめ
る。コンパレータ論理及びデータ・ゲート(図示しな
い)により、書込み動作のためにアドレスしたばかりの
レジスタを同一のサイクル中で入力のためにも同様に使
用することができる。これにより、パイプライン動作が
容易ならしめられる。
ALU306は、好適には、2つのフルワード・オペラ
ンド上で真または反転形式でAND、OR、XOR及び
ADDを実行することができるフルワード論理ユニット
である。10進加算もまたサポートされている。パリテ
ィ予測及び発生と、高速キャリー伝搬機能も含まれてい
る。セープ・レジスタ320は、割り算をサポートす
る。状況論理321は、分岐判断及び符号評価のための
さまざまな条件を発生及び記憶する。
ンド上で真または反転形式でAND、OR、XOR及び
ADDを実行することができるフルワード論理ユニット
である。10進加算もまたサポートされている。パリテ
ィ予測及び発生と、高速キャリー伝搬機能も含まれてい
る。セープ・レジスタ320は、割り算をサポートす
る。状況論理321は、分岐判断及び符号評価のための
さまざまな条件を発生及び記憶する。
制御記憶アドレス・レジスタ(CSAR)308は、制
御記憶171中のマイクロ命令及びテーブルをアドレス
する。CSAR308に対する入力は、関連修飾子から
の更新されたアドレスであるか、成功裡の分岐からの分
岐ターゲット・アドレスであるか、テーブル・ルック・
アップのための強制されたアドレスである。テーブル・
ルック・アップは、各S/370命令の開始時点、及び
いくつかの強制された動作では絶対必要である。CSA
R308は、OPコード・テーブル(第29図)にアク
セスするためのアドレスとしてOPコード・パターンを
取得する。このOPコード・テーブルの出力が、動作レ
ジスタ310からの直接デコーディングであり得る実行
の形式を決定する。もし間接的実行が必要なら、適当な
マイクロ・ルーチンをアドレスするために、OPコード
・テーブル出力がCSARにフィード・バックされる。
御記憶171中のマイクロ命令及びテーブルをアドレス
する。CSAR308に対する入力は、関連修飾子から
の更新されたアドレスであるか、成功裡の分岐からの分
岐ターゲット・アドレスであるか、テーブル・ルック・
アップのための強制されたアドレスである。テーブル・
ルック・アップは、各S/370命令の開始時点、及び
いくつかの強制された動作では絶対必要である。CSA
R308は、OPコード・テーブル(第29図)にアク
セスするためのアドレスとしてOPコード・パターンを
取得する。このOPコード・テーブルの出力が、動作レ
ジスタ310からの直接デコーディングであり得る実行
の形式を決定する。もし間接的実行が必要なら、適当な
マイクロ・ルーチンをアドレスするために、OPコード
・テーブル出力がCSARにフィード・バックされる。
記憶アドレス・レジスタ302は、24ビット・アドレ
スとして設計されている。関連修飾子323が、フェッ
チされるデータ・ブロックのサイズに従いアドレスを更
新する。命令は、I−バッファ309が空にされている
ときに1ワード(4バイト)のインクリメントで前以て
フェッチされる。記憶アドレス・レジスタ302に対す
る入力は、命令オペランド・アドレス・レジスタ324
から到来する。それはまた、高速化のため、命令アドレ
ス・レジスタ324と並列的にセットされる。
スとして設計されている。関連修飾子323が、フェッ
チされるデータ・ブロックのサイズに従いアドレスを更
新する。命令は、I−バッファ309が空にされている
ときに1ワード(4バイト)のインクリメントで前以て
フェッチされる。記憶アドレス・レジスタ302に対す
る入力は、命令オペランド・アドレス・レジスタ324
から到来する。それはまた、高速化のため、命令アドレ
ス・レジスタ324と並列的にセットされる。
CPUデータ・フローは、一度に3つまでのS/370
命令の重なった処理を許容する。S/370命令は、ハ
ードウェアで実行され、またはマイクロ命令によって解
釈される。好適な実施例の基本的サイクル時間は80n
sである。命令処理は、1回または複数回の80nsス
テップで実行される。高速乗算機構PE151は、2進
及び浮動小数点乗算を高速化する。制御記憶171から
のマイクロ命令は、ハードウェア中で完全に実現するに
は複雑過ぎまた費用がかかり過ぎるS/370命令の実
行にのみ採用される。そのマイクロ命令は、もし必要な
ら、命令毎に60nsのレートで供給される。マイクロ
命令セットは、S/370命令の解釈につき最適化され
ている。マクロ命令は、半ワード・フォーマットをも
ち、2つのオペランドにアクセスすることができる。制
御記憶171に含まれていないマイクロコードは、S/
370メモリ162の予約領域(第28図及び第29図
参照)であるIOA領域187に保持されている。この
マイクロコードは、例外のための性能をあまり要求され
ないコードや、あまり頻繁に実行されないS/370命
令などを含む。これらのマイクロルーチンは、要求に応
じて、制御記憶171のRAM部分中の64Bバッファ
にフェッチされる。PE85が制御記憶171に実現さ
れているよりも大きいアドレスに遭遇するときは何時で
も、PE85は、キャッシュ・コントローラ153及び
記憶コントローラ・インターフェース155に対する6
4Bブロック。フェッチ動作を開始する。ユニット15
3、155は、IOA187から64Bブロックをフェ
ッチし、それをPE85に送り、PE85は、それをバ
ッファ186に記憶する。マイクロ命令は、実行のため
にPE85によってバッファ186からフェッチされ
る。全てのマイクロコードは、初期マイクロコード・ロ
ード(IML)時にメモリにロードされる。システム
は、S/88からメモリへのマイクロコード・ロードを
容易ならしめるためのIMLサポートを与える。
命令の重なった処理を許容する。S/370命令は、ハ
ードウェアで実行され、またはマイクロ命令によって解
釈される。好適な実施例の基本的サイクル時間は80n
sである。命令処理は、1回または複数回の80nsス
テップで実行される。高速乗算機構PE151は、2進
及び浮動小数点乗算を高速化する。制御記憶171から
のマイクロ命令は、ハードウェア中で完全に実現するに
は複雑過ぎまた費用がかかり過ぎるS/370命令の実
行にのみ採用される。そのマイクロ命令は、もし必要な
ら、命令毎に60nsのレートで供給される。マイクロ
命令セットは、S/370命令の解釈につき最適化され
ている。マクロ命令は、半ワード・フォーマットをも
ち、2つのオペランドにアクセスすることができる。制
御記憶171に含まれていないマイクロコードは、S/
370メモリ162の予約領域(第28図及び第29図
参照)であるIOA領域187に保持されている。この
マイクロコードは、例外のための性能をあまり要求され
ないコードや、あまり頻繁に実行されないS/370命
令などを含む。これらのマイクロルーチンは、要求に応
じて、制御記憶171のRAM部分中の64Bバッファ
にフェッチされる。PE85が制御記憶171に実現さ
れているよりも大きいアドレスに遭遇するときは何時で
も、PE85は、キャッシュ・コントローラ153及び
記憶コントローラ・インターフェース155に対する6
4Bブロック。フェッチ動作を開始する。ユニット15
3、155は、IOA187から64Bブロックをフェ
ッチし、それをPE85に送り、PE85は、それをバ
ッファ186に記憶する。マイクロ命令は、実行のため
にPE85によってバッファ186からフェッチされ
る。全てのマイクロコードは、初期マイクロコード・ロ
ード(IML)時にメモリにロードされる。システム
は、S/88からメモリへのマイクロコード・ロードを
容易ならしめるためのIMLサポートを与える。
S/370命令及びユーザー・データは、8KB高速キ
ャッシュ340(第31図)からフェッチされる。デー
タは、フルワード単位でキャッシュ340に読取/書込
される。キャッシュとのフルワード読取/書込に必要な
時間は、120nsである。キャッシュ340には、必
要性が生じた時に、メモリ162から自動的に64バイ
ト・ブロックが補給される。PE85は、プロセッサ・
バス・コマンドを介してキャッシュ340と通信する。
PE85によって与えられる仮想アドレスは、ディレク
トリ・ルック・アサイド・テーブル(DLAT)341
中の対応予備変換ページ・アドレスをルック・アップす
るために使用される。PE85中のデータ・ローカル記
憶303は、16個の汎用レジスタと、4個の浮動小数
点レジスタと、24個のワーク・レジスタをもつ。全て
のレジスタは、3つの個別アドレス可能ポートを介して
個々にアドレスすることができる。こうして、記憶30
3は、ALU中に2つのオペランドを並列的に供給する
ことができ、同時に、その80nsサイクル内にALU
306またはキャッシュ340からフルワードを受け入
れることができる。このとき、慣用的なデータ・ローカ
ル記憶のように直列化はないので、算術及び論理動作
は、次の命令のための準備によって重なった様式で実行
することができる。
ャッシュ340(第31図)からフェッチされる。デー
タは、フルワード単位でキャッシュ340に読取/書込
される。キャッシュとのフルワード読取/書込に必要な
時間は、120nsである。キャッシュ340には、必
要性が生じた時に、メモリ162から自動的に64バイ
ト・ブロックが補給される。PE85は、プロセッサ・
バス・コマンドを介してキャッシュ340と通信する。
PE85によって与えられる仮想アドレスは、ディレク
トリ・ルック・アサイド・テーブル(DLAT)341
中の対応予備変換ページ・アドレスをルック・アップす
るために使用される。PE85中のデータ・ローカル記
憶303は、16個の汎用レジスタと、4個の浮動小数
点レジスタと、24個のワーク・レジスタをもつ。全て
のレジスタは、3つの個別アドレス可能ポートを介して
個々にアドレスすることができる。こうして、記憶30
3は、ALU中に2つのオペランドを並列的に供給する
ことができ、同時に、その80nsサイクル内にALU
306またはキャッシュ340からフルワードを受け入
れることができる。このとき、慣用的なデータ・ローカ
ル記憶のように直列化はないので、算術及び論理動作
は、次の命令のための準備によって重なった様式で実行
することができる。
CPUは、S/370命令のための8バイト命令バッフ
ァ(I−バッファ)309を維持する。このバッファ
は、成功裡のS/370分岐命令によって初期化され
る。PE85は、キャッシュ340からのS/370命
令ストリームからダブルワードのデータをフェッチし、
それをI−バッファ309にロードする。その最初のフ
ルワードがI−バッファ309にロードされた時、PE
85は、命令実行を再び開始する。I−バッファ・デー
タは、S/370命令の実行と同時にキャッシュ340
からフェッチされる。各S/370命令実行の最初のサ
イクルは非キャッシュ・サイクルであるので、CPU
は、キャッシュ340からI−バッファ309にフルワ
ードを予めフェッチするためにこのサイクルを利用す
る。
ァ(I−バッファ)309を維持する。このバッファ
は、成功裡のS/370分岐命令によって初期化され
る。PE85は、キャッシュ340からのS/370命
令ストリームからダブルワードのデータをフェッチし、
それをI−バッファ309にロードする。その最初のフ
ルワードがI−バッファ309にロードされた時、PE
85は、命令実行を再び開始する。I−バッファ・デー
タは、S/370命令の実行と同時にキャッシュ340
からフェッチされる。各S/370命令実行の最初のサ
イクルは非キャッシュ・サイクルであるので、CPU
は、キャッシュ340からI−バッファ309にフルワ
ードを予めフェッチするためにこのサイクルを利用す
る。
第2の非キャッシュ・サイクルは、効率的アドレス計算
の間にインデクシングを必要とし、またはマイクロ命令
によって実行されるS/370命令により利用可能であ
る。これらの場合、S/370命令フェッチは、S/3
70命令の実行と完全に重なることができる。
の間にインデクシングを必要とし、またはマイクロ命令
によって実行されるS/370命令により利用可能であ
る。これらの場合、S/370命令フェッチは、S/3
70命令の実行と完全に重なることができる。
好適な実施例においては、S/370チップ・セット1
50は、送信チップの割り込みラッチをリセットするこ
とによって肯定応答を行うために、割り込みを受け取る
チップを必要とする割り込み機構を介して通信する。
50は、送信チップの割り込みラッチをリセットするこ
とによって肯定応答を行うために、割り込みを受け取る
チップを必要とする割り込み機構を介して通信する。
システムが(例えばBCUを介して)アダプタ154の
状況レジスタ(STR)(後述)中の1つのまたはそれ
以上のビットをセット(活動化)するときはいつでも、
システムはN_ATTN_REQ制御線をも活動化しな
くてはならない。このことは、現在のS/370命令が
実行されたときプロセッサ要素85中に例外を引き起こ
し、以てプロセッサ要素85に状況レジスタに注目する
ように強制する。次に例外ハンドラがSTR内容をセン
スし、「割り込みタイプ」を問い合わせ、適当なシステ
ム・マイクロルーチンをタスク指名する。プロセッサ要
素85がSTR中のビットを活動化した時、システムは
それに従って反応しなくてはならない。基本的には2つ
のタイプの割り込み要求がある。
状況レジスタ(STR)(後述)中の1つのまたはそれ
以上のビットをセット(活動化)するときはいつでも、
システムはN_ATTN_REQ制御線をも活動化しな
くてはならない。このことは、現在のS/370命令が
実行されたときプロセッサ要素85中に例外を引き起こ
し、以てプロセッサ要素85に状況レジスタに注目する
ように強制する。次に例外ハンドラがSTR内容をセン
スし、「割り込みタイプ」を問い合わせ、適当なシステ
ム・マイクロルーチンをタスク指名する。プロセッサ要
素85がSTR中のビットを活動化した時、システムは
それに従って反応しなくてはならない。基本的には2つ
のタイプの割り込み要求がある。
(1)システム要求(SYSREQ)は(BCU156
を介しての)S/370プロセッサ要素85に対する要
求である。システムはその要求を指定するためにSTR
中に割り込みタイプをセットする。このことは、プロセ
ッサ要素85中に例外を引き起こし、プロセッサ要素8
5は、例外ハンドラに制御を渡す。例外ハンドラは、適
当なマイクロルーチンをタスク指名し、そのマイクロル
ーチンは、STR中の適当な割り込みタイプをリセット
し、その割り込みタイプによって決定される機能を実行
し、次のS/370命令を開始するためにアダプタ15
4に対してPROC_BUSコマンドを発行することに
なる。
を介しての)S/370プロセッサ要素85に対する要
求である。システムはその要求を指定するためにSTR
中に割り込みタイプをセットする。このことは、プロセ
ッサ要素85中に例外を引き起こし、プロセッサ要素8
5は、例外ハンドラに制御を渡す。例外ハンドラは、適
当なマイクロルーチンをタスク指名し、そのマイクロル
ーチンは、STR中の適当な割り込みタイプをリセット
し、その割り込みタイプによって決定される機能を実行
し、次のS/370命令を開始するためにアダプタ15
4に対してPROC_BUSコマンドを発行することに
なる。
(2)転送要求は、システムまたはPE85によって呼
び出され、システム・インターフェース上の追加的なデ
ータ転送に関与することがある。このため、STR中に
は2つの割り込みラッチが設けられ、1つはプロセッサ
通信要求(PCR)であり、もう1つは、システム通信
要求(SCR)である。PCRはPE85によってセッ
トされシステムによってリセットされ、SCRはシステ
ムによってセットされ、PE85によってリセットされ
る。
び出され、システム・インターフェース上の追加的なデ
ータ転送に関与することがある。このため、STR中に
は2つの割り込みラッチが設けられ、1つはプロセッサ
通信要求(PCR)であり、もう1つは、システム通信
要求(SCR)である。PCRはPE85によってセッ
トされシステムによってリセットされ、SCRはシステ
ムによってセットされ、PE85によってリセットされ
る。
高速データ転送動作のために、2つの追加的レジスタの
存在が想定され、それは、PE85によってセットさ
れ、システムによって読取られるBRレジスタ115
(第13図)と、システムによってリセットされPE8
5によって読取られるBSレジスタ116である。
存在が想定され、それは、PE85によってセットさ
れ、システムによって読取られるBRレジスタ115
(第13図)と、システムによってリセットされPE8
5によって読取られるBSレジスタ116である。
次に示すのは、PE85からシステムへの転送要求の一
例である。すなわち、PE85はシステムに対して転送
すべきデータをレジスタ115にセットし、PCR1ラ
ッチをオンにセットする。システムはそのデータをレジ
スタ115から読取りPCRラッチをリセットする。
例である。すなわち、PE85はシステムに対して転送
すべきデータをレジスタ115にセットし、PCR1ラ
ッチをオンにセットする。システムはそのデータをレジ
スタ115から読取りPCRラッチをリセットする。
プロセッサ85は、PCRラッチがリセットされている
かどうかを見出すためにPCRラッチをセンスすること
ができる。PE85は、上記シーケンスを反復すること
によって更なるデータを転送することができる。
かどうかを見出すためにPCRラッチをセンスすること
ができる。PE85は、上記シーケンスを反復すること
によって更なるデータを転送することができる。
システムは、次のように同様の様式でPE85にデータ
を転送することができる。システムはPE85に送信す
べきデータをレジスタ116にセットし、SCRラッチ
をオンにセットする。PE85は割り込まれ、STRを
感知し、SCRラッチ・オンを見出し、レジスタ116
からデータを読取り、SCRラッチをリセットする。シ
ステムは、リセットされているかどうかを調べるためS
CRラッチを照会することができる。
を転送することができる。システムはPE85に送信す
べきデータをレジスタ116にセットし、SCRラッチ
をオンにセットする。PE85は割り込まれ、STRを
感知し、SCRラッチ・オンを見出し、レジスタ116
からデータを読取り、SCRラッチをリセットする。シ
ステムは、リセットされているかどうかを調べるためS
CRラッチを照会することができる。
(3)システムは、上記シーケンスを反復することによ
ってPE85に更なるデータを転送することができる。
ってPE85に更なるデータを転送することができる。
データはまた、IOA記憶領域187を介して交換する
ことができる。PE85及びアダプタ154のために、
IOA187に記憶/フェッチを行うためのPROCB
USコマンドが存在する。
ことができる。PE85及びアダプタ154のために、
IOA187に記憶/フェッチを行うためのPROCB
USコマンドが存在する。
PE85は、IOA187に割当てられた1組のバッフ
ァをもち、その中へとPE85が、システムによってフ
ェッチされるべきデータをセットする。それに対応し
て、システムは、IOA187に割当てられた別の1組
のバッファをもち、その中へ、PE85によってフェッ
チされるべきデータをシステムがセットする。割り込み
タイプIOASYS/IOAPUは、SYSREQ中
で、互いにデータがIOAバッファ中にセットされたこ
とを示すために使用される。
ァをもち、その中へとPE85が、システムによってフ
ェッチされるべきデータをセットする。それに対応し
て、システムは、IOA187に割当てられた別の1組
のバッファをもち、その中へ、PE85によってフェッ
チされるべきデータをシステムがセットする。割り込み
タイプIOASYS/IOAPUは、SYSREQ中
で、互いにデータがIOAバッファ中にセットされたこ
とを示すために使用される。
使用するシステムによって、ある主のマシン・チェック
及び内部割り込み条件が立ち上げられる。システムは、
SYSREQまたはXFERREQ通信要求を発行する
ことによってPEに割り込み条件を通信する。PE85
は、次の機能を実行する。
及び内部割り込み条件が立ち上げられる。システムは、
SYSREQまたはXFERREQ通信要求を発行する
ことによってPEに割り込み条件を通信する。PE85
は、次の機能を実行する。
(A)レジスタSTRをセンスしてその内容を問い合わ
せる。
せる。
(B)システム提供マイクロルーチンを呼び出す。シス
テム割り込み要求ハンドラが、特定の割り込み処理を実
行する。適当な時点で、マイクロルーチンが、対応する
SYSREQまたはXFERREQをリセットするため
にアダプタ154にPROCBUSコマンドを発行す
る。最後に、PE85はS/370マイクロコードに制
御を返す。
テム割り込み要求ハンドラが、特定の割り込み処理を実
行する。適当な時点で、マイクロルーチンが、対応する
SYSREQまたはXFERREQをリセットするため
にアダプタ154にPROCBUSコマンドを発行す
る。最後に、PE85はS/370マイクロコードに制
御を返す。
(C)PE84は適当なS/370割り込みクラスのた
めPSWスワップを実行し、NSI機能を実行する。
めPSWスワップを実行し、NSI機能を実行する。
I/O割り込み要求は、STR中のI/Oビットをセッ
トすることによってシステムによって発生される。現在
のS/370命令が完了する度毎に、例外ハンドラが呼
び出される。このルーチンでは、PE85がI/O割り
込み要求を認識するためにSTRを呼び出す。PE85
はSTRビットをリセットし、PE85に対して内部の
割り込み要求ラッチをセットする。このラッチは、現在
のPSWのI/Oマスクでマスクされる。もしこのマス
クが1で、より高い優先順位割り込み要求が保留状態で
ないなら、例外ハンドラが、I/O割り込み要求を保有
する、システム提供I/O割り込み要求ハンドラに制御
を渡す。
トすることによってシステムによって発生される。現在
のS/370命令が完了する度毎に、例外ハンドラが呼
び出される。このルーチンでは、PE85がI/O割り
込み要求を認識するためにSTRを呼び出す。PE85
はSTRビットをリセットし、PE85に対して内部の
割り込み要求ラッチをセットする。このラッチは、現在
のPSWのI/Oマスクでマスクされる。もしこのマス
クが1で、より高い優先順位割り込み要求が保留状態で
ないなら、例外ハンドラが、I/O割り込み要求を保有
する、システム提供I/O割り込み要求ハンドラに制御
を渡す。
E14.プロセッサ・バス170(第11及び30図)
とプロセッサ・バス・コマンド プロセッサ・バス170は、全てのS/370チップ・
セット要素の間の共通接続である。論理的には、以下に
リストする全ての線はこのバスに属する。
とプロセッサ・バス・コマンド プロセッサ・バス170は、全てのS/370チップ・
セット要素の間の共通接続である。論理的には、以下に
リストする全ての線はこのバスに属する。
(1)プロセッサ・バス線(0−31+4パリティ)
は、一般的には、1サイクル中のアドレスとともにコマ
ンドを転送し、次に次のサイクルで関連データを転送す
るために使用される。バス使用の許可は、好適にはバス
・アダプタ154中にあるアービタによって与えられ
る。PE85は最も低い優先順位をもつ。バス許可PE
85を介して許可が与えられた時、PE85は次のサイ
クルで、適当なバス線上に4つの項目を配置する。記憶
アクセス動作のために、コマンドがプロセッサ・バス0
−7上に配置され、アドレスがプロセッサ・バス線80
31上に配置され、アクセス・キーがキー状況バス上に
配置され、それと同時に「Nコマンド有効」バスが立ち
上げられる。
は、一般的には、1サイクル中のアドレスとともにコマ
ンドを転送し、次に次のサイクルで関連データを転送す
るために使用される。バス使用の許可は、好適にはバス
・アダプタ154中にあるアービタによって与えられ
る。PE85は最も低い優先順位をもつ。バス許可PE
85を介して許可が与えられた時、PE85は次のサイ
クルで、適当なバス線上に4つの項目を配置する。記憶
アクセス動作のために、コマンドがプロセッサ・バス0
−7上に配置され、アドレスがプロセッサ・バス線80
31上に配置され、アクセス・キーがキー状況バス上に
配置され、それと同時に「Nコマンド有効」バスが立ち
上げられる。
(2)キー/状況バス(0−4+パリティ)は、記憶に
アクセス・キーを送ることと、状況レポートを取り戻
す、という2つの目的のために使用される。このとき、
S/370PSWアクセス・キーの4ビットと、PSW
制御モデル・ビット(BCまたはEC)と動的アドレス
変換ビットのANDの結果を表す第5のビットが転送さ
れる。
アクセス・キーを送ることと、状況レポートを取り戻
す、という2つの目的のために使用される。このとき、
S/370PSWアクセス・キーの4ビットと、PSW
制御モデル・ビット(BCまたはEC)と動的アドレス
変換ビットのANDの結果を表す第5のビットが転送さ
れる。
返された状況は、良好な動作の場合、ゼロであるべきで
ある。その非ゼロ状況は、大抵の場合PE85中のトラ
ップを引き起こす。アドレスされたバス・ユニット中の
制御ラッチをセットする「メッセージ」タイプコマンド
の場合、状況は期待されない。
ある。その非ゼロ状況は、大抵の場合PE85中のトラ
ップを引き起こす。アドレスされたバス・ユニット中の
制御ラッチをセットする「メッセージ」タイプコマンド
の場合、状況は期待されない。
(3)Nバス・ビジー線は、動作を、開始したそのサイ
クル中に完了することができない時にビジー表示を与え
る。Nバス・ビジーは、完了するのに2サイクル以上を
要する全てのコマンドの場合、Nコマンド有効信号と同
時に有効化される。
クル中に完了することができない時にビジー表示を与え
る。Nバス・ビジーは、完了するのに2サイクル以上を
要する全てのコマンドの場合、Nコマンド有効信号と同
時に有効化される。
コマンドの実行に2サイクル以上かかる場合にNバス・
ビジーを活動レベルに引き上げるのは、アドレスされた
バス・ユニットの役目である。Nバス・ビジーはまた、
アドレスされたバス・ユニットが対のサイクルの次のコ
マンドを受け入れることができないときにも、活動レベ
ルに引き上げられる。この規則には例外があって、もし
PE85がBSMアレイ主記憶162に記憶動作コマン
ドを発行するなら、PE85はNバス・ビジーを3サイ
クルの間活動化する。一般的には、Nバス・ビジーは、
コマンドの実行が続くよりも少なくとも1サイクル分活
動レベルにあることになる。
ビジーを活動レベルに引き上げるのは、アドレスされた
バス・ユニットの役目である。Nバス・ビジーはまた、
アドレスされたバス・ユニットが対のサイクルの次のコ
マンドを受け入れることができないときにも、活動レベ
ルに引き上げられる。この規則には例外があって、もし
PE85がBSMアレイ主記憶162に記憶動作コマン
ドを発行するなら、PE85はNバス・ビジーを3サイ
クルの間活動化する。一般的には、Nバス・ビジーは、
コマンドの実行が続くよりも少なくとも1サイクル分活
動レベルにあることになる。
(4)メモリ管理ユニット(MMU)ビジー信号は、キ
ャッシュ・コントローラ153から発生される。それ
は、PE85に、実行に2サイクル以上かかる、全ての
記憶動作の場合の状況及びデータの到来を示すために使
用される。
ャッシュ・コントローラ153から発生される。それ
は、PE85に、実行に2サイクル以上かかる、全ての
記憶動作の場合の状況及びデータの到来を示すために使
用される。
フェッチ動作は、主として、次のサイクルまたはされ以
降にデータを渡す。もしデータまたは状況が次のサイク
ルで渡されるなら、MMUビジー信号は、ダウン・レベ
ル(0)で不活性のままとどまる。MMUビジーは、1
に立上り、データ及び状況が実際にバス上に配置される
サイクルで0に戻る。
降にデータを渡す。もしデータまたは状況が次のサイク
ルで渡されるなら、MMUビジー信号は、ダウン・レベ
ル(0)で不活性のままとどまる。MMUビジーは、1
に立上り、データ及び状況が実際にバス上に配置される
サイクルで0に戻る。
記憶動作の間、PE85は(記憶動作の開始後)、次の
サイクルでキー状況バス上の状況を期待する。もしその
状況を次のサイクルで渡すことができるのなら、MMU
ビジーは不活性(0)のままとどまり、そうでないな
ら、MMUビジーは、1に立ち上がって、状況が渡され
るサイクルで0に戻る。
サイクルでキー状況バス上の状況を期待する。もしその
状況を次のサイクルで渡すことができるのなら、MMU
ビジーは不活性(0)のままとどまり、そうでないな
ら、MMUビジーは、1に立ち上がって、状況が渡され
るサイクルで0に戻る。
(5)線MISS IND上のキャッシュ・ミス表示子
は、キャッシュ・コントローラ153によって、DLA
Tミス、キー・ミス、またはアドレシング違反をPE8
5に示すために使用される。その表示は、その状況上で
も可用である情報の複写である。その線は、状況がキー
状況バス上に与えられているサイクルでは有効である
が、ミス表示線は、数ナノ秒前に活動化される。ミス表
示は、次のサイクルで、PE85を介してトラップを強
制する。
は、キャッシュ・コントローラ153によって、DLA
Tミス、キー・ミス、またはアドレシング違反をPE8
5に示すために使用される。その表示は、その状況上で
も可用である情報の複写である。その線は、状況がキー
状況バス上に与えられているサイクルでは有効である
が、ミス表示線は、数ナノ秒前に活動化される。ミス表
示は、次のサイクルで、PE85を介してトラップを強
制する。
(6)線バス許可PE85上の信号は、PE85に対し
てバスを使用する許可を与える。その信号は、アービタ
で発生する。PE85はその後、所望の動作のためのコ
マンドとアドレスを、許可信号が活動的になりNバス・
ビジーが活動的でないサイクルに続くサイクル中でバス
上に配置する。
てバスを使用する許可を与える。その信号は、アービタ
で発生する。PE85はその後、所望の動作のためのコ
マンドとアドレスを、許可信号が活動的になりNバス・
ビジーが活動的でないサイクルに続くサイクル中でバス
上に配置する。
(7)用途:線N_ATT_REQ上の注意要求信号
は、「センス」動作を実行するようにPE85に要求す
るために、(バス・アダプタ154などの)別のバス・
ユニットから発生する。PE85は、現在進行中の動作
(例えば命令実行)が完了すると直ぐにその要求に応じ
る。
は、「センス」動作を実行するようにPE85に要求す
るために、(バス・アダプタ154などの)別のバス・
ユニットから発生する。PE85は、現在進行中の動作
(例えば命令実行)が完了すると直ぐにその要求に応じ
る。
(8)線Nコマンド有効上のコマンド有効信号は、PE
85によって、プロセッサ・バス0−31上のビット・
パターン及び(全てのパリティ線を含む)キー状況バス
線0−4が有効であることを示すために使用される。そ
の線は、バス許可PE85が活動的になりNバス・ビジ
ーが非活動性になるサイクルに続くサイクルで活動性
(ダウン・レベル)になる。
85によって、プロセッサ・バス0−31上のビット・
パターン及び(全てのパリティ線を含む)キー状況バス
線0−4が有効であることを示すために使用される。そ
の線は、バス許可PE85が活動的になりNバス・ビジ
ーが非活動性になるサイクルに続くサイクルで活動性
(ダウン・レベル)になる。
(9)線アドレス・デクリメントは、PE85によっ
て、開始アドレスから下降位置(例えば、データ転送を
処理する10進データに必要とされる)まで進む記憶ア
クセス動作のために使用される。この信号は、Nコマン
ド有効が活動化されるのと同一のサイクルで活動化する
ことができる。
て、開始アドレスから下降位置(例えば、データ転送を
処理する10進データに必要とされる)まで進む記憶ア
クセス動作のために使用される。この信号は、Nコマン
ド有効が活動化されるのと同一のサイクルで活動化する
ことができる。
(10)線コマンド・キャンセル上のコマンド・キャン
セル信号は、PE85によって、記憶に対する既に開始
されているフェッチをキャンセルするために使用され
る。このことは、PE85が、要求されたデータの即時
的な使用を禁止する条件を検出する時にNコマンド有効
が活動的になったあとのサイクルで生じ得る。
セル信号は、PE85によって、記憶に対する既に開始
されているフェッチをキャンセルするために使用され
る。このことは、PE85が、要求されたデータの即時
的な使用を禁止する条件を検出する時にNコマンド有効
が活動的になったあとのサイクルで生じ得る。
好適な実施例では、よく知られたタイプの5つのグルー
プのコマンドがある。
プのコマンドがある。
すなわち、I/O記憶、MMU動作、メッセージ交換、
及び浮動小数点である。
及び浮動小数点である。
バス171の制御を要求するバス・ユニット(PE8
5、アダプタ154またはキャッシュ・コントローラ1
53)は、バス上にそのコマンドをセットする。CPU
記憶及びI/O記憶コマンドの場合、バス・ユニットは
また、キー状況バス上のアクセス・キー及び動的アドレ
ス変換ビットをもセットする。そのコマンドの完了後、
状況がその同一バス上で、要求側バス・ユニットに戻さ
れる。
5、アダプタ154またはキャッシュ・コントローラ1
53)は、バス上にそのコマンドをセットする。CPU
記憶及びI/O記憶コマンドの場合、バス・ユニットは
また、キー状況バス上のアクセス・キー及び動的アドレ
ス変換ビットをもセットする。そのコマンドの完了後、
状況がその同一バス上で、要求側バス・ユニットに戻さ
れる。
アダプタ154は、CPU記憶コマンド及びI/O記憶
コマンドを発行するが、PE85は、CPU記憶コマン
ドした発行することができない。これらのコマンド・グ
ループは、次のとおりである。
コマンドを発行するが、PE85は、CPU記憶コマン
ドした発行することができない。これらのコマンド・グ
ループは、次のとおりである。
(2)内部オブジェクト領域(IOA)参照 あるCPUメモリ・コマンドは、IOA記憶アドレス・
チェックへのアクセスを許容する。
チェックへのアクセスを許容する。
I/O記憶コマンドは、S/370主記憶アドレスをチ
ェックすることなく、キャッシュ・コントローラ153
中で実行される。このチェックは、STC1 155中
で実行される。CPU記憶コマンドは、実行のためコン
トローラ153へと指向され、1バイト・コマンド・フ
ィールドと、3バイト実または仮想アドレス・フィール
ドをもつ。これらのコマンド・フィールド・ビットは、
次のとおりである。
ェックすることなく、キャッシュ・コントローラ153
中で実行される。このチェックは、STC1 155中
で実行される。CPU記憶コマンドは、実行のためコン
トローラ153へと指向され、1バイト・コマンド・フ
ィールドと、3バイト実または仮想アドレス・フィール
ドをもつ。これらのコマンド・フィールド・ビットは、
次のとおりである。
CPU記憶コマンドの例は、次のとおりである。
(1)実アドレスをもつ記憶162に対する64バイト
までのフェッチまたは記憶を行うための、実Nバイト・
フェッチ(10111nnn)/記憶(10011nn
n) (2)実アドレスをもつキャッシュに対する4バイトま
での読取/書込を行うための、キャッシュ実Nバイト・
フェッチ(101010nn)/記憶(100010n
n) (3)実アドレス(100000nn)をもつIOAに
対する4バイトまでの読取/書込を行うための、キャッ
シュ実Nバイト・フェッチ(101011nn)/記憶
(100011nn) (4)仮想アドレスをもつキャッシュに対する4バイト
までの読取/書込を行うための、キャッシュ仮想Nバイ
ト・フェッチ(101000nn)/記憶(10000
0nn) I/O記憶コマンドは、アダプタ154によって初期化
され、キャッシュ・コントローラ153へと向けられ
る。それらは、長さ1乃至64バイトのデータ・ストリ
ングをアドレス降順に転送する。その32ビット・コマ
ンド・フォーマットは、3つの下位バイトに実アドレス
を含み、その高位バイトは、最高位ビット“0”をも
ち、次の高位ビットがフェッチまたは記憶動作を決定
し、残りの6ビットがデータ転送の長さ(1乃至64バ
イト)を決定する。データ・ストリングは、バス上で位
置整列を要することがある最初及び最後の転送を除いて
はワード境界上に転送される。
までのフェッチまたは記憶を行うための、実Nバイト・
フェッチ(10111nnn)/記憶(10011nn
n) (2)実アドレスをもつキャッシュに対する4バイトま
での読取/書込を行うための、キャッシュ実Nバイト・
フェッチ(101010nn)/記憶(100010n
n) (3)実アドレス(100000nn)をもつIOAに
対する4バイトまでの読取/書込を行うための、キャッ
シュ実Nバイト・フェッチ(101011nn)/記憶
(100011nn) (4)仮想アドレスをもつキャッシュに対する4バイト
までの読取/書込を行うための、キャッシュ仮想Nバイ
ト・フェッチ(101000nn)/記憶(10000
0nn) I/O記憶コマンドは、アダプタ154によって初期化
され、キャッシュ・コントローラ153へと向けられ
る。それらは、長さ1乃至64バイトのデータ・ストリ
ングをアドレス降順に転送する。その32ビット・コマ
ンド・フォーマットは、3つの下位バイトに実アドレス
を含み、その高位バイトは、最高位ビット“0”をも
ち、次の高位ビットがフェッチまたは記憶動作を決定
し、残りの6ビットがデータ転送の長さ(1乃至64バ
イト)を決定する。データ・ストリングは、バス上で位
置整列を要することがある最初及び最後の転送を除いて
はワード境界上に転送される。
MMUコマンドは、キャッシュ・コントローラ153
と、DLAT、ACB、ディレクトリを含むそのレジス
タを制御するために使用される。
と、DLAT、ACB、ディレクトリを含むそのレジス
タを制御するために使用される。
メッセージ・コマンドは、バス151に接続されたバス
・ユニットの間でメッセージを転送するために使用され
る。
・ユニットの間でメッセージを転送するために使用され
る。
E15.S/370記憶管理ユニット81 (1)キャッシュ・コントローラ153 キャッシュ・コントローラ153(第31図)は、キャ
ッシュ記憶340と、アドレシング及び比較論理34
7、348と、フェッチ整列器343と、高速アドレス
変換のためのディレクトリ・ルックアサイド・テーブル
(DLAT)341を有する。キャッシュ・コントロー
ラ153は、プロセッサ・バス170から仮想アドレス
及び記憶コマンドを受け入れ、それがキャッシュ記憶3
40を介する要求を満足することができないとき、マル
チプレクサ349及びSTCバス157を介してフェッ
チ及び記憶コマンドを記憶制御インターフェース155
(第11図)に転送する。
ッシュ記憶340と、アドレシング及び比較論理34
7、348と、フェッチ整列器343と、高速アドレス
変換のためのディレクトリ・ルックアサイド・テーブル
(DLAT)341を有する。キャッシュ・コントロー
ラ153は、プロセッサ・バス170から仮想アドレス
及び記憶コマンドを受け入れ、それがキャッシュ記憶3
40を介する要求を満足することができないとき、マル
チプレクサ349及びSTCバス157を介してフェッ
チ及び記憶コマンドを記憶制御インターフェース155
(第11図)に転送する。
DLAT314は、仮想ページ・アドレスの実ページ・
アドレスへの高速変換を行う。それの2×32エントリ
は、64個の予め変換されたページ・アドレスを保持す
る。DLAT314は、2路セット連想的アドレシング
・スキームを使用してアクセスされる。その仮想ページ
・サイズは、好適には4KBである。DLATミスの場
合、PE85が割り込まれ、S/370主記憶162中
のセグメント及びページ・テーブル(図示しない)を使
用してよく知られた方法でマイクロプログラムによって
仮想アドレス変換が行なわれる。DLAT341は、次
に、記憶からフェッチされキャッシュ中に配置された情
報の新しい仮想及び実ページ・アドレスを反映するよう
に更新される。記憶キーのコピーがS/370キー記憶
からフェッチされてDLATエントリ中に入れられる。
アドレスへの高速変換を行う。それの2×32エントリ
は、64個の予め変換されたページ・アドレスを保持す
る。DLAT314は、2路セット連想的アドレシング
・スキームを使用してアクセスされる。その仮想ページ
・サイズは、好適には4KBである。DLATミスの場
合、PE85が割り込まれ、S/370主記憶162中
のセグメント及びページ・テーブル(図示しない)を使
用してよく知られた方法でマイクロプログラムによって
仮想アドレス変換が行なわれる。DLAT341は、次
に、記憶からフェッチされキャッシュ中に配置された情
報の新しい仮想及び実ページ・アドレスを反映するよう
に更新される。記憶キーのコピーがS/370キー記憶
からフェッチされてDLATエントリ中に入れられる。
キャッシュ・ディレクトリ342をもつ8KBキャッシ
ュ340は、プロセッサ性能を著しく改善する高速バッ
ファを与える。データ及びディレクトリ・アレイは、4
つの区画に区分される。キャッシュ中の各区画は、25
6×8Bで構成されている。キャッシュ340からデー
タをフェッチする場合、DLAT341と、キャッシュ
・ディレクトリ342と、キャッシュ340を同時にア
ドレスするために、仮想アドレス中のバイト・オフセッ
トが使用される。キー制御保護チェックは、選択された
DLATエントリ中の記憶キーを使用して比較回路34
5によって実行される。4×8Bのデータがキャッシュ
340の出力340aにラッチ・アップされる。そし
て、もし要求されたデータがキャッシュ340中にある
なら、適当なデータをフェッチ整列器343中にゲート
するために、晩期選択信号が使用される。
ュ340は、プロセッサ性能を著しく改善する高速バッ
ファを与える。データ及びディレクトリ・アレイは、4
つの区画に区分される。キャッシュ中の各区画は、25
6×8Bで構成されている。キャッシュ340からデー
タをフェッチする場合、DLAT341と、キャッシュ
・ディレクトリ342と、キャッシュ340を同時にア
ドレスするために、仮想アドレス中のバイト・オフセッ
トが使用される。キー制御保護チェックは、選択された
DLATエントリ中の記憶キーを使用して比較回路34
5によって実行される。4×8Bのデータがキャッシュ
340の出力340aにラッチ・アップされる。そし
て、もし要求されたデータがキャッシュ340中にある
なら、適当なデータをフェッチ整列器343中にゲート
するために、晩期選択信号が使用される。
記憶動作の場合、バイト単位の部分記憶が実行される。
キャッシュ・ミスの場合、キャッシュ・コントローラ1
53は要求された64Bキャッシュ・ラインをバースト
・モードでフェッチするためにBSMコマンドを自動的
にセット・アップする。もし新しいキャッシュ・ライン
によって置換すべきキャッシュ・ラインが、ロードされ
て以来変更されていたなら、新しいキャッシュ・ライン
がロードされる前に、記憶162に対するキャッシュ・
ライン・キャストアウト動作が開始される。I/Oデー
タは、キャッシュ・ライン・キャストアウト及びロード
動作を決して引き起こさない。記憶162からフェッチ
すべきI/Oデータは、主記憶162とキャッシュ記憶
340の両方の機構にアクセスすることによって検索さ
れる。そして、キャッシュ・ヒットが生じると、メモリ
動作がキャンセルされて、キャッシュ記憶がデータを供
給する。もしI/Oデータがキャッシュ中にないなら、
それはメモリから直接フェッチされるけれども、キャッ
シュ・ラインは置き換えられない。記憶中に格納すべき
I/Oデータは、もしアドレスされたラインが既にキャ
ッシュ中にあるならキャッシュ340中に入れられ、そ
うでないなら直接記憶162中に入れられる。
53は要求された64Bキャッシュ・ラインをバースト
・モードでフェッチするためにBSMコマンドを自動的
にセット・アップする。もし新しいキャッシュ・ライン
によって置換すべきキャッシュ・ラインが、ロードされ
て以来変更されていたなら、新しいキャッシュ・ライン
がロードされる前に、記憶162に対するキャッシュ・
ライン・キャストアウト動作が開始される。I/Oデー
タは、キャッシュ・ライン・キャストアウト及びロード
動作を決して引き起こさない。記憶162からフェッチ
すべきI/Oデータは、主記憶162とキャッシュ記憶
340の両方の機構にアクセスすることによって検索さ
れる。そして、キャッシュ・ヒットが生じると、メモリ
動作がキャンセルされて、キャッシュ記憶がデータを供
給する。もしI/Oデータがキャッシュ中にないなら、
それはメモリから直接フェッチされるけれども、キャッ
シュ・ラインは置き換えられない。記憶中に格納すべき
I/Oデータは、もしアドレスされたラインが既にキャ
ッシュ中にあるならキャッシュ340中に入れられ、そ
うでないなら直接記憶162中に入れられる。
4KBキー記憶344は、16MBメモリのための記憶
キーを保持する。そのキー記憶し、4K×8に構成され
たアレイである。各バイトは、1つの記憶キーを保持す
る。各DLATエントリは、その4KBブロック・アド
レスに関連付けられた記憶キーのコピーを保持する。そ
のことは、反復的にページにアクセスする間のキー記憶
に対するアクセスの回数を著しく低減させる。記憶キー
割当てにおける変更は、キー記憶と、キャッシュ記憶に
おけるコピーの両方に影響を与える。レシーバ回路35
5を介してプロッセサ・パス170からキャッシュ・コ
ントローラ153が受け取ったコマンド、データ及びア
ドレスは、コマンド、データ及びアドレス・レジスタ3
501、351及び352にそれぞれ格納される。アド
レス・レジスタ347は、関連するS/370プロッセ
サ要素PE85のための有効アドレスの範囲を記憶す
る。比較論理348は、受信したアドレスの有効性を検
証する。S/370アドレス比較論理348は、PE8
5及びI/Oバス・アダプタ154の両方からのアドレ
スを処理する。
キーを保持する。そのキー記憶し、4K×8に構成され
たアレイである。各バイトは、1つの記憶キーを保持す
る。各DLATエントリは、その4KBブロック・アド
レスに関連付けられた記憶キーのコピーを保持する。そ
のことは、反復的にページにアクセスする間のキー記憶
に対するアクセスの回数を著しく低減させる。記憶キー
割当てにおける変更は、キー記憶と、キャッシュ記憶に
おけるコピーの両方に影響を与える。レシーバ回路35
5を介してプロッセサ・パス170からキャッシュ・コ
ントローラ153が受け取ったコマンド、データ及びア
ドレスは、コマンド、データ及びアドレス・レジスタ3
501、351及び352にそれぞれ格納される。アド
レス・レジスタ347は、関連するS/370プロッセ
サ要素PE85のための有効アドレスの範囲を記憶す
る。比較論理348は、受信したアドレスの有効性を検
証する。S/370アドレス比較論理348は、PE8
5及びI/Oバス・アダプタ154の両方からのアドレ
スを処理する。
アドレス比較境界(ACB)レジスタ353比較機能
は、カスタマ領域を意図しているS/370主記憶参照
がIOAをアドレスしないことを保証する。ACBレジ
スタ353は、S/370記憶162中の予約IOA領
域と、非予約領域の間の分割(境界)線を記憶する。S
/370記憶に対するめいめいのアクセスは、比較論理
354が受信アドレスをACB値と比較する動作をもた
らす。
は、カスタマ領域を意図しているS/370主記憶参照
がIOAをアドレスしないことを保証する。ACBレジ
スタ353は、S/370記憶162中の予約IOA領
域と、非予約領域の間の分割(境界)線を記憶する。S
/370記憶に対するめいめいのアクセスは、比較論理
354が受信アドレスをACB値と比較する動作をもた
らす。
(2)STCI155(第32A及び32B図) (A)序論 記憶制御インターフェース(STCI)155は、S/
370チップ・セット150を、バス論理178及びシ
ステム・バス30(第1図)を介して、S/882重化
フォールト・トレラント記憶16、18に接続する。記
憶制御インターフェース(STCI)155は、コマン
ド毎の1乃至64バイトからのデータ転送を決定する全
てのプロセッサ及びI/O記憶/フェッチ・コマンドを
サポートする。全てのECC、リフレッシュ、メモリ初
期化及び構成、再試行などは、S/88プロッセサ62
及び記憶16、18によって処理される。STCI15
5の詳細なデータ・フローが第32A及び32B図に示
されている。
370チップ・セット150を、バス論理178及びシ
ステム・バス30(第1図)を介して、S/882重化
フォールト・トレラント記憶16、18に接続する。記
憶制御インターフェース(STCI)155は、コマン
ド毎の1乃至64バイトからのデータ転送を決定する全
てのプロセッサ及びI/O記憶/フェッチ・コマンドを
サポートする。全てのECC、リフレッシュ、メモリ初
期化及び構成、再試行などは、S/88プロッセサ62
及び記憶16、18によって処理される。STCI15
5の詳細なデータ・フローが第32A及び32B図に示
されている。
STCI155は、記憶管理ユニット83中の相手ST
CI155a(図示しない)と、相手ユニット23(第
8図中の)対応STCI対とともに、各STCI中の論
理408(第23B図)などの調停によって、システム
・バス構造30の制御を求めて調停する。STCI15
5は第7図から見て取れるようにモジュール9のI/O
コントローラ及び他のCPU25、27及び29、31
に対抗して調停するのみならず、I/O機能または慣用
的S/88機能のためにバスの制御を要求し得る関連S
/88プロッセサ62(及びそのプロセッサの対及び第
8図のCPU21、23中の相手プロッセサ)に対抗し
て調停しなくてはならない。
CI155a(図示しない)と、相手ユニット23(第
8図中の)対応STCI対とともに、各STCI中の論
理408(第23B図)などの調停によって、システム
・バス構造30の制御を求めて調停する。STCI15
5は第7図から見て取れるようにモジュール9のI/O
コントローラ及び他のCPU25、27及び29、31
に対抗して調停するのみならず、I/O機能または慣用
的S/88機能のためにバスの制御を要求し得る関連S
/88プロッセサ62(及びそのプロセッサの対及び第
8図のCPU21、23中の相手プロッセサ)に対抗し
て調停しなくてはならない。
しかし、調停論理は、それ以外の点では、今から説明す
るプロッセサ及びI/Oボードのモジュール・バックパ
ネル・スロット位置に主として基づき、前述の米国特許
第4453215号に記載されているものとほぼ類似し
ている。調停フェーズの間に、バス・マスタとなる能力
をもちバス・サイクルを開始する準備ができているプロ
セッサ・モジュール9のどのユニットも、バス構造の使
用を求めて調停する。そのユニットは、バス・サイクル
要求信号を立ち上げ、それと同時に調停ネットワークに
よって、やはりバス・サイクル要求を主張しているより
高い優先順位のユニットがないかどうかをチェックす
る。調停フェーズの間にバス構造に対するアクセスを得
ることに成功したユニットまたは対ユニットがバス・マ
スタと称され、次のクロック・フェーズで転送サイクル
を開始させる。各メモリ・ユニット16、18は、決し
てマスタとはならず、調停はしない。サイクルの決定フ
ェーズの間に、そのサイクルのバス・マスタであると判
断されたユニットが、サイクル決定または機能信号のセ
ットを発生することによりサイクルのタイプを決定す
る。バス・マスタはまた、アドレス信号を出して、アド
レス・パリティ線上にそのアドレス及び機能信号のため
の偶パリティを配置する。プロセッサ・モジュールの全
てのユニットは、その内部動作状態に拘らず、機能及び
アドレス信号を運ぶバス導体上の信号を常に受け取るけ
れども、周辺制御ユニットは、パリティ信号を受け取る
ことなく動作することができる。決定されているサイク
ルは、もしバス待機信号がその時点で出されたなら取り
消される。
るプロッセサ及びI/Oボードのモジュール・バックパ
ネル・スロット位置に主として基づき、前述の米国特許
第4453215号に記載されているものとほぼ類似し
ている。調停フェーズの間に、バス・マスタとなる能力
をもちバス・サイクルを開始する準備ができているプロ
セッサ・モジュール9のどのユニットも、バス構造の使
用を求めて調停する。そのユニットは、バス・サイクル
要求信号を立ち上げ、それと同時に調停ネットワークに
よって、やはりバス・サイクル要求を主張しているより
高い優先順位のユニットがないかどうかをチェックす
る。調停フェーズの間にバス構造に対するアクセスを得
ることに成功したユニットまたは対ユニットがバス・マ
スタと称され、次のクロック・フェーズで転送サイクル
を開始させる。各メモリ・ユニット16、18は、決し
てマスタとはならず、調停はしない。サイクルの決定フ
ェーズの間に、そのサイクルのバス・マスタであると判
断されたユニットが、サイクル決定または機能信号のセ
ットを発生することによりサイクルのタイプを決定す
る。バス・マスタはまた、アドレス信号を出して、アド
レス・パリティ線上にそのアドレス及び機能信号のため
の偶パリティを配置する。プロセッサ・モジュールの全
てのユニットは、その内部動作状態に拘らず、機能及び
アドレス信号を運ぶバス導体上の信号を常に受け取るけ
れども、周辺制御ユニットは、パリティ信号を受け取る
ことなく動作することができる。決定されているサイク
ルは、もしバス待機信号がその時点で出されたなら取り
消される。
応答フェーズの間に、ビジーであるシステムのアドレス
されたユニットは、そのサイクルを取り消すためにバス
・ビジー信号を発生することができる。例えば、メモリ
・ユニットは、ビジーである時か、リフレッシュ・サイ
クルの間にアドレスされたならバス・ビジー信号を発生
することができる。応答フェーズの間に発生されたバス
・エラー信号は、そのエラーがサイクルの決定フェーズ
の間にアドレスとともにあったかもしれないのでそのサ
イクルを取り消すことになる。データは、読取と書込の
両方のサイクルについて、データ転送サイクルの間にバ
スA及びB上で転送される。このことにより、システム
が、データ線の使用を求める再調停を依頼したり、ソー
ス・ユニットまたは宛先ユニットに関連するタグ・デー
タをもつ必要なくバス構造上で読取サイクルと書込サイ
クルの混合をパイプラインすることができる。
されたユニットは、そのサイクルを取り消すためにバス
・ビジー信号を発生することができる。例えば、メモリ
・ユニットは、ビジーである時か、リフレッシュ・サイ
クルの間にアドレスされたならバス・ビジー信号を発生
することができる。応答フェーズの間に発生されたバス
・エラー信号は、そのエラーがサイクルの決定フェーズ
の間にアドレスとともにあったかもしれないのでそのサ
イクルを取り消すことになる。データは、読取と書込の
両方のサイクルについて、データ転送サイクルの間にバ
スA及びB上で転送される。このことにより、システム
が、データ線の使用を求める再調停を依頼したり、ソー
ス・ユニットまたは宛先ユニットに関連するタグ・デー
タをもつ必要なくバス構造上で読取サイクルと書込サイ
クルの混合をパイプラインすることができる。
フルワード転送は、UDS及びLDS(上下のデータ・
ストローブ)信号の両方を出すことによって達成され
る。半ワードまたはバイト転送は、これらのストローブ
信号のうちの1つだけを出すことによって達成される転
送として定義される。書込転送は、単にどのストローブ
信号も出さないようにすることによって、バス・マスタ
によってそのサイクルの初期に取り消すことができる。
読取られるスレーブ・ユニットは、データとともにスト
ローブ信号を出さなくてはならない。ストローブ信号
は、バス・データ・パリティの計算に含まれる。
ストローブ)信号の両方を出すことによって達成され
る。半ワードまたはバイト転送は、これらのストローブ
信号のうちの1つだけを出すことによって達成される転
送として定義される。書込転送は、単にどのストローブ
信号も出さないようにすることによって、バス・マスタ
によってそのサイクルの初期に取り消すことができる。
読取られるスレーブ・ユニットは、データとともにスト
ローブ信号を出さなくてはならない。ストローブ信号
は、バス・データ・パリティの計算に含まれる。
データ転送フェーズの間に検出されたエラーは、そのエ
ラーを検出するユニットに、最初のデータ後サイクルで
ある次のタイミング・フェーズでバス・エラー信号を出
させる。周辺制御ユニットは、データを使用する前にエ
ラーが生じたかどうかを調べるために待機する。しか
し、システムの中央処理ユニット21及び主要メモリ・
ユニット16は、受け取るや否やそのデータを使用し、
エラーの場合、事実上バックアップして、正しいデータ
を待つ。データ後サイクルの間のバス・エラー信号の発
生は、転送フェーズをして、転送サイクルの次の第6の
フェーズを繰り返させる。このことは、この第2のデー
タ後、すなわち第6のフェーズの間にバス構造上にデー
タを伝送したであろうところのサイクルを取り消すこと
になる。
ラーを検出するユニットに、最初のデータ後サイクルで
ある次のタイミング・フェーズでバス・エラー信号を出
させる。周辺制御ユニットは、データを使用する前にエ
ラーが生じたかどうかを調べるために待機する。しか
し、システムの中央処理ユニット21及び主要メモリ・
ユニット16は、受け取るや否やそのデータを使用し、
エラーの場合、事実上バックアップして、正しいデータ
を待つ。データ後サイクルの間のバス・エラー信号の発
生は、転送フェーズをして、転送サイクルの次の第6の
フェーズを繰り返させる。このことは、この第2のデー
タ後、すなわち第6のフェーズの間にバス構造上にデー
タを伝送したであろうところのサイクルを取り消すこと
になる。
示されているシステムの動作の正常バックプレーン・モ
ードは、全てのユニットが服従両(Obey Bot
h)モードにある時であり、そのときAバスとBバスの
両方にエラーがないように見える。例えば、Aバス上の
エラーに応答して、全てのユニットが同期的に服従B
(ObeyB)モードに切り替わる。モジュール9は、
S/88中央処理ユニット上で走る監視ソフトウェアに
よって動作の服従両モードに戻る。
ードは、全てのユニットが服従両(Obey Bot
h)モードにある時であり、そのときAバスとBバスの
両方にエラーがないように見える。例えば、Aバス上の
エラーに応答して、全てのユニットが同期的に服従B
(ObeyB)モードに切り替わる。モジュール9は、
S/88中央処理ユニット上で走る監視ソフトウェアに
よって動作の服従両モードに戻る。
動作の服従B及び服従A(ObeyA)モードの両方に
おいて、AバスとBバスの両方がシステム・ユニットに
よって駆動され、全てのユニットは依然として完全エラ
ー・チェックを実行する。服従両モードの動作との違い
は、ユニットが、データを反復させる必要なく、またサ
イクルを打ち切ることなく、服従していない1つのバス
上の更なるエラーを単にログするということだけであ
る。しかし、服従バス上のバス・エラー信号は、上述の
ようにして処理され、全てのユニットをしてもう一方の
バスに服従するようにスイッチさせる。
おいて、AバスとBバスの両方がシステム・ユニットに
よって駆動され、全てのユニットは依然として完全エラ
ー・チェックを実行する。服従両モードの動作との違い
は、ユニットが、データを反復させる必要なく、またサ
イクルを打ち切ることなく、服従していない1つのバス
上の更なるエラーを単にログするということだけであ
る。しかし、服従バス上のバス・エラー信号は、上述の
ようにして処理され、全てのユニットをしてもう一方の
バスに服従するようにスイッチさせる。
(B)システム・バス・フエーズ 第33図は、モジュール9のための、バス構造30上の
4つのパイプラインされた多重フェーズ転送サイクルを
もつ上述の動作を表す図である。波形56a及び56b
は、第33図の一番上にラベルされている1乃至21と
番号付けされた21個の連続的タイミング・フェーズの
ために、Xバス46にクロック38が印加するS/88
マスター・クロック及びマスター同期信号を示す。波形
58bで表される、バス構造上の調停信号は、図示され
ている21のサイクルのおのおのにおいて、#1、#
2、#3…#21のサイクル番号で記されている新しい
サイクルを求める調停を開始するために、各タイミング
・フェーズの開始時点で変化する。第33図は、波形5
8bでサイクル決定信号を表す。各サイクル毎のサイク
ル決定信号は、そのサイクルのための調停信号よりも1
クロック・サイクル後に発生する。第33図はさらに、
ビジー、待機、データ、Aバス・エラー、及びBバス・
エラー信号を示している。第33図の最下行は、システ
ムが動作するバックプレーン・モードをあらわし、異な
るモードの間の転移を示す。
4つのパイプラインされた多重フェーズ転送サイクルを
もつ上述の動作を表す図である。波形56a及び56b
は、第33図の一番上にラベルされている1乃至21と
番号付けされた21個の連続的タイミング・フェーズの
ために、Xバス46にクロック38が印加するS/88
マスター・クロック及びマスター同期信号を示す。波形
58bで表される、バス構造上の調停信号は、図示され
ている21のサイクルのおのおのにおいて、#1、#
2、#3…#21のサイクル番号で記されている新しい
サイクルを求める調停を開始するために、各タイミング
・フェーズの開始時点で変化する。第33図は、波形5
8bでサイクル決定信号を表す。各サイクル毎のサイク
ル決定信号は、そのサイクルのための調停信号よりも1
クロック・サイクル後に発生する。第33図はさらに、
ビジー、待機、データ、Aバス・エラー、及びBバス・
エラー信号を示している。第33図の最下行は、システ
ムが動作するバックプレーン・モードをあらわし、異な
るモードの間の転移を示す。
第33図をさらに参照すると、タイミング・フェーズ番
号1の間に、モジュール9は、サイクル#1のためのサ
イクル調停信号を発生する。指定されているように、シ
ステムは、服従両モードで動作している。フェーズ1の
サイクル調停の間に決定されたバス・マスタ・ユニット
が、サイクル決定信号波形58b上の指標#1で指定さ
れるように、タイミング・フェーズ2の間に実行すべき
サイクルを決定する。また、タイミング・フェーズ2で
も、第2のサイクル、すなわちサイクル#2を求める調
停が実行される。
号1の間に、モジュール9は、サイクル#1のためのサ
イクル調停信号を発生する。指定されているように、シ
ステムは、服従両モードで動作している。フェーズ1の
サイクル調停の間に決定されたバス・マスタ・ユニット
が、サイクル決定信号波形58b上の指標#1で指定さ
れるように、タイミング・フェーズ2の間に実行すべき
サイクルを決定する。また、タイミング・フェーズ2で
も、第2のサイクル、すなわちサイクル#2を求める調
停が実行される。
タイミング・フェーズ3の間にはサイクル#1に大して
はバス構造上に応答信号がなく、このことは、このサイ
クルが、タイミング・フェーズ4の間に生じ、データ波
形58b上で記号#1で指定されているデータ転送を行
う準備ができていることを示す。また、タイミング・フ
ェーズ3の間に、サイクル#2のサイクル決定が実行さ
れ、更なるサイクル#3の調停が実行される。
はバス構造上に応答信号がなく、このことは、このサイ
クルが、タイミング・フェーズ4の間に生じ、データ波
形58b上で記号#1で指定されているデータ転送を行
う準備ができていることを示す。また、タイミング・フ
ェーズ3の間に、サイクル#2のサイクル決定が実行さ
れ、更なるサイクル#3の調停が実行される。
タイミング・フェーズ4では、サイクル#1のデータ転
移が行なわれ、サイクル#3の決定が実行される。ま
た、波形58fで示されるように、バスAエラーがこの
タイミング・フェーズの間に出される。このエラー信号
は、サイクル#2を取り消し、そのモジュール中の全て
のユニットを服従Bモードにスイッチする。タイミング
・フェーズ4のバスAエラー信号は、前のタイミング・
フェーズ3において、システムの少なくとも1つのユニ
ットがAバス42からの信号に関連してエラーを検出し
たことを示す。そのエラーは、タイミング・フェーズ3
の間の波形58のデータの欠如によって示されるよう
に、バス構造上にデータがないときに生じたものであ
り、それゆえ、データ転移を繰り返す必要はない。
移が行なわれ、サイクル#3の決定が実行される。ま
た、波形58fで示されるように、バスAエラーがこの
タイミング・フェーズの間に出される。このエラー信号
は、サイクル#2を取り消し、そのモジュール中の全て
のユニットを服従Bモードにスイッチする。タイミング
・フェーズ4のバスAエラー信号は、前のタイミング・
フェーズ3において、システムの少なくとも1つのユニ
ットがAバス42からの信号に関連してエラーを検出し
たことを示す。そのエラーは、タイミング・フェーズ3
の間の波形58のデータの欠如によって示されるよう
に、バス構造上にデータがないときに生じたものであ
り、それゆえ、データ転移を繰り返す必要はない。
タイミング・フェーズ5の間に、服従Bモードで動作す
るシステムによって第5のサイクルが調停され、サイク
ル#4の機能が調停され、バス構造上には、サイクル#
3のための応答が存在しない。従って、そのサイクル
は、タイミング・フェーズ6の間にデータ転送へと進
む。またタイミング・フェーズ6で、波形58dで示す
ようにバス待機が出され、これはサイクル#4と関連す
る。その効果は、そのサイクルを別のタイミング・フェ
ーズの間延長し、サイクル#5を取り消すことである。
るシステムによって第5のサイクルが調停され、サイク
ル#4の機能が調停され、バス構造上には、サイクル#
3のための応答が存在しない。従って、そのサイクル
は、タイミング・フェーズ6の間にデータ転送へと進
む。またタイミング・フェーズ6で、波形58dで示す
ようにバス待機が出され、これはサイクル#4と関連す
る。その効果は、そのサイクルを別のタイミング・フェ
ーズの間延長し、サイクル#5を取り消すことである。
新しいサイクル#7は、タイミング・フェーズ#7で調
停され、その決定動作がサイクル#6のために進行す
る。タイミング・フェーズ8では、サイクル#4のため
のデータが転送のためにデータ・バスに印加される。ま
た、タイミング・フェーズ8で、ビジー・バス信号が出
され、この信号は、サイクル#6の応答の一部であっ
て、そのサイクルを取り消す。
停され、その決定動作がサイクル#6のために進行す
る。タイミング・フェーズ8では、サイクル#4のため
のデータが転送のためにデータ・バスに印加される。ま
た、タイミング・フェーズ8で、ビジー・バス信号が出
され、この信号は、サイクル#6の応答の一部であっ
て、そのサイクルを取り消す。
別のバス・エラーが出されるまでに、タイミング・フェ
ーズ9中の調停及び決定動作がそのパターンに続く。シ
ステムは既に服従Bモードで動作しており、従って、こ
の信号に応答して単にエラーをログするだけである。
ーズ9中の調停及び決定動作がそのパターンに続く。シ
ステムは既に服従Bモードで動作しており、従って、こ
の信号に応答して単にエラーをログするだけである。
タイミング・フェーズ10中で出されタイミング・フェ
ーズ11へと続くバス待機信号は、サイクル#8をさら
に2期間フェーズ延長し、従って、そのサイクルのため
のデータが、指定されているように、タイミング・フェ
ーズ13で転送される。これらのフェーズの間に出され
たバス待機信号はまた、示されているように、サイクル
#9及び#10を取り消しする。待機信号によるサイク
ル#8の延長におけるフェーズ10、11、または12
の間に出されたビジー信号は、サイクル#8を取り消す
ことになる。尚、サイクル#7のたるのデータ転送は、
タイミング・フェーズ10において、このタイミング・
フェーズの間の待機及びビジー導体上の信号とは独立に
行なわれる。
ーズ11へと続くバス待機信号は、サイクル#8をさら
に2期間フェーズ延長し、従って、そのサイクルのため
のデータが、指定されているように、タイミング・フェ
ーズ13で転送される。これらのフェーズの間に出され
たバス待機信号はまた、示されているように、サイクル
#9及び#10を取り消しする。待機信号によるサイク
ル#8の延長におけるフェーズ10、11、または12
の間に出されたビジー信号は、サイクル#8を取り消す
ことになる。尚、サイクル#7のたるのデータ転送は、
タイミング・フェーズ10において、このタイミング・
フェーズの間の待機及びビジー導体上の信号とは独立に
行なわれる。
タイミング・フェーズ11、12及び14の間に生じる
更なるバスAエラー信号もまた、システムに対して、ロ
グする以外の影響を及ぼさない。というのは、システム
は既に服従Bモードで動作しているからである。タイミ
ング・フェーズ14の間に出された待機信号は、サイク
ル#13を打ち消す。また、それは、サイクル#12を
延長し、しかし、サイクル#12は、タイミング・フェ
ーズ14の間に出されるビジー信号によって打ち消され
る。サイクル#11のためのデータは、タイミング・フ
ェーズ14の間に通常シーケンスで転送される。更に、
サイクル#14のデータ転送は、タイミング・フェーズ
17で行なわれる。
更なるバスAエラー信号もまた、システムに対して、ロ
グする以外の影響を及ぼさない。というのは、システム
は既に服従Bモードで動作しているからである。タイミ
ング・フェーズ14の間に出された待機信号は、サイク
ル#13を打ち消す。また、それは、サイクル#12を
延長し、しかし、サイクル#12は、タイミング・フェ
ーズ14の間に出されるビジー信号によって打ち消され
る。サイクル#11のためのデータは、タイミング・フ
ェーズ14の間に通常シーケンスで転送される。更に、
サイクル#14のデータ転送は、タイミング・フェーズ
17で行なわれる。
タイミング・フェーズ19では、タイミング・フェーズ
18のサイクル#15データ転送に直ぐ続いて、バスB
エラーが出される。このエラー信号は、サイクル#17
を取り消し、これは応答フェーズにあり、サイクル#1
5のためのデータ転送の反復を開始する。その反復転送
は、サイクル#20の間に行なわれる。さらに、このエ
ラー信号は、モジュールを服従Aモードに切り換える。
18のサイクル#15データ転送に直ぐ続いて、バスB
エラーが出される。このエラー信号は、サイクル#17
を取り消し、これは応答フェーズにあり、サイクル#1
5のためのデータ転送の反復を開始する。その反復転送
は、サイクル#20の間に行なわれる。さらに、このエ
ラー信号は、モジュールを服従Aモードに切り換える。
バス待機信号は、バス・マスタによってアドレスされた
スレーブ・ユニットによってのみ駆動され、データ転送
には影響を与えるように用意されていないことに留意さ
れたい。STCI155は決してスレーブ・ユニットに
はならず、メモリのみにアドレスし、I/Oデバイスに
はアドレスしないから、この線は、STCI155によ
っては利用されない。
スレーブ・ユニットによってのみ駆動され、データ転送
には影響を与えるように用意されていないことに留意さ
れたい。STCI155は決してスレーブ・ユニットに
はならず、メモリのみにアドレスし、I/Oデバイスに
はアドレスしないから、この線は、STCI155によ
っては利用されない。
システム・バス論理178(第19C図)は、STCI
155からS/88メモリ・ボード16、18へのリン
クを与え、調停論理408(第32B図)を含む、バス
30のために前記に定義したのと同一の基本的バス転送
サイクルが論理178によって使用される。すなわち: (1)調停フェーズ−このフェーズは、どのサイクルで
もバス・コントローラがバスの支配権を巡って争うにつ
れて進行する。典型的には、調停の優先順位は、調停装
置のバックパネル・スロットIDに基づく。STCIデ
ザインの好適な形式の場合、調停優先順位は、単一CP
UのスロットIDに基づき、一方、優先順位を割当てる
ための各CPU(PE85及びその対のユニット)上の
FIFO殆ど満杯/殆ど空(AFE)フラグ及び半満杯
(HF)フラグ線409は、多重CPU実装構成におけ
る実タスク要求に基づく。
155からS/88メモリ・ボード16、18へのリン
クを与え、調停論理408(第32B図)を含む、バス
30のために前記に定義したのと同一の基本的バス転送
サイクルが論理178によって使用される。すなわち: (1)調停フェーズ−このフェーズは、どのサイクルで
もバス・コントローラがバスの支配権を巡って争うにつ
れて進行する。典型的には、調停の優先順位は、調停装
置のバックパネル・スロットIDに基づく。STCIデ
ザインの好適な形式の場合、調停優先順位は、単一CP
UのスロットIDに基づき、一方、優先順位を割当てる
ための各CPU(PE85及びその対のユニット)上の
FIFO殆ど満杯/殆ど空(AFE)フラグ及び半満杯
(HF)フラグ線409は、多重CPU実装構成におけ
る実タスク要求に基づく。
(2)サイクル決定フェーズ−このフェーズは、以前の
サイクル中のバス許可に続く。それは、16、32また
は64ビット読取/書込転送を、記憶16に対する27
ビット開始物理アドレスとともに指定するための、バス
30のバスFNコードA及びB上の4ビット機能コード
を含む。記憶16は、好適な実施例では256MBであ
る。全ての記憶アクセスは、アドレス・ビット0が使用
されないように16、32または64ビット境界上にあ
る。より正確には、バイト及びワード・アクセスは、バ
スFNコード定義と連結して第14図にUDSおよびL
DS信号によって示されている。
サイクル中のバス許可に続く。それは、16、32また
は64ビット読取/書込転送を、記憶16に対する27
ビット開始物理アドレスとともに指定するための、バス
30のバスFNコードA及びB上の4ビット機能コード
を含む。記憶16は、好適な実施例では256MBであ
る。全ての記憶アクセスは、アドレス・ビット0が使用
されないように16、32または64ビット境界上にあ
る。より正確には、バイト及びワード・アクセスは、バ
スFNコード定義と連結して第14図にUDSおよびL
DS信号によって示されている。
(3)サイクル応答フェーズ−このフェーズは、STC
I155を、再調停し前のサイクル決定フェーズを再発
行するように強制することになるメモリからの、バス3
0上のバス・エラーまたはバス・ビジー条件を含み得
る。
I155を、再調停し前のサイクル決定フェーズを再発
行するように強制することになるメモリからの、バス3
0上のバス・エラーまたはバス・ビジー条件を含み得
る。
(4)データ・フェーズ−(サイクル応答フェーズを過
ぎて)記憶要求が一旦受け入れられると、サイクル応答
フェーズに続く(サイクル決定フェーズの2サイクル
後)サイクルでデータめフェーズが生じる。読取または
書込の125ns内に16、32または64ビットのデ
ータを転送することができる。
ぎて)記憶要求が一旦受け入れられると、サイクル応答
フェーズに続く(サイクル決定フェーズの2サイクル
後)サイクルでデータめフェーズが生じる。読取または
書込の125ns内に16、32または64ビットのデ
ータを転送することができる。
(5)後データ・フェーズ−データが最初に転送された
2サイクル後システム・バス30上で(STCI155
またはメモリ16から)データの反復を強制するバス・
エラーがないかどうかをチェックするために必要であ
る。A及びBバスは同一のデータを運ぶので、後データ
・フェーズの間はAまたはBバス・エラーが生じてもよ
い。
2サイクル後システム・バス30上で(STCI155
またはメモリ16から)データの反復を強制するバス・
エラーがないかどうかをチェックするために必要であ
る。A及びBバスは同一のデータを運ぶので、後データ
・フェーズの間はAまたはBバス・エラーが生じてもよ
い。
バス30を求めて調停するS/88プロセッサ62と、
バス30を求めて調停するSTCI155の間の重要な
相違点を次に説明する。典型的には、S/88プロセッ
サ62は、任意の時点で5つのフェーズのうちの1つで
動作する。しかし、STCI155のフェッチ及び記憶
パイプライン能力のため、STCIは同時に5つまだの
フェーズ全てで動作することができる。例えば、64バ
イト読取動作の間に、STCI155は、もしエラーが
ないなら5つの全てのフェーズで動作することができ、
STCIは、連続する5つのサイクルの各々でバス30
の調停制御を許可される。このことは、特にモジュール
9の単一プロセッサ・バージョンで、システム性能を向
上させる。
バス30を求めて調停するSTCI155の間の重要な
相違点を次に説明する。典型的には、S/88プロセッ
サ62は、任意の時点で5つのフェーズのうちの1つで
動作する。しかし、STCI155のフェッチ及び記憶
パイプライン能力のため、STCIは同時に5つまだの
フェーズ全てで動作することができる。例えば、64バ
イト読取動作の間に、STCI155は、もしエラーが
ないなら5つの全てのフェーズで動作することができ、
STCIは、連続する5つのサイクルの各々でバス30
の調停制御を許可される。このことは、特にモジュール
9の単一プロセッサ・バージョンで、システム性能を向
上させる。
(C)STCI機能 STCI機能のいくつかを以下説明する。
(1)FIFO400−4個(64×9ビット)先入れ
先出し高速RAMが、4回までの64バイト記憶コマン
ドをユニット155がビジーになる前に保持することを
可能ならしめるバッファを形成する。それはまた、全て
のデータのための入来パリティを出力まで保持する。S
/370のクロック152は、コマンド及びデータをF
IFO400中にクロックする。そして、S/88クロ
ック38がFIFO400からコマンド及びデータをク
ロックする。FIFO400の好適な実施例は、Cypres
sSemiconductor Corp.によって1988年1月15日に
発行された製品情報マニュアルの5乃至34ベージに詳
細に記載されているCY7C409である。
先出し高速RAMが、4回までの64バイト記憶コマン
ドをユニット155がビジーになる前に保持することを
可能ならしめるバッファを形成する。それはまた、全て
のデータのための入来パリティを出力まで保持する。S
/370のクロック152は、コマンド及びデータをF
IFO400中にクロックする。そして、S/88クロ
ック38がFIFO400からコマンド及びデータをク
ロックする。FIFO400の好適な実施例は、Cypres
sSemiconductor Corp.によって1988年1月15日に
発行された製品情報マニュアルの5乃至34ベージに詳
細に記載されているCY7C409である。
業界標準のハンドシェーク信号以外に、殆ど満杯/殆ど
空(AFE)及び半分満杯(HF)フラグが与えられ
る。AFEは、FIFOが殆ど満杯または殆ど空のとき
AFEが高レベルとなる。そうでなければAFEは低レ
ベルである。HFは、FIFOの半分が満杯のとき高レ
ベルとなり、さもなければ低レベルである。
空(AFE)及び半分満杯(HF)フラグが与えられ
る。AFEは、FIFOが殆ど満杯または殆ど空のとき
AFEが高レベルとなる。そうでなければAFEは低レ
ベルである。HFは、FIFOの半分が満杯のとき高レ
ベルとなり、さもなければ低レベルである。
メモリは、入力準備完了(IR)制御信号が高レベルの
時シフトイン(SI)信号の制御の下でその入力に9ビ
ットの並列ワードを受領する。そのデータは、出力準備
完了(OR)制御信号が高レベルの時、シフトアウト
(SO)信号の制御の下で記憶されたのと同じ順序で出
力される。もしFIFOが満杯(IR低レベル)である
なら、SI入力のパルスが無視され、もしFIFOが空
(ORが低レベル)ならSO入力のパルスが無視され
る。
時シフトイン(SI)信号の制御の下でその入力に9ビ
ットの並列ワードを受領する。そのデータは、出力準備
完了(OR)制御信号が高レベルの時、シフトアウト
(SO)信号の制御の下で記憶されたのと同じ順序で出
力される。もしFIFOが満杯(IR低レベル)である
なら、SI入力のパルスが無視され、もしFIFOが空
(ORが低レベル)ならSO入力のパルスが無視され
る。
より広いワードのための並列拡張は、個々のFIFOの
IR及びOR出力をそれぞれ、論理的にANDすること
によって実現される。そのAND演算は、全てのFIF
Oがそれ以上のデータを受け入れる用意がある(IR高
レベル)か、またはデータを出力する用意がある(OR
高レベル)ことを保証し、以て装置の間の伝搬遅延時間
の偏差を保証する。
IR及びOR出力をそれぞれ、論理的にANDすること
によって実現される。そのAND演算は、全てのFIF
Oがそれ以上のデータを受け入れる用意がある(IR高
レベル)か、またはデータを出力する用意がある(OR
高レベル)ことを保証し、以て装置の間の伝搬遅延時間
の偏差を保証する。
読取及び書込動作は、完全に非同期的であって、以てF
IFOを、動作クロック周波数またはクロック位相が相
当に異なる2つのディジタル装置の間のバッファとして
使用することを可能ならしめる。FIFO400は、読
取ポインタと、書込ポインタと、既知のハンドシェーキ
ング(SI/IR、SO/OR)信号と、AFE及びH
Fフラグを発生するちめに必要な制御論理を含む。FI
FOが空の場合、STCI論理はSOを高レベルに保持
し、以て、ワード書かれた時、それが出力へ直接伝えら
れる(ripple)。そのOR信号は、1内部サイクルの間高
レベルで、次に再び低レベルに下がる。もし更なるワー
ドがFIFOに書かれるなら、それらは最初のワードに
足並を揃え、SOが低れべるに引き下げられるまで出力
上には現れないことになる。
IFOを、動作クロック周波数またはクロック位相が相
当に異なる2つのディジタル装置の間のバッファとして
使用することを可能ならしめる。FIFO400は、読
取ポインタと、書込ポインタと、既知のハンドシェーキ
ング(SI/IR、SO/OR)信号と、AFE及びH
Fフラグを発生するちめに必要な制御論理を含む。FI
FOが空の場合、STCI論理はSOを高レベルに保持
し、以て、ワード書かれた時、それが出力へ直接伝えら
れる(ripple)。そのOR信号は、1内部サイクルの間高
レベルで、次に再び低レベルに下がる。もし更なるワー
ドがFIFOに書かれるなら、それらは最初のワードに
足並を揃え、SOが低れべるに引き下げられるまで出力
上には現れないことになる。
データは物理的にはメモリを伝搬しない。データを移動
する代わりに読取及び書込ポインタがインクリメントさ
れる。書込ポインタをインクリメントしSI入力から空
のFIFOのOR出力へ信号を伝搬するために必要な時
間(フォールスルー時間)または、読取ポンイタをイン
クリメントしSO入力から満杯のFIFOのIR出力へ
信号を伝搬するために必要な時間(バブルスルー時間)
がデータをFIFO400を通じて渡すことができる速
度を決定する。
する代わりに読取及び書込ポインタがインクリメントさ
れる。書込ポインタをインクリメントしSI入力から空
のFIFOのOR出力へ信号を伝搬するために必要な時
間(フォールスルー時間)または、読取ポンイタをイン
クリメントしSO入力から満杯のFIFOのIR出力へ
信号を伝搬するために必要な時間(バブルスルー時間)
がデータをFIFO400を通じて渡すことができる速
度を決定する。
電源投入時に、FIFOは、マスター・リセット信号に
よってリセットされる。このことは、装置を空条件に入
らしめ、それはOR信号が低レベルであると同時にIR
信号が高レベルであることによって通知される。この条
件では、データ出力(D00−D08)は低レベルであ
る。AFEフラグは高レベルであって、HFフラグは低
レベルである。
よってリセットされる。このことは、装置を空条件に入
らしめ、それはOR信号が低レベルであると同時にIR
信号が高レベルであることによって通知される。この条
件では、データ出力(D00−D08)は低レベルであ
る。AFEフラグは高レベルであって、HFフラグは低
レベルである。
空位置の可用性は、入力レディ(IR)信号の高レベル
状態によって示される。IRが高レベルであるとき、シ
フトイン(SI)ピン上の低レベルから高レベルへの遷
移は、入力上のデータのFIFO400へのロードを引
き起こす。IR信号は次に低レベルになり、そのデータ
がサンプルされたことを示す。SI信号の高レベルから
低レベルへの遷移は、もしFIFO400が殆ど満杯で
あるか殆ど空であるなら、IR信号の低レベルからへの
遷移と、AFEフラグの低レベルから高レベルへの遷移
を示す。
状態によって示される。IRが高レベルであるとき、シ
フトイン(SI)ピン上の低レベルから高レベルへの遷
移は、入力上のデータのFIFO400へのロードを引
き起こす。IR信号は次に低レベルになり、そのデータ
がサンプルされたことを示す。SI信号の高レベルから
低レベルへの遷移は、もしFIFO400が殆ど満杯で
あるか殆ど空であるなら、IR信号の低レベルからへの
遷移と、AFEフラグの低レベルから高レベルへの遷移
を示す。
FIFO400の出力におけるデータの可用性は、出力
レディ(OR)信号の高レベル状態によって示される。
FIFOがリセットされた後、全てのデータ出力(D0
0−D08)は低レベルになる。FIFOが空である限
り、OR信号は低レベルにとどまり、それに印加された
全てのシフトアウト(SO)パルスは無視されることに
なる。データがFIFOにシフトして入れられた後、O
R信号は高レベルになる。
レディ(OR)信号の高レベル状態によって示される。
FIFOがリセットされた後、全てのデータ出力(D0
0−D08)は低レベルになる。FIFOが空である限
り、OR信号は低レベルにとどまり、それに印加された
全てのシフトアウト(SO)パルスは無視されることに
なる。データがFIFOにシフトして入れられた後、O
R信号は高レベルになる。
2つのフラグ、AFE及びHFは、どれだけのワードが
FIFO中に格納されているかを記述する。AFEは、
8個またはそれ以下、あるいは56個またはそれ以上の
ワードがFIFOに存在するとき高レベルとなる。さも
なければ、AFEは低レベルである。HFは、32個ま
たはそれ以上のワードがFIFOに格納されているとき
高レベルとなり、さもなければHFフラグは低レベルで
ある。フラグ遷移は、SI及びSOの下降端に関連して
生じる。
FIFO中に格納されているかを記述する。AFEは、
8個またはそれ以下、あるいは56個またはそれ以上の
ワードがFIFOに存在するとき高レベルとなる。さも
なければ、AFEは低レベルである。HFは、32個ま
たはそれ以上のワードがFIFOに格納されているとき
高レベルとなり、さもなければHFフラグは低レベルで
ある。フラグ遷移は、SI及びSOの下降端に関連して
生じる。
(2)SBI論理−S/370プロセッサ85をしてS
/88記憶16に対する読取/書込を開始することを可
能ならしめるシステム/88バス・インターフェース
(SBI)論理178。これは、16、32または64
ビット転送を開始するべくバス30にアクセスするため
に、毎サイクル調停するための論理408をもつ。論理
178インターフェース線及び調停論理408は好適に
は、ここで変更している個所を除いては米国特許第44
53215号に記述されているタイプのものと同様であ
る。
/88記憶16に対する読取/書込を開始することを可
能ならしめるシステム/88バス・インターフェース
(SBI)論理178。これは、16、32または64
ビット転送を開始するべくバス30にアクセスするため
に、毎サイクル調停するための論理408をもつ。論理
178インターフェース線及び調停論理408は好適に
は、ここで変更している個所を除いては米国特許第44
53215号に記述されているタイプのものと同様であ
る。
(3)フォールト・トレランス−FIFOバッファ40
0を含む全てのSTCI論理は、S/370プロセッサ
・ボード上で自己チェックを行うために、2重化されて
いる。単一の論理は、比較論理402a乃至gと、破断
論理403と、クロック発生論理(図示しない)のみで
ある。このように、STCI155は、第8図の記憶管
理ユニット83の一部である実質的に同一の対のSTC
I155a(図示しない)をもつ。
0を含む全てのSTCI論理は、S/370プロセッサ
・ボード上で自己チェックを行うために、2重化されて
いる。単一の論理は、比較論理402a乃至gと、破断
論理403と、クロック発生論理(図示しない)のみで
ある。このように、STCI155は、第8図の記憶管
理ユニット83の一部である実質的に同一の対のSTC
I155a(図示しない)をもつ。
比較論理402a乃至gは、第8図の比較論理15を形
成し、破断論理403は、第8図の共通制御論理75を
形成する。好適な実施例では、S/370の比較チェッ
クは、バス構造30を介してのエラー・データの分散か
ら保護するために対のSTCI155、155aでのみ
実行される。しかし、S/370マシン・チェック及び
パリティ・エラーは、バス460を介して論理403に
供給される。BCUバス247、223上のいくつかの
エラーは、S/88比較回路12f(第8図)によって
取り上げられる。
成し、破断論理403は、第8図の共通制御論理75を
形成する。好適な実施例では、S/370の比較チェッ
クは、バス構造30を介してのエラー・データの分散か
ら保護するために対のSTCI155、155aでのみ
実行される。しかし、S/370マシン・チェック及び
パリティ・エラーは、バス460を介して論理403に
供給される。BCUバス247、223上のいくつかの
エラーは、S/88比較回路12f(第8図)によって
取り上げられる。
(4)アドレス・チェック−S/88記憶16中に有効
物理S/370ユーザー・アドレスを生成するためにベ
ース・オフセット(第10図)を使用する間に、各S/
370プロセッサ記憶空間162などのサイズが違反さ
れないことを保証するために、メモリ・マップされた2
つのレジスタ404、405(MEMベース及びMEM
サイズ)が与えられる。
物理S/370ユーザー・アドレスを生成するためにベ
ース・オフセット(第10図)を使用する間に、各S/
370プロセッサ記憶空間162などのサイズが違反さ
れないことを保証するために、メモリ・マップされた2
つのレジスタ404、405(MEMベース及びMEM
サイズ)が与えられる。
(5)同期的動作−S/370クロック152は、バス
30及び同期化ユニット158(第19C図)を介し
て、S/88クロック38(第7図)から導出され、S
/88クロック38の開始からのS/370発振器入力
周期内のクロック間の同期をもたらす。このことは、連
続読取(例えば64バイト読取コマンド)をメモリ16
2からS/370チップ・セットへと待機状態をはさむ
ことなくパイプラインさせる(システム・バス30上で
STCI155に許可された連続的サイクルを想定し
て)ことを可能ならしめる。
30及び同期化ユニット158(第19C図)を介し
て、S/88クロック38(第7図)から導出され、S
/88クロック38の開始からのS/370発振器入力
周期内のクロック間の同期をもたらす。このことは、連
続読取(例えば64バイト読取コマンド)をメモリ16
2からS/370チップ・セットへと待機状態をはさむ
ことなくパイプラインさせる(システム・バス30上で
STCI155に許可された連続的サイクルを想定し
て)ことを可能ならしめる。
(6)STCバス・インターフェース−全ての標準的S
/370フェッチ/記憶コマンドは、そのコマンド・キ
ャンセリングとともに実行される。パリティ・エラーま
たはECCエラーは、S/370オペレーティング・シ
ステムに報告されずに、再試行(ECCまたはバス・パ
リティ・エラー)として処理されるか、破壊される(内
部ボード・パリティ・エラー)。64バイト線境界交差
は、アドレスの巻き込みをもたらす。
/370フェッチ/記憶コマンドは、そのコマンド・キ
ャンセリングとともに実行される。パリティ・エラーま
たはECCエラーは、S/370オペレーティング・シ
ステムに報告されずに、再試行(ECCまたはバス・パ
リティ・エラー)として処理されるか、破壊される(内
部ボード・パリティ・エラー)。64バイト線境界交差
は、アドレスの巻き込みをもたらす。
第11図に示すように、STCI155は、S/370
動的(仮想)アドレス変換を処理し、8KB命令/デー
タ・キャッシュと64エントリDLAT341(ディレ
クトリ・ルックアサイド・テーブル)を利用するキャッ
シュ・コントローラ・ユニット153を介してS/37
0プロセッサ85にインターフェースする。こうして、
全ての実/仮想I/Oまたはプロセッサ転送は、ユニッ
ト153によってSTCバス157上に発行される
「実」アドレスをもたらす。典型的には、バス・アダプ
タ154またはS/370プロセッサ85が「実」記憶
動作を行う時、ユニット153は、STC157上で発
行された後でコマンドのキャンセルをもたらし得るキャ
ッシュ・ヒットの場合を除いては、単にプロセッサ・バ
ス170からSTCバス157への移行段として働くだ
けである。
動的(仮想)アドレス変換を処理し、8KB命令/デー
タ・キャッシュと64エントリDLAT341(ディレ
クトリ・ルックアサイド・テーブル)を利用するキャッ
シュ・コントローラ・ユニット153を介してS/37
0プロセッサ85にインターフェースする。こうして、
全ての実/仮想I/Oまたはプロセッサ転送は、ユニッ
ト153によってSTCバス157上に発行される
「実」アドレスをもたらす。典型的には、バス・アダプ
タ154またはS/370プロセッサ85が「実」記憶
動作を行う時、ユニット153は、STC157上で発
行された後でコマンドのキャンセルをもたらし得るキャ
ッシュ・ヒットの場合を除いては、単にプロセッサ・バ
ス170からSTCバス157への移行段として働くだ
けである。
次に、41本のSTCバス線(第32A図及び第30
図)について簡単に説明する。STCデータ/アドレス
/コマンド・バス406は、32本の双方向データ・バ
ス線に加えてバイト毎の奇数パリティをもつ。このバス
は、1サイクルでコマンド及びアドレスを、記憶動作の
後の各サイクル上で32ビットまでのデータを運ぶため
に使用される。STC有効線は、STCI155に対し
て、コマンド/アドレスが同一サイクル中のSTCバス
上で有効であることを知らせるために、ユニット153
によって使用される。STCキャンセル線は、STCI
155に対して前に発行したコマンドをキャンセルする
ためにユニット153によって駆動される。STVビジ
ー線440は、「STC有効」が発行された1サイクル
後、STCIがビジーであって新しいコマンドを受け入
れることができないことをユニット153知らせるため
に、STCI155によって駆動される。STCビジー
線440は、ユニット155が新しいコマンドを受け取
ることができる1サイクル前に解放される。
図)について簡単に説明する。STCデータ/アドレス
/コマンド・バス406は、32本の双方向データ・バ
ス線に加えてバイト毎の奇数パリティをもつ。このバス
は、1サイクルでコマンド及びアドレスを、記憶動作の
後の各サイクル上で32ビットまでのデータを運ぶため
に使用される。STC有効線は、STCI155に対し
て、コマンド/アドレスが同一サイクル中のSTCバス
上で有効であることを知らせるために、ユニット153
によって使用される。STCキャンセル線は、STCI
155に対して前に発行したコマンドをキャンセルする
ためにユニット153によって駆動される。STVビジ
ー線440は、「STC有効」が発行された1サイクル
後、STCIがビジーであって新しいコマンドを受け入
れることができないことをユニット153知らせるため
に、STCI155によって駆動される。STCビジー
線440は、ユニット155が新しいコマンドを受け取
ることができる1サイクル前に解放される。
線433上のSTCデータ無効は、データがフェッチで
戻されるのと同じサイクル中でユニット153に対して
データ転送を無効化するためにSTCI155によって
発行される。ユニット153は、もしその線が活動化さ
れているならそのデータ・サイクルを無視する。この線
は、高速ECCエラーがバス30上で発生し、STCI
155、155aの対論理の間でデータの不一致が生
じ、あるいはバス30読取サイクルの間に不正なパリテ
ィが検出されたとき、データと一致して送られる。
戻されるのと同じサイクル中でユニット153に対して
データ転送を無効化するためにSTCI155によって
発行される。ユニット153は、もしその線が活動化さ
れているならそのデータ・サイクルを無視する。この線
は、高速ECCエラーがバス30上で発生し、STCI
155、155aの対論理の間でデータの不一致が生
じ、あるいはバス30読取サイクルの間に不正なパリテ
ィが検出されたとき、データと一致して送られる。
STCデータ転送線441は、後のサイクル中のSTC
バス157上のデータ転送を通知するためにユニット1
53に対してSTCI155によって駆動される。記憶
の場合、線441は、ユニット153が次のサイクルで
次の32ビット・ワードを供給すべきことを指示する。
フェッチの場合、線441は、ユニット153に、もし
次のサイクルでSTCデータ無効によって拒否されない
なら次のサイクルが有効なデータを含むであろうことを
知らせる。STCI155デザインは、上述の全ての状
態が1つのS/370CPU内で同時にアクティブであ
ることを可能ならしめるように完全にパイプラインされ
ている。このようにして、連続的にバスが許可されエラ
ーがないと想定すると、STCI155は、32ビッ
ト、62.5nsSTCバス157上へ(125nsシ
ステム・バス30サイクル毎の)64ビット読取を利用
して待機状態なく、フェッチ上のパイプラインされたデ
ータを維持することができる。
バス157上のデータ転送を通知するためにユニット1
53に対してSTCI155によって駆動される。記憶
の場合、線441は、ユニット153が次のサイクルで
次の32ビット・ワードを供給すべきことを指示する。
フェッチの場合、線441は、ユニット153に、もし
次のサイクルでSTCデータ無効によって拒否されない
なら次のサイクルが有効なデータを含むであろうことを
知らせる。STCI155デザインは、上述の全ての状
態が1つのS/370CPU内で同時にアクティブであ
ることを可能ならしめるように完全にパイプラインされ
ている。このようにして、連続的にバスが許可されエラ
ーがないと想定すると、STCI155は、32ビッ
ト、62.5nsSTCバス157上へ(125nsシ
ステム・バス30サイクル毎の)64ビット読取を利用
して待機状態なく、フェッチ上のパイプラインされたデ
ータを維持することができる。
システム/88インターフェース410は、STCI1
55中で、BCUローカル仮想アドレス空間的のMEM
サイズ・レジスタ405及びMEMベース・レジスタ4
04に対するアクセスをサポートするために使用され
る。また、「破断」403及び「バス割り込み要求(I
RQ)」エラーは、バス30上の低優先順位保守割り込
みを単一CPUとして駆動するために、S/88プロセ
ッサ・ボード上のエラーと結合される。
55中で、BCUローカル仮想アドレス空間的のMEM
サイズ・レジスタ405及びMEMベース・レジスタ4
04に対するアクセスをサポートするために使用され
る。また、「破断」403及び「バス割り込み要求(I
RQ)」エラーは、バス30上の低優先順位保守割り込
みを単一CPUとして駆動するために、S/88プロセ
ッサ・ボード上のエラーと結合される。
バスIRQエラーは、それらのエラーが、通常、同一ま
たは相手ボードによって異なることが検出されたバス3
0からの非保護信号のため、「破断」エラーが切断する
ようにはバス30をボードから切断しない、という点で
破断エラーとは異なる。これらのエラーは、ボードが服
従両モードにあるときのみアクティブとなる。
たは相手ボードによって異なることが検出されたバス3
0からの非保護信号のため、「破断」エラーが切断する
ようにはバス30をボードから切断しない、という点で
破断エラーとは異なる。これらのエラーは、ボードが服
従両モードにあるときのみアクティブとなる。
さらに、線411、412、413上の「服従A」、
「服従B」及び「2重化」信号は、S/370プロセッ
サ内で再び実現されるのではなくてS/88プロセッサ
・ボード論理から駆動される。服従A/服従B信号は、
チェック及び駆動側データ入力マルチプレクサのための
入力マルチプレクサ71、73を制御し、バス・エラー
条件中でゲートするために使用される。線413上の2
重化信号は、ボードが対になっていることを知らせるた
めに使用される(すなわち、対のボードか連続的スロッ
トにあるときそれらが一緒に調停することを保証するた
めにバス調停論理408中で使用される)。
「服従B」及び「2重化」信号は、S/370プロセッ
サ内で再び実現されるのではなくてS/88プロセッサ
・ボード論理から駆動される。服従A/服従B信号は、
チェック及び駆動側データ入力マルチプレクサのための
入力マルチプレクサ71、73を制御し、バス・エラー
条件中でゲートするために使用される。線413上の2
重化信号は、ボードが対になっていることを知らせるた
めに使用される(すなわち、対のボードか連続的スロッ
トにあるときそれらが一緒に調停することを保証するた
めにバス調停論理408中で使用される)。
服従A及びB信号は、+服従A、−服従A、+服従B、
−服従Bを提供するために反転される。+服従A、−服
従A信号は、レジスタ428及び429にそれぞれ印加
される。レジスタ428及び429は、バス構造30の
A及びBバスにそれぞれ結合される。S/88クロック
信号(図示しない)は、3つのモードA、B及び両につ
いて、A及びBバスからのデータをレジスタ428及び
429にクロックする。レジスタ428中のデータは、
バスが服従Aまたは服従Bモードで動作しているときバ
ス435、436にゲート・アウトされ、レジスタ42
9は、服従Bモードの間のみバス435、428上にゲ
ートアウトされる。同様に、第34図で見て取れるよう
に、STCI155aのレジスタ428aの内容は、服
従Bまたは服従両モードの間に同様にゲートアウトされ
る。レジスタ429aの内容は、服従Aモードの間にゲ
ートアウトされる。レジスタ428、429及び428
a、429aの出力をORすることによりめいめいのデ
ータ入力マルチプレクサ機能71、73(第3図)が実
行される。
−服従Bを提供するために反転される。+服従A、−服
従A信号は、レジスタ428及び429にそれぞれ印加
される。レジスタ428及び429は、バス構造30の
A及びBバスにそれぞれ結合される。S/88クロック
信号(図示しない)は、3つのモードA、B及び両につ
いて、A及びBバスからのデータをレジスタ428及び
429にクロックする。レジスタ428中のデータは、
バスが服従Aまたは服従Bモードで動作しているときバ
ス435、436にゲート・アウトされ、レジスタ42
9は、服従Bモードの間のみバス435、428上にゲ
ートアウトされる。同様に、第34図で見て取れるよう
に、STCI155aのレジスタ428aの内容は、服
従Bまたは服従両モードの間に同様にゲートアウトされ
る。レジスタ429aの内容は、服従Aモードの間にゲ
ートアウトされる。レジスタ428、429及び428
a、429aの出力をORすることによりめいめいのデ
ータ入力マルチプレクサ機能71、73(第3図)が実
行される。
レジスタ405、404中のMEMサイズ/MEMベー
ス値は、BCUローカル・アドレス空間によって、S/
88プロセッサ62仮想アドレス空間中にメモリ、マッ
プされる。それらは、所与のS/370CPU空間が一
旦与えられると、S/88ブート処理の間にセットしな
くてはならない。それらは、STCI記憶/フェッチ動
作が進行中でない限りS/88によって変更することが
できる。
ス値は、BCUローカル・アドレス空間によって、S/
88プロセッサ62仮想アドレス空間中にメモリ、マッ
プされる。それらは、所与のS/370CPU空間が一
旦与えられると、S/88ブート処理の間にセットしな
くてはならない。それらは、STCI記憶/フェッチ動
作が進行中でない限りS/88によって変更することが
できる。
レジスタ404、405は、ローカル・アドレス(00
7E01FC)を介して第19A図のアドレス・デコー
ド論理216によってアクセスされ、次のデータを含
む。すなわち、PAビット20−23及びPAビット2
0−27であって、それらはそれぞれ、S/370記憶
162サイズ(MEMサイズ)と記憶ベース・アドレス
(MEMベース)に等しく、 MEMサイズ=S/370から記憶領域162に割当て
られた主記憶のメガバイト(1乃至16) MEMベース=記憶領域162に割当てられた記憶16
の物理的アドレス空間のアドレス・ゼロからのオフセッ
トのメガバイト PA=S/88の変換された仮想アドレス(すなわち物
理アドレス) 論理216がアドレス007E01FCをデコードする
時、このサイズ及びアドレス・ビットは、そのバス16
1Dを介してプロセッサ62によってレジスタ405、
404中にセットされる。この動作の間、論理216
は、プロセッサ62をその関連ハードウェアから切り放
し、以てレジスタ404、405のローディングがS/
88オペレーティング・システムに対して透過的とな
る。さらに、S/370オペレーティング・システム
は、S/370記憶162にアクセスする際に、それら
の存在または用途に気づかない。
7E01FC)を介して第19A図のアドレス・デコー
ド論理216によってアクセスされ、次のデータを含
む。すなわち、PAビット20−23及びPAビット2
0−27であって、それらはそれぞれ、S/370記憶
162サイズ(MEMサイズ)と記憶ベース・アドレス
(MEMベース)に等しく、 MEMサイズ=S/370から記憶領域162に割当て
られた主記憶のメガバイト(1乃至16) MEMベース=記憶領域162に割当てられた記憶16
の物理的アドレス空間のアドレス・ゼロからのオフセッ
トのメガバイト PA=S/88の変換された仮想アドレス(すなわち物
理アドレス) 論理216がアドレス007E01FCをデコードする
時、このサイズ及びアドレス・ビットは、そのバス16
1Dを介してプロセッサ62によってレジスタ405、
404中にセットされる。この動作の間、論理216
は、プロセッサ62をその関連ハードウェアから切り放
し、以てレジスタ404、405のローディングがS/
88オペレーティング・システムに対して透過的とな
る。さらに、S/370オペレーティング・システム
は、S/370記憶162にアクセスする際に、それら
の存在または用途に気づかない。
第32A、B及び30図はまた、記憶制御インターフェ
ース155によって使用される信号I/O線をもあらわ
している。更にこれは、STCバス157に加えて、S
/88システム・バス30と、S/88プロセッサ62
と、S/88CPUボード102上の論理415にイン
ターフェースするために必要な全ての線を含む。説明の
便宜上、第8図のトランシーバ13は第32A、B図に
は示されていない。
ース155によって使用される信号I/O線をもあらわ
している。更にこれは、STCバス157に加えて、S
/88システム・バス30と、S/88プロセッサ62
と、S/88CPUボード102上の論理415にイン
ターフェースするために必要な全ての線を含む。説明の
便宜上、第8図のトランシーバ13は第32A、B図に
は示されていない。
(D)データ記憶動作 キャッシュ・コントローラ153からの記憶コマンド上
で、STCI155はそのコマンドをアドレス/データ
・バス406(これはSTCバス157の一部である)
のビット0−7上にクロックにより乗せ、それを、ST
C有効ビットとともにコマンド・バッファ416に格納
し、またバッファ417に格納する。STCビジーは、
そのユニット155がビジーであることを示すために論
理401によって次のサイクルの間に線440上で立ち
上げられることになる。ところで、バス406上の24
ビット実アドレスもまた、アドレス・レジスタ417中
へクロックされる。
で、STCI155はそのコマンドをアドレス/データ
・バス406(これはSTCバス157の一部である)
のビット0−7上にクロックにより乗せ、それを、ST
C有効ビットとともにコマンド・バッファ416に格納
し、またバッファ417に格納する。STCビジーは、
そのユニット155がビジーであることを示すために論
理401によって次のサイクルの間に線440上で立ち
上げられることになる。ところで、バス406上の24
ビット実アドレスもまた、アドレス・レジスタ417中
へクロックされる。
FIFO400が満杯でなく、コマンド中に指定されて
いる全データ転送長(64バイトまで)を受け入れるこ
とができる(FIFOオーバーフローなし)限り、ST
Cデータ転送が論理401によって立ち上げられ、この
コマンドのための全てのデータ転送が完了するまで各サ
イクルでアクティブにとどまることになる。記憶時、S
TCデータ転送は、キャンセルが発行されていないこと
が確認されるまで(STC有効後の2サイクルまで)発
行されない(そしてこれにより、そのコマンドはFIF
Oにシストされない)。
いる全データ転送長(64バイトまで)を受け入れるこ
とができる(FIFOオーバーフローなし)限り、ST
Cデータ転送が論理401によって立ち上げられ、この
コマンドのための全てのデータ転送が完了するまで各サ
イクルでアクティブにとどまることになる。記憶時、S
TCデータ転送は、キャンセルが発行されていないこと
が確認されるまで(STC有効後の2サイクルまで)発
行されない(そしてこれにより、そのコマンドはFIF
Oにシストされない)。
しかし、この期間、論理401はレジスタ417からレ
ジスタ442に24ビット・アドレスをシフトし、その
データの最初の4ビットがユニット153からレジスタ
417にシフトされる。さらに、FIFO HF及びA
FEフラグ409が、コマンド・バッファ416からデ
コードされたバイト転送長に比較される。FIFOフラ
グは、バッファ・フラグの4つの範囲のうちの使用され
ている1つを示す。もし、最悪の場合のバッファ深さに
追加された時、バイト転送長にコマンド・ワード・デー
タの4バイトを加えた値がFIFO64ワード容量を超
えるなら(それはFIFOフラグによって示される)、
全てのSTCデータ転送活動は、このオーバーフロー条
件が消滅するまで保留される。このことは、フラグ状況
の変化を引き起こすようにFIFOから十分なワードが
シフトアウトされるや否や起こる。
ジスタ442に24ビット・アドレスをシフトし、その
データの最初の4ビットがユニット153からレジスタ
417にシフトされる。さらに、FIFO HF及びA
FEフラグ409が、コマンド・バッファ416からデ
コードされたバイト転送長に比較される。FIFOフラ
グは、バッファ・フラグの4つの範囲のうちの使用され
ている1つを示す。もし、最悪の場合のバッファ深さに
追加された時、バイト転送長にコマンド・ワード・デー
タの4バイトを加えた値がFIFO64ワード容量を超
えるなら(それはFIFOフラグによって示される)、
全てのSTCデータ転送活動は、このオーバーフロー条
件が消滅するまで保留される。このことは、フラグ状況
の変化を引き起こすようにFIFOから十分なワードが
シフトアウトされるや否や起こる。
もしキャンセルが生じず、FIFOオーバーフローも存
在しないなら、ブロック401からデコードされ、マル
チプレクサ447を介してレジスタ442からの24ビ
ット・アドレスと組み合わされたコマンドが、FIFO
400に格納される。アドレス・レジスタ417からの
その後の32ビット・データ・ブロックは、一旦最初の
記憶コマンドがFIFOにシフトされると、連続サイク
ルでレジスタ442を介してFIFO400に格納され
る。ゲート423は、バス30上への16ビット転送の
ため、下位16ビットを上位16ビット上へマルチプレ
クスするために使用される。
在しないなら、ブロック401からデコードされ、マル
チプレクサ447を介してレジスタ442からの24ビ
ット・アドレスと組み合わされたコマンドが、FIFO
400に格納される。アドレス・レジスタ417からの
その後の32ビット・データ・ブロックは、一旦最初の
記憶コマンドがFIFOにシフトされると、連続サイク
ルでレジスタ442を介してFIFO400に格納され
る。ゲート423は、バス30上への16ビット転送の
ため、下位16ビットを上位16ビット上へマルチプレ
クスするために使用される。
Sビットは、記憶をフェッチとは区別するために使用さ
れ、C/Aビットは、第35図から見て取れるように、
FIFO中でコマンド・ワードとデータ・ワードを区別
するために使用される。パリティは、FIFOを通じて
維持される。
れ、C/Aビットは、第35図から見て取れるように、
FIFO中でコマンド・ワードとデータ・ワードを区別
するために使用される。パリティは、FIFOを通じて
維持される。
FIFO入力及び出力は、異なるようにクロックされ
る。データは、S/370クロックによってFIFO4
00へシフトされ、その間S/88クロックによってシ
フトアウトされる。そのタイミングは、FIFOが空の
ときのFIFOの最悪の場合のフォールスルー時間(6
0ns)に対処するようにセットされる。FIFOコマ
ンドは、第35図に示されており、ここで、 S=(1=記憶、2=フェッチ) C/A=(1=コマンド/アドレス、0=データ) P01=バイト0、1偶パリティ P23=バイト2、3偶パリティ LDW=下位データ・ワード選択(上位ワード上でマル
チプレクスされた下位データ・ワード、この場合、P0
1=P23) 64B OVFL=奇数アドレス配置のための16ワー
ド転送超過追加的な32ビット・データ転送サイクルを
要する 32B、16B、8B、4B=重み付けされたバイト転
送カウント TRL1、0=「後端」ワード中の有効バイトのエンコ
ード(最後の32ビット転送) FIFO400の入出力の両側上のブロック401にお
ける個々のシーケンサが、FIFOから出入する転送を
追跡する。出力シーケンサは、実際に、現在のフェッチ
または記憶コマンドのために保留であるバス30データ
転送の数を追跡する。コマンド・ワードが一旦FIFO
出力に到達すると、C/Aビット=1が論理401でデ
コードされ、以前のコマンドが未了で保留状態にない限
り、FIFO400からのS/370実アドレスが論理
422及び423を介してベース・レジスタ404と組
み合わされ、それは次に、転送カウントが出力シーケン
サにロードされている間に、アドレス・バッファ420
中に開始「物理」アドレスとしてロードされる。また、
調停論理408が調停を開始するようにセットされる。
る。データは、S/370クロックによってFIFO4
00へシフトされ、その間S/88クロックによってシ
フトアウトされる。そのタイミングは、FIFOが空の
ときのFIFOの最悪の場合のフォールスルー時間(6
0ns)に対処するようにセットされる。FIFOコマ
ンドは、第35図に示されており、ここで、 S=(1=記憶、2=フェッチ) C/A=(1=コマンド/アドレス、0=データ) P01=バイト0、1偶パリティ P23=バイト2、3偶パリティ LDW=下位データ・ワード選択(上位ワード上でマル
チプレクスされた下位データ・ワード、この場合、P0
1=P23) 64B OVFL=奇数アドレス配置のための16ワー
ド転送超過追加的な32ビット・データ転送サイクルを
要する 32B、16B、8B、4B=重み付けされたバイト転
送カウント TRL1、0=「後端」ワード中の有効バイトのエンコ
ード(最後の32ビット転送) FIFO400の入出力の両側上のブロック401にお
ける個々のシーケンサが、FIFOから出入する転送を
追跡する。出力シーケンサは、実際に、現在のフェッチ
または記憶コマンドのために保留であるバス30データ
転送の数を追跡する。コマンド・ワードが一旦FIFO
出力に到達すると、C/Aビット=1が論理401でデ
コードされ、以前のコマンドが未了で保留状態にない限
り、FIFO400からのS/370実アドレスが論理
422及び423を介してベース・レジスタ404と組
み合わされ、それは次に、転送カウントが出力シーケン
サにロードされている間に、アドレス・バッファ420
中に開始「物理」アドレスとしてロードされる。また、
調停論理408が調停を開始するようにセットされる。
論理408中のサイクル制御論理は、フェッチと記憶の
両方の動作につき、全てのアクティブSTCI155バ
ス・フェーズを追跡することになる。バス30状況線
(すなわち、バス・ビジー、バス・エラー)とともに、
この論理は、通常のバス30フェーズ動作を処理し、ま
たキャンセルされるサイクル決定またはデータ・フェー
ズをもたらすエラー条件を処理するために、STCI1
55内で使用される。
両方の動作につき、全てのアクティブSTCI155バ
ス・フェーズを追跡することになる。バス30状況線
(すなわち、バス・ビジー、バス・エラー)とともに、
この論理は、通常のバス30フェーズ動作を処理し、ま
たキャンセルされるサイクル決定またはデータ・フェー
ズをもたらすエラー条件を処理するために、STCI1
55内で使用される。
物理アドレスはまず、論理422でFIFO400から
のS/37024ビット実アドレスの上位4ビットをレ
ジスタ405中のS/370記憶サイズ値と比較するこ
とによって形成される。もしS/370アドレス・ビッ
トがS/370プロセッサ85のために割当てられたサ
イズ領域を超えないなら、その上位4ビットは次に論理
423によってレジスタ404中のS/370記憶ベー
ス値に加えられ、バッファ420中の下位ビット19−
1に連結されて、S/370領域162への開始S/8
8アドレスとして使用される物理的27ビット・ワード
・アドレスとなる。さもなければ、ソフト・プログラム
・チェックが報告される。何らかの64バイト・アドレ
ス境界交差は、開始アドレスへの巻返しをもたらすこと
になる。
のS/37024ビット実アドレスの上位4ビットをレ
ジスタ405中のS/370記憶サイズ値と比較するこ
とによって形成される。もしS/370アドレス・ビッ
トがS/370プロセッサ85のために割当てられたサ
イズ領域を超えないなら、その上位4ビットは次に論理
423によってレジスタ404中のS/370記憶ベー
ス値に加えられ、バッファ420中の下位ビット19−
1に連結されて、S/370領域162への開始S/8
8アドレスとして使用される物理的27ビット・ワード
・アドレスとなる。さもなければ、ソフト・プログラム
・チェックが報告される。何らかの64バイト・アドレ
ス境界交差は、開始アドレスへの巻返しをもたらすこと
になる。
アドレスU/Dレジスタ421は、外出物理アドレスの
ビット5−2を保持するために使用される。それは出力
シーケンサと同期してクロックされ、正常にインクリメ
ントされている間に、サイクル応答フェーズのバス・ビ
ジーまたはバス・エラー条件に応答する時、デクリメン
トすることができる。出力シーケンサが一旦ロードされ
ると、関連する論理が、バス・エラー及びバス・ビジー
条件に応答する間に、論理408を介してのバス調停許
可に基づき記憶サイクルを開始する。適当なS/88機
能コードがS/88記憶コマンドに対応して論理401
により発生され、その機能コードは、調停要求が許可さ
れた時バス構造30のA、Bバスに対して印加するため
にレジスタ443に配置される。
ビット5−2を保持するために使用される。それは出力
シーケンサと同期してクロックされ、正常にインクリメ
ントされている間に、サイクル応答フェーズのバス・ビ
ジーまたはバス・エラー条件に応答する時、デクリメン
トすることができる。出力シーケンサが一旦ロードされ
ると、関連する論理が、バス・エラー及びバス・ビジー
条件に応答する間に、論理408を介してのバス調停許
可に基づき記憶サイクルを開始する。適当なS/88機
能コードがS/88記憶コマンドに対応して論理401
により発生され、その機能コードは、調停要求が許可さ
れた時バス構造30のA、Bバスに対して印加するため
にレジスタ443に配置される。
出力シーケンサは、通常、各許可毎に、バス30に対す
る32ビット転送の場合1だけ、64ビット転送の場合
2だけデクリメントされ、それはゼロに到達してそれ以
上のバイトが現在のコマンドによって転送されないよう
になるまで続く。
る32ビット転送の場合1だけ、64ビット転送の場合
2だけデクリメントされ、それはゼロに到達してそれ以
上のバイトが現在のコマンドによって転送されないよう
になるまで続く。
サイクル決定フェーズと重なるサイクル応答フェーズの
間のバス・ビジーまたはバス・エラーの場合(背中合せ
の許可)、出力シーケンサはキャンセルされた32ビッ
ト転送について1、64ビット転送(フェッチのみ)に
つき2だけインクリメントされることになる。
間のバス・ビジーまたはバス・エラーの場合(背中合せ
の許可)、出力シーケンサはキャンセルされた32ビッ
ト転送について1、64ビット転送(フェッチのみ)に
つき2だけインクリメントされることになる。
同時に、アドレスU/Dカウンタ421が、キャンセル
された32ビット転送の場合1だけ、64ビット転送の
場合(フェッチのみ)2だけデクリメントされる。
された32ビット転送の場合1だけ、64ビット転送の
場合(フェッチのみ)2だけデクリメントされる。
データ・アウト・レジスタ425は、外出データをバッ
ファするために使用される。データ・アウト保持レジス
タ426は、後のバス・エラー(AまたはBバス)のた
めにデータを再駆動する必要がある場合に必要である。
この場合、(高位アドレスまでの)後のデータは、その
データ転送は初期転送の後2サイクル繰り返さなくては
ならないのでバス・エラーに関連する以前のサイクル・
データよりも前に受け入れ記憶16、18に格納するこ
とができる(記憶とは異なり、フェッチされたデータ
は、シーケンスから外れて受けてることはできない)。
ところで、バス調停論理408は、全ての転送が開始さ
れバス30上に受け入れられるまでサイクルを求めて連
続的に調停する。バス30及び記憶16、18に対する
調停とデータ転送は、上記(B)章で説明したのと同様
である。
ファするために使用される。データ・アウト保持レジス
タ426は、後のバス・エラー(AまたはBバス)のた
めにデータを再駆動する必要がある場合に必要である。
この場合、(高位アドレスまでの)後のデータは、その
データ転送は初期転送の後2サイクル繰り返さなくては
ならないのでバス・エラーに関連する以前のサイクル・
データよりも前に受け入れ記憶16、18に格納するこ
とができる(記憶とは異なり、フェッチされたデータ
は、シーケンスから外れて受けてることはできない)。
ところで、バス調停論理408は、全ての転送が開始さ
れバス30上に受け入れられるまでサイクルを求めて連
続的に調停する。バス30及び記憶16、18に対する
調停とデータ転送は、上記(B)章で説明したのと同様
である。
最後に、このFIFOデザインは、ビジーになる前に6
4ワードまでの転送(ほぼ4グループの64バイト記憶
転送)を許容する。記憶の場合、FIFOが満杯でなく
その記憶に関連するコマンド及びデータを受け入れるこ
とができる限り、FIFOには完了まで連続的にロード
が行なわれる。結局、各記憶コマンドが実行された後に
STCビジーが下降され、これを以てユニット153が
解放され、S/370プロセッサ85をして実行の継続
が可能ならしめられる。ユニット153における高いキ
ャッシュ・ヒット率を仮定すると、FIFO中のほぼ4
回の64バイト記憶または32回の1乃至4バイト記憶
に等価なものをバッファすることにより性能が相当に改
善される。
4ワードまでの転送(ほぼ4グループの64バイト記憶
転送)を許容する。記憶の場合、FIFOが満杯でなく
その記憶に関連するコマンド及びデータを受け入れるこ
とができる限り、FIFOには完了まで連続的にロード
が行なわれる。結局、各記憶コマンドが実行された後に
STCビジーが下降され、これを以てユニット153が
解放され、S/370プロセッサ85をして実行の継続
が可能ならしめられる。ユニット153における高いキ
ャッシュ・ヒット率を仮定すると、FIFO中のほぼ4
回の64バイト記憶または32回の1乃至4バイト記憶
に等価なものをバッファすることにより性能が相当に改
善される。
さて、STCI155がSTCI対155、155aの
「駆動側」であり、STCI155aが「エラー・チェ
ック側」であると仮定する。それゆえ、第32B図に示
すように、STCI155のみがバス構造30上に信号
(制御、アドレス、データ)を駆動する。信号がバスA
及びBの両方に意図されている場合、STCI155駆
動線は(第32B図には示さないトランシーバ13を通
じて)L)両方のバスに結合されるものとして示され
る。STCI155aにおいては、対応する線は、バス
構造30には結合されず、端に比較論理402a乃至g
に結合される。
「駆動側」であり、STCI155aが「エラー・チェ
ック側」であると仮定する。それゆえ、第32B図に示
すように、STCI155のみがバス構造30上に信号
(制御、アドレス、データ)を駆動する。信号がバスA
及びBの両方に意図されている場合、STCI155駆
動線は(第32B図には示さないトランシーバ13を通
じて)L)両方のバスに結合されるものとして示され
る。STCI155aにおいては、対応する線は、バス
構造30には結合されず、端に比較論理402a乃至g
に結合される。
比較論理402gは、バッファ420からのアドレス・
ビット27−6と、アドレスU/Dカウンタ421から
のアドレス・ビット5−2と、パリティ発生器論理44
5からの変更されたアドレス・ビット1及びパリティ・
ビットと、レジスタ443からの機能コードを、STC
I155aからの対応するビットと比較する。そして、
不一致の場合、論理402gが破断論理403と、バス
・エラーA及びB線に対してエラー信号を印加する。
ビット27−6と、アドレスU/Dカウンタ421から
のアドレス・ビット5−2と、パリティ発生器論理44
5からの変更されたアドレス・ビット1及びパリティ・
ビットと、レジスタ443からの機能コードを、STC
I155aからの対応するビットと比較する。そして、
不一致の場合、論理402gが破断論理403と、バス
・エラーA及びB線に対してエラー信号を印加する。
論理402eは、データ・アウト・レジスタ425から
のデータ・アウト・ビットをSTCI55aからの対応
するビットと比較し、論理403と、バス・エラーA及
びB線に対して不一致信号を印加する。論理402d
は、FIFO論理401からのビットをSTCI155
aからの対応するビットと比較する。ANDゲート44
6は、STCビジー信号が線440上でアクティブであ
る間にSTC有効信号が立ち上げられたなら、論理40
3に対してエラー信号を与える。
のデータ・アウト・ビットをSTCI55aからの対応
するビットと比較し、論理403と、バス・エラーA及
びB線に対して不一致信号を印加する。論理402d
は、FIFO論理401からのビットをSTCI155
aからの対応するビットと比較する。ANDゲート44
6は、STCビジー信号が線440上でアクティブであ
る間にSTC有効信号が立ち上げられたなら、論理40
3に対してエラー信号を与える。
(E)データ・フェッチ動作 フェッチ・コマンドは、上述のレジスタ416、41
7、442とFIFO400を通じて、記憶コマンドと
同一の経路に従う。1つの相違点は、バス30を介して
記憶162からレジスタ428または429にデータが
受領されたことが知られるまで、STCデータ転送信号
がSTCバス論理408上で立ち上げられない、という
ことである。フェッチ・コマンド及びSTC有効コマン
ドが受領されてレジスタ416に格納される。そのコマ
ンドと内部記憶アドレスは、レジスタ417に格納され
る。STCビジーが除去されるまでキャッシュ・コント
ローラ153が別のコマンドを送るのを防ぐために、次
のSTCバス・サイクルの間にSTCビジー信号を発行
する。
7、442とFIFO400を通じて、記憶コマンドと
同一の経路に従う。1つの相違点は、バス30を介して
記憶162からレジスタ428または429にデータが
受領されたことが知られるまで、STCデータ転送信号
がSTCバス論理408上で立ち上げられない、という
ことである。フェッチ・コマンド及びSTC有効コマン
ドが受領されてレジスタ416に格納される。そのコマ
ンドと内部記憶アドレスは、レジスタ417に格納され
る。STCビジーが除去されるまでキャッシュ・コント
ローラ153が別のコマンドを送るのを防ぐために、次
のSTCバス・サイクルの間にSTCビジー信号を発行
する。
次に、フェッチ・コマンドが受領された時、キャッシュ
・コントローラ153がフェッチされたデータが受領さ
れるのを待っているので、フェッチされたコマンドが完
全に実行されるまでSTCビジー信号が論理401によ
って維持される(記憶サイクルの間に、全ての記憶デー
タがコントローラ153から転送されるや否やSTCビ
ジーが除去されている)。フェッチ・コマンド・サイク
ルの間に、STCビジーは、FIFO400中のどれか
及び全ての記憶コマンドが実行されるまで維持されなく
てはならず、次にフェッチ・コマンドが実行される。S
TCI155に対する次のコマンドの転送を許容するた
めにSTCビジーを除去することができるのはようやく
それからである。
・コントローラ153がフェッチされたデータが受領さ
れるのを待っているので、フェッチされたコマンドが完
全に実行されるまでSTCビジー信号が論理401によ
って維持される(記憶サイクルの間に、全ての記憶デー
タがコントローラ153から転送されるや否やSTCビ
ジーが除去されている)。フェッチ・コマンド・サイク
ルの間に、STCビジーは、FIFO400中のどれか
及び全ての記憶コマンドが実行されるまで維持されなく
てはならず、次にフェッチ・コマンドが実行される。S
TCI155に対する次のコマンドの転送を許容するた
めにSTCビジーを除去することができるのはようやく
それからである。
レジスタ416、417にコマンドを記憶することに続
くサイクルにおいては、コマンド及びアドレスがレジス
タ442に転送され、次にFIFO400に転送され
る。
くサイクルにおいては、コマンド及びアドレスがレジス
タ442に転送され、次にFIFO400に転送され
る。
S/370フェッチ・コマンドがFIFO400の最後
の段に受領された(そして、上述のように出力レディが
高レベルになった)時、C/A及び他のコマンド・ビッ
トが論理401でデコードされる。調停サイクル要求が
許可された時、デコードされたS/370コマンド・ビ
ットに対応するS/88機能コードが、バス構造30に
対する印加のためレジスタ443に配置される。
の段に受領された(そして、上述のように出力レディが
高レベルになった)時、C/A及び他のコマンド・ビッ
トが論理401でデコードされる。調停サイクル要求が
許可された時、デコードされたS/370コマンド・ビ
ットに対応するS/88機能コードが、バス構造30に
対する印加のためレジスタ443に配置される。
許可及びその後のサイクル決定フェーズと、サイクル応
答フェーズに続いて、サイクル応答フェーズの間にバス
・ビジーまたはバス・エラーが報告されなかったと仮定
すると、STCI155はデータ・フェーズに入る。最
初の32ビットは、DP、UDS、LDSとともに、記
憶16とその相手の領域162中の適当な位置からの構
造30のA、Bバス上で受領され、S/88クロックの
バス30サイクルの後半の開始により、レジスタ42
8、429中にそれぞれラッチされる。服従両モードま
たは服従Aモードがアクティブであると仮定すると、デ
ータは次のS/88クロック・サイクル(次のバス30
サイクルの開始)でレジスタ428からバッファ430
へゲートされる。64ビット転送の場合、第2の32ビ
ットが、以前のデータのバッファ430への転送と同時
にレジスタ428及び429にラッチされる。バリティ
発生器431は、バッファ430に記憶されているデー
タ・ワードに奇パリティを追加する。これらのデータ及
びパリティ・ビットは、受領されたUDS、LDS、及
びDPビットとともに、バス435及び436を介して
論理402Cに印加される。論理402Cは、これらの
ビットを、対のSTCI155a中で発生された対応ビ
ットと比較する。バッファ430はここで、第1のデー
タ・ワードとパリティとを、STCバス157のバス4
06を介してキャッシュ・コントローラ153に転送す
るために次のSTCバス・サイクルの間に駆動すべきバ
ッファ432上にゲートする。バッファ432は、S/
88クロックの活動化の後同期化されるS/370クロ
ックによって刻時される。S/88とS/370の両方
のクロックに対して同一の62.5ns周期が決定され
ているので、このことは、バス30からSTCバスへの
連続的な読取のパイプライン化を可能ならしめる。こう
して、好適な実施例では、2つのSTCI155サイク
ルが125nsの各バス30サイクルの間に実行され
る。
答フェーズに続いて、サイクル応答フェーズの間にバス
・ビジーまたはバス・エラーが報告されなかったと仮定
すると、STCI155はデータ・フェーズに入る。最
初の32ビットは、DP、UDS、LDSとともに、記
憶16とその相手の領域162中の適当な位置からの構
造30のA、Bバス上で受領され、S/88クロックの
バス30サイクルの後半の開始により、レジスタ42
8、429中にそれぞれラッチされる。服従両モードま
たは服従Aモードがアクティブであると仮定すると、デ
ータは次のS/88クロック・サイクル(次のバス30
サイクルの開始)でレジスタ428からバッファ430
へゲートされる。64ビット転送の場合、第2の32ビ
ットが、以前のデータのバッファ430への転送と同時
にレジスタ428及び429にラッチされる。バリティ
発生器431は、バッファ430に記憶されているデー
タ・ワードに奇パリティを追加する。これらのデータ及
びパリティ・ビットは、受領されたUDS、LDS、及
びDPビットとともに、バス435及び436を介して
論理402Cに印加される。論理402Cは、これらの
ビットを、対のSTCI155a中で発生された対応ビ
ットと比較する。バッファ430はここで、第1のデー
タ・ワードとパリティとを、STCバス157のバス4
06を介してキャッシュ・コントローラ153に転送す
るために次のSTCバス・サイクルの間に駆動すべきバ
ッファ432上にゲートする。バッファ432は、S/
88クロックの活動化の後同期化されるS/370クロ
ックによって刻時される。S/88とS/370の両方
のクロックに対して同一の62.5ns周期が決定され
ているので、このことは、バス30からSTCバスへの
連続的な読取のパイプライン化を可能ならしめる。こう
して、好適な実施例では、2つのSTCI155サイク
ルが125nsの各バス30サイクルの間に実行され
る。
STCI155に対する順次的な許可を仮定すると、第
2のデータ・フェーズが上述の第1のデータ・フェーズ
に続くことになる(バス・エラーがないものとする)。
64ビット・データ転送を想定すると、データはこのと
き、バッファ428(服従Bモードの場合バッファ42
9)からバッファ430へとクロックされるデータと同
時にレジスタ428及び429へとクロックされること
になる。よって、好適な実施例においてパイプラインさ
れたデータ・フローを維持するために、連続的な64ビ
ット転送がどのようにして利用され得るかが理解されよ
う。
2のデータ・フェーズが上述の第1のデータ・フェーズ
に続くことになる(バス・エラーがないものとする)。
64ビット・データ転送を想定すると、データはこのと
き、バッファ428(服従Bモードの場合バッファ42
9)からバッファ430へとクロックされるデータと同
時にレジスタ428及び429へとクロックされること
になる。よって、好適な実施例においてパイプラインさ
れたデータ・フローを維持するために、連続的な64ビ
ット転送がどのようにして利用され得るかが理解されよ
う。
データ・フェーズの間に高速ECCエラーまたはデータ
不一致またはパリティ・エラーが発生した場合、STC
アドレス/データ・バス406上のデータと同時に、論
理402CによってSTC無効が線433上に発行され
る。さらに、もし後のデータが、データが無効化された
サイクルの後のサイクルで到着するなら、そのデータ・
サイクルに続いて、A及びBバスの両方で、STCIS
BI論理によってバス・エラー条件が強制される。この
ことは、2サイクル後に(すなわちバス・エラーが報告
されてから1サイクル後に)データが再駆動され、以て
フェッチされたデータを順序に従って転送することによ
ってSTCバス上のデータの完全性と機能性を維持する
ことを保証する。A及びBバス上の駆動バス・エラー
は、「真の」バス・エラーに対するECCエラー条件を
報告するメモリ16に等価であり、以てシステム・バス
30上の全てのコントローラに沿うバス服従論理中に変
化を引き起こさないようにする。
不一致またはパリティ・エラーが発生した場合、STC
アドレス/データ・バス406上のデータと同時に、論
理402CによってSTC無効が線433上に発行され
る。さらに、もし後のデータが、データが無効化された
サイクルの後のサイクルで到着するなら、そのデータ・
サイクルに続いて、A及びBバスの両方で、STCIS
BI論理によってバス・エラー条件が強制される。この
ことは、2サイクル後に(すなわちバス・エラーが報告
されてから1サイクル後に)データが再駆動され、以て
フェッチされたデータを順序に従って転送することによ
ってSTCバス上のデータの完全性と機能性を維持する
ことを保証する。A及びBバス上の駆動バス・エラー
は、「真の」バス・エラーに対するECCエラー条件を
報告するメモリ16に等価であり、以てシステム・バス
30上の全てのコントローラに沿うバス服従論理中に変
化を引き起こさないようにする。
同様に、バス435、436を介する入来データとチェ
ック・パリティを比較するために使用される論理402
Cはまた、レジスタ428または429を介するシステ
ム・バス30からの「巡回」データ比較を実行すること
によって、論理402Eにおけるデータ出力比較の結果
を検証するために記憶動作に関して使用することができ
る。このことは、ボード101上でトランシーバ13の
問題をより迅速に識別することを支援し、もし不一致が
存在し、バス・エラーが次のバス・サイクルで報告され
ないなら記憶上にボード破断論理403をセットするこ
とになる。さらに、フェッチ及び記憶動作の場合の有効
な不一致に関して障害条件を発生することになる全ての
比較出力402a乃至gは、論理403で破断条件を発
生することになる。破断の初期設定は、A及びBバスの
両方でバス・エラー信号を発生し、以て前のサイクルに
おけるサイクル決定フェーズを取り消す間に前のサイク
ルにおけるデータ転送を反復することを保証する。
ック・パリティを比較するために使用される論理402
Cはまた、レジスタ428または429を介するシステ
ム・バス30からの「巡回」データ比較を実行すること
によって、論理402Eにおけるデータ出力比較の結果
を検証するために記憶動作に関して使用することができ
る。このことは、ボード101上でトランシーバ13の
問題をより迅速に識別することを支援し、もし不一致が
存在し、バス・エラーが次のバス・サイクルで報告され
ないなら記憶上にボード破断論理403をセットするこ
とになる。さらに、フェッチ及び記憶動作の場合の有効
な不一致に関して障害条件を発生することになる全ての
比較出力402a乃至gは、論理403で破断条件を発
生することになる。破断の初期設定は、A及びBバスの
両方でバス・エラー信号を発生し、以て前のサイクルに
おけるサイクル決定フェーズを取り消す間に前のサイク
ルにおけるデータ転送を反復することを保証する。
記憶の場合とは異なり、フェッチの場合、そのユニット
がSTCビジー線440を降下させて別のコマンドを受
領することができるようになる前に、FIFOに前以て
存在する全てのコマンド及び現在のフェッチが実行され
なくてはならない。キャッシュ・コントローラ153
は、別の記憶コマンドを発行することができるようにな
る前に、フェッチ・コマンドのためのデータを受領しな
くてはならない。
がSTCビジー線440を降下させて別のコマンドを受
領することができるようになる前に、FIFOに前以て
存在する全てのコマンド及び現在のフェッチが実行され
なくてはならない。キャッシュ・コントローラ153
は、別の記憶コマンドを発行することができるようにな
る前に、フェッチ・コマンドのためのデータを受領しな
くてはならない。
可用な読取/書込サイクル・タイプの定義が第36A乃
至D図に示されており、そこでは、 UU=上位ワードの上位バイト UM=中間ワードの上位バイト LM=中間ワードの下位バイト LL=下位ワードの下位バイト MEM16=16ビット・メモリ・サイクル MEM32=32ビット・メモリ・サイクル MEM64=64ビット・メモリ・サイクル LW=長ワード(32ビット) UDS=上方データ・ストローブ LDS=下方データ・ストローブ 64ビット書込は、装置155の好適な実施例ではハー
ドウェアを最小限に抑えることを主眼としているので可
用ではない。64×36FIFOは、S/370からの
32ビット記憶転送をサポートするに十分である。32
ビット書込しか使用しないことによる性能上の制約とし
て、インターリーブされた記憶16中の各S/88メモ
リ・ボード「葉体」は32ビット長(64ビットに8E
CCビットを追加したもの)であるので、各葉体は、一
旦書込に関してアクセスされると、3つの追加的(12
5ns)サイクルの間ビジーにとどまる。このことは、
連続的な書込において、5サイクル(625ns)毎に
一度だけしか同一の葉体にアクセスすることができない
ことを意味する。全てのS/370の32ビット書込は
連続的アドレスに対して決定されるので、このことは、
同一の64ビット境界内の連続的転送が5サイクル(6
25ns)毎よりも速く発行することができず、一方、
異なる64ビット境界上の連続的転送は(調停に勝つと
仮定すると)、順次的な125nsサイクルで発行する
ことができることを意味する。
至D図に示されており、そこでは、 UU=上位ワードの上位バイト UM=中間ワードの上位バイト LM=中間ワードの下位バイト LL=下位ワードの下位バイト MEM16=16ビット・メモリ・サイクル MEM32=32ビット・メモリ・サイクル MEM64=64ビット・メモリ・サイクル LW=長ワード(32ビット) UDS=上方データ・ストローブ LDS=下方データ・ストローブ 64ビット書込は、装置155の好適な実施例ではハー
ドウェアを最小限に抑えることを主眼としているので可
用ではない。64×36FIFOは、S/370からの
32ビット記憶転送をサポートするに十分である。32
ビット書込しか使用しないことによる性能上の制約とし
て、インターリーブされた記憶16中の各S/88メモ
リ・ボード「葉体」は32ビット長(64ビットに8E
CCビットを追加したもの)であるので、各葉体は、一
旦書込に関してアクセスされると、3つの追加的(12
5ns)サイクルの間ビジーにとどまる。このことは、
連続的な書込において、5サイクル(625ns)毎に
一度だけしか同一の葉体にアクセスすることができない
ことを意味する。全てのS/370の32ビット書込は
連続的アドレスに対して決定されるので、このことは、
同一の64ビット境界内の連続的転送が5サイクル(6
25ns)毎よりも速く発行することができず、一方、
異なる64ビット境界上の連続的転送は(調停に勝つと
仮定すると)、順次的な125nsサイクルで発行する
ことができることを意味する。
64ビット読取サイクルはサポートされ、この場合、連
続的な読取が同一の葉体にアクセスしない限り、それら
は連続的サイクルで実行することができる。さもなけれ
ば、それらは、2サイクル(250ns)毎に実行する
ことができる。各32ビットは、62.5ns毎に64
ビット読取についてバス30から受け取ることができる
ので(例えば、125nsのバス・サイクル毎に2
回)、STCバス及びバス30の時間は、受領された後
システム・バス30からSTCバス157へデータをパ
イプラインさせることができるように一致している。サ
イクルを適切に同期化し、各データ・バイトのパリティ
発生を可能ならしめるために、レジスタ428及び42
9によりバッファの2つの追加のレベル(バッファ43
0及び432)が使用される。
続的な読取が同一の葉体にアクセスしない限り、それら
は連続的サイクルで実行することができる。さもなけれ
ば、それらは、2サイクル(250ns)毎に実行する
ことができる。各32ビットは、62.5ns毎に64
ビット読取についてバス30から受け取ることができる
ので(例えば、125nsのバス・サイクル毎に2
回)、STCバス及びバス30の時間は、受領された後
システム・バス30からSTCバス157へデータをパ
イプラインさせることができるように一致している。サ
イクルを適切に同期化し、各データ・バイトのパリティ
発生を可能ならしめるために、レジスタ428及び42
9によりバッファの2つの追加のレベル(バッファ43
0及び432)が使用される。
各27ビット・アドレス及び4ビット機能コードは、バ
ス30サイクル決定フェーズの間に、随伴パリティ・ビ
ットとともに送られる。32ビット・データはまた、バ
ス30データ・フェーズの間に、関連するパリティ・ビ
ットをもつ。バス30上の基本的125nsサイクル
は、正常の16及び32ビット転送のみならず、125
ns窓内の64ビット読取転送をも許容する。オプショ
ンとして、STCI155中の連続的64ビット書込転
送をサポートするために、追加的ハードウエアを使用す
ることができる。
ス30サイクル決定フェーズの間に、随伴パリティ・ビ
ットとともに送られる。32ビット・データはまた、バ
ス30データ・フェーズの間に、関連するパリティ・ビ
ットをもつ。バス30上の基本的125nsサイクル
は、正常の16及び32ビット転送のみならず、125
ns窓内の64ビット読取転送をも許容する。オプショ
ンとして、STCI155中の連続的64ビット書込転
送をサポートするために、追加的ハードウエアを使用す
ることができる。
E16.S/370 I/Oサポート(第37図) 第37図は、S/370 I/O機能をサポートするた
めに使用することができるS/88ハードウェア及びア
プリケーション・コードの概要を図式的に示す図であ
る。ハードウェア装置は、601、602、615乃至
619、621及び623乃至625である。ソフトウ
エア(ファームウェア)ルーチンは、603乃至614
と、620、622及び626である。
めに使用することができるS/88ハードウェア及びア
プリケーション・コードの概要を図式的に示す図であ
る。ハードウェア装置は、601、602、615乃至
619、621及び623乃至625である。ソフトウ
エア(ファームウェア)ルーチンは、603乃至614
と、620、622及び626である。
次にこれらの要素の機能について説明する。ブロック6
06は、ブロック606乃至ブロック614からなるS
/88アプリケーション・コードのための主要制御であ
る。この機能の組は、EXEC370として知られ、S
/370外部装置、サービス、構成、オペレータのコン
ソールなどのエミュレーション及びサポートに関連する
全てのS/88アプリケーション・コード機能を実行す
る。
06は、ブロック606乃至ブロック614からなるS
/88アプリケーション・コードのための主要制御であ
る。この機能の組は、EXEC370として知られ、S
/370外部装置、サービス、構成、オペレータのコン
ソールなどのエミュレーション及びサポートに関連する
全てのS/88アプリケーション・コード機能を実行す
る。
ブロック603は、S/370マイクロプロセッサで走
るマイクロコードである。それはS/370CPU機能
をサポートする。ブロック603とブロック606の間
のプロトコルは、それらの間で互いにS/370 I/
O動作の開始及びその完了と、S/370 I/O装置
及びチャネル状況情報に関連して要求及び応答を通信す
ることを可能ならしめる。そのプロトコルはまた、ブロ
ック606が、ブロック603に特定のS/370CP
U機能を実行するように要求することを可能ならしめ
る。ブロック605はS/370記憶であり、それはブ
ロック603とブロック606の両方に直接アクセス可
能である。ブロック606は、S/88データ・ファイ
ルであるブロック602に含まれているデータを介して
適切なS/370構成を実行する。
るマイクロコードである。それはS/370CPU機能
をサポートする。ブロック603とブロック606の間
のプロトコルは、それらの間で互いにS/370 I/
O動作の開始及びその完了と、S/370 I/O装置
及びチャネル状況情報に関連して要求及び応答を通信す
ることを可能ならしめる。そのプロトコルはまた、ブロ
ック606が、ブロック603に特定のS/370CP
U機能を実行するように要求することを可能ならしめ
る。ブロック605はS/370記憶であり、それはブ
ロック603とブロック606の両方に直接アクセス可
能である。ブロック606は、S/88データ・ファイ
ルであるブロック602に含まれているデータを介して
適切なS/370構成を実行する。
ブロック604は、S/88端末装置を通じてS/37
0オペレータのパネルを与える別個の動作タスクであ
る。このタスクは、S/370処理の論理機能を妨害す
ることなく任意の時点で開始または停止することができ
る。ブロック607は、EXEC370の一部であっ
て、S/370処理とブロック604の間のインターフ
ェース・エミュレーション機能を提供する。
0オペレータのパネルを与える別個の動作タスクであ
る。このタスクは、S/370処理の論理機能を妨害す
ることなく任意の時点で開始または停止することができ
る。ブロック607は、EXEC370の一部であっ
て、S/370処理とブロック604の間のインターフ
ェース・エミュレーション機能を提供する。
ブロック601は、特にBCU156を含むS/370
のデバッグの目的のため書かれたS/370オブジェク
ト・コードを含むS/88データ「パッチ・ファィル」
のセットである。ブロック604によって与えられ、こ
れらの「パッチ・ファィル」のうちの1つのブロック6
05を選択しそれへのロードを行うデバッグ・パネルが
存在する。
のデバッグの目的のため書かれたS/370オブジェク
ト・コードを含むS/88データ「パッチ・ファィル」
のセットである。ブロック604によって与えられ、こ
れらの「パッチ・ファィル」のうちの1つのブロック6
05を選択しそれへのロードを行うデバッグ・パネルが
存在する。
ブロック608−1は、S/370チャネルをエミュレ
ートする役目を担うコードからなる。これは、S/37
0CCWのフェッチと、ブロック605との間のデータ
の移動と、ブロック603に対するS/370 I/O
割り込み情報の報告と、適正な制御ユニット・コード・
エミュレータの選択を実行する。2つ以上のS/370
チャネル(例えば608−2)が存在するけれども、同
一のコードが使用される。
ートする役目を担うコードからなる。これは、S/37
0CCWのフェッチと、ブロック605との間のデータ
の移動と、ブロック603に対するS/370 I/O
割り込み情報の報告と、適正な制御ユニット・コード・
エミュレータの選択を実行する。2つ以上のS/370
チャネル(例えば608−2)が存在するけれども、同
一のコードが使用される。
ブロック609−1は、S/370制御ユニットエミュ
レータ・コードである。システム/370は、多くの異
なるタイプの制御装置、すなわち、DASDコントロー
ラ、テープ・コントローラ、通信コントローラをもつ。
S/370コントローラ機能は、ブロック609−1
と、ブロック610乃至614の間で区画されている。
ブロック609−1の主要な目的はアドレス分離機能で
あるが、別の制御ユニット特定機能もブロック609−
1に存在していてもよい。それゆえ、このタイプのブロ
ック(例えばブロック609−2)は2つ以上、すなわ
ちDASDコントローラ・エミュレータ、通信コントロ
ーラ・エミュレータなどが存在するが、サポートされて
いるそれらのS/370制御ユニットと一対一対応が存
在する訳ではない。
レータ・コードである。システム/370は、多くの異
なるタイプの制御装置、すなわち、DASDコントロー
ラ、テープ・コントローラ、通信コントローラをもつ。
S/370コントローラ機能は、ブロック609−1
と、ブロック610乃至614の間で区画されている。
ブロック609−1の主要な目的はアドレス分離機能で
あるが、別の制御ユニット特定機能もブロック609−
1に存在していてもよい。それゆえ、このタイプのブロ
ック(例えばブロック609−2)は2つ以上、すなわ
ちDASDコントローラ・エミュレータ、通信コントロ
ーラ・エミュレータなどが存在するが、サポートされて
いるそれらのS/370制御ユニットと一対一対応が存
在する訳ではない。
ブロック610は、S/370コンソールをエミュレー
トするために必要なコードをあらわす。ブロック611
は、S/370端末をエミュレートするために必要なコ
ードをあらわす。ブロック612は、S/370リーダ
をエミュレートするために必要なコードをあらわす。こ
れは、標準VMリーダの後でパターン化される仮想入力
装置である。これは、典型的にはテープまたはディスケ
ットである別のソースから発生された順次ファィルに入
力に対処する。
トするために必要なコードをあらわす。ブロック611
は、S/370端末をエミュレートするために必要なコ
ードをあらわす。ブロック612は、S/370リーダ
をエミュレートするために必要なコードをあらわす。こ
れは、標準VMリーダの後でパターン化される仮想入力
装置である。これは、典型的にはテープまたはディスケ
ットである別のソースから発生された順次ファィルに入
力に対処する。
ブロック613は、S/370プリンタをエミュレート
するために必要なコードをあらわす。実際のS/88プ
リンタを駆動することもでき、あるいは後でスプール・
プリントするためにS/370データをS/88ファィ
ルに書くこともできる。ブロック614は、S/370
ディスクをエミュレートするために必要なコードをあら
わす。2つの異なるフォーマット、すなわち、カウン
ト、キー及びデータと、固定ブロックが2つの異なるコ
ードのセットによってサポートされている。
するために必要なコードをあらわす。実際のS/88プ
リンタを駆動することもでき、あるいは後でスプール・
プリントするためにS/370データをS/88ファィ
ルに書くこともできる。ブロック614は、S/370
ディスクをエミュレートするために必要なコードをあら
わす。2つの異なるフォーマット、すなわち、カウン
ト、キー及びデータと、固定ブロックが2つの異なるコ
ードのセットによってサポートされている。
ブロック615は、典型的にはS/88コンソール出力
装置である、S/88端末をあらわす。S/88コンソ
ールは、S/370に対して3278または3279端
末として見えることになるディスク上のログに対してメ
ッセージをログすることに加えて、S/88オペレータ
・メッセージとS/370オペレータ・メッセージの両
方を表示する。
装置である、S/88端末をあらわす。S/88コンソ
ールは、S/370に対して3278または3279端
末として見えることになるディスク上のログに対してメ
ッセージをログすることに加えて、S/88オペレータ
・メッセージとS/370オペレータ・メッセージの両
方を表示する。
ブロック616は、S/88端末をあらわす。ブロック
617は、S/88ディスク上の順次データ・ファィル
をあらわす。ブロック618は、S/88ディスク上の
S/88プリンタまたは順次データ・ファィルをあらわ
す。ブロック619は、S/88ディスク上のS/88
データ・ファィルをあらわす。ブロック620は、S/
88テープ装置上に取り付けられたシステム/370テ
ープを読取り、それがもとのS/370テープ上にあら
われるようにブロック617中へとフォーマットするコ
ードである。ブロック621は、S/370で書かれた
テープを取り付けられてなるS/88テープ・ドライブ
をあらわす。
617は、S/88ディスク上の順次データ・ファィル
をあらわす。ブロック618は、S/88ディスク上の
S/88プリンタまたは順次データ・ファィルをあらわ
す。ブロック619は、S/88ディスク上のS/88
データ・ファィルをあらわす。ブロック620は、S/
88テープ装置上に取り付けられたシステム/370テ
ープを読取り、それがもとのS/370テープ上にあら
われるようにブロック617中へとフォーマットするコ
ードである。ブロック621は、S/370で書かれた
テープを取り付けられてなるS/88テープ・ドライブ
をあらわす。
ブロック622は、パーソナル・コンピュータからS/
88に入力されたファィルを読取り、それがS/370
システム上に生成されたときにもともとあらわれるよう
にブロック617にフォーマットするコードである。
88に入力されたファィルを読取り、それがS/370
システム上に生成されたときにもともとあらわれるよう
にブロック617にフォーマットするコードである。
ブロック623は、S/88及びS/370との間でデ
ータを送受信するように構成されたパーソナル・コンピ
ュータである。ブロック624は、S/370システム
である。ブロック625は、S/88スプール・プリン
タをあらわす。ブロック626は、S/88ファィルを
エミュレートされたシステム/370DASD装置にフ
ォーマットするコードである。これは、ファィルを、S
/370 DASDによってサポートされる所望のもの
にフォーマットするS/88の個別に走るタスクであ
る。
ータを送受信するように構成されたパーソナル・コンピ
ュータである。ブロック624は、S/370システム
である。ブロック625は、S/88スプール・プリン
タをあらわす。ブロック626は、S/88ファィルを
エミュレートされたシステム/370DASD装置にフ
ォーマットするコードである。これは、ファィルを、S
/370 DASDによってサポートされる所望のもの
にフォーマットするS/88の個別に走るタスクであ
る。
E17.S/370 I/O動作、ファームウェアの概
要 システムS/370 I/Oの簡略化された概要を説明
する。S/370アーキテクチャは、いくつかのタイプ
のI/O命令と、プログラムがテスト可能な条件コード
(CC)スキームと、プログラム割り込み機構を提供す
る。概念的には、I/O命令は「I/Oチャネル」に向
けられ、これは別のCPU処理と並列的にI/O動作の
作業を指令及び制御し、I/O命令が(条件コードを介
して)実行するとき、またはI/O動作が(プログラム
割り込みにより)完了されたとき、CPUに対して状況
を報告する。
要 システムS/370 I/Oの簡略化された概要を説明
する。S/370アーキテクチャは、いくつかのタイプ
のI/O命令と、プログラムがテスト可能な条件コード
(CC)スキームと、プログラム割り込み機構を提供す
る。概念的には、I/O命令は「I/Oチャネル」に向
けられ、これは別のCPU処理と並列的にI/O動作の
作業を指令及び制御し、I/O命令が(条件コードを介
して)実行するとき、またはI/O動作が(プログラム
割り込みにより)完了されたとき、CPUに対して状況
を報告する。
S/370命令と、条件コードと、割り込みと、I/O
装置(DASD、テープ、端末など)は、緊密に設計さ
れている。しかし、I/Oチャネルは、デザインの幅を
与えるように疎に設計され、多くの異なる実現構成が存
在する。
装置(DASD、テープ、端末など)は、緊密に設計さ
れている。しかし、I/Oチャネルは、デザインの幅を
与えるように疎に設計され、多くの異なる実現構成が存
在する。
フォールト・トレラント・システム/370の全体の概
要は従って、S/370CPU(カスタマイズされたフ
ァームウェアをもつチップセット)と、S/88CPU
とオペレーティング・システムのタイムスライスからな
る「疑似I/Oチャネル」に、S/370 I/O装置
エミュレーションと、システム複合体の全体的制御の両
方を与える特殊ファームウェアとアプリケーション・レ
ベル・ソフトウェア(EXEC370)を追加したもの
である。この複合体のS/88部分は、フォールト・ト
レラントCPU、OS、I/O装置、電源/パッケー
ジ、バス及びメモリを与え、S/370CPUは、ハー
ドウェア冗長性及び追加された比較論理を通じてフォー
ルト・トレラントになされる。
要は従って、S/370CPU(カスタマイズされたフ
ァームウェアをもつチップセット)と、S/88CPU
とオペレーティング・システムのタイムスライスからな
る「疑似I/Oチャネル」に、S/370 I/O装置
エミュレーションと、システム複合体の全体的制御の両
方を与える特殊ファームウェアとアプリケーション・レ
ベル・ソフトウェア(EXEC370)を追加したもの
である。この複合体のS/88部分は、フォールト・ト
レラントCPU、OS、I/O装置、電源/パッケー
ジ、バス及びメモリを与え、S/370CPUは、ハー
ドウェア冗長性及び追加された比較論理を通じてフォー
ルト・トレラントになされる。
必要なカスタム・ファームウェア(すなわちマイクロコ
ード)は、次の2つのグループに分けられる。
ード)は、次の2つのグループに分けられる。
a.S/88プロセッサ上で走るS/88BCUファー
ムウェア(ETIO)−これは、BCU/DMACハー
ドウェア、DMAC割り込みサービス、及び状況とエラ
ー処理の初期化及び制御のためのサービス・ルーチンで
ある。
ムウェア(ETIO)−これは、BCU/DMACハー
ドウェア、DMAC割り込みサービス、及び状況とエラ
ー処理の初期化及び制御のためのサービス・ルーチンで
ある。
b.S/370(プロセッサ85)マイクロコード−こ
れは、I/O命令、I/O割り込み処理、及びリセット
の呼び出し、IPL、停止などのいくつかの特殊処理で
ある。
れは、I/O命令、I/O割り込み処理、及びリセット
の呼び出し、IPL、停止などのいくつかの特殊処理で
ある。
さまざまなファームウェア動作の文脈を理解するための
補助として、次のような典型的I/O動作、すなわちエ
ミュレートされたS/370 3278表示端末に対す
る80バイト・メッセージのS/370書込みにおいて
生じる次のような簡略化された事象のシーケンスを考慮
してみよう。
補助として、次のような典型的I/O動作、すなわちエ
ミュレートされたS/370 3278表示端末に対す
る80バイト・メッセージのS/370書込みにおいて
生じる次のような簡略化された事象のシーケンスを考慮
してみよう。
この例の場合、初期化は既に完了しており、S/370
とS/88は正常に動作しており、別のS/370 I
/O動作は進行中でないと仮定して第43図及び第19
AないしC図を参照する。PE62とBCU156の要
素の間のデータ/コマンド転送のおのおのは、第20図
に関連して説明される「切り放し」機構を使用して実行
される。第43図はフローチャートとは、この典型的な
開始I/O動作を図式的に示している。
とS/88は正常に動作しており、別のS/370 I
/O動作は進行中でないと仮定して第43図及び第19
AないしC図を参照する。PE62とBCU156の要
素の間のデータ/コマンド転送のおのおのは、第20図
に関連して説明される「切り放し」機構を使用して実行
される。第43図はフローチャートとは、この典型的な
開始I/O動作を図式的に示している。
A.S/370プロセッサ85が開始I/O命令に遭遇
する(チップセット150中の全てのI/O命令は、好
適な実施例ではマイクロコード化されている)。
する(チップセット150中の全てのI/O命令は、好
適な実施例ではマイクロコード化されている)。
B.SIOのためのカスタム・ファームウェアが呼び出
される。それはいくつかのパラメータを(S/370主
記憶中のIOA領域中の)固定メイルボックス位置18
8中に移動し、BCU156に対してサービス要求(プ
ロセッサからBCUへの要求)を送り、応答を待つ。
される。それはいくつかのパラメータを(S/370主
記憶中のIOA領域中の)固定メイルボックス位置18
8中に移動し、BCU156に対してサービス要求(プ
ロセッサからBCUへの要求)を送り、応答を待つ。
C.BCUハードウェアがその要求を検出し、S/37
0 IOA固定位置から16バイト・メイルボックスを
読み取るための命令を発生し、次にBCUからプロセッ
サへの肯定応答(「要求がサービスされたことを意味す
る」)によりその要求をリセットすることによってその
要求に応える。
0 IOA固定位置から16バイト・メイルボックスを
読み取るための命令を発生し、次にBCUからプロセッ
サへの肯定応答(「要求がサービスされたことを意味す
る」)によりその要求をリセットすることによってその
要求に応える。
D.S/370プロセッサ85においては、SIO命令
を終了させ次の順次的命令で処理を続けるためにSIO
ファームウェアが解放される。
を終了させ次の順次的命令で処理を続けるためにSIO
ファームウェアが解放される。
E.事象Cの結果として、事象Dと同時に、S/370
ハードウェアがバス170を介して、アダプタ154中
のBCUインターフェース・バッファ259に16バイ
トのメイルボックス・データを転送する。
ハードウェアがバス170を介して、アダプタ154中
のBCUインターフェース・バッファ259に16バイ
トのメイルボックス・データを転送する。
F.データが(4バイト・ブロック中に)バッファされ
るにつれて、ローカル記憶210中のワーク・キュー・
ブロック(WQB)に(4バイト・ブロック中の)メイ
ルボックス・データを転送するように、BCUハードウ
ェアが反復的にDMAC209(チャネル0)に通知す
る。
るにつれて、ローカル記憶210中のワーク・キュー・
ブロック(WQB)に(4バイト・ブロック中の)メイ
ルボックス・データを転送するように、BCUハードウ
ェアが反復的にDMAC209(チャネル0)に通知す
る。
G.16バイト転送が完了した時、DMAC209は、
S/88プロセッサ62に割り込み(第43図の通知)
を提供し、次のリンク・リスト項目をロードすることに
よって将来のメイルボックス動作に備える。この割り込
みは、プロセッサ62に対する8つのDMA割り込みの
うちの1つ、すなわち「正常」DMACチャネル0割り
込みである。
S/88プロセッサ62に割り込み(第43図の通知)
を提供し、次のリンク・リスト項目をロードすることに
よって将来のメイルボックス動作に備える。この割り込
みは、プロセッサ62に対する8つのDMA割り込みの
うちの1つ、すなわち「正常」DMACチャネル0割り
込みである。
H.S/88が(マスクによる遅延にさらされ得る)D
MAC割り込みを受け入れる時、(ETIO中のカスタ
ム・ファームウェア・サービスが実行する。これは、D
MAC209状況をチェックし、リンク・リストに対す
る参照によって先程受領したばかりのワーク・キュー・
ブロックを見出し、EXEC370のアプリケーション
・プログラムに渡すためにそのブロックをキューに入れ
る。
MAC割り込みを受け入れる時、(ETIO中のカスタ
ム・ファームウェア・サービスが実行する。これは、D
MAC209状況をチェックし、リンク・リストに対す
る参照によって先程受領したばかりのワーク・キュー・
ブロックを見出し、EXEC370のアプリケーション
・プログラムに渡すためにそのブロックをキューに入れ
る。
I.EXEC370はワーク・キューをチェックし、そ
のワーク・キュー・ブロックをキューから出し、ワーク
・キュー・ブロック中にデータ要求を構成し、3278
端末に送るべき80バイトのデータを得るために、ファ
ームウェア・ルーチンを呼び出す。
のワーク・キュー・ブロックをキューから出し、ワーク
・キュー・ブロック中にデータ要求を構成し、3278
端末に送るべき80バイトのデータを得るために、ファ
ームウェア・ルーチンを呼び出す。
J.ファームウェアは、DMAC209(チャネル1)
を用意して開始し、次に、アダプタ154、バス17
0、及び記憶コントローラ155を介して特定のS/3
70メモリ位置からの80バイトの読み出しを開始する
ためにBCUハードウェアにコマンドを送る。
を用意して開始し、次に、アダプタ154、バス17
0、及び記憶コントローラ155を介して特定のS/3
70メモリ位置からの80バイトの読み出しを開始する
ためにBCUハードウェアにコマンドを送る。
K.BCU156、アダプタ154及びDMAC209
は、ワーク・キュー・ブロックに80バイトを転送し、
DMAC209はS/88に割り込みを提供する。この
ことは、上記F.及びG.の動作に類似している。この
割り込み、すなわち「正常」DMACチャネル1割り込
みは、前述の8つのDMAC割り込みのうちの1つであ
る。
は、ワーク・キュー・ブロックに80バイトを転送し、
DMAC209はS/88に割り込みを提供する。この
ことは、上記F.及びG.の動作に類似している。この
割り込み、すなわち「正常」DMACチャネル1割り込
みは、前述の8つのDMAC割り込みのうちの1つであ
る。
L.ファームウェア割り込みサービス・ルーチンが再び
DMAC状況をチエックし、EXEC370のためにワ
ーク・キュー・ブロック・ポインタをキューに入れる。
DMAC状況をチエックし、EXEC370のためにワ
ーク・キュー・ブロック・ポインタをキューに入れる。
M.EXEC370が必要なデータ会話を行ない、その
データを、S/88オペレーティング・システムのサー
ビスを使用してエミュレートされた3278端末にデー
タを書き込む。いくらか時間が経って、EXEC370
は、その動作の終了(正常またはエラー)の通知を受け
取る。EXEC370は次に、ワーク・キュー・ブロッ
ク中に、状況を含む適当なS/370割り込みメッセー
ジを構築し、それをS/370メッセージ・キューに入
れるためにファームウェア・ルーチンを呼び出す。
データを、S/88オペレーティング・システムのサー
ビスを使用してエミュレートされた3278端末にデー
タを書き込む。いくらか時間が経って、EXEC370
は、その動作の終了(正常またはエラー)の通知を受け
取る。EXEC370は次に、ワーク・キュー・ブロッ
ク中に、状況を含む適当なS/370割り込みメッセー
ジを構築し、それをS/370メッセージ・キューに入
れるためにファームウェア・ルーチンを呼び出す。
N.ファームウェアは、DMAC(チャネル3)を用意
して開始させ、16バイトをS/370メッセージ・キ
ューに書き込むためにBCUハードウェアにコマンドを
送る。このことは、この場合、アダプタ154がその動
作の終了時点でS/370プロセッサ85においてマイ
クロコード・レベルの例外割り込みを発生する(また、
マスキング遅延にもさらされる)ことを除き、反対方向
のメイルボックス読取と同様である。
して開始させ、16バイトをS/370メッセージ・キ
ューに書き込むためにBCUハードウェアにコマンドを
送る。このことは、この場合、アダプタ154がその動
作の終了時点でS/370プロセッサ85においてマイ
クロコード・レベルの例外割り込みを発生する(また、
マスキング遅延にもさらされる)ことを除き、反対方向
のメイルボックス読取と同様である。
DMAC209はまた、上記G.及びK.と同様に、S
/88プロセッサ62に割り込みをかける(第43図の
「通知」)。この割り込み、すなわち「正常」DMAC
チャネル3割り込みは、8つのDMAC割り込みのうち
の1つである。
/88プロセッサ62に割り込みをかける(第43図の
「通知」)。この割り込み、すなわち「正常」DMAC
チャネル3割り込みは、8つのDMAC割り込みのうち
の1つである。
O.S/370プロセッサ85において、カスタム・フ
ァームウェアがその例外を処理し、チャネル・マスクに
ついて遅延の可能性をチエックしなくてはならない。そ
して、割り込みを、実行中のプログラムに提供すること
ができないようにマスクされているなら、実質的なデー
タがメッセージ・キュー領域189から保留割り込みキ
ューへと移動され、そのチャネルが次に割り込みをイネ
ーブルされた時に別のファームウェア・ハンドラがそれ
をサービスする。もしマスクされていないなら、このフ
ァームウェアはS/370の文脈を即時にそのプログラ
ムの割り込みルーチンに切り換える。
ァームウェアがその例外を処理し、チャネル・マスクに
ついて遅延の可能性をチエックしなくてはならない。そ
して、割り込みを、実行中のプログラムに提供すること
ができないようにマスクされているなら、実質的なデー
タがメッセージ・キュー領域189から保留割り込みキ
ューへと移動され、そのチャネルが次に割り込みをイネ
ーブルされた時に別のファームウェア・ハンドラがそれ
をサービスする。もしマスクされていないなら、このフ
ァームウェアはS/370の文脈を即時にそのプログラ
ムの割り込みルーチンに切り換える。
この改良されたフォールト・トレラント・システムの広
い視点は、接続されたスレーブI/Oプロセッサとして
のS/88の役割の概念化につながる。これは、S/3
70のためのI/Oハンドラまたは類似チャネルであ
る。しかし、実際的には、プロセッサ間の基本的な通信
は全て、(デザイン上の理由で)S/88から初期化さ
れなくてはならない。また、S/88は、EXEC37
0を介してS/370メモリ及びマイクロコードの全て
にアクセスすることができるけれども、その逆は真では
なく、S/370プロセッサ85は偶然にさえ、S/8
8記憶に全くアクセスすることができない。このよう
に、S/88に対するスレーブとしてのS/370がS
/370のより真実に近い姿であるが、その内部イメー
ジはS/370 I/Oをもつ通常の単独S/370で
ある。S/370はS/88が現存していることを「知
らない」。
い視点は、接続されたスレーブI/Oプロセッサとして
のS/88の役割の概念化につながる。これは、S/3
70のためのI/Oハンドラまたは類似チャネルであ
る。しかし、実際的には、プロセッサ間の基本的な通信
は全て、(デザイン上の理由で)S/88から初期化さ
れなくてはならない。また、S/88は、EXEC37
0を介してS/370メモリ及びマイクロコードの全て
にアクセスすることができるけれども、その逆は真では
なく、S/370プロセッサ85は偶然にさえ、S/8
8記憶に全くアクセスすることができない。このよう
に、S/88に対するスレーブとしてのS/370がS
/370のより真実に近い姿であるが、その内部イメー
ジはS/370 I/Oをもつ通常の単独S/370で
ある。S/370はS/88が現存していることを「知
らない」。
しかし、S/370プログラムはS/88とは非同期的
に走り妨害されてはならないので、S/370 I/O
命令は動作を開始することができなくてはならず、この
機能は、S/370が、S/88(通常I/O命令であ
る)を待つ最高優先順位メッセージをもつという単一の
意味をもつPU−BCU要求線256aによって提供さ
れる。このサービス要求の優先順位の性質は、自動メイ
ルボックス・スキーム及び、DMACチャネル0のリン
ク・リスト・プログラミングのための理由である。
に走り妨害されてはならないので、S/370 I/O
命令は動作を開始することができなくてはならず、この
機能は、S/370が、S/88(通常I/O命令であ
る)を待つ最高優先順位メッセージをもつという単一の
意味をもつPU−BCU要求線256aによって提供さ
れる。このサービス要求の優先順位の性質は、自動メイ
ルボックス・スキーム及び、DMACチャネル0のリン
ク・リスト・プログラミングのための理由である。
DMAC209は、BCUハードウェア・デザインの統
合部分である。それは、S/88ファームウェアによっ
て初期化され、また基本的には制御され、データ転送
は、チャネル毎に1つずつの4つの要求REQ入力線2
63a乃至dを駆動するBCUによってタイミング制御
される。さらに、外部BCU理論は、各メイルボックス
転送が完了する時チャネル0PCL線257aを活動化
し、以てDMAC209に、S/88プロセッサ62に
対する割り込み要求を提供させる。
合部分である。それは、S/88ファームウェアによっ
て初期化され、また基本的には制御され、データ転送
は、チャネル毎に1つずつの4つの要求REQ入力線2
63a乃至dを駆動するBCUによってタイミング制御
される。さらに、外部BCU理論は、各メイルボックス
転送が完了する時チャネル0PCL線257aを活動化
し、以てDMAC209に、S/88プロセッサ62に
対する割り込み要求を提供させる。
S/370とS/88の間には、次の4つの基本的デー
タ転送動作がある。
タ転送動作がある。
(1)メイルボックス読取 これは、サイズが16バイトで、アダプタ154チャネ
ルが0で、DMAC209チャネルが0で、DMAC動
作タイプが、連続なリンク・リストである。
ルが0で、DMAC209チャネルが0で、DMAC動
作タイプが、連続なリンク・リストである。
(2)データ読取 これは、サイズが1乃至4096バイトで、アダプタ1
54チャネルが0で、DMAC209チャネルが1で、
DMAC動作タイプが、スタート・ストップ優先使用可
能である。
54チャネルが0で、DMAC209チャネルが1で、
DMAC動作タイプが、スタート・ストップ優先使用可
能である。
(3)データ書込 これは、サイズが1乃至4096バイトで、アダプタ1
54チャネルが1で、DMAC209チャネルが2で、
DMAC動作タイプが、スタート・ストップ優先使用可
能である。
54チャネルが1で、DMAC209チャネルが2で、
DMAC動作タイプが、スタート・ストップ優先使用可
能である。
(4)メッセージ・キュー書込 これは、サイズが16バイトで、アダプタ154チャネ
ルが1で、DMAC209チャネルが3で、DMAC動
作タイプが、スタート・ストップである。
ルが1で、DMAC209チャネルが3で、DMAC動
作タイプが、スタート・ストップである。
DMAC209の初期化及びプログラミングは、完全に
標準的であり、好適にはMC68450アーキテクチャ
に合致するものである。要約すると、 4チャネル全て−ワード(16ビット)転送サイズ、要
求線が転送を制御、記憶210中のメモリ・アドレスが
カウント・アップする、装置(BCUデータ・バッファ
・レジスタ)アドレスはカウントしない、割り込みイネ
ーブル済み、ホールドなしのサイクル・スチール、肯定
応答/暗示的アドレス/単一アドレシング・モードを有
する装置、16ビット装置ポート、PCL=状況入力 上記に追加してさらに、 チャネル0:装置からメモリ(記憶210)転送、リン
クされたれたアレイ・チェイニング、PCL=割り込み
による状況入力 チャネル1:装置からメモリ(記憶210)転送、チェ
イニングなし チャネル2及び3: メモリ(記憶210)から装置へ
の転送、チェイニングなし DMACは、装置が16ビット・データをもつと「考
慮」するが、外部論理は、32ビット転送をもたらす。
DMAC209のチャネル0で使用されるリンクされた
アレイ・チェイニング・モードは、リンクされたリスト
が存在することを意味し、それは、ETIO初期化ルー
チンによってセット・アップされる。チャネル0が一旦
開始されると、それは、エラー条件によるか、またはリ
ンクされたリストの最後の有効エントリに遭遇すること
によってのみ停止する。正常動作では、S/88に対す
る割り込みはDMAC209がメイルボックス読取を完
了する度毎に生じ、ファームウェアがリンクされたリス
トをリアルタイムでモニタして供給する。こうして、リ
ストの最後のエントリには決して到達することがなく、
チャネル0は連続的に走る(アイドルする)。
標準的であり、好適にはMC68450アーキテクチャ
に合致するものである。要約すると、 4チャネル全て−ワード(16ビット)転送サイズ、要
求線が転送を制御、記憶210中のメモリ・アドレスが
カウント・アップする、装置(BCUデータ・バッファ
・レジスタ)アドレスはカウントしない、割り込みイネ
ーブル済み、ホールドなしのサイクル・スチール、肯定
応答/暗示的アドレス/単一アドレシング・モードを有
する装置、16ビット装置ポート、PCL=状況入力 上記に追加してさらに、 チャネル0:装置からメモリ(記憶210)転送、リン
クされたれたアレイ・チェイニング、PCL=割り込み
による状況入力 チャネル1:装置からメモリ(記憶210)転送、チェ
イニングなし チャネル2及び3: メモリ(記憶210)から装置へ
の転送、チェイニングなし DMACは、装置が16ビット・データをもつと「考
慮」するが、外部論理は、32ビット転送をもたらす。
DMAC209のチャネル0で使用されるリンクされた
アレイ・チェイニング・モードは、リンクされたリスト
が存在することを意味し、それは、ETIO初期化ルー
チンによってセット・アップされる。チャネル0が一旦
開始されると、それは、エラー条件によるか、またはリ
ンクされたリストの最後の有効エントリに遭遇すること
によってのみ停止する。正常動作では、S/88に対す
る割り込みはDMAC209がメイルボックス読取を完
了する度毎に生じ、ファームウェアがリンクされたリス
トをリアルタイムでモニタして供給する。こうして、リ
ストの最後のエントリには決して到達することがなく、
チャネル0は連続的に走る(アイドルする)。
各DMACチャネルには2つの割り込みベクタ・レジス
タNIV、EIV(第18図)が設けられ、1つは正常
の動作終了のためのものであり、もう1つは検出された
エラーによって強制された終了のためのものである。こ
の実施例は、マイクロコード記憶174中に8つの個別
のETIO割り込みルーチンをもつ、全部で8つのベク
タを使用する。さらに、チャネル0の正常割り込みは、
2つの可能的意味、すなわち、PCLによって引き起こ
された「メイルボックス受信」、及びより一般的でない
「リンク・リストの終了によるチャネルの停止」を意味
する。割り込みハンドラは、DMAC状況リストをテス
トすることによってこれらを識別する。
タNIV、EIV(第18図)が設けられ、1つは正常
の動作終了のためのものであり、もう1つは検出された
エラーによって強制された終了のためのものである。こ
の実施例は、マイクロコード記憶174中に8つの個別
のETIO割り込みルーチンをもつ、全部で8つのベク
タを使用する。さらに、チャネル0の正常割り込みは、
2つの可能的意味、すなわち、PCLによって引き起こ
された「メイルボックス受信」、及びより一般的でない
「リンク・リストの終了によるチャネルの停止」を意味
する。割り込みハンドラは、DMAC状況リストをテス
トすることによってこれらを識別する。
S/88ファームウェアはまた、初期化と、上述の3つ
の基本的データ転送の開始と、データ読取と、データ書
込と、メッセージ・キュー書込というEXEC370の
ための4つのサービス・エントリを提供する。
の基本的データ転送の開始と、データ読取と、データ書
込と、メッセージ・キュー書込というEXEC370の
ための4つのサービス・エントリを提供する。
ETIO初期化エントリは、通常、電源投入の直ぐ後で
呼び出されるが、エラー回復試行のための再初期化のた
めにも使用することができる。それは、BCUハードウ
ェアとDMAC209をリセットし、構成及び制御値で
以て4つの全てのチャネル中のDMACレジスタをプロ
グラムする。それはまた、必要なリンク・リスト及びチ
ャネル0を開始して、DMAC209をして最初のリン
ク・リスト・パラメータを自動ロードさせ次に線263
a上のBCUハードウェアからの要求遷移を待たせる。
呼び出されるが、エラー回復試行のための再初期化のた
めにも使用することができる。それは、BCUハードウ
ェアとDMAC209をリセットし、構成及び制御値で
以て4つの全てのチャネル中のDMACレジスタをプロ
グラムする。それはまた、必要なリンク・リスト及びチ
ャネル0を開始して、DMAC209をして最初のリン
ク・リスト・パラメータを自動ロードさせ次に線263
a上のBCUハードウェアからの要求遷移を待たせる。
別の3つのサービス・エントリは、DMACチャネル1
(データ読取)、2(データ書込)及び3(メッセージ
・キュー書込)を開始させるために呼び出される。呼び
出しプログラム(EXEC370)は、データ・アドレ
ス、カウントなどをプリセットされているワーク・キュ
ー・ブロックに対するポインタを提供する。これらのル
ーチンは、DMAC209及びBCUハードウェアを即
時に開始させるか、または、もしDMACチャネルがビ
ジーなら動作をキューに入れる(第41E図に示す個別
の「作業保留」キューがこれら3つのチャネルのめいめ
いのために保持されている)。要求されたサービスが一
旦開始され、またはキューに入れられると、制御は呼び
出し側プログラムに戻され、割り込みハンドラは、完了
まで動作を続ける。
(データ読取)、2(データ書込)及び3(メッセージ
・キュー書込)を開始させるために呼び出される。呼び
出しプログラム(EXEC370)は、データ・アドレ
ス、カウントなどをプリセットされているワーク・キュ
ー・ブロックに対するポインタを提供する。これらのル
ーチンは、DMAC209及びBCUハードウェアを即
時に開始させるか、または、もしDMACチャネルがビ
ジーなら動作をキューに入れる(第41E図に示す個別
の「作業保留」キューがこれら3つのチャネルのめいめ
いのために保持されている)。要求されたサービスが一
旦開始され、またはキューに入れられると、制御は呼び
出し側プログラムに戻され、割り込みハンドラは、完了
まで動作を続ける。
S/88カスタム・ファームウェアの第3の、小さいけ
れども極めて重要な領域は、カスタム・ハンドラに対す
るものであるがS/88オペレーティング・システムに
は透過的でる8つのDMAC割り込みに介入してベクタ
するための、S/88オペレーティング・システムの変
更部分である。それには、レベル6(通常、電源障害の
とき自動ベクタされる)としてオペレーティング・シス
テム中の標準アーキテクチャのMC68020のベクタ
・テーブルに変更を加え、オペレーティング・システム
中にそのカスタム割り込みハンドラを配置することに関
与する。これは好適な実施例であるが、割り込みのため
の初期化ルーチンに関連する章で後で説明するように、
論理バス223上にベクタを配置するための論理をBC
U156中に与え、以てベクタ変更の必要性を解消する
こともできる。
れども極めて重要な領域は、カスタム・ハンドラに対す
るものであるがS/88オペレーティング・システムに
は透過的でる8つのDMAC割り込みに介入してベクタ
するための、S/88オペレーティング・システムの変
更部分である。それには、レベル6(通常、電源障害の
とき自動ベクタされる)としてオペレーティング・シス
テム中の標準アーキテクチャのMC68020のベクタ
・テーブルに変更を加え、オペレーティング・システム
中にそのカスタム割り込みハンドラを配置することに関
与する。これは好適な実施例であるが、割り込みのため
の初期化ルーチンに関連する章で後で説明するように、
論理バス223上にベクタを配置するための論理をBC
U156中に与え、以てベクタ変更の必要性を解消する
こともできる。
好適な実施例のS/88ファームウェアは全てMC68
020アセンブラ言語で書かれ、よって、マイクロコー
ドとは適切に呼ぶことができない。それは、その機能の
性質から、ファームウェアであると考えられる。
020アセンブラ言語で書かれ、よって、マイクロコー
ドとは適切に呼ぶことができない。それは、その機能の
性質から、ファームウェアであると考えられる。
S/370プロセッサ85のために必要なカスタマイズ
されたファームウェアには4つのカテゴリがある。
されたファームウェアには4つのカテゴリがある。
(1)S/88疑似チャネルに至るマイクロコード化さ
れたI/O命令 (2)I/O命令を含む、S/88から入来する非同期
メッセージの処理 (3)全ての(エミュレートされた)S/370 I/
O装置の構成データ及び状況の維持 (4)ユーザー・マニュアル動作のサブセットの実現 この特殊ファームウェアは全てS/370マイクロコー
ドで書かれ、それは可能な限り既存の機能サブルーチン
を使用している。
れたI/O命令 (2)I/O命令を含む、S/88から入来する非同期
メッセージの処理 (3)全ての(エミュレートされた)S/370 I/
O装置の構成データ及び状況の維持 (4)ユーザー・マニュアル動作のサブセットの実現 この特殊ファームウェアは全てS/370マイクロコー
ドで書かれ、それは可能な限り既存の機能サブルーチン
を使用している。
S/370には10個のI/Oタイプ命令が存在し、こ
れは、第44AないしI図を参照してより詳細に説明す
る。
れは、第44AないしI図を参照してより詳細に説明す
る。
CLRCH−チャネル・クリア(チャネルのみの動作) CLRIO−I/Oクリア HDV−装置停止 HIO−I/O停止 RIO−I/O再開 SIO−I/O開始 SIOF−I/O高速開始 STIDC−チャネルID記憶(チャネルのみの動作) TCH−チャネル・テスト(チャネルのみの動作) TIO−I/Oテスト これらの命令のおのおのは、S/370アーキテクチャ
との整合性を維持しつつメイルボックス機構を介してS
/88中のEXEC370に全ての実質的な情報を渡す
ように、マイクロコードで実現される。
との整合性を維持しつつメイルボックス機構を介してS
/88中のEXEC370に全ての実質的な情報を渡す
ように、マイクロコードで実現される。
アダプタ154中のいくつかの異なるハードウェア条件
は、S/370プロセッサ85中のマイクロコード・レ
ベルの「強制された例外」のいくつかの可能な原因の1
つである、「アダプタ注意」要求の活動化をもたらす。
マイクロコードによるこの例外のサービスは、(もしプ
ロセッサ85が待機状態にあるなら即時に)S/370
命令の間で生じる。「アダプタ注意」の最も頻度が高く
共通の原因は、PE85が、I/O疑似チャネルS/8
8からS/370主記憶のIOA区画の固定メッセージ
・キュー領域189へのメッセージを受け取ることであ
る。
は、S/370プロセッサ85中のマイクロコード・レ
ベルの「強制された例外」のいくつかの可能な原因の1
つである、「アダプタ注意」要求の活動化をもたらす。
マイクロコードによるこの例外のサービスは、(もしプ
ロセッサ85が待機状態にあるなら即時に)S/370
命令の間で生じる。「アダプタ注意」の最も頻度が高く
共通の原因は、PE85が、I/O疑似チャネルS/8
8からS/370主記憶のIOA区画の固定メッセージ
・キュー領域189へのメッセージを受け取ることであ
る。
既存のS/370マイクロコード例外ハンドラは、「ア
ダプタ注意」の場合のために変更される。コードは、要
求の原因を決定するためにアダプタ154状況をテスト
し、「キュー非空」(これは、メッセージが受け取られ
たことを意味する)処理のみをカスタマイズし、別の原
因は、処理のために既存の非変更コードに戻る。
ダプタ注意」の場合のために変更される。コードは、要
求の原因を決定するためにアダプタ154状況をテスト
し、「キュー非空」(これは、メッセージが受け取られ
たことを意味する)処理のみをカスタマイズし、別の原
因は、処理のために既存の非変更コードに戻る。
受信されたメッセージの決定されるカテゴリは、次のと
おりである。
おりである。
0000 NOP:動作しない。
0001 RESET:既存のS/370プログラム・
リセット・ルーチンを呼び出す。
リセット・ルーチンを呼び出す。
0002 CLEAR RESET:既存のS/370
クリア・リセット・ルーチンを呼び出す。
クリア・リセット・ルーチンを呼び出す。
0003 HALT:S/370プログラム実行を停止
し、ISTEPモードをターン・オンする。
し、ISTEPモードをターン・オンする。
0004 STEP:命令ステップ、1つの命令を実行
し、停止する。
し、停止する。
0005 RUN:ISTEPモードをリセットし、プ
ログラムの実行を再開する。
ログラムの実行を再開する。
0006 LPSW:メッセージ内に与えられたPSW
を使用して、S/370「ロードPSW」機能を実行す
る。停止状態を離れる。
を使用して、S/370「ロードPSW」機能を実行す
る。停止状態を離れる。
0007 SMSG:ローカル(IOA)装置状況テー
ブル中で、1つまたはそれ以上の構成された装置のため
に、状況メッセージ−状況ビットを更新する。
ブル中で、1つまたはそれ以上の構成された装置のため
に、状況メッセージ−状況ビットを更新する。
0008 IMSG:割り込みメッセージ−チャネル・
マスク状況に応じて、S/370 I/O割り込みをキ
ューに入れるかまたは、S/370 I/O割り込みを
直ちに提供する。
マスク状況に応じて、S/370 I/O割り込みをキ
ューに入れるかまたは、S/370 I/O割り込みを
直ちに提供する。
上記メッセージ・タイプ0001−0006は、(エミ
ュレートされた)S/370システム・コンソールでの
ユーザー入力から生じた状態制御のためのS/370マ
ニュアル動作である。それらは、エラー回復または同期
のために必要に応じて、EXEC370によって直接強
制することもできる。メッセージ・タイプ0007は、
S/370に、電源損失、オン/オフライン変更、装置
検出エラーなどのI/O装置の状況の非同期的変化を通
知するために使用される。それはまた、S/88からS
/370への汎用通信用に拡張することもできる。メッ
セージ・タイプ0008は、正常終了、またはエラー終
了条件のどちらであるかについて、I/O動作の終了状
況をS/370に報告するための手段である。これは常
に、S/370において、最終的なプログラム割り込み
及び装置テーブル変更をもたらすことになる。
ュレートされた)S/370システム・コンソールでの
ユーザー入力から生じた状態制御のためのS/370マ
ニュアル動作である。それらは、エラー回復または同期
のために必要に応じて、EXEC370によって直接強
制することもできる。メッセージ・タイプ0007は、
S/370に、電源損失、オン/オフライン変更、装置
検出エラーなどのI/O装置の状況の非同期的変化を通
知するために使用される。それはまた、S/88からS
/370への汎用通信用に拡張することもできる。メッ
セージ・タイプ0008は、正常終了、またはエラー終
了条件のどちらであるかについて、I/O動作の終了状
況をS/370に報告するための手段である。これは常
に、S/370において、最終的なプログラム割り込み
及び装置テーブル変更をもたらすことになる。
次に、ETIO及びEXEC370機能と、インターフ
ェースと、プロトコルと、命令フローについて説明す
る。
ェースと、プロトコルと、命令フローについて説明す
る。
E18.システム・マイクロコード・デザイン (1)序論 第38図は、本発明の好適な実施例のマイクロコード・
デザインを説明する図である。S/370プロセッサ装
置85内で走るコードは、制御記憶171中に保持さ
れ、PE85によって実行される時にS/370命令を
解釈する。I/O開始、割り込み処理、オペレータ機
能、マシン・チェック、及び初期マイクロプログラム・
ロード/プログラム・ロード(IML/IPL)のため
のマイクロコード化された命令は、特に、図に示されて
いるようにS/88マイクロコードとインターフェース
するようにデザインされている。そのインターフェース
は、ローカル記憶210と、S/370キャッシュ34
0と、プロセッサ85及び62の両方に対して割り込み
能力をもつS/370実記憶空間162とをもつインタ
ーフェース論理81の共通ハードウェア設備を有する。
S/88コードにおいては、S/370マイクロコード
・ドライバがCCW変換と、割り込みハンドラと、エラ
ー・ハンドラと、IML/IPLと、S/88アプリケ
ーション・インターフェース(EXEC/370)及び
S/88オペレーティング・システムと対話する同期化
コードを含む。
デザインを説明する図である。S/370プロセッサ装
置85内で走るコードは、制御記憶171中に保持さ
れ、PE85によって実行される時にS/370命令を
解釈する。I/O開始、割り込み処理、オペレータ機
能、マシン・チェック、及び初期マイクロプログラム・
ロード/プログラム・ロード(IML/IPL)のため
のマイクロコード化された命令は、特に、図に示されて
いるようにS/88マイクロコードとインターフェース
するようにデザインされている。そのインターフェース
は、ローカル記憶210と、S/370キャッシュ34
0と、プロセッサ85及び62の両方に対して割り込み
能力をもつS/370実記憶空間162とをもつインタ
ーフェース論理81の共通ハードウェア設備を有する。
S/88コードにおいては、S/370マイクロコード
・ドライバがCCW変換と、割り込みハンドラと、エラ
ー・ハンドラと、IML/IPLと、S/88アプリケ
ーション・インターフェース(EXEC/370)及び
S/88オペレーティング・システムと対話する同期化
コードを含む。
フォールト・トレラント・プロセッサ62は、システム
のための全てのI/O、診断、障害分離、IPL/IM
L及び同期化を実行する。このシステムは、ユーザーの
観点からは、S/370プログラムが実行している唯一
のプログラムであるため、コプロセッサ・システムのよ
うにはみえない。システム管理者は、S/88フォール
ト・トレラント・オペレーティング・システムを通じて
システム属性を制御することができる。S/88オペレ
ーティング・システムの主要な機能は、多重370チャ
ネル外観をもつI/O変換である。全てのエラー及び回
復機能と、動的資源割当て機能は、S/88オペレーテ
ィング・システムによって処理される。S/370オペ
レーティング・システムによって以前処理されていたマ
シン・チェック及びオペレータ機能は、今やS/88オ
ペレーティング・システムに渡され、従って、その機能
は、フォールト・トレラント様式で処理することができ
る。第39図は、この例では開始I/Oコマンドであ
る、S/370 I/Oコマンドの実行をあらわす。S
/370命令、(PE85からPE62への)結合ハー
ドウェア、(PE62上で実行される)結合マイクロコ
ードETIO、及びS/88プログラムEXEC370
によって行なわれる動作が簡単に示され、その最終ステ
ップは、S/88プロセッサPE62上のS/370
I/Oの実行である。
のための全てのI/O、診断、障害分離、IPL/IM
L及び同期化を実行する。このシステムは、ユーザーの
観点からは、S/370プログラムが実行している唯一
のプログラムであるため、コプロセッサ・システムのよ
うにはみえない。システム管理者は、S/88フォール
ト・トレラント・オペレーティング・システムを通じて
システム属性を制御することができる。S/88オペレ
ーティング・システムの主要な機能は、多重370チャ
ネル外観をもつI/O変換である。全てのエラー及び回
復機能と、動的資源割当て機能は、S/88オペレーテ
ィング・システムによって処理される。S/370オペ
レーティング・システムによって以前処理されていたマ
シン・チェック及びオペレータ機能は、今やS/88オ
ペレーティング・システムに渡され、従って、その機能
は、フォールト・トレラント様式で処理することができ
る。第39図は、この例では開始I/Oコマンドであ
る、S/370 I/Oコマンドの実行をあらわす。S
/370命令、(PE85からPE62への)結合ハー
ドウェア、(PE62上で実行される)結合マイクロコ
ードETIO、及びS/88プログラムEXEC370
によって行なわれる動作が簡単に示され、その最終ステ
ップは、S/88プロセッサPE62上のS/370
I/Oの実行である。
第40図は、EXEC370に関連するシステムの要素
及び機能と、SIO実行の間に併用されるマイクロコー
ドを、制御フロー、データ・フロー、信号及びハードウ
ェア/コード区画とともに示す簡略化された概要図であ
る。
及び機能と、SIO実行の間に併用されるマイクロコー
ドを、制御フロー、データ・フロー、信号及びハードウ
ェア/コード区画とともに示す簡略化された概要図であ
る。
(2)ETIO/EXEC370プログラム・インター
フェース(第41A乃至H図と第42図) この章では、次の用語が使用される。
フェース(第41A乃至H図と第42図) この章では、次の用語が使用される。
EXEC370−S/370外部装置、サービス、構
成、オペレータのコンソールのエミュレーション及びサ
ポートに関連してPE62上で走り、マイクロコード記
憶174に記憶される全てのS/88ソフトウェア。使
用頻度が小さいEXEC370コードは、キャッシュ1
73に記憶することができる。
成、オペレータのコンソールのエミュレーション及びサ
ポートに関連してPE62上で走り、マイクロコード記
憶174に記憶される全てのS/88ソフトウェア。使
用頻度が小さいEXEC370コードは、キャッシュ1
73に記憶することができる。
S/370マイクロコード−S/370プロセッサ動作
をサポートするS/370プロセッサ85で走り記憶1
71に記憶されるマイクロコード ETIO−記憶174に保持されるEXEC370とB
CU156の間のマイクロコード・インターフェース。
をサポートするS/370プロセッサ85で走り記憶1
71に記憶されるマイクロコード ETIO−記憶174に保持されるEXEC370とB
CU156の間のマイクロコード・インターフェース。
S/370 PE85マイクロコード及びEXEC37
0は、第41A図の「プロトコル」を介して互いに通信
する。PE85マイクロコードは、I/Oなどの機能の
実行を要求するEXEC370に対してメッセージを送
り、EXEC370は、I/O機能の完了を示すメッセ
ージと、I/O装置及びチャネル状況変更に関するメッ
セージと、PE85マイクロコードに、特定のCPU機
能を実行するように要求するメッセージを送る。これら
のメッセージ(詳細は後述)は、キャッシュ・コントロ
ーラ153、アダプタ154、BCU156、及びDM
AC209などをもつハードウェアを介してPE85マ
イクロコードとEXEC370の間で伝送される。この
メッセージ伝送サービスは、ETIOによって、EXE
C370に対して可用となされる。
0は、第41A図の「プロトコル」を介して互いに通信
する。PE85マイクロコードは、I/Oなどの機能の
実行を要求するEXEC370に対してメッセージを送
り、EXEC370は、I/O機能の完了を示すメッセ
ージと、I/O装置及びチャネル状況変更に関するメッ
セージと、PE85マイクロコードに、特定のCPU機
能を実行するように要求するメッセージを送る。これら
のメッセージ(詳細は後述)は、キャッシュ・コントロ
ーラ153、アダプタ154、BCU156、及びDM
AC209などをもつハードウェアを介してPE85マ
イクロコードとEXEC370の間で伝送される。この
メッセージ伝送サービスは、ETIOによって、EXE
C370に対して可用となされる。
ETIOとEXEC370の間のインターフェース、及
びPE85及びEXEC370の間のインターフェース
について次に説明する。
びPE85及びEXEC370の間のインターフェース
について次に説明する。
EXEC370、S/88によって実行されるS/37
0外部サポート・ソフトウェア、及びPE62上で走る
BCUマイクロコード・ドライバ(ETIO)の間のイ
ンターフェース(第41B図)は、記憶210上に在駐
する一組のキュー及びバッファと、1つの事象IDと、
EXBUSY変数と、サブルーチン呼び出しシーケンス
からなる。サブルーチン呼び出しインターフェースは、
S/88とS/370の間のデータ転送動作を開始し、
S/88再ブート時にDMAC209とBCU156を
初期化する。キュー・インターフェースは、作業項目
を、処理することができるようになるまで追跡するため
に使用され、事象IDインターフェース(S/88に対
する割り込み)は、作業がキューに追加された時にEX
EC370に通知する。
0外部サポート・ソフトウェア、及びPE62上で走る
BCUマイクロコード・ドライバ(ETIO)の間のイ
ンターフェース(第41B図)は、記憶210上に在駐
する一組のキュー及びバッファと、1つの事象IDと、
EXBUSY変数と、サブルーチン呼び出しシーケンス
からなる。サブルーチン呼び出しインターフェースは、
S/88とS/370の間のデータ転送動作を開始し、
S/88再ブート時にDMAC209とBCU156を
初期化する。キュー・インターフェースは、作業項目
を、処理することができるようになるまで追跡するため
に使用され、事象IDインターフェース(S/88に対
する割り込み)は、作業がキューに追加された時にEX
EC370に通知する。
記憶210において、第41C図に示すように16個の
4KBブロックが存在する。その14個(500−0乃
至500−13)は、4KBブロック・バッファとして
使用される。残りの2つは、32個の256バイト・ブ
ロック501−0乃至501−31に分割される。4つ
のブロック501−0乃至501−3は、ハードウェア
通信のために使用され、501−4はキュー及び他のE
XEC370及びETIOに対する共通変数として使用
される。残りの27個は、ワーク・キュー・バッファ
(WQB)501−5乃至501−31として使用され
る。ブロック501−0及び501−1に等価なアドレ
ス空間において、BCU156コマンド(PE62によ
って実行される)には256バイトが割当てられ、DM
ACレジスタ・アドレスには、BCU156の動作に関
連して説明したようにPE62によってアクセスするた
めに、256バイトが割当てられている。27個のワー
ク・キュー・バッファのおのおのは、1つの特定タスク
またはサービス要求に関連するデータを保持する。26
個のWQBは、PE85のマイクロコードによって開始
された要求にサービスするために使用される。残りのW
QB(EXWQB)501−31は、S/88によって
発起され、PE85マイクロコードに送られる要求にサ
ービスするために予約されている。各WQBは、ベース
・アドレスと、DMAC209に記憶されるオフセット
値によってアドレスされる。
4KBブロックが存在する。その14個(500−0乃
至500−13)は、4KBブロック・バッファとして
使用される。残りの2つは、32個の256バイト・ブ
ロック501−0乃至501−31に分割される。4つ
のブロック501−0乃至501−3は、ハードウェア
通信のために使用され、501−4はキュー及び他のE
XEC370及びETIOに対する共通変数として使用
される。残りの27個は、ワーク・キュー・バッファ
(WQB)501−5乃至501−31として使用され
る。ブロック501−0及び501−1に等価なアドレ
ス空間において、BCU156コマンド(PE62によ
って実行される)には256バイトが割当てられ、DM
ACレジスタ・アドレスには、BCU156の動作に関
連して説明したようにPE62によってアクセスするた
めに、256バイトが割当てられている。27個のワー
ク・キュー・バッファのおのおのは、1つの特定タスク
またはサービス要求に関連するデータを保持する。26
個のWQBは、PE85のマイクロコードによって開始
された要求にサービスするために使用される。残りのW
QB(EXWQB)501−31は、S/88によって
発起され、PE85マイクロコードに送られる要求にサ
ービスするために予約されている。各WQBは、ベース
・アドレスと、DMAC209に記憶されるオフセット
値によってアドレスされる。
各WQB(第41図)は、16バイトのメイル・ブロッ
ク505と、16バイト・パラメータ・ブロック506
と、224バイト装置特定作業領域507を含む。メイ
ル・ブロック505は、EXEC370及びPE85マ
イクロコードの間で渡されるデータを含む。その内容
は、ETIOインターフェースに亙って透過的である。
パラメータ・ブロック506は、ETIOとEXEC3
70の間で渡され、通常、ローカル記憶210と主記憶
162の間の転送に関連するパラメータを含む。作業領
域507は、EXEC370によって所有される。それ
は、要求された動作の進行と、現在のS/370装置状
況と、可能なユーザー・データと、S/88装置のタイ
プと、他のEXEC370制御ブロックに対するポイン
ターと、エラー生起情報などに関するデータを含む。
ク505と、16バイト・パラメータ・ブロック506
と、224バイト装置特定作業領域507を含む。メイ
ル・ブロック505は、EXEC370及びPE85マ
イクロコードの間で渡されるデータを含む。その内容
は、ETIOインターフェースに亙って透過的である。
パラメータ・ブロック506は、ETIOとEXEC3
70の間で渡され、通常、ローカル記憶210と主記憶
162の間の転送に関連するパラメータを含む。作業領
域507は、EXEC370によって所有される。それ
は、要求された動作の進行と、現在のS/370装置状
況と、可能なユーザー・データと、S/88装置のタイ
プと、他のEXEC370制御ブロックに対するポイン
ターと、エラー生起情報などに関するデータを含む。
メイル・ブロック505は、PE85マイクロコードと
EXEC370の間で渡されるS/370 I/O情報
を含む次の4つのフィールドを有する。
EXEC370の間で渡されるS/370 I/O情報
を含む次の4つのフィールドを有する。
OP−このフィールドは、EXEC370またはPE8
5マイクロコードからの要求を含む。
5マイクロコードからの要求を含む。
CUA−16ビット・チャネル・ユニット・アドレス CAW−関連I/O命令が発行された時の、S/370
記憶162中の16進位置48の32ビットS/370
チャネル・アドレス・ワード CCW−上記CAWによってアドレスされるS/370
チャネル・コマンド・ワード。EXEC370が割り込
み表示を返す時、このフィールドは、CSW、S/37
0チャネル状況ワードを含む。
記憶162中の16進位置48の32ビットS/370
チャネル・アドレス・ワード CCW−上記CAWによってアドレスされるS/370
チャネル・コマンド・ワード。EXEC370が割り込
み表示を返す時、このフィールドは、CSW、S/37
0チャネル状況ワードを含む。
パラメータ・ブロック506は、データ転送がEXEC
370によって記憶210と主記憶162の間で要求さ
れる時に使用される16個のパラメータを含む。
370によって記憶210と主記憶162の間で要求さ
れる時に使用される16個のパラメータを含む。
(1)req−ETIO要求フィールド:0 動作なし 1メイル・ブロックの内容を記憶162のPE85メッ
セージ・キューに書込み、次に線256a上にBCUか
らPUへの要求を発行する。
セージ・キューに書込み、次に線256a上にBCUか
らPUへの要求を発行する。
2 S/370メモリからデータを読取る。
3 データをS/370メモリに書き込む。
(2)ret−「req」フィールドによってなされた要求の
結果。このフィールドは、EXEC370によって初期
的にはゼロに保証される。もしゼロでない値が戻るな
ら、ETIOはある種のタイプのエラーを表示してい
る。
結果。このフィールドは、EXEC370によって初期
的にはゼロに保証される。もしゼロでない値が戻るな
ら、ETIOはある種のタイプのエラーを表示してい
る。
(3)カウント−転送されるべきバイトの数 (4)S/370アドレス−データが始まるS/370
記憶中の位置。これは必ずしもCCWアドレス・フィー
ルドではない。
記憶中の位置。これは必ずしもCCWアドレス・フィー
ルドではない。
(5)キー−この16ビット・フィールドでは、次のよ
うなビット・パターンを含む。
うなビット・パターンを含む。
ppkkkk10 00000000 ここで、pp(優先順位)=00で、kkkk=適正なS/370
記憶保護キーである。
記憶保護キーである。
バッファ・アドレス−データ領域が始まる記憶210中
の位置。これは4kバッファまたはWQBの中にあって
よい。EXEC370は、次のような関係を保証する。
の位置。これは4kバッファまたはWQBの中にあって
よい。EXEC370は、次のような関係を保証する。
(S/370アドレス MOD 4)=(バッファ・ア
ドレス MOD 4) EXEC370は、WQBを維持するためにキューを使
用する。このキュー通信領域501−4は、256バイ
ト長であって、記憶210中のオフセット400(16
進)に存在する。第41E図は、WQBに対するポイン
タ・エントリを保持するためにWQBに対するETIO
とEXEC370の間で決定されたキューを示す。
ドレス MOD 4) EXEC370は、WQBを維持するためにキューを使
用する。このキュー通信領域501−4は、256バイ
ト長であって、記憶210中のオフセット400(16
進)に存在する。第41E図は、WQBに対するポイン
タ・エントリを保持するためにWQBに対するETIO
とEXEC370の間で決定されたキューを示す。
FREEQ510 現在使用されていないWQBに対す
るポインタを保持する。
るポインタを保持する。
WORKQ(ワークキュー)511 EXEC370に
よってサービスされるのを待つWQBに対するポインタ
を保持する。
よってサービスされるのを待つWQBに対するポインタ
を保持する。
S/371Q512 EXEC370からPE85への
メッセージ転送を待つWQBに対するポインタを保持す
る。
メッセージ転送を待つWQBに対するポインタを保持す
る。
S/372Q513 キャッシュ・コントローラ153
からS/88へのデータ転送を待つWQBへのポインタ
を保持する。
からS/88へのデータ転送を待つWQBへのポインタ
を保持する。
S/373Q514 S/88からキャッシュ・コント
ローラ153へのデータ転送を待つWQBへのポインタ
を保持する。
ローラ153へのデータ転送を待つWQBへのポインタ
を保持する。
S/88Q515 ETIOサービスが完了した後のW
QBに対するポインタを保持する。
QBに対するポインタを保持する。
第41E図は、キューを通るWQBの経路を示す。全て
のキューは、S/88再ブートの間に、EXEC370
によって初期化される。空のWQBは、FREEQ上に
保持される。ETIOは、リンク・リスト516を埋め
るための必要に応じて、FREEQからそれらを除去す
る。DMAC209は、リンク・リスト516を介し
て、記憶162からのメイルボックス領域188からの
S/370メイルボックス・エントリを、空WQBのメ
イル・ブロック領域に配置する。埋められたリンク・リ
スト上のWQBは、ETIOによってワークキュー51
1上に移動される。ETIOが1つの(またはそれ以上
の)WQBをワークキュー511上に移動しEXEC3
70がビジーでない時、ETIOはEXEC370に事
象IDを通知する。EXEC370は、それがサービス
を要求する前にワーク・キューからWQBを除去する。
のキューは、S/88再ブートの間に、EXEC370
によって初期化される。空のWQBは、FREEQ上に
保持される。ETIOは、リンク・リスト516を埋め
るための必要に応じて、FREEQからそれらを除去す
る。DMAC209は、リンク・リスト516を介し
て、記憶162からのメイルボックス領域188からの
S/370メイルボックス・エントリを、空WQBのメ
イル・ブロック領域に配置する。埋められたリンク・リ
スト上のWQBは、ETIOによってワークキュー51
1上に移動される。ETIOが1つの(またはそれ以上
の)WQBをワークキュー511上に移動しEXEC3
70がビジーでない時、ETIOはEXEC370に事
象IDを通知する。EXEC370は、それがサービス
を要求する前にワーク・キューからWQBを除去する。
その要求の処理の間に、データはキャッシュ・コントロ
ーラ153とバッファ(WQBまたはブロック・バッフ
ァ)との間で転送する必要があることがあり、あるい
は、メッセージをPE85マイクロコードに送る必要が
あることがある。ETIOは、このサービスをEXEC
370に提供する。EXEC370は、適正なBCU1
56動作を開始するETIOを呼び出し、あるいは、も
しハードウェア資源がビジーであるなら、WQBを適切
なS/370Q上に配置する。3つのサービス(S/3
70に対するメッセージの送信、S/370に対するデ
ータの転送、及びS/370からのデータの転送)は、
固有のキュー512、513及び514をもつ。WQB
は、EXEC370スレッド上にある間にETIOコー
ドによってS/370キューの1つの上に追加される。
I/Oサービスが完了した時、ETIO割り込みルーチ
ンはS/88Q515上にWQBを配置し、もしEXE
C370がビジーでないなら、そのEX370事象ID
を通知する。
ーラ153とバッファ(WQBまたはブロック・バッフ
ァ)との間で転送する必要があることがあり、あるい
は、メッセージをPE85マイクロコードに送る必要が
あることがある。ETIOは、このサービスをEXEC
370に提供する。EXEC370は、適正なBCU1
56動作を開始するETIOを呼び出し、あるいは、も
しハードウェア資源がビジーであるなら、WQBを適切
なS/370Q上に配置する。3つのサービス(S/3
70に対するメッセージの送信、S/370に対するデ
ータの転送、及びS/370からのデータの転送)は、
固有のキュー512、513及び514をもつ。WQB
は、EXEC370スレッド上にある間にETIOコー
ドによってS/370キューの1つの上に追加される。
I/Oサービスが完了した時、ETIO割り込みルーチ
ンはS/88Q515上にWQBを配置し、もしEXE
C370がビジーでないなら、そのEX370事象ID
を通知する。
第42図は、キューを通じてのWQBの移動と、EXE
C370、インターフェース・ハードウェア89及びS
/370マイクロコードの間のインターフェースとをあ
らわすものである。もとの作業要求が完全に完了した
時、すなわちデータ転送が完了した時、IO割り込みが
(もしあるなら)PE85に送られ、EXEC370が
WQBにFREEQを戻す。EXEC370は、先ずS
88Q515をチェックし、次にワークキュー511を
チェックすることにより次のタスクを取得する。そして
もしその両方が空なら、EXEC370はEXBUSY
変数をゼロにセットし、EX370事象が通知されるの
を待つ。EXEC370は、それが通知された時に、処
理を開始する前にEXBUSYを1にセットする。
C370、インターフェース・ハードウェア89及びS
/370マイクロコードの間のインターフェースとをあ
らわすものである。もとの作業要求が完全に完了した
時、すなわちデータ転送が完了した時、IO割り込みが
(もしあるなら)PE85に送られ、EXEC370が
WQBにFREEQを戻す。EXEC370は、先ずS
88Q515をチェックし、次にワークキュー511を
チェックすることにより次のタスクを取得する。そして
もしその両方が空なら、EXEC370はEXBUSY
変数をゼロにセットし、EX370事象が通知されるの
を待つ。EXEC370は、それが通知された時に、処
理を開始する前にEXBUSYを1にセットする。
全てのキューと、EX370事象IDと、EXBUSY
変数は、第41F図に示すように、記憶210のキュー
共通領域501−4に在駐する。各キューは、第41G
図に示すように、その性質上環状であって、2つのイン
デックス・タイプのポインタ、充満インデックス517
と空インデックス518をもつ。充満インデックス51
7は、満杯の次のキュー・エントリを指し示し、空イン
デックス518は、空の次のエントリを指し示す。6つ
のキューは全て32個のエントリをもちWQBは27個
しかないので、6つのキューは全て決してオーバーフロ
ーすることがない。
変数は、第41F図に示すように、記憶210のキュー
共通領域501−4に在駐する。各キューは、第41G
図に示すように、その性質上環状であって、2つのイン
デックス・タイプのポインタ、充満インデックス517
と空インデックス518をもつ。充満インデックス51
7は、満杯の次のキュー・エントリを指し示し、空イン
デックス518は、空の次のエントリを指し示す。6つ
のキューは全て32個のエントリをもちWQBは27個
しかないので、6つのキューは全て決してオーバーフロ
ーすることがない。
各キューは、次のものも含む。
qid このキューを識別する。
QSIZE このキュー中のエントリの数(n) Q(i) このキュー中のWQBを指し示すアドレス・エン
トリ ハードウェア通信領域は、1024バイトを含む。BC
U通信領域は、アドレス空間の512バイトを使用す
る。リンク・リスト516は、480バイトまでを使用
する。32バイトは、別のハードウェア通信要しのため
に予約されている。リンク・リスト516(第41H
図)は、DMAC209によって、記憶162のメイル
ボックス領域188からメイル・ブロック項目を搬入す
るために使用される。FREEQ510からのWQB
は、リンク・リスト516中のエントリを埋めるために
使用される。各リンク・リスト・エントリは、10バイ
トを有し、データを入れるべき記憶210中のWQBの
アドレスと、転送すべきデータのバイト・カウント(1
6)と、リスト中の次のリンク・エントリのアドレスを
識別する。DMAC209(チャネル0)は、次のゼロ
・リンク・アドレスをもつリンク・リスト・エントリに
到達したときにS/88に割り込む。DMAC209
(チャネル0)のリスト中の現在の位置は、いかなる時
でもソフトウェアに可用である。
トリ ハードウェア通信領域は、1024バイトを含む。BC
U通信領域は、アドレス空間の512バイトを使用す
る。リンク・リスト516は、480バイトまでを使用
する。32バイトは、別のハードウェア通信要しのため
に予約されている。リンク・リスト516(第41H
図)は、DMAC209によって、記憶162のメイル
ボックス領域188からメイル・ブロック項目を搬入す
るために使用される。FREEQ510からのWQB
は、リンク・リスト516中のエントリを埋めるために
使用される。各リンク・リスト・エントリは、10バイ
トを有し、データを入れるべき記憶210中のWQBの
アドレスと、転送すべきデータのバイト・カウント(1
6)と、リスト中の次のリンク・エントリのアドレスを
識別する。DMAC209(チャネル0)は、次のゼロ
・リンク・アドレスをもつリンク・リスト・エントリに
到達したときにS/88に割り込む。DMAC209
(チャネル0)のリスト中の現在の位置は、いかなる時
でもソフトウェアに可用である。
その割り込みエントリ・ポイントに加えて、ETIO
は、外部呼び出し可能な2つのエントリ・ポイントをも
つ。すなわち、 etio init etio(wbn) EXEC370は、EXEC370が初期化している間
に、S/88再ブート毎にetio initを呼び出す。キュ
ーは既に初期化されており、事象IDフィールドは有効
である。PE85マイクロコードは、まだ動作していな
いが、それはIML(初期マイクロプログラム・ロー
ド)の途中であるかもしれない。
は、外部呼び出し可能な2つのエントリ・ポイントをも
つ。すなわち、 etio init etio(wbn) EXEC370は、EXEC370が初期化している間
に、S/88再ブート毎にetio initを呼び出す。キュ
ーは既に初期化されており、事象IDフィールドは有効
である。PE85マイクロコードは、まだ動作していな
いが、それはIML(初期マイクロプログラム・ロー
ド)の途中であるかもしれない。
EXEC370は、データまたはメッセージをS/37
0との間で転送してもらうことを要望する場合は常に、
etio(wbn)を呼び出す。
0との間で転送してもらうことを要望する場合は常に、
etio(wbn)を呼び出す。
パラメータ(wbn)は、サービス要求を含むWQBを識別
する2バイト整数ワーク・キュー・バッファ番号であ
る。(wbn)は、インデックス値であり、0から27の範
囲にある。サービス要求は、パラメータ・ブロック中の
reqフィールドによって識別される。reqフィールド値
は、次のとおりである:1=このメイル・ブロックの内
容を記憶162中のS/370メッセージ・キュー18
9に書込み、次にBCUからPUへの要求を発行する、
2=S/370G6H162から指定された記憶210
領域へデータを書込む、3=S/370記憶から指定さ
れた記憶210領域へデータを書き込む。
する2バイト整数ワーク・キュー・バッファ番号であ
る。(wbn)は、インデックス値であり、0から27の範
囲にある。サービス要求は、パラメータ・ブロック中の
reqフィールドによって識別される。reqフィールド値
は、次のとおりである:1=このメイル・ブロックの内
容を記憶162中のS/370メッセージ・キュー18
9に書込み、次にBCUからPUへの要求を発行する、
2=S/370G6H162から指定された記憶210
領域へデータを書込む、3=S/370記憶から指定さ
れた記憶210領域へデータを書き込む。
サブルーチンETIOは、もし要求されたI/O機能を
即時に開始することができないなら、このWQBをS/
3701Q、S/3702Q、S/3703Q上にキュ
ーする。ETIO割り込みルーチンは、前の動作が終了
した時、適当なS/370Qから次のWQBを出す。
即時に開始することができないなら、このWQBをS/
3701Q、S/3702Q、S/3703Q上にキュ
ーする。ETIO割り込みルーチンは、前の動作が終了
した時、適当なS/370Qから次のWQBを出す。
もしreqフィールドが1を含むなら、PE85には、メ
イル・ブロック・エントリが記憶162のS/370メ
ッセージ・キュー領域189にあるようになるまで(例
えば割り込みによって)通知されるべきでない。
イル・ブロック・エントリが記憶162のS/370メ
ッセージ・キュー領域189にあるようになるまで(例
えば割り込みによって)通知されるべきでない。
もしS/370メッセージ・キュー189が満杯なら、
パラメータ・ブロックのretフィールド中のエラーがE
XEC370に対する問題を識別することになる。もし
必要なら、EXEC370は、バックアップ・キュー・
サポートを提供することができる。
パラメータ・ブロックのretフィールド中のエラーがE
XEC370に対する問題を識別することになる。もし
必要なら、EXEC370は、バックアップ・キュー・
サポートを提供することができる。
(3)EXEC370、S/370マイクロコード・プ
ロトコル EXEC370及びS/370マイクロコードの間の通
信には、S/370記憶162毎のエントリをもつ装置
状況テーブル(DST)が必要である。EXEC370
及びS/370マイクロコードは、やりとりされる16
バイト・メッセージ(第41D図のメイル・ブロック5
05を参照)を介して互いに通信する。各側のレシーバ
のために、FIFO順でメッセージを保持するキューが
ある。また、通知機構(PUからBCU、及びBCUか
らPU線)もある。メイル・ブロック505において
は、16ビットS/370 OPコード・フィールド
「OP」が、EXEC370またはS/370マイクロ
コードからの要求または応答を含む。16ビット・チャ
ネル・ユニット・アドレス(CUA)は、S/370
I/O命令のオペランド・アドレスである。CAWは、
そのI/O命令が発行された時のS/370記憶162
中の16進位置48の32ビット内容であり、記憶キー
を含む。8バイトCCWは、上記CAWによってアドレ
スされる。EXEC370が割り込み表示を返す時、こ
のフィールドはそのCSWを含む。PE85は、I/O
割り込みを引き起こす時S/37016進位置40にそ
のCSWを記憶する。CUAフィールドは不変のままで
ある。
ロトコル EXEC370及びS/370マイクロコードの間の通
信には、S/370記憶162毎のエントリをもつ装置
状況テーブル(DST)が必要である。EXEC370
及びS/370マイクロコードは、やりとりされる16
バイト・メッセージ(第41D図のメイル・ブロック5
05を参照)を介して互いに通信する。各側のレシーバ
のために、FIFO順でメッセージを保持するキューが
ある。また、通知機構(PUからBCU、及びBCUか
らPU線)もある。メイル・ブロック505において
は、16ビットS/370 OPコード・フィールド
「OP」が、EXEC370またはS/370マイクロ
コードからの要求または応答を含む。16ビット・チャ
ネル・ユニット・アドレス(CUA)は、S/370
I/O命令のオペランド・アドレスである。CAWは、
そのI/O命令が発行された時のS/370記憶162
中の16進位置48の32ビット内容であり、記憶キー
を含む。8バイトCCWは、上記CAWによってアドレ
スされる。EXEC370が割り込み表示を返す時、こ
のフィールドはそのCSWを含む。PE85は、I/O
割り込みを引き起こす時S/37016進位置40にそ
のCSWを記憶する。CUAフィールドは不変のままで
ある。
「動作」メッセージは、部分的または完全にEXEC3
70によって処理されるべきS/370命令に遭遇する
時はいつでも、S/370マイクロコードによってEX
EC370に送られる。「動作」メッセージは、第41
D図のメイル・ブロック505に関連する上述の情報を
含む。
70によって処理されるべきS/370命令に遭遇する
時はいつでも、S/370マイクロコードによってEX
EC370に送られる。「動作」メッセージは、第41
D図のメイル・ブロック505に関連する上述の情報を
含む。
S/370に送られるEXEC370メッセージは次の
ものを含む。
ものを含む。
1.「リセット」メッセージ(OP=1)は、S/37
0マイクロコードにS/370リセットの処理を要求す
る。
0マイクロコードにS/370リセットの処理を要求す
る。
2.「クリア・リセット」メッセージ(OP=2)は、
S/370リセット及びクリア記憶を要求する。
S/370リセット及びクリア記憶を要求する。
3.「停止」メッセージは、S/370に、S/370
命令のフェッチを停止し、更なる命令を待つことを要求
する。「停止」メッセージは、OPフィールド=3を含
む。
命令のフェッチを停止し、更なる命令を待つことを要求
する。「停止」メッセージは、OPフィールド=3を含
む。
4.「ステップ」メッセージ(OP=4)は、ROMA
N S/370マイクロコードに、1つのS/370命
令をフェッチ及び実行し、「停止」モードに入るべきこ
とを要求する。
N S/370マイクロコードに、1つのS/370命
令をフェッチ及び実行し、「停止」モードに入るべきこ
とを要求する。
5.「ラン」メッセージ(OP=5)は、S/370マ
イクロコードに、S/370命令をフェッチし実行する
その正常モードに入るように要求する。
イクロコードに、S/370命令をフェッチし実行する
その正常モードに入るように要求する。
6.LPSWメッセージ(OP=6)は、S/370マ
イクロコードに、LPSW(ロード・プログラム状況ワ
ード)メッセージのアドレス・フィールドに指定された
アドレスを使用してS/370LPSW命令を実行する
ように要求する。
イクロコードに、LPSW(ロード・プログラム状況ワ
ード)メッセージのアドレス・フィールドに指定された
アドレスを使用してS/370LPSW命令を実行する
ように要求する。
7.SMSGメッセージ(OP=7)は、1つまたはそ
れ以上の構成されたS/370 I/O装置の変更の状
況を表示する。
れ以上の構成されたS/370 I/O装置の変更の状
況を表示する。
8.IOINTRメッセージ(OP=8)は、I/O動
作の完了を示す。もしそのチャネルがマスクされていな
いなれ、S/370マイクロコードがI/O割り込みを
開始することになる。もしそのチャネルがマスクされて
いるなら、S/370マイクロコードは、そのCSWを
装置状況テーブルにセーブし、装置状況を01(CSW
記憶済み)にセットする。IOINTRメッセージはま
た、CUA及びNC(DST CUA中に配置される)
次フィールドを含む。
作の完了を示す。もしそのチャネルがマスクされていな
いなれ、S/370マイクロコードがI/O割り込みを
開始することになる。もしそのチャネルがマスクされて
いるなら、S/370マイクロコードは、そのCSWを
装置状況テーブルにセーブし、装置状況を01(CSW
記憶済み)にセットする。IOINTRメッセージはま
た、CUA及びNC(DST CUA中に配置される)
次フィールドを含む。
キャッシュ・コントローラ153からの2つのメッセー
ジ、「フェッチ」及び「記憶」は、メッセージといより
も寧ろ論理機能である。それは、CNT及び「アドレ
ス」フィールドのための奇数または偶数値を可能ならし
めるために必要である。
ジ、「フェッチ」及び「記憶」は、メッセージといより
も寧ろ論理機能である。それは、CNT及び「アドレ
ス」フィールドのための奇数または偶数値を可能ならし
めるために必要である。
それらのフィールドは、 BUF−2バイト:記憶210中のバッファ・アドレス CNT−2バイト:バイト・カウント ADDR−4バイト:S/370記憶アドレス・ワード
/キー S/370マイクロコードは、各アドレス可能S/37
0装置の状況についての情報を含むテーブルを維持す
る。その情報の主要な部分は、次のものである。
/キー S/370マイクロコードは、各アドレス可能S/37
0装置の状況についての情報を含むテーブルを維持す
る。その情報の主要な部分は、次のものである。
装置条件キー これは、TIO、SIOなどの後ろのC
R(S/370条件レジスタ)の即時的セットを許容す
る。
R(S/370条件レジスタ)の即時的セットを許容す
る。
装置次−I/O割り込みを取得するときに使用されるべ
き次の条件 装置CSW−マスクされた370 I/O割り込みのた
めに維持される 370装置につき、DST(CUA)の次の4つの異な
る装置条件が可能である。
き次の条件 装置CSW−マスクされた370 I/O割り込みのた
めに維持される 370装置につき、DST(CUA)の次の4つの異な
る装置条件が可能である。
00 装置レディ 01 装置レディでない、CSW記憶済み 10 装置ビジー 11 装置動作しない S/370装置上のI/O動作の完了時点で、CSW
(チャネル状況ワード)がチャネルによってCPUに送
られる。もしそのチャネルがマスク・オフされているな
ら、CPUはそのCSWを受け入れない。
(チャネル状況ワード)がチャネルによってCPUに送
られる。もしそのチャネルがマスク・オフされているな
ら、CPUはそのCSWを受け入れない。
この実施例では、もしチャネルがマスクされているな
ら、S/370マイクロコードがCSWをセーブして、
DST(CUA)条件を01にセットする。後のCSW
またはSIOは、セーブされたCSWの記憶と、条件コ
ード(CSW記憶済み)のCRへの配置をもたらす。S
/370マイクロコードが初期化されるとき、S/37
0マイクロコードは、全ての装置が動作するとは想定し
ない。S/88は、サポートすべき各装置毎に「オンラ
イン・メッセージ」を送ることになる。その装置は、そ
のCUA(制御ユニット・アドレスによって識別され
る。
ら、S/370マイクロコードがCSWをセーブして、
DST(CUA)条件を01にセットする。後のCSW
またはSIOは、セーブされたCSWの記憶と、条件コ
ード(CSW記憶済み)のCRへの配置をもたらす。S
/370マイクロコードが初期化されるとき、S/37
0マイクロコードは、全ての装置が動作するとは想定し
ない。S/88は、サポートすべき各装置毎に「オンラ
イン・メッセージ」を送ることになる。その装置は、そ
のCUA(制御ユニット・アドレスによって識別され
る。
(4)S/370マイクロコードとEXEC370の間
の命令フロー PE85がS/370プログラム命令ストリングを実行
する時、これは時としてI/O命令に遭遇し、そのI/
O命令はこの実施例ではS/88プロセッサ62及び関
連ハードウェア、ファームウェア、及びソフトウェアに
よって実行される。第44A乃至L図(及び第43図)
は、これらのS/370 I/O実行命令のために利用
されるマイクロコード・シーケンス・フローである。B
CU156(及びアダプタ154)は、S/88ハード
ウェアによる最終的なS/370 I/O命令の実行を
有効化するための主要ハードウェア結合機構である。B
CU156内で、DMAC209は、動作及びデータの
流れを導くための主要な「交通巡査」の役割を果たす。
DMAC209のチャネル0は、S/370からI/O
コマンドの受け取り、チャネル1はS/370からのデ
ータ・フローを処理し、チャネル2はS/370へのデ
ータ・フローを処理し、チャネル3はS/370に対し
て割り込み(及び他の)メッセージを送る。BCU15
6中のローカル記憶210は、S/370とS/88の
間の通信領域を形成する。
の命令フロー PE85がS/370プログラム命令ストリングを実行
する時、これは時としてI/O命令に遭遇し、そのI/
O命令はこの実施例ではS/88プロセッサ62及び関
連ハードウェア、ファームウェア、及びソフトウェアに
よって実行される。第44A乃至L図(及び第43図)
は、これらのS/370 I/O実行命令のために利用
されるマイクロコード・シーケンス・フローである。B
CU156(及びアダプタ154)は、S/88ハード
ウェアによる最終的なS/370 I/O命令の実行を
有効化するための主要ハードウェア結合機構である。B
CU156内で、DMAC209は、動作及びデータの
流れを導くための主要な「交通巡査」の役割を果たす。
DMAC209のチャネル0は、S/370からI/O
コマンドの受け取り、チャネル1はS/370からのデ
ータ・フローを処理し、チャネル2はS/370へのデ
ータ・フローを処理し、チャネル3はS/370に対し
て割り込み(及び他の)メッセージを送る。BCU15
6中のローカル記憶210は、S/370とS/88の
間の通信領域を形成する。
ローカル・バス223/247は、S/88プロセッサ
62をDMAC209とローカル記憶210に結合す
る。ローカル・バス223/247は、DMAC209
と記憶210とを、BCU156及びアダプタ154中
の高速ハードウェアを介してS/370に結合する。
62をDMAC209とローカル記憶210に結合す
る。ローカル・バス223/247は、DMAC209
と記憶210とを、BCU156及びアダプタ154中
の高速ハードウェアを介してS/370に結合する。
S/370 I/O命令は、S/370内の処理のため
S/370マイクロコード・ルーチンにディスパッチさ
れ、S/88アプリケーション・プログラムEXEC3
70は(その関連S/88ETIOマイクロコードとと
もに)最終のI/O実行を行う。アダプタ154とBC
U156は、S/370とS/88の間のハードウェア
接続を形成する。開始I/Oマイクロコード・ルーチン
は、各装置の状況を追跡するテーブルDSTをもち、例
えばもし既にSIOを発生し、それがビジーであり、割
り込みを受け取っているなら、それは現在可用である。
この情報は、条件コードCC中に含まれる。
S/370マイクロコード・ルーチンにディスパッチさ
れ、S/88アプリケーション・プログラムEXEC3
70は(その関連S/88ETIOマイクロコードとと
もに)最終のI/O実行を行う。アダプタ154とBC
U156は、S/370とS/88の間のハードウェア
接続を形成する。開始I/Oマイクロコード・ルーチン
は、各装置の状況を追跡するテーブルDSTをもち、例
えばもし既にSIOを発生し、それがビジーであり、割
り込みを受け取っているなら、それは現在可用である。
この情報は、条件コードCC中に含まれる。
その章は、さまざまなS/370 I/O動作のための
命令フローを記述する。この章で使用される特定の処理
及び用語は、この章の最後に定義されている。動作は次
のとおりである。
命令フローを記述する。この章で使用される特定の処理
及び用語は、この章の最後に定義されている。動作は次
のとおりである。
(1)チャネル・クリア(第44A図)−この命令は、
アドレスされたチャネルにおけるI/Oシステム・リセ
ットを引き起こし、システム・リセットがアドレスされ
たチャネル上の全ての装置に通知される。S/370マ
イクロコードは、そのチャネル上にどの増置が実際にあ
るかは知らず、従って、そのチャネル上の全てのエント
リについてCC=3をセットする。その後、EXEC3
70は、そのチャネル上の構成を再定義するためにSM
SGを送ることになる。
アドレスされたチャネルにおけるI/Oシステム・リセ
ットを引き起こし、システム・リセットがアドレスされ
たチャネル上の全ての装置に通知される。S/370マ
イクロコードは、そのチャネル上にどの増置が実際にあ
るかは知らず、従って、そのチャネル上の全てのエント
リについてCC=3をセットする。その後、EXEC3
70は、そのチャネル上の構成を再定義するためにSM
SGを送ることになる。
クリアされるべきチャネルは、命令アドレスのビット1
6乃至23によってアドレスされる。S/370マイク
ロコードがディスパッチから制御を受け取る時、それは
チャネル・アドレスをチェックすることによって始ま
る。するとそのチャネル・アドレスは、有効か無効かの
どちらかである。もしそのチャネル・アドレスが無効で
あるなら、条件レジスタ(CR)が3にセットされ、S
/370が次の順次命令に戻る。チャネル・アドレス有
効の場合、S/370マイクロコードがEXEC370
にクリア・チャネル・メッセージを送る。それは次に、
このチャネルを探して全ての装置状況テーブル(DS
T)エントリを走査する。全ての条件コード・フィール
ドは、可用でないことを意味する3にセットされ、見出
された保留割り込みテーブル(PIT)エントリは、自
由PITリストに解放される。S/370マイクロコー
ドは次に、条件レジスタを0にセットし、次の順次命令
に至る。ところで、EXEC370は、クリア・チャネ
ル・メッセージを受け取る時、アドレスされたチャネル
上の全ての装置に対してI/Oシステム・リセットを実
行する。EXEC370は次に、どの装置が線につなが
っているかを確認して、そのチャネル上の構成を再定義
するためにS/370マイクロコードに状況メッセージ
を送る。S/370マイクロコードが状況メッセージを
受け取る時、S/370マイクロコードは、状況メッセ
ージ中でアドレスされた各装置の装置状況テーブルにお
ける条件コードを変更する。
6乃至23によってアドレスされる。S/370マイク
ロコードがディスパッチから制御を受け取る時、それは
チャネル・アドレスをチェックすることによって始ま
る。するとそのチャネル・アドレスは、有効か無効かの
どちらかである。もしそのチャネル・アドレスが無効で
あるなら、条件レジスタ(CR)が3にセットされ、S
/370が次の順次命令に戻る。チャネル・アドレス有
効の場合、S/370マイクロコードがEXEC370
にクリア・チャネル・メッセージを送る。それは次に、
このチャネルを探して全ての装置状況テーブル(DS
T)エントリを走査する。全ての条件コード・フィール
ドは、可用でないことを意味する3にセットされ、見出
された保留割り込みテーブル(PIT)エントリは、自
由PITリストに解放される。S/370マイクロコー
ドは次に、条件レジスタを0にセットし、次の順次命令
に至る。ところで、EXEC370は、クリア・チャネ
ル・メッセージを受け取る時、アドレスされたチャネル
上の全ての装置に対してI/Oシステム・リセットを実
行する。EXEC370は次に、どの装置が線につなが
っているかを確認して、そのチャネル上の構成を再定義
するためにS/370マイクロコードに状況メッセージ
を送る。S/370マイクロコードが状況メッセージを
受け取る時、S/370マイクロコードは、状況メッセ
ージ中でアドレスされた各装置の装置状況テーブルにお
ける条件コードを変更する。
(2)I/Oクリア(第44B図)−この命令は、アド
レスされたCUAのためのIMSG(割り込みメッセー
ジ)がEXEC370によって返されるまで、PE85
におけるS/370命令処理を中断する。
レスされたCUAのためのIMSG(割り込みメッセー
ジ)がEXEC370によって返されるまで、PE85
におけるS/370命令処理を中断する。
S/370マイクロコードがディスパッチから制御を受
け取る時、S/370マイクロコードは、命令の上端ア
ドレスから制御ユニット・アドレスCUAを取得する。
その制御ユニット・アドレスを使用して、S/370マ
イクロコードはこの装置の正しい装置状況テーブルを見
出す。S/370マイクロコードは、条件コードCCの
値をチェックする。このとき、3つの選択肢がある。す
なわち、(A)CCがゼロまたは3に等しい、(B)C
Cが2に等しいかまたはCCが1に等しく且つ次の条件
NCが2に等しい、(C)CCが2に等しいかまたはC
Cが1に等しい。
け取る時、S/370マイクロコードは、命令の上端ア
ドレスから制御ユニット・アドレスCUAを取得する。
その制御ユニット・アドレスを使用して、S/370マ
イクロコードはこの装置の正しい装置状況テーブルを見
出す。S/370マイクロコードは、条件コードCCの
値をチェックする。このとき、3つの選択肢がある。す
なわち、(A)CCがゼロまたは3に等しい、(B)C
Cが2に等しいかまたはCCが1に等しく且つ次の条件
NCが2に等しい、(C)CCが2に等しいかまたはC
Cが1に等しい。
第1の選択肢の場合、CCはゼロまたは3に等しく、S
/370マイクロコードは単に条件レジスタをCCの値
にセットし、次の順次命令に至る。
/370マイクロコードは単に条件レジスタをCCの値
にセットし、次の順次命令に至る。
もしCCが1に等しいなら、保留割り込みテーブル(P
IT)に保留割り込みが存在する。この場合、S/37
0マイクロコードは、保留割り込みテーブル・エントリ
に行き、NCの値をチェックする。
IT)に保留割り込みが存在する。この場合、S/37
0マイクロコードは、保留割り込みテーブル・エントリ
に行き、NCの値をチェックする。
CCが2または1に等しくNCが2に等しい場合、S/
370はEXEC370にクリアI/Oメッセージを送
る。S/370は肯定応答を待ち、その装置に関連する
保留割り込みエントリをクリアする。ところで、EXE
C370がクリアI/Oメッセージを受け取る時、EX
EC370はアドレスされた装置のその選択的なリセッ
トを実行し、その装置のための制御状況ワードを構築
し、割り込みメッセージをS/370マイクロコードに
戻す。S/370マイクロコードが割り込みメッセージ
を受け取る時、S/370マイクロコードは、PITエ
ントリを生成し、そのメッセージからのNC及びCSW
に記入する。
370はEXEC370にクリアI/Oメッセージを送
る。S/370は肯定応答を待ち、その装置に関連する
保留割り込みエントリをクリアする。ところで、EXE
C370がクリアI/Oメッセージを受け取る時、EX
EC370はアドレスされた装置のその選択的なリセッ
トを実行し、その装置のための制御状況ワードを構築
し、割り込みメッセージをS/370マイクロコードに
戻す。S/370マイクロコードが割り込みメッセージ
を受け取る時、S/370マイクロコードは、PITエ
ントリを生成し、そのメッセージからのNC及びCSW
に記入する。
この時点で、CCが2または1に等しいという第3の選
択肢を見てみる。この点には、2つの経路のうちの1つ
によって到達される。その第1の経路は、装置がビジー
であるか、または装置が保留割り込みを送ったがビジー
にとどまっている、というものである。第2の経路は、
装置が保留割り込みをもつが、最早ビジーでない、とい
う場合である。どちらの経路の場合にも、CCは2また
は1に等しくなる。S/370マイクロコードはその割
り込みをポップし、CSWをS/370記憶に配置し、
条件レジスタを1にセットして次の順次命令に戻る。
択肢を見てみる。この点には、2つの経路のうちの1つ
によって到達される。その第1の経路は、装置がビジー
であるか、または装置が保留割り込みを送ったがビジー
にとどまっている、というものである。第2の経路は、
装置が保留割り込みをもつが、最早ビジーでない、とい
う場合である。どちらの経路の場合にも、CCは2また
は1に等しくなる。S/370マイクロコードはその割
り込みをポップし、CSWをS/370記憶に配置し、
条件レジスタを1にセットして次の順次命令に戻る。
(3)装置停止(第44C図)−S/370マイクロコ
ードが装置停止命令のためにディスパッチから制御を受
け取る時、S/370マイクロコードは、アドレスされ
た装置状況テーブル・エントリのための条件コードをチ
ェックする。このとき3つの選択肢があり、それは、条
件コードが0または2に等しいことと、条件コードが1
に等しいことと、条件コードが3に等しいことである。
第1の選択肢の場合、条件コードが0または2に等し
く、S/370マイクロコードがEXEC370に装置
停止メッセージを送る。S/370マイクロコードは次
に、S/370CSW中の16個の状況ビットをゼロに
し、条件レジスタを1にセットし、次の順次命令に戻
る。ところで、EXEC370が装置停止メッセージを
受け取る時、EXEC370はアドレスされた装置上で
適当な機能を実行し、正常割り込みメッセージを戻す。
CC=1のとき、S/370マイクロコードはPITテ
ーブルからの割り込みをポップし、CSWをS/370
記憶中の適切な位置に配置し、条件レジスタを1にセッ
トして次の順次位置に行く。第3の選択肢の場合、CC
は3に等しく、S/370マイクロコードは単に条件レ
ジスタを3に等しくなるようにセットして次の順次命令
に至る。
ードが装置停止命令のためにディスパッチから制御を受
け取る時、S/370マイクロコードは、アドレスされ
た装置状況テーブル・エントリのための条件コードをチ
ェックする。このとき3つの選択肢があり、それは、条
件コードが0または2に等しいことと、条件コードが1
に等しいことと、条件コードが3に等しいことである。
第1の選択肢の場合、条件コードが0または2に等し
く、S/370マイクロコードがEXEC370に装置
停止メッセージを送る。S/370マイクロコードは次
に、S/370CSW中の16個の状況ビットをゼロに
し、条件レジスタを1にセットし、次の順次命令に戻
る。ところで、EXEC370が装置停止メッセージを
受け取る時、EXEC370はアドレスされた装置上で
適当な機能を実行し、正常割り込みメッセージを戻す。
CC=1のとき、S/370マイクロコードはPITテ
ーブルからの割り込みをポップし、CSWをS/370
記憶中の適切な位置に配置し、条件レジスタを1にセッ
トして次の順次位置に行く。第3の選択肢の場合、CC
は3に等しく、S/370マイクロコードは単に条件レ
ジスタを3に等しくなるようにセットして次の順次命令
に至る。
(4)I/O停止(第44C図)−説明のこのレベルで
は、I/O停止の機能は、装置停止の機能と同一であ
る。
は、I/O停止の機能は、装置停止の機能と同一であ
る。
(5)I/O再開(第44D図)−S/370システム
上では、RIO命令は単に、命令を受け入れる前に、そ
のチャネルが動作するかどうかを調べるためにチェック
するだけである。S/370マイクロコードは、別のI
/O命令の場合と同様に、特定のCUAかどうかについ
てCCをチェックしなくてはならない。CAWは参照さ
れず、CCWはこの命令の場合フェッチされない。
上では、RIO命令は単に、命令を受け入れる前に、そ
のチャネルが動作するかどうかを調べるためにチェック
するだけである。S/370マイクロコードは、別のI
/O命令の場合と同様に、特定のCUAかどうかについ
てCCをチェックしなくてはならない。CAWは参照さ
れず、CCWはこの命令の場合フェッチされない。
S/370マイクロコードがI/O命令再開のためにデ
ィスパッチから制御を受け取る時、S/370マイクロ
コードはアドレスされた装置状況エントリにつき条件コ
ードをチェックする。CCが0、1または2に等しい場
合、S/370マイクロコードは、条件コードを2にセ
ットし、条件レジスタを0にセットし、次の順次命令に
至る。ところで、EXEC370がI/O再開メッセー
ジを受け取る時、EXEC370は制御ユニット・アド
レスを調べ、前に中断されていたI/O動作を継続す
る。第2の選択肢の場合、CCは3に等しく、S/37
0マイクロコードは単に条件レジスタを3にセットして
次の順次命令に行く。
ィスパッチから制御を受け取る時、S/370マイクロ
コードはアドレスされた装置状況エントリにつき条件コ
ードをチェックする。CCが0、1または2に等しい場
合、S/370マイクロコードは、条件コードを2にセ
ットし、条件レジスタを0にセットし、次の順次命令に
至る。ところで、EXEC370がI/O再開メッセー
ジを受け取る時、EXEC370は制御ユニット・アド
レスを調べ、前に中断されていたI/O動作を継続す
る。第2の選択肢の場合、CCは3に等しく、S/37
0マイクロコードは単に条件レジスタを3にセットして
次の順次命令に行く。
(6)I/O開始(第44E図)−S/370マイクロ
コードがI/O開始動作のためにディスパッチから制御
を受け取る時、S/370マイクロコードは、装置状況
テーブル・エントリを見付けるために制御ユニット・ア
ドレスを使用する。S/370マイクロコードは次に、
条件コードをチェックし、このとき4つの選択肢があ
る。すなわち、CCが0に等しい、CCが1に等しい、
CCが2に等しい、及びCCが3に等しい、である。C
Cが0に等しい場合、装置はレディであり、S/370
マイクロコードはEXEC370にI/O開始メッセー
ジを送り、CCを、ビジーを意味する2に等しくセット
し、条件レジスタを、受領されたことを意味する0にセ
ットし、次の順次命令に戻る。ところで、EXEC37
0がI/O開始メッセージを受け取る時、EXEC37
0は特定装置を見付けるために制御ユニットアドレスを
使用し、その装置上で正常I/O動作を開始する。第2
の選択肢の場合、CCは1に等しく、S/370マイク
ロコードが割り込みをポップして、そのCSWをS/3
70記憶中に配置し、CSWビジー・ビットを「オン」
にセットし、条件レジスタを1にセットし、次の順次命
令に至る。第3の選択肢の場合、CCは2に等しく、S
/370マイクロコードはCSW及びS/370記憶位
置40Xを全てゼロにセットし、CSWビジー・ビット
をターン・オンし、条件レジスタを1に等しくセット
し、次の条件命令に行く。第4の選択肢の場合、CCは
3に等しく、S/370マイクロコードは単に、条件レ
ジスタを3(これは装置が動作しないことを意味する)
にセットし、次の順次命令に行く。
コードがI/O開始動作のためにディスパッチから制御
を受け取る時、S/370マイクロコードは、装置状況
テーブル・エントリを見付けるために制御ユニット・ア
ドレスを使用する。S/370マイクロコードは次に、
条件コードをチェックし、このとき4つの選択肢があ
る。すなわち、CCが0に等しい、CCが1に等しい、
CCが2に等しい、及びCCが3に等しい、である。C
Cが0に等しい場合、装置はレディであり、S/370
マイクロコードはEXEC370にI/O開始メッセー
ジを送り、CCを、ビジーを意味する2に等しくセット
し、条件レジスタを、受領されたことを意味する0にセ
ットし、次の順次命令に戻る。ところで、EXEC37
0がI/O開始メッセージを受け取る時、EXEC37
0は特定装置を見付けるために制御ユニットアドレスを
使用し、その装置上で正常I/O動作を開始する。第2
の選択肢の場合、CCは1に等しく、S/370マイク
ロコードが割り込みをポップして、そのCSWをS/3
70記憶中に配置し、CSWビジー・ビットを「オン」
にセットし、条件レジスタを1にセットし、次の順次命
令に至る。第3の選択肢の場合、CCは2に等しく、S
/370マイクロコードはCSW及びS/370記憶位
置40Xを全てゼロにセットし、CSWビジー・ビット
をターン・オンし、条件レジスタを1に等しくセット
し、次の条件命令に行く。第4の選択肢の場合、CCは
3に等しく、S/370マイクロコードは単に、条件レ
ジスタを3(これは装置が動作しないことを意味する)
にセットし、次の順次命令に行く。
(7)I/O高速解放開始(第44F図)−S/370
マイクロコードがディスパッチからI/O高速解放開始
命令を受け取った時、S/370マイクロコードは、ア
ドレスされたDSTエントリがあるかどうか条件コード
わチェックする。このとき、CCが0、1または2に等
しい、ということと、CCが3に等しい、ということの
2つの選択肢がある。第1の選択肢の場合、CCが0、
1または2に等しく、S/370マイクロコードはEX
EC370にI/O高速解放開始メッセージを送り、C
Cを2に等しくセットし、条件レジスタを0セットし、
次の順次命令に行く。ところで、EXEC370がI/
O高速解放開始メッセージを受け取る時、もし可能なら
I/O命令を開始し、さもなければ、S/370マイク
ロコードによって受領された時正常割り込みとして働く
遅延された条件コードを含むCSWをもつ割り込みメッ
セージを返す。第2の選択肢の場合、条件コードは3に
等しく、S/370マイクロコードは単に条件レジスタ
を3にセットして次の順次命令に行く。
マイクロコードがディスパッチからI/O高速解放開始
命令を受け取った時、S/370マイクロコードは、ア
ドレスされたDSTエントリがあるかどうか条件コード
わチェックする。このとき、CCが0、1または2に等
しい、ということと、CCが3に等しい、ということの
2つの選択肢がある。第1の選択肢の場合、CCが0、
1または2に等しく、S/370マイクロコードはEX
EC370にI/O高速解放開始メッセージを送り、C
Cを2に等しくセットし、条件レジスタを0セットし、
次の順次命令に行く。ところで、EXEC370がI/
O高速解放開始メッセージを受け取る時、もし可能なら
I/O命令を開始し、さもなければ、S/370マイク
ロコードによって受領された時正常割り込みとして働く
遅延された条件コードを含むCSWをもつ割り込みメッ
セージを返す。第2の選択肢の場合、条件コードは3に
等しく、S/370マイクロコードは単に条件レジスタ
を3にセットして次の順次命令に行く。
(8)I/Oテスト(第44G図)−S/370マイク
ロコードがI/Oテストのための制御をディスパッチか
ら受け取る時、S/370マイクロコードは条件コード
わチェックする。このとき、CCが0または3に等し
い、CCが1に等しい、及びCCが2に等しい、という
3つの選択肢がある。CCが0または3に等しい場合、
マイクロコードは条件レジスタをCC値に等しくセット
し、次の順次命令に行く。第2の選択肢の場合、CCは
1に等しく、マイクロコードは割り込みをポップしてC
SWをS/370記憶中に配置し、条件レジスタを、C
SW記憶済みを意味する1にセットして次の順次命令に
至る。第3の選択肢の場合、CCは2に等しく、マイク
ロコードはS/370記憶中のCSW領域(40X)を
ゼロにし、条件レジスタを1に等しくセットし、次の順
次命令に行く。
ロコードがI/Oテストのための制御をディスパッチか
ら受け取る時、S/370マイクロコードは条件コード
わチェックする。このとき、CCが0または3に等し
い、CCが1に等しい、及びCCが2に等しい、という
3つの選択肢がある。CCが0または3に等しい場合、
マイクロコードは条件レジスタをCC値に等しくセット
し、次の順次命令に行く。第2の選択肢の場合、CCは
1に等しく、マイクロコードは割り込みをポップしてC
SWをS/370記憶中に配置し、条件レジスタを、C
SW記憶済みを意味する1にセットして次の順次命令に
至る。第3の選択肢の場合、CCは2に等しく、マイク
ロコードはS/370記憶中のCSW領域(40X)を
ゼロにし、条件レジスタを1に等しくセットし、次の順
次命令に行く。
(9)チャネルID記憶(第44H図)−S/370マ
イクロコードがディスパッチからチャネルID記憶のた
めの制御を受け取る時、S/370マイクロコードはチ
ャネル・アドレスをチェックする。このとき、チャネル
・アドレス有効及びチャネル・アドレス無効という2つ
の選択肢がある。チャネル・アドレス有効の場合、マイ
クロコードはS/370記憶位置を、16進A8から1
6進20000000にセットする。マイクロコードは
次に、条件レジスタを0にセットし、次の順次命令に行
く。
イクロコードがディスパッチからチャネルID記憶のた
めの制御を受け取る時、S/370マイクロコードはチ
ャネル・アドレスをチェックする。このとき、チャネル
・アドレス有効及びチャネル・アドレス無効という2つ
の選択肢がある。チャネル・アドレス有効の場合、マイ
クロコードはS/370記憶位置を、16進A8から1
6進20000000にセットする。マイクロコードは
次に、条件レジスタを0にセットし、次の順次命令に行
く。
(10)チャネル・テスト(第44I図)−S/370
マイクロコードがチャネル。テストのための制御をディ
スパッチから受け取る時、S/370マイクロコードは
チャネル・アドレスをチェックする。この場合、2つの
主要な選択肢と、3つのあまり主要でない選択肢がある
ことに留意されたい。第1の主要選択肢、すなわちチャ
ネル・アドレス無効の場合、マイクロコードは条件レジ
スタを3にセットし、次の順次命令に行く。第2の主要
選択肢、すなわちチャネル・アドレス有効の場合、マイ
クロコードはさらにこのチャネルがあるかどうか全ての
DSTエントリをチェックする。第1の主要でない選択
肢の場合は、マイクロコードが、この装置が保留割り込
みをもつことを意味するCC=1を有する特定装置のた
めのDSTエントリを発見した時に生じる。この場合、
マイクロコードは条件レジスタを1に等しくセットし、
次の順次命令に行く。もしマイクロコードがこのチャネ
ルのためのDSTエントリのリストの底に到達するな
ら、マイクロコードはCC=1のエントリを見出さなか
ったということであり、次にCC=2の少なくとも1つ
のエントリが存在するかどうかを調べるためのチェック
を行う。もしそうなら、これが第2の主要でない選択肢
であり、この場合、マイクロコードは条件レジスタを2
に等しくセットして次の順次命令に行く。さもなけれ
ば、第3の主要でない選択肢が生じて、条件レジスタを
0に等しくセットして次の順次命令に行く。
マイクロコードがチャネル。テストのための制御をディ
スパッチから受け取る時、S/370マイクロコードは
チャネル・アドレスをチェックする。この場合、2つの
主要な選択肢と、3つのあまり主要でない選択肢がある
ことに留意されたい。第1の主要選択肢、すなわちチャ
ネル・アドレス無効の場合、マイクロコードは条件レジ
スタを3にセットし、次の順次命令に行く。第2の主要
選択肢、すなわちチャネル・アドレス有効の場合、マイ
クロコードはさらにこのチャネルがあるかどうか全ての
DSTエントリをチェックする。第1の主要でない選択
肢の場合は、マイクロコードが、この装置が保留割り込
みをもつことを意味するCC=1を有する特定装置のた
めのDSTエントリを発見した時に生じる。この場合、
マイクロコードは条件レジスタを1に等しくセットし、
次の順次命令に行く。もしマイクロコードがこのチャネ
ルのためのDSTエントリのリストの底に到達するな
ら、マイクロコードはCC=1のエントリを見出さなか
ったということであり、次にCC=2の少なくとも1つ
のエントリが存在するかどうかを調べるためのチェック
を行う。もしそうなら、これが第2の主要でない選択肢
であり、この場合、マイクロコードは条件レジスタを2
に等しくセットして次の順次命令に行く。さもなけれ
ば、第3の主要でない選択肢が生じて、条件レジスタを
0に等しくセットして次の順次命令に行く。
(11)1次及び2次割り込み(第44J及び44K
図)−1次及び2次割り込みという用語は、S/370
の用語である。1次割り込みは、I/O動作から生じる
CSW中に少なくとも1つのチャネル終了(CE)状況
ビットを含む。2次割り込みは、そのI/O動作のため
の装置終了(DE)を含む第2の割り込みであるかまた
は、サービスを要求する装置によって開始される非同期
割り込みである。
図)−1次及び2次割り込みという用語は、S/370
の用語である。1次割り込みは、I/O動作から生じる
CSW中に少なくとも1つのチャネル終了(CE)状況
ビットを含む。2次割り込みは、そのI/O動作のため
の装置終了(DE)を含む第2の割り込みであるかまた
は、サービスを要求する装置によって開始される非同期
割り込みである。
この説明のこのレベルでは、1次及び2次割り込みの間
には差異がないので、1次割り込みについてのみ説明す
る。第44J図及び第44K図の間の、I/Oマスクさ
れた割り込みと、I/Oイネーブルされた割り込みの間
の差異は、I/Oがマスクされているかどうか、という
ことである。すなわち、S/370プロセッサが、チャ
ネルからやってくる割り込みを受け入れるかどうか、と
いうことである。もし割り込みがS/370プロセッサ
によって受け入れられないなら、チャネルはその割り込
みをスタックし、それは、S/370プロセッサがイネ
ーブルされる時間まで保留割り込みと呼ばれる。EXE
C370が特定の装置動作をエミュレートしている間に
割り込み条件が生じた時、EXEC370はCSWを構
築してそれをメッセージ中に格納し、そのメッセージは
S/370マイクロコードに送られる。マイクロコード
がその割り込みメッセージを受け取る時、マイクロコー
ドは、I/Oがマスクされているか、あるいはイネーブ
ルさているかどうかを見出すためにS/370マスクを
チェックする。そして、もしそのI/Oがマスクされて
いる(第44J図)なら、マイクロコードはその割り込
みをスタックする。割り込み処理をスタックすることの
説明は、以下で与える。S/370マイクロコードがマ
スクをチェックしI/Oがイネーブルされているなら
(第44K図)、割り込みをかける装置のDSTエント
リ中の条件コード・フィールドが、割り込みメッセージ
中の次の条件(NC)に等しくセットされ、そのメッセ
ージからのCSWがS/370記憶に入れられ、マイク
ロコードがI/O割り込みの実行を引き起こす。
には差異がないので、1次割り込みについてのみ説明す
る。第44J図及び第44K図の間の、I/Oマスクさ
れた割り込みと、I/Oイネーブルされた割り込みの間
の差異は、I/Oがマスクされているかどうか、という
ことである。すなわち、S/370プロセッサが、チャ
ネルからやってくる割り込みを受け入れるかどうか、と
いうことである。もし割り込みがS/370プロセッサ
によって受け入れられないなら、チャネルはその割り込
みをスタックし、それは、S/370プロセッサがイネ
ーブルされる時間まで保留割り込みと呼ばれる。EXE
C370が特定の装置動作をエミュレートしている間に
割り込み条件が生じた時、EXEC370はCSWを構
築してそれをメッセージ中に格納し、そのメッセージは
S/370マイクロコードに送られる。マイクロコード
がその割り込みメッセージを受け取る時、マイクロコー
ドは、I/Oがマスクされているか、あるいはイネーブ
ルさているかどうかを見出すためにS/370マスクを
チェックする。そして、もしそのI/Oがマスクされて
いる(第44J図)なら、マイクロコードはその割り込
みをスタックする。割り込み処理をスタックすることの
説明は、以下で与える。S/370マイクロコードがマ
スクをチェックしI/Oがイネーブルされているなら
(第44K図)、割り込みをかける装置のDSTエント
リ中の条件コード・フィールドが、割り込みメッセージ
中の次の条件(NC)に等しくセットされ、そのメッセ
ージからのCSWがS/370記憶に入れられ、マイク
ロコードがI/O割り込みの実行を引き起こす。
(12)S/370 I/Oマスク事象(第44L図)
−もしEXEC370がS/370マイクロコードに割
り込みメッセージを送る時I/Oがマスクされているな
ら、割り込みは保留割り込みテーブル(PIT)エント
リ中にスタックされる。そして、後の時点で、I/O割
り込みのイネーブルをもたらすS/370事象が生じる
ことになる。このことは、ロードPSW命令、セット・
システム・マスク命令、またはマスクがI/Oをイネー
ブルする何らかの割り込みである。PSWシステム・マ
スクが、以前にマスクされたI/Oをイネーブルするよ
うに変更された時の任意の時点で、S/370マイクロ
コードはそれらのチャネルのために保留である割り込み
がないかどうかをチェックする。そしてもし見付からな
いなら、マイクロコードは単に次の順次命令へと脱出す
る。しかしもし1つ見付かったら、マイクロコードはそ
の割り込みをデーブルからポップして出し、S/370
記憶中にCSWを配置してI/O割り込みを実行する。
−もしEXEC370がS/370マイクロコードに割
り込みメッセージを送る時I/Oがマスクされているな
ら、割り込みは保留割り込みテーブル(PIT)エント
リ中にスタックされる。そして、後の時点で、I/O割
り込みのイネーブルをもたらすS/370事象が生じる
ことになる。このことは、ロードPSW命令、セット・
システム・マスク命令、またはマスクがI/Oをイネー
ブルする何らかの割り込みである。PSWシステム・マ
スクが、以前にマスクされたI/Oをイネーブルするよ
うに変更された時の任意の時点で、S/370マイクロ
コードはそれらのチャネルのために保留である割り込み
がないかどうかをチェックする。そしてもし見付からな
いなら、マイクロコードは単に次の順次命令へと脱出す
る。しかしもし1つ見付かったら、マイクロコードはそ
の割り込みをデーブルからポップして出し、S/370
記憶中にCSWを配置してI/O割り込みを実行する。
以下に示すのは、直ぐ上で参照された処理の説明を与え
るものである。
るものである。
(1)スタックされた割り込み−スタックされた割り込
みという用語は、S/370 I/Oがマスク・オフさ
れた時S/370マイクロコードによって受け取られる
割り込みメッセージと結合して使用される。割り込み
は、いわゆる保留割り込みテーブルまたはPIT中の装
置状況領域中にスタックされる。PITエントリは、割
り込みを引き起こすS/370装置をあらわすDSTエ
ントリに対してFIFO順に連鎖される。割り込みをス
タックすることは、自由リストからPITエントリを取
得し、それをこのDSTエントリのためにPITリスト
の終端に連鎖し、そのCSWをPITエントリの状況フ
ィールド中に配置し、PITエントリのNCフィールド
にNC値を配置し、DSTのCCWフィールドを「1」
にセットすることからなる。CCを「1」にセットする
ことは、この装置に保留割り込みが存在することを示
す。
みという用語は、S/370 I/Oがマスク・オフさ
れた時S/370マイクロコードによって受け取られる
割り込みメッセージと結合して使用される。割り込み
は、いわゆる保留割り込みテーブルまたはPIT中の装
置状況領域中にスタックされる。PITエントリは、割
り込みを引き起こすS/370装置をあらわすDSTエ
ントリに対してFIFO順に連鎖される。割り込みをス
タックすることは、自由リストからPITエントリを取
得し、それをこのDSTエントリのためにPITリスト
の終端に連鎖し、そのCSWをPITエントリの状況フ
ィールド中に配置し、PITエントリのNCフィールド
にNC値を配置し、DSTのCCWフィールドを「1」
にセットすることからなる。CCを「1」にセットする
ことは、この装置に保留割り込みが存在することを示
す。
(2)割り込みポップ−割り込みをポップすることは、
DST/PITエントリの最上部のPITエントリを連
鎖から外し、DST条件コードを、PITエントリのN
Cフィールドで見出された値にセットし、S/370
CSWを含むPITエントリの状況フィールドをセーブ
し、PITエントリを自由リストに戻すことからなる。
DST/PITエントリの最上部のPITエントリを連
鎖から外し、DST条件コードを、PITエントリのN
Cフィールドで見出された値にセットし、S/370
CSWを含むPITエントリの状況フィールドをセーブ
し、PITエントリを自由リストに戻すことからなる。
(3)EXEC370へのメッセージ送信(第43図)
−これは、この説明では、例として参照されるものであ
る。この時点でオプションCCが0に等しい場合、S/
370マイクロコードは、EXEC370にメッセージ
を送る必要があると決定している。そのメッセージは特
に、I/O開始メッセージである。このメッセージまた
はS/370マイクロコードが送る他のメッセージに対
して、手続きは同一である。S/370マイクロコード
は、記憶162中のメイルボックス・エントリ中のデー
タ・フィールドにそのメッセージの内容を記入する。S
/370マイクロコードは次に、PUからBCUへの要
求を発行し、それはBCU論理253によって受領され
る。S/370マイクロコードは次に、肯定応答の戻り
を待つ。ところで、BCU論理は、PUからBCUへの
表示を受け取る時、メイルボックスからBCU記憶21
0へデータを転送するために、記憶アクセス及びDMA
動作を開始する。DMAが完了した時、BCUはS/3
70マイクロコードに肯定応答信号を返し、S/370
マイクロコードは次にその次の順次命令を進める。それ
と同時に、DMAC論理がシステム88に割り込みをか
ける。ソフトウェア・ルーチンが制御を受け取り、動作
の有効性をチェックし、EXEC370に通知を送り、
EXEC370は次にワーク・キューからメッセージを
取り出す。
−これは、この説明では、例として参照されるものであ
る。この時点でオプションCCが0に等しい場合、S/
370マイクロコードは、EXEC370にメッセージ
を送る必要があると決定している。そのメッセージは特
に、I/O開始メッセージである。このメッセージまた
はS/370マイクロコードが送る他のメッセージに対
して、手続きは同一である。S/370マイクロコード
は、記憶162中のメイルボックス・エントリ中のデー
タ・フィールドにそのメッセージの内容を記入する。S
/370マイクロコードは次に、PUからBCUへの要
求を発行し、それはBCU論理253によって受領され
る。S/370マイクロコードは次に、肯定応答の戻り
を待つ。ところで、BCU論理は、PUからBCUへの
表示を受け取る時、メイルボックスからBCU記憶21
0へデータを転送するために、記憶アクセス及びDMA
動作を開始する。DMAが完了した時、BCUはS/3
70マイクロコードに肯定応答信号を返し、S/370
マイクロコードは次にその次の順次命令を進める。それ
と同時に、DMAC論理がシステム88に割り込みをか
ける。ソフトウェア・ルーチンが制御を受け取り、動作
の有効性をチェックし、EXEC370に通知を送り、
EXEC370は次にワーク・キューからメッセージを
取り出す。
(4)S/370マイクロコードに対するメッセージの
送信−EXEC370がS/370マイクロコードに送
るメッセージには、いくつかの異なるタイプがある。S
/370 I/Oマスク事象(第44L図)は、そのよ
うな割り込みメッセージの例である。EXEC370
は、BCU論理とインターフェースするETIOマイク
ロコードを呼び出す。ETIOはBCU記憶210から
S/370記憶へメッセージを転送するDMA動作を開
始する。DMAが完了した時、BCUからPUへのメッ
セージがS/370マイクロコードへ送られ、割り込み
がシステム88に送られ、このことはETIOインター
フェース・ルーチンの、EXEC370への通知の送信
を引き起こす。
送信−EXEC370がS/370マイクロコードに送
るメッセージには、いくつかの異なるタイプがある。S
/370 I/Oマスク事象(第44L図)は、そのよ
うな割り込みメッセージの例である。EXEC370
は、BCU論理とインターフェースするETIOマイク
ロコードを呼び出す。ETIOはBCU記憶210から
S/370記憶へメッセージを転送するDMA動作を開
始する。DMAが完了した時、BCUからPUへのメッ
セージがS/370マイクロコードへ送られ、割り込み
がシステム88に送られ、このことはETIOインター
フェース・ルーチンの、EXEC370への通知の送信
を引き起こす。
E19.バス制御ユニット(BCU)の動作 (1)序論 前述のシステム要素及びその機能の一部を簡単に要約し
てみよう。すなわち、BCU156はS/370チップ
・セット150と、S/88PE62とモジュール10
中の関連システム及びI/O素子からなるI/Oサブシ
ステムの間のインターフェース機能を実行する。S/3
70チップ・セット150とI/Oサブシステムは、バ
ス・アダプタ154を介して通信する。S/88主記憶
16内のS/370記憶領域162は、場合によっては
基本的記憶モジュール(BSM)162と呼ばれること
がある。BCU156とバス・アダプタ154とを結合
する2組のアダプタ・バス・インターフェース線24
9、250(チャネル0)及び251、252(チャネ
ル1)がある。
てみよう。すなわち、BCU156はS/370チップ
・セット150と、S/88PE62とモジュール10
中の関連システム及びI/O素子からなるI/Oサブシ
ステムの間のインターフェース機能を実行する。S/3
70チップ・セット150とI/Oサブシステムは、バ
ス・アダプタ154を介して通信する。S/88主記憶
16内のS/370記憶領域162は、場合によっては
基本的記憶モジュール(BSM)162と呼ばれること
がある。BCU156とバス・アダプタ154とを結合
する2組のアダプタ・バス・インターフェース線24
9、250(チャネル0)及び251、252(チャネ
ル1)がある。
BCU156は、64KBローカル記憶210と、直接
アクセス・コントローラ(DMAC)209と、32ビ
ット・ローカル・アドレス・バス247と、32ビット
・ローカル・データ・バス223及びインターフェース
論理205を有する。
アクセス・コントローラ(DMAC)209と、32ビ
ット・ローカル・アドレス・バス247と、32ビット
・ローカル・データ・バス223及びインターフェース
論理205を有する。
前記に詳細に説明したように、DMAC209は、4つ
のデータ転送チャネルをもつ。
のデータ転送チャネルをもつ。
チャネル0−メイルボックス・コマンドがPE85から
BCU156へ転送される。メッセージは、S/370
記憶領域162からローカル記憶210へ読み出され
る。
BCU156へ転送される。メッセージは、S/370
記憶領域162からローカル記憶210へ読み出され
る。
チャネル1−S/370PE85のデータ書込。データ
は、ローカル記憶210への転送のために、S/370
記憶領域162から読み取られる。
は、ローカル記憶210への転送のために、S/370
記憶領域162から読み取られる。
チャネル2−S/370PE83のデータ読取。データ
は、ローカル記憶210からS/370記憶領域162
に転送される。
は、ローカル記憶210からS/370記憶領域162
に転送される。
チャネル3−BCU156からS/370PE85への
高優先順位メッセージ転送。メッセージは、ローカル記
憶210からS/370記憶領域162に転送される。
高優先順位メッセージ転送。メッセージは、ローカル記
憶210からS/370記憶領域162に転送される。
DMAC209は、バス・アダプタ154とローカル記
憶210の間でダブル・ワード(32ビット)を転送す
る。それは、I/Oデータ転送が完了した時にI/Oサ
ブシステム(S/88PE62)に割り込みをかける。
ローカル記憶210は、DMAC209を介する自動メ
イルボックス・ロードのためのI/O及びメッセージ・
データ・バッファWQBと、リンク・リスト・データを
もつ。
憶210の間でダブル・ワード(32ビット)を転送す
る。それは、I/Oデータ転送が完了した時にI/Oサ
ブシステム(S/88PE62)に割り込みをかける。
ローカル記憶210は、DMAC209を介する自動メ
イルボックス・ロードのためのI/O及びメッセージ・
データ・バッファWQBと、リンク・リスト・データを
もつ。
BCU論理205は、ローカル・バス調停ユニット21
6を有し、そこにおいて、S/88PE62とDMAC
209が、ローカル・バス、すなわち、データ・バス2
23及びアドレス・バス247に対するアクセスを求め
て競合する。PE62「バス要求」線190は、以下の
アドレス(第41C図参照)がアドレス・デコード及び
調停ユニット216によって検出される時はいつでもア
クティブとなる。すなわち、 ローカル記憶アドレス;プログラムされたBCUリセッ
ト、BSM書込セレクト・アップ、BSM書込セレクト
・アップ、及びBCU状況読取を含む、BCUによって
指示されたコマンド;ローカル・バス割り込み肯定応答
サイクル;及びDMACによって指示された読取または
書込レジスタ・コマンドである。
6を有し、そこにおいて、S/88PE62とDMAC
209が、ローカル・バス、すなわち、データ・バス2
23及びアドレス・バス247に対するアクセスを求め
て競合する。PE62「バス要求」線190は、以下の
アドレス(第41C図参照)がアドレス・デコード及び
調停ユニット216によって検出される時はいつでもア
クティブとなる。すなわち、 ローカル記憶アドレス;プログラムされたBCUリセッ
ト、BSM書込セレクト・アップ、BSM書込セレクト
・アップ、及びBCU状況読取を含む、BCUによって
指示されたコマンド;ローカル・バス割り込み肯定応答
サイクル;及びDMACによって指示された読取または
書込レジスタ・コマンドである。
DMACバス要求線269は、DMACシーケンス(ロ
ーカル記憶210の読取または書込)、またはリンク・
リスト・ロード・シーケンス(ローカル記憶からの読
取)のためにローカル・バス223、247の制御を得
たいと望む時にアクティブとなる。バス許可線268
は、ローカル・バスの制御が論理216によってDMA
C209に与えられた時に立ち上げられる。線191
は、制御がPE62に与えられているなら立ち上げられ
る。
ーカル記憶210の読取または書込)、またはリンク・
リスト・ロード・シーケンス(ローカル記憶からの読
取)のためにローカル・バス223、247の制御を得
たいと望む時にアクティブとなる。バス許可線268
は、ローカル・バスの制御が論理216によってDMA
C209に与えられた時に立ち上げられる。線191
は、制御がPE62に与えられているなら立ち上げられ
る。
BCU論理205は、バス・アダプタ154とI/Oサ
ブシステムの間のDMAC209転送タイミングを制御
し、4KBまでのI/O転送の、チャネル0及び1上の
バス・アダプタ154のための64バイト・ブロック転
送への変換を行う。
ブシステムの間のDMAC209転送タイミングを制御
し、4KBまでのI/O転送の、チャネル0及び1上の
バス・アダプタ154のための64バイト・ブロック転
送への変換を行う。
BCU論理205は、ブロック転送の際の64バイト境
界交差を検出する。もしこれが生じると、そのブロック
は、2回の個別の転送に分割される。BCU156がそ
の第1の転送のための64バイト境界までのワードの数
を計算する。これは、バス・アダプタ154に対する開
始アドレスとともに提供される。残りのワードは、新し
いアドレスとともに、後のコマンド(BSM読取/BS
M書込)によってバス・アダプタ154に提供されるこ
とになる。BCU論理はまた、高優先順位メッセージま
たはメイルボックス読取要求が生じる時、I/Oデータ
転送(64バイト境界上)の優先使用を与える。高優先
順位メッセージ及びメイルボックス読取要求は、BCU
156上で同時に処理することができる。「BSM読
取」及び「BSM書込」は、BCU256中で同時に処
理することができる。
界交差を検出する。もしこれが生じると、そのブロック
は、2回の個別の転送に分割される。BCU156がそ
の第1の転送のための64バイト境界までのワードの数
を計算する。これは、バス・アダプタ154に対する開
始アドレスとともに提供される。残りのワードは、新し
いアドレスとともに、後のコマンド(BSM読取/BS
M書込)によってバス・アダプタ154に提供されるこ
とになる。BCU論理はまた、高優先順位メッセージま
たはメイルボックス読取要求が生じる時、I/Oデータ
転送(64バイト境界上)の優先使用を与える。高優先
順位メッセージ及びメイルボックス読取要求は、BCU
156上で同時に処理することができる。「BSM読
取」及び「BSM書込」は、BCU256中で同時に処
理することができる。
BCU156は次のような4つのI/O動作を実行す
る。
る。
メイルボックス読取動作:これは、「PUからBCU要
求」線256aを介して、S/370 I/O命令マイ
クロコードによって開始される。メイルボックス188
は、S/370 BSM162中にある。それは、I/
Oサブシステム(I/O開始など)によって実行される
ことになるI/Oコマンドを記憶するために使用され
る。それはまた、I/OサブシステムがPE85から受
領する状況または他の情報をも含む。「メイルボックス
・セレクト・アップ」コマンドは、「PUからBCU選
択線」210がアダプタ・バス・チャネル0上で活動化
される時にBCU156によって開始される。S/37
0 I/O書込動作(アダプタ・バス・チャネル0)
は、もし「PUからBCUへの要求」がS/370PE
85によって活動化されるなら、64バイト境界上で優
先使用される。
求」線256aを介して、S/370 I/O命令マイ
クロコードによって開始される。メイルボックス188
は、S/370 BSM162中にある。それは、I/
Oサブシステム(I/O開始など)によって実行される
ことになるI/Oコマンドを記憶するために使用され
る。それはまた、I/OサブシステムがPE85から受
領する状況または他の情報をも含む。「メイルボックス
・セレクト・アップ」コマンドは、「PUからBCU選
択線」210がアダプタ・バス・チャネル0上で活動化
される時にBCU156によって開始される。S/37
0 I/O書込動作(アダプタ・バス・チャネル0)
は、もし「PUからBCUへの要求」がS/370PE
85によって活動化されるなら、64バイト境界上で優
先使用される。
S/370 I/O読取及び書込動作:これは、アダプ
タ・バス・チャネル0及び1上での、S/370記憶1
62とI/O装置の間のデータ転送(最大4KBブロッ
ク)を用意する。全てのデータ転送は、「BSMセレク
ト・アップ」アダプタ・バス・コマンドを介して、I/
Oサブシステムによって開始される。
タ・バス・チャネル0及び1上での、S/370記憶1
62とI/O装置の間のデータ転送(最大4KBブロッ
ク)を用意する。全てのデータ転送は、「BSMセレク
ト・アップ」アダプタ・バス・コマンドを介して、I/
Oサブシステムによって開始される。
高優先順位メッセージ転送:I/OサブシステムからS
/370に渡される高い優先順位の性質の、割り込み、
状況、エラーなどのメッセージ。全ての転送は、「キュ
ー・セレクト・アップ」コマンドを介して、BCU15
6から開始される。もし、高優先順位メッセージ要求が
生じるなら、S/370 I/O読取動作(アダプタ・
バス・チャネル1)が64バイト境界上で優先使用され
ることになる。
/370に渡される高い優先順位の性質の、割り込み、
状況、エラーなどのメッセージ。全ての転送は、「キュ
ー・セレクト・アップ」コマンドを介して、BCU15
6から開始される。もし、高優先順位メッセージ要求が
生じるなら、S/370 I/O読取動作(アダプタ・
バス・チャネル1)が64バイト境界上で優先使用され
ることになる。
E20.S/370 I/O開始シーケンス・フロー、
概要及び詳細説明 「I/O開始命令SIO」、「チャネル・アドレス・ワ
ードCAW」及び「チャネル制御ワードCCW」が、S
/370記憶162中の予定の「メイルボックス」位置
中に記憶される。この情報は、BCUインターフェース
論理205及びバス・アダプタ154を介してローカル
記憶210に渡される。
概要及び詳細説明 「I/O開始命令SIO」、「チャネル・アドレス・ワ
ードCAW」及び「チャネル制御ワードCCW」が、S
/370記憶162中の予定の「メイルボックス」位置
中に記憶される。この情報は、BCUインターフェース
論理205及びバス・アダプタ154を介してローカル
記憶210に渡される。
第18図に示されているDMACチャネル0レジスタ
は、メイルボックス読取動作のために使用される。それ
らは、S/88PE62によって、「リンク・アレイ連
鎖モード」で動作するようにプログラムされることにな
る。PE62は、ローカル記憶210(第41H図)中
の一連の「リンク・リスト(テーブル)」をセットアッ
プすることによって、このモードを初期化する。それは
次に、第1の「最先にリンクされたリスト・アドレス」
をDMACチャネル0ベース・アドレス・レジスタ(3
2ビット)BARにセットすることになる。このアドレ
スは、リンクされたリスト・データの記憶210中の最
初の位置を指し示すことになる。
は、メイルボックス読取動作のために使用される。それ
らは、S/88PE62によって、「リンク・アレイ連
鎖モード」で動作するようにプログラムされることにな
る。PE62は、ローカル記憶210(第41H図)中
の一連の「リンク・リスト(テーブル)」をセットアッ
プすることによって、このモードを初期化する。それは
次に、第1の「最先にリンクされたリスト・アドレス」
をDMACチャネル0ベース・アドレス・レジスタ(3
2ビット)BARにセットすることになる。このアドレ
スは、リンクされたリスト・データの記憶210中の最
初の位置を指し示すことになる。
DMAC「PCL」(周辺制御線)257aは、PE6
2によって、PCL線257aが活動化される時はいつ
でも、DMAC209をしてそのIRQ割り込み入力線
258を活動化させるようにプログラムされることにな
る。「PCL」線257aは、アダプタ・バッファ25
9を介する主記憶162からローカル記憶210へのメ
イルボックス・データ転送の完了に続いて活動化される
ことになる。その割り込みは、S/88プロセッサPE
62に、メイルボックス・ロードが丁度完了したことを
通知する。
2によって、PCL線257aが活動化される時はいつ
でも、DMAC209をしてそのIRQ割り込み入力線
258を活動化させるようにプログラムされることにな
る。「PCL」線257aは、アダプタ・バッファ25
9を介する主記憶162からローカル記憶210へのメ
イルボックス・データ転送の完了に続いて活動化される
ことになる。その割り込みは、S/88プロセッサPE
62に、メイルボックス・ロードが丁度完了したことを
通知する。
リンク・リスト・データ(第41H図)は、次のものか
らなる。すなわち、データ・ブロックの開始記憶アドレ
スと、記憶転送カウントと、次のテーブル・エントリに
対するリンク・アドレスである。そのテーブル中の最後
のリンク・アドレスは、ゼロとなる。
らなる。すなわち、データ・ブロックの開始記憶アドレ
スと、記憶転送カウントと、次のテーブル・エントリに
対するリンク・アドレスである。そのテーブル中の最後
のリンク・アドレスは、ゼロとなる。
S/88プロセッサPE62は、DMACチャネル0ベ
ース・アドレス・レジスタ中の最上リスト・アドレスを
セットする。
ース・アドレス・レジスタ中の最上リスト・アドレスを
セットする。
S/88プロセッサPE62は、チャネル0チャネル制
御レジスタCCRのビット7(開始ビット)中に「1」
を書き込むことによってDMAC209を活動化するこ
とになる。DMAC209は次に、次のようにしてその
チャネル0レジスタ中に最初のリンク・リストを読み込
む。
御レジスタCCRのビット7(開始ビット)中に「1」
を書き込むことによってDMAC209を活動化するこ
とになる。DMAC209は次に、次のようにしてその
チャネル0レジスタ中に最初のリンク・リストを読み込
む。
メモリ・アドレス・レジスタMAR中への記憶210の
データ・ブロックWQBの開始アドレスメモリ転送カウ
ント・レジスタMTCに対する転送カウント(メイルボ
ックス・データのバイト) 次のデータ・ブロック・アドレス・レジスタBARへの
リンク・アドレス より詳しく述べると、命令実行の間に、S/370PE
85が「I/O開始」命令をデコードし、S/370メ
モリ162中に含まれる順次的「メイルボックス」位置
に、「I/O開始」コマンドと、チャネル・アドレス・
ワードと、第1のチャネル制御ワードを配置する。メイ
ルボックスの開始アドレス(ベース+キュー長)は、初
期化時点で、バス・アダプタ154のベース・レジスタ
に格納される。
データ・ブロックWQBの開始アドレスメモリ転送カウ
ント・レジスタMTCに対する転送カウント(メイルボ
ックス・データのバイト) 次のデータ・ブロック・アドレス・レジスタBARへの
リンク・アドレス より詳しく述べると、命令実行の間に、S/370PE
85が「I/O開始」命令をデコードし、S/370メ
モリ162中に含まれる順次的「メイルボックス」位置
に、「I/O開始」コマンドと、チャネル・アドレス・
ワードと、第1のチャネル制御ワードを配置する。メイ
ルボックスの開始アドレス(ベース+キュー長)は、初
期化時点で、バス・アダプタ154のベース・レジスタ
に格納される。
S/370PE85は、ビット11をアクティブにする
ことによって、プロセッサ・バスを介して「LD OS
CW」制御OPを発行する。このことは、バス・プロセ
ッサ154中の制御ワード中の「PUからBCUへの要
求」ビットをオンにセットする。もし、I/Oデータ転
送の間に「PUからBCU要求」が生じたなら、BCU
156はメイルボックス・ロードを行わせるために、6
4バイト境界上でI/O転送を優先使用することにな
る。
ことによって、プロセッサ・バスを介して「LD OS
CW」制御OPを発行する。このことは、バス・プロセ
ッサ154中の制御ワード中の「PUからBCUへの要
求」ビットをオンにセットする。もし、I/Oデータ転
送の間に「PUからBCU要求」が生じたなら、BCU
156はメイルボックス・ロードを行わせるために、6
4バイト境界上でI/O転送を優先使用することにな
る。
BCU156は次に、バス290上で、第45A図に示
すフォーマットで「メイルボックス読取セレクト・アッ
プ」コマンドを発生し、これを、チャネル0コマンド・
レジスタ214に記憶する。尚、第45A図で、ビット
0、1はコマンド・ビットであり、ビット2乃至7は、
バイト・カウントである。メイルボックス・アドレス・
ビットは、第45B図に示すフォーマットでバス290
を介してレジスタ219中に記憶される。尚、第45B
図で、ビット7は記憶162中のIOA領域を識別し、
ビット24乃至26はBCUチャネル番号であり、ビッ
ト27乃至31は、メイルボックス・オフセットであ
る。
すフォーマットで「メイルボックス読取セレクト・アッ
プ」コマンドを発生し、これを、チャネル0コマンド・
レジスタ214に記憶する。尚、第45A図で、ビット
0、1はコマンド・ビットであり、ビット2乃至7は、
バイト・カウントである。メイルボックス・アドレス・
ビットは、第45B図に示すフォーマットでバス290
を介してレジスタ219中に記憶される。尚、第45B
図で、ビット7は記憶162中のIOA領域を識別し、
ビット24乃至26はBCUチャネル番号であり、ビッ
ト27乃至31は、メイルボックス・オフセットであ
る。
BCU156が、レジスタ214及び219に値を格納
することによって、コマンド/状況バス249及びアド
レス/データ・バス250を活動化した後、BCU15
6は、バス・アダプタからのデータを待つ。BCU15
6は、「タグ・ダウン」線262bをサンプリングする
ことによってこれを行う。「タグ・ダウン」がバス・ア
ダプタ154によって非活動化される時(データ・レデ
ィ)、メイルボックス・データの最初の4バイトは2つ
のチャネル0サブサイクルを介してチャネル0読取バッ
ファ226中にラッチされる。
することによって、コマンド/状況バス249及びアド
レス/データ・バス250を活動化した後、BCU15
6は、バス・アダプタからのデータを待つ。BCU15
6は、「タグ・ダウン」線262bをサンプリングする
ことによってこれを行う。「タグ・ダウン」がバス・ア
ダプタ154によって非活動化される時(データ・レデ
ィ)、メイルボックス・データの最初の4バイトは2つ
のチャネル0サブサイクルを介してチャネル0読取バッ
ファ226中にラッチされる。
BCU論理253は次に、DMAC209のチャネル0
上の「要求」線263aを立ち上げる。DMAC209
は次に、ローカル・バス調停回路216に対する線26
9に、「バス要求」(BR)を立ち上げる。もしローカ
ル・バスがS/88プロセッサ62によって使用されて
いないなら、DMAC209に対するバス許可線(B
G)を介してバス・アクセスが許可される。DMAC2
09は次に、MARからアドレス・バス247に対して
(記憶210中の)WQBローカル・メイルボックスの
開始アドレスを転送し、「ACKO」(DMACチャネ
ル0肯定応答)線264aを立ち上げる。「ACKO」
信号は、バッファ226から、データ・バス223を介
しての、記憶210中のWQBのローカル・メイルボッ
クス部分に対するデータの転送を開始する。「DTAC
K」線265が、DMAC209に、動作が完了したこ
とを知らせるために活動化される。
上の「要求」線263aを立ち上げる。DMAC209
は次に、ローカル・バス調停回路216に対する線26
9に、「バス要求」(BR)を立ち上げる。もしローカ
ル・バスがS/88プロセッサ62によって使用されて
いないなら、DMAC209に対するバス許可線(B
G)を介してバス・アクセスが許可される。DMAC2
09は次に、MARからアドレス・バス247に対して
(記憶210中の)WQBローカル・メイルボックスの
開始アドレスを転送し、「ACKO」(DMACチャネ
ル0肯定応答)線264aを立ち上げる。「ACKO」
信号は、バッファ226から、データ・バス223を介
しての、記憶210中のWQBのローカル・メイルボッ
クス部分に対するデータの転送を開始する。「DTAC
K」線265が、DMAC209に、動作が完了したこ
とを知らせるために活動化される。
BCUクロック信号(第25図)は、バッファ259か
らレジスタ226へのメイルボックス・データの転送を
続ける。BCU156は、各ローカル記憶210/DM
AC209シーケンス(32ビット)のための2つのア
ダプタ・バス(「タグ・アップ」/「タグ・ダウン」)
シーケンスを実行する。
らレジスタ226へのメイルボックス・データの転送を
続ける。BCU156は、各ローカル記憶210/DM
AC209シーケンス(32ビット)のための2つのア
ダプタ・バス(「タグ・アップ」/「タグ・ダウン」)
シーケンスを実行する。
DMACサイクルが完了した時(DTACKアクティ
ブ)、DMAC209はBCU論理253に対して「デ
ータ転送完了」(DTC)線267を立ち上げ、BCU
論理253は次に、レジスタ226からWQBメイルボ
ックスへの第2の4バイトの読取を行うために線263
a上にDMAC209に対する別の「要求」を発行す
る。DMACサイクルは、メイルボックス・データの全
体(16バイト)が転送されてしまう(4ローカル・バ
ス・サイクル)まで、反復される。「PCL」線257
aは、次に、BCU論理253によってDMAC209
に対して活動化される。このことは、DMAC209か
らS/88プロセッサ優先順位エンコーダ/割り込み論
理212に対する「IRQ」線258の活動化を引き起
こす。PE62は次に、メイルボックス要求を処理す
る。
ブ)、DMAC209はBCU論理253に対して「デ
ータ転送完了」(DTC)線267を立ち上げ、BCU
論理253は次に、レジスタ226からWQBメイルボ
ックスへの第2の4バイトの読取を行うために線263
a上にDMAC209に対する別の「要求」を発行す
る。DMACサイクルは、メイルボックス・データの全
体(16バイト)が転送されてしまう(4ローカル・バ
ス・サイクル)まで、反復される。「PCL」線257
aは、次に、BCU論理253によってDMAC209
に対して活動化される。このことは、DMAC209か
らS/88プロセッサ優先順位エンコーダ/割り込み論
理212に対する「IRQ」線258の活動化を引き起
こす。PE62は次に、メイルボックス要求を処理す
る。
DMAC209がリンク・リストからのそのチャネル0
レジスタ・ロードを完了する時、DMAC209は次の
メイルボックス・ロードを開始するために、BCU論理
253からのチャネル0「REQ」線263a上の信号
を待つ。一旦開始されると、DMACチャネル0は非決
定的にアクティブにとどまり、S/88プロセッサ62
が環状リンク・リストを制御し、BCU156が、「R
EQ」線263aを非活動性に維持することによってデ
ータ転送を保留する。もし「リストの終了」条件によっ
てチャネル0が停止すると、S/88プロセッサは終了
割り込みを受け取って適当な時チャネル0を再開始す
る。
レジスタ・ロードを完了する時、DMAC209は次の
メイルボックス・ロードを開始するために、BCU論理
253からのチャネル0「REQ」線263a上の信号
を待つ。一旦開始されると、DMACチャネル0は非決
定的にアクティブにとどまり、S/88プロセッサ62
が環状リンク・リストを制御し、BCU156が、「R
EQ」線263aを非活動性に維持することによってデ
ータ転送を保留する。もし「リストの終了」条件によっ
てチャネル0が停止すると、S/88プロセッサは終了
割り込みを受け取って適当な時チャネル0を再開始す
る。
E21.S/370 I/Oデータ転送シーケンス・フ
ロー、一般的説明 全てのI/O読取及び書込転送は、アダプタ・バス・ア
ーキテクチャによる「BSM読取セレクト・アップ」及
び「BSM書込セレクト・アップ」コマンドを介してS
/88プロセッサ62を源とする。S/370CCWコ
マンド及び開始アドレス(S/370メモリ162中
の)は、「I/O開始」のためにCCWから導出され
る。データは、S/88プロセッサ62によって、各I
/O装置と、ローカル記憶210中のローカル・バッフ
ァの間で移動される。
ロー、一般的説明 全てのI/O読取及び書込転送は、アダプタ・バス・ア
ーキテクチャによる「BSM読取セレクト・アップ」及
び「BSM書込セレクト・アップ」コマンドを介してS
/88プロセッサ62を源とする。S/370CCWコ
マンド及び開始アドレス(S/370メモリ162中
の)は、「I/O開始」のためにCCWから導出され
る。データは、S/88プロセッサ62によって、各I
/O装置と、ローカル記憶210中のローカル・バッフ
ァの間で移動される。
ローカル記憶210は、S/88プロセッサ62によっ
て管理されるI/O書込動作のための記憶ブロックのキ
ューを含む。そのキューが少なくとも1つのエントリを
含む時、I/O書込動作を送出する準備ができている。
これらのブロックのうちの選択された1つのための開始
アドレスは、書込動作の開始の前に、S/88プロセッ
サ62によってDMAC209中のDMAチャネル1レ
ジスタ中に記憶される。DMAチャネル1レジスタは、
ローカル記憶210を介するS/370 I/O書込動
作(I/Oに対するS/370記憶162の書込)のた
めに予約されている。アダプタ・データ・バッファ25
9(64バイト)は、メイルボックス読取及びS/37
0 I/O書込動作(S/370メモリ162からロー
カル記憶210へのデータ転送)のために予約されてい
る。このバッファは、チャネル0アダプタ・バス24
9、250に関連づけられている。バッファ260(6
4バイト)は、(S/370に対する)メッセージ書込
及びS/370 I/O読取動作(ローカル記憶210
からS/370メモリ162へのデータ転送)のために
予約されている。このバッファは、チャネル1アダプタ
・バス251、252と関連付けられている。S/88
プロセッサ62は、DMACチャネル1及び2のメモリ
・アドレス・レジスタの高位ワードをゼロに初期化す
る。このことは、ローカル記憶210が16ビット以上
のアドレスを必要としないので、これらのレジスタが動
作シーケンスの間にロードされた時に、余分のバス・サ
イクルを節約するものである。
て管理されるI/O書込動作のための記憶ブロックのキ
ューを含む。そのキューが少なくとも1つのエントリを
含む時、I/O書込動作を送出する準備ができている。
これらのブロックのうちの選択された1つのための開始
アドレスは、書込動作の開始の前に、S/88プロセッ
サ62によってDMAC209中のDMAチャネル1レ
ジスタ中に記憶される。DMAチャネル1レジスタは、
ローカル記憶210を介するS/370 I/O書込動
作(I/Oに対するS/370記憶162の書込)のた
めに予約されている。アダプタ・データ・バッファ25
9(64バイト)は、メイルボックス読取及びS/37
0 I/O書込動作(S/370メモリ162からロー
カル記憶210へのデータ転送)のために予約されてい
る。このバッファは、チャネル0アダプタ・バス24
9、250に関連づけられている。バッファ260(6
4バイト)は、(S/370に対する)メッセージ書込
及びS/370 I/O読取動作(ローカル記憶210
からS/370メモリ162へのデータ転送)のために
予約されている。このバッファは、チャネル1アダプタ
・バス251、252と関連付けられている。S/88
プロセッサ62は、DMACチャネル1及び2のメモリ
・アドレス・レジスタの高位ワードをゼロに初期化す
る。このことは、ローカル記憶210が16ビット以上
のアドレスを必要としないので、これらのレジスタが動
作シーケンスの間にロードされた時に、余分のバス・サ
イクルを節約するものである。
(A)I/O書込動作(S/370記憶162からロー
カル記憶210へ) S/88プロセッサ62は、第45C図に示すように
(バス161a、ドライバ217、バス247及びラッ
チ233を介して)DMACアドレス及びデータ・バス
248上に情報を配置することにより、DMACチャネ
ル1メモリ・アドレス・レジスタMAR中にローカル・
バッファ開始アドレスをセットする。尚、第45C図
で、ビット31−08=007E00=「DMACレジ
スタ選択」コマンドであり、ビット07−00=DMA
Cチャネル1メモリ・アドレス・レジスタ(低)選択で
ある。S/88は、バス上の最上位及び最下位ビットを
それぞれ「31」及び「0」として識別子、これはS/
370プロトコルとは逆であることに留意されたい。
カル記憶210へ) S/88プロセッサ62は、第45C図に示すように
(バス161a、ドライバ217、バス247及びラッ
チ233を介して)DMACアドレス及びデータ・バス
248上に情報を配置することにより、DMACチャネ
ル1メモリ・アドレス・レジスタMAR中にローカル・
バッファ開始アドレスをセットする。尚、第45C図
で、ビット31−08=007E00=「DMACレジ
スタ選択」コマンドであり、ビット07−00=DMA
Cチャネル1メモリ・アドレス・レジスタ(低)選択で
ある。S/88は、バス上の最上位及び最下位ビットを
それぞれ「31」及び「0」として識別子、これはS/
370プロトコルとは逆であることに留意されたい。
第45D図(MAR用)に示されている内容は、データ
・バス223上に配置され、ここで、ビット31−16
=I/O書込のための記憶210中のローカル・バッフ
ァの開始アドレスである。その高位データ・バス・ビッ
ト(31−16)は、チャネル1メモリ・アドレス・レ
ジスタの低位(15−00)部分にロードされる。MA
Rの高位ビット(31−16)は、初期化の間に0にセ
ットされている。DMAC209は、S/88プロセッ
サCPUに対して、BCU論理253を介する16ビッ
ト・ポート「DSACK」信号線266a、bで応答す
る。S/88プロセッサ62は、ローカル・アドレス・
バス247上に、BCUデータ(バイト・カウント、記
憶キー、アダプタ・バス優先順位及びカスタマ/IOA
空間データ)及びDMACチャネル1メモリ転送カウン
ト・データを配置する。第45E図は、アドレス・バス
上のコマンドを示し、ここで、31−08=00740
0=「DMACレジスタ選択」コマンド、 07−00=BCU選択及びDMACチャネル1MTC
選択 バイト・カウント、(CCWから導出された)記憶キ
ー、アダプタ・バス優先順位、及びカスタマ/IOA空
間ビットは、S/88プロセッサ62によって第45F
図に示すフォーマットでデータ・バス223上に配置さ
れ、ここで、そのビット指定は次のとおりである。
・バス223上に配置され、ここで、ビット31−16
=I/O書込のための記憶210中のローカル・バッフ
ァの開始アドレスである。その高位データ・バス・ビッ
ト(31−16)は、チャネル1メモリ・アドレス・レ
ジスタの低位(15−00)部分にロードされる。MA
Rの高位ビット(31−16)は、初期化の間に0にセ
ットされている。DMAC209は、S/88プロセッ
サCPUに対して、BCU論理253を介する16ビッ
ト・ポート「DSACK」信号線266a、bで応答す
る。S/88プロセッサ62は、ローカル・アドレス・
バス247上に、BCUデータ(バイト・カウント、記
憶キー、アダプタ・バス優先順位及びカスタマ/IOA
空間データ)及びDMACチャネル1メモリ転送カウン
ト・データを配置する。第45E図は、アドレス・バス
上のコマンドを示し、ここで、31−08=00740
0=「DMACレジスタ選択」コマンド、 07−00=BCU選択及びDMACチャネル1MTC
選択 バイト・カウント、(CCWから導出された)記憶キ
ー、アダプタ・バス優先順位、及びカスタマ/IOA空
間ビットは、S/88プロセッサ62によって第45F
図に示すフォーマットでデータ・バス223上に配置さ
れ、ここで、そのビット指定は次のとおりである。
31−27=予約 26=高位バイト・カウント。このビットは、最大バイ
ト・カウント(4Kバイト)が転送されつつあるときの
み1となる。
ト・カウント(4Kバイト)が転送されつつあるときの
み1となる。
26−16=DMACチャネル1MTCレジスタにロー
ドされるバイト・カウント 26−14=BCUレジスタ220にロードされるバイ
ト・カウント(最大4096)。そのカウントの少なく
とも一部は、バイト・カウント動作において後で説明す
るようにレジスタ221にロードされる。バス・アダプ
タ154は、4096バイト(バイト・カウント−1)
を転送するために1111 1111 1111という
カウントを必要とする。それゆえ、BCU156は、そ
れを、(64バイト・ブロック中の)バイト・オフセッ
ト・ビット15−14とともにバス・アダプタ154に
提供する前に一度、ダブル・ワード境界ビットをデクリ
メントする。
ドされるバイト・カウント 26−14=BCUレジスタ220にロードされるバイ
ト・カウント(最大4096)。そのカウントの少なく
とも一部は、バイト・カウント動作において後で説明す
るようにレジスタ221にロードされる。バス・アダプ
タ154は、4096バイト(バイト・カウント−1)
を転送するために1111 1111 1111という
カウントを必要とする。それゆえ、BCU156は、そ
れを、(64バイト・ブロック中の)バイト・オフセッ
ト・ビット15−14とともにバス・アダプタ154に
提供する前に一度、ダブル・ワード境界ビットをデクリ
メントする。
15−14=下位バイト・カウント・ビットBCU15
6。これらのビットは、ダブル・バイト境界からのバイ
ト・オフセット−1(バス・アダプタ条件のため)をあ
らわす。これらのビットは、DMAC209またはBC
U156によっては使用されない。というのは、それら
はダブル・ワードしか転送しないからである。それら
は、S/370 BSM162に提供するために、バイ
ト・アダプタ154に渡される。
6。これらのビットは、ダブル・バイト境界からのバイ
ト・オフセット−1(バス・アダプタ条件のため)をあ
らわす。これらのビットは、DMAC209またはBC
U156によっては使用されない。というのは、それら
はダブル・ワードしか転送しないからである。それら
は、S/370 BSM162に提供するために、バイ
ト・アダプタ154に渡される。
13−12=アダプタ・バス・チャネル優先順位 07=カスタマ/IOA空間ビット 06=S/88プロセッサは、1つの追加的ローカル記
憶が必要であることを示すためにこのビット(1)を活
動化する。このことは、開始S/370記憶アドレスが
ダブルワード(32ビット)境界上にない時に生じる。
全てのBCUアドレスはダブルワード境界上で開始しな
くてはならないので、最初のアクセスは指定された開始
アドレスにあるバイトを含み、先行するバイトがそのダ
ブルワード・アドレスに含まれる。先行バイトは棄却さ
れる。
憶が必要であることを示すためにこのビット(1)を活
動化する。このことは、開始S/370記憶アドレスが
ダブルワード(32ビット)境界上にない時に生じる。
全てのBCUアドレスはダブルワード境界上で開始しな
くてはならないので、最初のアクセスは指定された開始
アドレスにあるバイトを含み、先行するバイトがそのダ
ブルワード・アドレスに含まれる。先行バイトは棄却さ
れる。
05−00=予約済み DMAC209は、そのデータ・バスの高位ワード(す
なわち、バイト・カウント)を、チャネル1MTCレジ
スタにロードすることになる。BCUは、次のようにデ
ータ・バス内容を把捉する。
なわち、バイト・カウント)を、チャネル1MTCレジ
スタにロードすることになる。BCUは、次のようにデ
ータ・バス内容を把捉する。
ビット26−14−BSM読取セレクト・アップ・カウ
ンタ220に対して ビット13−06−アダプタ・バス・チャネル0 A/
Dレジスタ219に対して(但し再配列されて) 1つのS/88プロセッサ・マシン・サイクル中でダブ
ルワード転送が生じる時、そのアドレスはダブルワード
境界上になくてはならない。DMACチャネル1MTC
のアドレスは、ダブルワード境界上にないので(ビット
07−00=01001010)、BCU156及びD
MAC209に1つのS/88プロセッサ・コマンドを
ロードするためには次の動作が行なわれる。すなわち、
BCU156はアドレス・ビット1を反転してそれを別
のレジスタ選択ビットとともにDMAC209に提供す
る。このことは、チャネル1のためのDMAC209を
適切に選択する(アドレス・ビット07−00=010
01010)ことを可能ならしめる。このことは、チャ
ネル2 I/O読取動作のためのMTCレジスタの選択
にも当てはまる。DMAC209は、BCU論理253
に対して、線265上の「DTACK」信号で応答す
る。BCU論理253は、「DTACK」信号を、S/
88プロセッサ62に対する、線266a、b上の32
ビット・ポート「DSACK」応答に変換する。その転
送バイト・カウントは、残りのデータ・バス・データと
ともに、後の「BSM読取セレクト・アップ」コマンド
の間にバス・アダプタ154に提供される。BSM読取
境界カウンタ221またはBSM読取セレクトアップ・
バイト・カウンタ220は、チャネル0読取コマンド・
レジスタ214中にロードされることになる。
ンタ220に対して ビット13−06−アダプタ・バス・チャネル0 A/
Dレジスタ219に対して(但し再配列されて) 1つのS/88プロセッサ・マシン・サイクル中でダブ
ルワード転送が生じる時、そのアドレスはダブルワード
境界上になくてはならない。DMACチャネル1MTC
のアドレスは、ダブルワード境界上にないので(ビット
07−00=01001010)、BCU156及びD
MAC209に1つのS/88プロセッサ・コマンドを
ロードするためには次の動作が行なわれる。すなわち、
BCU156はアドレス・ビット1を反転してそれを別
のレジスタ選択ビットとともにDMAC209に提供す
る。このことは、チャネル1のためのDMAC209を
適切に選択する(アドレス・ビット07−00=010
01010)ことを可能ならしめる。このことは、チャ
ネル2 I/O読取動作のためのMTCレジスタの選択
にも当てはまる。DMAC209は、BCU論理253
に対して、線265上の「DTACK」信号で応答す
る。BCU論理253は、「DTACK」信号を、S/
88プロセッサ62に対する、線266a、b上の32
ビット・ポート「DSACK」応答に変換する。その転
送バイト・カウントは、残りのデータ・バス・データと
ともに、後の「BSM読取セレクト・アップ」コマンド
の間にバス・アダプタ154に提供される。BSM読取
境界カウンタ221またはBSM読取セレクトアップ・
バイト・カウンタ220は、チャネル0読取コマンド・
レジスタ214中にロードされることになる。
S/88プロセッサ62は次に、第45G図に示すフォ
ーマットでデータ・バス223上で「BSM読取セレク
トアップ」コマンドを発生し、そのとき、ビット31−
00=007E0108=「BSM読取セレクトアッ
プ」コマンドである。
ーマットでデータ・バス223上で「BSM読取セレク
トアップ」コマンドを発生し、そのとき、ビット31−
00=007E0108=「BSM読取セレクトアッ
プ」コマンドである。
S/88プロセッサ62はまた、データ・バス223上
に第45H図でしめすフォーマットでBSM開始アドレ
スを配置し、ここでビット23−0=記憶162中の開
始アドレスである。
に第45H図でしめすフォーマットでBSM開始アドレ
スを配置し、ここでビット23−0=記憶162中の開
始アドレスである。
バス223上のBSM開始アドレスは、アドレス・レジ
スタ219とBSM読取アドレス・レジスタ231上に
記憶される。それは、後で、S/370記憶162に提
供するためにバス・アダプタ154に送られる。BCU
156は次に、S/88プロセッサ62に対する「DS
ACK」線266a、dを活動化する。この時点で、S
/88プロセッサは解放され、最早この動作に関与しな
い。
スタ219とBSM読取アドレス・レジスタ231上に
記憶される。それは、後で、S/370記憶162に提
供するためにバス・アダプタ154に送られる。BCU
156は次に、S/88プロセッサ62に対する「DS
ACK」線266a、dを活動化する。この時点で、S
/88プロセッサは解放され、最早この動作に関与しな
い。
BCU156は、バス290を介してレジスタ214に
「BSMセレクト・アップ」(読取)コマンドを配置
し、第45I図に示すようにコマンド/状況バス249
上にそれを配置する。第45I図で、ビットは、 0−1=「BSM」セレクト・アップ」コマンド(読
取) 2−7=フィールド長−1(最大64バイト) そのフィールド長は、前以てレジスタ220または22
1からレジスタ214に転送されていたものである。レ
ジスタ219は、第45J図に示すフォーマットでバス
250上にアドレス情報を配置する。そこで、 0−3=記憶キー 4=1 5−6=優先順位(プロセッサ・バス170に対するバ
ス・アダプタ154の) 7=1=カスタマ領域アクセス 0=マイクロコード領域アクセス 8−31=記憶163中のデータ・フィールド中の最初
のバイトのアドレス BCU論理253は次に、そのコマンドと、フィールド
長データを、コマンド・レジスタ124(第13図)に
ラッチし、キー・アドレス・データをレジスタ122に
ラッチするためにバス・アダプタ154に対するタグ・
アップ線262aを立ち上げる。バス・アダプタ154
は、もしデータが有効でないならBCU論理253に対
するタグ・ダウンを立ち上げる。BCU論理253は、
タグ・ダウンが降下するまで待つ。バス・アダプタ15
4は、第45K及び第45L図に示すように、アダプタ
・バスBSMセレクト・アップ・コマンドをプロセッサ
・バスI/Oメモリ・コマンドに変換する。このとき、
プロセッサ・アドレス/データ・バス170上のビット
は次のことをあらわす。
「BSMセレクト・アップ」(読取)コマンドを配置
し、第45I図に示すようにコマンド/状況バス249
上にそれを配置する。第45I図で、ビットは、 0−1=「BSM」セレクト・アップ」コマンド(読
取) 2−7=フィールド長−1(最大64バイト) そのフィールド長は、前以てレジスタ220または22
1からレジスタ214に転送されていたものである。レ
ジスタ219は、第45J図に示すフォーマットでバス
250上にアドレス情報を配置する。そこで、 0−3=記憶キー 4=1 5−6=優先順位(プロセッサ・バス170に対するバ
ス・アダプタ154の) 7=1=カスタマ領域アクセス 0=マイクロコード領域アクセス 8−31=記憶163中のデータ・フィールド中の最初
のバイトのアドレス BCU論理253は次に、そのコマンドと、フィールド
長データを、コマンド・レジスタ124(第13図)に
ラッチし、キー・アドレス・データをレジスタ122に
ラッチするためにバス・アダプタ154に対するタグ・
アップ線262aを立ち上げる。バス・アダプタ154
は、もしデータが有効でないならBCU論理253に対
するタグ・ダウンを立ち上げる。BCU論理253は、
タグ・ダウンが降下するまで待つ。バス・アダプタ15
4は、第45K及び第45L図に示すように、アダプタ
・バスBSMセレクト・アップ・コマンドをプロセッサ
・バスI/Oメモリ・コマンドに変換する。このとき、
プロセッサ・アドレス/データ・バス170上のビット
は次のことをあらわす。
0=0=I/Oメモリ・コマンド 1=1=フェッチ動作 2−7=フィールド長 8−31=実バイト・アドレス また、プロセッサ・キー/状況バス・ビットは次のこと
をあらわす。
をあらわす。
0−3=記憶キー 4=0=動的変換なし アドレスされたデータがS/370メモリ162から返
されたとき、それはバス・アダプタ・データ・バッファ
259(チャネル0)でラッチされる。そのバス・アダ
プタ154は次に、アダプタ・バス・チャネル0上のタ
グ・ダウン線262bを非活動化する。この条件は、B
CU156に、2バイト(16ビット)のデータをラッ
チするように報知し、その直後にクロック左及びクロッ
ク右信号を介してのチャネル0読取バッファ226(4
バイト)中の別の2バイトが続く。BCU156は次
に、DMAC209に対するその「REQ1」線263
b(DMACチャネル1要求)を活動化する。DMAC
209は、ローカル・バス・サイクルを実行するため
に、BCUローカル・バス調停論理216に対する線2
69上に「BCU REQ」を発行する。
されたとき、それはバス・アダプタ・データ・バッファ
259(チャネル0)でラッチされる。そのバス・アダ
プタ154は次に、アダプタ・バス・チャネル0上のタ
グ・ダウン線262bを非活動化する。この条件は、B
CU156に、2バイト(16ビット)のデータをラッ
チするように報知し、その直後にクロック左及びクロッ
ク右信号を介してのチャネル0読取バッファ226(4
バイト)中の別の2バイトが続く。BCU156は次
に、DMAC209に対するその「REQ1」線263
b(DMACチャネル1要求)を活動化する。DMAC
209は、ローカル・バス・サイクルを実行するため
に、BCUローカル・バス調停論理216に対する線2
69上に「BCU REQ」を発行する。
線268上のバス許可信号がBCU調停論理から返され
た時、DMAC209がローカル記憶210に対するチ
ャネル0読取バッファ259動作を開始する。DMAC
209はBCU論理253に対する線264b上にAC
K1(DMAチャネル1肯定応答)を返し、バス24
8、ラッチ233、アドレス・バス247及びマルチプ
レクサ232を介して記憶210アドレシング回路に対
してDMACチャネル1レジスタ248中のローカル記
憶アドレスをゲートすることによってそのことを行う。
BCU論理253は、MARレジスタによって指定され
たアドレスにおいて記憶210に記憶するためにバッフ
ァ226からデータ・バス223への第1のデータ(4
バイト)をゲートするために線264b上のACK1信
号と線210a上のRAM選択信号を使用する。DTA
CKがBCU論理253によって線265上に戻された
とき、DMAC209は線267上でDTC(データ転
送完了)を立ち上げる。
た時、DMAC209がローカル記憶210に対するチ
ャネル0読取バッファ259動作を開始する。DMAC
209はBCU論理253に対する線264b上にAC
K1(DMAチャネル1肯定応答)を返し、バス24
8、ラッチ233、アドレス・バス247及びマルチプ
レクサ232を介して記憶210アドレシング回路に対
してDMACチャネル1レジスタ248中のローカル記
憶アドレスをゲートすることによってそのことを行う。
BCU論理253は、MARレジスタによって指定され
たアドレスにおいて記憶210に記憶するためにバッフ
ァ226からデータ・バス223への第1のデータ(4
バイト)をゲートするために線264b上のACK1信
号と線210a上のRAM選択信号を使用する。DTA
CKがBCU論理253によって線265上に戻された
とき、DMAC209は線267上でDTC(データ転
送完了)を立ち上げる。
BCU156は、レジスタ220、MTC中に保持され
ているバイト・カウンタをデクリメントし、チャネル1
MARをインクリメントし、バス・アダプタ154から
受信される64バイトまでのデータのダブルワード毎に
アドレス・レジスタ231をデクリメントする。上述の
シーケンスはBCUコマンドの4バイト毎に(64ま
で)反復される。もし転送バイト・カウントが64より
も大きいなら、BCU156は次の64バイトをフェッ
チするためにレジスタ231、219を介してバス・ア
ダプタ154に新しいBSM開始アドレスを提供する。
レジスタ231は上述のように4バイト転送毎にデクリ
メントされており、従って、適切な次の開始アドレスを
もつ。バス・アダプタ154は、そのコマンドによって
要求される(4KBまでの)データ転送全体が完了する
まで各開始アドレス毎に64バイトのデータをバッファ
する。
ているバイト・カウンタをデクリメントし、チャネル1
MARをインクリメントし、バス・アダプタ154から
受信される64バイトまでのデータのダブルワード毎に
アドレス・レジスタ231をデクリメントする。上述の
シーケンスはBCUコマンドの4バイト毎に(64ま
で)反復される。もし転送バイト・カウントが64より
も大きいなら、BCU156は次の64バイトをフェッ
チするためにレジスタ231、219を介してバス・ア
ダプタ154に新しいBSM開始アドレスを提供する。
レジスタ231は上述のように4バイト転送毎にデクリ
メントされており、従って、適切な次の開始アドレスを
もつ。バス・アダプタ154は、そのコマンドによって
要求される(4KBまでの)データ転送全体が完了する
まで各開始アドレス毎に64バイトのデータをバッファ
する。
BCU156は、もしバス・アダプタ259が空ならD
MAC209を(REQを立ち上げないことによって)
アイドル状態にとどめ、次の有効データ・ワードが受信
されるまで、タグ・ダウンの状態がバッファ259中の
有効データの可用性を反映する。REQ/ACKサイク
ルは、バイト・カウンタがゼロになるまで続き、その時
点でDMAC209がS/88プロセッサ62に対する
線258上でIRQを立ち上げる。このことは、S/8
8プロセッサ62に、適切な処理のためS/370記憶
162から読取られたデータを含むローカル記憶バッフ
ァを読取るように報知する。
MAC209を(REQを立ち上げないことによって)
アイドル状態にとどめ、次の有効データ・ワードが受信
されるまで、タグ・ダウンの状態がバッファ259中の
有効データの可用性を反映する。REQ/ACKサイク
ルは、バイト・カウンタがゼロになるまで続き、その時
点でDMAC209がS/88プロセッサ62に対する
線258上でIRQを立ち上げる。このことは、S/8
8プロセッサ62に、適切な処理のためS/370記憶
162から読取られたデータを含むローカル記憶バッフ
ァを読取るように報知する。
(B)I/O読取動作(ローカル記憶210からS/3
70記憶162) I/O読取動作は(EXEC370の制御の下で)少な
くとも1つのエントリが記憶210中のI/O読取キュ
ー中に存在する時キック・オフされる。S/88プロセ
ッサ62はもしそれがDMAC209によって使用され
ていないならローカル・バスの制御を獲得する。S/8
8プロセッサ62は、第45M図に示すフォーマットで
情報をバス247上に配置することによってDMACチ
ャネル2メモリ・アドレス・レジスタ(MAR)にロー
カル・バッファI/O読取開始アドレスをセットする。
ここで、 31−08=007E00=DMACレジスタ選択コマ
ンド 07−00=DMACチャネル2メモリ・アドレス・レ
ジスタ(低位)選択 また、第45N図に示すように(記憶210中のバッフ
ァの)開始アドレスをデータ・バス223上に配置す
る。このとき、ビットは、 31−16=ローカル・バッファI/O読取データの開
始アドレス 15−00=予約済み 高位データ・バス・ビット31−16は、チャネル2メ
モリ・アドレス・レジスタの低位(15−00)ビット
中にロードされる。MARの高位ビット(31−16)
は、初期化の間に0にセットされている。DMAC20
9は線266a、b上でDSACK信号に変換される線
265上のDTACK信号によってS/88プロセッサ
62に応答する。S/88プロセッサ62は次に、選択
されたローカル記憶I/O読取バッファの開始アドレス
を使用して、S/88プログラム制御を使用してI/O
コントローラ20または24などからローカル記憶21
0に(4KBまでの)データを移動する。
70記憶162) I/O読取動作は(EXEC370の制御の下で)少な
くとも1つのエントリが記憶210中のI/O読取キュ
ー中に存在する時キック・オフされる。S/88プロセ
ッサ62はもしそれがDMAC209によって使用され
ていないならローカル・バスの制御を獲得する。S/8
8プロセッサ62は、第45M図に示すフォーマットで
情報をバス247上に配置することによってDMACチ
ャネル2メモリ・アドレス・レジスタ(MAR)にロー
カル・バッファI/O読取開始アドレスをセットする。
ここで、 31−08=007E00=DMACレジスタ選択コマ
ンド 07−00=DMACチャネル2メモリ・アドレス・レ
ジスタ(低位)選択 また、第45N図に示すように(記憶210中のバッフ
ァの)開始アドレスをデータ・バス223上に配置す
る。このとき、ビットは、 31−16=ローカル・バッファI/O読取データの開
始アドレス 15−00=予約済み 高位データ・バス・ビット31−16は、チャネル2メ
モリ・アドレス・レジスタの低位(15−00)ビット
中にロードされる。MARの高位ビット(31−16)
は、初期化の間に0にセットされている。DMAC20
9は線266a、b上でDSACK信号に変換される線
265上のDTACK信号によってS/88プロセッサ
62に応答する。S/88プロセッサ62は次に、選択
されたローカル記憶I/O読取バッファの開始アドレス
を使用して、S/88プログラム制御を使用してI/O
コントローラ20または24などからローカル記憶21
0に(4KBまでの)データを移動する。
データ転送が完了した時、S/88プロセッサ62は第
45O図に示すフォーマットでアドレス・バス247上
にDMACチャネル2メモリ転送カウント選択を配置す
る。このとき、ビットは、 31−08=007E00=DMACレジスタ選択・コ
マンド 07−00=BCU及びDMACチャネル2MTC選択 バイト・カウント、(CCWから得られた)記憶キー、
アダプタ・バス優先順位、及びカスタマ/IOA空間ビ
ットは、S/88プロセッサ62によって第45P図に
示すフォーマットでデータ・バス223上に配置され
る。
45O図に示すフォーマットでアドレス・バス247上
にDMACチャネル2メモリ転送カウント選択を配置す
る。このとき、ビットは、 31−08=007E00=DMACレジスタ選択・コ
マンド 07−00=BCU及びDMACチャネル2MTC選択 バイト・カウント、(CCWから得られた)記憶キー、
アダプタ・バス優先順位、及びカスタマ/IOA空間ビ
ットは、S/88プロセッサ62によって第45P図に
示すフォーマットでデータ・バス223上に配置され
る。
このとき、 31−27=予約 26=高位バイト・カウント・ビット。このビットは、
最大バイト・カウントが転送されつつある間のみ1とな
る。
最大バイト・カウントが転送されつつある間のみ1とな
る。
26−16=DMACチャネル2MTCレジスタのバイ
ト・カウント 26−14=BCU156にロードされるバイト・カウ
ント(最大4096)。バス・アダプタ154は、40
96バイトを転送するために1111 1111 11
11というカウント(バイト・カウント−1)を要す
る。それゆえ、BCUは、(64バイト・ブロック中
の)バイト・オフセット・ビット15−14とともにそ
れをバス・アダプタ154に提供する前に一度、ダブル
ワード境界ビット26−16をデクリメントする。
ト・カウント 26−14=BCU156にロードされるバイト・カウ
ント(最大4096)。バス・アダプタ154は、40
96バイトを転送するために1111 1111 11
11というカウント(バイト・カウント−1)を要す
る。それゆえ、BCUは、(64バイト・ブロック中
の)バイト・オフセット・ビット15−14とともにそ
れをバス・アダプタ154に提供する前に一度、ダブル
ワード境界ビット26−16をデクリメントする。
15−14=下位バイト・カウント・ビット。これらの
ビットは、ダブルワード(32ビット)境界からのバイ
ト・オフセット−1(バス・アダプタのために)をあら
わす。これらのビットは、DMAC209またはBCU
156がダブルワードしか転送しないので、それらによ
っては使用されない。それらのビットは、S/370B
SM162に対して提供されるために、バス・アダプタ
154に渡される。
ビットは、ダブルワード(32ビット)境界からのバイ
ト・オフセット−1(バス・アダプタのために)をあら
わす。これらのビットは、DMAC209またはBCU
156がダブルワードしか転送しないので、それらによ
っては使用されない。それらのビットは、S/370B
SM162に対して提供されるために、バス・アダプタ
154に渡される。
13−12=アダプタ・バス・チャネル優先順位 11−08=記憶キー 07=カスタマ/IOA空間ビット 06−00=予約 DMAC209は、データ・バス223の(バイト・カ
ウント)をチャネル2MTSレジスタにロードする。B
CU156は、上記コマンドがアドレス・バス247上
にあらわれた時にデータ・バス内容を捕獲する。ビット
26−16はBSM書込セレクト・アップ・バイト・カ
ウンタ222中に格納され、ビット13−07は、アダ
プタ・バス・チャネル1アドレス・レジスタ227の高
位バイトに格納される。DMAC209は、線265上
のDTACK信号によりBCU論理253に応答する。
論理253は、DTACK信号を、S/88プロセッサ
62に対応する32ビット・ポートDSACK応答に変
換する。転送バイト・カウントは、残りのデータ・バス
・カウントとともに、後のBSM書込セレクト・アップ
・コマンドの間にバス・アダプタ154に提供される。
BSM書込境界カウンタ224(最後の転送以外の全
て)またはBSM書込バイト・カウンタ(最後の転送)
中のカウントは、アダプタ・チャネル1書込コマンド・
レジスタ2225にロードされる。
ウント)をチャネル2MTSレジスタにロードする。B
CU156は、上記コマンドがアドレス・バス247上
にあらわれた時にデータ・バス内容を捕獲する。ビット
26−16はBSM書込セレクト・アップ・バイト・カ
ウンタ222中に格納され、ビット13−07は、アダ
プタ・バス・チャネル1アドレス・レジスタ227の高
位バイトに格納される。DMAC209は、線265上
のDTACK信号によりBCU論理253に応答する。
論理253は、DTACK信号を、S/88プロセッサ
62に対応する32ビット・ポートDSACK応答に変
換する。転送バイト・カウントは、残りのデータ・バス
・カウントとともに、後のBSM書込セレクト・アップ
・コマンドの間にバス・アダプタ154に提供される。
BSM書込境界カウンタ224(最後の転送以外の全
て)またはBSM書込バイト・カウンタ(最後の転送)
中のカウントは、アダプタ・チャネル1書込コマンド・
レジスタ2225にロードされる。
S/88プロセッサ62は次に、第45Q図に示すフォ
ーマットでローカル・アドレス・バス247上にBSM
セレクト・アップ・コマンドを発生し、このときビット
は、 31−00=007E0104=BSM書込セレクト・
アップ・コマンド S/88プロセッサはまた、BSM開始アドレスを第4
5R図に示すフォーマットでデータ・バス223上に配
置し、このとき、ビットは、 31−24=予約 23−00=BSM開始アドレス データ・バス223上のBSM開始アドレスは、チャネ
ル1アドレス・レジスタ227及びBSM書込アドレス
・レジスタ228の下位バイトによって捕獲される。そ
れは後で(後述するように)S/370記憶162に提
供するためにバス・アダプタ154に送られる。BCU
156は次に、S/88プロセッサ62に対するDSA
CK線266a、b(32ビット・ポート)を活動化す
る。この時点で、S/88プロセッサ62は解放され、
最早この動作に関与しない。
ーマットでローカル・アドレス・バス247上にBSM
セレクト・アップ・コマンドを発生し、このときビット
は、 31−00=007E0104=BSM書込セレクト・
アップ・コマンド S/88プロセッサはまた、BSM開始アドレスを第4
5R図に示すフォーマットでデータ・バス223上に配
置し、このとき、ビットは、 31−24=予約 23−00=BSM開始アドレス データ・バス223上のBSM開始アドレスは、チャネ
ル1アドレス・レジスタ227及びBSM書込アドレス
・レジスタ228の下位バイトによって捕獲される。そ
れは後で(後述するように)S/370記憶162に提
供するためにバス・アダプタ154に送られる。BCU
156は次に、S/88プロセッサ62に対するDSA
CK線266a、b(32ビット・ポート)を活動化す
る。この時点で、S/88プロセッサ62は解放され、
最早この動作に関与しない。
BCU論理253はBSMセレクト・アップ・コマンド
を発行してビット「01」をバス290を介してコマン
ド・レジスタ225の高位バイトにゲートし、レジスタ
225のコマンド及びフィールド長を第45S図に示す
フォーマットでバス252上に配置する。ここで、 0−1=BSMセレクト・アップ・コマンド(書込) 2−7=フィールド長−1(最大64バイト) レジスタ227の内容は、第45T図に示すフォーマッ
トでアドレス/データ251上に(2サブサイクルで)
配置される。ここで、ビットは、 0−3=記憶キー 4=1 5−6=優先順位(プロセッサ・バスに対するバス・ア
ダプタの) 7=1=カスタマ領域アクセス 0=マイクロコード領域アクセス 8−31=データ・フィールドの第1のバイトのS/3
70アドレス そのコマンドと、フィールド長は、アダプタ154のレ
ジスタ125に格納される。キー/アドレス・データ
は、SYNCレジスタ113を介してアダプタ154の
レジスタ123に格納される。BCU論理253はDM
ACチャネル2に対する線263上でREQ2信号を活
動化する。DMAC209は、ダブルワードのデータを
記憶210からアドレス・レジスタ227に転送するた
めに、バス248、ラッチ233、バス247、マルチ
プレクサ232を介してMARから記憶210へI/O
バッファ開始アドレスを送る。ACK2(DMACチャ
ネル2肯定応答)がアドレス・レジスタ227上で立ち
上げられる。このことは、アダプタ154に対する線2
62a上のタグ・アップをもたらす。
を発行してビット「01」をバス290を介してコマン
ド・レジスタ225の高位バイトにゲートし、レジスタ
225のコマンド及びフィールド長を第45S図に示す
フォーマットでバス252上に配置する。ここで、 0−1=BSMセレクト・アップ・コマンド(書込) 2−7=フィールド長−1(最大64バイト) レジスタ227の内容は、第45T図に示すフォーマッ
トでアドレス/データ251上に(2サブサイクルで)
配置される。ここで、ビットは、 0−3=記憶キー 4=1 5−6=優先順位(プロセッサ・バスに対するバス・ア
ダプタの) 7=1=カスタマ領域アクセス 0=マイクロコード領域アクセス 8−31=データ・フィールドの第1のバイトのS/3
70アドレス そのコマンドと、フィールド長は、アダプタ154のレ
ジスタ125に格納される。キー/アドレス・データ
は、SYNCレジスタ113を介してアダプタ154の
レジスタ123に格納される。BCU論理253はDM
ACチャネル2に対する線263上でREQ2信号を活
動化する。DMAC209は、ダブルワードのデータを
記憶210からアドレス・レジスタ227に転送するた
めに、バス248、ラッチ233、バス247、マルチ
プレクサ232を介してMARから記憶210へI/O
バッファ開始アドレスを送る。ACK2(DMACチャ
ネル2肯定応答)がアドレス・レジスタ227上で立ち
上げられる。このことは、アダプタ154に対する線2
62a上のタグ・アップをもたらす。
アダプタ154は次に、レジスタ113を介する2つの
サブサイクルでレジスタ227からバス・アダプタ・バ
ッファ260にダブルワードのデータを転送する。各ダ
ブルワードのデータを転送するために、REQ/ACK
信号の書込みシーケンスとそれに続くタグ・アップ・コ
マンドが反復される。BCU156は、バス・アダプタ
154に64バイトまで提供される各ダブルワード(3
2ビット)毎にレジスタ222、224中のバイト・カ
ウントと、DMACチャネル2のレジスタ228とMT
C中のアドレスをデクリメントする。
サブサイクルでレジスタ227からバス・アダプタ・バ
ッファ260にダブルワードのデータを転送する。各ダ
ブルワードのデータを転送するために、REQ/ACK
信号の書込みシーケンスとそれに続くタグ・アップ・コ
マンドが反復される。BCU156は、バス・アダプタ
154に64バイトまで提供される各ダブルワード(3
2ビット)毎にレジスタ222、224中のバイト・カ
ウントと、DMACチャネル2のレジスタ228とMT
C中のアドレスをデクリメントする。
もし転送バイト・カウントが64より大きいなら、(書
込み動作に関連して前述したように)BCU156が次
の64バイトのために新しい開始アドレスを提供するこ
となる。このシーケンスは、レジスタ222(最大4K
B)中のバイト・カウントが“ゼロになるまで繰り返さ
れる。
込み動作に関連して前述したように)BCU156が次
の64バイトのために新しい開始アドレスを提供するこ
となる。このシーケンスは、レジスタ222(最大4K
B)中のバイト・カウントが“ゼロになるまで繰り返さ
れる。
バス・アダプタ・バッファ260が満杯であるとき、B
CU156は、バス・アダプタがタグ・ダウン線262
Cを介して可用性の表示を与えるまで書込みシーケンス
を中断する。
CU156は、バス・アダプタがタグ・ダウン線262
Cを介して可用性の表示を与えるまで書込みシーケンス
を中断する。
バス・アダプタ154は、アダプタ・バスBSMセレク
ト・アップ・コマンドを、プロセッサ・バス170及び
キー/状況バス上で、第45U及び第45V図に示すフ
ォーマットでS/370プロセッサ・バスI/Oメモリ
・コマンドに変換する。ここで、プロセッサ・バス・ビ
ットにおいて、 0=0=I/Oメモリ・コマンド 1=0=記憶動作 2−7=フィールド長 8−31=実バイト・アドレス キー/状況バス・ビットにおいて、 0−3=記憶キー 4=非動的変換 全てのデータが転送された時(バイト・カウント=
0)、DMAC209はS/88プロセッサ優先順位エ
ンコーダ212に対する割り込み線258aを活動化す
る。
ト・アップ・コマンドを、プロセッサ・バス170及び
キー/状況バス上で、第45U及び第45V図に示すフ
ォーマットでS/370プロセッサ・バスI/Oメモリ
・コマンドに変換する。ここで、プロセッサ・バス・ビ
ットにおいて、 0=0=I/Oメモリ・コマンド 1=0=記憶動作 2−7=フィールド長 8−31=実バイト・アドレス キー/状況バス・ビットにおいて、 0−3=記憶キー 4=非動的変換 全てのデータが転送された時(バイト・カウント=
0)、DMAC209はS/88プロセッサ優先順位エ
ンコーダ212に対する割り込み線258aを活動化す
る。
(C)S/370高優先順位メッセージ転送シーケンス
・フロー 全ての高優先順位データは、I/Oサブシステム(S/
88プロセッサ62)から発生する。DMACチャネル
3は、データ転送(16バイト)を実行するためにS/
88プロセッサ62によってセットアップされる。BC
U156は、データ通信(キュー・セレクト・アップ・
コマンド)のためにアダプタ・バス・チャネル1を使用
することになる。
・フロー 全ての高優先順位データは、I/Oサブシステム(S/
88プロセッサ62)から発生する。DMACチャネル
3は、データ転送(16バイト)を実行するためにS/
88プロセッサ62によってセットアップされる。BC
U156は、データ通信(キュー・セレクト・アップ・
コマンド)のためにアダプタ・バス・チャネル1を使用
することになる。
BCU156156は、S/88プロセッサPE62が
チャネル3中のレジスタMTCに対してDMACメモリ
転送カウント・ロードを実行する時、高優先順位メッセ
ージ要求を検出する。この結果、BCU156はチャネ
ル1のアダプタ・バス252上でS/370PE85に
対するキュー・セレクト・アップ・コマンドを発生す
る。もしその要求が検出された時S/370I/O読取
データ転送(アダプタ・バス・チャネル1)が進行中な
ら、BCU156は、その要求を受け入れる前に現在の
64バイト・ブロック転送が完了するまで待つ。
チャネル3中のレジスタMTCに対してDMACメモリ
転送カウント・ロードを実行する時、高優先順位メッセ
ージ要求を検出する。この結果、BCU156はチャネ
ル1のアダプタ・バス252上でS/370PE85に
対するキュー・セレクト・アップ・コマンドを発生す
る。もしその要求が検出された時S/370I/O読取
データ転送(アダプタ・バス・チャネル1)が進行中な
ら、BCU156は、その要求を受け入れる前に現在の
64バイト・ブロック転送が完了するまで待つ。
もしアダプタ・バス・チャネル1上にI/O活動が存在
しないなら、その要求は即時に処理されることになる。
しないなら、その要求は即時に処理されることになる。
この高優先順位メッセージ転送について次に詳細に説明
する。PE62は、もしそれがDMAC209によって
使用されていないなら、ローカル・バス223、247
の制御を獲得する。PE62は次に、プログラム制御に
よって、ローカル記憶210中にメッセージ・データを
記憶する。PE62は、第45W図に示すフォーマット
でローカル・アドレス・バス247上に情報を配置する
ことにより、DMACチャネル3メモリ・アドレス・レ
ジスタMARにローカル・バッファ・メッセージ開始ア
ドレスをセットする。ここで、 31−08=007E00=DMACアドレス選択コマ
ンド 07−00=DMACチャネル3メモリ・アドレス・レ
ジスタ(低)選択 メモリ・アドレス・レジスタとして意図されているロー
カル・バッファ・メッセージの開始アドレスは、第45
X図に示すフォーマットでデータ・バス223上に配置
される。ここで、 31−16=記憶210中のローカル・バッファ・メッ
セージ・データの開始アドレス 15−00=予約 高位データ・バス(ビット31−16)は、DMACチ
ャネル3メモリ・アドレス・レジスタMARの低位(ビ
ット15−0)部分にロードされることになる。MAR
の高位ビット(31−16)は、初期化の間にゼロにセ
ットされている。DMAC209は、S/88プロセッ
サ62に対して、線226a上でBCU論理253を介
して16ビット・ポートDSACK信号に変換される線
265上のDTACK信号で以て応答する。
する。PE62は、もしそれがDMAC209によって
使用されていないなら、ローカル・バス223、247
の制御を獲得する。PE62は次に、プログラム制御に
よって、ローカル記憶210中にメッセージ・データを
記憶する。PE62は、第45W図に示すフォーマット
でローカル・アドレス・バス247上に情報を配置する
ことにより、DMACチャネル3メモリ・アドレス・レ
ジスタMARにローカル・バッファ・メッセージ開始ア
ドレスをセットする。ここで、 31−08=007E00=DMACアドレス選択コマ
ンド 07−00=DMACチャネル3メモリ・アドレス・レ
ジスタ(低)選択 メモリ・アドレス・レジスタとして意図されているロー
カル・バッファ・メッセージの開始アドレスは、第45
X図に示すフォーマットでデータ・バス223上に配置
される。ここで、 31−16=記憶210中のローカル・バッファ・メッ
セージ・データの開始アドレス 15−00=予約 高位データ・バス(ビット31−16)は、DMACチ
ャネル3メモリ・アドレス・レジスタMARの低位(ビ
ット15−0)部分にロードされることになる。MAR
の高位ビット(31−16)は、初期化の間にゼロにセ
ットされている。DMAC209は、S/88プロセッ
サ62に対して、線226a上でBCU論理253を介
して16ビット・ポートDSACK信号に変換される線
265上のDTACK信号で以て応答する。
S/88プロセッサ62は次に、第45Y図で示すフォ
ーマットでロカール・アドレス・バス247上にコマン
ドを配置する。ここで、 31−08=007E00=DMACレジスタ選択コマ
ンド 07−00=BCU及びDMACKチャネル3MTC選
択 バイト・カウント、記憶キー及びカスタマ/IOA空間
ビットは、第45Z図に示すフォーマットでS/88プ
ロセッサ62によってデータ・バス上に配置されること
になる。ここで、 31−20=予約 19−16=転送バイト・カウント・ビット。
ーマットでロカール・アドレス・バス247上にコマン
ドを配置する。ここで、 31−08=007E00=DMACレジスタ選択コマ
ンド 07−00=BCU及びDMACKチャネル3MTC選
択 バイト・カウント、記憶キー及びカスタマ/IOA空間
ビットは、第45Z図に示すフォーマットでS/88プ
ロセッサ62によってデータ・バス上に配置されること
になる。ここで、 31−20=予約 19−16=転送バイト・カウント・ビット。
これらのビットは、DMAC209及びBCU156に
ロードされる。それらは、DMAC209及びBCU1
56に対するダブルワード・カウントをあらわす(最大
64バイト)。
ロードされる。それらは、DMAC209及びBCU1
56に対するダブルワード・カウントをあらわす(最大
64バイト)。
15−12=ゼロ 11−08=記憶キー 07=カスタマ/IOA空間ビット 06−00=予約 DMAC209は、データ・バス223の高位ワード
(バイト・カウント)を、チャネル3メモリ転送カウン
ト・レジスタMTC中にロードする。BCU156は、
この特定のコマンドが、ビット19−16をキュー・セ
レクト・アップ・カウンタ254に格納しビット11−
07をチャネル1アドレス・レジスタ227に格納する
ことによってアドレス・バス247上にあらわれると
き、そのデータ・バス内容を獲得する。
(バイト・カウント)を、チャネル3メモリ転送カウン
ト・レジスタMTC中にロードする。BCU156は、
この特定のコマンドが、ビット19−16をキュー・セ
レクト・アップ・カウンタ254に格納しビット11−
07をチャネル1アドレス・レジスタ227に格納する
ことによってアドレス・バス247上にあらわれると
き、そのデータ・バス内容を獲得する。
DMAC209は、PE62に対して、線266a、b
上の32ビット・ポートDSACK応答にDTACK信
号を変換する論理253に対するDTACK信号で応答
する。この動作は、BCU156に、ローカル記憶21
0からS/370BSM162に対する高優先順位メッ
セージ転送を開始するように報知する。その転送バイト
・カウントは、第45Z図に記す追加的なデータととも
に、BCUによって発生されたキュー・セレクト・アッ
プ・コマンドの間にバス・アダプタ154に提供され
る。キュー選択カウンタ254は、チャネル1書込コマ
ンド・レジスタ225のビット4−7にロードされる。
BCU156は、バス290を介してレジスタ225に
キュー・セレクト・アップ・コマンドを配置し、レジス
タ225中のデータは、第45AA図に示すフォーマッ
トでアダプタ・バス252(チャネル1)上に配置され
る。ここで、 0−1=キュー・セレクト・アップ・コマンド(書込) 2−7=フィールド長−1(16バイト) レジスタ227を介してアドレス/データ・バス251
上に配置される情報は、第45AB図に示されており、
ここで、 0−3=記憶キー 4−6=ゼロ 7=1=カスタマ領域アクセス 0=マイクロコード領域アクセス 8−31=無関係 バス252及び251じょうのデータは、それぞれ、ア
ダプタ・レジスタ125及び123にロードされる。B
CU論理253は次に、REQんせ263d(DMAチ
ャネル要求)を付勢する。DMAC209は(MARか
らの)I/Oバッファ開始アドレスをローカル・バス上
に配置し、ACK(DMACチャネル3肯定応答)線2
64dを立ち上げる。BCU156は次に、ローカル記
憶210中のアドレスされたI/Oバッファ中のデータ
の最初の4バイトを、SYNCレジスタ113を介する
2サブサイクルでアダプタ・バッファ260に転送す
る。それに続く4バイトは、バス・アダプタ154に対
するタグ・アップ・コマンドと、DMACに対するRE
Q/ACK線263d、264dによって指令されるシ
ーケンスによって転送される。BCU156は、バス・
アダプタ154に提供される各ダブルワード(32ビッ
ト)毎に、そのバイト・カウントをデクリメントする。
上の32ビット・ポートDSACK応答にDTACK信
号を変換する論理253に対するDTACK信号で応答
する。この動作は、BCU156に、ローカル記憶21
0からS/370BSM162に対する高優先順位メッ
セージ転送を開始するように報知する。その転送バイト
・カウントは、第45Z図に記す追加的なデータととも
に、BCUによって発生されたキュー・セレクト・アッ
プ・コマンドの間にバス・アダプタ154に提供され
る。キュー選択カウンタ254は、チャネル1書込コマ
ンド・レジスタ225のビット4−7にロードされる。
BCU156は、バス290を介してレジスタ225に
キュー・セレクト・アップ・コマンドを配置し、レジス
タ225中のデータは、第45AA図に示すフォーマッ
トでアダプタ・バス252(チャネル1)上に配置され
る。ここで、 0−1=キュー・セレクト・アップ・コマンド(書込) 2−7=フィールド長−1(16バイト) レジスタ227を介してアドレス/データ・バス251
上に配置される情報は、第45AB図に示されており、
ここで、 0−3=記憶キー 4−6=ゼロ 7=1=カスタマ領域アクセス 0=マイクロコード領域アクセス 8−31=無関係 バス252及び251じょうのデータは、それぞれ、ア
ダプタ・レジスタ125及び123にロードされる。B
CU論理253は次に、REQんせ263d(DMAチ
ャネル要求)を付勢する。DMAC209は(MARか
らの)I/Oバッファ開始アドレスをローカル・バス上
に配置し、ACK(DMACチャネル3肯定応答)線2
64dを立ち上げる。BCU156は次に、ローカル記
憶210中のアドレスされたI/Oバッファ中のデータ
の最初の4バイトを、SYNCレジスタ113を介する
2サブサイクルでアダプタ・バッファ260に転送す
る。それに続く4バイトは、バス・アダプタ154に対
するタグ・アップ・コマンドと、DMACに対するRE
Q/ACK線263d、264dによって指令されるシ
ーケンスによって転送される。BCU156は、バス・
アダプタ154に提供される各ダブルワード(32ビッ
ト)毎に、そのバイト・カウントをデクリメントする。
バス・アダプタ154は、記憶162の領域189にメ
ッセージを送るために、キュー・セレクト・アップ・コ
マンドをS/370プロセッサ・バスI/Oメモリ・コ
マンドに変換する。そのフォーマットは、第45AC図
に示されており、ここで、PROC BUSビットは、 0=0=I/Oメモリ・コマンド 1=0=記憶動作 2−7=フィールド長(最大64バイト) 8−31=(アダプタ・レジスタ110、112から
の)実バイト・アドレス プロセッサ85キー/状況バスは、第45AD図に示す
フォーマットをもち、ここで、 0−3=記憶キー 4=動的変換なし そのメッセージ・データが全てバス・アダプタ154
(バイト・カウント=0)に転送された時、DMAC2
09はS/88プロセッサ優先順位エンコーダ212に
対する割り込み線209を活動化する。DMAC209
は、そのデータ・バス248の最下位バイトから、ロー
カル・データ・バス223のドライバ・レシーバ234
及びビット23−16を介してS/88プロセッサ・デ
ータ・バス161Dのビット23−16に割り込みベク
タを提供する。DMAC209は、PE62に、16ビ
ットDSACKを返す。
ッセージを送るために、キュー・セレクト・アップ・コ
マンドをS/370プロセッサ・バスI/Oメモリ・コ
マンドに変換する。そのフォーマットは、第45AC図
に示されており、ここで、PROC BUSビットは、 0=0=I/Oメモリ・コマンド 1=0=記憶動作 2−7=フィールド長(最大64バイト) 8−31=(アダプタ・レジスタ110、112から
の)実バイト・アドレス プロセッサ85キー/状況バスは、第45AD図に示す
フォーマットをもち、ここで、 0−3=記憶キー 4=動的変換なし そのメッセージ・データが全てバス・アダプタ154
(バイト・カウント=0)に転送された時、DMAC2
09はS/88プロセッサ優先順位エンコーダ212に
対する割り込み線209を活動化する。DMAC209
は、そのデータ・バス248の最下位バイトから、ロー
カル・データ・バス223のドライバ・レシーバ234
及びビット23−16を介してS/88プロセッサ・デ
ータ・バス161Dのビット23−16に割り込みベク
タを提供する。DMAC209は、PE62に、16ビ
ットDSACKを返す。
(D)BCU状況コマンド 読取BCU状況コマンドは、BCU156の現在の状況
を読取ためにS/88プロセッサ62によって発行する
ことができる。そのコマンドは、第45AE図に示すフ
ォーマットで、S/88プロセッサ62によってアドレ
ス・バス247じょうに配置される。すなわち、 31−00=0074010C−読取BCU状況コマン
ド BCU156は、第45F図に示す状況をデータ・バス
上に配置し、DSACK(32ビット・ポート)をバス
266PE62上に配置する。第45AF図に示すビッ
トは次のことをあらわす。
を読取ためにS/88プロセッサ62によって発行する
ことができる。そのコマンドは、第45AE図に示すフ
ォーマットで、S/88プロセッサ62によってアドレ
ス・バス247じょうに配置される。すなわち、 31−00=0074010C−読取BCU状況コマン
ド BCU156は、第45F図に示す状況をデータ・バス
上に配置し、DSACK(32ビット・ポート)をバス
266PE62上に配置する。第45AF図に示すビッ
トは次のことをあらわす。
31−29=アダプタ・バス・チャネル0状況−キーチ
ェック、アドレス・チェック 28=1=最後のデータ・サイクル 0=他の全てのデータ・サイクル 27−26=アダプタ・バス・チャネル1状況−キーチ
ェック、アドレス・チェック 25=バッファが可用でない(キュー・セレクト・アッ
プ・コマンド) 24=1=最後のデータ・サイクル 0=他の全てのデータ・サイクル 23=アダプタ・バス・チャネル0タグ・ダウン 22=アダプタ・バス・チャネル1タグ・ダウン 21=BSM読取同期チェック 20=BSM読取セレクト・アップ要求/保留ラッチ 19=BSM書込セレクト・アップ要求/保留ラッチ 18=キュー・セレクト・アップ要求/保留ラッチ 17=読取メイルボックス進行中 16=BSM読取進行中 15=BSM書込進行中 14=キュー・セレクト・アップ進行中 BCU状況ビット21(BSM読取同期チェック)は、
S/88プロセッサ62によって読取られた後、リセッ
トされることになる。このビットは、BSM動作が完了
した時バス・アダプタ154及びBCU156バイト・
カウントが一致しないことを示す。それゆえ、再同期を
要するエラーが検出される。
ェック、アドレス・チェック 28=1=最後のデータ・サイクル 0=他の全てのデータ・サイクル 27−26=アダプタ・バス・チャネル1状況−キーチ
ェック、アドレス・チェック 25=バッファが可用でない(キュー・セレクト・アッ
プ・コマンド) 24=1=最後のデータ・サイクル 0=他の全てのデータ・サイクル 23=アダプタ・バス・チャネル0タグ・ダウン 22=アダプタ・バス・チャネル1タグ・ダウン 21=BSM読取同期チェック 20=BSM読取セレクト・アップ要求/保留ラッチ 19=BSM書込セレクト・アップ要求/保留ラッチ 18=キュー・セレクト・アップ要求/保留ラッチ 17=読取メイルボックス進行中 16=BSM読取進行中 15=BSM書込進行中 14=キュー・セレクト・アップ進行中 BCU状況ビット21(BSM読取同期チェック)は、
S/88プロセッサ62によって読取られた後、リセッ
トされることになる。このビットは、BSM動作が完了
した時バス・アダプタ154及びBCU156バイト・
カウントが一致しないことを示す。それゆえ、再同期を
要するエラーが検出される。
BSM書込動作の時、バス・アダプタ154は、全ての
データが受信されたことを示すために、タグ・ダウン2
62bを活動化する。タグ・ダウン262bは次に、バ
ス・アダプタ154によって非活動化され、その時点で
状況表示子がBCU156に提供されBCU156によ
って獲得される。もしタグ・ダウンが100μ秒以内に
非活動化されないなら、BCU156はバス・アダプタ
154に対するキャンセル線(図示しない)を活動化す
る。このことは次に、バス・アダプタ154のBCU1
56からの切り放しをもたらす。タグ・ダウン262b
はまた、コマンド/状況バス252を介してはBCU1
56に報告することがでないエラーを示すためにバス・
アダプタ154によって使用される。
データが受信されたことを示すために、タグ・ダウン2
62bを活動化する。タグ・ダウン262bは次に、バ
ス・アダプタ154によって非活動化され、その時点で
状況表示子がBCU156に提供されBCU156によ
って獲得される。もしタグ・ダウンが100μ秒以内に
非活動化されないなら、BCU156はバス・アダプタ
154に対するキャンセル線(図示しない)を活動化す
る。このことは次に、バス・アダプタ154のBCU1
56からの切り放しをもたらす。タグ・ダウン262b
はまた、コマンド/状況バス252を介してはBCU1
56に報告することがでないエラーを示すためにバス・
アダプタ154によって使用される。
(E)プログラムされたBCUリセット PE62によって発行されるプログラムされたBCUリ
セットは、BCU156に対する電源投入時リセットと
同一の機能を果たす。それは、BCUの任意の以上条件
をリセットするために、任意の時点で発行することがで
きる。しかし、このコマンドを実行するためには、ハー
ドウェアによってローカル・バス・サイクル(007E
XXXX)が認識されなくてはならない。
セットは、BCU156に対する電源投入時リセットと
同一の機能を果たす。それは、BCUの任意の以上条件
をリセットするために、任意の時点で発行することがで
きる。しかし、このコマンドを実行するためには、ハー
ドウェアによってローカル・バス・サイクル(007E
XXXX)が認識されなくてはならない。
このコマンドは、第45AG図で示すフォーマットでS
/88プロセッサによってローカル・アドレス・バス2
47上に配置され、ここで、 31−00=007E0000−BCUリセット・コマ
ンド そのデータ・バス内容は、BCU156によって無視さ
れることになる。BCU156はS/88プロセッサ6
2に対して、線266a、b上でDSACK(32ビッ
ト・ポート)を返すことになる。
/88プロセッサによってローカル・アドレス・バス2
47上に配置され、ここで、 31−00=007E0000−BCUリセット・コマ
ンド そのデータ・バス内容は、BCU156によって無視さ
れることになる。BCU156はS/88プロセッサ6
2に対して、線266a、b上でDSACK(32ビッ
ト・ポート)を返すことになる。
E22.カウント、キー、及びデータ・フォーマット・
エミュレーション(第46AないしK図) S/88上でのS/370DASDのエミュレーション
について、S/370I/OプログラムをS/88プロ
セッサ及びI/O装置によって実行することができるよ
うな好適な様式を示す例によって説明しよう。S/37
0は、オブジェクト・システムと呼ばれ、S/88はタ
ーゲット・システムと呼ばれる。オブジェクト・システ
ムのためのDASD(直接アクセス記憶装置)データ
は、エミュレーション・フォーマットでターゲット・シ
ステムによって維持される。S/370プロセッサで走
るS/370コードは、オブジェクト・システム・ソフ
トウェアと呼ばれる。以下の説明は3つの部分に分けら
れる。
エミュレーション(第46AないしK図) S/88上でのS/370DASDのエミュレーション
について、S/370I/OプログラムをS/88プロ
セッサ及びI/O装置によって実行することができるよ
うな好適な様式を示す例によって説明しよう。S/37
0は、オブジェクト・システムと呼ばれ、S/88はタ
ーゲット・システムと呼ばれる。オブジェクト・システ
ムのためのDASD(直接アクセス記憶装置)データ
は、エミュレーション・フォーマットでターゲット・シ
ステムによって維持される。S/370プロセッサで走
るS/370コードは、オブジェクト・システム・ソフ
トウェアと呼ばれる。以下の説明は3つの部分に分けら
れる。
(1)オブジェクト・システム−ここでは、既存のS/
370直接アクセス記憶製品によっ使用されるカウン
ト、キー、及び記録フォーマットの簡単な説明を与え
る。
370直接アクセス記憶製品によっ使用されるカウン
ト、キー、及び記録フォーマットの簡単な説明を与え
る。
(2)ターゲット・システム−ここでは、DASDプロ
グラム・インターフェース・モデルを説明する。
グラム・インターフェース・モデルを説明する。
(3)エミュレーション・フォーマット−ここでは、使
用されるエミュレーション・フォーマットへのオブジェ
クト・システム・フィールドのマッピングを説明する。
用されるエミュレーション・フォーマットへのオブジェ
クト・システム・フィールドのマッピングを説明する。
(4)エミュレーション機能−ここでは、エミュレーシ
ョン機能へのオブジェクト・システム機能のマッピング
を説明する。
ョン機能へのオブジェクト・システム機能のマッピング
を説明する。
(1)オブジェクト・システム DASD物理的媒体は、シリンダと、トラックに区画さ
れる。そのめいめいの数及び容量は、DASDのタイプ
及びモデルで異なる。各シリンダは、2バイトのシリン
ダ番号(CC)によってプログラムがアドレス可能であ
り、シリンダ内の個々のトラックは、めいめいが2バイ
トのヘッド番号(HH)によってアドレス可能な個別の
読取/書込ヘッドによってアクセスされる。トラックの
物理的位置は、そのシリンダ及び与えられ、それゆえ、
4バイト・トラック・アドレス(CCHH)によって指
定される。各トラックは、ホーム・アドレスと、トラッ
ク記述子(レコード0)と、1つまたはそれ以上のデー
タ・レコードを有する。各レコードのサイズはプログラ
ム可能である。そして、ホーム・アドレス及びレコード
・サイズがトラック上に書かれる時、そのトラックはフ
ォーマットされたと称される。全てのトラックは、その
トラック・インデックスから次のトラック・インデック
スへとフォーマットされる。第46A図は、そのような
1つのトラックを示す。
れる。そのめいめいの数及び容量は、DASDのタイプ
及びモデルで異なる。各シリンダは、2バイトのシリン
ダ番号(CC)によってプログラムがアドレス可能であ
り、シリンダ内の個々のトラックは、めいめいが2バイ
トのヘッド番号(HH)によってアドレス可能な個別の
読取/書込ヘッドによってアクセスされる。トラックの
物理的位置は、そのシリンダ及び与えられ、それゆえ、
4バイト・トラック・アドレス(CCHH)によって指
定される。各トラックは、ホーム・アドレスと、トラッ
ク記述子(レコード0)と、1つまたはそれ以上のデー
タ・レコードを有する。各レコードのサイズはプログラ
ム可能である。そして、ホーム・アドレス及びレコード
・サイズがトラック上に書かれる時、そのトラックはフ
ォーマットされたと称される。全てのトラックは、その
トラック・インデックスから次のトラック・インデック
スへとフォーマットされる。第46A図は、そのような
1つのトラックを示す。
物理的媒体上に記録された情報の基本的単位は、8つの
ビットからなるデータ・バイトである。データ・バイト
のグループが領域を構成し、装置は、それらの領域の間
にギャップを書き込むことによってこれらの領域を分割
する。各レコードは2つの(カウント、データ)または
3つの(カウント、キー、データ)領域からなり、一
方、ホームアドレスは、1つだけの領域からなる。オブ
ジェクト・システム・レコードを構成する3つの領域
は、カウント、キー(オプション)、及びデータであ
る。
ビットからなるデータ・バイトである。データ・バイト
のグループが領域を構成し、装置は、それらの領域の間
にギャップを書き込むことによってこれらの領域を分割
する。各レコードは2つの(カウント、データ)または
3つの(カウント、キー、データ)領域からなり、一
方、ホームアドレスは、1つだけの領域からなる。オブ
ジェクト・システム・レコードを構成する3つの領域
は、カウント、キー(オプション)、及びデータであ
る。
カウント領域は、次のようなフィールドを含む。
F フラグ 1バイト トラック条件、論理レコード・
トラック・オーバーフローをあらわす。
トラック・オーバーフローをあらわす。
CCHH トラック・アドレス 2バイト トラックが
物理的に位置するシリンダ及びヘッド番号を示す。
物理的に位置するシリンダ及びヘッド番号を示す。
R レコード番号 1バイト トラック上のレコードの
順次番号を示す。
順次番号を示す。
KL キー長 1バイト キー領域中のバイト数を示
す。
す。
DL データ長 2バイト データ領域中のバイト数を
あらわす。
あらわす。
ECC エラー・コード 2バイト エラー検出/訂正
コードとして使用される。
コードとして使用される。
キー領域は、次のようなフィールドを含む。
(もしKL=0なら、この領域及びそのギャップは、省
略される)KEY キー KLバイト ユーザー・デー
タ ECC エラー・コード 2バイト エラー検出/訂正
コードとして使用される。
略される)KEY キー KLバイト ユーザー・デー
タ ECC エラー・コード 2バイト エラー検出/訂正
コードとして使用される。
データ領域は、次のようなフィールドを含む。DATA
データ DLバイト ユーザー・データ ECC エラー・コード 2バイト エラー検出/訂正
コードとして使用される。
データ DLバイト ユーザー・データ ECC エラー・コード 2バイト エラー検出/訂正
コードとして使用される。
各トラックの最初の領域は、ホーム・アドレスである。
それは、次のフィールドを含む。
それは、次のフィールドを含む。
F フラグ 1バイト トラック条件を示す。
CCHH トラック・アドレス 2バイト トラックが
物理的に位置するシリンダ及びヘッド番号を示す。
物理的に位置するシリンダ及びヘッド番号を示す。
ECC エラー・コード 2バイト エラー検出/訂正
コードとして使用される。
コードとして使用される。
レコード0(トラック記述子)は常に、ホーム・アドレ
スに続く最初のレコードである。好適なプログラミング
・システムにおいては、レコード0 CCHHフィール
ドは、そのトラックが欠陥としてフラグされた場合の代
替トラックを決定する。キー長は、レコード0の場合通
常ゼロである。キー領域はオプションであって、もし存
在するなら、1乃至255バイトを含むことができる。
レコードの数は、フォーマット書込CCWコマンドが、
カウント、キー及びデータ領域を書込時に決定される。
レコードがフォーマットされた後、ユーザー・データ領
域はそのトラックの隣接レコードを破壊することなく読
取り、または再書込することができる。もしレコードが
再フォーマットされたなら、そのトラック上のそれに続
くレコードが破壊される。
スに続く最初のレコードである。好適なプログラミング
・システムにおいては、レコード0 CCHHフィール
ドは、そのトラックが欠陥としてフラグされた場合の代
替トラックを決定する。キー長は、レコード0の場合通
常ゼロである。キー領域はオプションであって、もし存
在するなら、1乃至255バイトを含むことができる。
レコードの数は、フォーマット書込CCWコマンドが、
カウント、キー及びデータ領域を書込時に決定される。
レコードがフォーマットされた後、ユーザー・データ領
域はそのトラックの隣接レコードを破壊することなく読
取り、または再書込することができる。もしレコードが
再フォーマットされたなら、そのトラック上のそれに続
くレコードが破壊される。
(2)ターゲット・システム DASD(第46B図)は、1から順次的に番号付けさ
れた4096ブロックのデータを含むファィルの形式で
S/88マイクロコードに提供される。エミュレーショ
ン機構は、オブジェクト・システム・フォーマット及び
機能を、使用可能なターゲット・システム・フォーマッ
ト及び機能の組合せにマップする。
れた4096ブロックのデータを含むファィルの形式で
S/88マイクロコードに提供される。エミュレーショ
ン機構は、オブジェクト・システム・フォーマット及び
機能を、使用可能なターゲット・システム・フォーマッ
ト及び機能の組合せにマップする。
(3)エミュレーション・フォーマット オブジェクト・システムにおけるDASDの物理的パラ
メータは、タイプとモデルによって異なる。DASタイ
プとモデルは、さまざまなパラメータとともに、ターゲ
ット・システム・ファィル(第46C図)の最初のデー
タ・ブロック(情報)に維持される。このファィルの残
りは、エミュレートされたオブジェクト・トラック・デ
ータ(第46C図)を含む。各トラック毎に必要とされ
るターゲット・システム・データ・ブロックの数は、最
初のデータ・ブロックに維持されているパラメータであ
る。CCHH=0000で始まる、オブジェクト・シス
テム中の各トラックは、ターゲット・システム・ファィ
ル中に順次的に維持される。その開始ブロック番号は、
CCHHと、情報ブロック中に維持されるオブジェクト
・ディスク・サイズが与えられると計算することができ
る。
メータは、タイプとモデルによって異なる。DASタイ
プとモデルは、さまざまなパラメータとともに、ターゲ
ット・システム・ファィル(第46C図)の最初のデー
タ・ブロック(情報)に維持される。このファィルの残
りは、エミュレートされたオブジェクト・トラック・デ
ータ(第46C図)を含む。各トラック毎に必要とされ
るターゲット・システム・データ・ブロックの数は、最
初のデータ・ブロックに維持されているパラメータであ
る。CCHH=0000で始まる、オブジェクト・シス
テム中の各トラックは、ターゲット・システム・ファィ
ル中に順次的に維持される。その開始ブロック番号は、
CCHHと、情報ブロック中に維持されるオブジェクト
・ディスク・サイズが与えられると計算することができ
る。
エミュレートされた各トラック(第46D図)は、現在
そのトラック上に存在するレコードのディレクトリと、
ディレクトリ・ヘッダと、各レコードのユーザー・デー
タ(キー、データ)を含む。そのディレクトリは、特定
のレコードのためのデータを探し出し、レコードまたは
キー上の検索動作を実行し、トラック上の最後のレコー
ドにアクセスし、トラック・オーバーフローを処理する
ために使用される。
そのトラック上に存在するレコードのディレクトリと、
ディレクトリ・ヘッダと、各レコードのユーザー・デー
タ(キー、データ)を含む。そのディレクトリは、特定
のレコードのためのデータを探し出し、レコードまたは
キー上の検索動作を実行し、トラック上の最後のレコー
ドにアクセスし、トラック・オーバーフローを処理する
ために使用される。
オブジェクト・システム・データは、維持、暗示的に保
持、及び維持しない、という3つの様式の1つでエミュ
レーション環境で処理される。
持、及び維持しない、という3つの様式の1つでエミュ
レーション環境で処理される。
全てのギャップは不要であって、維持されない。ECC
は、データの完全性がターゲット・システムによって維
持されるので、作成されずまた維持されない。ターゲッ
ト・システムによって提案されるプログラム・モデルが
全ての障害的物理表面領域を除去するので、オブジェク
ト・システム中の代替トラックが障害のない様式で実現
される。
は、データの完全性がターゲット・システムによって維
持されるので、作成されずまた維持されない。ターゲッ
ト・システムによって提案されるプログラム・モデルが
全ての障害的物理表面領域を除去するので、オブジェク
ト・システム中の代替トラックが障害のない様式で実現
される。
このことは、トラック条件を示すフラグ・バイト(F)
が維持されず、オブジェクト・システム・ソフトウェア
によって書かれるフラグ・バイトが有効性のためチェッ
クされ棄却されることを意味する。
が維持されず、オブジェクト・システム・ソフトウェア
によって書かれるフラグ・バイトが有効性のためチェッ
クされ棄却されることを意味する。
オブジェクト・システム・ソフトウェアによって渡され
るCCHH(トラック・アドレス)は、ターゲット・シ
ステムDASDファィル中のエミュレートされたトラッ
クの位置を計算するために使用される。それは、後述す
るトラック・ヘッダ中に維持されるが、エミュレートさ
れたトラックのカウント及びホーム・アドレスを通じて
増加しない。ホーム・アドレスは、明示的領域としては
維持されない。やはりオブジェクト・システム・ソフト
ウェアによって渡されるレコード番号(R)は、暗示的
に維持され、明示データとしては現れない。
るCCHH(トラック・アドレス)は、ターゲット・シ
ステムDASDファィル中のエミュレートされたトラッ
クの位置を計算するために使用される。それは、後述す
るトラック・ヘッダ中に維持されるが、エミュレートさ
れたトラックのカウント及びホーム・アドレスを通じて
増加しない。ホーム・アドレスは、明示的領域としては
維持されない。やはりオブジェクト・システム・ソフト
ウェアによって渡されるレコード番号(R)は、暗示的
に維持され、明示データとしては現れない。
各レコードの、ユーザー・データ、オプションのキー及
びデータ・フィールドは、トラック・ディレクトリ(第
46D図)の直ぐ後に続くエミュレートされたトラック
に順次的な様式で維持される。
びデータ・フィールドは、トラック・ディレクトリ(第
46D図)の直ぐ後に続くエミュレートされたトラック
に順次的な様式で維持される。
オブジェクト・システム・データの残り(F(論理レコ
ード・トラック・オーバーフロー)、KL及びDL)
は、トラック・ディレクトリに維持される(第46E
図)。ディレクトリ・エントリは、Fと、KLと、DL
と、レコード毎のユーザー・データ(キー及びデータ)
に対するポインタpを含む。第46E図は、ヘッダと、
ディレクトリ及びユーザー・データ構成と、エミュレー
トされたトラックのターゲット・システム4KBブロッ
クに対するマッピングを示す。ポインタp0−p2は、
ユーザー・データ・レコード0−2の開始アドレス(4
KBブロック内の)を指し示す。
ード・トラック・オーバーフロー)、KL及びDL)
は、トラック・ディレクトリに維持される(第46E
図)。ディレクトリ・エントリは、Fと、KLと、DL
と、レコード毎のユーザー・データ(キー及びデータ)
に対するポインタpを含む。第46E図は、ヘッダと、
ディレクトリ及びユーザー・データ構成と、エミュレー
トされたトラックのターゲット・システム4KBブロッ
クに対するマッピングを示す。ポインタp0−p2は、
ユーザー・データ・レコード0−2の開始アドレス(4
KBブロック内の)を指し示す。
(4)エミュレーション機能 この章は、オブジェクト・システムのDASD CCW
コマンドのいくつかを与える点での、上述のエミュレー
ション・フォーマットの使用に関連するものである。第
46F乃至K図は、包括的に、読取及び書込動作の間
に、オブジェクト・システム・ソフトウェアによって転
送されるデータを表す。ホーム・アドレスに関連するC
CW動作の場合、第46F図のF及びCCHHが計算さ
れ、あるいはチェックされるが、エミュレートされたト
ラックにはなにも書かれない。
コマンドのいくつかを与える点での、上述のエミュレー
ション・フォーマットの使用に関連するものである。第
46F乃至K図は、包括的に、読取及び書込動作の間
に、オブジェクト・システム・ソフトウェアによって転
送されるデータを表す。ホーム・アドレスに関連するC
CW動作の場合、第46F図のF及びCCHHが計算さ
れ、あるいはチェックされるが、エミュレートされたト
ラックにはなにも書かれない。
レコード0に係わるCCW動作の場合(第46G図)、
CCHH及びRフィールドがチェックされるが何も書か
れない。KL及びDLフィールドは、適切なディレクト
リ・エントリとの間で転送される。レコード・ゼロは、
ユーザー・データ領域中へのオフセット・ゼロにある。
CCHH及びRフィールドがチェックされるが何も書か
れない。KL及びDLフィールドは、適切なディレクト
リ・エントリとの間で転送される。レコード・ゼロは、
ユーザー・データ領域中へのオフセット・ゼロにある。
カウントに関与するCCW動作は常にヘッドをトラック
中の次のレコードへと向き付ける(第46H図)。キー
及びデータに係わるCCW動作の場合、ユーザー・デー
タの位置及びサイズがディレクトリ中に見出される(第
46I図)。カウント、キー及びデータに関与するCC
W動作は読取/書込ヘッドをトラック中の次のレコード
へと向き付ける(第46H図)。多重カウント、キー及
びデータに係わるCCW動作の場合、処理は、次のディ
レクトリ・エントリで始まり、最後の有効ディレクトリ
・エントリまで続く(第46K図)。
中の次のレコードへと向き付ける(第46H図)。キー
及びデータに係わるCCW動作の場合、ユーザー・デー
タの位置及びサイズがディレクトリ中に見出される(第
46I図)。カウント、キー及びデータに関与するCC
W動作は読取/書込ヘッドをトラック中の次のレコード
へと向き付ける(第46H図)。多重カウント、キー及
びデータに係わるCCW動作の場合、処理は、次のディ
レクトリ・エントリで始まり、最後の有効ディレクトリ
・エントリまで続く(第46K図)。
E23.S/88とS/370による実記憶16の共有 (1)序論 さて、1つのまたはそれ以上のS/370プロセッサの
ための実(物理的)記憶16における1つのまたはそれ
以上の領域の「盗取」と、記憶16の管理及びマッピン
グについて詳細に説明する。
ための実(物理的)記憶16における1つのまたはそれ
以上の領域の「盗取」と、記憶16の管理及びマッピン
グについて詳細に説明する。
関連する図は次のとおりである。
第10図は、S/88仮想記憶106及び物理記憶16
と、S/370プロセッサ21、23と、25、27
と、29、31のためのS/370物理的記憶領域16
2−164の割り振りについて概念的に示す図である。
と、S/370プロセッサ21、23と、25、27
と、29、31のためのS/370物理的記憶領域16
2−164の割り振りについて概念的に示す図である。
第47図は、S/88物理記憶16からS/88領域を
獲得する方法を動的に示している。
獲得する方法を動的に示している。
第48A乃至K図は、マッピングがS/370記憶領域
の獲得を許容するように制御されるS/88記憶管理に
おいて使用されるような既知の仮想/ソフトウェア・マ
ッピングを示している。
の獲得を許容するように制御されるS/88記憶管理に
おいて使用されるような既知の仮想/ソフトウェア・マ
ッピングを示している。
記憶16は、4KBページ及び、各4KBページ毎に1
つの複数の記憶マップ・エントリ(mme)に分割さ
れ、合弁して記憶16全体をマップするmmeアレイ
(第48A図)に含まれる。使用のため割当てられてい
ないエントリは、各エントリ(第48A図)においてリ
スト中の前及び次のエントリの物理記憶ページ(ポイン
タ)を含めることによって「自由リスト」に結び付けら
れる。S/88オペレーティング・システムのソフトウ
ェア・ポインタは常に、自由リストの開始点を指し示
す。物理記憶ページは、この自由リストの開始からさま
ざまなプロセスに割当てられ、自由リストに戻されるペ
ージは、好適には自由リストの開始点に配置される。そ
の「前及び次の」ページ番号及び自由リストの開始に対
するソフトウェア・ポインタは、適切に更新される。
つの複数の記憶マップ・エントリ(mme)に分割さ
れ、合弁して記憶16全体をマップするmmeアレイ
(第48A図)に含まれる。使用のため割当てられてい
ないエントリは、各エントリ(第48A図)においてリ
スト中の前及び次のエントリの物理記憶ページ(ポイン
タ)を含めることによって「自由リスト」に結び付けら
れる。S/88オペレーティング・システムのソフトウ
ェア・ポインタは常に、自由リストの開始点を指し示
す。物理記憶ページは、この自由リストの開始からさま
ざまなプロセスに割当てられ、自由リストに戻されるペ
ージは、好適には自由リストの開始点に配置される。そ
の「前及び次の」ページ番号及び自由リストの開始に対
するソフトウェア・ポインタは、適切に更新される。
システム/88がブートされる時、これらのエントリ
は、連続的なアドレス順に自由リストに配置され、この
時点次はわずかな数のページしか使用には割当てられな
い。それゆえ、自由リストから割当てに利用可能な記憶
16の大きい連続領域が存在する。それゆえ、ブート時
点で記憶領域(例えば162、163、164)はS/
370プロセッサから「盗取」しなくてはならない。そ
の後、ページが必要に応じて自由リストから割当てられ
自由リストに戻されるにつれて、自由リスト上の大きい
連続ブロックは、細分化されて最早利用可能ではなくな
る。もし連続的なS/370領域を作成しようとする試
みがなされたとしたら、全てのプロセスを停止し、十分
な連続領域が可用となるまでさまざまなプロセスに既に
割当てられている記憶ブロックを再割当てするために複
雑なルーチンを実行する必要がある。
は、連続的なアドレス順に自由リストに配置され、この
時点次はわずかな数のページしか使用には割当てられな
い。それゆえ、自由リストから割当てに利用可能な記憶
16の大きい連続領域が存在する。それゆえ、ブート時
点で記憶領域(例えば162、163、164)はS/
370プロセッサから「盗取」しなくてはならない。そ
の後、ページが必要に応じて自由リストから割当てられ
自由リストに戻されるにつれて、自由リスト上の大きい
連続ブロックは、細分化されて最早利用可能ではなくな
る。もし連続的なS/370領域を作成しようとする試
みがなされたとしたら、全てのプロセスを停止し、十分
な連続領域が可用となるまでさまざまなプロセスに既に
割当てられている記憶ブロックを再割当てするために複
雑なルーチンを実行する必要がある。
後述するアプリケーション・プログラムEXEC370
におけるサービス・ルーチンが、S/88オペレーティ
ング・システムからS/370記憶領域を「盗む」ため
の機能を与える。
におけるサービス・ルーチンが、S/88オペレーティ
ング・システムからS/370記憶領域を「盗む」ため
の機能を与える。
(2)S/88記憶16のマッピング しかし、先ず最初に、第48A乃至K図を参照して、S
/88主記憶16の管理/マッピングの好適な態様につ
いて説明する。第48A図は、プロセスの仮想アドレス
空間を維持するためにS/88オペレーティング・シス
テムによってセット・アップされるソフトウェア構造の
簡単な概要図である。そのソフトウェア構造は、次のよ
うな要素からなる。
/88主記憶16の管理/マッピングの好適な態様につ
いて説明する。第48A図は、プロセスの仮想アドレス
空間を維持するためにS/88オペレーティング・シス
テムによってセット・アップされるソフトウェア構造の
簡単な概要図である。そのソフトウェア構造は、次のよ
うな要素からなる。
pte−処理テーブル・エントリ(プロセスをあらわす) pmb−プロセス・マップ・ブロック。互いに連鎖される
と、それらは、この処理の仮想アドレス空間のための、
apteに対する(pmeの)ポインタを含むことになる。
と、それらは、この処理の仮想アドレス空間のための、
apteに対する(pmeの)ポインタを含むことになる。
pmbp−チェインの最初のpmbに対するpte中のポインタ pme−pmbに含まれる(apteを指し示す)プロセス・マッ
プ・エントリ mme−物理的記憶マップ・エントリ。mmeアレイ中に含ま
れると、システム、すなわち記憶16中の物理記憶の4
KBページ毎に1つのmmeが存在する。
プ・エントリ mme−物理的記憶マップ・エントリ。mmeアレイ中に含ま
れると、システム、すなわち記憶16中の物理記憶の4
KBページ毎に1つのmmeが存在する。
apte−アクティブ・ページ・テーブル・エントリ。apt
ブロック中に含まれると、システムの各固有仮想ページ
毎に1つのapteが存在する。
ブロック中に含まれると、システムの各固有仮想ページ
毎に1つのapteが存在する。
vpn−プロセスの仮想アドレス空間内の仮想ページ番号 pmt−プロセス管理テーブル。システムの各プロセス(p
te)に対してpmt中にポインタptepが存在する。
te)に対してpmt中にポインタptepが存在する。
ptep−1つのプロセスに対するプロセス・テーブル・エ
ントリ・ポインタ 第48A図の記憶マップ構造は、記憶管理ユニット10
5(第10及び47図)によって使用される。これは、
1つまたはそれ以上のmmeアレイ(第48C図)からな
り、好適な実施例では、512個の順序付けられたmme
を含む。各mmeは、1つの4KBの実記憶をあらわし、
それゆえ、mmeアレイは、512×4KB=2MBの連
続的記憶をあらわす。
ントリ・ポインタ 第48A図の記憶マップ構造は、記憶管理ユニット10
5(第10及び47図)によって使用される。これは、
1つまたはそれ以上のmmeアレイ(第48C図)からな
り、好適な実施例では、512個の順序付けられたmme
を含む。各mmeは、1つの4KBの実記憶をあらわし、
それゆえ、mmeアレイは、512×4KB=2MBの連
続的記憶をあらわす。
第47図の記憶マップ・アレイは、概念的には、連続的
順序で配列されたmmeアレイの全てのをあらわしてい
る。
順序で配列されたmmeアレイの全てのをあらわしてい
る。
mmeは、通常、3つのリストのうちの1つに連糸され
る。
る。
1)使用済みリスト、プロセスに割当てられたmme 2)リクレーム・リスト、自由リストに返却されるべき
mme 3)自由リスト、プロセスに割当て可能なmme。mmeが1
つのリストから別のリストに移動される時、それらのポ
インタは適切に更新される。
mme 3)自由リスト、プロセスに割当て可能なmme。mmeが1
つのリストから別のリストに移動される時、それらのポ
インタは適切に更新される。
もしそれがリスト上にないなら、それらは、恒久的に結
び付けられたページをあらわすかまたは、過渡的状態に
ある。記憶管理ユニット105によって使用されるmme
データ構造は、第48B図で示す3つのリスト・ポイン
タを含み、ここで、 フラグは、 連結済み ページが連結されている I/O進行中 ディスクI/Oが今進行中 書込み このフレームのための最後の(または現在
の)I/Oがディスクに対する書込みであることを示す 接続済み ページが、ハードウェア・レジスタ中にPT
W(物理的テーブル・ワード)をもつ 変更済み 変更ビットの最終参照 未使用(2) クリーンアップ取り戻し クリーンアップするように通
知 未使用(1) 解放取り戻し このページをクリーンし、解放するよう
に通知 ページ・フォールト このページ上でpfが待っている 次のmme 次のmmeに対するppn(物理的ページ番号) 前のmme 前のmmeに対するppn アドレス メモリ中にある間の、ディスク・アドレス aptep このページのためのapteに対するポインタ 「次の」及び「前の」mmeフィールドが、連鎖リスト
(使用済み、リクレーム、自由リスト)を作成するため
に使用される。
び付けられたページをあらわすかまたは、過渡的状態に
ある。記憶管理ユニット105によって使用されるmme
データ構造は、第48B図で示す3つのリスト・ポイン
タを含み、ここで、 フラグは、 連結済み ページが連結されている I/O進行中 ディスクI/Oが今進行中 書込み このフレームのための最後の(または現在
の)I/Oがディスクに対する書込みであることを示す 接続済み ページが、ハードウェア・レジスタ中にPT
W(物理的テーブル・ワード)をもつ 変更済み 変更ビットの最終参照 未使用(2) クリーンアップ取り戻し クリーンアップするように通
知 未使用(1) 解放取り戻し このページをクリーンし、解放するよう
に通知 ページ・フォールト このページ上でpfが待っている 次のmme 次のmmeに対するppn(物理的ページ番号) 前のmme 前のmmeに対するppn アドレス メモリ中にある間の、ディスク・アドレス aptep このページのためのapteに対するポインタ 「次の」及び「前の」mmeフィールドが、連鎖リスト
(使用済み、リクレーム、自由リスト)を作成するため
に使用される。
S/88の物理的記憶がS/370記憶領域のために捕
獲されるとき後述のように変更されるのが、次のmme及
び前のmmeに対する物理的ページである。好適な実施例
では、各mmeアレイ(第48C図)が128個のポイン
タのアレイであり、そのめいめいがmmeアレイの仮想ア
ドレスである。最初のn個のポインタは、全てのmmeア
レイの順序リストである。残り128−n個のポインタ
は、NULLである。このことは、128×2MB=2
56MBの実記憶を追跡する能力を与える。これらの各
ポインタは、物理ページ番号(ppn)と呼ばれる、物理
アドレスの16個の高位ビットをもち、特定のmmeに対
するポインタとして使用される。ppnの7つの高位ビッ
トは、mmeアレイを選択し、ppnの9つの下位ビットがそ
のアレイ内のmmeを選択する。物理アドレスの12個の
下位ビットは、記憶16の実(物理)ページへのオフセ
ットである。
獲されるとき後述のように変更されるのが、次のmme及
び前のmmeに対する物理的ページである。好適な実施例
では、各mmeアレイ(第48C図)が128個のポイン
タのアレイであり、そのめいめいがmmeアレイの仮想ア
ドレスである。最初のn個のポインタは、全てのmmeア
レイの順序リストである。残り128−n個のポインタ
は、NULLである。このことは、128×2MB=2
56MBの実記憶を追跡する能力を与える。これらの各
ポインタは、物理ページ番号(ppn)と呼ばれる、物理
アドレスの16個の高位ビットをもち、特定のmmeに対
するポインタとして使用される。ppnの7つの高位ビッ
トは、mmeアレイを選択し、ppnの9つの下位ビットがそ
のアレイ内のmmeを選択する。物理アドレスの12個の
下位ビットは、記憶16の実(物理)ページへのオフセ
ットである。
メモリ・マップ情報構造(第48D図)は、マップのた
めに使用されるメモリを追跡するために使用され、ここ
で、 mmeマップinfop−1 最初のmmeマップ情報構造に対す
るポインタ 次のmmeマップinfop 次のmmeマップ情報構造に対する
ポインタ nページ このマップによって使用される4Kページの
実メモリの番号(最大16) ページ毎(16) その構造の残りは、ページ毎の情報
のアレイである。
めに使用されるメモリを追跡するために使用され、ここ
で、 mmeマップinfop−1 最初のmmeマップ情報構造に対す
るポインタ 次のmmeマップinfop 次のmmeマップ情報構造に対する
ポインタ nページ このマップによって使用される4Kページの
実メモリの番号(最大16) ページ毎(16) その構造の残りは、ページ毎の情報
のアレイである。
ppn このページのためのmmeに対する物理的ページ番号 アクティブ・ページ・テーブル・エントリ(apte)は、
仮想記憶を追跡するために使用される。apte構造(第4
8E図)は、仮想記憶の所有者と、ページの仮想アドレ
スと、ページ・フォールトである場合のディスク・アド
レスの実メモリ・アドレスを示す。
仮想記憶を追跡するために使用される。apte構造(第4
8E図)は、仮想記憶の所有者と、ページの仮想アドレ
スと、ページ・フォールトである場合のディスク・アド
レスの実メモリ・アドレスを示す。
もし2つの以上のプロセスが同一の仮想空間を共有して
いるなら、その全てのプロセスは、apteトレーラ(第4
8G図)によって識別され、各仮想ページ毎のapteがそ
のトレーラを指し示す。
いるなら、その全てのプロセスは、apteトレーラ(第4
8G図)によって識別され、各仮想ページ毎のapteがそ
のトレーラを指し示す。
apte構造は、次のものを含む。
アドレスについて、 実アドレス (フラグmmeが1に割当てられている) 4Kページ ディスク・アドレス (フラグmmeが0に割当てられて
いる) もしこのapteが自由リスト上にあるなら次の自由apteの
アドレス フラグについて、 プロセス毎に 他のプロセスと共有されていない仮想ペ
ージ フォークされたページ プロセス毎に、ページがフォー
クされている mme割当て済み ページが記憶をもつ 待機 割当てられ、このページを待つ I/Oエラー ページ上でI/Oエラーが生じた apte解放 I/O完了時にこのapteを解放 CPUタイプ・パッチ ブート時にページがパッチされ
た 悪いアドレス、再割当てエラーが、新しいアドレスを強
制した カウント このページを共有するプロセスの数vpage
仮想ページ番号。vpnは、27ビットの仮想アドレスの
うちの最上の16ビットからなる。process ptr 各プ
ロセス毎のpteのアドレス(もし共有された仮想メモリ
でないなら)またはaptトレーラのアドレス(もし共有
されたメモリなら)。
いる) もしこのapteが自由リスト上にあるなら次の自由apteの
アドレス フラグについて、 プロセス毎に 他のプロセスと共有されていない仮想ペ
ージ フォークされたページ プロセス毎に、ページがフォー
クされている mme割当て済み ページが記憶をもつ 待機 割当てられ、このページを待つ I/Oエラー ページ上でI/Oエラーが生じた apte解放 I/O完了時にこのapteを解放 CPUタイプ・パッチ ブート時にページがパッチされ
た 悪いアドレス、再割当てエラーが、新しいアドレスを強
制した カウント このページを共有するプロセスの数vpage
仮想ページ番号。vpnは、27ビットの仮想アドレスの
うちの最上の16ビットからなる。process ptr 各プ
ロセス毎のpteのアドレス(もし共有された仮想メモリ
でないなら)またはaptトレーラのアドレス(もし共有
されたメモリなら)。
各apteは、12バイト長であり、各アクティブ・ページ
・テーブル(apt)ブロック(第48F図)中には256
個のエントリが含まれている。ブロック内のapteの相対
的位置は、意味がない。全ての未使用apteは、自由apte
pリスト上に連鎖される。もし追加的なapteが必要であ
り、リストがNULLであるなら、新しいaptブロック
が結びあわされたヒープ中で割当てられる。
・テーブル(apt)ブロック(第48F図)中には256
個のエントリが含まれている。ブロック内のapteの相対
的位置は、意味がない。全ての未使用apteは、自由apte
pリスト上に連鎖される。もし追加的なapteが必要であ
り、リストがNULLであるなら、新しいaptブロック
が結びあわされたヒープ中で割当てられる。
aptトレーラ(第48G図)は、共有されたプログラム
領域のために使用され、結びあわされたシステム・ヒー
プ中で割当てられ、EITE(実行可能イメージ・テー
ブル・エントリ)またはapteによって指し示される。プ
ログラム毎に(領域毎に1つ)4つのトレーラが存在す
る。トレーラは、システムをして、ページが除去される
ときそのページを指し示す全てのPTWを見出させるも
のである。
領域のために使用され、結びあわされたシステム・ヒー
プ中で割当てられ、EITE(実行可能イメージ・テー
ブル・エントリ)またはapteによって指し示される。プ
ログラム毎に(領域毎に1つ)4つのトレーラが存在す
る。トレーラは、システムをして、ページが除去される
ときそのページを指し示す全てのPTWを見出させるも
のである。
aptトレーラ構造は、次のものを有する。
n procs このトレーラを使用しているプロセスの番号 vベース この領域の第1の仮想ページ(領域ベースvp
n) nページ 領域中のページの数 ユーザー トレーラ・ユーザーのビットマップpp info
(o:nnp)この構造の残りの部分は、プロセス毎のアレイ
情報である。
n) nページ 領域中のページの数 ユーザー トレーラ・ユーザーのビットマップpp info
(o:nnp)この構造の残りの部分は、プロセス毎のアレイ
情報である。
npp アレイのサイズ n ptws この時点で接続されているPTWの数 aptep このページのAPTEに対するポインタ プロセス・テーブル・エントリ(pte)(第48H図)
は、プロセスを管理するために必要な情報を含む。それ
は、そのプロセスの仮想アドレス空間についての情報を
含む。各ページ・エントリは、次のものを含む。
は、プロセスを管理するために必要な情報を含む。それ
は、そのプロセスの仮想アドレス空間についての情報を
含む。各ページ・エントリは、次のものを含む。
最初のpmbポインタ このプロセスのpmbのリスト中の最
初のpmbに対するポインタ マップ・ルート・テーブル物理アドレス 物理マップの
物理アドレス マップ・ルート・ポインタ物理アドレス 物理マップの
仮想アドレス マップ・ルート・ポインタvirt 仮想マップ・イメージ pdrポインタ プロセス・データ領域毎のアドレス プロセス・マップ・ブロック構造(第48I図)は、プ
ロセスの仮想空間を実メモリ空間にマップするために使
用され、次のものを含む。
初のpmbに対するポインタ マップ・ルート・テーブル物理アドレス 物理マップの
物理アドレス マップ・ルート・ポインタ物理アドレス 物理マップの
仮想アドレス マップ・ルート・ポインタvirt 仮想マップ・イメージ pdrポインタ プロセス・データ領域毎のアドレス プロセス・マップ・ブロック構造(第48I図)は、プ
ロセスの仮想空間を実メモリ空間にマップするために使
用され、次のものを含む。
nextp このプロセスの次のpmbに対するポインタ ベースvpnベース仮想ページ番号、このpmbの最初の仮想
ページ番号(6個の下位ビットは、ゼロとなる) マップ・アドレス マップの物理アドレス pme プロセス・マップ・エントリ0−63、この構造
の残りの部分は、ページ毎のアレイの情報である。この
アレイへのインデックスは、vpnの下位6ビットであ
る。
ページ番号(6個の下位ビットは、ゼロとなる) マップ・アドレス マップの物理アドレス pme プロセス・マップ・エントリ0−63、この構造
の残りの部分は、ページ毎のアレイの情報である。この
アレイへのインデックスは、vpnの下位6ビットであ
る。
フラグについて、 mem未使用(1)での使用 使用済みページのコピーが
メモリ中にある。
メモリ中にある。
フェンス このページは、フェンス・ページである。
接続済み 入来した時このページを接続する 書込み時コピー 書き込まれた時コピー パッチ済 ページは、パッチされたコード・ページであ
る。
る。
ufence ユーザー・フェンス・ページ さらに、 aptep このページのAPTEに対するポインタ プロセス管理テーブル(第48J図)は、スケジューラ
によって使用される情報を含み、それには、システム中
の全てのプロセスに対するポインタptepのリストと、シ
ステムで可用なページの数と、関与するページの数を含
む。
によって使用される情報を含み、それには、システム中
の全てのプロセスに対するポインタptepのリストと、シ
ステムで可用なページの数と、関与するページの数を含
む。
第48K図の物理テーブル・ワード(ptw)は次のものを
含む。
含む。
acl ptwアクセス・コード ppn 所望するページの物理ページ番号 ac2 ptwアクセス・コード u このptwは、使用されている (3)スタートアップ手続き システム/88は、システムをパワーオンし、スタート
アップ・ファイルに含まれるプログラム及びデータ・モ
ジュールをブートするスタートアップ手続きを含む。
アップ・ファイルに含まれるプログラム及びデータ・モ
ジュールをブートするスタートアップ手続きを含む。
自動スタートアップ時、プログラム可能読み取り専用記
憶(PROM)181(第12図)がS/88及びS/
370素子上で診断及び自己テストを走らせる。このタ
スクの完了時、PROM181がマスター・ディスク
(図示しない)からS/88オペレーティング・システ
ムをロードするユティリティ・プログラムを読む。
憶(PROM)181(第12図)がS/88及びS/
370素子上で診断及び自己テストを走らせる。このタ
スクの完了時、PROM181がマスター・ディスク
(図示しない)からS/88オペレーティング・システ
ムをロードするユティリティ・プログラムを読む。
モジュール・スタートアップ・コードは、全ての構成さ
れた装置及びディスクを初期化し、システム・カレンダ
・クロックから内部クロックをセットする。このファイ
ルは、モジュールをスタートアップするための手続きの
一部としてオペレーティング・システムが実行するコマ
ンドを含む。この手続きは、次の機能を含む。
れた装置及びディスクを初期化し、システム・カレンダ
・クロックから内部クロックをセットする。このファイ
ルは、モジュールをスタートアップするための手続きの
一部としてオペレーティング・システムが実行するコマ
ンドを含む。この手続きは、次の機能を含む。
そのモジュールに接続されたボード、ディスク及び装置
の構成を指定するテーブル・ファイルを読み取ること、 そのシステム内のモジュールを識別すること、 さまざまなシステム・サービス・ルーチンを開始させる
こと。
の構成を指定するテーブル・ファイルを読み取ること、 そのシステム内のモジュールを識別すること、 さまざまなシステム・サービス・ルーチンを開始させる
こと。
このモジュール・ファイルは、新しいシステムを構成す
るに十分なデータを供給し、カスタマによって、その必
要条件に適合するように変更することができる。S/8
8主記憶16からS/370領域162−164を捕獲
するために、モジュール・スタートアップ・コード・コ
マンド・ファイル中にはあるステートメントが挿入され
る。例えば、3つのS/370プロセッサ21、23
と、25、27と、29、31及び、該プロセッサのた
めのS/370記憶領域162、163と164をもつ
第10図の構成を想定すると、モジュール・スタートア
ップ・コード・コマンド・ファイル中には次のようなス
テートメントが挿入される。
るに十分なデータを供給し、カスタマによって、その必
要条件に適合するように変更することができる。S/8
8主記憶16からS/370領域162−164を捕獲
するために、モジュール・スタートアップ・コード・コ
マンド・ファイル中にはあるステートメントが挿入され
る。例えば、3つのS/370プロセッサ21、23
と、25、27と、29、31及び、該プロセッサのた
めのS/370記憶領域162、163と164をもつ
第10図の構成を想定すると、モジュール・スタートア
ップ・コード・コマンド・ファイル中には次のようなス
テートメントが挿入される。
S/370プロセッサ#1VM8メガバイト・スタート S/370プロセッサ#2AIX4メガバイト・スター
ト S/370プロセッサ#3VSE16メガバイト・スタ
ート (4)S/370サービス・ルーチン 各S/370スタート・コマンドは、特定の#1、#2
または#3プロセッサのために、記憶16から実記憶空
間のブロックを「盗む」ためにソフトウェア・ルーチン
を実行させる。次に、適当なS/370オペレーティン
グ・システムが、「盗まれた」実記憶空間中にIPLさ
れる。ソフトウェア・ルーチンの機能は、S/88記憶
から記憶領域を獲得し、それらの領域を適当な時点で置
き換えることである。これらの機能を実行するために、
5つのサブルーチンが使用される。
ト S/370プロセッサ#3VSE16メガバイト・スタ
ート (4)S/370サービス・ルーチン 各S/370スタート・コマンドは、特定の#1、#2
または#3プロセッサのために、記憶16から実記憶空
間のブロックを「盗む」ためにソフトウェア・ルーチン
を実行させる。次に、適当なS/370オペレーティン
グ・システムが、「盗まれた」実記憶空間中にIPLさ
れる。ソフトウェア・ルーチンの機能は、S/88記憶
から記憶領域を獲得し、それらの領域を適当な時点で置
き換えることである。これらの機能を実行するために、
5つのサブルーチンが使用される。
A)このサブルーチン、S/370記憶置換は、S/8
8オペレーティング・システム・テーブルから物理記憶
のブロックを抽出する。このブロックのベース・アドレ
スは、メガバイト境界上にあり、そのサイズは、メガバ
イト単位の整数値である。
8オペレーティング・システム・テーブルから物理記憶
のブロックを抽出する。このブロックのベース・アドレ
スは、メガバイト境界上にあり、そのサイズは、メガバ
イト単位の整数値である。
用法: declare S/370 displace_stor entry( binary(15), binary(15), binary(15)); call S/370 displace_stor(nブロック,ppn, エラーコード); 引数-nブロック(入力)所望の連続メガバイトの数 ppn(出力)ブロック中の実記憶の最初の下位または高
位4Kページの物理ページ番号。ppnの下位8ビットは
ゼロとなり、そのブロックのベース実アドレスは、40
96*ppnとなる。
位4Kページの物理ページ番号。ppnの下位8ビットは
ゼロとなり、そのブロックのベース実アドレスは、40
96*ppnとなる。
エラーコード(出力) 空き不十分−少なくとも1MBを配置するために利用可
能な十分な連続自由ブロックがない。
能な十分な連続自由ブロックがない。
過小供与−配置されたMBの数が必要量より小さい。
B)サブルーチンS/370記憶置換は、S/88オペ
レーティング・システム・テーブルに、物理記憶のブロ
ックを返す。
レーティング・システム・テーブルに、物理記憶のブロ
ックを返す。
用法: declare S/370 replace_stor entry( binary(15), binary(15), binary(15)); call S/370 replace_stor(nブロック,ppn, エラーコード); 引数-nブロック(入力) 返されている連続メガバイトの数 ppn(入力) ブロックのベースの物理ページ番号。ppnの8つの最下
位ビットはゼロでなくてはならない。
位ビットはゼロでなくてはならない。
エラーコード(出力) 自由接続不可−VOSに記憶を返そうと試みる前に、S
/370記憶クローズを使用しなくてはならない。
/370記憶クローズを使用しなくてはならない。
C)サブルーチンS/370記憶オープンは、以前に配
置された物理記憶の一部、または全てを呼び出し側の仮
想アドレス空間に接続し、その仮想ページ番号が返され
る。おのおののpte及びpmeが形成され、仮想から実への
マッピングが確立される。そのアクセス・コードは、
「読取/書込」であり、記憶が接続される。
置された物理記憶の一部、または全てを呼び出し側の仮
想アドレス空間に接続し、その仮想ページ番号が返され
る。おのおののpte及びpmeが形成され、仮想から実への
マッピングが確立される。そのアクセス・コードは、
「読取/書込」であり、記憶が接続される。
用法: declare S/370_open_stor entry( binary(15), binary(15), binary(15), binary(15)); call S/370_open_stor(nブロック, ppn, vpn, エラーコード); 引数: nブロック(入力) 要求される連続的メガバイトの数 ppn(出力) その領域の最初の4Kページの物理ページ番号。ppnの
下位8ビットはゼロとなる。
下位8ビットはゼロとなる。
vpn(出力) その領域の最初の4Kページの仮想ページ番号。ppnの
下位8ビットはゼロとなり、仮想アドレスは、4096*vpn
となる。
下位8ビットはゼロとなり、仮想アドレスは、4096*vpn
となる。
エラーコード(出力) 返されるエラーコード D)サブルーチンS/370記憶クローズは、以前にオ
ープンされた物理記憶の一部、または全てを呼び出し側
の仮想アドレス空間から切り放す。適切なapte及びpme
がS/88オペレーティング・システムに返され、おの
おののpte及びpmeが形成され、仮想から実へのマッピン
グがフォールトされる。物理記憶はS/370配置記憶
ルーチンに戻される。
ープンされた物理記憶の一部、または全てを呼び出し側
の仮想アドレス空間から切り放す。適切なapte及びpme
がS/88オペレーティング・システムに返され、おの
おののpte及びpmeが形成され、仮想から実へのマッピン
グがフォールトされる。物理記憶はS/370配置記憶
ルーチンに戻される。
用法: declare S/370_close_stor entry( binary(15), binary(15), binary(15)); call S/370_close_stor(nブロック, vpn, エラーコード); 引数: nブロック(入力) 戻される連続的メガバイトの数 vpn(入力) 戻される領域の最初の4Kページの仮想ページ番号。
エラーコード(出力) 返されるエラーコード E)空取得は、START_370ルーチンによって呼
ばれるサブルーチンである。それは、上記4つのプログ
ラムを実行することができるように、START_37
0プログラムをS/88監視モードにおく。START
_370が一旦監視モードにあると、S/88オペレー
ティング・システムから記憶のブロックを除去し、記憶
を各S/370プロセッサに再割当てするために、ベク
タ・ポインタを変更することができる。
ばれるサブルーチンである。それは、上記4つのプログ
ラムを実行することができるように、START_37
0プログラムをS/88監視モードにおく。START
_370が一旦監視モードにあると、S/88オペレー
ティング・システムから記憶のブロックを除去し、記憶
を各S/370プロセッサに再割当てするために、ベク
タ・ポインタを変更することができる。
このサブルーチンは、メモリ割当てを変更し、S/88
プロセッサの割り込みレベル6のマニュアル・ベクタを
変えるために使用される。カスタマは、システム・テキ
ュリティ上の理由から、この呼び出しに対する知識、ま
たはアクセスを与えられない。
プロセッサの割り込みレベル6のマニュアル・ベクタを
変えるために使用される。カスタマは、システム・テキ
ュリティ上の理由から、この呼び出しに対する知識、ま
たはアクセスを与えられない。
用法: declare S/370_gain_freedom entry( binary(15), binary(15)); call S/370_freedom(give_take, エラーコード); 引数 give_take(入力) 値0は呼び出し側を、アプリケーション・ユーザー状態
に戻し、別の値は呼び出し側を、監視状態にセットす
る。
に戻し、別の値は呼び出し側を、監視状態にセットす
る。
エラーコード(出力) 戻されたエラー・コード 上述のサブルーチンの機能は、次のとおりである。
S/370置換記憶 1)空を獲得し、mmeアレイ自由リストをロックする。
2)隣接自由mmeの最大のストリングを探して自由リス
トを検索する。
トを検索する。
3)両端をMB境界に丸め、ストリング中の4KBブロ
ックの数である、nblkを計算。
ックの数である、nblkを計算。
4)もしnblk>nブロックなら、nblkをnブロック(必
要な4KBの数)にセットし、ベースppn境界を変更。
要な4KBの数)にセットし、ベースppn境界を変更。
5)自由リストからmmeの選択したストリングを外す。
6)システム可用カウントからnページを引く。
7)mmeアレイ自由リストをロック解除し、空きを供
給。
給。
8)ppn=ベースppn もしnblk<nブロックならrc=エラー もしnブロック<=0ならrc=エラー もしエラーなしならrc=0 S/370記憶置換 1)全てのエントリが接続されている訳ではないことを
チェックし、フラグをゼロにセットし、mmeを適切に連
鎖させる。もし問題が生じたらエラーを返す。
チェックし、フラグをゼロにセットし、mmeを適切に連
鎖させる。もし問題が生じたらエラーを返す。
2)空きを獲得し、mmeアレイ自由リストをロックす
る。
る。
3)mmeを繋ぎあわせるための良好な位置を求めて自由
リストを検索する。
リストを検索する。
a.ベースppnの隣の最初の候補 b.リストの最後の第2の候補 4)ブロックの全体を自由リスト上に繋ぎあわせる。
5)システム可用カウント中にnpageを追加する。
6)mmeアレイ自由リストをロック解除し、空きを供給
する。
する。
S/370記憶オープン 1)このプロセスのテーブル・エントリを見出し、pmp
境界上のその仮想記憶中に、MBのnブロックに十分な
大きさの穴を見付ける。その要求にサービスするのに十
分な配置されたmmeがあることを確認する。もし問題が
あるならエラーを返す。
境界上のその仮想記憶中に、MBのnブロックに十分な
大きさの穴を見付ける。その要求にサービスするのに十
分な配置されたmmeがあることを確認する。もし問題が
あるならエラーを返す。
2)もし必要なら、pmb及びapteのために、接続された
空間を割り振る。
空間を割り振る。
3)構造全体をセットアップする: mme連結及び接続済み mme.aptep->apte pme.aptep->apte 全てのフラグが適切にセットされた apte.ptep->pte 4)新しく構成されたpmbチェインをタスクのpmbチェイ
ンに結び付ける。
ンに結び付ける。
記憶クローズ 1)このプロセスのテーブル・エントリを見出し、$ope
n_storageによって構成されたpmbを見出す。もし何も見
付からないなら戻る。
n_storageによって構成されたpmbを見出す。もし何も見
付からないなら戻る。
2)これらのpmbをプロセスのpmbチェインから切り放
す。
す。
3)各apte毎に、実記憶マッピングをフォールトするた
めにsetup_ptwを呼び出す。
めにsetup_ptwを呼び出す。
4)OSに対して、pmbとapteのための連繋された空間
を返す。
を返す。
5)mmeを、記憶配置ルーチンに戻す。
空き獲得 1)give_take引数のアドレスを取得 2)もし空きを放棄するなら、ステップ7へ行く。
以下のステップは、空きを獲得する。
3)OSに、監視状態にある間に呼び出し側に戻らせる
トラップ13を実行。
トラップ13を実行。
4)ユーザー・スタック・アドレスを取得して、システ
ム・スタック・ポインタとスワップ 5)ユーザー・スタック・ポインタ中でシステム・スタ
ック・アドレスをセーブ 6)ユーザー・スタック上で監視モードにある呼び出し
側に戻る。
ム・スタック・ポインタとスワップ 5)ユーザー・スタック・ポインタ中でシステム・スタ
ック・アドレスをセーブ 6)ユーザー・スタック上で監視モードにある呼び出し
側に戻る。
以下のステップは、空きを放棄するものである。
7)セーブされたシステム・スタック・アドレスを戻
し、システム・スタック・ポインタへスワップする。
し、システム・スタック・ポインタへスワップする。
8)ユーザー・スタック・ポインタ中でシステム・スタ
ック・アドレスを置換 9)トラップ・ハンドラがステップ11へ戻るようにス
タックを変更 10)トラップ・ハンドラへ戻る。
ック・アドレスを置換 9)トラップ・ハンドラがステップ11へ戻るようにス
タックを変更 10)トラップ・ハンドラへ戻る。
11)トラップ・ハンドラがOSへ戻る。
12)ユーザー・スタック上でユーザー状態にある呼び
出し側に戻る。
出し側に戻る。
(5)mmeの選択されたストリングを自由リストから外
すこと FIRST MMEは、連鎖から外されるべきストリン
グ中の最初のmmeに関連し、ベースppnは、そのppn(物
理ページ番号)を含み、LAST MMEは、そのスト
リングの最後のmmeの関連する。もしFIRST MM
Eが自由リストの先頭にあるなら(その以前のmmeフィ
ールドは、ゼロに等しい)、自由リスト・ポインタは、
LAST MMEの次のmmeフィールドに等しくセット
される。こうして、LAST MMEに続くmmeは今や
自由リストの先頭にある。さもなければ、FIRST
MMEの以前のmmeの次のmmeフィールドがLAST M
MEの次のmmeフィールドに等しくセットされる。もし
LAST MMEに続くmme(その次のmmeフィールドは
ゼロではない)が存在するなら、LAST MMEに続
くmmeの以前のmmeフィールドがFIRST MMEのpr
ev mmeフィールドに等しくセットされる。
すこと FIRST MMEは、連鎖から外されるべきストリン
グ中の最初のmmeに関連し、ベースppnは、そのppn(物
理ページ番号)を含み、LAST MMEは、そのスト
リングの最後のmmeの関連する。もしFIRST MM
Eが自由リストの先頭にあるなら(その以前のmmeフィ
ールドは、ゼロに等しい)、自由リスト・ポインタは、
LAST MMEの次のmmeフィールドに等しくセット
される。こうして、LAST MMEに続くmmeは今や
自由リストの先頭にある。さもなければ、FIRST
MMEの以前のmmeの次のmmeフィールドがLAST M
MEの次のmmeフィールドに等しくセットされる。もし
LAST MMEに続くmme(その次のmmeフィールドは
ゼロではない)が存在するなら、LAST MMEに続
くmmeの以前のmmeフィールドがFIRST MMEのpr
ev mmeフィールドに等しくセットされる。
(6)STCIに対する記憶ベース及びサイズの書込み S/88 OSから記憶が「取得」された後、それは、
構成ファイルに記述された必要条件に従いS/370プ
ロセッサ間で区画される。構成アレイは、S/370プ
ロセッサのためのベースppn及びnブロックを含むS/
88カーネル記憶中に構築される。nブロックという用
語は、記憶の連続的なメガバイトを意味する。それは、
取得された(連鎖されていない)mmeの数を256で割
った値に等しい。各S/370プロセッサのためのEX
EC370タスクがその個々のS/88プロセッサ中が
開始される時、そのタスクは、STCIワードをアセン
ブルするために、対応するベースppn及びnブロックを
使用する。このワードは次に、(ローカル記憶210ア
ドレス空間中の)仮想アドレス007E01FCに書き
込まれ、S/88オペレーティング・システムに透過的
なSTCIレジスタ404及び405(第32B図)の
初期化を引き起こす。
構成ファイルに記述された必要条件に従いS/370プ
ロセッサ間で区画される。構成アレイは、S/370プ
ロセッサのためのベースppn及びnブロックを含むS/
88カーネル記憶中に構築される。nブロックという用
語は、記憶の連続的なメガバイトを意味する。それは、
取得された(連鎖されていない)mmeの数を256で割
った値に等しい。各S/370プロセッサのためのEX
EC370タスクがその個々のS/88プロセッサ中が
開始される時、そのタスクは、STCIワードをアセン
ブルするために、対応するベースppn及びnブロックを
使用する。このワードは次に、(ローカル記憶210ア
ドレス空間中の)仮想アドレス007E01FCに書き
込まれ、S/88オペレーティング・システムに透過的
なSTCIレジスタ404及び405(第32B図)の
初期化を引き起こす。
第19A図及び第20図に関連して以前に説明した切り
放し機構216及びBCUインターフェース論理253
は、レジスタ404及び405を初期化するために使用
される。
放し機構216及びBCUインターフェース論理253
は、レジスタ404及び405を初期化するために使用
される。
しかし、好適な実施例では、第32B図に示すように、
レジスタ404、405は、(BCUローカル・データ
・バス223に接続されるのではなくて)直接S/88
プロセッサ・データ・バス161Dに接続される。論理
216のデコード論理280は、S/88ハードウェア
からASをブロックしDSACKをプロセッサ62に戻
すために上記仮想アドレスをデコードする。レジスタ4
04、405は、STCI選択線458を介して論理2
53からイネーブルされる。STCIワードのビット2
7−20は、STCI「ベース」アドレスを形成し、ビ
ット23−20は、S/370記憶「サイズ」値を形成
する。ビット19−0はゼロである。
レジスタ404、405は、(BCUローカル・データ
・バス223に接続されるのではなくて)直接S/88
プロセッサ・データ・バス161Dに接続される。論理
216のデコード論理280は、S/88ハードウェア
からASをブロックしDSACKをプロセッサ62に戻
すために上記仮想アドレスをデコードする。レジスタ4
04、405は、STCI選択線458を介して論理2
53からイネーブルされる。STCIワードのビット2
7−20は、STCI「ベース」アドレスを形成し、ビ
ット23−20は、S/370記憶「サイズ」値を形成
する。ビット19−0はゼロである。
E24.S/370によって開始されるS/88割り込
みのための初期化機能 S/88オペレーティング・システムの知識なくS/8
8中に在駐するS/370割り込みハンドラ・マイクロ
コードにS/370割り込みを指向するためのさまざま
なシナリオがある。以下その3つを説明する。
みのための初期化機能 S/88オペレーティング・システムの知識なくS/8
8中に在駐するS/370割り込みハンドラ・マイクロ
コードにS/370割り込みを指向するためのさまざま
なシナリオがある。以下その3つを説明する。
第1の方法は、S/370割り込みハンドラをS/88
オペレーティング・システム第1レベル割り込みハンド
ラに、そのオブジェクト・モジュールの一部としてアセ
ンブルされるように挿入することによって、S/88オ
ペレーティング・システム・カーネルを変更するもので
ある。割り込みベクタのテーブルは、割り込みハンドラ
・アセンブリ・ソース中に含まれ、そのベクタは、ソー
ス中で、S/370割り込みハンドラ・コードを指し示
すように変更される。
オペレーティング・システム第1レベル割り込みハンド
ラに、そのオブジェクト・モジュールの一部としてアセ
ンブルされるように挿入することによって、S/88オ
ペレーティング・システム・カーネルを変更するもので
ある。割り込みベクタのテーブルは、割り込みハンドラ
・アセンブリ・ソース中に含まれ、そのベクタは、ソー
ス中で、S/370割り込みハンドラ・コードを指し示
すように変更される。
この方法は、次のようなS/88アーキテクチャの方法
とは著しく異なる。
とは著しく異なる。
1)割り込みする各装置は、S/88オペレーティング
・システムに対して、その装置と、そのパス名と、ボー
ド・アドレスを識別するファイル中に記入されなくては
ならない。
・システムに対して、その装置と、そのパス名と、ボー
ド・アドレスを識別するファイル中に記入されなくては
ならない。
2)第1レベルの割り込みハンドラが割り込みを受領す
る時、それは、適当なフォーマットされたスタックをセ
ットアップし、全てのマシン状況とレジスタをセーブ
し、割り込みの有効性を検証し、その割り込みを、開発
者が特別に書いた装置割り込みコードを呼び出す「第2
レベルの」割り込みハンドラに渡す。
る時、それは、適当なフォーマットされたスタックをセ
ットアップし、全てのマシン状況とレジスタをセーブ
し、割り込みの有効性を検証し、その割り込みを、開発
者が特別に書いた装置割り込みコードを呼び出す「第2
レベルの」割り込みハンドラに渡す。
3)その割り込みコードが完了した時、その割り込みコ
ードは回復環境を扱うオペレーティング・システム割り
込みハンドラに制御を渡す。
ードは回復環境を扱うオペレーティング・システム割り
込みハンドラに制御を渡す。
上記第1の方法は、これを全て回避する。S/370割
り込みベクタをS/370割り込みルーチンを指し示す
ようにアセンブリすることによって、S/88オペレー
ティング・システムによって実行される通常の割り込み
処理の全てを回避し、装置ファイルを介してS/370
を識別する必要はないのである。これは実際は、ハード
ウェアの代わりにコードが修正されているので、ソフト
ウェア切り放しである。この第1の方法は、所望の割り
込み機能を達成するためには最も迅速で最も安価な方法
である。しかし、この方法は、S/88オペレーティン
グ・システムのその後のリリース毎に追加的なメンテナ
ンスを要することになる。少なくともそれは、カーネル
の結び付けを必要とし、もし割り込みハンドラが変更さ
れたならS/370コードは再挿入され、割り込みハン
ドラは再アセンブルされなくてはならない。
り込みベクタをS/370割り込みルーチンを指し示す
ようにアセンブリすることによって、S/88オペレー
ティング・システムによって実行される通常の割り込み
処理の全てを回避し、装置ファイルを介してS/370
を識別する必要はないのである。これは実際は、ハード
ウェアの代わりにコードが修正されているので、ソフト
ウェア切り放しである。この第1の方法は、所望の割り
込み機能を達成するためには最も迅速で最も安価な方法
である。しかし、この方法は、S/88オペレーティン
グ・システムのその後のリリース毎に追加的なメンテナ
ンスを要することになる。少なくともそれは、カーネル
の結び付けを必要とし、もし割り込みハンドラが変更さ
れたならS/370コードは再挿入され、割り込みハン
ドラは再アセンブルされなくてはならない。
第1の方法は、システム・ブート後のオペレーティング
・システム割り込みハンドラの変更に関連する。第20
図のハードウェア割り込み機構の説明に関連して使用さ
れることが意図されているのがこの方法である。
・システム割り込みハンドラの変更に関連する。第20
図のハードウェア割り込み機構の説明に関連して使用さ
れることが意図されているのがこの方法である。
この第2の方法は、S/370割り込みコードをS/8
8オペレーティング・システム仮想アドレス空間に(好
適な実施例では007E0000の直後に)配置するこ
とと、オペレーティング・システム・カーネル割り込み
ハンドラ中の適当な割り込みベクタの変更を要する。こ
の作業は、オペレーティング・システムが初期化された
後S/370初期化ルーチンによって行なわれる(同時
に、S/370初期化ルーチンが記憶を「取得」する。
初期化ルーチンは、S/88オペレーティング・システ
ム・カーネル記憶領域を変更しているので、それは、前
記説明で記憶を「取得」するために示された様式で「空
きを獲得」する必要がある。この第2の方法は、S/8
8オペレーティング・システム・カーネルが新しくリリ
ースされる毎にメンテナンス修正を行う必要はない。し
かし、S/370割り込みは、S/88オペレーティン
グ・システムが立ち上がって走る後でなければ機能しな
い。
8オペレーティング・システム仮想アドレス空間に(好
適な実施例では007E0000の直後に)配置するこ
とと、オペレーティング・システム・カーネル割り込み
ハンドラ中の適当な割り込みベクタの変更を要する。こ
の作業は、オペレーティング・システムが初期化された
後S/370初期化ルーチンによって行なわれる(同時
に、S/370初期化ルーチンが記憶を「取得」する。
初期化ルーチンは、S/88オペレーティング・システ
ム・カーネル記憶領域を変更しているので、それは、前
記説明で記憶を「取得」するために示された様式で「空
きを獲得」する必要がある。この第2の方法は、S/8
8オペレーティング・システム・カーネルが新しくリリ
ースされる毎にメンテナンス修正を行う必要はない。し
かし、S/370割り込みは、S/88オペレーティン
グ・システムが立ち上がって走る後でなければ機能しな
い。
第3の方法は、割り込みベクタ内容のハードウェア提供
であり、これは、S/88オペレーティング・システム
・カーネルの変更が必要でない、すなわち、ベクタ・テ
ーブルで変更がなされないため好適な代替方法である。
であり、これは、S/88オペレーティング・システム
・カーネルの変更が必要でない、すなわち、ベクタ・テ
ーブルで変更がなされないため好適な代替方法である。
この第3の方法は、S/370割り込みルーチンを既知
の読み取り専用記憶(ROS)アドレスとしてS/88
オペレーティング・システム仮想アドレスまたはBCU
ローカル記憶中に配置することを要する。その割り込み
ルーチン・アドレスは、S/370ハードウェアに対し
て、好適にはROS中で可用でなくてはならない。この
方法を説明するために次のようなシナリオを提示してみ
る。
の読み取り専用記憶(ROS)アドレスとしてS/88
オペレーティング・システム仮想アドレスまたはBCU
ローカル記憶中に配置することを要する。その割り込み
ルーチン・アドレスは、S/370ハードウェアに対し
て、好適にはROS中で可用でなくてはならない。この
方法を説明するために次のようなシナリオを提示してみ
る。
1)S/370(例えば、BCU156中のDMAC2
09)が割り込み要求を活動化する。
09)が割り込み要求を活動化する。
2)S/88プロセッサ・ユニット62が割り込み肯定
応答、データ・ストローブ、及びアドレス・ストローブ
を活動化する。
応答、データ・ストローブ、及びアドレス・ストローブ
を活動化する。
3)BCUがデータ・バス223上に割り込みベクタ番
号(これは、分かりやすくするため全てゼロでもよい
し、ROSベクタ空間中へのオフセットでもよい)を配
置し、データ・ストローブ肯定応答を活動化する。この
ベクタ番号は、有効パリティの場合の除き、プロセッサ
62に対しては影響を及ぼさない。
号(これは、分かりやすくするため全てゼロでもよい
し、ROSベクタ空間中へのオフセットでもよい)を配
置し、データ・ストローブ肯定応答を活動化する。この
ベクタ番号は、有効パリティの場合の除き、プロセッサ
62に対しては影響を及ぼさない。
4)結局、プロセッサ62は4バイト割り込みベクタを
入手するために記憶読取サイクルを実行することにな
る。
入手するために記憶読取サイクルを実行することにな
る。
5)BCUは、(仮想アドレスによって)この特定記憶
アクセスを認識し、プロセッサ62を記憶のアクセスか
ら切り放し、(S/370 ROSからゲートされた)
自己の4バイト割り込みベクタを提供する。S/370
ROSは、DMACに対して複数の、必要な数だけの
ベクタと、ROSボード同期化などを含む。
アクセスを認識し、プロセッサ62を記憶のアクセスか
ら切り放し、(S/370 ROSからゲートされた)
自己の4バイト割り込みベクタを提供する。S/370
ROSは、DMACに対して複数の、必要な数だけの
ベクタと、ROSボード同期化などを含む。
この方法は、S/370ハードウェアを同期化するなど
の目的でボード同期化の間の切り放しを可能ならしめる
が、追加のハードウェアを必要とする。
の目的でボード同期化の間の切り放しを可能ならしめる
が、追加のハードウェアを必要とする。
E25.S/88オペレーティング・システムを変更す
ることなく空きを獲得すること アプリケーション・プログラムが空きを獲得する、すな
わち監視状態を得る方法を記述する「S/370サービ
ス・ルーチン開始」における方法が上記で与えられた。
これは、S/88オペレーティング・システム・カーネ
ルに追加すべき特殊にOSサービス・コール「トラップ
13命令」ルーチンを書き込むことに関与する。
ることなく空きを獲得すること アプリケーション・プログラムが空きを獲得する、すな
わち監視状態を得る方法を記述する「S/370サービ
ス・ルーチン開始」における方法が上記で与えられた。
これは、S/88オペレーティング・システム・カーネ
ルに追加すべき特殊にOSサービス・コール「トラップ
13命令」ルーチンを書き込むことに関与する。
このトラップ13割り込みルーチンは、そのトラップ命
令の直ぐ後に続く位置でトラップを発行するプログラム
を「呼び出す」だけのものである。トラップ割り込みル
ーチンは、監視状態にあるので、そのプログラムは、監
視状態に変わることになる。アプリケーション・プログ
ラム状態を再び得るには、アプリケーション・プログラ
ムは、割り込みスタック戻りアドレスを変更してトラッ
プ13コールから、変更された割り込みスタック・アド
レスを使用して割り込みから脱出するトラップ13割り
込みコードへと戻る。この方法は、S/88オペレーテ
ィング・システムに割り込みルーチンを追加することに
係わる。
令の直ぐ後に続く位置でトラップを発行するプログラム
を「呼び出す」だけのものである。トラップ割り込みル
ーチンは、監視状態にあるので、そのプログラムは、監
視状態に変わることになる。アプリケーション・プログ
ラム状態を再び得るには、アプリケーション・プログラ
ムは、割り込みスタック戻りアドレスを変更してトラッ
プ13コールから、変更された割り込みスタック・アド
レスを使用して割り込みから脱出するトラップ13割り
込みコードへと戻る。この方法は、S/88オペレーテ
ィング・システムに割り込みルーチンを追加することに
係わる。
第2の方法は、当該OSの変更を行わない。特殊レジス
タ(図示しない)がBCU制御記憶アドレス空間中に決
定され、それは、アプリケーション・プログラムによっ
て書き込まれた時に、上記割り込みを実現するための第
3の方法を使用して新しいBCU割り込みを引き起こ
す。アプリケーション割り込みルーチンは、BCU読取
専用記憶(図示しない)に在駐させられ、トラップ13
コードと同様に機能する。前に説明した空き獲得ルーチ
ンは、トラップ13命令を発行する代わりにBCU特殊
レジスタに書込みを行うことを除けば、全く同一に機能
する。
タ(図示しない)がBCU制御記憶アドレス空間中に決
定され、それは、アプリケーション・プログラムによっ
て書き込まれた時に、上記割り込みを実現するための第
3の方法を使用して新しいBCU割り込みを引き起こ
す。アプリケーション割り込みルーチンは、BCU読取
専用記憶(図示しない)に在駐させられ、トラップ13
コードと同様に機能する。前に説明した空き獲得ルーチ
ンは、トラップ13命令を発行する代わりにBCU特殊
レジスタに書込みを行うことを除けば、全く同一に機能
する。
E26.S/88オペレーティング・システムを変更す
ることなく記憶を獲得(STEAL)すること この第2の空き獲得実現構成を利用することによって、
「記憶の獲得」は、S/88ソース・コードの再アセン
ブリやS/88オペレーティング・システム・カーネル
の結合を必要としない。自由リストの先頭のアドレス
は、アプリケーション・プログラムに可用である。
ることなく記憶を獲得(STEAL)すること この第2の空き獲得実現構成を利用することによって、
「記憶の獲得」は、S/88ソース・コードの再アセン
ブリやS/88オペレーティング・システム・カーネル
の結合を必要としない。自由リストの先頭のアドレス
は、アプリケーション・プログラムに可用である。
さて、第49図及び第50図を参照して、単一化された
及び組のユニット21、23の電源投入及び同期化につ
いて説明する(S/88プロセッサ・ユニットは、S/
370プロセッサ・ユニットのためのサービス・プロセ
ッサの役目を果たす)。
及び組のユニット21、23の電源投入及び同期化につ
いて説明する(S/88プロセッサ・ユニットは、S/
370プロセッサ・ユニットのためのサービス・プロセ
ッサの役目を果たす)。
(1)序論 この章は、第49図及び第50図を参照して、第7図の
組みユニット21、23などの同期についてその状態を
決定し、制御しその環境をセットするハードウェア・レ
ジスタ、ラッチ、及び論理を手短に説明するものであ
る。
組みユニット21、23などの同期についてその状態を
決定し、制御しその環境をセットするハードウェア・レ
ジスタ、ラッチ、及び論理を手短に説明するものであ
る。
さらに、単一化された及び組のユニットの初期化、同期
化及び再初期化を達成するためのマイクロコード機能に
ついて説明する。先ず、単一化および組の環境の両方に
おいて、実質的にS/88プロセッサ・ユニットの初期
化及び同期化なく機能するS/88(好適な実施例)に
注目する。この動作方法は、手短にだけ説明する。さら
に、米国特許第4453215号の関連部分の説明につ
いてもここで繰り返す。
化及び再初期化を達成するためのマイクロコード機能に
ついて説明する。先ず、単一化および組の環境の両方に
おいて、実質的にS/88プロセッサ・ユニットの初期
化及び同期化なく機能するS/88(好適な実施例)に
注目する。この動作方法は、手短にだけ説明する。さら
に、米国特許第4453215号の関連部分の説明につ
いてもここで繰り返す。
エラー・チェックは、ユニット21の各S/88プロセ
ッサ要素60、62(第8図)がAバス42及びBバス
44を駆動するのと同時に実行される。この同時的動作
は、バス構造を駆動する前にエラー・チェックを実現す
るプロセッサ・モジュール9中のI/Oユニットと対照
的である。プロセッサ・ユニット21は、システムのス
ループットにはいかなる動作の遅延も望ましくないよう
にタイミングが十分に重要であるため、このように動作
する。プロセッサ・ユニットがバス構造を駆動している
期間のチェック論理によって知らせられたエラーは、そ
のユニットをして、システム・クロックの次のフェーズ
の間に、Aバス・エラー信号及びBバス・エラー信号の
両方をXバス46上に駆動させる。
ッサ要素60、62(第8図)がAバス42及びBバス
44を駆動するのと同時に実行される。この同時的動作
は、バス構造を駆動する前にエラー・チェックを実現す
るプロセッサ・モジュール9中のI/Oユニットと対照
的である。プロセッサ・ユニット21は、システムのス
ループットにはいかなる動作の遅延も望ましくないよう
にタイミングが十分に重要であるため、このように動作
する。プロセッサ・ユニットがバス構造を駆動している
期間のチェック論理によって知らせられたエラーは、そ
のユニットをして、システム・クロックの次のフェーズ
の間に、Aバス・エラー信号及びBバス・エラー信号の
両方をXバス46上に駆動させる。
その同一の時間フェーズの間に、障害中央処理装置(例
えば参照番号21)は、レベル1保守割り込みをXバス
46上に駆動し、それを、相手中央処理装置(例えば、
参照番号23)が受け取る。その時間フェーズの終り
に、障害装置は切り放され、相手装置からの問い合わせ
に応答する以外はバス構造上にさらに信号を駆動するこ
とができなくなる。この自動的切り放し動作は、Aバス
またはBバス上のアドレスまたはデータのどちらかでエ
ラーが検出された期間に、制御ユニットを通じてメモリ
・ユニット16、18と周辺装置のどちらになされるも
のであれ、読取または書込サイクルの取り消しを保証す
る。さらに、その同一の動作サイクルの間のデータ転送
は、相手障害中央処理装置のみを使用して反復される。
えば参照番号21)は、レベル1保守割り込みをXバス
46上に駆動し、それを、相手中央処理装置(例えば、
参照番号23)が受け取る。その時間フェーズの終り
に、障害装置は切り放され、相手装置からの問い合わせ
に応答する以外はバス構造上にさらに信号を駆動するこ
とができなくなる。この自動的切り放し動作は、Aバス
またはBバス上のアドレスまたはデータのどちらかでエ
ラーが検出された期間に、制御ユニットを通じてメモリ
・ユニット16、18と周辺装置のどちらになされるも
のであれ、読取または書込サイクルの取り消しを保証す
る。さらに、その同一の動作サイクルの間のデータ転送
は、相手障害中央処理装置のみを使用して反復される。
より詳しく述べると、比較器12fは、処理区画12a
がAバス42から受け取る入力データを、処理区画12
bがBバス上で受け取る入力データと比較する。それは
また、処理区画12aがトランシーバに印加する機能、
アドレス及びデータ信号(パリティを含む)を、処理区
画12bが発生する対応信号と比較する。区画12aの
タイミング及び制御信号は、区画12bからの対応信号
と比較される。内部制御信号のこの比較は、プロセッサ
要素60、62の内部動作をチェックし、障害の迅速な
検出を可能ならしめ、プロセッサ・ユニットの診断及び
保守に有用である。
がAバス42から受け取る入力データを、処理区画12
bがBバス上で受け取る入力データと比較する。それは
また、処理区画12aがトランシーバに印加する機能、
アドレス及びデータ信号(パリティを含む)を、処理区
画12bが発生する対応信号と比較する。区画12aの
タイミング及び制御信号は、区画12bからの対応信号
と比較される。内部制御信号のこの比較は、プロセッサ
要素60、62の内部動作をチェックし、障害の迅速な
検出を可能ならしめ、プロセッサ・ユニットの診断及び
保守に有用である。
比較器12fに対する1つまたはそれ以上の対応入力信
号が異なる任意の時点で、比較器は、制御段86に印加
される比較エラー信号を発生する。そのエラーは、デー
タ入来エラー、データ外出エラー、機能エラーまたはア
ドレス・エラーの結果である。それはまた、異なるタイ
ミングまたは制御信号に起因するサイクル・エラーまた
は制御エラーでもあり得る。パリティ・チェック回路に
よるエラーの検出は、制御段86に印加されるパリティ
・エラー信号を発生する。制御段86はその比較無効信
号に応答して、次のクロック・フェーズ(N+1)でプ
ロセッサ・エラー信号を発生する。この動作に対する1
つの例外は、比較無効信号が読取動作の間の入力データ
信号の無効比較による場合に生じる。その場合、制御段
86は、次のタイミング・フェーズに関してバス・エラ
ー信号が発生されない場合にのみプロセッサ・エラー信
号を発生する。バス・エラー信号は、バス構造30にお
ける障害条件を示し、それゆえ、入力データの無効比較
が、処理区画12aまたは12bではなく、バス構造3
0のAバスまたはBバス部分の障害の結果であったこと
を識別するものである。
号が異なる任意の時点で、比較器は、制御段86に印加
される比較エラー信号を発生する。そのエラーは、デー
タ入来エラー、データ外出エラー、機能エラーまたはア
ドレス・エラーの結果である。それはまた、異なるタイ
ミングまたは制御信号に起因するサイクル・エラーまた
は制御エラーでもあり得る。パリティ・チェック回路に
よるエラーの検出は、制御段86に印加されるパリティ
・エラー信号を発生する。制御段86はその比較無効信
号に応答して、次のクロック・フェーズ(N+1)でプ
ロセッサ・エラー信号を発生する。この動作に対する1
つの例外は、比較無効信号が読取動作の間の入力データ
信号の無効比較による場合に生じる。その場合、制御段
86は、次のタイミング・フェーズに関してバス・エラ
ー信号が発生されない場合にのみプロセッサ・エラー信
号を発生する。バス・エラー信号は、バス構造30にお
ける障害条件を示し、それゆえ、入力データの無効比較
が、処理区画12aまたは12bではなく、バス構造3
0のAバスまたはBバス部分の障害の結果であったこと
を識別するものである。
プロセッサ・エラー信号の1つの機能は、論理回路をデ
ィスエーブルし以てユニット21の処理区画12中の全
ての動作を実質的に停止することにある。さらに、モジ
ュール9中の全てのユニットに、直前のフェーズの間に
バス上に配置された情報を無視するように、例えば、C
PUバス転送を無視するように通知するために、Aバス
・エラー信号とBバス・エラー信号がXバス46に印加
される。Xバス46には、相手のプロセッサ・ユニット
23に、モジュール中のあるユニットが障害発生エラー
を検出したことを通知するために、レベル1割り込み信
号が印加される。
ィスエーブルし以てユニット21の処理区画12中の全
ての動作を実質的に停止することにある。さらに、モジ
ュール9中の全てのユニットに、直前のフェーズの間に
バス上に配置された情報を無視するように、例えば、C
PUバス転送を無視するように通知するために、Aバス
・エラー信号とBバス・エラー信号がXバス46に印加
される。Xバス46には、相手のプロセッサ・ユニット
23に、モジュール中のあるユニットが障害発生エラー
を検出したことを通知するために、レベル1割り込み信
号が印加される。
フェーズ(N+2)の開始時点で、依然として障害信号
に応答する段86は、能動的なバス・マスタ状況を終了
させる。この動作は、バス・エラー信号の終了によって
達成される。処理区画12がマスタ状態から切り替わっ
た時、それは、トランシーバ中の全てのバス・ドライバ
をディスエーブルする。S/370トランシーバ13も
また、トランシーバ12eのドライバがディスエーブル
されるときはいつでも共通制御75を介してディスエー
ブルされる。
に応答する段86は、能動的なバス・マスタ状況を終了
させる。この動作は、バス・エラー信号の終了によって
達成される。処理区画12がマスタ状態から切り替わっ
た時、それは、トランシーバ中の全てのバス・ドライバ
をディスエーブルする。S/370トランシーバ13も
また、トランシーバ12eのドライバがディスエーブル
されるときはいつでも共通制御75を介してディスエー
ブルされる。
同様に、プロセッサ・エラー信号がユニット21の制御
段75によって発生される時、制御段86を介するトラ
ンシーバ12eと、トランシーバ13もまたディスエー
ブルされる。
段75によって発生される時、制御段86を介するトラ
ンシーバ12eと、トランシーバ13もまたディスエー
ブルされる。
こうして、プロセッサ・ユニット21、23は、マスタ
状態にあるときのみ、ドライバに印加されるバス・イネ
ーブル信号を発生するための必要に応じて、バス構造を
駆動することができる。プロセッサ・エラー信号は迅速
に、すなわち、次のタイミング・フェーズの終了時点
で、マスタ状況をターンオフする。ユニット21の処理
区画12がプロセッサ・エラー信号を発生する場合、相
手ユニット23のS/88処理区画は、実質的に割り込
みなしで動作を続ける。プロセッサ・エラー信号が書込
動作の間に発生した時、相手処理ユニット23はそのデ
ータ転送を繰り返す。読取動作の間にプロセッサ・エラ
ーが生じた場合、相手ユニットはメモリが後のタイミン
グ・フェーズでバス構造に印加する反復されたデータを
読み込む。
状態にあるときのみ、ドライバに印加されるバス・イネ
ーブル信号を発生するための必要に応じて、バス構造を
駆動することができる。プロセッサ・エラー信号は迅速
に、すなわち、次のタイミング・フェーズの終了時点
で、マスタ状況をターンオフする。ユニット21の処理
区画12がプロセッサ・エラー信号を発生する場合、相
手ユニット23のS/88処理区画は、実質的に割り込
みなしで動作を続ける。プロセッサ・エラー信号が書込
動作の間に発生した時、相手処理ユニット23はそのデ
ータ転送を繰り返す。読取動作の間にプロセッサ・エラ
ーが生じた場合、相手ユニットはメモリが後のタイミン
グ・フェーズでバス構造に印加する反復されたデータを
読み込む。
さらに、相手ユニット23は、診断ルーチンを開始する
ために、低優先順位割り込みであるレベル1割り込みに
応答する。プロセッサ・エラーの原因が過渡的な現象で
あるように見える場合、すなわち、診断ルーチンが何ら
かの障害またはエラー条件を識別しないとき、プロセッ
サ・ユニット21は保守することなく動作へと復元する
ことができる。好適な実施例では、過渡的な障害の発生
は記録され、もしそれが任意に定めた回数繰り返すな
ら、そのプロセッサ・ユニットはさらに診断することな
くサービスまたは動作から電気的に離隔される。
ために、低優先順位割り込みであるレベル1割り込みに
応答する。プロセッサ・エラーの原因が過渡的な現象で
あるように見える場合、すなわち、診断ルーチンが何ら
かの障害またはエラー条件を識別しないとき、プロセッ
サ・ユニット21は保守することなく動作へと復元する
ことができる。好適な実施例では、過渡的な障害の発生
は記録され、もしそれが任意に定めた回数繰り返すな
ら、そのプロセッサ・ユニットはさらに診断することな
くサービスまたは動作から電気的に離隔される。
ユニット21、23の各処理区画12は、2つの組みユ
ニットをロックステップ同期させるために、典型的には
プロセッサ状況及び制御段86にある論理回路を含む。
区画12は、マスタ状況への遷移でロックステップ同期
化を達成する。各区画12は、信号をバス構造に駆動す
るためにはマスタ状態になくてはならない。各PROM
181に記憶された初期化シーケンスは典型的には組み
区画を同期化させ、どちらの処理区画も初期的にはマス
タ状態にない、すなわちターン・オンされていないよう
にすることを保証するための命令を含む。
ニットをロックステップ同期させるために、典型的には
プロセッサ状況及び制御段86にある論理回路を含む。
区画12は、マスタ状況への遷移でロックステップ同期
化を達成する。各区画12は、信号をバス構造に駆動す
るためにはマスタ状態になくてはならない。各PROM
181に記憶された初期化シーケンスは典型的には組み
区画を同期化させ、どちらの処理区画も初期的にはマス
タ状態にない、すなわちターン・オンされていないよう
にすることを保証するための命令を含む。
ユニット21、23の処理区画は、初期化シーケンスで
は初期的には同期しておらず、一方がマスタ状態を達成
する前の多重フェーズ・サイクルの間に、他方のユニッ
トがマスタ状態を達成する。マスタ状態を獲得する一方
のユニットは、他方のユニットを選択した時点でマスタ
状態に持ってくるために、他方のユニットの動作のさら
なる初期化を制御する。
は初期的には同期しておらず、一方がマスタ状態を達成
する前の多重フェーズ・サイクルの間に、他方のユニッ
トがマスタ状態を達成する。マスタ状態を獲得する一方
のユニットは、他方のユニットを選択した時点でマスタ
状態に持ってくるために、他方のユニットの動作のさら
なる初期化を制御する。
ユニット21の処理区画12が初期化されるとき、それ
は内部エラー・チェック信号を打ち消し、以てパリティ
無効信号または比較無効信号がプロセッサ・ホールド信
号を発生するのを防止する。そのかわりに、区画12は
典型的にはPROM181に記憶されているテスト・ル
ーチンを実行する。このテスト・ルーチンは、プロセッ
サ・エラー信号をもたらし得るあらゆる条件に対処する
ものである。めいめいの可能的な障害条件が生成される
とき、処理区画は、対応する障害報告信号が実際に発生
されたかどうかを調べるためにテストする。以て、エラ
ー・チェック信号が存在しないことは、そのプロセッサ
・ユニットがマスタ状態を達成することを禁止し、その
結果、この論理実行ルーチンの間に発生された障害がそ
のプロセッサ・ユニットを停止させず、バス構造30に
報告されない。PROM181中のテスト・ルーチン
は、エラー・チェック信号を確認して、そのプロセッサ
をして、このチェック・ルーチンの成功裡の完了のとき
のみマスタ状態をとることを可能ならしめる。
は内部エラー・チェック信号を打ち消し、以てパリティ
無効信号または比較無効信号がプロセッサ・ホールド信
号を発生するのを防止する。そのかわりに、区画12は
典型的にはPROM181に記憶されているテスト・ル
ーチンを実行する。このテスト・ルーチンは、プロセッ
サ・エラー信号をもたらし得るあらゆる条件に対処する
ものである。めいめいの可能的な障害条件が生成される
とき、処理区画は、対応する障害報告信号が実際に発生
されたかどうかを調べるためにテストする。以て、エラ
ー・チェック信号が存在しないことは、そのプロセッサ
・ユニットがマスタ状態を達成することを禁止し、その
結果、この論理実行ルーチンの間に発生された障害がそ
のプロセッサ・ユニットを停止させず、バス構造30に
報告されない。PROM181中のテスト・ルーチン
は、エラー・チェック信号を確認して、そのプロセッサ
をして、このチェック・ルーチンの成功裡の完了のとき
のみマスタ状態をとることを可能ならしめる。
S/370プロセッサ・ユニット(好適な実施例)は、
典型的には、各チップ中のさまざまの要素及び論理に対
する「裏口」のアクセスを介しての初期化及びサービス
・プロセッサ機能に対処するハードウェアをもつ。これ
らはよく知られているので、簡単に説明するにとどめ
る。
典型的には、各チップ中のさまざまの要素及び論理に対
する「裏口」のアクセスを介しての初期化及びサービス
・プロセッサ機能に対処するハードウェアをもつ。これ
らはよく知られているので、簡単に説明するにとどめ
る。
同様に、自己テスト及び初期化のためのプログラム・ル
ーチンもよく知られており、詳細な説明の要はあるま
い。この章で強調されるのは、S/370またはS/8
8オペレーティング・システムに変更を気づかせること
なく典型的なS/370自己テスト及び初期化がS/8
8を介して達成されるところの機構である。S/370
のための自己テスト初期化ルーチン(STIR)は、好
適な実施例では、組みユニットのS/370処理要素を
同期化させるためのルーチンとともにPROM181
(第19C図)中に配置される。それゆえ、S/88
は、S/370サービス・プロセッサとして機能する。
PROM181中のS/88コードの記憶マップされた
I/O割り振りは、あるS/88状況または別のレジス
タ内容がS/370コードの実現に必要である場合に与
えられる。
ーチンもよく知られており、詳細な説明の要はあるま
い。この章で強調されるのは、S/370またはS/8
8オペレーティング・システムに変更を気づかせること
なく典型的なS/370自己テスト及び初期化がS/8
8を介して達成されるところの機構である。S/370
のための自己テスト初期化ルーチン(STIR)は、好
適な実施例では、組みユニットのS/370処理要素を
同期化させるためのルーチンとともにPROM181
(第19C図)中に配置される。それゆえ、S/88
は、S/370サービス・プロセッサとして機能する。
PROM181中のS/88コードの記憶マップされた
I/O割り振りは、あるS/88状況または別のレジス
タ内容がS/370コードの実現に必要である場合に与
えられる。
このコードが同期化へと向かう様式は、1次(またはマ
スター)相手プロセッサ・ユニット21など(適正に動
作しているもの)内のレジスタ・セットの記憶マップ・
コピーを、2次(またはスレーブ)相手プロセッサ・ユ
ニット23など(まだ適正に動作していないもの)内の
レジスタ・セットに転送することである。
スター)相手プロセッサ・ユニット21など(適正に動
作しているもの)内のレジスタ・セットの記憶マップ・
コピーを、2次(またはスレーブ)相手プロセッサ・ユ
ニット23など(まだ適正に動作していないもの)内の
レジスタ・セットに転送することである。
同期化機構のためのS/88からS/370への結合経
路の詳細を説明する前に、第7図のモジュール9の構造
及び環境について簡単に言及しておく。S/88オペレ
ーティング・システムの、フォールト・トレランス及び
単一システム・イメージなどの特徴は、S/88及びS
/370の両方の構造に与えられる。モジュール9は、
参照番号21などの単一化されたS/370プロセッサ
・ユニットまたは参照番号21、23などの組のS/3
70プロセッサ・ユニット対からなる。参照番号12、
または12、14などの単一または組のS/88ユニッ
トは、S/88プログラムのみを実行するためにモジュ
ール中に含めることができる。
路の詳細を説明する前に、第7図のモジュール9の構造
及び環境について簡単に言及しておく。S/88オペレ
ーティング・システムの、フォールト・トレランス及び
単一システム・イメージなどの特徴は、S/88及びS
/370の両方の構造に与えられる。モジュール9は、
参照番号21などの単一化されたS/370プロセッサ
・ユニットまたは参照番号21、23などの組のS/3
70プロセッサ・ユニット対からなる。参照番号12、
または12、14などの単一または組のS/88ユニッ
トは、S/88プログラムのみを実行するためにモジュ
ール中に含めることができる。
各S/370処理ユニットは、第7図に示すように、参
照番号85、87などのS/370プロセッサ要素の対
と、参照番号62、64などのS/88プロセッサ要素
対を含み、それらのプロセッサ要素対が単一の論理処理
ユニットとしてロックステップで動作する。組みのユニ
ットは、完全にフォールト・トレラントで自己チェック
論理処理ユニットを与えるように互いにロックステップ
で動作する冗長デザインを形成する。
照番号85、87などのS/370プロセッサ要素の対
と、参照番号62、64などのS/88プロセッサ要素
対を含み、それらのプロセッサ要素対が単一の論理処理
ユニットとしてロックステップで動作する。組みのユニ
ットは、完全にフォールト・トレラントで自己チェック
論理処理ユニットを与えるように互いにロックステップ
で動作する冗長デザインを形成する。
対のS/370プロセッサ要素85、87のおのおの
は、部分的に、参照番号150(第11図)のようなS
/370チップ・セットである。S/370チップ・セ
ットとその関連ハードウェアは、S/88バス構造30
との結合のため参照番号101(第9A図)のようなS
/88スイタルのボードに取り付けられる。この章で
は、参照番号21のような1つの処理ユニット中のS/
370チップ・セット対は、S/370エンティティと
呼ばれ、参照番号60、62などの対応S/88プロセ
ッサ要素とその関連ハードウェアは、S/88エンティ
ティと呼ばれる。S/370エンティティは、S/37
0アプリケーション・プログラムを実行し、必要に応じ
て、S/88とS/370のどちらのオペレーティング
・システムも互いに気づかないように、S/88 I/
O装置及びプログラムを利用するS/370 I/O動
作を実行するためにS/88エンティティを訪れる。
は、部分的に、参照番号150(第11図)のようなS
/370チップ・セットである。S/370チップ・セ
ットとその関連ハードウェアは、S/88バス構造30
との結合のため参照番号101(第9A図)のようなS
/88スイタルのボードに取り付けられる。この章で
は、参照番号21のような1つの処理ユニット中のS/
370チップ・セット対は、S/370エンティティと
呼ばれ、参照番号60、62などの対応S/88プロセ
ッサ要素とその関連ハードウェアは、S/88エンティ
ティと呼ばれる。S/370エンティティは、S/37
0アプリケーション・プログラムを実行し、必要に応じ
て、S/88とS/370のどちらのオペレーティング
・システムも互いに気づかないように、S/88 I/
O装置及びプログラムを利用するS/370 I/O動
作を実行するためにS/88エンティティを訪れる。
E27.フォールト・トレラント・ハードウェア同期化 S/88−S/370処理ユニットのより固有且つ重要
な特徴の1つは現在処理中の相手23による参照番号2
1などの任意の処理ユニットの自己決定同期化である。
各ユニットのS/88エンティティは、新しいまたはエ
ラーを生成する相手の同期化のための能力及び責任をも
つ。あるユニットのS/88エンティティがこの責任を
もつとき、それは「マスター」と呼ばれる。そして、同
期化を受ける相手は、「スレーブ」と呼ばれる。
な特徴の1つは現在処理中の相手23による参照番号2
1などの任意の処理ユニットの自己決定同期化である。
各ユニットのS/88エンティティは、新しいまたはエ
ラーを生成する相手の同期化のための能力及び責任をも
つ。あるユニットのS/88エンティティがこの責任を
もつとき、それは「マスター」と呼ばれる。そして、同
期化を受ける相手は、「スレーブ」と呼ばれる。
S/88ハードウェア/ファームフェア構造は、何時同
期化が必要とされ、何がどれを同期化するのかを決定す
る。相互接続されたS/88−S/370ハードウェア
/ファームフェアは、このインテリジェンス機能を同期
化の決定の際にS/88の主導に従うために利用する。
すなわち、任意の時点で、S/88は、S/88(スレ
ーブ)エンティティが相手(マスター)との同期化を必
要とすることを決定し、その同期化はS/88スレーブ
・エンティティが「キックオフ」された後の適当な点へ
進行するように許可され、次に、その実行は対応するS
/370エンティティに向き付けられる。S/370エ
ンティティは、S/370マスタ状態を抽出しその状態
を両方のS/370相手に復元するためにPROM18
1からのコードを実行するS/88 PEによって同期
化される。
期化が必要とされ、何がどれを同期化するのかを決定す
る。相互接続されたS/88−S/370ハードウェア
/ファームフェアは、このインテリジェンス機能を同期
化の決定の際にS/88の主導に従うために利用する。
すなわち、任意の時点で、S/88は、S/88(スレ
ーブ)エンティティが相手(マスター)との同期化を必
要とすることを決定し、その同期化はS/88スレーブ
・エンティティが「キックオフ」された後の適当な点へ
進行するように許可され、次に、その実行は対応するS
/370エンティティに向き付けられる。S/370エ
ンティティは、S/370マスタ状態を抽出しその状態
を両方のS/370相手に復元するためにPROM18
1からのコードを実行するS/88 PEによって同期
化される。
組みユニットのどちらか1つは、初期電源導入、新しい
相手の登場、または既存の2つの組みをして同期化を喪
失させるようなエラー条件からの回復(どの場合もメン
テナンス割り込みを強制する)によって必要性が生じた
場合、処理ユニットの同期化において、マスターまたは
スレーブのどちらかの役割を占めることができる。どの
場合にも、S/88スレーブ・エンティティは、その状
況を認識して、同期化のためのS/88マスター・エン
ティティに依存する。
相手の登場、または既存の2つの組みをして同期化を喪
失させるようなエラー条件からの回復(どの場合もメン
テナンス割り込みを強制する)によって必要性が生じた
場合、処理ユニットの同期化において、マスターまたは
スレーブのどちらかの役割を占めることができる。どの
場合にも、S/88スレーブ・エンティティは、その状
況を認識して、同期化のためのS/88マスター・エン
ティティに依存する。
S/88マスター及びスレーブ・エンティティは、メン
テナンス割り込みが生じた時点でのめいめいの状態の結
果としての個々の役割を占める。全ての処理ユニットの
S/88エンティティは、デフォールトのマスタが確立
されるまでスレーブであるとめいめいが仮定しつつその
割り込みを検出及び処理する。マスターは次に、ホール
ド・スレーブをロックステップでキックオフし、めいめ
いは(割り込みからもどった時点で)、マスターの優先
使用環境を再開する。
テナンス割り込みが生じた時点でのめいめいの状態の結
果としての個々の役割を占める。全ての処理ユニットの
S/88エンティティは、デフォールトのマスタが確立
されるまでスレーブであるとめいめいが仮定しつつその
割り込みを検出及び処理する。マスターは次に、ホール
ド・スレーブをロックステップでキックオフし、めいめ
いは(割り込みからもどった時点で)、マスターの優先
使用環境を再開する。
同様に、S/88エンティティは、プロセッサを残余の
論理から切り放し、S/370相手対内で同一の優先使
用された状態を確立するためにS/370 SP機能を
エミュレートするべくそれらのプロセッサを使用し、次
に正常の実行環境を再確立し、S/370の相手がロッ
クステップで実行を開始することを可能ならしめる。
論理から切り放し、S/370相手対内で同一の優先使
用された状態を確立するためにS/370 SP機能を
エミュレートするべくそれらのプロセッサを使用し、次
に正常の実行環境を再確立し、S/370の相手がロッ
クステップで実行を開始することを可能ならしめる。
同期化を必要としない状況として、参照番号21の単一
ユニットなどの単一の処理ユニットが電源投入される場
合がある。
ユニットなどの単一の処理ユニットが電源投入される場
合がある。
同期化を要する状況としては、2重化処理ユニット(例
えば21,23)が電源投入される場合、相手23が正
常に処理している間にユニット21が挿入される場合、
及び処理ユニット21などがその相手23中に比較障害
を検出し、回復を試みる場合がある。
えば21,23)が電源投入される場合、相手23が正
常に処理している間にユニット21が挿入される場合、
及び処理ユニット21などがその相手23中に比較障害
を検出し、回復を試みる場合がある。
S/88エンティティは、同期化を確立するための適当
なハードウェア設備をもつ。S/370処理区画は、ス
レーブ・エンティティをしてマスタ・エンティティの全
く同じ状態に初期化されることを可能ならしめるに十分
なハードウェア及びソフトウェアをもつ。これは、読取
/書込状況レジスタ、読取可能モード・レジスタ、停止
可能クロック及びカウント・リングなどの構成を有す
る。ユニット21中の正常動作S/370エンティティ
が相手ユニット23中の対応S/370エンティティと
同期させられるべき時、相手のS/370エンティティ
をその正常動作エンティティと同じ状態にすることが必
要である。この処理は、好適な実施例では、S/88プ
ロセッサ60、62からのキュー・セレクト・アップ・
メッセージを(PROM181中のS/370初期化及
び同期化マイクロコードの制御の下で)S/370プロ
セッサ85、87に送ることによって簡略化することが
できる。このメッセージは、ユーザー・アプリケーショ
ンが、同期化の間に、オペレーティング・システムを介
してBCU156などに対して更なるサービス要求を呼
び出すことを停止する。これはまた、全ての未完了I/
O動作の実行の完了を可能ならしめる。
なハードウェア設備をもつ。S/370処理区画は、ス
レーブ・エンティティをしてマスタ・エンティティの全
く同じ状態に初期化されることを可能ならしめるに十分
なハードウェア及びソフトウェアをもつ。これは、読取
/書込状況レジスタ、読取可能モード・レジスタ、停止
可能クロック及びカウント・リングなどの構成を有す
る。ユニット21中の正常動作S/370エンティティ
が相手ユニット23中の対応S/370エンティティと
同期させられるべき時、相手のS/370エンティティ
をその正常動作エンティティと同じ状態にすることが必
要である。この処理は、好適な実施例では、S/88プ
ロセッサ60、62からのキュー・セレクト・アップ・
メッセージを(PROM181中のS/370初期化及
び同期化マイクロコードの制御の下で)S/370プロ
セッサ85、87に送ることによって簡略化することが
できる。このメッセージは、ユーザー・アプリケーショ
ンが、同期化の間に、オペレーティング・システムを介
してBCU156などに対して更なるサービス要求を呼
び出すことを停止する。これはまた、全ての未完了I/
O動作の実行の完了を可能ならしめる。
このことは、正常動作S/370エンティティを、「キ
ックオフ」の時点で両方のS/370エンティティによ
る使用のために記憶162にコピーされた状態にもって
くる。この時点で、S/370プロセッサ、S/370
キャッシュ、DLAT及びS/370バス・アダプタ中
の全てのレジスタ、カウンタ、ポインタ及びバッファが
順序づけられたスタック中の記憶(162)にコピーさ
れる。その同期化処理が開始されたとき、4つの全ての
物理プロセッサは、文脈を共通スタックから4つの全て
のプロセッサにロードすることによって復元されたS/
370文脈をもつことになる。両プロセッサには、その
レジスタ、カウンタ及びバッファに同一の値がロードさ
れ、次にロックステップまたは完全同期によりプログラ
ム実行を開始することになる。
ックオフ」の時点で両方のS/370エンティティによ
る使用のために記憶162にコピーされた状態にもって
くる。この時点で、S/370プロセッサ、S/370
キャッシュ、DLAT及びS/370バス・アダプタ中
の全てのレジスタ、カウンタ、ポインタ及びバッファが
順序づけられたスタック中の記憶(162)にコピーさ
れる。その同期化処理が開始されたとき、4つの全ての
物理プロセッサは、文脈を共通スタックから4つの全て
のプロセッサにロードすることによって復元されたS/
370文脈をもつことになる。両プロセッサには、その
レジスタ、カウンタ及びバッファに同一の値がロードさ
れ、次にロックステップまたは完全同期によりプログラ
ム実行を開始することになる。
S/370処理エンティティは、同期化のためにさまざ
まなレジスタ及びキャッシュにアクセスするための2つ
の方法を与える。その1つは、BCUローカル・データ
・バス223をバス・アダプタ154のチャネル0,1
に結合するレジスタ560、561を用いた、通常の、
ユーザーによってプログラムされた読取/書込方法であ
る。もう一方は、直列「裏口」集積サポート機能(IS
F)/汎用サポート・インターフェース(USI)54
0、541の技法である。S/370チップセット・サ
ービス・プロセッサの直列インターフェース/プロトコ
ル(ISF/USI)をエミュレートすることによっ
て、S/88エンティティの同期化機構がS/370エ
ンティティに接続された任意且つ全ての機構にアクセス
することができる。1つまたはそれ以上のS/370エ
ンティティの同期化が必要であるとき、両方の方法が採
用される。通常の経路は、それが存在し、USI経路が
他方のために使用されているとき使用される。
まなレジスタ及びキャッシュにアクセスするための2つ
の方法を与える。その1つは、BCUローカル・データ
・バス223をバス・アダプタ154のチャネル0,1
に結合するレジスタ560、561を用いた、通常の、
ユーザーによってプログラムされた読取/書込方法であ
る。もう一方は、直列「裏口」集積サポート機能(IS
F)/汎用サポート・インターフェース(USI)54
0、541の技法である。S/370チップセット・サ
ービス・プロセッサの直列インターフェース/プロトコ
ル(ISF/USI)をエミュレートすることによっ
て、S/88エンティティの同期化機構がS/370エ
ンティティに接続された任意且つ全ての機構にアクセス
することができる。1つまたはそれ以上のS/370エ
ンティティの同期化が必要であるとき、両方の方法が採
用される。通常の経路は、それが存在し、USI経路が
他方のために使用されているとき使用される。
同期化及び初期化処理のこの部分(例えばS/370エ
ンティティのための処理)が、S/370エンティティ
の存在も、それに接続されていることも知らないS/8
8オペレーティング・システムに対して透過的でなくて
はならない、ということに留意することは重要である。
この透過性は、S/370 I/O動作に関連して前記
に説明したのとほぼ同様の様式で達成される。すなわ
ち、第20図に関連して説明されたアドレス・デコード
論理280は、データがS/88プロセッサ62と第4
9図の論理の間で転送されるべきとき毎にアドレス00
7EXXXXをセンスする。このアドレスが論理280
によってデコードされるとき、それは、S/88プロセ
ッサ・バス161A、161Dを、前記回路217、2
18を介してローカル・アドレス及びデータ・バス24
7、223に結合する。レジスタ・アドレス・デコード
論理562は、プロセッサ62とのデータ転送のため
に、論理回路549、550またはレジスタ560、5
61のうちの1つを選択すべく、バス247上のアドレ
スの下位ビットをデコードする。
ンティティのための処理)が、S/370エンティティ
の存在も、それに接続されていることも知らないS/8
8オペレーティング・システムに対して透過的でなくて
はならない、ということに留意することは重要である。
この透過性は、S/370 I/O動作に関連して前記
に説明したのとほぼ同様の様式で達成される。すなわ
ち、第20図に関連して説明されたアドレス・デコード
論理280は、データがS/88プロセッサ62と第4
9図の論理の間で転送されるべきとき毎にアドレス00
7EXXXXをセンスする。このアドレスが論理280
によってデコードされるとき、それは、S/88プロセ
ッサ・バス161A、161Dを、前記回路217、2
18を介してローカル・アドレス及びデータ・バス24
7、223に結合する。レジスタ・アドレス・デコード
論理562は、プロセッサ62とのデータ転送のため
に、論理回路549、550またはレジスタ560、5
61のうちの1つを選択すべく、バス247上のアドレ
スの下位ビットをデコードする。
さらに、線562、563上の割り込みは、OR回路2
92aを介して第20図のS/88割り込み論理212
に指向される。その割り込み要求信号は、データがプロ
セッサ62への転送のためにS/370チップのうちの
1つから論理549で受領されるとき、線562上で活
動化される。線562上の割り込み要求は、論理550
からS/370チップへのデータ転送の完了をプロセッ
サ62に通知する。線562上の割り込み要求は、プロ
セッサ62に、プロセッサ62への転送のためにS/3
70チップからのデータが論理549によって受け取ら
れたことを通知する。その割り込み要求は、IACK信
号が線258dと258e上にそれぞれあらわれるとき
に線562及び563上に保持される。3つの割り込み
のベクタ番号は、第20図からのIACK信号258d
及び258eによってそれぞれ付勢されたとき、論理5
64、565から得られる。そのベクタ番号は、個別の
割り込みハンドラ・ルーチンにアクセスするために処理
ユニット62によって使用される。
92aを介して第20図のS/88割り込み論理212
に指向される。その割り込み要求信号は、データがプロ
セッサ62への転送のためにS/370チップのうちの
1つから論理549で受領されるとき、線562上で活
動化される。線562上の割り込み要求は、論理550
からS/370チップへのデータ転送の完了をプロセッ
サ62に通知する。線562上の割り込み要求は、プロ
セッサ62に、プロセッサ62への転送のためにS/3
70チップからのデータが論理549によって受け取ら
れたことを通知する。その割り込み要求は、IACK信
号が線258dと258e上にそれぞれあらわれるとき
に線562及び563上に保持される。3つの割り込み
のベクタ番号は、第20図からのIACK信号258d
及び258eによってそれぞれ付勢されたとき、論理5
64、565から得られる。そのベクタ番号は、個別の
割り込みハンドラ・ルーチンにアクセスするために処理
ユニット62によって使用される。
S/370集積サポート機構(ISF)540(第49
図)は、チップセット150上の論理に対して「裏口」
入口を与える。このISFは、チップ85及び151−
154上に集積されたユニット・サポート・インターフ
ェース(USI)に接続された5線のサポート・バス5
41からなる。チップ85上のUSI542の一部が第
49図に示されている。
図)は、チップセット150上の論理に対して「裏口」
入口を与える。このISFは、チップ85及び151−
154上に集積されたユニット・サポート・インターフ
ェース(USI)に接続された5線のサポート・バス5
41からなる。チップ85上のUSI542の一部が第
49図に示されている。
サポート・バス541は、次のような5つの線との直列
インターフェースをあらわす。
インターフェースをあらわす。
ビット・アウト(データからチップ・セットへの)線5
43 ビット・イン(チップ・セットからデータへの)線54
4 アドレス・モード(制御)線545 シフト・ゲート(制御)線546 セット・パルス(制御)線547 アドレス・モード線545は、ビット・イン/ビット・
アウト線543、544上のアドレス・ビット(高レベ
ル)またはデータ・ビット(低レベル)の直列転送(シ
フト)を通知する。ビット・イン及びビット・アウト線
543、544は、チップ内部のシフト・レジスタ54
8などと、論理549、550中の外部シフト・レジス
タの間の相互接続である。内部レジスタ548と2つの
外部レジスタ549、550のうちの1つとの間でシフ
トされるビットの数は、シフト・パルス・ゲート線54
6に印加されるパルスの数によって決定される。
43 ビット・イン(チップ・セットからデータへの)線54
4 アドレス・モード(制御)線545 シフト・ゲート(制御)線546 セット・パルス(制御)線547 アドレス・モード線545は、ビット・イン/ビット・
アウト線543、544上のアドレス・ビット(高レベ
ル)またはデータ・ビット(低レベル)の直列転送(シ
フト)を通知する。ビット・イン及びビット・アウト線
543、544は、チップ内部のシフト・レジスタ54
8などと、論理549、550中の外部シフト・レジス
タの間の相互接続である。内部レジスタ548と2つの
外部レジスタ549、550のうちの1つとの間でシフ
トされるビットの数は、シフト・パルス・ゲート線54
6に印加されるパルスの数によって決定される。
セット・パルスは、チップにシフトされたばかりのアド
レスまたはデータ・パターンに基づき、チップ内部活動
を同期させるために使用される。セット・パルスは、例
えばレジスタ548中のチップ側の情報の可用性を知ら
せるために、シフトの終了後活動化される。このこと
は、この情報に基づく活動が、この瞬間から開始できる
ことを意味する。
レスまたはデータ・パターンに基づき、チップ内部活動
を同期させるために使用される。セット・パルスは、例
えばレジスタ548中のチップ側の情報の可用性を知ら
せるために、シフトの終了後活動化される。このこと
は、この情報に基づく活動が、この瞬間から開始できる
ことを意味する。
次の例は、動作を説明するものである。特定のアドレス
・パターンにスタート機能が割当てられてなる。このア
ドレスは、各チップのレジスタ548などにシフト・イ
ンされる。全てのアドレス・ビットが転送された時、チ
ップの1つのS/88・デコード551がそのアドレス
を検出する。そのアドレス・デコードとセット・パルス
が、ゲート552の出力におけるチップ内部スタート・
パルスを形成する。USIのチップ特定部分は、特定チ
ップ・デザインから得た制御及びデータ・チェインを含
む。シフト動作にって影響されない記憶要素の現在の状
況を保持するために、USI活動の開始の前に機能クロ
ックは停止されなくてはならない。予備的な必要性に応
じたクロック停止を必要とするUSIアクセスは、「静
的」であると定義する。動的アクセスまたは機能とは、
チップが動作している間に実行することができる動作で
ある。
・パターンにスタート機能が割当てられてなる。このア
ドレスは、各チップのレジスタ548などにシフト・イ
ンされる。全てのアドレス・ビットが転送された時、チ
ップの1つのS/88・デコード551がそのアドレス
を検出する。そのアドレス・デコードとセット・パルス
が、ゲート552の出力におけるチップ内部スタート・
パルスを形成する。USIのチップ特定部分は、特定チ
ップ・デザインから得た制御及びデータ・チェインを含
む。シフト動作にって影響されない記憶要素の現在の状
況を保持するために、USI活動の開始の前に機能クロ
ックは停止されなくてはならない。予備的な必要性に応
じたクロック停止を必要とするUSIアクセスは、「静
的」であると定義する。動的アクセスまたは機能とは、
チップが動作している間に実行することができる動作で
ある。
セット・パルスは、チップ内部タイミングに対して機能
を同期化するために使用される。これらの機能は、アド
レス・モード線(アドレスまたはデータ・モード)によ
って追加的にゲートされる、SERDESレジスタ中の
アドレス・パターンまたはデータ・パターンからデコー
ドされる。それらの機能とは次のものである。
を同期化するために使用される。これらの機能は、アド
レス・モード線(アドレスまたはデータ・モード)によ
って追加的にゲートされる、SERDESレジスタ中の
アドレス・パターンまたはデータ・パターンからデコー
ドされる。それらの機能とは次のものである。
SERDESへのチップ状況セット SERDESへのモード・レジスタ・セット SERDESからのモード・レジスタ・ロード サポート転送要求ラッチ(SPR)セット プロセッサ制御要求ラッチ(PCR)リセット 個々のチップをサポートするために必要に応じた追加の
動的機能 S/370チップセット内のさまざまなアドレス可能エ
ンティティに対して「裏口」アクセスを与える、ISF
の5線直列バス541は、各チップのユニット・サポー
ト・インターフェース(USI)、例えば、チップ85
のUSI542に結合される。USI542は、8ビッ
ト・アドレス・レジスタ566と、8ビット直列/並列
化器(SERDES)548を提供する。USIアドレ
ス・レジスタ566は、SERDES548が実際の送
受信機構である間に、チップのアドレスと、そのチップ
内のターゲット・エンティティのアドレスを受け取る。
USIはまた、シフトイン/シフトアウト機構のための
同期化論理を与える。
動的機能 S/370チップセット内のさまざまなアドレス可能エ
ンティティに対して「裏口」アクセスを与える、ISF
の5線直列バス541は、各チップのユニット・サポー
ト・インターフェース(USI)、例えば、チップ85
のUSI542に結合される。USI542は、8ビッ
ト・アドレス・レジスタ566と、8ビット直列/並列
化器(SERDES)548を提供する。USIアドレ
ス・レジスタ566は、SERDES548が実際の送
受信機構である間に、チップのアドレスと、そのチップ
内のターゲット・エンティティのアドレスを受け取る。
USIはまた、シフトイン/シフトアウト機構のための
同期化論理を与える。
S/370チップ・セット150内の各チップは、4ビ
ット(高位)ISF/USIアドレスを割当てられ、例
えばPE85と、キャッシュ・コントローラ153と、
バス・アダプタ154と、浮動小数点コプロセッサ15
1と、STCI155は、それぞれ2、4、6、8、A
及びBの16進値を割当てられてなる。ISF/USI
アドレスの下位4ビットは、下位4ビットによってアド
レスされる内部チップ・エンティティ(例えばレジス
タ、機能またはチェイン)を決定する。
ット(高位)ISF/USIアドレスを割当てられ、例
えばPE85と、キャッシュ・コントローラ153と、
バス・アダプタ154と、浮動小数点コプロセッサ15
1と、STCI155は、それぞれ2、4、6、8、A
及びBの16進値を割当てられてなる。ISF/USI
アドレスの下位4ビットは、下位4ビットによってアド
レスされる内部チップ・エンティティ(例えばレジス
タ、機能またはチェイン)を決定する。
通信スキームは、コマンドと、ソース・チップと、宛先
チップと、そのチップ内のデータ及びターゲット・エン
ティティを識別するフィールドからなるシフト・チェイ
ン(機能チェインとも呼ばれる)からなる。シフト・チ
ェインは、次のとおりである。
チップと、そのチップ内のデータ及びターゲット・エン
ティティを識別するフィールドからなるシフト・チェイ
ン(機能チェインとも呼ばれる)からなる。シフト・チ
ェインは、次のとおりである。
ビット0−7−機能/コード 8−11−ソース(制御)ユニット 12−15−ターゲット(センス/制御) ユニット 16−23−メッセージ/データ 24−27−制御(書込み)レジスタ 28−31−センス(読取)レジスタ これらの機能チェインは、ISF/USIの直列的性質
と、そのチェインが論理549、550に及びSERD
ESレジスタ548などにシフトイン/シフトアウトさ
れなくてはならないという事実により、シフト・チェイ
ンと呼ばれる。
と、そのチェインが論理549、550に及びSERD
ESレジスタ548などにシフトイン/シフトアウトさ
れなくてはならないという事実により、シフト・チェイ
ンと呼ばれる。
機能チェインのコマンド・フィールドは、読取/センス
・コマンド(F61)の書込/制御コマンド(E61)
を含むことができる。機能チェインの例は次のとおりで
ある。
・コマンド(F61)の書込/制御コマンド(E61)
を含むことができる。機能チェインの例は次のとおりで
ある。
E602XX10=プロセッサ85のモード・レジスタ
に対する書込 ここで、E6=コマンド=書込 0=テストのためのPE62ソース・アドレス 2=PE85宛先 XX=メッセージ(データ) 1=制御されたレジスタ(モード・レジスタ) 0=センス・レジスタ(コマンドが「書込」であるので
なし) ここで述べている同期化を達成するための技法は、PR
OM181に記憶されているS/88プログラム・コー
ドを使用する。そのコードは、上記4つの状況のおのお
のに関連する決定を行ない、それに従ってフラグをセッ
トする。同期化ルーチンは次に、適当な同期化または初
期化を実行するために、コードの経路を制御するように
それらのフラグを使用する。2つの例を示すと次のとお
りである。
に対する書込 ここで、E6=コマンド=書込 0=テストのためのPE62ソース・アドレス 2=PE85宛先 XX=メッセージ(データ) 1=制御されたレジスタ(モード・レジスタ) 0=センス・レジスタ(コマンドが「書込」であるので
なし) ここで述べている同期化を達成するための技法は、PR
OM181に記憶されているS/88プログラム・コー
ドを使用する。そのコードは、上記4つの状況のおのお
のに関連する決定を行ない、それに従ってフラグをセッ
トする。同期化ルーチンは次に、適当な同期化または初
期化を実行するために、コードの経路を制御するように
それらのフラグを使用する。2つの例を示すと次のとお
りである。
特定のS/88ボード上のメモリが電源障害によってデ
ータを汚染され、その相手から初期化されるべきかどう
かの決定 特定のS/88ボードがデフォールト・マスタ処理ユニ
ット(DMPU)の役割を有するべきかどうかの決定 以下の説明は、同期化機構の2つの異なる実現構成を示
すものである。その1つは、ハードウェア支援的であ
り、より高速の「迅速な」処理を可能ならしめる。それ
はもちろん、S/370エンティティ中に少なくとも1
つの追加的な制御回路を必要とし、あるS/88制御回
路をS/370「インターフェース」に物理的にさらす
ことによって、定義された能力を超えて拡張することが
できる。この「インターフェース」は、実際上、S/8
8回路のS/88回路に対する「寄生的追加」である。
ータを汚染され、その相手から初期化されるべきかどう
かの決定 特定のS/88ボードがデフォールト・マスタ処理ユニ
ット(DMPU)の役割を有するべきかどうかの決定 以下の説明は、同期化機構の2つの異なる実現構成を示
すものである。その1つは、ハードウェア支援的であ
り、より高速の「迅速な」処理を可能ならしめる。それ
はもちろん、S/370エンティティ中に少なくとも1
つの追加的な制御回路を必要とし、あるS/88制御回
路をS/370「インターフェース」に物理的にさらす
ことによって、定義された能力を超えて拡張することが
できる。この「インターフェース」は、実際上、S/8
8回路のS/88回路に対する「寄生的追加」である。
ここで定義されるもう1つの実現構成はマイクロコード
のみであって、S/370サービス・プロセッサのエミ
ュレーションにおいてS/88プロセッサ・エンティテ
ィによってS/370同期化を扱うことを可能ならしめ
るものである。この技術は、性能及び迅速性が重要でな
いときに使用することができる。
のみであって、S/370サービス・プロセッサのエミ
ュレーションにおいてS/88プロセッサ・エンティテ
ィによってS/370同期化を扱うことを可能ならしめ
るものである。この技術は、性能及び迅速性が重要でな
いときに使用することができる。
(3)単一プロセッサ・ユニット21が電源投入された
(ハードウェア構成) この状況は、次の2つの条件のうちの1つによってもた
らされ得る。
(ハードウェア構成) この状況は、次の2つの条件のうちの1つによってもた
らされ得る。
1)このユニットが、電源投入またはブートの結果とし
て線につながった。
て線につながった。
2)このユニットが、電源障害回復の結果として線につ
ながった。
ながった。
どちらの場合にも、コード経路は同一である。
ユニット21のS/88エンティティは、その自己テス
トの部分を実行し、初期化ルーチン(STIR)が、関
連記憶16の内容が汚染されてしまったかどうか(電源
故障状態)を決定しようと試みる。もしそうなら、ST
IRは、STIR経路上の正常電力へと戻る。さもなけ
れば、DMPUであり得る相手または共存処理ユニット
をもつかどうかを決定しようと試みる。もしそれがない
なら、STIRはDMPU責任範囲を受け持って別の処
理ユニットを同期化しようと試みる。
トの部分を実行し、初期化ルーチン(STIR)が、関
連記憶16の内容が汚染されてしまったかどうか(電源
故障状態)を決定しようと試みる。もしそうなら、ST
IRは、STIR経路上の正常電力へと戻る。さもなけ
れば、DMPUであり得る相手または共存処理ユニット
をもつかどうかを決定しようと試みる。もしそれがない
なら、STIRはDMPU責任範囲を受け持って別の処
理ユニットを同期化しようと試みる。
ユニット21のS/370エンティティは、単に、S/
88エンティティの主導に従う。このことは、S/88
PROM181中にあるコードを実行し、正常自己テス
トを完了し、次にこれが初期電源投入と電源障害回復の
どちらであるかを決定するS/88プロセッサ62によ
って達成される。もしそれが電源投入なら、S/370
エンティティは、正常の初期化を続け、次にそれがDM
PUであると仮定し、同期信号を発行しようと試みる。
その信号は、S/88プロセッサ62に対してレベル6
割り込みを強制するS/370論理によってトラップさ
れる。割り込み6は、S/88PROM181(第19
A図)中のS/370同期化マイクロコードにベクタさ
れる(これは、S/88アドレス空間にマップされ
る)。
88エンティティの主導に従う。このことは、S/88
PROM181中にあるコードを実行し、正常自己テス
トを完了し、次にこれが初期電源投入と電源障害回復の
どちらであるかを決定するS/88プロセッサ62によ
って達成される。もしそれが電源投入なら、S/370
エンティティは、正常の初期化を続け、次にそれがDM
PUであると仮定し、同期信号を発行しようと試みる。
その信号は、S/88プロセッサ62に対してレベル6
割り込みを強制するS/370論理によってトラップさ
れる。割り込み6は、S/88PROM181(第19
A図)中のS/370同期化マイクロコードにベクタさ
れる(これは、S/88アドレス空間にマップされ
る)。
ところで、電源投入ブートから、S/370PE85は
自己のSTIRを実行し、次にその同期点で実行を中断
している。この期間、S/370クロック152もま
た、自身を初期化している。S/88レベル6割り込み
サービス・サブルーチン(ISS)(すなわち、S/3
70同期化マイクロコード)は、S/370サービス・
プロセッサをエミュレートするために第44図のISF
/USIを使用する。このSPエミュレータは、S/3
70制御記憶171のIML機能を呼び出すために機能
ストリングを発行するが、実際のコード転送は生じない
(マイクロコードは、S/88PROM181中にあ
る)。IMLの次のステップは、S/370エンティテ
ィ(プロセッサ85及び87)に同期を同報通信して、
処理ユニット21をして実行へともってくることであ
る。ISSの最終ステップは、割り込みから戻り、以て
処理ユニットをしてIPLされた状態の実行を開始させ
ることである。
自己のSTIRを実行し、次にその同期点で実行を中断
している。この期間、S/370クロック152もま
た、自身を初期化している。S/88レベル6割り込み
サービス・サブルーチン(ISS)(すなわち、S/3
70同期化マイクロコード)は、S/370サービス・
プロセッサをエミュレートするために第44図のISF
/USIを使用する。このSPエミュレータは、S/3
70制御記憶171のIML機能を呼び出すために機能
ストリングを発行するが、実際のコード転送は生じない
(マイクロコードは、S/88PROM181中にあ
る)。IMLの次のステップは、S/370エンティテ
ィ(プロセッサ85及び87)に同期を同報通信して、
処理ユニット21をして実行へともってくることであ
る。ISSの最終ステップは、割り込みから戻り、以て
処理ユニットをしてIPLされた状態の実行を開始させ
ることである。
S/88処理ユニット「module start up.cm」の実行の
一部として、エミュレートされたサービス・プロセッサ
「IPLボタン押圧」機能ストリングがIPL機能を実
行するためにS/370処理ユニットに送られ、以てデ
ィスクからS/370主記憶をロードする。IPLの最
終ステップは、次に、位置0によって指定されたアドレ
スに制御を渡すことである。
一部として、エミュレートされたサービス・プロセッサ
「IPLボタン押圧」機能ストリングがIPL機能を実
行するためにS/370処理ユニットに送られ、以てデ
ィスクからS/370主記憶をロードする。IPLの最
終ステップは、次に、位置0によって指定されたアドレ
スに制御を渡すことである。
(B)マイクロコードのみの実現 ユニット21のS/88エンティティは、その自己テス
ト及び初期化ルーチン(STIR)を実行し、次にこれ
が初期電源投入(IPO)と(電源障害回復(PFR)
のどちらであるかを決定することになる。もしこれがI
POであるなら、そのコードは、ユニット21が単一の
エンティティであると決定してオペレーティング・シス
テムのロード及びその「スタートアップ」ルーチンの実
行を進める。
ト及び初期化ルーチン(STIR)を実行し、次にこれ
が初期電源投入(IPO)と(電源障害回復(PFR)
のどちらであるかを決定することになる。もしこれがI
POであるなら、そのコードは、ユニット21が単一の
エンティティであると決定してオペレーティング・シス
テムのロード及びその「スタートアップ」ルーチンの実
行を進める。
もしこれがPFRであるなら、コードはその関連記憶の
完全性が損なわれているかどうかを決定する。もしそう
なら、コードはこれがIPOであるかのごとく進行す
る。もしその内容が無事であることがメモリについて分
かったなら、PFRコードは通常の再スタート・タスク
を進める。
完全性が損なわれているかどうかを決定する。もしそう
なら、コードはこれがIPOであるかのごとく進行す
る。もしその内容が無事であることがメモリについて分
かったなら、PFRコードは通常の再スタート・タスク
を進める。
上記どの場合も、同期化すべき相手が接続されていない
ので、同期化機能が「ダミー」動作となる。
ので、同期化機能が「ダミー」動作となる。
(4)2重化された処理ユニット21、23が電源投入
される−ハードウェア実現構成 この状況は、次の2つの条件のうちどちらかまた両方に
よってもたらされ得る。
される−ハードウェア実現構成 この状況は、次の2つの条件のうちどちらかまた両方に
よってもたらされ得る。
1)これらのユニットが、電源投入またはブートの結果
として線につながった。
として線につながった。
2)これらのユニットが、電源障害回復の結果として線
につながった。
につながった。
どちらの場合にも、コード経路は同一である。
ユニット21、23のS/88エンティティは、その自
己テストの部分を実行し、初期化ルーチン(STIR)
が、関連記憶16の内容が破壊されてしまったかどうか
(電源故障状態)を決定しようと試みる。もしそうな
ら、STIRは、STIR経路上の正常電力へと戻る。
さもなければ、DMPUであり得る相手または共存処理
ユニットをもつかどうか、またはDMPUでないかどう
かを決定しようと試みる。もしそうなら、STIRはD
MPU責任範囲を受け持って別の処理ユニットを同期化
しようと試みる。もしそれがDMPUでないなら、同期
点へ進み、同期を待つ。
己テストの部分を実行し、初期化ルーチン(STIR)
が、関連記憶16の内容が破壊されてしまったかどうか
(電源故障状態)を決定しようと試みる。もしそうな
ら、STIRは、STIR経路上の正常電力へと戻る。
さもなければ、DMPUであり得る相手または共存処理
ユニットをもつかどうか、またはDMPUでないかどう
かを決定しようと試みる。もしそうなら、STIRはD
MPU責任範囲を受け持って別の処理ユニットを同期化
しようと試みる。もしそれがDMPUでないなら、同期
点へ進み、同期を待つ。
ユニット21のS/370エンティティは、単に、S/
88エンティティの主導に従う。S/88 PROM1
81中にあるコードを実行するS/88エンティティ
は、正常自己テストを完了し、次にこれが初期電源投入
と電源障害回復のどちらであるかを決定する。もしそれ
が電源投入なら、S/370エンティティは、正常の初
期化を続け、次に同期化点へ進む。もしそれが電源障害
回復であるなら、キャッシュが、有効であるかどうか決
定するために検査される。もしそうなら、それは、相手
のキャッシュが無効であると分かった場合に、相手のメ
モリを更新する必要があるかもしれない。もし自己のキ
ャッシュが無効であるなら、それは、有効キャッシュ内
容で更新するために相手ユニットに依存しなくてはなら
ない。もしどちらのユニットも有効メモリを保証するこ
とができないなら、それらは、対として正常電源投入及
び初期化を継続しなくてはならない。処理ユニットのS
/88エンティティが同期点に近付くにつれ、各S/8
8エンティティは、DMPU処理責任を引き受けなくて
はならないかどうかを決定する。もしS/88エンティ
ティがそれがDMPUであることを見出したなら、S/
88エンティティは、同期信号を発行しようと試みる。
88エンティティの主導に従う。S/88 PROM1
81中にあるコードを実行するS/88エンティティ
は、正常自己テストを完了し、次にこれが初期電源投入
と電源障害回復のどちらであるかを決定する。もしそれ
が電源投入なら、S/370エンティティは、正常の初
期化を続け、次に同期化点へ進む。もしそれが電源障害
回復であるなら、キャッシュが、有効であるかどうか決
定するために検査される。もしそうなら、それは、相手
のキャッシュが無効であると分かった場合に、相手のメ
モリを更新する必要があるかもしれない。もし自己のキ
ャッシュが無効であるなら、それは、有効キャッシュ内
容で更新するために相手ユニットに依存しなくてはなら
ない。もしどちらのユニットも有効メモリを保証するこ
とができないなら、それらは、対として正常電源投入及
び初期化を継続しなくてはならない。処理ユニットのS
/88エンティティが同期点に近付くにつれ、各S/8
8エンティティは、DMPU処理責任を引き受けなくて
はならないかどうかを決定する。もしS/88エンティ
ティがそれがDMPUであることを見出したなら、S/
88エンティティは、同期信号を発行しようと試みる。
同期化信号は、S/370論理370によってトラップ
されてS/88エンティティに対してレベル6割り込み
を強制する。この割り込みは、PROM181中のS/
370同期化マイクロコード(これは、S/88アドレ
ス空間)にベクタされる。ところで、電源投入ブートか
ら、S/370(例えばPE85、87)は自己のST
IRを実行し、次にその同期点で実行を中断している。
もしこれが、電源障害回復であるなら、S/370エン
ティティは、メモリの完全性及び同期化を保証するため
にどの程度初期化ルーチンに遡らなくてはならないかを
決定するS/88エンティティの処理と同様の処理を通
過する。この間に、S/370クロック152は、自己
を初期化している。
されてS/88エンティティに対してレベル6割り込み
を強制する。この割り込みは、PROM181中のS/
370同期化マイクロコード(これは、S/88アドレ
ス空間)にベクタされる。ところで、電源投入ブートか
ら、S/370(例えばPE85、87)は自己のST
IRを実行し、次にその同期点で実行を中断している。
もしこれが、電源障害回復であるなら、S/370エン
ティティは、メモリの完全性及び同期化を保証するため
にどの程度初期化ルーチンに遡らなくてはならないかを
決定するS/88エンティティの処理と同様の処理を通
過する。この間に、S/370クロック152は、自己
を初期化している。
S/370プロセッサによるS/88同期化パルスのト
ラップのための好適な機構の簡単な説明を、第20図、
第49図、及び第50図を参照して行う。
ラップのための好適な機構の簡単な説明を、第20図、
第49図、及び第50図を参照して行う。
S/88プロセッサは、線570(第50図)上にSY
NC OUT信号を発行する、ユニット23のプロセッ
サのS/88対のうちの1つによって同期化を達成す
る。もし相手ユニットが初期化され自己テストを完了
し、破断されていないと決定されているなら、それは、
破断線571上に、SYNC OUT信号をAND反転
ゲート573を通じてゲートするように回路572によ
って反転される信号レベルをもつ。
NC OUT信号を発行する、ユニット23のプロセッ
サのS/88対のうちの1つによって同期化を達成す
る。もし相手ユニットが初期化され自己テストを完了
し、破断されていないと決定されているなら、それは、
破断線571上に、SYNC OUT信号をAND反転
ゲート573を通じてゲートするように回路572によ
って反転される信号レベルをもつ。
もとのシステム88(例えばモジュール10)において
は、同期化信号が、線577及びインバータ574を介
してユニット14の駆動S/88プロセッサのSYNC
IN線580に印加された。それはまた、ユニット1
2、14の4つの全てのS/88プロセッサの「キック
オフ」を開始するために、Cバス及びインバータ576
を介してユニット12のチェック側S/88プロセッサ
のSYNC IN線575に印加される。
は、同期化信号が、線577及びインバータ574を介
してユニット14の駆動S/88プロセッサのSYNC
IN線580に印加された。それはまた、ユニット1
2、14の4つの全てのS/88プロセッサの「キック
オフ」を開始するために、Cバス及びインバータ576
を介してユニット12のチェック側S/88プロセッサ
のSYNC IN線575に印加される。
改良されたS/370−S/88(参照番号21、23
など)ユニットにおいては、回路573の出力577
は、S/88プロセッサのキックオフを防止するために
SYNC IN線580及び575から切り放される。
そのかわりに、出力577は、相手ユニット21(第4
9図)のBCU156中のフリップフロップ582をセ
ットするために線581を介して接続される。それはま
た、ユニット21中の相手側BCU(図示しない)中の
対応するフリップフロップをもセットする。
など)ユニットにおいては、回路573の出力577
は、S/88プロセッサのキックオフを防止するために
SYNC IN線580及び575から切り放される。
そのかわりに、出力577は、相手ユニット21(第4
9図)のBCU156中のフリップフロップ582をセ
ットするために線581を介して接続される。それはま
た、ユニット21中の相手側BCU(図示しない)中の
対応するフリップフロップをもセットする。
以下の説明は、ユニット21中の単一のS/370及び
それの関連ハードウェアに関するものであるが、両方の
S/370エンティティが同様の様式で動作しているこ
とを理解されたい。
それの関連ハードウェアに関するものであるが、両方の
S/370エンティティが同様の様式で動作しているこ
とを理解されたい。
フリップフロップ582は、線583、OR回路292
a及び292(第20図参照)、割り込み論理293、
及び線IPO−2を介してS/88プロセッサ62にレ
ベル6割り込み信号を印加する。この動作は、S/37
0によるS/88同期信号の「トラッピング」と呼ばれ
る。
a及び292(第20図参照)、割り込み論理293、
及び線IPO−2を介してS/88プロセッサ62にレ
ベル6割り込み信号を印加する。この動作は、S/37
0によるS/88同期信号の「トラッピング」と呼ばれ
る。
さて、ユニット21のS/370エンティティが自己テ
ストと初期化ルーチン(STIR)を成功裡に実行し、
キックオフの用意ができていると仮定する。
ストと初期化ルーチン(STIR)を成功裡に実行し、
キックオフの用意ができていると仮定する。
他のDMAC及びBCUレベル6割り込みに関連して第
20図で説明したように、S/88プロセッサ62は、
線582上の同期化(SYNC)信号に応答して割り込
み肯定応答サイクルを開始する。プロセッサ62からの
肯定応答及び優先順位レベル信号は、論理281中でデ
コードされ、論理BCUバス要求がデコード論理281
の出力283と、ゲート291と、線287と、OR回
路284を介して線190上にもたらされる。
20図で説明したように、S/88プロセッサ62は、
線582上の同期化(SYNC)信号に応答して割り込
み肯定応答サイクルを開始する。プロセッサ62からの
肯定応答及び優先順位レベル信号は、論理281中でデ
コードされ、論理BCUバス要求がデコード論理281
の出力283と、ゲート291と、線287と、OR回
路284を介して線190上にもたらされる。
バス・サイクルが線191上でプロセッサ62に対して
許可された時、それは、(SYNC線583、AS線2
70、及びデコード線283とともに)ANDゲート2
94−4をしてIACK線258fに対して信号を印加
するようにイネーブルする。この信号は、BCUローカ
ル・バス223と、ドライバ・レシーバ218と、プロ
セッサ・バス161Dを介してS/88プロセッサ62
に対して適当なベクタ番号を印加するためにベクタ・ビ
ット論理584(第49図)に印加される。線258f
上の信号もまたフリップフロップ582をリセットす
る。
許可された時、それは、(SYNC線583、AS線2
70、及びデコード線283とともに)ANDゲート2
94−4をしてIACK線258fに対して信号を印加
するようにイネーブルする。この信号は、BCUローカ
ル・バス223と、ドライバ・レシーバ218と、プロ
セッサ・バス161Dを介してS/88プロセッサ62
に対して適当なベクタ番号を印加するためにベクタ・ビ
ット論理584(第49図)に印加される。線258f
上の信号もまたフリップフロップ582をリセットす
る。
S/370STIR機能が仮定のように既に完了してい
るなら、S/88プロセッサ62は、S/370同期化
のために割り込みルーチンの最初の命令にアクセスする
ためにプロセッサ62によって次に使用されるベクタ番
号を得るために読取サイクルを実行する。
るなら、S/88プロセッサ62は、S/370同期化
のために割り込みルーチンの最初の命令にアクセスする
ためにプロセッサ62によって次に使用されるベクタ番
号を得るために読取サイクルを実行する。
同期化ルーチンの最後の命令は、線586(第50図)
に同期化信号を印加する同期化コマンドを発生する。
に同期化信号を印加する同期化コマンドを発生する。
この信号は、相手ユニット21、23のS/88(及び
S/370)プロセッサを、ロックステップで「キック
オフ」するために、同期化線580及び575に印加さ
れる。
S/370)プロセッサを、ロックステップで「キック
オフ」するために、同期化線580及び575に印加さ
れる。
S/88処理ユニット「module start up.cm」の実行の
一部として、エミュレートされたサービス・プロセッサ
「IPLボタン押圧」機能ストリングがユニット21、
23中のS/370エンティティに送られる。DASD
アクセスなどの全IML機能を実行するのではなくて、
このIMLはS/88主記憶からのI/O処理とロード
を迂回する。EXEC370コードは既に、DASDか
らIPLコードをフェッチしそれをS/88主記憶に配
置して、IPLを待っている。IPLの最終ステップ
は、次に、位置0によって指定されたアドレスに制御を
渡すことである。
一部として、エミュレートされたサービス・プロセッサ
「IPLボタン押圧」機能ストリングがユニット21、
23中のS/370エンティティに送られる。DASD
アクセスなどの全IML機能を実行するのではなくて、
このIMLはS/88主記憶からのI/O処理とロード
を迂回する。EXEC370コードは既に、DASDか
らIPLコードをフェッチしそれをS/88主記憶に配
置して、IPLを待っている。IPLの最終ステップ
は、次に、位置0によって指定されたアドレスに制御を
渡すことである。
(B)マイクロコードのみの実現構成 初期電源投入(IPO)の結果、または電源障害回復
(PFR)の結果として電源投入されたPUボード。
(PFR)の結果として電源投入されたPUボード。
最初に、IPOの場合を考えてみる。
IPOによってS/88電源良好信号が確証された結
果、メンテナンス割り込みがS/88PROM181コ
ードを呼び出す。このコードは、ユニット21のS/8
8エンティティを同期させて、やはりPROM181中
にあるS/370STIRを呼び出す。S/370ST
IRは、これがIPOであるので、S/88及びそのオ
ペレーティング・システムの機能が必要である時に、初
期化し同期化させるために十分な機能がロードされてい
ない、と決定する。その結果、S/370は、さらなる
動作をすることなく、オペレーティング・システムのロ
ードへと進S/88PROM181へと戻る。オペレー
ティング・システム初期化の一部として、「スタートア
ップ」モジュールが呼び出される。このモジュールもま
た、PROM181中にあるS/370STIRを呼び
出す。このとき、STIRは、必要な機能が利用可能で
あると決定し、初期マイクロコード・ロード(IML)
自体を同期化するためにそれらを利用する。
果、メンテナンス割り込みがS/88PROM181コ
ードを呼び出す。このコードは、ユニット21のS/8
8エンティティを同期させて、やはりPROM181中
にあるS/370STIRを呼び出す。S/370ST
IRは、これがIPOであるので、S/88及びそのオ
ペレーティング・システムの機能が必要である時に、初
期化し同期化させるために十分な機能がロードされてい
ない、と決定する。その結果、S/370は、さらなる
動作をすることなく、オペレーティング・システムのロ
ードへと進S/88PROM181へと戻る。オペレー
ティング・システム初期化の一部として、「スタートア
ップ」モジュールが呼び出される。このモジュールもま
た、PROM181中にあるS/370STIRを呼び
出す。このとき、STIRは、必要な機能が利用可能で
あると決定し、初期マイクロコード・ロード(IML)
自体を同期化するためにそれらを利用する。
第2に、PFRの場合、 S/88電源良好信号がIPOによって確証された結
果、メンテナンス割り込みがS/88PROM181コ
ードを呼び出す。このコードは、ユニット21のS/8
8エンティティを同期させ、やはりPROM181中に
あるS/370STIRを呼び出す。S/370STI
Rは、これがPFRであるので、必要な機能が利用可能
であると決定してS/370エンティティまたはユニッ
ト21の同期及び初期化に進む。
果、メンテナンス割り込みがS/88PROM181コ
ードを呼び出す。このコードは、ユニット21のS/8
8エンティティを同期させ、やはりPROM181中に
あるS/370STIRを呼び出す。S/370STI
Rは、これがPFRであるので、必要な機能が利用可能
であると決定してS/370エンティティまたはユニッ
ト21の同期及び初期化に進む。
(5)一方のユニット21が正常に処理している間に相
手23が挿入された (A)ハードウェア実現構成 新しいボードの挿入時に、レベル6割り込みが現在のユ
ニット21のS/88エンティティに通知される。その
新しい処理ユニットがSTIRを走らせているとき、現
在の処理ユニットは、レベル6割り込みを認識すること
になる。そのレベル6割り込みは、優先使用されたタス
ク環境を保管する処理に向かい、以て新しい処理ユニッ
トがつながっているかどうか判断し、そうである時、割
り込みから戻る。割り込みからの戻り機能の結果、2つ
のユニットがロックステップされた同期へと降りてき
て、優先使用されたタスクを再開する。
手23が挿入された (A)ハードウェア実現構成 新しいボードの挿入時に、レベル6割り込みが現在のユ
ニット21のS/88エンティティに通知される。その
新しい処理ユニットがSTIRを走らせているとき、現
在の処理ユニットは、レベル6割り込みを認識すること
になる。そのレベル6割り込みは、優先使用されたタス
ク環境を保管する処理に向かい、以て新しい処理ユニッ
トがつながっているかどうか判断し、そうである時、割
り込みから戻る。割り込みからの戻り機能の結果、2つ
のユニットがロックステップされた同期へと降りてき
て、優先使用されたタスクを再開する。
(B)マイクロコードのみの実現構成 新しいボードが挿入された結果として、メンテナンス割
り込みがS/88PROM181コードを呼び出す。こ
のコードは、ユニット21のS/88エンティティを再
同期化させ、次に、やはりPROM181中にあるS/
370STIRを呼び出す。S/370STIRは、こ
れがPFRに類似しているので、必要な機能は利用可能
であると決定して、ユニット21のS/370エンティ
ティの同期化及び初期化に進む。
り込みがS/88PROM181コードを呼び出す。こ
のコードは、ユニット21のS/88エンティティを再
同期化させ、次に、やはりPROM181中にあるS/
370STIRを呼び出す。S/370STIRは、こ
れがPFRに類似しているので、必要な機能は利用可能
であると決定して、ユニット21のS/370エンティ
ティの同期化及び初期化に進む。
(6)相手が比較障害を検出する (A)ハードウェア実現構成 故障の処理ユニットは、正常動作処理ユニットが強制さ
れたレベル6割り込みによって割り込まれる間にSTI
Rに強制されることになる。レベル6割り込みサービス
・サブルーチンは、優先使用されたタスク環境の保存へ
と赴き、新しい処理ユニットがつながっているかどうか
決定し、そうであるとき割り込みから戻る。割り込みか
らの戻りの機能として、その2つのユニットは、ロック
ステップされた同期化へと降りてきて優先使用されたタ
スクを再開する。障害処理ユニットがそのSTIRから
正しく脱出することに失敗すると(例えば1度、または
予め選択された回数)、正常動作処理ユニットが、適当
な時間の後、障害処理ユニットのS/88部分とそのさ
まざまな状況報告機能に「破断」をセットする。
れたレベル6割り込みによって割り込まれる間にSTI
Rに強制されることになる。レベル6割り込みサービス
・サブルーチンは、優先使用されたタスク環境の保存へ
と赴き、新しい処理ユニットがつながっているかどうか
決定し、そうであるとき割り込みから戻る。割り込みか
らの戻りの機能として、その2つのユニットは、ロック
ステップされた同期化へと降りてきて優先使用されたタ
スクを再開する。障害処理ユニットがそのSTIRから
正しく脱出することに失敗すると(例えば1度、または
予め選択された回数)、正常動作処理ユニットが、適当
な時間の後、障害処理ユニットのS/88部分とそのさ
まざまな状況報告機能に「破断」をセットする。
(B)マイクロコードのみの実現構成 比較障害検出とボードの結果、メンテナンス割り込みは
S/88PROM181コードを呼び出す。このコード
は、ユニット21のS/88エンティティを再同期化
し、次に、やはりPROM181中にあるS/370S
TIRを呼び出す。S/370STIRは、これがPF
Rに類似していることから、必要に機能が利用可能であ
ると判断してユニット21のS/370エンティティの
同期化及び初期化に進む。さらなる比較もまた、それと
同じ動作の反復をもたらす。予定の回数の反復の後、そ
のボードは永久的に断線され、障害が報告される。
S/88PROM181コードを呼び出す。このコード
は、ユニット21のS/88エンティティを再同期化
し、次に、やはりPROM181中にあるS/370S
TIRを呼び出す。S/370STIRは、これがPF
Rに類似していることから、必要に機能が利用可能であ
ると判断してユニット21のS/370エンティティの
同期化及び初期化に進む。さらなる比較もまた、それと
同じ動作の反復をもたらす。予定の回数の反復の後、そ
のボードは永久的に断線され、障害が報告される。
別の実施例 別の(非S/88)フォールト・トレラント・システム
における使用 好適の実施例においては、ハードウェア・フォールト・
トレランスは、少なくとも3つの特徴をもつものとして
示される。すなわち、システムの別の要素に対してデー
タ・エラーの伝搬を生じることなく、現場で交換可能な
故障ユニットを、瞬間的に電気的に分離することと、必
要に応じてまたは要素が故障した時に要素を除去しまた
は追加するために動的再構成コードが与えられているこ
と、及びシステムの無駄なくサブシステムまたは現場で
交換可能な故障ユニットから電力を取り去ることができ
るという能力、すなわち、ホットプラグ可能性である。
における使用 好適の実施例においては、ハードウェア・フォールト・
トレランスは、少なくとも3つの特徴をもつものとして
示される。すなわち、システムの別の要素に対してデー
タ・エラーの伝搬を生じることなく、現場で交換可能な
故障ユニットを、瞬間的に電気的に分離することと、必
要に応じてまたは要素が故障した時に要素を除去しまた
は追加するために動的再構成コードが与えられているこ
と、及びシステムの無駄なくサブシステムまたは現場で
交換可能な故障ユニットから電力を取り去ることができ
るという能力、すなわち、ホットプラグ可能性である。
そして、ユーザーは、機能または性能の低下を感じるこ
とはないのである。この改良は、上記の厳密な必要条件
のあるものを欠く異なるソフトウェア・フォールト・ト
レラント・システムで使用することもできることを理解
されたい。
とはないのである。この改良は、上記の厳密な必要条件
のあるものを欠く異なるソフトウェア・フォールト・ト
レラント・システムで使用することもできることを理解
されたい。
本願発明を適用することがてきるけれども上記の厳密な
必要条件のあるものを欠く異なる別のシステムが米国特
許第4356550号に示されている。その米国特許の
第1図において、3つのサブシステムが互いに非同期的
に動作し、2重化されたバスに結合されている。そし
て、もし1つのサブシステムが故障したら、残りの2つ
がプログラム実行を続ける。全てのエラーは、本発明の
好適な実施例のように瞬間的ではなく、プログラム中の
チェック・ポイントで決定される。
必要条件のあるものを欠く異なる別のシステムが米国特
許第4356550号に示されている。その米国特許の
第1図において、3つのサブシステムが互いに非同期的
に動作し、2重化されたバスに結合されている。そし
て、もし1つのサブシステムが故障したら、残りの2つ
がプログラム実行を続ける。全てのエラーは、本発明の
好適な実施例のように瞬間的ではなく、プログラム中の
チェック・ポイントで決定される。
該米国特許のサブシステムとは異なる、S/370プロ
セッサなどのプロセッサは、S/88に関連してここで
示したのと同様の様式でそのサブシステムに接続するこ
とができる。そして、本発明のアドレス・ストローブ
(AS)線に関連して説明したのと同様の様式で該米国
特許のサブシステム中の選択線を使用し且つ制御するこ
とにより、そのサブシステムのプロセッサを、それらを
寄生的な接続異種プロセッサのI/Oコントローラとし
ての使用を可能ならしめるために切り放すことができ
る。
セッサなどのプロセッサは、S/88に関連してここで
示したのと同様の様式でそのサブシステムに接続するこ
とができる。そして、本発明のアドレス・ストローブ
(AS)線に関連して説明したのと同様の様式で該米国
特許のサブシステム中の選択線を使用し且つ制御するこ
とにより、そのサブシステムのプロセッサを、それらを
寄生的な接続異種プロセッサのI/Oコントローラとし
ての使用を可能ならしめるために切り放すことができ
る。
(2)S/88 I/OコントローラとS/370主記
憶の間の直接データ転送 好適な実施例では、キャッシュ340を(全ての有効I
/Oデータを記憶する記憶162ではなく)ある有効I
/Oデータの排他的記憶のために使用することができる
と仮定する(このことは、現在の典型的キャッシュ・シ
ステムにおいてそうである)。記憶162が全ての有効
I/Oデータを記憶すると仮定されている第51図の実
施例では、I/Oデータ転送を、、ディスク・コントロ
ーラ20などのS/88 I/O装置と、S/370記
憶162の間でより効率的な動作のために直接行うこと
ができる。
憶の間の直接データ転送 好適な実施例では、キャッシュ340を(全ての有効I
/Oデータを記憶する記憶162ではなく)ある有効I
/Oデータの排他的記憶のために使用することができる
と仮定する(このことは、現在の典型的キャッシュ・シ
ステムにおいてそうである)。記憶162が全ての有効
I/Oデータを記憶すると仮定されている第51図の実
施例では、I/Oデータ転送を、、ディスク・コントロ
ーラ20などのS/88 I/O装置と、S/370記
憶162の間でより効率的な動作のために直接行うこと
ができる。
しかし、この代替実施例では、BCU156は依然とし
てS/370 I/OコマンドをS/88に変換するた
めに使用されなくてはならない。そのコマンドに関連付
けられたシステム370記憶アドレスは、そのコマンド
がS/88コマンドに変換されつつある間に、EXEC
370によってS/88物理的アドレスに変更されなく
てはならない。
てS/370 I/OコマンドをS/88に変換するた
めに使用されなくてはならない。そのコマンドに関連付
けられたシステム370記憶アドレスは、そのコマンド
がS/88コマンドに変換されつつある間に、EXEC
370によってS/88物理的アドレスに変更されなく
てはならない。
記憶162からI/O装置へのデータ転送の間に、1つ
の方法は、I/O動作を開始する前に記憶162に対し
て、I/O動作に関連するキャッシュの区画を先ずフラ
ッシュすることである。
の方法は、I/O動作を開始する前に記憶162に対し
て、I/O動作に関連するキャッシュの区画を先ずフラ
ッシュすることである。
I/O装置から記憶162へのデータ変換の間に、I/
O動作に関連するキャッシュの区画は、I/O動作を実
行する前に無効化される。
O動作に関連するキャッシュの区画は、I/O動作を実
行する前に無効化される。
もしデータ変換が必要なら、S/88プロセッサ62内
でEXEC370によって使用されるのと同様のルーチ
ンによってその機能をI/O装置コントローラ中で実行
することができる。
でEXEC370によって使用されるのと同様のルーチ
ンによってその機能をI/O装置コントローラ中で実行
することができる。
データ変換はまた、ASCCIからEBCDEC変換な
どのS/88 OS中の変換ルーチンを呼び出すEXE
C370アプリケーション・プログラムによって実行し
てもよい。
どのS/88 OS中の変換ルーチンを呼び出すEXE
C370アプリケーション・プログラムによって実行し
てもよい。
(3)直接接続された対の両プロセッサの切り放し 第52図は、直接結合されたプロセッサの対の両方が、
好ましくは、それらのプロセッサの間で、それらのオペ
レーティング・システムに透過的な様式でコマンドまた
はデータを転移するために好適な実施例のS/88プロ
セッサ62に関連して説明されたのと同様な様式で、関
連ハードウェアから切り放される代替実施例のためのデ
ータ・フローを示す図である。
好ましくは、それらのプロセッサの間で、それらのオペ
レーティング・システムに透過的な様式でコマンドまた
はデータを転移するために好適な実施例のS/88プロ
セッサ62に関連して説明されたのと同様な様式で、関
連ハードウェアから切り放される代替実施例のためのデ
ータ・フローを示す図である。
2つのプロセッサ640、641は、プロセッサ・バス
642、643と、ドライバ・レシーバ回路644、6
45と、共通ローカル記憶ユニット646を介して互い
に結合される。プロセッサ640及び641は、アーチ
テクチャとオペレーティング・システムが同じでもよく
異なっていてもよい。各プロセッサ640及び641
は、個別のオペレーティング・システムの制御の下での
プログラムの通常処理のための主記憶及びI/O装置を
含む自己専用のハードウェア(図示しない)をもってい
てもよい。どちらのオペレーティング・システムも、互
いのオペレーティング・システムに関連付けられている
プロセッサの存在も、それに結合されていることも知ら
ない。
642、643と、ドライバ・レシーバ回路644、6
45と、共通ローカル記憶ユニット646を介して互い
に結合される。プロセッサ640及び641は、アーチ
テクチャとオペレーティング・システムが同じでもよく
異なっていてもよい。各プロセッサ640及び641
は、個別のオペレーティング・システムの制御の下での
プログラムの通常処理のための主記憶及びI/O装置を
含む自己専用のハードウェア(図示しない)をもってい
てもよい。どちらのオペレーティング・システムも、互
いのオペレーティング・システムに関連付けられている
プロセッサの存在も、それに結合されていることも知ら
ない。
この代替実施例のプロセッサ640がしかし、プロセッ
サ641にコマンドまたはデータを送るためにアプリケ
ーション・プログラムによって制御される時、プロセッ
サ640は好適には、回路644をして、プロセッサ6
40から記憶646へコマンド及びデータを転送するた
めに、ローカル・バス652を介してバス642をロー
カル記憶646へ結合させるために論理648によって
デコードされる予定のアドレスをプロセッサ・アドレス
・バス647上に配置する。そのアドレスのデコードは
また、転送をプロセッサ640のオペレーティング・シ
ステムに対して透過的にするためにプロセッサ640を
その関連ハードウェアから切り放させる。
サ641にコマンドまたはデータを送るためにアプリケ
ーション・プログラムによって制御される時、プロセッ
サ640は好適には、回路644をして、プロセッサ6
40から記憶646へコマンド及びデータを転送するた
めに、ローカル・バス652を介してバス642をロー
カル記憶646へ結合させるために論理648によって
デコードされる予定のアドレスをプロセッサ・アドレス
・バス647上に配置する。そのアドレスのデコードは
また、転送をプロセッサ640のオペレーティング・シ
ステムに対して透過的にするためにプロセッサ640を
その関連ハードウェアから切り放させる。
切り放し制御論理649は、プロセッサ641のための
I/OコマンドまたはI/Oコマンドがローカル記憶6
46に転送された時、プロセッサ641に割り込みをか
ける。プロセッサ641は(そのアプリケーション・プ
ログラム割り込みハンドラを介して)そのハードウェア
から切り放され、記憶646から、そのオペレーティン
グ・システムに透過的な様式でその主記憶(図示しな
い)にコマンドまたはデータを読み込む。もしコマンド
またはデータが変換を必要とするなら、プロセッサ64
1は、その必要な変換を実行するために記憶650中の
エミュレーション・マイクロコードを利用する。プロセ
ッサ641は次に、そのオペレーティング・システムの
制御の下で、変換されたコマンドを処理する。
I/OコマンドまたはI/Oコマンドがローカル記憶6
46に転送された時、プロセッサ641に割り込みをか
ける。プロセッサ641は(そのアプリケーション・プ
ログラム割り込みハンドラを介して)そのハードウェア
から切り放され、記憶646から、そのオペレーティン
グ・システムに透過的な様式でその主記憶(図示しな
い)にコマンドまたはデータを読み込む。もしコマンド
またはデータが変換を必要とするなら、プロセッサ64
1は、その必要な変換を実行するために記憶650中の
エミュレーション・マイクロコードを利用する。プロセ
ッサ641は次に、そのオペレーティング・システムの
制御の下で、変換されたコマンドを処理する。
尚、プロセッサ640及び641の「切り放し」が、各
プロセッサのハードウェアに対する「再結合」が許可さ
れる前に、記憶646との間のコマンドまたはデータの
実質的なセグメントの連続的な転送を許可することがで
きるものであることを認識されたい。このようにして、
高速且つ効率的なデータ転送が達成される。
プロセッサのハードウェアに対する「再結合」が許可さ
れる前に、記憶646との間のコマンドまたはデータの
実質的なセグメントの連続的な転送を許可することがで
きるものであることを認識されたい。このようにして、
高速且つ効率的なデータ転送が達成される。
コマンドまたはデータは、プロセッサ641からプロセ
ッサ640へ同様にして逆方向に転送され得る。コマン
ドまたはデータは、記憶651中にあるエミュレーショ
ン・マイクロコードによって必要とされるところで変換
することができ、変換されたコマンドは、そのオペレー
ティング・システムの制御の下でプロセッサ640中で
処理することができる。
ッサ640へ同様にして逆方向に転送され得る。コマン
ドまたはデータは、記憶651中にあるエミュレーショ
ン・マイクロコードによって必要とされるところで変換
することができ、変換されたコマンドは、そのオペレー
ティング・システムの制御の下でプロセッサ640中で
処理することができる。
この代替実施例は、ある重要な観点において前記好適な
実施例とは異なる。すなわち、データ転送を「開始す
る」プロセッサが、「受信側」プロセッサへデータを転
送するためにそのハードウェアから切り放されるという
ことである。このことは、I/O機能(別のプロセッサ
へのコマンドまたはデータの転送)が実行されるべきと
き好適な実施例のEXEC370/ETIOに類似する
アプリケーション・プログラムに制御を渡すための追加
機能を要する。
実施例とは異なる。すなわち、データ転送を「開始す
る」プロセッサが、「受信側」プロセッサへデータを転
送するためにそのハードウェアから切り放されるという
ことである。このことは、I/O機能(別のプロセッサ
へのコマンドまたはデータの転送)が実行されるべきと
き好適な実施例のEXEC370/ETIOに類似する
アプリケーション・プログラムに制御を渡すための追加
機能を要する。
オペレーティング・システムからアプリケーション・プ
ログラムへあるI/O機能のための制御を転送すること
を行うための手段は、そのシステムの特性に依存する。
ログラムへあるI/O機能のための制御を転送すること
を行うための手段は、そのシステムの特性に依存する。
例えば、好適な実施例では、S/370はI/O開始命
令を実行し、これはS/370プロセッサをその関連ハ
ードウェアから「切り放す」ことなく通常の様式でオペ
レーティング・システムによって処理される。
令を実行し、これはS/370プロセッサをその関連ハ
ードウェアから「切り放す」ことなく通常の様式でオペ
レーティング・システムによって処理される。
第52図の好適な実施例では、例えば、S/370プロ
セッサ640がコマンドまたはデータをプロセッサ64
0に送るとき、I/O開始命令でなく選択された無効O
Pコードを使用することができる。選択されたOPコー
ドのハードウェアまたはマイクロコード・デコードは、
記憶646を介してのプロセッサ641による情報転送
のためにS/370をそのハードウェアから「切り放
す」特殊なアプリケーション・プログラムに制御を渡
す。
セッサ640がコマンドまたはデータをプロセッサ64
0に送るとき、I/O開始命令でなく選択された無効O
Pコードを使用することができる。選択されたOPコー
ドのハードウェアまたはマイクロコード・デコードは、
記憶646を介してのプロセッサ641による情報転送
のためにS/370をそのハードウェアから「切り放
す」特殊なアプリケーション・プログラムに制御を渡
す。
記憶646に対して一方のプロセッサによって転送され
たデータの別のプロセッサによる上書きを防止するため
に、プロセッサ640は記憶646のある特定区画にの
み書込を行うように制御することができ、そうしてプロ
セッサ641は、その区画からしか読取を行わないよう
に制御される。プロセッサ641は記憶646の第2の
区画にのみ書込を行うことしか許可されず、プロセッサ
640は、その第2の区画からのみ読取を許可される。
プロセッサ640及び641は、それぞれ第2及び第1
の区画への書込を禁止される。
たデータの別のプロセッサによる上書きを防止するため
に、プロセッサ640は記憶646のある特定区画にの
み書込を行うように制御することができ、そうしてプロ
セッサ641は、その区画からしか読取を行わないよう
に制御される。プロセッサ641は記憶646の第2の
区画にのみ書込を行うことしか許可されず、プロセッサ
640は、その第2の区画からのみ読取を許可される。
プロセッサ640及び641は、それぞれ第2及び第1
の区画への書込を禁止される。
切り放し及び割り込み機構は、前記好適な実施例のS/
88プロセッサ62に関連して説明した両プロセッサ6
40及び641のオペレーティング・システムに透過的
に動作する。
88プロセッサ62に関連して説明した両プロセッサ6
40及び641のオペレーティング・システムに透過的
に動作する。
エミュレーション機構は、前記好適な実施例でEXEC
370に関連して説明した様式で(ローカル記憶のマイ
クロコードによるのではなく)アプリケーション・プロ
グラムによって実行することができる。
370に関連して説明した様式で(ローカル記憶のマイ
クロコードによるのではなく)アプリケーション・プロ
グラムによって実行することができる。
プロセッサ640、641の間でデータを転送するため
に割り込み機構でなくポーリング技術を使用することも
できるが、そのような技術は非効率的であろう。
に割り込み機構でなくポーリング技術を使用することも
できるが、そのような技術は非効率的であろう。
また、どちらかのプロセッサ640及び641が他方の
プロセッサのためのI/O動作を実行することができる
ので、どちらのプロセッサも、他方のプロセッサのI/
O環境特性のうちのあるものを獲得することができる。
プロセッサのためのI/O動作を実行することができる
ので、どちらのプロセッサも、他方のプロセッサのI/
O環境特性のうちのあるものを獲得することができる。
さらに、一方のプロセッサのあるアプリケーション・プ
ログラムは、どちらのプロセッサ・システムのオペレー
ティング・システムのサービスも使用することなく、第
2のプロセッサ中の同様の、または異なるアプリケーシ
ョン・プログラムと通信することができる。
ログラムは、どちらのプロセッサ・システムのオペレー
ティング・システムのサービスも使用することなく、第
2のプロセッサ中の同様の、または異なるアプリケーシ
ョン・プログラムと通信することができる。
尚、ここでは、「アプリケーション・プログラムまたは
コード」という用語が、データ処理技術分野の熟練した
当業者によって理解されているような慣用的な意味で使
用されている。すなわち、それは、典型的には、次のよ
うな点でオペレーティング・システムと異なっている。
コード」という用語が、データ処理技術分野の熟練した
当業者によって理解されているような慣用的な意味で使
用されている。すなわち、それは、典型的には、次のよ
うな点でオペレーティング・システムと異なっている。
1)アプリケーション・プログラムは、オペレーティン
グ・システムの上方に位置し、典型的には、読取、書
込、I/O制御、時間遅延などのサービスのために、オ
ペレーティング・システムを呼び出さなくてはならな
い。
グ・システムの上方に位置し、典型的には、読取、書
込、I/O制御、時間遅延などのサービスのために、オ
ペレーティング・システムを呼び出さなくてはならな
い。
2)アプリケーション・コードは、ユーザーによって開
始され、オペレーティング・システム・サービスによっ
てロードされる。
始され、オペレーティング・システム・サービスによっ
てロードされる。
3)オペレーティング・システムは、アプリケーション
・プログラムの記憶のページ・イン及びアウトを制御す
る。
・プログラムの記憶のページ・イン及びアウトを制御す
る。
4)オペレーティング・システムは、主記憶をアプリケ
ーション・プログラムに割り振る。しかし、そのような
「アプリケーション」コードは、今では実行のための追
加機能を与えられている。
ーション・プログラムに割り振る。しかし、そのような
「アプリケーション」コードは、今では実行のための追
加機能を与えられている。
また、「異種」という用語は、オペレーティング・シス
テムに知られていない装置を定義するために使用されて
いる。というのは、これは、オペレーティング・システ
ムの構成テーブル中では定義されておらず、従って、オ
ペレーティング・システムはその装置に対するサービス
・ドライバをもたず、その装置を制御することができな
いからである。しかし、オペレーティング・システム上
で走る特殊なアプリケーション・プログラムがその装置
を認識し、その装置上に特殊な制御を行うことができ
る。
テムに知られていない装置を定義するために使用されて
いる。というのは、これは、オペレーティング・システ
ムの構成テーブル中では定義されておらず、従って、オ
ペレーティング・システムはその装置に対するサービス
・ドライバをもたず、その装置を制御することができな
いからである。しかし、オペレーティング・システム上
で走る特殊なアプリケーション・プログラムがその装置
を認識し、その装置上に特殊な制御を行うことができ
る。
さらに、「透過的」という用語は、オペレーティング・
システムが、そのオペレーティング・システム上で走っ
ているプロセッサに接続された異種装置に気づかない、
または、そのプロセッサによって処理が行なわれ、オペ
レーティング・システムがそのような動作を拒絶しない
ようにそれらの動作がそのオペレーティング・システム
から分離されている、という意味で使用される。
システムが、そのオペレーティング・システム上で走っ
ているプロセッサに接続された異種装置に気づかない、
または、そのプロセッサによって処理が行なわれ、オペ
レーティング・システムがそのような動作を拒絶しない
ようにそれらの動作がそのオペレーティング・システム
から分離されている、という意味で使用される。
F.発明の効果 以上説明したように、この発明によれば、異なるタイプ
のオペレーティング・システムを走らせる異なるタイプ
のプロセッサを接続したフォールト・トレラント・シス
テムが提供される。
のオペレーティング・システムを走らせる異なるタイプ
のプロセッサを接続したフォールト・トレラント・シス
テムが提供される。
第1図は、S/370プロセッサのS/88プロセッサ
への接続を図式的に示す図、 第2図は、S/88システムに接続されたS/370シ
ステムを図式的に示す図、 第3図は、通信回線を利用した標準的な相互接続コンピ
ュータ・システムを図式的に示す図、 第4図は、フォールト・トレラント環境におけるS/8
8プロセッサの相互接続を図式的に示す図、 第5図は、S/370とS/88の間でデータ交換を行
うための、S/88プロセッサの切り放しを図式的に示
す図、 第6A、6B及び6C図は、HSDIによって相互接続
された従来のIBM システム/88を図式的に示す
図、 第7図は、S/88との接続によってフォールト・トレ
ラントとなされ、S/370オペレーティング・システ
ムの制御の下でS/370アプリケーション・プログラ
ムを実行するS/370プロセッサを提供する本発明の
構成を図式的に示す図、 第8図は、S/370とS/88の接続構成をより詳細
に説明するブロック図、 第9A及び第9B図は、2つのボード上にS/370と
S/88のユニットを物理的にパッケージした様子を示
す図、 第10図は、S/370プロセッサ・ユニットに提供さ
れたS/88主記憶の区画を概念的に示す図、 第11図は、S/370プロセッサの、S/88への接
続を図る要素を示す図、 第12図は、第11図及びS/88のさまざまな要素を
より詳細に示す図、 第13図は、S/370バス・アダプタを図式的に示す
図、 第14A、14B図と、第15A乃至15C図は、S/
370バス・アダプタの出力チャネルの信号のタイミン
グと移動を示す図、 第16図は、S/370及びS/88プロセッサの間の
直接相互接続を図式的に示す図、 第17図は、S/370バス・アダプタと、第16図の
相互接続の間のデータ・フローを図式的に示す図、 第18図は、4つのチャネルのうちの1つのDMACレ
ジスタを示す図、 第19図は、第19A、19B、及び19C図の組合せ
を示す図、 第19A、19B、及び19C図は、S/370プロセ
ッサをS/88プロセッサ及び主記憶に相互接続するバ
ス制御ユニットの詳細なブロック図、 第20図は、S/88プロセッサをその関連ハードウェ
アから切り放す論理と、異種S/370プロセッサから
S/88プロセッサへの割り込み要求を処理する論理の
好適な形式のブロック図、 第21図は、本発明の教示に従う、相互接続された複数
のS/370−S/88プロセッサをもつモジュールの
ための、既存のS/88割り込み構造の変更を示す図、 第22、23及び24図は、S/88プロセッサの好適
な形式の読取、書込及び割り込み肯定応答サイクルのタ
イミング図、 第25及び26図は、メイルボックス読取コマンド、キ
ュー・セレクト・アップ・コマンド、BSM読取コマン
ド及びBSM書込コマンドの間のアダプタ・バス・チャ
ネル0、1のハンドシェーク・タイミング図を示す図、 第27図は、S/370中央処理要素の好適な形式のブ
ロック図、 第28及び29図は、S/370主記憶及び制御記憶の
ある領域を示す図、 第30図は、S/370中央処理要素と、I/Oアダプ
タと、キャッシュ・コントローラと、記憶制御インター
フェースと、S/88プロセッサ・バス及びプロセッサ
の間のインターフェース・バスを示す図、 第31図は、S/370キャッシュ・コントローラの好
適な形式を示すブロック図、 第32図は、第32A及び32B図の組合せを示す図、 第32A及び32B図は、記憶制御インターフェースの
好適な形式を示すブロック図、 第33図は、バス上のユニット間のデータ転送のための
S/88システム・バス・フェーズを示すタイミング
図、 第34図は、対の記憶制御インターフェースの「データ
・イン」レジスタを示す部分的な図、 第35図は、第32B図のFIFO中に記憶されるコマ
ンド及びデータ・ワードのフォーマットを示す図、 第36A乃至D図は、記憶制御インターフェース中で実
行されるS/370プロセッサ及びアダプタからの記憶
及びフェッチ・コマンドを示す図、 第37図は、プログラマの観点からの、本発明のシステ
ムの全体図を示すブロック図、 第38、39及び40図は、S/370及びS/88イ
ンターフェースと、S/370 I/Oコマンド実行
と、EXEC370ソフトウェア及びS/370 I/
Oドライバの区画のためのマイクロコード・デザインの
好適な形式を図式的に示す図、 第41A及び41B図は、EXEC370ソフトウェア
とS/370マイクロコードの間、及びETIOマイク
ロコードとEXEC370ソフトウェアの間のインター
フェース及びプロトコルを概念的に示す図、 第41C乃至41H図は、BCUローカル記憶の内容を
示す図、 第42図は、EXEC370、ETIO、S/370マ
イクロコード及びS/370−S/88結合ハードウェ
アの間のプロトコルに関連する、リンク・リスト及びキ
ューを通じてのワーク・キュー・バッファの動作を示す
図、 第43図は、典型的なS/370 I/O開始命令の実
行を概念的に示す図、 第44A乃至44L図は、S/370マイクロコードと
EXEC370がS/370 I/O命令を実行するた
めに互いに通信するときのそれらの制御/データ・フロ
ーを図式的に示す図、 第45A乃至45AG図は、BCU内のデータ転送動作
の間のBCU中のローカル・アドレス及びデータ・バス
上のデータ、コマンド及び状況情報を示す図、 第46A乃至46K図は、S/88がS/370 I/
O命令に応答してS/370フォーマットでS/88デ
ィスク上に情報を記憶及びフェッチするディスク・エミ
ュレーション処理を示す図、 第47図は、1つのS/370記憶領域を組み込むため
に一部が除去される、S/88記憶マップ・エントリと
ともに第10図のメモリ・マッピングを示す図、 第48A乃至48K図は、S/88物理記憶内にS/3
70記憶領域を作成するために、システム・スタートア
ップ及び再構成ルーチンの間に新しく与えられたサブル
ーチンと対話することができるS/88のための仮想/
物理的記憶管理の好適な形式を示す図、 第49及び50図は、S/370−S/88プロセッサ
対と組みのユニットを同期化させるために使用される論
理のうちのあるものを示す部分的ブロック図、 第51及び52図は、本発明の他の実施例を示す図であ
る。
への接続を図式的に示す図、 第2図は、S/88システムに接続されたS/370シ
ステムを図式的に示す図、 第3図は、通信回線を利用した標準的な相互接続コンピ
ュータ・システムを図式的に示す図、 第4図は、フォールト・トレラント環境におけるS/8
8プロセッサの相互接続を図式的に示す図、 第5図は、S/370とS/88の間でデータ交換を行
うための、S/88プロセッサの切り放しを図式的に示
す図、 第6A、6B及び6C図は、HSDIによって相互接続
された従来のIBM システム/88を図式的に示す
図、 第7図は、S/88との接続によってフォールト・トレ
ラントとなされ、S/370オペレーティング・システ
ムの制御の下でS/370アプリケーション・プログラ
ムを実行するS/370プロセッサを提供する本発明の
構成を図式的に示す図、 第8図は、S/370とS/88の接続構成をより詳細
に説明するブロック図、 第9A及び第9B図は、2つのボード上にS/370と
S/88のユニットを物理的にパッケージした様子を示
す図、 第10図は、S/370プロセッサ・ユニットに提供さ
れたS/88主記憶の区画を概念的に示す図、 第11図は、S/370プロセッサの、S/88への接
続を図る要素を示す図、 第12図は、第11図及びS/88のさまざまな要素を
より詳細に示す図、 第13図は、S/370バス・アダプタを図式的に示す
図、 第14A、14B図と、第15A乃至15C図は、S/
370バス・アダプタの出力チャネルの信号のタイミン
グと移動を示す図、 第16図は、S/370及びS/88プロセッサの間の
直接相互接続を図式的に示す図、 第17図は、S/370バス・アダプタと、第16図の
相互接続の間のデータ・フローを図式的に示す図、 第18図は、4つのチャネルのうちの1つのDMACレ
ジスタを示す図、 第19図は、第19A、19B、及び19C図の組合せ
を示す図、 第19A、19B、及び19C図は、S/370プロセ
ッサをS/88プロセッサ及び主記憶に相互接続するバ
ス制御ユニットの詳細なブロック図、 第20図は、S/88プロセッサをその関連ハードウェ
アから切り放す論理と、異種S/370プロセッサから
S/88プロセッサへの割り込み要求を処理する論理の
好適な形式のブロック図、 第21図は、本発明の教示に従う、相互接続された複数
のS/370−S/88プロセッサをもつモジュールの
ための、既存のS/88割り込み構造の変更を示す図、 第22、23及び24図は、S/88プロセッサの好適
な形式の読取、書込及び割り込み肯定応答サイクルのタ
イミング図、 第25及び26図は、メイルボックス読取コマンド、キ
ュー・セレクト・アップ・コマンド、BSM読取コマン
ド及びBSM書込コマンドの間のアダプタ・バス・チャ
ネル0、1のハンドシェーク・タイミング図を示す図、 第27図は、S/370中央処理要素の好適な形式のブ
ロック図、 第28及び29図は、S/370主記憶及び制御記憶の
ある領域を示す図、 第30図は、S/370中央処理要素と、I/Oアダプ
タと、キャッシュ・コントローラと、記憶制御インター
フェースと、S/88プロセッサ・バス及びプロセッサ
の間のインターフェース・バスを示す図、 第31図は、S/370キャッシュ・コントローラの好
適な形式を示すブロック図、 第32図は、第32A及び32B図の組合せを示す図、 第32A及び32B図は、記憶制御インターフェースの
好適な形式を示すブロック図、 第33図は、バス上のユニット間のデータ転送のための
S/88システム・バス・フェーズを示すタイミング
図、 第34図は、対の記憶制御インターフェースの「データ
・イン」レジスタを示す部分的な図、 第35図は、第32B図のFIFO中に記憶されるコマ
ンド及びデータ・ワードのフォーマットを示す図、 第36A乃至D図は、記憶制御インターフェース中で実
行されるS/370プロセッサ及びアダプタからの記憶
及びフェッチ・コマンドを示す図、 第37図は、プログラマの観点からの、本発明のシステ
ムの全体図を示すブロック図、 第38、39及び40図は、S/370及びS/88イ
ンターフェースと、S/370 I/Oコマンド実行
と、EXEC370ソフトウェア及びS/370 I/
Oドライバの区画のためのマイクロコード・デザインの
好適な形式を図式的に示す図、 第41A及び41B図は、EXEC370ソフトウェア
とS/370マイクロコードの間、及びETIOマイク
ロコードとEXEC370ソフトウェアの間のインター
フェース及びプロトコルを概念的に示す図、 第41C乃至41H図は、BCUローカル記憶の内容を
示す図、 第42図は、EXEC370、ETIO、S/370マ
イクロコード及びS/370−S/88結合ハードウェ
アの間のプロトコルに関連する、リンク・リスト及びキ
ューを通じてのワーク・キュー・バッファの動作を示す
図、 第43図は、典型的なS/370 I/O開始命令の実
行を概念的に示す図、 第44A乃至44L図は、S/370マイクロコードと
EXEC370がS/370 I/O命令を実行するた
めに互いに通信するときのそれらの制御/データ・フロ
ーを図式的に示す図、 第45A乃至45AG図は、BCU内のデータ転送動作
の間のBCU中のローカル・アドレス及びデータ・バス
上のデータ、コマンド及び状況情報を示す図、 第46A乃至46K図は、S/88がS/370 I/
O命令に応答してS/370フォーマットでS/88デ
ィスク上に情報を記憶及びフェッチするディスク・エミ
ュレーション処理を示す図、 第47図は、1つのS/370記憶領域を組み込むため
に一部が除去される、S/88記憶マップ・エントリと
ともに第10図のメモリ・マッピングを示す図、 第48A乃至48K図は、S/88物理記憶内にS/3
70記憶領域を作成するために、システム・スタートア
ップ及び再構成ルーチンの間に新しく与えられたサブル
ーチンと対話することができるS/88のための仮想/
物理的記憶管理の好適な形式を示す図、 第49及び50図は、S/370−S/88プロセッサ
対と組みのユニットを同期化させるために使用される論
理のうちのあるものを示す部分的ブロック図、 第51及び52図は、本発明の他の実施例を示す図であ
る。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 ロニイ・エドワード・グリース アメリカ合衆国フロリダ州ボカ・ラトン、 ノース・ウエスト・フオーテイフオース・ ストリート 252番地 (72)発明者 ジエームズ・モーリス・ジヨイス アメリカ合衆国フロリダ州ボカ・ラトン、 ノース・ウエスト・ナインス・ストリート 1544番地 (72)発明者 ジヨン・マリオ・ローフレード アメリカ合衆国フロリダ州デイーフイール ド・ビイーチ、サウス・ウエスト・フオー テイーンス・ドライブ 2694番地 (72)発明者 ケネス・ラツセル・サンダーソン アメリカ合衆国フロリダ州ウエスト・パル ム・ビイーチ、ウイジヨーン・ロード1132 番地 (72)発明者 ガスタボ・アーマンド・スワーレイズ アメリカ合衆国フロリダ州ボカ・ラトン、 ウツドチエツク・レーン21482番地 (56)参考文献 特開 昭56−167597(JP,A) 特開 昭57−20847(JP,A) 特開 昭54−71538(JP,A) 特開 昭62−172437(JP,A) 米国特許4453215(US,A)
Claims (18)
- 【請求項1】2個以上の第1の複数の処理ユニットが、
第1のオペレーティング・システムの制御の下で同時に
同一の動作を実行し、その各処理ユニットが、フォール
ト・トレラントI/O装置及び記憶をもつハードウェア
に結合され、それらの処理ユニットの状態がエラーの存
在を決定するために周期的に比較され、それらの処理ユ
ニットのうちの2個にエラーがない限り動作を続けるタ
イプのフォールト・トレラント・データ処理システムに
おいて、 (a)上記第1の処理ユニットに対して一個ずつ存在し、
上記第1の処理ユニットとは異なるアーキテクチャをも
ち、第2のオペレーティング・システムの制御の下で同
時に、互いに同一の動作を実行する第2の複数の処理ユ
ニットと、 (b)上記各第2の処理ユニットをめいめい、上記第1の
処理ユニットに直接結合するための直接結合手段と、 (c)上記第1のオペレーティング・システムに認識でき
ない様式で、上記直接結合手段を介して、上記個々の第
1の処理ユニットに、上記第2の処理ユニットのI/O
コマンド及びデータを転送するための転送手段と、 (d)上記第2の処理ユニットとその第2のオペレーティ
ング・システムのI/O機能が、上記第1のオペレーテ
ィング・システムの制御の下で上記第1の処理ユニット
によって処理のため可用となるように、上記I/Oコマ
ンドとデータをそれぞれ、上記第1の処理ユニットによ
って実行可能なコマンドと、使用可能なデータとに変換
するための変換手段と、 (e)上記第2の処理ユニット中のエラーを検出するため
に、上記複数の第2の処理ユニットの状態を周期的に比
較するための周期的比較手段と、 (f)上記第1の複数の処理ユニットに接続され、上記周
期的比較に応答して、少なくとも1つの処理ユニット
と、それに関連する第1の処理ユニツトを、そのどちら
かのユニットのエラーが検出された時サービスから切り
放し、上記第1の処理ユニットと上記第2の処理ユニッ
トのめいめいで2個の処理ユニットがエラーなしである
限り別の第1の処理ユニット及び第2の処理ユニットの
フォールト・トレラント動作を許容するための手段とを
具備する、 フォールト・トレラント・データ処理システム。 - 【請求項2】上記第1及び第2の複数の処理ユニットに
はそれぞれ、少なくとも3個ずつの処理ユニットが設け
られ、 上記処理ユニットの状態の周期的比較は、プログラム中
のチェックポイントが上記処理ユニット上で実行されて
いる時に行なわれる、 請求項1のフォールト・トレラント・データ処理システ
ム。 - 【請求項3】上記第1のオペレーティング・システムの
制御の下で上記I/Oコマンド及びデータを処理する、
上記第1の複数の処理ユニットをもつ手段を具備する請
求項1のフォールト・トレラント・データ処理システ
ム。 - 【請求項4】2個以上の第1の複数の処理ユニットが、
第1のオペレーティング・システムの制御の下で同時に
同一の動作を実行し、その各処理ユニットが、フォール
ト・トレラントI/O装置及び記憶をもつハードウェア
に結合され、それらの処理ユニットの状態がエラーの存
在を決定するために周期的に比較され、それらの処理ユ
ニットのうちの2個にエラーがない限り動作を続けるタ
イプのフォールト・トレラント・データ処理システムに
おいて、 (a)上記第1の処理ユニットに対して一個ずつ存在し、
上記第1の処理ユニットとは異なるアーキテクチャをも
ち、第2のオペレーティング・システムの制御の下で同
時に、互いに同一の動作を実行する第2の複数の処理ユ
ニットと、 (b)上記第2の処理ユニット中のエラーを検出するため
に、上記複数の第2の処理ユニットの状態を周期的に比
較するための周期的比較手段と、 (c)上記第1の複数の処理ユニット中で実行され、上記
第1の複数の処理ユニット中の各ユニットを、その関連
ハードウェアから切り放し、上記第1の複数の処理ユニ
ット中の各ユニットを上記第2の複数の処理ユニット中
の個別のユニットに結合するためのアプリケーション・
プログラムを含む手段と、 (d)切り放されている間に、上記第1の複数の処理ユニ
ットによって制御され、上記アプリケーション・プログ
ラムによって制御されてI/Oコマンドとデータを上記
第2の処理ユニットから上記個々の第1の処理ユニット
に直接渡すための手段と、 (e)上記第1の複数の処理ユニットと上記アプリケーシ
ョン・プログラムによって制御され、フォールト・トレ
ラントの上記第1の複数の処理ユニットをして上記第2
の複数の処理ユニットのためのI/Oコントローラとし
て動作することを可能ならしめるために、上記コマンド
とデータを、それぞれ、上記第1の複数の処理ユニット
が実行可能なコマンドと使用可能なデータに変換するた
めの手段と、 (f)上記第1の複数の処理ユニットに接続され、上記周
期的比較に応答して、少なくとも1つの処理ユニット
と、それに関連する第1の処理ユニットを、そのどちら
かのユニットのエラーが検出された時サービスから切り
放し、上記第1の処理ユニットと上記第2の処理ユニッ
トのめいめいで2個の処理ユニットがエラーなしである
限り別の第1の処理ユニット及び第2の処理ユニットの
フォールト・トレラント動作を許容するための手段とを
具備する、 フォールト・トレラント・データ処理システム。 - 【請求項5】上記第1及び第2の複数の処理ユニットに
はそれぞれ、少なくとも3個ずつの処理ユニットが設け
られ、 上記処理ユニットの状態の周期的比較は、プログラム中
のチェックポイントが上記処理ユニット上で実行されて
いる時に行なわれる、 請求項4のフォールト・トレラント・データ処理システ
ム。 - 【請求項6】第1のアーキテクチャの第1の対のフォー
ルト・トレラント・プロセッサが第1のオペレーティン
グ・システムの制御の下で同時に同一の動作を実行し、
該第1のアーキテクチャの第2の対のフォールト・トレ
ラント・プロセッサが上記第1のオペレーティング・シ
ステムの制御の下で上記第1の対のフォールト・トレラ
ント・プロセッサと同時に同一の動作を実行し、それら
のプロセッサ対は2重化された同一のシステム・バスに
結合されるとともに、該バスを介して対のフォールト・
トレラントI/O装置及び対のフオールト・トレラント
主記憶装置に結合されて、上記第1のオペレーティング
・システムの制御の下で上記対のプロセッサと上記I/
O装置と、上記主記憶装置の間で同一のデータを転送す
るようになされており、上記各プロセッサ対によって上
記システム・バスに印加された信号は、エラー検出のた
め周期的に比較され、エラーの検出に応答する手段が、
残りのプロセッサ対によってシステム動作の継続を可能
ならしめるようにエラーをもたらすプロセッサ対をサー
ビスから切り放すようになされているフォールト・トレ
ラント・データ処理システムにおいて、 (a)上記第1のアーキテクチャとは異なる第2のアーキ
テクチャをもち、上記システム・バスに接続され、第2
のオペレーティング・システムの制御の下で互いに同時
に同一の動作を実行する追加的な第1の対のプロセッサ
と、追加的なその相手対のプロセッサと、 (b)エラーを検出するために、上記追加的な第1の対の
プロセッサと、追加的なその相手対のプロセッサによっ
て上記システム・バスに印加される信号を周期的に比較
するための手段と、 (c)上記第1の対及び第2の相手対のプロセッサを含
み、上記第1のオペレーティング・システムに認識でき
ない様式で、上記第1の対及び第2の対のプロセッサの
個々のプロセッサに、上記追加的な第1の対のプロセッ
サ及び上記追加的な相手対のプロセッサ中の個々のプロ
セッサからI/Oコマンド及びデータを渡すための転送
手段と、 (d)上記第1の対及び第2の対のプロセッサをして上記
追加的な第1の対のプロセッサ及び上記追加的な第2の
対のプロセッサのためのI/Oコントローラとして動作
することを可能ならしめるために、上記コマンドとデー
タを、それぞれ、上記第1の対及び第2の対のプロセッ
サが実行可能なコマンドと使用可能なデータに変換する
ための手段と、 (e)上記第1の対及び第2の対のプロセッサに接続さ
れ、上記周期的比較に応答して、少なくとも1つの処理
ユニットと、それに関連する第1の処理ユニットを、上
記追加の対のプロセッサのうちの1つのプロセッサまた
は上記第1の対及び第2の対のプロセッサ中の個々のプ
ロセッサによってシステム・バスに印加された信号中に
エラー検出されたとき、上記追加の対のプロセッサ及び
第1の対または第2の対中の個々のプロセッサのうちの
該1つのプロセッサを選択的にサービスから切り放し、
別の対のプロセッサの動作を正常に継続させ、以て上記
追加の対のプロセッサをフォールト・トレラントにする
手段とを具備する、 フォールト・トレラント・データ処理システム。 - 【請求項7】上記第1のアーキテクチャのフォールト・
トレラント・プロセッサとその関連フォールト・トレラ
ント・ハードウェア、I/O装置及び主記憶ユニット
は、上記第1のオペレーティング・システムの下で、上
記異なるアーキテクチャのプロセッサから受領した変換
されたI/Oコマンド及びデータを処理するように有効
化される請求項6のフォールト・トレラント・データ処
理システム。 - 【請求項8】第1のアーキテクチャの第1の対のフォー
ルト・トレラント・プロセッサがプログラム制御の下で
同時に同一の動作を実行し、該第1のアーキテクチャの
第2の対のフォールト・トレラント・プロセッサが上記
プログラム制御の下で上記第1の対のフォールト・トレ
ラント・プロセッサと同時に同一の動作を実行し、それ
らのプロセッサ対は2重化された同一のシステム・バス
に結合されるとともに、該バスを介して対のフォールト
・トレラントI/O装置及び対のフォールト・トレラン
ト主記憶装置に結合されて、上記対のプロセツサと上記
I/O装置と、上記主記憶装置の間で同一のデータを転
送するようになされており、上記各プロセッサ対によっ
て上記システム・バスに印加された信号は、エラー検出
のため周期的に比較され、エラーの検出に応答する手段
が、残りのプロセッサ対によってシステム動作の継続を
可能ならしめるようにエラーをもたらすプロセッサ対を
サービスから切り放すようになされているフォールト・
トレラント・データ処理システムにおいて、 (a)上記第1のアーキテクチャとは異なる第2のアーキ
テクチャをもち、上記システム・バスに接続され、プロ
グラム制御の下で互いに同時に同一の動作を実行する追
加的な第1の対のプロセッサと、追加的なその相手対の
プロセッサと、 (b)エラーを検出するために、上記追加的な第1の対の
プロセッサと、追加的なその相手対のプロセッサによっ
て上記システム・バスに印加される信号を周期的に比較
するための手段と、 (c)上記第1の対のプロセッサ及び上記第2の対のプロ
セッサ中にあって、上記第2の対のプロセッサをその関
連ハードウェアから切り放すためのアプリケーション・
プログラムを含む手段と、 (d)切り放されている間に、上記第1の対のプロセッサ
及び第2の対のプロセッサ中のプロセッサによって制御
され、上記アプリケーション・プログラムによって制御
されてI/Oコマンドとデータを上記追加の第1の対の
プロセッサ及び上記追加の第2の対の対のプロセッサか
ら上記個々の第1の対のプロセッサ及び上記の第2の対
の対のプロセッサに渡すための手段と、 (e)上記第1の対及び第2の対のプロセッサと上記アプ
リケーシヨン・プログラムによって制御され、上記第1
の対及び第2の対のプロセッサをして上記追加的な第1
の対のプロセッサ及び上記追加的な第2の対のプロセッ
サのためのI/Oコントローラとして動作することを可
能ならしめるために、上記コマンドとデータを、それぞ
れ、上記第1の対及び第2の対のプロセッサが実行可能
なコマンドと使用可能なデータに変換するための手段
と、 (f)上記第1の対及び第2の対のプロセッサに接続さ
れ、上記周期的比較に応答して、少なくとも1つの処理
ユニットと、それに関連する第1の処理ユニットを、上
記追加の対のプロセッサうちの1つのプロセッサまたは
上記第1の対及び第2の対のプロセッサ中の個々のプロ
セッサによってシステム・バスに印加された信号中にエ
ラー検出されたとき、上記追加の対のプロセッサ及び第
1の対または第2の対中の個々のプロセッサのうちの該
1つのプロセッサを選択的にサービスから切り放し、別
の対のプロセッサの動作を正常に継続させ、以て上記追
加の対のプロセッサをフォールト・トレラントにする手
段とを具備する、 フォールト・トレラント・データ処理システム。 - 【請求項9】上記第1の対及び第2の対のプロセッサを
含み、上記変換されたコマンド及びデータを上記I/O
装置及び主記憶と協働して処理する手段をさらに含む請
求項8のフォールト・トレラント・データ処理システ
ム。 - 【請求項10】第1の対のプロセッサが第1の命令アー
キテクチャをもつプログラムの制御の下で同一の動作を
実行し、該プロセッサ対は、対のフォールト・トレラン
トI/O装置と、対のフォールト・トレラント主記憶ユ
ニットをもつハードウェアに結合され、該ハードウェア
は該対のI/O装置の間、及び該対のプロセッサ及び上
記プロセッサ中の条件を選択された主記憶ユニットの間
で同一のデータを転送するために、互いに同一の2重化
されたシステム・バスを介して結合され、それらの対は
エラー検出のため互いに周期的に比較され、どちらかの
プロセッサにおけるエラー検出に応答して該プロセッサ
対をシステムから電気的に切り放すフォールト・トレラ
ント・データ処理システムにおいて、 (a)上記第1の命令アーキテクチャとは異なる第2の命
令アーキテクチャをもつプログラムの制御の下で動作
し、プログラム制御の下で同時に同一の動作を実行する
追加的な対のプロセッサと、 (b)上記各追加的な対のプロセッサを上記第1の対のプ
ロセッサに個別の結合するための結合手段と、 (c)上記第1の対のプロセッサ中にあって、上記第1の
対のプロセッサをそのハードウェアから切り放すための
アプリケーション・プログラムを含む手段と、 (d)上記アプリケーション・プログラム及び上記第1の
対のプロセッサによって制御され、切り放されている間
に、上記結合手段を介して、上記第1の対のプロセッサ
と、上記追加的な対のプロセッサの間でI/Oコマンド
及びデータを渡すための手段と、 (e)上記第1の対のプロセッサと上記アプリケーシヨン
・プログラムによって制御され、上記第1の対のプロセ
ッサをして上記追加的な対のプロセッサのI/Oコント
ローラとして働かせるために、上記追加的な対のプロセ
ッサから上記第1の対のプロセッサに渡されたI/Oコ
マンドを上記第1の対のプロセッサによって実行可能な
コマンドに変換するための手段と、 (f)エラー検出のために、上記追加的な対のプロセッサ
中の選択されたプロセッサを周期的に比較するための比
較手段と、 (g)上記第1の対のプロセッサに接続され、上記比較手
段によてエラーが検出された時に有効化され、双方の対
のプロセッサをサービスから切り放すための手段とを具
備する、 フォールト・トレラント・データ処理システム。 - 【請求項11】上記第1の対のプロセッサを含む手段が
上記変換されたI/Oコマンド及びデータを処理する請
求項10記載のフォールト・トレラント・データ処理シ
ステム。 - 【請求項12】第1の対のプロセッサが、第1の命令ア
ーキテクチャをもつプログラム制御の下で同時に同一の
動作を実行し、第2の対のプロセッサが上記プログラム
制御の下で上記第1の対のフォールト・トレラント・プ
ロセッサと同時に同一の動作を実行し、それらのプロセ
ッサ対は2重化された同一のシステム・バスに結合され
るとともに、該バスを介して対のフォールト・トレラン
トI/O装置及び対のフォールト・トレラント主記憶装
置に結合されて、上記対のプロセツサと上記I/O装置
と、上記主記憶装置の間で同一のデータを転送するよう
になされており、上記各プロセッサ及びその関連ハード
ウェアにおける選択された条件が、エラー検出のため周
期的に比較され、エラーの検出に応答する手段が、残り
のプロセッサ対によってシステム動作の継続を可能なら
しめるようにエラーをもたらすプロセッサ対をサービス
から切り放すようになされているフォールト・トレラン
ト・データ処理システムにおいて、 (a)上記第1の対のプロセッサに接続され、上記第1の
アーキテクチャとは異なる第2の命令アーキテクチャの
下で動作する追加的な第1の対のプロセッサ及び、上記
第2の対のプロセッサに接続され、該第2のアーキテク
チャの下で動作する追加的な第2の対のプロセッサであ
って、該双方の追加的な対のプロセッサと、各追加的な
対のプロセッサ内のプロセッサはプログラム制御の下で
互いに同時に同一の動作を実行するものであるものと、 (b)エラーを検出するために、上記各追加的な対のプロ
セッサ中の選択されたプロセッサ条件を周期的に比較す
る手段と、 (c)上記追加的な第1の対及び追加的な第2の対の各プ
ロセッサを、上記第1及び第2の対の各プロセッサと結
合するための結合手段と、 (d)上記第1及び第2のプロセッサ上で走るように適合
され、これらの各プロセッサをその関連ハードウェアか
ら切り放すためのアプリケーション・プログラムを含む
手段と、 (e)切り放されている間に、上記第1の対のプロセッサ
及び第2の対のプロセッサ中のプロセッサによって制御
され、上記アプリケーション・プログラムによって制御
されて、上記結合手段を介して、該切り放されたプロセ
ッサと上記追加の対のプロセッサの間でI/Oコマンド
とデータを渡すための手段と、 (e)上記第1の対及び第2の対のプロセッサと上記アプ
リケーション・プログラムによって制御され、上記第1
の対及び第2の対のプロセッサをして上記追加的な第1
の対のプロセッサ及び上記追加的な第2の対のプロセッ
サのためのI/Oコントローラとして動作することを可
能ならしめるために、上記第1の対のプロセッサと上記
第2の対のプロセッサに渡された上記I/Oコマンドと
データを、それぞれ、上記第1の対及び第2の対のプロ
セッサが実行可能なコマンドと使用可能なデータに変換
するための手段とを具備し、 (f)上記切り放すためのアプリケーション・プログラム
を含む手段は、上記比較手段によって上記追加的な対の
プロセッサ中でエラーが検出された時に、追加的な他方
の対及び第1及び第2の対のプロセッサ中のその個別の
対のプロセッサの連続的動作を可能ならしめるように、
他方の該プロセッサ及び第1及び第2の対のプロセッサ
におけるその個別の対をサービスから切り放すように有
効化される、 フォールト・トレラント・データ処理システム。 - 【請求項13】上記第1及び第2の対のプロセッサを含
む手段が上記変換されたI/Oコマンドを処理する請求
項12のフォールト・トレラント・データ処理システ
ム。 - 【請求項14】第1の対のプロセッサが、第1のオペレ
ーティング・システムの制御の下で同時に同一の動作を
実行し、そのプロセッサ対が、フォールト・トレラント
I/O装置及び対のフォールト・トレラント主記憶ユニ
ットに、該フォールト・トレラントI/O装置と該フォ
ールト・トレラント主記憶ユニットと上記プロセッサの
間で同一のデータを転送するために互いに同一のシステ
ム・バスを介して結合され、それらのプロセッサとバス
の間で転送された信号中のエラーを検出するために選択
されたプロセッサ条件が周期的に互いに比較され、どれ
かのプロセッサにおけるエラーの検出に応答する手段が
該プロセッサの対をサービスから切り放すようなタイプ
のフォールト・トレラント・データ処理システムにおい
て、 (a)上記第1のオペレーティング・システムとは異なる
第2のオペレーティング・システムの制御の下で動作
し、プログラム制御の下で互いに同時に同一の動作を実
行する追加的な対のプロセッサと、 (b)エラーを検出するために、上記追加的な対における
選択されたプロセッサ条件を周期的に比較するための手
段と、 (c)上記第1の対のプロセッサをして上記追加的な対の
プロセッサのI/Oコントローラとして動作させること
を可能ならしめるために、上記追加的な対におけるプロ
セッサからのI/Oコマンド及びデータを上記第1の対
のプロセッサに、上記第1のオペレーティング・システ
ムによって識別できない様式で渡すための手段と、 (d)上記第1の対のプロセッサに接続され、上記周期的
に比較するための手段に応答して、該どちらかの対のプ
ロセッサにエラーが検出された時その両方のプロセッサ
を選択的にサービスから切り放す手段とを具備する、 フォールト・トレラント・データ処理システム。 - 【請求項15】上記追加的な対のプロセッサから受領し
たI/Oコマンド及びデータの処理を行う第1の対のプ
ロセッサを含む手段を更に有する請求項14のフォール
ト・トレラント・データ処理システム。 - 【請求項16】第1の対のプロセッサが第1のオペレー
ティング・システムの制御の下で同時に同一の動作を実
行し、第2の対のプロセッサが上記第1のオペレーティ
ング・システムの制御の下で上記第1の対のプロセッサ
と同時に同一の動作を実行し、それらのプロセッサ対は
2重化された同一のシステム・バスに結合されるととも
に、該バスを介して対のフォールト・トレラントI/O
装置及び対のフォールト・トレラント主記憶装置に結合
されて、上記第1のオペレーティング・システムの制御
の下で上記対のプロセッサと上記I/O装置と、上記主
記憶装置の間で同一のデータを転送するようになされて
おり、上記プロセッサ及び上記バスの間で渡された信号
中のエラーを検出するために各プロセッサ対中の選択さ
れた条件が周期的に比較され、どれかのプロセッサ対に
おけるエラーの検出に応答する手段がそのプロセッサ対
をサービスから除去し、別の対のプロセッサによってシ
ステムの動作を継続させるタイプのフォールト・トレラ
ント・データ処理システムにおいて、 (a)上記第1の対のプロセッサに接続され、上記第1の
オペレーティング・システムとは異なる第2のオペレー
ティング・システムの下で動作する追加的な第1の対の
プロセッサと、 (b)上記第2の対のプロセッサに接続され、上記第2の
オペレーティング・システムの下で動作し、該両方の追
加的対のプロセッサと、各追加的対内の各プロセッサ
は、プログラム制御の下で互いに同一の動作を実行する
ものである追加的な第2の対のプロセッサと、 (c)上記追加的な第1及び第2の対のプロセッサを、上
記第1及び第2のプロセッサとリンクさせるためのリン
ク手段と、 (d)上記リンク手段を介して、上記第1のオペレーティ
ング・システムに認識できない様式で、上記追加的な第
1及び第2の対のプロセッサと、上記第1及び第2のプ
ロセッサの間でI/Oコマンド及びデータを渡すための
手段と、 (e)上記追加的な第1及び第2の対のプロセッサから上
記第1及び第2の対のプロセッサに渡されたI/Oコマ
ンド及びデータを、上記第1及び第2の対のプロセッサ
をして上記追加的な第1及び第2の対のプロセッサのI
/Oコントローラとして働かせるように、上記第1及び
第2の対のプロセッサによって実行可能なコマンド及び
使用可能なデータに変換するための手段と、 (f)エラーを検出するために、上記各追加的な対中の選
択されたプロセッサ条件を周期的に比較するための手段
と、 (g)上記周期的に比較するための手段に応答して、上記
追加的対のプロセッサまたはそれに接続された対のプロ
セッサにおいてエラーが検出された時、上記追加的対中
の当該プロセッサ及び上記第1及び第2のプロセッサ対
中の関連対からサービスを除去し、以て他の追加的及び
それの関連プロセッサ対によってシステムの動作を継続
させる手段とを具備する、 フォールト・トレラント・データ処理システム。 - 【請求項17】S/88プロセッサの第1の対がプログ
ラム制御の下で同時に同一の動作を実行し、S/88プ
ロセッサの第2の対が該プログラム制御の下で上記第1
の対のS/88プロセッサと同時に同一の動作を実行
し、それらのS/88プロセッサ対はS/88オペレー
ティング・システムの制御の下で対のS/88フォール
ト・トレラントI/O装置及び対のS/88フォールト
・トレラント主記憶装置の間で同一のデータを転送する
ために2重化されたシステム・バスを介して該対のS/
88フォールト・トレラントI/O装置及び対のS/8
8フォールト・トレラント主記憶装置を有するハードウ
ェアに結合され、上記各プロセッサ対中のプロセッサ状
態は、エラー検出のため周期的に比較され、エラーの検
出に応答する手段が、エラー検出に応答する手段が、残
りのプロセッサ対によってシステム動作の継続を可能な
らしめるようにエラーをもたらすプロセッサ対をサービ
スから切り放すようになされているS/88フォールト
・トレラント・データ処理システムにおいて、 (a)上記システム・バスに結合され、S/370オペレ
ーティング・システムの制御の下で互いに同時に同一の
動作を実行する第1の対のS/370プロセッサ及び第
2の対のS/370プロセッサと、 (b)上記S/88プロセッサ上で走るS/88アプリケ
ーション・プログラムを含み、上記S/88プロセッサ
を上記ハードウェアから切り放すための手段と、 (c)切り放されている間にS/88プロセッサによって
制御され、または上記アプリケーション・プログラムに
よって制御され、各S/370プロセッサからのS/3
70 I/Oコマンド及びデータを、S/88オペレー
ティング・システムに識別出来ない様式でめいめいのS
/88プロセッサに渡すための手段と、 (d)上記S/88プロセッサと上記S/88アプリケー
ション・プログラムによって制御され、該S/88プロ
セッサをしてめいめいのS/370プロセッサのI/O
コントローラとして動作させるように上記S/370
I/OコマンドをS/88コマンドに変換するための手
段と、 (e)エラーを検出するために、S/370プロセッサの
各対のプロセッサ状態を周期的に比較するための比較手
段と、 (f)上記S/88プロセッサに接続され、上記比較手段
に応答して、もしS/370プロセッサ対とその関連S
/88プロセッサ対のどちらかでエラーが検出されたな
ら、それらをサービスから切り放し、以て他のS/37
0及びS/88プロセッサの対によってシステム動作を
継続する手段を具備する、 フォールト・トレラント・データ処理システム。 - 【請求項18】上記S/88プロセッサと、上記I/O
装置と、主記憶を含み、上記S/370 I/Oコマン
ドを処理するように上記S/88オペレーティング・シ
ステムの制御の下で動作する手段を有する請求項17の
フォールト・トレラント・データ処理システム。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US07/353,116 US5325517A (en) | 1989-05-17 | 1989-05-17 | Fault tolerant data processing system |
| US353116 | 1999-07-14 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPH036742A JPH036742A (ja) | 1991-01-14 |
| JPH0656587B2 true JPH0656587B2 (ja) | 1994-07-27 |
Family
ID=23387827
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2125646A Expired - Fee Related JPH0656587B2 (ja) | 1989-05-17 | 1990-05-17 | フオールト・トレラント・データ処理システム |
Country Status (9)
| Country | Link |
|---|---|
| US (1) | US5325517A (ja) |
| EP (1) | EP0398694B1 (ja) |
| JP (1) | JPH0656587B2 (ja) |
| AR (1) | AR244900A1 (ja) |
| AT (1) | ATE170996T1 (ja) |
| BR (1) | BR9002297A (ja) |
| CA (1) | CA2009765C (ja) |
| DE (1) | DE69032632T2 (ja) |
| SG (1) | SG43771A1 (ja) |
Families Citing this family (81)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0501610B1 (en) * | 1991-02-25 | 1999-03-17 | Hewlett-Packard Company | Object oriented distributed computing system |
| WO1993009494A1 (en) * | 1991-10-28 | 1993-05-13 | Digital Equipment Corporation | Fault-tolerant computer processing using a shadow virtual processor |
| JP2721294B2 (ja) * | 1993-01-29 | 1998-03-04 | 本田技研工業株式会社 | コンピュータシステムのオンライン監視システム |
| US5664195A (en) * | 1993-04-07 | 1997-09-02 | Sequoia Systems, Inc. | Method and apparatus for dynamic installation of a driver on a computer system |
| US5473771A (en) * | 1993-09-01 | 1995-12-05 | At&T Corp. | Fault-tolerant processing system architecture |
| US5812757A (en) * | 1993-10-08 | 1998-09-22 | Mitsubishi Denki Kabushiki Kaisha | Processing board, a computer, and a fault recovery method for the computer |
| US5680536A (en) * | 1994-03-25 | 1997-10-21 | Tyuluman; Samuel A. | Dual motherboard computer system |
| CN1114861C (zh) * | 1994-04-05 | 2003-07-16 | 英特尔公司 | 监视与控制网络中的程序的方法与装置 |
| US6658465B1 (en) | 1997-08-25 | 2003-12-02 | Intel Corporation | Method and apparatus for monitoring and controlling programs in a network |
| JP3160149B2 (ja) * | 1994-05-13 | 2001-04-23 | 株式会社日立製作所 | ディスク制御装置の無停止プログラム変更方法およびディスク制御装置 |
| DE69506404T2 (de) * | 1994-06-10 | 1999-05-27 | Texas Micro Inc., Houston, Tex. | Hauptspeichervorrichtung und wiederanlaufkennzeichnungsverfahren für ein fehlertolerantes rechnersystem |
| US5594862A (en) * | 1994-07-20 | 1997-01-14 | Emc Corporation | XOR controller for a storage subsystem |
| JP3365581B2 (ja) * | 1994-07-29 | 2003-01-14 | 富士通株式会社 | 自己修復機能付き情報処理装置 |
| US5491787A (en) * | 1994-08-25 | 1996-02-13 | Unisys Corporation | Fault tolerant digital computer system having two processors which periodically alternate as master and slave |
| US5713017A (en) * | 1995-06-07 | 1998-01-27 | International Business Machines Corporation | Dual counter consistency control for fault tolerant network file servers |
| JP3086779B2 (ja) * | 1995-06-19 | 2000-09-11 | 株式会社東芝 | メモリ状態復元装置 |
| US5864657A (en) * | 1995-11-29 | 1999-01-26 | Texas Micro, Inc. | Main memory system and checkpointing protocol for fault-tolerant computer system |
| US5745672A (en) * | 1995-11-29 | 1998-04-28 | Texas Micro, Inc. | Main memory system and checkpointing protocol for a fault-tolerant computer system using a read buffer |
| US5737514A (en) * | 1995-11-29 | 1998-04-07 | Texas Micro, Inc. | Remote checkpoint memory system and protocol for fault-tolerant computer system |
| US5751939A (en) * | 1995-11-29 | 1998-05-12 | Texas Micro, Inc. | Main memory system and checkpointing protocol for fault-tolerant computer system using an exclusive-or memory |
| WO1997040401A1 (en) * | 1996-04-23 | 1997-10-30 | Alliedsignal Inc. | Integrated hazard avoidance system |
| TW379298B (en) * | 1996-09-30 | 2000-01-11 | Toshiba Corp | Memory updating history saving device and memory updating history saving method |
| US5862308A (en) * | 1996-12-03 | 1999-01-19 | Bull Hn Information Systems Inc. | Fault intercept and resolution process independent of operating system |
| US5926833A (en) * | 1997-03-24 | 1999-07-20 | International Business Machines Corporation | Method and system allowing direct data access to a shared data storage subsystem by heterogeneous computing systems |
| US6260068B1 (en) | 1998-06-10 | 2001-07-10 | Compaq Computer Corporation | Method and apparatus for migrating resources in a multi-processor computer system |
| US6199179B1 (en) | 1998-06-10 | 2001-03-06 | Compaq Computer Corporation | Method and apparatus for failure recovery in a multi-processor computer system |
| US6542926B2 (en) * | 1998-06-10 | 2003-04-01 | Compaq Information Technologies Group, L.P. | Software partitioned multi-processor system with flexible resource sharing levels |
| US6332180B1 (en) | 1998-06-10 | 2001-12-18 | Compaq Information Technologies Group, L.P. | Method and apparatus for communication in a multi-processor computer system |
| US6633916B2 (en) | 1998-06-10 | 2003-10-14 | Hewlett-Packard Development Company, L.P. | Method and apparatus for virtual resource handling in a multi-processor computer system |
| US6647508B2 (en) | 1997-11-04 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation |
| US6381682B2 (en) | 1998-06-10 | 2002-04-30 | Compaq Information Technologies Group, L.P. | Method and apparatus for dynamically sharing memory in a multiprocessor system |
| KR100258079B1 (ko) | 1997-12-17 | 2000-06-01 | 이계철 | 밀결합 결함 허용 시스템에서 메모리 버스 확장에 의한 동시 쓰기 이중화 장치 |
| US6321335B1 (en) | 1998-10-30 | 2001-11-20 | Acqis Technology, Inc. | Password protected modular computer method and device |
| US7206877B1 (en) * | 1998-12-22 | 2007-04-17 | Honeywell International Inc. | Fault tolerant data communication network |
| US6757850B1 (en) | 1998-12-30 | 2004-06-29 | Ncr Corporation | Remote services management fault escalation |
| US6282596B1 (en) | 1999-03-25 | 2001-08-28 | International Business Machines Corporation | Method and system for hot-plugging a processor into a data processing system |
| US6718415B1 (en) * | 1999-05-14 | 2004-04-06 | Acqis Technology, Inc. | Computer system and method including console housing multiple computer modules having independent processing units, mass storage devices, and graphics controllers |
| US6643777B1 (en) | 1999-05-14 | 2003-11-04 | Acquis Technology, Inc. | Data security method and device for computer modules |
| EP1128266A3 (en) * | 2000-02-22 | 2004-02-25 | Orsus Solutions Limited | Cooperative software application architecture |
| US6785892B1 (en) * | 2000-06-23 | 2004-08-31 | Unisys | Communications between partitioned host processors and management processor |
| US6708284B2 (en) * | 2001-03-30 | 2004-03-16 | Intel Corporation | Method and apparatus for improving reliability in microprocessors |
| US20030072505A1 (en) * | 2001-10-15 | 2003-04-17 | Todd Pihl | Techniques for making mono-axially oriented draw tape which is usable in a draw tape bag |
| KR100429899B1 (ko) * | 2001-12-22 | 2004-05-03 | 한국전자통신연구원 | Fudcom에 의한 결함허용 제어장치 및 방법 |
| US6912670B2 (en) * | 2002-01-22 | 2005-06-28 | International Business Machines Corporation | Processor internal error handling in an SMP server |
| US6928513B2 (en) * | 2002-03-26 | 2005-08-09 | Hewlett-Packard Development Company, L.P. | System and method for managing data logging memory in a storage area network |
| US7013362B1 (en) | 2003-02-21 | 2006-03-14 | Sun Microsystems, Inc. | Systems and methods for addressing memory |
| US20040226015A1 (en) * | 2003-05-09 | 2004-11-11 | Leonard Ozgur C. | Multi-level computing resource scheduling control for operating system partitions |
| US7389512B2 (en) * | 2003-05-09 | 2008-06-17 | Sun Microsystems, Inc. | Interprocess communication within operating system partitions |
| US20040226017A1 (en) * | 2003-05-09 | 2004-11-11 | Leonard Ozgur C. | Mechanism for associating resource pools with operating system partitions |
| US7437556B2 (en) * | 2003-05-09 | 2008-10-14 | Sun Microsystems, Inc. | Global visibility controls for operating system partitions |
| US8892878B2 (en) * | 2003-05-09 | 2014-11-18 | Oracle America, Inc. | Fine-grained privileges in operating system partitions |
| US7337445B1 (en) | 2003-05-09 | 2008-02-26 | Sun Microsystems, Inc. | Virtual system console for virtual application environment |
| US7461080B1 (en) | 2003-05-09 | 2008-12-02 | Sun Microsystems, Inc. | System logging within operating system partitions using log device nodes that are access points to a log driver |
| US7107411B2 (en) * | 2003-12-16 | 2006-09-12 | International Business Machines Corporation | Apparatus method and system for fault tolerant virtual memory management |
| US7857701B2 (en) * | 2004-03-12 | 2010-12-28 | Microsoft Corporation | Silent sign-in for offline games |
| US7386761B2 (en) * | 2004-04-16 | 2008-06-10 | International Business Machines Corporation | Diagnostic repair system and method for computing systems |
| US8181182B1 (en) | 2004-11-16 | 2012-05-15 | Oracle America, Inc. | Resource allocation brokering in nested containers |
| JP2006178618A (ja) * | 2004-12-21 | 2006-07-06 | Nec Corp | フォールトトレラントコンピュータ及びデータ送信制御方法 |
| JP2006228121A (ja) * | 2005-02-21 | 2006-08-31 | Toshiba Corp | 演算処理装置 |
| CN100409188C (zh) * | 2006-01-13 | 2008-08-06 | 深圳创维-Rgb电子有限公司 | 一种新的电视机嵌入式Linux系统开发方法 |
| US7734949B2 (en) * | 2006-03-30 | 2010-06-08 | Alcatel Lucent | Information error recovery apparatus and methods |
| US7990724B2 (en) | 2006-12-19 | 2011-08-02 | Juhasz Paul R | Mobile motherboard |
| US8904077B1 (en) * | 2007-06-26 | 2014-12-02 | Qlogic, Corporation | Power management for host bus adapters |
| DE102007062974B4 (de) * | 2007-12-21 | 2010-04-08 | Phoenix Contact Gmbh & Co. Kg | Signalverarbeitungsvorrichtung |
| US8015390B1 (en) | 2008-03-19 | 2011-09-06 | Rockwell Collins, Inc. | Dissimilar processor synchronization in fly-by-wire high integrity computing platforms and displays |
| US7852235B1 (en) | 2008-04-28 | 2010-12-14 | Rockwell Collins, Inc. | High integrity computing via input synchronization systems and methods |
| US8549389B2 (en) * | 2011-05-24 | 2013-10-01 | Honeywell International Inc. | Systems and methods for 1553 bus operation self checking |
| US8933715B2 (en) * | 2012-04-08 | 2015-01-13 | Elm Technology Corporation | Configurable vertical integration |
| WO2015068217A1 (ja) * | 2013-11-06 | 2015-05-14 | 株式会社日立製作所 | 管理システム及び方法 |
| US9654560B2 (en) | 2013-06-27 | 2017-05-16 | Hitachi, Ltd. | Management system and method |
| CN104750510B (zh) | 2013-12-30 | 2019-04-02 | 深圳市中兴微电子技术有限公司 | 一种芯片启动方法及多核处理器芯片 |
| US10592459B2 (en) | 2014-03-07 | 2020-03-17 | Cavium, Llc | Method and system for ordering I/O access in a multi-node environment |
| US9411644B2 (en) * | 2014-03-07 | 2016-08-09 | Cavium, Inc. | Method and system for work scheduling in a multi-chip system |
| US11442634B2 (en) * | 2018-04-12 | 2022-09-13 | Micron Technology, Inc. | Replay protected memory block command queue |
| US11645178B2 (en) * | 2018-07-27 | 2023-05-09 | MIPS Tech, LLC | Fail-safe semi-autonomous or autonomous vehicle processor array redundancy which permits an agent to perform a function based on comparing valid output from sets of redundant processors |
| US10922203B1 (en) * | 2018-09-21 | 2021-02-16 | Nvidia Corporation | Fault injection architecture for resilient GPU computing |
| CN111198828B (zh) * | 2019-12-25 | 2024-07-26 | 晶晨半导体(深圳)有限公司 | 多存储介质并存的配置方法、装置和系统 |
| CN111190774B (zh) * | 2019-12-26 | 2023-04-14 | 北京时代民芯科技有限公司 | 一种多核处理器可配置双模冗余结构 |
| US11544139B1 (en) * | 2021-11-30 | 2023-01-03 | Vast Data Ltd. | Resolving erred 10 flows |
| CN114238417B (zh) * | 2021-12-27 | 2024-07-23 | 四川启睿克科技有限公司 | 数据缓存方法 |
| KR20240138797A (ko) * | 2023-03-13 | 2024-09-20 | 주식회사 사피온코리아 | 결함 검출을 수행하는 전자 장치 및 그의 동작 방법 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4453215A (en) | 1981-10-01 | 1984-06-05 | Stratus Computer, Inc. | Central processing apparatus for fault-tolerant computing |
Family Cites Families (31)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4004277A (en) * | 1974-05-29 | 1977-01-18 | Gavril Bruce D | Switching system for non-symmetrical sharing of computer peripheral equipment |
| US4228496A (en) * | 1976-09-07 | 1980-10-14 | Tandem Computers Incorporated | Multiprocessor system |
| US4099234A (en) * | 1976-11-15 | 1978-07-04 | Honeywell Information Systems Inc. | Input/output processing system utilizing locked processors |
| US4077060A (en) * | 1976-12-27 | 1978-02-28 | International Business Machines Corporation | Asymmetrical multiprocessor system |
| JPS547252A (en) * | 1977-06-20 | 1979-01-19 | Hitachi Ltd | Program control system |
| US4315321A (en) * | 1978-06-16 | 1982-02-09 | The Kardios Systems Corporation | Method and apparatus for enhancing the capabilities of a computing system |
| US4244019A (en) * | 1978-06-29 | 1981-01-06 | Amdahl Corporation | Data processing system including a program-executing secondary system controlling a program-executing primary system |
| US4316244A (en) * | 1978-11-08 | 1982-02-16 | Data General Corporation | Memory apparatus for digital computer system |
| US4245344A (en) * | 1979-04-02 | 1981-01-13 | Rockwell International Corporation | Processing system with dual buses |
| US4325116A (en) * | 1979-08-21 | 1982-04-13 | International Business Machines Corporation | Parallel storage access by multiprocessors |
| US4354225A (en) * | 1979-10-11 | 1982-10-12 | Nanodata Computer Corporation | Intelligent main store for data processing systems |
| JPS5833972B2 (ja) * | 1979-11-12 | 1983-07-23 | 富士通株式会社 | 計算機システム間通信方式 |
| US4400775A (en) * | 1980-02-28 | 1983-08-23 | Tokyo Shibaura Denki Kabushiki Kaisha | Shared system for shared information at main memory level in computer complex |
| US4368514A (en) * | 1980-04-25 | 1983-01-11 | Timeplex, Inc. | Multi-processor system |
| US4412281A (en) * | 1980-07-11 | 1983-10-25 | Raytheon Company | Distributed signal processing system |
| ZA821999B (en) * | 1981-03-31 | 1983-05-25 | British Telecomm | Computor or processor control systems |
| US4533996A (en) * | 1982-02-23 | 1985-08-06 | International Business Machines Corporation | Peripheral systems accommodation of guest operating systems |
| ATE25779T1 (de) * | 1981-10-01 | 1987-03-15 | Stratus Computer Inc | Digitale datenverarbeitungsanlage mit zuverlaessigkeits-bus-protokoll. |
| JPS58102380A (ja) * | 1981-12-11 | 1983-06-17 | Hitachi Ltd | 仮想記憶管理方法 |
| JPS5955565A (ja) * | 1982-09-24 | 1984-03-30 | Fujitsu Ltd | マルチフア−ムウエア方式 |
| US4679166A (en) * | 1983-01-17 | 1987-07-07 | Tandy Corporation | Co-processor combination |
| JPS6017539A (ja) * | 1983-07-11 | 1985-01-29 | Hitachi Ltd | エミユレ−シヨン方式 |
| US4591975A (en) * | 1983-07-18 | 1986-05-27 | Data General Corporation | Data processing system having dual processors |
| US4564903A (en) * | 1983-10-05 | 1986-01-14 | International Business Machines Corporation | Partitioned multiprocessor programming system |
| US4727480A (en) * | 1984-07-09 | 1988-02-23 | Wang Laboratories, Inc. | Emulation of a data processing system |
| US4677546A (en) * | 1984-08-17 | 1987-06-30 | Signetics | Guarded regions for controlling memory access |
| US4674038A (en) * | 1984-12-28 | 1987-06-16 | International Business Machines Corporation | Recovery of guest virtual machines after failure of a host real machine |
| US4722048A (en) * | 1985-04-03 | 1988-01-26 | Honeywell Bull Inc. | Microcomputer system with independent operating systems |
| US4709328A (en) * | 1985-06-17 | 1987-11-24 | International Business Machines Corporation | Composite data-processing system using multiple standalone processing systems |
| US4707803A (en) * | 1985-06-17 | 1987-11-17 | International Business Machines Corporation | Emulator for computer system input-output adapters |
| US4747040A (en) * | 1985-10-09 | 1988-05-24 | American Telephone & Telegraph Company | Dual operating system computer |
-
1989
- 1989-05-17 US US07/353,116 patent/US5325517A/en not_active Expired - Fee Related
-
1990
- 1990-02-07 CA CA002009765A patent/CA2009765C/en not_active Expired - Fee Related
- 1990-05-16 AT AT90305307T patent/ATE170996T1/de not_active IP Right Cessation
- 1990-05-16 EP EP90305307A patent/EP0398694B1/en not_active Expired - Lifetime
- 1990-05-16 SG SG1996000740A patent/SG43771A1/en unknown
- 1990-05-16 BR BR909002297A patent/BR9002297A/pt unknown
- 1990-05-16 DE DE69032632T patent/DE69032632T2/de not_active Expired - Fee Related
- 1990-05-17 JP JP2125646A patent/JPH0656587B2/ja not_active Expired - Fee Related
- 1990-05-17 AR AR90316867A patent/AR244900A1/es active
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4453215A (en) | 1981-10-01 | 1984-06-05 | Stratus Computer, Inc. | Central processing apparatus for fault-tolerant computing |
Also Published As
| Publication number | Publication date |
|---|---|
| SG43771A1 (en) | 1997-11-14 |
| CA2009765A1 (en) | 1990-11-17 |
| CA2009765C (en) | 1996-01-02 |
| US5325517A (en) | 1994-06-28 |
| EP0398694B1 (en) | 1998-09-09 |
| ATE170996T1 (de) | 1998-09-15 |
| BR9002297A (pt) | 1991-08-06 |
| HK1008700A1 (en) | 1999-05-14 |
| DE69032632T2 (de) | 1999-05-27 |
| EP0398694A3 (en) | 1994-02-02 |
| AR244900A1 (es) | 1993-11-30 |
| DE69032632D1 (de) | 1998-10-15 |
| EP0398694A2 (en) | 1990-11-22 |
| JPH036742A (ja) | 1991-01-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP2618073B2 (ja) | データ処理方法とシステム | |
| JP2618075B2 (ja) | データ処理システム | |
| JP2618070B2 (ja) | データ処理システム | |
| JP2618072B2 (ja) | 情報処理システム | |
| JP2618071B2 (ja) | データ処理システム | |
| JPH0656587B2 (ja) | フオールト・トレラント・データ処理システム | |
| US5369749A (en) | Method and apparatus for the direct transfer of information between application programs running on distinct processors without utilizing the services of one or both operating systems | |
| KR920008439B1 (ko) | 데이타 처리 시스템과 데이타 처리 시스템에 시스템 특성을 추가로 제공하는 방법 및 그 기구 | |
| JP2618074B2 (ja) | コンピュータ・システム | |
| HK1008700B (en) | Fault tolerant data processing system |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |