JP2007328620A - アクセス頻度評価装置およびアクセス頻度評価方法 - Google Patents

アクセス頻度評価装置およびアクセス頻度評価方法 Download PDF

Info

Publication number
JP2007328620A
JP2007328620A JP2006160082A JP2006160082A JP2007328620A JP 2007328620 A JP2007328620 A JP 2007328620A JP 2006160082 A JP2006160082 A JP 2006160082A JP 2006160082 A JP2006160082 A JP 2006160082A JP 2007328620 A JP2007328620 A JP 2007328620A
Authority
JP
Japan
Prior art keywords
data
address data
signal
block
access frequency
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
Application number
JP2006160082A
Other languages
English (en)
Inventor
Takanari Suda
隆也 須田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toshiba Corp
Original Assignee
Toshiba Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Toshiba Corp filed Critical Toshiba Corp
Priority to JP2006160082A priority Critical patent/JP2007328620A/ja
Priority to US11/757,053 priority patent/US7707353B2/en
Publication of JP2007328620A publication Critical patent/JP2007328620A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3485Performance evaluation by tracing or monitoring for I/O devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1032Reliability improvement, data loss prevention, degraded operation etc
    • G06F2212/1036Life time enhancement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/72Details relating to flash memory management
    • G06F2212/7211Wear leveling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Memory System (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

【課題】 フラッシュメモリの所定領域に対するアクセス頻度の評価装置を提供する。
【解決手段】 ページ、ブロック単位で書き込み、消去がそれぞれ行われるフラッシュメモリと、フラッシュメモリを制御するコントローラと、を具備する記憶デバイスへのアクセス頻度を評価する評価装置。インターフェース21は、フラッシュメモリとコントローラとの間で授受される内部信号の少なくとも一部を供給され且つ認識可能に構成され、内部信号の少なくとも一部を入力信号として出力する。消去シーケンス検出部22は、入力信号中のアドレスデータとアドレスデータにより特定されるブロックに対する消去コマンドとが連続した際に検出信号を出力する。アドレス保持部23は、入力信号中のアドレスデータを供給された際にアドレスデータを保持し、検出信号を供給された際に保持しているアドレスデータを出力する。
【選択図】 図1

Description

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

Claims (5)

  1. ページ単位でデータを書き込まれ且つ複数の前記ページからなるブロック単位でデータを消去されるフラッシュメモリと、前記フラッシュメモリを制御するコントローラと、を具備する記憶デバイスへのアクセス頻度を評価するアクセス頻度評価装置であって、
    前記フラッシュメモリと前記コントローラとの間で授受される内部信号の少なくとも一部を供給され且つ前記内部信号の少なくとも一部を認識可能に構成され、前記内部信号の少なくとも一部を入力信号として出力するインターフェースと、
    前記入力信号においてアドレスデータと前記アドレスデータにより特定される前記ブロック内のデータを消去することを命ずる消去コマンドとが連続した際に検出信号を出力する消去シーケンス検出部と、
    前記入力信号中の前記アドレスデータを供給された際に前記アドレスデータを保持し、前記検出信号を供給された際に保持している前記アドレスデータを消去アドレスデータとして出力する、アドレス保持部と、
    を具備することを特徴とするアクセス頻度評価装置。
  2. 前記消去アドレスデータを供給され、前記消去アドレスデータを供給された回数を前記ブロックごとに記憶するカウントメモリと、
    前記カウントメモリを監視し、前記消去アドレスデータを供給された回数が閾値に達した前記ブロックを検出した際に検出された前記ブロックを特定する検出アドレスデータを出力する判定部と、
    前記検出アドレスデータを供給され、前記検出アドレスデータにより特定される前記ブロック内に含まれる複数の前記ページのそれぞれに対する書き込みコマンドを検出した際にデータ取り込み指示信号を出力する書き込みシーケンス検出部と、
    データ取り込み指示信号を供給された際に、前記書き込みシーケンス検出部によって検出された前記書き込みコマンドに続く書き込みデータを取り込み且つ出力する、書き込みデータメモリと、
    をさらに具備することを特徴とする請求項1に記載のアクセス頻度評価装置。
  3. 前記判定部が、前記消去アドレスデータを供給された回数が閾値に達した前記ブロックを検出した際に検出した旨の信号を出力することを特徴とする請求項2に記載のアクセス頻度評価装置。
  4. ページ単位でデータを書き込まれ且つ複数の前記ページからなるブロック単位でデータを消去されるフラッシュメモリと、前記フラッシュメモリを制御するコントローラと、を具備する記憶デバイスへのアクセス頻度を評価するアクセス頻度評価方法であって、
    前記フラッシュメモリと前記コントローラとの間で授受される内部信号中のアドレスデータを保持する工程と、
    前記内部信号中で、前記アドレスデータと前記アドレスデータにより特定される前記ブロック内のデータを消去することを命ずる消去コマンドとが連続した検出事象を検出する工程と、
    前記検出事象を検出した際に保持されている前記アドレスデータを消去アドレスデータとして出力する工程と、
    を具備することを特徴とするアクセス頻度評価方法。
  5. 前記消去アドレスデータが出力された回数を前記ブロックごとに記憶する工程と、
    前記消去アドレスデータが出力された回数が閾値に達した前記ブロックである検出ブロックを検出する工程と、
    前記検出ブロック内に含まれる複数の前記ページのそれぞれに対する書き込みコマンドを検出した際に、前記書き込みコマンドに続く書き込みデータを取り込み且つ出力する工程と、
    をさらに具備することを特徴とする請求項4に記載のアクセス頻度評価装置。
JP2006160082A 2006-06-08 2006-06-08 アクセス頻度評価装置およびアクセス頻度評価方法 Pending JP2007328620A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006160082A JP2007328620A (ja) 2006-06-08 2006-06-08 アクセス頻度評価装置およびアクセス頻度評価方法
US11/757,053 US7707353B2 (en) 2006-06-08 2007-06-01 Access frequency estimation apparatus and access frequency estimation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006160082A JP2007328620A (ja) 2006-06-08 2006-06-08 アクセス頻度評価装置およびアクセス頻度評価方法

Publications (1)

Publication Number Publication Date
JP2007328620A true JP2007328620A (ja) 2007-12-20

Family

ID=38878208

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006160082A Pending JP2007328620A (ja) 2006-06-08 2006-06-08 アクセス頻度評価装置およびアクセス頻度評価方法

Country Status (2)

Country Link
US (1) US7707353B2 (ja)
JP (1) JP2007328620A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9372790B2 (en) 2012-07-31 2016-06-21 Samsung Electronics Co., Ltd. Nonvolatile memory device having wear-leveling control and method of operating the same

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8356153B2 (en) 2010-11-19 2013-01-15 International Business Machines Corporation Adaptive wear leveling via monitoring the properties of memory reference stream
US9501392B1 (en) * 2011-05-12 2016-11-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Management of a non-volatile memory module
CN110866291B (zh) * 2019-11-15 2023-03-24 北京工业大学 一种基于双重安全机制的废旧电子产品信息清除方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0652694A (ja) 1992-07-30 1994-02-25 Hitachi Ltd フラッシュメモリの寿命検出方式
JP3215237B2 (ja) * 1993-10-01 2001-10-02 富士通株式会社 記憶装置および記憶装置の書き込み/消去方法
JPH08124393A (ja) * 1994-10-20 1996-05-17 Fujitsu Ltd データ消去回数に制限のあるメモリの制御方法及びこの方法を用いた装置
US6831865B2 (en) * 2002-10-28 2004-12-14 Sandisk Corporation Maintaining erase counts in non-volatile storage systems
JP4256175B2 (ja) * 2003-02-04 2009-04-22 株式会社東芝 不揮発性半導体メモリ
US20070208904A1 (en) * 2006-03-03 2007-09-06 Wu-Han Hsieh Wear leveling method and apparatus for nonvolatile memory
US7467253B2 (en) * 2006-04-13 2008-12-16 Sandisk Corporation Cycle count storage systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9372790B2 (en) 2012-07-31 2016-06-21 Samsung Electronics Co., Ltd. Nonvolatile memory device having wear-leveling control and method of operating the same

Also Published As

Publication number Publication date
US20080005452A1 (en) 2008-01-03
US7707353B2 (en) 2010-04-27

Similar Documents

Publication Publication Date Title
JP2008090778A (ja) 不揮発性メモリ用メモリコントローラ、不揮発性記憶装置、不揮発性記憶システム、不揮発性メモリのメモリ制御方法
JP2012523599A (ja) 有限の耐久性および/または持続性を有するメモリ装置からのモニタ・データの情報を分析する方法およびシステム
TW201601062A (zh) 快閃記憶體控制裝置、快閃記憶體控制系統以及快閃記憶體控制方法
CN110459259A (zh) 存储设备写错误纠错能力的测试方法、***及存储介质
US9858366B2 (en) Simulator and simulating method for flash memory background
TWI534607B (zh) 記憶體控制電路單元、記憶體儲存裝置與資料傳輸方法
US20130111268A1 (en) Testing device capable of simulating plugging and unplugging operations and method thereof
CN113778822A (zh) 纠错能力测试方法、装置、可读存储介质及电子设备
JP2007328620A (ja) アクセス頻度評価装置およびアクセス頻度評価方法
KR102384962B1 (ko) 반도체 메모리 장치
CN113129939B (zh) 具有温度缓解机制的设备及其操作方法
CN111028881B (zh) 一种Open Block测试装置、方法及***
CN112346918A (zh) 芯片验证中辅助波形debug的方法及应用
US20200302027A1 (en) Simulation method and simulation device for semiconductor storage device
US8225028B2 (en) Memory devices and methods for programming flash memory utilizing spare blocks
CN109686397B (zh) 具有自检功能的存储器及其检测方法
Oh Reverse engineering flash memory for fun and benefit
JP4359327B2 (ja) 半導体集積回路装置、icカードおよび検査装置
US20130117610A1 (en) Emulator verification system, emulator verification method
CN114356218A (zh) Flash存储器的数据纠错方法、设备以及介质
CN115114193A (zh) 存储器***、存储器***的控制方法及主机装置
CN102411527B (zh) 一种图像处理芯片的检测方法、开发板和检测***
CN109491870A (zh) 一种传感器的接入状态的检测方法及装置
JP2010205167A (ja) 不揮発性メモリ、その制御方法及びプログラム
TWI585769B (zh) 資料儲存裝置以及快閃記憶體之偵測方法