(57)【要約】【課題】  入出力装置に障害が発生した場合に，入出力装置へのアクセスが可能でありながら，全体の動作の停止も抑制できるコンピュータシステムを提供する。【解決手段】  本発明によるコンピュータシステム１は，プロセッサ２，メモリ３のような上位装置と，入出力装置５と，入出力装置５と該上位装置との間に設けられている入出力制御装置４とを具備する。入出力制御装置４は入出力装置５に障害が発生したとき，その障害の内容に応じて入出力装置５を閉塞状態と仮閉塞状態とを含む群のうちから選択された一の状態に設定するように構成されている。更に，入出力制御装置４は，入出力装置（５）を閉塞状態に設定した場合には，上位装置と入出力装置５との間のアクセスを全て破棄し，入出力装置５を仮閉塞状態に設定した場合には，上位装置と入出力装置５との間のアクセスのうち所定の条件を満足するものを許可し，満足しないものを破棄するように構成されている。【選択図】  図１
2006172326.tif 000002
【特許請求の範囲】
【請求項１】
上位装置と，
入出力装置と，
システムバスと，
入出力バスと，
前記システムバスを介して前記上位装置に接続され，前記入出力バスを介して前記入出力装置に接続されている入出力制御装置
とを具備し，
前記入出力制御装置は，前記入出力装置に障害が発生したとき，前記障害の内容に応じて前記入出力装置を閉塞状態と仮閉塞状態とを含む群のうちから選択された一の状態に設定するように構成され，
前記入出力制御装置は，前記入出力装置を前記閉塞状態に設定した場合には，前記上位装置と前記入出力装置との間のアクセスを全て破棄し，前記入出力装置を前記仮閉塞状態に設定した場合には，前記上位装置と前記入出力装置との間のアクセスのうち所定の条件を満足するものを許可し，満足しないものを破棄するように構成された
コンピュータシステム。
【請求項２】
請求項１に記載のコンピュータシステムであって，
前記入出力制御装置は，前記入出力装置を前記仮閉塞状態に設定した場合，前記入出力装置から前記上位装置への第１アクセスのうち，前記上位装置への書き込み要求を破棄するように構成された
コンピュータシステム。
【請求項３】
請求項２に記載のコンピュータシステムであって，
前記入出力制御装置は，前記入出力装置を前記仮閉塞状態に設定した場合，前記入出力装置から前記上位装置へのアクセスのうち，前記上位装置への読み出し要求を許可するように構成された
コンピュータシステム。
【請求項４】
請求項２に記載のコンピュータシステムであって，
前記入出力制御装置は，前記入出力装置を前記仮閉塞状態に設定した場合に，前記入出力装置から前記上位装置へのアクセスのうち，前記入出力装置から前記上位装置への応答を許可するように構成された
コンピュータシステム。
【請求項５】
請求項１に記載のコンピュータシステムであって，
前記入出力制御装置は，
ウインドウと，
ルータと
入出力制御回路
とを備え，
前記ルータは，前記入出力装置が前記仮閉塞状態に設定されている場合，前記上位装置から前記入出力装置への第２アクセスを，前記第２アクセスに指定されているアドレスに応答して前記第２アクセスを前記ウインドウと前記入出力制御回路とのうちから選択された一方に転送するように構成され，
前記ウインドウは，前記第２アクセスを前記ルータから受け取ったとき，前記第２アクセスにアドレス変換を行って前記ルータに戻し，
前記入出力制御回路は，前記第２アクセスを前記ルータから受け取ったとき，前記第２アクセスが前記ウインドウを経由している場合には前記第２アクセスを前記入出力装置に転送し，経由していない場合には前記第２アクセスを破棄するように構成された
コンピュータシステム。
【請求項６】
請求項５に記載のコンピュータシステムであって，
前記コンピュータシステムは，システムソフトウェアと他のソフトウェアとを搭載しており，
前記システムソフトウェアは，前記ウインドウを指定するアドレスを含むような前記第２アクセスを生成することが許可され，
前記他のソフトウェアは，前記ウインドウを指定するアドレスを含むような前記第２アクセスを生成することが許可されない
コンピュータシステム。
【請求項７】
請求項１に記載のコンピュータシステムであって，
前記入出力制御装置は，前記入出力装置に障害が発生していない場合，前記入出力装置を通常状態に設定するように構成され，
前記入出力装置は，レジスタを備え，
前記入出力制御装置は，前記レジスタのうちのコピー対象部分に保持されている値のコピーを保持する擬似入出力レジスタを備え，
前記入出力制御装置は，前記入出力装置が通常状態に設定され，且つ，前記入出力装置の前記コピー対象部分への書き込み要求があった場合，前記書き込み要求を前記入出力装置に加えて前記擬似入出力レジスタに転送し，且つ，前記擬似入出力レジスタは，前記書き込み要求に応答して，それが保持する値を書き換えるように構成された
コンピュータシステム。
【請求項８】
請求項７に記載のコンピュータシステムであって，
前記入出力制御装置は，前記入出力装置が前記閉塞状態又は前記仮閉塞状態に設定され，且つ，前記入出力装置の前記コピー対象部分へのデータ要求があった場合，前記データ要求を前記擬似入出力レジスタに転送し，且つ，前記擬似入出力レジスタは，前記データ要求に要求されている値を記述した応答を生成する
コンピュータシステム。
【請求項９】
請求項１に記載のコンピュータシステムであって，
前記入出力制御装置は，
前記上位装置と前記入出力装置との間のアクセスを監視する入出力制御回路と，
監視されている前記アクセスの状態から，前記入出力装置に前記障害が発生したことを検知し，前記障害の内容に応じて前記入出力装置を前記一の状態に設定する障害検知回路
とを備え，
前記入出力制御回路は，前記入出力装置が前記閉塞状態に設定されている場合には，前記上位装置と前記入出力装置との間のアクセスを全て破棄し，前記入出力装置を前記仮閉塞状態に設定した場合には，前記上位装置と前記入出力装置との間のアクセスのうち所定の条件を満足するものを許可し，満足しないものを破棄する
コンピュータシステム。
【請求項１０】
入出力装置とシステムバスに接続されている上位装置との間のアクセスを監視する入出力制御回路と，
監視されている前記アクセスの状態から前記入出力装置に前記障害が発生したことを検知し，前記障害の内容に応じて前記入出力装置を閉塞状態と仮閉塞状態とを含む群のうちから選択された一の状態に設定する障害検知回路
とを備え，
前記入出力制御回路は，前記入出力装置が前記閉塞状態に設定されている場合には，前記上位装置と前記入出力装置との間のアクセスを全て破棄し，前記入出力装置を前記仮閉塞状態に設定した場合には，前記上位装置と前記入出力装置との間のアクセスのうち所定の条件を満足するものを許可し，満足しないものを破棄する
入出力制御装置。
【請求項１１】
請求項１０に記載の入出力制御装置であって，
更に，
ウインドウと，
ルータ
とを具備し，
前記ルータは，前記入出力装置が前記仮閉塞状態に設定されている場合，前記上位装置から前記入出力装置への第２アクセスを，前記第２アクセスに指定されているアドレスに応答して前記第２アクセスを前記ウインドウと前記入出力制御回路とのうちから選択された一方に転送するように構成され，
前記ウインドウは，前記第２アクセスを前記ルータから受け取ったとき，前記第２アクセスにアドレス変換を行って前記ルータに戻し，
前記入出力制御回路は，前記第２アクセスを前記ルータから受け取ったとき，前記第２アクセスが前記ウインドウを経由している場合には前記第２アクセスを前記入出力装置に転送し，経由していない場合には前記第２アクセスを破棄するように構成された
入出力制御装置。
【請求項１２】
請求項１０に記載の入出力制御装置であって，
前記入出力制御装置は，
更に，
ルータと，
前記入出力装置に設けられるレジスタのうちのコピー対象部分に保持されている値のコピーを保持する擬似入出力レジスタとを備え，
前記障害検知回路は，前記入出力装置に障害が発生していない場合，前記入出力装置を通常状態に設定するように構成され，
前記ルータは，前記入出力装置が通常状態に設定され，且つ，前記入出力装置の前記コピー対象部分への書き込み要求があった場合，前記書き込み要求を前記入出力装置に加えて前記擬似入出力レジスタに転送し，且つ，前記擬似入出力レジスタは，前記書き込み要求に応答して，それが保持する値を書き換えるように構成された
入出力制御装置。
【請求項１３】
上位装置と，入出力装置と，システムバスを介して前記上位装置に接続され，入出力バスを介して前記入出力装置に接続されている入出力制御装置とを具備するコンピュータシステムの動作方法であって，
前記入出力装置に障害が発生したとき，前記障害の内容に応じて前記入出力装置を閉塞状態と仮閉塞状態とを含む群のうちから選択された一の状態に設定するステップと，
前記入出力装置が前記閉塞状態に設定された場合に，前記入出力制御装置により前記上位装置と前記入出力装置との間のアクセスを全て破棄するステップと，
前記入出力装置が前記仮閉塞状態に設定され，且つ，前記上位装置と前記入出力装置との間のアクセスが，所定の条件を満足するとき，前記アクセスを前記入出力制御装置を介して通過させるステップと，
前記入出力装置が前記仮閉塞状態に設定され，前記アクセスが，前記所定の条件を満足しないとき，前記入出力制御装置により前記アクセスを破棄するステップ
とを具備する
コンピュータシステム動作方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，コンピュータシステム，入出力制御装置，及びコンピュータシステム動作方法に関し，特に，コンピュータシステムに設けられる入出力装置や入出力バスの障害に適切に対処するための技術に関する。
【背景技術】
【０００２】
高い信頼性が求められるコンピュータシステム，例えば，サーバでは，その入出力装置や入出力バスに障害が発生しても，障害がコンピュータシステムの全体の動作に波及しないことが重要である。障害の影響が波及する範囲を局所化することは，システムの破壊を防止し，更に，データ保護のために有効である。
【０００３】
障害の影響が波及する範囲を局所化するための一つの方法が，入出力装置や入出力バスに障害が発生したときに，当該入出力装置や当該入出力バスへのデータアクセスを全て拒絶する技術である。特開平８−１９４６５１号公報は，このような技術を実現するためのバスコントローラを開示している。公知のそのバスコントローラは，障害が発生したときに，入出力バスを完全に閉塞し（即ち，入出力バスの動作を停止させ），更に，障害報告線を介して上位機構（例えば，プロセッサ）に障害を報告する。これにより，当該バスコントローラは，障害が発生したときのデータ保護を実現している。
【０００４】
【特許文献１】特開平８−１９４６５１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら，この技術には，下記の２つの課題がある。第１の課題は，入出力バスが閉塞されるために，入出力装置に障害が発生したときに入出力装置へのアクセスが全くできないことである。公知のバスコントローラでは，入出力バスが閉塞されている状態で入出力装置に設けられているレジスタへのアクセスを行い，障害が発生している原因をプロセッサから調査することができない。
【０００６】
第２の課題は，入出力装置のレジスタの中にはデータ要求に応答しないと，入出力装置へのアクセスを閉塞したとしてもコンピュータシステムの全体を停止させてしまうものがある，ということである。障害が発生した場合に，入出力装置へのアクセスを単純に破棄したとしても，コンピュータシステムの動作を維持するためには充分でない。
【課題を解決するための手段】
【０００７】
上記の課題を解決するために，本発明は，以下に述べられる手段を採用する。その手段を構成する技術的事項の記述には，［特許請求の範囲］の記載と［発明を実施するための最良の形態］の記載との対応関係を明らかにするために，［発明を実施するための最良の形態］で使用される番号・符号が付加されている。但し，付加された番号・符号は，［特許請求の範囲］に記載されている発明の技術的範囲の解釈に用いてはならない。
【０００８】
本発明によるコンピュータシステム（１）は，上位装置（２，３）と，入出力装置（５）と，システムバス（６）を介して上位装置（２，３）に接続され，入出力バス（７）を介して入出力装置（５）に接続されている入出力制御装置（４）とを具備する。入出力制御装置（４）は入出力装置（５）に障害が発生したとき，その障害の内容に応じて入出力装置（５）を閉塞状態と仮閉塞状態とを含む群のうちから選択された一の状態に設定するように構成されている。更に，入出力制御装置（４）は，入出力装置（５）を閉塞状態に設定した場合には，上位装置（２，３）と入出力装置（５）との間のアクセスを全て破棄し，入出力装置（５）を仮閉塞状態に設定した場合には，上位装置（２，３）と入出力装置（５）との間のアクセスのうち所定の条件を満足するものを許可し，満足しないものを破棄するように構成されている。
【０００９】
このようなコンピュータシステムでは，入出力装置（５）に障害が発生しても，入出力装置（５）へのアクセスが可能であるため，入出力装置（５）の障害の原因を調査することが容易である。しかも，上位装置（２，３）と入出力装置（５）との間のアクセスが所定の条件を満足するものに制限されるため，該所定の条件を適切に設定することにより，データの不所望な破壊を防止することができる。これは，コンピュータシステムの全体の動作の停止を抑制するために有効である。
【００１０】
好適には，入出力制御装置（４）は，入出力装置（５）に設けられているレジスタのうちのコピー対象部分に保持されている値のコピーを保持する擬似入出力レジスタ（１６）を備えることが好ましい。この場合，入出力制御装置（４）は，入出力装置（５）に障害が発生していない場合，入出力装置（５）を通常状態に設定するように構成される。入出力制御装置（４）は，入出力装置（５）が通常状態に設定され，且つ，入出力装置（５）のコピー対象部分への書き込み要求があった場合，書き込み要求を入出力装置（５）に加えて擬似入出力レジスタ（１６）に転送するように構成され，更に，擬似入出力レジスタ（１６）は，書き込み要求に応答して，それが保持する値を書き換えるように構成される。
【００１１】
このようなコンピュータシステムでは，入出力装置（５）が閉塞状態又は仮閉塞状態に設定され，且つ，入出力装置（５）のコピー対象部分へのデータ要求があった場合に，擬似入出力レジスタ（１６）を用いてデータ要求に要求されている値を記述した応答を生成することが可能である。これは，コンピュータシステムの動作を維持するために有効である。
【発明の効果】
【００１２】
本発明によれば，入出力装置に障害が発生した場合に入出力装置へのアクセスが可能でありながら，その全体の動作の停止も抑制できるコンピュータシステムを提供することができる。
また，本発明によれば，入出力装置に障害が発生した場合に，当該入出力装置へのアクセスが破棄されても，その動作を維持することが可能なコンピュータシステムを提供することができる。
【発明を実施するための最良の形態】
【００１３】
以下，添付図面を参照しながら，本発明によるコンピュータシステムの実施の一形態が説明される。
【００１４】
第１  全体構成
図１に示されているように，本発明の実施の一形態に係るコンピュータシステム１は，プロセッサ２と，メモリ３と，入出力制御装置４と，入出力装置５（たとえば，キーボードやディスプレイ装置），と，システムバス６と，入出力バス７とを備えている。プロセッサ２及びメモリ３は，システムバス６を介して入出力制御装置４に接続されており，入出力制御装置４は，入出力バス７を介して入出力装置５に接続されている。システムバス６に接続されているプロセッサ２及びメモリ３は，以下において，「上位装置」と呼ばれることがある。入出力装置５には，その動作を制御するために使用されるレジスタ５ａが設けられている。レジスタ５ａは，最も典型的には，制御レジスタ，状態レジスタ，及びデータレジスタを含んで構成される。なお，図１では，プロセッサ２及びメモリ３がそれぞれ一つずつしか図示されていないが，これらの構成要素は，コンピュータシステム１に複数設けられ得ることに留意されたい。同様に，入出力装置５は，通常，一つの入出力制御装置４あたりに複数設けられ得ることに留意されたい。
【００１５】
入出力制御装置４は，上位装置（即ち，プロセッサ２及びメモリ３）と入出力装置５との間のアクセスを制御するためのものである。本実施の形態に係るコンピュータシステムの特徴の一つは，かかる入出力制御装置４が，入出力装置５のそれぞれを「通常状態」，「閉塞状態」，及び「仮閉塞状態」のうちから選択された所望の状態に設定可能であるように構成されていることである。「通常状態」とは，該当する入出力装置５と上位装置との間のアクセスが制限されない状態をいう。「閉塞状態」とは，該当する入出力装置５と上位装置との間のアクセスが，全く許可されない状態をいう。「仮閉塞状態」とは，該当の入出力装置５とシステムバス６に接続されている上位装置との間のアクセスが，ある条件を満足するものについては許可され，当該条件を満足しないものについては許可されない状態をいう。後述されるように，各入出力装置５が「仮閉塞状態」に設定可能であることは，不所望なデータ破壊を防止しながら障害が発生した入出力装置５の情報を取得可能にするために有用である。
【００１６】
各入出力装置５の状態は，入出力装置５及び入出力バス７における障害の発生状況に応じて選択される。好適な実施形態では，入出力装置５及び入出力バス７に何の障害も発生していない場合には，全ての入出力装置５が「通常状態」に設定される。更に，全ての入出力装置５に関わる障害，例えば，入出力バス７の異常が発生した場合には，全ての入出力装置５が「閉塞状態」に設定される。一方，入出力装置５の個々にのみ関わる障害が発生した場合には，該当する入出力装置５が「仮閉塞状態」に設定される；他の入出力装置５は「通常状態」のままである。
以下では，入出力制御装置４の構成が詳細に説明される。
【００１７】
第２  入出力制御装置の構成
入出力制御装置４は，ルータ１１と，入出力制御回路１２と，タイマー１３と，障害検出回路１４と，入出力状態レジスタ１５と，擬似入出力レジスタ１６と，ウインドウ１７とを備えている。
【００１８】
ルータ１１は，それに接続されている回路（本実施の形態では，システムバス６，入出力制御回路１２，擬似入出力レジスタ１６，及びウインドウ１７）からデータを受け取ったとき，受け取ったデータを適切な行き先に渡す機能を有している。データの行き先は，データの種類，及び入出力状態レジスタ１５の内容に応じて決定される。
【００１９】
入出力制御回路１２は，ルータ１１と入出力バス７の間でデータ転送を行うためのものである。入出力制御回路１２は，当該データ転送を監視して特定のデータ転送を破棄するように構成されている。破棄されるデータ転送は，入出力状態レジスタ１５の内容に依存している。後述されるように，このような入出力制御回路１２の機能は，「閉塞状態」及び「仮閉塞状態」の実現に重要な役割を果たしている。
【００２０】
入出力制御回路１２は，加えて，タイムアウトエラーの発生を検出する機能を有している。タイムアウトエラーの検出には，タイマー１３が使用される。入出力制御回路１２は，応答を必要とするデータ要求が当該入出力制御回路１２を通過する際，通過した時刻をタイマー１３を用いて計測し，計測された通過時刻を，それに用意されているメモリに保存する。加えて，入出力制御回路１２は，そのデータ要求に対する応答が当該入出力制御回路１２を通過する時刻をタイマー１３を用いて計測する。入出力制御回路１２は，データ要求の通過時刻の後，対応する応答が所定の時間以内に帰ってこない場合，タイムアウトエラーが発生したと判断する。
【００２１】
障害検出回路１４は，入出力制御回路１２を通過するデータ転送を監視して，入出力装置５及び入出力バス７における障害の発生を検出する。障害の発生を検知した場合，障害検出回路１４は，その障害の内容に応じて各入出力装置５を「通常状態」，「閉塞状態」及び「仮閉塞状態」のいずれに設定するかを決定する。例えば，ある入出力装置５に障害があることを検出した場合，障害検出回路１４は，当該入出力装置５を「閉塞状態」及び「仮閉塞状態」のいずれに設定するかを決定する；他の入出力装置５は，「通常状態」のままで維持される。障害検出回路１４は，障害の内容と，それに関連する入出力装置５が設定されるべき状態を設定した設定情報を保持しており，その設定情報を参照して，各入出力装置５の状態を決定する。
【００２２】
入出力状態レジスタ１５は，障害検出回路１４によって決定された各入出力装置５の状態を保持するための記憶装置である。入出力状態レジスタ１５は，各入出力装置５の状態を示すレジスタ値を保持しており，そのレジスタ値をルータ１１及び入出力制御回路１２に供給する。入出力状態情報１５ａは，ルータ１１がデータの行き先を決定するために使用され，更に，入出力制御回路１２がデータ転送を許可するか否かを判断するために使用される。
【００２３】
擬似入出力レジスタ１６は，入出力装置５に設けられているレジスタ５ａのうち，少なくとも一部分に保持されている値のコピーを保持している。レジスタ５ａのうち，その値のコピーが擬似入出力レジスタ１６に用意されている部分を，以下では，コピー対象部分という。この擬似入出力レジスタ１６は，ある入出力装置５が「閉塞状態」，又は「仮閉塞状態」に設定された時に，当該入出力装置５のレジスタ５ａに保持されている値のうち，必要な値を取得可能にするためのものである。言い換えれば，擬似入出力レジスタ１６は，システムバス６に接続されている上位装置に「閉塞状態」，又は「仮閉塞状態」に設定された入出力装置５を擬似的に認識させる役割を果たしている。これを実現するために，ある入出力装置５が「通常状態」に設定されているときに，当該入出力装置５のレジスタ５ａのコピー対象部分への書き込み要求があった時には，その書き込み要求は当該入出力装置５のみならず，ルータ１１を介して擬似入出力レジスタ１６にも転送される。擬似入出力レジスタ１６は，該書き込み要求に応じて，それが保持する値を更新する。
【００２４】
ウインドウ１７は，「仮閉塞状態」に設定されている入出力装置５へのアクセスを制御するための機能ブロックであり，小規模な回路で構成される。入出力制御回路１２は，「仮閉塞状態」に設定されている入出力装置５への要求については，ウインドウ１７を経由する要求しか許容しないように構成されている。より具体的には，ウインドウ１７は，ルータ１１を介してシステムバス６に接続されている装置から「仮閉塞状態」に設定されている入出力装置５に転送されるべき要求を受け取ると，その要求にフラグを付加してルータ１１に送り返す。ルータ１１は，その要求を入出力制御回路１２に転送する。入出力制御回路１２は，ルータ１１から受け取った要求の送信先が「仮閉塞状態」に設定されている入出力装置５である場合には，その要求に，ウインドウ１７によってフラグが付加されているかを判断する。フラグが付加されている場合には，入出力制御回路１２は，当該要求を送信先に指定されている入出力装置５に転送する。そうでない場合には，入出力制御回路１２は，当該要求を破棄する。
【００２５】
ただし，ウインドウ１７を経由するアクセスは，通常のオペレーティングシステム（operating system）やドライバには許されないようになっている；ウインドウ１７を経由するアクセスは，入出力装置５のログを採取する等の特殊用途のために使用されるシステムソフトウェアにのみ許容されている。
【００２６】
このような機能は，ウインドウ１７に特殊なアドレスを割り当て，更に，特殊用途のために使用されるシステムソフトウェアにのみ，その特殊なアドレスを指定することを許容することによって実現されている。
【００２７】
より具体的には，コンピュータシステム１の内部で使用されるアドレスは，上位アドレスと下位アドレスとで構成される。下位アドレスは，アクセスの送信先をコンピュータシステム１の構成要素のうちから指定するアドレスである。例えば，特定の入出力装置５に要求を送信する場合には，当該要求には，その入出力装置５に割り当てられたアドレスが付与される。一方，上位アドレスは，アクセスをウインドウ１７に転送するために使用される特殊なアドレスである。上位アドレスによってウインドウ１７が指定されている場合，ルータ１１は，下位アドレスに無関係にアクセスをウインドウ１７に引き渡す。ウインドウ１７は，そのアクセスを受け取ると，上位アドレスをウインドウ１７を指定しないものに書き換え，更に，上述のフラグを付加した上で，当該アクセスをルータ１１に転送する。ルータ１１は，上位アドレスが書き換えられたアクセスを下位アドレスに指定された送信先に応じて転送する。
【００２８】
加えて，コンピュータシステム１の上位アドレスによってウインドウ１７を指定することは，特殊用途のために使用されるシステムソフトウェアにのみ許容されている；通常のオペレーティングシステムやドライバでは，上位アドレスによってウインドウ１７を指定することは許されない。このようなアドレス割り当てを使用することにより，特殊用途のために使用されるシステムソフトウェアにのみウインドウ１７を経由するアクセスを許容することができる。
【００２９】
第３  コンピュータシステムの動作
上述のように，コンピュータシステム１は，入出力装置５及び入出力バス７の障害の発生の有無を監視し，更に，発生した障害の内容に応じて入出力装置５の状態を設定するように構成されている。以下では，障害の検出と入出力装置５の状態の設定のための動作手順が説明される。
【００３０】
システムバス６に接続された上位装置（例えば，プロセッサ２）から入出力装置５にデータアクセスの要求があると，アクセスの種類と，そのアクセスの送信先である入出力装置５を識別する情報と，その要求があった時刻（即ち，上述の通過時刻）とが，入出力制御回路１２の内部に記録される。通過時刻は，タイマー１３を用いて計測される。
【００３１】
このアクセスに対する応答が不正であることを障害検出回路１４が検出した場合，障害検出回路１４は，そのアクセスの送信先である入出力装置５に障害が発生したと判断する。例えば，タイマー１３を用いた計測により，該アクセスに対する応答が入出力制御回路１２に，一定時間以内に帰ってこなかったことが検出された場合，障害検出回路１４は，当該入出力装置５に障害が発生したと判断する。
【００３２】
続いて障害検出回路１４は，発生した障害の内容に応じて，入出力装置５を「閉塞状態」又は「仮閉塞状態」の何れかに設定する。発生した障害が当該入出力装置５の個別の異常に起因すると判断した場合，障害検出回路１４は，当該入出力装置５を「仮閉塞状態」に設定し，一方，発生した障害が全ての入出力装置５に関わる異常，例えば，入出力バス７の障害に起因すると判断した場合，障害検出回路１４は，全ての入出力装置５を「閉塞状態」に設定する。更に障害検出回路１４は，入出力状態レジスタ１５に保持されているレジスタ値を、更新された入出力装置５の状態に対応するように書き換える。
【００３３】
ある入出力装置５が「仮閉塞状態」に設定されると，その入出力装置５とシステムバス６に接続されている上位装置との間のデータ転送が，入出力制御回路１２の動作によって一部制限される。これは，障害が発生している入出力装置５が，不正なデータ要求を行い，このデータ要求によって，コンピュータシステム１が破壊されることを防止するためである。例えば，不正なデータ要求により，メモリ３に保存されているデータが破壊されることは防止されなくてはならない。このため，「仮閉塞状態」に設定された入出力装置５は，コンピュータシステム１全体の障害を生じさせ得るようなデータ転送を行うことを許可されない。このようなデータ転送が要求された場合，入出力制御回路１２は，そのデータ転送を破棄する。
【００３４】
より具体的には，入出力制御回路１２は，ある入出力装置５が「仮閉塞状態」に設定されていることを入出力状態レジスタ１５のレジスタ値から認識すると，当該入出力装置５から上位装置へのアクセス（即ち、要求及び応答）のうち、書き込み要求を全て破棄する。書き込み要求が破棄された場合，入出力制御回路１２は，その書き込み要求の送信元にエラーを返す。一方，入出力装置５から上位装置への読み出し要求，及び応答については，入出力制御回路１２は，これらをルータ１１を介して上位装置に転送する。これは，読み出し要求，及び応答は，コンピュータシステム１を破壊させることがないからである。
【００３５】
加えて，上位装置から入出力装置５へのアクセス（即ち、要求及び応答）については，入出力制御回路１２は，下記のように対処する。入出力制御回路１２は，応答をそのまま通過させる。一方，要求については，入出力制御回路１２は，一度ウインドウ１７を経由したものでないと通過させない。要求がウインドウ１７を経由したものであるか否かの判断は，当該要求に，ウインドウ１７によって付加されるフラグによって行われる。入出力制御回路１２は，要求にフラグが付加されている場合，当該要求がウインドウ１７を経由したものであると判断し，その要求を送信先の入出力装置５に転送する。要求にフラグが付加されていない場合，入出力制御回路１２は，当該要求を破棄し，更に，その要求の送信元にエラーを返す。
【００３６】
上述されているように，ウインドウ１７を経由する要求を発行することは，例えば，入出力装置５のログの採取等のような特殊用途のシステムソフトウェアにのみ許されていることに留意されたい；通常のオペレーティングシステムやドライバでは，ウインドウ１７を経由する要求を発行することは許容されていない。したがって，通常のオペレーティングシステムやドライバは，「仮閉塞状態」の入出力装置５（言い換えれば，障害が発生している入出力装置５）に要求を送信することはできない。このような機構は，コンピュータシステム１の保護のために有用である。
【００３７】
図２，図３は，プロセッサ２から「仮閉塞状態」に設定されている入出力装置５を送信先とする要求が送信されたときの，コンピュータシステム１の動作を示すタイムチャートである。図２は，ウインドウ１７を経由しないような読み出し要求が送信されたとき（即ち，通常のオペレーティングシステムやドライバにより，入出力装置５を送信先とする要求が送信されたとき）の動作であり，図３は，ウインドウ１７を経由するような読み出し要求が発行されたときの動作である。
【００３８】
図２に示されているように，ウインドウ１７を経由しないような読み出し要求が送信され（ステップＳ０１），ルータ１１を介して入出力制御回路１２に到達すると（ステップＳ０２），その読み出し要求は，入出力制御回路１２によって破棄される。読み出し要求を破棄した後，入出力制御回路１２は，読み出し要求の送信元であるプロセッサ２を送信先とするエラー応答を発行する（ステップＳ０３）。エラー応答は，ルータ１１を介してプロセッサ２に転送される（ステップＳ０４）。
【００３９】
一方，ウインドウ１７を経由するような読み出し要求（即ち，上位アドレスでウインドウ１７を指定する読み出し要求）がプロセッサ２によって発行されると（ステップＳ１１），ルータ１１は，その読み出し要求をウインドウ１７に転送する（ステップＳ１２）。ウインドウ１７は，その読み出し要求の上位アドレスを，ウインドウ１７を指定しない上位アドレスに変換し，更に，フラグを付加して，ルータ１１に送り返す（ステップＳ１３）。ルータ１１は，フラグが付加された読み出し要求を入出力制御回路１２に転送する（ステップＳ１４）。入出力制御回路１２は，その読み出し要求を通過させ，入出力バス７を介して送信先の入出力装置５に転送する（ステップＳ１５）。送信先の入出力装置５は，当該読み出し要求に対する応答を，プロセッサ２を送信先として発行する（ステップＳ１６）。その応答は，入出力制御回路１２，及びルータ１１を介して，プロセッサ２に返される（ステップＳ１７，１８）。入出力制御回路１２は，入出力装置５からシステムバス６に接続されている上位装置への応答を，そのまま通過させるように設計されていることに留意されたい。
【００４０】
入出力装置５の障害の程度によっては，読み出し要求を入出力バス７に出力した後，当該読み出し要求に対する応答が帰ってこない場合もあり得る。この場合，障害検出回路１４は，当該入出力装置５に致命的な障害が発生したと判断し，当該入出力装置５を「閉塞状態」に設定する。入出力装置５が「閉塞状態」に設定された後は，入出力制御回路１２は，当該入出力装置５へのアクセスを全て破棄する。
【００４１】
「閉塞状態」，「仮閉塞状態」に設定されている入出力装置５を，「通常状態」に設定し直す手段としては，典型的には，コンピュータシステム１のリセットが利用され得る。コンピュータシステム１がリセットされると，全ての入出力装置５が「通常状態」に設定される。
【００４２】
ある入出力装置５が「仮閉塞状態」及び「閉塞状態」に設定された後におけるコンピュータシステム１の動作を維持するために，入出力装置５のレジスタ５ａのコピー対象部分へのアクセスがあった場合，そのアクセスは，擬似入出力レジスタ１６に転送される。上述のとおり，擬似入出力レジスタ１６は，レジスタ５ａのコピー対象部分のコピーを保持していることに留意されたい。システムバス６に接続されている上位装置から「仮閉塞状態」及び「閉塞状態」に設定された入出力装置５に，レジスタ５ａのコピー対象部分についてのデータ要求があった場合，ルータ１１は，入出力状態レジスタ１５のレジスタ値から，当該データ要求の送信先の入出力装置５が「仮閉塞状態」及び「閉塞状態」に設定されていることを検知する。送信先の入出力装置５が「仮閉塞状態」及び「閉塞状態」に設定されていることを検知すると，ルータ１１は，その入出力装置５へのデータ要求を，入出力制御回路１２には転送せずに擬似入出力レジスタ１６に転送する。擬似入出力レジスタ１６は，送信先として指定されている入出力装置５の代わりに，当該データ要求に要求されている値を記述した応答を生成し，ルータ１１を介して当該データ要求の送信元の上位装置に送信する。
【００４３】
このような動作は，応答しないとコンピュータシステム１の全体を停止させてしまうような入出力装置５へのデータ要求があったときに，当該入出力装置５に代わって擬似入出力レジスタ１６が応答することを可能にする。これは，入出力装置５の障害によってコンピュータシステム１の全体を停止させる事態が発生することを有効に抑制する。
【００４４】
本実施の形態において，「仮閉塞状態」として複数の状態が定義されることは，コンピュータシステム１の運用をより柔軟にできる点で好適である。この場合，入出力装置５の障害の程度に応じて，複数の「仮閉塞状態」から選択された「仮閉塞状態」が，入出力装置５に設定され得る。例えば，「第１の仮閉塞状態」が，システムバス６に接続されている上位装置からの入出力装置５への応答を通常状態と同様に許可し，且つ，応答を全く許可しない状態と定義され，「第２の仮閉塞状態」が，上位装置から入出力装置５への読み出し要求のみを許可する状態と定義されることが可能である。
【図面の簡単な説明】
【００４５】
【図１】図１は，本発明の実施の一形態に係るコンピュータシステムのブロック図である。
【図２】図２は，読み出し要求がウインドウを経由しない場合のコンピュータシステムの動作を示すタイムチャートである。
【図３】図３は，読み出し要求がウインドウを経由する場合のコンピュータシステムの動作を示すタイムチャートである。
【符号の説明】
【００４６】
１：コンピュータシステム
２：プロセッサ
３：メモリ
４：入出力制御装置
５：入出力装置
５ａ：レジスタ
６：システムバス
７：入出力バス
１１：ルータ
１２：入出力制御回路
１３：タイマー
１４：障害検出回路
１５：入出力状態レジスタ
１６：擬似入出力レジスタ
１７：ウインドウ
【図１】
2006172326.tif 000003
【図２】
2006172326.tif 000004
【図３】
2006172326.tif 000005