説明

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

【課題】フラッシュファイルシステムのようなフラッシュメモリにデータを読み書きする場合は誤り訂正手段が不可欠である。しかし、誤り訂正機能を使用するときの演算量は大変多くの時間を消費する。
【解決手段】そこで、誤り訂正を行う前に誤り検出のみ行い、誤りがあった場合だけ適切な誤り訂正を行ったり、フラッシュメモリ上のプログラムやデータの種類により、誤り訂正手段の誤り検出数と誤り訂正数を可変して、誤り訂正の処理時間を短縮した。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、フラッシュファイルシステムの誤り訂正機能であって、誤り検出を行った後、誤り訂正を行ったり、フラッシュメモリ上のプログラムの種類により誤り訂正機能の能力を変えることに関するものである。
【背景技術】
【0002】
昨今、外部記憶装置の容量は指数関数的に大きくなり、転送時間も大きくなってきた。その為、転送スピードを速くし対応を取ってきた。しかし、転送スピードを上げるとデータの転送誤りが増加し、誤り訂正システムが必要不可欠となってきた。このような背景の元に誤り訂正システムも多くの種類のものが提案され、何bitの誤りを検出でき何bitの誤りを訂正できるか、その為には何bitの誤り訂正ビットを付加するかなど、誤り検出の数、誤り訂正の数により適切な誤り訂正のアルゴリズムが存在する。
【0003】
NAND型フラッシュメモリを使用するフラッシュファイルシステムにおいて、メモリの容量の増加や読み書き時間の短縮に伴い、誤り訂正は必要不可欠となった。また、昨今、NAND型フラッシュメモリは多値を持つNAND型フラッシュメモリも増加し、データの誤り率も多くなり、誤り訂正手段はさらに重要な要素となった。一方誤り訂正手段はハミング距離が3であるハミングの誤り訂正を使用していたが、誤り検出と誤り訂正の数が増えるとBCH誤り訂正が必要となってきた。BCH誤り訂正は情報ビットと生成多項式により誤り訂正ビットをつくり、情報ビットに付加してフラッシュメモリに書き込み、フラッシュメモリから読み出すときは、読み出した後、シンドロームの計算を行い、誤りの存否を判断し、誤りがある場合は再度計算やルックアップテーブルにより誤りを訂正した。
【0004】
具体的には図4のように、I(x):情報bitをG(x):生成多項式で割り算をして、h(x):商とR(x):余りを求める。R(x):余りが誤り訂正bitとなり、I(x):情報bitの後ろにつけて、I(x)+R(x)で誤り訂正付きのデータとなる。この形でフラッシュメモリに書き込み、読み出した後は、α*4+α+1=0の1つの解をI(x)+R(x)のxに代入してS(α)なるシンドロームを求める。S(α):シンドロームが全て0であれば誤りは無い。しかし、S(α)が0で無いならば誤りが発生しているので、誤り訂正の計算かルックアップテーブルを用いて誤りを訂正する。
【0005】
フラッシュファイルシステムの誤り訂正機能に関する文献は無いが、ファイルシステムの誤り訂正に関するものは以下のとおりである。
【特許文献1】特開2000−011689
【特許文献2】特開平11−272568
【特許文献3】特開平11−143787
【特許文献4】特開平11−232778
【発明の開示】
【発明が解決しようとする課題】
【0006】
上記で示すように、誤り訂正の処理は生成多項式による計算など多大な時間を消費しシンドロームから誤りを訂正する過程も多大な時間を消費する。即ち、読み書きごとの誤り訂正作業はフラッシュファイルシステムにとっては重い処理であった。つまり、誤り訂正の数と誤り検出の数を多くすることで処理時間が長くなることが課題であった。
【課題を解決するための手段】
【0007】
そこで、所定の数の誤り検出と誤り訂正が可能な誤り訂正ビットを生成多項式により演算し情報ビットに付加してフラッシュメモリに書き込み、読み出すときは、先ず誤り検出数を最大として誤り検出のみ行い、検出した誤りの数に基づき、再度誤り訂正をしたり、フラッシュメモリ上のプログラムやデータの種類により、当該フラッシュメモリ上のプログラムやデータを読み書きする誤り訂正手段の誤り検出数と誤り訂正数を変え、または、フラッシュメモリ上のプログラムやデータの格納場所により、当該フラッシュメモリ上のプログラムやデータを読み書きする誤り訂正手段の誤り検出数と誤り訂正数を変え、または、フラッシュメモリ上のプログラムやデータに付加したフラグにより、当該フラッシュメモリ上のプログラムやデータを読み書きする誤り訂正手段の誤り検出数と誤り訂正数を変えた。
【発明の効果】
【0008】
一般に誤り訂正手段の処理時間が多くかかる中で、誤りがあるかないかを先に検出したり、プログラムの重要度に応じて誤り検出機能を下げるなど、誤り訂正処理の時間を短くすることにより、システムは非常に効率的となった。
【実施例1】
【0009】
最小距離が6以上の誤り訂正機能を持った誤り訂正検出手段を例に挙げると、誤り訂正処理をしない場合は5bitの誤り検出ができる。またシンドロームから1bitの誤り訂正を行う場合は4bitの誤り検出ができる。また、2つのシンドロームから2bitの誤り訂正を行う場合は3bitの誤り検出ができる。この事から、先ず5bitの誤り検出を行い、どれくらいの誤り数があるかを判断した後適正な誤り訂正を行う。これにより先ずは最大数の誤り検出機能で誤り検出の不能を避け、次いで、確定した誤り検出数を得て、適切な誤り訂正を行うことが可能となる。
【実施例2】
【0010】
図1において、1はフラッシュメモリ空間である。2のブートコード格納領域には例えば誤り3bit訂正、4bit検出をできる誤り訂正機能を付けて格納する。3のOS格納領域には例えば誤り2bit訂正、3bit検出をできる誤り訂正機能を付けて格納する。4のユーザデータ格納領域には例えば誤り1it訂正、2bit検出をできる誤り訂正機能を付けて格納する。
【0011】
このようなプログラムの種類により誤り訂正機能の能力を変えることにより、もっとも誤り訂正能力の高い誤り訂正機能をブートコードに付けて、その次に誤り訂正能力の高い誤り訂正機能をOSに付けて、最後に、最も誤り訂正能力の低い誤り訂正機能をユーザデータに取り付けた。このようにすることにより、誤りがあってはならないものには、たとえ処理時間がかかっても誤り訂正機能の高いものを付加し、そうでないものには、処理時間を優先する方法を取った。
【0012】
図2において、1はフラッシュメモリ空間である。2のブートコードには例えば誤り3bit訂正、4bit検出をできる誤り訂正機能を付けてフラッシュメモリの先頭ブロックに格納する。フラッシュメモリの先頭ブロックは先天性の不良ブロックがないため連続して格納することが可能となる。3のOSには例えば誤り2bit訂正、3bit検出をできる誤り訂正機能を付けて予め決めておいたブロックに格納する。4のユーザデータには例えば誤り1it訂正、2bit検出をできる誤り訂正機能を付けて予め決めておいた格納する。
【0013】
このように、プログラムの種類を予め決めておいたブロックに格納し、各ブロック毎に誤り訂正機能の能力を変えることにより、もっとも誤り訂正能力の高い誤り訂正機能をブートコードが格納されているブロックに割り付けて、その次に誤り訂正能力の高い誤り訂正機能をOSが格納されているブロックに割り付けて、最後に、最も誤り訂正能力の低い誤り訂正機能をユーザデータが格納されているブロックに割り付けた。このようにすることにより、誤りがあってはならないものには、たとえ処理時間がかかっても誤り訂正機能の高いものを付加し特定のブロックに割付し、そうでないものには、処理時間を優先するために特定のブロックに割り付けた。よってブロックの種類により、プログラムの種類が特定でき、自由な誤り訂正能力を有する誤り訂正機能を付けることができる。
【0014】
図3において、1はフラッシュメモリ空間である。2のブートコードには例えば誤り3bit訂正、4bit検出をできる誤り訂正機能を付けて、またブートコードであることがわかるフラグ1をつけてフラッシュメモリに格納する。3のOSには例えば誤り2bit訂正、3bit検出をできる誤り訂正機能を付けて、またOSであることがわかるフラグ2を付けてフラッシュメモリに格納する。4のユーザデータには例えば誤り1it訂正、2bit検出をできる誤り訂正機能を付けて、またユーザデータであることがわかるフラグ3を付けてフラッシュメモリに格納する。
【0015】
このように、プログラムの種類を予め決めておいたフラグで認識できるようにし、各プログラムの種類毎に誤り訂正機能の能力を変えることにより、もっとも誤り訂正能力の高い誤り訂正機能をブートコードに付けフラグ1とともにフラッシュメモリに格納し、その次に誤り訂正能力の高い誤り訂正機能をOSに付け、フラグ2とともにフラッシュメモリに格納し、最後に、最も誤り訂正能力の低い誤り訂正機能をユーザデータに付け、フラグ3とともにフラッシュメモリに格納する。このようにすることにより、誤りがあってはならないものには、たとえ処理時間がかかっても誤り訂正機能の高い誤り訂正を付加し、その存在をフラグで認識する。また、そうでないものには、処理時間を優先する方法を取るために特定のフラグをつけることによりプログラムの種類が特定でき、自由な誤り訂正能力を有する誤り訂正機能を付けることができる。
【産業上の利用可能性】
【0016】
一般に誤り訂正手段の処理時間が多くかかる中で、誤りがあるかないかを先に検出したり、プログラムの重要度に応じて誤り検出機能を下げるなど、誤り訂正処理の時間を短くすることにより、フラッシュファイルシステムの産業上の利用可能性は非常に高くなった。
【図面の簡単な説明】
【0017】
【図1】フラッシュメモリ空間上の、ブートコード、OS、ユーザデータの配置の構成図である。
【図2】フラッシュメモリ空間上の、ブートコード、OS、ユーザデータの配置の構成図である。
【図3】フラッシュメモリ空間上の、ブートコード、OS、ユーザデータの配置の構成図である。
【図4】誤り訂正機能の誤り訂正bitの作り方と、読み出し後の誤り検出、訂正の方法についての図である。
【符号の説明】
【0018】
1 フラッシュメモリ空間
2 ブートコード格納領域
3 OS格納領域
4 ユーザデータ格納領域
5 ブートコード
6 OS
7 ユーザデータ

【特許請求の範囲】
【請求項1】
所定の数の誤り検出と誤り訂正が可能な誤り訂正ビットを生成多項式により演算し情報ビットに付加してフラッシュメモリに書き込み、読み出すときは、先ず誤り検出数を最大として誤り検出のみ行い、検出した誤りの数に基づき、再度誤り訂正をすることを特徴とするフラッシュファイルシステム。
【請求項2】
NAND型フラッシュメモリをもつフラッシュファイルシステムにおいて、当該フラッシュメモリ上のプログラムやデータの種類により、当該フラッシュメモリ上のプログラムやデータを読み書きする誤り訂正手段の誤り検出数と誤り訂正数を変えることを特徴としたフラッシュファイルシステム。
【請求項3】
NAND型フラッシュメモリをもつフラッシュファイルシステムにおいて、当該フラッシュメモリ上のプログラムやデータの格納場所により、当該フラッシュメモリ上のプログラムやデータを読み書きする誤り訂正手段の誤り検出数と誤り訂正数を変えることを特徴としたフラッシュファイルシステム。
【請求項4】
NAND型フラッシュメモリをもつフラッシュファイルシステムにおいて、当該フラッシュメモリ上のプログラムやデータに付加したフラグにより、当該フラッシュメモリ上のプログラムやデータを読み書きする誤り訂正手段の誤り検出数と誤り訂正数を変えることを特徴としたフラッシュファイルシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2010−92574(P2010−92574A)
【公開日】平成22年4月22日(2010.4.22)
【国際特許分類】
【出願番号】特願2008−264701(P2008−264701)
【出願日】平成20年10月12日(2008.10.12)
【出願人】(302004850)株式会社京都ソフトウェアリサーチ (7)
【Fターム(参考)】