(57)【要約】【課題】  フラッシュメモリの所定領域に対するアクセス頻度の評価装置を提供する。【解決手段】  ページ、ブロック単位で書き込み、消去がそれぞれ行われるフラッシュメモリと、フラッシュメモリを制御するコントローラと、を具備する記憶デバイスへのアクセス頻度を評価する評価装置。インターフェース２１は、フラッシュメモリとコントローラとの間で授受される内部信号の少なくとも一部を供給され且つ認識可能に構成され、内部信号の少なくとも一部を入力信号として出力する。消去シーケンス検出部２２は、入力信号中のアドレスデータとアドレスデータにより特定されるブロックに対する消去コマンドとが連続した際に検出信号を出力する。アドレス保持部２３は、入力信号中のアドレスデータを供給された際にアドレスデータを保持し、検出信号を供給された際に保持しているアドレスデータを出力する。【選択図】      図１
2007328620.tif 000002
【特許請求の範囲】
【請求項１】
ページ単位でデータを書き込まれ且つ複数の前記ページからなるブロック単位でデータを消去されるフラッシュメモリと、前記フラッシュメモリを制御するコントローラと、を具備する記憶デバイスへのアクセス頻度を評価するアクセス頻度評価装置であって、
前記フラッシュメモリと前記コントローラとの間で授受される内部信号の少なくとも一部を供給され且つ前記内部信号の少なくとも一部を認識可能に構成され、前記内部信号の少なくとも一部を入力信号として出力するインターフェースと、
前記入力信号においてアドレスデータと前記アドレスデータにより特定される前記ブロック内のデータを消去することを命ずる消去コマンドとが連続した際に検出信号を出力する消去シーケンス検出部と、
前記入力信号中の前記アドレスデータを供給された際に前記アドレスデータを保持し、前記検出信号を供給された際に保持している前記アドレスデータを消去アドレスデータとして出力する、アドレス保持部と、
を具備することを特徴とするアクセス頻度評価装置。
【請求項２】
前記消去アドレスデータを供給され、前記消去アドレスデータを供給された回数を前記ブロックごとに記憶するカウントメモリと、
前記カウントメモリを監視し、前記消去アドレスデータを供給された回数が閾値に達した前記ブロックを検出した際に検出された前記ブロックを特定する検出アドレスデータを出力する判定部と、
前記検出アドレスデータを供給され、前記検出アドレスデータにより特定される前記ブロック内に含まれる複数の前記ページのそれぞれに対する書き込みコマンドを検出した際にデータ取り込み指示信号を出力する書き込みシーケンス検出部と、
データ取り込み指示信号を供給された際に、前記書き込みシーケンス検出部によって検出された前記書き込みコマンドに続く書き込みデータを取り込み且つ出力する、書き込みデータメモリと、
をさらに具備することを特徴とする請求項１に記載のアクセス頻度評価装置。
【請求項３】
前記判定部が、前記消去アドレスデータを供給された回数が閾値に達した前記ブロックを検出した際に検出した旨の信号を出力することを特徴とする請求項２に記載のアクセス頻度評価装置。
【請求項４】
ページ単位でデータを書き込まれ且つ複数の前記ページからなるブロック単位でデータを消去されるフラッシュメモリと、前記フラッシュメモリを制御するコントローラと、を具備する記憶デバイスへのアクセス頻度を評価するアクセス頻度評価方法であって、
前記フラッシュメモリと前記コントローラとの間で授受される内部信号中のアドレスデータを保持する工程と、
前記内部信号中で、前記アドレスデータと前記アドレスデータにより特定される前記ブロック内のデータを消去することを命ずる消去コマンドとが連続した検出事象を検出する工程と、
前記検出事象を検出した際に保持されている前記アドレスデータを消去アドレスデータとして出力する工程と、
を具備することを特徴とするアクセス頻度評価方法。
【請求項５】
前記消去アドレスデータが出力された回数を前記ブロックごとに記憶する工程と、
前記消去アドレスデータが出力された回数が閾値に達した前記ブロックである検出ブロックを検出する工程と、
前記検出ブロック内に含まれる複数の前記ページのそれぞれに対する書き込みコマンドを検出した際に、前記書き込みコマンドに続く書き込みデータを取り込み且つ出力する工程と、
をさらに具備することを特徴とする請求項４に記載のアクセス頻度評価装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アクセス頻度評価装置およびアクセス頻度評価方法に関し、例えば、半導体記憶装置への所定領域ごとのアクセス頻度を評価する装置および方法に関する。
【背景技術】
【０００２】
フラッシュメモリの各メモリセルには、メモリセルへの書き込みの際に、メモリセルを構成する絶縁膜に高電圧が印加される。この高電圧の印加が積み重なることによって、絶縁膜の特性が劣化する。絶縁膜の特性の劣化が蓄積されることにより、メモリセルのデータを保持する信頼性が低下する。したがって、各メモリセルには、書き換え回数の上限が存在する。
【０００３】
ある特定のメモリセルに書き込みが集中すると、このメモリセルへの書き込み回数が、他のメモリセルよりも早い段階で上限に達してしまう。この結果、フラッシュメモリ全体のデータ保持信頼性が低下する。これを回避するために、各メモリセルへの書き込み回数が、メモリセル全体に亘って、できる限り均等となることが好ましい。
【０００４】
このような要請から、フラッシュメモリを制御するコントローラは、書き込み回数が全メモリセルに亘ってなるべく均一になるような制御（ウェアレベリング）を行うことが多い。
【０００５】
フラッシュメモリを制御するフラッシュメモリコントローラは、一般に、フラッシュメモリのバスを制御するハードウェアと、ハードウェアの動作を制御するソフトウェアで構成される。そして、上記のウェアレベリングは、ソフトウェアが実行することになる。
【０００６】
フラッシュメモリコントローラの設計の段階で、フラッシュメモリコントローラのソフトウェアが、適切なウェアレベリングを行っているかの検証が必要である。検証の方法として、現在、以下の２つが考えられる。
【０００７】
第１の方法は、ソフトウェアの動作を示すフローチャートを目視で検証し、ハードウェアがフローチャート通りの動作しているかをシミュレータ等で確認する方法である。第１の方法は、フラッシュメモリコントローラが実際に書き込み動作を行った際の動作を検証しているわけではない。このため、フローチャートおよびシミュレーションによって発見できなかった予想外の問題に起因した、ウェアレベリングの不良を発見できない。さらに、人間が確認する方法であるので、ミスが生じる可能性が残る。
【０００８】
第２の方法は、試作されたフラッシュメモリのバス状の信号を実際に検証する方法である。フラッシュメモリ特有のコマンド等を検出する、フラッシュメモリ専用のプロトコルアナライザは、現在市販されていないので、ロジックアナライザ等の汎用の測定器を使用することとなる。ロジックアナライザは、検証対象のバス上で授受されている信号を適当な時間間隔ごとに出力し、例えば画像上に時間軸に沿って各信号を羅列する機能を有する。しかしながら、上記のように、汎用ロジックアナライザは、フラッシュメモリ特有のコマンドを認識することができないため、各時刻における各信号の状態（例えば、“０”または“１”）を取り込むことになる。そして、取り込んだデータから、書き込みコマンドおよび書き込みアドレスを抽出して分析する作業が必要である。このため、取り込んで保存すべきデータおよび処理量が膨大である。従って、第２の方法は、実際に行うことは不可能である。
【０００９】
特許文献１は、フラッシュメモリとメモリコントローラとの間の信号を監視して、データ消去命令、データ消去の完了または未完了、データ消去完了までの時間を計測することを開示する。
【特許文献１】特開平6-52694号公報
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、フラッシュメモリの所定領域に対するアクセス頻度の評価装置を提供しようとするものである。
【課題を解決するための手段】
【００１１】
本発明の１つの視点によるアクセス頻度評価装置は、ページ単位でデータを書き込まれ且つ複数の前記ページからなるブロック単位でデータを消去されるフラッシュメモリと、前記フラッシュメモリを制御するコントローラと、を具備する記憶デバイスへのアクセス頻度を評価するアクセス頻度評価装置であって、前記フラッシュメモリと前記コントローラとの間で授受される内部信号の少なくとも一部を供給され且つ前記内部信号の少なくとも一部を認識可能に構成され、前記内部信号の少なくとも一部を入力信号として出力するインターフェースと、前記入力信号においてアドレスデータと前記アドレスデータにより特定される前記ブロック内のデータを消去することを命ずる消去コマンドとが連続した際に検出信号を出力する消去シーケンス検出部と、前記入力信号中の前記アドレスデータを供給された際に前記アドレスデータを保持し、前記検出信号を供給された際に保持している前記アドレスデータを消去アドレスデータとして出力する、アドレス保持部と、を具備することを特徴とする。
【００１２】
本発明の１つの視点によるアクセス頻度評価方法は、ページ単位でデータを書き込まれ且つ複数の前記ページからなるブロック単位でデータを消去されるフラッシュメモリと、前記フラッシュメモリを制御するコントローラと、を具備する記憶デバイスへのアクセス頻度を評価するアクセス頻度評価方法であって、前記フラッシュメモリと前記コントローラとの間で授受される内部信号中のアドレスデータを保持する工程と、前記内部信号中で、前記アドレスデータと前記アドレスデータにより特定される前記ブロック内のデータを消去することを命ずる消去コマンドとが連続した検出事象を検出する工程と、前記検出事象を検出した際に保持されている前記アドレスデータを消去アドレスデータとして出力する工程と、を具備することを特徴とする。
【発明の効果】
【００１３】
本発明によれば、フラッシュメモリの所定領域に対するアクセス頻度の評価装置を提供できる。
【発明を実施するための最良の形態】
【００１４】
ＮＡＮＤ型フラッシュメモリは、所定数のメモリセルからなり且つこの数に応じた量のデータを記憶するページという単位でデータが書き込まれる。このため、ＮＡＮＤ型フラッシュメモリを用いたメモリカード等の記憶デバイスへの書き込み頻度を評価するには、最も単純に考えた場合、各ページに対する書き込み頻度を評価すればよい。この場合、各ページのアドレスと、このアドレスのページに対する書き込み命令を検出し、計数および評価することが必要である。
【００１５】
しかしながら、ＮＡＮＤ型フラッシュメモリの大容量化に伴い、ページ数が増加している。このため、ページごとのアクセス頻度を評価するには、書き込み対象となったページのアドレスのデータを大量に格納する結果となる。このため、この手法は、余り実用的ではない。これに対して、以下の手法が考えられる。
【００１６】
この手法は、ＮＡＮＤ型フラッシュメモリには、データを書き込み済みのページにデータを上書きすることはできず、常にデータを削除済みのページにデータを書き込む特性を利用している。すなわち、ＮＡＮＤ型フラッシュメモリでは、データを書き込まれたページ中のデータが最新のものでなくなった場合等に、このようなページのデータを消去し、データ未書き込みのページが順次、用意される。このため、換言すれば、消去対象のページは、以前、必ずデータを書き込まれたページである。
【００１７】
さらに、フラッシュメモリでは、データ書き込み済みのページの消去は、複数のページの集合であるブロックという単位でしか行えない。このため、あるブロックへの１回のデータ消去命令を観察すれば、このブロックに含まれる各ページに、以前にデータが書き込まれたことを知得できる。ブロックの容量はページの容量より大きいので、ブロックへの消去命令を観察すれば、少ない処理およびアドレスデータ量で、各ページに対する書き込み頻度を評価できる。
【００１８】
以下、このような所見に基づいて構成された本発明の実施形態について図面を参照して説明する。なお、以下の説明において、略同一の機能及び構成を有する構成要素については、同一符号を付し、重複説明は必要な場合にのみ行う。
【００１９】
図１は、本発明の実施形態に係るアクセス頻度評価装置を示す機能ブロック図である。各機能ブロックは、ハードウェア、コンピュータソフトウェア、のいずれかまたは両者の組み合わせとして実現することができる。このため、各ブロックは、これらのいずれでもあることが明確となるように、概してそれらの機能の観点から以下に説明される。このような機能が、ハードウェアとして実行されるか、またはソフトウェアとして実行されるかは、具体的な実施態様またはシステム全体に課される設計制約に依存する。当業者は、具体的な実施態様ごとに、種々の方法でこれらの機能を実現し得るが、そのような実現を決定することは本発明の範疇に含まれるものである。
【００２０】
図１において、評価対象の記憶デバイス１は、ＮＡＮＤ型フラッシュメモリ（以下、単にフラッシュメモリと称する）１１とコントローラ１２を含んでいる。フラッシュメモリ１１は、コントローラ１２から供給されるコマンドおよびアドレス信号に応じて動作する。そして、複数ビットのデータを記憶するページ単位でデータが書き込まれ、複数のページからなるブロック単位でデータが消去されるように構成されている。
【００２１】
コントローラ１２は、ホスト機器（図示せぬ）からのデータ読み出し命令、書き込み命令、読み出し／書き込み対象のアドレス、書き込みデータ等を供給される。そして、これらの命令に応じた書き込み、読み出しをフラッシュメモリ１１に指示する。
【００２２】
フラッシュメモリ１１とコントローラ１２とは、フラッシュメモリ１１の設計に応じて定義されたインターフェースに則って相互に通信する。このインターフェース（以下、内部インターフェースと称する）は、フラッシュメモリ１１とコントローラ１２とが通信するのに必要な、ソフトウェア的およびハードウェア的な種々の要素を規定している。このようなインターフェースとして、あらゆるものを使用可能である。
【００２３】
内部インターフェースに規定されている内容として、例えば、コマンドの定義、アドレスの形式、コマンド、アドレス、データの授受用のバスの大きさおよびデータ形式、コマンド、アドレスデータ、データの取り込みタイミングおよび順序、チップイネーブル信号、レディー／ビジー信号等が含まれる。また、この内部インターフェースに従った信号を授受可能なように、各信号を入出力する端子等（どの端子でどの信号が入出力されるか）も、このインターフェースによって規定されている。
【００２４】
図１に示すように、内部インターフェースによって規定された信号が授受されるように、フラッシュメモリ１１の端子１３とコントローラ１２の端子１４とが電気的に接続されている。
【００２５】
以下、内部インターフェースとして、ある具体的なものを例に取り説明するが、以下に記載のインターフェースに限られない。
【００２６】
以下の説明で用いられる内部インターフェースに則った通信では、少なくとも、ライトイネーブル信号（評価装置のデータのサンプリングクロックとなる）、適当なビット数（例えば８ビット）のＩ／Ｏ信号が定義されている。そして、これらの信号のための経路、すなわちライトイネーブル信号線、Ｉ／Ｏ線が、フラッシュメモリ１１とコントローラ１２との間に形成されている。
【００２７】
ライトイネーブル信号線上でライトイネーブル信号ＷＥが授受される。ライトイネーブル信号は、クロック信号と同様の機能を有し、Ｉ／Ｏデータが取り込まれるタイミングを規定する。例えば、ライトイネーブル信号の立ち上がりまたは立ち下がり時のＩ／Ｏデータが、フラッシュメモリ１１に取り込まれる。
【００２８】
Ｉ／Ｏデータは、コマンド、アドレスデータ、データ等を含んでいる。例えば、コマンドの授受の場合、コマンドを構成する８ビットの各ビットが、Ｉ／Ｏ線を構成する８本の信号線上でパラレルに伝送される。
【００２９】
内部インターフェースには、例えば、コマンドラッチイネーブル信号線が含まれていても良い。コマンドラッチイネーブル信号ＣＬＥは、Ｉ／Ｏデータをコマンドとして取り込む動作を制御する。すなわち、コマンドラッチイネーブル信号ＣＬＥが有効（例えばハイレベル）の間に、ライトイネーブル信号の立ち上がり（または立ち下がり）時のＩ／Ｏデータがコマンドとして、フラッシュメモリ１１に取り込まれる。
【００３０】
ＮＡＮＤフラッシュメモリ１１は、また、記憶デバイス１の開発時に用いられる、検査および評価用の、ｎ個（ｎは２以上の自然数）の信号出力端子１１ａ乃至１１ｎを有する。信号出力端子１１ａ乃至１１ｎは、フラッシュメモリ１１に、内部インターフェースに則って供給されたライトイネーブル信号ＷＥ、Ｉ／ＯデータＩ／Ｏをそのまま出力する。ｎの数は、内部インターフェースのＩ／Ｏ線のビット数等に応じた値を取る。
【００３１】
アクセス頻度評価装置２は、例えばＦＰＧＡ（Field Programmable Gate Array）から構成される。その他、例えば、以下に記載する機能を実行可能なように設計されたメインプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、プログラム可能な論理回路、ディスクリートゲートまたはトランジスタ、ディスクリートハードウェア構成要素、の何れかまたはこれらのあらゆる組み合わせによって、実現または実行され得る。
【００３２】
アクセス頻度評価装置２は、入力インターフェース２１、消去シーケンス検出部２２、アドレスレジスタ２３、カウントメモリ２４、消去回数判定部２５、書き込みシーケンス検出部２６、書き込みデータメモリ２７、外部通信インターフェース２８を含んでいる。
【００３３】
入力インタ−フェース２１は、上記の内部インターフェースに則ってフラッシュメモリ１１に供給される信号を受け取り且つ認識可能なように、ソフトウェアおよびハードウェアによって構成されている。典型的には、フラッシュメモリ１１に設けられている内部インターフェースを実現するための構成の少なくとも一部と同じ構成を有する。
【００３４】
このインターフェース２１は、ハードウェアの構成としては、少なくとも、信号入力端子２１ａ乃至２１ｎを含んでいる。各信号入力端子２１ａ乃至２１ｎは、信号出力端子１１ａ乃至１１ｎから出力される信号を受け取ることができるように構成されている。記憶デバイス１を評価する際、信号出力端子１１ａ乃至１１ｎは、信号入力端子２１ａと２１ｎと、適当な配線によって電気的に接続される。
【００３５】
消去シーケンス検出部２２は、入力用インターフェース２１から、少なくともライトイネーブル信号、Ｉ／Ｏデータ、コマンドラッチイネーブル信号を供給される。以下、これらの信号を包括的に信号（入力信号）１０１と称する。消去シーケンス検出部２２は、Ｉ／Ｏデータを監視し、所定のコマンドおよびアドレスデータからなる所定のパターンを検出する。
【００３６】
より具体的には、消去シーケンス検出部２２は、例えば、ＩＯデータ中での図２、図３に示すような信号の流れを検出する。図２、図３は、本発明の実施形態に係る評価装置が検出する信号の流れを示している。図２に示すように、消去シーケンス検出部２２は、ページ選択コマンドとページ選択コマンドに続くアドレス信号の１つ以上の組に続く消去コマンドを検出する。
【００３７】
また、フラッシュメモリ１１は、複数のブロックを選択後にこれらのブロックを１つの消去コマンドで消去する動作をサポートし得る。このため、アドレスデータを供給された後に、続けてページ選択コマンドが発行されることがある。この場合、図３に示すように、ページ選択コマンドとページ選択コマンドに続くアドレス信号の２つ以上の組に続く消去コマンドが検出される。
【００３８】
図１に示すように、消去シーケンス検出部２２は、ページ選択コマンドを検出すると、これに続くアドレスのデータを格納する指示を示す信号１０２をアドレスレジスタ２３に供給する。さらに、消去コマンドを検出すると、検出信号１０３を出力する。
【００３９】
一方、Ｉ／Ｏデータ内のアドレスデータに続くコマンドが消去コマンドでない場合に、格納しているアドレスデータを破棄する旨の信号１０４を出力する。
【００４０】
アドレスレジスタ２３は、入力用インターフェース２１から、入力信号１０１を供給される。アドレスレジスタ２３は、消去シーケンス検出部２２から信号１０２を供給されると、Ｉ／Ｏデータ中のアドレスデータを一時的に格納する。また、信号１０３を供給されると、格納しているアドレスデータを含んだアドレスデータ信号１０５を出力する。また、信号１０４を供給されると、格納しているアドレスデータを破棄する。
【００４１】
カウントメモリ２４は、例えばＳＲＡＭ（Static Random Access Memory）等のメモリからなる。このメモリ上には、例えば図４に示すような形式で、フラッシュメモリ１１のブロック毎に、消去の対象となった回数が保存されている。より具体的には、カウントメモリ２４にアドレスデータ信号１０５が供給された際、このアドレスデータ信号１０５が示すアドレスにより特定されるブロックの消去回数を１増分し、増分された値を記憶する。
【００４２】
消去回数判定部２５は、カウントメモリ２４を常時監視して、予め設定された閾値を越えた回数、消去対象となったブロックを検出する。消去回数判定部２５は、閾値を越えた回数、消去対象となったブロックを特定するアドレスデータ信号１０６、および設定回数を越えて消去対象となったブロックが検出された旨の信号１０７を出力する。
【００４３】
書き込みシーケンス検出部２６は、入力信号１０１、アドレスデータ信号１０６を供給される。書き込みシーケンス検出部２６は、アドレスデータ信号１０６を供給されると、入力信号１０１の監視を開始する。書き込みシーケンス検出部２６は、アドレスデータ信号１０６により特定されるブロックに含まれる全てのページのアドレスに対する書き込みコマンドを検出する。そして、このような書き込みコマンドに続いて流れる書き込みデータを取り込む旨の信号１０８を出力する。
【００４４】
書き込みデータメモリ２７は、例えば、ＳＲＡＭ等から構成され、データ取り込み指示信号１０８を供給される。書き込みデータメモリ２７は、データ取り込み指示信号１０８を供給されると、この信号により指示される書き込みデータを保存するとともに、書き込みデータおよびこの書き込みデータを出力する指示を含んだデータおよびデータ出力指示信号１０９を出力する。
【００４５】
外部通信インターフェース２８は、検出信号１０３、アドレス信号１０５、データおよびデータ出力指示信号１０９を供給される。外部通信インターフェース２８は、検出信号１０３を供給されると、アクセス頻度評価装置２の外部との通信に向けて準備を開始する。そして、外部通信インターフェース２８は、アドレス信号１０５、データおよびデータ出力指示信号１０９を、アクセス頻度評価装置２とコンピュータシステム３とを通信可能に接続するＵＳＢ（Universal Serial Bus）、ＲＳ２３２Ｃ等の通信規格に従った形式へと変換する。また、コンピュータシステム３からの信号をアクセス頻度評価装置２が認識可能な形式に変換する。外部通信インターフェース２８は、例えば、市販のチップによって実現することができる。
【００４６】
外部通信インターフェース２８は、物理チップ４と電気的に接続されている。物理チップ４は、アクセス頻度評価装置２内または外部に設けられ、採用されたインターフェースに則った形式の端子等を含んでおり、例えば市販のチップにより実現される。
【００４７】
コンピュータシステム３は、ＵＳＢ、ＲＳ２３２Ｃ等のケーブルによって、アクセス頻度評価装置２と通信可能に接続されている。コンピュータシステム３は、アクセス頻度評価装置２からの出力データを処理、加工する。
【００４８】
次に、図１の構成のアクセス頻度評価装置の動作について、図１、図５を参照して説明する。図５は、本発明の実施形態に係るアクセス頻度評価装置の動作を示すフローチャートである。
【００４９】
図５に示すように、評価の開始に伴い、入力インターフェース２１は入力信号１０１を常に監視し、ページ選択コマンドを検出する（ステップＳ１）。すなわち、例えば、コマンドラッチイネーブル信号を監視しながらＩ／Ｏデータを監視してページ選択コマンドを認識する。ページ選択コマンドが検出されない限り、ステップＳ１が繰り返される。
【００５０】
ステップＳ１の条件が満たされた場合、消去シーケンス検出部２２は、アドレス格納指示信号１０２をアドレスレジスタ２３に供給する。アドレスレジスタ２３は、アドレス格納指示信号１０２を受けると、入力信号１０１に含まれるＩ／Ｏデータ中でページ選択コマンドに続くアドレスデータを格納する（ステップＳ２）。
【００５１】
なお、ページのアドレスのビット数が、Ｉ／Ｏ線のビット数を越えている場合、適当な数へと分割されたアドレスの一部の信号が、Ｉ／Ｏ線上でシリアルに供給される。例えば、上記のように、Ｉ／Ｏ線が８ビットであり、アドレスが２４ビットで構成されている場合、３分割された８ビットのアドレス信号の一部がシリアルに３回、Ｉ／Ｏ線上を流れる。
【００５２】
ページ選択コマンド後に流れたアドレスデータに対する処理を指定するコマンドを取得するために、評価装置２は、アドレスデータの格納後、再度、Ｉ／Ｏデータを監視する。
【００５３】
フラッシュメモリ１１が、複数のブロックの消去、読み出し等をサポートしている場合、アドレスデータを供給された後に、続けてページ選択コマンドが発行されることがある。消去シーケンス検出部２２は、アドレスデータを供給された後、再度ページ選択コマンドが発行された場合（ステップＳ３）、これに続くアドレス信号を格納する旨の信号１０２を再度、アドレスレジスタ２３に供給する。アドレスレジスタ２３は、この信号を受けて、２回目のページ選択コマンドに続くアドレス信号を格納する（ステップＳ４）。
【００５４】
なお、上記のように消去はブロック単位で行われ、消去対象のブロックの指定は、このブロックの先頭のページを特定することにより行われる。
【００５５】
この後、消去シーケンス検出部２２は、入力信号１０１を監視し、ステップＳ３、Ｓ４が繰り返され、ページ選択コマンドおよびアドレス信号が発行された場合は、アドレス信号が順次取り込まれる。
【００５６】
消去シーケンス検出部２２は、コマンドの監視を続行する（ステップＳ５）。消去コマンドでなかった場合、処理はステップＳ６に移行する。消去コマンド以外のコマンドとして、例えば、読み出しコマンド、ページコピーコマンド等があり得る。この場合、以前格納したアドレスは、消去対象のものではないので、消去対象のページの特定を要する本評価方法ではもはや不要である。したがって、ステップＳ６において、消去シーケンス検出部２２は、格納しているアドレスを破棄する旨のアドレス破棄指示信号１０４をアドレスレジスタ２３に供給する。アドレス信号２３は、アドレス破棄指示信号１０４を受けて、格納していたアドレスデータを消去する。
【００５７】
一方、ステップＳ５の判断の結果、消去コマンドであった場合、これは、ここまでに取り込まれたアドレスが消去の対象であることを意味する。したがって、消去シーケンス検出部２２は、アドレスデータに続いて消去コマンドが発行された場合、検出信号１０３をアドレスレジスタ２３および外部通信インターフェース２８に出力する。
【００５８】
アドレスレジスタ２３は、検出信号１０３を受けると、格納していたアドレスをアドレスデータ信号１０５としてカウントメモリ２４および外部通信インターフェース２８に出力する（ステップＳ７）。また、同時に、外部通信インターフェース２８は、検出信号１０３を受けると、続いて供給されたアドレスデータ信号１０５を、評価装置２とコンピュータシステム３との相互通信を可能にするインターフェースに則った形式の信号へと変換する。そして、変換された信号をインターフェースに則ってコンピュータシステム３に出力する。
【００５９】
コンピュータシステム３は、供給されたアドレスデータ信号を例えばブロックごとに集計して、例えばコンピュータと接続されたモニタ３１に表示する。図６は、アクセス頻度評価装置２からの出力の結果の表示例を示している。図６において、各ますは、ブロックに対応する。従って、ますの数は、フラッシュメモリ１１が有するブロックの数と一致する。図６の横軸はブロックの番号の十の位および百の位を示しており、縦軸はブロック番号の一の位を示している。
【００６０】
図６に示すように、各ブロックに対する消去の回数が表示される。これにより、消去処理の対象となったブロックの回数の分布が視覚的に理解され、どのブロックに消去が集中しているか、またはウェアレベリングが適切に行われているかが容易に判断される。
【００６１】
なお、図６では、各ブロックの消去対象の頻度をハッチングを用いて識別しているが、色の違いによって表現することももちろん可能である。
【００６２】
さらに、アクセス頻度を評価するのみである場合、図５のステップＳ７の後、処理はステップＳ１に戻り、消去対象のブロックの検出が続行される。そして、評価装置２の使用者の任意のタイミングで、評価が停止される。
【００６３】
一方、アクセス頻度評価装置２が、所定回数を越えた回数、消去対象となったブロックを自動で検出するように動作することも可能である。以下、これについて、引き続き図１、図５を用いて説明する。
【００６４】
ステップＳ７において、アドレスレジスタ２３は、消去対象となったページ（ブロック）のアドレスのアドレスデータ信号１０５をカウントメモリ２４に供給する。カウントメモリ２４は、アドレスデータ信号１０５を受けると、このアドレスデータ信号１０５により特定されるアドレスに対する回数を示すカウンタをインクリメントし、その値を保存する（ステップＳ１１）。
【００６５】
消去回数判定部２５は、カウントメモリ２４を常時監視している。そして、設定回数（閾値）を越える回数（または同数）、消去対象となったページ（ブロック）のアドレスを検出する（ステップＳ１２）。この設定回数は、例えば、コンピュータシステム３に評価装置２の使用者が入力した値が、外部通信インターフェース２８を介して消去回数判定部２５に供給されることにより、設定されることが可能である。
【００６６】
設定回数に達したアドレスが検出されなかった場合、処理はステップＳ１に戻る。
【００６７】
一方、設定回数に達したアドレスが検出された場合、処理はステップＳ１３に移行する。ステップＳ１３において、書き込みシーケンス検出部２６は、設定回数に達したアドレスにより特定されるブロックに含まれる全ページ（取り込み対象ページ）に対する書き込みコマンドおよび書き込みデータを検出する。
【００６８】
書き込みシーケンス検出部２６は、取り込み対象ページへの書き込みコマンドを検出すると、このページへの書き込みデータを取り込む旨の信号１０８を、書き込みデータメモリ２７に供給する。この信号を受けて、書き込みデータメモリ２７は、書き込みデータを格納するとともに、格納された書き込みデータとこの書き込みデータをアクセス頻度評価装置２の外部に出力することを指示する旨の信号１０９を外部通信インターフェース２８に供給する（ステップＳ１４）。
【００６９】
外部通信インターフェース２８は、データおよびデータ出力指示信号１０９を受けると、書き込みデータの形式等を、外部通信のインターフェース２８に則った信号形式に変換した上で、コンピュータシステム３に出力する。
【００７０】
この後、コンピュータシステム３は、供給された書き込みデータを解析し、どのような内容のデータ（実データ、制御データ）が、どのブロックに集中して書き込まれているか等を解析できる。また、この解析の結果に基づいて、コントローラ１１のソフトウェア（ファームウェア）のデバッグを行うことができる。
【００７１】
また、消去回数判定部２５は、設定回数を越えて消去対象とされたブロックが検出された時点で、検出信号１０７を出力しても良い。検出信号１０７は、例えばコンピュータシステム３に供給され、コンピュータシステム３がこの信号を受けて記憶デバイス１のコントローラ１２の動作を停止させるようにすることもできる。このとき、フラッシュメモリ１１とコントローラ１２との間の信号をロジックアナライザに逐次取り込んでおけば、設定回数を越えて消去対象とされたブロックが検出された時点前後の、フラッシュメモリ１１とコントローラ１２との間の信号の様子を解析できる。この結果、コントローラ１２のソフトウェア（ファームウェア）の不具合の解析をしやすくなる。
【００７２】
次に、上記構成の評価装置および評価方法によって得られた実験データについて説明する。図７、図８は、本発明の実施形態に係る評価装置を用いて得られたフラッシュメモリの評価実験の結果を示している。実験対象は、容量が１ＧＢのフラッシュメモリを有するメモリカードである。実験は、Microsoft Windows（登録商標） XP上で９５０ＭＢのファイルを１０回コピーする最中に行われたブロック消去の頻度を評価するとにより行われた。
【００７３】
図７において、横軸が消去対象の回数で、縦軸が消去対象となったブロックの数である。図７に示す消去制御では、全ブロックがほぼ同じ回数、消去対象となっていることが分かる。すなわち、９．６回の消去に対して、約１．５回程度で収まっていることが分かる。このことから、平均的にブロックが使用されていることが分かる。
【００７４】
一方、図８は、消去が特定のブロックに集中するように故意に制御した場合の評価結果を示している。図８に示すように、多くのブロックが、ほぼ均一な回数（８乃至１１回）、消去されているのに対して、一部のブロックであるが、平均の回数を大きく越えて消去されていることが分かる。
【００７５】
図７、図８に示すデータは、データの書き込み時間と同等の時間で、すなわち、記憶デバイスの動作に対してリアルタイムに得られた。すなわち、処理を要するデータの量が少ないので、高速に評価ができたことが確認された。
【００７６】
本発明の実施形態に係る評価装置によれば、フラッシュメモリコントローラからフラッシュメモリに供給される種々のデータのうちで、フラッシュメモリに対するアクセス頻度を評価するのに最小限の必要なコマンドおよびアドレスデータが抽出される。このため、短時間で、小規模な装置で、安価に、アクセス頻度を評価できる。
【００７７】
その他、本発明の思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の範囲に属するものと了解される。
【図面の簡単な説明】
【００７８】
【図１】本発明の実施形態に係るアクセス頻度評価装置を示す機能ブロック図。
【図２】本発明の実施形態に係る評価装置が検出する信号の流れを示す図。
【図３】本発明の実施形態に係る評価装置が検出する信号の流れを示す図。
【図４】カウントメモリ上で記憶されるデータの例を示す図。
【図５】本発明の実施形態に係るアクセス頻度評価装置の動作を示すフローチャート。
【図６】本発明の実施形態に係るアクセス頻度評価装置からの出力の結果の表示例を示す図。
【図７】本発明の実施形態に係る評価装置を用いて得られたフラッシュメモリの評価実験の結果を示す図。
【図８】本発明の実施形態に係る評価装置を用いて得られたフラッシュメモリの評価実験の結果を示す図。
【符号の説明】
【００７９】
１…記憶デバイス、２…アクセス頻度評価装置、３…コンピュータ、４…物理チップ、１１…ＮＡＮＤ型フラッシュメモリ、１２…フラッシュメモリコントローラ、２１…入力インターフェース、２２…消去シーケンス検出部、２３…アドレスレジスタ、２４…カウントメモリ、２５…消去回数判定部、２６…書き込みシーケンス検出部、２７…書き込みデータメモリ、２８…外部通信インターフェース。
【図１】
2007328620.tif 000003
【図２】
2007328620.tif 000004
【図３】
2007328620.tif 000005
【図４】
2007328620.tif 000006
【図５】
2007328620.tif 000007
【図６】
2007328620.tif 000008
【図７】
2007328620.tif 000009
【図８】
2007328620.tif 000010