(57)【要約】【課題】異常現象発生時点でのインタフェースの状況を容易に確認することが可能なストレージデバイスを提供する。【解決手段】  ストレージデバイスは、インタフェース部と、前記インタフェース部に入力された所定数のコマンド履歴を一時的に格納する揮発性記憶部と、異常発生時に、前記揮発性記憶部に格納されたコマンド履歴が書き込まれる不揮発性記憶部と、を具備する。【選択図】図２
2011065313.tif 000002
【特許請求の範囲】
【請求項１】
インタフェース部と、
前記インタフェース部に入力された所定数のコマンド履歴を一時的に格納する揮発性記憶部と、
異常発生時に、前記揮発性記憶部に格納されたコマンド履歴が書き込まれる不揮発性記憶部と、
を具備することを特徴とするストレージデバイス。
【請求項２】
前記インタフェース部はＡＴＡインタフェース規格に準拠しており、前記揮発性記憶部は前記コマンド履歴として、
異常発生時点において、コマンドフィールド、ステータス、及びエラーレジスタ情報を格納し、
異常発生時点から第１の所定数のコマンドに関して、コマンドフィールド及びステータスを格納し、
前記第１の所定数以前の第２の所定数のコマンドに関して、コマンド及びステータスを格納することを特徴とする、
請求項１に記載のストレージデバイス。
【請求項３】
前記揮発性記憶部は、更に、前記不揮発性記憶部のキャッシュ領域として機能することを特徴とする請求項１に記載のストレージデバイス。
【請求項４】
前記揮発性記憶部はＤＲＡＭであり、前記不揮発性記憶部はＮＡＮＤ型フラッシュメモリであることを特徴とする請求項１に記載のストレージデバイス。
【請求項５】
異常発生時、前記コマンド履歴は、前記不揮発性記憶部の非ユーザ領域に書き込まれることを特徴とする請求項１に記載のストレージデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージデバイスに係り、例えば、不揮発性半導体メモリを備えたストレージデバイスに関する。
【背景技術】
【０００２】
従来技術では、ＨＤＤ（Hard Disk Drive）を始めとするストレージデバイスで異常現象が発生した場合に、インタフェース部分のデバックには、プロトコルアナライザ等を接続する必要があり、特に再現性の低い現象では、異常現象発生時点でのインタフェース部分の状況を確認するのに長時間を要していた。
【０００３】
このようなインタフェース部分の状況を監視する手法として、ＳＣＳＩバスとコントロールロジックとの間で授受されるデータ及びコマンドを順次記憶するリングバッファ形式のコマンドメモリを有し、タイミングエラー検出時点前後のコマンド及びデータが保存されるように、コマンドメモリを制御する技術が開示されている（例えば、特許文献１参照。）。
【０００４】
しかしながら、従来技術においては、データ及びコマンドを順次記憶する専用のコマンドメモリを設け、更に、当該コマンドメモリに記憶保存されたコマンド及びデータを外部へ出力する外部通信用インタフェースロジックを必要とするため、異常現象の解析に伴う制御が複雑化し、製造コストの増大を招くことが懸念される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】実開平３−１１６４４５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
本発明は、異常現象発生時点でのインタフェースの状況を容易に確認することが可能なストレージデバイスを提供する。
【課題を解決するための手段】
【０００７】
本発明の実施例に係るストレージデバイスは、インタフェース部と、前記インタフェース部に入力された所定数のコマンド履歴を一時的に格納する揮発性記憶部と、異常発生時に、前記揮発性記憶部に格納されたコマンド履歴が書き込まれる不揮発性記憶部と、を具備する。
【発明の効果】
【０００８】
本発明によれば、異常現象発生時点でのインタフェースの状況を容易に確認することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】本発明の実施例に係るストレージデバイスの構成を示すブロック図。
【図２】本発明の実施例に係るストレージデバイスが記憶するコマンド履歴を時系列で示す概念図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施例について、図面を参照しながら説明する。
【００１１】
図１は、本発明の実施例に係るストレージデバイスの構成を示すブロック図である。本実施例では、ストレージデバイスとして、ＮＡＮＤ型フラッシュメモリを備えたＳＳＤ（Solid State Drive）１００を例にとって説明を行う。
【００１２】
ＳＳＤ１００は、ドライブ制御回路４と、ＮＡＮＤ型フラッシュメモリ１０と、ＤＲＡＭ２０と、ＡＴＡインタフェース（ＡＴＡ  Ｉ／Ｆ）２などのメモリ接続インタフェースなどを備えている。
【００１３】
ＳＳＤ１００は、ＡＴＡ  Ｉ／Ｆ２を介してパーソナルコンピュータあるいはＣＰＵコアなどのホスト装置（以下、ホストと略す）１と接続され、ホスト１の外部メモリ（二次記憶装置）として機能する。
【００１４】
ＮＡＮＤ型フラッシュメモリ１０は、ホスト１によって指定されたユーザデータを記憶したり、ＤＲＡＭ２０で管理される管理情報をバックアップ用に記憶したりする。ＮＡＮＤ型フラッシュメモリ１０は、複数のメモリセルがマトリクス状に配列されたメモリセルアレイを有し、個々のメモリセルは上位ページ及び下位ページを使用して多値記憶が可能である。
【００１５】
ＮＡＮＤ型フラッシュメモリ１０は、複数のメモリチップによって構成され、各メモリチップは、データ消去の単位である物理ブロックを複数配列して構成される。また、ＮＡＮＤ型フラッシュメモリ１０では、物理ページごとにデータの書き込み及びデータの読み出しが行われる。物理ブロックは、複数の物理ページによって構成されている。
【００１６】
ＮＡＮＤ型フラッシュメモリ１０は、非ユーザ領域１０ａと、ユーザ領域１０ｂとを有する。ユーザ領域１０ｂは、外部から入力するセクタ単位の論理アドレスで指定可能（ＬＢＡ（Logical Block Addressing））な記憶領域のことであり、ユーザデータの記憶に供される領域である。一方、非ユーザ領域１０ａは、ＮＡＮＤ型フラッシュメモリ１０の全容量からユーザ領域１０ｂの記憶容量を引いた残りの領域であり、ＤＲＡＭ２０で管理される管理情報をバックアップ用に記憶したり、後述するＡＴＡコマンド履歴を記憶したりする。
【００１７】
ＤＲＡＭ２０は、データ転送用、管理情報記録用または作業領域用の記憶部として使用される。具体的には、データ転送用の記憶部（データ転送用キャッシュ）としては、ホスト１から書込要求があったデータをＮＡＮＤ型フラッシュメモリ１０に書込む前に一時的に保存したり、ホスト１から読出要求があったデータをＮＡＮＤ型フラッシュメモリ１０から読出して一時的に保存したりするために使用される。また、管理情報記録用の記憶部としては、ＮＡＮＤ型フラッシュメモリ１０に記憶されるデータの格納位置を管理するための管理情報（ＮＡＮＤ型フラッシュメモリ１０に記憶されている各種管理テーブルが起動時などに展開されたマスターテーブル、管理テーブルの変更差分情報であるログなど）、及び後述するＡＴＡコマンド履歴を格納するために使用される。
【００１８】
ドライブ制御回路４は、ホスト１とＮＡＮＤ型フラッシュメモリ１０との間でＤＲＡＭ２０を介してデータ転送制御を行うとともに、ＳＳＤ１００内の各構成要素を制御する。
【００１９】
ドライブ制御回路４は、データアクセス用バス１０１、回路制御用バス１０２を備えている。回路制御用バス１０２には、ドライブ制御回路４全体を制御するプロセッサ１０４が接続されている。
【００２０】
回路制御用バス１０２には、ＮＡＮＤ型フラッシュメモリ１０に記憶された各管理プログラム（ＦＷ：ファームウエア）をブートするブート用プログラムが格納されたブートＲＯＭ１０５がＲＯＭコントローラ１０６を介して接続されている。
【００２１】
ＡＴＡインタフェースコントローラ（ＡＴＡコントローラ）１１１、ＮＡＮＤコントーラ１１３、及びＤＲＡＭコントローラ１１４は、データアクセス用バス１０１と回路制御用バス１０２との両方に接続されている。ＡＴＡコントローラ１１１においては、エラーが発生した際に内部のステータスレジスタのエラービットによってフラグが立ち、更に、エラーの種類を内部のエラーレジスタで識別することが可能とされている。
【００２２】
ＡＴＡコントローラ１１１は、ＡＴＡインタフェース２を介してホスト１との間でデータを送受信する。また、ＡＴＡコントローラ１１１は、ＡＴＡインタフェース２を介してホスト１から入力される、ＡＴＡインタフェース規格に準拠したコマンドの履歴（ＡＴＡコマンド履歴）を、一定量、常にＤＲＡＭ２０上にバッファリングし続ける。
【００２３】
データアクセス用バス１０１には、データ作業領域及びファームウェア展開領域として使用されるＳＲＡＭ１１５がＳＲＡＭコントローラ１１６を介して接続されている。ＮＡＮＤ型フラッシュメモリ１０に記憶されているファームウェアは起動時、ブートＲＯＭ１０５に記憶されたブート用プログラムによってＳＲＡＭ１１５に転送される。
【００２４】
ＤＲＡＭコントローラ１１４は、プロセッサ１０４とＤＲＡＭ２０とのインタフェース処理などを実行する。ＮＡＮＤコントローラ１１３は、プロセッサ１０４とＮＡＮＤ型フラッシュメモリ１０とのインタフェース処理、ＮＡＮＤ型フラッシュメモリ１０−ＤＲＡＭ２０間のデータ転送制御、誤り訂正符号のエンコード／デコード処理などを実行する。
【００２５】
図２は、本発明の実施例に係るストレージデバイスが記憶するコマンド履歴を時系列で示す概念図である。即ち、図２は、ＡＴＡコントローラ１１１がＤＲＡＭ２０上へバッファリングするＡＴＡコマンド履歴を、時系列で示すものである。
【００２６】
ＡＴＡコントローラ１１１は、直近の第１の所定数のコマンド（例えば、１０コマンド）に関しては、コマンドフィールド（１２Ｂｙｔｅ）及びステータス（２Ｂｙｔｅ）をＤＲＡＭ２０上にバッファリングし、それ以前の第２の所定数のコマンド（例えば、３０コマンド）に関しては、コマンド及びステータスのみを残すようにする。また、ＡＴＡコントローラ１１１は、ステータスレジスタのエラービットによってフラグが立ちエラーが検知された場合は、コマンドフィールド及びステータスと併せて、エラーレジスタ情報（１Ｂｙｔｅ）を記憶する。
【００２７】
コマンド（１Ｂｙｔｅ）は、ホスト１からＡＴＡインタフェース２に入力された書き込み（Ｗｒｉｔｅ）、あるいは読み出し（Ｒｅａｄ）などの要求情報を含む。コマンドフィールド（１２Ｂｙｔｅ）は、上記コマンドに加え、書き込み対象、あるいは読み出し対象セクタのＬＢＡなどの付属情報を含む。ステータス（２Ｂｙｔｅ）は、コマンドに対する応答としてＡＴＡインタフェース２からホスト１に出力され、例えば、ビジー、エラーなどの応答情報を含む。
【００２８】
次に、ＡＴＡコントローラ１１１の実行するＡＴＡコマンド履歴格納動作について説明する。
【００２９】
ＡＴＡコントローラ１１１は、１０コマンド×（１２Ｂｙｔｅ＋２Ｂｙｔｅ）＋３０コマンド×（１Ｂｙｔｅ＋２Ｂｙｔｅ）＋エラー時のステータス：エラーレジスタ情報（１Ｂｙｔｅ）をコマンドのバッファリング領域としてＤＲＡＭ２０上に確保し、常にＡＴＡコマンド履歴をバッファリングし続ける。
【００３０】
ＡＴＡコントローラ１１１は、ステータスレジスタのエラービットによってフラグが立ちエラーが検知されたこと（異常発生）ことをトリガとして、ＮＡＮＤ型フラッシュメモリ１０の非ユーザ領域１０ａに、バッファリングしたＡＴＡコマンド履歴を格納する。具体的には、ＡＴＡコントローラ１１１は、エラーレジスタ情報が立った時点でプロセッサ１０４に割り込みを掛ける。プロセッサ１０４は、ＤＲＡＭコントローラ１１４及びＮＡＮＤコントローラ１１３を制御して、ＤＲＡＭ２０上にバッファリングされたＡＴＡコマンド履歴を、ＮＡＮＤ型フラッシュメモリ１０の非ユーザ領域１０ａに書き込む。
【００３１】
以上により、本実施例に係るストレージデバイスは、専用のコマンドメモリを設ける必要が無く、ＤＲＡＭからＮＡＮＤ型フラッシュメモリへのデータ書き込みという、通常のデータ書き込み動作で実行されるシーケンスを流用してＡＴＡコマンド履歴を保存する事ができるので、異常現象発生時点でのインタフェースの状況を容易に確認することが可能となる。従って、戻り品の解析作業等において、問題特定までの時間短縮を図ることができる。
【００３２】
また、直近の第１の所定数のコマンドに関しては、コマンド履歴としてコマンドフィールド及びステータスをＤＲＡＭ上にバッファリングし、それ以前の第２の所定数のコマンドに関しては、コマンド履歴としてコマンド及びステータスのみを残すようにしているので、エラー発生直近の動作状況については詳細な情報が得られると共に、それ以前の動作状況については必要なＤＲＡＭ容量を削減しつつ、最低限の情報が得られるように構成されている。
【００３３】
また、ＮＡＮＤ型フラッシュメモリに記憶されたＡＴＡコマンド履歴は、非ユーザ領域に存在することを除き、通常のユーザデータと同様に取り扱うことが可能であるので、通常のデータ読み出し動作で実行されるシーケンスを流用して外部へ出力することが可能である。従って、必ずしもデバック専用の外部通信用インタフェースを設ける必要はない。
【００３４】
また、本実施例では、コマンド履歴を内部ＤＲＡＭ上にバッファリングするとして説明したが、これに限らず、内部ＳＲＡＭ（例えば、図１のＳＲＡＭ１１５）上にコマンド履歴をバッファリングするように構成しても良い。
【００３５】
なお、ストレージデバイスとしてＳＳＤを例にとり説明を行ったが、これに限らず、磁気ディスクを記憶媒体として用いるＨＤＤに対して本発明を適用しても良い。
【００３６】
以上、本願発明の説明を行ったが、本願発明は上記各実施形態に限定されるものではなく、適宜変形例と組み合わせても良いし、実施段階ではその要旨を逸脱しない範囲で種々変形する事が可能である。また、本実施形態には種々の段階の発明が含まれており、開示される複数の構成要件の適宜な組み合わせにより種々の発明が抽出され得る。例えば、本実施形態に示される全構成要件から幾つかの構成要件が削除されても、発明が解決しようとする課題の欄で述べた課題の少なくとも１つが解決でき、発明の効果の欄で述べられている効果の少なくとも１つが得られる場合には、この構成要件が削除された構成が発明として抽出され得る。
【符号の説明】
【００３７】
１    ホスト装置
２    ＡＴＡ  Ｉ／Ｆ
４    ドライブ制御回路
１０    ＮＡＮＤ型フラッシュメモリ
２０    ＤＲＡＭ
１００    ＳＳＤ
１０１    データアクセス用バス
１０２    回路制御用バス
１０４    プロセッサ
１０５    ブートＲＯＭ
１０６    ＲＯＭコントローラ
１１１    ＡＴＡコントローラ
１１３    ＮＡＮＤコントローラ
１１４    ＤＲＡＭコントローラ
１１５    ＳＲＡＭ
１１６    ＳＲＡＭコントローラ
【図１】
2011065313.tif 000003
【図２】
2011065313.tif 000004