(57)【特許請求の範囲】
【請求項１】
複数の入出力ポートと、前記複数の入出力ポートを制御する単一のプログラマブル論理回路とを備える入出力処理装置において、前記複数の入出力ポートのうちいずれか１つの入出力ポートからエラーが検出された場合に、検出されたエラーが、前記プログラマブル論理回路が備える回路配置データ用メモリのソフトエラーであるか否か判定する判定部と、
前記検出されたエラーが前記回路配置データ用メモリのソフトエラーである場合に、前記エラーが検出されていない他の入出力ポートの状態をビジー状態に設定する設定部と、
前記設定部が前記ビジー状態を設定した後に、前記プログラマブル論理回路に回路配置データの再設定を指示する指示部と、
を備えることを特徴とする制御装置。
【請求項２】
前記設定部は、前記他の入出力ポートが入出力処理を実行中の場合には、前記入出力処理の終了後に、前記他の入出力ポートの状態をビジー状態に設定することを特徴とする請求項１に記載の制御装置。
【請求項３】
前記設定部は、前記複数の入出力ポートのうちいずれか１つの入出力ポートからエラー検出が検出された場合に、前記エラーが検出された入出力ポートの状態をビジー状態に設定することを特徴とする請求項１又は２に記載の制御装置。
【請求項４】
前記プログラマブル論理回路が前記回路配置データの再設定を実行後、前記エラーが検出された入出力ポート及び前記他の入出力ポートのビジー状態を解除し、再起動する再起動部を備えることを特徴とする請求項１から３のいずれか１項記載の制御装置。
【請求項５】
複数の入出力ポートと、前記複数の入出力ポートを制御する単一のプログラマブル論理回路とを備える入出力処理装置と、
請求項１から４のいずれか１項に記載の制御装置と、
を備える情報処理装置。
【請求項６】
複数の入出力ポートと、前記複数の入出力ポートを制御する単一のプログラマブル論理回路とを備える入出力処理装置において、前記複数の入出力ポートのうちいずれか１つの入出力ポートからエラーが検出された場合に、検出されたエラーが、前記プログラマブル論理回路が備える回路配置データ用メモリのソフトエラーであるか否か判定する判定ステップと、
前記検出されたエラーが前記回路配置データ用メモリのソフトエラーである場合に、前記エラーが検出されていない他の入出力ポートの状態をビジー状態に設定する設定ステップと、
前記設定ステップでのビジー状態の設定が終了した後に、前記プログラマブル論理回路に回路配置データの再設定を指示する指示ステップと、
をコンピュータに実行させることを特徴とする制御プログラム。
【請求項７】
複数の入出力ポートと、前記複数の入出力ポートを制御する単一のプログラマブル論理回路とを備える入出力処理装置において、前記複数の入出力ポートのうちいずれか１つの入出力ポートからエラーが検出された場合に、検出されたエラーが、前記プログラマブル論理回路が備える回路配置データ用メモリのソフトエラーであるか否か判定する判定ステップと、
前記検出されたエラーが前記回路配置データ用メモリのソフトエラーである場合に、前記エラーが検出されていない他の入出力ポートの状態をビジー状態に設定する設定ステップと、
前記設定ステップでのビジー状態の設定が終了した後に、前記プログラマブル論理回路に回路配置データの再設定を指示する指示ステップと、
を有することを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置、情報処理装置、制御プログラム、及び制御方法に関する。
【背景技術】
【０００２】
デジタル回路の回路設計を電気的に変更可能なデバイスとして、ＦＰＧＡ（Field Programmable Gate Array）が知られている。ＦＰＧＡは、多数の論理ゲートを有するＬＳＩ（Large Scale Integration circuit）である。ＦＰＧＡは、論理ゲート間の論理関係と接続関係とを記述したコンフィギュレーションデータを、ＦＰＧＡが備えるコンフィギュレーションＲＡＭに書き込むことで、所定の論理回路として機能する。よって、種々の電子機器の回路部品にＦＰＧＡを用いることにより、設計に従って回路部品を製造する場合より短期間で回路設計を実装することができる。また、コンフィギュレーションデータを変更することでハードウェアを変更することなく容易に回路設計を変更できるため、電子機器を始めとして様々な製品で利用されている。
【０００３】
例えば、情報の格納を目的とするメモリカードや、無線カードやモデムカードに代表される、外部装置との間で情報の入出力を行うことを目的とするＩ／Ｏカードのポート制御に、ＦＰＧＡを用いる技術が提案されている（例えば、特許文献１）。
【０００４】
ところで、上述のコンフィギュレーションＲＡＭで発生するエラーには、回路そのものがダメージを受けた「ハードエラー」と、宇宙線等の放射線によりＲＡＭ内のデータが破壊された「ソフトエラー」とが存在する。「ハードエラー」が発生した場合には、ＦＰＧＡそのものの交換が必要となる。一方、「ソフトエラー」が発生した場合、ＦＰＧＡをリコンフィギュレーションすれば復旧が可能である。リコンフィギュレーションは、コンフィギュレーションデータをコンフィギュレーションＲＡＭにリロードすることによって行われる。従って、コンフィギュレーションデータのリロード中には、ポートでの入出力処理ができない。すなわち、１つのポートを１つのＦＰＧＡで制御するＩ／Ｏカード（図１（Ａ））においては、コンフィギュレーションデータのリロード中には、一切の入出力処理ができないこととなる。
【０００５】
そこで、Ｉ／Ｏカードの可用性を高めるために、単一のポートを複数のＦＰＧＡで制御する構成（図１（Ｂ））、複数のポートと、各ポートに対応するＦＰＧＡとを備える構成（図１（Ｃ））が提案されている。また、複数のポートを備え、各ポートを複数のＦＰＧＡで制御する構成（図１（Ｄ））等も提案されている。しかしながら、上述の構成ではコストが高くなったり、カード内にＦＰＧＡ等のデバイスを収めるのが困難な場合がある。そこで、コストと可用性とのトレードオフにより、複数のポートを単一のＦＰＧＡで制御する構成（図１（Ｅ））を選択する場合がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００２−１６９６０２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ここで、複数のポートを単一のＦＰＧＡで制御するＩ／Ｏカードにおいて、各ポートが入出力処理を実行している最中に、１つのポートでエラーが発生し、その原因がコンフィギュレーションＲＡＭのソフトエラーによるものだったとする。この場合、エラーを復旧するためには、ＦＰＧＡのリコンフィギュレーションが必要であるが、コンフィギュレーションＲＡＭの内容を書き換えている間は、エラーの無い他のポートも入出力処理を実行できなくなる。つまり、コンフィギュレーションデータのリロードが開始されると、エラーが発生していない他ポートでの入出力処理も中断されることとなり、エラーが発生していない他ポートにまで、エラーの影響が拡大してしまうおそれがある。
【０００８】
１つの側面では、本発明は、単一のプログラマブル論理回路で複数のポートを制御する入出力処理装置の可用性を高める制御装置、情報処理装置、制御プログラム、及び制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記課題を解決するために、明細書開示の制御装置は、複数の入出力ポートと、前記複数の入出力ポートを制御する単一のプログラマブル論理回路とを備える入出力処理装置において、前記複数の入出力ポートのうちいずれか１つの入出力ポートからエラーが検出された場合に、検出されたエラーが、前記プログラマブル論理回路が備える回路配置データ用メモリのソフトエラーであるか否か判定する判定部と、前記検出されたエラーが前記回路配置データ用メモリのソフトエラーである場合に、前記エラーが検出されていない他の入出力ポートの状態を入出力処理が不可能であることを示すビジー状態に設定する設定部と、前記設定部が前記ビジー状態を設定した後に、前記プログラマブル論理回路に回路配置データの再設定を指示する指示部と、を備える。
【００１０】
上記課題を解決するために、明細書開示の情報処理装置は、複数の入出力ポートと、前記複数の入出力ポートを制御する単一のプログラマブル論理回路とを備える入出力処理装置と、明細書開示の制御装置とを備える。
【００１１】
上記課題を解決するために、明細書開示の制御プログラムは、複数の入出力ポートと、前記複数の入出力ポートを制御する単一のプログラマブル論理回路とを備える入出力処理装置において、前記複数の入出力ポートのうちいずれか１つの入出力ポートからエラーが検出された場合に、検出されたエラーが、前記プログラマブル論理回路が備える回路配置データ用メモリのソフトエラーであるか否か判定する判定ステップと、前記検出されたエラーが前記回路配置データ用メモリのソフトエラーである場合に、前記エラーが検出されていない他の入出力ポートの状態を入出力処理が不可能であることを示すビジー状態に設定する設定ステップと、前記設定ステップでのビジー状態の設定が終了した後に、前記プログラマブル論理回路に回路配置データの再設定を指示する指示ステップと、をコンピュータに実行させる。
【００１２】
上記課題を解決するために、明細書開示の制御方法は、複数の入出力ポートと、前記複数の入出力ポートを制御する単一のプログラマブル論理回路とを備える入出力処理装置において、前記複数の入出力ポートのうちいずれか１つの入出力ポートからエラーが検出された場合に、検出されたエラーが、前記プログラマブル論理回路が備える回路配置データ用メモリのソフトエラーであるか否か判定する判定ステップと、前記検出されたエラーが前記回路配置データ用メモリのソフトエラーである場合に、前記エラーが検出されていない他の入出力ポートの状態を入出力処理が不可能であることを示すビジー状態に設定する設定ステップと、前記設定ステップでのビジー状態の設定が終了した後に、前記プログラマブル論理回路に回路配置データの再設定を指示する指示ステップと、を有する。
【発明の効果】
【００１３】
明細書開示の制御装置、情報処理装置、制御プログラム、及び制御方法によれば、単一のプログラマブル論理回路で複数のポートを制御する入出力処理装置の可用性が高まる。
【図面の簡単な説明】
【００１４】
【図１】従来から提案されているＩ／Ｏカードの構成例を示す図である。
【図２】本件の制御装置を含む情報処理装置のシステム構成の一例を示す図である。
【図３】制御装置のソフトウェア構成の一例を示す図である。
【図４】Ｉ／Ｏカードにエラーが発生した場合に情報処理装置で実行される処理の一例を示すシーケンス図である。
【図５】シーケンス図に示した処理を実現するために制御装置が備える機能の一例を示す機能ブロック図である。
【図６】制御装置が実行する処理の一例を示すフローチャートである。
【図７】本件の制御装置を含む情報処理装置のシステム構成の別例を示す図である。
【発明を実施するための形態】
【００１５】
以下、本件の実施例について、添付図面を参照しつつ説明する。
【００１６】
まず、図２を参照して、本件の制御装置を含む情報処理装置のシステム構成の一例について説明する。図２に示すように、情報処理装置１００は、Ｉ／Ｏカード１０と、制御装置２０とを備える。
【００１７】
Ｉ／Ｏカード１０は、制御装置２０の制御に基づいて、外部装置との間でデータの入出力を行う。Ｉ／Ｏカード１０は、データの入出力インタフェースとしての入出力ポート３０Ａ及び３０Ｂを備える。また、Ｉ／Ｏカード１０は、入出力ポート３０Ａ及び３０Ｂを制御するＦＰＧＡ（プログラマブル論理回路）４０を１つ備える。さらに、Ｉ／Ｏカード１０は、ソフトエラー判定用レジスタ５０を備える。
【００１８】
ＦＰＧＡ４０は、コンフィギュレーションＲＡＭ（回路配置データ用メモリ）４０１と、ユーザＲＡＭ４０２とを備える。コンフィギュレーションＲＡＭ４０１は、論理ゲート間の論理関係と接続関係とを記述したコンフィギュレーションデータ（回路配置データ）を格納する。ユーザＲＡＭ４０２は、ユーザが自由に使用できるメモリであり、ＦＰＧＡ４０で実行する処理を実現するためのプログラム等が格納される。
【００１９】
ソフトエラー判定用レジスタ５０は、コンフィギュレーションＲＡＭ４０１にソフトエラーが発生しているか否かを表すフラグを格納するレジスタである。コンフィギュレーションＲＡＭ４０１のソフトエラーは、周知のパトロール技術によって発見され、ソフトエラーが発見された場合には、ソフトエラー判定用レジスタ５０のフラグが、例えば「０」から「１」に変更される。
【００２０】
制御装置２０は、Ｉ／Ｏカード１０を制御する。また、制御装置２０は、Ｉ／Ｏカード１０でエラーが発生した場合に、エラー復旧処理を行う。制御装置２０は、ハードウェア構成として、例えば、入出力部２０１、ＲＯＭ（Read Only Memory）２０２、中央処理装置（ＣＰＵ：Central Processing Unit）２０３、及びＲＡＭ（Random Access Memory）２０４を備える。
【００２１】
入出力部２０１は、Ｉ／Ｏカード１０との間でデータの送受信を行う。ＲＯＭ２０２は、ＦＰＧＡ４０で発生したエラーの復旧処理を実行するためのプログラム（詳細は後述）等を格納する。ＣＰＵ２０３は、ＲＯＭ２０２に格納されたプログラムを読み込んで実行する。また、ＲＯＭ２０２に格納されたプログラムのＣＰＵ２０３による演算によって、図５に示す判定部２２２、設定部２２３、指示部２２４、及び再起動部２２５が有する機能が実現される。ＲＡＭ２０４は、プログラムを実行する際に使用される一時的なデータを保存する。
【００２２】
次に、制御装置２０のソフトウェア構成の一例について説明する。図３は、制御装置２０のソフトウェア構成の一例を示す図である。制御装置２０は、図３（Ａ）に示すように、アプリケーション２１１、ＯＳ（Operating System）２１２、Ｉ／Ｏライブラリ２１３、及びデバイスドライバ２１４を備える。
【００２３】
アプリケーション２１１は、ＯＳ２１２上で動作するアプリケーションプログラムのＣＰＵ２０３による演算によって実現され、例えば、外部装置へのデータ送信機能等の所定の機能を提供する。アプリケーション２１１は、外部装置との間でデータの入出力が必要な場合、ＯＳ２１２にデータの入出力を要求する。
【００２４】
ＯＳ２１２は、アプリケーション２１１から、データの入出力要求を受付けると、Ｉ／Ｏライブラリ２１３が管理する管理データ（バスデータ）を確認する。ここで、Ｉ／Ｏライブラリ２１３が管理する管理データについて説明する。図３（Ｂ）は、Ｉ／Ｏライブラリ２１３が管理する管理データの一例である。
【００２５】
管理データは、例えば、Ｉ／Ｏカード１０が備えるポート毎に登録される。図３（Ｂ）では、管理データ１がポート１（入出力ポート３０Ａ）に関する情報を格納し、管理データ２がポート２（入出力ポート３０Ｂ）に関する情報を格納している。管理データは、ポート番号、ビジーフラグ、及びデバイスの項目を備える。
【００２６】
「ポート番号」は、Ｉ／Ｏカード１０が備える複数のポートから、管理対象のポートを一意に識別するための番号である。「ビジーフラグ」は、ポート番号のポートが、入出力処理を実行できる状態にあるか否かを示すフラグである。ポートが入出力処理を実行できる状態にある場合には、ビジーフラグには「非ビジー」が設定される。ポートが入出力処理を実行できない状態にある場合には、ビジーフラグには「ビジー」が設定される。
【００２７】
「デバイス」は、Ｉ／Ｏカード１０が備える複数のポートのうち、いずれのポートをデバイスドライバによって制御するのかを示すための、デバイスファイルパスを指定する。
【００２８】
図３（Ｂ）の管理データ１は、「ポート番号」に“１”が入力され、「ビジーフラグ」に“ビジー”が設定されているので、ポート番号１のポートが、入出力処理が実行できない状態にあることを示している。また、管理データ１は、「デバイス」に“デバイスファイルパス１”が入力されているので、ポート番号１のポートの制御には、ポート１制御用のデバイスファイルパスが使用されることを示している。管理データ２は、「ポート番号」に“２”が入力され、「ビジーフラグ」に“非ビジー”が設定されているので、ポート番号２のポートが、入出力処理を実行可能な状態であることを示している。また、管理データ２は、「デバイス」に“デバイスファイルパス２”が入力されているので、ポート番号２のポートの制御には、ポート２制御用のデバイスファイルパスが使用されることを示している。
【００２９】
ＯＳ２１２は、上述の管理データを確認し、ビジーフラグに「ビジー」が設定されていない入出力ポートを介して、データの入出力を行う。具体的には、デバイスドライバ２１４による制御によって入出力ポートを介したデータの入出力が行われる。ＯＳ２１２は、ビジーフラグに「ビジー」が設定されている場合には、所定の時間（リトライ期間）が経過してから再びビジーフラグを確認し、ビジーフラグが「非ビジー」になっていればデータの入出力を行う。
【００３０】
デバイスドライバ２１４は、ＯＳ２１２の命令に基づいて、Ｉ／Ｏカード１０が備える入出力ポート３０Ａ及び３０Ｂを制御し、外部装置との間のデータの入出力を可能にする。
【００３１】
次に、上述の情報処理装置１００で、Ｉ／Ｏカード１０にエラーが発生した場合に実行される処理について説明する。図４は、Ｉ／Ｏカード１０にエラーが発生した場合に情報処理装置１００で実行される処理の一例を示すシーケンス図である。
【００３２】
まず、ＦＰＧＡ４０がポートのエラーを検出すると、Ｉ／Ｏライブラリ２１３に、エラー検出を通知する（Ａ）。ここでは、ポート１でエラーが検出されたとする。
【００３３】
Ｉ／Ｏライブラリ２１３は、ポート１の状態を「ビジー状態」に設定する。具体的には、Ｉ／Ｏライブラリ２１３は、ポート１を管理する管理データ１のビジーフラグに「ビジー」を設定する（Ｂ）。これにより、ＯＳ２１２は、アプリケーション２１１から入出力の要求を受けても、入出力処理を行うポートとしてポート１を選択しない。すなわち、ビジーフラグに「ビジー」を設定することによって、上位プログラムであるＯＳ２１２に、ポート１が入出力処理を実行できないビジー状態であることが通知される。また、ＯＳ２１２は、エラーが発生したポート１を使用して入出力処理を実行しないため、入出力エラーの発生が防止される。
【００３４】
次に、Ｉ／Ｏライブラリ２１３は、デバイスドライバ２１４経由で、Ｉ／Ｏカード１０からエラー情報を取得する（Ｃ）。具体的には、Ｉ／Ｏライブラリ２１３が、デバイスドライバ２１４に、エラー情報を取得するよう指示する。デバイスドライバ２１４は、ソフトエラー判定用レジスタ５０をチェックし、ソフトエラーが発生したか否かのエラー情報を取得する。デバイスドライバ２１４は、エラー情報をＩ／Ｏライブラリ２１３に送信する。
【００３５】
Ｉ／Ｏライブラリ２１３は、検出されたエラーがコンフィギュレーションＲＡＭ４０１のソフトエラーであった場合、エラーが検出されていないポート２の入出力処理が完了してから、ポート２を管理する管理データ２のビジーフラグに「ビジー」を設定する（Ｄ）。これによって、ＯＳ２１２は、アプリケーション２１１から入出力の要求を受けても、入出力処理を行うポートとしてポート２を選択しない。これにより、後述するＦＰＧＡ４０のリコンフィギュレーション中に、ポート２において入出力エラーが発生するのを防止できる。
【００３６】
次に、Ｉ／Ｏライブラリ２１３は、デバイスドライバ２１４を介して、ＦＰＧＡ４０にリコンフィギュレーション（回路配置データの再設定）を指示する（Ｅ）。具体的には、Ｉ／Ｏライブラリ２１３は、デバイスドライバ２１４に、ＦＰＧＡ４０のリコンフィギュレーションを要求する。デバイスドライバ２１４は、Ｉ／Ｏライブラリ２１３の要求を受けて、ＦＰＧＡ４０にリコンフィギュレーションを指示する。
【００３７】
ＦＰＧＡ４０のリコンフィギュレーションが終了すると、Ｉ／Ｏライブラリ２１３は、デバイスドライバ２１４を介してポート１及び２を再立ち上げすると共に、各ポートのビジー状態を解除する。具体的には、Ｉ／Ｏライブラリ２１３は、デバイスドライバ２１４に、各ポートに対するマイクロコードリロードや、セレクティブリセットを要求する。デバイスドライバ２１４は、Ｉ／Ｏライブラリ２１３からの要求を受けて、各ポートに対してマイクロコードリロードや、セレクティブリセットを実行する。また、Ｉ／Ｏライブラリ２１３は、管理データのビジーフラグを「ビジー」から「非ビジー」に変更する。これにより、ＯＳ２１２は、ポート１又はポート２を利用した入出力処理を行うことができる。
【００３８】
次に、上述のシーケンス図に示した処理を実現するために制御装置２０が備える機能の一例について、図５の機能ブロック図を用いて説明する。各機能は、Ｉ／Ｏライブラリ２１３及びデバイスドライバ２１４のソフトウェア機構として実装される。
【００３９】
制御装置２０は、管理データ２２１、判定部２２２、設定部２２３、指示部２２４、及び再起動部２２５を備える。
【００４０】
判定部２２２は、Ｉ／Ｏカード１０のソフトエラー判定用レジスタ５０からエラー情報を取得し、検出されたエラーが、コンフィギュレーションＲＡＭ４０１のソフトエラーか否か判定する。判定部２２２は、判定結果を設定部２２３に出力する。
【００４１】
設定部２２３は、ＦＰＧＡ４０から、入出力ポート３０Ａ及び３０Ｂのいずれかでエラーが検出されると、エラーが発生したポートを管理する管理データのビジーフラグに、「ビジー」を設定する。また、設定部２２３は、判定部２２２から判定結果を受付け、検出されたエラーがコンフィギュレーションＲＡＭ４０１のソフトエラーである場合、エラーが発生していないポートを管理する管理データのビジーフラグに、「ビジー」を設定する。また、設定部２２３は、エラーが発生していないポートを管理する管理データのビジーフラグに「ビジー」を設定したことを、指示部２２４に通知する。
【００４２】
指示部２２４は、設定部２２３からの通知を受けて、ＦＰＧＡ４０にリコンフィギュレーションを指示する。ＦＰＧＡ４０は、指示部２２４からの指示を受けて、リコンフィギュレーションを実行する。
【００４３】
指示部２２４は、ＦＰＧＡ４０のリコンフィギュレーションが終了すると、その旨を再起動部２２５に通知する。
【００４４】
再起動部２２５は、ＦＰＧＡ４０のリコンフィギュレーションが終了すると、各ポートのビジー状態を解除し、入出力ポート３０Ａ及び３０Ｂの再立ち上げを実行する。具体的には、再起動部２２５は、ＦＰＧＡ４０からリコンフィギュレーションの終了通知を受付けると、管理データのビジーフラグを、「ビジー」から「非ビジー」に変更するとともに、入出力ポート３０Ａ及び３０Ｂの再立ち上げを実行する。
【００４５】
次に、制御装置２０が実行する処理の一例について説明する。図６は、制御装置２０が実行する処理の一例を示すフローチャートである。
【００４６】
設定部２２３は、ＦＰＧＡ４０が入出力ポート３０Ａ又は３０Ｂのエラーを検出したか否か判定する（ステップＳ１１）。
【００４７】
ステップＳ１１の判定がＮＯの場合、設定部２２３は、ステップＳ１１の処理を継続する。ステップＳ１１の判定がＹＥＳの場合、設定部２２３は、エラーが検出されたポートを管理する管理データのビジーフラグに、「ビジー」を設定する（ステップＳ１２）。
【００４８】
次に、判定部２２２がエラー情報を取得する（ステップＳ１３）。判定部２２２は、取得したエラー情報に基づいて、入出力ポート３０Ａ又は３０Ｂで発生したエラーが、コンフィギュレーションＲＡＭ４０１のソフトエラーか否か判定する（ステップＳ１４）。
【００４９】
ステップＳ１４の判定がＮＯの場合、図５に図示しないエラー処理部によって、入出力エラーを復旧するための入出力エラー処理が実行される（ステップＳ２０）。
【００５０】
ステップＳ１４の判定がＹＥＳの場合、設定部２２３は、エラーが検出されていない他ポートが入出力処理を実行しているか否か判定する（ステップＳ１５）。他ポートが入出力処理を実行中の場合（ステップＳ１５／ＹＥＳ）、設定部２２３は、他ポートが入出力処理を完了するまで、ステップＳ１５の処理を繰り返す。
【００５１】
他ポートが入出力処理を実行していない場合（ステップＳ１５／ＮＯ）、設定部２２３は、他ポートを管理する管理データのビジーフラグに「ビジー」を設定する（ステップＳ１６）。
【００５２】
次に、指示部２２４が、ＦＰＧＡ４０にリコンフィギュレーションを指示する（ステップＳ１７）。再起動部２２５は、ＦＰＧＡ４０のリコンフィギュレーションが終了したか否か判定する（ステップＳ１８）。
【００５３】
ＦＰＧＡ４０のリコンフィギュレーションが終了していない場合（ステップＳ１８／ＮＯ）、再起動部２２５は、ステップＳ１８の処理を継続する。ＦＰＧＡ４０のリコンフィギュレーションが終了した場合（ステップＳ１８／ＹＥＳ）、再起動部２２５は、ポートの再立ち上げ、及び管理データの「ビジー」状態を解除し（ステップＳ１９）、処理を終了する。
【００５４】
以上の説明から明らかなように、上述の実施例によれば、設定部２２３は、例えば、ポート１で発生したエラーがコンフィギュレーションＲＡＭ４０１のソフトエラーである場合、ポート２で実行中の入出力処理が完了してから、ポート２を「ビジー」状態に設定する。そして、指示部２２４は、ポート２が「ビジー」状態に設定されてから、ＦＰＧＡ４０にリコンフィギュレーションを指示する。これにより、ポート２が入出力処理を実行している最中に、ＦＰＧＡ４０がリコンフィギュレーションを開始することによって、ポート２の入出力処理が中断されるのを防止できる。その結果、リコンフィギュレーションの開始による入出力エラーの発生が防止されるため、Ｉ／Ｏカード１０の可用性が低下するのを防げる。また、ポート２は実行中の入出力処理を完了することができるため、Ｉ／Ｏカード１０の可用性が高まる。また、ＦＰＧＡ４０がリコンフィギュレーションを実行している間、ポート２は、「ビジー」状態となっているため、ポート２を用いた入出力処理を防止できる。これにより、ＦＰＧＡ４０がリコンフィギュレーションを実行している間の入出力エラーの発生を防止することができる。また、設定部２２３は、ポート１で発生したエラーが、コンフィギュレーションＲＡＭ４０１のソフトエラーでない場合、ポート２を「ビジー」状態にしない。これにより、ＦＰＧＡ４０をリコンフィギュレーションする必要のないエラーの場合には、ポート２での入出力処理を継続できるため、Ｉ／Ｏカード１０の可用性が高まる。
【００５５】
また、設定部２２３は、エラーが検出されたポートを、ビジー状態に設定する。例えば、設定部２２３は、ポート１でエラーが検出された場合、ポート１をビジー状態に設定する。これにより、エラーが検出されたポートを用いた入出力処理を防止できるため、入出力エラーの発生を防止することができる。
【００５６】
また、ＦＰＧＡ４０のリコンフィギュレーションが完了すると、再起動部２２５が「ビジー」状態を解除し、入出力ポートを再立ち上げする。これにより、Ｉ／Ｏカード１０を用いた入出力処理が再び実行可能となるため、Ｉ／Ｏカード１０を用いた入出力処理が行えない期間は、ＦＰＧＡ４０がリコンフィギュレーションを実行している期間となる。つまり、Ｉ／Ｏカード１０が使用できないために、デバイスドライバ２１４及びＩ／Ｏライブラリ２１３の上位プログラムであるＯＳ２１２へ与える影響は、ＦＰＧＡ４０がリコンフィギュレーションを実行している期間となるので、Ｉ／Ｏカード１０の可用性が高まる。
【００５７】
以上、本件の実施例について詳述したが、本件は係る特定の実施例に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【００５８】
上述の実施例では、情報処理装置１００が備えるＩ／Ｏカードの数は１つであったが、情報処理装置１００は、Ｉ／Ｏカードを複数備えていてもよい。例えば、図７のように、情報処理装置１００は、Ｉ／Ｏカード１０Ａ〜１０Ｃを備え、制御装置２０は、Ｉ／Ｏカード１０Ａ〜１０Ｃのそれぞれを制御するデバイスドライバ２１４Ａ〜２１４Ｃを備えていてもよい。
【００５９】
また、Ｉ／Ｏカードが備える入出力ポートの数は２つに限られるものではない。例えば、入出力ポートを図７のＩ／Ｏカード１０Ｂのように３つ備えていてもよい。また、上述の制御装置２０は、図７に示すように、複数のポートを単一のＦＰＧＡで制御するＩ／Ｏカード１０Ａ及び１０Ｂと、１つのポートを単一のＦＰＧＡで制御するＩ／Ｏカード１０Ｃが混在する環境で使用することも可能である。これにより、異なる構成を有する情報処理装置においても、各Ｉ／Ｏカードの可用性を高めることができる。
【００６０】
なお、上記の制御装置２０が有する機能は、ＣＰＵ、ＲＯＭ、ＲＡＭ等を備えるコンピュータによって実現することができる。その場合、制御装置２０が有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。
【００６１】
プログラムを流通させる場合には、例えば、そのプログラムが記録されたＤＶＤ（Digital Versatile Disc）、ＣＤ−ＲＯＭ（Compact Disc Read Only Memory）などの可搬型記録媒体の形態で販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
【００６２】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【符号の説明】
【００６３】
１０…Ｉ／Ｏカード
２０…制御装置
３０Ａ、３０Ｂ…入出力ポート
４０…ＦＰＧＡ
２２２…判定部
２２３…設定部
２２４…指示部
２２５…再起動部
【図１】
0005499950.tif 000002
【図２】
0005499950.tif 000003
【図３】
0005499950.tif 000004
【図４】
0005499950.tif 000005
【図５】
0005499950.tif 000006
【図６】
0005499950.tif 000007
【図７】
0005499950.tif 000008