説明

フラッシュファイルシステムの誤り検出訂正機能

【課題】フラッシュファイルシステムのようなフラッシュメモリにデータを読み書きする場合は誤り訂正手段が不可欠である。しかし、誤り検出、訂正機能を使用するときの演算量は大変多くの時間を消費する。
【解決手段】そこで、新しい間のフラッシュメモリはほとんど誤りが無く、誤り訂正の必要は少ない、ところが経年により誤りの発生数は急激に増加し、誤り訂正の必要性が急に増加する。本発明はこのようなフラッシュメモリの特性に鑑み、フラッシュメモリが新しい間は誤り数が少ないと予測し、できるだけ誤り検出、訂正の時間を少なくする方法を発明した。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フラッシュファイルシステムの誤り検出、訂正機能であって、任意の1つの方法で誤り検出を行った後、誤りが検出されないブロックに関してはその後の処理を割愛し、誤りがあるブロックに関してのみ誤り訂正を行い、全体として誤り検出、訂正にかける時間を最小とする事に関するものである。
【背景技術】
【0002】
昨今、外部記憶装置の容量は指数関数的に大きくなり、転送時間も長くなってきた。その為、転送スピードを速くし時間短縮を行ってきた。しかし、転送スピードを速くするとデータの転送誤りが増加し、誤り訂正システムが必要不可欠となってきた。このような背景の元に誤り訂正システムも多くの種類のものが提案され、何bitの誤りを検出でき何bitの誤りを訂正できるか、さらには連続した誤りにはどのような対処をするかなど、幾種類かのアルゴリズムが存在する。
【0003】
NAND型フラッシュメモリを使用するフラッシュファイルシステムにおいてもメモリの容量の増加や読み書き時間の短縮に伴い、誤り訂正は必要不可欠となった。また、昨今、NAND型フラッシュメモリは多値を持つNAND型フラッシュメモリも増加し、データの誤り率も多くなり、誤り訂正手段はさらに重要な要素となった。一方誤り訂正手段はハミング距離が3であるハミングの誤り訂正を使用していたが、誤り検出と誤り訂正の数が増えるとBCH誤り訂正やリードソロモン誤り訂正が必要となってきた。BCH誤り訂正やリードソロモン誤り訂正は総称してブロック符号による誤り訂正と呼称し、情報多項式と生成多項式により冗長多項式をつくり、情報多項式に付加して誤り訂正付きの送信多項式としてフラッシュメモリに書き込み、フラッシュメモリから読み出すときは、読み出した後シンドロームの計算を行い誤りの存否を判断し、誤りがある場合は再度計算やルックアップテーブルにより誤りを訂正した。
【0004】
具体的には図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となる。誤りが存在するか否かの判別はこの計算で可能となる。
【0005】
一方、フラッシュメモリについて考察すると、新しい間のフラッシュメモリはほとんど誤りが無く、誤り訂正の必要は少ない、ところが経年により誤りの発生数は急激に増加し、誤り訂正の必要性が急に増加する。本発明はこのようなフラッシュメモリの特性に鑑み、フラッシュメモリが新しい間は誤り数が少ないと予測し、できるだけ誤り検出、訂正の時間を少なくする方法を発明した。
【0006】
フラッシュファイルシステムの誤り検出訂正機能に関する文献は無いが、ファイルシステムの誤り検出訂正に関するものは以下のとおりである。
【特許文献1】特開2000−011689
【特許文献2】特開平11−272568
【特許文献3】特開平11−143787
【特許文献4】特開平11−232778
【発明の開示】
【発明が解決しようとする課題】
【0007】
ブロック符号による誤り検出、訂正にはリード・ソロモン符号やBCH符号等が存在する。しかし、何れも符号の生成と複合が複雑なので、処理速度が求められている分野ではあまり使用されていない。その反面誤り訂正能力が高く利点は多いため、処理速度が求められている分野でも使用を試みた。しかし、今のところこれらの誤り検出、訂正符号を処理速度の速い分野に使うことは困難である。
【課題を解決するための手段】
【0008】
そこで、ブロック符号による誤り検出、訂正手段をもつフラッシュファイルシステムであって、1つのブロックに1つでも誤りを検出しなかったときは直ちに次のブロックに移り、次のブロックの誤りを検出し具体的には1つのブロックの生成多項式が0のときの根の内、任意の1つの根を誤り訂正付きの送信多項式(情報多項式+冗長多項式)に代入し誤り訂正付きの送信多項式がゼロであれば誤りが無いと見做し、直ちに次のブロックに移り次々と同一の手続を行うことにより誤り検出、訂正の時間を短くした。
【発明の効果】
【0009】
一般に誤り訂正手段の処理時間が多くかかる中で、誤りがあるかないかのみ先に検出し誤りがある場合だけ誤り訂正など次のステップに進めることにより誤り訂正処理の時間を短くする。その結果、システムは非常に効率的となった。
【実施例】
【0010】
ここでは、リード・ソロモン誤り検出、訂正について実施例を示す。リード・ソロモン符号ではrビットの連続した固まりを1つのシンボルとして、N個のシンボルすなわちr×Nビットの並びを1つの符号語とする。このときK個のシンボルが実際に送る情報ここではI(x):情報多項式とし、残りの(N−K)個のシンボルが、P(x):冗長多項式とする。ここで(N-K)/2をtとした時、リードソロモン符号はt個までのシンボルの誤りを訂正する事ができる。
【0011】
リード・ソロモンではまずr×Nビットの並びをシンボルを係数とする(N−1)次の多項式の形で表す。このときのビット列はリード・ソロモン符号ではAx**3+Bx**2+Cx+Dという多項式で表される。
【0012】
シンボルへの変換は以下のように行う。先ず連続する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である。
【0013】
次に、I(x):情報多項式をG(x):生成多項式で割り算して、商をh(x)、余りをP(x)とする。そして、情報多項式I(x)の後ろに前記のP(x):冗長多項式を付け加えた形がC(x):誤り訂正付送信多項式となる。このC(x)の形でフラッシュファイルシステムにデータを書き込み、その後読み出す。
【0014】
ここで、本発明のポイントは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であれば誤りは無いとみなし、直ちに次のブロックへ進む事ができる。このようにして、本発明は誤り検出にかかる時間を極力抑えた事である。
【産業上の利用可能性】
【0015】
一般に誤り訂正手段の処理時間が多くかかる中で、誤りがあるかないかを先に検出し、誤り訂正処理の時間を短くすることにより、フラッシュファイルシステムの産業上の利用可能性は非常に高くなった。
【図面の簡単な説明】
【0016】
【図1】情報多項式と生成多項式から冗長多項式をつくり、その結果送信多項式を作る説明図である。
【図2】リードソロモン符号のシンボルの概念図である。
【図3】本発明のポイントの説明図である。

【特許請求の範囲】
【請求項1】
ブロック符号による誤り検出、訂正手段をもつフラッシュファイルシステムであって、1つのブロックに1つでも誤りを検出しなかったときは、直ちに次のブロックに移り、次のブロックの誤りを検出することを特徴とするフラッシュファイルシステム。
【請求項2】
ブロック符号による誤り検出、訂正手段をもつフラッシュファイルシステムであって、1つのブロックの生成多項式が0のときの根の内、任意の1つの根を誤り訂正付きの送信多項式(情報多項式+冗長多項式)に代入し誤り訂正付きの送信多項式がゼロであれば誤りが無いと見做し、直ちに次のブロックに移り同一の手続を行うことを特徴としたフラッシュファイルシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate


【公開番号】特開2011−29857(P2011−29857A)
【公開日】平成23年2月10日(2011.2.10)
【国際特許分類】
【出願番号】特願2009−172592(P2009−172592)
【出願日】平成21年7月24日(2009.7.24)
【出願人】(302004850)株式会社京都ソフトウェアリサーチ (7)
【Fターム(参考)】