JPH0640321B2 - 割込み処理のためのシステムおよび方法 - Google Patents

割込み処理のためのシステムおよび方法

Info

Publication number
JPH0640321B2
JPH0640321B2 JP2155578A JP15557890A JPH0640321B2 JP H0640321 B2 JPH0640321 B2 JP H0640321B2 JP 2155578 A JP2155578 A JP 2155578A JP 15557890 A JP15557890 A JP 15557890A JP H0640321 B2 JPH0640321 B2 JP H0640321B2
Authority
JP
Japan
Prior art keywords
command
interrupt
subsystem
scb
port
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2155578A
Other languages
English (en)
Other versions
JPH0355653A (ja
Inventor
フランシス・マイケル
チエスター・アズバリイ・ヒイース
アーネスト・ネルソン・マンデイズ
リチヤード・ニイール・メンデルソン
Original Assignee
インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン filed Critical インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン
Publication of JPH0355653A publication Critical patent/JPH0355653A/ja
Publication of JPH0640321B2 publication Critical patent/JPH0640321B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Hardware Redundancy (AREA)

Description

【発明の詳細な説明】 A.産業上の利用分野 本発明は、コンピュータ・システムの分野に属し、具体
的には割込み処理機構を対象とする。さらに詳細には、
本発明は、サブシステムから上位プロセッサへの1回の
物理割込み時に多数の間接コマンド論理割込みを処理す
ることを対象とする。上位プロセッサは、1個の割込み
リセット・コマンドで、サブシステム内の所与の論理装
置から多数の論理割込みをクリアすることができる。
B.従来の技術 大部分のコンピュータ・システムでは、優先順位の高い
事象を処理するために上位プロセッサに割り込む機構が
存在する。優先割込みは、入出力コマンドの実行完了、
非同期事象の発生、あるいは重大なエラーの発生を上位
プロセッサに知らせるためにしばしば使用される。優先
割込みとは、上位プロセッサで実行中の低優先順位のプ
ログラムを一時的に停止させて、優先割込みを処理する
プログラムが実行できるようにするものである。このプ
ログラムを割込み処理プログラムと呼ぶ。優先割込み
は、非同期事象に対する速やかな応答が望ましい時に使
用される。
C.発明が解決しようとする課題 多くのコンピュータ・システムでは、優先割込みを処理
する際に比較的大量のオーバヘッドを要する。たとえ
ば、割込み処理プログラムが始動されるとき、しばしば
ポインタとレジスタをセーブし、その後割込みを受けた
プログラムのためにそれらを復元しなければならない。
オーバヘッド処理が、割込みからのデータを処理するの
に必要な処理の量を上回ることもあり得る。短時間の間
に多数の割込みが発生した時は、オーバヘッドが非常に
大きくなって、優先割込みの処理にかなり長い遅延が生
じることがあり得る。遅延が長いと、システム全体の性
能をかなり低下させる恐れがある。
D.課題を解決するための手段 本発明によれば、高割込みアクティビティ期間中に上位
システムへの優先割込みの回数が減り、したがってシス
テム全体の性能が向上する。これは、あるサブシステム
からの1回の優先割込みを使って、1個または複数の論
理割込みを上位システムに提示できるようにすることに
より達成される。論理割込みとは、通常なら優先割込み
を生じる事象を記述するものである。ただし、別の優先
割込みが現在処理中であるかどうかに応じて、論理割込
みが優先割込みを引き起こすことも引き起こさないこと
もある。本発明は、実際に優先割込みを受け取らずと
も、上位システム中の割込み処理プログラムが論理割込
みの発生を検出できるようにするものである。論理割込
みの存在を検出(し、それをリセット)することによ
り、優先割込みを減らし、割込み待ち時間を減らし、シ
ステム全体の性能を向上させることができる。
本発明の一目的は、割込み待ち時間が改善された割込み
処理システムを提供することにある。
本発明の他の目的は、サブシステムからシステム・プロ
セッサへの物理割込みの回数を減らす割込み処理プログ
ラムを提供することにある。
本発明の他の目的は、多数の論理割込みを記憶して、サ
ブシステムから上位プロセッサへの1回の物理割込み時
にそれを提示できるようにすることである。
本発明の他の目的は、上位プロセッサからの1個の割込
みリセット・コマンドで、サブシステム内の論理装置に
対する1個または複数の論理割込みをリセットできるよ
うにすることである。
本発明の他の目的は、接続された装置を有する少なくと
も1つのサブシステムに上位コンピュータが直接コマン
ドと間接コマンドを送るという、コンピュータ・システ
ム用の割込み処理プログラムを提供することにある。直
接コマンドの場合、1つのサブシステムから上位プロセ
ッサへの物理的割込みが、第1ポートを介して逐次供給
される。間接コマンドの場合は、1つのサブシステムお
よび接続された装置に対する論理割込みが、第2ポート
の所定のビット位置に記憶される。その1つのサブシス
テムまたは接続装置からの少なくとも1個の論理割込み
が保留中であれば、間接コマンドに関する単一の物理割
込みが上位コンピュータに供給される。この単一の物理
割込みに応答して、第2ポートのビット位置から物理割
込みが並列に読み出されて、間接コマンドに関する論理
割込みの保留状態が決定される。単一装置に対する複数
の論理割込みが、上位プロセッサからの1個の割込みリ
セット・コマンドでリセットできる。
本発明の他の目的は、上位コンピュータが接続装置を有
する少なくとも1つのサブシステムに、即時コマンドを
またはサブシステム制御ブロック(SCB)のアドレス
を供給するという、コンピュータ・システム用の割込み
処理プログラムを提供することにある。各SCBは、そ
のSCBを処理中のサブシステムが、そのSCBに対す
る論理割込み要求に関する指示を含む完了状況または終
了状況を記憶する先の、システム・メモリ内の終了状況
ブロック(TSB)のアドレスを含んでいる。即時コマ
ンドの場合は、その1つのサブシステムからの物理割込
みが、割込み状況ポートを介して逐次供給される。SC
Bコマンドの場合は、その1つのサブシステムおよび接
続された装置に対する論理割込みが、装置割込み識別ポ
ート(DIIP)の所定のビット位置に記憶される。そ
の1つのサブシステムまたは接続装置からの間接コマン
ドに関する少なくとも1個の論理割込みが保留中であれ
ば、単一の物理割込みが上位コンピュータに供給され
る。この単一の物理割込みに応答して、DIIPの当該
のビット位置から論理割込みが読み出されて、SCBに
関する論理割込みの保留状態が決定される。所与の論理
割込みに応答して上位コンピュータが関連するTSBを
検査し、SCBが完了している場合は、上位コンピュー
タからその論理割込みをクリアする割込みリセット・コ
マンドが発行される。所与の装置に対する複数の論理割
込みが1個の割込みリセット・コマンドでクリアでき
る。
1個の物理割込みで多数の間接コマンド割込みを処理す
る方法および装置が提供される。コンピュータ・システ
ムは、上位プロセッサと、装置が接続された少なくとも
1つの知能サブシステムを含む。その1つの知能サブシ
ステムと接続装置は、それぞれ上位プロセッサから論理
装置と見なされ、それぞれに装置識別番号が割り当てら
れる。上位プロセッサは論理装置に間接コマンドを供給
し、これらのコマンドに対する割込みが、装置識別番号
に応じて装置割込み識別ポート(DIIP)の所定のビ
ット位置に記憶される。少なくとも1個の論理装置から
の少なくとも1個の論理割込みが保留中であれば、1個
の物理割込みが上位プロセッサに供給される。この1個
の物理割込みに応答して、上位プロセッサはDIIPを
読み取って、どの論理装置で少なくとも1個の論理割込
みが保留中であるかを決定する。上位プロセッサからの
1個の割込みリセット・コマンドである論理装置に対す
る多数の論理割込みがクリアできる。
E.実施例 本発明は、一般に割込み処理機構を対象としており、上
位コンピュータ・システム上で走行するプログラム用の
コマンド転送システムに関して説明する。コマンド転送
システムの詳細は第1図ないし第20図に関して説明
し、割込み処理機構の詳細は第21図ないし第26図に
関して説明する。頭記の特許請求の範囲に記載した割込
み処理機構は、下記で述べるシステム以外のコンピュー
タ・システムにも適用できることを理解されたい。複数
の装置が接続された少なくとも1つの知能サブシステム
に、直接コマンドまたは間接コマンドがコマンド・イン
タフェースを介して転送される。この説明では、本発明
を、IBMパーソナル・システム/2(PS/2)コン
ピュータ上で走行するプログラム用のコマンド転送シス
テムに関して説明する。即時コマンドなどの直接コマン
ド、及びPS/2システム・メモリに記憶されたサブシ
ステム制御ブロックなどの間接コマンドが、IBMマイ
クロチャンネルを介して1つの知能サブシステム上のコ
マンド・インタフェースに転送される。知能サブシステ
ムには、磁気テープ装置、磁気ディスク装置、印刷装
置、通信装置、表示装置など複数の装置を接続すること
ができる。ただし、本発明は、インタフェース・ネット
ワークを介して知能サブシステムにコマンドを転送する
他の上位(ホスト)コンピュータ・システムでも実施で
きることを了解されたい。
サブシステム制御ブロック(SCB)アーキテクチャ
は、上位プロセッサとサブシステムの間に、直接記憶ア
クセス(DMA)能力を有し、かつコマンド・レベルの
動作を扱うことのできる、制御ブロック・レベルのイン
タフェースをもたらすものと定義される。SCB内に個
々のコマンドが含まれる。1つのSCBが他の1つまた
は複数のSCBのアドレスを指し、この連鎖が1つの論
理コマンドとして扱われるという、コマンド連鎖があ
る。また、所与のコマンドに関連する多数のバッファの
データ連鎖がある。このバッファの連鎖は、間接リスト
を使った構造である。
SCBは、システム・メモリ中に終了状況ブロック(T
SB)を含んでいる。所与のSCBの完了または終了状
況が、そのコマンドを処理するサブシステムによってT
SBに入れられる。コマンド連鎖の任意の点での終了を
処理するため、連鎖内の各SCBごとにTSBが定義さ
れる。
SCBとTSBの詳しい説明は、下記で述べるコマンド
転送システムの全体的説明の後に行なう。
第1図は、本発明にもとづくコンピュータ・システムの
全体的構成図である。上位コンピュータ・システム10
0は、バス・アーキテクチャ110を介して複数の知能
サブシステム102、104、106、108と情報を
交換する。バス・アーキテクチャ110は、上位コンピ
ュータ・システム100上のチャネル112、及びサブ
システム102上のインタフェース114など各サブシ
ステム上のインタフェースの間に接続されている。サブ
システム104、106、108はそれぞれサブシステ
ム102と類似している。バス・アーキテクチャは、制
御信号を交換するための制御バス116と、データ信号
を交換するためのデータ・バス118と、アドレスを交
換するためのアドレス・バス120を含んでいる。
第2図は、システム100とサブシステム102の詳細
を示す。ただし、他のサブシステムも同様に構成されて
いる。
上位システム100は、バス126を介して主記憶装置
124に接続されたシステム・プロセッサ集合体または
上位プロセッサ122を含んでいる。システム・プロセ
ッサ集合体122は、マイクロチャネル126で主記憶
装置(システム・メモリ)124に接続された、上記の
PS/2などのパーソナル・コンピュータ・クラスのマ
イクロプロセッサから構成される。PS/2およびマイ
クロチャネルの動作については、IBM刊行物「PS/
2ハードウェア・インタフェース技術解説書(PS/2
Hardware Interface Technical Reference)」資料番号
68X−2330−0に記載されている。記憶装置12
4は、上位プロセッサ122からアクセスでき、またサ
ブシステム102から直接記憶アクセスによってアクセ
スできる。
サブシステム102は、マイクロチャネル126へのマ
イクロチャネル・インタフェース128を含む、接続機
構またはアダプタから構成される。このインタフェース
は、1組の入出力ポートを含む。これらのポートの詳細
は第3図に関して説明するが、システム上位プロセッサ
がサブシステムにコマンドを送り、サブシステムから回
答を受け取るようにするためのものである。これらのポ
ートは、主記憶空間または入出力空間にマップすること
ができる。またこのインタフェースは、アダプタが必要
とするマイクロチャネル・バス・マスタ/スレーブ機能
を提供する。
コマンドとしては、直接コマンドまたは即時コマンド
と、主記憶装置124内のサブシステム制御ブロック
(SCB)のアドレスなどの間接コマンドがある。SC
B転送支持論理ブロック130が、SCBコマンドを、
インテル80186または80188クラスのマイクロ
プロセッサなどの局所マイクロプロセッサ132に供給
する。上記のマイクロプロセッサの動作は、「インテル
・マイクロプロセッサおよび周辺装置ハンドブック(In
tel Microprocessor and Peripheral Handbook)」に記
載されている。SCB転送ブロック130はまた、プロ
セッサ132内の割込み論理回路(I)134に局所プ
ロセッサ割込みを提供する。SCB転送論理ブロック1
30とマイクロプロセッサ132に含まれるコマンド処
理プログラムの機能とプロセッサ複号機能を示す詳細な
流れ図を第14図ないし第18図に示す。
マイクロプロセッサ132は、SCBコマンドに応答し
て、接続装置インタフェース146を介して接続された
装置136、138、140、142に対してタスクの
スケジュールを立てる。インタフェース146は、例え
ば小型コンピュータ・システム・インタフェース(SC
SI)である。SCSIインタフェースの動作は、「米
国規格協会(ANSI)情報システム規格−小型コンピ
ュータ・システム・インタフェース(SCSI)(Amer
ican National Standards Institute(ANSI)For I
nformation Systems-Small Computer Systems Interfac
e(SCSI))」、刊行物番号ANSI X3.13
1−1986に記載されている。接続装置は、磁気ディ
スク装置、磁気テープ装置、直接アクセス記憶装置(D
ASD)、印刷装置、表示装置などである。装置D
(0)136は、サブシステムにコマンドを送るために
利用される。知能サブシステム136と装置138、1
40、142は、それぞれ上位プロセッサから論理装置
と見なされ、装置識別番号D(0)、D(1)、D
(2)、D(n)が割り当てられ、それを使ってアドレ
スされる。
マイクロチャネル・インタフェースの入出力ポートを第
3図に示す。サブシステムを制御するように定義された
ポートは、次の順序で入出力アドレス空間内で割り振ら
なければならない。
(1)コマンド・インタフェース・ポート148 (2)アテンション・ポート(AP)150 (3)サブシステム制御ポート152 (4)割込み状況ポート154 (5)コマンド使用中/状況ポート(CBSP)156 (6)装置割込み識別ポート(DIIP)158 これらのポートは、入出力アドレス空間の代りにシステ
ム・メモリ・アドレス空間にマップすることができる。
この説明では、入出力アドレスを選んだ。したがって、
説明中で「出力」コマンドまたは「入力」コマンドを使
っている箇所で、ポートをシステム・メモリ・アドレス
空間にマップする場合はその代りに「システム書込み」
コマンドまたは「システム読取り」コマンドを使うこと
になる。
コマンド・インタフェース・ポート148は、コマンド
・ポートとも呼ばれ、サブシステム読取り/システム書
込みレジスタである。この32ビット・レジスタは、2
ワード(32ビット)の直接コマンドすなわち即時コマ
ンド、またはSCBアドレスなどの間接コマンドを、シ
ステムからサブシステムに転送するのに使用する。間接
コマンドまたはSCBは、サブシステムが実行すべき動
作を指定する。
システム・プログラムは、即時コマンドまたはSCBア
ドレスをコマンド・インタフェース・ポート148に書
き込み、次いでアテンション・ポート150に書き込
む。サブシステムは、コマンド使用中/状況ポート15
6中の使用中ビット(B)をセットする。システムがア
テンション・ポート150に書き込むと、その旨が割込
み論理ブロック134(第2図)を介して局所マイクロ
プロセッサ132に伝えられる。この割込みに応答し
て、サブシステムは、アテンション・ポート150とコ
マンド・インタフェース・ポート148を読み取り、次
いで実行すべき動作の種類とその対象となる装置を決定
する。サブシステムは、コマンド・インタフェース・ポ
ート148中に供給されたアドレスにあるSCBを取り
出し、あるいは即時コマンドを実行する。
アテンション・ポート150は、サブシステム読取り/
システム書込みレジスタである。この8ビットまたは1
6ビットのレジスタは、コマンドを実行すべくサブシス
テムの注意を要求するために、システム・プログラムが
使用する。このレジスタ内のビットは、要求される動作
および関連する装置番号を示す。言い換えれば、アテン
ション・ポートは、即時コマンドまたはSCBアドレス
のどちらをコマンド・インタフェース・ポート148で
受け取るかを示す第1の部分と、サブシステムまたは接
続装置のどちらが、コマンド・インタフェース・ポート
148で受け取ったコマンドを実行するかを示す第2の
部分とを有するコードを受け取る。アテンション・ポー
ト150がシステムによって書き込まれると、コマンド
使用中/状況ポート156中の使用中ビット(B)が、
サブシステムによって直ちに“1”にセットされる。こ
の使用中ビット(B)は、サブシステムがアテンション
要求および関連するコマンド・インタフェース・ポート
を読み取り、このコマンドを受け入れることができるか
どうか判定するまで、セットされたままとなる。使用中
ビットが“0”のときは、サブシステムは新しいコマン
ドを受け取ることができるはずである。使用中ビットは
また、サブシステムがサブシステム・リセットを完了す
るので、セットされたままとなる。
第4図にアテンション・ポート(AP)150の詳細を
示す。上位プロセッサは、APに読取り/書込みアクセ
スを行なうことができる。APへのシステム・ソフトウ
ェア書込み(SSW)動作またはシステム・ソフトウェ
ア読取り(SSR)動作の間、マイクロチャネル入出力
アドレスは、マイクロチャネルのセットアップ時にAP
に割り当てられたサブシステムの選択のための値と等し
くならなければならない。
APは、APレジスタ143の入力端で、8ビットのア
テンション・コマンド141を受け取る。この入力アテ
ンション・コマンドは、ANDゲート153が活動状態
のとき、レジスタ143にクロック入力され、レジスタ
の出力端157から出力される。ゲート153が活動状
態のとき、SET_AP_INTRPT信号が線155
上に供給される。この信号は、上位プロセッサによって
APにコマンドが書き込まれたことを知らせる、サブシ
ステム局所プロセッサへの割込みである。ゲート153
が非活動状態のときは、アテンション・コマンドをレジ
スタ143にクロック入力することができず、したがっ
て、サブシステムはそれを無視する。
4つの入力が、ゲート153が“1”の出力をもつかど
うかを制御する。正の論理入力を正(+)符号で表し、
負の論理入力を負(−)符号で表す。線145上の第1
の入力は+MC_AP_SEL信号であり、“1”のと
き、APに対するマイクロチャネル・アドレスが有効で
あり、かつ上位プロセッサがこのサブシステムに対する
APを選択したことを示す。線147上の第2の入力は
+SSW_REG_CLK信号であり、“1”のとき、
このサブシステムの入出力アドレス空間に対するマイク
ロチャネル入出力書込みが有効であることを示す。第3
と第4の信号は、コマンド使用中/状況ポート(CBS
P)から供給される。線149上の第3の入力は−CB
SP_BIT0_(B)信号であり、これは使用中ビッ
ト(B)信号である。この信号は負の論理信号なので、
Bが“0”のとき、線149上の信号は“1”となり、
Bが“1”のとき、線149上の信号は“0”となる。
線151上の第4の入力は−CBSP_BIT4_(R
EJ)信号であり、これは拒絶(REJ)信号である。
この信号は負の論理信号なので、REJが“0”のと
き、線151上の信号は“1”となり、REJが“1”
のとき、線151上の信号は“0”となる。線145、
147、149、151がそれぞれ“1”のときは、線
141上のアテンション・コマンドがレジスタ143に
クロック入力され、線155上のSET_AP_INT
RPT信号が局所プロセッサに、AP中にコマンドが書
き込まれたことを伝える。逆に、これらの線のいずれか
が“0”の場合は、ゲート153は“0”出力を供給
し、それによってAPレジスタ143へのコマンドの書
込みが阻止される。具体的に言うと、使用中ビットまた
はREJビットが“1”の場合、APレジスタ143へ
のコマンドの書込みが阻止される。
サブシステム制御ポート152は、サブシステム読取り
/システム書込みレジスタである。これは8ビットの読
取り/書込みポートであり、いくつかのサブシステム規
模の機能の直接ハードウェア制御を行なう。このポート
には、サブシステムおよびすべての接続装置のリセット
を制御するビット、サブシステムが主プロセッサに物理
割込みを提示することをエネーブルまたはディスエーブ
ルするビット、サブシステムDMAエネーブル/ディス
エーブル機能、最後にコマンドがサブシステムによって
実行されずに拒絶されたときに生じるエラーをリセット
する機能が含まれる。サブシステム制御ポート152の
ビット0〜7のフォーマットと機能を第3図に示し、そ
の機能を下記に説明する。
ビット0−EI−サブシステム割込み可能 このビットが“1”にセットされると、サブシステムが
システムに物理割込みを送ることが可能になる。EIビ
ットは、サブシステムの電源が入ったとき、またはサブ
システム・リセット・コマンドによってリセットされた
とき、“0”に初期設定される。EIビットが“0”の
とき、サブシステムの物理割込みが禁止され、主プロセ
ッサに物理割込みを送ることができない。このビット
は、このポートへの出力コマンドまたはサブシステム・
リセット・コマンドによって明示的にリセットされるま
で、セットされたままとなる。
ビット1−DMA−DMA可能 このビットが“0”にセットされているときは、サブシ
ステムはDMA動作を開始できない。このビットを
“0”にセットすると、サブシステムは、SCBコマン
ドの発行もSCB論理割込み状況(TSB)の記憶もで
きない状態になる。このビットは、サブシステムに電源
を入れたとき“0”にセットされ、またサブシステム・
リセット・コマンドによって“0”にリセットされる。
このビットは、このポートへの出力コマンドまたはサブ
システム・リセット・コマンドによって明示的にリセッ
トされるまで、セットされたままとなる。(DMAビッ
トはハードウェアのデバッグ手段として意図され、サブ
システムに強制的にマイクロチャネル活動を停止させる
手段としても使用できる)。
ビット2&3−S.D−サブシステム従属 このポートのビット2と3は、サブシステム従属機能用
に予約されている。
ビット4&6−R−予約 ビット4と6は予約ビットであり、“0”にセットしな
ければならない。
ビット5−RR−拒絶リセット 上位プロセッサがこのビットを“1”にセットし、かつ
サブシステムが拒絶状態のとき、拒絶状態がクリアされ
る。拒絶状態がクリアされると、コマンド使用中/状況
ポート中の使用中(B)ビットと拒絶(REJ)ビット
が“0”にセットされる。サブシステムが拒絶状態にな
い場合は、RRビットに“1”を書き込んでも何の効果
もない。RRビットは、サブシステムの電源を入れたと
きまたはサブシステム・リセット・コマンドによってリ
セットされたとき、“0”にセットされる。このビット
は、このポートへの特定の出力コマンドまたはサブシス
テム・リセット・コマンドによって明示的にリセットさ
れるまで、セットされたままとなる。RRビットに
“0”の値を書き込んでも、サブシステムの内部状態に
影響はない。
ビット7−RST−サブシステム・リセット このビットは、サブシステムおよびそれに接続された全
装置のハードウェア制御リセットを行なうために使用さ
れる。“1”にセットされると、サブシステムはリセッ
ト保留状態に入り、コマンド使用中/状況ポートの使用
中ビット(B)を“1”にセットする。サブシステム上
のすべての装置の活動が停止される。プログラムは、サ
ブシステム特有の時間にRSTに“0”値を書き込まな
ければならない。リセット保留状態の間にRSTビット
が“1”から“0”に遷移すると、サブシステムはリセ
ット進行中状態になる。この状態のとき、サブシステム
はそれ自体およびそれに接続された全装置のリセットを
完了する。リセットが完了すると、使用中ビットが
“0”にセットされ、主プロセッサの割込みが試みられ
る。
割込み状況ポート154は、システム読取り/サブシス
テム書込みレジスタである。この8ビットまたは16ビ
ット・レジスタは、プログラムに割込みデータを提示す
るためにサブシステムが使用する。
即時コマンド、重大なハードウェア障害を伴うSCBコ
マンド、および非SCBコマンドに対する割込みがこの
ポートで提示される。システム・ソフトウェアによって
明示的にリセットされるまで、新しい割込みをISPを
介してシステムに提示することはできない。
割込み状況ポート154の8ビット・レジスタ構成を第
3図に示す。このビットの割当ては次の通りである。
ビット7〜4−割込みID これらのビットは、提示された割込みの原因を識別する
番号でコード化される。
ビット3〜0−装置アドレス 提示された割込みを発した装置のアドレス。
16ビット割込み状況ポート(図示せず)のフォーマッ
トは次の通りである。
ビット15〜12−割込みID これらのビットは、提示された割込みの原因を識別する
番号でコード化される。プログラムは、SCB割込みか
どうかTSB状況を検査することにより、さらに多くの
情報を得ることができる。
ビット11〜0−装置アドレス 提示された割込みを発した装置のアドレス。
コマンド使用中/状況ポート156は、サブシステム書
込み/システム読取りレジスタである。この8ビット・
ポートは2つの機能をもつ。第1に、以前に提出された
コマンドの状況を決定するために各コマンドが提出され
る前にシステムがそれを読み取らなければならない。コ
マンドが提出された後、プログラムは、サブシステムが
コマンド状況を得るためにこのポートを読み取ろうと試
みる前に、定義された時間が経過するようにしなければ
ならない。
第2に、このポートは、割込み状況ポート(ISP)1
54中に存在する有効な割込み値をサブシステムがもつ
かどうかを示す。有効な値が存在し、IVが“1”であ
ることをコマンド使用中/状況ポートが示さない限り、
このISPはプログラムによって読み取られない。
コマンド使用中/状況ポート156のフォーマットと機
能は次の通りである。
ビット0−B−使用中ビット このビットは、コマンド・インタフェースポートとアテ
ンション・ポートが現在使用されているか否かを示す。
使用中(B)ビットが“1”のときは、プログラムがコ
マンド・ポートにもアテンション・ポートにも書き込も
うと試みることはできない。使用中(B)ビットが
“1”となるのは、下記で説明するようにサブシステム
がリセット保留、リセット進行中、拒絶または復号の状
態にある場合である。使用中(B)ビットが“1”の間
に上位プログラムがアテンション・ポートまたはコマン
ド・ポートあるいはその両方に書き込もうとした場合、
これらのポートに対して試みられた書込はサブシステム
によって無視され、新たに試みられたコマンドはサブシ
ステムに無視され、エラーの指示は出ない。
サブシステムがリセット保留、リセット進行中、拒絶ま
たは復号の状態に入ると、このビットは“1”にセット
される。サブシステムがリセット保留状態に入るのは、
サブシステム制御ポート152のRSTビットが“1”
にセットされたときである。サブシステムがリセット保
留状態で、サブシステム制御ポートのRSTビットが
“0”にセットされた場合、サブシステムはリセット進
行中状態に入る。装置リセット・コマンドが、装置0、
すなわちサブシステム自体に出されたときも、サブシス
テムはリセット進行中状態に入る。
サブシステムがサブシステム・リセット・コマンドを完
了してリセット進行中状態から出ると、使用中ビットが
“0”にセットされる。
プログラムがアテンション・ポートへの書込みによって
新しいコマンドを提出し、サブシステムがリセット保
留、リセット進行中または復号状態にないとき、サブシ
ステムは復号状態に入る。サブシステムがあるコマンド
を受け入れて復号状態から出るときも、使用中ビットは
“0”にセットされる。復号状態で処理されているコマ
ンドが拒絶されると、サブシステムは復号状態から出て
拒絶状態に入る。拒絶状態では、拒絶(REJ)ビット
と使用中(B)ビットが“1”にセットされる。状況ビ
ット(S)は、コマンドがサブシステムによって拒絶さ
れた理由を示す。サブシステムがリセット保留状態に入
ると、拒絶状態または復号状態がクリアされる。
ビット1−IV−割込み有効 このビットは、サブシステムがその割込み状況ポートに
割込み値を書き込んだ後で“1”にセットされる。IV
が“0”のとき、ISPは有効な割込み値を含んでいな
い。IVが“1”のとき、ISPを読み取ると、有効な
割込み値と装置番号が得られる。
ビット2−予約 ビット3−予約 ビット4−拒絶(REJ)ビット コマンド・インタフェース・ポートおよびアテンション
・ポートを介して提出されたコマンドをサブシステムが
拒絶することに決定したとき、このビットは“1”にセ
ットされる。サブシステムは復号状態から出て拒絶状態
に入る。コマンド使用中/状況ポート中の状況(S)ビ
ットが、コマンドが拒絶された理由を示すコード化され
た値を含む。サブシステムが提出されたコマンドを受け
入れて復号状態から出ると、コマンド使用中/状況ポー
ト中の拒絶(REJ)ビットと使用中(B)ビットが共
に“0”にセットされる。
サブシステムが拒絶状態にあるとき、プログラムはコマ
ンド・ポートまたはアテンション・コードへの書込みに
よって新しいコマンドを提出することができない。これ
らの書込みの試みは無視され、それらのポートは引続き
拒絶されたコマンドの値を含む。サブシステムが拒絶状
態のときは、REJビットと使用中ビットが共にサブシ
ステムによって“1”にセットされる。
サブシステム制御ポートのRSTビットを“1”にセッ
トし、ハードウェア制御のサブシステム・リセット・コ
マンドを実行し、あるいはサブシステム制御ポートのR
Rビットを“1”にセットし、ハードウェア制御のリセ
ット拒絶コマンドを発行することにより、サブシステム
を拒絶状態から外すことができる。RRビットを使用す
るのが、リセット状態をクリアする通常の方法である。
サブシステムが拒絶状態から外されると、REJビット
と使用中ビットが共にサブシステムによって“0”にセ
ットされる。
ビット5〜7−状況ビット アテンション・ポートを介して提出されたコマンドが復
号状態中に拒絶された後、コマンド使用中/状況ポート
中でセットされる、コード化された3ビット値。サブシ
ステムは復号状態から出て拒絶状態に入り、拒絶(RE
J)ビットと使用中(B)ビットは“1”となる。RE
Jビットが“1”でない限りSビットの値は定義され
ず、上位システムによって無視される。
Sビットのコード化された値は次の通りである。
S=000 予約 S=001 装置使用不能拒絶 この状態が生じるのは、装置がコマンドを実行するのに
十分なほど機能的ではないとサブシステムが判定できる
ときである。装置リセット・コマンドやサブシステム・
リセット・コマンドに対してはこの状態は生じない。こ
の状態は上記の2つのコマンドのどちらかによってクリ
アされる。
S=010 無効コマンド この状態が生じるのは、サブシステムがアテンション・
ポート中のアテンション・コードを認識しないとき、ま
たはコマンド・ポート中で提出された即時コマンドのビ
ット0−7で指定される即時コマンドが無効のときであ
る。
S=011 装置使用中 この状態が生じるのは、装置が使用中であるコマンドを
実行しており、このとき新しいコマンドを受け入れるこ
とができないときである。装置リセット・コマンドやサ
ブシステム・リセット・コマンドに対してはこの状態は
生じない。
S=100 装置SCB実行拒絶 この状態が生じるのは、プログラムが中断コマンドを発
行して、装置をSCBコマンドを実行できない状態に置
いたときである。この状態は、再開コマンド、装置リセ
ット・コマンドまたはサブシステム・リセット・コマン
ドによってクリアされる。
S=101 無効装置アドレス この状態が生じるのは、システムがアテンション・ポー
トに無効な存在しない装置番号を入れたときである。ア
テンション・ポートが8ビット幅の場合、ビット3〜0
が無効な装置番号を含む。16ビット幅のアテンション
・ポートでは、ビット11〜0が無効な装置番号を含
む。
S=110 予約 S=111 装置割込み待ち行列満杯 この状態が生じるのは、サブシステムの割込み状況ポー
トに記憶されていない割込み用に維持する割込み待ち行
列中のすべての内部記憶域を装置が使用してしまったと
きである。この状態の場合、装置リセット・コマンド、
サブシステム・リセット・コマンド、割込みリセット・
コマンド以外のすべてのコマンドが装置によって拒絶さ
れる。装置に対するこの状態は、装置がその割込み待ち
行列からサブシステムの割込み状況ポートにデータを書
き込むことができるようになるとすぐクリアされる。
次に、第5図にコマンド使用中/状況ポート(CBS
P)156の各ビットがどのように操作されるかを機能
的に詳しく示す。
使用中(B)ビットCBSP_BIT0_(B)は、S
/Rレジスタ302と極性保持(PH)レジスタ300
のレジスタの組合せで実施される。使用中ビットが
“0”、すなわち非活動状態の場合、次の3つの具体的
活動のいずれかによってそれを“1”にセットすること
ができる。
1.線314上のマイクロチャネルCHRESET信号
が“1”で、レジスタのセット(S)入力端に供給され
るORゲート310の出力が“1”の場合。この場合、
レジスタ302が“1”にセットされ、それがレジスタ
300のD入力端に供給される。インバータ312から
の反転MC_AP_SEL信号がレジスタ300のクロ
ック(C)入力端に供給され、出力+CBSP_BIT
0_(B)、すなわち使用中(B)ビットが”1”にセ
ットされる。
2.システム・プログラムがサブシステム制御ポート
(SCP)のビット7に“1”を書き込んだことが、線
316上の+SCP_BIT7(RST)信号が“1”
であることによって明らかになった場合、ORゲート3
10の出力は“1”になり、レジスタ302と300お
よび使用中(B)ビットが上記の活動1で述べたように
“1”にセットされる。
3.ソフトウェアによるAPへの書込みが行なわれた場
合、線304上の+MC_AP_SEL信号と線306
上の+SSW_REG_CLK信号がそれぞれ“1”と
なって、ANDゲート308の出力を“1”にする。ゲ
ート308からの出力“1”はORゲート310の出力
を“1”にさせ、レジスタ302と300および使用中
(B)ビットが上記の活動1および2で述べたように
“1”にセットされる。
使用中(B)ビットが“1”の場合、以下の2つの方法
のいずれかによってそれをクリア、すなわち“0”にセ
ットすることができる。
1.システム・プログラムがサブシステム制御ポート
(SCP)のビット5(RR)に“1”を書き込むこと
によって、使用中(B)ビットがクリアされる。これに
よって、下記に述べるように拒絶(REJ)ビットもク
リアされる。SCP中のRRビットが“1”のとき、線
328上の+MC_SCP_SEL信号、線326上の
+IC_BUS_RCVR_BIT5信号、および線3
06上の+SSW_REG_CLK信号がそれぞれ
“1”になって、AND/ORゲート318の出力端で
“1”が生成される。この“1”がレジスタ302のリ
セット(R)入力端に供給されて、レジスタ302の出
力が“0”になり、それがレジスタ300のD入力端に
供給される。線304上の+MC_AP_SEL信号は
このとき“0”であり、その“0”がインバータ312
で“1”に反転される。この“1”がレジスタ300の
C入力端に供給されて、D入力端で“0”にクロック
し、それによってレジスタ300を“0”にセットす
る。レジスタ300が“0”にセットされると、使用中
(B)ビット、すなわち出力+CBSP_BIT0_
(B)が“0”になる。
2.コマンド処理プログラムが復号状態から出て受諾状
態に入った後も、使用中(B)ビットがサブシステムに
よってクリアされる。サブシステムの局所プロセッサ
が、CBSPのビット0に“0”を書き込む。線320
上の−IC_BUS_RCVR_BIT0信号、線32
2上の+LP_CBSP_SEL信号、および線324
上のLPW_REG_CLK信号がそれぞれ“1”にな
り、AND/ORゲート318の出力端に“1”を生成
する。これによって、上述のようにレジスタ302と3
00が“0”にリセットされる。レジスタ300 が
“0”にセットされると、使用中(B)ビットが“0”
になる。
システムがSSCPのビット7に“1”を書き込むこと
により、サブシステムがサブシステム・リセット・コマ
ンドを実行している場合、サブシステムがそのサブシス
テム・リセット・コマンドを完了したとき、使用中
(B)ビットがサブシステムによってリセットされる。
使用中ビットがオンで、サブシステムが復号状態にあ
り、次いで拒絶状態になると仮定する。SCP中の拒絶
リセット・ビット5を介した拒絶ビット(CBSPビッ
ト4)でも、次のようにして使用中ビットがリセットさ
れる。システムがSCPのビット5(RR)位置に
“1”を書き込む。SCPへの書込みがサブシステムに
よって検出されると、線326(IC_BUS_RCV
R_BIT5)ならびに線328(MC_SCP_SE
L)と線306(SSW_REG_CLK)が活動状態
になる。これらの線が活動状態になると、ゲート318
がオンになってレジスタ302をオフにリセットする。
前述のようにレジスタ302が“0”になり同時にイン
バータ312がオンになると、レジスタ300がオフに
リセットされて、使用中(B)ビットをオフにセットす
る。
CBSPのREJビット(4)とCBSPの状況ビット
(5、6、7)は、それぞれレジスタ303と332で
表される。サブシステムが拒絶状態に入ると、CBSP
ビット4が“1”にセットされ、CBSPビット5、
6、7(状況ビット)が拒絶コードにセットされる。線
334、322、324が活動状態のときANDゲート
336がオンになってS/Rレジスタ330をオンにセ
ットし、REJビットをオンにする。線326、33
6、338上に状況コードを置くことによって、レジス
タ332中の状況ビットがオンにセットされる。線32
2と324が活動状態となってANDゲート340をオ
ンにし、それがレジスタ332のC入力を活動化するこ
とにより、状況コードがレジスタ332にクロック入力
される。
ORゲート346がオンのとき、拒絶(REJ)ビット
はオフにリセットされる。ORゲート346がオンにな
るのは、線314(CHRESET)が活動状態か、線
316(RST)が活動状態か、あるいはANDゲート
342がオンのときである。ANDゲート342は、線
326と328と306が活動状態の場合にオンにな
る。これは、システムが拒絶リセット・ビット5(SC
P)に“1”を書き込んで、サブシステムを拒絶状態か
ら解放したことを表す。
CBSP_BIT1_IVは、S/Rレジスタ348の
出力として実施される。ANDゲート350がオンのと
き、レジスタ348は“1”にセットされる。ANDゲ
ート350がオンになるのは、線322と324と35
2が活動状態の場合である。サブシステムが割込み状況
ポート(ISP)に書き込んだ後、IVビットが“1”
にセットされる。
上位プロセッサは、サブシステムがマイクロチャネル割
込みを主張した結果としてIVビットを読み取り、ある
いはIVビットを使って割込みがあるかどうかサブシス
テムをポーリングすることができる。上位プロセッサが
ISPを読み取り、上位割込み処理プログラムが割込み
を処理した後、上位プロセッサはアテンション・ポート
を介してサブシステムにリセット割込みアテンション・
コード(1110h)を出す。
S/Rレジスタ348は、ORゲートがオンのときオフ
にリセットされる。ORゲート354がオンになるの
は、線314(CHRESET)または線316(CD
RESET)またはANDゲート356またはANDゲ
ート358がオンの場合である。
ANDゲート356は、線360、362、364、3
66上のIC_BUS_RCVR_BIT7〜4がそれ
ぞれアテンション・ポートのビット7〜4からの2進値
“0000”(即時装置リセット)でセットされ、線3
04と306が活動状態の場合にオンになる。
ANDゲート358は、線338、336、326、3
66上のIC_BUS_RCVRBIT7〜4が2進値
“1110”(割込みリセット)でセットされ、線30
4と306が活動状態の場合にオンになる。
CBSP予約(R)ビットは、レジスタ368で表され
る。線370と372、IC_BUS_BIT2、3が
活動状態のとき、2つのデータ(D)入力がセットされ
る。これらのビットは、ANDゲート374がオンのと
き、レジスタ368にクロック入力される。ANDゲー
ト374は、線322と324がオンのときオンとな
る。
装置割込み識別子(DIIP)ポート158は、システ
ム読取りレジスタである。これは16ビット・ポート
で、サブシステム内のどの論理装置で少なくとも1つの
論理SCBが割込み保留であるかを上位システム・ソフ
トウェアに示すのに使用される。ビットが“1”の場
合、DIIPポートのそのビット位置に関連する装置に
ついて、少なくとも1つの論理SCB割込みが保留であ
る。このビットが“1”のときは、割込み状況が、少な
くとも1つのSCBに関連する上位記憶装置のTSB域
に記憶されている。
第1の装置割込みポートのフォーマットは次の通りであ
る。ビット 0−装置0SCB割込み保留−サブシステム割込み 1−装置1SCB割込み保留 2−装置2SCB割込み保留 3−装置3SCB割込み保留 4−装置4SCB割込み保留 5−装置5SCB割込み保留 6−装置6SCB割込み保留 7−装置7SCB割込み保留 8−装置8SCB割込み保留 9−装置9SCB割込み保留 10−装置10SCB割込み保留 11−装置11SCB割込み保留 12−装置12SCB割込み保留 13−装置13SCB割込み保留 14−装置14SCB割込み保留 15−装置15SCB割込み保留 サブシステムが16個以上の装置をサポートする場合、
これらの装置からのSCB割込みを表すために追加のD
IIPポートが必要である。これらのポート中でビット
位置0から順に装置を割り当てる。サブシステムに17
個の装置が接続されている場合は、2つのDIIPポー
トが必要となり、第2のDIIPのビット0と1が、そ
れぞれ装置16と17に割り当てられる。DIIPの詳
しい記述は、第21図ないし第26図に示す。
1989年6月9日付の米国特許出願第364931号
では、割込み状況ポート154が即時コマンドとSCB
コマンドのどちらの場合もシステム・プログラムに割込
みデータを提示した。本発明では、割込み状況ポート1
54は即時コマンドに対する割込みデータをシステム・
プログラムに提示し、DIIP158がSCBコマンド
に対する割込みデータをシステム・プログラムに提示す
る。この説明および頭記の特許請求の範囲では、「第1
物理割込み」という言葉を、即時コマンドに関して優先
される割込みを記述するのに使用し、「第2物理割込
み」という言葉を、SCBコマンドに関して優先される
割込みを記述するのに使用する。実際には、第1と第2
の物理割込みをORして、上位プロセッサに対する1つ
の物理割込みを作成する。
コマンド・インタフェース・ポートとアテンション・ポ
ートで使用するフォーマットは、上位システムからサブ
システムに即時コマンドとSCBコマンドのどちらが供
給されるのかによって変わる。
即時コマンドは、主として装置向けであり、制御本位で
ある。第6図で、コマンド・インタフェース・ポートの
一般的フォーマットを160に示し、アテンション・ポ
ートにおける3つのタイプの即時コマンドをそれぞれ1
62、164、166に示す。コマンドが装置向けであ
る場合、その装置は、即時コマンドの実行前にそのコマ
ンド全体を受け取ったことを検証しなければならない。
コマンド・タイプを決定するため、アテンション・ポー
トのビット7〜4を検査する。装置リセット・タイプの
コマンドを受け取る場合、コードは162に示すような
ものとなる。即時コマンド・タイプのコマンドを受け取
る場合、コードは164に示すようなものとなる。割込
みリセット(EOI)・タイプのコマンドを受け取る場
合、コードは166に示すようなものとなる。
160に示すコマンド・インタフェース・ポートのビッ
ト7〜0は、命令コードを指定する。コマンドを受け取
ると、装置はコマンド使用中/状況ポートの使用中ビッ
トをセットする。(図示せず)。装置は、そのポートが
使用中となっている時間が最少となるようにしなければ
ならない。サブシステム・リセット・コマンドのとき、
そのリセットが完了するまで、サブシステムはポートを
使用中に保持しなければならない。
即時コマンドに対するコマンド・インタフェース・ポー
トの定義は次の通りである。
ICビット8−即時コマンド・フォーマット指定 ICビット8は、使用する即時コマンド・フォーマット
・タイプを指定するのに使用される。ICビット8=1
の場合、即時コマンド・フォーマットはタイプ1として
定義される。
ICビット31〜16−予約(コマンド発行前にソフト
ウェアによって0にセットされる) ICビット8=0の場合。ICビット8は、使用される
即時コマンド・フォーマット・タイプ2を指定するのに
使用される。
ビットの定義の違いは、下記に記す。
ICビット31〜16−命令コード従属 ICビット15−コマンド割込み禁止(DCI) ビット15=0の場合、即時コマンドの完了後に割り込
み、割込み状況ポート(ISP)の状況を報告する。ビ
ット15=1の場合、エラーが発生しない限り、即時コ
マンドの完了後に割り込まない。一部のコマンドはこの
指定を無視する。
ICビット14−装置割込み禁止(DDI) ビット14=0の場合、指定された装置についてシステ
ムへの割込みが可能となる。ビット14=1の場合、指
定された装置についてシステムへの割込みが禁止され
る。
ICビット13〜9−命令コード従属ビット これらのビットを用いると、コマンド・フィールドが修
正できる。現在、ビット13と12は装置リセット・コ
マンドによって使用されている。ビット12〜9はSC
B割込み即時リセット・コマンドによって、リセットす
べき割込みカウントを指定するために使用されている。
ICビット7〜0−即時コマンド・ビット 下記のように復号される。
ビット76543210 00000000 −装置即時リセット 00000001 −予約 00000010 −動作なし(NOOP) 00000011 −予約 00000100 −割込み状況ポート・リセット 00000101 −予約 00000110 −予約 00000111 −予約 00001000 −SCB割込みリセット 00001001 −予約 00001010 −予約 00001011 −予約 00001100 −装置従属 00001101 −装置従属 00001110 −装置従属 00001111 −装置従属 00010000 −予約 00010001 −予約 00010010 −即時診断実行 00010011 −装置従属 00010100 −予約 00010101 −予約 00010110 −予約 00010111 −装置従属 00011000 −予約 00011001 −予約 00011010 −予約 00011011 −予約 00011100 −予約 00011101 −予約 00011110 −予約 00011111 −中断 00100000 −再開 すべての予約ビットは、コマンド発行前にシステム・ソ
フトウェアによって0にセットされる。ビット0〜7の
他のすべての復号は、予約されている。
第7図で、SCBコマンドに対するコマンド・インタフ
ェース・ポートの一般的フォーマットを168に示し、
アテンション・ポートの一般的フォーマットを170に
示す。コマンド・インタフェース・ポートは、SCBの
開始アドレスを含んでいる。この開始アドレスは物理ア
ドレスであり、ダブルワード境界上になければならな
い。SCB開始アテンション要求に対するアテンション
・ポートのフォーマットは170に示されている。
前述のように、間接コマンドはSCB内に含まれてい
る。SCBは特定の順序で連鎖され、1つの論理要求と
して扱われる。データ・バッファは間接リストを使って
連鎖することができる。この構造はまた、要求処理中に
エラーがあった場合、精巧な状況情報を扱うことができ
る。状況は、終了状況ブロック(TSB)に入れられ
る。コマンド連鎖中の任意の地点での終了を処理するた
め、連鎖中の各SCBごとにTSBが定義されている。
SCBレイアウトの詳細バージョンには2種のものがあ
る。第8図に示す基本フォーマットと、第9図に示す拡
張フォーマットである。拡張フォーマットは、基本フォ
ーマットの末尾に追加のフィールドが付加されている。
各フィールドと使用する略語の簡単な定義を以下に示
す。
1.コマンド・ワード これは、配給されるSCBコマンドのタイプを定義する
ために使用する。このワードは、3つのフィールドをも
つ。
−命令コード−このSCBコマンドに対する8ビットの
命令コードを含む。
−A−このSCBに含まれるコマンド・コードがアーキ
テクチャをもつかもたないかを知らせるための1ビット
の標識。図に示したレイアウトは、アーキテクチャをも
つコマンド・コードにもそれをもたないものにも適用さ
れる。
−予約− 2.エネーブル・ワード SCBの様々なフィールドは、様々なコマンド特有の動
作を可能にする。エネーブル・ワードは、このコマンド
に対するこれらのフィールドの用途を示すいくつかのフ
ィールドを含んでいる。また、使用すべき回答指示のタ
イプを定義する標識も有する。
−CH−エラーがない場合の、次のSCBへの連鎖(次
のSCBのアドレスは、連鎖アドレス1フィールドにあ
る)。
−COND CH−ビット1は、ビット2、3、4で定
義されるある条件のとき、そのアドレスが連鎖アドレス
2にあるSCBへの連鎖を示す。
−A1−このコマンドがアドレス1を使って、バッファ
または(バッファを指す1組のポインタを含む)間接リ
ストを指すことを示す(コマンドによって定義される特
定の用途) −A2−このコマンドがアドレス2を使って、バッファ
または(バッファを指す1組のポインタを含む)間接リ
ストを指すことを示す(コマンドによって定義される特
定の用途)。
−I−コマンドがエラーなしに完了したとき、割込みを
禁止する。
−EXT−このSCBが拡張フォーマットをもつことを
示す。
−R−予約 −SES−矩形例外抑制(読み取ったデータが規定され
たバッファ・サイズより小さいときなど)。
−SEL−長形例外抑制(装置から読み取ったデータが
コマンドによって規定されたバッファ・サイズより大き
いときなど)。
−PT−このコマンドがバッファ連鎖(コマンド上のデ
ータ連鎖)を指す間接リストを使用することを示す。
−TSB−エラーがあるときだけTSB状況を記憶すべ
きことを示す。
3.エネーブル・ワード2 拡張フォーマットを使用するときは、拡張部分にあるエ
ネーブル・ワード2中に下記のような追加の標識が加え
られる。
−PT2−アドレス2が間接リスト(バイト・カウント
2中のリストの長さ)を指すことを示す。
−DEC1−メモリ・アドレス1を増分ではなく減分す
べきことを示す。
−DEC2−メモリ・アドレス2を増分ではなく減分す
べきことを示す。
4.アドレス1 データ・バッファまたは間接リストを指す32ビットの
アドレスを含む。その用途はコマンドによって定義され
る。エネーブル・ワード標識(PT)は、どの形のアド
レスが使用されているかを示す。
5.アドレス2 データ・バッファまたは間接リストを指す32ビットの
アドレスを含む。その用途はコマンドによって定義され
る。エネーブル・ワード標識(PT2)は、どの形のア
ドレスが使用されているかを示す。
6.バイト・カウント1 アドレス1またはアドレス2中のアドレスが指すバッフ
ァまたは間接リストの長さを定義する4バイトのカウン
トを含む。
7.バイト・カウント2 アドレス2中のアドレスが指すバッファまたは間接リス
トの長さを定義する4バイトのカウントを含む。このフ
ィールドは拡張部分にある。
8.TSBアドレス このSCBと関連するTSBの32ビットのアドレスを
含む。
9.連鎖アドレス1 コマンド連鎖を使用する要求中の次のSCBを指すため
に使用される。
10.連鎖アドレス2 条件付き連鎖の条件が充たされたときに使用されるSC
Bを指すために使用される。
11.連鎖ID 連鎖に対する16ビットの識別子を含む。その値は、連
鎖(要求)中のすべてのSCBで同じである。
12.拡張長さ 基本フォーマットの拡張部分のバイト数を示す1バイト
のカウント。このワードの他方のバイトは予約されてい
る。
割込み状況ポート154におけるエラー/無エラー指示
の他に、本発明では、SCB連鎖中の各コマンドごとに
サブシステムから上位コンピュータに詳細な状況情報が
報告される。これは、終了状況ブロック(TSB)中で
報告される。各SCBは、サブシステムがSCBの完了
または終了状況を書き込む先の、システム・メモリ中の
TSBアドレスを含む。TSBには、第10図に示すよ
うな基本フォーマットと、第11図に示すような拡張フ
ォーマットがある。基本フォーマットに拡張部分が付加
されるとき、装置従属情報のサイズを示すカウントの記
憶位置が変わる。
基本TSBフォーマットおよび拡張TSBフォーマット
で使用される様々なフィールドの簡単な定義を下記に示
す。
1.終了状況ワード このワードは、このTSBを指すSCBに含まれるコマ
ンドの実行に関係する特定の状況情報を定義するいくつ
かの標識を含んでいる。
−D−要求がエラーなしで完了したことを示す。
−SES−SCBエネーブル・ワード中のSES標識と
関連する短い長さを示す。
−R−予約 −SC−SCBに対する指定チェックを示す。
SCBは無効である。
−SEL−SCBエネーブル・ワード中のSEL標識と
関連する長い長さを示す。
−HLD−SCBコマンド連鎖が停止されたことを示
す。
−INT−論理割込み要求を示す。
−ASA−アーキテクチャのある状況が使用可能なこと
を示す。
−DSA−装置従属状況が使用可能なことを示す(AS
AとDSAが一緒に使用されると、拡張フォーマットを
示す)。
−DO−装置のオーバランを示す。
−INI−装置が初期設定されていないことを示す。
−ERR−大きなエラーが発生したことを示す。
−CD−連鎖方向を示す(正常連鎖または条件付き連鎖
の後) −SUS−SCBに対する中断コマンドが完了したこと
を示す。
−ES−拡張状況が使用されることを示す。
2.拡張終了状況 このワードは追加の状況標識をもつ。現在は1つの標識
だけが構成されている。
−CT−コマンド・タイプ(SCBコマンドか即時コマ
ンドか)を示す。
3.残留バッファ・カウント これは、残留バッファ・アドレスが指すバッファ中に残
っているバイト数を含む、4バイトのカウントである。
4.残留バッファ・アドレス これは、要求が終了したときに使用されていたバッファ
の32ビットのアドレスである。最後のSCBからのア
ドレス1またはアドレス2のバッファ・アドレス、ある
いは最後のSCB中のアドレス1またはアドレス2が指
す間接リスト中のアドレスである。その具体的意味は、
コマンド特有である。
5.残留バッファ・カウント2 これは、残留バッファ・アドレス2が指すバッファ中に
残っているバイト数を含む(TSB拡張部分中の)4バ
イトのカウントである。
6.残留バッファ・アドレス2 これは、要求が終了したときに使用されていたバッファ
の(TSB拡張部分中の)32ビットのアドレスであ
る。最後のSCBからのアドレス2のバッファ・アドレ
ス、あるいは最後のSCB中のアドレス2が指す間接リ
スト中のアドレスである。これは、両方のアドレスをあ
るコマンドが使用するときに使用される。
7.装置従属域のサイズ アーキテクチャをもつ1組の状況より上の情報を供給す
る手段が設けられている。その量は、基本フォーマット
を使用するか拡張フォーマットを使用するかによって変
わる。このフィールドの位置は、基本フォーマットと拡
張フォーマットで異なる。追加状況はサブシステムに従
属する。
8.装置従属データ この域は、装置従属状況情報を含む。この域の最大サイ
ズは、どのフォーマットが使用されているかによって決
まる。
上記に説明したSCBフォーマットを使用する本発明の
コンピュータ・システムの詳細を第12図に示す。前述
のように、上位システム200は、マイクロチャネル2
04などのバス・アーキテクチャを介して少なくとも1
つの知能サブシステム202と情報を交換する。
上位システム200中のシステム・プログラム206
は、線210を介してシステム・メモリ208中にSC
Bを構築する。システム・プログラムの動作は、「PS
/2 BIOSインタフェース、技術解説書(PS/2 BIO
S Interface Technical Reference)」、IBM刊行
物、資料番号68X−2341−00;「IBM PS
/2オペレーティング、システム、ディレクトリの手引
き(IBM PS/2 Operating Systems Directory Guid
e)」、IBM刊行物、資料番号Z360−2741−
0;「IBM OS/2内部、第1巻(IBM OS/2 Inter
nals, Vol.1)」、IBM刊行物、資料番号GG24−
3225−0に記載されている。前述のように、SCB
フォーマットは、バッファ・アドレス、連鎖アドレス、
及びTSBアドレスをもたらす。ページ記憶システムで
は、SCB、バッファ・アドレス、連鎖アドレス、及び
TSBアドレスがオペレーティング・システムによって
システム・メモリ中で「固定」される。すなわち、シス
テム・メモリのあるセクションが、この目的でロックさ
れる。この説明では、SCB212は、TSB214、
データ・バッファ218と220を指す間接リスト21
6、及びSCB222への連鎖アドレスを含むものとし
て示す。SCB222は、TSB224を含み、データ
・バッファ226を指す。システム・メモリ208中に
複数の同じSCBが第8図ないし第11図に示したフォ
ーマットに従って書式化されていることを了解された
い。
サブシステム202は第2図のサブシステム102と類
似しており、唯一の違いは、サブシステム202がコマ
ンド転送を記述するためより詳しく示されていることで
ある。サブシステム202は、コマンド転送論理ブロッ
ク230とバス・マスタ232を有するバス・インタフ
ェース/制御機構228、割込み(I)論理回路236
を有する局所マイクロプロセッサ234、局所メモリ2
38、及び複数の装置242、244、246、248
に接続された装置インタフェース/制御論理ブロック2
40を含んでいる。
コマンド処理プログラムと復号処理を含むコマンド処理
システムの一般的説明を第12図に関して行ない、続い
て第14図ないし第20図に関して詳しい機能的説明を
流れ図の形で行なう。
システム・プログラム206は、コマンド使用中/状況
ポート(図示せず)を読み取って、アテンション・ポー
ト及びコマンド・インタフェース・ポードが使用中でな
いことを確認する。システム・プログラム206は、S
CBのアドレスをコマンド・インタフェース・ポート
(図示せず)を介してバス・インタフェース/制御機構
228のコマンド転送論理ブロック230に供給し、意
図するコマンド・タイプと装置を線250を介してアテ
ンション・ポート(図示せず)に供給する。
コマンドは、復号処理の一環として妥当性検査を受け、
受諾または拒絶される。コマンドが受諾されたと仮定す
ると、サブシステムはその状況をコマンド使用中/状況
ポート(図示せず)に書き込み、実行すべきコマンドを
送る。
サブシステム202は、バス・マスタ232中のバス・
マスタ機能を使ってマイクロチャネル204上でバス・
サイクルを開始する。このとき、システム・メモリ20
8はマイクロチャネルのメモリ・スレーブであり、マイ
クロチャネルの制御線とアドレス線がバス・マスタ23
2によって駆動される。システム・メモリ208はマイ
クロチャネルのデータ・バスを駆動し、バス・マスタ機
能がSCBをサブシステムの局所メモリ238に転送す
る。サブシステム202がSCBを受け取ると、マイク
ロプロセッサ234中で走行するプログラムがコマンド
を復号して、指定された装置にそれを送る。このプログ
ラム動作については、第14図ないし第20図の流れ図
に関して詳しく説明する。転送を実行するため、バッフ
ァ・アドレスがバス・マスタ232にロードされる。
具体的に述べると、SCBアドレスが復号された後、そ
のアドレスがシステム・メモリ208に供給され、SC
Bが取り出されてサブシステム202に送られる。たと
えば、SCB212をアドレスする場合、バス・マスタ
232はSCBアドレスでアドレス線252を活動化
し、SCBの最初の部分が線254を介して戻される。
SCB全体が取り出されるまで、アドレスを増分した後
にこの処理が繰り返される。処理すべきデータは、アド
レス線256と258を介してアクセスされ、間接リス
ト216を指すデータ・バッファ218と220に供給
される。データは、データ線260と262を介してバ
ッファ218と220から戻される。次いでバス・マス
タ232は、データを局所メモリに転送し、またはイン
タフェース240を介してアテンション・ポート(図示
せず)中のコマンドの第2の部分で指定される装置の1
つに転送する。SCBに対する完了または終了の状況が
線264と266を介してTSB214に記憶され、状
況データは線268と270を介してTSB214に供
給される。
SCB212は、線272を介してアドレスされるSC
B222を指し、SCB222は線274を介して戻さ
れる。処理すべきバッファ226からのデータはアドレ
ス線256を介してアクセスされ、データが線262を
介してバス・マスタ232に戻される。次いでバス・マ
スタ232は、上記のようにデータを局所メモリ238
に転送し、またはインタフェース240を介して装置の
1つに転送する。SCB222の完了または終了の状況
は線264を介してTSB224に戻され、状況データ
が線268を介してTSB224に供給される。
サブシステム202はまた、SCBまたはSCB連鎖に
関する割込み状況を割込み状況ポート(図示せず)にロ
ードする。これにより、物理割込みが線265を介して
上位システム200に戻される。
コマンド処理システムの流れ図の説明を行なう前に、第
14図ないし第20図の流れ図で使用する用語が理解し
やすくなるように、一般的説明を行なう。
・コマンド提出方法とコマンド・タイプ 本発明では、サブシステムにコマンドを配給する2つの
方法を定義する。いくつかのサブシステム規模のハード
ウェア特有の機能が、サブシステム制御ポート中のプロ
グラム修正ビットによってアクセスされるハードウェア
制御機構を使って呼び出される。ハードウェア制御機構
は、サブシステムの状態を変更する高速で優先順位の高
い方法をもたらし、このようにして提出されるサブシス
テム・リセット・コマンドは、コマンド・ポート及びア
テンション・ポートにデータを書き込むことによってサ
ブシステムに提出される他のすべてのコマンドよりも優
先される。
ハードウェア制御機構は、サブシステム制御ポートへの
OUTコマンドを使い、いくつかの特定のビットを変更
することによって活動化される。
RRビット、DMAビット、及びEIビットの修正は特
定のコマンドによって記述されないが、これらのビット
はすべてサブシステムに対してサブシステム規模の効果
をもつ。これらの効果については、後述の「上位プロセ
ッサが入出力ポートを設定しようと試みたことの結果」
及び第1表に要約してある。
コマンド・ポートとアテンション・ポートへの書込みに
よって提出されるコマンドは、間接(SCBベースの)
コマンドと直接ベースのコマンドの2つの範疇に大別さ
れる。SCBベースのコマンドは、アテンション要求コ
ード3によって区別される。SCBコマンドの場合、コ
マンド・インタフェース・ポートはSCBの始めの実記
憶アドレスを含む。直接コマンドには、一義的なアテン
ション・コード設定によって決定される、3つのタイプ
がある。すべての直接コマンドは、アテンション・コー
ドとあいまってサブシステムが実行すべき活動を定義す
る32ビットの値をコマンド・ポート中に有する。アテ
ンション・コード0(リセット)とE(割込みリセッ
ト)は、これらのコマンドに対する特殊ケースの処理
が、“01h”のアテンション要求コードをもつ他の直
接コマンドに優先して行なえるように設けられている。
直接コマンドは、実行すべき動作を完全に定義する32
ビットの値をコマンド・ポートが含むことを示すため、
「即時コマンド」と呼ぶことがある。これは、実行すべ
き活動を決定するためにコマンド・ポートによって与え
られるアドレスをシステム・メモリから取り出さなけれ
ばならない。SCBコマンドとは対照的である。
このアーキテクチャでは、一義的アテンション・コード
F(装置従属アテンション)が定義されている。アテン
ション・コードFは、実施態様で最適化したいコマンド
に対する特殊ケースの処理がもたらせるように設けられ
ている。
・コマンド提出時のサブシステムの状態遷移 本節では、ハードウェア制御機構を使って、あるいはア
テンション・ポートによって、コマンドが提出されたと
きに生じる状態遷移と処置を定義する。データは、第1
3図の状態遷移図に示されている。サブシステムが復号
状態のときの、提出されたコマンドのサブシステムによ
る受諾または拒絶については、下記の「コマンドの処理
と復号処理」で詳しく考察し、復号処理に関する詳細を
示し、第2表ないし第5表にコマンドが復号処理によっ
てどのように受諾され拒絶されるかを示す判断テーブル
を示す。
コマンドの提出遷移で使用されるものとして下記の状態
が定義されている。サブシステムの状態及び復号処理の
詳細は、「コマンドの処理と復号処理」に示す。
サブシステムの状態には次のものがある。
1.コマンドの受諾ACCEPT サブシステムが、コマンド・ポート及びアテンション・
ポートを介して提出されたコマンドを受諾できる状態に
ある。この状態のとき、コマンド使用中/状況ポートの
拒絶ビットと使用中ビットは共に0となる。
アテンション・ポートに上位プロセッサが書込みを行な
うと、サブシステムはこの状態から出て復号進行中状態
に入り、提出されたコマンドが受諾されるかどうか決定
する。
2.サブシステム・リセット保留開始PENDS システム制御ポートのRSTビットが上位プログラムに
よって“1”にセットされ、サブシステムがそのマイク
ロプロセッサのハードウェア制御リセットを開始した。
この状態の間、コマンド・ポート及びアテンション・ポ
ートへの上位プロセッサによる書込みは無視される。サ
ブシステム制御ポートのRSTビット以外のビットへの
上位書込みは無視される。ハードウェア・リセットが完
了すると、サブシステムはサブシステム・リセット保留
完了状態に入る。
この状態の間、コマンド使用中/状況ポートの使用中
(B)ビットが“1”で、拒絶(R)ビットが“0”で
ある。
3.サブシステム・リセット保留完了PENDC サブシステムがそのマイクロプロセッサのハードウェア
制御リセットを完了し、上位プロセッサがサブシステム
制御ポートのRSTビットに“0”ビット書き込むのを
待つ。この状態の間、コマンド・ポート及びアテンショ
ン・ポートへの上位プロセッサの書込みは無視される。
サブシステム制御ポートへの上位プロセッサによる書込
みは許される。サブシステム制御ポートのRSTビット
に“0”を書き込むと、サブシステムはサブシステム・
リセット進行中状態になる。
この状態の間、コマンド使用中/状況ポートの使用中
(B)ビットは“1”で、拒絶(R)ビットは“0”で
ある。
実施態様でリセット保留開始状態とリセット保留完了状
態を区別できず、単一のリセット保留状態のみをもつこ
とがある。このような場合は、RSTビットを“0”に
セットすると、サブシステムは保留状態からリセット進
行中状態に移る。
4.サブシステム・リセット進行中RESETS 実施態様で定義された時間が経過した後、サブシステム
・リセット保留開始状態の間にサブシステム制御ポート
のRSTビットが上位プログラムによって“0”にセッ
トされた。この状態に入ると、サブシステムはそのサブ
システム・リセットを完了する。サブシステムがこの状
態の間、上位システムはサブシステム制御ポートの内容
を修正することを許される。コマンド・ポート及びアテ
ンション・ポートへの上位プロセッサの書込みは無視さ
れる。
この状態の間、コマンド使用中/状況ポートの使用中ビ
ットは“1”であり、拒絶ビットは“0”である。
サブシステム・リセットが完了すると、サブシステムは
コマンド受諾状態に入る。コマンド使用中/状況ポート
の使用中ビットと拒絶ビットが“0”にセットされる。
IVビットは“1”にセットされて、ISPが完了した
サブシステム・リセットに対する割込み値を含むことを
示す。
5.サブシステム拒絶REJ コマンド・ポート及びアテンション・ポートを介して提
出されたコマンドが復号処理によって拒絶された。拒絶
状態がクリアされるまで、コマンド・ポート及びアテン
ション・ポートを介して次のコマンドが受諾されること
はない。この状態の間、コマンド・ポート及びアテンシ
ョン・ポートへの上位プロセッサの書込みは無視され
る。サブシステム制御ポートへの上位プロセッサによる
書込みは許される。コマンド使用中/状況ポートの拒絶
ビットと使用中ビットは、共に“1”にセットされる。
コマンド使用中/状況ポートのSビットは、コマンドが
復号処理によって拒絶された理由を示す。
サブシステム制御ポートのRRビットが“1”にセット
されたとき、またはハードウェア制御のサブシステム・
リセットがサブシステム制御ポートのRSTビットを
“1”にセットすることにより、サブシステムは拒絶状
態から出る。
6.復号進行中DECODE アテンション・ポートへの上位プロセッサの書込みが検
出されると、サブシステムはコマンド受諾状態からこの
状態に入る。この状態のとき、サブシステムはコマンド
を受諾するか否かを決定する。
サブシステムがこの状態に入ると、コマンド使用中/状
況ポートの使用中ビットが“1”にセットされ、拒絶ビ
ットが“0”になる。この状態の間、コマンド・ポート
及びアテンション・ポートへの上位プロセッサの書込み
は無視される。サブシステム制御ポートへの上位プロセ
ッサによる書込みは、RSTビットに対する変更以外は
無視される。
復号処理がコマンドを受諾する場合、サブシステムはコ
マンド受諾状態に入る。コマンドが実行のために受諾さ
れなかった場合、サブシステムは拒絶状態に入る。
処置には次のようなものがある。
a.上位プロセッサによるサブシステム制御ポートのR
STビットへの1の書込みRST=1 上位プロセッサがサブシステム制御ポートにOUTコマ
ンドを出して、RSTビットの値を“1”にセットす
る。
b.上位プロセッサによるサブシステム制御ポートのR
STビットへの0の書込みRST=0 上位プロセッサがサブシステム制御ポートにOUTコマ
ンドを出して、RSTビットの値を“0”にセットす
る。
c.上位プロセッサによるアテンション・ポートへの書
込みW/AP 上位プロセッサがOUTコマンドを使ってアテンション
・ポートに書き込む。
d.上位プロセッサによるサブシステム制御ポートのR
Rビットへの1の書込みRR=1 上位プロセッサがサブシステム制御ポートにOUTコマ
ンドを出して、RRビットの値を“1”にセットする。
e.リセット保留完了PEND COMPLETE サブシステムがそのマイクロプロセッサをリセットする
活動、及びサブシステムのリセット完了を待たせるのに
必要な他の処理を完了した。
f.サブシステム・リセット完了RESET COMP
LETE サブシステムがサブシステムをリセットする活動を完了
した。
g.復号コマンド受諾DECODE ACCEPT サブシステムの復号処理が、コマンド・ポート及びアテ
ンション・ポートを介して提出されたコマンドを受諾し
た。
h.復号コマンド拒絶DECODE REJECT サブシステムの復号処理がコマンド・ポート及びアテン
ション・ポートを介して提出されたコマンドを拒絶し
た。
状態遷移が、これらの状態及び活動と共に、第13図の
状態図に定義されている。
・上位プロセッサが入出力ポートをセットしようと試み
たことの結果 第1表の判断テーブルに、サブシステムが様々な状態に
あるとき、上位プロセッサが入出力ポートをセットしよ
うと試みたことの結果を要約する。各状態は、第13図
の状態図で使用したものと同じであり、SCCPはサブ
システム制御ポートを意味する。
・コマンドの処理と復号処理 本節では、復号処理に焦点を当ててコマンドの処理部分
の考察を行なう。復号処理におけるコマンド受諾に関す
る判断テーブルを第2表に示し、復号処理におけるコマ
ンド拒絶に関する判断テーブルを第3表に示す。
コマンド・ポート、アテンション・ポート、サブシステ
ム制御ポートへの上位プロセッサの書込みを監視するた
めにサブシステムが使用する、ハードウェア制御の処理
が存在することが必要である。この処理はコマンド処理
プログラムと呼ばれ、サブシステム制御ポートのRST
ビットの書込みなどの動作に応答してサブシステムをリ
セットするため、ハードウェア制御機構を呼び出す。コ
マンド処理プログラムはまた、アテンション・ポートま
たはコマンド・ポートを介して提出されたコマンドを受
諾するか否かを決定するためにサブシステムが使用す
る、ハードウェアまたはファームウェアの処理を呼び出
す責任をもつ。コマンド処理プログラムは、サブシステ
ムがコマンド受諾状態にあり、上位プロセッサによるア
テンション・ポートの書込みが検出されたときに、この
処理を呼び出す。コマンド処理プログラムは、サブシス
テムを復号状態に置き、復号処理を呼び出して、新しく
検出されたコマンドを受諾できるか否かを決定する。
復号状態のとき、コマンド処理プログラムは、上位プロ
セッサがコマンド・ポートまたはアテンション・ポート
への書込みにより新しいコマンドを提出しようと試みる
のを阻止する責任をもつ。コマンド処理プログラムはま
た、サブシステム制御ポートへの上位プログラムによる
書込みに応答して、サブシステムがどんな状態のときも
RSTビットに対する上位プログラムの変更が許される
ようにする責任をもつ。この機能により、ハードウェア
制御のサブシステム・リセット・コマンドを上位プロセ
ッサから受諾することが可能になる。他のハードウェア
制御は、サブシステムの状態に応じて、コマンド処理プ
ログラムによって許される。
復号処理は、サブシステムがある装置宛のコマンドを受
諾できるかどうか決定するタスクを有するので、下記の
種類のデータに関心をもつ必要がある。
*コマンド・タイプ。コマンドに対するアテンション・
コードは、コマンドがどう処理されるのかを決定する。
コマンドは、装置リセット・コマンド、割込みリセット
・コマンド、SCBコマンド、即時コマンドの各範疇に
分かれている。装置従属アテンション・コードが実施態
様でサポートされている場合、その実施態様による定義
に従って、SCBコマンドまたは即時コマンドの範疇に
入れられる。サポートされないアテンション・コードは
復号処理によって無効コマンドとして拒絶される。SC
Bコマンドでないアテンション・コードは直接コマンド
と呼ばれる。
*装置番号。コマンドが送られる先の装置は、アテンシ
ョン・ポートに含まれている。このデータは、どの装置
にコマンドが送られるかを決定するために必要である。
復号処理はまたこまデータを使って、装置状態情報にア
クセスし、サブシステムは、この情報を用いて新しいコ
マンドが受諾または拒絶できるか否かを決定することが
できる。装置アドレスが無効だと、コマンドは拒絶され
る。
*コマンド・コード。直接コマンドが処理されていると
き、コマンドのビット0〜7の8ビットのコマンド・コ
ードを検査して、コマンド・コードが決定される。8ビ
ットの即時コマンド・コードが認識されないと、そのコ
マンドは無効コマンドとして拒絶される。
*装置状態。これは装置の現状態であり、現装置状態が
与えられている場合にそのコマンドが受諾できるかどう
かを定義する。本発明では、いくつかの状態を定義し、
所与の状態の間にコマンドが受諾されるか否かを示す。
このデータは、後述の「復号処理のための判断テーブ
ル」で詳しく提示する。
復号処理がコマンドを受諾すると決定したとき、その新
しいコマンドが受諾されたことを示すように装置状態が
更新されることを保証し、装置が新しいコマンドの実行
を開始するスケジュールを立てる必要がある。復号処理
はまた、コマンド処理プログラムがサブシステムを復号
状態からコマンド受託状態にすることを保証しなければ
ならない。本発明は、装置状態のリセット及び新しいコ
マンドのスケジューリングを復号処理で実施すべきだと
主張するものではないが、概念的にはそうすると考えた
方が簡単である。
また復号処理は、必要な新しいコマンドを必要な装置で
実行するスケジュールを立てさせなければならない。ス
ケジュールを立てるという言葉は、装置0リセット・コ
マンド以外のすべてのコマンドに使用される。というの
は、サブシステム・プロセッサ・サイクルの使用を、他
の装置について実行されているタスク間で共用する必要
があるからである。装置0リセット・コマンドの場合は
特殊なケースである。というのは、この活動はソフトウ
ェアによって呼び出されるサブシステムのリセットを引
き起こし、他の装置に対するすべての現サブシステム活
動を停止することを必要とするからである。
コマンドが受諾されることが知らされると、コマンド処
理プログラムがコマンド使用中/状況ポートを、使用中
ビットと拒絶ビットが共に“0”になるようにセットす
る。
復号処理がコマンドを拒絶したときは、コマンド処理プ
ログラムに拒絶の理由が示される。サブシステムは復号
状態から拒絶状態に移る。コマンド使用中/状況ポート
の使用中ビットと拒絶ビットが“1”にセットされる。
コマンドがなぜ拒絶されたかを示すコード化された値を
含む、このポートのSビットが拒絶ビットと同時にセッ
トされる。
復号処理の完了時に、いくつかの目標が達成される。
*復号処理によって受諾された即時コマンドは、後でコ
マンド拒絶のために割込みを行なわない。ハードウェア
が故障しない限り、即時コマンドは、復号処理による受
諾の後、正しく実行される。
*現装置状態の故に実行できないコマンドは、システム
割込みなしにできるだけ速やかに拒絶される。拒絶状況
及び拒絶理由は、明示的にクリアされるまで上位プログ
ラムが利用できる。
*装置リセットなど特殊なアテンション・コードは、で
きるだけ速やかに実行すべくスケジュールが立てられ
る。
*SCBコマンドは取出しのスケジュールが立てられ
る。復号処理は、フィールド値が有効かどうかSCBの
検査を行なわない。
様々なコマンドが提示されたときに装置がどう反応する
かの記述は、「復号処理のための判断テーブル」の一連
の判断テーブルに定義されている。それについて手短か
に考察する。それらの規則は次のように要約できる。
1.ハードウェア制御のサブシステム・リセット・コマ
ンドは、必ずサブシステムに受諾される。
2.アテンション・ポート宛のコマンドは、それが復号
進行中、サブシステム拒絶、サブシステム・リセット進
行中、サブシステム・リセット保留開始、サブシステム
・リセット保留完了の各状態にある場合、サブシステム
によって無視される。
3.装置リセット・コマンドは、その装置が使用中で他
のコマンドを実行している場合でも、その装置によって
受諾される。この規則には次の3つの例外がある。
−アテンション・ポートで指定された装置番号が無効。
−ビット0〜7の8ビット即時コマンド・コードが0で
ない。
−サブシステムが上記の例外2で定義する状態の1つで
ある、すなわちアテンション・ポートに試みられた書込
みによって提出されるどのコマンドも無視する。
4.装置が使用中であるコマンドを実行しているとき、
下記の場合を除き、装置使用中コードで新しいコマンド
を拒絶する。
−新しいコマンドが装置リセット・コマンド。
−装置が使用中でSCBを実行しており、新しいコマン
ドが中断コマンドである(この場合、実行中のSCBが
完了してから、装置がSCB実行禁止状態になる。中断
コマンドは必ず、装置で実行された最後のSCBに割込
みを要求させる)。
−装置が使用中でSCBを実行しており、新しいコマン
ドがSCB割込みリセットである。(現在実行中のSC
Bは直ちに停止され、SCB割込みリセット機能が実行
される。停止されたSCBは実行の継続を許される。) 5.ある装置に対する割込み待ち行列が満杯のときは、
下記の場合を除き、新しいコマンドは拒絶される。
−装置リセット −割込みリセット(SCBまたは即時) −サブシステム・リセット(ハードウェア制御またはソ
フトウェア制御) 6.装置が使用中でコマンドを実行してはいないとき、
その装置が、以前の中断コマンドによってSCBコマン
ドを実行できない状態に置かれている場合は、SCBコ
マンドを拒絶する。
7.装置がコマンドを確実に実行できない状態にある場
合は、下記以外のすべてのコマンドを拒絶する。
−装置リセット −サブシステム・リセット(ハードウェア制御またはソ
フトウェア制御) −アテンション・ポートの装置アドレスが有効でない場
合、そのコマンドは拒絶される。
復号処理のための判断テーブル この復号処理のためのアーキテクチャは、複数の拒絶理
由が存在するとき、どの拒絶理由かを指定するように、
拒絶テストが行なわれる順序を定義する。これを次表に
示す。
復号処理のステップ ステップ1 − アテンション・コードとコマンドの妥
当性検査。拒絶コード=010 ステップ2 − アテンション・ポート中の装置の妥当
性検査。拒絶コード=101 ステップ3 − 装置が使用可能状態にあることの検
証。拒絶コード=001 ステップ4 − 装置が使用中でないとの検証。拒絶コ
ード=011 ステップ5 − 装置割込み待ち行列が満杯でないこと
の検証。拒絶コード=111 ステップ6 − SCB実行エネーブルの検証。拒絶コ
ード=100 復号アーキテクチャは、まず詳細な装置及びサブシステ
ム状態を指定し、次いで1組の判断テーブルによって完
全に定義される。
・サブシステム及び装置状態の定義 サブシステムは、下記の状態成分を有する。
*サブシステム実行状態には、ACCEPT、PEND
S、PENDC、RESETS、REJECT、DEC
ODEがある。これらの状態は、サブシステムが新しい
コマンドまたはハードウェア制御を受諾できるか否かを
定義する。
*使用可能状態。サブシステムが、コマンドを確実に実
行することを期待できる状態に入ったかどうかを定義す
る。その値がイエスの場合はサブシステムは使用可能で
あり、ノーの場合はそうではない。
*DMA可能。この状態成分は、サブシステムにDMA
活動が許されるか否かをイエスとノーで示す。DMA活
動が許されないときは、サブシステムに対するSCBコ
マンドの取出し、TSB状況の記憶、またはSCBコマ
ンドのためのデータ移動は許されない。この状態成分
は、サブシステム制御ポートのDMAビットに対応す
る。
*割込み可能。この状態成分は、コマンドが割込みを必
要とするとき、サブシステムが主プロセッサに物理割込
みを送ることができるかどうかを示す。これはサブシス
テム制御ポートのEIビットに対応する。この値がイエ
スのとき、物理割込みが送られる。この値がノーのとき
は、割込みは送られない。
*IV有効。この状態成分は、コマンド使用中/状況ポ
ートのIVビットに対応する。その値がイエスの場合、
サブシステムの割込み状況ポートは、上位プログラムに
よってリセットされていない有効な割込み値をもつ。こ
の値がノーの場合は、割込み状況ポートは割込み値を含
まない。
*装置活動状態。この状態成分は、ハードウェア制御ま
たはアテンション・ポートを介して提出されたコマンド
を処理するようにとの上位プロセッサからの要求を処理
した後に、どのように処理を再開するかを決定するため
にサブシステムが使用する。たとえば、サブシステムが
ACCEPT状態でその状態成分がイエスのときにRR
ビットに書き込むことは、RRビットがセットされる前
に行なっていた活動にサブシステムが戻ることを意味す
る。この状態成分の値がノーの場合は、サブシステムに
は実行すべき装置活動がなく、次の主プロセッサの動作
が起こるのを待つ状態になる。
*装置状態 装置は、下記の状態成分をもつように定義される。
1.使用中状態。これは、装置が現在使用中でコマンド
を実行しているかどうかを定義する。この状態は、BU
SY(使用中)とIDLE(遊休)の2つの値をとる。
値がIDLEの場合、装置は現在どのコマンドも実行し
ていない。値がBUSYの場合は、装置はコマンドを実
行しており、使用中副状態とCMD状態が、装置で進行
中のコマンドまたはハードウェア制御をさらに定義す
る。
2.使用中副状態(substate)。装置が使用中でコマン
ドを実行している場合、この状態成分は、即時コマン
ド、SCB、サブシステム・リセット(ハードウェア制
御)、サブシステム・リセット(ソフトウェア制御)、
装置リセット、中断、SCB割込みリセットなど進行中
のコマンドのタイプを示す。
使用中副状態が即時コマンドまたはSCBのときは、C
MD(コマンド)フィールドは、その装置で実行される
予定の明示コマンドを定義する。
使用中副状態が、サブシステム・リセット(ハードウェ
ア制御)、サブシステム・リセット(ソフトウェア制
御)、装置リセット、中断、またはSCB割込みリセッ
トのときは、CMD状態成分は、これらのコマンドの1
つが受諾されたときに装置で実行中のコマンドを示す。
使用中副状態が、サブシステム・リセット(ハードウェ
ア制御)、サブシステム・リセット(ソフトウェア制
御)、装置リセット、中断、またはSCB割込みリセッ
トのとき、装置状態成分OLD(旧)使用中副状態は、
これらのコマンドの1つが受諾されたとき活動状態の使
用中副状態を含む。
装置の使用中状態がIDLEのとき、その装置に対して
使用中副状態成分は定義されない。
3.CMD状態。これは、装置で実行されているコマン
ドに関する次のような詳細を示す。装置の使用中副状態
が即時コマンドの場合、これは装置で実行中のコマンド
を示す。この場合、その値は次のようなものがある。
診断テスト即時実行 NOOP即時 割込み状況ポート・リセット 即時コマンド 使用中副状態がSCBの場合、CMD状態には次のよう
なものがある。
単一SCBに対する上位プロセッサ・メモリからの次の
SCBの取出し SCB連鎖の要素に対する上位プロセッサからの次のS
CBの取出し 単一SCBの妥当性検査(SCBの指定テストを実行す
る) SCB連鎖要素の妥当性検査(SCBの指定テストを実
行する) 単一SCBの実行 SCB連鎖要素の実行 これらのCMD状態は、SCBの実行時に装置タスクに
よってセットされる。すなわち、コマンド状態がSCB
の取出しから単一SCBの実行またはSCB連鎖要素の
実行に進む。単一SCBの実行中、SCBが実行を完了
すると、装置は遊休状態に移る。装置がSCB連鎖を実
行しているときは、連鎖が完了するかまたは中断コマン
ドによって中断されるまで、装置は取出し状態を経てS
CBコマンド実行状態に進む。中断コマンドは、中断活
動の完了時に必ず装置を遊休状態にする。
装置に対する使用中副状態が、サブシステム・リセット
(ハードウェア制御)、サブシステム・リセット(ソフ
トウェア制御)、装置リセット、中断、またはSCB割
込みリセットである場合、CMDフィールドの用途は、
状態成分OLD使用中副状態によって変わる。その値が
即時コマンドまたはSCBである場合、CMDフィール
ドは、サブシステム・リセット、装置リセット、中断、
またはSCB割込みリセットが実行すべく受諾されたと
きに活動状態だったコマンドを反映する。装置の旧使用
中副状態が、サブシステム・リセット(ハードウェア制
御またはソフトウェア制御)、装置リセット、中断、ま
たはSCB割込みリセットである場合、受諾時に活動状
態のコマンドは状態成分旧使用中副状態によって完全に
定義されるので、CMDは無視される。
4.装置割込み待ち行列満杯。この状態成分は、その装
置に対する割込み待ち行列のスペースが満杯であるか否
かを示す。イエスの値は、待ち行列が現在満杯であるこ
とを示す。ノーの値は、装置割込み待ち行列のスペース
が空いていることを示す。割込みが装置によって待ち行
列に入れられるとき、割込み待ち行列のスペースが割り
振られ、この時点で割込み待ち行列が満杯になることが
ある。
5.SCB実行可能。この状態成分は、SCBの実行が
装置によって許されるか否かを示す。SCBの実行が許
されなかった場合、この状態成分はノーとなる。これ
は、中断コマンドの実行によって起こる。SCBの実行
が許される場合、この状態成分の値はイエスである。こ
れは再開、装置リセット、またはサブシステムによって
イエスにセットされる。
6.SCB連鎖中断。この状態の値が有効なのは、装置
に対して中断コマンドが出されたときだけである。中断
コマンドが出され、連鎖中の次のSCBの取出しが中断
コマンドによって停止された場合、この状態成分の値は
イエスである。すなわち、この状態の装置に再開コマン
ドが出されると、その装置はSCB使用中副状態に再び
入り、中断コマンド時にSCB取出しアドレスにセーブ
されたSCBアドレスを使って、中断された連鎖の実行
を再開する。SCB連鎖が活動状態でないときに中断コ
マンドが出された場合、あるいは現SCBの完了によっ
て連鎖が停止された場合、この状態成分の値はノーとな
る。この状態の装置に再開コマンドが出されても装置は
SCB使用中副状態に再び入らず、再開から出て遊休状
態になる。
7.SCB取出しアドレス。SCBコマンドが最初に装
置によって受諾されたとき、コマンド・ポート中のアド
レスが復号処理によってこの域に移される。連鎖中の次
のSCBが装置タスクによって取り出されるとき、この
状態成分はそのSCBアドレスで更新される。装置タス
クは、SCBの終了状態に応じてSCBからどの連鎖ア
ドレスを選択するかを決定する。
8.装置使用可能。装置が確実にコマンドを実行できる
状態の場合、この状態成分はイエスの値をとる。装置が
確実にコマンドを実行できない状態にある場合、この状
態値はノーとなる。
9.即時コマンド値IC。復号処理が直接コマンドを受
諾するときは、コマンド部分の値がこの状態成分に移
る。装置タスクが、直接コマンド中の値にアクセスする
ため、この値を使用することができる。現在はビット1
5〜0だけが直接コマンドの実行をもたらす。
10.装置割込み可能。この状態成分は、装置が物理割
込みを要求できるか否かを決定する。状態成分の値がE
NABLE(エネーブル)の場合、割込みを要求するこ
とができる。値がDISABLE(ディスエーブル)の
場合は、物理割込みを要求できない。装置は、この状態
成分の値がどうであれ、割込みを装置の内部割込み待ち
行列に入れる必要がある。この状態成分は、装置に送ら
れる即時コマンドのビット14、またはサブシステム・
リセット・コマンドによってセットされる。
11.後割込み。この状態成分は、即時コマンドが完了
成功時に割込みを要求するか否かを決定する。サブシス
テム・リセット、SCB割込みリセット、及び即時割込
みリセットの場合は、これは無視される。この状態成分
はイエスまたはノーの値をとり、装置に送られる即時コ
マンドのビット15によってセットされる。
12.旧使用中副状態。この状態成分は、中断、サブシ
ステム・リセット(ソフトウェア制御)、サブシステム
・リセット(ハードウェア制御)、またはSCB割込み
リセットが受諾されたときに装置で活動状態であった、
使用中副状態の値を含む。
13.旧CMD状態。この状態成分は、装置の割込み待
ち行列が満杯であるためにSCBが取り出せなかったと
きに活動状態となるSCB CMD値を含む。この条件
が生じたとき、装置はIDLE状態になる。SCB割込
みリセットまたは即時割込みリセットは、実行後に割込
み待ち行列が満杯でない場合、装置をSCB状態に再び
入らせることができる。
14.SCB中断割込み待ち行列満杯。この状態成分
は、装置の割込み待ち行列が満杯だったために、装置が
SCB状態からIDLE状態に入った場合、イエスの値
をとる。この状態成分がイエスのときに割込みリセット
が装置の割込み待ち行列を満杯状態から出させるとき、
状態成分旧CMD状態とSCB取出しアドレスが、SC
Bの実行を再開するために使用される。装置が、その割
込み待ち行列が満杯であるためにSCB実行が中断され
る状態にないときは、その状態成分はノーの値をとる。
15.SCB実行中SCB割込みリセット受諾。この状
態成分は、SCB割込みリセット・コマンドが、使用中
でSCBを実行している装置によって受諾されるとき、
イエスとなる。装置がIDLE状態のときにSCB割込
みリセットが受諾されたとき、この値はノーとなる。
16.装置に対する割込み待ち行列。これは、装置に対
する内部割込み待ち行列の位置を指定する状態成分であ
る。これは、現最古要素の位置、及び後の割込みに対し
て割り振るのに使用できる位置と項目数を含まなければ
ならない。
17.SCB論理割込みカウント。これは、装置がSC
B論理割込みを立ち上げるたびに1ずつ増分される状態
成分である。
これらの状態成分のいくつかを用いて、第2表及び第3
表に示すように、コマンドが復号処理によって受諾また
は拒絶される。これらの表で、DCは、「どうでもよ
い」との意味で、その条件が復号処理の結果を決定する
ためにテストされないことを意味する。NAは、「適用
されない」との意味で、その条件が復号処理で必要とさ
れるテストの一環として存在できないことを意味する。
コマンド転送システムは、コマンド処理プログラムと復
号プロセッサを含んでいる。これらの機能は、ハードウ
ェアまたはソフトウェアあるいはその両方で実施するこ
とができる。したがって、システムの動作を説明する第
2図及び第12図で利用した以前の構成図による実施態
様を補うものとして、それらの実施態様を第14図ない
し第20図に流れ図として示す。具体的には、コマンド
処理プログラム及び復号プロセッサが、第12図のサブ
システム202のコマンド転送論理ブロック230及び
マイクロプロセッサ234中にハードウェアの形で含ま
れ、例示されている。コマンド処理プログラムは入出力
ポートで受け取ったコマンドを処理し、復号プロセッサ
は、サブシステムまたは接続装置の1つによって実行す
るため、コマンドを復号する。
第14図は、コマンド転送システムの全体的流れ図であ
る。コマンド処理プログラムは、ブロック500で、サ
ブシステム制御ポート(SSCP)、アテンション・ポ
ート(AP)、またはコマンド・インタフェース・ポー
ト(CP)など入出力アドレスのいずれかへの上位プロ
セッサの書込みをサブシステムが検出したとき、割込み
に入る。ブロック502で、コマンド処理プログラムが
そうすることができる場合、コマンド・インタフェース
・ポート及びアテンション・ポートへの上位プロセッサ
の書込みに対するその処理の割込みを禁止する。そうし
た割込みを禁止できない場合は、コマンド処理プログラ
ムが後でその処理が再開可能になるまで、これらのポー
トへの書込みは無視される。判断ブロック504で、S
SCPへの書込みを試みた結果、コマンド処理プログラ
ムに入ったかどうか判定する。そうである場合は、ブロ
ック506に進んで、SSCPへの書込みを処理する。
この処理については、第15図及び第16図に関して詳
しく説明する。SSCPへの書込みの後、ブロック50
8に進んで、コマンド処理プログラムが、アテンション
・ポート及びコマンド・インタフェース・ポートへの上
位プロセッサの書込みに対する処理を再度可能にし、ブ
ロック500に戻る。
判断ブロック504でSSCPへの書込みがなかった場
合は、判断ブロック510に進み、上位プロセッサがコ
マンド・インタフェース・ポートへの書込みを試みたか
どうか判断する。そうである場合は、ブロック512に
進んで、コマンド・インタフェース・ポートへの書込み
を処理する。この処理については、第18図に関して詳
しく説明する。コマンド・インタフェース・ポートへの
書込みの後、再びブロック508に進み、コマンド処理
プログラムが、アテンション・ポートへの上位プロセッ
サの書込みに対する処理を再度可能にし、ブロック50
0に戻る。
判断ブロック510でコマンド・インタフェース・ポー
トへの書込みがなかった場合は、ブロック514に進ん
で、アテンション・ポートへの書込みを処理する。この
処理については、第17図に関して詳しく説明する。
次に第15図及び第16図に関して、第14図のブロッ
ク506のSSCPへの書込みの処理について詳しく説
明する。第15図に関して、ブロック516で、SSC
Pに書き込まれた上位プロセッサの値を読み取る。ブロ
ック518で、サブシステムのリセットが試みられたか
否かを判定する。そうである場合、ブロック520に進
んで、SSCP中のRSTが1にセットされる。判断ブ
ロック522に進み、サブシステム(SS)実行状態が
コマンド受諾かどうか判定する。そうである場合は、ブ
ロック524で、サブシステム状態がサブシステム・リ
セット保留開始にセットされる。次にブロック526
で、サブシステム・リセット保留を実行するためのサブ
システム・ハードウェア機能が呼び出される。サブシス
テム・リセット保留機能を実行するためのハードウェア
機能が完了すると、ブロック528で、サブシステム実
行状態がサブシステム・リセット保留完了にセットされ
る。次いで第14図のブロック508に戻って、前述の
ように上位割込みを可能にする。
判断ブロック522でサブシステム実行状態がコマンド
受諾ではないと判定した場合は、判断ブロック530に
戻って、サブシステム実行状態がサブシステム・リセッ
ト保留開始かどうか判定する。そうである場合は、ブロ
ック532に進み、コマンド・インタフェース・ポート
及びアテンション・ポートへの上位プロセッサの書込み
を再度可能にする。次いでコマンド処理プログラムは、
ブロック534のリセット保留機能を実行するハードウ
ェア処理に制御を戻す。
判断ブロック530でサブシステム実行状態がサブシス
テム・リセット保留開始ではないと判定した場合、判断
ブロック536に進んで、サブシステム実行状態がサブ
システム・リセット保留完了であるかどうか判定する。
そうである場合は、第14図のブロック508に戻っ
て、前述のように上位割込みを可能にする。そうでない
場合は、判断ブロック538に進んで、サブシステム実
行状態が拒絶であるかどうか判定する。そうである場合
は、ブロック524に進んで、サブシステムはリセット
保留開始状態になり、前述のように進む。そうでない場
合は、判断ブロック540に進み、サブシステム実行状
態が復号かどうか判定する。そうである場合は、ブロッ
ク524に進み、上位プロセッサがRSTをセットした
ときに進行中であった復号処理の実行が打ち切られる。
ブロック524に進んで、サブシステムはリセット保留
開始状態になり、前述のように進む。判断ブロック54
0でサブシステム実行状態が復号ではない場合は、ブロ
ック544に進んで、現サブシステム実行状態がサブシ
ステム・リセット進行中となる。ブロック546で、R
STが1にセットされて、サブシステムがリセット進行
中状態を打ち切る。ブロック524に進んで、前述のよ
うにサブシステムはリセット保留開始状態になる。
判断ブロック518でサブシステムをリセットしようと
する試みがなかったと判定した場合、ブロック548に
進んで、SSCPのRSTビットが0にセットされる。
判断ブロック550に進んで、サブシステムの実行状態
が復号であるかどうか判定する。そうである場合は、ブ
ロック552に進んで、コマンド処理プログラムは、コ
マンド・ポート及びアテンション・ポートへの上位プロ
セッサの書込みに対する処理を可能にする。次いで、コ
マンド処理プログラムはブロック554で復号処理に制
御を戻す。
判断ブロック550で、サブシステム実行状態が復号で
はなかったと判定した場合は、判断ブロック556に進
んで、サブシステム実行状態がサブシステム・リセット
保留開始であるかどうか判定する。そうである場合は、
ブロック558に進んで、RSTビット以外のすべての
SSCPビットが0にされる。次いでブロック532に
進んで、コマンド・インタフェース・ポート及びアテン
ション・ポートへの書込みを可能にし、前述のように進
む。
判断ブロック556でサブシステム実行状態がサブシス
テム・リセット保留開始ではないと判定した場合、判断
ブロック560に進んで、サブシステムの実行状態がリ
セット保留完了かどうか判定する。そうである場合は、
ブロック562に進んで、サブシステムの実行状態がサ
ブシステム・リセット進行中にセットされる。ブロック
564で、コマンド処理プログラムは、コマンド・イン
タフェース・ポート及びアテンション・ポートへの上位
プロセッサの書込みの処理を再度可能にする。次いでブ
ロック566で、コマンド処理プログラムは、サブシス
テム・リセット進行中機能を呼び出す。このとき、ブロ
ック568で、サブシステム実行状態はコマンドを受諾
する準備ができている。次いで第14図でブロック50
8に戻って、前述のように上位割込みを可能にする。
判断ブロック560でサブシステム実行状態がリセット
保留完了ではないと判定した場合、ブロック570に進
んで、サブシステム実行が拒絶または受諾となる。ブロ
ック572で、SSCPのEIビットがセットされる。
ブロック574で、サブシステム実行状態の割込み可能
成分がイエスにセットされる。ブロック576で、割込
みテスト機能を呼び出して、装置0から順にいずれかの
装置が割込みを立ち上げることができるかどうか判定す
る。ブロック578で、SSCPのビット1がサブシス
テム制御ポートのDMAにセットされる。ブロック58
0で、SSCPのビット6、4、3、2がSSCP中の
対応する位置にセットされる。ブロック582で、SS
CPのビット5がSSCPのRRビットにセットされ
る。
第16図の判断ブロック584でSSCPへの書込み処
理に進み、SSCP中のRRビットが“0”か否かを判
定する。そうである場合は、判断ブロック586に進ん
で、サブシステム実行状態がコマンド受諾であるかどう
か判定する。そうである場合は、判断ブロック588に
進み、サブシステムのいずれかの装置活動構成要素がノ
ーかどうか判断する。そうである場合は、第14図のブ
ロック508に進み、前述のように上位割込みを可能に
する。いずれかの装置活動構成要素がイエスである場合
は、ブロック590に進み、コマンド処理プログラムが
コマンド・インタフェース・ポート及びアテンション・
ポートへの上位プロセッサの書込みの処理を再度可能に
する。ブロック592で、コマンド処理プログラムはそ
の活動の処理から戻り、サブシステム上の割込みを受け
た活動に制御を戻す。
判断ブロック586でサブシステム実行状態がコマンド
受諾ではないと判定した場合は、判断ブロック594に
進み、サブシステム実行状態がシステム・リセット進行
中か否かを判定する。そうである場合は、ブロック59
6に進んで、コマンド処理プログラムはコマンド・イン
タフェース・ポート及びアテンション・ポートへの上位
プロセッサの書込みの処理を再度可能にする。次いでブ
ロック598で、コマンド処理プログラムは、割込みか
らサブシステム・リセット進行中機能に戻る。
判断ブロック594でサブシステム実行状態がリセット
進行中ではないと判定した場合、判断ブロック588に
進んで前述のように進める。
判断ブロック584でRRビットが“0”ではないと判
定した場合は、判断ブロック600に進み、サブシステ
ム実行状態が拒絶か否か判定する。そうである場合、ブ
ロック602に進み、サブシステムが拒絶状態からコマ
ンド受諾状態に入る。次に判断ブロック588に進ん
で、前述のように進む。判断ブロック600サブシステ
ム実行状態が拒絶ではないと判定した場合は、判断ブロ
ック588に進んで、前述のように進む。
次に第17図に関して、第14図のブロック514のア
テンション・ポートへの書込みの処理について詳しく説
明する。判断ブロック604で、サブシステム実行状態
が復号であるか否か判定する。そうである場合は、ブロ
ック606で、アテンション・ポートへの上位プロセッ
サの書込みは無視され、第15A図のブロック552に
戻って前述のように進む。判断ブロック604でシステ
ム実行状態が復号ではないと判定した場合は、判断ブロ
ック608に進んで、サブシステム実行状態が拒絶であ
るか否か判定する。そうである場合は、ブロック610
で、アテンション・ポートへの上位コンピュータの書込
みは無視され、第16図のブロック588に戻って前述
のように進む。
判断ブロック608でサブシステム実行状態が拒絶では
ないと判定した場合は、判断ブロック612に進んで、
サブシステム実行状態がリセット保留開始か否か判定す
る。そうである場合は、ブロック614で、アテンショ
ン・ポートへの上位コンピュータの書込みは無視され、
第15C図のブロック532に戻って前述のように進
む。
判断ブロック612でサブシステム実行状態がリセット
保留ではないと判定した場合は、判断ブロック616に
進んで、サブシステムの状態がリセット保留完了である
か否か判定する。そうである場合は、ブロック618
で、アテンション・ポートへの上位コンピュータの書込
みは無視され、第14図のブロック508に戻って、前
述のように上位割込みを可能にする。
判断ブロック616でサブシステム実行状態がリセット
保留完了ではないと判定した場合は、判断ブロック62
0に進んで、サブシステム実行状態がサブシステム・リ
セット進行中であるか否か判定する。そうである場合
は、ブロック622で、アテンション・ポートへの上位
コンピュータの書込みは無視され、第16図のブロック
596に戻って前述のように進む。
判断ブロック620でサブシステム実行状態がサブシス
テム・リセット進行中ではないと判定した場合は、ブロ
ック624に進んで、サブシステム実行状態は受諾状態
となり、ブロック626で、アテンション・ポートが更
新される。次いでブロック628で、サブシステム実行
状態が復号にセットされる。次いでブロック630で、
コマンド処理プログラムは復号処理を呼び出す。その詳
細は第19図及び第20図に関して後で説明する。
判断ブロック632で、復号処理がコマンドを受諾した
か否か判定する。そうである場合は、ブロック634に
進んで、サブシステム実行状態がコマンド受諾にセット
され、第16図の判断ブロック588に戻って前述のよ
うに進む。
判断ブロック632で、復号処理がコマンドを受諾しな
かったと判定した場合は、ブロック636に進み、サブ
システム実行状態が拒絶にセットされる。ブロック63
8で、BビットとREJビットが1にセットされ、Sビ
ットがコマンド使用中/状況ポート中の復号処理によっ
て決定されるようにセットされる。次いで第16図の判
断ブロック588に戻って前述のように進む。
次に第18図に関して、第14図のブロック512のコ
マンド・インタフェース・ポートへの書込みの処理につ
いて詳しく説明する。判断ブロック640で、サブシス
テム実行状態が復号であるか否か判定する。そうである
場合は、ブロック642で、コマンド・インタフェース
・ポートへの上位コンピュータの書込みは無視され、第
15A図のブロック522に戻って前述のように進む。
ブロック640でシステム実行状態が復号ではないと判
定した場合は、判断ブロック644に進み、システム実
行状態が拒絶であるか否か判定する。そうである場合
は、ブロック646で、コマンド・インタフェース・ポ
ートへの上位システムの書込みは無視され、第16図の
ブロック588に戻って前述のように進む。
判断ブロック644でサブシステム実行状態が拒絶では
ないと判定した場合は、判断ブロック648に進み、サ
ブシステム実行状態がリセット保留開始であるか否か判
定する。そうである場合、ブロック650で、コマンド
・インタフェース・ポートへの上位コンピュータの書込
みは無視され、第15C図のブロック532に戻って前
述のように進む。
判断ブロック648でサブシステム実行状態がリセット
保留開始ではないと判定した場合は、判断ブロック65
2に進んで、サブシステム実行状態がリセット保留完了
であるか否か判定する。そうである場合、ブロック65
4で、コマンド・インタフェース・ポートへの上位コン
ピュータの書込みは無視され、第14図のブロック50
8に戻って前述のように進む。
判断ブロック652でサブシステム実行状態がリセット
保留完了ではないと判定した場合は、判断ブロック65
6に進み、サブシステム実行状態がサブシステム・リセ
ット進行中であるか否か判定する。そうである場合、ブ
ロック658で、コマンド・インタフェース・ポートへ
の上位コンピュータの書込みは無視され、第16図のブ
ロック596に戻って前述のように進む。
判断ブロック656でサブシステム実行状態がサブシス
テム・リセット進行中ではないと判定した場合は、判断
ブロック660に進んで、サブシステム実行状態は受諾
状態になる。次いでブロック662で、コマンド・イン
タフェース・ポートが、上位コンピュータから供給され
る値で更新される。次いで第16図の判断ブロック58
8に戻って前述のように進む。
コマンドが受諾できるかどうか判定するため、コマンド
処理プログラムにより「呼出し様」処理を使って復号処
理が呼び出される。コマンドが受諾された場合、復号処
理は、コマンド処理プログラムにコマンドが受諾された
かそれとも拒絶されたかを示して制御を戻した後、コマ
ンドを実行する装置タスクのスケジュールを立てる。復
号処理は、コマンドが実行を受諾された場合、装置状態
をそれに応じて適宜セットする。コマンドが拒絶された
場合は、復号処理は、コマンド処理プログラムがコマン
ド使用中/状況ポートのSビット値として書き込む値を
戻す。
復号処理に入るには、コマンド処理プログラムからの呼
出しを用いる。復号処理に入ると、処理すべきコマンド
はコマンド・インタフェース・ポートで得られる。アテ
ンション・ポートは、コマンド・タイプを含み、コマン
ドが送られる先の装置を識別する。
次に第19図及び第20図に関して、復号処理の詳しい
説明を行なう。判断ブロック644で、そのコマンドに
対するアテンション・コードが装置リセットであるか否
か判定する。そうである場合は、判断ブロック666に
進んで、コマンド・インタフェース・ポートのビット7
〜0の即時コマンド・コードが“0”かどうか判定す
る。そうでない場合は、ブロック672に進み、復号処
理はその戻りコードを、コマンドが拒絶されたことを示
すようにセットする。判断ブロック698または700
の答がノーであった場合もそうなるが、それらの動作に
ついては後で説明する。ブロック674で、拒絶の理由
が無効コマンドであると指示される。ブロック676
で、復号処理はコマンド処理プログラムに制御を戻す。
次いで第17B図の判断ブロック632に戻って、以前
に説明したように進む。
判断ブロック666でコマンド・インタフェース・ポー
トのビット7〜0の即時コマンド・コードが0であると
判定した場合、判断ブロック668に進んで、アクセス
される装置がアドレス“0”、すなわちサブシステム・
アドレスであるかどうか、つまりコマンドがサブシステ
ムのソフトウェア制御リセット・コマンドであるかどう
か判定する。そうである場合は、ブロック680に進ん
で、サブシステムの実行状態をサブシステム・リセット
進行中にセットする。ブロック682で、サブシステム
・リセット・ソフトウェア制御機能が復号処理によって
呼び出される。ブロック684で、復号プロセスは、そ
の戻りコードをコマンド受諾としてセットし、ブロック
676に戻って、コマンド処理プログラムに戻る。
判断ブロック668で装置アドレスがアドレス“0”、
すなわちサブシステム・アドレスではないと判定した場
合は、ブロック670に進んで、アテンション・ポート
の装置IDが有効か否か判定する。そうである場合は、
ブロック686に進んで、コマンドが送られる先の装置
の現使用中副状態が、装置状態成分旧使用中副状態にセ
ーブされる。内部変数IBSSが、装置リセットの値に
セットされる。ブロック688で、コマンドが送られる
先の装置の装置状態成分ICが、コマンド・インタフェ
ース・ポート中の値にセットされる。次にブロック69
0で、アドレスされた装置の使用中状態が使用中にセッ
トされる。次にブロック692で、後で実行するためア
ドレスされたコマンドICMDのスケジュールを立てる
ため、サブシステム・スケジュール機能を呼び出す。次
いでブロック684に戻って、以前に説明したように進
む。
判断ブロック670で、アテンション・ポート中の装置
IDが有効でないと判定した場合は、ブロック671に
進んで、コマンドの戻りコードが拒絶にセットされる。
その理由は装置ID無効である。次にブロック676に
進んで、コマンド処理プログラムに戻る。
判断ブロック664でコマンドに対するアテンション・
コードが装置リセットではないと判定した場合は、判断
ブロック694に進んで、コマンドに対するアテンショ
ン・コードが割込みリセットであるか否か判定する。そ
うでない場合は、判断ブロック696に進んで、新しい
コマンドに対するアテンション・コードが即時コマンド
か否か判定する。そうである場合は、後述する判断ブロ
ック700に進む。そうでない場合は、判断ブロック6
98に進み、新しいコマンドに対するアテンション・コ
ードがSCBであるか否か判定する。そうである場合
は、後述する判断ブロック702に進む。そうでない場
合は、判断ブロック672に進んで、以前に説明したよ
うに進む。
判断ブロック694でコマンドに対するアテンション・
コードが割込みリセットであると判定した場合、判断ブ
ロック700に進んで、コマンド・インタフェース・ポ
ート中のコマンドのビット7〜0の即時コマンド・コー
ドが有効か否か判定する。コマンドが有効でない場合
は、ブロック672に進んで、以前に説明したように進
む。コマンドが有効な場合は、判断ブロック702に進
んで、アテンション・ポート中の装置IDが有効かどう
か判定する。そうでない場合は、ブロック671に進ん
で、以前に説明したように進む。そうである場合、判断
ブロック704に進んで、装置が使用可能状態にあるか
否か判定する。そうでない場合は、ブロック706に進
んで、戻りコードを拒絶に設定する。特定の拒絶コード
は、ブロック708に示すように、装置使用不能であ
る。次にブロック676に戻って、以前に説明したよう
に進む。
判断ブロック704で、装置が使用可能状態にあると判
定した場合は、第20A図の判断ブロック710に進
み、装置が使用中状態にあるか否か判定する。そうであ
る場合、判断ブロック712に進んで、新しいコマンド
が割込みリセットであるか否か判定する。そうでない場
合は、判断ブロック714に進んで、新しいコマンドが
中断であるかどうか判定する。そうでない場合は、ブロ
ック716で戻りコードが拒絶に設定される。その理由
は、ブロック718に示すように装置が使用中というこ
とである。次いで第19B図のブロック676に戻っ
て、以前に説明したように進む。
判断ブロック712または714で判定がイエスの場
合、判断ブロック720に進んで、装置が現在SCBを
実行中か否か判定する。そうでない場合は、ブロック7
16に進んで、以前に説明したように進む。そうである
場合、判断ブロック722に進む。判断ブロック710
で装置が使用中でないと判定した場合も、判断ブロック
722に進む。判断ブロック722で、新しいコマンド
に対するアテンション・コードが割込みリセットか否か
を判定する。そうである場合、第19A図のブロック6
86に戻る。そうでない場合は、判断ブロック724に
進んで、装置割込み待ち行列が満杯か否か判定する。そ
うである場合、ブロック726で、復号処理はその戻り
コードを拒絶に設定する。特定の拒絶コードは、ブロッ
ク728に示すように割込み待ち行列満杯である。第1
9B図のブロック676に戻って、以前に説明したよう
に進む。
判断ブロック724で装置割込み待ち行列が満杯ではな
いと判定した場合、判断ブロック730に進んで、新し
いコマンドが中断であるか否か判定する。そうである場
合、第19A図のブロック686に戻って、以前に説明
したように進む。そうでない場合は、ブロック732に
示すように、新しいコマンドはSCBである。次に判断
ブロック734で装置状態がSCBの実行を許すか否か
判定する。そうである場合は第19A図のブロック68
8に戻って、以前に説明したように進む。そうでない場
合は、ブロック736で戻りコードが拒絶に設定され
る。ブロック738で、拒絶理由はSCB実行拒絶であ
る。第19B図のブロック676に戻って、以前に説明
したように進む。
次に本発明の割込み処理機構を一般的に説明する。その
後、第21図ないし第26図に関して詳しく述べる。下
記のように、物理割込みと論理割込みの2つのタイプの
割込みが定義される。
物理割込みは、優先割込みとも呼ばれ、即時コマンドお
よびハードウェア制御と関連し、SCBコマンドの結果
として通知される。物理割込みが発生するのは、サブシ
ステムが上位システムへの割込み線を活動化して、装置
に対して出されたコマンドの完了時に入出力事象が発生
したことを上位システムに警告するときである。上位シ
ステムはそのプログラム実行を優先して、割込み処理プ
ログラムを入出力事象に向ける。この入出力事象は、S
CBコマンドまたは即時コマンドの完了成功または完了
不成功と関連づけられる。これはトグルされるハードウ
ェア制御ビットにより示される。
論理割込みはSCBコマンドのみに関連する。論理割込
みが発生するのは、第10図に示すように、完了したS
CBコマンドがTSB状況ワード0をシステム・メモリ
に記憶し、SCB割込み中断ビット(ビット7)が
“1”にセットされるときである。こうなると、おそら
く物理割込みが上位システムに伝えられる前に、(ビッ
ト7をセットすることにより)システムに割込みが知ら
される。装置が物理割込みを提起する機会を得る前に、
プログラムがこれらのSCB割込みを処理することがで
きる。この場合、プログラムは、後で第24図に関して
説明するSCB割込みリセット・コマンドを使って、物
理割込みがサブシステムから提示される前に論理割込み
をリセットすることができる。このことについては、割
込みのクリア、すなわち「割込みリセット」に関して後
で詳しく考察する。
物理割込みが許可されるかどうかによって、装置によっ
て待ち行列に入れられた論理割込みが、物理割込みとし
てサブシステムからシステムに提示されるか否かが決定
される。論理割込みは、サブシステム・レベルあるいは
装置レベルで禁止されることがある。
サブシステムが物理割込みを禁止されるとき、あとで割
込みが可能になるまで、それに接続されたどの装置もシ
ステムに物理割込みを提示することはできない。
サブシステムは、第3図に示すように、サブシステム制
御ポート152のビット0、すなわちEIビットを
“0”にセットすることにより、割込みを禁止される。
サブシステム中で割込みを禁止するもう1つの方法は、
第6図に示すように、ビット14、すなわちDDIビッ
トを“1”にセットした即時コマンドをサブシステムに
送ることである。通常、これは装置の活動化制御に使用
する手段であるが、装置0向けのコマンドはサブシステ
ムに送られることを思い起こされたい。
装置が物理割込みを禁止されると、その装置が物理割込
みとして待ち行列に入れた割込み要求を提示することは
できない。この場合にサブシステムが割込み可能になる
と、接続された装置が待ち行列に入れられた割込みを要
求できるかどうか判定するため、サブシステムは別の接
続装置を選択することができる。
装置割込みは、その装置向けの任意の即時命令の即時コ
マンド・ビット14をセットすることにより、解禁また
は禁止することができる。
各サブシステムは、システムに対する1本の割込み線と
割込み接続ポートをもつ。多数の装置がこれらの資源を
争奪することがあり、(かつISPは一時に1つの装置
しか使用できない)ので、各接続装置にシステムへの物
理割込みを要求する機会を与えるのはサブシステムの責
任である。
この責任を果たすため、各装置は、割込み待ち行列に関
する充分な情報を待ち行列に入れて、サブシステムが待
ち行列から関連情報を読み取る際に各割込みを提示でき
るようにしなければならない。ISPは割込み状況ポー
ト・リセット・コマンドによってしかリセットできない
ので、サブシステムはISP中で次にどの装置割込みを
提示するかを管理しなければならない。
割込みがあるかどうか各装置の待ち行列をテストする処
理を、「割込みテスト」と呼ぶ。
装置に対する割込み待ち行列化は、決してその装置の割
込み可能状況によって制御されない。割込みはその状況
とは無関係に、待ち行列に入れられる。また、装置が非
活動化されたとき、装置に対する割込み待ち行列から待
機中の割込みがパージされることもない。この待ち行列
は、装置リセット・コマンドまたはサブシステム・リセ
ット・コマンドによってのみ検査なしに空にされる。
DIIPは、所与の論理装置について少なくとも1つの
SCB論理割込みが提起されたことをサブシステムが示
す手段となる。これは、16ビットの入出力ポートそれ
ぞれでサブシステムに接続された各装置を表すビットを
個別に割り当てることによって行なう。サブシステム
は、先に説明したように、少なくとも1つのDIIPを
もつ。この最初のDIIPを第21図に示す。このDI
IPは、その最下位ビット0が、SCB論理割込みが提
起されたことを示すためサブシステムに対して割り当て
られるように定義されている。次いでビット1〜15
が、SCB論理割込みを示すためサブシステムに接続さ
れた最初の15台の装置に割り当てられる。サブシステ
ムが16台以上の装置をサポートする場合は、2個以上
のDIIPが必要になる。第1のDIIPの後、次の1
6ビット・ポートが16台の装置を処理することがで
き、番号16以降の装置に対するSCB論理割込み専用
に使用される。装置の割当ては、各ポートで最下位ビッ
トから最上位ビットへと続く。すなわち、第22図に示
すように、装置16は第2のポートのビット0で表さ
れ、装置31はそのビット15で表される。
サブシステムに16台以上の装置が接続されている場合
は、複数の16ビットDIIPが必要である。複数のポ
ートが必要なとき、それらは入出空間で連続するアドレ
スをもつ。必要なDIIPの数は、Ceil((サブシ
ステムに接続された装置の数+1)/16)で与えられ
る。ただし、Ceilは非ゼロの最小の整数である。
接続装置が19台の場合、Ceil((19+1)/1
6)=Ceil(20/16)=2ポートと計算され
る。接続装置が33台の場合は、Ceil((33+
1)/16)=Ceil(34/16)=3ポートと計
算される。
DIIPポートが、その番号の装置がサブシステムに物
理的に接続されていないために使用されていないビット
をもつときは、これらのビットは常に“0”となる。
SCB割込みを処理する際、SCBが割込み要求で完了
したとき、必ずTSB状況を記憶しなければならない。
すなわち、あらゆるSCB割込みは論理割込みであり、
物理割込み要求が行なわれる前に、少なくともTSB状
況ワード0(第10図)がシステム・メモリに書き込ま
れる。論理割込み要求が記録された後、その装置に対す
る内部SCB割込みカウントが、物理割込みの提起に使
用するため1だけ増分される。SCB割込みカウントが
負または0の場合は、装置は物理割込みを要求しない。
要約すると、次の2つの場合に物理割込みがシステム・
プログラムに報告される。
a.サブシステムに対する割込みがISP中に存在し、
その割込みを引き起こした装置が活動化されている。
b.活動化された装置が、0より大きな論理割込みカウ
ントをもつ。
装置が活動化されている場合、サブシステムに対するI
SPが現在非活動化されている装置に対する割込みを含
んでいるとしても、物理割込みがSCB論理割込みをも
たらすことがあり得ることに留意されたい。このDII
P割込みの特徴により、プログラムは、単一割込み状況
ポートに基づいてプログラムの動作を直列化する必要な
しに、装置ごとにSCB論理割込みを処理することがで
きる。
SCB論理割込みを上位システムに提示するには、次の
論理ステップが必要である。
1.TSB状況を主プロセッサ・メモリに書き込む。ア
ーキテクチャ上、SCB論理割込みが要求されたとき、
少なくともTSB状況ワード0を書くことが必要であ
る。
2.装置から提示されるSCB論理割込みのカウントを
1ずつ増分する。
3.その装置に対して少なくとも1つのSCB論理割込
みが提起されたことを示すため、DIIP中のその装置
を表す正しい装置特有のビットを1にセットする。
物理割込みに対するSCB論理割込みのこの3つのステ
ップが実施された後、特定の装置が、サブシステムによ
る物理割込みの提起があるかどうか後でテストされる。
このことについては、第23図に関して詳しく説明す
る。
システム・プログラムは、物理割込みを受け取る前に、
論理装置に対するSCB論理割込みを提起したことを検
出することができる。これは、2つの方法で実施でき
る。簡単な方法は、サブシステムに対するDIIPポー
トを読み取って、非ゼロのビットを記録するものであ
る。これらのビットは、少なくとも1つの未処理のSC
B論理割込みをもつ装置を表す。システム・プログラム
はまた、TSB状況ワードが非ゼロ値にセットされてい
るかどうか主記憶装置を走査することができる。TSB
ビットを分析して、システム・プログラムはこのTSB
が完了し、物理割込みを要求したことを知る。この第2
の方法は、メモリをポーリングするのに主プロセッサ・
サイクルを必要とし、かつ結果を得られないことがある
ので推奨できない。第1の方法は、DIIPビットに対
する非ゼロ値の読取りにより、少なくとも1つのSCB
論理割込みの処理が保証されるので、第2の方法より勝
っている。
論理SCB割込みは割込み状況ポートを介して報告され
ないので、SCB論理割込みがシステムによって認めら
れるとすぐ、論理装置に対してリセットすることができ
る。これは、非ゼロのカウント値を伴うSCB割込みリ
セット・コマンドを出すことによって行なう。
SCB割込みリセット・コマンド中で指定されたカウン
ト値が、その装置に対するSCB論理割込みの数から差
し引かれ、その差がその装置に対するSCB論理割込み
の新しいカウントになる。その結果得られるSCB論理
割込みのカウントがSCB割込みリセット・コマンドの
結果としてゼロ以下になった場合、その論理装置に関連
するDIIPビットが“0”にセットされる。
このDIIP割込みアーキテクチャの利点は、上位プロ
グラムが、SCB割込みリセット・コマンドの1回の執
行で、装置から複数のSCB論理割込みをクリアできる
ことである。また、これらの論理割込みが物理割込みを
引き起こす前に、それらをクリアすることもできる。
DIIP割込みアーキテクチャを実施する際、大部分の
SCB割込みは、論理割込みが提示された後に適切なD
IIPビットを“1”にセットすることによって指示さ
れる。このことに対する例外が生じるのは、SCBを取
り出すことができないとき、またはTSB状況を書くこ
とができないときである。これらの場合、割込みコード
が8になったSCBエラーが、サブシステムに対するI
SP中に記録される。
SCB実行中のハードウェア障害に対する割込みは、そ
の装置の内部割込み待ち行列に入れられる。すなわち、
その割込み要求は最後の論理位置すなわち最新の位置に
入れられる。この場合に割込み待ち行列が満杯になる
と、それが内部装置状態に記録される。
非SCBコマンドが完了時割込みを必要とする場合、そ
れはその論理割込みに対する割込み待ち行列の最後の論
理位置すなわち最新の位置に入れられる。待ち行列に入
れられたデータは、その物理割込みが主プロセッサに提
示されたとき、待ち行列から外されて割込み状況ポート
に入る。ISPデータは、エラーを伴うまたはエラーな
しの即時コマンド完了、またはハードウェア障害として
割込み理由コードを示す。ISP中で報告される装置ア
ドレスは、サブシステムによる割込みテスト中にデータ
のソースとして選択された装置割込み待ち行列から決定
される。ISPが書かれた後に、IVビットがコマンド
使用中/状況ポート156(第3図)中で“1”にセッ
トされる。
物理割込みは、少なくとも1つの論理装置がSCB論理
割込みを提示したこと、及び装置がISP中に割込みデ
ータをもつ可能性のあることを示すことがてきる。
物理割込みが提示されたとき、上位プログラムは、コマ
ンド使用中/状況ポートのIVビット及びサブシステム
のDIIPポートを読み取ることによってそのソースを
見つける。IVビットが“1”のときは、ISPを読み
取ることによって示される装置に対する割込みを処理す
る必要がある。この割込みは、割込み状況ポート・リセ
ット・コマンドによってクリアしなければならない。こ
の割込みがクリアされないと、後でその対象となる装置
が活動化された場合に物理割込みの原因となる。ISP
をクリアしないと、サブシステムがISP中で新しい割
込みデータを提示することが不可能になる。
DIIPポートがシステム・プログラムによって読み取
られるとき、“1”のビットがあれば、それは、このビ
ット位置を割り当てられた装置が少なくとも1つのSC
B論理割込みをTSB区域に記憶しており、割込みの処
理を必要としていることを示す。
システム割込み処理プログラムは、どの特定のSCBが
割込みで完了したかを決定し、それらの完了時の状況を
決定するために、SCB論理割込みをもつ装置に対する
活動SCBのリストにアクセスする必要がある。
そうなるのは、DIIPポートで与えられる単一ビット
が必要なデータを運べないからである。この場合に割込
み処理プログラムで使用される探索方法は、不完全であ
ると思われる最初のSCBからスタートし、割込み要求
ビットが“1”にセットされたTSBを状況ワードが0
(第10図)かどうか検査する。この状態で見つかった
TSBがあれば、カウント1のSCB割込みリセット・
コマンドでそれをリセットすることができる。また、割
込み要求ビットが“1”にセットされたTSBのカウン
トを維持することもできる。1つのSCB割込みリセッ
ト・コマンドを使って、割込み処理上位プログラムが特
定の装置に対する割込みの処理を停止する前に、装置を
リセットすることができる。
SCB割込みに対して装置が処理される順序、及びある
いは装置に対して処理されるSCBの数は、割込み処理
ソフトウェアのみによって決定される。論理装置に対す
るSCB論理割込みに関する物理割込みについては、下
記の条件が満たされる場合にのみ割込みが起こる。
1.サブシステムが割込み可能にされる。
2.装置が割込み可能にされる。
3.その装置に対するSCB割込みカウントが0より大
きい。
DIIP装置に対する割込み待ち行列の状態を維持する
必要がある。満杯の割込み待ち行列は、装置がSCBコ
マンドを実行できないことを意味する。そうなるのは、
SCBを処理する際にSCBが取り出せないときまたは
TSB状況が記憶できないときに生じたハードウェア障
害のために、ISPに入れる必要のある割込みデータが
割込み待ち行列に入れられるからである。
上位プログラムはいつでも自由にDIIPポートを読み
取ることができる。通常これらのポートが読み取られる
のは、物理割込みがプログラムに与えられた後で、サブ
システム非活動化されているため、プログラムはその割
込み処理コードへの反復的再入を避ける。反復は回避さ
れるが、SCB論理割込みが記録されるので、装置は自
由にDIIPを更新し続けることができる。このことは
通常は問題にはならない。というのは、プログラムによ
って読み取られたDIIPポート中の装置に対するSC
B論理割込みは後で処理されるからである。ただし、シ
ステム・プログラムが、DIIPポートを読み取る前
に、すべてのSCB論理割込みの更新がサブシステムに
よって完了したことを確認したい場合は、DIIPポー
トを読み取る前にDIIPポート中のあらゆる装置に対
して中断コマンドを出すことにより、そうすることがで
きる。各装置は現在のSCBの後に任意のSCBの実行
を停止し、またSCB連鎖の実行を停止する。このよう
にして全SCB割込み状況が記憶される。プログラムが
この処置を講じるとき、1組の装置に対するすべてのS
CB活動は所与のレベルにあり、その後DIIPポート
が読み取られる。
DIIPビットはまた、プログラムがある種の状況でS
CB割込みリセット・コマンドを出すとき、プログラム
によってリセットされる。DIIPビットに対する作用
と潜在的リセットの間の同期の問題を避けるため、いく
つかの簡単な規則に従う必要がある。従うべき簡単な規
則とは、割込み状況ポートに存在する割込みを確実に処
理するため、割込み処理プログラムに入るとき、コマン
ド使用中/状況ポート156(第3図)のIVビットが
“1”の場合に割込み状況ポート154を読み取ること
である。割込み処理プログラムが特定の装置のテストを
決定したとき、DIIPポートを読み取ることができ
る。割込みに対するリセット・コードは単一のプログラ
ム位置にあるはずである。
次に、割込みのリセット、ならびに割込み状況ポートま
たはDIIPポート中のプログラムへの割込みデータの
指示に対するその作用の結果について一般的に述べる。
割込み状況ポート(ISP)154は、システムに対す
る読取り専用ポートである。このポートは、ISP入出
力ポート・アドレスを用いてINコマンドによってアク
セスされる。このポートの値は、サブシステムまたは装
置によって一度セットされると、システムがその割込み
またはサブシステムをリセットするまで、一定のままと
なる。
ISP中の割込みをリセットするには、システム・プロ
グラムは割込み状況ポート・リセット・コマンドを出す
必要がある。
割込み状況ポート・リセット・コマンドを使用する際に
は、下記の点を銘記されたい。
1.割込み状況ポート・リセット・コマンドは、コマン
ドが使用する(アテンション・ポートから引き出した)
装置アドレスがISPに含まれる論理装置IDの値と等
しくない場合は、ISPをクリアしない。
2.ISPをクリアしない割込み状況ポート・リセット
・コマンドは、サブシステム及び割込み元の装置が活動
化されているとき、サブシステムが再度物理割込みを提
示できるようにする。
3.ISPをクリアする割込み状況ポート・リセット・
コマンドは、コマンド使用中/状況ポートのIVビット
0にセットする。
4.装置のSCB論理割込みカウントを0以下の値にセ
ットするSCB割込みリセット・コマンドは、その装置
に対するDIIPビットを0にセットさせる。これは、
上位プログラムがDIIPビットをリセットするための
手段を与える。
5.割込み状況ポート・リセット・コマンドがISPを
クリアするとき、同じ装置または別の装置からの別の割
込みをサブシステムまたは装置によってISPに記憶す
ることができる。
この結果、以下の規則が得られる。
1.必ず最初にコマンド使用中/状況ポート(CBS
P)を読み取る。
2.CBSPのIVビットが1のときは、割込み状況ポ
ートを読み取って、そのポートに存在する割込みデータ
を得る。割込み状況ポート・リセット・コマンドを使っ
て、割込みをクリアする。
3.SCB割込みリセット・コマンドを使うときは、指
定されたカウントがクリアすべき論理割込みの数と一致
することを確認する。システムがその装置で現在実行中
の他のSCBに対する物理割込みを特に無視しようとす
るのでない限り、カウントが処理されるSCB論理割込
みの数より大きくてはいけない。
DIIPポートは、DIIPポートに割り当てられた入
出力アドレスへのINコマンドを使って、システム・プ
ログラムによってアクセスされる。これらのポートは、
上位システムにとって読取り専用であり、サブシステム
がSCB割込みを待ち行列に入れるときセットされ、S
CB割込みリセット・コマンド、装置リセット・コマン
ド、またはサブシステム・リセット・コマンドによって
リセットされる。
装置リセット・コマンドが、割込み状況ポートに割込み
値をもつ論理装置によって実行されるときは、このポー
トはクリアされない。割込み状況ポートをリセットする
には、明示的割込み状況ポート・リセット・コマンドが
必要である。
装置リセット・コマンドは、常にその装置における割込
みをクリアするので、常にその装置に対するDIIPビ
ットを0にリセットし、内部SCB割込みカウントを0
にリセットし、装置の内部割込み割込み待ち行列をクリ
アする。
装置リセット・コマンドが完了するとき、そのコマンド
は必ず割込みを要求し、エラーなしの非SCB完了に対
する割込み要求を待ち行列に入れる。
SCBまたはSCB連鎖の一要素を実行中の装置に、上
位システムがSCB割込みリセット・コマンドを出すこ
とが可能である。その可能性の高いのは、その装置がS
CB連鎖を実行中であり、割込みを使って中間連鎖要素
の完了を追跡しているときである。
SCB割込みリセット・コマンドは、SCBを実行中の
装置に受け入れてもらわなければならない。SCBの実
行が停止され、SCB割込みリセット活動が実行され
る。次いで停止されたSCBの実行が再開される。
次に、第3図に一般的に示した装置割込み識別ポート
(DIIP)158を詳しく示した第23図を参照す
る。この説明では、用語「優先割込み」と「物理割込
み」は同じ意味で使用する。DIIP158は、サブシ
ステムが、1つの物理割込みで多数の間接コマンド論理
割込み、すなわちSCBコマンド論理割込みを上位プロ
セッサに提供できるようにする。上位プロセッサは、1
つの割込みリセット・コマンドで、サブシステム中の所
与の論理装置からの複数の論理割込みをクリアすること
ができる。
第21図及び第22図に関して先に説明したように、本
発明を実施する際に1つまたは複数のDIIPを使用す
ることがある。1つのDIIP158を示してあるが、
追加のDIIPも同様の構成であることを了解された
い。DIIP158はビット位置E0、E1、E2、E
mを含む。これらのビット位置はレジスタ段でもよい
が、説明しやすいように、ANDゲート800、80
2、804、806として示してある。これらのゲート
は、マイクロチャネル・データ・バス808に接続さ
れ、その出力端で複数の論理割込みをもたらす。ORゲ
ート810は、下記のように、割込みバス812を介し
て上位プロセッサに単一の物理割込みを供給する。
各論理装置は、装置割込み発生論理回路A0、A1、A
2、Amを含む。これらの論理回路はそれぞれ論理回路
814、816、818、820で示してあり、それぞ
れの論理装置についてこのときシステムに割込みを提示
する必要があるかどうか決定する。この時は実際に物理
割込みは提示されないので、この割込みは「論理装置割
込み」である。これらの割込みをそれぞれP0〜Pmで
示す。実際の物理割込みは、後述のように、後でORゲ
ート810の出力端で提供される。
論理装置割込みP0〜Pmは、アップ/ダウン・カウン
タB0〜Bmのアップ・カウント入力UPに提供され
る。これらのカウンタは、それぞれカウンタ822、8
24、826、828で示してある。所与のカウンタ
で、各論理割込みがカウンタを1ずつ増分する。所与の
カウンタのダウン・カウント入力DNに下記の減分信号
が印加されると、カウンタを1ずつ減分する。その結果
生じる所与のカウンタBnの値が正である場合は、装置
Anからの少なくとも1つの論理割込みが未処理である
ことを示す。逆に、その結果生じるカウンタBnの値が
0または負の場合は、装置Anからの未処理の論理割込
みがないことを示す。
カウンタB0〜Bmの正の出力は、それぞれラッチC0
〜Cmのセット(S)入力に供給され、カウンタB0〜
Bmのゼロ(0)及び負の出力は、ラッチC0〜Cmの
クリア(C)入力に供給される。ラッチC0〜Cnはそ
れぞれラッチ830、832、834、836として示
してある。すなわち、各出力端Qで明らかになる、ラッ
チC0〜Cmに記憶された値は、各装置nに対する次の
ようなブール値に対応する。
Anが報告すべき論理割込みを有する場合、Cn=真 Anが報告すべき論理割込みをもたない場合、Cn=偽 少なくとも1つの装置Anが少なくとも1つの未処理の
論理割込みをもつ場合、すべてのラッチの出力はそれぞ
れORゲート810の当該の入力端に供給され、単一の
物理割込みがゲート810の出力端から割込みバス81
2を介して上位プロセッサに供給される。
上位プロセッサが単一の物理割込みを受け取った後、D
IIPを読み取るためのINコマンドがマイクロチャネ
ル808上に供給され、さらにサブシステム・コマンド
復号機構838に供給される。復号機構838は線84
0上にDIIP読取り信号を発生し、この信号はラッチ
830、832、834、836の値をそれぞれゲート
800、802、804、806を通過してデータ・バ
ス808上に向かわせ、上位プロセッサに供給する。そ
うすると、上位プロセッサは、どの装置Anが1つまた
は複数の未処理の論理割込みをもつかを決定することが
できる。
上位システムは、優先順位付け機構により、どの装置A
nにサービスするか、及び選んだ論理装置に対するどの
論理割込みを最初に処理するかを決定する。所与の論理
装置Anの1つまたは複数の論理割込みを処理した後、
上位システムはCIP148に即時コマンド「SCB割
込みリセット」コマンドを出し、それがサブシステム・
コマンド復号機構838に与えられる。このコマンド
は、そのコマンドの対象となる論理装置のアドレスと、
その論理装置に対してリセットすべき論理割込みのカウ
ントを含んでいる。
第24図に、「SCB割込みリセット」コマンド用のア
テンション・ポートのフォーマット166及びコマンド
・インタフェース・ポートのフォーマット160を詳し
く示す。アテンション・ポートのフォーマット166と
コマンド・インタフェース・ポートのフォーマット16
0は前に第6図に示したものと同じであるが、第24図
は下記のようにコマンド・インタフェース・ポート16
0フォーマットのビット13〜0についてより詳しく示
している。
ICビット13−予約。このコマンドによって使用され
ずまた検査されない。
ICビット12〜9−カウント。このコマンドが対象と
する装置に対するリセットすべきSCB論理割込みの
数。
ICビット8−フォーマット。このビットは、使用する
即時コマンド・フォーマットのタイプを指定する。ビッ
ト16〜31を予約するには、このビットを1にセット
しなければならない。このビットが0であれば、ビット
16〜31は命令コード依存となるはずである。
ICビット7〜0−コマンド・コード=X′00001
000′。「SCB割込みリセット」用コード。
サブシステム・コマンド復号機構838は、線842上
に装置n割込みリセット(Kn)信号を発生する。この
信号は、所与の時間に並直列コンバータM0〜Mmの所
与の1つのアドレスとなる。これらのコンバータはそれ
ぞれ844、846、848、850として示してあ
る。線824上の信号Knは、所与の装置に対する論理
割込みの数のカウント(Ln)を、線852を介して論
理装置An用のコンバータMnのロード入力(L)にロ
ードする。次いで、コンバータMnは、並列形の割込み
カウントを、カウンタBnを減分するため順次カウント
に変換する。たとえば、並列カウントが2の場合、コン
バータMnは、カウンタBnを減分するため、論理装置
Anに対して上位システムが2つの論理割込みを処理し
たことを示す2つの順次パルスを供給する。各論理装置
に対する各論理割込みの処理が終わるまでこの処理を繰
り返す。
装置の活動化/非活動化は、DIIP158の詳しい説
明には含めなかった。論理割込みまたは物理割込みの提
示を解禁/禁止するため、様々な点にANDゲートを挿
入できることを理解されたい。たとえば、ラッチCnの
出力端とORゲート810の間にANDゲートを挿入し
て、論理装置nからの物理割込みの提示を禁止すること
ができる。ただし、論理割込みは当該のEnを介して依
然として提示できる。所与の装置nからの論理割込み
は、ラッチCnと関連するEnの間にANDゲートを挿
入することによって禁止することができる。
第25図及び第26図は、システムに対する物理割込み
の数を最小にするための上位システム割込み処理プログ
ラムの流れ図を構成する。第25図に示すように、サー
ビス・ルーチンはブロック860から始まり、ブロック
862でDIIPを読み取る。判断ブロック864で、
DIIP=0か否か判定する。DIIP=0の場合、未
処理の論理割込みはなく、ブロック866で出口ルーチ
ンに入る。
DIIPが0でない場合は、少なくとも1つの論理割込
みが未処理であることを示し、ブロック868に進ん
で、サービスすべき最初の装置nを指すようにnを初期
設定する。ブロック870で、装置nがサービスを必要
とするか否か判定する。必要な場合はブロック872に
進み、そこから第26図のブロック880に進むが、そ
の操作については後述する。
ブロック870で装置nがサービスを必要としないと判
定した場合、あるいはブロック874に示すように第2
6図のブロック902から戻った場合は、ブロック87
6に進んでnを+1だけ増分する。ブロック878で、
最後のnかどうか判定する。そうでない場合は、ブロッ
ク870に戻って今述べたように続ける。最後のnであ
る場合は、ブロック862に戻ってもう一度DIIPを
読み取る。
判断ブロック870で装置nがサービスを必要とすると
判定した場合は、ブロック872に進み、さらに第26
図のブロック880に進む。ブロック882で、Mを0
に初期設定する。ただし、Mは論理割込みの数である。
ブロック884で、最初に検査すべきSCBを指示し、
TSBアドレスを見つける。判断ブロック886で、T
SB中に論理割込みがあるか否か判定する。これは、第
10図に示すようにTSBの終了状況ワードのビット7
(INT)を検査して行なう。ビット7が“1”の場
合、論理割込みが未処理であり、ブロック888に示す
ように、上位システムはその割込みを処理する。ブロッ
ク890で、Mを+1だけ増分して、装置nに対する1
つの論理割込みの処理が済んだことを示す。次に判断ブ
ロック892に進んで、論理装置nに関して検査すべき
SCBが他にもまだあるかどうか判定する。判断ブロッ
ク886で、検査したばかりのTSB中に論理割込みが
ないと判定した場合も、この判定を行なう。
判断ブロック892で論理装置nに関してまだ検査すべ
きSCBがあると判定した場合は、ブロック894で次
に検査すべきSCBを指す。この場合も、判断ブロック
886で、上記のようにTSB中に論理割込みがあるか
どうか判定する。論理割込みがある場合は、ブロック8
88でそれを処理し、+1のMを+1だけ増分してM=
2とする。判断ブロック892に進んで、まだ他に検査
すべきSCBがあるかどうかもう一度判定する。もう検
査すべきSCBがないとすると、判断ブロック896に
進んで、M=0かどうか判定する。M=0の場合、ブロ
ック870からこのルーチンに入るには少なくとも1つ
の論理割込みが存在するはずなので、エラーが存在し、
ブロック898でエラーが示される。M=2なのでブロ
ック900に進んで、カウントが2の装置nに対するS
CB割込みリセット・コマンドを出す。第23図に関し
て先に説明したように、この即時コマンドはCIP14
8に供給され、さらにサブシステム・コマンド復号機構
838に供給される。次いで復号機構838は線842
を介して装置割込みリセット(Kn)を、また線852
を介して2つのカウントを並直列コンバータMnに供給
し、次にこのコンバータはカウンタBnのダウン入力に
2つのパルスを送って、カウンタBnを2つのカウント
だけ減分させる。
SCB割込みリセット信号の発行後、ブロック902に
進み、さらに第25図のブロック874に進んで前述の
ように続ける。
F.発明の効果 本発明に従うコンピュータ・システム用の割込み処理機
構においては、多数の論理割込みが、サブシステムから
上位プロセッサへの1つの優先割込みで処理される。上
位プロセッサは、1つの割込みリセット・コマンドで、
サブシステムまたは接続装置からの多数の論理割込みを
クリアすることができる。
【図面の簡単な説明】
第1図は、それぞれ複数の装置が接続されている複数の
知能サブシステムに接続された上位システムを含む、コ
ンピュータ・システムのブロック図である。 第2図は、上位システムと1つの知能サブシステムを詳
細に示すブロック図である。 第3図は、上位システムと知能サブシステムの間で情報
を交換するためのコマンド・インタフェースのブロック
図である。 第4図は、アテンション・ポートを詳細に示す図であ
る。 第5図は、コマンド使用中/状況ポートを詳細に示す図
である。 第6図は、即時コマンド用のコマンド・インタフェース
・ポートとアテンション・ポートの一般フォーマットを
示す図である。 第7図は、サブシステム制御ブロック(SCB)コマン
ド用のコマンド・インタフェース・ポートとアテンショ
ン・ポートの一般フォーマットを示す図である。 第8図は、本発明のコンピュータ・システムで使用され
る制御ブロックの詳細なSCBフォーマットを示す図で
ある。 第9図は、詳細な拡張SCBフォーマットを示す図であ
る。 第10図は、詳細な終了状況ブロック(TCB)フォー
マットを示す図である。 第11図は、詳細な拡張TSBフォーマットを示す図で
ある。 第12図は、システム内のSCBフォーマットを詳細に
示した、コンピュータ・システムのブロック図である。 第13図は、コマンド提出中のサブシステムの状態遷移
の状態図である。 第14図は、コマンド転送システムの流れ図である。 第15図は、第15A図、第15B図及び第15C図の
つながりを示す図である。 第15A図、第15B図、第15C図、および第16図
は、第14図に一般的に示したサブシステム制御ポート
への処理書込みの詳細な流れ図である。 第17図は、第17A図および第17B図のつながりを
示す図である。 第17A図および第17B図は、第14図に一般的に示
したアテンション・ポートへの処理書込みの詳細な流れ
図である。 第18図は、第14図に一般的に示したコマンド・イン
タフェース・ポートへの処理書込みの詳細な流れ図であ
る。 第19図は第19A図および第19B図のつながりを示
す図である。 第19A図、第19B図、第20A図および第20B図
は、コマンド復合処理の詳細な流れ図である。 第20図は第20A図および第20B図のつながりを示
す図である。 第21図は、第1装置割込み識別ポート(DIIP)用
の入出力アドレス・フォーマットを示す図である。 第22図は、第2DIIP用の入出力アドレス・フォー
マットを示す図である。 第23図は、DIIPを示すブロック図である。 第24図は、SCB割込みリセット即時コマンド用のコ
マンド・インタフェース・ポートとアテンション・ポー
トのフォーマットを示す図である。 第25図および第26図は、DIIPと共に使用される
割込み処理プログラムの流れ図である。 100……上位システム、102、104、106、1
08……サブシステム、122……チャネル、114…
…インタフェース、122……システム・プロセッサ集
合体(上位プロセッサ)、124……システム・メモ
リ、126……マイクロチャネル、128……マイクロ
チャネル・インタフェース、130……SCB転送サポ
ート論理ブロック、132……局所マイクロプロセッ
サ、134……割込み論理回路、136、138、14
0、142……接続装置、146……接続装置インタフ
ェース、148……コマンド・インタフェース・ポー
ト、150……アテンション・ポート(AP)、152
……サブシステム制御ポート(SCB)、154……割
込み状況ポート(ISP)、156……コマンド使用中
/状況ポート(CBSP)、158……装置割込み識別
ポート(DIIP)。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 アーネスト・ネルソン・マンデイズ アメリカ合衆国フロリダ州ボイントン・ビ イーチ、ドリツト・アヴエニユー3545番地 (72)発明者 リチヤード・ニイール・メンデルソン アメリカ合衆国フロリダ州ハイランド・ビ イーチ、1ハイランド・ビイーチ・ドライ ブ1124番地 (56)参考文献 特開 昭57−178518(JP,A) 特開 昭50−93358(JP,A)

Claims (1)

    【特許請求の範囲】
  1. 【請求項1】上位プロセッサ(122)と、接続された
    装置(138、140、142)を有する少なくとも1
    個の知能サブシステム(102)とを含み、上記の知能
    サブシステム及び接続装置がそれぞれ上記上位プロセッ
    サからは論理装置に見えて、それぞれの論理装置にn個
    の装置識別番号のうちの所定の1つが割り当てられ、上
    位プロセッサが上記論理装置に直接コマンドと間接コマ
    ンドを供給するというコンピュータ・システムにおい
    て、 上記直接コマンドに関する上記論理装置からの物理割り
    込みが、上記上位プロセッサによって順次読み取られる
    割り込み状況ポート(154)と、 それぞれの出力端子で間接コマンドに関係する複数の論
    理割り込みを発生させる手段を有する、上記n個の論理
    装置のそれぞれ用に1個ずつある、n個の割り込み発生
    手段(814、816、818、820)と、 上記n個の割り込み発生手段にそれぞれ対応して設けら
    れるn個のアップ/ダウン・カウンタであって、所与の
    カウンタのアップ・カウント入力端子が同じ番号の割り
    込み発生手段の出力端子に接続され、発生された間接コ
    マンドに関係する各論理割り込みが上記所与のカウンタ
    を増分させ、そのダウン・カウント入力端子に上記カウ
    ンタを減分する減分信号が印加され、上記カウンタが正
    のカウントを示すとき第1の状態となる正出力と、上記
    カウンタのカウントが0または負のカウントを示すとき
    第2の状態となる負出力とを有するという、n個のアッ
    プ/ダウン・カウンタ(822、824、826、82
    8)と、 それぞれが上記n個のアップ/ダウン・カウンタのうち
    同じ番号のものと関連し、同じ番号のカウンタの正出力
    が上記第1の状態のときラッチがセットされるように、
    同じ番号のカウンタの正出力端子に接続されたセット入
    力と、同じ番号のカウンタの負出力が上記第1の状態の
    ときラッチがクリアされるように、同じ番号のカウンタ
    の負出力端子に接続されたクリア入力と、ラッチがセッ
    トされたとき第1の状態となる出力とを有する、n個の
    ラッチ(830、832、834、836)と、 各入力が上記n個のラッチのうち異なる1つの出力端子
    に接続され、少なくとも1つの入力が上記第1の状態に
    あって、少なくとも1つの論理装置からの間接コマンド
    に関する少なくとも1つの論理割り込みがあることを示
    す場合にゲートの出力端子に間接コマンドに関する物理
    割り込み信号が供給されるという、n個の入力を有する
    ゲート(810)と、 それぞれが上記n個のラッチのうち同じ番号のものの出
    力端子に接続された第1の入力と、上記上位プロセッサ
    からの読み取り信号を受け取るように接続された第2の
    入力とを有し、かつ第1の入力が上記第1の状態にあ
    り、同時に読み取り信号が第2の入力に印加されたと
    き、同じ番号の論理装置からの少なくとも1つの間接コ
    マンドに関する未処理の論理割り込みがあることを示す
    出力を有する、n個の論理手段(800、802、80
    4、806)と、 それぞれ上記論理手段のうち同じ番号のものの出力端子
    に接続されたn個のビット位置を有する、装置割り込み
    識別ポート(DIIP)(第21図、第22図)と、 上記n個の論理装置のうちどれがすくなくとも1個の間
    接コマンド関する未処理の論理割り込みをもつか決定す
    るために、上記DIIPのn個のビット位置を読み取る
    べく、上記上位プロセッサによって上記読み取り信号を
    発生するための手段(838)と、 上記上位プロセッサによって処理された同じ番号の論理
    装置の各論理割り込みごとに、上記上位プロセッサから
    所与のカウンタのダウン・カウンタ入力端子に上記減分
    信号を供給する手段(838)と、 上記減分信号を供給する上記手段が並直列コンバータ
    (844、846、848、850)と、を含み、 上記減分信号が、上記同じ番号の論理装置に対する処理
    された間接コマンドに関する論理割り込みの数を示す並
    列信号を含み、同じ番号の論理装置に対する処理された
    論理割り込みの数に少なくとも等しいパルス数をもつ直
    列信号に変換する、 ことを特徴とする割り込み処理システム。
JP2155578A 1989-06-16 1990-06-15 割込み処理のためのシステムおよび方法 Expired - Lifetime JPH0640321B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/367,391 US5185864A (en) 1989-06-16 1989-06-16 Interrupt handling for a computing system with logical devices and interrupt reset
US367391 1989-06-16

Publications (2)

Publication Number Publication Date
JPH0355653A JPH0355653A (ja) 1991-03-11
JPH0640321B2 true JPH0640321B2 (ja) 1994-05-25

Family

ID=23446982

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2155578A Expired - Lifetime JPH0640321B2 (ja) 1989-06-16 1990-06-15 割込み処理のためのシステムおよび方法

Country Status (6)

Country Link
US (1) US5185864A (ja)
EP (1) EP0403119A3 (ja)
JP (1) JPH0640321B2 (ja)
BR (1) BR9002835A (ja)
GB (1) GB9008091D0 (ja)
PE (1) PE3691A1 (ja)

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3917715A1 (de) * 1989-05-31 1990-12-06 Teldix Gmbh Rechnersystem
US5265255A (en) * 1990-09-24 1993-11-23 International Business Machines Corp. Personal computer system with interrupt controller
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
JPH0776951B2 (ja) * 1990-10-30 1995-08-16 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステム、複数の入出力アダプタによるアドレス空間共用システム、及び複数の入出力装置とコンピュータプロセッサ間の通信管理方
US5404535A (en) * 1991-10-22 1995-04-04 Bull Hn Information Systems Inc. Apparatus and method for providing more effective reiterations of processing task requests in a multiprocessor system
BR9204660A (pt) * 1991-12-20 1993-06-22 Ibm Sistema de rede de computadores que engloba uma interface para sistemas de computadores pequenos(scsi)para dispositivos de scsi nao locais
US5459857A (en) * 1992-05-15 1995-10-17 Storage Technology Corporation Fault tolerant disk array data storage subsystem
US5481724A (en) * 1993-04-06 1996-01-02 International Business Machines Corp. Peer to peer computer-interrupt handling
JPH07262154A (ja) * 1994-03-25 1995-10-13 Fujitsu Ltd プロセッサ間通信制御方式
US6052797A (en) * 1996-05-28 2000-04-18 Emc Corporation Remotely mirrored data storage system with a count indicative of data consistency
US6044444A (en) * 1996-05-28 2000-03-28 Emc Corporation Remote data mirroring having preselection of automatic recovery or intervention required when a disruption is detected
US6023743A (en) 1997-06-10 2000-02-08 International Business Machines Corporation System and method for arbitrating interrupts on a daisy chained architected bus
CA2432386A1 (en) * 2001-01-31 2002-08-08 International Business Machines Corporation Method and apparatus for transferring interrupts from a peripheral device to a host computer system
WO2002069115A2 (en) * 2001-02-28 2002-09-06 Brecis Communications Corporation A security system with an intelligent dma controller
US6816935B1 (en) * 2001-03-02 2004-11-09 Advanced Micro Devices, Inc. Interrupt and status reporting structure and method for a timeslot bus
US6823413B2 (en) * 2001-06-08 2004-11-23 Oki Electronic Industry Co., Ltd. Interrupt signal processing apparatus
US7076787B2 (en) * 2002-05-30 2006-07-11 Sun Microsystems, Inc. Supporting multiple protocols with a single device driver
US20030225916A1 (en) * 2002-05-30 2003-12-04 David Cheon Implementing a data link layer protocol for multiple network interface devices
US6792610B2 (en) * 2002-05-30 2004-09-14 Sun Microsystems, Inc. Attaching a device driver to multiple logical devices of one physical device
US7127601B2 (en) * 2002-05-30 2006-10-24 Sun Microsystems, Inc. System and method for delivering FPGA programming
US7112388B2 (en) 2002-06-27 2006-09-26 Hitachi Maxwell Ltd. Battery provided with terminals
US20090177807A1 (en) * 2008-01-03 2009-07-09 International Business Machines Corporation Reset method for application specific integrated circuits (asic)
US8968907B2 (en) 2010-08-30 2015-03-03 Samsung Sdi Co., Ltd. Battery pack
US9146776B1 (en) * 2011-08-16 2015-09-29 Marvell International Ltd. Systems and methods for controlling flow of message signaled interrupts
US9128920B2 (en) 2011-11-30 2015-09-08 Marvell World Trade Ltd. Interrupt handling systems and methods for PCIE bridges with multiple buses
CN107577591A (zh) * 2016-07-05 2018-01-12 中兴通讯股份有限公司 一种自动化测试异常保护的方法、装置及系统
CN110858164B (zh) * 2018-08-22 2022-09-09 成都华为技术有限公司 进程间通信方法、装置及计算机可读介质

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3787891A (en) * 1972-07-03 1974-01-22 Ibm Signal processor instruction for non-blocking communication between data processing units
US3778780A (en) * 1972-07-05 1973-12-11 Ibm Operation request block usage
JPS5549344B2 (ja) * 1973-12-19 1980-12-11
US4470111A (en) * 1979-10-01 1984-09-04 Ncr Corporation Priority interrupt controller
US4445176A (en) * 1979-12-28 1984-04-24 International Business Machines Corporation Block transfers of information in data processing networks
JPS57178518A (en) * 1981-04-24 1982-11-02 Nec Home Electronics Ltd Interruption control circuit
JPS58222361A (ja) * 1982-06-18 1983-12-24 Fujitsu Ltd デ−タ処理システムにおけるアクセス要求の優先順位決定制御方式
US4787026A (en) * 1986-01-17 1988-11-22 International Business Machines Corporation Method to manage coprocessor in a virtual memory virtual machine data processing system
US4901234A (en) * 1987-03-27 1990-02-13 International Business Machines Corporation Computer system having programmable DMA control
JPH01126751A (ja) * 1987-11-11 1989-05-18 Fujitsu Ltd グルーピング装置
US4994963A (en) * 1988-11-01 1991-02-19 Icon Systems International, Inc. System and method for sharing resources of a host computer among a plurality of remote computers

Also Published As

Publication number Publication date
BR9002835A (pt) 1991-08-20
JPH0355653A (ja) 1991-03-11
EP0403119A2 (en) 1990-12-19
PE3691A1 (es) 1991-02-15
US5185864A (en) 1993-02-09
GB9008091D0 (en) 1990-06-06
EP0403119A3 (en) 1991-11-27

Similar Documents

Publication Publication Date Title
JPH0640321B2 (ja) 割込み処理のためのシステムおよび方法
US5131082A (en) Command delivery for a computing system for transfers between a host and subsystem including providing direct commands or indirect commands indicating the address of the subsystem control block
JP3335172B2 (ja) データ処理システム及びそれに使用するための入出力プロセッサ
US5524268A (en) Flexible processor-driven control of SCSI buses utilizing tags appended to data bytes to determine SCSI-protocol phases
US4038642A (en) Input/output interface logic for concurrent operations
US5448702A (en) Adapters with descriptor queue management capability
US5822568A (en) System for improving the real-time functionality of a personal computer which employs an interrupt servicing DMA controller
US5170471A (en) Command delivery for a computing system for transferring data between a host and subsystems with busy and reset indication
US4400771A (en) Multi-processor system with programmable memory-access priority control
US4214305A (en) Multi-processor data processing system
US4177513A (en) Task handling apparatus for a computer system
US5717952A (en) DMA controller with mechanism for conditional action under control of status register, prespecified parameters, and condition field of channel command
US6070204A (en) Method and apparatus for using universal serial bus keyboard to control DOS operations
US5754884A (en) Method for improving the real-time functionality of a personal computer which employs an interrupt servicing DMA controller
US4053950A (en) Residual status reporting during chained cycle steal input/output operations
US20110072434A1 (en) System, method and computer program product for scheduling a processing entity task
US6154832A (en) Processor employing multiple register sets to eliminate interrupts
JP2001229031A (ja) 割込強制レジスタを含む柔軟な割込コントローラ
WO1997000533A1 (en) A method and apparatus for transporting messages between processors in a multiple processor system
US20020099893A1 (en) System and method for the handling of system management interrupts in a multiprocessor computer system
US5371857A (en) Input/output interruption control system for a virtual machine
WO1995010806A1 (en) Device and method for controlling interruption
JPS6035697B2 (ja) 入出力制御システム
JP4334026B2 (ja) コンピュータシステム、およびその中でシステム管理割込を発生し処理するための方法
US5208915A (en) Apparatus for the microprogram control of information transfer and a method for operating the same