JP2012048608A - 外部記憶装置 - Google Patents
外部記憶装置 Download PDFInfo
- Publication number
- JP2012048608A JP2012048608A JP2010191945A JP2010191945A JP2012048608A JP 2012048608 A JP2012048608 A JP 2012048608A JP 2010191945 A JP2010191945 A JP 2010191945A JP 2010191945 A JP2010191945 A JP 2010191945A JP 2012048608 A JP2012048608 A JP 2012048608A
- Authority
- JP
- Japan
- Prior art keywords
- response
- data
- command
- storage unit
- host device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
【課題】ホスト装置における外部記憶装置に対する故障例外処理プログラムの動作検証を容易化する。
【解決手段】外部記憶装置2は、ホスト装置1から送信されたコマンドに応じた制御処理を実行し、そのコマンドに対する応答データをホスト装置に送信するCPU20と、そのコマンドに対する応答処理モードを指示するデータを記憶する応答処理モード記憶部26と、応答処理モード記憶部26により擬似故障応答モード設定されているときに、コマンドに対する応答データとして用いられる擬似故障応答データを記憶する擬似故障応答データ記憶部252と、を備え、CPU20は、ホスト装置1からのコマンドを受信したとき、応答処理モード記憶部26により擬似故障応答モードが設定されていた場合には、コマンドに対する応答データとして、擬似故障応答データ記憶部252に記憶されている擬似故障応答データをホスト装置1に送信する。
【選択図】図1
【解決手段】外部記憶装置2は、ホスト装置1から送信されたコマンドに応じた制御処理を実行し、そのコマンドに対する応答データをホスト装置に送信するCPU20と、そのコマンドに対する応答処理モードを指示するデータを記憶する応答処理モード記憶部26と、応答処理モード記憶部26により擬似故障応答モード設定されているときに、コマンドに対する応答データとして用いられる擬似故障応答データを記憶する擬似故障応答データ記憶部252と、を備え、CPU20は、ホスト装置1からのコマンドを受信したとき、応答処理モード記憶部26により擬似故障応答モードが設定されていた場合には、コマンドに対する応答データとして、擬似故障応答データ記憶部252に記憶されている擬似故障応答データをホスト装置1に送信する。
【選択図】図1
Description
本発明は、コンピュータなどのホスト装置に接続されて用いられる外部記憶装置に関する。
近年、ハードディスク記憶装置を代替する外部記憶装置として、半導体のフラッシュメモリで構成されたSSD(Solid State Drive)が注目を集めている。SSDは、可動部品を含まないため、動作の信頼性が高い、小型化し易いなどの大きな長所があるが、一方では、欠点もある。例えば、フラッシュメモリは、超微細加工技術を駆使して製造されるため、その製造歩留まりを向上させるためには、一部のビットに欠陥が生じることは許容せざるを得ない。また、フラッシュメモリでは、データの書き込み・消去に際して電子がゲート酸化膜をトンネリングしてフローティングゲートに注入されるので、ゲート酸化膜が疲労する現象が見られる。そのため、フラッシュメモリには、その書き換え回数に上限(例えば、10万回)が設けられている。
そこで、SSDにおいては、これらの欠点をカバーするために、データ誤り訂正技術やデータの書き込み回数の平準化技術など様々な技術が導入されている。そのため、SSDの動作では、多数の故障状態やエラー状態が想定されている。ところが、このように想定された故障状態やエラー状態は、現実には、極めて発生しにくい場合が多い。しかも、それらの状態を意図的に発生させることは、さらに困難である場合が多い。従って、その故障状態やエラー状態を現実に生じさせた上で、SSDの動作を検証することは、極めて困難になる。
例えば、特許文献1には、演算処理装置を含むコンピュータの動作を検証するために、故障注入技術を適用した例が開示されている。その故障注入技術によれば、例えば、演算処理装置内に擬似故障を発生させる擬似故障レジスタを設け、そのレジスタの出力信号と実の故障検知回路の出力との論理和をとった信号を故障検知信号とする。こうすることにより、現実に生じにくい故障であっても、擬似故障レジスタに故障発生を示すデータを書き込むだけで、容易に故障の発生状態を生成することができる。
SSDなどの外部記憶装置は、コンピュータなどのホスト装置に接続されて用いられる装置である。一般に、ホスト装置には、SSDなどの外部記憶装置に故障やエラーが生じたときには、それに対処するプログラム(以下、故障例外処理プログラムという)が組み込まれている。その場合、SSDなどにおける故障やエラーが現実には容易に発生しないものであったときには、ホスト装置における故障例外処理プログラムの動作検証も容易ではないことになる。
ここで、SSDなどの外部記憶装置に前記の故障注入技術を適用すれば、SSDなどにおける故障やエラーを容易に発生させることが可能になる。しかしながら、ホスト装置と外部記憶装置との連係動作を考慮した場合には、故障注入技術の適用は、ホスト装置における故障例外処理プログラムの動作検証の効率化に十分に寄与しない。
一般に、ホスト装置は、マクロなコマンドを外部記憶装置に送信し、外部記憶装置に対して、あらかじめそのコマンドに定められている所定の処理を実行させる。例えば、データライトコマンドであれば、外部記憶装置は、そのデータライトコマンドに後続するデータを指定されたアドレスに書き込む処理をする。そして、外部記憶装置は、「コマンドの処理が誤りなく行われた」あるいは「処理の途中でエラーが生じた」など、コマンド実行結果の状況を報告するデータ(以下、状態データまたは応答データという)をホスト装置へ送信する。
すなわち、外部記憶装置における故障やエラーの発生状況は、この状態データに反映されるが、一般に、状態データは、故障やエラーをすべて識別可能に反映するものではなく、複数の故障やエラーが1つの状態データに集約されることが多い。従って、故障例外処理プログラムの検証作業者は、状態データの意味さえ理解していれば、その検証作業を行うことができる。
しかしながら、外部記憶装置に故障注入技術を適用した場合には、故障例外処理プログラムの検証作業者は、状態データがどの部分の故障やエラーに依存するものであるかを理解しておかなければ、適切な状態データを設定することができない。これは、検証作業者にとって負担であるとともに、その検証作業の効率を低下させる原因となる。
そこで、本発明は、ホスト装置における外部記憶装置に対する故障例外処理プログラムの動作検証を容易化するとともに、その検証作業の効率を向上させることが可能な外部記憶装置を提供することを目的とする。
本発明に係る外部記憶装置は、ホスト装置から送信されたコマンドを解釈して、そのコマンドに応じた制御処理を実行するとともに、そのコマンドに対する応答データをホスト装置に送信するCPU(Central Processing Unit)と、前記コマンドに対するCPUの応答処理モードを指示するデータを記憶する応答処理モード記憶部と、その応答処理モード記憶部に擬似故障応答モードを指示するデータが記憶されているときに、前記コマンドに対する応答データとして用いられる擬似故障応答データを記憶する擬似故障応答データ記憶部と、を備える。そして、そのCPUは、ホスト装置から送信されたコマンドを受信したとき、前記応答処理モード記憶部に擬似故障応答モードを指示するデータが記憶されているか否かを判定し、前記応答処理モード記憶部に擬似故障応答モードを指示するデータが記憶されていた場合には、前記コマンドに対する応答データとして、前記擬似故障応答データ記憶部に記憶されている擬似故障応答データを前記ホスト装置に送信する。
本発明の外部記憶装置は、応答処理モード記憶部により設定される擬似故障応答モードでは、ホスト装置からのコマンドを受信したときには、その応答データとして擬似故障応答データ記憶部に記憶されている擬似故障応答データ(状態データ)をホスト装置へ送信する。詳細は実施形態で説明するが、この擬似故障応答データ(状態データ)は、ユーザによって任意に設定することができる。従って、ホスト装置における故障例外処理プログラムの動作検証の作業者は、故障例外処理プログラムの検証に当たって、外部記憶装置における個々の故障やエラーの状態やその意味を考慮する必要はなく、自らが自由に設定する擬似故障応答データ(状態データ)を考慮すればよい。従って、ホスト装置における故障例外処理プログラムの動作検証が容易化され、作業者の負担が軽減される。
本発明によれば、ホスト装置における外部記憶装置の故障例外処理プログラムの動作検証を容易化することができ、その検証作業の効率を向上させることができる。
以下、本発明の実施形態について、図面を参照して詳細に説明する。
図1は、本発明の実施形態に係る外部記憶装置の機能ブロックの構成の例を示した図である。図1に示すように、本実施形態では、外部記憶装置2は、通信バス3を介してホスト装置1に接続され、また、補助端子29を介してデバッグ補助装置4に接続されることを想定している。
ここで、ホスト装置1は、外部記憶装置2を用いるコンピュータ、または、コンピュータを応用した様々な制御装置などである。このとき、ホスト装置1と外部記憶装置2とを接続する通信バス3としては、例えば、SCSI(Small Computer System Interface)バス、USB(Universal Serial Bus)などが用いられる。
また、デバッグ補助装置4は、簡易的なコンピュータ、例えば、ノートパソコンなどによって構成され、ホスト装置1における故障例外処理プログラムなどをデバッグしたり、検証したりするときに、外部記憶装置2の内部状態を変更したり、取得したりするために用いられる。このとき、補助端子29とデバッグ補助装置4との間は、例えば、USBやRS232Cなどのインタフェースによって接続される。
さらに、図1に示すように、外部記憶装置2は、CPU20、ホストIF(Interface)制御部21、メモリIF制御部22、記憶媒体23、プログラム記憶部24、一時データ記憶部25、応答処理モード記憶部26、補助端子IF部27、入力SW(Switch)28、補助端子29などを含んで構成される。ここで、CPU20は、CPUバス201を有し、そのCPUバス201には、ホストIF制御部21、メモリIF制御部22、応答処理モード記憶部26、補助端子IF部27などが接続されている。また、ホストIF制御部21とメモリIF制御部22との間は、データ転送用の専用バス202で接続されている。
CPU20は、半導体集積回路のマイクロプロセッサなどによって構成され、外部記憶装置2を構成する機能ブロック全体を制御する。例えば、CPU20は、ホストIF制御部21を介してホスト装置1から送信されたコマンドを受信し、そのコマンドを解釈し、そのコマンドに対してあらかじめ定められている処理を実行する。なお、外部記憶装置2がSSDである場合には、そのコマンドとしては、例えば、データライトコマンド、データリードコマンド、データ消去コマンドなどがある。
ホストIF制御部21は、通信バス3とのインタフェース回路や、通信バス3で用いられるプロトコルに従って、ホスト装置1との間で送受信されるデータを一時記憶するレジスタなどによって構成されている。そして、ホストIF制御部21は、そのレジスタにコマンドの受信を検知した場合には、CPU20にコマンドの検知を通知する。
メモリIF制御部22は、CPU20またはホストIF制御部21の指示のもとに、記憶媒体23、プログラム記憶部24および一時データ記憶部25に対するデータ書き込みおよびデータ読み出しを制御する。
記憶媒体23は、外部記憶装置2におけるユーザデータの貯蔵部であり、外部記憶装置2がSSDである場合には、半導体集積回路の不揮発性メモリであるフラッシュメモリによって構成されている。なお、記憶媒体23は、外部記憶装置2の種類に応じて、ハード磁気ディスク、DVD(Digital Versatile Disk)、ブルーレイディスク(登録商標)などであってもよい。
プログラム記憶部24は、不揮発性メモリのフラッシュメモリなどによって構成され、CPU20が実行する様々なプログラム、例えば、当該外部記憶装置2にあらかじめ定義されたコマンドの機能を実現するためのプログラムなど、を記憶している。
一時データ記憶部25は、揮発性メモリのRAM(Random Access Memory)などによって構成され、記憶媒体23に対する書き込みデータや読み出しデータを一時的に記憶するほか、CPU20のプログラム実行に伴って生成される当該外部記憶装置2の内部状態を表すデータを記憶する。
そのため、一時データ記憶部25には、データバッファ記憶部251、擬似故障応答データ記憶部252、無応答指示フラグ記憶部253、トレースデータ記憶部254、エラーログ記憶部255などが構成されている。そして、データバッファ記憶部251には、記憶媒体23に対する書き込みデータや読み出しデータが一時的に記憶される。また、擬似故障応答データ記憶部252、無応答指示フラグ記憶部253、トレースデータ記憶部254およびエラーログ記憶部255には、それぞれ、擬似故障応答データ、無応答指示フラグ、トレースデータ、エラーログといった当該外部記憶装置2の内部状態を表すデータまたはその履歴データが記憶される。
入力SW28が接続された応答処理モード記憶部26は、1ビットのフリップフロップやレジスタなどによって構成されており、作業者が入力SW28を適宜操作することによって、その値を“0”または“1”に設定することができる。なお、入力SW28は、単純に電流をオン・オフする手動スイッチなどによって構成されている。
応答処理モード記憶部26は、CPU20がホスト装置1からのコマンドを受信したとき、そのコマンドに対する応答処理モードを指示するデータを記憶する。本実施形態では、その応答処理モードとして、通常応答モードおよび擬似故障応答モードの2つの応答モードが想定されている。そこで、ここでは、応答処理モード記憶部26に“0”がセットされていた場合を通常モード、“1”がセットされていた場合を擬似故障応答モードであると定義する。
そして、応答処理モード記憶部26に“1”がセットされていた場合、つまり、擬似故障応答モードであった場合には、CPU20は、ホスト装置1からのコマンドを受信したとき、通常のコマンド処理を実行せず、そのとき擬似故障応答データ記憶部252に記憶されている擬似故障応答データを、そのコマンドに対する応答データとしてホスト装置1に送信する。
一方、応答処理モード記憶部26に“0”がセットされていた場合、つまり、通常応答モードであった場合には、CPU20は、受信したコマンドにあらかじめ定められた処理を通常に実行し、その処理結果、すなわち、コマンドが正常に終了した、または、コマンド実行中に故障やエラーが発見されたことを示すデータ(状態データ)を応答データとしてホスト装置1に送信する。
補助端子29に接続された補助端子IF部27は、CPU20とデバッグ補助装置4とを通信可能に接続するインタフェース回路、例えば、USBインタフェース回路などによって構成されている。そして、プログラム記憶部24には、デバッグ補助装置4がCPU20を介して一時データ記憶部25を任意にアクセスするためのプログラムが格納されている。従って、デバッグ補助装置4は、一時データ記憶部25の擬似故障応答データ記憶部252に任意の擬似故障応答データを設定でき、また、無応答指示フラグ記憶部253の無応答指示フラグに任意の値を設定することができる。
ここで、無応答指示フラグは、応答処理モード記憶部26に擬似故障応答モードが設定されていた場合に、ホスト装置1からのコマンドに対する応答データとして擬似故障応答データを送信するのではなく、何も応答しないことを、CPU20に指示するフラグである。本実施形態では、無応答指示フラグ記憶部253に“1”が記憶されている場合を、無応答指示フラグがセットされた状態であるとする。
図2は、本発明の実施形態に係る外部記憶装置2におけるホスト装置1からのコマンド受信時の処理の処理フローの例を示した図である。なお、この処理フローを実現するプログラムは、プログラム記憶部24に記憶されている。
図2に示すように、CPU20は、ホスト装置1からのコマンドを受信すると(ステップS11)、まず、応答処理モード記憶部26に“1”がセットされているか否か、すなわち、擬似故障応答モードであるか否かを判定する(ステップS12)。そして、その判定の結果、擬似故障応答モードであった場合には(ステップS12でYes)、さらに、CPU20は、無応答指示フラグ記憶部253を参照して、無応答指示フラグがセットされているか否かを判定する(ステップS13)。
そして、ステップS13での判定で、無応答指示フラグがセットされていなかった場合には(ステップS13でNo)、CPU20は、ステップS11で受信したコマンドに対する応答データとして、擬似故障応答データ記憶部252に記憶されている擬似故障応答データをホスト装置1へ送信する(ステップS14)。一方、無応答指示フラグがセットされていた場合には(ステップS13でYes)、CPU20は、ステップS14の処理をスキップする。すなわち、CPU20は、ステップS14の実行を抑制し、ホスト装置1へ応答データの送信を行わない。
また、ステップS12の判定で、擬似故障応答モードでなかった場合には(ステップS12でNo)、CPU20は、通常のコマンド対応処理を実行する(ステップS15)。なお、通常のコマンド対応処理とは、外部記憶装置2のコマンドとしてあらかじめ定められた対応処理をいい、CPU20は、その対応処理を終了するすぐ前に、その対応処理において故障やエラーが生じたか否かを示す応答データ(状態データ)をホスト装置1へ送信する。
以上、本実施形態によれば、あらかじめ応答処理モード記憶部26に擬似故障応答モードを指示するデータがセットされていた場合には、CPU20は、ホスト装置1からのコマンドを受信したとき、通常のコマンド対応処理の後に送信される応答データ(状態データ)に代わる擬似の応答データ、つまり、擬似故障応答データ記憶部252に記憶されている擬似故障応答データをホスト装置1へ送信する。
前記したように、CPU20は、補助端子29および補助端子IF部27を介してデバッグ補助装置4から送信された任意のデータを、擬似故障応答データ記憶部252に書き込むことができる。これは、デバッグ補助装置4は、擬似故障応答データ記憶部252に任意のデータを設定することができることを意味する。すなわち、外部記憶装置2のユーザは、デバッグ補助装置4を介して、擬似故障応答データ記憶部252に任意のデータを設定することができることになる。
図3は、本発明の実施形態に係る外部記憶装置2とホスト装置1との間で行われるコマンドおよび応答データの送受信フローの第1の例を示した図である。なお、図3において、破線で囲った処理は、外部記憶装置2のユーザの操作が含まれる処理である。
図3に示すように、通常モードでは、ホスト装置1が外部記憶装置2へコマンドを送信すると(ステップS21)、外部記憶装置2(CPU20)は、そのコマンドを受信し、そのコマンドの対応処理を実行する(ステップS22)。次に、外部記憶装置2(CPU20)は、その対応処理によって得られる応答データ、例えば、正常終了を示す応答データをホスト装置1へ送信する(ステップS23)。
続いて、外部記憶装置2のユーザが入力SW28を操作して、応答処理モード記憶部26に擬似故障応答モードをセットすると、コマンド応答モードは、擬似故障応答モードに設定される(ステップS24)。さらに、外部記憶装置2のユーザがデバッグ補助装置4を操作して、擬似故障応答データ記憶部252に任意の擬似故障応答データを設定する(ステップS25)。
次に、擬似故障応答モードでは、ホスト装置1が外部記憶装置2へコマンドを送信すると(ステップS26)、外部記憶装置2(CPU20)は、そのコマンドを受信するものの、そのコマンドの対応処理を実行することなく、擬似故障応答データ記憶部252に記憶されている擬似故障応答データを異常終了の応答データとしてホスト装置1へ送信する(ステップS27)。
図4は、本発明の実施形態に係る外部記憶装置2とホスト装置1との間で行われるコマンドおよび応答データの送受信フローの第2の例を示した図である。なお、図4において、破線で囲った処理は、外部記憶装置2のユーザの操作が含まれる処理である。
図4に示すように、通常モードでの処理(ステップS21〜S23)、および、外部記憶装置2のユーザが入力SW28を操作することによってコマンド応答モードが擬似故障応答モードに設定される処理(ステップS24)までは、図3の場合と同じである。図4の例では、外部記憶装置2のユーザがデバッグ補助装置4を操作することによって、無応答指示フラグ記憶部253に無応答指示フラグがセットされる処理(ステップS25a)以降の処理が相違している。
すなわち、外部記憶装置2が擬似故障応答モードに設定された後、ホスト装置1が外部記憶装置2へコマンドを送信すると(ステップS26)、外部記憶装置2(CPU20)は、そのコマンドを受信するものの、そのコマンドの対応処理を実行することもなく、また、いかなる応答データの送信も行わない、つまり、擬似故障応答データの送信を抑制する(ステップS27a)。すなわち、以上の処理により、外部記憶装置2は、ホスト装置1から送信されるコマンドに対し、無応答という異常状態を生成していることになる。
以上、図1〜図4を用いて説明した実施形態によれば、ユーザは、ホスト装置1から外部記憶装置2へ送信するコマンドに応じた任意の異常状態を表す擬似故障応答データを、外部記憶装置2からホスト装置1へ送信させることが可能になり、さらには、外部記憶装置2からホスト装置1への応答が何らされないという無応答の異常状態をも生成することができる。従って、ホスト装置1における外部記憶装置2の異常応答に対する故障例外処理プログラムの動作検証をする作業者は、外部記憶装置2において生じにくい異常応答データであっても、擬似故障応答データとしてあらかじめ準備しておくことができるので、故障例外処理プログラムの動作検証をするのが容易になる。その結果、故障例外処理プログラムの動作検証の効率が向上する。
(実施形態の変形例1)
図1〜図4を用いて説明した実施形態では、応答処理モード記憶部26に記憶される応答処理モードを指示するデータは、入力SW28によって設定されるものとしたが、図5および図6に示すように、ホスト装置1から送信される特定のコマンドを受信したことをトリガにして設定されるようにしてもよい。ここで、図5は、あらかじめ定められた特定のコマンドを受信することにより擬似故障応答モードが設定される場合のコマンド受信時の処理の処理フローの例を示した図、図6は、同じコマンドを複数回受信することにより故障応答モードが設定される場合のコマンド受信時の処理の処理フローの例を示した図である。
図1〜図4を用いて説明した実施形態では、応答処理モード記憶部26に記憶される応答処理モードを指示するデータは、入力SW28によって設定されるものとしたが、図5および図6に示すように、ホスト装置1から送信される特定のコマンドを受信したことをトリガにして設定されるようにしてもよい。ここで、図5は、あらかじめ定められた特定のコマンドを受信することにより擬似故障応答モードが設定される場合のコマンド受信時の処理の処理フローの例を示した図、図6は、同じコマンドを複数回受信することにより故障応答モードが設定される場合のコマンド受信時の処理の処理フローの例を示した図である。
まず、図5の例では、応答処理モード記憶部26に擬似故障応答モードを表すデータを設定するために、例えば、擬似故障応答モード設定コマンドという名称の特殊なコマンドをあらかじめ用意しておく。そして、外部記憶装置2のCPU20は、ホスト装置1から送信されたコマンドを受信すると(ステップS11)、その受信したコマンドが擬似故障応答モード設定コマンドであるか否かを判定する(ステップS11a)。
その判定の結果、受信したコマンドが擬似故障応答モード設定コマンドであった場合には(ステップS11aでYes)、CPU20は、応答処理モード記憶部26に擬似故障応答モードを表すデータ“1”を書き込むことにより、その応答処理モードを擬似故障応答モードに設定する(ステップS11b)。次に、CPU20は、ホスト装置1へ正常終了の応答データを送信して(ステップS11c)、当該擬似故障応答モード設定コマンドの処理を終了する。
また、ステップS11aの判定で、受信したコマンドが擬似故障応答モード設定コマンドでなかった場合には(ステップS11aでNo)、CPU20は、ステップS12以下の処理を実行する。なお、ステップS12以下の処理は、図2で説明したステップS12以下の処理と同じであるので、ここではその説明を省略する。
以上、図5の例では、ホスト装置1における外部記憶装置2の異常応答に対する故障例外処理プログラムの動作検証をする作業者は、ホスト装置1からあらかじめ定められた特殊なコマンドである擬似故障応答モード設定コマンドを外部記憶装置2へ送信することにより、外部記憶装置2における応答処理モードを自由に擬似故障応答モードに設定することができる。
また、図6の例では、必ずしも特殊なコマンドを用意する必要はない。CPU20は、データライトコマンドやデータリードコマンドなどであっても、その同じコマンドを所定回数受信したことをトリガにして、応答処理モード記憶部26に擬似故障応答モードを表すデータ“1”を書き込む。なお、ここでいう所定回数受信とは、同じコマンドを所定回数連続して受信という意味に限定してもしなくてもよい。
すなわち、CPU20は、ホスト装置1から送信されたコマンドを受信すると(ステップS11)、当該コマンドを所定回数受信したか否かを判定する(ステップS11d)。そして、その判定の結果、当該コマンドを所定回数受信した場合には(ステップS11dでYes)、CPU20は、応答処理モード記憶部26に擬似故障応答モードを表すデータ“1”を書き込むことにより、その応答処理モードを擬似故障応答モードに設定し(ステップS11e)、ステップS12以下の処理を実行する。
それに対し、当該コマンドを所定回数受信していなかった場合には(ステップS11dでNo)、CPU20は、応答処理モード記憶部26に擬似故障応答モードを表すデータ“1”を書き込む処理をすることなく、ステップS12以下の処理を実行する。なお、ステップS12以下の処理は、図2で説明したステップS12以下の処理と同じであるので、ここではその説明を省略する。
なお、図6の例では、同じコマンドを所定回数受信したことをトリガに擬似故障応答モードに設定するとしているが、複数のコマンドの組み合わせを所定回数受信したことをトリガに擬似故障応答モードに設定するとしてもよい。
(実施形態の変形例2)
図1〜図4を用いて説明した実施形態では、擬似故障応答データ記憶部252に記憶される擬似故障応答データや、無応答指示フラグ記憶部253に記憶される無応答指示フラグの値は、デバッグ補助装置4から補助端子29を介して入力されるデータに基づき設定されるものとしたが、デバッグ補助装置4を使用しないで済むようにすることもできる。例えば、補助端子29を複数ビットのデータ設定が可能なディップスイッチやロータリスイッチに置き換え、そのディップスイッチやロータリスイッチで設定されたデータに基づき、擬似故障応答データや無応答指示フラグの値を設定するようにしてもよい。
図1〜図4を用いて説明した実施形態では、擬似故障応答データ記憶部252に記憶される擬似故障応答データや、無応答指示フラグ記憶部253に記憶される無応答指示フラグの値は、デバッグ補助装置4から補助端子29を介して入力されるデータに基づき設定されるものとしたが、デバッグ補助装置4を使用しないで済むようにすることもできる。例えば、補助端子29を複数ビットのデータ設定が可能なディップスイッチやロータリスイッチに置き換え、そのディップスイッチやロータリスイッチで設定されたデータに基づき、擬似故障応答データや無応答指示フラグの値を設定するようにしてもよい。
(実施形態についての補足)
図1〜図4を用いて説明した実施形態では、CPU20は、ホスト装置1からのコマンドを受信したときには、応答データを1回送信する場合だけを想定しているが、実際には、1つのコマンドに対して応答データを複数回送信しなければならないことも多い。図7は、外部記憶装置2におけるデータライトコマンドに対する応答動作の例を示した図である。
図1〜図4を用いて説明した実施形態では、CPU20は、ホスト装置1からのコマンドを受信したときには、応答データを1回送信する場合だけを想定しているが、実際には、1つのコマンドに対して応答データを複数回送信しなければならないことも多い。図7は、外部記憶装置2におけるデータライトコマンドに対する応答動作の例を示した図である。
図7(a)に示すように、ホスト装置1がデータライトコマンドを送信すると(ステップS41)、外部記憶装置2は、その応答データとして、例えば、外部記憶装置2内の故障の状況やデータバッファ記憶部251の空き状況などに応じて、コマンド実行の準備状況を表す応答データ(この例では、準備OKの応答データ)をホスト装置1へ送信する(ステップS42)。
ホスト装置1は、準備OKの応答データを受信すると、記憶媒体23に書き込むためのライトデータを送信する(ステップS43)。外部記憶装置2は、そのライトデータを受信して、記憶媒体23への書き込みが完了すると、その書き込み動作が正しく完了したか否かを表す応答データ(この例では、ライトエラー有りの応答データ)をホスト装置1へ送信する(ステップS44)。
そして、ホスト装置1は、ライトエラー有りの応答データを受信すると、そのライトエラーに応じた故障例外処理プログラムを実行する。
本発明の実施形態では、以上のような場合、応答処理モード記憶部26に擬似故障応答モードを指示するデータが設定されていたときには、CPU20は、ステップS42およびステップS44でホスト装置1へ送信する準備OKの応答データおよびライトエラーの応答データの代わりに擬似故障応答データ記憶部252にあらかじめ設定されている擬似故障応答データを送信することができる。
図7(a)の例では、ライトデータの受信からライトデータの記憶媒体23への書き込みの過程でエラーが生じた場合の例であるが、例えば、記憶媒体23への書き込み回路の故障のために始めから記憶媒体23への書き込みができないような場合がある。そのような場合には、外部記憶装置2における応答の仕方は、例えば、図7(b)のようになる。
図7(b)に示すように、ホスト装置1がデータライトコマンドを送信すると(ステップS51)、外部記憶装置2は、その応答データとして、例えば、外部記憶装置2内の故障の状況やデータバッファ記憶部251の空き状況などに応じて、コマンド実行の準備状況を表す応答データ(この例では、準備NGの応答データ)をホスト装置1へ送信する(ステップS52)。
ホスト装置1は、準備NGの応答データを受信すると、準備NGの詳細データを取得するために、状態確認コマンドを外部記憶装置2へ送信する(ステップS53)。外部記憶装置2は、その状態確認コマンドを受信すると、準備NGの応答データの理由を示した故障状態データをホスト装置1へ送信する(ステップS54)。
そして、ホスト装置1は、故障状態データを受信すると、その故障状態に応じた故障例外処理プログラムを実行する。
以上の図7(b)の場合にも、応答処理モード記憶部26に擬似故障応答モードを指示するデータが設定されていた場合には、CPU20は、ステップS52およびステップS54でホスト装置1へ送信する準備NGの応答データおよび故障状態データの代わりに擬似故障応答データ記憶部252にあらかじめ設定されている擬似故障応答データを送信することができる。
以上に示した本発明の実施形態によれば、ホスト装置1における外部記憶装置2の異常応答に対する故障例外処理プログラムの動作検証をする作業者は、擬似故障応答モードでは、ホスト装置1に対する応答データを擬似故障応答データとしてあらかじめ準備しておくことができるので、故障例外処理プログラムの動作検証をするのが容易になる。その結果、故障例外処理プログラムの動作検証の効率が向上する。
なお、さらに補足すると、外部記憶装置2の一時データ記憶部25には、トレースデータ記憶部254やエラーログ記憶部255が含まれており、そのトレースデータ記憶部254やエラーログ記憶部255に記憶されているデータは、デバッグ補助装置4によって取得することができるので、前記の作業者は、外部記憶装置2内部におけるコマンドの実行状況を細かく追跡することができる。この意味でも、故障例外処理プログラムの動作検証が容易になり、故障例外処理プログラムの動作検証の効率が向上する。
1 ホスト装置
2 外部記憶装置
3 通信バス
4 デバッグ補助装置
20 CPU
21 ホストIF制御部
22 メモリIF制御部
23 記憶媒体
24 プログラム記憶部
25 一時データ記憶部
26 応答処理モード記憶部
27 補助端子IF部
28 入力SW
29 補助端子
201 CPUバス
202 専用バス
251 データバッファ記憶部
252 擬似故障応答データ記憶部
253 無応答指示フラグ記憶部
254 トレースデータ記憶部
255 エラーログ記憶部
2 外部記憶装置
3 通信バス
4 デバッグ補助装置
20 CPU
21 ホストIF制御部
22 メモリIF制御部
23 記憶媒体
24 プログラム記憶部
25 一時データ記憶部
26 応答処理モード記憶部
27 補助端子IF部
28 入力SW
29 補助端子
201 CPUバス
202 専用バス
251 データバッファ記憶部
252 擬似故障応答データ記憶部
253 無応答指示フラグ記憶部
254 トレースデータ記憶部
255 エラーログ記憶部
Claims (6)
- ホスト装置に通信可能に接続され、前記ホスト装置で使用する、または、使用されたデータを保持する記憶媒体を備えた外部記憶装置であって、
前記外部記憶装置は、
前記ホスト装置から送信されたコマンドを解釈して、そのコマンドに応じた制御処理を実行するとともに、そのコマンドに対する応答データを前記ホスト装置に送信するCPUと、
前記コマンドに対する前記CPUの応答処理モードを指示するデータを記憶する応答処理モード記憶部と、
前記応答処理モード記憶部に擬似故障応答モードを指示するデータが記憶されているときに、前記コマンドに対する応答データとして用いられる擬似故障応答データを記憶する擬似故障応答データ記憶部と、
を備え、
前記CPUは、
前記ホスト装置から送信されたコマンドを受信したとき、前記応答処理モード記憶部に前記擬似故障応答モードを指示するデータが記憶されているか否かを判定し、
前記判定の結果、前記応答処理モード記憶部に前記擬似故障応答モードを指示するデータが記憶されていた場合には、前記コマンドに対する応答データとして、前記擬似故障応答データ記憶部に記憶されている擬似故障応答データを前記ホスト装置に送信すること
を特徴とする外部記憶装置。 - 前記外部記憶装置は、さらに、
前記ホスト装置への前記擬似故障応答データの送信を抑制する無応答指示フラグの値を記憶する無応答指示フラグ記憶部を備え、
前記CPUは、
前記擬似故障応答データを前記ホスト装置へ送信する場合には、その送信動作をする前に、前記無応答指示フラグがセットされているか否かを判定し、前記無応答指示フラグがセットされていたときには、前記擬似故障応答データの前記ホスト装置への送信動作を抑制すること
を特徴とする請求項1に記載の外部記憶装置。 - 前記応答処理モード記憶部に前記擬似故障応答モードを指示するデータを設定する手動スイッチを、
さらに、備えること
を特徴とする請求項1に記載の外部記憶装置。 - 前記擬似故障応答データ記憶部に記憶する擬似故障応答データを入力する入力端子を、
さらに、備えること
を特徴とする請求項1に記載の外部記憶装置。 - 前記擬似故障応答データ記憶部に記憶する擬似故障応答データ、および、前記無応答指示フラグ記憶部に記憶する無応答指示フラグの値を入力する入力端子を、
さらに、備えること
を特徴とする請求項2に記載の外部記憶装置。 - 前記CPUは、
前記ホスト装置からあらかじめ定められた特定のコマンドを受信したとき、または、同じコマンドを所定回数受信したとき、前記応答処理モード記憶部に前記擬似故障応答モードを指示するデータを設定すること
を特徴とする請求項1に記載の外部記憶装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010191945A JP2012048608A (ja) | 2010-08-30 | 2010-08-30 | 外部記憶装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010191945A JP2012048608A (ja) | 2010-08-30 | 2010-08-30 | 外部記憶装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2012048608A true JP2012048608A (ja) | 2012-03-08 |
Family
ID=45903367
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010191945A Pending JP2012048608A (ja) | 2010-08-30 | 2010-08-30 | 外部記憶装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2012048608A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016212591A (ja) * | 2015-05-07 | 2016-12-15 | 株式会社バッファロー | 情報処理システム、情報処理装置、及びファームウェアプログラム |
JP2017142165A (ja) * | 2016-02-10 | 2017-08-17 | 株式会社日立国際電気 | 試験システム |
CN109933479A (zh) * | 2017-12-19 | 2019-06-25 | 杭州华为数字技术有限公司 | 故障模拟与仿真方法以及相关设备 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002116885A (ja) * | 2000-10-12 | 2002-04-19 | Nec Corp | 記憶装置 |
-
2010
- 2010-08-30 JP JP2010191945A patent/JP2012048608A/ja active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002116885A (ja) * | 2000-10-12 | 2002-04-19 | Nec Corp | 記憶装置 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2016212591A (ja) * | 2015-05-07 | 2016-12-15 | 株式会社バッファロー | 情報処理システム、情報処理装置、及びファームウェアプログラム |
JP2017142165A (ja) * | 2016-02-10 | 2017-08-17 | 株式会社日立国際電気 | 試験システム |
CN109933479A (zh) * | 2017-12-19 | 2019-06-25 | 杭州华为数字技术有限公司 | 故障模拟与仿真方法以及相关设备 |
CN109933479B (zh) * | 2017-12-19 | 2021-07-09 | 华为技术有限公司 | 故障模拟与仿真方法以及相关设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101225924B1 (ko) | 메모리 시스템의 카피백 최적화 | |
US8966319B2 (en) | Obtaining debug information from a flash memory device | |
US9812224B2 (en) | Data storage system, data storage device and RAID controller | |
KR102571747B1 (ko) | 데이터 저장 장치 및 그것의 동작 방법 | |
JP5735338B2 (ja) | プログラムフェイル後のアクセス可能な情報を持つメモリバッファ | |
JP2008539474A (ja) | パワーセーフディスクストレージ装置、システム及び方法 | |
US20120324147A1 (en) | Read While Write Method for Serial Peripheral Interface Flash Memory | |
US10761937B2 (en) | In-field adaptive drive recovery | |
CN108536622B (zh) | 存储装置、数据处理系统以及操作存储装置的方法 | |
US20150019904A1 (en) | Data processing system and operating method thereof | |
JP2013137708A (ja) | メモリコントローラ、データ記憶装置およびメモリ制御方法 | |
KR20190000562A (ko) | 메모리 시스템 및 메모리 시스템의 동작방법 | |
KR20180046405A (ko) | 메모리 시스템 및 메모리 시스템의 동작 방법 | |
US10289328B2 (en) | Memory controller and method for handling host request based on data character | |
TW201312573A (zh) | 快閃記憶體儲存裝置及其不良儲存區域的判定方法 | |
JP2012048608A (ja) | 外部記憶装置 | |
TW201447578A (zh) | 資料儲存裝置及其管理方法 | |
CN110299181B (zh) | 非易失性存储器装置、其操作方法及数据存储装置 | |
KR20140081954A (ko) | 데이터 저장 장치 및 그것의 에러 정정 코드 처리 방법 | |
US20230289083A1 (en) | Memory device for effectively performing read operation, and operation method thereof | |
KR101300443B1 (ko) | 바이패스 경로를 이용하여 신뢰성 검증을 할 수 있는 플래시 메모리 저장 장치, 및 이를 이용한 플래시 메모리 저장 장치의 신뢰성 검증 시스템 및 방법 | |
US20150067252A1 (en) | Communicating outstanding maintenance tasks to improve disk data integrity | |
US9857423B2 (en) | Debugging circuit, debugger device, and debugging method | |
CN116340047A (zh) | 驱动独立磁碟冗余数组引擎的方法和装置 | |
KR20180078426A (ko) | 데이터 저장 장치의 에러 정정 코드 처리 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20130206 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20131009 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20140715 |