【手続補正書】
【提出日】平成23年4月28日(2011.4.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
フラッシュメモリのリード・ライト処理方法であって、
エンコードしたデータの中で特定の数値の個数をエンコード前より減らすように、書き込まれるデータをエンコードし、エンコードしたデータをフラッシュメモリチップに書き込むステップ１と、
フラッシュメモリチップからエンコードしたデータを読み取り、読み取ったデータに対し、前記ステップ１においてのエンコード処理に対応するデコード処理をして、デコードしたデータを出力するステップ２と、
を含むことを特徴とするフラッシュメモリのリード・ライト処理方法。 
【請求項２】
前記データが２進数である場合、前記特定の数値が０又は１であることを特徴とする請求項１に記載のフラッシュメモリのリード・ライト処理方法。
【請求項３】
前記ステップ1において、ホストシステム、フラッシュメモリコントローラー、及びフラッシュメモリチップのうちのいずれかで、書き込まれるデータをエンコードすることを特徴とする請求項１に記載のフラッシュメモリのリード・ライト処理方法。
【請求項４】
前記ステップ２において、ホストシステム、フラッシュメモリコントローラー、及びフラッシュメモリチップのうちのいずれかで、読み取ったデータをデコードすることを特徴とする請求項１に記載のフラッシュメモリのリード・ライト処理方法。
【請求項５】
エンコード・デコードしたデータをフラッシュメモリチップに保存する処理をさらに含むことを特徴とする請求項１に記載のフラッシュメモリのリード・ライト処理方法。
【請求項６】
前記ステップ１において、エンコードした各組のデータにおける特定数値の個数はエンコード前より多くないことと、前記ステップ２では前記エンコード処理に対応するデコード方法を採用することを特徴とする請求項１、請求項２、請求項３、及び請求項４のうちのいずれか１項に記載のフラッシュメモリのリード・ライト処理方法。
【請求項７】
エンコードしたデータ中の特定数値の個数を元のデータ中の特定数値の個数より減らせるように、データとエンコードしたデータのマッピング関係を作ることをさらに含み、前記ステップ１におけるエンコード処理及び前記ステップ２におけるデコード処理は、マッピング関係をサーチすることによって実行されることを特徴とする請求項６に記載のフラッシュメモリのリード・ライト処理方法。
【請求項８】
前記ステップ１において、エンコード処理が、データの特定数値の個数が他の数値の個数より多い場合、このデータをビット反転することを含み、前記ステップ２において、デコード処理が、前記エンコード処理でビット反転されたデータをビット反転して元のデータを得ることを含むことを特徴とする請求項６に記載のフラッシュメモリのリード・ライト処理方法。
【請求項９】
前記ステップ１では、設定サイクルにおいて、エンコードした各組のデータの中で特定数値の総数がエンコード前より小さいことと、ステップ２では前記エンコード処理に対応するデコード処理を採用することを特徴とする請求項１、請求項２、請求項３、及び、請求項４のうちのいずれか１項に記載のフラッシュメモリのリード・ライト処理方法。
【請求項１０】
ＮＡＮＤ型のフラッシュメモリの場合、前記ステップ１では、エンコードしたデータの０の個数がエンコード前の０の個数より少なくなるように、書き込むデータをエンコードし、エンコードしたデータをフラッシュメモリ記憶セルに書き込むことを特徴とする請求項１又は請求項２に記載のフラッシュメモリのリード・ライト処理方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】発明の詳細な説明
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はフラッシュメモリのリード・ライト処理方法に関し、より詳細には、データをエンコード、デコードすることによってフラッシュメモリの操作の最適化を目指す方法に関する。
【背景技術】
【０００２】
フラッシュメモリは記憶装置として汎用されている。フラッシュメモリは、複数回の読み書き、消去が可能なだけではなく、密度が高い、容量が大きい、読み書き操作時間が短い、不揮発性、及び電力消費が低いなどの長所を持つために、ますますパソコン、様々なデジタル電子装置及びほかのデジタル記憶装置に使用されてきている。近年、フラッシュメモリ技術が成熟し、値段も安くなり、後端アプリケーション技術も進んでいるので、メモリ分野においてハードディスクと同じ市場シェアを占めている。しかし、製造方法の問題により、自体の欠点がフラッシュメモリの発展と応用を制約している。その一つは、通常、フラッシュメモリチップは自体の記憶原理によって、使用寿命があることである。一般的に、フラッシュメモリユニットの操作方式は、まず記憶セルのフローティングゲートを放電させて（即ち、通常のセル消去操作）通用状態にし、次にデータの書き込み過程において、フローティングゲートを充電して（即ち、通常のセルプログラミング）データの記憶に必要な状態にする。記憶セルの消去とプログラミングを繰り返す過程において、フローティングゲートはトンネル効果により蓄積される電子が徐々に増え、より大きな正向電圧が必要となり、記憶セルがリプログラミングできる。同時に、消去過程において、絶縁体が繰り返しのトンネル効果により老化してしまい、最後にバリアが役に立たなくなる（即ち、バリアの通り抜け）。これらの場合には記憶セルが正常に操作できない（即ちこの記憶セルの使用周期が終わる）可能性がある。以下、最も汎用されるＮＡＮＤフラッシュメモリを例として説明する。ＮＡＮＤフラッシュメモリについては、消去またはリプログラミング回数は10万回程度である。第二は、フラッシュメモリチップの書き込みや消去の操作は特殊で、ページ単位で書き込みブロック単位で消去し、フラッシュメモリに書き込んだり消去したりするには大量の時間がかかり、データをページ毎にフラッシュメモリの内部のバッファから書き込む時間は２００μｓ〜７００μｓ必要で、ブロック単位で消去する時間は２ｍｓ必要である。これらの操作時間はフラッシュメモリチップの製造技術に関わり、フラッシュメモリのブロックに対する消去操作は全ての記憶セルの状態を１にして、データを書き込む過程において、書き込まれるデータが1だと当該フラッシュメモリ記憶セルをリプログラミングする必要がなく、書き込みデータが0だとリプログラミングする（即ち、フローティングゲートに充電する）必要がある。また、次回当該ページにデータを書き込むまえにデータを消去しなければならない、つまり、0と書かれた記憶セルが放電される。故に、一回の操作過程においてページデータでの0が多ければ多いほど損耗される記憶セルが多いということである。第三は、フラッシュメモリの製造技術により、フラッシュメモリの書き込みの時間は書き込みデータの値に関わり、一回にページに書き込まれるデータの中で0が多ければ多いほど、より多い操作時間がかかる。消去操作についても同じ結論である。第四は、フラッシュメモリチップの電力消費は書き込まれた内容に関わり、フラッシュメモリ記憶セルのデータライト操作時に、書き込まれるデータが1であれば、消去したデータが1であるためフローティングゲートに充電する必要がなく、逆に、書き込まれるデータが0であれば、フローティングゲートに充電する必要があるため、ページに書き込む0が少なければ少ないほど記憶セルの充電操作が少なくなり、電力消費も低くなる。
【０００３】
現在、フラッシュメモリの使用寿命を引き伸ばすための方法は以下の通り、ライトと消去の操作をできるだけ均等にブロック毎に割り当て、フラッシュメモリチップの使用中において各ブロックを均等に損耗させることであり、これは現在フラッシュメモリメーカーに一般的に使用されている方法である。しかし、この方法はフラッシュメモリの操作損耗をフラッシュメモリチップの各ブロックに均等化させるだけで、フラッシュメモリチップの損耗を減らすことはできない。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、上記した従来の技術の欠点を解決するために案出されたものであり、フラッシュメモリの操作中、フラッシュメモリの記憶セルを損耗させる操作回数を減少させて、フラッシュメモリの寿命と記憶操作の効率とを向上させ、電力消費を低下させるフラッシュメモリのデータリード・ライト方法を提供することを目的とする。
【課題を解決するための手段】
【０００５】
本発明は、フラッシュメモリのリード・ライト方法であって、エンコードしたデータの中で特定の数値の個数をエンコード前より減らすように、書き込むデータをエンコードし、エンコードしたデータをフラッシュメモリチップに書き込むステップ１と、フラッシュメモリチップからエンコードしたデータを読み取り、読み取ったデータに対し、前記ステップ１においてのエンコード処理に対応するデコード処理をして、デコードしたデータを出力するステップ２とを含むことを特徴とするフラッシュメモリのリード・ライト処理方法を提供する。 
【０００６】
前記データが２進数である場合、前記特定の数値は０或いは１であることが良い。
【０００７】
前記ステップ１では、ホストシステム、フラッシュメモリコントローラー、及びフラッシュメモリチップのうちのいずれかで、記憶されるデータをエンコードできることが良い。
【０００８】
前記ステップ２では、ホストシステム、フラッシュメモリコントローラー、及びフラッシュメモリチップのうちのいずれかで、読み取ったデータをデコードできることが良い。
【０００９】
前記フラッシュメモリのリード・ライト処理方法は、エンコード・デコード情報をフラッシュメモリチップに保存することをさらに含むことが良い。
【００１０】
前記ステップ１において、エンコードした各組の２進法データにおける特定数値の個数はエンコード前より多くないことと、前記ステップ２では以上の処理に対応しているデコード方法を採用することが良い。
【００１１】
更に、エンコードしたデータの特定数値の個数を元のデータの個数より減らせるように、データとエンコードしたデータのマッピング関係を作ることを含み、前記ステップ１におけるエンコード処理と、前記ステップ２におけるデコード処理は、マッピング関係をサーチすることによって実行されることが良い。
【００１２】
前記ステップ１において、エンコード処理が、データの特定数値の個数が他の数値の個数より多い場合、このデータをビット反転することを含み、前記ステップ２において、デコード処理が、エンコードでビット反転されたデータをビット反転して元のデータを得ることを含むことが良い。
【００１３】
前記ステップ１では、設定サイクルにおいて、エンコードした各組の２進法データの中で特定数値の総数がエンコード前より小さいことと、ステップ２では以上の操作に対応しているデコード処理を採用することが良い。
【００１４】
ＮＡＮＤ型のフラッシュメモリの場合、前記ステップ１では、エンコードした２進法データの０の個数がエンコード前のデータの０の個数より少なくなるように、記憶される２進法データをエンコードし、その後、エンコードした２進法データをフラッシュメモリ記憶セルに書き込むことが良い。
【発明の効果】
【００１５】
本発明のフラッシュメモリのリード・ライト方法によれば、エンコード・デコードによって、データ中の特定数値を減少させることで、書き込み・消去操作におけるフラッシュメモリチップの損耗を減少して、フラッシュメモリチップの使用寿命を引き伸ばし、かつ、フラッシュメモリチップに特定数値の書き込む回数を減らすことで、書き込み・消去操作効率を向上させ、操作時間を減らし、さらに、このようなエンコード・デコード方法によって、フラッシュメモリの操作にかかる電力消費を減らすことができるという効果が得られる。
【図面の簡単な説明】
【００１６】
【図１】本発明の実施形態に係るフラッシュコントローラーのエンコード・デコードの原理図である。
【図２】本発明の実施形態に係るフラッシュコントローラーのエンコード・デコード中のライト操作を示す概略図である。
【図３】本発明の実施形態に係るフラッシュコントローラーのエンコード・デコードのリード操作を示す概略図である。
【図４】本発明を採用したフラッシュメモリチップのページデータの操作を示す概略図である。
【図５】本発明を採用しないフラッシュメモリチップのページデータの操作における概略図である。
【図６】本発明に係るマッピングエンコード・デコード方式の実施例の元の４位データの概略図である。
【図７】本発明に係るマッピングエンコード・デコード方式の実施例の２位を加えたデータの概略図である。
【図８】本発明に係るマッピングエンコード・デコード方式の実施例の４位の元のデータと２位を加えたデータのマッピング関係概略図である。
【図９】本発明に係る圧縮エンコード・デコード方式の実施例で圧縮していない元のデータの概略図である。
【図１０】本発明に係る圧縮エンコード・デコード方式の実施例で元のデータと圧縮エンコードの関係概略図である。
【図１１】本発明に係る圧縮エンコード・デコード方式の実施例で圧縮してエンコードしたデータの概略図である。
【発明を実施するための形態】
【００１７】
本発明を実施するための実施形態についてＮＡＮＤフラッシュメモリを例として、以下、図面を用いて説明する。
【００１８】
フラッシュメモリブロックの記憶セルの操作特徴によって、フラッシュメモリの記憶セルの使用寿命に影響する要因は、書き込み操作において１から０になるという操作と、消去操作において０から１になるという操作とによる記憶セルの損耗である。そのため、ブロックで消去してから毎回の操作ページに書き込む０が少なければ少ないほど、消去過程で損耗される記憶セルも少なくなり、ブロックの使用回数が引き伸ばせる。統計方法で計算すれば全フラッシュメモリチップの寿命も延び、それに、書き込んだデータの値を制御することにより操作時間を減らすことができ、書き込みと消去操作の効率を高め、書き込んだデータの値を制御することによって操作の損耗も減らせる。本発明は、最適にデータを書き込むエンコード・デコード方式によってフラッシュメモリの使用寿命を延ばし、フラッシュメモリの操作を最適化しフラッシュメモリの損耗を減らすことを目的とするものである。
【００１９】
本発明のエンコード方式には複数の種類があり、その一つは、エンコードしたデータの０の個数をエンコード前より少なくするように、アルゴリズムによって元のデータをエンコードすることである。もう一つは、データ圧縮により記憶セルに書き込まれるデータ量を減らすことである。より重要なのはデータ中の０の個数を減らすことである。本発明のエンコード・デコード操作には何種類かがあり、ライト操作において書き込んだデータをエンコードし、エンコードしたデータにおける０の個数を減らすことによって、書き込みと消去の操作による記憶セルの損耗を減らすことと、リード操作において対応するデコード操作によって元のデータに戻せることを目的とするものである。
【００２０】
本発明によるフラッシュメモリのリード・ライト中のエンコード・デコード操作は様々の方法で実現するが、実現方法には以下のような何種類かがある。1.ソフトウェアによって、ホストシステムが記憶装置にデータを送信する時に直接データをエンコードし、フラッシュメモリインターフェースにエンコードしたデータを送信する。ホストシステムがフラッシュメモリを読み取る時に、直接インターフェースが読み取ったデータをデコードしてからその他の記憶装置に送信する。2.ハードウェアによって、記憶装置の中のコントローラーモジュールにエンコード・デコードモジュールを付加して、ライト操作において、エンコードモジュールがフラッシュメモリインタフェースから送信されたデータを受信した後、データをエンコードし、エンコードしたデータをフラッシュメモリチップに送信して記憶する。リード操作において、コントローラーモジュールがフラッシュメモリチップでエンコードしたデータを読み取ってデコードし、インターフェースを通してデコードしたデータをホストシステムに送信する。3.フラッシュメモリチップの内部にエンコード・デコードモジュールを付加して、フラッシュメモリチップが外部のコントローラーモジュールからのデータを受信した後直接データをエンコードし、エンコードしたデータを該当アドレスの記憶セルに書き込む。コントローラーモジュールがフラッシュメモリチップにリード操作を行う時に、フラッシュメモリチップの中のエンコード・デコードモジュールが該当アドレスの記憶セルから読み取ったデータをデコードしてから、データをコントローラーモジュールに送信する。エンコードモジュールとデコードモジュールは別々に異なる装置側に設定でき、設定できる装置側はホストシステム側、フラッシュメモリコントローラー側、又はフラッシュメモリチップ側でもよい。
【００２１】
図1に示すのは本発明の実施形態に係るフラッシュメモリコントローラー側でのエンコード・デコード操作の原理図である。11はフラッシュメモリ装置内のデータバッファを示し、その主な機能は操作過程でデータをバッファすることである。12は、装置がライト操作をする時にデータはデータバッファモジュールからデータエンコードモジュールに書き込むことを示す。13はエンコード・デコードモジュール中のエンコーダを示し、その主な機能はバッファから書き込んだデータをエンコードし、当該エンコード情報をフラッシュメモリチップの冗長区或いは情報区に書き込むことである。14はデータをエンコード・デコードモジュールを通して処理してからフラッシュメモリコントローラーモジュールに書き込むことを示す。15はフラッシュメモリコントローラーモジュールを示し、その主な機能はフラッシュメモリの操作を制御すると同時に、エンコードしたデータをフラッシュメモリチップに送信することである。18はリード操作において、フラッシュメモリコントローラーがフラッシュメモリチップから読み取ったデータをデコードモジュールに送信することを示す。17はエンコード・デコードモジュール中のデコーダを示し、その主な機能はデータフラッシュメモリチップで記憶したエンコード情報によってデータ区のデータに対し該当するデコード操作を行うことである。その後、16のようにデコードしたデータをデータバッファに送信する。
【００２２】
図2は本発明の実施形態中のページにデータをライトする過程でのエンコード操作を示す。図に示すように、データの操作ページを8Byteに設定し、冗長区を１Byteに設定する。即ち、フラッシュメモリの一つのライト操作の単位は9Byteであって、いずれかのページを選択した場合、そのデータは図の左側のブロックに示すように“01100000 10000100 01000100 10101001 01001001 00101000 00000100 00100001” 冗長区は“xxxxxxx1”であって、冗長区の先の７bitが他のデータ情報を記録し、８bit目が指定のエンコード情報bitである。エンコードモジュールの統計によると、0の個数は46、１の個数は18である。この判断によって、データのエンコード操作を行う必要があり、本発明の実施形態に係るアルゴリズムによって図の右側のブロックに示すように“11001111 01111011 10111011 01010110 10110110 11010111 11111011 11011110”というデータが得られて、エンコード情報を冗長区“xxxxxxx０”に書き込む（エンコード情報bitが0とは、ビット反転により計算するという意味であり、エンコード情報bitが1とは、ビット反転によらず直接計算するという意味であることを定義する）。エンコードモジュールのデータ区に対する統計により、出た結果は0の個数が18、１の個数は46である。エンコードしたデータをフラッシュメモリチップに書き込み、冗長区の指定bitに該当マークを書き込むことにより当該ページのデータがビット反転を行ったことを記憶する。
【００２３】
図3は本発明の実施例のアルゴリズムが、あるページのデータをリード操作でのデコード操作を示す。図のように、図2に示すライト操作過程で書き込んだ冗長区のマークビットの情報によって、デコードモジュールがエンコード結果をデコードしてから、装置に書き込んだ元のデータを読み取る。
【００２４】
図4は本発明の実施例が、あるページに書き込む操作と最後の消去操作を行う時にフラッシュメモリチップ内のデータ区の記憶セルの変化状況を示す。まず、データを書き込む前に操作するアドレスが対応するフラッシュメモリページに消去操作を実行すると、図の左側のブロックのように、記憶セルが全部１になる。その後、データを書き込む。もし書き込む過程で記憶セルのbitの数値が1であれば当該記憶セルを充電する必要はない。もし0であれば充電する必要があって、当該記憶セルを0にする。図の真ん中のブロックのように、最後に書き込んだデータに消去操作を実施し、つまり、全ての記憶セルを放電させる。bitの値が1だと、今回のライトと消去操作で損耗されず、bitの値が０だと、今回の書き込むと消去操作で一回損耗される。
【００２５】
本発明の実施形態を調査して得た数値によると、本発明の実施形態に係るエンコード・デコード操作を利用していない場合は、図5に示すようにデータ区の４６個の記憶セルが損耗される。本発明の実施形態に係るエンコード・デコード操作を利用した場合は１８個の記憶セルが損耗され、大幅に該当ページの記憶セルの損耗個数を減らせ、同じように、全フラッシュメモリチップ及びフラッシュメモリ装置に対して使用寿命を引き伸ばすことができる。それに、フラッシュメモリの書き込みと消去操作の特徴によって、毎回の操作過程で書き込んだデータ或いは消去したデータ中0の個数が少なければ少ないほど、操作時間が短くて効率も高く、操作のエネルギー消費も低くなる。
【００２６】
前述の例は最も簡単な速いアルゴリズムであって、このようなビット反転によって本発明を説明する。更に、本発明に関わるアルゴリズムと実現方法には何種類かがあり、ソフトウェアによる方法でもいいしハードウエアによる方法でもいいが、フラッシュメモリ記憶セルを損耗する個数をできるだけ減らすこと、フラッシュメモリチップとフラッシュメモリ装置の使用寿命を引き伸ばすこと、操作時間をできるだけ縮めること、フラッシュメモリの操作スピードを高めることなどを目的として、それによって、記憶セルの損耗をできるだけ減らし、かつ記憶セルを損耗するフラッシュメモリチップへのライト操作をできるだけ減らす。
【００２７】
以下では、マッピングを使用するエンコード・デコード処理を説明する。図6は４bitのデータを例とした本実施例の、全ての4bitのデータセットであり、その中で0個の0を含むデータが0個、1個の0を含むデータが4個、2個の0を含むデータが6個、3個の0を含むデータが4個、4個の0を含むデータが1個である。
【００２８】
図7は2ビット冗長区を加えた後の全てのデータセットである。その中で0個の0を含むデータが1個、1個の0を含むデータが6個、2個の0を含むデータが15個、3個の0を含むデータが20個、4個の0を含むデータが15、5個の0を含むデータが6個、6個の0を含むデータが1個である。
【００２９】
図8に示すように、4bitのデータセットと2bitの冗長区を含んだ6bitのデータセットにマッピング関係を作って、この関係によってデータを書き込む過程でエンコードすると大幅にデータの中の０の個数を減らせる。図においてマッピングした6bitのデータでは、0個の0を含むデータが1個、1個の0を含むデータが6個、2個の0を含むデータが9個になる。
【００３０】
以上の結果に対して統計を取ると、データはランダムに作成されるので、図8に示す各データがフラッシュメモリチップに記録される確率は同じである。各データが書き込まれる回数をｎとすると、0が書き込まれる回数は4n+12n+12n+4n=32nになる。エンコードした後、実際に書き込まれる０の回数は6n+18n=24nになる。統計結果によると、全部でエンコード前より0が書き込まれる回数は8n減り、16n回の4bitのライト操作を行う。故に、本実施例を通してライト操作を行う時の各記憶セルに対する損耗は12.5％減らすことができる。
【００３１】
データを読み取る時に、フラッシュメモリ記憶セルからエンコードしたデータを読み取って、マッピング関係によってデコードし対応する元のデータを得る。その中のデコードという計算はエンコードの逆演算（ビット反転）である。
【００３２】
前述のマッピング原理によって、各フラッシュメモリページには2048Bのデータ区と64Bの冗長区を含み、一つのエンコード計算を作ることができることで、ホストシステムデータがエンコードされて、フラッシュメモリ記憶セルに書き込まれる。冗長区の存在により、エンコードした後のデータの桁数はホストシステムの元のデータの桁数より大きく、フラッシュメモリチップの損耗を減らしフラッシュメモリ装置の使用寿命を引き伸ばすために、前述のようなエンコード計算がホストシステムのデータと桁数を拡大したデータに新しいマッピング関係を作って、ホストシステムの元のデータの０の個数よりエンコードしたデータ中の0の個数を減らせる。
【００３３】
以下、本発明の実施形態に係る圧縮方式について、詳細に説明する。本発明は一つのエンコードの方式を例とする。その実施方法は非常に簡単で、一段のデータで16進法データが出現頻度を統計処理し、得た頻度によってエンコードしたデータの桁数を決めて、頻度が最も高いのエンコードした値を0とし、頻度によって順番に10、110、1110、・・・とする。このように１bitで増加する際に、最高位のbitの左に一つの１を添える。出現頻度が同じ場合は、データユニットの16進法の値によってエンコードした値を決める。データユニットの16進法の値が小さい場合はエンコードしたデータの桁数が少なく、値が大きい場合はエンコードしたデータの桁数が多い。
【００３４】
図9は圧縮計算していない128bitの元のデータであり、図10は統計により４bitを計算ユニットとして圧縮計算を行って、データの中で各４bitのデータの出現頻度を示す。統計結果によるデータの書き込み頻度によって圧縮エンコードを設計し、元のデータと圧縮エンコードしたデータの対応関係は図10のように示す。統計によると、圧縮計算をしてない元のデータの中で0を含むデータの個数は72、1を含むデータの個数は56である。
【００３５】
128bitの元のデータを圧縮してエンコードした後、図11のような結果が得られ、圧縮した後のデータの桁数は125bitになる。その中で0の個数は32、1の個数は93になり、圧縮前より0の個数は40個を減らせ、全てのデータの個数は3bitを減らせることになる。故に、この圧縮エンコード方式によってデータの中での0の個数を有効的に減らせ、同時に、書き込まれるデータの桁数も減らせる。
【００３６】
データをリードするとき、まずフラッシュメモリ記憶セルから書き込んだエンコードしたデータを読み取って、圧縮計算における圧縮したデータと元のデータの対応関係によってデコードし、元のデータを得る。その中のデコードという計算はエンコードの逆演算である。
【００３７】
本発明の圧縮エンコード・デコードアルゴリズムは上記の実施形態以外に、その実施方法が複数種類ある。ここでは一種の例しか提供していないが、圧縮アルゴリズムによって書き込んだデータの桁数、特にデータ中の0の個数を減らし、フラッシュメモリの損耗を減らすことと装置の使用寿命を引き伸ばすこと及び書き込むスピードを高めること、電力消費を減らすことを主な目的とする。
【００３８】
上記ではいくつかの種類の実施形態を例に挙げて本発明を説明したが、本発明の実現アルゴリズムには多くの種類があり得、それらのすべては本発明の技術的精神に基づくものであり、且つ、当業者にとっても明白なものである。また、本発明のフラッシュメモリチップはＮＡＮＤ、ＮＯＲだけではなく、ほかの類似した書き込むときに損耗がある半導体類のフラッシュメモリチップも含み、それらのすべては本発明の基本的思想及び範囲から逸脱せず、当業者にとっては明白な変化であり、本発明の範囲に属する。