(57)【特許請求の範囲】
【請求項１】
マイクロプロセッサ、データをフラッシュメモリデバイスに書き込み、データを前記フラッシュメモリデバイスから読み出すためのデータバスを有するシステムであって、前記フラッシュメモリデバイスが、
−記憶すべきデータを受信し、冗長ワードを生成するエラー修正エンコーダであって、前記記憶すべきデータを、ステータスワード及びデータ部分を有するデータワードに変換する前記エラー修正エンコーダと、
−前記冗長ワード及び前記データワードを記憶するフラッシュメモリと、
−前記フラッシュメモリから前記冗長ワード及び前記データワードを受信するエラー修正デコーダと、
−前記エラー修正エンコーダ、前記フラッシュメモリ、及び前記エラー修正デコーダを相互接続するためのフラッシュデータバスと
を有し、
前記ステータスワードは、前記冗長ワードのエラー修正コードを維持することによってビットの可変性をもたらすという、ビット変更用に確保されているシステム。
【請求項２】
前記エラー修正エンコーダが、エラー修正コードを表す論理回路を有する、請求項１に記載のシステム。
【請求項３】
前記エラー修正コードが、対称形のハミングコードである、請求項２に記載のシステム。
【請求項４】
前記フラッシュデータバスが、前記冗長ワードを前記フラッシュメモリに書き込むためのビットライン、及び／又は前記冗長ワードを前記フラッシュメモリから読み出すためのビットラインを有する、請求項１、２、又は３に記載のシステム。
【請求項５】
前記フラッシュデータバスが、前記データワードを前記フラッシュメモリに書き込むためのビットライン、及び／又は前記データワードを前記フラッシュメモリから読み出すためのビットラインを有する、請求項１、２、又は３に記載のシステム。
【請求項６】
前記フラッシュデータバスが、前記ステータスワードを前記フラッシュメモリに書き込むためのビットライン、及び／又は前記ステータスワードを前記フラッシュメモリから読み出すためのビットラインを有する、請求項１、２、又は３に記載のシステム。
【請求項７】
前記冗長ワードに記憶されている情報が、前記データワードにおいて起こり得るエラーを検出すると共に修正するための前記エラー修正デコーダによって使用され得る、請求項１乃至６の何れか一項に記載のシステム。
【請求項８】
前記フラッシュメモリデバイスに記憶されている前記データワードにおいてビット変更をもたらす、請求項１乃至７の何れか一項に記載のシステム。
【請求項９】
前記フラッシュメモリデバイスに書き込まれるべき前記データが１２８ビットを有し、前記冗長ワードが８ビットを有し、前記データワードが１１２ビットを有し、前記ステータスワードが１６ビットを有する、請求項１乃至８の何れか一項に記載のシステム。
【請求項１０】
前記ステータスワードが、前記データワードにおける前記データは有効かどうかを確定する、請求項１乃至９の何れか一項に記載のシステム。
【請求項１１】
前記エラー修正コードが、周期的な冗長コードである、請求項２に記載のシステム。
【請求項１２】
前記データが前記フラッシュメモリにおいて三つのセクションで構成され、前記第一のセクションはステータスワードを含み、前記第二のセクションはデータワードを含み、前記第三のセクションは冗長ワードを含む、請求項１乃至１１の何れか一項に記載のシステム。
【請求項１３】
前記エラー修正エンコーダが、前記データの幅を展開するためのアダプタと、前記冗長ワードを生成するためのパリティ生成器とを有する、請求項１乃至１２の何れか一項に記載のシステム。
【請求項１４】
前記エラー修正デコーダが、ワードを生成すると共に、修正ユニットに入力するためのパリティ生成器を有する、請求項１乃至１３の何れか一項に記載のシステム。
【請求項１５】
前記修正ユニットが、前記フラッシュメモリから読み出されるデータワードを修正するために、前記ワードを使用する、請求項１４に記載のシステム。
【請求項１６】
フラッシュメモリデバイスにおいてデータを記憶するための方法であって、
−前記データをパリティ生成器に入力するステップと、
−前記パリティ生成器の出力部において前記データから冗長ワードを生成するステップと、
−前記データからステータスワード及びデータ部分を生成するステップと、
−前記データ部分、前記冗長ワード、及び前記ステータスワードを一つのワードに組み合わせるステップと、
−前記一つのワードを前記フラッシュメモリデバイスに書き込むステップと
を有し、
前記ステータスワードは、前記冗長ワードのエラー修正コードを維持することによってビットの可変性をもたらすという、ビット変更用に確保されている方法。
【請求項１７】
前記フラッシュメモリデバイスにおける特定のワードの前記ステータスワードは、前記特定のワードの前記冗長ワードが変更されなくてもよい場合、複数の既定値のうちの一つをとってもよい、請求項１６に記載の方法。
【請求項１８】
前記複数の既定値がいわゆるマジックワードである、請求項１７に記載の方法。
【請求項１９】
特定のワードが、ビットエラーを検出するために、前記フラッシュメモリデバイスから読み出されると共にパリティ生成器によって処理される、請求項１６乃至１８の何れか一項に記載の方法。
【請求項２０】
前記パリティ生成器が、ビットエラーは発生したかどうか、及び前記ワードにおけるビットは修正されなければならないかどうかを示す出力ワードを生成する、請求項１９に記載の方法。
【請求項２１】
前記パリティ生成器の前記出力ワードにもたらされる前記情報に基づいて修正がなされる、請求項１９に記載の方法。
【請求項２２】
前記ステータスワードが、前記対応するデータフィールドにおける前記データは有効なデータか又は無効なデータかを示すために使用される、請求項１６乃至２１の何れか一項に記載の方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フラッシュメモリデバイスの分野に関する。更に、特に本発明は、フラッシュメモリのビット変更を可能にするエラー修正方式に関する。
【０００２】
【従来の技術】
今日の民生用及び組み込み用のシステム製品の多くは、通常、前記製品の所要の特徴をサポートするために使用される三つの異なる種類のメモリパーツを有している。例えば、通常の携帯電話において、フラッシュメモリ部分はコード記憶のために使用され、ＳＲＡＭはスタック及び揮発性データ記憶をもたらし、第三の部分、すなわちＥＥＰＲＯＭデバイスは、頻繁に更新又は変更されるデータのための不揮発性記憶をもたらす。当該三つのデータグループのコンテンツは、製品の種類に依存して、異なるレート及び異なる回数で変更される。明らかなことに、当該データの全ては、最もよく変更され得るばかりでなく最もよく修正（ｒｅｔｒｉｅｖｅ）され得る態様で記憶される必要がある。
【０００３】
フラッシュメモリは、長年、不揮発性データ記憶を必要とする民生及び工業用途における、データ記憶及び修正のために使用されてきた。フラッシュメモリは、例えば、回転ディスクに置き換わるディスクエミュレーションをもたらすために使用され得る。すなわち、フラッシュメモリは、リードライト媒体として回転ディスクの代わりに使用され得る。
【０００４】
フラッシュメモリデバイスにおけるデータ信頼性を高めるための方法は、米国特許第６０４１００１号に開示されている。ハミングコードとして知られているエラー修正コードが使用され、フラッシュメモリセルがブロックに細分されている。当該ブロックの各々は、更にセクタに分割されている。前記米国特許は、前記フラッシュメモリにおけるデータの構成に焦点を当てている。エラー検出及びエラー修正を行うためにハイパワーのエラー修正機能が使用されている。
【０００５】
フラッシュメモリは、自身のメモリコンテンツを保持するために電源を必要としない電気的に書き換え可能な不揮発性ディジタルメモリデバイスである。通常のフラッシュメモリは、フローティングゲート上に電荷を記憶して、２値状態システムにおける第一の論理状態を表す一方、記憶される電荷の欠乏は２値状態システムにおける第二の論理状態を表している。更に、通常のフラッシュメモリデバイスは、書き込み動作、読み出す動作、及び消去動作を行うことができる。
【０００６】
大容量の民生用途において、フラッシュメモリは、回路内のフラッシュの書き込み能力によりデータ記憶用に使用されることも可能であるが、主にコード記憶用に使用されてきた。最近まで、内部記憶コードが同時に実行されている間におけるフラッシュの書き込み（又は消去）不能により、特定の製品において当該フラッシュがＥＥＰＲＯＭパーツに置き換わることは妨げられてきた。しかしながら、新シリーズのフラッシュパーツは、単一のフラッシュメモリにおいて、当該同時読み出し書き込み機能（ｓｉｍｕｌｔａｎｅｏｕｓ  ｒｅａｄ−ｗｈｉｌｅ−ｗｒｉｔｅ（ＲＷＷ）  ｆｕｎｃｔｉｏｎａｌｉｔｙ）を提供する。当該特徴は、同じフラッシュデバイスにおいて、実行可能なコード及び不揮発性データの記憶を可能にする。実行可能なコードをもたらすと共に頻繁に更新されるデータを記憶する、当該フラッシュパーツの能力は、多くの製品におけるＥＥＰＲＯＭの排除を見越してのものである。図１Ａにおいて示されているように、従来の製品は、今まで通常フラッシュメモリ１０、ＥＥＰＲＯＭ１１、及びＳＲＡＭ１２を有していた。将来の製品は、ＥＥＰＲＯＭデバイスが製品から完全に除去されている態様で実現され得る。それによって、それぞれの製品のコスト及びチップ面積に関して大幅な節減がもたらされる。当該将来の製品の例が、図１Ｂに示されている。当該例は、フラッシュメモリ１３及びＳＲＡＭ１４を含んでいる。
【０００７】
新製品の開発によって、より大きな記憶容量を具備するフラッシュメモリが必要となる。今日、フラッシュメモリの容量は、毎年倍増している。大容量フラッシュメモリは、許容可能な製品の信頼性を達成するために、エラー修正機能の使用を必要とする。エラー修正は、前記データビットと共に前記メモリに記憶される冗長ビット、すなわちパリティビットを生成することに基づいている。前記メモリから読み出す際、当該冗長ビットは、ビットエラーを検出すると共に修正するために使用される。フラッシュメモリのためにエラー修正機能を使用することにより、一旦データワードが前記フラッシュメモリに書き込まれると、当該データワードは、前記冗長ビットの正常な生成を妨げない限り、もはや変更され得ないという一つの大きな欠点がもたらされる。すなわち、従来のエラー修正方式を使用すると、データワードの単一ビット変更はなされない。
【０００８】
通常、フラッシュメモリは、いかなるエラー修正方式も具備せずに使用される。当該従来のフラッシュメモリにおいて、一つのフラッシュデータワードを変更することが所望される場合、全フラッシュメモリ（又はそれの少なくとも一つの主要な部分）は消去されなければならない。
【０００９】
エラー修正機能は、ビットエラーに対処するためにディジタルメモリの設計において使用される。通常、エラー修正コード（ＥＣＣ）を実現する、適切な論理回路が使用される。ＥＣＣは、読み出されているデータビット又は転送されているデータビットが、エラーに対してチェックされると共に、必要ならば、実行中に当該エラーを修正することを可能にする。
【００１０】
使用されるフラッシュメモリの増大するサイズのために、いくつかの種類のエラー修正をもたらすことはますます重要となっている。いくつかの最新のフラッシュメモリシステムは、フラッシュメモリにデータを書き込みためのエンコーダと、フラッシュメモリからデータを読み出すためのデコーダとを使用するエラー修正方式を備えている。
【００１１】
しかしながら、ビット変更は、例えば、フラッシュメモリ、すなわち全ての主要なフラッシュ市場取引会社（ｍａｒｋｅｔｅｒ）、例えばインテル（Ｉｎｔｅｌ）、ＡＭＤ，Ａｔｍｅｌ、及びその他によって使用されている技術においてＥＥＰＲＯＭ機能をエミュレートするとき、非常に重要な特徴となる。
【００１２】
【発明が解決しようとする課題】
本発明の目的は、フラッシュメモリが今日及び将来の用途の多くにおいて使用されることを可能にする方式を提供することにある。
【００１３】
従って、本発明の目的は、フラッシュメモリ上のＥＥＰＲＯＭ機能をエミュレートする際、ビット変更を可能にする方式を提供することにある。
【００１４】
当該及び他の目的は、フラッシュメモリのアーキテクチャにおける改良により、及び当該フラッシュメモリが使用されている態様における改良により達成される。
【００１５】
【課題を解決するための手段】
当該発明は、エラー修正ブロックが、フラッシュメモリ上でビット変更を可能にする符号化方式を適用する方式に関する。
【００１６】
本発明によれば、マイクロプロセッサ、データをフラッシュメモリデバイスに書き込むためのデータバス、及びデータを前記フラッシュメモリデバイスから読み出すためのデータバスを有するシステムがもたらされる。前記フラッシュメモリデバイスは、エラー修正エンコーダと、フラッシュメモリと、エラー修正デコーダと、前記エラー修正エンコーダ、前記フラッシュメモリ、及び前記エラー修正デコーダを相互接続するためのフラッシュデータバスとを有している。前記データは、前記エラー修正エンコーダによって処理する際、ステータスワード、データワード、及び冗長ワードを有するワードに変換される。
【００１７】
好ましいシステム構成は、請求項２乃至１５においてもたらされている。
【００１８】
フラッシュメモリデバイスにおいてデータを記憶するための方法がもたらされ、当該データは、冗長ワードを生成すると共に、出力部において当該冗長ワードをもたらすパリティ生成器に入力される。更に、ステータスワードが生成され、前記データ、前記冗長ワード、及び前記ステータスワードは一つのワードに組み合わされる。当該ワードは、それから自身が記憶される前記フラッシュメモリデバイスに書き込まれる。
【００１９】
有利な方法が、請求項１７乃至２２において記載されている。
【００２０】
提案された本発明は、エラー修正機能を使用する大容量フラッシュメモリ上で例えばＥＥＰＲＯＭのエミュレーションを可能にする技術である。
【００２１】
製造者が、実行可能なコード及び不揮発性データを記憶するためにＥＥＰＲＯＭではなく前記フラッシュメモリパーツを使用し得ることは本発明の利点である。
【００２２】
ＥＥＰＲＯＭ機能がフラッシュメモリアレイに選択的に追加されることを可能にすることは本発明の他の利点である。
【００２３】
本発明のより完全な記載のため、並びに本発明の他の目的及び利点のために、添付図面と共に、後続する記載が参照される。
【００２４】
【発明の実施の形態】
ＳＲＡＭのような他のメモリタイプとは対照的に、フラッシュメモリは、一方向のみでビット変更を可能にする。フラッシュメモリセルに記憶されている論理‘１’は、書き込み動作によって、論理‘０’に変更され得る。しかしながら、書き込み動作によって論理‘０’を論理‘１’に変更することは不可能である。書き込まれたセル（論理コンテンツ‘０’）を論理状態‘１’に変更することは、消去動作によってのみ可能となるであろう。消去動作は、単一ビットにおいて使用され得ないが、より大量のデータ（ブロック消去参照）においてのみ、又は全メモリ（フラッシュ消去参照）においてさえ使用され得る。
【００２５】
図２は、フラッシュデータワード２０における可能なデータ操作を示している。本例において、フラッシュデータワード２０は、４ビットを有している。最初（初期状態ａ）に、４ビット全ては消去されるのでコンテンツ‘１’を有している。その後、データワード‘１０１０’が書き込まれる（状態ｂ）。後続するステップ（状態ｃ）において、最上桁ビット（ｍｏｓｔ  ｓｉｇｎｉｆｉｃａｎｔ  ｂｉｔ（ＭＳＢ））２１が、‘１’から‘０’に変更される。最終的に、データワード２０は（図２において図示されていない他の多くのデータワードと共に）消去されて、初期値‘１１１１’（状態ｄ）になる。当該単一ビットの変更は、前記変更が論理‘１’から論理‘０’へのもの（１−＞０）である限り可能である。
【００２６】
図３は、フラッシュメモリ３１と共に、エラー修正ブロック（ｅｒｒｏｒ  ｃｏｒｒｅｃｔｉｏｎ  ｂｌｏｃｋ）３０の構成を示している。フラッシュメモリ３１に書き込まれるべきデータは、（この場合データイン（Ｄａｔａ  ｉｎ）又はＤｉｎと称される）入力ライン３２を介して、エラー修正ブロック３０に入力される。当該エラー修正ブロック３０は冗長ビットを生成する。前記データ及び前記冗長ビットは、共にフラッシュメモリ３１に書き込まれる。前記データは、ライン３３を介してフラッシュメモリ３１に書き込まれると共に、ライン３４を介して前記冗長ビットに書き込まれる。読み出し動作中、前記データと前記冗長ビットとは、ライン３５とライン３６とをそれぞれ介してフラッシュメモリ３１から読み出される。前記冗長ビットにおいて記憶されている情報は、前記データワードにおいて起こり得るエラーを検出すると共に修正するために使用される。最終的に、修正されたデータは、（この場合データアウト（Ｄａｔａ  ｏｕｔ）又はＱｏｕｔと称される）出力ライン３７において出力される。
【００２７】
図４において示されている方式のような従来のエラー修正方式（例えば、ハミングコード（Ｈａｍｍｉｎｇ−Ｃｏｄｅ）に基づいた方式）が使用されるとき、単一ビットは、図４において示されている（状態ａ）ように自由に変更され得ない。前記メモリの前記コンテンツを消去した後、フラッシュデータワード４０及び冗長ビット４１は初期状態となっている。すなわち、全ビット（データ及び冗長ビット）は、論理‘１’になっている（状態ｂ）。データワード４０が書き込まれるとき、適切なエラー修正方式により冗長ビット４１も書き込まれる。例えばハミングコードのようなエラー修正コード（Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）がよく適合している。ハミングコードが、単一のビットエラー及び二重のビットエラーを検出すると共に修正するために使用されてもよい。前記二重のビットエラーは、二つの別個のデータビットがエラーを含んでいることを示す。
【００２８】
データワード４０のＭＳＢ４２は、依然論理‘１’から論理‘０’へ変更され得ることが分かるであろう（状態ｃ）。しかしながら、冗長ビット４１は、論理‘０’から論理‘１’への二つの変更を必要とし得るため、それに応じて変更され得ない。冗長ビット４１のＭＳＢ４３及びＬＳＢ４４は、不可能ではあるが論理‘０’から論理‘１’へ変更されるべきである。その結果、フラッシュメモリにおいて誤ったワード（ｉｎｃｏｒｒｅｃｔ  ｗｏｒｄ）がもたらされるであろう。当該例は、フラッシュメモリが、ハミングコードのような従来の符号化アルゴリズムと共に使用されるとき、前記単一ビット変更がなされないことを示している。従来のエラー修正方式が使用されると、単一ビットは、図４に示されているように自由に変更され得ない。
【００２９】
本発明によれば、フラッシュデータワードにおいて、改良されたビット変更を可能にする、新規なエラー修正方式が提案される。図５は、本発明による前記符号化方式を備える、フラッシュデータワード５０の構成を示している。図５に示されているように、フラッシュデータワード５０は、二つのセクション５１と５２とに分割される。当該例において、データワード５０のうちの四つの最上桁ビット５１は、ビット変更用に確保されている。データワード５０のうちの残りの四つのビット５２は、任意のデータ用に使用される。冗長ビット５３の使用は、従来の符号化方式における使用と同じである。しかしながら、ワード５１の導入によりフラッシュデータワード５０全体がより長くなるために、より長い冗長ワード５３が必要となることは注意されるべきである。フラッシュデータワード５０のうちのセクション５２が、通常、セクション５１よりも長くなり得ることは注意されるべきである。
【００３０】
図６は、新規な符号化方式の原理を詳細に示している。すなわち、消去動作後、フラッシュデータワード５０及び冗長ワード５３の全ビットは論理‘１’になる（状態ａ）。データは、フラッシュデータワード５０のうちのデータ部分５２に書き込まれる（状態ｂ）。示されている当該例において、データ‘１０１０’が書き込まれている。単一ビット変更用に確保されている部分５１は、しばらくタッチされないままである。冗長ワード５３に、‘１００１’が書き込まれる。この場合、 ‘０００１’ へのビット変更用に確保されているデータフィールド５１を書き込むことによって、フラッシュデータワード５０において修正がなされる（状態ｃ）。新規なフラッシュデータワード５０は、従来のフラッシュデータワード‘１１１  １０１０’と同じ冗長ワード５３を有する‘０００１  １０１０’になる。その結果として、フラッシュデータワード５０の前記修正は正しくなされており、前記フラッシュメモリから読み出される際、合法のコードワード（ｌｅｇａｌ  ｃｏｄｅ  ｗｏｒｄ）がもたらされる。
【００３１】
前記ビット変更が制限されることは注意されるべきである。ビットは、前記フラッシュデータワードのうちの確保されているセクション内のみで変更され得る。更に、起こり得る全てのビット変更は許容されない。当該例において、４ビット（セクション５１）は変更用に確保されている。理論的には、１６ビットの修正が可能であるが、当該１６のうち二つしか許容されない（例えば、‘０００１’及び‘０１００’）。前記起こり得るビット変更は、この場合‘マジックワード（ｍａｇｉｃ  ｗｏｒｄ）’として参照される。周期的な符号化方式（周期的なコード）は、冗長ワード５３の規定用に使用されるため、同じ冗長ワード５３を有する、特定のフラッシュデータワード５０（マジックワード）が備えられている。
【００３２】
本方式の詳細は、この場合用途例に関連して説明される。
【００３３】
本発明は、例えば、将来のモバイル電話システムにおいて適用され得る。依然増大し続ける、大容量フラッシュメモリのサイズ（６４Ｍｂ乃至１２８Ｍｂ）に対する需要により、エラー修正が必要となっている。従って、エラー修正方式を具備していないフラッシュメモリを使用することは、実現不可能な選択枝となる。携帯電話において、頻繁に変更される少量のデータ（パラメータ）（例えば、電話番号及び税計算等）は、通常、バイトレベルで消去することを可能にする、専用のＥＥＰＲＯＭチップに記憶される。モバイル電話に対する費用及びコンポーネント数を削減するために、ＥＥＰＲＯＭチップを省略すること、及びフラッシュメモリにおいてＥＥＰＲＯＭの機能をエミュレートすることが、新たな動向となっている。当該技術は、全ての主要な市場取引会社によって広く普及させられている。本記載の導入部において議論されているように、ＥＥＰＲＯＭとは異なり、フラッシュメモリはバイトレベルで消去され得ない。フラッシュメモリにおけるバイトは上書きされなくてもよいので、フラッシュデータワードが変更されると、古いフラッシュデータワードの発生は“無効（ｉｎｖａｌｉｄ）”であることが示される。更新されたフラッシュデータワードは、後続する使用可能なフラッシュメモリ領域（ｌａｃａｔｉｏｎ）に書き込まれる。通常、前記フラッシュデータの有効な発生をトラッキングする（ｔｒａｃｋ）フラッシュ処理ソフトウエア（Ｆｌａｓｈ  ｍａｎａｇｅｍｅｎｔ  ｓｏｆｔｗａｒｅ）が使用される。図７は、ＥＥＰＲＯＭの機能がフラッシュメモリにおいてエミュレートされるとき、どのようにフラッシュデータワード６０が構成されるかを示している。フラッシュデータワード６０は、二つのフィールド６１と６２とに分割される。フラッシュデータフィールド６２において、実際の情報（任意のデータ）が記憶され得る。ステータスフィールド６１において、フラッシュデータフィールド６２に含まれているデータは無効か、又は有効かを示すために、タグ（ｔａｇ）が書き込まれる。当該構成は直接当該記載の本発明に対応している。ステータスフィールド６１は、フラッシュデータフィールド６２が既に書き込まれた後、単一ビットの変更を必要とする。エラー修正機能が使用されると、既に書き込まれたデータに対して、単一ビットの変更は不可能となる。当該新規な方式によるエラー修正は、ＥＥＰＲＯＭのエミュレーションに必要とされるようなビット修正を可能にする。
【００３４】
本発明によるシステム７０のブロック図が図８に示されている。システム７０は、不揮発性フラッシュメモリ７１を具備する集積回路システムである。エラー修正エンコーダ７２が、フラッシュメモリ７１の入力側に位置されている。当該エンコーダは、データをフラッシュメモリ７１に書き込むためにエラー修正アルゴリズムを使用する。フラッシュメモリ７１から、記憶されているビットを読み出すために、フラッシュメモリ７１の出力側において、エラー修正デコーダ７３が位置されている。更に、システム７０は、マイクロプロセッサ７４を有している。フラッシュデータバス７５は、エラー修正エンコーダ７２をフラッシュメモリ７１に接続すると共に、フラッシュメモリ７１をエラー修正デコーダ７３に接続している。フラッシュデータバス７５は、冗長ビットを伝送するビットライン７６と、フラッシュデータビットを伝送するビットライン７７とに分割される。データビットライン７７は、前記ステータスビットを伝送するビットライン７８と、データビットを伝送するビットライン７９とに分割される。本発明によれば、エラー修正エンコーダ７２は、前記ステータスビットが、特定の既定値（“マジックワード”）に変更される場合、前記冗長ビットのアセンブリを変更させない。
【００３５】
エラー修正エンコーダ７２の入力部Ｄｉｎにおいて前記フラッシュメモリに書き込まれるべき前記データワードが１２８ビットを有している場合、フラッシュデータバス７５は、好ましくは、１３６ビットの幅となり、８ビットの冗長ワード、１１２ビットのフラッシュデータワード、及び１６ビットのステータスビットワードが、フラッシュメモリ７１に転送される。逆に、ワードがフラッシュメモリ７１から読み出されると、前記冗長ワードは８ビットを有し、前記フラッシュデータワードは１１２ビットを有し、前記ステータスビットワードは１６ビットを有する。出力ライン６６における前記データワードは１２８ビットの幅となる。１２８ビットデータワード、１６ビットステータスワード、及び８ビット冗長ワードの場合、いくつかのマジックワードが使用可能である。前記ステータスワードは、マジックワードの一つをとることが可能である。マジックワード以外のワードは全くとり得ない。三つの異なる１６ビットマジックワードがもたらされると、前記ステータスフィールドは、前記三つのマジックワードのうちの一つを記憶し得る。前記データフィールドにおける前記データワードが変更される場合、本発明によるパリティビットが依然変更されることは注意されるべきである。しかしながら、前記ステータス情報が、あるマジックワードから他のマジックワードに変わる場合、前記パリティビットは変更されない。前記マイクロプロセッサを制御するために使用される前記ソフトウエア（マイクロコード）は、前記マジックワードを‘認識（ｋｎｏｗ）’する。前記マジックワードは、例えば、前記フラッシュメモリに記憶され得る。
【００３６】
本発明の他の実施例による集積回路システムにおいて、ステータスビット６１は、コンテンツセクション６２における前記データが有効か否かを確定するために使用されてもよい。
【００３７】
本発明の他の実施例において、フラッシュメモリ７１は、ＥＥＰＲＯＭをエミュレートする態様で使用される。
【００３８】
本発明の更に他の実施例において、周期的な冗長コード、好ましくは、対称形のハミングコードが、集積回路システム７０においてエラー修正アルゴリズムとして使用される。
【００３９】
本発明の他の実施例が図９に示されている。システム８０は、マイクロプロセッサ８４、マイクロプロセッサバス９１、ＲＡＭ８３、Ｉ／Ｏデバイス９２、及びフラッシュメモリユニット９０を有している。当該発明の方式は、フラッシュメモリユニット９０の内側において実現される。当該フラッシュメモリユニット９０は、フラッシュデータバスを介してフラッシュメモリ８１に接続される、組み合わされたエラー修正エンコーダ／デコーダ８２（及びほぼ間違いないことに他の制御回路）を有している。前記フラッシュデータバスは、ビットライン８６及び８７を有している。マイクロプロセッサ８４は、バス９１を介してフラッシュメモリ８１にデータを書き込み得る。当該データは、（フラッシュメモリ８１に書き込まれる前に）エンコーダ／デコーダ８２によって符号化される。前記冗長ビットは、ビットライン８６を介してフラッシュメモリ８１に書き込まれ、前記フラッシュデータワードは、データライン８７を介してフラッシュメモリ８１に書き込まれる。エンコーダ／デコーダ８２は、二つのセクションを有するフラッシュデータワードを生成する。第一のセクションは前記ビット変更を表し、第二のセクションは実際のデータを表す。このため、データライン８７は、前記フラッシュデータワードの第一のセクションを伝送するデータライン８８と、実際のデータワードを伝送するデータライン８９とに細分（ｓｕｂｄｉｖｉｄｅ）される。
【００４０】
エンコーダ／デコーダ８２は、（ＡＮＤゲート、ＯＲゲート、及びＸ−ＯＲゲートのような）複数のゲートを有している。
【００４１】
フラッシュメモリ８１からデータを読み出す際、各々のデータは、データライン８６及び８７を介してフェッチ（ｆｅｔｃｈ）される。そのとき、前記データが有効か又は無効かをチェックするために、あるアルゴリズムが適用される。前記データが有効と確定される場合、マイクロプロセッサ８４は、バス９１を介して当該データを使用することが可能となる。前記データが無効と確定される場合、当該データは修正され、それからマイクロプロセッサ８４は、バス９１を介して当該データを使用することが可能となる。
【００４２】
エラー修正エンコーダ７２の詳細は、図１０Ａに示されている。本例において、フラッシュメモリ７１にデータを書き込むための入力バスＤｉｎは、１２８ビットの幅となる。１２８ビットデータワードは、バスライン１０３を介して、アダプタ１００に入力される。前記アダプタは、出力バス１０４において１３６ビットを有するように前記データワードを展開（ｅｘｐａｎｄ）する。これは、前記データワードの終端に論理ゼロを付加することによってなされ得る。１３６ビットデータワードは、バス１０４を介してパリティ生成器（ｐａｒｉｔｙ  ｇｅｎｅｒａｔｏｒ）１０１に入力される。入力部Ｄｉｎにおける前記データワードに対応する前記冗長ビットを生成するために、当該パリティ生成器１０１は、（例えば、ハミングコードに基づく）符号化方式を適用する。本例において、パリティ生成器１０１の出力バス１０５に供給される八つの冗長ビットがもたらされている。入力部Ｄｉｎにおける１２８ビットデータワードと前記８ビット冗長ワードとは、出力バス７５（Ｄｏｕｔ）において１３６ビットワードを形成するように組み合わされる。当該１３６ビットワードは、後の修正のためにフラッシュメモリ７１に記憶される。
【００４３】
エラー修正デコーダ７３の詳細は、図１０Ｂに示されている。１３６ビットワードがフラッシュメモリ７１からフェッチされると、当該ワードは、バス１０８を介して、他のパリティ生成器１０６に入力される。当該パリティ生成器１０６は、パリティ生成器１０１と同じであってもよい。パリティ生成器１０６は、１３６ビットワードのうちの何れかのビットが修正されるべきかどうかを確定すると共に、どのビットが修正されなければならないかを特定することを可能とするため、（例えば、ハミングコードに基づく）符号化方式を適用する。本例において、パリティ生成器１０６は、出力バス１０９に、前記１３６ビットワードのうちの何れかのビットが修正されるべきかどうか、及びどのビットが修正されなければならないかを示す８ビットワードを供給する。修正ユニット１０７は、入力バス１０８に入力されている前記１３６ビットワードの必要な修正を行うために使用される。修正されたデータワード（Ｑｏｕｔ）は、それから出力バス１１０に供給される。
【００４４】
エラー修正エンコーダ７２とエラー修正デコーダ７３とは、共に標準的なディジタル論理を使用して実現され得る。好ましくは、両方の機能ブロック７２と７３とが、フラッシュメモリ７１と同じダイ（ｄｉｅ）上に搭載され得る。
【００４５】
本発明によるフラッシュメモリは、前記データが図５に示されている態様で論理的に構成されていることを特徴としている。各々のフラッシュデータワードは、単一ビットの変更用に確保されている情報が記憶される第一のセクションを有している。前記フラッシュデータワードの第二のセクションは、実際のデータを有している。冗長ビットを記憶するために使用される第三のセクションが設けられている。当該冗長ビットは、前記第一及び第二のセクションにおける情報に基づいて計算される。適切なコード（例えば、ハミングコード）が、前記冗長ビットの計算のために使用される。
【００４６】
本発明の一つの実施例によれば、エラー修正コードに対する、特定のコード条件が規定され得る。第一の条件は、前記コードが対称形となるべきこと、すなわち、全ビットが‘０’、又は全ビットが‘１’となるコードワードが合法なワードでなければならないことであろう。
【００４７】
後続する等式は、パリティ生成器１０６の出力バス１０９においてワードＰａｒＧｅｎＱを生成するために使用されてもよい。
ＰａｒＧｅｎＱ＝Ｈ・ｃＴ
【００４８】
ＰａｒＧｅｎＱは、バス１０９における８ビット結果ベクトル（ｒｅｓｕｌｔ  ｖｅｃｔｏｒ）である。当該ＰａｒＧｅｎＱは、入力バス１０８における１３６ビットワードによるパリティマトリックスＨの乗算によって生成される。パリティ生成器１０６は、マトリックスＨを実現する。
【００４９】
フラッシュメモリ７１の入力側において、同じマトリックスＨが、出力バス１０５における前記冗長ワードを生成するために使用され得る。
【００５０】
本発明に関する使用のためのパリティマトリックスＨを特徴付けるルールが規定されてもよい。当該ルールは、用途から用途に変化してもよい。
【００５１】
本発明が、いかなるエラー修正も伴わずに使用されるフラッシュメモリの場合のように、無制限のビット変更を許容していないことは注意されるべきである。
【００５２】
フラッシュメモリにおいて、電気的に消去可能な、書き込み可能なリードオンリメモリ（ＥＥＰＲＯＭ）をエミュレートすることに対する経済的なアプローチがもたらされる。本発明によってもたらされる当該方法は、たいていの用途に対して十分な、フラッシュデータワードにおける改良されたビット変更を伴う、標準的なフラッシュメモリコンポーネントを使用している。
【００５３】
他の実施例によれば、例えばフラッシュデータワードは、１２８ビットのサイズを有しており、前記冗長ワードは、８ビットのサイズを有している。
【００５４】
本発明は、パーソナルディジタルアシスタント（ｐｅｒｓｏｎａｌ  ｄｉｇｉｔａｌ  ａｓｓｉｓｔａｎｔ（ＰＤＡ））、携帯電話、ディジタルフォトカメラ、パームトップ（ｐａｌｍ  ｔｏｐ）、及びその他多くのデバイスにおける使用に非常に適している。本発明によるフラッシュメモリを有するシステムは、ウェブアドレス、メモ、新たなアドレス情報（例えば、新たな電話番号）、及びカウンタ（例えば、料金）等を記憶することに非常に適している。
【００５５】
本発明が使用され得る例としては、音声作動式（音声符号化）携帯電話がある。例えば、各々の音声サンプルは、フラッシュメモリに記憶される。
【００５６】
本発明は、電話番号が、ＳＩＭカードではなくフラッシュメモリに記憶される携帯電話における使用にも非常に適している。電話番号が変更される場合、古い電話番号には、旧番号である旨の表示がなされなければならない。このため、前記フラッシュメモリにおける前記各々のデータワードには、無効である旨の表示がなされなければならない。これを行うために、ある単一ビットが変更されなければならない。エラー修正を伴う従来のフラッシュメモリにおいて、これは不可能である。しかしながら、（前記一つのビットが変更される）新たなデータワードと元のデータワードとが同じ冗長ワードを有している場合、本発明を使用して単一ビットが変更され得る。
【００５７】
追加の回路に対して多大なオーバヘッド又はコストをかけることなく、いかなる電算デバイスの信頼性でも改善することは本発明の利点である。
【００５８】
理解され易いように、別個の実施例に関連して記載されている、本発明の様々な特徴が、単一の実施例の組み合わせでもたらされてもよいことも評価される。逆に、簡略化のために、単一の実施例に関連して記載されている、本発明の様々な特徴が、別々に、又は何れかの好適なサブコンビネーションでもたらされてもよい。
【００５９】
図面及び明細書において、本発明の好ましい実施例が示されており、特定の用語が使用されているが、このように示されている記載において、一般的及び説明的な態様でのみ、かつ限定の目的でなく、専門用語が使用されている。
【図面の簡単な説明】
【図１Ａ】  フラッシュメモリ、ＥＥＰＲＯＭ、及びＳＲＡＭを具備する従来の電算デバイスである。
【図１Ｂ】  フラッシュメモリ及びＳＲＡＭを具備する従来の電算デバイスである。
【図２】  エラー修正が適用されない場合のフラッシュデータワードの書き込みを示している。
【図３】  エラー修正デバイスを具備する、知られているフラッシュメモリを表すブロック図を示している。
【図４】  エラー修正が適用される場合のフラッシュデータワードの書き込みを示している。
【図５】  本発明によるデータワードの構成の概略図である。
【図６】  本発明によるエラー修正が適用される場合のフラッシュデータワードの書き込みを示している。
【図７】  フラッシュメモリ上のＥＥＰＲＯＭのエミュレーションのためのデータ構成の概略図である。
【図８】  本発明の第一の実施例を表すブロック図である。
【図９】  本発明の第二の実施例を表すブロック図である。
【図１０Ａ】  本発明の一つの実施例によるエラー修正エンコーダを表すブロック図である。
【図１０Ｂ】  本発明の一つの実施例によるエラー修正デコーダを表すブロック図である。
【図１Ａ】
0004417629.tif 000002
【図１Ｂ】
0004417629.tif 000003
【図２】
0004417629.tif 000004
【図３】
0004417629.tif 000005
【図４】
0004417629.tif 000006
【図５】
0004417629.tif 000007
【図６】
0004417629.tif 000008
【図７】
0004417629.tif 000009
【図８】
0004417629.tif 000010
【図９】
0004417629.tif 000011
【図１０Ａ】
0004417629.tif 000012
【図１０Ｂ】
0004417629.tif 000013