(57)【要約】【課題】ホスト装置における外部記憶装置に対する故障例外処理プログラムの動作検証を容易化する。【解決手段】外部記憶装置２は、ホスト装置１から送信されたコマンドに応じた制御処理を実行し、そのコマンドに対する応答データをホスト装置に送信するＣＰＵ２０と、そのコマンドに対する応答処理モードを指示するデータを記憶する応答処理モード記憶部２６と、応答処理モード記憶部２６により擬似故障応答モード設定されているときに、コマンドに対する応答データとして用いられる擬似故障応答データを記憶する擬似故障応答データ記憶部２５２と、を備え、ＣＰＵ２０は、ホスト装置１からのコマンドを受信したとき、応答処理モード記憶部２６により擬似故障応答モードが設定されていた場合には、コマンドに対する応答データとして、擬似故障応答データ記憶部２５２に記憶されている擬似故障応答データをホスト装置１に送信する。【選択図】図１
2012048608.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置に通信可能に接続され、前記ホスト装置で使用する、または、使用されたデータを保持する記憶媒体を備えた外部記憶装置であって、
前記外部記憶装置は、
前記ホスト装置から送信されたコマンドを解釈して、そのコマンドに応じた制御処理を実行するとともに、そのコマンドに対する応答データを前記ホスト装置に送信するＣＰＵと、
前記コマンドに対する前記ＣＰＵの応答処理モードを指示するデータを記憶する応答処理モード記憶部と、
前記応答処理モード記憶部に擬似故障応答モードを指示するデータが記憶されているときに、前記コマンドに対する応答データとして用いられる擬似故障応答データを記憶する擬似故障応答データ記憶部と、
を備え、
前記ＣＰＵは、
前記ホスト装置から送信されたコマンドを受信したとき、前記応答処理モード記憶部に前記擬似故障応答モードを指示するデータが記憶されているか否かを判定し、
前記判定の結果、前記応答処理モード記憶部に前記擬似故障応答モードを指示するデータが記憶されていた場合には、前記コマンドに対する応答データとして、前記擬似故障応答データ記憶部に記憶されている擬似故障応答データを前記ホスト装置に送信すること
を特徴とする外部記憶装置。
【請求項２】
前記外部記憶装置は、さらに、
前記ホスト装置への前記擬似故障応答データの送信を抑制する無応答指示フラグの値を記憶する無応答指示フラグ記憶部を備え、
前記ＣＰＵは、
前記擬似故障応答データを前記ホスト装置へ送信する場合には、その送信動作をする前に、前記無応答指示フラグがセットされているか否かを判定し、前記無応答指示フラグがセットされていたときには、前記擬似故障応答データの前記ホスト装置への送信動作を抑制すること
を特徴とする請求項１に記載の外部記憶装置。
【請求項３】
前記応答処理モード記憶部に前記擬似故障応答モードを指示するデータを設定する手動スイッチを、
さらに、備えること
を特徴とする請求項１に記載の外部記憶装置。
【請求項４】
前記擬似故障応答データ記憶部に記憶する擬似故障応答データを入力する入力端子を、
さらに、備えること
を特徴とする請求項１に記載の外部記憶装置。
【請求項５】
前記擬似故障応答データ記憶部に記憶する擬似故障応答データ、および、前記無応答指示フラグ記憶部に記憶する無応答指示フラグの値を入力する入力端子を、
さらに、備えること
を特徴とする請求項２に記載の外部記憶装置。
【請求項６】
前記ＣＰＵは、
前記ホスト装置からあらかじめ定められた特定のコマンドを受信したとき、または、同じコマンドを所定回数受信したとき、前記応答処理モード記憶部に前記擬似故障応答モードを指示するデータを設定すること
を特徴とする請求項１に記載の外部記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータなどのホスト装置に接続されて用いられる外部記憶装置に関する。
【背景技術】
【０００２】
近年、ハードディスク記憶装置を代替する外部記憶装置として、半導体のフラッシュメモリで構成されたＳＳＤ（Solid State Drive）が注目を集めている。ＳＳＤは、可動部品を含まないため、動作の信頼性が高い、小型化し易いなどの大きな長所があるが、一方では、欠点もある。例えば、フラッシュメモリは、超微細加工技術を駆使して製造されるため、その製造歩留まりを向上させるためには、一部のビットに欠陥が生じることは許容せざるを得ない。また、フラッシュメモリでは、データの書き込み・消去に際して電子がゲート酸化膜をトンネリングしてフローティングゲートに注入されるので、ゲート酸化膜が疲労する現象が見られる。そのため、フラッシュメモリには、その書き換え回数に上限（例えば、１０万回）が設けられている。
【０００３】
そこで、ＳＳＤにおいては、これらの欠点をカバーするために、データ誤り訂正技術やデータの書き込み回数の平準化技術など様々な技術が導入されている。そのため、ＳＳＤの動作では、多数の故障状態やエラー状態が想定されている。ところが、このように想定された故障状態やエラー状態は、現実には、極めて発生しにくい場合が多い。しかも、それらの状態を意図的に発生させることは、さらに困難である場合が多い。従って、その故障状態やエラー状態を現実に生じさせた上で、ＳＳＤの動作を検証することは、極めて困難になる。
【０００４】
例えば、特許文献１には、演算処理装置を含むコンピュータの動作を検証するために、故障注入技術を適用した例が開示されている。その故障注入技術によれば、例えば、演算処理装置内に擬似故障を発生させる擬似故障レジスタを設け、そのレジスタの出力信号と実の故障検知回路の出力との論理和をとった信号を故障検知信号とする。こうすることにより、現実に生じにくい故障であっても、擬似故障レジスタに故障発生を示すデータを書き込むだけで、容易に故障の発生状態を生成することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開昭５９−１６０５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ＳＳＤなどの外部記憶装置は、コンピュータなどのホスト装置に接続されて用いられる装置である。一般に、ホスト装置には、ＳＳＤなどの外部記憶装置に故障やエラーが生じたときには、それに対処するプログラム（以下、故障例外処理プログラムという）が組み込まれている。その場合、ＳＳＤなどにおける故障やエラーが現実には容易に発生しないものであったときには、ホスト装置における故障例外処理プログラムの動作検証も容易ではないことになる。
【０００７】
ここで、ＳＳＤなどの外部記憶装置に前記の故障注入技術を適用すれば、ＳＳＤなどにおける故障やエラーを容易に発生させることが可能になる。しかしながら、ホスト装置と外部記憶装置との連係動作を考慮した場合には、故障注入技術の適用は、ホスト装置における故障例外処理プログラムの動作検証の効率化に十分に寄与しない。
【０００８】
一般に、ホスト装置は、マクロなコマンドを外部記憶装置に送信し、外部記憶装置に対して、あらかじめそのコマンドに定められている所定の処理を実行させる。例えば、データライトコマンドであれば、外部記憶装置は、そのデータライトコマンドに後続するデータを指定されたアドレスに書き込む処理をする。そして、外部記憶装置は、「コマンドの処理が誤りなく行われた」あるいは「処理の途中でエラーが生じた」など、コマンド実行結果の状況を報告するデータ（以下、状態データまたは応答データという）をホスト装置へ送信する。
【０００９】
すなわち、外部記憶装置における故障やエラーの発生状況は、この状態データに反映されるが、一般に、状態データは、故障やエラーをすべて識別可能に反映するものではなく、複数の故障やエラーが１つの状態データに集約されることが多い。従って、故障例外処理プログラムの検証作業者は、状態データの意味さえ理解していれば、その検証作業を行うことができる。
【００１０】
しかしながら、外部記憶装置に故障注入技術を適用した場合には、故障例外処理プログラムの検証作業者は、状態データがどの部分の故障やエラーに依存するものであるかを理解しておかなければ、適切な状態データを設定することができない。これは、検証作業者にとって負担であるとともに、その検証作業の効率を低下させる原因となる。
【００１１】
そこで、本発明は、ホスト装置における外部記憶装置に対する故障例外処理プログラムの動作検証を容易化するとともに、その検証作業の効率を向上させることが可能な外部記憶装置を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明に係る外部記憶装置は、ホスト装置から送信されたコマンドを解釈して、そのコマンドに応じた制御処理を実行するとともに、そのコマンドに対する応答データをホスト装置に送信するＣＰＵ（Central Processing Unit）と、前記コマンドに対するＣＰＵの応答処理モードを指示するデータを記憶する応答処理モード記憶部と、その応答処理モード記憶部に擬似故障応答モードを指示するデータが記憶されているときに、前記コマンドに対する応答データとして用いられる擬似故障応答データを記憶する擬似故障応答データ記憶部と、を備える。そして、そのＣＰＵは、ホスト装置から送信されたコマンドを受信したとき、前記応答処理モード記憶部に擬似故障応答モードを指示するデータが記憶されているか否かを判定し、前記応答処理モード記憶部に擬似故障応答モードを指示するデータが記憶されていた場合には、前記コマンドに対する応答データとして、前記擬似故障応答データ記憶部に記憶されている擬似故障応答データを前記ホスト装置に送信する。
【００１３】
本発明の外部記憶装置は、応答処理モード記憶部により設定される擬似故障応答モードでは、ホスト装置からのコマンドを受信したときには、その応答データとして擬似故障応答データ記憶部に記憶されている擬似故障応答データ（状態データ）をホスト装置へ送信する。詳細は実施形態で説明するが、この擬似故障応答データ（状態データ）は、ユーザによって任意に設定することができる。従って、ホスト装置における故障例外処理プログラムの動作検証の作業者は、故障例外処理プログラムの検証に当たって、外部記憶装置における個々の故障やエラーの状態やその意味を考慮する必要はなく、自らが自由に設定する擬似故障応答データ（状態データ）を考慮すればよい。従って、ホスト装置における故障例外処理プログラムの動作検証が容易化され、作業者の負担が軽減される。
【発明の効果】
【００１４】
本発明によれば、ホスト装置における外部記憶装置の故障例外処理プログラムの動作検証を容易化することができ、その検証作業の効率を向上させることができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施形態に係る外部記憶装置の機能ブロックの構成の例を示した図。
【図２】本発明の実施形態に係る外部記憶装置におけるホスト装置からのコマンド受信時の処理の処理フローの例を示した図。
【図３】本発明の実施形態に係る外部記憶装置とホスト装置との間で行われるコマンドおよび応答データの送受信フローの第１の例を示した図。
【図４】本発明の実施形態に係る外部記憶装置とホスト装置との間で行われるコマンドおよび応答データの送受信フローの第２の例を示した図。
【図５】本発明の実施形態に係る外部記憶装置において、あらかじめ定められた特定のコマンドを受信することにより擬似故障応答モードが設定される場合のコマンド受信時の処理の処理フローの例を示した図。
【図６】本発明の実施形態に係る外部記憶装置において、同じコマンドを複数回受信することにより擬似故障応答モードが設定される場合のコマンド受信時の処理の処理フローの例を示した図。
【図７】本発明の実施形態に係る外部記憶装置におけるデータライトコマンドに対する応答動作の例を示した図。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
【００１７】
図１は、本発明の実施形態に係る外部記憶装置の機能ブロックの構成の例を示した図である。図１に示すように、本実施形態では、外部記憶装置２は、通信バス３を介してホスト装置１に接続され、また、補助端子２９を介してデバッグ補助装置４に接続されることを想定している。
【００１８】
ここで、ホスト装置１は、外部記憶装置２を用いるコンピュータ、または、コンピュータを応用した様々な制御装置などである。このとき、ホスト装置１と外部記憶装置２とを接続する通信バス３としては、例えば、ＳＣＳＩ（Small Computer System Interface）バス、ＵＳＢ（Universal Serial Bus）などが用いられる。
【００１９】
また、デバッグ補助装置４は、簡易的なコンピュータ、例えば、ノートパソコンなどによって構成され、ホスト装置１における故障例外処理プログラムなどをデバッグしたり、検証したりするときに、外部記憶装置２の内部状態を変更したり、取得したりするために用いられる。このとき、補助端子２９とデバッグ補助装置４との間は、例えば、ＵＳＢやＲＳ２３２Ｃなどのインタフェースによって接続される。
【００２０】
さらに、図１に示すように、外部記憶装置２は、ＣＰＵ２０、ホストＩＦ（Interface）制御部２１、メモリＩＦ制御部２２、記憶媒体２３、プログラム記憶部２４、一時データ記憶部２５、応答処理モード記憶部２６、補助端子ＩＦ部２７、入力ＳＷ（Switch）２８、補助端子２９などを含んで構成される。ここで、ＣＰＵ２０は、ＣＰＵバス２０１を有し、そのＣＰＵバス２０１には、ホストＩＦ制御部２１、メモリＩＦ制御部２２、応答処理モード記憶部２６、補助端子ＩＦ部２７などが接続されている。また、ホストＩＦ制御部２１とメモリＩＦ制御部２２との間は、データ転送用の専用バス２０２で接続されている。
【００２１】
ＣＰＵ２０は、半導体集積回路のマイクロプロセッサなどによって構成され、外部記憶装置２を構成する機能ブロック全体を制御する。例えば、ＣＰＵ２０は、ホストＩＦ制御部２１を介してホスト装置１から送信されたコマンドを受信し、そのコマンドを解釈し、そのコマンドに対してあらかじめ定められている処理を実行する。なお、外部記憶装置２がＳＳＤである場合には、そのコマンドとしては、例えば、データライトコマンド、データリードコマンド、データ消去コマンドなどがある。
【００２２】
ホストＩＦ制御部２１は、通信バス３とのインタフェース回路や、通信バス３で用いられるプロトコルに従って、ホスト装置１との間で送受信されるデータを一時記憶するレジスタなどによって構成されている。そして、ホストＩＦ制御部２１は、そのレジスタにコマンドの受信を検知した場合には、ＣＰＵ２０にコマンドの検知を通知する。
【００２３】
メモリＩＦ制御部２２は、ＣＰＵ２０またはホストＩＦ制御部２１の指示のもとに、記憶媒体２３、プログラム記憶部２４および一時データ記憶部２５に対するデータ書き込みおよびデータ読み出しを制御する。
【００２４】
記憶媒体２３は、外部記憶装置２におけるユーザデータの貯蔵部であり、外部記憶装置２がＳＳＤである場合には、半導体集積回路の不揮発性メモリであるフラッシュメモリによって構成されている。なお、記憶媒体２３は、外部記憶装置２の種類に応じて、ハード磁気ディスク、ＤＶＤ（Digital Versatile Disk）、ブルーレイディスク（登録商標）などであってもよい。
【００２５】
プログラム記憶部２４は、不揮発性メモリのフラッシュメモリなどによって構成され、ＣＰＵ２０が実行する様々なプログラム、例えば、当該外部記憶装置２にあらかじめ定義されたコマンドの機能を実現するためのプログラムなど、を記憶している。
【００２６】
一時データ記憶部２５は、揮発性メモリのＲＡＭ（Random Access Memory）などによって構成され、記憶媒体２３に対する書き込みデータや読み出しデータを一時的に記憶するほか、ＣＰＵ２０のプログラム実行に伴って生成される当該外部記憶装置２の内部状態を表すデータを記憶する。
【００２７】
そのため、一時データ記憶部２５には、データバッファ記憶部２５１、擬似故障応答データ記憶部２５２、無応答指示フラグ記憶部２５３、トレースデータ記憶部２５４、エラーログ記憶部２５５などが構成されている。そして、データバッファ記憶部２５１には、記憶媒体２３に対する書き込みデータや読み出しデータが一時的に記憶される。また、擬似故障応答データ記憶部２５２、無応答指示フラグ記憶部２５３、トレースデータ記憶部２５４およびエラーログ記憶部２５５には、それぞれ、擬似故障応答データ、無応答指示フラグ、トレースデータ、エラーログといった当該外部記憶装置２の内部状態を表すデータまたはその履歴データが記憶される。
【００２８】
入力ＳＷ２８が接続された応答処理モード記憶部２６は、１ビットのフリップフロップやレジスタなどによって構成されており、作業者が入力ＳＷ２８を適宜操作することによって、その値を“０”または“１”に設定することができる。なお、入力ＳＷ２８は、単純に電流をオン・オフする手動スイッチなどによって構成されている。
【００２９】
応答処理モード記憶部２６は、ＣＰＵ２０がホスト装置１からのコマンドを受信したとき、そのコマンドに対する応答処理モードを指示するデータを記憶する。本実施形態では、その応答処理モードとして、通常応答モードおよび擬似故障応答モードの２つの応答モードが想定されている。そこで、ここでは、応答処理モード記憶部２６に“０”がセットされていた場合を通常モード、“１”がセットされていた場合を擬似故障応答モードであると定義する。
【００３０】
そして、応答処理モード記憶部２６に“１”がセットされていた場合、つまり、擬似故障応答モードであった場合には、ＣＰＵ２０は、ホスト装置１からのコマンドを受信したとき、通常のコマンド処理を実行せず、そのとき擬似故障応答データ記憶部２５２に記憶されている擬似故障応答データを、そのコマンドに対する応答データとしてホスト装置１に送信する。
【００３１】
一方、応答処理モード記憶部２６に“０”がセットされていた場合、つまり、通常応答モードであった場合には、ＣＰＵ２０は、受信したコマンドにあらかじめ定められた処理を通常に実行し、その処理結果、すなわち、コマンドが正常に終了した、または、コマンド実行中に故障やエラーが発見されたことを示すデータ（状態データ）を応答データとしてホスト装置１に送信する。
【００３２】
補助端子２９に接続された補助端子ＩＦ部２７は、ＣＰＵ２０とデバッグ補助装置４とを通信可能に接続するインタフェース回路、例えば、ＵＳＢインタフェース回路などによって構成されている。そして、プログラム記憶部２４には、デバッグ補助装置４がＣＰＵ２０を介して一時データ記憶部２５を任意にアクセスするためのプログラムが格納されている。従って、デバッグ補助装置４は、一時データ記憶部２５の擬似故障応答データ記憶部２５２に任意の擬似故障応答データを設定でき、また、無応答指示フラグ記憶部２５３の無応答指示フラグに任意の値を設定することができる。
【００３３】
ここで、無応答指示フラグは、応答処理モード記憶部２６に擬似故障応答モードが設定されていた場合に、ホスト装置１からのコマンドに対する応答データとして擬似故障応答データを送信するのではなく、何も応答しないことを、ＣＰＵ２０に指示するフラグである。本実施形態では、無応答指示フラグ記憶部２５３に“１”が記憶されている場合を、無応答指示フラグがセットされた状態であるとする。
【００３４】
図２は、本発明の実施形態に係る外部記憶装置２におけるホスト装置１からのコマンド受信時の処理の処理フローの例を示した図である。なお、この処理フローを実現するプログラムは、プログラム記憶部２４に記憶されている。
【００３５】
図２に示すように、ＣＰＵ２０は、ホスト装置１からのコマンドを受信すると（ステップＳ１１）、まず、応答処理モード記憶部２６に“１”がセットされているか否か、すなわち、擬似故障応答モードであるか否かを判定する（ステップＳ１２）。そして、その判定の結果、擬似故障応答モードであった場合には（ステップＳ１２でＹｅｓ）、さらに、ＣＰＵ２０は、無応答指示フラグ記憶部２５３を参照して、無応答指示フラグがセットされているか否かを判定する（ステップＳ１３）。
【００３６】
そして、ステップＳ１３での判定で、無応答指示フラグがセットされていなかった場合には（ステップＳ１３でＮｏ）、ＣＰＵ２０は、ステップＳ１１で受信したコマンドに対する応答データとして、擬似故障応答データ記憶部２５２に記憶されている擬似故障応答データをホスト装置１へ送信する（ステップＳ１４）。一方、無応答指示フラグがセットされていた場合には（ステップＳ１３でＹｅｓ）、ＣＰＵ２０は、ステップＳ１４の処理をスキップする。すなわち、ＣＰＵ２０は、ステップＳ１４の実行を抑制し、ホスト装置１へ応答データの送信を行わない。
【００３７】
また、ステップＳ１２の判定で、擬似故障応答モードでなかった場合には（ステップＳ１２でＮｏ）、ＣＰＵ２０は、通常のコマンド対応処理を実行する（ステップＳ１５）。なお、通常のコマンド対応処理とは、外部記憶装置２のコマンドとしてあらかじめ定められた対応処理をいい、ＣＰＵ２０は、その対応処理を終了するすぐ前に、その対応処理において故障やエラーが生じたか否かを示す応答データ（状態データ）をホスト装置１へ送信する。
【００３８】
以上、本実施形態によれば、あらかじめ応答処理モード記憶部２６に擬似故障応答モードを指示するデータがセットされていた場合には、ＣＰＵ２０は、ホスト装置１からのコマンドを受信したとき、通常のコマンド対応処理の後に送信される応答データ（状態データ）に代わる擬似の応答データ、つまり、擬似故障応答データ記憶部２５２に記憶されている擬似故障応答データをホスト装置１へ送信する。
【００３９】
前記したように、ＣＰＵ２０は、補助端子２９および補助端子ＩＦ部２７を介してデバッグ補助装置４から送信された任意のデータを、擬似故障応答データ記憶部２５２に書き込むことができる。これは、デバッグ補助装置４は、擬似故障応答データ記憶部２５２に任意のデータを設定することができることを意味する。すなわち、外部記憶装置２のユーザは、デバッグ補助装置４を介して、擬似故障応答データ記憶部２５２に任意のデータを設定することができることになる。
【００４０】
図３は、本発明の実施形態に係る外部記憶装置２とホスト装置１との間で行われるコマンドおよび応答データの送受信フローの第１の例を示した図である。なお、図３において、破線で囲った処理は、外部記憶装置２のユーザの操作が含まれる処理である。
【００４１】
図３に示すように、通常モードでは、ホスト装置１が外部記憶装置２へコマンドを送信すると（ステップＳ２１）、外部記憶装置２（ＣＰＵ２０）は、そのコマンドを受信し、そのコマンドの対応処理を実行する（ステップＳ２２）。次に、外部記憶装置２（ＣＰＵ２０）は、その対応処理によって得られる応答データ、例えば、正常終了を示す応答データをホスト装置１へ送信する（ステップＳ２３）。
【００４２】
続いて、外部記憶装置２のユーザが入力ＳＷ２８を操作して、応答処理モード記憶部２６に擬似故障応答モードをセットすると、コマンド応答モードは、擬似故障応答モードに設定される（ステップＳ２４）。さらに、外部記憶装置２のユーザがデバッグ補助装置４を操作して、擬似故障応答データ記憶部２５２に任意の擬似故障応答データを設定する（ステップＳ２５）。
【００４３】
次に、擬似故障応答モードでは、ホスト装置１が外部記憶装置２へコマンドを送信すると（ステップＳ２６）、外部記憶装置２（ＣＰＵ２０）は、そのコマンドを受信するものの、そのコマンドの対応処理を実行することなく、擬似故障応答データ記憶部２５２に記憶されている擬似故障応答データを異常終了の応答データとしてホスト装置１へ送信する（ステップＳ２７）。
【００４４】
図４は、本発明の実施形態に係る外部記憶装置２とホスト装置１との間で行われるコマンドおよび応答データの送受信フローの第２の例を示した図である。なお、図４において、破線で囲った処理は、外部記憶装置２のユーザの操作が含まれる処理である。
【００４５】
図４に示すように、通常モードでの処理（ステップＳ２１〜Ｓ２３）、および、外部記憶装置２のユーザが入力ＳＷ２８を操作することによってコマンド応答モードが擬似故障応答モードに設定される処理（ステップＳ２４）までは、図３の場合と同じである。図４の例では、外部記憶装置２のユーザがデバッグ補助装置４を操作することによって、無応答指示フラグ記憶部２５３に無応答指示フラグがセットされる処理（ステップＳ２５ａ）以降の処理が相違している。
【００４６】
すなわち、外部記憶装置２が擬似故障応答モードに設定された後、ホスト装置１が外部記憶装置２へコマンドを送信すると（ステップＳ２６）、外部記憶装置２（ＣＰＵ２０）は、そのコマンドを受信するものの、そのコマンドの対応処理を実行することもなく、また、いかなる応答データの送信も行わない、つまり、擬似故障応答データの送信を抑制する（ステップＳ２７ａ）。すなわち、以上の処理により、外部記憶装置２は、ホスト装置１から送信されるコマンドに対し、無応答という異常状態を生成していることになる。
【００４７】
以上、図１〜図４を用いて説明した実施形態によれば、ユーザは、ホスト装置１から外部記憶装置２へ送信するコマンドに応じた任意の異常状態を表す擬似故障応答データを、外部記憶装置２からホスト装置１へ送信させることが可能になり、さらには、外部記憶装置２からホスト装置１への応答が何らされないという無応答の異常状態をも生成することができる。従って、ホスト装置１における外部記憶装置２の異常応答に対する故障例外処理プログラムの動作検証をする作業者は、外部記憶装置２において生じにくい異常応答データであっても、擬似故障応答データとしてあらかじめ準備しておくことができるので、故障例外処理プログラムの動作検証をするのが容易になる。その結果、故障例外処理プログラムの動作検証の効率が向上する。
【００４８】
（実施形態の変形例１）
図１〜図４を用いて説明した実施形態では、応答処理モード記憶部２６に記憶される応答処理モードを指示するデータは、入力ＳＷ２８によって設定されるものとしたが、図５および図６に示すように、ホスト装置１から送信される特定のコマンドを受信したことをトリガにして設定されるようにしてもよい。ここで、図５は、あらかじめ定められた特定のコマンドを受信することにより擬似故障応答モードが設定される場合のコマンド受信時の処理の処理フローの例を示した図、図６は、同じコマンドを複数回受信することにより故障応答モードが設定される場合のコマンド受信時の処理の処理フローの例を示した図である。
【００４９】
まず、図５の例では、応答処理モード記憶部２６に擬似故障応答モードを表すデータを設定するために、例えば、擬似故障応答モード設定コマンドという名称の特殊なコマンドをあらかじめ用意しておく。そして、外部記憶装置２のＣＰＵ２０は、ホスト装置１から送信されたコマンドを受信すると（ステップＳ１１）、その受信したコマンドが擬似故障応答モード設定コマンドであるか否かを判定する（ステップＳ１１ａ）。
【００５０】
その判定の結果、受信したコマンドが擬似故障応答モード設定コマンドであった場合には（ステップＳ１１ａでＹｅｓ）、ＣＰＵ２０は、応答処理モード記憶部２６に擬似故障応答モードを表すデータ“１”を書き込むことにより、その応答処理モードを擬似故障応答モードに設定する（ステップＳ１１ｂ）。次に、ＣＰＵ２０は、ホスト装置１へ正常終了の応答データを送信して（ステップＳ１１ｃ）、当該擬似故障応答モード設定コマンドの処理を終了する。
【００５１】
また、ステップＳ１１ａの判定で、受信したコマンドが擬似故障応答モード設定コマンドでなかった場合には（ステップＳ１１ａでＮｏ）、ＣＰＵ２０は、ステップＳ１２以下の処理を実行する。なお、ステップＳ１２以下の処理は、図２で説明したステップＳ１２以下の処理と同じであるので、ここではその説明を省略する。
【００５２】
以上、図５の例では、ホスト装置１における外部記憶装置２の異常応答に対する故障例外処理プログラムの動作検証をする作業者は、ホスト装置１からあらかじめ定められた特殊なコマンドである擬似故障応答モード設定コマンドを外部記憶装置２へ送信することにより、外部記憶装置２における応答処理モードを自由に擬似故障応答モードに設定することができる。
【００５３】
また、図６の例では、必ずしも特殊なコマンドを用意する必要はない。ＣＰＵ２０は、データライトコマンドやデータリードコマンドなどであっても、その同じコマンドを所定回数受信したことをトリガにして、応答処理モード記憶部２６に擬似故障応答モードを表すデータ“１”を書き込む。なお、ここでいう所定回数受信とは、同じコマンドを所定回数連続して受信という意味に限定してもしなくてもよい。
【００５４】
すなわち、ＣＰＵ２０は、ホスト装置１から送信されたコマンドを受信すると（ステップＳ１１）、当該コマンドを所定回数受信したか否かを判定する（ステップＳ１１ｄ）。そして、その判定の結果、当該コマンドを所定回数受信した場合には（ステップＳ１１ｄでＹｅｓ）、ＣＰＵ２０は、応答処理モード記憶部２６に擬似故障応答モードを表すデータ“１”を書き込むことにより、その応答処理モードを擬似故障応答モードに設定し（ステップＳ１１ｅ）、ステップＳ１２以下の処理を実行する。
【００５５】
それに対し、当該コマンドを所定回数受信していなかった場合には（ステップＳ１１ｄでＮｏ）、ＣＰＵ２０は、応答処理モード記憶部２６に擬似故障応答モードを表すデータ“１”を書き込む処理をすることなく、ステップＳ１２以下の処理を実行する。なお、ステップＳ１２以下の処理は、図２で説明したステップＳ１２以下の処理と同じであるので、ここではその説明を省略する。
【００５６】
なお、図６の例では、同じコマンドを所定回数受信したことをトリガに擬似故障応答モードに設定するとしているが、複数のコマンドの組み合わせを所定回数受信したことをトリガに擬似故障応答モードに設定するとしてもよい。
【００５７】
（実施形態の変形例２）
図１〜図４を用いて説明した実施形態では、擬似故障応答データ記憶部２５２に記憶される擬似故障応答データや、無応答指示フラグ記憶部２５３に記憶される無応答指示フラグの値は、デバッグ補助装置４から補助端子２９を介して入力されるデータに基づき設定されるものとしたが、デバッグ補助装置４を使用しないで済むようにすることもできる。例えば、補助端子２９を複数ビットのデータ設定が可能なディップスイッチやロータリスイッチに置き換え、そのディップスイッチやロータリスイッチで設定されたデータに基づき、擬似故障応答データや無応答指示フラグの値を設定するようにしてもよい。
【００５８】
（実施形態についての補足）
図１〜図４を用いて説明した実施形態では、ＣＰＵ２０は、ホスト装置１からのコマンドを受信したときには、応答データを１回送信する場合だけを想定しているが、実際には、１つのコマンドに対して応答データを複数回送信しなければならないことも多い。図７は、外部記憶装置２におけるデータライトコマンドに対する応答動作の例を示した図である。
【００５９】
図７（ａ）に示すように、ホスト装置１がデータライトコマンドを送信すると（ステップＳ４１）、外部記憶装置２は、その応答データとして、例えば、外部記憶装置２内の故障の状況やデータバッファ記憶部２５１の空き状況などに応じて、コマンド実行の準備状況を表す応答データ（この例では、準備ＯＫの応答データ）をホスト装置１へ送信する（ステップＳ４２）。
【００６０】
ホスト装置１は、準備ＯＫの応答データを受信すると、記憶媒体２３に書き込むためのライトデータを送信する（ステップＳ４３）。外部記憶装置２は、そのライトデータを受信して、記憶媒体２３への書き込みが完了すると、その書き込み動作が正しく完了したか否かを表す応答データ（この例では、ライトエラー有りの応答データ）をホスト装置１へ送信する（ステップＳ４４）。
【００６１】
そして、ホスト装置１は、ライトエラー有りの応答データを受信すると、そのライトエラーに応じた故障例外処理プログラムを実行する。
【００６２】
本発明の実施形態では、以上のような場合、応答処理モード記憶部２６に擬似故障応答モードを指示するデータが設定されていたときには、ＣＰＵ２０は、ステップＳ４２およびステップＳ４４でホスト装置１へ送信する準備ＯＫの応答データおよびライトエラーの応答データの代わりに擬似故障応答データ記憶部２５２にあらかじめ設定されている擬似故障応答データを送信することができる。
【００６３】
図７（ａ）の例では、ライトデータの受信からライトデータの記憶媒体２３への書き込みの過程でエラーが生じた場合の例であるが、例えば、記憶媒体２３への書き込み回路の故障のために始めから記憶媒体２３への書き込みができないような場合がある。そのような場合には、外部記憶装置２における応答の仕方は、例えば、図７（ｂ）のようになる。
【００６４】
図７（ｂ）に示すように、ホスト装置１がデータライトコマンドを送信すると（ステップＳ５１）、外部記憶装置２は、その応答データとして、例えば、外部記憶装置２内の故障の状況やデータバッファ記憶部２５１の空き状況などに応じて、コマンド実行の準備状況を表す応答データ（この例では、準備ＮＧの応答データ）をホスト装置１へ送信する（ステップＳ５２）。
【００６５】
ホスト装置１は、準備ＮＧの応答データを受信すると、準備ＮＧの詳細データを取得するために、状態確認コマンドを外部記憶装置２へ送信する（ステップＳ５３）。外部記憶装置２は、その状態確認コマンドを受信すると、準備ＮＧの応答データの理由を示した故障状態データをホスト装置１へ送信する（ステップＳ５４）。
【００６６】
そして、ホスト装置１は、故障状態データを受信すると、その故障状態に応じた故障例外処理プログラムを実行する。
【００６７】
以上の図７（ｂ）の場合にも、応答処理モード記憶部２６に擬似故障応答モードを指示するデータが設定されていた場合には、ＣＰＵ２０は、ステップＳ５２およびステップＳ５４でホスト装置１へ送信する準備ＮＧの応答データおよび故障状態データの代わりに擬似故障応答データ記憶部２５２にあらかじめ設定されている擬似故障応答データを送信することができる。
【００６８】
以上に示した本発明の実施形態によれば、ホスト装置１における外部記憶装置２の異常応答に対する故障例外処理プログラムの動作検証をする作業者は、擬似故障応答モードでは、ホスト装置１に対する応答データを擬似故障応答データとしてあらかじめ準備しておくことができるので、故障例外処理プログラムの動作検証をするのが容易になる。その結果、故障例外処理プログラムの動作検証の効率が向上する。
【００６９】
なお、さらに補足すると、外部記憶装置２の一時データ記憶部２５には、トレースデータ記憶部２５４やエラーログ記憶部２５５が含まれており、そのトレースデータ記憶部２５４やエラーログ記憶部２５５に記憶されているデータは、デバッグ補助装置４によって取得することができるので、前記の作業者は、外部記憶装置２内部におけるコマンドの実行状況を細かく追跡することができる。この意味でも、故障例外処理プログラムの動作検証が容易になり、故障例外処理プログラムの動作検証の効率が向上する。
【符号の説明】
【００７０】
１      ホスト装置
２      外部記憶装置
３      通信バス
４      デバッグ補助装置
２０    ＣＰＵ
２１    ホストＩＦ制御部
２２    メモリＩＦ制御部
２３    記憶媒体
２４    プログラム記憶部
２５    一時データ記憶部
２６    応答処理モード記憶部
２７    補助端子ＩＦ部
２８    入力ＳＷ
２９    補助端子
２０１  ＣＰＵバス
２０２  専用バス
２５１  データバッファ記憶部
２５２  擬似故障応答データ記憶部
２５３  無応答指示フラグ記憶部
２５４  トレースデータ記憶部
２５５  エラーログ記憶部
【図１】
2012048608.tif 000003
【図２】
2012048608.tif 000004
【図３】
2012048608.tif 000005
【図４】
2012048608.tif 000006
【図５】
2012048608.tif 000007
【図６】
2012048608.tif 000008
【図７】
2012048608.tif 000009