(57)【要約】【課題】障害発生時に障害情報を他の装置へ転送する専用の通信路、及び、障害発生時に障害情報を下位装置側に一旦保持する専用のメモリのいずれも設ける必要がなく、かつ、障害発生時における通信用のバッファの内容を保持できるようにする。【解決手段】装置が、通信データをバッファするバッファメモリを備えた通信部と、障害を検知する障害検知部と、前記障害検知部が障害を検知した場合、前記通信部を制御して、障害検知時に使用していた前記バッファメモリを使用せずに通信を行わせる、通信制御部と、を備える。【選択図】図１
2018112825.tif 000002
【特許請求の範囲】
【請求項１】
通信データをバッファするバッファメモリを備えた通信部と、
障害を検知する障害検知部と、
前記障害検知部が障害を検知した場合、前記通信部を制御して、障害検知時に使用していた前記バッファメモリを使用せずに通信を行わせる、通信制御部と、
を備える装置。
【請求項２】
前記通信部は、前記バッファメモリと並列に設けられたバイパス経路を備え、
前記通信制御部は、前記障害検知部が障害を検知した場合、前記通信部を制御して、前記バイパス経路を用いて通信を行わせる、
請求項１に記載の装置。
【請求項３】
前記通信部は、複数の前記バッファメモリを備え、
前記通信制御部は、前記障害検知部が障害を検知した場合、前記通信部を制御して、障害検知時に使用していたバッファメモリ以外のバッファメモリを用いて通信を行わせる、
請求項１に記載の装置。
【請求項４】
障害が検知された場合、通信データをバッファするバッファメモリを備えた通信部を制御して、障害検知時に使用していた前記バッファメモリを使用せずに通信を行わせる、通信制御装置。
【請求項５】
上位装置と下位装置とを備え、
前記下位装置は、
通信データをバッファするバッファメモリを備えて前記上位装置と通信を行う通信部と、
障害を検知する障害検知部と、
前記障害検知部が障害を検知した場合、前記通信部を制御して、障害検知時に使用していた前記バッファメモリを使用せずに通信を行わせる、通信制御部と、
を備える情報処理システム。
【請求項６】
障害を検知する障害検知ステップと、
前記障害検知ステップで障害を検知した場合、通信データをバッファするバッファメモリを備えた通信部を制御して、障害検知時に使用していた前記バッファメモリを使用せずに通信を行わせる、通信制御ステップと、
を含む通信制御方法。
【請求項７】
通信データをバッファするバッファメモリを備えた通信部を制御するコンピュータに、
障害を検知する障害検知ステップと、
前記障害検知ステップで障害を検知した場合、前記通信部を制御して、障害検知時に使用していた前記バッファメモリを使用せずに通信を行わせる、通信制御ステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置、通信制御装置、情報処理システム、通信制御方法及びプログラムに関する。
【背景技術】
【０００２】
上位装置と下位装置とがデータ転送経路によって接続された情報処理システムにおいて、データ転送経路または下位装置に障害が発生した場合、障害の原因及び復旧手段を解析するための情報を上位装置側に集約できることが好ましい。
このような故障時の情報の集約に関連して、障害発生時に障害情報を他の装置へ転送するために専用の通信路を設けておく技術がある。
【０００３】
例えば、特許文献１には、障害発生を検知した場合に監視対象装置からログ情報を採取して記憶装置に格納するための技術が記載されている。特許文献１に記載の技術では、監視対象のデバイスが、高速ＩＦ（Interface）によってＣＰＵに接続されて、さらに、低速ＩＦによってＦＰＧＡ（Field-Programmable Gate Array）に接続されている。また、ＦＰＧＡは不揮発性メモリに接続されている。
この構成で高速ＩＦ上に障害が発生した場合、ＦＰＧＡは、低速ＩＦを経由してデバイスからログ情報を取得し、不揮発性メモリに格納する。
また、特許文献２には、ＰＣＩ（Peripheral Component Interconnect）バスコントローラ内のサービスプロセッサ用ログ収集部が、専用線で外部のサービスプロセッサと接続された形態が記載されている。
【０００４】
また、障害発生時に障害情報を下位装置側に一旦保持し、復旧後に障害情報を上位装置側に転送する技術がある。
例えば、上述した特許文献２には、ログ収集部がログバッファを備える形態が開示されている。この形態で、障害発生時には入出力バスのリセットが抑止され、ログ収集部がログ情報を収集してログバッファに退避する。
【０００５】
また、特許文献３には、障害発生時に障害情報を退避するための記憶装置を具備したリモートチャネル装置が記載されている。このリモートチャネル装置は、障害情報の退避後に上位装置からリセット信号を受信すると、リモートチャネル装置内のハードウェアのうち記憶装置を除くハードウェアを初期化する。そして、リモートチャネル装置は、初期化完了後に、上位装置の指示に従って、障害情報を通常のデータ転送経路を用いて上位装置に転送する。
【０００６】
また、障害発生時に収集した障害情報を、通常時の通信用のバッファに一旦保持し、復旧後に障害情報を上位装置側に転送する技術がある。
例えば、特許文献４には、チャネル制御装置が、チャネル制御装置内のデータバッファに障害情報を書き込み、復旧後に障害情報を主記憶装置に転送する技術が記載されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１５−１６２０００号公報
【特許文献２】特許第５１５１５８０号公報
【特許文献３】特開平０４−０００６４９号公報
【特許文献４】特開平１０−０２７１１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
上述した、障害発生時に障害情報を他の装置へ転送するために専用の通信路を設けておく技術では、この通信路専用の通信回路を設ける必要がある。この技術ではこの点で、装置のハードウェア構成が複雑になり、装置の製造コストが高くなってしまう。
また、障害発生時に障害情報を下位装置側の障害情報専用のメモリに一旦保持し、復旧後に障害情報を上位装置側に転送する技術では、下位装置側に障害情報を一旦保持するメモリを設ける必要がある。この技術ではこの点で、下位装置に必要なメモリ容量が大きくなり、下位装置の製造コストが高くなってしまう。
【０００９】
また、障害発生時に収集した障害情報を、通常時の通信用のバッファに一旦保持し、復旧後に障害情報を上位装置側に転送する技術では、通信用のバッファに障害情報が書き込まれることで、障害発生時における通信用のバッファの内容が書き潰される。障害発生直前の通信状況は障害の原因や復旧手段を解析するのに有用であるのに対し、この技術では、障害発生直前の通信状況の情報が失われる可能性がある。
【００１０】
本発明は、上述の課題を解決することのできる装置、通信制御装置、情報処理システム、通信制御方法及びプログラムを提供することを目的としている。
【課題を解決するための手段】
【００１１】
本発明の第１の態様によれば、装置は、通信データをバッファするバッファメモリを備えた通信部と、障害を検知する障害検知部と、前記障害検知部が障害を検知した場合、前記通信部を制御して、障害検知時に使用していた前記バッファメモリを使用せずに通信を行わせる、通信制御部と、を備える。
【００１２】
本発明の第２の態様によれば、通信制御装置は、障害が検知された場合、通信データをバッファするバッファメモリを備えた通信部を制御して、障害検知時に使用していた前記バッファメモリを使用せずに通信を行わせる。
【００１３】
本発明の第３の態様によれば、情報処理システムは、上位装置と下位装置とを備え、前記下位装置は、通信データをバッファするバッファメモリを備えて前記上位装置と通信を行う通信部と、障害を検知する障害検知部と、前記障害検知部が障害を検知した場合、前記通信部を制御して、障害検知時に使用していた前記バッファメモリを使用せずに通信を行わせる、通信制御部と、を備える。
【００１４】
本発明の第４の態様によれば、通信制御方法は、障害を検知する障害検知ステップと、前記障害検知ステップで障害を検知した場合、通信データをバッファするバッファメモリを備えた通信部を制御して、障害検知時に使用していた前記バッファメモリを使用せずに通信を行わせる、通信制御ステップと、を含む。
【００１５】
本発明の第５の態様によれば、プログラムは、通信データをバッファするバッファメモリを備えた通信部を制御するコンピュータに、障害を検知する障害検知ステップと、前記障害検知ステップで障害を検知した場合、前記通信部を制御して、障害検知時に使用していた前記バッファメモリを使用せずに通信を行わせる、通信制御ステップと、を実行させるためのプログラムである。
【発明の効果】
【００１６】
この発明によれば、障害発生時に障害情報を他の装置へ転送する専用の通信路、及び、障害発生時に障害情報を下位装置側に一旦保持する専用のメモリのいずれも設ける必要がなく、かつ、障害発生時における通信用のバッファの内容を保持することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明の第一実施形態に係る情報処理システムの機能構成を示す概略ブロック図である。
【図２】第一実施形態の下位装置から上位装置へ障害情報を送信する処理の流れの例を示す図である。
【図３】通常時の通信路に加えて障害発生時に障害情報を送信する通信路を備える情報処理システムの機能構成例を示す概略ブロック図である。
【図４】障害情報用のバッファメモリを備える情報処理システムの機能構成例を示す概略ブロック図である。
【図５】送信バッファメモリに障害情報を保持する情報処理システムの機能構成例を示す概略ブロック図である。
【図６】本発明の第二実施形態に係る情報処理システムの機能構成を示す概略ブロック図である。
【図７】第二実施形態の下位装置から上位装置へ障害情報を送信する処理の流れの例を示す図である。
【図８】少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。
【図９】本発明に係る装置の最小構成の例を示す図である。
【図１０】本発明に係る通信制御装置の最小構成の例を示す図である。
【図１１】本発明に係る情報処理システムの最小構成の例を示す図である。
【発明を実施するための形態】
【００１８】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１９】
＜第一実施形態＞
図１は、本発明の第一実施形態に係る情報処理システムの機能構成を示す概略ブロック図である。図１に示すように、情報処理システム１は、上位装置１００と、下位装置２００とを備える。下位装置２００は、デバイス機能部２１０と、デバイス入出力部３００とを備える。デバイス入出力部３００は、受信部３１０と、送信部３２０と、受信制御部３３０と、送信制御部３４０と、障害検知部３５０と、障害フラグメモリ３６０と、障害表示部３７０と、障害情報収集回路３８０とを備える。受信部３１０は、受信バッファメモリ３１１と、受信側バイパス回路３１２とを備える。送信部３２０は、送信バッファメモリ３２１と、送信側バイパス回路３２２とを備える。上位装置１００と下位装置２００とは、データ受信路Ｗ１１及びデータ送信路Ｗ２１を介して通信接続される。
【００２０】
情報処理システム１は、情報処理を行うシステムである。ここでいう情報処理は、特定の処理に限定されない。例えば、情報処理システム１は、汎用のコンピュータシステムであってもよいし、画像処理システムであってもよい。
上位装置１００は、下位装置２００と通信して情報処理を実行する。例えば情報処理システム１がコンピュータシステムである場合、上位装置１００はコンピュータ装置本体であってもよい。
【００２１】
障害発生時には、上位装置１００は障害情報を集約する。特に、上位装置１００は、障害発生時に下位装置２００から障害情報を受信する。ここでいう障害情報は、障害の解析を行う際に用いられる情報である。例えば、障害情報が、障害発生個所を示す情報、障害の種類を示す情報、及び、障害時の各部の状態を示す情報のうちの一部又は全部を含んでいてもよい。また、障害情報がエラーログのように時刻に対応付けられて時系列情報に構成されていてもよい。特に、後述するように情報処理システム１における障害情報は、障害発生時における下位装置２００の受信バッファメモリ３１１、送信バッファメモリ３２１それぞれの内容情報を含む。
【００２２】
下位装置２００は、上位装置１００と通信を行う。例えば情報処理システム１がコンピュータシステムである場合、上位装置１００は周辺機器であってもよい。下位装置２００は、本発明における装置の例に該当する。
なお、１つの上位装置１００に接続される下位装置２００の数は１つ以上であればよい。従って、１つ上位装置１００に複数の下位装置２００が接続されていてもよい。
【００２３】
デバイス機能部２１０は、上位装置１００に提供するための機能を実行する。例えば、下位装置２００が外部記憶装置である場合、デバイス機能部２１０は、上位装置１００からの命令に従ってデータの記憶、更新、読み出し及び削除を行う。但し、デバイス機能部２１０が実行する機能は特定の機能に限定されない。
デバイス入出力部３００は、上位装置１００と通信を行う。特に、デバイス入出力部３００は、上位装置１００が送信したデバイス機能部２１０への入力データと受信してデバイス機能部２１０へ供給する。また、デバイス入出力部３００は、デバイス機能部２１０からの出力データを取得して上位装置１００へ送信する。
【００２４】
また、デバイス入出力部３００は、情報処理システム１に障害が発生したことを検知した場合、障害情報を収集して上位装置１００へ送信する。デバイス入出力部３００が、下位装置２００、データ受信路Ｗ１１、及びデータ送信路Ｗ２１のうちいずれか１つ以上に障害が発生したことを検知した場合のみ、障害情報を上位装置１００へ送信するようにしてもよい。あるいは、下位装置２００が、上位装置１００に障害が発生したことを検知した場合にも、障害情報を上位装置１００へ送信するようにしてもよい。
【００２５】
受信部３１０は、データ受信路Ｗ１１を介して上位装置１００と接続されており、上位装置１００がデータ受信路Ｗ１１を介して送信したデータを受信制御部３３０の制御に従って受信する。受信部３１０は、本発明における通信部の例に該当する。
受信バッファメモリ３１１は、受信部３１０が受信したデータを受信制御部３３０の制御に従ってバッファする。すなわち、受信バッファメモリ３１１は、受信部３１０が受信したデータを一時的に記憶する。受信バッファメモリ３１１は、本発明におけるバッファメモリの例に該当する。
【００２６】
通常動作において、受信部３１０は、データ受信路Ｗ１１を介して上位装置１００から受信したデータを受信バッファメモリ３１１に格納（バッファ）する。そして受信部３１０は、受信バッファメモリ３１１に格納したデータをＦＩＦＯ（First In, First Out）で読み出し、読み出したデータに対して誤り訂正及びデコードを行った後、デバイス機能部２１０へ出力する。
【００２７】
受信側バイパス回路３１２は、受信部３１０が受信したデータを、受信バッファメモリ３１１に格納せずに受信部３１０からデバイス機能部２１０へ直接出力させる。かかる機能を実現するために、受信側バイパス回路３１２は、受信バッファメモリ３１１と並列に設けられた受信側バイパス経路Ｗ１２を構成している。
障害発生時に受信側バイパス回路３１２が受信部３１０の受信データを受信バッファメモリ３１１に格納せずに直接デバイス機能部２１０へ出力させることで、障害発生時の受信バッファメモリ３１１の内容を保持することができる。
【００２８】
送信部３２０は、データ送信路Ｗ２１を介して上位装置１００と接続されており、送信制御部３４０の制御に従ってデータ送信路Ｗ２１を介して上位装置１００へデータを送信する。送信部３２０は、本発明における通信部の例に該当する。
送信バッファメモリ３２１は、送信部３２０が送信するデータを送信制御部３４０の制御に従ってバッファする。すなわち、送信バッファメモリ３２１は、送信部３２０が送信するデータを一時的に記憶する。送信バッファメモリ３２１は、本発明におけるバッファメモリの例に該当する。
なお、受信部３１０と送信部３２０とがハードウェア上で一体的に構成されていてもよいし、別々に構成されていてもよい。また、受信制御部３３０及び送信制御部３４０のうちいずれか一方または両方が通信制御装置として構成されていてもよい。
【００２９】
通常動作において、送信部３２０は、上位装置１００へ送信するデータを送信バッファメモリ３２１に格納（バッファ）する。そして送信部３２０は、送信バッファメモリ３２１に格納したデータをＦＩＦＯで読み出し、読み出したデータをパケットとして整形した後、データ送信路Ｗ２１を介して上位装置１００へ送信する。
【００３０】
通常動作では受信部３１０は、データを受信バッファメモリ３１１に保持することができるため、上位装置１００と下位装置２００との間で複数の要求を処理することができる。例えば受信バッファメモリ３１１が１０個のリクエストを保持できるように構成されている場合、上位装置１００は、１０個のリクエストを連続して送信し、各リクエストに対するリプライを待つことができる。
【００３１】
このように、通常時には上位装置１００は、リクエストに対するリプライを待たずに次のリクエストを送信することができる。受信バッファメモリ３１１及び送信バッファメモリ３２１を用いる通常動作では、複数のリクエスト及びリプライが短時間のうちに纏めて送信される点で、データ受信路Ｗ１１及びデータ送信路Ｗ２１の利用効率が高く、デバイス入出力部３００の通信性能が高い。
【００３２】
送信側バイパス回路３２２は、送信部３２０が送信するデータを、送信バッファメモリ３２１に格納せずに送信部３２０に直接送信させる。かかる機能を実現するために、送信側バイパス回路３２２は、送信バッファメモリ３２１と並列に設けられた送信側バイパス経路Ｗ２２を構成している。
障害発生時に送信側バイパス回路３２２が障害情報を送信バッファメモリ３２１に格納せずに送信部３２０に直接送信させることで、障害発生時の送信バッファメモリ３２１の内容を保持することができる。
【００３３】
受信制御部３３０は、受信部３１０を制御して上位装置１００からのデータを受信させ、受信したデータをデバイス機能部２１０へ出力させる。
特に、受信制御部３３０は、障害検知部３５０が障害を検知した場合、受信部３１０を制御して、受信バッファメモリ３１１を使用せずに受信データを処理させる。この場合の受信バッファメモリ３１１は、障害検知時に使用していたバッファメモリの例に該当する。
【００３４】
第一実施形態では、受信制御部３３０は、障害検知部３５０が障害を検知した場合、受信部３１０を制御して、受信データを受信側バイパス経路Ｗ１２を用いてデバイス機能部２１０へ出力させる。
これにより、上述したように障害発生時の受信バッファメモリ３１１の内容を保持することができる。
【００３５】
送信制御部３４０は、送信部３２０を制御して上位装置１００へデータを送信させる。
特に、送信制御部３４０は、障害検知部３５０が障害を検知した場合、送信部３２０を制御して、送信バッファメモリ３２１を使用せずにデータを送信させる。この場合の送信バッファメモリ３２１は、障害検知時に使用していたバッファメモリの例に該当する。
【００３６】
第一実施形態では、送信制御部３４０は、障害検知部３５０が障害を検知した場合、送信部３２０を制御して、送信側バイパス経路Ｗ２２を用いてデータを上位装置１００へ送信させる。
これにより、上述したように障害発生時の送信バッファメモリ３２１の内容を保持することができる。
【００３７】
障害検知部３５０は、障害を検知する。例えば、障害検知部３５０は、下位装置２００内の各種制御レジスタ及びバッファに接続されており、これらレジスタ及びバッファからデータを読み出す。障害検知部３５０は、読み出したデータを診断アルゴリズムに適用して障害発生を示しているか否かを判定することで、下位装置２００のいずれかの部分、データ受信路Ｗ１１又はデータ送信路Ｗ２１に発生した障害を検知する。
また、上位装置１００が障害を検知した場合は、上位装置１００がデータ受信路Ｗ１１及びデータ送信路Ｗ２１を一時的に遮断する。この遮断によって障害検知部３５０が障害を検知する。
【００３８】
障害フラグメモリ３６０は、障害発生の有無を示す障害フラグを格納する。具体的には障害検知部３５０は、障害発生を検知した場合、障害フラグメモリ３６０の値を、障害有りを示す値（例えば、ビットデータの「１」）に設定する。また、障害検知部３５０は、障害からの復旧を検知した場合、障害フラグメモリ３６０の値を、障害無しを示す値（例えば、ビットデータの「０」）に設定する。
【００３９】
障害表示部３７０は、障害の有無を表示する。例えば障害表示部３７０は発光ダイオード等のランプを備える。そして、障害表示部３７０は、障害フラグメモリ３６０の値が障害有りを示す場合にランプを点灯させる。また、障害表示部３７０は、障害フラグメモリ３６０の値が障害無しを示す場合にランプを消灯させる。
【００４０】
障害情報収集回路３８０は、障害情報を収集する。例えば、障害情報収集回路３８０は、下位装置２００内の各種制御レジスタ及びバッファに接続されており、これらレジスタ及びバッファからデータを読み出す。障害検知部３５０が障害発生を検知した場合、障害情報収集回路３８０は、レジスタ及びバッファから読み出したデータを纏めたエラーログを生成し出力する。
【００４１】
障害表示部３７０と障害情報収集回路３８０とがハードウェア上で一体に構成されていてもよいし、別々に構成されていてもよい。
障害情報収集回路３８０、障害検知部３５０、障害フラグメモリ３６０及び障害表示部３７０のうち全部又は一部が、デバイス入出力部３００の外部に設けられていてもよい。例えば、これらのうち全部又は一部がデバイス機能部２１０に設けられていてもよい。
【００４２】
次に、図２を参照して情報処理システム１の動作について説明する。
図２は、第一実施形態の下位装置２００から上位装置１００へ障害情報を送信する処理の流れの例を示す図である。
図２に示す処理で、正常時には下位装置２００の受信部３１０及び送信部３２０は、受信バッファメモリ３１１及び送信バッファメモリ３２１を用いる正常動作による送受信を行う（シーケンスＳ１０１）。
【００４３】
一方、下位装置２００の障害検知部３５０が障害発生を検知すると（シーケンスＳ１１１）、障害検知部３５０は、障害フラグをセットする（シーケンスＳ１１２）。ここでいう障害フラグのセットは、障害フラグメモリ３６０の値を障害有りを示す値に更新することである。
障害フラグのセットにより、障害表示部３７０が障害有りを表示する。例えば、障害表示部３７０は、障害の有無を示すランプを点灯させることで障害有りの表示を行う。
なお、上位装置１００が障害を検知した場合は、上記のように上位装置１００がデータ受信路Ｗ１１及びデータ送信路Ｗ２１を一時的に遮断する。この遮断によって障害検知部３５０が障害を検知する。
【００４４】
また、障害フラグがセットされている場合、受信制御部３３０は、受信部３１０が受信バッファメモリ３１１の使用を停止し、受信側バイパス経路Ｗ１２を用いて送信を行うように制御する。また、障害フラグがセットされている場合、送信制御部３４０は、送信部３２０が送信バッファメモリ３２１の使用を停止し、送信側バイパス経路Ｗ２２を用いて送信を行うように制御する。これによって、受信バッファメモリ３１１、送信バッファメモリ３２１のいずれの内容も障害発生時の状態のまま保持される。
【００４５】
また、受信制御部３３０及び送信制御部３４０は、受信部３１０及び送信部３２０を一旦停止させ、データ受信路Ｗ１１及びデータ送信路Ｗ２１を一旦遮断する（シーケンスＳ１１３）。
その後、上位装置１００と下位装置２００とが再び通信接続し、下位装置２００が上位装置１００へ障害情報を送信する（シーケンスＳ１２０）。
具体的には、上位装置１００がデータ受信路Ｗ１１及びデータ送信路Ｗ２１をリセットし、下位装置２００に再接続する（シーケンスＳ１２１）。
【００４６】
上位装置１００と下位装置２００とが再接続されると、下位装置２００が受信バッファメモリ３１１の記憶しているデータを読み出して上位装置１００へ送信する（シーケンスＳ１２２）。具体的には、上位装置１００は、デバイスドライバの指示に従って、受信バッファメモリ３１１の読み出しリクエストをデータ受信路Ｗ１１を介して下位装置２００へ送信する。受信バッファメモリ３１１の読み出しリクエストは、障害情報の読み出しリクエストの１つに該当する。
下位装置２００では、受信部３１０が上位装置１００からのリクエストを受信する。障害フラグメモリ３６０の値が障害有りを示しているため、受信部３１０は、受信側バイパス経路Ｗ１２を用いてリクエストを受信する。これにより、受信部３１０は、受信バッファメモリ３１１内のデータを上書きすることなくリクエストを受信する。
【００４７】
ここでのリクエスト情報は受信バッファメモリ３１１の読み出しリクエストであるため、受信部３１０は、リクエストを障害情報収集回路３８０へ出力する。障害情報収集回路３８０は、このリクエストに従ってパス診断経路を介して受信バッファメモリ３１１からデータを読み出し、リプライパケットに整形して送信部３２０へ出力する。送信部３２０は、障害情報収集回路３８０から入力されたリプライパケットを上位装置１００へ送信する。障害フラグメモリ３６０の値が障害有りを示しているため、送信部３２０は、送信側バイパス経路Ｗ２２を用いてリプライパケットを送信する。これにより、送信部３２０は、送信バッファメモリ３２１内のデータを上書きすることなくリプライパケットを送信する。
下位装置２００は、このリプライパケットによって受信バッファメモリ３１１の保持データを、データ送信路Ｗ２１を介して上位装置１００側へ送信する。
【００４８】
次に、下位装置２００が送信バッファメモリ３２１の記憶しているデータを読み出して上位装置１００へ送信する（シーケンスＳ１２３）。具体的には、上位装置１００上で動作するデバイスドライバは、リプライパケットを受け取ると送信側バイパス経路Ｗ２２の読み出しリクエストを送出する。送信側バイパス経路Ｗ２２の読み出しリクエストは、障害情報の読み出しリクエストの例に該当する。
下位装置２００では、受信部３１０が上位装置１００からのリクエストを受信する。障害フラグメモリ３６０の値が障害有りを示しているため、受信部３１０は、受信側バイパス経路Ｗ１２を用いてリクエストを受信する。
【００４９】
ここでのリクエスト情報は送信バッファメモリ３２１の読み出しリクエストであるため、受信部３１０は、リクエストを障害情報収集回路３８０へ出力する。障害情報収集回路３８０は、このリクエストに従ってパス診断経路を介して送信バッファメモリ３２１からデータを読み出し、リプライパケットに整形して送信部３２０へ出力する。送信部３２０は、障害情報収集回路３８０から入力されたリプライパケットを上位装置１００へ送信する。障害フラグメモリ３６０の値が障害有りを示しているため、送信部３２０は、送信側バイパス経路Ｗ２２を用いてリプライパケットを送信する。
下位装置２００は、このリプライパケットによって送信バッファメモリ３２１の保持データを、データ送信路Ｗ２１を介して上位装置１００側へ送信する。
情報処理システム１は、このようにして受信バッファメモリ３１１の保持データと、送信バッファメモリ３２１の保持データとを、上位装置１００側に退避することができる。
【００５０】
上記のような受信側バイパス経路Ｗ１２及び送信側バイパス経路Ｗ２２を経由したデータ転送では、リクエスト又はリプライを保持するための受信バッファメモリ３１１又は送信バッファメモリ３２１を利用しない。このため、上位装置１００が、リクエストに対するリプライを受信した後に次のリクエストを送信するというように、リクエストを逐次的に送信する必要がある。下位装置２００は、一度に一つずつしかリクエストを処理することができない。
【００５１】
障害時動作では、リクエストに対するリプライを待って次のリクエストが送信される点で、データ受信路Ｗ１１及びデータ送信路Ｗ２１の利用効率が低く、デバイス入出力部３００の通信性能が低い。もっとも、この障害時の処理は情報処理システム１が本来の目的とする処理ではなく、障害発生時に一時的に実行される処理である。この点で、デバイス入出力部３００の通信性能が低いことは許容範囲内であると期待される。
【００５２】
上位装置１００は、受信バッファメモリ３１１の保持データ及び送信バッファメモリ３２１の保持データの受信を完了すると、障害フラグのリセットをリクエストする（シーケンスＳ１３１）。
具体的には、上位装置１００は、障害フラグメモリ３６０へのデータの書き込みリクエストを送信する。この書き込みリクエストは、データ受信路Ｗ１１を経由して受信部３１０へ到着する。
【００５３】
受信部３１０は、受信した書き込みリクエストを受信側バイパス回路３１２を経由して障害検知部３５０へ出力し、障害検知部３５０は、書き込みリクエストに従って障害フラグをリセットする（シーケンスＳ１３２）。ここでいう障害フラグのリセットは、障害フラグメモリ３６０の値を障害無しを示す値に更新することである。
障害フラグメモリ３６０がリセットされると、受信制御部３３０は、受信側バイパス経路Ｗ１２を使用せず、通常の動作モードと同様に受信バッファメモリ３１１を用いて受信部３１０にデータの受信を行わせる。送信制御部３４０は、送信側バイパス経路Ｗ２２を使用せず、通常の動作モードと同様に送信バッファメモリ３２１を用いて送信部３２０にデータの送信を行わせる。
【００５４】
次に下位装置２００は、下位装置２００のレジスタ及びバッファのうち、送信バッファメモリ３２１及び送信バッファメモリ３２１以外のレジスタ及びバッファに格納されている障害情報を読み出して上位装置１００へ転送する（シーケンスＳ１３３）。
具体的には、上位装置１００が下位装置２００へ、これらの障害情報の読み出しリクエストを送信する。リクエストを受信した下位装置２００は、受信バッファメモリ３１１の読み出しリクエスト及び送信バッファメモリ３２１の読み出しリクエストの場合と同様に、リクエストに応じてデータを読み出し、リプライを生成して上位装置１００へ送信する。
【００５５】
但し、この時点では障害フラグがリセットされているため、受信制御部３３０は、受信側バイパス回路３１２を用いずに受信バッファメモリ３１１を用いてデータを受信するように受信部３１０を制御する。送信制御部３４０は、送信側バイパス回路３２２を用いずに送信バッファメモリ３２１を用いてデータを送信するように送信部３２０を制御する。
これにより、上位装置１００は、複数の読み出し要求を連続して下位装置２００に発行できる。下位装置２００も複数のリプライパケットを連続して上位装置１００に発行できる。この点でデータ受信路Ｗ１１及びデータ送信路Ｗ２１の利用効率が上昇し、下位装置２００は、障害情報の読み出し処理及び送信処理を高速に実行できる。
【００５６】
このように、障害フラグがセットされて受信バッファメモリ３１１及び送信バッファメモリ３２１への書き込みが抑止されている間に、障害情報収集回路３８０が受信バッファメモリ３１１及び送信バッファメモリ３２１の保持データを低速モードで読み出す。その後、障害フラグがリセットされた後、障害情報収集回路３８０は、受信バッファメモリ３１１及び送信バッファメモリ３２１以外の保持データを高速モードで読み出す。これにより、下位装置２００では、一時退避用の記憶装置又は障害情報採取専用のインタフェースを追加する必要なしに、通常のデータ転送経路を用いて障害情報の転送を行うことができる。障害情報として受信バッファメモリ３１１及び送信バッファメモリ３２１の内容も転送することができるため、障害発生時の解析が容易になる。
【００５７】
以上のように、障害検知部３５０が障害を検知した場合、受信制御部３３０は、受信部３１０を制御して、障害検知時に使用していた受信バッファメモリ３１１を使用せずにデータを受信させる。また、障害検知部３５０が障害を検知した場合、送信制御部３４０は、送信部３２０を制御して、障害検知時に使用していた送信バッファメモリ３２１を使用せずにデータを送信させる。
これにより、下位装置２００は、障害発生時に障害情報を他の装置へ転送する専用の通信路、及び、障害発生時に障害情報を下位装置側に一旦保持する専用のメモリのいずれも設ける必要がなく、かつ、障害発生時における通信用のバッファの内容を保持することができる。
【００５８】
特に、受信制御部３３０は、障害検知部３５０が障害を検知した場合、受信部３１０を制御して、受信側バイパス経路Ｗ１２を用いて通信を行わせる。また、送信制御部３４０は、障害検知部３５０が障害を検知した場合、送信部３２０を制御して、送信側バイパス経路Ｗ２２を用いて通信を行わせる。
これにより、下位装置２００は、障害発生時も通常時と同様、データ受信路Ｗ１１及びデータ送信路Ｗ２１を用いて通信を行うことができ、障害検知時専用の通信路を設ける必要は無い。かつ、下位装置２００は、障害発生時のバッファの内容を、受信バッファメモリ３１１及び送信バッファメモリ３２１に保持することができ、これらのバッファの内容を保存するための専用のメモリを備える必要は無い。
【００５９】
ここで、図３〜５を参照して、情報処理システム１の構成及び効果についてさらに詳細に説明する。
図３は、通常時の通信路に加えて障害発生時に障害情報を送信する通信路を備える情報処理システムの機能構成例を示す概略ブロック図である。
図３に示す情報処理システム１００１は、上位装置１１００と、下位装置１２００とを備える。下位装置１２００は、デバイス機能部１２１０と、デバイス入出力部１３００とを備える。デバイス入出力部１３００は、受信部１３１０と、送信部１３２０と、受信制御部１３３０と、送信制御部１３４０と、障害情報収集回路１３８０とを備える。受信部１３１０は、受信バッファメモリ１３１１を備える。送信部１３２０は、送信バッファメモリ１３２１を備える。上位装置１１００と下位装置１２００とはデータ受信路Ｗ１０１１及びデータ送信路Ｗ１０２１を介して通信接続される。
【００６０】
図３に示す情報処理システム１００１は特に、受信部１３１０、送信部１３２０のいずれもバイパス経路を備えていない点、及び、障害情報収集回路１３８０と障害情報収集装置１９００とが外部診断パスＷ１０３１を介して通信接続される点で、情報処理システム１（図１）と異なる。ここでいうバイパス経路は、情報処理システム１の送信側バイパス経路Ｗ２２および受信側バイパス経路Ｗ１２のように、バッファメモリをバイパスする経路である。また、障害情報収集装置１９００は、下位装置１２００から障害情報を収集する装置である。
【００６１】
通常動作時には、上位装置１１００がデータ受信路Ｗ１０１１を介してデータを送信すると、受信部１３１０が受信制御部１３３０の制御に従って受信バッファメモリ１３１１を用いて受信し、デバイス機能部１２１０へ出力する。また、デバイス機能部１２１０が送信部１３２０へデータを出力すると、送信部１３２０は、送信制御部１３４０の制御に従って送信バッファメモリ１３２１を用いて、データ送信路Ｗ１０２１を介して上位装置１１００へデータを送信する。
【００６２】
一方、障害発生時には、下位装置１２００内の障害情報収集回路１３８０は、下位装置１２００内の各所の制御レジスタ及びＲＡＭ（Random Access Memory）等から障害情報を収集し、これを外部診断パスＷ１０３１を用いて障害情報収集装置１９００に転送する。
このように情報処理システム１００１では、下位装置１２００は、通常動作時の通信経路とは別に障害情報転送用に設けられた外部診断パスＷ１０３１を介して障害情報を他装置へ転送する。
【００６３】
情報処理システム１００１では、通常動作時の通信経路とは別に外部診断パスＷ１０３１を設ける必要がある。情報処理システム１００１ではこの点で、下位装置１２００のハードウェア構成が複雑になり、下位装置１２００の製造コストが高くなってしまう。
これに対し、情報処理システム１では、通常動作時の通信路であるデータ受信路Ｗ１１及びデータ送信路Ｗ２１を用いて障害情報の転送処理を行う。通常動作時の通信経路とは別に障害情報転送用の通信路を設ける必要がない点で、情報処理システム１では、下位装置２００ハードウェア構成を比較的簡単にすることができ、下位装置２００の製造コストを比較的安くできる。
【００６４】
図４は、障害情報用のバッファメモリを備える情報処理システムの機能構成例を示す概略ブロック図である。
図４に示す情報処理システム１００２は、上位装置１１００と、下位装置１２００とを備える。下位装置１２００は、デバイス機能部１２１０と、デバイス入出力部１３００とを備える。デバイス入出力部１３００は、受信部１３１０と、送信部１３２０と、受信制御部１３３０と、送信制御部１３４０と、障害情報収集回路１３８０と、障害情報収集バッファメモリ１３８１とを備える。受信部１３１０は、受信バッファメモリ１３１１を備える。送信部１３２０は、送信バッファメモリ１３２１を備える。上位装置１１００と下位装置１２００とはデータ受信路Ｗ１０１１及びデータ送信路Ｗ１０２１を介して通信接続される。
【００６５】
図４に示す情報処理システム１００２は特に、受信部１３１０、送信部１３２０のいずれもバイパス経路を備えていない点、及び、障害情報収集バッファメモリ１３８１を備える点で、情報処理システム１（図１）と異なる。
通常動作時には、上位装置１１００がデータ受信路Ｗ１０１１を介してデータを送信すると、受信部１３１０が受信制御部１３３０の制御に従って受信バッファメモリ１３１１を用いて受信し、デバイス機能部１２１０へ出力する。また、デバイス機能部１２１０が送信部１３２０へデータを出力すると、送信部１３２０は、送信制御部１３４０の制御に従って送信バッファメモリ１３２１を用いて、データ送信路Ｗ１０２１を介して上位装置１１００へデータを送信する。
【００６６】
一方、障害発生時には、下位装置１２００内の障害情報収集回路１３８０が収集した障害情報を、障害情報収集バッファメモリ１３８１が一旦保持する。下位装置１２００のリセットあるいは復旧の後、障害情報収集バッファメモリ１３８１が保持している障害情報を、送信部１３２０が送信バッファメモリ１３２１を用いて、データ送信路Ｗ１０２１を介して上位装置１１００へ送信する。
【００６７】
情報処理システム１００２では、下位装置１２００側に障害情報を一旦保持する点で、下位装置１２００に必要なメモリ容量が大きくなり、下位装置１２００の製造コストが高くなってしまう。
これに対し情報処理システム１では、障害情報を一旦蓄えるためのバッファメモリを下位装置２００に設ける必要がない。この点で、情報処理システム１では、下位装置２００のメモリ容量が比較的小さくて済み、下位装置２００の製造コストを比較的安くできる。
【００６８】
図５は、送信バッファメモリに障害情報を保持する情報処理システムの機能構成例を示す概略ブロック図である。
図５に示す情報処理システム１００３は、上位装置１１００と、下位装置１２００とを備える。下位装置１２００は、デバイス機能部１２１０と、デバイス入出力部１３００とを備える。デバイス入出力部１３００は、受信部１３１０と、送信部１３２０と、受信制御部１３３０と、送信制御部１３４０と、障害情報収集回路１３８０とを備える。受信部１３１０は、受信バッファメモリ１３１１を備える。送信部１３２０は、送信バッファメモリ１３２１を備える。上位装置１１００と下位装置１２００とはデータ受信路Ｗ１０１１及びデータ送信路Ｗ１０２１を介して通信接続される。
【００６９】
図５に示す情報処理システム１００３は特に、受信部１３１０、送信部１３２０のいずれもバイパス経路を備えていない点で、情報処理システム１（図１）と異なる。
通常動作時には、上位装置１１００がデータ受信路Ｗ１０１１を介してデータを送信すると、受信部１３１０が受信制御部１３３０の制御に従って受信バッファメモリ１３１１を用いて受信し、デバイス機能部１２１０へ出力する。また、デバイス機能部１２１０が送信部１３２０へデータを出力すると、送信部１３２０は、送信制御部１３４０の制御に従って送信バッファメモリ１３２１を用いて、データ送信路Ｗ１０２１を介して上位装置１１００へデータを送信する。
【００７０】
一方、障害発生時には、下位装置１２００内の障害情報収集回路１３８０は、収集した障害情報を送信部１３２０へ出力する。送信部１３２０は、障害情報を送信バッファメモリ１３２１に保持する。下位装置１２００側のリセットあるいは復旧の後、送信部１３２０は、送信バッファメモリ１３２１に保持している障害情報を、データ送信路Ｗ１０２１を介して上位装置１１００へ送信する。
【００７１】
情報処理システム１００３では、送信バッファメモリ１３２１に障害情報が書き込まれることで、障害発生時における送信バッファメモリ１３２１の内容が書き潰される。障害発生直前の通信状況は障害の原因や復旧手段を解析するのに有用であるのに対し、情報処理システム１００３では、障害発生直前の通信状況の情報が失われる可能性がある。
また、情報処理システム１００３で、下位装置１２００が主体的に障害情報を上位装置１１００へ送信する場合は、上位装置１００側の予め確保された記憶領域に障害情報を書き込むことが考えられる。しかしながら、上位装置１１００内に障害情報を書き込むための記憶領域を常に確保しておくことは、資源の効率的活用の観点から好ましくない。
一方、上位装置１１００が主導して下位装置１２００から障害情報を読み出す場合、下位装置１２００が送信バッファメモリ１３２１を障害情報の保持に用いているため、上位装置１１００の主導では送信バッファメモリ１３２１を利用できない可能性がある。
【００７２】
これに対し、情報処理システム１では、送信部３２０が障害情報を送信バッファメモリ３２１に保持せずに上位装置１００へ送信するので、障害発生直前の送信バッファメモリ３２１の情報が失われない。
また、情報処理システム１では、上位装置１００からの障害情報のリクエストに対して送信部３２０が、送信バッファメモリ３２１を用いずに障害情報をリプライする。この点で、情報処理システム１では、送信バッファメモリ３２１を使用せずとも上位装置１００の主導で障害情報を上位装置１００へ転送することができる。
【００７３】
＜第二実施形態＞
図６は、本発明の第二実施形態に係る情報処理システムの機能構成を示す概略ブロック図である。図６に示すように、情報処理システム２は、上位装置１００と、下位装置２００とを備える。下位装置２００は、デバイス機能部２１０と、デバイス入出力部３００とを備える。デバイス入出力部３００は、受信部４１０と、送信部４２０と、受信制御部４３０と、送信制御部４４０と、障害検知部３５０と、障害フラグメモリ３６０と、障害表示部３７０と、障害情報収集回路３８０とを備える。受信部４１０は、複数の受信バッファメモリ３１１と、受信側選択回路４１３とを備える。送信部４２０は、複数の送信バッファメモリ３２１と、送信側選択回路４２３とを備える。上位装置１００と下位装置２００とは、データ受信路Ｗ１１及びデータ送信路Ｗ２１を介して通信接続される。
【００７４】
図６の各部のうち、図１の各部に対応して同様の機能を有する部分には同一の符号（１００、２００、２１０、３００、３１１、３２１、３５０、３６０、３７０、３８０、Ｗ１１，Ｗ２１）を付して説明を省略する。
情報処理システム２では、受信部４１０及び送信部４２０の構成が、情報処理システム１の受信部３１０及び送信部３２０の場合と異なる。これに伴って、情報処理システム２では、受信制御部４３０及び送信制御部４４０が行う制御が、情報処理システム１の受信制御部３３０及び送信制御部３４０の場合と異なる。それ以外は、情報処理システム１の場合と同様である。
なお、受信制御部３３０及び送信制御部３４０のうちいずれか一方または両方が通信制御装置として構成されていてもよい。
【００７５】
受信部４１０では、受信バッファが多バンク化されており、ｎ個（ｎは正整数）の受信バッファメモリ３１１−１〜３１１−ｎ及び受信側選択回路４１３を含んで構成されている。
受信側選択回路４１３は、受信制御部４３０の制御に従ってｎ個の受信バッファメモリ３１１−１〜３１１−ｎのうちいずれか１つを選択してデータを読み出し出力する。
【００７６】
通常動作時に受信制御部４３０が受信部４１０の受信バッファを制御する方法として、多バンク化されたバッファを制御する公知の方法を用いることができる。
例えば、通常動作において下位装置２００は、データ受信路Ｗ１１を介して上位装置１００より受信したデータを受信部３１０内の受信バッファメモリ３１１に格納する。このとき、受信制御部４３０は、多バンク化された受信バッファのどのバンクに対して格納すべきかを制御する。受信部４１０が備える受信バッファメモリにおけるバンクは、個々の受信バッファメモリ３１１を用いて構成されている。
【００７７】
受信制御部４３０はパケットを書き込むバンクを指定する書き込みバンク指定ポインタと、バンク内の書き込み位置を指定する書き込みポインタとを有している。受信制御部４３０は、書き込みポインタを先頭番地から最終番地に移動させながら、書き込みポインタの指す番地にパケットを書き込む。最終番地への書き込みが完了した場合、受信制御部４３０は、書き込みポインタを先頭番地に移動させるとともに、書き込みバンク指定ポインタが次のバンクを指すように制御する。
【００７８】
さらに、受信制御部４３０は、多バンク化された受信バッファのどのバンクからパケットを出力すべきか否かも制御する。具体的には、受信制御部４３０はバンク内の読み出し位置を指定する読み出しポインタを有している。受信制御部４３０は、読み出しポインタを先頭番地から最終番地に移動させながら、読み出しポインタの指す番地のパケットを各バンクから読み出すように受信部４１０を制御する。
【００７９】
また、受信制御部４３０は、パケットを読み出すバンクを指定する読み出しバンク指定ポインタを有している。受信制御部４３０は、受信側選択回路４１３を制御して、受信バッファの複数のバンクのうち読出バンクポインタの内容によって指定されたバンクからパケットを読み出させ、受信部４１０から出力させる。
最終番地からの読み出しが完了した場合、受信制御部４３０は、読み出しポインタを先頭番地に移動させるとともに、読み出しバンク指定ポインタが次のバンクを指すように制御する。
【００８０】
送信部４２０では、送信バッファが多バンク化されており、ｍ個（ｍは正整数）の送信バッファメモリ３２１−１〜３２１−ｍ及び送信側選択回路４２３を含んで構成されている。ｍは、ｎと同じ数であってもよいし、異なる数であってもよい。
送信側選択回路４２３は、送信制御部４４０の制御に従ってｍ個の送信バッファメモリ３２１−１〜３２１−ｍのうちいずれか１つを選択してデータを読み出し出力する。
【００８１】
通常動作において送信部４２０及び送信制御部４４０は、受信部４１０及び受信制御部４３０の場合と同様に、複数のバンクを切り替えながら出力パケットの保持及び出力を行う。
このように通常動作では下位装置２００は、データパケットを受信バッファや送信バッファに複数保持することができる。これにより、上位装置１００と下位装置２００との間では複数の要求を並列的に処理することができる。これによってデータ受信路Ｗ１１及びデータ送信路Ｗ２１の利用効率が上昇し、高い転送性能を発揮することができる。
【００８２】
次に、図７を参照して情報処理システム１の動作について説明する。
図７は、第二実施形態の下位装置２００から上位装置１００へ障害情報を送信する処理の流れの例を示す図である。
図７に示す処理で、正常時には下位装置２００の受信部４１０及び送信部４２０は、上述したように受信バッファ及び送信バッファをバンクの除外無しに使用する正常動作にて送受信を行う（シーケンスＳ２０１）。
図７のシーケンスＳ２１１〜Ｓ２１３は、図２のシーケンスＳ１１１〜Ｓ１１３と同様である。
【００８３】
情報処理システム２では、障害フラグの値が障害有りを示している場合、多バンク化された受信バッファ、送信バッファそれぞれのうち、障害発生時に使用していたバンクを使用しないように除外される（シーケンスＳ２１４）。
具体的には、受信制御部４３０の書き込みバンク指定ポインタおよび読み出しバンク指定ポインタは、障害発生時に使用していたバンクを指定している。受信制御部４３０は、受信部４１０を制御してデータを受信させる際、書き込みバンク指定ポインタおよび読み出しバンク指定ポインタが指定しているバンクについて書き込みが行われないように制御する。
例えば受信バッファが４バンクで構成されていた場合、受信制御部４３０は、書き込みバンク指定ポインタおよび読み出しバンク指定ポインタが指定している１つ又は２つのバンクについては内容をそのまま保持させる。そして、受信制御部４３０は、残りの３つ又は２つのバンクを用いて受信部４１０にデータを受信させる。
【００８４】
同様に、送信制御部４４０の書き込みバンク指定ポインタおよび読み出しバンク指定ポインタは、障害発生時に使用していたバンクを指定している。送信制御部４４０は、送信部４２０を制御して障害情報を送信させる場合、書き込みバンク指定ポインタおよび読み出しバンク指定ポインタが指定しているバンクについて書き込みが行われないように制御する。
例えば送信バッファが４バンクで構成されていた場合、送信制御部４４０は、書き込みバンク指定ポインタおよび読み出しバンク指定ポインタが指定している１つ又は２つのバンクについては内容をそのまま保持させる。そして、送信制御部４４０は、残りの３つ又は２つのバンクを用いて送信部４２０にデータを送信させる。
【００８５】
このように、受信制御部４３０は、障害検知部３５０が障害を検知した場合、受信部４１０及を制御して、障害検知時に使用していた受信バッファメモリ３１１以外の受信バッファメモリ３１１を用いてデータを受信させる。また、送信制御部４４０は、障害検知部３５０が障害を検知した場合、送信部４２０及を制御して、障害検知時に使用していた送信バッファメモリ３２１以外の送信バッファメモリ３２１を用いてデータを送信させる。
【００８６】
下位装置２００が通信路を一旦遮断した後、上位装置１００と下位装置２００とが再び通信接続し、下位装置２００が上位装置１００へ障害情報を送信する（シーケンスＳ２２０）。
シーケンスＳ２２１は、図２のシーケンスＳ１２１と同様である。
上位装置１００と下位装置２００とが再接続されると、下位装置２００が受信バッファメモリ３１１の記憶しているデータを読み出して上位装置１００へ送信する（シーケンスＳ２２２）。その際、障害情報収集回路３８０は、受信バッファの複数のバンクのうち、受信制御部４３０の書き込みバンク指定ポインタおよび読み出しバンク指定ポインタが指定する１つまたは２つのバンクについてのみ障害情報を収集する。そして、障害情報収集回路３８０は、収集した障害情報を送信部４２０へ出力する。送信部４２０は、障害情報収集回路３８０から出力された障害情報を、上記のように一部のバンク以外のバンクを使用して上位装置１００へ送信する。
【００８７】
また、下位装置２００は、送信バッファメモリ３２１の記憶しているデータを読み出して上位装置１００へ送信する（シーケンスＳ２２３）。その際、送信部４２０は、送信バッファの複数のバンクのうち、送信制御部４４０の書き込みバンク指定ポインタおよび読み出しバンク指定ポインタが指定する１つまたは２つのバンクについてのみ上位装置１００へ送信する。
受信バッファ、送信バッファのいずれについても、書き込みバンク指定ポインタおよび読み出しバンク指定ポインタが指定する１つまたは２つのバンク以外のバンクに保持された情報は、読み出しリクエストの受信及びリプライの送信によって上書される。これらの情報は障害解析における優先度が低いため、上書されても問題ないと考えられる。
【００８８】
シーケンスＳ２３１及びＳ２３２は、図１のシーケンスＳ１３１及びＳ１３２と同様である。
障害フラグがリセットされると、受信制御部４３０及び送信制御部４４０の各々は、障害検出時のバンクの使用からの除外を解除し、通常動作時の動作にて受信部４１０及び送信部４２０を制御する（シーケンスＳ２３３）。
【００８９】
次に下位装置２００は、下位装置２００のレジスタ及びバッファのうち、送信バッファメモリ３２１及び送信バッファメモリ３２１以外のレジスタ及びバッファに格納されている障害情報を読み出して上位装置１００へ転送する（シーケンスＳ２３４）。
シーケンスＳ２３４の処理は、図２のシーケンスＳ１３３の場合と同様、上位装置１００から下位装置２００への障害情報の読み出しリクエストに応じて実行される。この点は、シーケンスＳ２２２における受信バッファデータの転送の場合、及び、シーケンスＳ２２３における送信バッファデータの転送の場合と同様である。
【００９０】
但し、シーケンスＳ２３４では、障害フラグがリセットされているため、受信制御部４３０及び送信制御部４４０は、それぞれ多バンク化された受信バッファ及び送信バッファの全バンクを利用して、受信部４１０及び送信部４２０にデータの送受信を行わせる。これにより、このためデータ受信路Ｗ１１及びデータ送信路Ｗ２１の利用効率が上昇し、この点で、障害情報読み出し処理を高速に実行できる。
【００９１】
第二実施形態では、障害発生時に受信バッファ及び送信バッファから障害情報を読み出して上位装置１００へ送信する際、多バンク化された受信バッファおよび送信バッファの一部のバンクのみ利用禁止となるが、残りのバンクをデータ転送に利用できる。これにより、第二実施形態では、第一実施形態の場合よりも障害情報の転送処理を高速に実行できる。
【００９２】
以上のように、受信制御部４３０は、障害検知部３５０が障害を検知した場合、受信部４１０を制御して、障害検知時に使用していた受信バッファメモリ３１１以外の受信バッファメモリ３１１を用いてデータを受信させる。また、送信制御部４４０は、障害検知部３５０が障害を検知した場合、送信部４２０を制御して、障害検知時に使用していた送信バッファメモリ３２１以外の送信バッファメモリ３２１を用いてデータを送信させる。
【００９３】
これにより、下位装置２００は、障害発生時も通常時と同様、データ受信路Ｗ１１及びデータ送信路Ｗ２１を用いて通信を行うことができ、障害検知時専用の通信路を設ける必要は無い。かつ、下位装置２００は、障害発生時のバッファの内容を、受信バッファメモリ３１１及び送信バッファメモリ３２１に保持することができ、これらのバッファの内容を保存するための専用のメモリを備える必要は無い。
さらに、下位装置２００は、障害発生時においても複数のバンクを使用してデータの送受信を行い得る。この点で、下位装置２００は、障害情報の転送処理を高速に実行できる。
【００９４】
なお、少なくとも１つの実施形態におけるデバイス入出力部３００の機能の全部または一部が、コンピュータを用いて構成されていてもよい。
図８は、少なくとも１つの実施形態に係るコンピュータの構成を示す概略ブロック図である。図５に示すコンピュータ５００は、ＣＰＵ（Central Processing Unit、中央処理装置）５１０と、記憶装置５２０と、インタフェース５３０とを備える。
【００９５】
第一実施形態におけるデバイス入出力部３００、及び、第二実施形態におけるデバイス入出力部３００は、いずれもコンピュータ５００に実装される。このデバイス入出力部３００の動作は、プログラムの形式で記憶装置５２０に記憶されている。ＣＰＵ５１０は、プログラムを記憶装置５２０から読み出し、当該プログラムに従ってデバイス入出力部３００の処理を実行する。
受信バッファメモリ３１１、送信バッファメモリ３２１及び障害フラグメモリ３６０のうち１つ以上が記憶装置５２０の記憶容量を用いて構成されていてもよい。あるいは、受信バッファメモリ３１１、送信バッファメモリ３２１及び障害フラグメモリ３６０のいずれも記憶装置５２０とは異なる記憶装置を用いて構成されていてもよい。
【００９６】
次に、図９〜図１１を参照して、本発明の最小構成について説明する。
図９は、本発明に係る装置の最小構成の例を示す図である。図９に示す装置１０は、通信部１１と、障害検知部１２と、通信制御部１３とを備える。通信部１１は、バッファメモリ１４を備える。
かかる構成にて、バッファメモリ１４は、通信データをバッファする。障害検知部１２は、障害を検知する。通信制御部１３は、障害検知部１２が障害を検知した場合、通信部１１を制御して、障害検知時に使用していたバッファメモリ１４を使用せずに通信を行わせる。
これにより、装置１０は、障害発生時も通常時と同様の通信路を用いて通信を行うことができ、障害検知時専用の通信路を設ける必要が無い。かつ、装置１０は、障害発生時のバッファの内容を、バッファメモリ１４に保持することができ、障害発生時のバッファの内容を保存するための専用のメモリを備える必要が無い。
【００９７】
図１０は、本発明に係る通信制御装置の最小構成の例を示す図である。図１０には通信制御装置２０が示されている。
この通信制御装置２０は、障害が検知された場合、通信データをバッファするバッファメモリを備えた通信部を制御して、障害検知時に使用していたバッファメモリを使用せずに通信を行わせる。
これにより、通信制御装置２０は、通信部に障害発生時も通常時と同様の通信路を用いて通信を行わせることができ、障害検知時専用の通信路を設ける必要が無い。かつ、通信制御装置２０は、障害発生時のバッファの内容を、バッファメモリに保持させることができ、障害発生時のバッファの内容を保存するための専用のメモリを備える必要が無い。
【００９８】
図１１は、本発明に係る情報処理システムの最小構成の例を示す図である。図１１に示す情報処理システム３０は、上位装置３１と、下位装置３２とを備える。下位装置３２は、通信部３３と、障害検知部３４と、通信制御部３５とを備える。通信部３３は、バッファメモリ３６を備える。
かかる構成にて、バッファメモリ３６は、通信データをバッファする。通信部３３は、上位装置３１と通信を行う。障害検知部３４は、障害を検知する。通信制御部３５は、障害検知部３４が障害を検知した場合、通信部３３を制御して、障害検知時に使用していたバッファメモリ３６を使用せずに通信を行わせる。
これにより、情報処理システム３０は、障害発生時も通常時と同様の通信路を用いて通信を行うことができ、障害検知時専用の通信路を設ける必要が無い。かつ、情報処理システム３０は、障害発生時のバッファの内容を、バッファメモリ３６に保持することができ、障害発生時のバッファの内容を保存するための専用のメモリを備える必要が無い。
【００９９】
なお、少なくとも１つの１つの実施形態におけるデバイス入出力部３００の機能の全部または一部を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりデバイス入出力部３００の処理を行ってもよい。なお、ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【０１００】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【０１０１】
１、２、３０  情報処理システム
１０  装置
１１、３３  通信部
１２、３４、３５０  障害検知部
１３、３５  通信制御部
１４、３６  バッファメモリ
２０  通信制御装置
３１、１００  上位装置
３２、２００  下位装置
２１０  デバイス機能部
３００  デバイス入出力部
３２０  送信部
３２１  送信バッファメモリ
３２２  送信側バイパス回路
４２３  送信側選択回路
３１０  受信部
３１１  受信バッファメモリ
３１２  受信側バイパス回路
４１３  受信側選択回路
３４０  送信制御部
３３０  受信制御部
３６０  障害フラグメモリ
３７０  障害表示部
３８０  障害情報収集回路
【図１】
2018112825.tif 000003
【図２】
2018112825.tif 000004
【図３】
2018112825.tif 000005
【図４】
2018112825.tif 000006
【図５】
2018112825.tif 000007
【図６】
2018112825.tif 000008
【図７】
2018112825.tif 000009
【図８】
2018112825.tif 000010
【図９】
2018112825.tif 000011
【図１０】
2018112825.tif 000012
【図１１】
2018112825.tif 000013