(57)【要約】  処理部（２）からの取得要求に応じて対象装置（５）からデータを取得する制御を行なう制御部（３）は、擬似的に障害を発生させる疑似障害モードが有効となっている場合に、発生させる疑似障害の障害種別に応じたエラーを、前記取得要求に応じて前記対象装置（５）から取得されたデータに対して設定するエラー設定部（３４）と、前記疑似障害モードが有効となっている場合に、前記データからエラーを検出すると、当該エラーに対応した障害種別についての障害応答を、前記処理部（２）に通知するエラー処理部（３５）とを備える。
2012137323.tif 000002
【特許請求の範囲】
【請求項１】
処理部と、前記処理部からの取得要求に応じて対象装置からデータを取得する制御を行なう制御部とを備えた情報処理装置であって、
前記制御部は、
擬似的に障害を発生させる疑似障害モードが有効となっている場合に、発生させる疑似障害の障害種別に応じたエラーを、前記取得要求に応じて前記対象装置から取得されたデータに対して設定するエラー設定部と、
前記疑似障害モードが有効となっている場合に、前記データからエラーを検出すると、当該エラーに対応した障害種別についての障害応答を、前記処理部に通知するエラー処理部とを備えることを特徴とする、情報処理装置。
【請求項２】
前記エラー処理部は、
検出したエラーのうち、訂正可能なエラーの訂正を行なうエラー訂正部と、
前記疑似障害モードが有効となっている場合で、且つ、前記データからエラーを検出した場合、前記エラー訂正部によるエラーの訂正を行なわせずに、当該エラーに対応した障害種別についての障害応答を前記処理部に通知する疑似障害処理部と、を備えることを特徴とする、請求項１記載の情報処理装置。
【請求項３】
前記エラー処理部は、
前記データに対するエラーチェックによりエラーが含まれるか否かを検出するとともに、前記データにエラーが含まれる場合にエラービット位置を検出するエラー検出部を備え、
前記エラー処理部は、前記疑似障害モードが有効となっている場合であって、且つ、前記エラー検出部によるエラーチェックによってエラービット位置が検出された場合に、当該エラービット位置に対応した障害種別についての障害応答を、前記処理部に通知することを特徴とする、請求項１又は請求項２記載の情報処理装置。
【請求項４】
前記エラー検出部は、前記データについてＥＣＣ（Error Correcting Code）を用いて前記エラービット位置を検出することを特徴とする、請求項３記載の情報処理装置。
【請求項５】
前記障害種別に応じたエラーのエラービット位置を示すエラー情報を生成するための条件に関する障害設定情報を保持する保持部と、
前記処理部から前記取得要求を受け、且つ前記取得要求により前記対象装置から取得されるデータが、前記保持部に保持された障害設定情報における条件を満たす場合に、疑似的に発生させる前記障害種別に応じたエラー情報を生成し、生成したエラー情報を前記エラー設定部に出力する疑似障害設定部とを備え、
前記エラー設定部は、前記疑似障害設定部から入力されたエラー情報に基づいて、発生させる疑似障害の障害種別に応じたエラーを、前記取得要求に応じて前記対象装置から取得されたデータに対して設定することを特徴とする、請求項１〜４のいずれか１項記載の情報処理装置。
【請求項６】
前記障害設定情報は、前記障害種別に対応付けられた障害発生アドレス情報を含み、
前記疑似障害設定部は、前記取得要求に係るデータの取得対象のアドレスが、前記障害発生アドレス情報が示す範囲に含まれる場合に、当該取得対象のアドレスが含まれる障害発生アドレス情報に対応する障害種別を、前記発生させる障害種別として選択することを特徴とする、請求項５記載の情報処理装置。
【請求項７】
前記疑似障害モードを有効に設定させる疑似障害モード要求を発行する設定部を備え、
前記疑似障害設定部は、
前記設定部から前記疑似障害モード要求を入力されると、疑似障害モードを有効化する疑似障害モード設定部を備え、
前記取得要求を受け、且つ前記疑似障害モードが有効である場合に、前記障害種別に応じたエラー情報を生成し、生成したエラー情報を前記エラー設定部に出力することを特徴とする、請求項５又は請求項６記載の情報処理装置。
【請求項８】
前記疑似障害モード設定部は、前記障害設定情報が前記障害種別に対応付けられた障害発生回数を含み且つ前記疑似的に発生させる障害種別に応じたエラー情報の生成回数が前記障害発生回数に達した場合、及び前記設定部から前記疑似障害モードを無効に設定させる疑似障害モード終了要求を入力された場合、の少なくとも一方の場合に、前記疑似障害モードを無効化することを特徴とする、請求項７記載の情報処理装置。
【請求項９】
前記設定部は、前記疑似障害設定部に前記障害設定情報を出力し、
前記疑似障害設定部は、前記設定部から前記障害設定情報を入力されると、入力された前記障害設定情報を前記保持部に設定することを特徴とする、請求項７又は請求項８記載の情報処理装置。
【請求項１０】
前記保持部は、複数の障害種別についての障害応答を発生させる順序を示す障害発生順序情報を保持し、
前記疑似障害設定部は、前記取得要求を受けると、前記障害発生順序情報に基づき発生させる障害種別を選択し、前記取得要求により前記対象装置から取得されるデータが、前記保持部に保持された障害設定情報における、前記選択した障害種別に係る条件を満たす場合に、当該選択した障害種別に応じたエラー情報を生成し、生成したエラー情報を前記エラー設定部に出力することを特徴とする、請求項５〜９のいずれか１項記載の情報処理装置。
【請求項１１】
前記エラー処理部は、前記検出されたエラーに対応する障害種別が、前記処理部に応答を通知することができない障害であった場合、前記処理部に対する当該障害種別についての障害応答の通知を抑止することを特徴とする、請求項１〜１０のいずれか１項記載の情報処理装置。
【請求項１２】
処理部と、前記処理部からの取得要求に応じて対象装置からデータを取得する制御を行なう制御部とを備えた情報処理装置における疑似障害発生方法であって、
前記制御部において、
擬似的に障害を発生させる疑似障害モードが有効となっている場合に、発生させる疑似障害の障害種別に応じたエラーを、前記取得要求に応じて前記対象装置から取得されたデータに対して設定して、
前記疑似障害モードが有効となっている場合に、前記データからエラーを検出すると、当該エラーに対応した障害種別についての障害応答を、前記処理部に通知することを特徴とする、疑似障害発生方法。
【請求項１３】
前記制御部において、
検出したエラーのうち、訂正可能なエラーの訂正を行なうとともに、
前記疑似障害モードが有効となっている場合で、且つ、前記データからエラーを検出した場合、前記エラーの訂正を行なわずに、当該エラーに対応した障害種別についての障害応答を前記処理部に通知することを特徴とする、請求項１２記載の疑似障害発生方法。
【請求項１４】
前記データに対するエラーチェックによりエラーが含まれるか否かを検出するとともに、前記データにエラーが含まれる場合にエラービット位置を検出し、
前記疑似障害モードが有効となっている場合であって、且つ、前記エラーチェックによってエラービット位置が検出された場合に、当該エラービット位置に対応した障害種別についての障害応答を、前記処理部に通知することを特徴とする、請求項１２又は請求項１３記載の疑似障害発生方法。
【請求項１５】
前記情報処理装置が前記障害種別に応じたエラーのエラービット位置を示すエラー情報を生成するための条件に関する障害設定情報を保持部に保持し、
前記処理部から前記取得要求を受け、且つ前記取得要求により前記対象装置から取得されるデータが、前記保持部に保持された障害設定情報における条件を満たす場合に、疑似的に発生させる前記障害種別に応じたエラー情報を生成し、
生成したエラー情報に基づいて、発生させる疑似障害の障害種別に応じたエラーを、前記データに対して設定することを特徴とする、請求項１２〜１４のいずれか１項記載の疑似障害発生方法。
【請求項１６】
前記障害設定情報は、前記障害種別に対応付けられた障害発生アドレス情報を含み、
前記取得要求に係るデータの取得対象のアドレスが、前記障害発生アドレス情報が示す範囲に含まれる場合に、当該取得対象のアドレスが含まれる障害発生アドレス情報に対応する障害種別を、前記発生させる障害種別として選択することを特徴とする、請求項１５記載の疑似障害発生方法。
【請求項１７】
設定部から前記疑似障害モードを有効に設定させる疑似障害モード要求を入力されると、疑似障害モードを有効化し、
前記取得要求を受け、且つ前記疑似障害モードが有効である場合に、前記障害種別に応じたエラー情報を生成して、
生成したエラー情報に基づいて、発生させる疑似障害の障害種別に応じたエラーを、前記データに対して設定することを特徴とする、請求項１５又は請求項１６記載の疑似障害発生方法。
【請求項１８】
前記障害設定情報が前記障害種別に対応付けられた障害発生回数を含み且つ前記疑似的に発生させる障害種別に応じたエラー情報の生成回数が前記障害発生回数に達した場合、及び前記設定部から前記疑似障害モードを無効に設定させる疑似障害モード終了要求を入力された場合、の少なくとも一方の場合に、前記疑似障害モードを無効化することを特徴とする、請求項１７記載の疑似障害発生方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、情報処理装置及び疑似障害発生方法に関する。
【背景技術】
【０００２】
サーバやＰＣ（Personal Computer）等の情報処理装置で用いられるＩＯ（Input Output）装置等のハードウェアに障害が発生した場合、この障害の発生をトリガとして、システムのハングアップ等の様々なトラブルが発生することがある。
情報処理装置において上記のようなトラブルが発生した場合には、発生したトラブルの検証により、障害原因の特定及びその対処が行なわれる。【０００３】
発生したトラブルの検証は、原因として想定される障害をハードウェアにおいて再現した、再現テストにより行なわれることがある。この再現テストは、例えば、プロセッサ等のホストに接続されたＩＯ装置等のハードウェアにおいて疑似的に障害（疑似障害）を発生させることによって行なわれる。
なお、再現テストは、例えばクライアント環境でトラブルが発生した場合等、トラブルが発生した実際の環境を用いることが難しい場合や、実際には障害の発生していないハードウェアを用いてトラブルの検証を行ないたい場合等に行なわれることがある。【０００４】
また、ＩＯ装置等のハードウェアで発生した障害に対する、デバイスドライバのリカバリ動作の確認等を行なう場合にも、再現テストと同様に、ホストに接続されたＩＯ装置で疑似障害を発生させてトラブルの検証が行なわれる場合がある。
上述の如き再現テストやリカバリ動作の確認等のテストを行なうために、ＨＤＤ（Hard Disk Drive）等のＩＯ装置等で疑似障害を発生させる技術としては、例えば以下の（ｉ）又は（ii）に示すような手法が挙げられる。【０００５】
（ｉ）ＩＯ装置のファームウェアで特殊な条件を認識した場合に、疑似障害を発生させる手法がある。なお、特殊な条件としては、例えばＩＯ装置のファームウェアが疑似障害用の設定に変更されたことや、ＩＯ装置がＳＣＳＩ（Small Computer System Interface）に対応する場合は、モードセレクト（Mode Select）コマンドによって障害動作モードに移行されたこと、等が挙げられる。【０００６】
（ii）また、ＩＯ装置等から転送されるデータのうちのデータ部（メインデータ）に対して特殊なパターンを付加しておき、このパターンに対応して予め決められた疑似障害を解釈させて、その疑似障害を発生させる手法がある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０００−４８４７８号公報
【特許文献２】特開平９−２０４３１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記（ｉ）又は（ii）に示す手法により、ＩＯ装置等で疑似障害を発生させる場合、それぞれ以下に示すような問題がある。
上記（ｉ）に示す手法では、疑似障害を発生させるための特殊なＩＯ装置のファームウェアが用いられており、通常の運用（実運用）に用いられるファームウェアでは疑似障害の状態を実現することが困難であるという問題がある。【０００９】
また、疑似障害を発生させる際には、実運用に用いられるファームウェアから疑似障害発生用のＩＯ装置のファームウェアに入れ替える処理が行なわれるため、テストが実行されるまでに時間がかかるという問題がある。
さらに、発生させる疑似障害の種別を設定して、一律に同じ障害を発生させることはできるが、複数の障害を複合したテストを行なうことは難しい。【００１０】
上記（ii）に示す手法では、データ部に疑似障害を発生させるための特殊なパターンを付加するために、実運用に用いられる実運用データを加工する処理が行なわれることから、実運用データをそのまま使用して疑似障害を発生させることが困難であるという問題がある。
また、データ部に付加されたパターンに対応する疑似障害を解釈させる機能を用意することになるが、解釈する処理によってオーバーヘッドが発生するため、テストの実行に時間がかかるという問題がある。【００１１】
上述の点に鑑み、本件の目的の１つは、実運用の情報処理装置を用いたテストにおいて、疑似障害を発生させる際に実運用に与える影響を低減することである。
また、本件の他の目的の１つは、実運用の情報処理装置を用いたテストの精度の向上を図ることである。
さらに、本件の他の目的の１つは、実運用の情報処理装置を用いたテストを容易に実現することである。【００１２】
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【００１３】
本件の情報処理装置は、処理部と、前記処理部からの取得要求に応じて対象装置からデータを取得する制御を行なう制御部とを備えた情報処理装置であって、前記制御部は、擬似的に障害を発生させる疑似障害モードが有効となっている場合に、発生させる疑似障害の障害種別に応じたエラーを、前記取得要求に応じて前記対象装置から取得されたデータに対して設定するエラー設定部と、前記疑似障害モードが有効となっている場合に、前記データからエラーを検出すると、当該エラーに対応した障害種別についての障害応答を、前記処理部に通知するエラー処理部とを備えるものである。【００１４】
また、本件の疑似障害発生方法は、処理部と、前記処理部からの取得要求に応じて対象装置からデータを取得する制御を行なう制御部とを備えた情報処理装置における疑似障害発生方法であって、前記制御部において、擬似的に障害を発生させる疑似障害モードが有効となっている場合に、発生させる疑似障害の障害種別に応じたエラーを、前記取得要求に応じて前記対象装置から取得されたデータに対して設定して、前記疑似障害モードが有効となっている場合に、前記データからエラーを検出すると、当該エラーに対応した障害種別についての障害応答を、前記処理部に通知するものである。
【発明の効果】
【００１５】
開示の技術によれば、実運用の情報処理装置を用いたテストにおいて、疑似障害を発生させる際に実運用に与える影響を低減することができる。また、実運用の情報処理装置を用いたテストの精度の向上を図ることができる。さらに、実運用の情報処理装置を用いたテストを容易に実現することができる。
【図面の簡単な説明】
【００１６】
【図１】一実施形態に係る情報処理装置の構成例を示す図である。
【図２】本実施形態の制御部による疑似障害の設定手順例を説明するフローチャートである。
【図３】本実施形態の制御部による疑似障害の発生手順例を説明するフローチャートである。
【図４】本実施形態に係る制御部の詳細な構成例を示す図である。
【図５】本実施形態の制御部において用いられる障害種別情報の一例を説明する図である。
【図６】本実施形態の制御部において用いられる障害設定情報の一例を説明する図である。
【図７】本実施形態のエラー検出部によるエラービット位置の検出処理の一例を説明する図である。（ａ）は、エラー検出部において処理されるデータの一例を示す図であり、（ｂ）は、エラー検出部による、エラー設定データに対するＥＣＣデータチェックの結果を示す図である。
【図８】本実施形態の制御部による疑似障害の詳細な設定動作例を説明する図である。
【図９】本実施形態の制御部による疑似障害の詳細な発生動作例を説明する図である。
【図１０】本実施形態の制御部による疑似障害の詳細な発生手順例を説明するフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照して実施の形態を説明する。
〔１〕一実施形態
〔１−１〕全体の構成例
図１は、一実施形態に係る情報処理装置１の構成例を示す図である。
図１に例示するように、情報処理装置１は、処理部２、制御部３、記憶部４、及び対象装置５を備える。
【００１８】
処理部２は、種々の制御や演算を行なう処理装置であり、対象装置５としての記憶装置や図示しないＲＯＭ（Read Only Memory）等に格納されたプログラムを実行することにより、種々の機能を実現する。処理部２としては、例えば、少なくとも１つのＣＰＵ（Central Processing Unit）又はＭＰＵ（Micro Processing Unit）等のプロセッサが挙げられる。
【００１９】
記憶部（メモリ）４は、種々のデータやプログラムを一時的に格納する記憶領域であって、処理部２がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。なお、記憶部４としては、例えばＲＡＭ（Random Access Memory）等の揮発性メモリが挙げられる。
対象装置５は、例えばＨＤＤ等の磁気ディスク装置やＳＳＤ（Solid State Drive）等の半導体ディスク装置、光ディスクやフラッシュメモリ等に記録されたデータを読み取る光学ドライブ装置やカードリーダ等、又はテープドライブ等の各種ＩＯ装置であり、種々のデータやプログラム等を格納するハードウェアである。対象装置５は、制御部３に接続され、制御部３による制御を受けて、格納しているデータやプログラム等を出力する。
【００２０】
以下、対象装置５を、ＩＯ装置５ともいう。
制御部３は、処理部２及び対象装置５に接続され、ホストとしての処理部２からの要求に応じて対象装置５に対する制御を行なうものであり、例えば、処理部２からの取得要求に応じてＩＯ装置５からデータを取得する制御を行なう。制御部３としては、例えばＩＯコントローラが挙げられる。
【００２１】
具体的には、制御部３は、例えば処理部２からＩＯ装置５に対するデータの取得要求を受けると、当該取得要求に応じたデータをＩＯ装置５から取得し（読み込み）、取得したデータを処理部２に対して出力する。このとき、制御部３は、取得要求に応じてＩＯ装置５から取得されたデータ（以下、元データともいう）に対するエラーチェックを行ない、エラーが検出され、当該エラーを訂正可能な場合には、このエラーの訂正処理を行なう。
【００２２】
また、本実施形態における制御部３は、処理部２からＩＯ装置５に対する取得要求等に応じて、当該ハードウェアの疑似障害を発生させ、発生させた疑似障害を、取得要求等への応答として、処理部２に通知する機能を備える。
このために、本実施形態における制御部３は、エラー設定部３４及びエラー処理部３５を備える。
【００２３】
エラー設定部３４は、疑似的に障害を発生させる疑似障害モードが有効となっている場合に、発生させる疑似障害の障害種別に応じたエラーを、処理部２からの取得要求に応じてＩＯ装置５から取得されたデータに対して設定する。
ここで、疑似障害モードは、実運用に用いられるファームウェアを用いたまま疑似的に障害を発生させる、制御部３の動作モードの一つであり、情報処理装置１の管理等を行なう図示しないサービスプロセッサ等の外部ホストにより、疑似障害モードの有効／無効が設定される。
【００２４】
また、障害種別は、制御部３において疑似障害として発生させる少なくとも１つの障害を示す情報であり、障害種別に応じたエラーは、データに対する後述するエラーチェックによってエラーが検出されるように、取得要求に応じて取得されたデータに対して設定されるものである。なお、障害種別及び障害種別に応じたエラーの詳細な説明は、後述する。
【００２５】
エラー処理部３５は、疑似障害モードが有効となっている場合に、データからエラーを検出すると、当該エラーに対応した障害種別についての障害応答を、処理部２に通知する。この障害応答は、エラー設定部３４によって設定された疑似エラーに対する障害応答であり、疑似的にＩＯ装置５に障害が発生したものとして処理部２へ通知される応答となる。
【００２６】
具体的には、エラー処理部３５は、上述の如き情報処理装置１の通常の運用（実運用）と同様に、元データに対してエラー設定部３４によりエラーが設定されたデータ（以下、エラー設定データともいう）に対するエラーチェックを行なう。
エラー処理部３５は、エラー設定部３４によって設定されたエラーが、エラー設定データに対するエラーチェックにより検出された場合、当該エラーに関する情報を制御部３から入力される。
【００２７】
そして、エラー処理部３５は、入力されたエラーに対応した障害種別についての障害応答を作成し、作成した障害情報を処理部２に通知する。
つまり、エラー処理部３５は、疑似障害モードが有効となっている場合に、エラーチェックにより、エラー設定部３４が意図的に訂正可能なエラー（例えば１ビットエラー）を設定したエラー設定データについてエラーが検出された場合には、エラー訂正を行なうことなく、検出したエラーに対応した障害種別についての障害応答を処理部２に通知する。
【００２８】
処理部２は、エラー処理部３５から、制御部３に出力した取得要求に対する応答として障害応答を入力されると、当該障害応答に基づいて、上述した再現テストやデバイスドライバのエラーリカバリ動作確認等のテストを行なうことができる。
〔１−２〕制御部の動作例
次に、上述の如く構成された本実施形態の一例としての情報処理装置１における制御部３の動作例を、図２及び図３を参照しながら説明する。
【００２９】
図２は、本実施形態の制御部３による疑似障害の設定手順の例を説明するフローチャートであり、図３は、制御部３による疑似障害の発生手順の例を説明するフローチャートである。
はじめに、図２に示すように、制御部３により、障害種別に応じたエラー、つまり発生させる疑似障害に対応したエラーが選択される（ステップＳ１）。
【００３０】
次いで、エラー設定部３４により、選択したエラーが、取得要求に応じて対象装置５から取得されたデータに対して設定される（ステップＳ２）。つまり、エラー設定部３４により、エラーが元データに対して埋め込まれる。
そして、図３に示すように、制御部３において、処理部３からの取得要求に応じて対象装置５から取得されたデータ（元データ）、又はエラーが設定されたエラー設定データに対してエラーチェックが行なわれ（ステップＳ３）、エラー検出の有無が判断される（ステップＳ４）。
【００３１】
エラーが検出された場合（ステップＳ４のＹｅｓルート）、エラー処理部３５により、当該データに設定されたエラーに対応した障害種別について、障害応答が作成され、当該応答が処理部２に通知される（ステップＳ５）。そして、制御部３による疑似障害の設定及び発生処理が終了する。
一方、エラーが検出されなかった場合（ステップＳ４のＮｏルート）、制御部３により、元データが処理部２に対して転送され（ステップＳ６）、処理が終了する。すなわち、制御部３によるエラーチェックによりエラーが検出されなかった場合には、通常の運用に沿って、制御部３により、処理部２からの取得要求に応じて対象装置５から取得されたデータが、処理部２に対して転送される。なお、ステップ４でエラーが検出された場合であっても、制御部３が疑似障害の発生動作中、つまり疑似障害モードが有効でなければ、エラー処理部３５により検出されたエラーが訂正され、エラー訂正されたデータがステップＳ６において処理部２に転送されても良い。
【００３２】
このように、本実施形態の一例としての制御部３によれば、疑似障害モードが有効となっている場合に、エラー設定部３４によって設定されたエラーが、データに対するエラーチェックにより検出された場合、エラー処理部３５により、当該エラーに対応した障害種別についての障害応答が処理部２に通知される。
すなわち、制御部３は、元データに対して、発生させる障害種別に応じたエラーを設定するエラー設定部３４を備えることで、制御部３が備えるエラーチェック機能を用いて、元データに設定されたエラーを検出することができる。また、制御部３は、疑似障害モードが有効となっている場合に、検出されたエラーに対応した障害種別についての障害応答を、処理部２に通知するエラー処理部３５を備えることで、ＩＯ装置５に障害が発生したことを示す障害応答を疑似的に発生することができる。
【００３３】
このように、制御部３が備えるエラーチェック機能を疑似障害の発生に用いることができるため、エラー設定部３４及びエラー処理部３５を備えるだけで、疑似障害を発生させるための手順を少なくすることができ、実運用の情報処理装置１を用いたテストを容易に実現することができる。つまり、実運用に用いられる情報処理装置１を利用して、疑似障害の発生を伴うテストを容易に実現することができる。
【００３４】
また、制御部３は、取得要求に応じて、ＩＯ装置５から実運用に用いられるデータを取得する。従って、制御部３によるデータに対するエラーチェックによってエラーが検出されない場合や、制御部３により疑似障害発生の動作が行なわれていない状況、つまり疑似障害モードが無効となっている場合にエラーが検出された場合には、制御部３は、実運用に沿った処理を行なうことができる。すなわち、エラーチェックによってエラーが検出されない場合には、制御部３は、実運用に沿って、取得した元データを処理部２に出力することができる。また、エラー設定部３４によって設定されたエラー以外のエラーが検出された場合には、制御部３は、通常の運用に沿って、エラーが発生した旨を処理部２に通知するか、制御部３がエラー訂正機能を備えていれば、当該エラーが訂正されたデータを処理部２に出力することができる。さらに、制御部３では、実運用に用いられるファームウェアを用いた状態で、疑似障害モードの有効／無効を切り替えるだけで、処理部２に対する疑似障害の通知を実現することができる。
【００３５】
従って、実運用の情報処理装置１を用いたテストにおいて、疑似障害を発生させる際に実運用に与える影響を低減することができるとともに、通常の運用データを用いることができるため、当該テストの精度の向上を図ることができる。
〔１−３〕制御部の詳細な構成例
次に、本実施形態の制御部３の詳細な構成例について説明する。
【００３６】
図４は、本実施形態に係る制御部３の詳細な構成例を示す図であり、図５は、本実施形態の制御部３において用いられる障害種別情報の一例を、図６は、障害設定情報の一例を、それぞれ説明する図である。
この図４に例示するように、情報処理装置１は、外部ホスト６を備える。
また、制御部３は、図１に示したエラー設定部３４及びエラー処理部３５に加えて、疑似障害設定部３１、保持部３２、及びデータ読込部３３を備えることができる。
【００３７】
外部ホスト（設定部）６は、制御部３に対して、上述した疑似障害モードの有効／無効を設定させるものであり、疑似障害モードを有効に設定させる疑似障害モード要求、及び疑似障害モードを無効に設定させる疑似障害モード終了要求を発行する。
また、外部ホスト６は、制御部３に対して、後述するエラー情報を生成するための条件に関する障害設定情報を出力する。
【００３８】
外部ホスト６としては、情報処理装置１の管理等を行なうサービスプロセッサ等が挙げられる。
保持部３２は、疑似障害設定処理部３１においてエラー情報を生成するための条件に関する障害設定情報を保持するものであり、例えばＲＡＭ等の揮発性メモリが挙げられる。
保持部３２は、外部ホスト６から疑似障害設定部３１を経由して入力された障害設定情報を、図６に例示するようなテーブル（障害設定テーブルＴ２）形式で格納し、保持する。
【００３９】
この障害設定情報は、障害発生回数及び障害発生アドレス情報のうちの少なくとも１つを含み、これら障害発生回数又は／及び障害発生アドレス情報は、発生させる障害種別それぞれに対応付けられる。
障害設定情報及びエラー情報の詳細な説明については、後述する。
疑似障害設定部３１は、外部ホスト６から疑似障害モード要求を入力されると、疑似障害を発生させるための設定処理を行なう。また、疑似障害設定部３１は、処理部２から取得要求を入力されると、設定処理によって設定された情報に基づいて、発生させる障害種別に応じたエラー情報を生成し、エラー設定部３４に出力する。
【００４０】
この疑似障害設定部３１は、疑似障害設定処理部３１ａ、疑似障害モード設定部３１ｂ、及びエラー情報生成部３１ｃを備える。
疑似障害設定処理部３１ａは、外部ホスト６から障害設定情報を含む疑似障害モード要求を入力されると、入力された障害設定情報を保持部３２に設定するとともに、疑似障害モード設定部３１ｂに対して、疑似障害モードを有効化させる処理を行なう。
【００４１】
疑似障害モード設定部３１ｂは、制御部３の動作モードである疑似障害モードの有効／無効を管理するものであり、疑似障害モード設定部３１ｂとしては、例えばレジスタが挙げられる。
なお、上述の如く、疑似障害モードは、実運用に用いられるファームウェアを用いたまま疑似的に障害を発生させる、制御部３の動作モードの一つである。つまり、疑似障害モードは、制御部３により、実運用における処理部２からの取得要求に係る処理は継続したまま、データに対する所定のエラー設定・検出処理を行なうことで、処理部２に通知する疑似障害の障害応答を生成するものである。
【００４２】
なお、疑似動作モードの有効／無効の設定は、処理部２が搭載されているボード上のＤＩＰ（Dual In-line Package）スイッチ等の切り替えによって行なわれても良い。
疑似障害設定処理部３１ａは、外部ホスト６からの疑似障害モード要求に応じて、この疑似障害モード設定部３１ｂに対して、例えばオンを示すフラグ“１”を設定する。これにより、疑似障害モード設定部３１ｂは、疑似障害モードを有効化する。
【００４３】
また、疑似障害設定処理部３１ａは、例えば疑似的に発生させる障害種別に応じたエラー情報の生成回数が、それぞれ、障害設定情報に設定された対応する障害発生回数に達した場合、及び外部ホスト６から疑似障害モード終了要求を入力された場合、の少なくとも一方の場合に、疑似障害モードを無効化する。つまり、疑似障害設定処理部３１ａは、疑似障害モードの終了として、疑似障害モード設定部３１ｂに対して、例えばオフを示すフラグ“０”を設定する。これにより、疑似障害モード設定部３１ｂは、疑似障害モードを無効化する。
【００４４】
さらに、疑似障害設定処理部３１ａは、データ読込部３３から、処理部２により発行された取得要求に係るデータの取得対象のアドレス、つまりＩＯ装置５のアドレスを入力されると、疑似障害モード設定部３１ｂを参照し、疑似障害モードがオンであるか否かを確認する。
疑似障害モードがオフである場合、疑似障害設定処理部３１ａは処理を終了する。そして、制御部３は、実運用に沿って、処理部２からの取得要求に応じてＩＯ装置５からデータを取得する制御等、制御部３の実運用を行なう動作モードである通常動作モードとしての処理を行なう。
【００４５】
一方、疑似障害モードがオンである場合、疑似障害設定処理部３１ａは、疑似障害モードに移行し、データ読込部３３から入力されたＩＯ装置５のアドレスに基づいて、保持部３２が保持する障害設定情報から、発生させる障害種別を選択する。
なお、疑似障害設定処理部３１ａによる障害種別の選択手法については、後述する。
また、疑似障害設定処理部３１ａは、例えば図５に示す障害種別情報に基づいて、選択した障害種別に応じたエラー情報をエラー情報生成部３１ｃに設定する。
【００４６】
エラー情報生成部３１ｃは、疑似障害設定処理部３１ａによりエラー情報を設定され、当該エラー情報を一時的に保持するものである。また、エラー情報生成部３１ｃは、保持するエラー情報をエラー設定部３４に対して出力する。エラー情報生成部３１ｃとしては、例えばレジスタが挙げられる。
次に、障害種別情報について説明する。
【００４７】
障害種別情報は、疑似障害として発生させる障害の種別である少なくとも１つの障害種別と、この障害種別それぞれに対応付けられたエラービット位置とを含む。
発生させる疑似障害の障害種別としては、処理部２に応答を通知することができない障害として、図５に例示するように、例えば制御部３からＩＯ装置５への要求等に対して、ＩＯ装置５において応答タイムアウトが発生したことを示す“応答タイムアウト”がある。また、他の障害種別としては、ＩＯ装置５が光学ドライブ装置やカードリーダ等である場合、読み取り対象の光ディスクやフラッシュメモリ等の媒体にエラーが生じたことを示す“媒体エラー”、ＩＯ装置５において何らかのハードウェア障害が発生したことを示す“ハードウェアエラー”がある。他にも、障害種別としては、ＩＯ装置５における、制御部３とのインタフェースにおいてエラーが生じたことを示す“インタフェースエラー”等がある。
【００４８】
なお、障害種別は、図５に例示したものに限定されず、ＩＯ装置５から取得したデータについてデータ化けが生じたことを示す“データ化け”や、例えばハードウェアエラー等を更に細分化した種別が定義されても良い。
また、図５に示すように、ＩＯ装置５において障害が発生しておらず、制御部３からの要求に対して正常に応答が返されたことを示す“正常応答”が、障害種別として定義されても良い。
【００４９】
エラービット位置は、後述するデータのエラーチェックによって検出されるエラービットの位置であり、障害種別のそれぞれに対応付けられる。また、エラー情報は、障害種別に応じたエラーのエラービット位置を示すエラーパターン（エラービット形式）であり、例えば、エラービット位置の値だけ他のビットの値と異なる、元データに対応したビット数のパターンである。
【００５０】
すなわち、疑似障害設定処理部３１ａは、上述の如き障害種別情報に基づいて、疑似障害として発生させる障害種別に対応付けられたエラービット位置を取得する。そして、疑似障害設定処理部３１ａは、エラー情報生成部３１ｃに対して、取得したエラービット位置に応じたビットを反転させることにより、当該エラービット位置を示すエラーパターン、つまりエラー情報を生成する。
【００５１】
例えばエラー情報生成部３１ｃがレジスタである場合、初期状態として当該レジスタの全てのビットに“０”が設定されるものとする。この状態において、疑似障害設定処理部３１ａは、取得したエラービット位置に対応したレジスタのビットに“１”を設定する。このように、疑似障害設定処理部３１ａにより、エラー情報生成部３１ｃに対して、エラービット位置に対応するビットに“１”が設定されることにより、エラーパターンの生成が行なわれる。
【００５２】
具体例を挙げると、図５に例示するように、疑似障害設定処理部３１ａは、障害種別として“応答タイムアウト”を選択した場合、障害種別情報に基づいて、障害種別に応じたエラービット位置としてビット“１”を取得する。この場合、疑似障害設定処理部３１ａによりエラー情報生成部３１ｃのビット“１”に対して“１”が設定され、それ以外のビット、すなわちビット“０”、ビット“２”〜“ＩＯ装置５から取得される元データの最大ビット”は、全て初期値である“０”となる。これにより、ビット“１”の値だけ“１”であるエラーパターンが生成される。以下、エラーが設定される元データの最大ビットを、ビットｎ（ｎは１以上の整数）とする。
【００５３】
同様に、疑似障害設定処理部３１ａにより、障害種別として“媒体エラー”が選択された場合、エラービット位置はビット“２”となり、ビット“２”の値だけ“１”であるエラーパターンが生成される。また、疑似障害設定処理部３１ａにより、障害種別として“ハードウェアエラー”が選択された場合、エラービット位置はビット“３”となり、ビット“３”の値だけ“１”であるエラーパターンが生成される。さらに、疑似障害設定処理部３１ａにより、障害種別として“インタフェースエラー”が選択された場合、エラービット位置はビット“４”となり、ビット“４”の値だけ“１”であるエラーパターンが生成される。
【００５４】
また、障害種別として“正常応答”が定義されており、疑似障害設定処理部３１ａにより、障害種別として“正常応答”が選択された場合、エラービット位置はビット“０”となり、ビット“０”の値だけ“１”であるエラーパターンが生成される。
なお、上述した障害種別情報は、外部ホスト６によって、例えばテーブル（障害種別テーブルＴ１）形式で、制御部３のファームウェア等に予め設定されても良い。又は、制御部３がＲＡＭ等の揮発性メモリやフラッシュメモリ等の読み書き可能な不揮発性メモリを備える場合には、これらＲＡＭやフラッシュメモリ等に格納され、外部ホスト６や制御部３のファームウェアにより変更可能であっても良い。また、この障害種別情報は、外部ホスト６によって疑似障害設定部３１に出力され、疑似障害設定処理部３１ａにより保持部３２に格納されても良い。
【００５５】
データ読込部３３は、処理部２からの取得要求に応じてＩＯ装置５からデータを取得し、取得したデータをエラー設定部３４に対して出力するものであり、データ読込処理部３３ａ及びバッファ３３ｂを備える。
データ読込処理部３３ａは、処理部２からの取得要求を受けると、当該取得要求に係るデータの取得対象のアドレス、つまりＩＯ装置５のアドレスを、疑似障害設定部３１（疑似障害設定処理部３１ａ）に対して出力する。
【００５６】
また、データ読込処理部３３ａは、当該取得要求に係るデータの取得対象のアドレスに対してアクセスを行ない、データ（元データ）を取得するとともに、当該データをバッファ３３ｂに対して出力する。
ここで、データ読込処理部３３ａが読み込むデータは、例えば情報処理装置１において、上述の如き再現テストが行なわれる場合には、実際に動作するアプリケーション等のソフトウェアによって読み込まれるデータである。
【００５７】
なお、データ読込処理部３３ａは、ＩＯ装置５から所定のブロック単位でデータを取得する。このブロックは、例えばエラー情報生成部３１ｃのレジスタサイズ、すなわちエラーパターンのビット数以上のサイズであることが好ましい。換言すれば、疑似障害設定処理部３１ａは、このブロックサイズ以下のサイズ（ビット数）となるようにエラーパターンを生成する。
【００５８】
バッファ３３ｂは、データ読込処理部３３ａによりＩＯ装置５から取得されたデータを一時的に格納するものであり、格納したデータをエラー設定部３４に対して出力する。バッファ３３ｂとしては、例えばＲＡＭ等の揮発性メモリが挙げられる。
エラー設定部３４は、エラー設定処理部３４ａ及びバッファ３４ｂを備える。
エラー設定処理部３４ａは、疑似障害設定部３１のエラー情報生成部３１ｃから入力されたエラーパターンに基づいて、発生させる疑似障害の障害種別に応じたエラーを、データ読込処理部３３ａのバッファ３３ｂから入力された元データに対して設定してエラー設定データを生成するものである。また、エラー設定処理部３４ａは、生成したエラー設定データをバッファ３４ｂに出力する。
【００５９】
具体的には、エラー設定処理部３４ａは、入力された元データ及びエラーパターンに対して、例えばビットごとに排他的論理和演算を行ない、エラーパターンにおいて“１”が設定されたビット位置に対応した位置の元データのビットを反転させる。
エラー設定処理部３４ａとしては、例えばＸＯＲ（Exclusive OR；排他的論理和）回路が挙げられる。
【００６０】
バッファ３４ｂは、エラー設定処理部３４ａにより生成されたエラー設定データを一時的に格納するものであり、格納したエラー設定データをエラー処理部３５に対して出力する。バッファ３４ｂとしては、例えばＲＡＭ等の揮発性メモリが挙げられる。
なお、疑似障害設定部３１によるエラーパターンの生成が行なわれない場合には、エラー設定処理部３４ａは、元データをバッファ３４ｂに出力する。
【００６１】
すなわち、エラーパターンが生成されない場合には、エラー設定処理部３４ａには、バッファ３３ｂからの元データのみが入力され、エラー情報生成部３１ｃからの入力は発生しないか、或いは全てのビットに“０”が設定されたデータが入力される。いずれの場合においても、エラー設定処理部３４ａにおける排他的論理和演算により、エラー設定処理部３４ａからバッファ３４ｂに出力されるデータは、元データと同じパターンとなる。
【００６２】
換言すれば、エラー設定部３４は、エラーパターンの生成が行なわれない場合、つまり制御部３による疑似障害の発生が行なわれない場合には、実運用に沿って、処理部２からの取得要求に応じたデータをＩＯ装置５から取得し、後段のエラー処理部３５に出力することができる。
なお、エラーパターンが生成されない場合としては、疑似障害モードがオフである場合のほか、疑似障害モードがオンであるが、処理要求によりＩＯ装置５から取得されるデータが、後述する障害設定情報における条件を満たさない場合等も含まれる。
【００６３】
図４に示すように、エラー処理部３５は、エラー検出部３５ａ、疑似障害処理部３５ｂ、及びエラー訂正部３５ｃを備える。
エラー検出部３５ａは、エラー設定部３４のバッファ３４ｂから入力された元データ又はエラー設定データに対するエラーチェックによりエラーが含まれるか否かを検出するとともに、エラーが含まれる場合にエラービット位置を検出する。以下、これら元データ又はエラー設定データを、単に入力されたデータという。
【００６４】
なお、エラーチェックとしては、例えばＥＣＣ（Error Correcting Code）等のエラー検出・訂正符号によるデータチェックが挙げられ、エラー検出部３５ａは、入力されたデータに対して、例えばＥＣＣを用いてエラービット位置を検出する。以下、エラー検出部３５ａが、ＥＣＣを用いたエラーチェックを行なうものとして説明する。
具体的には、エラー検出部３５ａは、入力されたデータに対してエラーチェックを行なった結果、エラーが検出された場合には、検出されたエラーのエラービット位置を、疑似障害処理部３５ｂに対して通知する。
【００６５】
また、エラー検出部３５ａは、エラーチェックによりエラーが検出された場合、及びされなかった場合のいずれの場合においても、入力されたデータを後段のエラー訂正部３５ｃに対して出力する。
このエラー検出部３５ａによるエラービット位置の検出処理については、後述する。
エラー訂正部３５ｃは、エラー検出部３５ａから入力されたデータにエラーが発生していない場合、入力されたデータを処理部２に対して出力する一方、当該データにエラーが発生している場合には、エラー検出部３５ａが検出したエラーのうち、訂正可能なエラーの訂正を行ない、訂正後のデータを処理部２に対して出力（転送）する。
【００６６】
また、エラー訂正部３５ｃは、疑似障害処理部３５ｂから出力停止指示を入力されると、エラー検出部３５ａから入力されたデータの処理部２への出力を抑止する。なお、このデータの出力の抑止は、例えばエラー訂正部３５ｃにより、入力されたデータの送信用の応答ヘッダに対するマスク処理等により実現することができる。なお、エラー検出部３５ａ、エラー検出部３５ａとエラー訂正部３５ｃとの間、若しくはエラー訂正部３５ｃに、後段へのデータ出力の抑止機能を備え、疑似障害処理部３５ｂが当該抑止機能に対して出力停止指示を通知することにより、データの出力の抑止が実現されても良く、その他、既知の種々の手法により実現することができる。
【００６７】
疑似障害処理部３５ｂは、疑似障害モードが有効となっている場合で、且つ、エラー検出部３５ａが、入力されたデータからエラーを検出した場合、エラー訂正部３５ｃによるエラーの訂正を行なわせずに、当該エラーに対応した障害種別についての障害応答を処理部２に通知する。
具体的には、疑似障害処理部３５ｂは、エラー検出部３５ａによるエラーチェックによってエラービット位置が検出された場合に、当該エラービット位置をエラー検出部３５ａから取得する。そして、疑似障害処理部３５ｂは、疑似障害モード設定部３１ｂを参照して疑似障害モードがオンであるか否かを確認する。
【００６８】
疑似障害モードがオフである場合には、疑似障害処理部３５ｂは、処理を終了する。
一方、疑似障害モードがオンである場合には、疑似障害処理部３５ｂは、例えばエラー訂正部３５ｃに対して、出力停止指示を出力する。また、疑似障害処理部３５ｂは、障害種別情報に基づいて、取得したエラービット位置に対応した障害種別を取得するとともに、取得した障害種別についての障害応答を作成し、当該障害応答を、処理部２に通知する。
【００６９】
なお、疑似障害モードがオフである場合に、疑似障害処理部３５ｂは、エラー訂正部３５ｃ等に対して出力停止指示を出力せず、エラー訂正部３５ｃは、実運用と同様にエラー設定データに対してエラー訂正を行ない、訂正後のデータを処理部２に対して出力しても良い。
また、疑似障害処理部３５ｂは、取得した障害種別が“応答タイムアウト”であった場合には、障害種別についての障害応答を作成せず、処理部２には障害応答を通知しないように構成することができる。
【００７０】
このように、本実施形態の一例としての制御部３においては、疑似障害モードがオフの場合、取得要求に応じてＩＯ装置５から取得されたデータは、要求元の処理部２に対して出力される。一方、疑似障害モードがオンの場合には、ＩＯ装置５において障害が発生した状況を疑似的に作り出すために、当該データの処理部２への出力が抑止される。
処理部２は、疑似障害処理部３５ｂから、制御部３に出力した取得要求に対する応答として障害応答を入力されると、当該障害応答に基づいて、上述した再現テストやデバイスドライバのエラーリカバリ動作確認等の処理を行なうことができる。
【００７１】
上述のように、制御部３は、処理部２からの取得要求により、ＩＯ装置５からデータを取得する通常の運用を行なうとともに、外部ホスト６から疑似障害モード要求を受けた場合に、本実施形態における疑似障害設定処理及び疑似障害発生処理を行なうことができる。
〔１−３−１〕障害設定情報の設定例
次に、保持部３２が保持する障害設定情報（障害設定テーブルＴ２）について、図６を参照しながら説明する。
【００７２】
上述の如く、疑似障害設定部３１においてエラー情報を生成するための条件に関する障害設定情報は、パラメータとして、障害発生回数及び障害発生アドレス情報のうちの少なくとも１つを含むことができる。また、これら障害発生回数又は／及び障害発生アドレス情報は、発生させる障害種別それぞれに対応付けられる。
障害発生回数（Ｔｉｍｅｓ）は、対応する障害種別の疑似障害を発生させる回数であり、疑似障害設定処理部３１ａは、障害種別に応じたエラー情報の生成回数が対応する障害発生回数に達するまでは、発生させる障害種別に応じたエラー情報を生成する。つまり、障害発生回数は、対応する障害種別の疑似障害を発生させるための条件の一つである。
【００７３】
障害発生回数は、図６に示す例においては、“応答タイムアウト”、“媒体エラー”、“ハードウェアエラー”、“インタフェースエラー”、及び“正常応答”に対応して、それぞれ“８”、“３”、“５”、“０”、及び“１０”が設定される。なお、図６に例示するように、発生回数として“０”が設定された場合、疑似障害設定処理部３１ａは、対応する障害種別については、疑似障害を発生させないようにすることができる。
【００７４】
なお、疑似障害設定部３１は、障害種別ごとに、疑似障害モードが有効化されてから、対応するエラー情報を設定した回数をカウントする機能を備えることが好ましい。或いは、疑似障害設定部３１は、疑似障害モードが有効化されてから、エラー情報を設定した場合に、保持部３２に格納された障害設定情報のうちの対応する障害種別について、障害発生回数をデクリメントしても良い。
【００７５】
このように、エラー情報を生成するための条件として、障害設定情報に障害発生回数が含まれる場合には、疑似障害モードが有効化された以降、エラー情報の生成回数が対応する障害発生回数に達していない障害種別が、疑似的に発生させる障害種別として選択され得る。
なお、本実施形態においては、疑似障害設定部３１は、障害発生回数及び障害発生アドレス情報の双方の条件を満たす障害種別を、発生させる障害種別として選択するが、障害設定情報に障害発生アドレス情報が含まれず、且つ、複数の障害種別が選択候補である場合には、障害発生回数が最も多い、又は最も少ない、一の障害種別を選択しても良い。或いは、障害設定情報における各障害種別それぞれに対して、予め優先順位が設定され、疑似障害設定部３１は、疑似障害モードが有効化された以降、エラー情報の生成回数が対応する障害発生回数に達していない複数の障害種別のうちの、優先順位が高い、又は低いものから順に、発生させる障害種別として選択しても良い。
【００７６】
障害発生アドレス情報は、ＩＯ装置５のアドレス範囲を示す情報であり、疑似障害設定処理部３１ａは、処理部２からの取得要求に係るデータの取得対象のアドレスが、発生させる障害種別に対応した障害発生アドレス情報の示す範囲内である場合に、発生させる障害種別に応じたエラー情報を生成する。つまり、障害発生アドレス情報は、対応する障害種別の疑似障害を発生させるための条件の一つであり、この条件範囲を設定する開始アドレス（ＳＡ；Start Address）及び終了アドレス（ＥＡ；End Address）を含む。
【００７７】
障害発生アドレス情報は、図６に示す例においては、“応答タイムアウト”、“媒体エラー”、“ハードウェアエラー”、“インタフェースエラー”、及び“正常応答”に対応して、それぞれ“ＳＡ：0x1000, ＥＡ：0x1000”、“ＳＡ：0x2000, ＥＡ：0x3000”、“ＳＡ：0x0, ＥＡ：0xffffffff”、“ＳＡ：-, ＥＡ：-”、及び“ＳＡ：0x0, ＥＡ：0xffffffff”が設定される。なお、図６に示すように、発生回数が“０”である障害種別“インタフェースエラー”、つまり疑似障害を発生させない障害種別については、障害発生アドレス情報が設定されないようにすることができる。
【００７８】
疑似障害設定部３１による、発生させる障害種別の選択及び選択した障害種別に応じたエラー情報の生成は、図６を例に挙げると、以下のように行なわれる。
（ａ）障害発生アドレス情報が“ＳＡ：0x1000, ＥＡ：0x1000”の場合、つまり開始アドレス＝終了アドレスである場合
取得要求によって指定されたＩＯ装置５のアドレスが“0x1000”のとき、つまり開始（終了）アドレスと一致するときにのみ、疑似障害設定部３１により、発生させる障害種別に応じたエラー情報が生成される。
【００７９】
（ｂ）障害発生アドレス情報が“ＳＡ：0x2000, ＥＡ：0x3000”の場合、つまりアドレス範囲が設定される場合
取得要求によって指定されたＩＯ装置５のアドレスが“0x2000”〜“0x3000”の範囲内にあるとき、つまり設定されたアドレス範囲内にあるときに、疑似障害設定部３１により、発生させる障害種別に応じたエラー情報が生成される。
【００８０】
（ｃ）障害発生アドレス情報が“ＳＡ：0x0（ＩＯ装置５のデータが格納されている先頭アドレス）, ＥＡ：0xffffffff（ＩＯ装置５のデータが格納されている最終アドレス）”の場合、つまりＩＯ装置５のデータが格納されている全体アドレスが設定される場合
取得要求によって指定されたＩＯ装置５のアドレスが“0x0”〜“0xffffffff”の範囲内にあるとき、つまりＩＯ装置５のどのアドレスが取得要求によって指定されても、疑似障害設定部３１により、発生させる障害種別に応じたエラー情報が生成される。
【００８１】
疑似障害設定処理部３１ａは、上述の如き障害設定情報に基づいて、処理部２からの取得要求に係るデータの取得対象のアドレスが含まれる障害発生アドレス情報を判定し、当該取得対象のアドレスが含まれる障害発生アドレス情報に対応する障害種別を選択する。
ここで、例えば、取得要求により指定されたＩＯ装置５のアドレスが“0x2000”である場合、図６に示す例においては、発生させる障害種別として、“媒体エラー”、“ハードウェアエラー”、及び“正常応答”のいずれかが選択され得る。この場合、疑似障害設定処理部３１ａは、例えば、障害発生アドレス情報の範囲が狭い障害種別、つまり図６に示す場合には“媒体エラー”を、発生させる障害種別として選択することができる。
【００８２】
なお、これに限定されるものではなく、取得要求によって指定されたＩＯ装置５のアドレスが、障害設定情報における障害発生アドレス情報の複数の範囲に含まれる場合、障害発生アドレス情報の範囲が広い障害種別が選択されても良いし、対応する障害発生回数が多い、又は少ない障害種別が選択されても良い。或いは、障害設定情報における各障害種別それぞれに対して、予め優先順位が設定され、ＩＯ装置５のアドレスが含まれる複数の障害種別のうちの、優先順位が高い、又は低いものから順に、発生させる障害種別として選択されても良い。
【００８３】
また、図６に示す障害種別“ハードウェアエラー”及び“正常応答”のように、障害発生アドレス情報としてＩＯ装置５の全体アドレスが設定される場合には、障害発生アドレス情報が設定されなくても良い。この場合、疑似障害設定部３１は、発生させる障害種別に対応する障害発生回数が１以上であり、且つ障害発生アドレス情報が設定されていないときに、障害発生アドレス情報がＩＯ装置５の全体アドレスであると認識するように構成されることが好ましい。
【００８４】
このように、疑似障害設定処理部３１ａは、外部ホスト６からの疑似障害モード要求を受領すると、当該要求に含まれる上述の如き障害設定情報のパラメータを保持部３２に対して設定する。そして、疑似障害設定処理部３１ａは、処理部２から取得要求を受け、且つ疑似障害モードが有効である場合に、障害設定情報のパラメータのうちの障害発生回数又は／及び障害発生アドレス情報に基づいて、発生させる障害種別として選択する。
【００８５】
なお、疑似障害設定処理部３１ａによる、発生させる障害種別の選択は、上述した手法に限定されず、例えば外部ホスト６は、処理部２からの取得要求に先立って、発生させる障害種別を通知しても良い。この場合、疑似障害設定処理部３１ａは、上記障害設定情報のパラメータ、つまりエラー情報を生成するための条件にかかわらず、通知された障害種別を、発生させる障害種別として選択しても良い。
【００８６】
〔１−３−２〕エラー検出部の動作例
次に、エラー検出部３５ａによるエラービット位置の検出処理の一例について、図７を参照しながら説明する。
図７は、本実施形態のエラー検出部３５ａによるエラービット位置の検出処理の一例を説明する図である。図７（ａ）は、エラー検出部３５ａにおいて処理されるデータの一例を示す図であり、図７（ｂ）はエラー検出部３５ａによる、エラー設定データに対するＥＣＣデータチェックの結果を示す図である。
【００８７】
以下、バッファ３３ｂ及びエラー情報生成部３１ｃのブロックサイズは、８ビットであり、この８ビットのデータがエラー検出部３５ａに入力され、ＥＣＣによるデータの整合性チェックが行なわれる場合について説明する。
また、以下、図７（ａ）に示すように、元データが“0x43”＝“0b01000011”であり、エラーパターンとして“0x2”＝“0b00000010”が生成された場合を仮定して説明する。
【００８８】
ＥＣＣデータのビット列である“p[2-0]”及び“q[2-0]の値は、元データの値に応じてＩＯ装置５に格納されていた際に予め算出されており、例えば図７（ａ）に示すように、p[2-0]には“0x0”＝“0b000”が、q[2-0]には“0x7”＝“0b111”がそれぞれ予め算出されている。なお、このp[2-0]及びq[2-0]の値は、例えば図７（ｂ）に示す算出式に従って、元データの所定のビット位置の値同士について排他的論理和演算を行なうことにより算出される。
【００８９】
ここで、図７（ａ）に示すように、エラー設定部３４において、元データ“0x43”＝“0b01000011”に対してエラーパターン“0x2”＝“0b00000010”が設定されると、エラー検出部３５ａに入力されるエラー設定データは“0x41”＝“0b01000001”となる。
エラー検出部３５ａは、このエラー設定データに対してＥＣＣデータチェックを行なう。このＥＣＣデータチェックの結果を図７（ｂ）に示す。
【００９０】
また、エラー検出部３５ａは、図７（ａ）に示す予め算出されたＥＣＣデータの値“p[2-0]”及び“q[2-0]”と、算出したＥＣＣデータチェックの結果とを比較し、図７（ｂ）に示すように、q[0]、p[1]及びp[2]が図７（ａ）に示すＥＣＣデータと異なること、つまりデータのエラーを検出する。
そして、エラー検出部３５ａは、ＥＣＣを用いたエラービット位置検出の手法の一例として、検出されたq[0]、p[1]及びp[2]を上位ビットから順にソートしてp[2]，p[1]，q[0]とするとともに、p[*]=“０”、q[*]=“１”を代入して、エラービット位置として“0b001”を得る。つまり、この値はエラービット位置を示すものであり、エラー検出部３５ａは、検出したエラービット位置としてビット“１”を得る。
【００９１】
このように、エラー検出部３５ａにより、ＥＣＣによるデータの整合性チェックが行なわれ、エラーが検出された場合には、エラービット位置が算出される。
なお、エラー情報が生成されていない場合、つまり障害応答が発生しない場合に、エラー検出部３５ａに入力されたデータについて図７（ｂ）に示すようなエラーが検出されると、エラー訂正部３５ｃは、検出されたエラービット位置に対応する元データのビットの値を反転させて当該エラーを訂正するとともに、処理部２に対して転送する。
【００９２】
このように、本実施形態の制御部３によれば、実運用で用いられるＥＣＣによるエラー検出・訂正機能を利用することにより、元データにエラー、つまり障害発生コードを埋め込むことで、疑似障害を発生させるためのフレームワークを容易に実現することができる。すなわち、元データに設定された障害発生コードを解析する機能を新たに用意せずに、実運用の情報処理装置１を用いたテストを容易に実現することができる。
【００９３】
また、本実施形態の制御部３によれば、元データに対してエラーを埋め込み、疑似障害を発生させる場合には、データ訂正を行なわない一方、実際に元データにエラーが発生した場合には、データ訂正を実行するため、データ訂正に係るオーバーヘッドを極小化することもできる。
さらに、本実施形態の制御部３によれば、元データに対してＥＣＣ訂正可能なエラーが設定されるため、疑似障害を発生させるための特別なデータを用意せずに済むとともに、処理部２に対して転送されるデータのサイズや内容にも、元データからの変化が生じないため、実運用に沿ったテストを実施することができる。
【００９４】
また、本実施形態の制御部３によれば、処理部２は、実運用と同じデータパターンでテストを行なうことができるため、実環境において通常の運用に近い状況で精度の高いテストを実施することができる。
〔１−４〕制御部の詳細な動作例
次に、上述の如く構成された本実施形態の一例としての情報処理装置１における制御部３の詳細な動作例を、図８〜図１０を参照しながら説明する。
【００９５】
図８は、本実施形態の制御部３による疑似障害の詳細な設定動作例を説明する図である。また、図９は、本実施形態の制御部３による疑似障害の発生動作例を説明する図であり、図１０は、制御部３による疑似障害の詳細な発生手順例を説明するフローチャートである。
制御部３による疑似障害の設定動作では、図８に示すように、疑似障害設定処理部３１ａにより、外部ホスト６から疑似障害モード要求が受領されると（図８に示す矢印Ａ１）、疑似障害モード要求に含まれる、又は疑似障害モード要求とともに受領したパラメータが、保持部３２に設定される（矢印Ａ２）。
【００９６】
また、疑似障害設定処理部３１ａにより、疑似障害モード設定部３１ｂが保持する疑似障害モードのフラグがオンに設定される（矢印Ａ３）。
なお、疑似障害設定処理部３１ａは、上述の如く、例えば疑似的に発生させる障害種別に応じたエラー情報の生成回数が、それぞれ、障害設定情報に設定された対応する障害発生回数に達した場合、及び外部ホスト６から疑似障害モード終了要求を入力された場合、の少なくとも一方の場合に、疑似障害モードのフラグをオフに設定する。
【００９７】
次に、制御部３による疑似障害の発生動作では、図９に示すように、データ読込処理部３３ａにより、処理部２から取得要求が受領されると（図９に示す矢印Ｂ１）、当該取得要求に応じてＩＯ装置５からデータ（元データ）が取得され（矢印Ｂ２）、バッファ３３ｂに格納される（矢印Ｂ３、図１０に示すステップＳ１１）。
また、データ読込処理部３３ａにより、図９に示す矢印Ｂ１において処理部２から取得要求が受領されると、当該取得要求に係るデータの取得対象のアドレスが疑似障害設定処理部３１ａに対して出力される（矢印Ｂ４）。
【００９８】
このアドレスを入力されると、疑似障害設定処理部３１ａにより、疑似障害モード設定部３１ｂが参照され、疑似障害モードのフラグがオンであるか否かが確認される（矢印Ｂ５、ステップＳ１２）。
疑似障害モードのフラグがオンである場合（ステップＳ１２のＹｅｓルート）、疑似障害設定処理部３１ａにより、保持部３２に保持された障害種別情報が参照され（矢印Ｂ６）、発生させる疑似障害に対応したエラービット位置（ＥＣＣエラービット形式）が選択される（ステップＳ１２）。
【００９９】
次いで、疑似障害設定処理部３１ａにより、エラー情報生成部３１ｃに対して、選択したエラービット位置に対応するビットの反転が行なわれ、エラーパターンが生成される（矢印Ｂ７）。
そして、バッファ３３ｂから元データが、エラー情報生成部３１ｃからエラーパターンが、それぞれエラー情報設定処理部３４ａに出力される（矢印Ｂ８）。
【０１００】
エラー情報設定処理部３４ａにおいては、元データに対してエラーパターンに基づくエラーが設定されることでエラー設定データが作成され（ステップＳ１４）、作成されたエラー設定データがバッファ３４ｂに対して出力される（矢印Ｂ９、ステップＳ１５）。
一方、疑似障害モードのフラグがオフである場合（ステップＳ１２のＮｏルート）、疑似障害設定処理部３１ａでは処理が行なわれず、エラー情報設定処理部３４ａにより、バッファ３３ｂから入力された元データがバッファ３４ｂに対して出力される（矢印Ｂ９）。
【０１０１】
バッファ３４ｂにおいて、元データ又はエラー設定データがエラー検出部３５ａに対して出力されると（矢印Ｂ１０）、エラー検出部３５ａにより、入力されたデータに対して例えばＥＣＣを用いたエラーチェックが行なわれる（ステップＳ１６）。
エラーチェックによりエラーが検出されなかった場合（ステップＳ１６のＮｏルート）、エラー検出部３５ａにより、入力されたデータが、エラー訂正部３５ｃを経由して処理部２に対して転送される（矢印Ｂ１５、Ｂ１６、ステップＳ２０）。
【０１０２】
一方、エラー検出部３５ａによりエラーが検出された場合（ステップＳ１６のＹｅｓルート）、検出されたエラーのエラービット位置が疑似障害処理部３５ｂに対して出力される（矢印Ｂ１１）。
エラービット位置が入力されると、疑似障害処理部３５ｂにより、疑似障害モード設定部３１ｂが参照され、疑似障害モードのフラグがオンであるか否かが確認される（矢印Ｂ１２、ステップＳ１７）。
【０１０３】
疑似障害モードのフラグがオフである場合（ステップＳ１７のＮｏルート）、疑似障害処理部３５ｂによる処理は行なわれず、エラー訂正部３５ｃにより、エラー検出部３５ａから入力されたデータに対して、例えばＥＣＣによるデータ訂正処理が行なわれる（ステップＳ１８）。そして、エラー訂正部３５ｃにより、訂正後のデータが処理部２に対して転送される（矢印Ｂ１６、ステップＳ２０）。
【０１０４】
一方、疑似障害モードのフラグがオンである場合（ステップＳ１７のＹｅｓルート）、疑似障害処理部３５ｂにより、エラー訂正部３５ｃ等に対して出力停止指示が通知され（矢印Ｂ１３）、処理部２に対するデータの出力が抑止される。
そして、疑似障害処理部３５ｂにより、エラービット位置に対応した障害種別の疑似障害が作成され、障害応答が処理部２に通知される（矢印Ｂ１４、ステップＳ１９）。
【０１０５】
なお、疑似障害処理部３５ｂは、上述の如く、エラービット位置に対応した障害種別が“応答タイムアウト”であった場合には、障害種別についての障害応答を作成せず、処理部２には障害応答を通知しないように構成しても良い。
上述のように、図４に示す本実施形態の制御部３によっても、図１に示す制御部３における効果と同様の効果を奏することができる。
【０１０６】
また、本実施形態の疑似障害設定部３１によれば、取得要求を受け、且つ取得要求によりＩＯ装置５から取得されるデータが、保持部３２に保持された障害設定情報における条件を満たす場合に、疑似的に発生させる障害種別に応じたエラー情報が生成され、生成されたエラー情報がエラー設定部３４に出力される。また、この障害設定情報における条件は、外部ホスト６により疑似障害設定部３１に通知される。
【０１０７】
従って、外部ホスト６が任意の条件を通知したり、外部ホスト６と処理部２とが協働して障害設定情報における条件を満たすような取得要求を発行したりすることにより、処理部２は、所望の障害応答を制御部３から得ることができ、実運用の情報処理装置１を用いたテストを容易に実現することができる。また、処理部２は、外部ホスト６が通知する条件、及び処理部２が発行する取得要求により、複数の障害種別から所望の障害種別を選択的に、疑似的に発生させることができる。
【０１０８】
また、本実施形態の疑似障害設定部３１によれば、取得要求に係るデータの取得対象のアドレスが、障害発生アドレス情報が示す範囲に含まれる場合に、当該取得対象のアドレスが含まれる障害発生アドレス情報に対応する障害種別が、発生させる障害種別として選択される。
従って、発生させる障害種別の選定条件を詳細に設定することができ、テストの精度の向上を図ることができる。また、疑似障害の発生のために用いられるＩＯ装置５のアドレス範囲を指定することができるため、例えば実運用で用いられるＩＯ装置５のアドレス範囲とずらすことにより、疑似障害を発生させる際に実運用に与える影響を低減することができる。
【０１０９】
さらに、本実施形態の疑似障害設定部３１によれば、疑似障害モードの有効／無効を管理する疑似障害モード設定部３１ｂが備えられ、処理部２からの疑似障害モード要求／疑似障害モード終了要求等に基づいて、当該疑似障害モードの有効／無効を切り替えることができる。従って、実運用に用いられるファームウェアを用いた状態で、制御部３の動作モードを通常動作モード及び疑似障害モード間で容易に切り替えることができ、動作モードの切り替えにかかる時間を低減することができるため、実運用に与える影響を低減することができる。
【０１１０】
〔１−５〕変形例
上述した実施形態に加えて、外部ホスト６は、例えばシーケンスやサイクル数等のパラメータを、疑似障害モード要求に含めて、又は疑似障害モード要求とともに、制御部３に対して通知することができる。
シーケンス（Ｓｅｑ；Sequence）は、複数の障害種別についての障害応答を発生させる順序を示す障害発生順序情報である。つまり、疑似障害設定処理部３１ａは、保持部３２がシーケンスを保持する場合には、各障害種別の疑似障害を、所定の順序で複数種類組み合わせて発生させることができる。
【０１１１】
シーケンスには、疑似障害を発生させる順序で、例えば下位からエラービット番号が指定される。なお、このエラービット番号は、障害種別に対応したエラービット位置であっても良いし、障害種別に対応したＩＤ等であっても良い。いずれにしても、シーケンスに設定されるエラービット番号は、障害種別に対応した一意の番号であることが好ましい。
エラービット番号としてエラービット位置を用いる場合のシーケンスは、例えばエラービット番号が４ビット単位で指定される場合には、“0x302”＝“0b001100000010”のように設定される。この場合、例えば図５及び図６に示すように、制御部３では、エラービット位置がビット“２”である“媒体エラー”の障害応答が障害発生回数である“３”回行なわれ、その後エラービット位置がビット“０”である“正常応答”が“１０”回行なわれ、最後にエラービット位置がビット“３”である“ハードウェアエラー”の障害応答が“５”回行なわれる。
【０１１２】
すなわち、本変形例の疑似障害設定処理部３１ａは、取得要求を受け、疑似障害モードのフラグがオンであると、シーケンスを参照して、発生させる障害種別を選択する。そして、疑似障害設定処理部３１ａは、取得要求によりＩＯ装置５から取得されるデータが、障害設定情報における、選択した障害種別に係る条件、つまり障害発生回数や障害発生アドレス情報を満たすか否かを判断する。
【０１１３】
当該条件を満たす場合には、疑似障害設定処理部３１ａは、選択した障害種別に応じたエラー情報を生成する。一方、当該条件を満たさない場合には、疑似障害設定処理部３１ａは、当該データが障害設定情報における他の障害種別の条件を満たす場合であっても、エラー情報の生成を抑止する。
これにより、本変形例の制御部３によれば、障害発生順序情報を用いることにより、各障害種別の疑似障害を、所定の順序で複数種類組み合わせて発生させることができる。つまり、外部ホスト６は、障害発生順序情報を制御部３に対して出力しておくことで、処理部２は、障害応答を所定の順序で受信することができる。従って、処理部２は、複数の障害の複合テストを容易に且つ確実に実現することができる。
【０１１４】
サイクル数（Ｃｙｃｌｅｓ）は、シーケンスで定義した一連の動作の発生回数を指定する繰返情報である。つまり、疑似障害設定処理部３１ａは、保持部３２がシーケンス及びサイクル数を保持する場合には、各障害種別の疑似障害を、所定の順序で複数種類組み合わせて発生させる一連の動作を、サイクル数で規定された回数だけ繰り返すことができる。
【０１１５】
例えば、シーケンスに上述した“0x302”＝“0b001100000010”が設定されており、サイクル数として“２”が設定されている場合、“媒体エラー”が“３”回、“正常応答”が“１０”回、“ハードウェアエラー”が“５”回、“媒体エラー”が“３”回、“正常応答”が“１０”回、“ハードウェアエラー”が“５”回行なわれる。
このように、外部ホスト６がサイクル数を設定することにより、処理部２は、例えば所定の障害種別についての疑似障害を、所定の順序で反復して行なうテストを実行する場合に、当該テストを容易に且つ確実に実現することができる。
【０１１６】
〔２〕その他
以上、本発明の好ましい実施形態について詳述したが、本発明は、かかる特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
例えば、上述した実施形態及び変形例においては、制御部３がＩＯコントローラであり、対象装置５がＩＯ装置である場合について説明したが、これに限定されるものではない。つまり、制御部３では、エラー検出部３５ａ及びエラー訂正部３５ｃとして、既存のＥＣＣ等によるエラー検出・訂正機能を用いる。従って、対象装置５は、ＨＤＤ等のＩＯ装置以外に、例えば記憶部（メモリ）４等、ＥＣＣ等によるエラー検出・訂正機能が利用できる装置であれば良い。なお、対象装置５として記憶部４を用いる場合、制御部３としての機能は、メモリコントローラ等に備えられて良い。
【０１１７】
さらに、上述した実施形態及び変形例においては、ホストとしての処理部２が、取得要求を、情報処理装置１の管理等を行なう外部ホスト６が、疑似障害モード要求、疑似障害モード終了要求、及び、保持部３２に保持させる各種情報を、制御部３に対して出力していたが、これに限定されるものではない。例えば、これらの要求や情報が、ＩＯコントローラとしての制御部３に接続されたインタフェース及びネットワークを介して、処理部２以外の装置から、制御部３に対して出力されても良い。つまり、情報処理装置１におけるテストが、処理部２以外のホスト及び外部ホストにより実行されても良い。
【０１１８】
また、上述した実施形態においては、外部ホスト６は、障害種別情報や障害設定情報のパラメータを、疑似障害モード要求に含めて、又は疑似障害モード要求とともに、制御部３に対して通知することとして説明した。同様に、上述した変形例においては、外部ホスト６は、障害発生順序情報や繰返情報のパラメータを、疑似障害モード要求に含めて、又は疑似障害モード要求とともに、制御部３に対して通知することとして説明したが、これに限定されるものではない。例えば、外部ホスト６は、制御部３に対する疑似モード要求に先立って、事前にこれらのパラメータを通知しても良い。
【０１１９】
なお、これらの疑似障害設定処理部３１ａ、データ読込処理部３３ａ、エラー設定処理部３４ａ、エラー処理部３５、エラー検出部３５ａ、疑似障害処理部３５ｂ、及びエラー訂正部３５ｃとしての機能を実現するためのプログラム（疑似障害発生プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信回線を介してコンピュータに提供するようにしても良い。
【０１２０】
疑似障害設定処理部３１ａ、データ読込処理部３３ａ、エラー設定処理部３４ａ、エラー処理部３５、エラー検出部３５ａ、疑似障害処理部３５ｂ、及びエラー訂正部３５ｃとしての機能を実現する際には、内部記憶装置（本実施形態では制御部３のメモリ）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態では制御部３のプロセッサ）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしても良い。
【０１２１】
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。また、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、制御部３がコンピュータとしての機能を有しているのである。
【符号の説明】
【０１２２】
１    情報処理装置
２    ＣＰＵ（処理部）
３    ＩＯコントローラ（制御部）
４    メモリ（記憶部）
５    ＩＯ装置（対象装置）
６    外部ホスト（設定部）
３１    疑似障害設定部
３１ａ    疑似障害設定処理部
３１ｂ    疑似障害モード設定部
３１ｃ    エラー情報生成部
３２    保持部
３３    データ読込部
３３ａ    データ読込処理部
３３ｂ，３４ｂ    バッファ
３４    エラー設定部
３４ａ    エラー設定処理部
３５    エラー処理部
３５ａ    エラー検出部
３５ｂ    疑似障害処理部
３５ｃ    エラー訂正部
【図１】
2012137323.tif 000003
【図２】
2012137323.tif 000004
【図３】
2012137323.tif 000005
【図４】
2012137323.tif 000006
【図５】
2012137323.tif 000007
【図６】
2012137323.tif 000008
【図７】
2012137323.tif 000009
【図８】
2012137323.tif 000010
【図９】
2012137323.tif 000011
【図１０】
2012137323.tif 000012
【手続補正書】
【提出日】平成25年11月15日(2013.11.15)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
処理部と、前記処理部からの取得要求に応じて対象装置からデータを取得する制御を行なう制御部とを備えた情報処理装置であって、
前記制御部は、
擬似的に障害を発生させる疑似障害モードが有効となっている場合に、発生させる疑似障害の障害種別に応じたエラーを、前記取得要求に応じて前記対象装置から取得されたデータに対して設定するエラー設定部と、
前記疑似障害モードが有効となっている場合に、前記データからエラーを検出すると、当該エラーに対応した障害種別についての障害応答を、前記処理部に通知するエラー処理部とを備えることを特徴とする、情報処理装置。
【請求項２】
前記エラー処理部は、
検出したエラーのうち、訂正可能なエラーの訂正を行なうエラー訂正部と、
前記疑似障害モードが有効となっている場合で、且つ、前記データからエラーを検出した場合、前記エラー訂正部によるエラーの訂正を行なわせずに、当該エラーに対応した障害種別についての障害応答を前記処理部に通知する疑似障害処理部と、を備えることを特徴とする、請求項１記載の情報処理装置。
【請求項３】
前記エラー処理部は、
前記データに対するエラーチェックによりエラーが含まれるか否かを検出するとともに、前記データにエラーが含まれる場合にエラービット位置を検出するエラー検出部を備え、
前記エラー処理部は、前記疑似障害モードが有効となっている場合であって、且つ、前記エラー検出部によるエラーチェックによってエラービット位置が検出された場合に、当該エラービット位置に対応した障害種別についての障害応答を、前記処理部に通知することを特徴とする、請求項１又は請求項２記載の情報処理装置。
【請求項４】
前記障害種別に応じたエラーのエラービット位置を示すエラー情報を生成するための条件に関する障害設定情報を保持する保持部と、
前記処理部から前記取得要求を受け、且つ前記取得要求により前記対象装置から取得されるデータが、前記保持部に保持された障害設定情報における条件を満たす場合に、疑似的に発生させる前記障害種別に応じたエラー情報を生成し、生成したエラー情報を前記エラー設定部に出力する疑似障害設定部とを備え、
前記エラー設定部は、前記疑似障害設定部から入力されたエラー情報に基づいて、発生させる疑似障害の障害種別に応じたエラーを、前記取得要求に応じて前記対象装置から取得されたデータに対して設定することを特徴とする、請求項１〜３のいずれか１項記載の情報処理装置。
【請求項５】
前記障害設定情報は、前記障害種別に対応付けられた障害発生アドレス情報を含み、
前記疑似障害設定部は、前記取得要求に係るデータの取得対象のアドレスが、前記障害発生アドレス情報が示す範囲に含まれる場合に、当該取得対象のアドレスが含まれる障害発生アドレス情報に対応する障害種別を、前記発生させる障害種別として選択することを特徴とする、請求項４記載の情報処理装置。
【請求項６】
処理部と、前記処理部からの取得要求に応じて対象装置からデータを取得する制御を行なう制御部とを備えた情報処理装置における疑似障害発生方法であって、
前記制御部において、
擬似的に障害を発生させる疑似障害モードが有効となっている場合に、発生させる疑似障害の障害種別に応じたエラーを、前記取得要求に応じて前記対象装置から取得されたデータに対して設定して、
前記疑似障害モードが有効となっている場合に、前記データからエラーを検出すると、当該エラーに対応した障害種別についての障害応答を、前記処理部に通知することを特徴とする、疑似障害発生方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００２７
【補正方法】変更
【補正の内容】
【００２７】
そして、エラー処理部３５は、入力されたエラーに対応した障害種別についての障害応答を作成し、作成した障害応答を処理部２に通知する。
つまり、エラー処理部３５は、疑似障害モードが有効となっている場合に、エラーチェックにより、エラー設定部３４が意図的に訂正可能なエラー（例えば１ビットエラー）を設定したエラー設定データについてエラーが検出された場合には、エラー訂正を行なうことなく、検出したエラーに対応した障害種別についての障害応答を処理部２に通知する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００３０
【補正方法】変更
【補正の内容】
【００３０】
次いで、エラー設定部３４により、選択したエラーが、取得要求に応じて対象装置５から取得されたデータに対して設定される（ステップＳ２）。つまり、エラー設定部３４により、エラーが元データに対して埋め込まれる。
そして、図３に示すように、制御部３において、処理部２からの取得要求に応じて対象装置５から取得されたデータ（元データ）、又はエラーが設定されたエラー設定データに対してエラーチェックが行なわれ（ステップＳ３）、エラー検出の有無が判断される（ステップＳ４）。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００５８
【補正方法】変更
【補正の内容】
【００５８】
バッファ３３ｂは、データ読込処理部３３ａによりＩＯ装置５から取得されたデータを一時的に格納するものであり、格納したデータをエラー設定部３４に対して出力する。バッファ３３ｂとしては、例えばＲＡＭ等の揮発性メモリが挙げられる。
エラー設定部３４は、エラー設定処理部３４ａ及びバッファ３４ｂを備える。
エラー設定処理部３４ａは、疑似障害設定部３１のエラー情報生成部３１ｃから入力されたエラーパターンに基づいて、発生させる疑似障害の障害種別に応じたエラーを、データ読込部３３のバッファ３３ｂから入力された元データに対して設定してエラー設定データを生成するものである。また、エラー設定処理部３４ａは、生成したエラー設定データをバッファ３４ｂに出力する。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】０１０７
【補正方法】変更
【補正の内容】
【０１０７】
従って、外部ホスト６が任意の条件を通知したり、外部ホスト６と処理部２とが協働して障害設定情報における条件を満たすような取得要求を発行したりすることにより、処理部２は、所望の障害応答を制御部３から得ることができ、実運用の情報処理装置１を用いたテストを容易に実現することができる。また、制御部３は、外部ホスト６が通知する条件、及び処理部２が発行する取得要求により、複数の障害種別から所望の障害種別を選択的に、疑似的に発生させることができる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】０１２１
【補正方法】変更
【補正の内容】
【０１２１】
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。また、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、制御部３がコンピュータとしての機能を有しているのである。
〔３〕付記
以上の実施形態及び変形例に関し、更に以下の付記を開示する。
（付記１）
処理部と、前記処理部からの取得要求に応じて対象装置からデータを取得する制御を行なう制御部とを備えた情報処理装置であって、
前記制御部は、
擬似的に障害を発生させる疑似障害モードが有効となっている場合に、発生させる疑似障害の障害種別に応じたエラーを、前記取得要求に応じて前記対象装置から取得されたデータに対して設定するエラー設定部と、
前記疑似障害モードが有効となっている場合に、前記データからエラーを検出すると、当該エラーに対応した障害種別についての障害応答を、前記処理部に通知するエラー処理部とを備えることを特徴とする、情報処理装置。
（付記２）
前記エラー処理部は、
検出したエラーのうち、訂正可能なエラーの訂正を行なうエラー訂正部と、
前記疑似障害モードが有効となっている場合で、且つ、前記データからエラーを検出した場合、前記エラー訂正部によるエラーの訂正を行なわせずに、当該エラーに対応した障害種別についての障害応答を前記処理部に通知する疑似障害処理部と、を備えることを特徴とする、付記１記載の情報処理装置。
（付記３）
前記エラー処理部は、
前記データに対するエラーチェックによりエラーが含まれるか否かを検出するとともに、前記データにエラーが含まれる場合にエラービット位置を検出するエラー検出部を備え、
前記エラー処理部は、前記疑似障害モードが有効となっている場合であって、且つ、前記エラー検出部によるエラーチェックによってエラービット位置が検出された場合に、当該エラービット位置に対応した障害種別についての障害応答を、前記処理部に通知することを特徴とする、付記１又は付記２記載の情報処理装置。
（付記４）
前記エラー検出部は、前記データについてＥＣＣ（Error Correcting Code）を用いて前記エラービット位置を検出することを特徴とする、付記３記載の情報処理装置。
（付記５）
前記障害種別に応じたエラーのエラービット位置を示すエラー情報を生成するための条件に関する障害設定情報を保持する保持部と、
前記処理部から前記取得要求を受け、且つ前記取得要求により前記対象装置から取得されるデータが、前記保持部に保持された障害設定情報における条件を満たす場合に、疑似的に発生させる前記障害種別に応じたエラー情報を生成し、生成したエラー情報を前記エラー設定部に出力する疑似障害設定部とを備え、
前記エラー設定部は、前記疑似障害設定部から入力されたエラー情報に基づいて、発生させる疑似障害の障害種別に応じたエラーを、前記取得要求に応じて前記対象装置から取得されたデータに対して設定することを特徴とする、付記１〜４のいずれか１項記載の情報処理装置。
（付記６）
前記障害設定情報は、前記障害種別に対応付けられた障害発生アドレス情報を含み、
前記疑似障害設定部は、前記取得要求に係るデータの取得対象のアドレスが、前記障害発生アドレス情報が示す範囲に含まれる場合に、当該取得対象のアドレスが含まれる障害発生アドレス情報に対応する障害種別を、前記発生させる障害種別として選択することを特徴とする、付記５記載の情報処理装置。
（付記７）
前記疑似障害モードを有効に設定させる疑似障害モード要求を発行する設定部を備え、
前記疑似障害設定部は、
前記設定部から前記疑似障害モード要求を入力されると、疑似障害モードを有効化する疑似障害モード設定部を備え、
前記取得要求を受け、且つ前記疑似障害モードが有効である場合に、前記障害種別に応じたエラー情報を生成し、生成したエラー情報を前記エラー設定部に出力することを特徴とする、付記５又は付記６記載の情報処理装置。
（付記８）
前記疑似障害モード設定部は、前記障害設定情報が前記障害種別に対応付けられた障害発生回数を含み且つ前記疑似的に発生させる障害種別に応じたエラー情報の生成回数が前記障害発生回数に達した場合、及び前記設定部から前記疑似障害モードを無効に設定させる疑似障害モード終了要求を入力された場合、の少なくとも一方の場合に、前記疑似障害モードを無効化することを特徴とする、付記７記載の情報処理装置。
（付記９）
前記設定部は、前記疑似障害設定部に前記障害設定情報を出力し、
前記疑似障害設定部は、前記設定部から前記障害設定情報を入力されると、入力された前記障害設定情報を前記保持部に設定することを特徴とする、付記７又は付記８記載の情報処理装置。
（付記１０）
前記保持部は、複数の障害種別についての障害応答を発生させる順序を示す障害発生順序情報を保持し、
前記疑似障害設定部は、前記取得要求を受けると、前記障害発生順序情報に基づき発生させる障害種別を選択し、前記取得要求により前記対象装置から取得されるデータが、前記保持部に保持された障害設定情報における、前記選択した障害種別に係る条件を満たす場合に、当該選択した障害種別に応じたエラー情報を生成し、生成したエラー情報を前記エラー設定部に出力することを特徴とする、付記５〜９のいずれか１項記載の情報処理装置。
（付記１１）
前記エラー処理部は、前記検出されたエラーに対応する障害種別が、前記処理部に応答を通知することができない障害であった場合、前記処理部に対する当該障害種別についての障害応答の通知を抑止することを特徴とする、付記１〜１０のいずれか１項記載の情報処理装置。
（付記１２）
処理部と、前記処理部からの取得要求に応じて対象装置からデータを取得する制御を行なう制御部とを備えた情報処理装置における疑似障害発生方法であって、
前記制御部において、
擬似的に障害を発生させる疑似障害モードが有効となっている場合に、発生させる疑似障害の障害種別に応じたエラーを、前記取得要求に応じて前記対象装置から取得されたデータに対して設定して、
前記疑似障害モードが有効となっている場合に、前記データからエラーを検出すると、当該エラーに対応した障害種別についての障害応答を、前記処理部に通知することを特徴とする、疑似障害発生方法。
（付記１３）
前記制御部において、
検出したエラーのうち、訂正可能なエラーの訂正を行なうとともに、
前記疑似障害モードが有効となっている場合で、且つ、前記データからエラーを検出した場合、前記エラーの訂正を行なわずに、当該エラーに対応した障害種別についての障害応答を前記処理部に通知することを特徴とする、付記１２記載の疑似障害発生方法。
（付記１４）
前記データに対するエラーチェックによりエラーが含まれるか否かを検出するとともに、前記データにエラーが含まれる場合にエラービット位置を検出し、
前記疑似障害モードが有効となっている場合であって、且つ、前記エラーチェックによってエラービット位置が検出された場合に、当該エラービット位置に対応した障害種別についての障害応答を、前記処理部に通知することを特徴とする、付記１２又は付記１３記載の疑似障害発生方法。
（付記１５）
前記情報処理装置が前記障害種別に応じたエラーのエラービット位置を示すエラー情報を生成するための条件に関する障害設定情報を保持部に保持し、
前記処理部から前記取得要求を受け、且つ前記取得要求により前記対象装置から取得されるデータが、前記保持部に保持された障害設定情報における条件を満たす場合に、疑似的に発生させる前記障害種別に応じたエラー情報を生成し、
生成したエラー情報に基づいて、発生させる疑似障害の障害種別に応じたエラーを、前記データに対して設定することを特徴とする、付記１２〜１４のいずれか１項記載の疑似障害発生方法。
（付記１６）
前記障害設定情報は、前記障害種別に対応付けられた障害発生アドレス情報を含み、
前記取得要求に係るデータの取得対象のアドレスが、前記障害発生アドレス情報が示す範囲に含まれる場合に、当該取得対象のアドレスが含まれる障害発生アドレス情報に対応する障害種別を、前記発生させる障害種別として選択することを特徴とする、付記１５記載の疑似障害発生方法。
（付記１７）
設定部から前記疑似障害モードを有効に設定させる疑似障害モード要求を入力されると、疑似障害モードを有効化し、
前記取得要求を受け、且つ前記疑似障害モードが有効である場合に、前記障害種別に応じたエラー情報を生成して、
生成したエラー情報に基づいて、発生させる疑似障害の障害種別に応じたエラーを、前記データに対して設定することを特徴とする、付記１５又は付記１６記載の疑似障害発生方法。
（付記１８）
前記障害設定情報が前記障害種別に対応付けられた障害発生回数を含み且つ前記疑似的に発生させる障害種別に応じたエラー情報の生成回数が前記障害発生回数に達した場合、及び前記設定部から前記疑似障害モードを無効に設定させる疑似障害モード終了要求を入力された場合、の少なくとも一方の場合に、前記疑似障害モードを無効化することを特徴とする、付記１７記載の疑似障害発生方法。
【国際調査報告】
2012137323.tif 000013
2012137323.tif 000014
2012137323.tif 000015