(57)【要約】デジタル広帯域幅ビデオ信号、たとえばHDTV、HDプログレッシブもしくはHDフィルム取り込み信号をリアルタイムで記録または再生するためには非常に高速なメモリが必要とされる。ストリーミングHDビデオ・データの記録のためには、NANDフラッシュ・メモリ・ベースのシステムを使うことができる。フラッシュ・メモリ・デバイスは、ページ指向モードで物理的にアクセスされる。本発明によれば、入力データは、多重化された仕方で複数フラッシュ・デバイスのマトリクスに書き込まれる。できるだけ単純かつ高速なリスト処理が実行され、単一のフラッシュ・デバイスのフラッシュ・ブロックの欠陥ページがマトリクス・アーキテクチャ内でアドレッシングされる。逐次的な仕方で書き込みをするとき、マトリクスの全フラッシュ・デバイスの現在のフラッシュ・デバイス・ページについてのデータ内容は、追加的なメモリ・バッファ中の対応する記憶領域にもコピーされる。現在の一連のページが誤りなしにフラッシュ・デバイスに書き込まれたのち、追加的なメモリ・バッファ中の対応する記憶領域は、後続のページ・データを上書きするために有効にされる。一つまたは複数のフラッシュ・デバイスにおいて現在ページに誤りが発生した場合には、これらの現在ページの内容は追加的なメモリ・バッファ中に保持される。
2009524127.tif 000002
【特許請求の範囲】
【請求項１】
高速入力データを第一の型のメモリ・デバイスのマトリクス中に記録する方法であって、前記マトリクスは、行当たり少なくとも二つのメモリ・デバイスおよび列当たり少なくとも二つのメモリ・デバイスを含み、ここで、ある行の諸メモリ・デバイス（DEV0,DEV1,DEV2）は共通のバス（B0）に接続され、前記マトリクスの各行には別個の共通バス（B0,B1,B2）が割り当てられており、前記メモリ・デバイスはそれぞれ、内部的に複数ページに構成されており、それらのページに入力データが逐次的な仕方で書き込まれることができ、前記第一の型のメモリ・デバイスに書き込むとき、前記メモリ・デバイスの種々の位置に欠陥（５、５ａ、５ｂ、５ｃ）が生じることがあり、当該方法は：
Ａ）前記諸メモリ・デバイスの同じ現在ページにおいて、メモリ・デバイスの第一列（DEV0）から始まって一列ずつ、前記共通バスを使って、多重化された仕方で入力データの最初のセクションを書き込み、前記第一の型とは異なる第二の型の追加的なメモリ・デバイス（AMB）の対応するセクション内にも入力データのこの最初のセクションを書き込むステップと；
Ｂ）入力データの前記最初のセクションを前記諸メモリ・デバイスの前記現在ページに書き込んでいる間に少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥（５、５ａ、５ｂ、５ｃ）が生じたかどうかを検査する（CTRLU）ステップと；
Ｃ）前記諸メモリ・デバイスの後続ページにおいて、メモリ・デバイスの第一列から始まって一列ずつ、前記共通バスを使って、多重化された仕方で入力データの後続セクションを書き込み、
先のステップで欠陥がみつからなかった場合には、入力データのこの後続セクションを、前記追加的なメモリ・デバイスの同じセクションにも書き込み、
先のステップで欠陥がみつかった場合には、入力データのこの後続セクションを、前記追加的なメモリ・デバイスの後続の対応するセクション内にも書き込むステップと；
Ｄ）入力データの前記後続セクションを前記後続ページに書き込んでいる間に少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥（５、５ａ、５ｂ、５ｃ）が生じたかどうかを検査する（CTRLU）ステップと；
Ｅ）入力データのすべてのセクションがメモリ・デバイスの前記マトリクスに、および前記追加的なメモリ・デバイス（AMB）に書き込まれるまで、ステップＣ）およびＤ）を続けるステップと；
Ｆ）メモリ・デバイスの前記マトリクスのページの対応する諸セット（SOP）であって各セットごとに少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥を含む諸セットに記憶されている入力データを、前記入力データによってまだ占められていない、メモリ・デバイスの前記マトリクスのページの対応する諸セット（FSOP）にコピーし、その際、欠陥のある個別ページの入力データをメモリ・デバイスの前記マトリクスからではなく前記追加的なメモリ・デバイス（AMB）に記憶されている対応する個別ページのデータから取る、ステップとを特徴とする、
方法。
【請求項２】
高速入力データを第一の型のメモリ・デバイスのマトリクス中に記録する装置であって、前記マトリクスは、行当たり少なくとも二つのメモリ・デバイスおよび列当たり少なくとも二つのメモリ・デバイスを含み、ここで、ある行の諸メモリ・デバイス（DEV0,DEV1,DEV2）は共通のバス（B0）に接続され、前記マトリクスの各行には別個の共通バス（B0,B1,B2）が割り当てられており、前記メモリ・デバイスはそれぞれ、内部的に複数ページに構成されており、それらのページに入力データが逐次的な仕方で書き込まれることができ、前記第一の型のメモリ・デバイスに書き込むとき、前記メモリ・デバイスの種々の位置に欠陥（５、５ａ、５ｂ、５ｃ）が生じることがあり、当該装置は、前記第一の型とは異なる第二の型の追加的なメモリ・デバイス（AMB）および以下の機能を実行するよう適応された手段（CTRLU、BS0、BS1、BS2）を含んでおり、以下の機能とは：
Ａ）前記諸メモリ・デバイスの同じ現在ページにおいて、メモリ・デバイスの第一列（DEV0）から始まって一列ずつ、前記共通バスを使って、多重化された仕方で入力データの最初のセクションを書き込み、前記追加的なメモリ・デバイス（AMB）の対応するセクション内にも入力データのこの最初のセクションを書き込む機能と；
Ｂ）入力データの前記最初のセクションを前記諸メモリ・デバイスの前記現在ページに書き込んでいる間に少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥（５、５ａ、５ｂ、５ｃ）が生じたかどうかを検査する機能と；
Ｃ）前記諸メモリ・デバイスの後続ページにおいて、メモリ・デバイスの第一列から始まって一列ずつ、前記共通バスを使って、多重化された仕方で入力データの後続セクションを書き込み、
上記の機能で欠陥がみつからなかった場合には、入力データのこの後続セクションを、前記追加的なメモリ・デバイスの同じセクションにも書き込み、
上記の機能で欠陥がみつかった場合には、入力データのこの後続セクションを、前記追加的なメモリ・デバイスの後続の対応するセクション内にも書き込む機能と；
Ｄ）入力データの前記後続セクションを前記後続ページに書き込んでいる間に少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥（５、５ａ、５ｂ、５ｃ）が生じたかどうかを検査する機能と；
Ｅ）入力データのすべてのセクションがメモリ・デバイスの前記マトリクスに、および前記追加的なメモリ・デバイス（AMB）に書き込まれるまで、機能Ｃ）およびＤ）を続ける機能と；
Ｆ）メモリ・デバイスの前記マトリクスのページの対応する諸セット（SOP）であって各セットごとに少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥を含む諸セットに記憶されている入力データを、前記入力データによってまだ占められていない、メモリ・デバイスの前記マトリクスのページの対応する諸セット（FSOP）にコピーし、その際、欠陥のある個別ページの入力データをメモリ・デバイスの前記マトリクスからではなく前記追加的なメモリ・デバイス（AMB）に記憶されている対応する個別ページのデータから取る、機能である、
装置。
【請求項３】
前記第一の型のメモリ・デバイスがフラッシュ・メモリである、請求項１記載の方法または請求項２記載の装置。
【請求項４】
前記欠陥が、各欠陥についての対応するページ、対応するメモリ・デバイスおよび対応するバスについての情報項目を含む欠陥リストに記憶される、請求項１記載の方法または請求項２記載の装置。
【請求項５】
前記欠陥が、各欠陥についての対応するブロック、対応するページ、対応するメモリ・デバイスおよび対応するバスについての情報項目を含む欠陥リストに記憶される、請求項３記載の方法または装置。
【請求項６】
請求項５記載の方法または装置であって、フラッシュ・ブロックの欠陥フラッシュ・ページの判別が：
ａ）「ページ」値についてのレジスタ配列を無効な値で初期化し；
ｂ）前記欠陥リストからの最初の有効な「ブロック」値BLNOを「基準ブロック」値とし；
ｃ）前記ページ・レジスタ配列中の適切なフィールドに前記欠陥リストからの対応する「ページ」値をコピーし；
ｄ）次の欠陥リスト・エントリーを解析し；
ｅ）現在の「ブロック」値BLNOが「基準ブロック」値に等しい場合、ステップｃ）に進み、そうでない場合、ステップｄ）に進み；
ｆ）前記欠陥リストの終わりに達するまでステップｃ）ないしｅ）を続ける、
ようにして行われる、方法または装置。
【請求項７】
請求項６記載の方法または装置であって、ステップｃ）において処理されたページ・エントリーについてのビットマップを記憶するためのビットマップ・レジスタが生成され、これらのページのためのビットマップのNビット毎が、逐次的な処理順序（PRO）で処理され、前記ビットマップ・レジスタは、非欠陥フラッシュ・デバイスをショートカットするために使われ、前記ビットマップ・レジスタの生成は：
ｇ）前記ビットマップについてかつある「デバイス・カウンタ」についてのポインタを初期化し；
ｈ）前記ページ・レジスタ配列についてのポインタを初期化し、前記ビットマップ・レジスタを0で初期化し；
ｉ）前記ページ・レジスタ配列における単一のセルをアドレッシングし；
ｊ）その内容が有効である場合、ステップｋ）に進み、そうでない場合、ステップｌ）に進み；
ｋ）前記欠陥リスト中に記憶されている対応するビットマップからNビットをロードし、それを対応するビットマップ・レジスタ値と論理的にORし；
ｌ）前記ページ・レジスタ配列の終わりに達するまでは、ページ・レジスタ配列ポインタをインクリメントし、ステップｉ）に進み；
ｍ）前記ビットマップ・レジスタ値が0に等しい場合、ビットマップの終わりに達するまでは、前記ビットマップ・ポインタおよび前記「デバイス・カウンタ」をインクリメントしてステップｈ）に進む、
ようにして行われる、方法または装置。
【請求項８】
請求項７記載の方法または装置であって、ステップｍ）で、前記ビットマップ・レジスタ値が0に等しくない場合には、欠陥フラッシュ・デバイス中の欠陥ブロックについてのバスを判別し、対応するフラッシュ・ページをコピーするために、以下のステップ、すなわち：
ｎ）「バス・カウント」および前記ページ・レジスタ配列のためのポインタを初期化し；
ｏ）有効な値を求めて前記ページ・レジスタ配列を読み；
ｐ）「バス・カウント」がポイントしている前記ビットマップ・レジスタ中のビットを解析し：そのビットが0に等しい場合、「バス・カウント」をインクリメントしてステップｏ）に進み、そのビットが1に等しい場合、ステップｑ）に進み；
ｑ）0からステップｏ）で読まれた値から1を引いた値までのすべてのページ値について、フラッシュ・ページを、欠陥のあるフラッシュ・ブロックから新しいフラッシュ・ブロックにコピーし、ここで、基準フラッシュ・デバイス番号は、値「デバイス・カウンタ」に対応し、基準バス番号は値「バス・カウント」に対応し；
ｒ）ステップｏ）で読まれたページ値について、対応するフラッシュ・ページ・データを、前記追加的なメモリ・バッファ（AMB）から新しいフラッシュ・ブロックにコピーし、ここで、基準フラッシュ・デバイス番号は値「デバイス・カウンタ」に対応し、基準バス番号は値「バス・カウント」に対応し；
ｓ）前記ページ・レジスタ配列の終わりに達するまでは、前記ページ・レジスタ配列についてのポインタをインクリメントしてステップｏ）に進み；
ｔ）適切なデバイスについての「ブロック・リマッピング・テーブル」を更新し、前記欠陥リスト中の対応するブロック・エントリーを無効とマークし；
ｕ）請求項６記載のステップａ）に進む、
ステップが実行される、方法または装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、高速入力データをメモリ・デバイスのマトリクスに記録する方法および装置に関する。
【背景技術】
【０００２】
デジタル広帯域幅ビデオ信号、たとえばHDTV、HDプログレッシブもしくはHDフィルム取り込み信号をリアルタイムで記録または再生するためには非常に高速なメモリが必要とされる。ストリーミングHDビデオ・データの記録のためには、NANDフラッシュ・メモリ・ベースのシステムを使うことができる。フラッシュ・メモリ・デバイスは、ページ指向モードで物理的にアクセスされる。ここで、1「ページ」はたとえば1024個のデータ語および関係する誤り訂正符号（ecc）を含む。特定のフラッシュ・メモリに対する消去動作は、ある大きさのデータ・ブロックに対してのみ実行できる。これらのデータ・ブロックは、以下では用語「フラッシュ・ブロック」によって表される。フラッシュ・ブロックはたとえば64ページからなる。NANDフラッシュ・メモリは二つの基本的な欠点がある：
・書き込みアクセスがやや遅い；
・マスクされていない製造欠陥があり、寿命の間にさらなる欠陥ができる。要求される誤り処理はユーザーの責任下にある。これは同等のメモリ型についても当てはまる。
【０００３】
フラッシュ・メモリ・デバイス（たとえばNANDデバイス）における欠陥の検出はたとえば消去動作の間に生起するので、ページ中の欠陥はフラッシュ・ブロック全体を使用不能にする。そのような欠陥フラッシュ・ブロックはファイル・システムによって使用されてはならない。そのような欠陥の処理は完全にユーザーの責任下にある。
【０００４】
そのような誤り処理のためにはリード・ソロモンのような冗長符号を使うことが知られているが、それには、リアルタイム挙動に対する高い動的時間消費のような他の欠点がある。たとえば、次のNANDフラッシュ・メモリが市販されている：サムソンK9K2G16U0M-YCB000（2Gbit、16ビット指向［16bit  oriented］）、K9W4G08U0M-YCB000（4Gbit、8ビット指向）、東芝TH58NVG2S3BFT00（4Gbit、8ビット指向）、MICRON  MT29G08AAxxx（2Gbit、8ビット指向）、MT29G16AAxxx（2Gbit、16ビット指向）、サムスンK9K4G08（4Gbit、8ビット指向）。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は、NANDフラッシュ・メモリ・ベースのデバイスへの高精細度（high  definition）ストリーミング・ビデオ・データのリアルタイム記録のために使用できる。高データ・スループットでリアルタイムに記録している間にフラッシュ・デバイスを使うことは、それぞれ大きなファイル（files）またはテイク（takes）につながる。欠陥のあるフラッシュ・ブロックから空いているフラッシュ・ブロックに向けての動的な欠陥リマッピングのための資源およびパフォーマンスの効率のよい処理をもつことが重要である。今日のたいていのNANDフラッシュの応用はリード・ソロモンで誤り保護されており、リアルタイム対応ではない。
【０００６】
本発明が解決しようとする課題は、動作中に生じるフラッシュ・デバイス中の欠陥をリマッピングするための、低電力消費、短い動作時間およびリアルタイム機能をサポートする資源およびパフォーマンスの効率のよいアルゴリズムを提供することである。
【課題を解決するための手段】
【０００７】
この課題は、請求項１に開示される方法によって解決される。この方法を利用する装置は請求項２に開示される方法を利用する。
【０００８】
本発明によれば、高速入力データは、多重化された仕方で複数フラッシュ・デバイスのマトリクスに書き込まれる。できるだけ単純かつ高速なリスト処理が実行され、単一のフラッシュ・デバイスのフラッシュ・ブロックの欠陥ページがマトリクス・アーキテクチャ内でアドレッシングされる（addressed）。逐次的な仕方で書き込みをするとき、マトリクスの全フラッシュ・デバイスの現在のフラッシュ・デバイス・ページについてのデータ内容は、追加的なメモリ・バッファ中の対応する記憶領域にもコピーされる。現在の一連のページが誤りなしにフラッシュ・デバイスに書き込まれたのち、追加的なメモリ・バッファ中の対応する記憶領域は、後続のページ・データを上書きするために有効にされる。一つまたは複数のフラッシュ・デバイスにおいて現在ページに誤りが発生した場合には、これらの現在ページの内容は追加的なメモリ・バッファ中に保持される。
【０００９】
原理的には、本発明の方法は、高速入力データを第一の型のメモリ・デバイスのマトリクス中に記録するために好適である。前記マトリクスは、行当たり少なくとも二つのメモリ・デバイスおよび列当たり少なくとも二つのメモリ・デバイスを含む。ここで、ある行のメモリ・デバイスは共通のバスに接続され、前記マトリクスの各行には別個の共通バスが割り当てられている。前記メモリ・デバイスはそれぞれ、内部的に複数ページに構成されており、それらのページに入力データが逐次的な仕方で書き込まれることができる。前記第一の型のメモリ・デバイスに書き込むとき、前記メモリ・デバイスの異なる位置に欠陥が生じることがある。本方法は：
Ａ）前記メモリ・デバイスの同じ現在ページにおいて、メモリ・デバイスの第一列から始まって一列ずつ、前記共通バスを使って、多重化された仕方で入力データの最初のセクションを書き込み、前記第一の型とは異なる第二の型の追加的なメモリ・デバイスの対応するセクション内にも入力データのこの最初のセクションを書き込むステップと；
Ｂ）入力データの前記最初のセクションを前記メモリ・デバイスの前記現在ページに書き込んでいる間に少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥が生じたかどうかを検査するステップと；
Ｃ）前記メモリ・デバイスの後続ページにおいて、メモリ・デバイスの第一列から始まって一列ずつ、前記共通バスを使って、多重化された仕方で入力データの後続セクションを書き込み、
先のステップで欠陥がみつからなかった場合には、入力データのこの後続セクションを、前記追加的なメモリ・デバイスの同じセクションにも書き込み、
先のステップで欠陥がみつかった場合には、入力データのこの後続セクションを、前記追加的なメモリ・デバイスの後続の対応するセクション内にも書き込むステップと；
Ｄ）入力データの前記後続セクションを前記後続ページに書き込んでいる間に少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥が生じたかどうかを検査するステップと；
Ｅ）入力データのすべてのセクションがメモリ・デバイスの前記マトリクスに、および前記追加的なメモリ・デバイスに書き込まれるまで、ステップＣ）およびＤ）を続けるステップと；
Ｆ）メモリ・デバイスの前記マトリクスのページの対応する諸セットであって各セットごとに少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥を含む諸セットに記憶されている入力データを、前記入力データによってまだ占められていない、メモリ・デバイスの前記マトリクスのページの対応する諸セットにコピーし、その際、欠陥のある個別ページの入力データをメモリ・デバイスの前記マトリクスからではなく前記追加的なメモリ・デバイスに記憶されている対応する個別ページのデータから取る、ステップとを含む。
【００１０】
原理的には、本発明の装置は、高速入力データを第一の型のメモリ・デバイスのマトリクス中に記録するために好適である。前記マトリクスは、行当たり少なくとも二つのメモリ・デバイスおよび列当たり少なくとも二つのメモリ・デバイスを含む。ここで、ある行のメモリ・デバイスは共通のバスに接続され、前記マトリクスの各行には別個の共通バスが割り当てられている。前記メモリ・デバイスはそれぞれ、内部的に複数ページに構成されており、それらのページに入力データが逐次的な仕方で書き込まれることができる。前記第一の型のメモリ・デバイスに書き込むとき、前記メモリ・デバイスの異なる位置に欠陥が生じることがある。本装置は、前記第一の型とは異なる第二の型の追加的なメモリ・デバイスおよび以下の機能を実行するよう適応された手段を含む：
Ａ）前記メモリ・デバイスの同じ現在ページにおいて、メモリ・デバイスの第一列から始まって一列ずつ、前記共通バスを使って、多重化された仕方で入力データの最初のセクションを書き込み、前記追加的なメモリ・デバイスの対応するセクション内にも入力データのこの最初のセクションを書き込む機能と；
Ｂ）入力データの前記最初のセクションを前記メモリ・デバイスの前記現在ページに書き込んでいる間に少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥が生じたかどうかを検査する機能と；
Ｃ）前記メモリ・デバイスの後続ページにおいて、メモリ・デバイスの第一列から始まって一列ずつ、前記共通バスを使って、多重化された仕方で入力データの後続セクションを書き込み、
先の機能で欠陥がみつからなかった場合には、入力データのこの後続セクションを、前記追加的なメモリ・デバイスの同じセクションにも書き込み、
先の機能で欠陥がみつかった場合には、入力データのこの後続セクションを、前記追加的なメモリ・デバイスの後続の対応するセクション内にも書き込む機能と；
Ｄ）入力データの前記後続セクションを前記後続ページに書き込んでいる間に少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥が生じたかどうかを検査する機能と；
Ｅ）入力データのすべてのセクションがメモリ・デバイスの前記マトリクスに、および前記追加的なメモリ・デバイスに書き込まれるまで、機能Ｃ）およびＤ）を続ける機能と；
Ｆ）メモリ・デバイスの前記マトリクスのページの対応する諸セットであって各セットごとに少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥を含む諸セットに記憶されている入力データを、前記入力データによってまだ占められていない、メモリ・デバイスの前記マトリクスのページの対応する諸セットにコピーし、その際、欠陥のある個別ページの入力データをメモリ・デバイスの前記マトリクスからではなく前記追加的なメモリ・デバイスに記憶されている対応する個別ページのデータから取る、機能。
【００１１】
本発明の追加的な実施形態の利点は、それぞれの従属請求項において開示される。
【００１２】
本発明の例示的な実施形態について、付属の図面を参照して記述する。
【発明を実施するための最良の形態】
【００１３】
リアルタイム記録のためには、図１に描かれるように、複数のフラッシュ・デバイスを、いくつかのバスBS0、BS1、BS2、……によってコントローラ・ユニットCTRLUに接続されているマトリクスに編成することが有利である。いくつかのフラッシュ・デバイスが同じデータ・バスを共有する。たとえば、デバイスDEV0ないしDEV2はバスBS0を共有する。より一般には、同じデータ・バスを共有するフラッシュ・デバイスの数はMである。マトリクス内にはそのようないくつかのフラッシュ・デバイス／共通バス行があり、その数はNである。マトリクスは行当たり少なくとも二つのメモリ・デバイスを含み、列当たり少なくとも二つのメモリ・デバイスを含む。コントローラ・ユニットCTRLUは記憶または記録されるべき高速入力データを受領しうる。
【００１４】
「消去」動作に関しては、デバイス１のようなNANDフラッシュ・メモリにおける最小のアドレッシング可能な単位はフラッシュ・ブロック２である（太い枠で描かれている、すなわち、図では、デバイス１は四つのフラッシュ・ブロックをもつ）。
【００１５】
「書き込み」動作に関しては、NANDフラッシュ・メモリにおける最小のアドレッシング可能な単位はフラッシュ・ページ３である（図では、各フラッシュ・ブロックは四つのフラッシュ・ページをもつ）。
【００１６】
ある実装では、マトリクス内のフラッシュ・ブロックの総数はたとえば4096である。各ブロックは64ページを含みうる。
【００１７】
記憶されるべき入力データは多重化され、N本のパラレルなバスを介して、マトリクスの第一列の各フラッシュ・デバイス内の同じ現在ページに、すなわちデバイスDEV0およびその下に配列されている諸デバイスに書き込まれる。この現在ページがいっぱいになったあとは、後続の入力データは、マトリクスの第二列にある同じ現在ページに、すなわちデバイスDEV1およびその下に配列されている諸デバイスに書き込まれる。この書き込み処理は、マトリクスの全フラッシュ・デバイスの現在ページが入力データで満たされるまでM回続けられる。全フラッシュ・デバイスの現在ページが満たされた状態は、フラッシュ・デバイス中の第二ページの斜めのハッチによって描かれている。その後、書き込み処理は、フラッシュ・デバイス中の次の（すなわち第三の）ページで続けられる。この第三のページは図１では垂直のハッチによってマークされている。これらのページは、ページ・セットSOP（set  of  pages）をなす。
【００１８】
高速のリアルタイム記録および欠陥修復を達成するために、マトリクスの全フラッシュ・デバイスの現在のフラッシュ・ページについてのデータ内容は、それぞれ、コントローラ・ユニットCTRLUまたはバスに接続されることのできる追加的なメモリ・バッファAMB（additional  memory  buffer）（たとえばSRAM）に逐次的な仕方でコピーされる。これらのデータは、マトリクスのフラッシュ・デバイスのうちの一つまたは複数のフラッシュ・デバイスの現在ページに一つまたは複数の欠陥が生じたとしても、バッファAMB内に残る。
【００１９】
追加バッファAMBは図２に、より詳細に示されている。図１に描かれているマトリクスは9個のフラッシュ・デバイスを含む。マトリクス中のデバイスの第一列はメモリAMB中の第一列に関係し、マトリクス中の第二列はメモリAMB中の第二列に関係する、などとなる。メモリAMB中のラインは、マトリクス中のデバイスのある行内のあるページに関係する。
【００２０】
マトリクスのフラッシュ・デバイス中の第三ページ（垂直ハッチでマークされている）に書き込むとき、誤りまたは欠陥５が生じた。したがって、これらのページのもとの入力データ内容は、メモリAMB中の対応する領域（垂直ハッチでマークされている）に記憶されたままに保たれる。すなわち、欠陥５のないAMB内に記憶されたままに保たれる。したがって、次の一連のページ（すなわち第四ページ）がフラッシュ・デバイスに書き込まれるとき、もとの入力データはメモリAMB中の後続セクション（すなわち、図２のライン３ないし６）に書き込まれる。どの第四ページにも欠陥が生じていない場合、メモリAMB内のこのセクション（ライン３ないし６）は、次の一連のページ（すなわち、第五ページ）によって上書きされる。第十ページ（すなわち、フラッシュ・デバイスの第三ブロック内）には三つの欠陥５ａ、５ｂおよび５ｃが生じるので、これらのページのもとの入力データ内容は、欠陥のないメモリAMB中の対応する領域（ライン３ないし６）内で、対応する位置５Ａ、５Ｂ、５Ｃに記憶されたままに保たれる。
【００２１】
実際上、コントローラ・ユニットCTRLUの制御のもとで、バッファAMBは欠陥のあるフラッシュ・ページの欠陥のないデータ・コピーを記憶しているが、その容量はフラッシュ・マトリクスの容量よりは著しく小さい。たとえば、RAMメモリAMBは、マトリクスの各デバイスの15までの異なるページのデータ内容が記憶できるような容量をもつことができる。
【００２２】
リアルタイム記録の間に生じたページ誤り（たとえば、５、５ａ、５ｂおよび５ｃ）は欠陥リストにおいてマークされる。該欠陥リストの記載事項が図３に示されている。この記載事項は、ブロック番号BLNO（0…B）、ページ番号PGNO（0…P）およびフラッシュ・マトリクス内でのデバイス列番号DEV0,…,DEVmを含みうる。列番号のビットBT0,BT1,…,BTnは、マトリクスのどの行番号（＝バス番号BS0,BS1,…,BSn）においてフラッシュ・ページ内の一つまたは複数の欠陥が起こったかを示す。欠陥のページ内の位置を記憶することは必要ではない。
【００２３】
図１内に描かれている9つのフラッシュ・デバイスについての例示的な欠陥リストが図４に示されている。このリストは、コントローラ・ユニットCTRLU内に記憶されることができる。この例示的な欠陥リストは、図１のマトリクス中の欠陥ページを定義する。
【００２４】
第一の欠陥５は、ブロック番号BLNO＝0、ページ番号PGNO＝2に、そしてビットマップ部BTMPによれば第三デバイス列DEV2での第二バスBS1に関して位置されている。第二の欠陥５ａはブロック番号BLNO＝2、ページ番号PGNO＝1に、第一デバイス列DEV0での第二バスBS1に関して位置されている。第三の欠陥５ｂはブロック番号BLNO＝2、ページ番号PGNO＝1に、第二デバイス列DEV1での第二バスBS1に関して位置されている。
【００２５】
第四の欠陥５ｃはブロック番号BLNO＝2、ページ番号PGNO＝1に、第二デバイス列DEV1での第三バスBS2に関して位置されている。
【００２６】
さらなる欠陥がブロック番号BLNO＝2、ページ番号PGNO＝3において、第一デバイス列DEV0での第三バスBS2に関して、および第二デバイス列DEV1での第二バスBS1に関して位置されている。
【００２７】
フラッシュ・デバイスに入力データを書き込む際、または書き込んでいる間、フラッシュ・デバイスはバスBS0ないしBS2を介して何らかの欠陥があればそれをコントローラ・ユニットCTRLUに報告する。
【００２８】
それぞれのフラッシュ・ページ・コピーはバッファされたままに留まる必要がある。欠陥を修復するとき、低電力消費、短い動作時間およびリアルタイム挙動をサポートするよう資源および時間について効率的な仕方で欠陥リストを解析することが有利である。目標は、一つまたは複数の欠陥のあるフラッシュ・ページを含むフラッシュ・ブロックの内容が、同じフラッシュ・デバイス内の空いているフラッシュ・ブロック内の空いている（free）フラッシュ・ページの対応するセットFSOPにコピーされるということである。最後には、欠陥のあるフラッシュ・ブロックは、新しいフラッシュ・ブロックによってたとえばファイル・システムにおいて論理的にリマッピングされる必要がある。
【００２９】
ここで、あらゆる欠陥のフラッシュ・ブロック、フラッシュ・ページ、デバイスおよびバスについての情報を含む欠陥リストを解析するタスクについて以下に記述する。解析処理の間に、ブロック内の適切な欠陥フラッシュ・ページは、バッファから新しいフラッシュ・ブロックにコピーされることになる。ブロック内の他のすべてのフラッシュ・ページは、欠陥のあるそのフラッシュ・ブロックから新しいフラッシュ・ブロックにコピーされることになる。
【００３０】
フラッシュ・ブロックの欠陥フラッシュ・ページを判別する：
ａ）「ページ」値についてのレジスタ配列を無効な値で初期化する（図５は、フラッシュ・ブロックBLNO＝2についての欠陥ページを含む対応するページ・レジスタ配列を示している；該ページ・レジスタは、BLNO＝2に関する諸行について列PGNOからの対応するページ番号値を含む）；
ｂ）欠陥リストからの最初の有効な「ブロック」値BLNOを「基準ブロック」値とする；
ｃ）ページ・レジスタ配列中の適切なフィールドに欠陥リストからの対応する「ページ」値をコピーする；
ｄ）次の欠陥リスト・エントリーを解析する；
ｅ）現在の「ブロック」値BLNOが「基準ブロック」値に等しい場合、ステップｃ）に進み、そうでない場合、ステップｄ）に進む；
ｆ）欠陥リストの終わりに達するまでステップｃ）ないしｅ）をループする。
【００３１】
図６は、ステップｃ）において処理されたページ・エントリーについてのビットマップを記憶するためのビットマップ・レジスタを示している。これらのページのためのビットマップは、逐次的な処理順序PROで処理される（Nビットごとに）。ビットマップ・レジスタは、非欠陥フラッシュ・デバイスをショートカットするために使われる：
ｇ）前記ビットマップについてかつある「デバイス・カウンタ」についてのポインタを初期化する；
ｈ）ポインタをページ・レジスタ配列のために初期化する。ビットマップ・レジスタを0で初期化する；
ｉ）ページ・レジスタ配列における単一のセルをアドレッシングする；
ｊ）その内容が有効である場合、ステップｋ）に進み、そうでない場合、ステップｌ）に進む；
ｋ）対応するビットマップ（欠陥リスト中に記憶されている）からNビットをロードし、それを対応するビットマップ・レジスタ値と論理的にORする（N＝バス数）；
ｌ）ページ・レジスタ配列の終わりに達するまでは、ページ・レジスタ配列ポインタをインクリメントし、ステップｉ）に進む；
ｍ）ビットマップ・レジスタ値が0に等しい場合、ビットマップの終わりに達するまでは、ビットマップ・ポインタおよび「デバイス・カウンタ」をインクリメントしてステップｈ）に進む。ビットマップ・レジスタ値が0に等しくない場合には、以下のステップｎ）ないしｕ）を開始する。
【００３２】
図７は、ビットマップ・レジスタおよびビットマップ解析に基づくページ置換シーケンスを説明している。目標は、欠陥フラッシュ・デバイス中の欠陥ブロックについてのバスを判別し、対応するフラッシュ・ページをコピーすることである：
ｎ）「バス・カウント」およびページ・レジスタ配列のためのポインタを初期化する；
ｏ）有効な値を求めてページ・レジスタ配列（図５）を読む；
ｐ）「バス・カウント」がポイントしているビットマップ・レジスタ中のビットを解析する：そのビットが0に等しい場合、「バス・カウント」をインクリメントしてステップｏ）に進み、そのビットが1に等しい場合、ステップｑ）に進む；
ｑ）0からステップｏ）で読まれた値から1を引いた値までのすべてのページ値について、フラッシュ・ページを、欠陥のあるフラッシュ・ブロックから新しいフラッシュ・ブロックにコピーする。基準フラッシュ・デバイス番号は、値「デバイス・カウンタ」に対応し、基準バス番号は値「バス・カウント」に対応する；
ｒ）ステップｏ）で読まれたページ値について、対応するフラッシュ・ページ・データを、追加的なメモリ・バッファAMBから新しいフラッシュ・ブロックにコピーする。基準フラッシュ・デバイス番号は値「デバイス・カウンタ」に対応し、基準バス番号は値「バス・カウント」に対応する；
ｓ）ページ・レジスタ配列の終わりに達するまで、ページ・レジスタ配列についてのポインタをインクリメントしてステップｏ）に進む；
ｔ）適切なデバイスについての「ブロック・リマッピング・テーブル」を更新し、欠陥リスト中の対応するブロック・エントリーを無効とマークする；
ｕ）ステップａ）に進む。
【００３３】
上記のレジスタ、ポインタ、リストおよびテーブルは、コントローラ・ユニットCTRLUによって制御されることができる。
【００３４】
本発明は、寿命の間、欠陥によって影響を受けうるいかなるブロック指向の記憶においても使用できる。
【図面の簡単な説明】
【００３５】
【図１】フラッシュ・デバイスのマトリクスを示す図である。
【図２】欠陥のあるフラッシュ・ページの欠陥のないデータ・コピーを含む追加バッファを示す図である。
【図３】欠陥リストの記載事項を示す図である。
【図４】例示的な欠陥リストを示す図である。
【図５】ページ・レジスタ配列を示す図である。
【図６】ビットマップ・レジスタを示す図である。
【図７】ページ置換シーケンスを示す図である。
【図１】
2009524127.tif 000003
【図２】
2009524127.tif 000004
【図３】
2009524127.tif 000005
【図４】
2009524127.tif 000006
【図５】
2009524127.tif 000007
【図６】
2009524127.tif 000008
【図７】
2009524127.tif 000009
【国際調査報告】
2009524127.tif 000010
2009524127.tif 000011