説明

多値フラッシュメモリ用ドライバ

【課題】組み込みシステムに使用するフラッシュメモリのドライバは、商用電源を使うことが少なく電池を使用することが多く耐電源障害性に強いことが要求される。更に多値のフラッシュメモリのドライバにおいては、書き込み中に電源断が生じれば、書き込んでいるページばかりではなく、同一セル内にある他のページの内容も壊してしまう可能性があり、さらに修復が不可能な課題がある。
【解決手段】そこで本発明は、あるブロックにデータを書き込むときは、別の他のブロックを用意して、交互にそれそれのブロックの相対するページに同一のデータを書き込むステップを持つことにより、電源断等、電源障害が生じたときでもデータを消滅することなく書き込むことが可能となる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、耐電源障害性を保証した多値フラッシュメモリ用ドライバであって、該多値フラッシュメモリのセルにデータを書き込む手法に関するものである。
【背景技術】
【0002】
多値フラッシュメモリは、1つのセルに4値又は8値または16値なる2のべき乗の状態を持つフラッシュメモリであり、1つのセル内に多値の値を取るために、便宜上複数の異なる記憶層が多層に積み上がる概念を持ち、全てのセルが複数の記憶層を有することとした。また各層は1つのセルに1bitの情報量を持ち、複数のセルをまとめてページと称し、ページが集まったものをブロックと称する。また、ブロックも複数個集まり全体のメモリとなる。4値の場合は2層の記憶層を有し、8値の場合は3層の記憶層を有し、16値の場合は4層の記憶層を有する。またデータが何も書かれていないときは全ての記憶層の各セルの状態が1であり、何れの記憶層も状態が変化したときに0の値をとる。
【0003】
ここでは図1に示すように4値の場合で2つの層が各々1ページある構成を説明する、またセルとは図1の中で太線で示す部分を言う。1つの層(下層)をAページもう1つの層(上層)をBページと称する。AページBページは2段積みとなり縦方向に8bit(1byte)が並び、横方向に(2048+64)byteが並ぶ構成である。このようにAページとBページの2ページが1塊(Aページ+Bページ)となり64塊で1ブロックを構成する。図2で示すように1つのブロック、例えばブロック0はAページBページとも64ページありAページBページがページ0からページ127まで、必ずしもAページ、次にそのAページに対応するBページが交互に現れるわけではなく128ページを構成している。しかし、ブロックの先頭のページ(ページ0)は必ずAページである、しかし次にくるページ(ページ数の若い順に)はそのAページに対応するBページがくるかどうかは不定(メモリの実装方法に依存する)で、次の塊(次のAページ+Bページ)のAページがくる場合もある。しかし、同一の塊(Aページ+Bページ)では必ずAページが若いページ数となり先に出現する。次にブロックは全部で2048ブロックあり、ページの並び(AページBページの関係)は全てのブロックは同一である。
【0004】
次に、多値メモリの書き込みについて説明する。基本的にはページ単位での書き込みとなるが、1つのセル上でのAページ、Bページの書き込みを想定して説明する。図3で示すように、あるセルに何も書かれていない場合はAページ、Bページが1、1(第1の状態と呼ぶ)であり、次にAページのみ0を書き込んだときはAページ、Bページが0、1(第2の状態と呼ぶ)に移行する。更にAページは0でBページに0が書かれたときはAページ、Bページが1、0(第3の状態と呼ぶ)の状態を経由し、その後にAページ、Bページが0、0(第4の状態と呼ぶ)の状態まで移行する。また、この順序で状態は移行するが(第1の状態から第4の状態への順次移行はするが)、移行の順序が後戻り(例えば、第4の状態から第1の状態などの変化)することはない。ただし、ブロック単位で消去すると、そのブロックにあるすべてのページの状態が第1の状態になる。
【0005】
ここで、多値メモリ特有の状況を説明する。AページBページとも何も書かれていない状態(第1の状態)でAページのみ0を書き込むと、次の状態(第2の状態)へ移行し、Aページは変化するがBページは変化しない。また任意のセルにAページを書き込む場合は、かならず、Bページの書き込みの前にAページが書き込まれる約束となっているため、Aページに0を書き込んでもBページには影響が無い。しかし、Aページに0を書き込んだ状態(第2の状態)から、Bページにも0を書き込む(第4の状態にする)とBページは1から0に変化するがAページは0から一旦、1になってまた0に戻る(第2の状態から第3の状態を経て第4の状態へ移る)という現象が現れる。次にAページ、Bページとも1のとき(第1の状態から)Bページに0を書き込むと(第3の状態に移行する)、Bページは1から0に変化するがAページは1から一旦0になってまた1に戻る(第1の状態から第2の状態を経て第3の状態へ移る)という現象が生じる。
【0006】
このように多値フラッシュメモリでは、Aページにデータを書くときはBページは何ら変化はしないが、Bページにデータを書くときはAページはその状態がいったん変化した後、さらに元へ戻るという状態変化が生じる。フラッシュメモリに対する耐電源障害性については、2値のフラッシュメモリに対してのみ耐電源障害性を保証したフラッシュファイルドライバは下記文献のように存在する。
【非特許文献1】長澤恒也著 「フラッシュメモリの基礎と電源障害に強いファイルシステムの構築」InterFace Dec.2004
【発明の開示】
【発明が解決しようとする課題】
【0007】
ここで課題は、多値フラッシュメモリは書き込み中に、電源断が生じれば、Aページに書き込んでいるときはAページの状態は保障できない。また、Bページに書き込んでいるときは、Bページの値が保障できないばかりでなく、Bページに書き込み中、Aページの値が過渡的に変化するため、Aページの値も保障できなくなる。さらに、Aページの値はどこにもバッファされていないので、修正も永久に不可能となる。このような耐電源障害性を保証した多値フラッシュファイルドライバは現在では存在しない。
【課題を解決するための手段】
【0008】
本発明はこの課題を解決するために、同一セル内に複数の異なるページの一部を持つ該多値フラッシュメモリのセルにデーターを書き込む手法において、該多値フラッシュメモリの複数のブロックから2つのブロックを選びその相対するページに同一のデータを書き込むステップを含む手法を発明した。
【発明の効果】
【0009】
本発明は、多値フラッシュメモリにおいて、耐電源障害性を保証するものである。現在では2値のフラッシュメモリに対して耐電源障害性を保証したものは存在するが多値のフラッシュメモリのおいては存在しない。従って、全く新しい価値を創造した。また、携帯機器ばかりでなく車載機器についても電圧が著しく降下することが多いので本発明は有効である。
【実施例1】
【0010】
図4は本発明の4値の場合の1実施例のブロックの構成図である。2つのブロックを用意(ブロックMとブロックNとする)し、ブロックMのページ0にデータを書き込み、次に同一のデータをブロックNのページ0に書き込む。この時点でページ0のデータが確定する。このように2つのブロックの相対するページに同一のデータを書き込んでいく。次に、ページ0やページ1のようなAページであれば万一書き込み中に電源断が生じても書き込みが終了されているデータは保存される。しかし、ページ2のようにBページであればページ2に書き込み中に電源断が生ずれば、ページ0(ページ2と同一セルのAページ)のデータを壊す可能性がある。
従って、ブロックMのページ2にデータを書き込むときに電源断が生じた場合、ブロックMのページ0のデータを壊す可能性がある。しかし、ページ0の内容はブロックNのページ0にも存在するので、ページ0の内容は消滅しない。電源が回復後、別のブロックに、ページ0についてはブロックNのページ0を、ページ1については(データは壊れていないので)そのままのデータを、ページ2については電源断時に書き込もうとしていたページ2の値をそれぞれ書き込めば良い。つぎに、ブロックNのページ2にデータを書き込むときに電源断が生じた場合、ブロックNのページ0が壊される可能性がある。しかしこの場合も、ブロックNのページ0と同一の内容がブロックMのページ0に存在するため、もし壊されることがあっても、再度別のブロックに書き込むことによりデータは回復する。
このような方法で複数のブロックの中から2つのブロックを選び相対するページに同一データを書き込むことにより、ブロックMもしくはブロックNに必ずデータが残ることになる。当実施例ではブロックMとブロックNのページ127まで同一データを書き込むことにより、ページAやページBを気にすることなく書き込みが可能となる。
【実施例2】
【0011】
次に8値の場合の実施例を説明すると、ページの構成は図1で示すAページ、Bページの上にさらにCページ(図示はしていない)があるものと考える。Aページに書き込み中の電源断はBページ、Cページともに影響はない。しかしBページに書き込み中の電源断はCページには影響はないがAページのデータを壊す可能性がある。また、Cページに書き込み中の電源断はAページ、Bページともにデータを壊す可能性がある。また、図4においてもAページ(64ページ)とBページ(64ページ)のみだが、Cページ(図示はしていない)も64ページ存在すると考える。ここで、当発明の書き込み手順は図4のブロックMのページ0(Aページ)にデータを書き込み同一のデータをブロックNのページ0(Aペ−ジ)に書き込む。次にブロックMのページ1(Aページ)にデータを書き込み同一のデータをブロックNのページ1(Aペ−ジ)に書き込む。さらに、ブロックMのページ2(Bページ)にデータを書き込み同一のデータをブロックNのページ2(Bペ−ジ)に書き込む。このようにして、次にCページ(図示していない)が現れても同様に、ブロックMのCページにデータを書き込み同一のデータをブロックNのCページに書き込む。このような書き込みをすると、4値の時と同じようにたとえ電源断が生じても、ブロックMかブロックNのどちらかにデータが保存される。
【産業上の利用可能性】
【0012】
今後のシステムにおいて、組み込みシステムが増えさらにメモリ容量がより多く必要とすると、フラッシュメモリにおいてもその多値化が要求させる。そのような環境の中、耐電源障害性に強い多値フラッシュファイルドライバは必要不可欠であり、産業上の利用価値は極めて高いものである。
【図面の簡単な説明】
【0013】
【図1】多値フラッシュメモリのページの構成を示した説明図である。
【図2】多値フラッシュメモリ全体とブロックの構成を示した説明図である。
【図3】多値フラッシュメモリのセル上の各ページにデータを書き込む状態遷移を示した説明図である。
【図4】多値フラッシュメモリの2つのブロックの相対するページに同一のデータを書き込む説明図である。(実施例1)

【特許請求の範囲】
【請求項1】
1つのセルに少なくとも2値より多くの状態を持つ多値フラッシュメモリ用ドライバであって、同一セル内に複数の異なるページの一部を持つ該多値フラッシュメモリのセルにデーターを書き込む手法において、該多値フラッシュメモリの複数のブロックから2つのブロックを選びその相対するページに同一のデータを書き込むステップを含む多値フラッシュメモリ用ドライバ。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate


【公開番号】特開2008−158955(P2008−158955A)
【公開日】平成20年7月10日(2008.7.10)
【国際特許分類】
【出願番号】特願2006−349753(P2006−349753)
【出願日】平成18年12月26日(2006.12.26)
【出願人】(302004850)株式会社京都ソフトウェアリサーチ (7)
【Fターム(参考)】