(57)【特許請求の範囲】
【請求項１】
外部からのアクセス指示に従って複数の物理ブロックからなる不揮発性メモリにデータを書き込むメモリーコントローラであって、
外部からのデータを前記不揮発性メモリに書き込む制御を行う読み書き制御部と、
前記データの書き込み閾値時間の情報を格納する閾値テーブルと、
前記複数の物理ブロックのうち、書き込み時間の遅い物理ブロックを記憶するレイトブロックテーブルとを有し、
前記レイトブロックテーブルに格納する物理ブロックは前記閾値テーブルに保持されている情報に基づいて登録し、
前記読み書き制御部は、外部からのデータを前記レイトブロックテーブルに記憶されていない前記不揮発性メモリの物理ブロックに書き込む制御を行う、メモリーコントローラ。
【請求項２】
前記閾値テーブルはさらに前記データの消去閾値時間の情報を格納し、
前記レイトブロックテーブルは、前記複数の物理ブロックのうち、消去時間の遅い物理ブロックをさらに記憶する請求項１記載のメモリーコントローラ。
【請求項３】
前記レイトブロックテーブルに格納する物理ブロックは、予め前記不揮発性メモリの前記複数の物理ブロックに対して書き込みもしくは消去に要する時間の計測試験を行い、前記閾値テーブルに格納されている情報に対して、書き込み閾値時間または消去閾値時間よりも長い時間の物理ブロックを前記レイトブロックテーブルに格納する請求項２に記載のメモリーコントローラ。
【請求項４】
外部からのデータの種別を分類する書き込みデータ判定部を更に備え、
前記書き込みデータ判定部によって、速度保証の必要がないデータと判定されたデータを、前記レイトブロックテーブルに記憶されている前記不揮発性メモリの物理ブロックに書き込むことを特徴とする請求項１から３のいずれか１項に記載のメモリーコントローラ。
【請求項５】
複数の物理ブロックからなる不揮発性メモリと、
請求項１から４のいずれか１項に記載のメモリーコントローラとを有する不揮発性記憶装置。
【請求項６】
更に外部からアクセスできないシステム情報を前記レイトブロックテーブルに記憶されている前記不揮発性メモリの物理ブロックに書き込むことを特徴とする請求項５に記載の不揮発性記憶装置。
【請求項７】
複数の物理ブロックからなる不揮発性メモリと請求項１に記載のメモリーコントローラとを備える不揮発性記憶装置と、
外部から前記不揮発性記憶装置に対してアクセス指示を行うホスト機器と、
を有する不揮発性メモリシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体メモリを使用した不揮発性記憶装置およびその書き換え方法に関する。
【背景技術】
【０００２】
音楽データや映像データを取り扱う携帯機器、例えばデジタルスチルカメラや携帯電話の記憶装置として、データの書き換えが可能で、携帯性が高く、電池等によるバックアップが不要であるフラッシュメモリ等の不揮発性メモリを備えた記憶装置が使用されている。近年、携帯機器の高機能化に伴い今まで静止画中心であった映像データの記録が動画記録へと、また動画記録でもより高画質の動画記録へとその要求仕様が変化している。
【０００３】
動画記録において、記憶装置の残り容量がまだあるにもかかわらず動画の記録が途中で停止しまうことはあってはならない。安定した動画記録のために不揮発性記憶装置に求められる仕様は最高速度の保証ではなく、最低速度の保証である。いくら最高速度が速くとも、最低速度が遅ければ動画記録を停止せざるを得ない。
【０００４】
これに対して、特許文献１に記載の発明は、予め記録媒体の転送速度を検出し、これにより動画の記録を禁止したり、動画のデータ転送速度を低減したりし、装置の異常停止を防止するものである。
【０００５】
一方、現在最も多く使用されている不揮発性記憶装置のデバイスであるＮＡＮＤ型フラッシュメモリの書き込みに要する時間のＭａｘ値（最大値）は、Ｔｙｐｉｃａｌ値（代表値）に比べて２倍以上も長い。例えば、サムスン電子製のＮＡＮＤ型フラッシュメモリであるＫ９Ｆ１２０８Ｕ０Ａ（128M x 8 Bit / 64M x 16 Bit NAND Flash Memory）のＲｅｖ．１．０のデータシートの１３ページにはプログラム時間（Ｐｒｏｇｒａｍ  Ｔｉｍｅ、以下、書き込みビジー時間と記す）のＴｙｐｉｃａｌ値３００μｓに対してＭａｘ値７００μｓとなっている。そのために平均的に発揮できる書き込み速度（３００μｓ）の性能の半分以下（７００μｓ）の値でしか最低速度の保証をすることができない。
【０００６】
図１０にデバイス初期におけるＮＡＮＤ型フラッシュメモリの各物理ブロックへの書き込みビジー時間の分布の一例を示す。また、図１１に図１０と同一デバイスでの耐久性試験後（例えば、１０万回書き換え後）の各物理ブロックの書き込みビジー時間の分布を示す。ここで、このデバイスの仕様書におけるＴｙｐｉｃａｌ値を２００μｓ、Ｍａｘ値を５００μｓとする。
【０００７】
図１０から分かるように書き込みビジー時間の平均は１６０〜２００μｓ程度、最大のところでも２４０μｓまでであり、仕様の最大値である５００μｓに対して十分にマージンがあることがわかる。ところが、図１１にあるように１０万回書き換え後では全体的に書き込みビジー時間が長くなるほうにシフトして、平均して２００〜２４０μｓ、最大値では４８０μｓと仕様の最大値である５００μｓに対してマージンがなくなっている。このように分布から外れて一部のブロックの書き込み時間が長くなるために、最低速度の保証はＴｙｐｉｃａｌ値の半分以下になる。
【特許文献１】特開平１０−２３３９８６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上記の様に不揮発性記憶装置の書き込みにおいてその最低速度の保証は、ＮＡＮＤ型フラッシュメモリの特性値に依存し、そのために平均的な性能の半分以下の値でしか最低速度の保証ができないという課題が存在していた。
【０００９】
本発明は、上記従来の問題点を解決するためのもので、各物理ブロックの書き換え時間を管理して、書き込み先物理ブロックの選択をホスト機器が書き込みを行うデータの種別を判別することにより分別して最低速度の保証値を向上する。ここで言うホスト機器が書き込みを行うデータの種別の判別とは、ホスト機器が高速書き込みを期待しているデータか高速な書き込みを期待しないデータかの判別である。そうして、より高画質な動画の記録を可能にしユーザの利便性を向上させる不揮発性記憶装置及びその書き換え方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
この目的を達成するために本発明のメモリーコントローラは、外部からのアクセス指示に従って複数の物理ブロックからなる不揮発性メモリにデータを書き込むメモリーコントローラであって、外部からのデータを前記不揮発性メモリに書き込む制御を行う読み書き制御部と、前記データの書き込み閾値時間の情報を格納する閾値テーブルと、前記複数の物理ブロックのうち、書き込み時間の遅い物理ブロックを記憶するレイトブロックテーブルとを有し、前記レイトブロックテーブルに格納する物理ブロックは前記閾値テーブルに保持されている情報に基づいて登録し、前記読み書き制御部は、外部からのデータを前記レイトブロックテーブルに記憶されていない前記不揮発性メモリの物理ブロックに書き込む制御を行う構成を有している。
【発明の効果】
【００１１】
本発明によれば、各物理ブロックの書き換え・消去時間を管理して、速度を保証する必要のあるデータに対してより高速な速度の保証を行うことができ、より高画質な動画の記録を保証することができるという効果が得られる。
【発明を実施するための最良の形態】
【００１２】
本発明に係る第１の発明は、独立してデータの書き込み消去を行うことができる物理ブロックを複数有する不揮発性メモリと、前記物理ブロックのうち書き込み処理にかかる時間の長い前記物理ブロックのアドレスを記憶するためのレイトブロックテーブルと、前記レイトブロックテーブルへの登録の有無を判断するための書き込み時間の閾値情報を記憶するための閾値テーブルと、前記レイトブロックテーブルと前記閾値テーブルとを含み前記不揮発性メモリを制御するためのコントローラとを備えたものである。
【００１３】
また、第２の発明は、第１の発明において、全ての前記物理ブロックについて、書き込み処理にかかる時間を測定した結果が前記レイトブロックテーブルに記憶されていることを特徴とするものである。
【００１４】
また、第３の発明は、第１の発明において、処理時間の長さを測定するためのカウンタを前記コントローラに備えたことを特徴とするものである。
【００１５】
これらの発明により、物理ブロック単位で、書き込み時間の特性を認知可能となる。
【００１６】
また、第４の発明は、独立してデータの書き込み消去を行うことができる物理ブロックを複数有する不揮発性メモリと、前記物理ブロックのうち書き込み処理にかかる時間の長い前記物理ブロックのアドレスが記憶されているレイトブロックテーブルと、前記レイトブロックテーブルを含み前記不揮発性メモリを制御するためのコントローラとを備え、前記コントローラは、データの種別に従い、書き込み先となる前記物理ブロックを、前記レイトブロックテーブルに登録されている前記物理ブロックか前記登録されていない前記物理ブロックかを決定するものである。これにより、データの種別に基づき、適切な物理ブロックを選択可能となる。
【００１７】
また、第５の発明は、独立してデータの書き込み消去を行うことができる物理ブロックを複数有する不揮発性メモリと、前記物理ブロックのうち書き込み処理にかかる時間の長い前記物理ブロックのアドレスを記憶するための書き換え可能なレイトブロックテーブルと、前記レイトブロックテーブルへの登録の有無を判断するための書き込み時間の閾値情報を記憶するための閾値テーブルと、処理時間の長さを測定するためのカウンタと、前記レイトブロックテーブルと前記閾値テーブルと前記カウンタとを含み前記不揮発性メモリを制御するためのコントローラとを備え、前記コントローラは、前記物理ブロックに対する書き込み処理における処理時間を前記カウンタで測定し、その結果前記閾値テーブルよりも書き込み時間が長い前記物理ブロックを新たに前記書き換え可能なレイトブロックテーブルに記憶するものである。これにより、書き込み時間が長い物理ブロックを適宜更新することが可能となる。
【００１８】
以下、本発明の実施の形態について、図面を用いて説明する。
【００１９】
（実施の形態１）
図１は、本発明の実施の形態１による不揮発性記憶装置としてのメモリーカード内部の構成を示すブロック図である。
【００２０】
図１において、１０１はメモリーカード、１０２はコントローラ、１１１はフラッシュメモリであり、コントローラ１０２とフラッシュメモリ１１１が搭載されメモリーカード１０１となる。１０３はコントローラ１０２内部でメモリーカード１０１の制御を行うＭＣＵ（マイクロコントローラ・ユニット）、１０４はメモリーカード１０１の外部にあるホスト機器（図示せず）とのインターフェースを行うホストインターフェースである。１０５はメモリーカード１０１内部にあるフラッシュメモリ１１１とのインターフェースを行うフラッシュインターフェースで、フラッシュメモリ１１１への一方向出力である制御線と双方向のデータ線とフラッシュメモリからの一方向入力であるビジー線を用いてフラッシュメモリ１１１の制御を行う。
【００２１】
１０６はホストインターフェース１０４とフラッシュインターフェース１０５の間にあり、外部のホスト機器からの書き込みデータをメモリーカード１０１のフラッシュメモリ１１１に書き込む時、または外部ホスト機器への読み出しデータをメモリーカード１０１のフラッシュメモリ１１１から読み出す時に使用される、バッファＲＡＭである。
【００２２】
１０７はＭＣＵ１０３をはじめとしてコントローラ１０２内部の回路動作させるためのクロックを生成するＶＣＯである。
１０８はフラッシュメモリの書き込み・消去に要する時間を測定するために用いるカウンタで、フラッシュインターフェース１０５からリセットスタートやカウンタ値読み出し等の制御が行える。１０９はカウンタ１０８で計測したフラッシュメモリ１１１の書き込み・消去に要する時間と比較を行う閾値時間を格納する閾値テーブルである。１１０はメモリーカード１０１内にある物理ブロックのうち、書き込み・消去時間の遅いブロックとその時間を記憶するためのレイトブロックテーブルである。
【００２３】
外部ホスト機器が書き込みを行う時には、データはホストインターフェース１０４を通じてバッファＲＡＭ１０６へと転送される。その後ＭＣＵ１０３の制御により、バッファＲＡＭ１０６のデータはフラッシュインターフェース１０５を通じてフラッシュメモリ１１１へと転送される。外部ホスト機器が読み出しを行う時には、ＭＣＵ１０３の制御によりフラッシュメモリ１１１からフラッシュインターフェース１０５を通じてバッファＲＡＭ１０６にデータは転送される。その後ホストインターフェース１０４を通じて外部ホスト機器へデータが読み出される。
【００２４】
図２は、フラッシュメモリ１１１の内部構成を示すブロック図である。図２に示すようにフラッシュメモリ１１１はＰＢ０〜１０２３の番号が振られた複数（この例では１０２４個）の物理ブロックから構成される。１つの物理ブロックの容量は１２８ｋＢであり、フラッシュメモリ１１１の容量は従って１２８ＭＢとなる。
【００２５】
図３はメモリーカード１０１を外部ホスト機器から使用する時の論理マップである。１つのアドレスで１２８ｋＢ単位のデータに対応する。アドレス０〜９５９までは通常領域である。つまり通常領域の容量は、９６０×１２８ｋＢ＝１２０ＭＢである。通常領域とは、ホスト機器が通常データを書き込む領域であり、例えば、ホスト機器が動画記録を行う際にその動画データが書き込まれるために速度を保証した書き込みを行うことが要求される領域である。
【００２６】
アドレス９６０〜９７５がシステム領域である。システム領域とは、外部ホスト機器からアクセスできないメモリーカード１０１の固有の特性値や、著作権保護を実現するための鍵情報や、メモリーカード１０１の拡張機能に関する情報が書き込まれた領域であり、その領域に対してはアクセスする事が許された特殊な外部ホスト機器のみがアクセスできる。ここで言うシステム領域とは、書き込み時間の最低速度を保証する必要が必ずしもない領域である。
【００２７】
通常領域とシステム領域を合わせて、論理マップ上で有効な容量は１２２ＭＢであり、図２で示されたフラッシュメモリ１１１の容量である１２８ＭＢに比べて少ない。フラッシュメモリ１１１の仕様書には、全物理ブロックの内に有効に使用できるブロックの最小値が記載されている。例えば、サムスン電子製のフラッシュメモリ、Ｋ９Ｆ１Ｇ０８Ｕ０Ｍの仕様書Ｒｅｖ．１．０の１２ページには、全物理ブロックの１０２４ブロックのうち１００４ブロックまでを有効に使用できるブロックの最小値と規定されている。従ってフラッシュメモリ１１１の有効容量の最低値は、１００４×１２８ｋＢ＝１２５．５ＭＢである。つまりフラッシュメモリ１１１の制御を行うコントローラ１０２はフラッシュメモリ１１１の有効な容量が１２５．５ＭＢであっても正しく動作させる必要がある。このフラッシュメモリ１１１の有効最低容量１２５．５ＭＢと論理マップ上の有効な容量１２２ＭＢの差３．５ＭＢはフラッシュメモリ１１１にデータを書き込む際のワーク領域として使用する。
【００２８】
図４はレイトブロックテーブル１１０のメモリマップである。アドレスの２ワード分で物理ブロックのアドレスと、その物理ブロックに対する書き込み・消去時間の一組の情報を記憶しており、アドレス０〜３９までは書き込みが遅いブロックを登録する領域であり、書き込み時間が長いブロックを２０物理ブロックまで登録できる。アドレス４０〜５９までは消去が遅いブロックを登録する領域であり、消去時間が長いブロックを１０物理ブロックまで登録できる。この書き込みが遅いブロックと消去が遅いブロックの比率はフラッシュメモリ１１１の特性に応じて、最適な値に設定すればよい。本実施の形態の設定では書き込みが遅いブロックがと消去が遅いブロックの比率が２：１で発生することを想定してレイトブロックテーブル１１０の割り当てを行っている。
【００２９】
図５は検査を実施するホスト機器（以下、検査ホストと称す）がメモリーカード１０１を検査するための検査処理を示すフローチャートである。
【００３０】
検査のフローチャートでは、検査ホストがメモリーカード１０１を制御して検査を行い、メモリーカード１０１の書き込み・消去速度に関するランク付けを行い、メモリーカード１０１は、メモリーカード１０１自身が保証することができる書き込み・消去速度を記憶することになる。
【００３１】
まず、最初にステップ５０１で検査ホストは閾値時間となる書き込み閾値時間と消去閾値時間とをメモリーカード１０１に転送する。ＭＣＵ１０３はこの閾値時間を閾値テーブル１０９に格納する。具体的な例として、書き込み閾値時間２５０μｓと消去閾値時間２２００μｓを設定する。
【００３２】
次にステップ５０２で検査ホストはメモリーカード１０１に時間測定検査実施を指示する。これを受けてメモリーカード１０１のＭＣＵ１０３は時間測定検査を開始する。
【００３３】
時間測定検査の詳細については図６に示してあり、後ほど図６、７、８を用いて説明するが、図６で示した処理を終えることにより、ステップ５０２が完了した時には、レイトブロックテーブル１１０には書き込み時間の長い物理ブロックの情報と、消去時間の長い物理ブロックの情報が格納されている。ここで図１０に示すような書き込み時間の分布を持つフラッシュメモリの場合、書き込み閾値時間２５０μｓを超える物理ブロックがないので書き込みが遅いブロックを登録する領域には何も登録されない。
【００３４】
次にステップ５０３で検査ホストはメモリーカード１０１から速度レポートを取得する。検査ホストからのカードレポート取得コマンドに対して、ＭＣＵ１０３はレイトブロックテーブル１１０に登録されている情報をホスト機器に送信する。図１０に示すような特性を有するフラッシュメモリの場合は、書き込みが遅いブロックとして何も登録されていないという情報が送信される。
【００３５】
次にステップ５０４で検査ホストはステップ５０３で取得した速度レポートに基づいてメモリーカード１０１が保証できうるカードランクを決定する。図１０に示すようなフラッシュメモリの場合は、ステップ５０１で設定した閾値時間２５０μｓに例えばマージンの４０μｓを足した２９０μｓが書き込み時間のカードランクとして決定される。
【００３６】
ここでのカードランクとは、書き込み時間として保証できる最大値のことであり、２９０μｓのカードランクということはこのカードは書き込み時間が２９０μｓ以下であることを保証するものである。ここで仮に、レイトブロックテーブル１１０に書き込み時間の長い物理ブロックの情報が登録されており、その書き込み時間が２８０μｓであればマージンの５０μｓを足した３３０μｓが書き込み時間のカードランクとして決定される。ここではカードランクを書き込み時間で表したが、メモリーカードの書き込み速度を表現できるものであれば他のもの、例えば書き込み時間を予め決めておいた級に分類して、その級をランクとしても実現できる。
【００３７】
最後にステップ５０５で検査ホストは、メモリーカード１０１にランクを設定する。ＭＣＵ１０３はメモリーカード１０１のランクを記憶するとともに、対応する閾値時間を閾値テーブル１０９に格納する。
【００３８】
このようにして得られたメモリーカード１０１のランクや閾値時間は、メモリーカード１０１への電源が切られても記憶できるようにフラッシュメモリ１１１を含むメモリーカード１０１内部の不揮発性記憶領域に格納する。
【００３９】
図６、７、８は時間測定検査の詳細であり、図６はＭＣＵ１０３がメモリーカード１０１のフラッシュメモリ１１１の各物理ブロックにおける書き込み消去時間を測定するためのフローチャート、図７はフラッシュメモリ１１１に対して消去を実行する際のタイミングチャート、図８はフラッシュメモリ１１１に対して書き込みを実行する際のタイミングチャートである。
【００４０】
時間測定検査では、まずステップ６０１でＭＣＵ１０３は時間測定検査の対象となる物理ブロックのアドレスを０に設定する。次にステップ６０２でＭＣＵ１０３はカウンタ１０８をリセットする。このタイミングは図７における時刻ｔｅ１に対応する。次にステップ６０３でフラッシュメモリ１１１の当該物理ブロックに対して消去コマンドを発行する。このタイミングは図７における時刻ｔｅ１〜ｔｅ２の期間に対応する。次にステップ６０４の判定処理でフラッシュメモリ１１１のビジーが解除されるまで待つ。この期間は図７における時刻ｔｅ２〜ｔｅ３の期間（消去ビジー時間）に対応する。フラッシュメモリ１１１のビジーが解除されたらステップ６０５でＭＣＵ１０３はカウンタ１０８の値を取得する。このタイミングは図７における時刻ｔｅ３に対応し、得られるカウンタ値（消去時間）はｔｅ１〜ｔｅ３の期間のカウンタ値である。
【００４１】
この後、ステップ６０６の判定処理でフラッシュメモリ１１１に対して正しく物理ブロックの消去が行えたかを確認し、正しく消去が行えていなかった場合にはステップ６０７でＭＣＵ１０３は以降当該ブロックをバッドブロックとして管理する。
【００４２】
正しく消去されていた場合は、ステップ６０８の判定処理で、ステップ６０５で取得したカウンタ値と閾値テーブル１０９の値を比較してカウンタ値が検査ホストの設定した閾値よりも大きければ、ステップ６０９でレイトブロックテーブル１１０に当該物理ブロックのアドレスと消去に要した時間を消去時間として書き込む。
【００４３】
次にステップ６１０〜６１６までの流れは、ステップ６０２〜６０９までの流れの消去を書き込みに変更した以外は基本的に同じである。ステップ６１０でＭＣＵ１０３はカウンタ１０８をリセットする。このタイミングは図８における時刻ｔｐ１に対応する。次にステップ６１１でフラッシュメモリ１１１の当該物理ブロックに対して書き込みコマンドを発行する。このタイミングは図８における時刻ｔｐ１〜ｔｐ２の期間に対応する。次に判定６１２でフラッシュメモリ１１１のビジーが解除されるまで待つ。この期間は図８における時刻ｔｐ２〜ｔｐ３の期間（書き込みビジー時間）に対応する。フラッシュメモリ１１１のビジーが解除されたら、ステップ６１３でＭＣＵ１０３はカウンタ１０８の値を取得する。このタイミングは図８における時刻ｔｐ３に対応し、得られるカウンタ値（書き込み時間）はｔｐ１〜ｔｐ３の期間のカウンタ値である。
【００４４】
この後、ステップ６１４の判定処理でフラッシュメモリ１１１に対して正しく物理ブロックに対して書き込みが行えたかを確認し、正しく書き込みが行えていなかった場合にはステップ６０７でＭＣＵ１０３は以降当該ブロックをバッドブロックとして管理する。
【００４５】
正しく書き込みされていた場合は、ステップ６１５の判定処理でステップ６１３で取得したカウンタ値と閾値テーブル１０９の値を比較してカウンタ値が検査ホストの設定した閾値よりも大きければ、ステップ６１６でレイトブロックテーブル１１０に当該物理ブロックのアドレスと書き込みに要した時間を書き込み時間として書き込む。
【００４６】
次にステップ６１７でＭＣＵ１０３は時間測定検査の対象となる物理ブロックのアドレスを１インクリメントする。
【００４７】
最後にステップ６１８の判定処理で該当物理ブロックが有効な領域内であるかどうかを判定し、有効な領域であればステップ６０２へ、無効な領域であれば処理を終了する。
【００４８】
以上のようにして検査ホストが閾値テーブル１０９に設定した値よりも処理時間の長い物理ブロックのアドレスとその処理時間をレイトブロックテーブル１１０に登録することができる。
【００４９】
このようにして作成したレイトブロックテーブル１１０は、メモリーカード１０１の電源が切られても記憶できるようにフラッシュメモリ１１１を含むメモリーカード１０１内部の不揮発性記憶領域に格納する。
【００５０】
図９はＭＣＵ１０３がメモリーカード１０１のフラッシュメモリ１１１に書き込みを行う際のフローである。
【００５１】
まず、最初にステップ９０１の判断処理でＭＣＵ１０３は書き込みしようとしている領域が通常領域なのかシステム領域なのかを判定する。通常領域かシステム領域かという判断はホスト機器からの書き込みコマンドの種別によって明確にされる。通常領域であればステップ９０２に移行してレイトブロックテーブル１１０に登録されていない物理ブロックを書き込み先に設定し、システム領域であればステップ９０３でレイトブロックテーブル１１０に登録されている物理ブロックを書き込み先に設定する。
【００５２】
次にステップ９０４で実際にフラッシュメモリ１１１の書き込み先となっている物理ブロックに対して書き込みを実行するとともに、この際に書き込み時間の測定も行う。具体的な処理は、図６に示したステップ６１０〜６１７の処理と同様である。
【００５３】
ステップ９０５の判定処理ではステップ９０４で測定した書き込み時間と閾値テーブル１０９に登録された値（例えば、２９０μｓ）とを比較して、書き込み時間が閾値よりも長ければステップ９０６でレイトブロックテーブル１１０の更新を行う。図１１に示すようなフラッシュメモリの場合は、書き込みを繰り返すうちに４個（２９０μｓ以上のブロック数）の物理ブロックがレイトブロックテーブル１１０に登録され、システム領域の書き込みの際にレイトブロックテーブル１１０に登録された物理ブロックに対して書き込みが実行される。
【００５４】
以上のように、レイトブロックテーブル１１０でフラッシュメモリ１１１の各物理ブロックの書き込み・消去時間を管理することにより、システム領域等の速度保証を要求されない領域の書き込みは、書き込み・消去時間の長い物理ブロックに対して実行し、速度保証を要求される書き込みは、書き込み・消去時間が閾値テーブル１０９に登録した閾値よりも速い、つまりフラッシュメモリ１１１の仕様書に示されている書き込み時間の最大値よりも早い書き込み時間で書き込みをすることができるブロックに対して実行することができる。例えば、図１１に示すような書き込みビジー時間の分布の場合は書き込みビジー時間が３００μｓ以下であるとして最低速度保証を行うことが可能である。その結果フラッシュメモリ１１１の仕様書に書かれた値よりも速い値を基にして書き込みの最低速度保証を実行することができる。
【００５５】
なお、本実施の形態において、フラッシュメモリ１１１は１つのメモリデバイスで構成される場合について説明を行ったが、２以上のメモリデバイスで構成する場合においても同様に実施できる。
【産業上の利用可能性】
【００５６】
本発明にかかる不揮発性記憶装置及びその書き込み方法は、各物理ブロックの書き換え・消去時間を管理して、速度を保証する必要のあるデータや領域に対してより高速な速度の保証を行うことができ、例えば、高画質な動画の記録を保証することができるという特有の効果を有し、メモリーカード、不揮発性メモリに対するコントローラ、不揮発性メモリに対するホスト機器等として有用である。
【図面の簡単な説明】
【００５７】
【図１】本発明の実施の形態による不揮発性記憶装置の構成を示すブロック図
【図２】同不揮発性記憶装置に用いられるフラッシュメモリのブロックの構成図
【図３】同不揮発性記憶装置の論理マップを示す概念図
【図４】同不揮発性記憶装置に用いられるレイトブロックテーブルの構成を表す概念図
【図５】同不揮発性記憶装置の検査処理を示すフローチャート
【図６】同不揮発性記憶装置の時間測定検査の処理を示すフローチャート
【図７】同不揮発性記憶装置に用いられるフラッシュメモリの消去に係るタイミングチャート
【図８】同不揮発性記憶装置に用いられるフラッシュメモリの書き込みに係るタイミングチャート
【図９】同不揮発性記憶装置の書き込み方法を表すフローチャート
【図１０】従来の不揮発性記憶装置に用いられるフラッシュメモリに含まれる物理ブロックの初期状態での書き込み時間の分布を表すグラフ
【図１１】従来の不揮発性記憶装置に用いられるフラッシュメモリに含まれる物理ブロックへの書き込み時間の耐久性試験後の分布を表すグラフ
【符号の説明】
【００５８】
１０１    メモリーカード
１０２    コントローラ
１０３    ＭＣＵ
１０４    ホストインターフェース
１０５    フラッシュインターフェース
１０６    バッファＲＡＭ
１０７    ＶＣＯ
１０８    カウンタ
１０９    閾値テーブル
１１０    レイトブロックテーブル
１１１    フラッシュメモリ
【図１】
0004645043.tif 000002
【図２】
0004645043.tif 000003
【図３】
0004645043.tif 000004
【図４】
0004645043.tif 000005
【図５】
0004645043.tif 000006
【図６】
0004645043.tif 000007
【図７】
0004645043.tif 000008
【図８】
0004645043.tif 000009
【図９】
0004645043.tif 000010
【図１０】
0004645043.tif 000011
【図１１】
0004645043.tif 000012