(57)【要約】【課題】フラッシュファイルシステムのようなフラッシュメモリにデータを読み書きする場合は誤り訂正手段が不可欠である。しかし、誤り検出、訂正機能を使用するときの演算量は大変多くの時間を消費する。【解決手段】そこで、新しい間のフラッシュメモリはほとんど誤りが無く、誤り訂正の必要は少ない、ところが経年により誤りの発生数は急激に増加し、誤り訂正の必要性が急に増加する。本発明はこのようなフラッシュメモリの特性に鑑み、フラッシュメモリが新しい間は誤り数が少ないと予測し、できるだけ誤り検出、訂正の時間を少なくする方法を発明した。【選択図】図１
2011029857.tif 000002
【特許請求の範囲】
【請求項１】
ブロック符号による誤り検出、訂正手段をもつフラッシュファイルシステムであって、１つのブロックに１つでも誤りを検出しなかったときは、直ちに次のブロックに移り、次のブロックの誤りを検出することを特徴とするフラッシュファイルシステム。
【請求項２】
ブロック符号による誤り検出、訂正手段をもつフラッシュファイルシステムであって、１つのブロックの生成多項式が０のときの根の内、任意の１つの根を誤り訂正付きの送信多項式（情報多項式＋冗長多項式）に代入し誤り訂正付きの送信多項式がゼロであれば誤りが無いと見做し、直ちに次のブロックに移り同一の手続を行うことを特徴としたフラッシュファイルシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フラッシュファイルシステムの誤り検出、訂正機能であって、任意の１つの方法で誤り検出を行った後、誤りが検出されないブロックに関してはその後の処理を割愛し、誤りがあるブロックに関してのみ誤り訂正を行い、全体として誤り検出、訂正にかける時間を最小とする事に関するものである。
【背景技術】
【０００２】
昨今、外部記憶装置の容量は指数関数的に大きくなり、転送時間も長くなってきた。その為、転送スピードを速くし時間短縮を行ってきた。しかし、転送スピードを速くするとデータの転送誤りが増加し、誤り訂正システムが必要不可欠となってきた。このような背景の元に誤り訂正システムも多くの種類のものが提案され、何bitの誤りを検出でき何bitの誤りを訂正できるか、さらには連続した誤りにはどのような対処をするかなど、幾種類かのアルゴリズムが存在する。
【０００３】
NAND型フラッシュメモリを使用するフラッシュファイルシステムにおいてもメモリの容量の増加や読み書き時間の短縮に伴い、誤り訂正は必要不可欠となった。また、昨今、NAND型フラッシュメモリは多値を持つNAND型フラッシュメモリも増加し、データの誤り率も多くなり、誤り訂正手段はさらに重要な要素となった。一方誤り訂正手段はハミング距離が３であるハミングの誤り訂正を使用していたが、誤り検出と誤り訂正の数が増えるとBCH誤り訂正やリードソロモン誤り訂正が必要となってきた。BCH誤り訂正やリードソロモン誤り訂正は総称してブロック符号による誤り訂正と呼称し、情報多項式と生成多項式により冗長多項式をつくり、情報多項式に付加して誤り訂正付きの送信多項式としてフラッシュメモリに書き込み、フラッシュメモリから読み出すときは、読み出した後シンドロームの計算を行い誤りの存否を判断し、誤りがある場合は再度計算やルックアップテーブルにより誤りを訂正した。
【０００４】
具体的には図１のように、Ｉ（ｘ）：情報多項式をＧ（ｘ）：生成多項式で割り算をして、ｈ（ｘ）：商とＰ（ｘ）：余りを求める。Ｐ（ｘ）：余りが冗長多項式となり、Ｉ（ｘ）：情報多項式の後ろにつけて、Ｃ（ｘ）＝Ｉ（ｘ）＋Ｐ（ｘ）で誤り訂正付きの送信多項式となる。この形でフラッシュメモリに書き込む。Ｃ（ｘ）とＧ（ｘ）の関係からＣ（ｘ）はＧ（ｘ）で割り切れることは明白なので誤りの数をｔ個までとするなら、Ｇ（ｘ）＝０のｔ個の解をＣ（ｘ）に代入すると、誤りが無ければＣ（ｘ）＝０となる。誤りが存在するか否かの判別はこの計算で可能となる。
【０００５】
一方、フラッシュメモリについて考察すると、新しい間のフラッシュメモリはほとんど誤りが無く、誤り訂正の必要は少ない、ところが経年により誤りの発生数は急激に増加し、誤り訂正の必要性が急に増加する。本発明はこのようなフラッシュメモリの特性に鑑み、フラッシュメモリが新しい間は誤り数が少ないと予測し、できるだけ誤り検出、訂正の時間を少なくする方法を発明した。
【０００６】
フラッシュファイルシステムの誤り検出訂正機能に関する文献は無いが、ファイルシステムの誤り検出訂正に関するものは以下のとおりである。
【特許文献１】特開２０００−０１１６８９
【特許文献２】特開平１１−２７２５６８
【特許文献３】特開平１１−１４３７８７
【特許文献４】特開平１１−２３２７７８
【発明の開示】
【発明が解決しようとする課題】
【０００７】
ブロック符号による誤り検出、訂正にはリード・ソロモン符号やＢＣＨ符号等が存在する。しかし、何れも符号の生成と複合が複雑なので、処理速度が求められている分野ではあまり使用されていない。その反面誤り訂正能力が高く利点は多いため、処理速度が求められている分野でも使用を試みた。しかし、今のところこれらの誤り検出、訂正符号を処理速度の速い分野に使うことは困難である。
【課題を解決するための手段】
【０００８】
そこで、ブロック符号による誤り検出、訂正手段をもつフラッシュファイルシステムであって、１つのブロックに１つでも誤りを検出しなかったときは直ちに次のブロックに移り、次のブロックの誤りを検出し具体的には１つのブロックの生成多項式が０のときの根の内、任意の１つの根を誤り訂正付きの送信多項式（情報多項式＋冗長多項式）に代入し誤り訂正付きの送信多項式がゼロであれば誤りが無いと見做し、直ちに次のブロックに移り次々と同一の手続を行うことにより誤り検出、訂正の時間を短くした。
【発明の効果】
【０００９】
一般に誤り訂正手段の処理時間が多くかかる中で、誤りがあるかないかのみ先に検出し誤りがある場合だけ誤り訂正など次のステップに進めることにより誤り訂正処理の時間を短くする。その結果、システムは非常に効率的となった。
【実施例】
【００１０】
ここでは、リード・ソロモン誤り検出、訂正について実施例を示す。リード・ソロモン符号ではｒビットの連続した固まりを１つのシンボルとして、Ｎ個のシンボルすなわちｒ×Ｎビットの並びを１つの符号語とする。このときＫ個のシンボルが実際に送る情報ここではＩ（ｘ）：情報多項式とし、残りの（Ｎ−Ｋ）個のシンボルが、Ｐ（ｘ）：冗長多項式とする。ここで（Ｎ-Ｋ）／２をｔとした時、リードソロモン符号はｔ個までのシンボルの誤りを訂正する事ができる。
【００１１】
リード・ソロモンではまずｒ×Ｎビットの並びをシンボルを係数とする（Ｎ−１）次の多項式の形で表す。このときのビット列はリード・ソロモン符号ではＡｘ**3＋Ｂｘ**2＋Ｃｘ＋Ｄという多項式で表される。
【００１２】
シンボルへの変換は以下のように行う。先ず連続するｒビットを１つのシンボルとするのでシンボルは全部で２**r種類存在する事になる。そこで２**r個の要素で構成される拡大ガロア体を定義する。具体的にはまずｒ次の原始多項式から適当なものを１つ選ぶ、これをＧ（ｘ）：生成多項式とする。なお、Ｇ（ｘ）=０の根をα１、α２、α３・・・とすると、Ｇ（ｘ）＝（ｘ-α１）(ｘ-α２）(ｘ-α３）・・・となり、Ｇ（α１、α２、α３・・・）＝０である。
【００１３】
次に、Ｉ(ｘ)：情報多項式をＧ(ｘ)：生成多項式で割り算して、商をｈ(ｘ)、余りをＰ(ｘ)とする。そして、情報多項式Ｉ（ｘ）の後ろに前記のＰ(ｘ)：冗長多項式を付け加えた形がＣ(ｘ)：誤り訂正付送信多項式となる。このＣ（ｘ）の形でフラッシュファイルシステムにデータを書き込み、その後読み出す。
【００１４】
ここで、本発明のポイントはＣ(ｘ)がＧ(ｘ)で割り切れることであり、Ｇ(ｘ)はＣ(ｘ)の因数となる事である。実際に読み書きするデータ列のＣ(ｘ)は因数分解できる。その因数とはＧ(ｘ)の因数である(ｘ-α１)や(ｘ-α２)や(ｘ-α３)である。Ｃ(ｘ)＝０であれば誤りが無いのであるから、Ｇ(ｘ)=０の根であるα１、α２、α３・・・のいずれか１つをＣ(ｘ)のｘに代入し、Ｃ（ｘ）＝０であれば誤りは無いとみなし、直ちに次のブロックへ進む事ができる。このようにして、本発明は誤り検出にかかる時間を極力抑えた事である。
【産業上の利用可能性】
【００１５】
一般に誤り訂正手段の処理時間が多くかかる中で、誤りがあるかないかを先に検出し、誤り訂正処理の時間を短くすることにより、フラッシュファイルシステムの産業上の利用可能性は非常に高くなった。
【図面の簡単な説明】
【００１６】
【図１】情報多項式と生成多項式から冗長多項式をつくり、その結果送信多項式を作る説明図である。
【図２】リードソロモン符号のシンボルの概念図である。
【図３】本発明のポイントの説明図である。
【図１】
2011029857.tif 000003
【図２】
2011029857.tif 000004
【図３】
2011029857.tif 000005