JP2009524127A - 高速入力データをメモリ・デバイスのマトリクスに記録する方法および装置 - Google Patents

高速入力データをメモリ・デバイスのマトリクスに記録する方法および装置 Download PDF

Info

Publication number
JP2009524127A
JP2009524127A JP2008549800A JP2008549800A JP2009524127A JP 2009524127 A JP2009524127 A JP 2009524127A JP 2008549800 A JP2008549800 A JP 2008549800A JP 2008549800 A JP2008549800 A JP 2008549800A JP 2009524127 A JP2009524127 A JP 2009524127A
Authority
JP
Japan
Prior art keywords
page
input data
flash
memory devices
matrix
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.)
Granted
Application number
JP2008549800A
Other languages
English (en)
Other versions
JP5160448B2 (ja
JP2009524127A5 (ja
Inventor
ブルーネ,トーマス
ヴィッテンブルク,イェンス,ペーター
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.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of JP2009524127A publication Critical patent/JP2009524127A/ja
Publication of JP2009524127A5 publication Critical patent/JP2009524127A5/ja
Application granted granted Critical
Publication of JP5160448B2 publication Critical patent/JP5160448B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/34Determination of programming status, e.g. threshold voltage, overprogramming or underprogramming, retention
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/76Masking faults in memories by using spares or by reconfiguring using address translation or modifications

Abstract

デジタル広帯域幅ビデオ信号、たとえばHDTV、HDプログレッシブもしくはHDフィルム取り込み信号をリアルタイムで記録または再生するためには非常に高速なメモリが必要とされる。ストリーミングHDビデオ・データの記録のためには、NANDフラッシュ・メモリ・ベースのシステムを使うことができる。フラッシュ・メモリ・デバイスは、ページ指向モードで物理的にアクセスされる。本発明によれば、入力データは、多重化された仕方で複数フラッシュ・デバイスのマトリクスに書き込まれる。できるだけ単純かつ高速なリスト処理が実行され、単一のフラッシュ・デバイスのフラッシュ・ブロックの欠陥ページがマトリクス・アーキテクチャ内でアドレッシングされる。逐次的な仕方で書き込みをするとき、マトリクスの全フラッシュ・デバイスの現在のフラッシュ・デバイス・ページについてのデータ内容は、追加的なメモリ・バッファ中の対応する記憶領域にもコピーされる。現在の一連のページが誤りなしにフラッシュ・デバイスに書き込まれたのち、追加的なメモリ・バッファ中の対応する記憶領域は、後続のページ・データを上書きするために有効にされる。一つまたは複数のフラッシュ・デバイスにおいて現在ページに誤りが発生した場合には、これらの現在ページの内容は追加的なメモリ・バッファ中に保持される。

Description

本発明は、高速入力データをメモリ・デバイスのマトリクスに記録する方法および装置に関する。
デジタル広帯域幅ビデオ信号、たとえば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フラッシュの応用はリード・ソロモンで誤り保護されており、リアルタイム対応ではない。
本発明が解決しようとする課題は、動作中に生じるフラッシュ・デバイス中の欠陥をリマッピングするための、低電力消費、短い動作時間およびリアルタイム機能をサポートする資源およびパフォーマンスの効率のよいアルゴリズムを提供することである。
この課題は、請求項1に開示される方法によって解決される。この方法を利用する装置は請求項2に開示される方法を利用する。
本発明によれば、高速入力データは、多重化された仕方で複数フラッシュ・デバイスのマトリクスに書き込まれる。できるだけ単純かつ高速なリスト処理が実行され、単一のフラッシュ・デバイスのフラッシュ・ブロックの欠陥ページがマトリクス・アーキテクチャ内でアドレッシングされる(addressed)。逐次的な仕方で書き込みをするとき、マトリクスの全フラッシュ・デバイスの現在のフラッシュ・デバイス・ページについてのデータ内容は、追加的なメモリ・バッファ中の対応する記憶領域にもコピーされる。現在の一連のページが誤りなしにフラッシュ・デバイスに書き込まれたのち、追加的なメモリ・バッファ中の対応する記憶領域は、後続のページ・データを上書きするために有効にされる。一つまたは複数のフラッシュ・デバイスにおいて現在ページに誤りが発生した場合には、これらの現在ページの内容は追加的なメモリ・バッファ中に保持される。
原理的には、本発明の方法は、高速入力データを第一の型のメモリ・デバイスのマトリクス中に記録するために好適である。前記マトリクスは、行当たり少なくとも二つのメモリ・デバイスおよび列当たり少なくとも二つのメモリ・デバイスを含む。ここで、ある行のメモリ・デバイスは共通のバスに接続され、前記マトリクスの各行には別個の共通バスが割り当てられている。前記メモリ・デバイスはそれぞれ、内部的に複数ページに構成されており、それらのページに入力データが逐次的な仕方で書き込まれることができる。前記第一の型のメモリ・デバイスに書き込むとき、前記メモリ・デバイスの異なる位置に欠陥が生じることがある。本方法は:
A)前記メモリ・デバイスの同じ現在ページにおいて、メモリ・デバイスの第一列から始まって一列ずつ、前記共通バスを使って、多重化された仕方で入力データの最初のセクションを書き込み、前記第一の型とは異なる第二の型の追加的なメモリ・デバイスの対応するセクション内にも入力データのこの最初のセクションを書き込むステップと;
B)入力データの前記最初のセクションを前記メモリ・デバイスの前記現在ページに書き込んでいる間に少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥が生じたかどうかを検査するステップと;
C)前記メモリ・デバイスの後続ページにおいて、メモリ・デバイスの第一列から始まって一列ずつ、前記共通バスを使って、多重化された仕方で入力データの後続セクションを書き込み、
先のステップで欠陥がみつからなかった場合には、入力データのこの後続セクションを、前記追加的なメモリ・デバイスの同じセクションにも書き込み、
先のステップで欠陥がみつかった場合には、入力データのこの後続セクションを、前記追加的なメモリ・デバイスの後続の対応するセクション内にも書き込むステップと;
D)入力データの前記後続セクションを前記後続ページに書き込んでいる間に少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥が生じたかどうかを検査するステップと;
E)入力データのすべてのセクションがメモリ・デバイスの前記マトリクスに、および前記追加的なメモリ・デバイスに書き込まれるまで、ステップC)およびD)を続けるステップと;
F)メモリ・デバイスの前記マトリクスのページの対応する諸セットであって各セットごとに少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥を含む諸セットに記憶されている入力データを、前記入力データによってまだ占められていない、メモリ・デバイスの前記マトリクスのページの対応する諸セットにコピーし、その際、欠陥のある個別ページの入力データをメモリ・デバイスの前記マトリクスからではなく前記追加的なメモリ・デバイスに記憶されている対応する個別ページのデータから取る、ステップとを含む。
原理的には、本発明の装置は、高速入力データを第一の型のメモリ・デバイスのマトリクス中に記録するために好適である。前記マトリクスは、行当たり少なくとも二つのメモリ・デバイスおよび列当たり少なくとも二つのメモリ・デバイスを含む。ここで、ある行のメモリ・デバイスは共通のバスに接続され、前記マトリクスの各行には別個の共通バスが割り当てられている。前記メモリ・デバイスはそれぞれ、内部的に複数ページに構成されており、それらのページに入力データが逐次的な仕方で書き込まれることができる。前記第一の型のメモリ・デバイスに書き込むとき、前記メモリ・デバイスの異なる位置に欠陥が生じることがある。本装置は、前記第一の型とは異なる第二の型の追加的なメモリ・デバイスおよび以下の機能を実行するよう適応された手段を含む:
A)前記メモリ・デバイスの同じ現在ページにおいて、メモリ・デバイスの第一列から始まって一列ずつ、前記共通バスを使って、多重化された仕方で入力データの最初のセクションを書き込み、前記追加的なメモリ・デバイスの対応するセクション内にも入力データのこの最初のセクションを書き込む機能と;
B)入力データの前記最初のセクションを前記メモリ・デバイスの前記現在ページに書き込んでいる間に少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥が生じたかどうかを検査する機能と;
C)前記メモリ・デバイスの後続ページにおいて、メモリ・デバイスの第一列から始まって一列ずつ、前記共通バスを使って、多重化された仕方で入力データの後続セクションを書き込み、
先の機能で欠陥がみつからなかった場合には、入力データのこの後続セクションを、前記追加的なメモリ・デバイスの同じセクションにも書き込み、
先の機能で欠陥がみつかった場合には、入力データのこの後続セクションを、前記追加的なメモリ・デバイスの後続の対応するセクション内にも書き込む機能と;
D)入力データの前記後続セクションを前記後続ページに書き込んでいる間に少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥が生じたかどうかを検査する機能と;
E)入力データのすべてのセクションがメモリ・デバイスの前記マトリクスに、および前記追加的なメモリ・デバイスに書き込まれるまで、機能C)およびD)を続ける機能と;
F)メモリ・デバイスの前記マトリクスのページの対応する諸セットであって各セットごとに少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥を含む諸セットに記憶されている入力データを、前記入力データによってまだ占められていない、メモリ・デバイスの前記マトリクスのページの対応する諸セットにコピーし、その際、欠陥のある個別ページの入力データをメモリ・デバイスの前記マトリクスからではなく前記追加的なメモリ・デバイスに記憶されている対応する個別ページのデータから取る、機能。
本発明の追加的な実施形態の利点は、それぞれの従属請求項において開示される。
本発明の例示的な実施形態について、付属の図面を参照して記述する。
リアルタイム記録のためには、図1に描かれるように、複数のフラッシュ・デバイスを、いくつかのバスBS0、BS1、BS2、……によってコントローラ・ユニットCTRLUに接続されているマトリクスに編成することが有利である。いくつかのフラッシュ・デバイスが同じデータ・バスを共有する。たとえば、デバイスDEV0ないしDEV2はバスBS0を共有する。より一般には、同じデータ・バスを共有するフラッシュ・デバイスの数はMである。マトリクス内にはそのようないくつかのフラッシュ・デバイス/共通バス行があり、その数はNである。マトリクスは行当たり少なくとも二つのメモリ・デバイスを含み、列当たり少なくとも二つのメモリ・デバイスを含む。コントローラ・ユニットCTRLUは記憶または記録されるべき高速入力データを受領しうる。
「消去」動作に関しては、デバイス1のようなNANDフラッシュ・メモリにおける最小のアドレッシング可能な単位はフラッシュ・ブロック2である(太い枠で描かれている、すなわち、図では、デバイス1は四つのフラッシュ・ブロックをもつ)。
「書き込み」動作に関しては、NANDフラッシュ・メモリにおける最小のアドレッシング可能な単位はフラッシュ・ページ3である(図では、各フラッシュ・ブロックは四つのフラッシュ・ページをもつ)。
ある実装では、マトリクス内のフラッシュ・ブロックの総数はたとえば4096である。各ブロックは64ページを含みうる。
記憶されるべき入力データは多重化され、N本のパラレルなバスを介して、マトリクスの第一列の各フラッシュ・デバイス内の同じ現在ページに、すなわちデバイスDEV0およびその下に配列されている諸デバイスに書き込まれる。この現在ページがいっぱいになったあとは、後続の入力データは、マトリクスの第二列にある同じ現在ページに、すなわちデバイスDEV1およびその下に配列されている諸デバイスに書き込まれる。この書き込み処理は、マトリクスの全フラッシュ・デバイスの現在ページが入力データで満たされるまでM回続けられる。全フラッシュ・デバイスの現在ページが満たされた状態は、フラッシュ・デバイス中の第二ページの斜めのハッチによって描かれている。その後、書き込み処理は、フラッシュ・デバイス中の次の(すなわち第三の)ページで続けられる。この第三のページは図1では垂直のハッチによってマークされている。これらのページは、ページ・セットSOP(set of pages)をなす。
高速のリアルタイム記録および欠陥修復を達成するために、マトリクスの全フラッシュ・デバイスの現在のフラッシュ・ページについてのデータ内容は、それぞれ、コントローラ・ユニットCTRLUまたはバスに接続されることのできる追加的なメモリ・バッファAMB(additional memory buffer)(たとえばSRAM)に逐次的な仕方でコピーされる。これらのデータは、マトリクスのフラッシュ・デバイスのうちの一つまたは複数のフラッシュ・デバイスの現在ページに一つまたは複数の欠陥が生じたとしても、バッファAMB内に残る。
追加バッファAMBは図2に、より詳細に示されている。図1に描かれているマトリクスは9個のフラッシュ・デバイスを含む。マトリクス中のデバイスの第一列はメモリAMB中の第一列に関係し、マトリクス中の第二列はメモリAMB中の第二列に関係する、などとなる。メモリAMB中のラインは、マトリクス中のデバイスのある行内のあるページに関係する。
マトリクスのフラッシュ・デバイス中の第三ページ(垂直ハッチでマークされている)に書き込むとき、誤りまたは欠陥5が生じた。したがって、これらのページのもとの入力データ内容は、メモリAMB中の対応する領域(垂直ハッチでマークされている)に記憶されたままに保たれる。すなわち、欠陥5のないAMB内に記憶されたままに保たれる。したがって、次の一連のページ(すなわち第四ページ)がフラッシュ・デバイスに書き込まれるとき、もとの入力データはメモリAMB中の後続セクション(すなわち、図2のライン3ないし6)に書き込まれる。どの第四ページにも欠陥が生じていない場合、メモリAMB内のこのセクション(ライン3ないし6)は、次の一連のページ(すなわち、第五ページ)によって上書きされる。第十ページ(すなわち、フラッシュ・デバイスの第三ブロック内)には三つの欠陥5a、5bおよび5cが生じるので、これらのページのもとの入力データ内容は、欠陥のないメモリAMB中の対応する領域(ライン3ないし6)内で、対応する位置5A、5B、5Cに記憶されたままに保たれる。
実際上、コントローラ・ユニットCTRLUの制御のもとで、バッファAMBは欠陥のあるフラッシュ・ページの欠陥のないデータ・コピーを記憶しているが、その容量はフラッシュ・マトリクスの容量よりは著しく小さい。たとえば、RAMメモリAMBは、マトリクスの各デバイスの15までの異なるページのデータ内容が記憶できるような容量をもつことができる。
リアルタイム記録の間に生じたページ誤り(たとえば、5、5a、5bおよび5c)は欠陥リストにおいてマークされる。該欠陥リストの記載事項が図3に示されている。この記載事項は、ブロック番号BLNO(0…B)、ページ番号PGNO(0…P)およびフラッシュ・マトリクス内でのデバイス列番号DEV0,…,DEVmを含みうる。列番号のビットBT0,BT1,…,BTnは、マトリクスのどの行番号(=バス番号BS0,BS1,…,BSn)においてフラッシュ・ページ内の一つまたは複数の欠陥が起こったかを示す。欠陥のページ内の位置を記憶することは必要ではない。
図1内に描かれている9つのフラッシュ・デバイスについての例示的な欠陥リストが図4に示されている。このリストは、コントローラ・ユニットCTRLU内に記憶されることができる。この例示的な欠陥リストは、図1のマトリクス中の欠陥ページを定義する。
第一の欠陥5は、ブロック番号BLNO=0、ページ番号PGNO=2に、そしてビットマップ部BTMPによれば第三デバイス列DEV2での第二バスBS1に関して位置されている。第二の欠陥5aはブロック番号BLNO=2、ページ番号PGNO=1に、第一デバイス列DEV0での第二バスBS1に関して位置されている。第三の欠陥5bはブロック番号BLNO=2、ページ番号PGNO=1に、第二デバイス列DEV1での第二バスBS1に関して位置されている。
第四の欠陥5cはブロック番号BLNO=2、ページ番号PGNO=1に、第二デバイス列DEV1での第三バスBS2に関して位置されている。
さらなる欠陥がブロック番号BLNO=2、ページ番号PGNO=3において、第一デバイス列DEV0での第三バスBS2に関して、および第二デバイス列DEV1での第二バスBS1に関して位置されている。
フラッシュ・デバイスに入力データを書き込む際、または書き込んでいる間、フラッシュ・デバイスはバスBS0ないしBS2を介して何らかの欠陥があればそれをコントローラ・ユニットCTRLUに報告する。
それぞれのフラッシュ・ページ・コピーはバッファされたままに留まる必要がある。欠陥を修復するとき、低電力消費、短い動作時間およびリアルタイム挙動をサポートするよう資源および時間について効率的な仕方で欠陥リストを解析することが有利である。目標は、一つまたは複数の欠陥のあるフラッシュ・ページを含むフラッシュ・ブロックの内容が、同じフラッシュ・デバイス内の空いているフラッシュ・ブロック内の空いている(free)フラッシュ・ページの対応するセットFSOPにコピーされるということである。最後には、欠陥のあるフラッシュ・ブロックは、新しいフラッシュ・ブロックによってたとえばファイル・システムにおいて論理的にリマッピングされる必要がある。
ここで、あらゆる欠陥のフラッシュ・ブロック、フラッシュ・ページ、デバイスおよびバスについての情報を含む欠陥リストを解析するタスクについて以下に記述する。解析処理の間に、ブロック内の適切な欠陥フラッシュ・ページは、バッファから新しいフラッシュ・ブロックにコピーされることになる。ブロック内の他のすべてのフラッシュ・ページは、欠陥のあるそのフラッシュ・ブロックから新しいフラッシュ・ブロックにコピーされることになる。
フラッシュ・ブロックの欠陥フラッシュ・ページを判別する:
a)「ページ」値についてのレジスタ配列を無効な値で初期化する(図5は、フラッシュ・ブロックBLNO=2についての欠陥ページを含む対応するページ・レジスタ配列を示している;該ページ・レジスタは、BLNO=2に関する諸行について列PGNOからの対応するページ番号値を含む);
b)欠陥リストからの最初の有効な「ブロック」値BLNOを「基準ブロック」値とする;
c)ページ・レジスタ配列中の適切なフィールドに欠陥リストからの対応する「ページ」値をコピーする;
d)次の欠陥リスト・エントリーを解析する;
e)現在の「ブロック」値BLNOが「基準ブロック」値に等しい場合、ステップc)に進み、そうでない場合、ステップd)に進む;
f)欠陥リストの終わりに達するまでステップc)ないしe)をループする。
図6は、ステップc)において処理されたページ・エントリーについてのビットマップを記憶するためのビットマップ・レジスタを示している。これらのページのためのビットマップは、逐次的な処理順序PROで処理される(Nビットごとに)。ビットマップ・レジスタは、非欠陥フラッシュ・デバイスをショートカットするために使われる:
g)前記ビットマップについてかつある「デバイス・カウンタ」についてのポインタを初期化する;
h)ポインタをページ・レジスタ配列のために初期化する。ビットマップ・レジスタを0で初期化する;
i)ページ・レジスタ配列における単一のセルをアドレッシングする;
j)その内容が有効である場合、ステップk)に進み、そうでない場合、ステップl)に進む;
k)対応するビットマップ(欠陥リスト中に記憶されている)からNビットをロードし、それを対応するビットマップ・レジスタ値と論理的にORする(N=バス数);
l)ページ・レジスタ配列の終わりに達するまでは、ページ・レジスタ配列ポインタをインクリメントし、ステップi)に進む;
m)ビットマップ・レジスタ値が0に等しい場合、ビットマップの終わりに達するまでは、ビットマップ・ポインタおよび「デバイス・カウンタ」をインクリメントしてステップh)に進む。ビットマップ・レジスタ値が0に等しくない場合には、以下のステップn)ないしu)を開始する。
図7は、ビットマップ・レジスタおよびビットマップ解析に基づくページ置換シーケンスを説明している。目標は、欠陥フラッシュ・デバイス中の欠陥ブロックについてのバスを判別し、対応するフラッシュ・ページをコピーすることである:
n)「バス・カウント」およびページ・レジスタ配列のためのポインタを初期化する;
o)有効な値を求めてページ・レジスタ配列(図5)を読む;
p)「バス・カウント」がポイントしているビットマップ・レジスタ中のビットを解析する:そのビットが0に等しい場合、「バス・カウント」をインクリメントしてステップo)に進み、そのビットが1に等しい場合、ステップq)に進む;
q)0からステップo)で読まれた値から1を引いた値までのすべてのページ値について、フラッシュ・ページを、欠陥のあるフラッシュ・ブロックから新しいフラッシュ・ブロックにコピーする。基準フラッシュ・デバイス番号は、値「デバイス・カウンタ」に対応し、基準バス番号は値「バス・カウント」に対応する;
r)ステップo)で読まれたページ値について、対応するフラッシュ・ページ・データを、追加的なメモリ・バッファAMBから新しいフラッシュ・ブロックにコピーする。基準フラッシュ・デバイス番号は値「デバイス・カウンタ」に対応し、基準バス番号は値「バス・カウント」に対応する;
s)ページ・レジスタ配列の終わりに達するまで、ページ・レジスタ配列についてのポインタをインクリメントしてステップo)に進む;
t)適切なデバイスについての「ブロック・リマッピング・テーブル」を更新し、欠陥リスト中の対応するブロック・エントリーを無効とマークする;
u)ステップa)に進む。
上記のレジスタ、ポインタ、リストおよびテーブルは、コントローラ・ユニットCTRLUによって制御されることができる。
本発明は、寿命の間、欠陥によって影響を受けうるいかなるブロック指向の記憶においても使用できる。
フラッシュ・デバイスのマトリクスを示す図である。 欠陥のあるフラッシュ・ページの欠陥のないデータ・コピーを含む追加バッファを示す図である。 欠陥リストの記載事項を示す図である。 例示的な欠陥リストを示す図である。 ページ・レジスタ配列を示す図である。 ビットマップ・レジスタを示す図である。 ページ置換シーケンスを示す図である。

Claims (8)

  1. 高速入力データを第一の型のメモリ・デバイスのマトリクス中に記録する方法であって、前記マトリクスは、行当たり少なくとも二つのメモリ・デバイスおよび列当たり少なくとも二つのメモリ・デバイスを含み、ここで、ある行の諸メモリ・デバイス(DEV0,DEV1,DEV2)は共通のバス(B0)に接続され、前記マトリクスの各行には別個の共通バス(B0,B1,B2)が割り当てられており、前記メモリ・デバイスはそれぞれ、内部的に複数ページに構成されており、それらのページに入力データが逐次的な仕方で書き込まれることができ、前記第一の型のメモリ・デバイスに書き込むとき、前記メモリ・デバイスの種々の位置に欠陥(5、5a、5b、5c)が生じることがあり、当該方法は:
    A)前記諸メモリ・デバイスの同じ現在ページにおいて、メモリ・デバイスの第一列(DEV0)から始まって一列ずつ、前記共通バスを使って、多重化された仕方で入力データの最初のセクションを書き込み、前記第一の型とは異なる第二の型の追加的なメモリ・デバイス(AMB)の対応するセクション内にも入力データのこの最初のセクションを書き込むステップと;
    B)入力データの前記最初のセクションを前記諸メモリ・デバイスの前記現在ページに書き込んでいる間に少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥(5、5a、5b、5c)が生じたかどうかを検査する(CTRLU)ステップと;
    C)前記諸メモリ・デバイスの後続ページにおいて、メモリ・デバイスの第一列から始まって一列ずつ、前記共通バスを使って、多重化された仕方で入力データの後続セクションを書き込み、
    先のステップで欠陥がみつからなかった場合には、入力データのこの後続セクションを、前記追加的なメモリ・デバイスの同じセクションにも書き込み、
    先のステップで欠陥がみつかった場合には、入力データのこの後続セクションを、前記追加的なメモリ・デバイスの後続の対応するセクション内にも書き込むステップと;
    D)入力データの前記後続セクションを前記後続ページに書き込んでいる間に少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥(5、5a、5b、5c)が生じたかどうかを検査する(CTRLU)ステップと;
    E)入力データのすべてのセクションがメモリ・デバイスの前記マトリクスに、および前記追加的なメモリ・デバイス(AMB)に書き込まれるまで、ステップC)およびD)を続けるステップと;
    F)メモリ・デバイスの前記マトリクスのページの対応する諸セット(SOP)であって各セットごとに少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥を含む諸セットに記憶されている入力データを、前記入力データによってまだ占められていない、メモリ・デバイスの前記マトリクスのページの対応する諸セット(FSOP)にコピーし、その際、欠陥のある個別ページの入力データをメモリ・デバイスの前記マトリクスからではなく前記追加的なメモリ・デバイス(AMB)に記憶されている対応する個別ページのデータから取る、ステップとを特徴とする、
    方法。
  2. 高速入力データを第一の型のメモリ・デバイスのマトリクス中に記録する装置であって、前記マトリクスは、行当たり少なくとも二つのメモリ・デバイスおよび列当たり少なくとも二つのメモリ・デバイスを含み、ここで、ある行の諸メモリ・デバイス(DEV0,DEV1,DEV2)は共通のバス(B0)に接続され、前記マトリクスの各行には別個の共通バス(B0,B1,B2)が割り当てられており、前記メモリ・デバイスはそれぞれ、内部的に複数ページに構成されており、それらのページに入力データが逐次的な仕方で書き込まれることができ、前記第一の型のメモリ・デバイスに書き込むとき、前記メモリ・デバイスの種々の位置に欠陥(5、5a、5b、5c)が生じることがあり、当該装置は、前記第一の型とは異なる第二の型の追加的なメモリ・デバイス(AMB)および以下の機能を実行するよう適応された手段(CTRLU、BS0、BS1、BS2)を含んでおり、以下の機能とは:
    A)前記諸メモリ・デバイスの同じ現在ページにおいて、メモリ・デバイスの第一列(DEV0)から始まって一列ずつ、前記共通バスを使って、多重化された仕方で入力データの最初のセクションを書き込み、前記追加的なメモリ・デバイス(AMB)の対応するセクション内にも入力データのこの最初のセクションを書き込む機能と;
    B)入力データの前記最初のセクションを前記諸メモリ・デバイスの前記現在ページに書き込んでいる間に少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥(5、5a、5b、5c)が生じたかどうかを検査する機能と;
    C)前記諸メモリ・デバイスの後続ページにおいて、メモリ・デバイスの第一列から始まって一列ずつ、前記共通バスを使って、多重化された仕方で入力データの後続セクションを書き込み、
    上記の機能で欠陥がみつからなかった場合には、入力データのこの後続セクションを、前記追加的なメモリ・デバイスの同じセクションにも書き込み、
    上記の機能で欠陥がみつかった場合には、入力データのこの後続セクションを、前記追加的なメモリ・デバイスの後続の対応するセクション内にも書き込む機能と;
    D)入力データの前記後続セクションを前記後続ページに書き込んでいる間に少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥(5、5a、5b、5c)が生じたかどうかを検査する機能と;
    E)入力データのすべてのセクションがメモリ・デバイスの前記マトリクスに、および前記追加的なメモリ・デバイス(AMB)に書き込まれるまで、機能C)およびD)を続ける機能と;
    F)メモリ・デバイスの前記マトリクスのページの対応する諸セット(SOP)であって各セットごとに少なくとも一つのメモリ・デバイス中の少なくとも一つの欠陥を含む諸セットに記憶されている入力データを、前記入力データによってまだ占められていない、メモリ・デバイスの前記マトリクスのページの対応する諸セット(FSOP)にコピーし、その際、欠陥のある個別ページの入力データをメモリ・デバイスの前記マトリクスからではなく前記追加的なメモリ・デバイス(AMB)に記憶されている対応する個別ページのデータから取る、機能である、
    装置。
  3. 前記第一の型のメモリ・デバイスがフラッシュ・メモリである、請求項1記載の方法または請求項2記載の装置。
  4. 前記欠陥が、各欠陥についての対応するページ、対応するメモリ・デバイスおよび対応するバスについての情報項目を含む欠陥リストに記憶される、請求項1記載の方法または請求項2記載の装置。
  5. 前記欠陥が、各欠陥についての対応するブロック、対応するページ、対応するメモリ・デバイスおよび対応するバスについての情報項目を含む欠陥リストに記憶される、請求項3記載の方法または装置。
  6. 請求項5記載の方法または装置であって、フラッシュ・ブロックの欠陥フラッシュ・ページの判別が:
    a)「ページ」値についてのレジスタ配列を無効な値で初期化し;
    b)前記欠陥リストからの最初の有効な「ブロック」値BLNOを「基準ブロック」値とし;
    c)前記ページ・レジスタ配列中の適切なフィールドに前記欠陥リストからの対応する「ページ」値をコピーし;
    d)次の欠陥リスト・エントリーを解析し;
    e)現在の「ブロック」値BLNOが「基準ブロック」値に等しい場合、ステップc)に進み、そうでない場合、ステップd)に進み;
    f)前記欠陥リストの終わりに達するまでステップc)ないしe)を続ける、
    ようにして行われる、方法または装置。
  7. 請求項6記載の方法または装置であって、ステップc)において処理されたページ・エントリーについてのビットマップを記憶するためのビットマップ・レジスタが生成され、これらのページのためのビットマップのNビット毎が、逐次的な処理順序(PRO)で処理され、前記ビットマップ・レジスタは、非欠陥フラッシュ・デバイスをショートカットするために使われ、前記ビットマップ・レジスタの生成は:
    g)前記ビットマップについてかつある「デバイス・カウンタ」についてのポインタを初期化し;
    h)前記ページ・レジスタ配列についてのポインタを初期化し、前記ビットマップ・レジスタを0で初期化し;
    i)前記ページ・レジスタ配列における単一のセルをアドレッシングし;
    j)その内容が有効である場合、ステップk)に進み、そうでない場合、ステップl)に進み;
    k)前記欠陥リスト中に記憶されている対応するビットマップからNビットをロードし、それを対応するビットマップ・レジスタ値と論理的にORし;
    l)前記ページ・レジスタ配列の終わりに達するまでは、ページ・レジスタ配列ポインタをインクリメントし、ステップi)に進み;
    m)前記ビットマップ・レジスタ値が0に等しい場合、ビットマップの終わりに達するまでは、前記ビットマップ・ポインタおよび前記「デバイス・カウンタ」をインクリメントしてステップh)に進む、
    ようにして行われる、方法または装置。
  8. 請求項7記載の方法または装置であって、ステップm)で、前記ビットマップ・レジスタ値が0に等しくない場合には、欠陥フラッシュ・デバイス中の欠陥ブロックについてのバスを判別し、対応するフラッシュ・ページをコピーするために、以下のステップ、すなわち:
    n)「バス・カウント」および前記ページ・レジスタ配列のためのポインタを初期化し;
    o)有効な値を求めて前記ページ・レジスタ配列を読み;
    p)「バス・カウント」がポイントしている前記ビットマップ・レジスタ中のビットを解析し:そのビットが0に等しい場合、「バス・カウント」をインクリメントしてステップo)に進み、そのビットが1に等しい場合、ステップq)に進み;
    q)0からステップo)で読まれた値から1を引いた値までのすべてのページ値について、フラッシュ・ページを、欠陥のあるフラッシュ・ブロックから新しいフラッシュ・ブロックにコピーし、ここで、基準フラッシュ・デバイス番号は、値「デバイス・カウンタ」に対応し、基準バス番号は値「バス・カウント」に対応し;
    r)ステップo)で読まれたページ値について、対応するフラッシュ・ページ・データを、前記追加的なメモリ・バッファ(AMB)から新しいフラッシュ・ブロックにコピーし、ここで、基準フラッシュ・デバイス番号は値「デバイス・カウンタ」に対応し、基準バス番号は値「バス・カウント」に対応し;
    s)前記ページ・レジスタ配列の終わりに達するまでは、前記ページ・レジスタ配列についてのポインタをインクリメントしてステップo)に進み;
    t)適切なデバイスについての「ブロック・リマッピング・テーブル」を更新し、前記欠陥リスト中の対応するブロック・エントリーを無効とマークし;
    u)請求項6記載のステップa)に進む、
    ステップが実行される、方法または装置。
JP2008549800A 2006-01-16 2006-12-04 高速入力データをメモリ・デバイスのマトリクスに記録する方法および装置 Expired - Fee Related JP5160448B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP06090010A EP1808863A1 (en) 2006-01-16 2006-01-16 Method and apparatus for recording high-speed input data into a matrix of memory devices
EP06090010.7 2006-01-16
PCT/EP2006/069265 WO2007080031A1 (en) 2006-01-16 2006-12-04 Method and apparatus for recording high-speed input data into a matrix of memory devices

Publications (3)

Publication Number Publication Date
JP2009524127A true JP2009524127A (ja) 2009-06-25
JP2009524127A5 JP2009524127A5 (ja) 2010-01-07
JP5160448B2 JP5160448B2 (ja) 2013-03-13

Family

ID=36763177

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008549800A Expired - Fee Related JP5160448B2 (ja) 2006-01-16 2006-12-04 高速入力データをメモリ・デバイスのマトリクスに記録する方法および装置

Country Status (12)

Country Link
US (1) US7802152B2 (ja)
EP (2) EP1808863A1 (ja)
JP (1) JP5160448B2 (ja)
KR (1) KR101261671B1 (ja)
CN (1) CN101361137B (ja)
AT (1) ATE430364T1 (ja)
AU (1) AU2006334660B2 (ja)
CA (1) CA2636237C (ja)
DE (1) DE602006006600D1 (ja)
RU (1) RU2417461C2 (ja)
TW (1) TWI403896B (ja)
WO (1) WO2007080031A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101715145B (zh) 2008-10-06 2012-08-15 辉达公司 利用级联存储器评估处理能力的设备和方法
US7945822B1 (en) * 2009-04-27 2011-05-17 Netapp, Inc. Storing data to multi-chip low-latency random read memory device using non-aligned striping
EP2270662A1 (en) * 2009-06-29 2011-01-05 Thomson Licensing Method and apparatus for dealing with write errors when writing information data into flash memory devices
EP2388706A1 (en) * 2010-05-21 2011-11-23 Thomson Licensing Method and system for real-time streaming and storage
KR102072449B1 (ko) 2012-06-01 2020-02-04 삼성전자주식회사 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 리페어 방법
US9026893B1 (en) * 2012-12-13 2015-05-05 Western Digital Technologies, Inc. Dynamically assigning inactive pages not used in Reed-Solomon code in non-volatile solid-state storage array
US9502139B1 (en) 2012-12-18 2016-11-22 Intel Corporation Fine grained online remapping to handle memory errors
US9286176B1 (en) 2013-11-08 2016-03-15 Western Digital Technologies, Inc. Selective skipping of blocks in an SSD
US10120816B2 (en) * 2016-07-20 2018-11-06 Sandisk Technologies Llc Bad column management with data shuffle in pipeline
CN107423159B (zh) * 2017-07-11 2019-06-28 华中科技大学 一种基于闪存错误模式提升ldpc译码性能的方法
CN107395214B (zh) * 2017-07-12 2019-06-28 华中科技大学 一种基于闪存页错误特性降低ldpc译码延迟的方法
CN107391299B (zh) * 2017-07-17 2019-06-18 华中科技大学 一种提升闪存存储系统读性能的方法
US11475102B2 (en) * 2019-02-21 2022-10-18 Samsung Electronics Co., Ltd. Adaptive matrix multiplication accelerator for machine learning and deep learning applications

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05282887A (ja) * 1992-03-31 1993-10-29 Toshiba Corp 不揮発性半導体メモリ装置
US5864661A (en) * 1994-05-10 1999-01-26 Kabushiki Kaisha Toshiba IC memory card having flash memory
US20030196029A1 (en) * 1993-10-01 2003-10-16 Fujitsu Limited Method of writing, erasing, and controlling memory for memory device
US20040030957A1 (en) * 2002-08-12 2004-02-12 Sitaram Yadavalli Various methods and apparatuses to track failing memory locations to enable implementations for invalidating repeatedly failing memory locations
US20050169045A1 (en) * 1991-11-26 2005-08-04 Hajime Yamagami Storage device employing a flash memory
WO2005111812A1 (ja) * 2004-05-19 2005-11-24 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置のためのエラー訂正方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5708771A (en) * 1995-11-21 1998-01-13 Emc Corporation Fault tolerant controller system and method
KR100389867B1 (ko) * 2001-06-04 2003-07-04 삼성전자주식회사 플래시 메모리 관리방법
KR100532413B1 (ko) * 2002-12-02 2005-12-02 삼성전자주식회사 플래시 메모리 보호 장치 및 방법
US20040153902A1 (en) * 2003-01-21 2004-08-05 Nexflash Technologies, Inc. Serial flash integrated circuit having error detection and correction
KR100543447B1 (ko) * 2003-04-03 2006-01-23 삼성전자주식회사 에러정정기능을 가진 플래쉬메모리장치
US7392436B2 (en) * 2003-05-08 2008-06-24 Micron Technology, Inc. Program failure recovery
US7606993B2 (en) * 2003-06-10 2009-10-20 Tdk Corporation Flash memory controller, memory control circuit, flash memory system, and method for controlling data exchange between host computer and flash memory
JP4595342B2 (ja) * 2004-02-19 2010-12-08 日本電気株式会社 記憶装置のデータ書き込み、読み出し方法およびデータ記憶システム
KR100845526B1 (ko) * 2006-10-19 2008-07-10 삼성전자주식회사 플래시 메모리를 포함한 메모리 시스템 및 그것의 프로그램방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050169045A1 (en) * 1991-11-26 2005-08-04 Hajime Yamagami Storage device employing a flash memory
JPH05282887A (ja) * 1992-03-31 1993-10-29 Toshiba Corp 不揮発性半導体メモリ装置
US20030196029A1 (en) * 1993-10-01 2003-10-16 Fujitsu Limited Method of writing, erasing, and controlling memory for memory device
US5864661A (en) * 1994-05-10 1999-01-26 Kabushiki Kaisha Toshiba IC memory card having flash memory
US20040030957A1 (en) * 2002-08-12 2004-02-12 Sitaram Yadavalli Various methods and apparatuses to track failing memory locations to enable implementations for invalidating repeatedly failing memory locations
WO2005111812A1 (ja) * 2004-05-19 2005-11-24 Matsushita Electric Industrial Co., Ltd. 不揮発性記憶装置のためのエラー訂正方法

Also Published As

Publication number Publication date
TW200739341A (en) 2007-10-16
AU2006334660A1 (en) 2007-07-19
EP1974354A1 (en) 2008-10-01
RU2417461C2 (ru) 2011-04-27
ATE430364T1 (de) 2009-05-15
JP5160448B2 (ja) 2013-03-13
TWI403896B (zh) 2013-08-01
CA2636237C (en) 2014-07-08
CA2636237A1 (en) 2007-07-19
KR20080092364A (ko) 2008-10-15
US20090083591A1 (en) 2009-03-26
CN101361137A (zh) 2009-02-04
CN101361137B (zh) 2011-06-22
EP1808863A1 (en) 2007-07-18
AU2006334660B2 (en) 2011-08-25
RU2008133604A (ru) 2010-02-27
DE602006006600D1 (de) 2009-06-10
WO2007080031A1 (en) 2007-07-19
KR101261671B1 (ko) 2013-05-06
US7802152B2 (en) 2010-09-21
EP1974354B1 (en) 2009-04-29

Similar Documents

Publication Publication Date Title
JP5160448B2 (ja) 高速入力データをメモリ・デバイスのマトリクスに記録する方法および装置
US8301825B2 (en) Method and system for storing logical data blocks into flash-blocks in multiple non-volatile memories which are connected to at least one common data I/O bus
TWI441189B (zh) 用於改良冗餘分析之記憶體裝置故障彙總資料縮減技術
JP2009524127A5 (ja)
US9111643B2 (en) Method and apparatus for repairing defective memory cells
JPH0822417A (ja) 回復可能なセット連想キャッシュ
US9514843B2 (en) Methods for accessing a storage unit of a flash memory and apparatuses using the same
CN100492323C (zh) 对缓存内容进行保护的方法和装置以及缓存控制器
US8468384B2 (en) Method and apparatus for dealing with write errors when writing information data into memory devices
US4445191A (en) Data word handling enhancement in a page oriented named-data hierarchical memory system
CN117037884B (zh) 在存储阵列中使用的熔断器单元及其处理方法、存储阵列
JPH05342113A (ja) 組み込み型システムのramの故障検出方法
JPS60151747A (ja) マイクロプログラム制御装置
JPS60103597A (ja) Icメモリテストシステムにおける機能テスト結果格納方式
WO2008087082A9 (en) Method and apparatus for recording data into a matrix of memory devices

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091110

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120620

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120919

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121016

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121105

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121127

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121212

R150 Certificate of patent or registration of utility model

Ref document number: 5160448

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151221

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees