JP5364911B2 - 動的ecc符号化率調節方法、装置、およびシステム - Google Patents

動的ecc符号化率調節方法、装置、およびシステム Download PDF

Info

Publication number
JP5364911B2
JP5364911B2 JP2012084226A JP2012084226A JP5364911B2 JP 5364911 B2 JP5364911 B2 JP 5364911B2 JP 2012084226 A JP2012084226 A JP 2012084226A JP 2012084226 A JP2012084226 A JP 2012084226A JP 5364911 B2 JP5364911 B2 JP 5364911B2
Authority
JP
Japan
Prior art keywords
bit error
rate
error rate
ecc engine
memory array
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.)
Active
Application number
JP2012084226A
Other languages
English (en)
Other versions
JP2012155737A (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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of JP2012155737A publication Critical patent/JP2012155737A/ja
Application granted granted Critical
Publication of JP5364911B2 publication Critical patent/JP5364911B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1068Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in sector programmable memories, e.g. flash disk

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Read Only Memory (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Prevention Of Errors In Transmission (AREA)

Description

メモリデバイスがデータを記憶および正確に保持する能力は重要である。プロセス技術の縮小化(scaling)によりメモリデバイスの小型化が進むにつれて、記憶データのインテグリティを危険に曝すビット誤りが益々問題になってきている。1を超えるビットが単一のメモリセルに記憶されるマルチレベルセル(MLC)メモリにおいても、ビット誤りは問題を呈することがある。
メモリデバイスのビット誤り率(BER)は静的ではなく、メモリが利用されていくうちにメモリセルの電荷保持機能が低下するにつれ、経時的に変化しうる。
本発明の実施形態は、以下の詳細な記載を、以下の図面とともに読むことでよりよく理解される。
幾らかの実施形態による、誤り訂正装置を示すブロック図である。 メモリデバイスの出力誤り率対符号化率を表すグラフである。 幾らかの実施形態による、訂正不能なコードワード信号の生成を示すフロー図である。 幾らかの実施形態による、符号化率調節を示すフロー図である。 幾らかの実施形態による、符号化率調節を示すフロー図である。 幾らかの実施形態によるシステムを示す。
以下の記載においては、多数の特定の詳細を述べる。しかし、本発明の実施形態は、これら特定の詳細なく実施可能であることを理解されたい。他の場合には、公知の回路および技術は詳細には示さないことで記載の理解を曖昧にしないよう努めている。
「1実施形態」「1つの実施形態」「例示的実施形態」「様々な実施形態」等の用語は、本発明の記載される実施形態(1以上)が特定のフィーチャ、構造、または特性を含みうるが、全ての実施形態がこれら特定のフィーチャ、構造、または特性を含む必要はないことを示す。さらに、幾らかの実施形態は、他の実施形態で記載したフィーチャの幾らか、または全てを含んでもよく、または1つも含まなくてもよい。
以下の記載および請求項では、「連結」、「接続」、およびその派生語を利用している場合がある。これら用語は、互いに同義語であることを意図していない。特定の実施形態においては、「接続」とは、2以上の部材が互いに直接物理的または電気的接触関係にあることを示している。「連結」とは、2つ以上の部材が、互いに協働、または相互作用するが、必ずしも直接的な物理的または電気的接触関係になくてもよい。
請求項では、そうではないと明記していない限り、共通の部材を示す「第1」「第2」「第3」といった序数形容詞の利用は、単に、同様の部材の異なるインスタンスであることを示しており、これら記載される部材が、時間的、空間的、順位付け、または他の如何なる様態でもこの順序になければならないことを示しているわけではない。
本発明の様々な実施形態は、ハードウェア、ファームウェア、およびソフトウェアのうち1つ、またはこれらの任意の組み合わせにより実装可能である。本発明はさらに、1以上のプロセッサにより読み取りおよび実行されることでここで記載する動作を実行することのできる、機械読み取り可能な媒体に含まれる命令として実装されてよい。機械読み取り可能な媒体は、機械(例えばコンピュータ)読み取り可能な形式で情報を記憶、送信、および/または受信する任意の機構を含みうる。例えば、機械読み取り可能な媒体は、読み取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、磁気ディスク記憶媒体、光学記憶媒体、フラッシュメモリデバイス等を含むがそれらに限定されない記憶媒体を含みうる。機械読み取り可能な媒体はさらに、電磁、光学、または音響搬送波信号等であるが、それらに限定されない、命令を符号化すべく変調された伝播信号も含む。
「無線」およびその派生語を利用して、非固体媒体による変調電磁放射を利用してデータを通信する回路、デバイス、システム、方法、技術、通信チャネル等を表している場合がある。しかしこの用語は、関連デバイスがワイヤを全く含まないことを示唆しているわけではないが、幾らかの実施形態では全く含まない場合もあってもよい。「携帯無線デバイス」という用語は、通信中に動いている可能性のある無線デバイスのことを表すのに利用される。
図1は、幾らかの実施形態による、誤り訂正装置を示すブロック図である。誤り訂正装置は、メモリアレイ(102)、メモリアレイ(102)に連結された誤り制御符号化(ECC)エンジン(104)、および、ECCエンジン(104)に連結されたビット誤り率モニタ(106)を含む。幾らかの実施形態においては、メモリアレイ(102)、ECCエンジン(104)、およびビット誤り率モニタ(106)は、例えばメモリデバイス上などの、単一のダイ上に配置されてもよい。他の実施形態においては、これらコンポーネントが、単一のパッケージ内の異なるダイ上に配置されてよい。また他の実施形態においては、メモリアレイがメモリデバイスの一部であり、ECCエンジンおよびビット誤り率モニタが、メモリデバイスとは別個のメモリコントローラデバイスの一部であってもよい。他の構成もまた可能であってよい。
メモリアレイ(102)は、例えば不揮発性フラッシュメモリセルのようなメモリセルアレイであってよい。幾らかの実施形態においては、不揮発性メモリセルは、セル毎に1を超える数のビットを記憶することができてよい。例えば、メモリセルは、セル毎に2以上のビットを記憶することのできるマルチレベルフラッシュメモリセル(MLC)であってよい。幾らかの実施形態においては、アレイは、NANDフラッシュメモリセルのアレイであってよい。しかし、実施形態は、NORフラッシュメモリ、相変化メモリ、またはECCを利用して誤り訂正を行うのに適した任意の他の種類のメモリを含むがそれらに限定されない、他の種類のメモリに対しても適用可能であることを理解されたい。
メモリアレイは、情報データとECCパリティデータとを記憶する。このデータは、情報およびパリティデータ両方を含むコードワード形式で記憶されていてよい。ここでは、メモリアレイ(102)から読み取られるデータは、出力データ(110)と称することにする。メモリアレイ(102)に書き込まれるデータは、プログラミングされたデータ(112)と称することにする。
データがメモリアレイに書き込まれるとき、ECCエンジン(104)は、メモリアレイにデータをコードワードとして書き込む前に、パリティデータを計算して、情報およびパリティデータ両方を含むコードワードを形成する。ECCエンジンはさらに、前にコードワードとしてプログラミングされた出力データに、誤り訂正を施す。
ECCエンジン(104)は、多数の誤り制御符号のうちいずれかを利用して、コードワードを形成し、誤り訂正を行う。例えば、ECCエンジンは、BCH符号またはリード・ソロモン符号を利用してよく、または、別の誤り制御符号を利用してよい。
概して一クラスのブロック符号については、一定範囲の符号化率については(つまり、コードワード内における、情報ビットの数kの全ビット数nに対する割合)、ECCエンジン(104)は、所定の数の誤りtまでの訂正が可能である。t以下の誤りを含むコードワードについては、誤りはECCエンジン(104)による訂正が可能であり、ポストECCデータ(114)を生成する。ポストECCデータ(114)は、情報とパリティビットと、誤り情報とを含みうる。訂正可能なコードワードについては、ポストECC情報およびパリティビットには誤りがなく、誤り訂正数に関する情報は、もしあれば、ECCエンジン(104)により生成される。例えば、BCH符号においては、誤り訂正数の決定は、誤り位置多項式の次数と等価である。各コードワードの誤り訂正数は、ビット誤り率モニタ(106)がビット誤り率を推定するのに利用されてよい。
1つのコードワードがt個を超える数の誤りを含むとき、コードワードは訂正不能であり、ECCエンジン(104)は、訂正不能コードワード信号(116)をビット誤り率モニタ(106)へ送る。訂正不能なコードワードについては、情報およびパリティビットは、少なくとも1つの誤りを含む。ECCエンジンは、正確な誤り訂正数は提供できないが、この数はtより大きいと仮定される。
幾らかの実施形態においては、ECCエンジン(104)の符号化率を、コードワード長を増減することで変更することができる。例えば、コードワードが、(n)から(n−l)に短くされてよい(ここでlは、コードワード毎の低減ビット数である)。コードワードをlビット分短くすることで、符号化率は、(k/n)から(k−l)/(n−l)に変更される。故に、ECCエンジンの符号化率を、ECCエンジンの符号化復号化機能を修正することなく変更することができる。
ビット誤り率モニタ(106)は、ECCエンジン(104)から受信した訂正不能コードワード信号に少なくとも部分的に基づいて、ビット誤り率を動的に決定する。ビット誤り率が所望のビット誤り率から所定の閾値分ずれている場合、ビット誤りモニタ(106)は、信号(120)をECCエンジンに送り、符号化率を調節する必要があることを示す。所望のビット誤り率および所定の閾値は両方とも、ユーザ設定可能な値であってよい。
ビット誤り率モニタが決定したビット誤り率が、所望のビット誤り率よりも所定の閾値分大きい場合、符号化率変更信号(120)は、ECCエンジンの符号化率を低減すべきであることを示す。ビット誤り率モニタが決定したビット誤り率が、所望のビット誤り率よりも所定の閾値分小さい場合、符号化率変更信号(120)は、ECCエンジンの符号化率を増加すべきであることを示す。
符号化率は、ECCエンジンの様々なパラメータの変更(コードワード長の変更または最大訂正数の変更を含むが、それらに限定されない)により変更されてよい。幾らかの実施形態においては、ECCエンジンの符号化率は、ビット誤りモニタが決定したビット誤り率の変更に呼応してコードワード長を変更することにより、第1の符号化率から第2の符号化率への動的な変更が可能である。
幾らかの実施形態においては、ビット誤り率モニタ(106)は、出力誤り率を決定する。出力誤り率は、訂正不能なコードワードに遭遇する前に読み取られた平均ビット数の逆数として定義される。訂正不能なコードワードに遭遇する前に読み取られた平均ビット数は、所定のパラメータで計算することができる。例えば、出力誤り率(ER)は、以下の計算により推定可能であるが、この式においてBは次の訂正不能コードワードに遭遇する前に読み取られるビット数である。
Figure 0005364911
この計算において、jは採られたサンプル数であり、これは符号化率に対する反応レベルを変更するべく調節が可能である。符号化率を頻繁に変更しすぎることが望ましくない場合、jを大きくしておくことが考えられる。同様に、符号化率を迅速に調節して所望の出力誤り率に迅速に達することが望ましい場合には、jを小さくしておいてよい。幾らかの実施形態においては、Bの値をカウンタを利用して保存してよい。例えば、出力誤り率10−12においては、Bは40ビットカウンタに収まる。他の実施形態においては、出力誤り率の逆数を計算して、これを符号化率変更のトリガとして利用することができる。この場合には、計算は、jを2の累乗として選択する場合、右にシフトしたBiの値の合計として実装されてよい。
他の実施形態においては、ビット誤り率モニタ(106)は、入力ビット誤り率を決定してよい。入力ビット誤り率は以下のように計算できる。
Figure 0005364911
この数式においては、Tはt個未満のビット誤りを有する全てのコードワードについての全ビット誤り数であり、Tは、j個の読み取られたコードワード内の訂正不能なコードワードの総数であり、tは、ECCを利用して訂正可能な、コードワード内のビット誤りの最大数であり、(n−l)は、1コードワード内の全ビット数である。短くされていないコードワードの場合、lはゼロである。
入力ビット誤り率を利用して、符号化率の変更をトリガすることができる(120)。入力ビット誤り率に基づいて、出力誤り率を、ランダムビット誤り率の二項分布に基づいて推定することができる。または、入力ビット誤り率の出力誤り率に対するマッピングを、ルックアップテーブルを用いて実装することができる。実際に利用される符号化率の数は小さい場合もあり(例えば10未満)、ルックアップテーブルのサイズも小さい。
符号化率変更信号(120)をビット誤りモニタ(106)から受信すると、ECCエンジン(104)は、メモリアレイ(102)にプログラミングされているコードワードをプログラミングしなおす必要がある場合がある。この処理は、コードワードをメモリアレイにプログラミングしなおす前に読み出して、新たな符号化率を利用して符号化しなおすことを必要とする場合がある。この処理は、1以上のアイドル期間中に行われてよい。この処理の中断は、ステートマシンにより、およびメモリアレイ内のプログラミングしなおされたブロックをシステマチックに追跡することにより行われてよい。
以下に示す表1は、メモリアレイが、メモリデバイスの誤り率に応じて、様々なコードワードサイズについて再構成される様子を示す。メモリデバイスの総容量は、許容範囲の原ビット誤り率が増加している間低減しうる。
Figure 0005364911
最初にデータは、ビット誤り率レベル1で読み書きが行われていてよい。検知された誤り率が3.4e−5に近づくと、デバイスは、コードワードサイズを変更してビット誤り率レベル2で動作しようと試みてよい。新たなデータはより小さなコードワードを利用して書き込まれ、より強い誤り訂正が行われる。メモリに先に記憶された古いデータを更新して、より小さなコードワードを利用する。この更新は、バックグラウンドのタスクとして実行されうる。データと共に、そのデータがどのレベルに符号化されたかを示す指標を記憶させてもよい。デバイスの所定のパーセンテージに達すると(例えば97.7%以上)空き容量がなくなるので、ビット誤り率レベルは変更されない。検知された誤り率が6.3e−5に近くなったら、上述の方法同様にビット誤りレベル3で動作するようデバイスが切り替わってよい。
図2は、出力誤り率を、n=32767、k=32692、およびt=5の場合の、様々な入力ビット誤り率(202、204、206、208、210)における、符号化率の関数として示すグラフ(200)である。グラフからは、符号化率が低くなると出力誤り率も低くなることが分かる。これは、入力ビット誤り率が固定されている場合には、コードワードサイズが小さくなると、t個を超える数の誤りを有するコードワードがある確率が低くなるからである。故に、固定符号化復号化回路においては、図1を参照して上述したように符号化率を動的に変更することで、入力ビット誤り率が固定されているときの出力誤り率を調節することができる。
グラフ(200)からは、さらに、入力ビット誤り率が変化しても、符号化率を変更することで出力誤り率が維持される場合があることが分かる。例えば、入力ビット誤り率が5E−06(208)から1E−05(206)へと増加した場合でも、符号化率を0.995から0.990へ低減させることで、出力誤り率は1E−13に維持することができる。
図3は、幾らかの実施形態による、訂正不能なコードワード信号の生成を示すフロー図である。読み取りコマンドがプロセッサまたはメモリコントローラから発行されると、1以上のコードワードがメモリセルアレイから読み出されてよい。アレイから読み出された各コードワードについて、ECCエンジンは、該コードワードがECCを利用して訂正可能であるか否かを判断する(ブロック302)。訂正可能である場合、該コードワードに対して誤り訂正を行う(ブロック304)。訂正不能である場合、つまり、ECC方式で訂正可能な誤り数tを超える誤りを含む場合、訂正不能コードワード信号をビット誤り率モニタに送る(ブロック306)。この処理は、メモリアレイから読み出される全てのコードワードについて繰り返される(ブロック308)。訂正不能コードワード信号は、後にビット誤り率モニタがビット誤り率を決定する際に利用されうる。
図4は、幾らかの実施形態による、出力誤り率を利用した符号化率調節を示すフロー図である。出力誤り率は、少なくとも1以上の受信された訂正不能コードワード信号に基づいて決定される(ブロック402)。幾らかの実施形態においては、出力誤り率は、図1に関して上述した方法でビット誤り率モニタにより計算されてよい。出力誤り率が所定の閾値を超える場合、または、所望の率よりも所定値ずれている場合(ブロック404)、ECCエンジンの符号化率を調節する(ブロック406)。幾らかの実施形態においては、ECCエンジンに符号化率変更信号を送ることでECCエンジンの符号化率を上下に調節してよい。出力誤り率が閾値を超えない場合、または、所定の率からずれていない場合、ECCエンジンの符号化率は修正されない。この場合、信号もECCエンジンに送らなくてよい。全ての出力データが処理されるまで、引き続き出力誤り率を算出してビット誤り率を調節する(ブロック408)。
図5は、幾らかの実施形態による、入力ビット誤り率を利用した符号化率調節を示すフロー図である。入力ビット誤り率は、各コードワードの訂正ビット数に少なくとも基づいて決定される(ブロック502)。幾らかの実施形態においては、入力ビット誤り率は、図1に関して上述した方法でビット誤り率モニタブロックにより計算されてよい。その後、この入力ビット誤り率に基づいて出力誤り率を決定してよい(ブロック504)。幾らかの実施形態においては、出力誤り率は、ビット誤り率の二項分布に基づいて推定することができる。他の実施形態においては、出力誤り率は、ルックアップテーブルを用いて入力ビット誤り率にマッピングすることができる。決定された出力誤り率が所定の閾値を超える場合、または、所望の率よりも所定値ずれている場合(ブロック506)、ECCエンジンの符号化率を調節する(ブロック508)。幾らかの実施形態においては、ECCエンジンに符号化率変更信号を送ることでECCエンジンの符号化率を上下に調節してよい。出力誤り率が閾値を超えない場合、または、所定の率からずれていない場合、ECCエンジンの符号化率は修正されない。この場合、信号もECCエンジンに送らなくてよい。全ての出力データが処理されるまで、引き続き出力誤り率を算出してビット誤り率を調節する(ブロック510)。
別の実施形態においては(不図示)、ECCエンジンの符号化率の調節は、入力ビット誤り率のみに基づいて行われてよい。この場合、出力誤り率の決定は必要なくなろう。
図6は、1実施形態によるシステムのブロック図である。幾らかの実施形態においては、システムは携帯無線デバイスであってよい。
システムは、インターコネクト(606)経由で通信するコントローラ(602)を含みうる。コントローラ(602)は、マイクロコントローラ、1以上のマイクロプロセッサであってよく、これら各々が1以上のコア、デジタル信号プロセッサ(DSP)、または別の種類のコントローラを含みうる。システムはバッテリ(604)により電力供給されてよく、または、AC電源のような別の電源により電力供給されてもよい。
様々な入出力(I/O)デバイス(614)を、インターコネクト(606)に連結してよい。I/Oデバイスは、ディスプレイ、キーボード、マウス、タッチスクリーン、または他のI/Oデバイスなどのアイテムを含みうる。さらにアンテナ(610)を含む無線ネットワークインタフェース(608)が、インターコネクト(606)に連結されてよい。無線インタフェース(608)は、セルラー式または他の無線通信を、システムと他のデバイスとの間で可能としてよい。1実施形態においては、アンテナ(610)はダイポールアンテナ(dipole antenna)であってよい。
システムはさらに、ECCをサポートする機能を有する不揮発性メモリデバイス(640)も含む(NANDフラッシュメモリデバイス等であるがそれに限られない)。メモリデバイスはシステムに組み込まれていてもよいし、または、オプションのフラッシュカードインタフェース(612)または他の種類のインタフェースに挿入されうる取り外し可能な記憶媒体(例えばカード形式の部材(card form factor))の一部であってもよい。
メモリデバイス(640)は、メモリアレイ(102)、アレイに連結されたECCエンジン(104)、および、ECCエンジンに連結されたビット誤り率モニタ(106)を含む、図1を参照して上述した各ブロックを含みうる。メモリデバイス(640)は他の部材も含んでよいが、それらは理解を促進する観点からここでは示さない。
幾らかの実施形態においては、ECCエンジン(104)およびビット誤り率モニタ(106)は、例えばシステムのメモリデバイス(640)に連結されたメモリコントローラデバイス内のメモリデバイスとは分離されていてよい。
ECCエンジン(104)は、パリティデータを計算して、メモリアレイ(112)にプログラミングされるデータのコードワードを形成してよい。出力データがメモリアレイ(110)から読み出されるとき、ECCエンジンは誤り訂正を行ってよい。ECC訂正されたデータ(114)は、ビット誤り率モニタ(106)へ送られてよい。ECCエンジンがコードワードを訂正できない場合、訂正不能コードワード信号(116)をビット誤り率モニタ(106)へ送る。
図1を参照して上述したように、ビット誤り率モニタ(106)は、ECCエンジン(104)から受信した訂正不能コードワード信号に少なくとも部分的に基づいて、ビット誤り率を動的に決定する。ビット誤り率に基づいて、符号化率変更トリガがECCエンジン(104)へ送られ、所定の所望の範囲内に出力誤り率を維持するには符号化率を増減させる必要があることを示してよい。
符号化率の動的調節方法、装置、およびシステムが様々な実施形態で開示された。上述の記載において、多数の特定の詳細が述べられた。しかし、本発明の実施形態は、これら特定の詳細なく実施可能であることを理解されたい。他の場合には、公知の回路および技術は詳細には示さないことで記載の理解を曖昧にしないよう努めている。実施形態は、特定の例示的実施形態に関して記載されてきた。しかし、本開示を読んだ当業者には明らかなように、ここに記載された実施形態の幅広い精神および範囲から逸脱することなく、これら実施形態に様々な変形例および変更例を加えることが可能である。故に、明細書および図面は、限定的ではなく例示的に捉えられるべきである。
(項目1)
ビット誤り率の変更に呼応して、誤り制御符号化の符号化率(ECC符号化率)を、第1の符号化率から第2の符号化率へ変更する段階を備える、方法。
(項目2)
ECC符号化率を第1の符号化率から第2の符号化率へ変更する段階は、コードワードを短くする段階を有する、項目1に記載の方法。
(項目3)
ビット誤り率は、出力誤り率である、項目1に記載の方法。
(項目4)
1から所定の整定数についての訂正不能コードワード信号が受信される前に読み取られたビットの数の合計で、所定の整定数を除算することにより、出力誤り率を決定する段階をさらに備える、項目3に記載の方法。
(項目5)
ビット誤り率は、入力ビット誤り率である、項目1に記載の方法。
(項目6)
ECC符号化率を変更する段階は、ビット誤り率が所定値より大きい場合にECC符号化率を低減する段階を有する、項目1に記載の方法。
(項目7)
ECC符号化率を変更する段階は、ビット誤り率が所定値より小さい場合にECC符号化率を増加する段階を有する、項目1に記載の方法。
(項目8)
メモリアレイ内に既に存在する複数のコードワードを第2の符号化率を利用してプログラミングしなおす段階をさらに備える、項目1に記載の方法。
(項目9)
プログラミングしなおす段階は、メモリアレイから複数のコードワードを読み取る段階と、第2の符号化率を利用して複数のコードワードを符号化する段階と、複数のコードワードをメモリアレイに書き戻す段階とを有する、項目8に記載の方法。
(項目10)
プログラミングしなおす段階は、少なくとも1つのアイドル期間に行われる、項目9に記載の方法。

Claims (13)

  1. メモリアレイと、
    前記メモリアレイに連結された誤り制御符号化エンジン(ECCエンジン)と、
    前記ECCエンジンに連結されたビット誤りモニタと
    を備え、
    前記ECCエンジンは、各訂正不能なコードワードについて前記ビット誤りモニタに対して信号を提供し、
    前記ビット誤りモニタは、下記数式により出力誤り率を決定し、決定した前記出力誤り率に基づいて前記ECCエンジンに対する符号化率変更をトリガする、装置。
    Figure 0005364911
    ただし、Biは次の訂正不能コードワードに遭遇する前に読み取られるビット数であり、jは採られたサンプル数であって調節可能である。
  2. 前記ECCエンジンは、さらに、訂正可能なコードワードのビット誤りを訂正し、各訂正可能なコードワードの訂正ビット数を決定し、各訂正可能なコードワードの前記訂正ビット数を前記ビット誤りモニタに提供する、請求項1に記載の装置。
  3. 前記ビット誤り率モニタは、入力ビット誤り率に基づいて前記ECCエンジンに対する符号化率変更をトリガする、請求項1または2に記載の装置。
  4. 前記メモリアレイ、前記ECCエンジン、および前記ビット誤りモニタは、メモリデバイスの一部である、請求項1からのいずれか1項に記載の装置。
  5. 前記メモリデバイスは、NANDフラッシュメモリデバイスである、請求項に記載の装置。
  6. 前記ECCエンジンおよび前記ビット誤りモニタは、メモリコントローラデバイスの一部であり、
    前記メモリアレイは、フラッシュメモリデバイスの一部である、請求項1からのいずれか1項に記載の装置。
  7. インターコネクトと、
    前記インターコネクトに連結されたコントローラと、
    前記インターコネクトに連結された無線インタフェースと、
    前記インターコネクトに連結されたメモリデバイスと
    を備え、
    前記メモリデバイスは、メモリアレイ、前記メモリアレイに連結された誤り制御符号化エンジン(ECCエンジン)、および前記ECCエンジンに連結されたビット誤りモニタを有し、
    前記ECCエンジンは、各訂正不能なコードワードについて前記ビット誤りモニタに対して信号を提供し、
    前記ビット誤りモニタは、下記数式により出力誤り率を決定し、決定した前記出力誤り率に基づいて前記ECCエンジンに対する符号化率変更をトリガする、システム。
    Figure 0005364911
    ただし、Biは次の訂正不能コードワードに遭遇する前に読み取られるビット数であり、jは採られたサンプル数であって調節可能である。
  8. 前記メモリデバイスはNANDフラッシュメモリデバイスである、請求項に記載のシステム。
  9. 前記メモリアレイは、複数のメモリセルを含み、
    各メモリセルは、セル毎に少なくとも2ビットを記憶する機能を有する、請求項に記載のシステム。
  10. 前記ビット誤り率モニタは、入力ビット誤り率に基づいて前記ECCエンジンに対する符号化率変更をトリガする、請求項からのいずれか1項に記載のシステム。
  11. メモリアレイから読み取ったコードワードを誤り制御符号化(ECC)を利用して第1の符号化率で訂正可能であるか否かを判断して、前記コードワードが訂正可能である場合に誤り訂正を行う段階と、
    前記コードワードが訂正不能である場合、訂正不能コードワード信号を提供する段階と、
    下記数式により出力誤り率を決定する段階と、
    前記出力誤り率が予め定められた閾値を超える場合、前記第1の符号化率を第2の符号化率に変更する段階と
    を備える、方法。
    Figure 0005364911
    ただし、Biは次の訂正不能コードワードに遭遇する前に読み取られるビット数であり、jは採られたサンプル数であって調節可能である。
  12. 前記メモリアレイから、前記第1の符号化率で符号化された複数のコードワードを読み取る段階と、
    前記第2の符号化率を利用して前記複数のコードワードを符号化する段階と、
    前記第2の符号化率で符号化された前記複数のコードワードを前記メモリアレイに書き戻す段階と
    をさらに備える、請求項11に記載の方法。
  13. 前記メモリアレイは、NANDフラッシュメモリセルのアレイである、請求項11または12に記載の方法。
JP2012084226A 2007-03-08 2012-04-02 動的ecc符号化率調節方法、装置、およびシステム Active JP5364911B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/683,631 US8122323B2 (en) 2007-03-08 2007-03-08 Method, apparatus, and system for dynamic ECC code rate adjustment
US11/683,631 2007-03-08

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009549309A Division JP2010518523A (ja) 2007-03-08 2008-03-04 動的ecc符号化率調節方法、装置、およびシステム

Publications (2)

Publication Number Publication Date
JP2012155737A JP2012155737A (ja) 2012-08-16
JP5364911B2 true JP5364911B2 (ja) 2013-12-11

Family

ID=39738746

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009549309A Pending JP2010518523A (ja) 2007-03-08 2008-03-04 動的ecc符号化率調節方法、装置、およびシステム
JP2012084226A Active JP5364911B2 (ja) 2007-03-08 2012-04-02 動的ecc符号化率調節方法、装置、およびシステム

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2009549309A Pending JP2010518523A (ja) 2007-03-08 2008-03-04 動的ecc符号化率調節方法、装置、およびシステム

Country Status (4)

Country Link
US (1) US8122323B2 (ja)
JP (2) JP2010518523A (ja)
CN (1) CN101611385B (ja)
WO (1) WO2008109586A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10261857B2 (en) 2016-09-14 2019-04-16 Toshiba Memory Corporation Memory system and method for controlling code rate for data to be stored

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7837992B2 (en) * 2006-06-22 2010-11-23 Beth Israel Deaconess Medical Center C-1 inhibitor prevents non-specific plasminogen activation by a prourokinase mutant without impeding fibrin-specific fibrinolysis
JP4946249B2 (ja) * 2006-08-07 2012-06-06 富士通セミコンダクター株式会社 Eccのコード長が変更可能な半導体メモリ装置
CN101162449B (zh) * 2007-10-08 2010-06-02 福州瑞芯微电子有限公司 Nand flash控制器及其与nand flash芯片的数据交互方法
JP2009129070A (ja) 2007-11-21 2009-06-11 Hitachi Ltd フラッシュメモリ記憶装置の制御方法、その方法を用いたフラッシュメモリ記憶装置及びストレージシステム
US8327245B2 (en) * 2007-11-21 2012-12-04 Micron Technology, Inc. Memory controller supporting rate-compatible punctured codes
US8429492B2 (en) * 2007-11-30 2013-04-23 Marvell World Trade Ltd. Error correcting code predication system and method
US20090287969A1 (en) * 2008-05-13 2009-11-19 Bpm Microsystems Electronic apparatus and bit error rate tolerance method for programming non-volatile memory devices
KR20100104623A (ko) * 2009-03-18 2010-09-29 삼성전자주식회사 데이터 처리 시스템 및 그것의 부호율 제어 스킴
JP2010237822A (ja) * 2009-03-30 2010-10-21 Toshiba Corp メモリコントローラおよび半導体記憶装置
US8321775B2 (en) 2009-04-21 2012-11-27 Micron Technology, Inc. Non-volatile memory with extended error correction protection
FR2945393B1 (fr) * 2009-05-07 2015-09-25 Commissariat Energie Atomique Procede de protection de circuits electroniques, dispositif et systeme mettant en oeuvre le procede
FR2957214B1 (fr) * 2010-03-08 2012-10-26 Astrium Sas Procede de transmission optique par signaux laser
US20110252289A1 (en) * 2010-04-08 2011-10-13 Seagate Technology Llc Adjusting storage device parameters based on reliability sensing
JP5467270B2 (ja) * 2010-04-28 2014-04-09 国立大学法人 東京大学 データ入出力制御装置および半導体記憶装置システム
US8627183B1 (en) * 2010-05-11 2014-01-07 Marvell International Ltd. Systems and methods for storing variable rate product codes
WO2011159805A2 (en) * 2010-06-15 2011-12-22 Fusion-Io, Inc. Apparatus, system, and method for providing error correction
US8533550B2 (en) 2010-06-29 2013-09-10 Intel Corporation Method and system to improve the performance and/or reliability of a solid-state drive
CN101882467B (zh) * 2010-07-02 2014-05-07 中颖电子股份有限公司 Ecc参数可配置的存储器控制装置
JP2013542533A (ja) * 2010-10-27 2013-11-21 エルエスアイ コーポレーション フラッシュメモリベースのデータ記憶のための順応ecc技術
EP2447842A1 (en) 2010-10-28 2012-05-02 Thomson Licensing Method and system for error correction in a memory array
JP5980798B2 (ja) 2010-12-01 2016-08-31 シーゲイト テクノロジー エルエルシーSeagate Technology LLC 独立したシリコン素子の動的な上位レベルの冗長モード管理
JP5720210B2 (ja) * 2010-12-02 2015-05-20 富士通株式会社 アクセス制御装置、誤り訂正制御方法およびストレージ装置
EP2666091A2 (en) 2011-01-18 2013-11-27 LSI Corporation Higher-level redundancy information computation
KR101854214B1 (ko) * 2011-04-27 2018-05-03 시게이트 테크놀로지 엘엘씨 라이트 방법 및 그 방법을 이용하는 저장 장치
WO2012151001A1 (en) * 2011-04-30 2012-11-08 Rambus Inc. Configurable, error-tolerant memory control
US9158634B2 (en) 2011-05-19 2015-10-13 Hewlett-Packard Development Company, L.P. Error control coding
JP5764392B2 (ja) 2011-06-13 2015-08-19 株式会社メガチップス メモリコントローラ
US9698935B2 (en) * 2011-09-01 2017-07-04 Rambus Inc. Variable code rate transmission
US8793552B2 (en) * 2012-11-14 2014-07-29 International Business Machines Corporation Reconstructive error recovery procedure (ERP) for multiple data sets using reserved buffer
US9053748B2 (en) 2012-11-14 2015-06-09 International Business Machines Corporation Reconstructive error recovery procedure (ERP) using reserved buffer
US8996961B2 (en) 2012-12-11 2015-03-31 Seagate Technology Llc Error correction code rate management for nonvolatile memory
US9214963B1 (en) * 2012-12-21 2015-12-15 Western Digital Technologies, Inc. Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system
US8918700B2 (en) * 2013-02-11 2014-12-23 Arm Limited Apparatus and method for controlling access to a memory device
US8869009B2 (en) 2013-02-11 2014-10-21 Apple Inc. Read commands specifying error performance
KR102143517B1 (ko) * 2013-02-26 2020-08-12 삼성전자 주식회사 에러 정정회로를 포함하는 반도체 메모리 장치 및 반도체 메모리 장치의 동작방법
US9235468B2 (en) * 2013-04-12 2016-01-12 Qualcomm Incorporated Systems and methods to improve the reliability and lifespan of flash memory
US8810944B1 (en) 2013-07-16 2014-08-19 International Business Machines Corporation Dynamic buffer size switching for burst errors encountered while reading a magnetic tape
JP5733766B2 (ja) * 2013-11-07 2015-06-10 国立大学法人 東京大学 データ入出力制御装置および半導体記憶装置システム
US10073731B2 (en) * 2013-11-27 2018-09-11 Intel Corporation Error correction in memory
US9582360B2 (en) 2014-01-07 2017-02-28 International Business Machines Corporation Single and multi-cut and paste (C/P) reconstructive error recovery procedure (ERP) using history of error correction
US9141478B2 (en) 2014-01-07 2015-09-22 International Business Machines Corporation Reconstructive error recovery procedure (ERP) using reserved buffer
US9520901B2 (en) 2014-03-06 2016-12-13 Kabushiki Kaisha Toshiba Memory controller, memory system, and memory control method
US9685242B2 (en) 2014-03-11 2017-06-20 Kabushiki Kaisha Toshiba Memory system
JP6200381B2 (ja) 2014-06-11 2017-09-20 ファナック株式会社 監視対象の稼働状況に応じた誤り訂正機能を有する制御装置
US10116336B2 (en) * 2014-06-13 2018-10-30 Sandisk Technologies Llc Error correcting code adjustment for a data storage device
US9924383B2 (en) * 2014-08-07 2018-03-20 Samsung Electronics Co., Ltd. Method and terminal for transmitting and receiving data according to a transmission speed of data
US10067828B2 (en) 2014-10-03 2018-09-04 Hitachi, Ltd. Memory controller and data control method
US9595979B2 (en) * 2015-01-20 2017-03-14 International Business Machines Corporation Multiple erasure codes for distributed storage
JP6294251B2 (ja) 2015-02-26 2018-03-14 ファナック株式会社 誤り訂正機能による寿命予測を有する制御装置
US9792053B2 (en) 2015-04-30 2017-10-17 Toshiba Memory Corporation Controller for nonvolatile semiconductor memory
US9727416B2 (en) * 2015-07-01 2017-08-08 Xilinx, Inc. Variable code rate solid-state drive
US10063261B1 (en) * 2015-10-13 2018-08-28 Sorenson Ip Holdings Llc Communication endpoints and related methods for forward error correction of packetized data
KR102529171B1 (ko) * 2016-02-26 2023-05-04 삼성전자주식회사 메모리 장치 진단 시스템
US9904594B2 (en) 2016-04-15 2018-02-27 Micron Technology, Inc. Monitoring error correction operations performed in memory
US10545825B2 (en) * 2016-04-29 2020-01-28 Synamedia Limited Fault-tolerant enterprise object storage system for small objects
CN107643876A (zh) * 2016-07-20 2018-01-30 大心电子股份有限公司 存储器管理方法、存储器存储装置及存储器控制电路单元
US10983865B2 (en) * 2016-08-01 2021-04-20 Hewlett Packard Enterprise Development Lp Adjusting memory parameters
KR102479212B1 (ko) 2016-08-17 2022-12-20 삼성전자주식회사 반도체 메모리 장치, 이를 포함하는 메모리 시스템 및 이의 동작 방법
CN108255633B (zh) * 2016-12-28 2021-07-30 旺宏电子股份有限公司 存储控制方法、存储装置
CN108388483A (zh) * 2018-03-10 2018-08-10 北京联想核芯科技有限公司 配置码率的方法、装置及计算机可读存储介质
CN108683425B (zh) * 2018-05-18 2022-08-26 中国科学院微电子研究所 一种bch译码器
CN108683426B (zh) * 2018-05-18 2022-08-26 中国科学院微电子研究所 一种基于bch码的ecc系统及存储器
US10452472B1 (en) 2018-06-04 2019-10-22 Hewlett Packard Enterprise Development Lp Tunable and dynamically adjustable error correction for memristor crossbars
CN109872764B (zh) * 2019-01-18 2021-01-08 南京大学 一种多级存储单元闪存的ecc多码率编解码系统及方法
JP7353889B2 (ja) * 2019-09-19 2023-10-02 キオクシア株式会社 メモリシステムおよび方法
CN112929156B (zh) * 2019-12-06 2022-07-05 北京中创为南京量子通信技术有限公司 一种用于量子密钥生成系统成码错误率的计算方法
US11042432B1 (en) * 2019-12-20 2021-06-22 Western Digital Technologies, Inc. Data storage device with dynamic stripe length manager
KR20210092986A (ko) 2020-01-17 2021-07-27 삼성전자주식회사 스토리지 컨트롤러, 이를 포함하는 스토리지 시스템 및 스토리지 컨트롤러의 동작 방법
CN112256473A (zh) * 2020-10-30 2021-01-22 浪潮云信息技术股份公司 一种分布式存储系统自适应纠错方法
CN114116137B (zh) * 2021-12-03 2023-03-14 北京得瑞领新科技有限公司 存储系统中纠错码的仿真方法及装置、存储介质、设备

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61338U (ja) * 1984-06-06 1986-01-06 クラリオン株式会社 復号装置
CA1235189A (en) * 1985-01-14 1988-04-12 Haruhiko Akiyama Error correction encoding system
US6477669B1 (en) * 1997-07-15 2002-11-05 Comsat Corporation Method and apparatus for adaptive control of forward error correction codes
JP2001266507A (ja) * 2000-03-23 2001-09-28 Toshiba Corp イレージャー位置検出方法、イレージャー位置検出機能を有する記録再生装置、及び記録媒体
US6473010B1 (en) * 2000-04-04 2002-10-29 Marvell International, Ltd. Method and apparatus for determining error correction code failure rate for iterative decoding algorithms
US6631488B1 (en) * 2000-06-30 2003-10-07 Agilent Technologies, Inc. Configurable error detection and correction engine that has a specialized instruction set tailored for error detection and correction tasks
EP1175034A2 (en) 2000-07-18 2002-01-23 Eastman Kodak Company A packet data transmission system with adaptive packet size
US6961890B2 (en) * 2001-08-16 2005-11-01 Hewlett-Packard Development Company, L.P. Dynamic variable-length error correction code
JP2003092554A (ja) * 2001-09-18 2003-03-28 Fujitsu Ltd 伝送特性補償制御方法および伝送特性補償制御装置並びに伝送特性補償制御システム
US7051264B2 (en) * 2001-11-14 2006-05-23 Monolithic System Technology, Inc. Error correcting memory and method of operating same
US6996766B2 (en) * 2002-06-28 2006-02-07 Sun Microsystems, Inc. Error detection/correction code which detects and corrects a first failing component and optionally a second failing component
KR20050097924A (ko) * 2002-12-30 2005-10-10 코닌클리케 필립스 일렉트로닉스 엔.브이. 코딩 시스템
US7210077B2 (en) * 2004-01-29 2007-04-24 Hewlett-Packard Development Company, L.P. System and method for configuring a solid-state storage device with error correction coding
JP2008508632A (ja) * 2004-08-02 2008-03-21 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ記憶及び再生装置
US20070011513A1 (en) * 2005-06-13 2007-01-11 Intel Corporation Selective activation of error mitigation based on bit level error count

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10261857B2 (en) 2016-09-14 2019-04-16 Toshiba Memory Corporation Memory system and method for controlling code rate for data to be stored
US10789125B2 (en) 2016-09-14 2020-09-29 Toshiba Memory Corporation Memory system and method

Also Published As

Publication number Publication date
US20080222490A1 (en) 2008-09-11
CN101611385A (zh) 2009-12-23
JP2010518523A (ja) 2010-05-27
CN101611385B (zh) 2013-11-13
WO2008109586A1 (en) 2008-09-12
US8122323B2 (en) 2012-02-21
JP2012155737A (ja) 2012-08-16

Similar Documents

Publication Publication Date Title
JP5364911B2 (ja) 動的ecc符号化率調節方法、装置、およびシステム
US10789124B2 (en) Techniques to a set voltage level for a data access
US9367389B2 (en) Recovery strategy that reduces errors misidentified as reliable
US8510636B2 (en) Dynamic read channel calibration for non-volatile memory devices
US9582359B2 (en) Write mapping to mitigate hard errors via soft-decision decoding
US10176041B2 (en) Deterministic read retry method for soft LDPC decoding in flash memories
US10135464B2 (en) Reliability-assisted bit-flipping decoding algorithm
US9817708B2 (en) Device quality metrics using unsatisfied parity checks
US20160372161A1 (en) Data storage device and operating method thereof
US20100058146A1 (en) Chien-search system employing a clock-gating scheme to save power for error correction decoder and other applications
US9405624B2 (en) On-die error detection and correction during multi-step programming
US20120096328A1 (en) Multi-write endurance and error control coding of non-volatile memories
US20170294217A1 (en) Decoding method, memory storage device and memory control circuit unit
KR20170039795A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR20190071485A (ko) 에러 정정 장치, 에러 정정 장치의 동작 방법, 그리고 에러 정정 장치를 포함하는 제어기
US20170134049A1 (en) Decoding method, memory storage device and memory control circuit unit
US9304851B2 (en) Decoding with log likelihood ratios stored in a controller
US10804935B2 (en) Techniques for reducing latency in the detection of uncorrectable codewords
US9680509B2 (en) Errors and erasures decoding from multiple memory devices
CN112988453A (zh) 用于闪存的数据恢复方法
US10776053B2 (en) Memory control method, memory storage device and memory control circuit unit
US10700703B2 (en) Dynamic reliability levels for storage devices
TWI607452B (zh) 解碼方法、記憶體儲存裝置及記憶體控制電路單元
KR20160075001A (ko) 플래시 메모리 시스템 동작 방법
US9953722B2 (en) Methods of system optimization by over-sampling read

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130724

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: 20130813

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130820

R150 Certificate of patent or registration of utility model

Ref document number: 5364911

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250