(57)【要約】【課題】少なくとも複数の不揮発性メモリデバイスについて有効なアクセスビジー期間の管理が行えるようにする。【解決手段】ビットカウンタ１４１は、アクセス対象となる不揮発性メモリデバイス１１-m（ｍは０〜７のいずれか）に書き込まれるまたは当該デバイス１１-mから読み出されるアクセスデータを構成するビットのうち、物理ブロックがイレーズされている状態の論理値である第１の論理値とは異なる、第２の論理値のビットの数をカウントする。タイマ１４２は、デバイス１１-mを対象とするアクセス処理時のアクセスビジー期間を測定する。ＭＰＵ１５はカウンタ１４１のカウント値が閾値以上の場合、タイマ１４２によって測定されたアクセスビジー期間に基づき、アクセスビジー期間情報領域１２４に格納されている不揮発性メモリデバイス１１-mについてのアクセスビジー期間情報を更新する。【選択図】図１
2009230414.tif 000002
【特許請求の範囲】
【請求項１】
各ビットが第１の論理値に設定されることによってイレーズされる複数の物理ブロックに分割して管理される複数の不揮発性メモリデバイスを有し、ホストからアクセス可能な記憶装置において、
前記複数の不揮発性メモリデバイスのうちのアクセス対象となる不揮発性メモリデバイスの物理ブロックに書き込まれるまたは前記アクセス対象となる不揮発性メモリデバイスの物理ブロックから読み出されるアクセスデータを構成するビットのうち、前記第１の論理値とは異なる第２の論理値のビットの数をカウントするビットカウンタと、
前記アクセス対象となる不揮発性メモリデバイスの物理ブロックにアクセスするためのアクセス処理におけるアクセスビジー期間を測定するタイマと、
少なくとも前記複数の不揮発性メモリデバイスの各々についてアクセスビジー期間を示すアクセスビジー期間情報を格納するアクセスビジー期間情報記憶手段と、
前記ビットカウンタのカウント値が予め定められた閾値以上の場合に、前記タイマによって測定されたアクセスビジー期間に基づき、前記アクセスビジー期間情報記憶手段に格納されている、当該アクセスビジー期間が測定された前記アクセス対象となる不揮発性メモリデバイスについてのアクセスビジー期間情報を更新する制御手段と
を具備することを特徴とする記憶装置。
【請求項２】
前記ホストから認識可能な複数の論理ブロックの各々に対応付けて、当該論理ブロックへのアクセスの頻度を示すアクセス頻度情報を格納するアクセス頻度情報格納手段を更に具備し、
前記制御手段は、
前記ホストからライトコマンドが与えられた場合、当該コマンドによってデータの書き込み先として指定される論理ブロックに対応付けて前記アクセス頻度情報記憶手段に格納されているアクセス頻度情報に基づいて当該論理ブロックのアクセス頻度レベルを決定し、前記アクセスビジー期間情報記憶手段に格納されているアクセスビジー期間情報に基づいて、前記決定されたアクセス頻度レベルに対応するアクセスビジー期間の不揮発性メモリデバイスを選択すると共に当該選択された不揮発性メモリデバイスから当該論理ブロックに割り当てられるべき物理ブロックを選択し、
前記選択された物理ブロックにデータを書き込むためのアクセス処理に応じて、当該物理ブロックが割り当てられた論理ブロックに対応付けられている前記アクセス頻度情報を更新する
ことを特徴とする請求項１記載の記憶装置。
【請求項３】
前記制御手段は、前記決定されたアクセス頻度レベルが高いほどアクセスビジー期間が短い不揮発性メモリデバイスを選択し、前記決定されたアクセス頻度レベルが低いほどアクセスビジー期間が長い不揮発性メモリデバイスを選択することを特徴とする請求項２記載の記憶装置。
【請求項４】
前記制御手段は、
前記ライトコマンドによって指定される前記論理ブロックに割り当てられていた物理ブロックである第１の物理ブロックからデータを前記アクセスデータとして読み出し、しかる後に前記選択された物理ブロックである第２の物理ブロックにデータを書き込み、このデータ書き込みの後、前記第１の物理ブロックをイレーズするためのイレーズ処理を前記アクセス処理として行い、
前記ビットカウンタは、前記第１の物理ブロックから読み出される前記アクセスデータに含まれている前記第２の論理値のビット数をカウントし、
前記タイマは、前記イレーズ処理におけるアクセスビジー期間を、前記アクセス処理におけるアクセスビジー期間として測定する
ことを特徴とする請求項２または３に記載の記憶装置。
【請求項５】
前記アクセスデータは、前記選択された物理ブロックに書き込まれるべきデータであり、
前記ビットカウンタは、前記アクセスデータが前記アクセス対象となる不揮発性メモリデバイスに転送される際に、当該アクセスデータに含まれる前記第２の論理値のビットの数をカウントし、
前記タイマは、前記選択された物理ブロックに前記アクセスデータを書き込むための処理におけるアクセスビジー期間を測定する
ことを特徴とする請求項２記載の記憶装置。
【請求項６】
前記アクセスビジー期間情報記憶手段は、前記複数の不揮発性メモリデバイスに含まれる前記複数の物理ブロックの各々に対応付けて前記アクセスビジー期間情報を格納し、
前記制御手段は、前記タイマによって測定された、前記アクセス対象となる不揮発性メモリデバイスの物理ブロックにアクセスするためのアクセス処理におけるアクセスビジー期間に基づき、当該アクセスビジー期間が測定された当該物理ブロックに対応付けて前記アクセスビジー期間情報記憶手段に格納されているアクセスビジー期間情報を更新する
ことを特徴とする請求項１記載の記憶装置。
【請求項７】
前記ホストから認識可能な複数の論理ブロックの各々に対応付けて、当該論理ブロックへのアクセスの頻度を示すアクセス頻度情報を格納するアクセス頻度情報格納手段を更に具備し、
前記制御手段は、
前記ホストからライトコマンドが与えられた場合、当該コマンドによってデータの書き込み先として指定される論理ブロックに対応付けて前記アクセス頻度情報記憶手段に格納されているアクセス頻度情報に基づいて当該論理ブロックのアクセス頻度レベルを決定し、前記アクセスビジー期間情報記憶手段に格納されているアクセスビジー期間情報に基づいて、前記決定されたアクセス頻度レベルに対応するアクセスビジー期間の物理ブロックを当該論理ブロックに割り当てられるべき物理ブロックとして選択し、
前記選択された物理ブロックにデータを書き込むためのアクセス処理に応じて、当該物理ブロックが割り当てられた論理ブロックに対応付けられている前記アクセス頻度情報を更新する
ことを特徴とする請求項６記載の記憶装置。
【請求項８】
前記制御手段は、前記決定されたアクセス頻度レベルが高いほどアクセスビジー期間が短い物理ブロックを選択し、前記決定されたアクセス頻度レベルが低いほどアクセスビジー期間が長い物理ブロックを選択することを特徴とする請求項７記載の記憶装置。
【請求項９】
前記制御手段は、
前記ライトコマンドによって指定される前記論理ブロックに割り当てられていた物理ブロックである第１の物理ブロックからデータを前記アクセスデータとして読み出し、しかる後に前記選択された物理ブロックである第２の物理ブロックにデータを書き込み、このデータ書き込みの後、前記第１の物理ブロックをイレーズするためのイレーズ処理を前記アクセス処理として行い、
前記ビットカウンタは、前記第１の物理ブロックから読み出される前記アクセスデータに含まれている前記第２の論理値のビット数をカウントし、
前記タイマは、前記イレーズ処理におけるアクセスビジー期間を、前記アクセス処理におけるアクセスビジー期間として測定する
ことを特徴とする請求項７または８に記載の記憶装置。
【請求項１０】
前記アクセスデータは、前記選択された物理ブロックに書き込まれるべきデータであり、
前記ビットカウンタは、前記アクセスデータが前記アクセス対象となる不揮発性メモリデバイスに転送される際に、当該アクセスデータに含まれる前記第２の論理値のビットの数をカウントし、
前記タイマは、前記選択された物理ブロックに前記アクセスデータを書き込むための処理におけるアクセスビジー期間を測定する
ことを特徴とする請求項７記載の記憶装置。
【請求項１１】
前記アクセスデータは、前記アクセス対象となる不揮発性メモリデバイスの物理ブロックに書き込まれるべきデータであり、
前記ビットカウンタは、前記アクセスデータが前記アクセス対象となる不揮発性メモリデバイスに転送される際に、当該アクセスデータに含まれる前記第２の論理値のビットの数をカウントし、
前記タイマは、前記アクセス対象となる不揮発性メモリデバイスの物理ブロックに前記アクセスデータを書き込むための処理におけるアクセスビジー期間を測定する
ことを特徴とする請求項１記載の記憶装置。
【請求項１２】
各ビットが第１の論理値に設定されることによってイレーズされる複数の物理ブロックに分割して管理される複数の不揮発性メモリデバイス、ビットカウンタ、タイマ、アクセスビジー期間情報記憶手段及び制御手段を有し、ホストからアクセス可能な記憶装置において、少なくとも前記複数の不揮発性メモリデバイスの各々についてアクセスビジー期間を管理するためのアクセスビジー期間管理方法であって、
前記複数の不揮発性メモリデバイスのうちのアクセス対象となる不揮発性メモリデバイスに書き込まれるまたは前記アクセス対象となる不揮発性メモリデバイスから読み出されるアクセスデータを構成するビットのうち、前記第１の論理値とは異なる第２の論理値のビットの数をビットカウンタによりカウントするステップと、
前記アクセス対象となる不揮発性メモリデバイスにアクセスするためのアクセス処理におけるアクセスビジー期間を前記タイマによって測定するステップと、
前記ビットカウンタのカウント値が予め定められた閾値以上であるかを前記制御手段が判定するステップと、
前記カウント値が前記閾値以上の場合に、前記タイマによって測定されたアクセスビジー期間に基づき、前記アクセスビジー期間情報記憶手段に格納されている、当該アクセスビジー期間が測定された前記アクセス対象となる不揮発性メモリデバイスについてのアクセスビジー期間情報を、前記制御手段が更新するステップと
を具備することを特徴とするアクセスビジー期間管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の不揮発性メモリデバイスを有する記憶装置に係り、特に不揮発性メモリデバイスのアクセスビジー期間を管理するのに好適な記憶装置に関する。
【背景技術】
【０００２】
ＮＡＮＤ型不揮発性メモリに代表されるデータの書き換えが可能な不揮発性メモリは、同一プロセスに適用される製品であって、プログラミング回数が同一であっても、個々のデバイス（ブロック）毎にアクセスビジー期間が異なることが知られている（例えば特許文献１乃至３参照）。また、上記不揮発性メモリでは、単一デバイスであっても、プログラミング／イレーズ（消去）回数が増えると、アクセスビジー期間が長くなることが知られている。つまり、デバイス（ブロック）毎のアクセスビジー期間が、そのデバイス（ブロック）毎の性能または劣化のレベルの指標となることが知られている。
【０００３】
そこで、上記特許文献１には、ブロック（物理ブロック）毎のアクセスビジー期間（書き込み時間）を監視することにより、各ブロックの最低保証速度のランク分けをする技術が記載されている。
【特許文献１】特開２００５−２５０６１９号公報
【特許文献２】特開２００６−３０２２５５号公報
【特許文献３】特開２０００−１１２８１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら本発明者は、不揮発性メモリにおいて、例えばアクセスビジー期間が短いと判定されたブロックが、アクセスビジー期間が長いと判定されたブロックよりも、必ずしもアクセス速度性能が優れている、或いは劣化のレベルが低いとは限らないことを認識するに至った。その理由について、以下に述べる。
【０００５】
不揮発性メモリにおいて、ブロック（物理ブロック）へのデータの書き込みは、一般に次のように行われる。まず、データが書き込まれるべきブロックが既にイレーズされているものとする。ここでは、ブロックがイレーズされている状態とは、当該ブロックの全ビットが、第１の論理値（例えば“１”）に設定されている状態をいう。更に詳細に述べるならば、ブロックがイレーズされている状態とは、当該ブロックの各ビットを構成するセルの電圧が、第１の論理値を示すレベルに設定されている状態をいう。
【０００６】
ブロックへのデータ書き込みは、そのブロックの全ビットのうち、イレーズされている状態である第１の論理値とは異なる、第２の論理値（例えば“０”）に設定されるべきビットを、第１の論理値から第２の論理値に設定し直すことによって行われる。更に詳細に述べるならば、ブロックへのデータ書き込みは、そのブロックの全ビットのうち、第２の論理値に設定されるべきビットを構成するセルの電圧を、第１の論理値を示すレベルから第２の論理値を示すレベルに設定し直すことによって行われる。このとき、書き込みベリファイが行われ、第２の論理値に設定されるべき各ビット（を構成するセル）について、第２の論理値（を示す電圧レベル）に設定されたかがチェックされる。
【０００７】
もし、第２の論理値に設定されるべきビットの中に、当該第２の論理値（を示す電圧レベル）に設定されていないビット（を構成するセル）があれば、そのビット（を構成するセル）を第２の論理値（を示す電圧レベル）に設定する操作と書き込みベリファイとが再度行われる。このような操作は、第２の論理値に設定されるべき全てのビット（を構成するセル）について、第２の論理値（を示す電圧レベル）に設定されたことが確認されるまで行われる。このため、例えばプログラミング／イレーズ回数が同一のブロックへのデータ書き込みであっても、第２の論理値を示すビットの数が多いデータを書き込む場合と、第２の論理値を示すビットの数が少ないデータを書き込む場合とで、当該ブロックにデータを書き込むのに要する時間（つまりアクセスビジー期間）に与える影響が異なる。
【０００８】
本発明は上記事情を考慮してなされたものでその目的は、少なくとも複数の不揮発性メモリデバイスについて有効なアクセスビジー期間の管理が行える記憶装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の１つの観点によれば、各ビットが第１の論理値に設定されることによってイレーズされる複数の物理ブロックに分割して管理される複数の不揮発性メモリデバイスを有し、ホストからアクセス可能な記憶装置が提供される。この記憶装置は、前記複数の不揮発性メモリデバイスのうちのアクセス対象となる不揮発性メモリデバイスの物理ブロックに書き込まれるまたは前記アクセス対象となる不揮発性メモリデバイスの物理ブロックから読み出されるアクセスデータを構成するビットのうち、前記第１の論理値とは異なる第２の論理値のビットの数をカウントするビットカウンタと、前記アクセス対象となる不揮発性メモリデバイスの物理ブロックにアクセスするためのアクセス処理におけるアクセスビジー期間を測定するタイマと、少なくとも前記複数の不揮発性メモリデバイスの各々についてアクセスビジー期間を示すアクセスビジー期間情報を格納するアクセスビジー期間情報記憶手段と、前記ビットカウンタのカウント値が予め定められた閾値以上の場合に、前記タイマによって測定されたアクセスビジー期間に基づき、前記アクセスビジー期間情報記憶手段に格納されている、当該アクセスビジー期間が測定された前記アクセス対象となる不揮発性メモリデバイスについてのアクセスビジー期間情報を更新する制御手段とを具備する。
【発明の効果】
【００１０】
本発明によれば、アクセス対象となる不揮発性メモリデバイスに書き込まれるまたは当該不揮発性メモリデバイスから読み出されるアクセスデータを構成するビットのうち、物理ブロックがイレーズされている状態の論理値である第１の論理値とは異なる、第２の論理値のビットの数がカウントされる。そして、カウントされたビット数が閾値以上の場合、つまりアクセスビジー期間に影響を及ぼすようなアクセス処理の場合に、タイマによって測定された当該アクセス処理におけるアクセスビジー期間は有効であるとしてと、当該測定された不揮発性メモリデバイスについてのアクセスビジー期間情報が更新される。これにより、アクセスビジー期間情報領域には、常に有効なアクセスビジー期間情報が格納される。つまり本発明によれば、少なくとも複数の不揮発性メモリデバイスについて有効なアクセスビジー期間を管理することができる。
【発明を実施するための最良の形態】
【００１１】
以下、本発明の実施の形態につき図面を参照して説明する。  
図１は本発明の一実施形態に係る記憶装置の構成を示すブロック図である。
【００１２】
図１において、記憶装置１０は、データの書き換えが可能な複数の不揮発性メモリデバイス、例えば８つの不揮発性メモリデバイス１１-0〜１１-7と、ＲＡＭ１２と、ホストインタフェース（ホストＩ／Ｆ）１３と、不揮発性メモリインタフェース（不揮発性メモリＩ／Ｆ）１４と、マイクロプロセッサユニット（ＭＰＵ）１５とを含む。
【００１３】
不揮発性メモリデバイス１１-m（ｍ＝１，２，…７）は、例えばＮＡＮＤ型の不揮発性メモリ素子（フラッシュメモリ素子）である。不揮発性メモリデバイス１１-mの記憶領域は複数のブロック（物理ブロック）に分割して管理される。つまり不揮発性メモリデバイス１１-mは物理ブロック単位に管理される。
【００１４】
本実施形態において、不揮発性メモリデバイス１１-mは２値の不揮発性メモリ（２値メモリ）であり、物理ブロックの各ビットは第１の論理値または第１の論理値とは異なる第２の論理値のいずれかに設定される２値のビットである。ここでは、第１の論理値は“１”、第２の論理値は“０”であり、物理ブロックがイレーズされている状態では、当該物理ブロックの全てのビットが第１の論理値“１”に設定されているものとする。
【００１５】
不揮発性メモリデバイス１１-mには、値がｍのＩＤ（ＩＤｍ）が割り当てられているものとする。つまり、不揮発性メモリデバイス１１-0〜１１-7には、それぞれ値が０（００）〜７（０７）のＩＤ（不揮発性メモリデバイスＩＤ）が割り当てられているものとする。
【００１６】
ＲＡＭ１２の記憶領域には、プログラム領域１２１、論理−物理ブロックアドレス変換テーブル領域１２２、物理ブロックステータス情報領域１２３、アクセスビジー期間情報領域１２４、論理ブロックアクセス頻度情報領域１２５及び閾値領域１２６が確保されている。なお、ＲＡＭ１２の記憶領域には、ＭＰＵ１５によって利用されるバッファ領域（図示せず）も確保されている。
【００１７】
プログラム領域１２１は、ＭＰＵ１５によって実行されるプログラムを格納するためのプログラム記憶手段として用いられる。論理−物理ブロックアドレス変換テーブル領域１２２は、ホストから認識可能な論理アドレス空間内の各論理ブロックに、不揮発性メモリデバイス１１-0〜１１-7の記憶領域内のいずれの物理ブロックが割り当てられているかを示す論理−物理ブロックアドレス変換テーブルを格納するための論理−物理ブロックアドレス変換テーブル記憶手段として用いられる。このテーブルは、上記論理アドレス空間内の各論理ブロックアドレスに対応付けて、その論理ブロックアドレスで指定される論理ブロックに割り当てられる物理ブロックの物理ブロックアドレスを保持する。
【００１８】
物理ブロックステータス情報領域１２３は、物理ブロックステータス情報を格納するための物理ブロックステータス情報格納手段として用いられる。物理ブロックステータス情報は、不揮発性メモリデバイス１１-0〜１１-7の記憶領域内の各物理ブロックのステータスを当該物理ブロックの物理ブロックアドレスに対応付けて示す。本実施形態において、物理ブロックステータス情報によって示される各物理ブロックのステータスは、使用中であるか否かである。
【００１９】
アクセスビジー期間情報領域１２４は、不揮発性メモリデバイス１１-0〜１１-7のアクセスビジー期間を示す情報（アクセスビジー期間情報）を、当該デバイス１１-0〜１１-7のＩＤに対応付けて格納するためのアクセスビジー期間情報記憶手段として用いられる。不揮発性メモリデバイス１１-0〜１１-7のアクセスビジー期間は、当該不揮発性メモリデバイス１１-0〜１１-7内の任意の物理ブロックへのデータの書き込みに要する時間を表す。
【００２０】
論理ブロックアクセス頻度情報領域１２５は、上記論理アドレス空間内の各論理ブロックのアクセス頻度を示す情報（論理ブロックアクセス頻度情報）を当該論理ブロックの論理ブロックアドレスに対応付けて格納するための論理ブロックアクセス頻度情報記憶手段として用いられる。
【００２１】
閾値領域１２６は、第１の閾値及び第２の閾値を格納するための閾値記憶手段として用いられる。第１の閾値は、不揮発性メモリデバイス１１-0〜１１-7の物理ブロックへのデータ書き込み時に、ビジータイマ１４２によって測定されるアクセスビジー期間の情報（アクセスビジー期間情報）を、アクセスビジー期間情報領域１２４に格納するかを判定するのに用いられる。この第１の閾値は、物理ブロックに書き込まれるべきデータに占める、基準となる第２の論理値“０”のビットの数を示す。第２の閾値は、ホストから指定されたデータをライトすべき不揮発性メモリをアクセスビジー期間に応じて選択する際の基準となるアクセスビジー期間を示す。
【００２２】
ホストＩ／Ｆ１３は、ホストと記憶装置１００とのインタフェースをなす。ホストＩ／Ｆ１３は、ホストから記憶装置１００にコマンドが転送された場合、当該コマンドを受信してＭＰＵ１５に渡す。不揮発性メモリＩ／Ｆ１４は、ＭＰＵ１５から不揮発性メモリデバイス１１-mへアクセスするためのインタフェースをなす。不揮発性メモリＩ／Ｆ１４は、ビットカウンタ１４１とビジータイマ１４２とを含む。
【００２３】
ビットカウンタ１４１は、不揮発性メモリデバイス１１-mの物理ブロックへのデータ書き込みにおいて、当該物理ブロックに書き込まれるデータに含まれている第２の論理値（“０”）のビット数をカウントする。ビジータイマ１４２は、不揮発性メモリデバイス１１-mの物理ブロックへのデータ書き込み時におけるビジー期間（アクセスビジー期間）をカウントする。
【００２４】
ＭＰＵ１５は、記憶装置１０を利用するホストから与えられるコマンドをＲＡＭ１２のプログラム領域１２１に格納されているプログラムに従って実行することにより、当該記憶装置１０のコントローラ（制御手段）として機能する。ＭＰＵ１５は、ホストからのコマンドがリード／ライトコマンドの場合、不揮発性メモリデバイス１１-mへのアクセスを制御する。
【００２５】
特にホストからのコマンドがライトコマンドの場合、つまりデータライトの場合、ＭＰＵ１５は、アクセスビジー期間情報領域１２４と物理ブロックステータス情報領域１２３と論理ブロックアクセス頻度情報領域１２５とを参照することにより、当該ライトコマンドで指定される論理ブロックに割り当てられるべき物理ブロックであって、データが書き込まれるべき物理ブロックを選択する。
【００２６】
ここでは、ライトコマンドで指定される論理ブロックへのアクセスの頻度が高い場合には、アクセス速度性能がよい（ビジー期間の短い）、未使用（つまり使用中でない）の物理ブロックが選択される。また、ライトコマンドで指定される論理ブロックへのアクセスの頻度が低い場合には、アクセス速度性能が悪くなった（ビジー期間の長い）、未使用の物理ブロックが選択される。
【００２７】
ＭＰＵ１５は選択された物理ブロックに対し、ホストからのデータを不揮発性メモリＩ／Ｆ１４を介してライトする。またＭＰＵ１５は、物理ブロックステータス情報領域１２３に格納されている物理ブロックステータス情報中の、選択された物理ブロックのステータスを使用中に更新する。
【００２８】
またＭＰＵ１５は、ホストからのライトコマンドによって指定されるスタートアドレスがブロック境界でない場合と、エンドアドレスがブロック境界でない場合に、ブロックアドレスバウンダリ整合処理（いわゆる引っ越し処理）を行う。ＭＰＵ１５はブロックアドレスバウンダリ整合処理においてＲＡＭ１２に確保されているバッファ領域を利用する。
【００２９】
ホストからのコマンドで指定されるアドレスは論理アドレスである。このため、ホストからの例えばリードコマンドに従って物理ブロックにアクセスするには、論理アドレス（論理ブロックアドレス）を物理アドレス（物理ブロックアドレス）に変換する必要がある。
【００３０】
そこでＭＰＵ１５は、選択された物理ブロックにホストからのデータをライトする際に、ホストからの論理ブロックアドレスと当該選択された物理ブロックの物理ブロックアドレスとを対応付けて、論理−物理ブロックアドレス変換テーブル領域１２２（内の論理−物理ブロックアドレス変換テーブル）に登録する。これによりＭＰＵ１５は、ホストからのリードコマンドに従って物理ブロックにアクセスする場合に、当該リードコマンドによって指定される論理ブロックアドレスに対応付けられる物理ブロックアドレスを、論理−物理ブロックアドレス変換テーブル領域１２２（内の論理−物理ブロックアドレス変換テーブル）を参照することによって取得することができる。ＭＰＵ１５は、取得された物理ブロックアドレスで指定される物理ブロックに不揮発性メモリＩ／Ｆ１４を介してアクセスすることにより、当該物理ブロックからリードコマンドによって指定されたデータをリードする。ＭＰＵ１５は、リードされたデータを、ホストＩ／Ｆ１３を介してホストに転送する。
【００３１】
図２は、図１に示される不揮発性メモリデバイス１１-0〜１１-7によって実現される記憶領域２０１の一例を示す。  
記憶領域２０１は複数の物理ブロックから構成される。記憶領域２０１は、論理ブロックに割り当て済みの物理ブロックの集合からなる物理ブロック部（割り当て済み物理ブロック部）２０２と、論理ブロックに割り当て可能な物理ブロックの集合からなる物理ブロック（割り当て可能物理ブロック部）２０３とに分類して管理される。図２に示される物理ブロック部２０２及び２０３は論理的な分類を示すもので、記憶領域２０１によって提供される物理アドレス空間における位置関係を示すものではない。
【００３２】
図２に示す記憶領域２０１の状態では、物理ブロックＰｎは割り当て済み物理ブロック部２０２に属し、物理ブロックＰｍ及びＰｓは割り当て可能物理ブロック部２０３に属している。図２における矢印２０４及び２０５については後述する。
【００３３】
図３は、図１に示される論理−物理ブロックアドレス変換テーブル領域１２２に格納される論理−物理ブロックアドレス変換テーブルの一例を示す。  
図３において、論理ブロックアドレス３０１は、論理−物理ブロックアドレス変換テーブルのインデックスに相当する。物理ブロックアドレスデータフィールド３０２は、論理ブロックアドレスに割り当てられた物理ブロックアドレスデータを保持（登録）するのに用いられる。図３の論理−物理ブロックアドレス変換テーブルの場合、例えば論理ブロックアドレス“０００００００２ｈ”（末尾のｈは“０００００００２”が１６進表現であることを示す）に対応付けられる物理ブロックアドレスデータフィールド３０２には、物理ブロックアドレス“００００３９９９ｈ”が保持されている。このことは、論理ブロックアドレスが“０００００００２ｈ”の論理ブロックに、物理ブロックアドレスが“００００３９９９ｈ”の物理ブロックが割り当てられていることを示す。図３において楕円３０３で囲まれた箇所の説明は後述する。
【００３４】
図４は、図１に示される物理ブロックステータス情報領域１２３に格納される物理ブロックステータス情報の一例を示す。  
図４に示されるように、物理ブロックステータス情報はテーブル形式で管理されるものとする。図４において、物理ブロックアドレス４０１はテーブルのインデックスに相当する。物理ブロックステータス情報は、このインデックスで指定される、テーブルのデータ部に相当する。つまり物理ブロックステータス情報は、物理ブロックアドレスに対応付けられる。物理ブロックステータス情報は、不揮発性メモリデバイスＩＤフィールド４０２とステータスフィールド４０３とから構成される。フィールド４０２は、当該フィールド４０２を含むデータ部（物理ブロックステータス情報）のインデックス（物理ブロックアドレス）で指定される物理ブロックを有する不揮発性メモリデバイス１１-mのＩＤ（不揮発性メモリデバイスＩＤ）を保持するのに用いられる。フィールド４０３は、当該フィールド４０３を含むデータ部（物理ブロックステータス情報）のインデックス（物理ブロックアドレス）で指定される物理ブロックのステータス、例えば当該物理ブロックが使用中であるか否かを示すステータスを保持するのに用いられる。物理ブロックが使用中であるとは、当該物理ブロックが図２に示される割り当て済み物理ブロック部２０２に属していることを示す。これに対し、物理ブロックが使用中でないとは、当該物理ブロックが図２に示される割り当て可能物理ブロック部２０３に属していることを示す。図４において楕円４０４及び４０５で囲まれた箇所の説明は後述する。
【００３５】
図５は、図１に示されるアクセスビジー期間情報領域１２４に格納されるアクセスビジー期間情報の一例を示す。  
図５に示されるように、アクセスビジー期間情報はテーブル形式で管理されるものとする。図５において、不揮発性メモリデバイスＩＤ５０１は、テーブルのインデックスに相当する。アクセスビジー期間情報は、このインデックスで指定される、テーブルのデータ部に相当する。つまりアクセスビジー期間情報は、不揮発性メモリデバイスＩＤに対応付けられる。アクセスビジー期間情報は、アクセスビジー期間情報フィールド５０２から構成される。フィールド５０２は、当該フィールド５０２を含むデータ部（アクセスビジー期間情報）のインデックス（不揮発性メモリデバイスＩＤ）で指定される不揮発性メモリデバイスの物理ブロックにデータを書き込む場合のアクセスビジー期間の情報を保持するのに用いられる。図５において楕円５０３で囲まれた箇所の説明は後述する。
【００３６】
図６は、図１に示される論理ブロックアクセス頻度情報領域１２５に格納される論理ブロックアクセス頻度情報の一例を示す。  
図６に示されるように、論理ブロックアクセス頻度情報はテーブル形式で管理されるものとする。図６において、論理ブロックアドレス６０１は、テーブルのインデックスに相当する。論理ブロックアクセス頻度情報は、このインデックスで指定される、テーブルのデータ部に相当する。つまり論理ブロックアクセス頻度情報は、論理ブロックアドレスに対応付けられる。論理ブロックアクセス頻度情報は、論理ブロックアクセス頻度情報フィールド６０２から構成される。フィールド６０２は、当該フィールド６０２を含むデータ部（論理ブロックアクセス頻度情報）のインデックス（論理ブロックアドレス）で指定される論理ブロックへのアクセスの頻度を示す論理ブロックアクセス頻度情報を保持するのに用いられる。
【００３７】
次に、図１に示される記憶装置１０の動作について、ライトコマンド処理時の動作を例に、図７Ａ及び７Ｂのフローチャートを参照して説明する。  
今、ホストから記憶装置１０に対して、データライトを指示するライトコマンドが発行されたものとする。このホストからのライトコマンドは、記憶装置１０のホストＩ／Ｆ１３で受け取られて、ＭＰＵ１５に渡される。ライトコマンドは、論理アドレス空間におけるデータライトの開始位置を示すスタートアドレス（スタート論理アドレス）と、データライトのサイズを示すサイズ情報を含む。このスタートアドレスとサイズとから、データライトの終了位置を示すエンドアドレス（エンド論理アドレス）を算出することができる。つまりライトコマンドは、スタートアドレスに加えてエンドアドレスも指定していると見なすことができる。スタートアドレス（スタート論理アドレス）及びエンドアドレス（エンド論理アドレス）の所定の上位アドレスは論理ブロックアドレスを示し、当該上位アドレスを除く残りのアドレス（下位アドレス）は、それぞれブロック内スタートアドレス及びブロック内エンドアドレスを示す。なお、説明を簡単にするために、スタートアドレス及びエンドアドレスは同一の論理ブロックを指しているものとする。つまりライトコマンドで指定されたアクセス対象が複数の論理ブロックに亙らないものとする。
【００３８】
本実施形態において、ホストからのライトコマンドに含まれているスタートアドレスによって示される論理ブロックアドレスがＬｍであるものとする。つまりホストからのライトコマンドが、論理ブロックアドレスＬｍで指定される論理ブロック（以下、論理ブロックＬｍと称する）へのデータ書き込みを指示しているものとする。
【００３９】
ＭＰＵ１５は、ホストからのライトコマンドをホストＩ／Ｆ１３を介して受け取ると、当該ライトコマンドで指定される論理ブロックＬｍに対応付けて論理ブロックアクセス頻度情報領域１２５内に格納されているアクセス頻度情報（つまり論理ブロックＬｍのアクセス頻度情報）（図６参照）を参照する（ステップ７０１）。このステップ７０１において、ＭＰＵ１５は、参照されたアクセス頻度情報の示すアクセス頻度、即ち論理ブロックＬｍへのアクセス頻度から、当該論理ブロックＬｍのアクセス頻度レベルを決定する。ここでは、アクセス頻度レベルとして、高アクセス頻度を表す第１のレベル及び低アクセス頻度を表す第２のレベルのいずれであるかが決定されるものとする。
【００４０】
次にＭＰＵ１５は、アクセスビジー期間情報領域１２４に格納されているアクセスビジー期間情報（図５参照）及びステップ７０１で決定されたアクセス頻度レベルに基づいて、適当なビジー期間を持つ不揮発性メモリデバイスＤｍ（不揮発性メモリデバイスＩＤがＤｍの不揮発性メモリデバイス１１-m）を選択する（ステップ７０２）。
【００４１】
ここでは、決定されたアクセス頻度レベルが第１のレベルであるならば、つまり論理ブロックＬｍのアクセス頻度が高いならば、アクセスビジー期間が閾値領域１２６に格納されている閾値（第２の閾値）よりも短い不揮発性メモリデバイスＤｍが選択される。更に詳細に述べるならば、第２の閾値よりも短いアクセスビジー期間を示すアクセスビジー期間情報と対応付けられた不揮発性メモリデバイスＩＤの不揮発性メモリデバイスＤｍが選択される。アクセスビジー期間が短い不揮発性メモリデバイスＤｍは、アクセス速度性能が良い不揮発性メモリであるといえる。このような不揮発性メモリを、アクセス頻度が高い論理ブロックＬｍへの書き込み処理に用いることにより、当該書き込み処理を高速に行うことができ、記憶装置１０全体の速度性能向上を図ることが可能となる。
【００４２】
一方、決定されたアクセス頻度レベルが第２のレベルであるならば、つまり論理ブロックＬｍのアクセス頻度が低いならば、アクセスビジー期間が第２の閾値以上の不揮発性メモリデバイスＤｍ（不揮発性メモリデバイスＩＤがＤｍの不揮発性メモリ）が選択される。更に詳細に述べるならば、第２の閾値以上のアクセスビジー期間を示すアクセスビジー期間情報と対応付けられた不揮発性メモリデバイスＩＤの不揮発性メモリデバイスＤｍが選択される。アクセスビジー期間が長い不揮発性メモリデバイスＤｍは、アクセス速度性能が悪化した不揮発性メモリであるといえる。このような不揮発性メモリを、アクセス頻度が低い論理ブロックＬｍへの書き込み処理に用いることにより、当該論理ブロックＬｍへの書き込み処理に及ぼす影響を少なくすると共に、当該不揮発性メモリのアクセス速度性能が悪化するのを遅らせるができ、記憶装置１０全体の信頼性（耐久性）向上を図ることが可能となる。
【００４３】
上記ステップ７０２において、ＭＰＵ１５は更に、選択された不揮発性メモリデバイスＤｍの物理ブロック群の中から論理ブロックＬｍに割り当てるべき未使用の物理ブロックＰｍを、物理ブロックステータス情報領域１２３に格納されている物理ブロックステータス情報（図４参照）に基づいて選択する。ここでは、不揮発性メモリデバイスＩＤがＤｍでステータスが“未使用”（を示す“０”）の物理ブロックステータス情報と対応付けられた物理ブロックアドレスの物理ブロックＰｍ（物理ブロックアドレスがＰｍの物理ブロック）が選択される。
【００４４】
次にＭＰＵ１５は、論理−物理ブロックアドレス変換テーブル領域１２２に格納されている論理−物理ブロックアドレス変換テーブル（図３参照）を参照することにより、現在論理ブロックＬｍに割り当てられている物理ブロックＰｎ（の物理ブロックアドレス）を求める（ステップ７０３）。ＭＰＵ１５は、不揮発性メモリＩ／Ｆ１４を介して物理ブロックＰｎからデータをリードして、当該リードされたデータをＲＡＭ１２のバッファ領域に格納する（ステップ７０４）。
【００４５】
次にＭＰＵ１５は、不揮発性メモリＩ／Ｆ１４内のビットカウンタ１４１を起動することにより、当該ビットカウンタ１４１によるビット数の測定（カウント）を開始させる（ステップ７０５）。これによりビットカウンタ１４１は、データライトのために不揮発性メモリＩ／Ｆ１４を介して不揮発性メモリに転送されるデータ（アクセスデータ）に含まれている第２の論理値（“０”）のビット数を、測定終了が指示されるまでカウントする。
【００４６】
次にＭＰＵ１５は、ホストからのライトコマンドに含まれているスタートアドレス（スタート論理アドレス）で示されるブロック内スタートアドレスがブロック境界に一致しているかを判定する（ステップ７０６）。もし、ステップ７０６の判定がＮｏであるならば、ＭＰＵ１５は、ＲＡＭ１２のバッファ領域に格納（リード）されている物理ブロックＰｎのデータのうち、当該物理ブロックＰｎの始端からブロック内スタートアドレスの直前までのデータを、ステップ７０２で選択された不揮発性メモリデバイスＤｍ（１１-m）内の物理ブロックＰｍにライトされるべきデータの一部として、当該物理ブロックＰｍに不揮発性メモリＩ／Ｆ１４を介して転送する（ステップ７０７）。このとき、転送されたデータに含まれている第２の論理値（“０”）のビット数がビットカウンタ１４１によってカウントされる。
【００４７】
ＭＰＵ１５は、ステップ７０７を実行すると、ホストからのライトコマンドで指定されたデータ（ホストからのデータ）を、上記選択された不揮発性メモリデバイスＤｍ（１１-m）内の物理ブロックＰｍに不揮発性メモリＩ／Ｆ１４を介して転送する（ステップ７０８）。このとき、転送されたデータに含まれている第２の論理値（“０”）のビット数がビットカウンタ１４１によってカウントされる。なお、ステップ７０６の判定がＹｅｓであるならば、ステップ７０７をスキップしてステップ７０８が行われる。
【００４８】
次にＭＰＵ１５は、ホストからのライトコマンドによって指定されるエンドアドレス（エンド論理アドレス）で示されるブロック内エンドアドレスがブロック境界に一致しているかを判定する（ステップ７０９）。もし、ステップ７０９の判定がＮｏであるならば、ＭＰＵ１５は、ＲＡＭ１２のバッファ領域に格納されている物理ブロックＰｎのデータのうち、ブロック内エンドアドレスの直後から当該ブロックＰｎの終端までのデータを、上記選択された不揮発性メモリデバイスＤｍ（１１-m）内の物理ブロックＰｍにライトされるべきデータの一部として、当該物理ブロックＰｍに不揮発性メモリＩ／Ｆ１４を介して転送する（ステップ７１０）。このとき、転送されたデータに含まれている第２の論理値（“０”）のビット数がビットカウンタ１４１によってカウントされる。
【００４９】
ＭＰＵ１５は、ステップ７１０を実行すると、ビットカウンタ１４１によるビット数の測定（カウント）を終了させる（ステップ７１１）。なお、ステップ７０９の判定がＹｅｓであるならば、ステップ７１０７をスキップしてステップ７１１が行われる。
【００５０】
このようにして本実施形態においては、ホストからのデータを含む、選択された物理ブロックＰｍにライトされるべきデータに含まれている第２の論理値（“０”）のビット数がビットカウンタ１４１によってカウントされる。
【００５１】
次にＭＰＵ１５は、不揮発性メモリデバイスＤｍ（１１-m）内の物理ブロックＰｍに転送された１ブロック分のデータの書き込み処理を、当該不揮発性メモリデバイスＤｍ（１１-m）に対して不揮発性メモリＩ／Ｆ１４を介して指示する（ステップ７１２）。このステップ７１２において、ＭＰＵ１５はビジータイマ１４２を起動して、アクセスビジー期間の測定を開始させる。ビジータイマ１４２は、起動時から、物理ブロックＰｍへのデータの書き込みが終了して不揮発性メモリデバイスＤｍ（１１-m）のビジー状態が解除されるまでの時間を、アクセスビジー期間として測定する。
【００５２】
ＭＰＵ１５は、不揮発性メモリデバイスＤｍ（１１-m）のビジー状態が解除されると、ビットカウンタ１４１のカウント値を参照して、当該カウント値が閾値領域１２６に格納されている閾値（第１の閾値）以上であるかを判定する（ステップ７１３）。
【００５３】
もし、ステップ７１３の判定がＹｅｓであるならば、ＭＰＵ１５は今回ビジータイマ１４２で測定されたアクセスビジー期間は有効であると判断する。この判断の理由は次の通りである。
【００５４】
まず、物理ブロックＰｍへのデータ書き込みは、［発明が解決しようとする課題］の欄にも記載されているように、当該ブロックＰｍの全ビットのうち、第２の論理値（“０”）に設定されるべきビットを構成するセルの電圧を、第１の論理値（“１”）を示すレベルから第２の論理値（“０”）を示すレベルに設定し直すことによって行われる。このとき、書き込みベリファイが行われ、第２の論理値（“０”）に設定されるべき各ビットを構成するセルについて、第２の論理値（“０”）を示す電圧レベルに設定されたかがチェックされる。もし、第２の論理値を示す電圧レベルに設定されていないセルがあれば、そのセルを第２の論理値を示す電圧レベルに設定する操作と書き込みベリファイとが再度行われる。
【００５５】
このため、物理ブロックＰｍに書き込まれるデータにおいて、第２の論理値（“０”）に設定されるべきビットの数が少ない場合には、たとえ当該ブロックＰｍのアクセス速度性能が悪化していても、それにさほど影響されずに、アクセスビジー期間は短くなる可能性がある。一方、物理ブロックＰｍに書き込まれるデータにおいて、第２の論理値（“０”）に設定されるべきビットの数が多い場合には、当該ブロックＰｍのアクセス速度性能が悪化しているならば、アクセスビジー期間はそれに大きく影響される。つまり、物理ブロックＰｍに書き込まれるデータにおいて、第２の論理値（“０”）に設定されるべきビットの数が多い場合、測定されるアクセスビジー期間は、当該ブロックＰｍのアクセス速度性能を十分反映しているといえる。そこで本実施形態では、ビットカウンタ１４１のカウント値が閾値（第１の閾値）以上である場合（ステップ７１３の判定がＹｅｓの場合）に限り、ビジータイマ１４２で測定されたアクセスビジー期間が有効であるとして利用される。
【００５６】
つまりステップ７１３の判定がＹｅｓの場合、ＭＰＵ１５は、アクセスビジー期間情報領域１２４に格納されている、Ｄｍに対応するアクセスビジー期間情報を、今回ビジータイマ１４２で測定されたアクセスビジー期間を示す値に更新する（ステップ７１４）。図５における楕円５０３の枠内は、このアクセスビジー期間情報の更新の例を示している。図５の例では、Ｄｍに対応するアクセスビジー期間情報が“０００００９０ｈ”から“０００００９１ｈ”に更新される。
【００５７】
ＭＰＵ１５はステップ７１４を実行すると、物理ブロックＰｎをイレーズして未使用状態とするための処理（イレーズ処理）を、不揮発性メモリＩ／Ｆ１４を介して実行する（ステップ７１５）。これに対し、ステップ７１３の判定がＮｏの場合、ＭＰＵ１５は今回ビジータイマ１４２で測定されたアクセスビジー期間は有効でないと判断し、ステップ７１４をスキップしてステップ７１５を実行する。
【００５８】
ＭＰＵ１５は、ステップ７１５を実行すると、物理ブロックステータス情報領域１２３に格納されている、物理ブロック（物理ブロックアドレス）Ｐｍ及びＰｎにそれぞれ対応する物理ブロックステータス情報の使用状況を表すステータスを更新する（ステップ７１６）。図４における楕円４０４及び４０５の枠内は、この物理ブロックステータス情報中のステータスの更新の例を示している。図４の例では、Ｐｍに対応する物理ブロックステータス情報中のステータスが、未使用を示す“０”から使用中を示す“１”に更新され、Ｐｎに対応する物理ブロックステータス情報中のステータスが、使用中を示す“１”から未使用を示す“０”に更新される。これにより物理ブロックＰｎは、割り当て済み物理ブロック部２０２に属する状態から、図２において矢印２０４に示されるように、割り当て可能物理ブロック部２０３に属する状態に遷移したことになる。一方、物理ブロックＰｍは、割り当て可能物理ブロック部２０３に属する状態から、図２において矢印２０５に示されるように、割り当て済み物理ブロック部２０２に属する状態に遷移したことになる。
【００５９】
ＭＰＵ１５はまた、論理−物理ブロックアドレス変換テーブル領域１２２に格納されている論理−物理ブロックアドレス変換テーブルにおいて、論理ブロックアドレスＬｍに対応付けられる物理ブロックアドレスを、ＰｎからＰｍに更新する。図３における楕円３０３の枠内は、この論理ブロックアドレスＬｍに対応付けられる物理ブロックアドレスの更新の例を示している。
【００６０】
ＭＰＵ１５は更に、論理ブロックアクセス頻度情報領域１２５に格納されている、論理ブロックアドレスＬｍに対応するアクセス頻度情報を更新する（ステップ７１８）。ここでは、アクセス頻度情報の示すアクセス頻度が１インクリメントされる。図６における楕円６０３の枠内は、このアクセス頻度情報の更新の例を示している。図６の例では、Ｌｍに対応するアクセス頻度情報が“Ｆ０００００００ｈ”から“Ｆ００００００１ｈ”に更新される。
【００６１】
ステップ７１６乃至７１８が実行されると、ホストからのライトコマンドで指定されライト動作を含む一連の処理は終了する。但し、ホストからのライトコマンドで指定されたアクセス対象が複数の論理ブロックに亙る場合には、その複数の論理ブロックの各々について、上記ステップ７０１乃至７１８が繰り返される。ここで、複数の論理ブロックのうちの先頭の論理ブロックのスタートアドレス及び最後の論理ブロックのエンドアドレスは、ライトコマンドから取得される。また、複数の論理ブロックのうちの先頭の論理ブロックのエンドアドレス、最後の論理ブロックのスタートアドレス、及びそれ以外の論理ブロックのスタートアドレス及びエンドアドレスは、ブロック境界に一致するアドレスとして取得される。なお、ステップ７１６乃至７１８は、どの順番に実行されても構わない。
【００６２】
［第１の変形例］
次に、上記実施形態の第１の変形例について説明する。  
第１の変形例の特徴は、アクセスビジー期間の測定を、書き込み処理（書き込みのためのアクセス処理）ではなくて、書き込み処理後のイレーズ処理（イレーズのためのアクセス処理）で行うことにある。
【００６３】
以下、第１の変形例における記憶装置１０のライトコマンド処理時の動作について、上記実施形態と相違する点を中心に、図８Ａ及び８Ｂのフローチャートを参照して説明する。  
まずＭＰＵ１５は、上記ステップ７０１乃至７０３に相当するステップ８０１乃至８０３を実行する。そしてＭＰＵ１５は、不揮発性メモリＩ／Ｆ１４内のビットカウンタ１４１を起動することにより、当該ビットカウンタ１４１によるビット数の測定を開始させる（ステップ８０４）。
【００６４】
次にＭＰＵ１５は、不揮発性メモリＩ／Ｆ１４を介して物理ブロックＰｎからデータをリードして、当該リードされたデータをＲＡＭ１２のバッファ領域に格納する（ステップ８０５）。ＭＰＵ１５は、ステップ８０５を実行すると、ビットカウンタ１４１によるビット数の測定を終了させる（ステップ８０６）。
【００６５】
このようにして第１の変形例においては、ステップ８０５で物理ブロックＰｎからリードされたデータ（アクセスデータ）に含まれている第２の論理値（“０”）のビット数が、ビットカウンタ１４１によって測定（カウント）される。
【００６６】
次にＭＰＵ１５は、ホストからのライトコマンドに含まれているスタートアドレス（スタート論理アドレス）で示されるブロック内スタートアドレスがブロック境界に一致しているかを判定する（ステップ８０７）。もし、ステップ８０７の判定がＮｏであるならば、ＭＰＵ１５は、上記ステップ７０７及び７０８に相当するステップ８０８及び８０９を実行する。これに対し、ステップ８０７の判定がＹｅｓであるならば、ＭＰＵ１５は、上記ステップ８０８をスキップしてステップ８０９を実行する。
【００６７】
ＭＰＵ１５はステップ８０９を実行すると、ホストからのライトコマンドによって指定されるエンドアドレス（エンド論理アドレス）で示されるブロック内エンドアドレスがブロック境界に一致しているかを判定する（ステップ８１０）。
【００６８】
もし、ステップ８１０の判定がＮｏであるならば、ＭＰＵ１５は、ＲＡＭ１２のバッファ領域に格納（リード）されている物理ブロックＰｎのデータのうち、ブロック内エンドアドレスの直後から当該ブロックＰｎの終端までのデータを、不揮発性メモリデバイスＤｍ（１１-m）内の物理ブロックＰｍに不揮発性メモリＩ／Ｆ１４を介して転送する（ステップ８１１）。そしてＭＰＵ１５は、不揮発性メモリデバイスＤｍ（１１-m）内の物理ブロックＰｍに転送された１ブロック分のデータの書き込み処理を、当該不揮発性メモリデバイスＤｍ（１１-m）に対して不揮発性メモリＩ／Ｆ１４を介して指示する（ステップ８１２）。これに対してステップ８１０の判定がＹｅｓであるならば、ＭＰＵ１５はステップ８１１をスキップしてステップ８１２を実行する。
【００６９】
ＭＰＵ１５は、物理ブロックＰｍへのデータの書き込み処理が完了すると、物理ブロックＰｎをイレーズして未使用状態とするための処理（イレーズ処理）を、不揮発性メモリＩ／Ｆ１４を介して実行する（ステップ８１３）。このステップ８１３において、ＭＰＵ１５はビジータイマ１４２を起動して、アクセスビジー期間の測定を開始させる。ビジータイマ１４２は、起動時から、物理ブロックＰｎをイレーズするための処理が終了して不揮発性メモリデバイスＤｍ（１１-m）のビジー状態が解除されるまでの時間を、アクセスビジー期間として測定する。
【００７０】
ＭＰＵ１５は、不揮発性メモリデバイスＤｍ（１１-m）のビジー状態が解除されると、ビットカウンタ１４１のカウント値を参照して、当該カウント値が閾値領域１２６に格納されている閾値（第１の閾値）以上であるかを判定する（ステップ８１４）。ここでビットカウンタ１４１のカウント値は、物理ブロックＰｎをイレーズする処理（ステップ８１３）が行われる前に、ステップ８０５で当該物理ブロックＰｎからＲＡＭ１２のバッファ領域にリードされたデータ（アクセスデータ）に含まれている第２の論理値（“０”）のビット数を示す。
【００７１】
物理ブロックＰｎをイレーズする場合、第２の論理値（“０”）から第１の論理値（“１”）に設定し直されるべき各ビットを構成するセルについて、第１の論理値（“１”）を示す電圧レベルに設定されたかをチェックするためのイレーズベリファイが行われる。もし、第１の論理値を示す電圧レベルに設定されていないセルがあれば、そのセルを第１の論理値を示す電圧レベルに設定する操作とイレーズベリファイとが再度行われる。
【００７２】
このため、物理ブロックＰｎに書き込まれているデータにおいて、第１の論理値（“１”）に設定し直されるべきビットの数、つまり第２の論理値（“０”）のビットの数が少ない場合には、たとえ当該ブロックＰｎのアクセス速度性能が悪化していても、それにさほど影響されずに、イレーズ処理時のアクセスビジー期間は短くなる可能性がある。一方、物理ブロックＰｎに書き込まれているデータにおいて、第２の論理値（“０”）のビットの数が多い場合には、当該ブロックＰｎのアクセス速度性能が悪化しているならば、イレーズ処理時のアクセスビジー期間はそれに大きく影響される。そこで第１の変形例では、ビットカウンタ１４１のカウント値が閾値（第１の閾値）以上である場合（ステップ８１４の判定がＹｅｓの場合）に限り、ビジータイマ１４２で測定されたアクセスビジー期間が有効であるとして利用される。
【００７３】
つまりステップ８１４の判定がＹｅｓの場合、ＭＰＵ１５は、アクセスビジー期間情報領域１２４に格納されている、Ｄｍに対応するアクセスビジー期間情報を、今回ビジータイマ１４２で測定されたアクセスビジー期間を示す値に更新する（ステップ８１５）。そしてＭＰＵ１５は、上記ステップ７１６乃至７１８に相当する更新処理（ステップ８１６乃至８１８）を実行する。また、ステップ８１４の判定がＮｏの場合、ＭＰＵ１５は、ステップ８１５をスキップして、ステップ８１６乃至８１８を実行する。
【００７４】
［第２の変形例］
次に、上記実施形態の第２の変形例について説明する。  
第２の変形例の特徴は、アクセスビジー期間情報領域１２４に格納されるアクセスビジー期間情報が物理ブロック（物理ブロックアドレス）に対応付けて管理される点にある。この点で、第２の変形例は、アクセスビジー期間情報が不揮発性メモリデバイス（不揮発性メモリデバイスＩＤ）に対応付けて管理される上記実施形態と相違する。
【００７５】
図９は、第２の変形例で適用される、アクセスビジー期間情報領域１２４に格納されるアクセスビジー期間情報の一例を示す。  
図９に示されるように、アクセスビジー期間情報はテーブル形式で管理されるものとする。図９において、物理ブロックアドレス９０１は、テーブルのインデックスに相当する。アクセスビジー期間情報は、このインデックスで指定される、テーブルのデータ部に相当する。つまりアクセスビジー期間情報は、物理ブロックアドレスに対応付けられる。アクセスビジー期間情報は、アクセスビジー期間情報フィールド９０２から構成される。フィールド９０２は、当該フィールド９０２を含むデータ部（アクセスビジー期間情報）のインデックス（物理ブロックアドレス）で指定される物理ブロックにデータを書き込む書き込み処理（または物理ブロックをイレーズするイレーズ処理）におけるアクセスビジー期間の情報を保持するのに用いられる。
【００７６】
図９に示されるアクセスビジー期間情報を適用する第２の変形例では、ＭＰＵ１５は、上記ステップ７１４また８１５において、上記実施形態または上記第１の変形例と異なって、物理ブロックＰｍに対応するアクセスビジー期間情報を更新すればよい。このため第２の変形例においては、不揮発性メモリデバイス単位でなく、物理ブロックアドレス単位で、より詳細なアクセスビジー期間管理が可能となる
そこで第２の変形例においてＭＰＵ１５は、上記ステップ７０２また８０２において、アクセスビジー期間情報領域１２４に格納されているアクセスビジー期間情報（図９参照）、物理ブロックステータス情報領域１２３に格納されている物理ブロックステータス情報（図４参照）及び（上記ステップ７０１または８０１で決定された）アクセス頻度レベルに基づいて、適当なビジー期間を持つ未使用の物理ブロックＰｍを選択すればよい。
【００７７】
これにより第２の変形例では、例えば、決定されたアクセス頻度レベルが上記第１のレベルであるならば、アクセスビジー期間が閾値領域１２６に格納されている閾値（第２の閾値）よりも短い未使用の物理ブロックＰｍが選択される。一方、決定されたアクセス頻度レベルが上記第２のレベルであるならば、アクセスビジー期間が第２の閾値以上の未使用の物理ブロックＰｍが選択される。
【００７８】
［第３の変形例］
次に、上記実施形態の第３の変形例について説明する。  
従来から、１論理ブロックに対して複数物理ブロックを対応させると共に、不揮発性メモリデバイスをグループ単位で管理して、グループ単位の同時アクセスもしくはインターリーブアクセスにより、高速なアクセス処理を実現する記憶装置が知られている。
【００７９】
第３の変形例の特徴は、このような不揮発性メモリデバイスがグループ単位で管理される記憶装置において、当該グループ単位にアクセスビジー期間情報を管理する点にある。
【００８０】
図１０は、第３の変形例で適用される不揮発性メモリデバイス構成を示すブロック図である。図１０において、図１と等価な要素には同一参照符号を付してある。
【００８１】
図１０において、不揮発性メモリＩ／Ｆ１４は不揮発性メモリデバイス１１-0〜１１-3と接続されている。不揮発性メモリデバイス１１-0及び１１-1はグループ１００Ａ（＃Ａ）に属する不揮発性メモリデバイスとして管理され、不揮発性メモリデバイス１１-2及び１１-3はグループ１００Ｂ（＃Ｂ）に属する不揮発性メモリデバイスとして管理される。
【００８２】
図１０の不揮発性メモリデバイス構成では、不揮発性メモリＩ／Ｆ１４は、グループ１００Ａ及び１００Ｂのグループを単位の同時アクセスもしくはインターリーブアクセスを行う。このため、アクセスビジー期間は、グループ単位に測定される。そこで、図１０では省略されているが、不揮発性メモリＩ／Ｆ１４には、図１に示されるビジータイマ１４２がグループ１００Ａ及び１００Ｂに対応してそれぞれ用意される。
【００８３】
このように、グループ毎にアクセスビジー期間が測定される構成とすることで、ＭＰＵ１５は、例えばアクセスビジー期間が長くなった（つまりアクセス速度性能が悪くなった）グループに対して、アクセス頻度が低くなるような制御（データを他グループに移動するなど）を行うことができる。これにより、記憶装置１０全体の信頼性向上を図ることが可能となる。
【００８４】
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。例えば、上記実施形態及びその変形例（第１及び第２の変形例）で適用される不揮発性メモリデバイス１１-m（ｍ＝１，２，…７）は、ＮＡＮＤ型の不揮発性メモリ素子である。しかし、不揮発性メモリデバイス１１-mが、ＮＡＮＤ型の不揮発性メモリ素子が実装されたメモリカードであっても構わない。また、不揮発性メモリデバイス１１-mが、ＮＡＮＤ型以外の不揮発性メモリ素子であっても、ＮＡＮＤ型以外の不揮発性メモリ素子が実装されたメモリカードであっても構わない。
【００８５】
また不揮発性メモリデバイス１１-mが多値メモリであっても構わない。ここで、不揮発性メモリデバイス１１-m（多値メモリ）内の物理ブロックがイレーズされている状態における当該物理ブロックの各ビットの論理値を、第１の論理値と定義する。また、物理ブロックがイレーズされていない状態において当該物理ブロックの各ビットが取り得る、第１の論理値以外の論理値を、第２の論理値と定義する。この場合、ビットカウンタ１４１は、上記実施形態または上記第１の変形例と同様に、データライトの対象となる物理ブロックＰｍに転送されるデータまたはイレーズの対象となる物理ブロックＰｎからリードされるデータに含まれている第２の論理値（第１の論理値以外の論理値）のビット数をカウントすればよい。
【００８６】
また、上記実施形態（またはその変形例）では、アクセス頻度レベルが第１及び第２のレベルに区分される。しかし、アクセス頻度レベルを第１乃至第Ｎレベル（Ｎは２より大きい整数）に区分することも可能である。この場合、アクセスビジー期間も、アクセス頻度レベル数に応じて区分すればよく、アクセス頻度レベルが高いほどアクセスビジー期間が短い不揮発性メモリデバイス（または物理ブロック）が選択され、アクセス頻度レベルが低いほどアクセスビジー期間が長い不揮発性メモリデバイス（または物理ブロック）が選択される構成とすればよい。
【００８７】
また、上記実施形態またはその変形例では、ホストからのライトコマンドの実行の都度、ビジータイマ１４２によってアクセスビジー期間が測定される。しかし、アクセスビジー期間が、必ずしもライトコマンドの実行の都度測定される必要はない。例えば、ライトコマンドが一定回数実行される毎にアクセスビジー期間が測定されても、或いはホストの電源がＯＮされてから一定期間だけ、ライトコマンドが実行される毎にアクセスビジー期間が測定されても構わない。
【００８８】
また、ホストからのライトコマンドの実行とは無関係に、不揮発性メモリデバイス毎または物理ブロック毎のアクセスビジー期間及び論理ブロック毎のアクセス頻度に応じて、物理ブロック間でデータを移動することも可能である。例えば、アクセスビジー期間が長い不揮発性メモリの第１の物理ブロックであって、アクセス頻度が高い第１の論理ブロックに割り当てられていた第１の物理ブロックの第１のデータと、アクセスビジー期間が短い不揮発性メモリの第２の物理ブロックであって、アクセス頻度が低い第２の論理ブロックに割り当てられていた第２の物理ブロックの第２のデータとを入れ替えることも可能である。この場合、第１の物理ブロックを第２の論理ブロックに割り当てし直し、第２の物理ブロックを第１の論理ブロックに割り当てし直せばよい。
【００８９】
また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。
【図面の簡単な説明】
【００９０】
【図１】本発明の一実施形態に係る記憶装置の構成を示すブロック図。
【図２】図１に示される不揮発性メモリデバイスによって実現される記憶領域を説明するための図。
【図３】図１に示される論理−物理ブロックアドレス変換テーブル領域に格納される論理−物理ブロックアドレス変換テーブルの一例を示す図。
【図４】図１に示される物理ブロックステータス情報領域に格納される物理ブロックステータス情報の一例を示す図。
【図５】図１に示されるアクセスビジー期間情報領域に格納されるアクセスビジー期間情報の一例を示す図。
【図６】図１に示される論理ブロックアクセス頻度情報領域に格納される論理ブロックアクセス頻度情報の一例を示す図。
【図７Ａ】同実施形態におけるライトコマンド処理時の動作を説明するためのフローチャート。
【図７Ｂ】同実施形態におけるライトコマンド処理時の動作を説明するためのフローチャート。
【図８Ａ】同実施形態の第１の変形例におけるライトコマンド処理時の動作を説明するためのフローチャート。
【図８Ｂ】同実施形態の第１の変形例におけるライトコマンド処理時の動作を説明するためのフローチャート。
【図９】同実施形態の第２の変形例で適用されるアクセスビジー期間情報の一例を示す図。
【図１０】同実施形態の第３の変形例で適用される不揮発性メモリデバイス構成を示すブロック図。
【符号の説明】
【００９１】
１０…記憶装置、１１-1〜１１-7…不揮発性メモリデバイス、１２…ＲＡＭ、１３…ホストＩ／Ｆ、１４…不揮発性メモリＩ／Ｆ、１５…ＭＰＵ、１２２…論理−物理ブロックアドレス変換テーブル領域、１２３…物理ブロックステータス情報領域、１２４…アクセスビジー期間情報領域、１２５…論理ブロックアクセス頻度情報領域、１２６…閾値領域、１４１…ビットカウンタ、１４２…ビジータイマ。
【図１】
2009230414.tif 000003
【図２】
2009230414.tif 000004
【図３】
2009230414.tif 000005
【図４】
2009230414.tif 000006
【図５】
2009230414.tif 000007
【図６】
2009230414.tif 000008
【図７Ａ】
2009230414.tif 000009
【図７Ｂ】
2009230414.tif 000010
【図８Ａ】
2009230414.tif 000011
【図８Ｂ】
2009230414.tif 000012
【図９】
2009230414.tif 000013
【図１０】
2009230414.tif 000014