JP2011029857A - フラッシュファイルシステムの誤り検出訂正機能 - Google Patents
フラッシュファイルシステムの誤り検出訂正機能 Download PDFInfo
- Publication number
- JP2011029857A JP2011029857A JP2009172592A JP2009172592A JP2011029857A JP 2011029857 A JP2011029857 A JP 2011029857A JP 2009172592 A JP2009172592 A JP 2009172592A JP 2009172592 A JP2009172592 A JP 2009172592A JP 2011029857 A JP2011029857 A JP 2011029857A
- Authority
- JP
- Japan
- Prior art keywords
- error
- polynomial
- correction
- file system
- error detection
- 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
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Error Detection And Correction (AREA)
Abstract
【課題】フラッシュファイルシステムのようなフラッシュメモリにデータを読み書きする場合は誤り訂正手段が不可欠である。しかし、誤り検出、訂正機能を使用するときの演算量は大変多くの時間を消費する。
【解決手段】そこで、新しい間のフラッシュメモリはほとんど誤りが無く、誤り訂正の必要は少ない、ところが経年により誤りの発生数は急激に増加し、誤り訂正の必要性が急に増加する。本発明はこのようなフラッシュメモリの特性に鑑み、フラッシュメモリが新しい間は誤り数が少ないと予測し、できるだけ誤り検出、訂正の時間を少なくする方法を発明した。
【選択図】図1
【解決手段】そこで、新しい間のフラッシュメモリはほとんど誤りが無く、誤り訂正の必要は少ない、ところが経年により誤りの発生数は急激に増加し、誤り訂正の必要性が急に増加する。本発明はこのようなフラッシュメモリの特性に鑑み、フラッシュメモリが新しい間は誤り数が少ないと予測し、できるだけ誤り検出、訂正の時間を少なくする方法を発明した。
【選択図】図1
Description
本発明は、フラッシュファイルシステムの誤り検出、訂正機能であって、任意の1つの方法で誤り検出を行った後、誤りが検出されないブロックに関してはその後の処理を割愛し、誤りがあるブロックに関してのみ誤り訂正を行い、全体として誤り検出、訂正にかける時間を最小とする事に関するものである。
昨今、外部記憶装置の容量は指数関数的に大きくなり、転送時間も長くなってきた。その為、転送スピードを速くし時間短縮を行ってきた。しかし、転送スピードを速くするとデータの転送誤りが増加し、誤り訂正システムが必要不可欠となってきた。このような背景の元に誤り訂正システムも多くの種類のものが提案され、何bitの誤りを検出でき何bitの誤りを訂正できるか、さらには連続した誤りにはどのような対処をするかなど、幾種類かのアルゴリズムが存在する。
NAND型フラッシュメモリを使用するフラッシュファイルシステムにおいてもメモリの容量の増加や読み書き時間の短縮に伴い、誤り訂正は必要不可欠となった。また、昨今、NAND型フラッシュメモリは多値を持つNAND型フラッシュメモリも増加し、データの誤り率も多くなり、誤り訂正手段はさらに重要な要素となった。一方誤り訂正手段はハミング距離が3であるハミングの誤り訂正を使用していたが、誤り検出と誤り訂正の数が増えるとBCH誤り訂正やリードソロモン誤り訂正が必要となってきた。BCH誤り訂正やリードソロモン誤り訂正は総称してブロック符号による誤り訂正と呼称し、情報多項式と生成多項式により冗長多項式をつくり、情報多項式に付加して誤り訂正付きの送信多項式としてフラッシュメモリに書き込み、フラッシュメモリから読み出すときは、読み出した後シンドロームの計算を行い誤りの存否を判断し、誤りがある場合は再度計算やルックアップテーブルにより誤りを訂正した。
具体的には図1のように、I(x):情報多項式をG(x):生成多項式で割り算をして、h(x):商とP(x):余りを求める。P(x):余りが冗長多項式となり、I(x):情報多項式の後ろにつけて、C(x)=I(x)+P(x)で誤り訂正付きの送信多項式となる。この形でフラッシュメモリに書き込む。C(x)とG(x)の関係からC(x)はG(x)で割り切れることは明白なので誤りの数をt個までとするなら、G(x)=0のt個の解をC(x)に代入すると、誤りが無ければC(x)=0となる。誤りが存在するか否かの判別はこの計算で可能となる。
一方、フラッシュメモリについて考察すると、新しい間のフラッシュメモリはほとんど誤りが無く、誤り訂正の必要は少ない、ところが経年により誤りの発生数は急激に増加し、誤り訂正の必要性が急に増加する。本発明はこのようなフラッシュメモリの特性に鑑み、フラッシュメモリが新しい間は誤り数が少ないと予測し、できるだけ誤り検出、訂正の時間を少なくする方法を発明した。
フラッシュファイルシステムの誤り検出訂正機能に関する文献は無いが、ファイルシステムの誤り検出訂正に関するものは以下のとおりである。
特開2000−011689
特開平11−272568
特開平11−143787
特開平11−232778
ブロック符号による誤り検出、訂正にはリード・ソロモン符号やBCH符号等が存在する。しかし、何れも符号の生成と複合が複雑なので、処理速度が求められている分野ではあまり使用されていない。その反面誤り訂正能力が高く利点は多いため、処理速度が求められている分野でも使用を試みた。しかし、今のところこれらの誤り検出、訂正符号を処理速度の速い分野に使うことは困難である。
そこで、ブロック符号による誤り検出、訂正手段をもつフラッシュファイルシステムであって、1つのブロックに1つでも誤りを検出しなかったときは直ちに次のブロックに移り、次のブロックの誤りを検出し具体的には1つのブロックの生成多項式が0のときの根の内、任意の1つの根を誤り訂正付きの送信多項式(情報多項式+冗長多項式)に代入し誤り訂正付きの送信多項式がゼロであれば誤りが無いと見做し、直ちに次のブロックに移り次々と同一の手続を行うことにより誤り検出、訂正の時間を短くした。
一般に誤り訂正手段の処理時間が多くかかる中で、誤りがあるかないかのみ先に検出し誤りがある場合だけ誤り訂正など次のステップに進めることにより誤り訂正処理の時間を短くする。その結果、システムは非常に効率的となった。
ここでは、リード・ソロモン誤り検出、訂正について実施例を示す。リード・ソロモン符号ではrビットの連続した固まりを1つのシンボルとして、N個のシンボルすなわちr×Nビットの並びを1つの符号語とする。このときK個のシンボルが実際に送る情報ここではI(x):情報多項式とし、残りの(N−K)個のシンボルが、P(x):冗長多項式とする。ここで(N-K)/2をtとした時、リードソロモン符号はt個までのシンボルの誤りを訂正する事ができる。
リード・ソロモンではまずr×Nビットの並びをシンボルを係数とする(N−1)次の多項式の形で表す。このときのビット列はリード・ソロモン符号ではAx**3+Bx**2+Cx+Dという多項式で表される。
シンボルへの変換は以下のように行う。先ず連続するrビットを1つのシンボルとするのでシンボルは全部で2**r種類存在する事になる。そこで2**r個の要素で構成される拡大ガロア体を定義する。具体的にはまずr次の原始多項式から適当なものを1つ選ぶ、これをG(x):生成多項式とする。なお、G(x)=0の根をα1、α2、α3・・・とすると、G(x)=(x-α1)(x-α2)(x-α3)・・・となり、G(α1、α2、α3・・・)=0である。
次に、I(x):情報多項式をG(x):生成多項式で割り算して、商をh(x)、余りをP(x)とする。そして、情報多項式I(x)の後ろに前記のP(x):冗長多項式を付け加えた形がC(x):誤り訂正付送信多項式となる。このC(x)の形でフラッシュファイルシステムにデータを書き込み、その後読み出す。
ここで、本発明のポイントはC(x)がG(x)で割り切れることであり、G(x)はC(x)の因数となる事である。実際に読み書きするデータ列のC(x)は因数分解できる。その因数とはG(x)の因数である(x-α1)や(x-α2)や(x-α3)である。C(x)=0であれば誤りが無いのであるから、G(x)=0の根であるα1、α2、α3・・・のいずれか1つをC(x)のxに代入し、C(x)=0であれば誤りは無いとみなし、直ちに次のブロックへ進む事ができる。このようにして、本発明は誤り検出にかかる時間を極力抑えた事である。
一般に誤り訂正手段の処理時間が多くかかる中で、誤りがあるかないかを先に検出し、誤り訂正処理の時間を短くすることにより、フラッシュファイルシステムの産業上の利用可能性は非常に高くなった。
Claims (2)
- ブロック符号による誤り検出、訂正手段をもつフラッシュファイルシステムであって、1つのブロックに1つでも誤りを検出しなかったときは、直ちに次のブロックに移り、次のブロックの誤りを検出することを特徴とするフラッシュファイルシステム。
- ブロック符号による誤り検出、訂正手段をもつフラッシュファイルシステムであって、1つのブロックの生成多項式が0のときの根の内、任意の1つの根を誤り訂正付きの送信多項式(情報多項式+冗長多項式)に代入し誤り訂正付きの送信多項式がゼロであれば誤りが無いと見做し、直ちに次のブロックに移り同一の手続を行うことを特徴としたフラッシュファイルシステム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009172592A JP2011029857A (ja) | 2009-07-24 | 2009-07-24 | フラッシュファイルシステムの誤り検出訂正機能 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009172592A JP2011029857A (ja) | 2009-07-24 | 2009-07-24 | フラッシュファイルシステムの誤り検出訂正機能 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011029857A true JP2011029857A (ja) | 2011-02-10 |
Family
ID=43638097
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009172592A Pending JP2011029857A (ja) | 2009-07-24 | 2009-07-24 | フラッシュファイルシステムの誤り検出訂正機能 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011029857A (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9021338B2 (en) | 2011-11-04 | 2015-04-28 | Samsung Electronics Co., Ltd. | Memory system and data storage method |
-
2009
- 2009-07-24 JP JP2009172592A patent/JP2011029857A/ja active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9021338B2 (en) | 2011-11-04 | 2015-04-28 | Samsung Electronics Co., Ltd. | Memory system and data storage method |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5043562B2 (ja) | エラー訂正回路、その方法及び前記回路を備える半導体メモリ装置 | |
KR100989532B1 (ko) | 플래쉬 에러 정정 | |
US11740960B2 (en) | Detection and correction of data bit errors using error correction codes | |
JP2008165808A (ja) | 誤り訂正確率を減らすエラー訂正回路、その方法及び前記回路を備える半導体メモリ装置 | |
CN108376554B (zh) | 存储器模块、包括其的存储系统及其错误校正方法 | |
US9246515B2 (en) | Error correction code block having dual-syndrome generator, method thereof, and system having same | |
JP6540703B2 (ja) | メモリコントローラおよびメモリコントローラの制御方法 | |
JP2010218634A (ja) | 誤り検出訂正器、メモリコントローラおよび半導体記憶装置 | |
US10498364B2 (en) | Error correction circuits and memory controllers including the same | |
US10243588B2 (en) | Error correction code (ECC) decoders sharing logic operations, memory controllers including the error correction code decoders, and methods of decoding error correction codes | |
US10741212B2 (en) | Error correction code (ECC) encoders, ECC encoding methods capable of encoding for one clock cycle, and memory controllers including the ECC encoders | |
JP4790790B2 (ja) | 誤り検出訂正回路及び半導体メモリ | |
US9960788B2 (en) | Memory controller, semiconductor memory device, and control method for semiconductor memory device | |
WO2017018008A1 (ja) | 符号化装置、メモリコントローラ、通信システムおよび符号化方法 | |
JP2005293557A (ja) | 復号器、データ記憶装置およびデータの誤り訂正の方法 | |
JP2009100369A (ja) | 誤り検出訂正回路、半導体メモリコントローラ、および誤り検出訂正方法 | |
CN112286716A (zh) | 一种1024字节的存储系统差错控制模块 | |
JP2010092574A (ja) | フラッシュファイルシステムの誤り訂正機能 | |
US9092354B2 (en) | Storage device, CRC generation device, and CRC generation method | |
US9448884B2 (en) | Apparatuses and methods for encoding using error protection codes | |
JP2011029857A (ja) | フラッシュファイルシステムの誤り検出訂正機能 | |
CN101142746B (zh) | 纠错码 | |
US11824560B2 (en) | ECC decoders having low latency | |
US20140245101A1 (en) | Semiconductor memory | |
JP2013201503A (ja) | チェンサーチ回路、復号器、記憶装置およびチェンサーチ方法 |