(57)【要約】【課題】データにアクセスする際、アクセス頻度の高いデータはデータの書き込み及び読み出しが低速なエリアから高速なエリアに転送される不揮発性半導体記憶装置を提供する。【解決手段】不揮発性半導体記憶装置１では、データの書き込み及び読み出しが低速の第１のフラッシュメモリ装置２内の各物理アドレスに対するアクセス回数を計数し、ある物理アドレスに対するアクセスカウント値が閾値(ＮＭＡＸ)に達した場合に、当該物理アドレスのメモリセルに記憶されたデータを第２のフラッシュメモリ装置３に転送して記憶するようにした。【選択図】図１
2008090876.tif 000002
【特許請求の範囲】
【請求項１】
第１のフラッシュメモリ装置と、
データの書き込み及び読み出しが前記第１のフラッシュメモリ装置より高速である第２のフラッシュメモリ装置と、
データに付加される複数の論理アドレスと前記第１及び第２のフラッシュメモリ装置の複数の物理アドレスとを対応させて記憶する論理物理アドレステーブルと、
データを受けた時に当該データの論理アドレスに基づいて論理物理アドレステーブルを検索して当該論理アドレスに対応した前記物理アドレスを求めて当該論理アドレスのメモリセルにアクセスするアクセス部と、
前記複数の物理アドレスのメモリセルの各々に対するアクセスの回数を計数してアクセスカウント値を生成する計数部と、
前記アクセスカウント値を前記物理アドレスに対応付けて記憶するアクセスカウント値記憶部と、
前記アクセスカウント値記憶部に記憶された前記第１のフラッシュメモリ装置の前記物理アドレスに対する前記アクセスカウント値が閾値以上であるか否かを比較して比較結果を生成する比較部と、
前記比較結果により前記第１のフラッシュメモリ装置の前記物理アドレスに対する前記アクセスカウント値が前記閾値以上であることを示されている時に当該物理アドレスのデータを前記第２のフラッシュメモリ装置に転送する転送部と、
を具備したことを特徴とする不揮発性半導体記憶装置。
【請求項２】
前記比較部は、前記アクセスカウント値記憶部に記憶された前記第２のフラッシュメモリ装置の前記物理アドレスに対する前記アクセスカウント値が前記閾値以下であるか否かを比較して比較結果を生成し、
前記転送部は、前記比較結果により前記第２のフラッシュメモリ装置の前記物理アドレスに対する前記アクセスカウント値が前記閾値未満であることを示されている時に当該物理アドレスのデータを前記第１のフラッシュメモリ装置に転送すること、
を特徴とする請求項１の不揮発性半導体記憶装置。
【請求項３】
前記計数部がアクセス回数を計数する期間を設定し、該計数期間を計時して計時完了を出力する計時部を具備し、
前記計数部は、前記計時部から計時完了が出力された時、前記アクセス回数の計数を停止し、
前記比較部は、前記計数期間内に前記アクセスカウント値記憶部に記憶された前記第１のフラッシュメモリ装置の前記物理アドレスに対する前記アクセスカウント値が前記閾値以上であるか否かを比較すること、
を特徴とする請求項１記載の不揮発性半導体記憶装置。
【請求項４】
前記転送部は、前記計時部から計時完了が出力された時、前記アクセスカウント値記憶部に記憶された前記第１のフラッシュメモリ装置の物理アドレスに対応する前記アクセスカウント値をリセットすること、
を特徴とする請求項１又は請求項２記載の不揮発性半導体記憶装置。
【請求項５】
前記転送部は、前記データを前記第２のフラッシュメモリ装置又は前記第１のフラッシュメモリ装置に転送した後、前記論理物理アドレステーブルに記憶された前記第１のフラッシュメモリ装置又は前記第２のフラッシュメモリ装置の転送元の物理アドレスを転送先の前記第２のフラッシュメモリ装置又は前記第１のフラッシュメモリ装置の物理アドレスに変更すること、
を特徴とする請求項１乃至請求項４記載の不揮発性半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性半導体記憶装置に関する。
【背景技術】
【０００２】
ＮＡＮＤ型フラッシュメモリは不揮発性半導体メモリであり、大容量かつ低コストを特徴とする。不揮発性半導体メモリの中でも多値ＮＡＮＤ型フラッシュメモリは注目されている。最近では、多値ＮＡＮＤ型フラッシュメモリの開発が進んでいる。多値ＮＡＮＤ型フラッシュメモリは、１つのメモリセルに複数ビットのデータを保持できる。
【０００３】
多値ＮＡＮＤ型フラッシュメモリを用いることによってメモリシステムが大規模化している。大規模化するメモリシステムにおいて、書き込み及び読み出しされるデータのサイズは様々である。様々なデータに対応するため、容量やアクセス速度の異なるフラッシュメモリ装置がメモリシステムに備えられる場合がある。一方、ＮＡＮＤ型フラッシュメモリ装置では、データの記憶容量の増加のためセルあたりの記憶ビット数の多い多値ＮＡＮＤ型フラッシュメモリが開発されている。この多値ＮＡＮＤ型フラッシュメモリの場合、セルあたりの記憶可能ビット数が増加するに伴って、書き込み、読み出し速度が遅くなる場合がある。この場合、多値ＮＡＮＤ型フラッシュメモリを利用するシステムの機能が制限されてしまう場合がある。なお、多値ＮＡＮＤ型フラッシュメモリとしては、例えば、セルあたり２ビット記憶可能なものが知られており、セルあたり４ビット記憶可能なものも開発が進められている。
【０００４】
その結果、データの書き込み及び読み出しに対するアクセスタイムが遅くなる。
【特許文献１】特開２００５−２６８６２１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明の一実施形態によれば、データにアクセスする際、アクセス頻度の高いデータはデータの書き込み及び読み出しが低速なエリアから高速なエリアに転送されて、アクセスタイムの向上とデータの保存効率を向上する不揮発性半導体記憶装置の提供を目的とする。
【課題を解決するための手段】
【０００６】
本発明の一実施形態によると、第１のフラッシュメモリ装置と、データの書き込み及び読み出しが前記第１のフラッシュメモリ装置より高速である第２のフラッシュメモリ装置と、データに付加される複数の論理アドレスと前記第１及び第２のフラッシュメモリ装置の複数の物理アドレスとを対応させて記憶する論理物理アドレステーブルと、データを受けた時に当該データの論理アドレスに基づいて論理物理アドレステーブルを検索して当該論理アドレスに対応した前記物理アドレスを求めて当該論理アドレスのメモリセルにアクセスするアクセス部と、前記複数の物理アドレスのメモリセルの各々に対するアクセスの回数を計数してアクセスカウント値を生成する計数部と、前記アクセスカウント値を前記物理アドレスに対応付けて記憶するアクセスカウント値記憶部と、前記アクセスカウント値記憶部に記憶された前記第１のフラッシュメモリ装置の前記物理アドレスに対する前記アクセスカウント値が所定の閾値以上であるか否かを比較して比較結果を生成する比較部と、前記比較結果により前記第１のフラッシュメモリ装置の前記物理アドレスに対する前記アクセスカウント値が所定の閾値以上であることを示されている時に当該物理アドレスのデータを前記第２のフラッシュメモリ装置に転送する転送部と、を具備したことを特徴とする不揮発性半導体記憶装置を提供する。
【発明の効果】
【０００７】
本発明の一実施形態に係る不揮発性半導体記憶装置によれば、アクセス頻度の高いデータがデータの書き込み及び読み出しが低速なフラッシュメモリ装置からデータの書き込み及び読み出しが高速なフラッシュメモリ装置に転送されることで、次回そのデータにアクセスする際に高速なエリアから読み出しができるため、アクセス速度は速くなる。その結果、アクセスタイムの遅延は解消される。また、アクセス頻度によりデータが低速または高速なエリアに分かれて記憶されるためデータの保存効率が向上する。
【発明を実施するための最良の形態】
【０００８】
（実施形態１）
以下、本発明の実施形態１に係る不揮発性半導体記憶装置について、図面を参照しながら詳細に説明する。
【０００９】
図１は、本発明の実施形態１における不揮発性半導体記憶装置の構成を示すブロック図である。図示のとおり、この不揮発性半導体記憶装置１は、第１のフラッシュメモリ装置２、第２のフラッシュメモリ装置３、ホストインターフェイス４、プロセッサ５、ＥＣＣ回路６、ＤＭＡ７、バッファＲＡＭ８、論理物理アドレステーブル９、アクセスカウンタ１０を有する。
【００１０】
第１のフラッシュメモリ装置２は、ＮＡＮＤ型フラッシュメモリである。第２のフラッシュメモリ装置３は、ＮＡＮＤ型フラッシュメモリである。第２のフラッシュメモリ装置３は、データの書き込み及び読み出しが第１のフラッシュメモリ装置２により高速である。第２のフラッシュメモリ装置３としては、例えば、２値ＮＡＮＤフラッシュメモリの場合はアクセス速度が２５〜２００μｓ程度のものを用いるものとする。したがって、第１のフラッシュメモリ装置２としては、これよりもアクセス速度が遅いものを用いるものとする。
【００１１】
ホストインターフェイス(以下、ホストＩ／Ｆという)４は、外部のホスト装置(図示せず)とバス２０を介して接続し、ホスト装置とプロセッサ５との間で第１のフラッシュメモリ装置２又は第２のフラッシュメモリ装置３に対するデータ書き込み要求やデータ読み出し要求等の入出力を仲介する。
【００１２】
プロセッサ５は、不揮発性半導体記憶装置１内の各部を制御して、第１のフラッシュメモリ装置２又は第２のフラッシュメモリ装置３に対するデータ書き込み処理やデータ読み出し処理、又は、第１のフラッシュメモリ装置２と第２のフラッシュメモリ装置３間のデータ転送処理等を実行する。なお、プロセッサ５は、後述するフラッシュメモリ制御処理(図３参照)のプログラム、第１のフラッシュメモリ装置２内の物理アドレスへのアクセス回数を比較する閾値(ＮＭＡＸ)等を記憶するＲＡＭ(図示せず)を内蔵する。
【００１３】
ＥＣＣ(Error Correcting Code)回路６は、第１のフラッシュメモリ装置２又は第２のフラッシュメモリ装置３からデータを読み出す際、データの誤りを訂正する回路である。
【００１４】
ＤＭＡ(Direct Memory Access)回路７は、プロセッサ５を介さずに不揮発性半導体記憶装置１内の各部と第１のフラッシュメモリ装置２、第２のフラッシュメモリ装置３、又はバッファＲＡＭ８との間で直接データ転送を行う回路である。
【００１５】
バッファＲＡＭ８は、外部のホスト装置と、内部の第１のフラッシュメモリ装置２又は第２のフラッシュメモリ装置３との間でデータを遣り取りする際に、双方の処理速度や転送速度の差を補うためにデータを一時的に記憶する装置である。
【００１６】
論理物理アドレステーブル９は、ホスト装置から入力されたデータに付加される論理アドレスと、第１のフラッシュメモリ装置２内の物理アドレスと、第２のフラッシュメモリ装置３内の物理アドレスと、を対応付けて記憶するテーブルである。この論理物理アドレステーブル９の一例を図２に示す。図２に示す論理物理アドレステーブル９は、論理アドレスと、物理アドレスと、転送完了フラグと、アクセスカウンタと、を対応つけて記憶するテーブルである。
【００１７】
論理アドレスとは、本不揮発性半導体記憶装置１に対して、外部のホスト装置等からアクセスする際に、該ホスト装置において仮想的に設定されるアドレスのことである。また、物理アドレスとは、第１のフラッシュメモリ装置２内部と、第２のフラッシュメモリ装置３内部とで、実質的にデータが格納されるアドレスのことである。
【００１８】
転送完了フラグは、アクセス要求された物理アドレスへのアクセス数(アクセスカウンタのカウント値)が、予め設定した閾値(ＮＭＡＸ)以上である場合に、第１のフラッシュメモリ装置２から第２のフラッシュメモリ装置３への該当データの転送完了の有無を示すフラグである。本実施形態１では、転送完了フラグが「０」の場合はデータが未転送であることを示し、転送完了フラグが「１」の場合はデータ転送が完了していることを示すこととする。
【００１９】
また、アクセスカウンタは、上述のようにアクセス要求された物理アドレスのメモリセルへのアクセス回数を示すアクセスカウント値を物理アドレス毎に格納する領域である。
【００２０】
図２の論理物理アドレステーブル９において、アクセスされたデータの論理アドレスが「Ｌ０」である場合、その論理アドレスに対応する物理アドレスは「Ｐ２」である。アクセスカウンタ１０は、物理アドレスのメモリセルに対するアクセス回数を計数してアクセスカウント値を生成する。このことにより、その物理アドレス「Ｐ２」のアクセスカウト値は「００１」となる。
【００２１】
アクセスカウンタ１０は、上述のようにアクセス要求された物理アドレスのメモリセルへのアクセス回数を計数してアクセスカウント値を生成するカウンタである。
【００２２】
次に、本実施形態１における不揮発性半導体記憶装置１の動作について、図３に示すフローチャートを参照して説明する。図３は、不揮発性半導体記憶装置１内のプロセッサ５の動作を主に示すフローチャートである。なお、本動作では、ホスト装置から不揮発性半導体記憶装置１内の第１のフラッシュメモリ装置２に対してデータ読み出し要求コマンドが送信された場合の処理について説明する。
【００２３】
不揮発性半導体記憶装置１内のプロセッサ５は、まず、外部のホスト装置から第１のフラッシュメモリ装置２へのアクセス要求(例えば、データ読み出し要求、論理アドレス含む)の有無を確認する(ステップＳ１０１)。アクセス要求が無い場合は(ステップＳ１０１：ＮＯ)、本処理を繰り返し、アクセス要求が有った場合は(ステップＳ１０１：ＹＥＳ)、ステップＳ１０２に移行する。
【００２４】
次いで、プロセッサ５は、アクセス要求に含まれた論理アドレスに基づいて、図２の論理物理アドレステーブル９を参照して、対応する第１のフラッシュメモリ装置２の物理アドレスの有無を確認する(ステップＳ１０２)。物理アドレスが無い場合は(ステップＳ１０２：ＮＯ)、ステップＳ１２１に移行する。また、物理アドレスが有る場合は(ステップＳ１０２：ＹＥＳ)、ステップＳ１０３に移行する。
【００２５】
次いで、プロセッサ５は、論理物理アドレステーブル９を参照して、当該物理アドレスの転送完了フラグが「１」に設定されている否かを確認する(ステップＳ１０３)。すなわち、当該物理アドレスのデータが第２のフラッシュメモリ装置３への転送が完了しているか否かを確認する。転送完了フラグが「１：データ転送完了」の場合は(ステップＳ１０３：ＹＥＳ)、ステップＳ１１５に移行する。また、転送完了フラグが「０：データ未転送」の場合は(ステップＳ１０３：ＮＯ)、ステップＳ１０４に移行する。
【００２６】
次いで、プロセッサ５は、当該物理アドレスへのアクセス回数のカウントアップをアクセスカウンタ１０に指示してカウント値をカウントアップさせ、そのカウントアップに対応して図２の論理物理アドレステーブル９内のアクセスカウンタを「＋１」加算する(ステップＳ１０４)。
【００２７】
次いで、プロセッサ５は、ステップＳ１０４で加算したアクセスカウンタのカウント値が閾値(ＮＭＡＸ)以上か否かを確認する(ステップＳ１０５)。カウント値が閾値(ＮＭＡＸ)より小さい場合は(ステップＳ１０５：ＮＯ)、ステップＳ１０６に移行する。また、カウント値が閾値(ＮＭＡＸ)以上である場合は(ステップＳ１０５：ＹＥＳ)、ステップＳ１１０に移行する。
【００２８】
次いで、ステップＳ１０６において、プロセッサ５は、第１のフラッシュメモリ装置２に対してデータ読み出し要求(Ｒｅａｄ  Ｆｒａｓｈ１)コマンドを発行する。次いで、プロセッサ５は、第１のフラッシュメモリ装置２をデータ読み出し準備待ち（Ｗａｉｔ  Ｆｒａｓｈ１  Ｒｅａｄｙ）とし(ステップＳ１０７)、該当物理アドレスのメモリセルからデータを読み出し、そのデータをバッファＲＡＭ８に記憶させる(ステップＳ１０８)。次いで、プロセッサ５は、バッファＲＡＭ８からデータを読み出してＥＣＣ回路６でエラー訂正処理して(ステップＳ１０９)、その訂正データをバッファＲＡＭ８に記憶して、ステップＳ１０１に戻る。
【００２９】
また、カウント値が閾値(ＮＭＡＸ)以上である場合は(ステップＳ１０５：ＹＥＳ)、ステップＳ１１０において、プロセッサ５は、第１のフラッシュメモリ装置２内の該当物理アドレスのメモリセルに記憶されたデータを第２のフラッシュメモリ装置３内の空き物理アドレスのメモリセルにコピーするため、データ読み出し要求(Ｒｅａｄ)コマンド(データ及び物理アドレスを含む)を第１のフラッシュメモリ装置２に対して発行する。
【００３０】
例えば、図２の論理物理アドレステーブル９において、論理アドレス「Ｌ０」に対応する物理アドレス「Ｐ１」のアクセスカウンタが「１００」で、このカウント値が閾値(ＮＭＡＸ)以上である場合は、第１のフラッシュメモリ装置２内の物理アドレス「Ｐ１」のメモリセルに記憶されたデータが第２のフラッシュメモリ装置３内の空き物理アドレスのメモリセルに転送することになる。
【００３１】
次いで、プロセッサ５は、第１のフラッシュメモリ装置２をデータ読み出し準備待ち（Ｗａｉｔ  Ｆｒａｓｈ１  Ｒｅａｄｙ）とし(ステップＳ１１１)、該当物理アドレスのメモリセルからデータを読み出し、そのデータをバッファＲＡＭ８に記憶させるとともに第２のフラッシュメモリ装置３に対して出力する(ステップＳ１１２)。そして、プロセッサ５は、バッファＲＡＭ８からデータを読み出してＥＣＣ回路６でエラー訂正処理し(ステップＳ１１３)、その訂正データをバッファＲＡＭ８に記憶するとともに、その訂正データを第２のフラッシュメモリ装置３に対して出力する(ステップＳ１１４)。
【００３２】
次いで、プロセッサ５は、第１のフラッシュメモリ装置２から第２のフラッシュメモリ装置３への上記訂正データのコピー書き込み(Ｗｒｉｔｅ)コマンドを第２のフラッシュメモリ装置３に対して発行し(ステップＳ１１５)、第１のフラッシュメモリ装置２から第２のフラッシュメモリ装置３内のメモリセルへの上記訂正データの転送を完了し、論理物理アドレステーブル９内の該当物理アドレスの転送完了フラグを「１」を設定する。
【００３３】
次いで、プロセッサ５は、論理物理アドレステーブル９内の該当物理アドレスのアクセスカウンタを０にリセットして、ステップＳ１０１に戻る。
【００３４】
また、転送完了フラグが「１」の場合(ステップＳ１０３：ＹＥＳ)、ステップＳ１１６において、プロセッサ５は、上記データの第２のフラッシュメモリ装置３への転送処理において、訂正データを格納したメモリセルの物理アドレスにより、図２の論理物理アドレステーブル９を修正する。すなわち、論理物理アドレステーブル９内の該当物理アドレスを第２のフラッシュメモリ装置３の物理アドレスに変更する。
【００３５】
次いで、ステップＳ１１７において、プロセッサ５は、上記データ読み出し要求コマンドに含まれた論理アドレスに対応する物理アドレスを論理物理アドレステーブル９から取得し、当該物理アドレスを含むデータ読み出し要求(Ｒｅａｄ)コマンドを第２のフラッシュメモリ装置３に対して発行する。
【００３６】
次いで、プロセッサ５は、第２のフラッシュメモリ装置３をデータ読み出し準備待ち（Ｗａｉｔ  Ｆｒａｓｈ２  Ｒｅａｄｙ）とし(ステップＳ１１８)、該当物理アドレスのメモリセルからデータを読み出し、そのデータをバッファＲＡＭ８に記憶させる(ステップＳ１１９)。次いで、プロセッサ５は、バッファＲＡＭ８からデータを読み出してＥＣＣ回路６でエラー訂正処理して(ステップＳ１２０)、その訂正データをバッファＲＡＭ８に記憶して、ステップＳ１０１に戻る。
【００３７】
また、上記ステップＳ１０２において、読み出し要求コマンドに含まれた論理アドレスに対応する物理アドレスが論理物理アドレステーブル９に無い場合は(ステップＳ１０２：ＮＯ)、ホスト装置に対してエラー通知処理を行って(ステップＳ１２１)、ステップＳ１０１に戻る。
【００３８】
以上説明したように、本発明の一実施形態に係る不揮発性半導体記憶装置１では、データの書き込み及び読み出しが低速の第１のフラッシュメモリ装置２内の各物理アドレスに対するアクセス回数を計数し、ある物理アドレスに対するアクセスカウント値が閾値(ＮＭＡＸ)以上になった場合に、当該物理アドレスのメモリセルに記憶されたデータを第２のフラッシュメモリ装置３に転送するようにした。このため、次回そのデータにアクセスする際に高速なエリアから読み出しができるため、アクセス速度は速くなる。その結果、アクセスタイムの遅延は解消される。また、アクセス頻度によりデータが低速または高速なエリアに分けて記憶されるためデータの保存効率が向上する。
【００３９】
また、本発明の一実施形態に係る不揮発性半導体記憶装置１では、第１のフラッシュメモリ装置２の物理アドレスのメモリセルに記憶されたデータを第２のフラッシュメモリ装置３に転送した後、プロセッサ５が論理物理アドレステーブル９に記憶された第１のフラッシュメモリ装置２の転送元の物理アドレスを第２のフラッシュメモリ装置３の転送先の物理アドレスに修正するようにした。このため、次回のそのデータに対するアクセスを容易に実行できる。
【００４０】
また、本発明の一実施形態に係る不揮発性半導体記憶装置１では、第１のフラッシュメモリ装置２の物理アドレスのメモリセルに記憶されたデータを第２のフラッシュメモリ装置３に転送した後、プロセッサ５が論理物理アドレステーブル９に記憶された該当物理アドレスに対応するアクセスカウンタを０にリセットするようにした。このため、再度、不揮発性半導体記憶装置１を起動する際に、論理物理アドレステーブル９内のリセット処理を省略でき、処理効率を向上できる。
【００４１】
(実施形態２)
上記実施形態１では、アクセス要求を受ける毎にアクセス回数をカウントアップして累積する場合を示したが、本実施形態２では、アクセス回数を計数する期間をタイマにより設定し、例えば、実行プログラムの種類等によってアクセス回数が短期間に頻発する状況等に対応するようにしたことに特徴がある。
【００４２】
図４は、本発明の実施形態２における不揮発性半導体記憶装置の構成を示すブロック図である。なお、図４において、上記実施形態１の図１に示した構成と同一の構成部分には同一符号を付して、その構成説明を省略する。図示のとおり、この不揮発性半導体記憶装置２０は、第１のフラッシュメモリ装置２、第２のフラッシュメモリ装置３、ホストインターフェイス４、プロセッサ２３、ＥＣＣ回路６、ＤＭＡ７、バッファＲＡＭ８、論理物理アドレステーブル２１、アクセスカウンタ１０、カウント期間設定タイマ２２を有する。
【００４３】
論理物理アドレステーブル２１は、ホスト装置から入力されたデータに付加される論理アドレスと、第１のフラッシュメモリ装置２内の物理アドレスと、第２のフラッシュメモリ装置３内の物理アドレスと、を対応付けて記憶するテーブルである。この論理物理アドレステーブル２１の一例を図５に示す。図５に示す論理物理アドレステーブル２１は、論理アドレスと、物理アドレスと、タイマフラグと、転送完了フラグと、アクセスカウンタと、を対応つけて記憶するテーブルである。タイマフラグは、カウント期間設定タイマ２１のタイムアップを識別するためフラグであり、「０」をタイムアップ前とし、「１」をタイムアップ済とする。
【００４４】
カウント期間設定タイマ２１は、アクセスカウントタイマ１０のカウント期間を設定するタイマである。カウント期間設定タイマ２１は、プロセッサ５から入力される開始指示により計時を開始し、タイムアップ時にタイムアップ信号をプロセッサ５に出力する。
【００４５】
プロセッサ２３は、カウント期間設定タイマ２１により設定されるカウント期間にアクセスカウンタ１０でカウントされる第１のフラッシュメモリ装置２の物理アドレスに対するアクセスカウント値が閾値(ＮＭＡＸ)以上になった場合に、その物理アドレスに記憶されたデータを第２のフラッシュメモリ装置３に転送する等のフラッシュメモリ制御処理(図６参照)を実行する。なお、プロセッサ２３は、フラッシュメモリ制御処理のプログラム、第１のフラッシュメモリ装置２内の物理アドレスへのアクセス回数を比較する閾値(ＮＭＡＸ)等を記憶するＲＡＭ(図示せず)を内蔵する。
【００４６】
次に、本実施形態２における不揮発性半導体記憶装置２０の動作について、図６に示すフローチャートを参照して説明する。図６は、不揮発性半導体記憶装置２０内のプロセッサ２３の動作を主に示すフローチャートである。なお、本動作では、ホスト装置から不揮発性半導体記憶装置２０内の第１のフラッシュメモリ装置２に対してデータ読み出し要求コマンドが送信された場合の処理について説明する。なお、図６のフローチャートにおいて、上記図３に示したフローチャートと同一のステップには同一符号を付して、その同一ステップの説明を省略する。また、カウント期間設定タイマ２２は、不揮発性半導体記憶装置２０に駆動電圧が供給されて、プロセッサ２３が起動した際に、プロセッサ２３の開始指示により計時を開始しているものとする。
【００４７】
不揮発性半導体記憶装置１内のプロセッサ２３は、まず、外部のホスト装置から第１のフラッシュメモリ装置２へのアクセス要求(例えば、データ読み出し要求、論理アドレス含む)の有無を確認する(ステップＳ１０１)。アクセス要求が無い場合は(ステップＳ１０１：ＮＯ)、本処理を繰り返し、アクセス要求が有った場合は(ステップＳ１０１：ＹＥＳ)、ステップＳ１０２に移行する。
【００４８】
次いで、プロセッサ２３は、アクセス要求に含まれた論理アドレスに基づいて、図５の論理物理アドレステーブル２１を参照して、対応する第１のフラッシュメモリ装置２の物理アドレスの有無を確認する(ステップＳ１０２)。物理アドレスが無い場合は(ステップＳ１０２：ＮＯ)、ステップＳ１２１に移行する。また、物理アドレスが有る場合は(ステップＳ１０２：ＹＥＳ)、ステップＳ２０１に移行する。
【００４９】
ステップＳ２０１において、プロセッサ２３は、カウント期間設定タイマ２２が起動中か否かを確認する。カウント期間設定タイマ２２が起動中でない場合は(ステップＳ２０１：ＮＯ)、カウント期間設定タイマ２２を起動して(ステップＳ２０２)、ステップＳ２０３に移行する。また、カウント期間設定タイマ２２が起動中である場合は(ステップＳ２０１：ＹＥＳ)、ステップＳ２０３に移行する。
【００５０】
ステップＳ２０３において、プロセッサ２３は、カウント期間設定タイマ２２からのタイムアップ信号入力の有無を確認する。タイムアップ信号が入力されない場合は(ステップＳ２０３：ＮＯ)、ステップＳ１０３に移行し、タイムアップ信号が入力された場合は(ステップＳ２０３：ＹＥＳ)、ステップＳ２０４に移行する。
【００５１】
次いで、ステップＳ２０４において、プロセッサ２３は、論理物理アドレステーブル２１内の上記物理アドレスが有ることを確認したタイマフラグに「１」をセットして、ステップＳ２０５に移行する。ステップＳ２０５において、プロセッサ２３は、カウント停止信号をアクセスカウンタ１０に出力して、アクセスカウンタ１０のカウント動作を停止させて、ステップＳ２０６に移行する。ステップＳ２０６において、プロセッサ２３は、論理物理アドレステーブル２１内の上記物理アドレスが有ることを確認したアクセスカウンタを０にリセットして、ステップＳ１０１に移行する。
【００５２】
以後のステップＳ１０３〜ステップＳ１２１の処理は、上記図３のフローチャートにおいて説明した動作と同様であるため、動作説明は省略する。
【００５３】
以上説明したように、本発明の実施形態２に係る不揮発性半導体記憶装置２０では、カウント期間設定タイマ２２を設けて、アクセスカウンタ１０のアクセス回数をカウントする期間を制限し、カウント期間設定タイマ２２により設定されたカウント期間内に第１のフラッシュメモリ装置２の物理アドレスに対するアクセス回数を計数し、そのアクセス回数が閾値(ＮＭＡＸ)以上になった場合に、その物理アドレスに記憶されたデータを第２のフラッシュメモリ装置３に転送するようにした。このため、次回そのデータにアクセスする際に高速なエリアから読み出しができるため、アクセス速度は速くなる。その結果、アクセスタイムの遅延は解消される。また、アクセス頻度によりデータが低速または高速なエリアに分けて記憶されるためデータの保存効率が向上する。さらに、ホスト装置において実行中のプログラムの種類等によって特定のデータへのアクセス回数が短期間に頻発する状況においても、処理中のプログラムにより次回そのデータにアクセスする際に高速なエリアから読み出しができるため、アクセス速度は速くなる。
【００５４】
また、本発明の実施形態２に係る不揮発性半導体記憶装置２０では、カウント期間設定タイマ２２からタイムアップ信号(計時完了)が出力された後、プロセッサ５は、論理物理アドレステーブル２１内の該当物理アドレスに対応するアクセスカウンタを０にリセットするようにした。このため、再度、プログラムを起動した時に、論理物理アドレステーブル２１内のリセット処理を省略でき、処理効率を向上できる。
【００５５】
なお、上記実施形態１及び実施形態２では、不揮発性半導体記憶装置内に第１のフラッシュメモリ装置と第２のフラッシュメモリ装置を個別に設ける場合を示したが、同一チップ内に第１のフラッシュメモリ装置と第２のフラッシュメモリ装置を分けて設けるようにしてもよい。この場合、同一チップ内の第１のフラッシュメモリ装置と第２のフラッシュメモリ装置をＰＢ切り替えによりアクセス制御をすればよい。ＰＢ切り替えとは、チップ内でセンスアンプやロウデコーダを共有しないメモリセルアレイ（Ｐｌａｎｅと呼ばれる）が２つ乃至は複数あって、各メモリセルアレイが個別にページコピーコマンド等を受け付ける構成のフラッシュメモリ装置に対してメモリセルアレイの切り替え処理を行うものである。このようなフラッシュメモリ装置の一例を図７に例示する。この図７に示す例では、フラッシュメモリ装置４０が２つのメモリセルアレイ（Ｐｌａｎｅ）Ｆｌａｓｈ１，２で構成される場合を示す。
【００５６】
(実施形態３)
上記実施形態１では、アクセス要求を受ける毎にアクセス回数をカウントアップして累積する場合を示し、また、上記実施形態２では、アクセス回数を計数する期間をタイマにより設定し、例えば、実行プログラムの種類等によってアクセス回数が短期間に頻発する状況等に対応する場合を示したが、本実施形態３では、第２のフラッシュメモリ装置３に記憶されたデータのアクセス回数が閾値未満の場合に、そのデータを第１のフラッシュメモリ装置２に転送して、読み出し書き込みが高速な第２のフラッシュメモリ装置３の有効利用を図ることに特徴がある。
【００５７】
図７は、本発明の実施形態３における不揮発性半導体記憶装置の構成を示すブロック図である。なお、図７において、上記実施形態１の図１及び実施形態２の図４に示した構成と同一の構成部分には同一符号を付して、その構成説明を省略する。図示のとおり、この不揮発性半導体記憶装置３０は、第１のフラッシュメモリ装置２、第２のフラッシュメモリ装置３、ホストインターフェイス４、プロセッサ３１、ＥＣＣ回路６、ＤＭＡ７、バッファＲＡＭ８、論理物理アドレステーブル２１、カウント期間設定タイマ２２、アクセスカウンタ１０を有する。
【００５８】
プロセッサ３１は、上記実施形態１に示した第１のフラッシュメモリ装置２から第２のフラッシュメモリ装置３へのデータ転送を実行するとともに、あるタイミングでデータの書き込み及び読み出しが高速の第２のフラッシュメモリ装置３内の各物理アドレスに対するアクセス回数を計数し、ある物理アドレスに対するアクセスカウント値が閾値(ＮＭＩＮ：アクセス回数が少ないことを判断するための最小回数)に達しない場合に、当該物理アドレスのメモリセルに記憶されたデータを第１のフラッシュメモリ装置２に転送する等のフラッシュメモリ制御処理(図９参照)を実行する。なお、プロセッサ２３は、フラッシュメモリ制御処理のプログラム、第１のフラッシュメモリ装置２及び第２のフラッシュメモリ装置３内の各物理アドレスへのアクセス回数を比較する閾値(ＮＭＩＮ)等を記憶するＲＡＭ(図示せず)を内蔵する。
【００５９】
次に、本実施形態３における不揮発性半導体記憶装置３０の動作について、図８に示すフローチャートを参照して説明する。図８は、不揮発性半導体記憶装置３０内のプロセッサ３１の動作を主に示すフローチャートである。なお、本動作では、ホスト装置から不揮発性半導体記憶装置３０内の第２のフラッシュメモリ装置３に対してデータ読み出し要求コマンドが送信された場合の処理について説明する。
【００６０】
不揮発性半導体記憶装置１内のプロセッサ３１は、まず、外部のホスト装置から第２のフラッシュメモリ装置３へのアクセス要求(例えば、データ読み出し要求、論理アドレス含む)の有無を確認する(ステップＳ３０１)。アクセス要求が無い場合は(ステップＳ３０１：ＮＯ)、本処理を繰り返し、アクセス要求が有った場合は(ステップＳ３０１：ＹＥＳ)、ステップＳ３０２に移行する。
【００６１】
次いで、プロセッサ３１は、アクセス要求に含まれた論理アドレスに基づいて、図２の論理物理アドレステーブル９を参照して、対応する第２のフラッシュメモリ装置３の物理アドレスの有無を確認する(ステップＳ３０２)。物理アドレスが無い場合は(ステップＳ３０２：ＮＯ)、ステップＳ３２７に移行する。また、物理アドレスが有る場合は(ステップＳ３０２：ＹＥＳ)、ステップＳ３０３に移行する。
【００６２】
ステップＳ３０３において、プロセッサ３１は、カウント期間設定タイマ２２が起動中か否かを確認する。カウント期間設定タイマ２２が起動中でない場合は(ステップＳ３０３：ＮＯ)、カウント期間設定タイマ２２を起動して(ステップＳ３０４)、ステップＳ３０５に移行する。また、カウント期間設定タイマ２２が起動中である場合は(ステップＳ３０３：ＹＥＳ)、ステップＳ３０５に移行する。
【００６３】
ステップＳ３０５において、プロセッサ３１は、カウント期間設定タイマ２２からのタイムアップ信号入力の有無を確認する。タイムアップ信号が入力されない場合は(ステップＳ３０５：ＮＯ)、ステップＳ３０９に移行し、タイムアップ信号が入力された場合は(ステップＳ３０５：ＹＥＳ)、ステップＳ３０６に移行する。
【００６４】
次いで、ステップＳ３０６において、プロセッサ３１は、論理物理アドレステーブル２１内の上記物理アドレスが有ることを確認したタイマフラグに「１」をセットして、ステップＳ３０７に移行する。ステップＳ３０７において、プロセッサ３１は、カウント停止信号をアクセスカウンタ１０に出力して、アクセスカウンタ１０のカウント動作を停止させて、ステップＳ３０８に移行する。ステップＳ３０８において、プロセッサ３１は、論理物理アドレステーブル２１内の上記物理アドレスが有ることを確認したアクセスカウンタを０にリセットして、ステップＳ３０１に移行する。
【００６５】
次いで、プロセッサ３１は、論理物理アドレステーブル９を参照して、当該物理アドレスの転送完了フラグが「１」に設定されている否かを確認する(ステップＳ３０９)。すなわち、当該物理アドレスのデータが第１のフラッシュメモリの装置１への転送が完了しているか否かを確認する。転送完了フラグが「１：データ転送完了」の場合は(ステップＳ３０９：ＹＥＳ)、ステップＳ３２２に移行する。また、転送完了フラグが「０：データ未転送」の場合は(ステップＳ３０９：ＮＯ)、ステップＳ３１０に移行する。
【００６６】
次いで、プロセッサ３１は、当該物理アドレスへのアクセス回数のカウントアップをアクセスカウンタ１０に指示してカウント値をカウントアップさせ、そのカウントアップに対応して図２の論理物理アドレステーブル９内のアクセスカウンタを「＋１」加算する(ステップＳ３１０)。
【００６７】
次いで、プロセッサ３１は、ステップＳ３１１で加算したアクセスカウンタのカウント値が閾値(ＮＭＩＮ)以下か否かを確認する(ステップＳ３１１)。カウント値が閾値(ＮＭＩＮ)より大きい場合は(ステップＳ３１１：ＮＯ)、ステップＳ３１２に移行する。また、カウント値が閾値(ＮＭＩＮ)以下の場合は(ステップＳ３１１：ＹＥＳ)、ステップＳ３１２に移行する。
【００６８】
ステップＳ３１２において、プロセッサ３１は、第２のフラッシュメモリ装置３に対してデータ読み出し要求(Ｒｅａｄ  Ｆｒａｓｈ２)コマンドを発行する。次いで、プロセッサ３１は、第２のフラッシュメモリ装置３をデータ読み出し準備待ち（Ｗａｉｔ  Ｆｒａｓｈ２  Ｒｅａｄｙ）とし(ステップＳ３１３)、該当物理アドレスのメモリセルからデータを読み出し、そのデータをバッファＲＡＭ８に記憶させる(ステップＳ３１４)。次いで、プロセッサ３１は、バッファＲＡＭ８からデータを読み出してＥＣＣ回路６でエラー訂正処理して(ステップＳ３１５)、その訂正データをバッファＲＡＭ８に記憶して、ステップＳ３０１に戻る。
【００６９】
また、カウント値が閾値(ＮＭＩＮ)以下の場合は(ステップＳ３１１：ＹＥＳ)、ステップＳ３１６において、プロセッサ３１は、第２のフラッシュメモリ装置３内の該当物理アドレスのメモリセルに記憶されたデータを第１のフラッシュメモリ装置２内の空き物理アドレスのメモリセルにコピーするため、データ読み出し要求(Ｒｅａｄ)コマンド(データ及び物理アドレスを含む)を第２のフラッシュメモリ装置２に対して発行する。
【００７０】
例えば、図２の論理物理アドレステーブル９において、論理アドレス「Ｌ１」に対応する物理アドレス「Ｐ０」のアクセスカウンタが「０１０」で、このカウント値が閾値(ＮＭＩＮ)以下の場合は、第２のフラッシュメモリ装置３内の物理アドレス「Ｐ０」のメモリセルに記憶されたデータが第１のフラッシュメモリ装置２内の空き物理アドレスのメモリセルに転送することになる。
【００７１】
次いで、プロセッサ３１は、第２のフラッシュメモリ装置３をデータ読み出し準備待ち（Ｗａｉｔ  Ｆｒａｓｈ２  Ｒｅａｄｙ）とし(ステップＳ３１７)、該当物理アドレスのメモリセルからデータを読み出し、そのデータをバッファＲＡＭ８に記憶させるとともに第１のフラッシュメモリ装置２に対して出力する(ステップＳ３１８)。そして、プロセッサ３１は、バッファＲＡＭ８からデータを読み出してＥＣＣ回路６でエラー訂正処理し(ステップＳ３１９)、その訂正データをバッファＲＡＭ８に記憶するとともに、その訂正データを第１のフラッシュメモリ装置２に対して出力する(ステップＳ３２０)。
【００７２】
次いで、プロセッサ３１は、第２のフラッシュメモリ装置３から第１のフラッシュメモリ装置２への上記訂正データのコピー書き込み(Ｗｒｉｔｅ)コマンドを第１のフラッシュメモリ装置２に対して発行し(ステップＳ３２１)、第２のフラッシュメモリ装置３から第１のフラッシュメモリ装置２内のメモリセルへの上記訂正データの転送を完了し、論理物理アドレステーブル９内の該当物理アドレスの転送完了フラグを「１」を設定する。
【００７３】
次いで、プロセッサ３１は、論理物理アドレステーブル９内の該当物理アドレスのアクセスカウンタを０にリセットして、ステップＳ３０１に戻る。
【００７４】
また、転送完了フラグが「１」の場合(ステップＳ３０９：ＹＥＳ)、ステップＳ３２２において、プロセッサ３１は、上記データの第２のフラッシュメモリ装置３への転送処理において、訂正データを格納したメモリセルの物理アドレスにより、図２の論理物理アドレステーブル９を修正する。すなわち、論理物理アドレステーブル９内の該当物理アドレスを第１のフラッシュメモリ装置２の物理アドレスに変更する。
【００７５】
次いで、ステップＳ３２３において、プロセッサ３１は、上記データ読み出し要求コマンドに含まれた論理アドレスに対応する物理アドレスを論理物理アドレステーブル９から取得し、当該物理アドレスを含むデータ読み出し要求(Ｒｅａｄ)コマンドを第２のフラッシュメモリ装置３に対して発行する。
【００７６】
次いで、プロセッサ３１は、第１のフラッシュメモリ装置２をデータ読み出し準備待ち（Ｗａｉｔ  Ｆｒａｓｈ２  Ｒｅａｄｙ）とし(ステップＳ３２４)、該当物理アドレスのメモリセルからデータを読み出し、そのデータをバッファＲＡＭ８に記憶させる(ステップＳ３２５)。次いで、プロセッサ３１は、バッファＲＡＭ８からデータを読み出してＥＣＣ回路６でエラー訂正処理して(ステップＳ３２６)、その訂正データをバッファＲＡＭ８に記憶して、ステップＳ３０１に戻る。
【００７７】
また、上記ステップＳ３０２において、読み出し要求コマンドに含まれた論理アドレスに対応する物理アドレスが論理物理アドレステーブル９に無い場合は(ステップＳ３０２：ＮＯ)、ホスト装置に対してエラー通知処理を行って(ステップＳ３２７)、ステップＳ３０１に戻る。
【００７８】
以上説明したように、本発明の実施形態３に係る不揮発性半導体記憶装置３０では、データの書き込み及び読み出しが高速の第２のフラッシュメモリ装置３内の各物理アドレスに対するアクセス回数を計数し、ある物理アドレスに対するアクセスカウント値が閾値(ＮＭＩＮ)以下の場合に、当該物理アドレスのメモリセルに記憶されたデータを第１のフラッシュメモリ装置２に転送するようにした。このため、アクセス回数が少ないデータを次回そのデータにアクセスする際に低速なエリアから読み出しができるため、第２のフラッシュメモリ装置３のエリアを有効利用することができる。また、アクセス頻度によりデータが低速または高速なエリアに分けて記憶されるためデータの保存効率が向上する。
【図面の簡単な説明】
【００７９】
【図１】本発明の実施形態１に係る不揮発性半導体記憶装置の構成を示す図である。
【図２】本発明の実施形態１に係る論理物理アドレステーブルの一例を示す図である。
【図３】本発明の実施形態１に係る不揮発性半導体記憶装置の動作を示すフローチャートである。
【図４】本発明の実施形態２に係る不揮発性半導体記憶装置の構成を示す図である。
【図５】本発明の実施形態２に係る論理物理アドレステーブルの一例を示す図である。
【図６】本発明の実施形態２に係る不揮発性半導体記憶装置の動作を示すフローチャートである。
【図７】本発明の実施形態３に係る不揮発性半導体記憶装置の構成を示す図である。
【図８】本発明の実施形態３に係る不揮発性半導体記憶装置の動作を示すフローチャートである。
【符号の説明】
【００８０】
１、２０、３０    不揮発性半導体記憶装置
２    第１のフラッシュメモリ装置
３    第２のフラッシュメモリ装置
５、２３、３１    プロセッサ(アクセス部、比較部、転送部)
９、２１    論理物理アドレステーブル(アクセスカウント値記憶部)
１０    アクセスカウンタ(計数部)
２２    カウント期間設定タイマ(計時部)
【図１】
2008090876.tif 000003
【図２】
2008090876.tif 000004
【図３】
2008090876.tif 000005
【図４】
2008090876.tif 000006
【図５】
2008090876.tif 000007
【図６】
2008090876.tif 000008
【図７】
2008090876.tif 000009
【図８】
2008090876.tif 000010