(57)【特許請求の範囲】
【請求項１】
電荷蓄積層及びゲート電極を有し、前記ゲート電極に所定電圧を印加することにより前記電荷蓄積層に電荷を蓄積し又は引き抜いて情報ビットの書き込みを行い、読み出し手段により前記電荷蓄積層における電荷の蓄積状態を判定して前記情報ビットの読み出しを行う複数の半導体メモリを備えた半導体記憶装置において、
前記電荷蓄積層に電荷が蓄積された状態を"１"、電荷が引き抜かれた状態を"０"とし、
前記半導体メモリは、２ビットの前記情報ビットに前記情報ビットと同一の２ビットの冗長ビットが付加されてなる４ビットのデータ列を構成する各ビットのうち、所定の１ビットが記憶されるものであり、
前記読み出し手段は、
前記データ列を読み出し、
前記データ列中の"１"の個数を計数し、
計数された前記個数の偶奇を判定し、
前記個数が偶数と判定された場合に、前記データ列を訂正することなく出力し、
前記個数が奇数と判定された場合に、それが１個か３個かを判定し、
前記個数が３個であると判定された場合に、前記データ列を"１１１１"に訂正して出力し、
前記個数が１個であると判定された場合に、その位置が前記データ列中で最下位ビットから見て偶数位置か奇数位置かを判定し、
前記位置が偶数位置と判定された場合に、前記データ列を"１０１０"に訂正して出力し、
前記位置が奇数位置と判定された場合に、前記データ列を"０１０１"に訂正して出力することを特徴とする半導体記憶装置。
【請求項２】
前記半導体メモリは、前記電荷蓄積層として浮遊ゲートが、前記ゲート電極として制御ゲートが設けられてなるものであることを特徴とする請求項１に記載の半導体記憶装置。
【請求項３】
電荷蓄積層及びゲート電極を有し、前記ゲート電極に所定電圧を印加することにより前記電荷蓄積層に電荷を蓄積し又は引き抜いて情報ビットの書き込みを行い、前記電荷蓄積層における電荷の蓄積状態を判定して前記情報ビットの読み出しを行う複数の半導体メモリを備えた半導体記憶装置の読み出し方法において、
前記電荷蓄積層に電荷が蓄積された状態を"１"、電荷が引き抜かれた状態を"０"とし、
前記半導体メモリは、２ビットの前記情報ビットに前記情報ビットと同一の２ビットの冗長ビットが付加されてなる４ビットのデータ列を構成する各ビットのうち、所定の１ビットが記憶されるものであり、
前記データ列を読み出す第１のステップと、
前記データ列中の"１"の個数を計数する第２のステップと、
計数された前記個数の偶奇を判定する第３のステップと、
前記第３のステップにおいて偶数と判定された場合に、前記データ列を訂正することなく出力する第４のステップと、
前記第３のステップにおいて奇数と判定された場合に、それが１個か３個かを判定する第５のステップと、
前記第５のステップにおいて３個であると判定された場合に、前記データ列を"１１１１"に訂正して出力する第６のステップと、
前記第５のステップにおいて１個であると判定された場合に、その位置が前記データ列中で最下位ビットから見て偶数位置か奇数位置かを判定する第７のステップと、
前記第７のステップにおいて偶数位置と判定された場合に、前記データ列を"１０１０"に訂正して出力する第８のステップと、
前記第７のステップにおいて、奇数位置と判定された場合に、前記データ列を"０１０１"に訂正して出力する第９のステップとを備えたことを特徴とする半導体記憶装置の読み出し方法。
【請求項４】
前記半導体メモリは、前記電荷蓄積層として浮遊ゲートが、前記ゲート電極として制御ゲートが設けられてなるものであることを特徴とする請求項３に記載の半導体記憶装置の読み出し方法。
【請求項５】
請求項３に記載の半導体記憶装置の読み出し方法を構成する第１〜第９のステップをコンピュータに実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、情報ビットに当該情報ビットと同一の冗長ビットが付加されてなるデータ列が記憶される半導体記憶装置及び読み出し方法並びにその読み出し方法が記憶された記憶媒体に関する。
【０００２】
【従来の技術】
一般に、不揮発性半導体記憶装置を含む半導体記憶装置においては、メモリセルアレイに記憶データを書き込む際に、その誤り訂正データを冗長ビットとして付帯させる。そして、記憶データをメモリセルアレイから読み出す際に、その内容の誤りの有無を検査し、誤りが判明したときにはその誤りを訂正し、読み出しデータとして出力する。通常この誤り訂正では、ｎビットの記憶データにｍビットの誤り訂正データを付加して、ｔビットの誤りを訂正可能とするためには、以下の（１）式の関係を満たす必要がある。
【０００３】
【数１】
0003605266.tif 000002
【０００４】
この（１）式によれば、例えば、最も頻繁に発生する１ビットの誤り訂正を行うには、ｔ＝１として、以下の（２）式を満足するｍビットの誤り訂正データの付加が必要である。
【０００５】
【数２】
0003605266.tif 000003
【０００６】
この（２）式によれば、１ビットの記憶データに対して１ビットの誤り訂正を行うには、２ビット以上の誤り訂正データが必要であり、２ビットの記憶データに対して１ビットの誤り訂正を行うには、３ビット以上の誤り訂正データが必要である。
【０００７】
【発明が解決しようとする課題】
上述のように、記憶データに対して１ビットの誤り訂正を行うには、記憶データよりも長い誤り訂正データが必要であり、上述の手法は誤り訂正の方法としては極めて効率が劣るといわざるを得ない。
【０００８】
なお、メモリセルに記憶情報とともにパリティビットを記憶させ、メモリの大容量化及びデータの信頼性の向上を図る不揮発性半導体記憶装置が、特開平６−２８２９９２号公報に開示されているが、付加するビットがパリティビットであるため、誤りが生じたか否かを効率良く判定することは可能であるものの、この不揮発性半導体記憶装置では誤り訂正を行うことはできない。
【０００９】
そこで、本発明の目的は、情報ビットに付加する冗長ビットを極めて短いものとし、効率良く正確に誤り訂正を行う半導体記憶装置及び読み出し方法並びに読み出し方法が記憶された記憶媒体を提供することである。
【００１０】
【課題を解決するための手段】
本発明の半導体記憶装置は、電荷蓄積層及びゲート電極を有し、前記ゲート電極に所定電圧を印加することにより前記電荷蓄積層に電荷を蓄積し又は引き抜いて情報ビットの書き込みを行い、読み出し手段により前記電荷蓄積層における電荷の蓄積状態を判定して前記情報ビットの読み出しを行う複数の半導体メモリを備えた半導体記憶装置において、前記電荷蓄積層に電荷が蓄積された状態を"１"、電荷が引き抜かれた状態を"０"とし、前記半導体メモリは、２ビットの前記情報ビットに前記情報ビットと同一の２ビットの冗長ビットが付加されてなる４ビットのデータ列を構成する各ビットのうち、所定の１ビットが記憶されるものであり、前記読み出し手段は、前記データ列を読み出し、前記データ列中の"１"の個数を計数し、計数された前記個数の偶奇を判定し、前記個数が偶数と判定された場合に、前記データ列を訂正することなく出力し、前記個数が奇数と判定された場合に、それが１個か３個かを判定し、前記個数が３個であると判定された場合に、前記データ列を"１１１１"に訂正して出力し、前記個数が１個であると判定された場合に、その位置が前記データ列中で最下位ビットから見て偶数位置か奇数位置かを判定し、前記位置が偶数位置と判定された場合に、前記データ列を"１０１０"に訂正して出力し、前記位置が奇数位置と判定された場合に、前記データ列を"０１０１"に訂正して出力する。
【００１１】
本発明の半導体記憶装置の一態様例では、前記半導体メモリは、前記電荷蓄積層として浮遊ゲートが、前記ゲート電極として制御ゲートが設けられてなるものである。
【００１２】
本発明の半導体記憶装置の読み出し方法は、電荷蓄積層及びゲート電極を有し、前記ゲート電極に所定電圧を印加することにより前記電荷蓄積層に電荷を蓄積し又は引き抜いて情報ビットの書き込みを行い、前記電荷蓄積層における電荷の蓄積状態を判定して前記情報ビットの読み出しを行う複数の半導体メモリを備えた半導体記憶装置の読み出し方法において、前記電荷蓄積層に電荷が蓄積された状態を"１"、電荷が引き抜かれた状態を"０"とし、前記半導体メモリは、２ビットの前記情報ビットに前記情報ビットと同一の２ビットの冗長ビットが付加されてなる４ビットのデータ列を構成する各ビットのうち、所定の１ビットが記憶されるものであり、前記データ列を読み出す第１のステップと、
前記データ列中の"１"の個数を計数する第２のステップと、計数された前記個数の偶奇を判定する第３のステップと、前記第３のステップにおいて偶数と判定された場合に、前記データ列を訂正することなく出力する第４のステップと、前記第３のステップにおいて奇数と判定された場合に、それが１個か３個かを判定する第５のステップと、前記第５のステップにおいて３個であると判定された場合に、前記データ列を"１１１１"に訂正して出力する第６のステップと、前記第５のステップにおいて１個であると判定された場合に、その位置が前記データ列中で最下位ビットから見て偶数位置か奇数位置かを判定する第７のステップと、前記第７のステップにおいて偶数位置と判定された場合に、前記データ列を"１０１０"に訂正して出力する第８のステップと、前記第７のステップにおいて、奇数位置と判定された場合に、前記データ列を"０１０１"に訂正して出力する第９のステップとを備える。
【００１３】
本発明の半導体記憶装置の読み出し方法の一態様例では、前記半導体メモリは、前記電荷蓄積層として浮遊ゲートが、前記ゲート電極として制御ゲートが設けられてなるものである。
【００１４】
本発明の記録媒体は、上述の読み出し方法を構成する前記第１〜第９のステップを実行させるためのプログラムを記録したコンピュータ読み取り可能なものである。
【００２６】
【作用】
通常、ＤＲＡＭ等の揮発性半導体記憶装置においては、各半導体メモリの電荷蓄積層に電荷が蓄積された状態から引き抜かれた状態へ変化する第１の遷移と、電荷が引き抜かれた状態から蓄積された状態へ変化する第２の遷移とはほぼ等確率で生じる。一方、ＥＥＰＲＯＭ等の不揮発性半導体記憶装置においては、第１の遷移に比して第２の遷移が生じる確率は無視し得るほど小さい。更に、前記データ列のうち、２ビット以上について、前記電荷蓄積層に電荷が蓄積された状態から引き抜かれた状態へ共に変化する第３の遷移が発生する確率も、前記第２の遷移と同様に前記第１の遷移の発生確率に比して無視し得るほど小さい本発明は、この性質を積極的に利用するものである。
【００２７】
具体的には、情報ビットにこの情報ビットと同一の冗長ビットが付加されてなり、情報ビットの２倍のビット数を有するデータ列を用いて書き込み及び読み出しを行う。そして、このデータ列を読み出す際に、当該データ列に生じる誤りは第１の遷移に対応して生じたものと見做し、好ましくは第３の遷移も考慮して、この誤りを訂正する。即ち、第２の遷移及び第３の遷移の可能性を排除して、第１の遷移の可能性のみ考慮すると、データ列を構成する各ビットのうち、各半導体メモリの電荷蓄積層に電荷が蓄積された状態（例えば”１”）又は電荷が引き抜かれた状態（例えば”０”）に対応するビット数（つまり、”１”又は”０”の数）が奇数個である場合には、当該データ列に誤りが生じたと判定され、第１の遷移に該当するビットを訂正（上記の例では”０”から”１”に訂正）して出力する。
【００２８】
このように、本発明においては、情報ビットに当該情報ビットと同一の冗長ビットを付加してデータ列を作成し、このデータ列を用いて半導体記憶装置に書き込み及び読み出しを行い、第１の遷移のみを考慮して読み出し時に簡易且つ正確に誤り訂正を行うことが可能となる。
【００２９】
【発明の実施の形態】
以下、本発明のいくつかの好適な実施形態について図面を参照しながら詳細に説明する。
【００３０】
（第１の実施形態）
先ず、第１の実施形態について説明する。この第１の実施形態においては、各メモリセルに２値（＝１ビット）の情報を記憶することが可能な不揮発性半導体記憶装置であるＥＥＰＲＯＭを用いて、２値（１ビット）の情報ビットに誤り訂正用の２値（１ビット）の冗長ビットを付加したデータ列（２ビット）の書き込み及び読み出しを行う場合について例示する。図１は、第１の実施形態のＥＥＰＲＯＭを構成する各メモリセルの主要構成を示す概略断面図であり、図２は遷移確率に基づいて誤りが発生する様子を示す模式図、図３は読み出し時において誤り訂正を施すフローチャート図である。
【００３１】
第１の実施形態のＥＥＰＲＯＭは、複数のメモリセルが行列状に配されてなる記憶手段と、記憶手段のうちから所定の２つのメモリセルを選択し、各メモリセルに記憶されたビットを検出してデータ列を構成して、後述するように誤りがあれば訂正を行って出力する読み出し手段（記憶手段の全体構成と同様に図示を省略する。）とを有して構成されている。
【００３２】
記憶手段を構成する各メモリセルは、図１に示すように、ｐ型のシリコン半導体基板１上において、フィールド酸化膜等の素子分離構造により画定された素子活性領域２の表面領域にリン（Ｐ）や砒素（Ａｓ）等のｎ型不純物がイオン注入されて形成された一対の不純物拡散層であるソース３及びドレイン４と、ソース３とドレイン４との間のチャネル領域Ｃ上にトンネル酸化膜７を介してパターン形成された電子捕獲層である浮遊ゲート電極５と、浮遊ゲート電極５上に誘電体膜８を介してパターン形成された制御ゲート電極６とを有して構成されている。
【００３３】
そして、選択されたメモリセルに書き込み手段からソース３、ドレイン４及び制御ゲート電極６に所定電圧が印加されて、それに応じて浮遊ゲート電極５に電荷が蓄積され、或いは浮遊ゲート電極５から電荷が引き抜かれて記憶状態が変化する。
【００３４】
各メモリセルにおいては、浮遊ゲート電極５に電荷が蓄積された状態が”１”、浮遊ゲート電極５から電荷が引き抜かれた状態が”０”と規定されている。このＥＥＰＲＯＭには、２つのメモリセルＭ１，Ｍ２を１単位として、２値（”００”，”１１”）のデータ列の書き込み及び４値（”００”，”０１”，”１０”，”１１”）のデータ列の読み出しが可能である。即ち、１単位のうち、一方のメモリセルＭ１に記憶データ”０”，”１”を書き込んでこれを上位ビットと規定するとともに、他方のメモリセルＭ２に記憶データと同一の冗長ビットを誤り訂正用として書き込んでこれを下位ビットとして規定し、１単位を構成する２つのメモリセルＭ１，Ｍ２からデータ列（”００”，”１１”）のうちの１つが構成される。一方、読み出し時においては、後述するようにデータ列を構成するビットに誤りが発生した場合を考慮して、データ列（”００”，”０１”，”１０”，”１１”）の読み出しが可能であり、誤りがあると判定された場合には後述するように訂正を施して出力する。
【００３５】
ここで、ＥＥＰＲＯＭの使用を重ねてメモリセルに劣化が生じた場合等において、メモリセルにデータ化けが生じることがある。浮遊ゲート電極５に電荷が蓄積された状態から電荷が引き抜かれた状態へ遷移する確率に比して、浮遊ゲート電極５に電荷が引き抜かれた状態から電荷が蓄積された状態へ遷移する確率は圧倒的に小さい。即ち、状態”１”から状態”０”への遷移確率に比して状態”１”から状態”０”への遷移確率は殆ど無視し得る程度の値である。更に、２つのメモリセルＭ１，Ｍ２に記憶された各ビットが共にデータ化けを起こす確率、即ち、データ列の上位ビット及び下位ビットが共に状態”１”から状態”０”へ遷移する確率もまた、上位ビット或いは下位ビットのどちらか１方が状態”１”から状態”０”へ遷移する確率に比して殆ど無視し得る程度に小さい。第１の実施形態においては、ＥＥＰＲＯＭを代表とする不揮発性半導体記憶装置に特有なこの性質を利用して、読み出されたデータ列の誤り訂正を行う。
【００３６】
具体的には、図２に示すように、書き込み時のデータ列”１１”が読み出し時にデータ列”０１”や”１０”にデータ化けする確率Ｐ１，Ｐ２に比して、書き込み時のデータ列”００”が読み出し時にデータ列”０１”や”１０”にデータ化けする確率Ｐ３，Ｐ４、書き込み時のデータ列”１１”が読み出し時にデータ列”００”にデータ化けする確率Ｐ５は極めて小さく、無視することができる。
【００３７】
従って、読み出されたデータ列が”０１”又は”１０”であれば、このデータ列には誤りがあることになる。このことは、１単位（２つ）のメモリセルに書き込まれた情報ビット（上位ビット）と冗長ビット（下位ビット）とが同一であることを考慮すると、データ列中の”０”又は”１”の個数が奇数であることと等価となる。このときの正しいデータ列は、前記遷移確率の性質から、”１１”であることが分かる。
【００３８】
上述の性質を利用したＥＥＰＲＯＭからのデータ列の誤り訂正を含む読み出し方法について、図３を用いて説明する。
【００３９】
先ず、各メモリセルにそれぞれ記憶されたビットを読み出し、２ビットのデータ列Ａを構成する（ステップＳ１）。
【００４０】
次に、読み出されたデータ列Ａ中の”０”又は”１”の個数Ｃ１を計数する（ステップＳ２）。
【００４１】
次に、ステッ４Ｓ２において計数された個数Ｃ１の偶奇を判定する（ステップＳ３）。
【００４２】
次に、ステップＳ３において個数Ｃ１が偶数であると判定された場合、即ちデータ列Ａが”００”又は”１１”であるときには、データ列Ａに誤りはないので、このデータ列Ａをそのまま出力する（ステップＳ４）。
【００４３】
一方、ステップＳ３において個数Ｃ１が奇数であると判定された場合、即ちデータ列Ａが”０１”又は”１０”であるときには、データ列Ａを”１１”に訂正して出力する（ステップＳ５）。
【００４４】
上述のように、第１の実施形態のＥＥＰＲＯＭによれば、従来では１ビットの情報ビットに少なくとも２ビット以上の冗長データを付加しなければ誤り訂正を行うことができなかったのに対して、１ビットの情報ビットに１ビットの冗長データを付加することで、容易且つ確実に誤り訂正を行うことが可能となる。
【００４５】
（第２の実施形態）
次いで、本発明の第２の実施形態について説明する。この第２の実施形態においては、各メモリセルに２値（＝１ビット）の情報を記憶することが可能な不揮発性半導体記憶装置であるＥＥＰＲＯＭを用いて、４値（２ビット）の情報ビットに誤り訂正用の４値（２ビット）の冗長ビットを付加したデータ列（４ビット）の書き込み及び読み出しを行う場合について例示する。図４は、遷移確率に基づいて誤りが発生する様子を示す模式図であり、図５は読み出し時において誤り訂正を施すフローチャート図である。なお、第２の実施形態のＥＥＰＲＯＭの各メモリセルの概略構成は、第１の実施形態の図１のものと同様である。
【００４６】
各メモリセルにおいては、浮遊ゲート電極５に電荷が蓄積された状態が”１”、浮遊ゲート電極５から電荷が引き抜かれた状態が”０”と規定されている。このＥＥＰＲＯＭには、４値（”００００”，”０１０１”，”１０１０”，”１１１１”）のデータ列の書き込み及び１６値（”００００”，”０００１”，”００１０”，”００１１”，”０１００”，”０１０１”，”０１１０”，”０１１１”，”１０００”，”１００１”，”１０１０”，”１０１１”，”１１００”，”１１０１”，”１１１０”，”１１１１”）のデータ列の読み出しが可能である。
【００４７】
即ち、１単位を構成する４つのメモリセルＭ１〜Ｍ４において、２つのメモリセルＭ１，Ｍ２のうち、一方のメモリセルＭ１に書き込む記憶データ”０”，”１”を最上位ビットと規定し、他方のメモリセルＭ２に書き込む記憶データ”０”，”１”を次の２位の上位ビットと規定する。この場合、これら２つのメモリセルＭ１，Ｍ２に記憶された最上位ビット及び２位の上位ビットにより、４値の情報ビット（”００”，”０１”，”１０”，”１１”）のうちの１つが構成される。
【００４８】
更に、残りの２つのメモリセルＭ３，Ｍ４のうち、一方のメモリセルＭ３にメモリセルＭ１の記憶データと同一のビットを、他方のメモリセルＭ４にメモリセルＭ２の記憶データと同一のビットを書き込み、メモリセルＭ３に記憶されるビットを３位の上位ビット（２位の下位ビット）、メモリセルＭ３に記憶されるビットを最下位ビットと規定する。この場合、これら２つのメモリセルＭ３，Ｍ４に記憶された３位の上位ビット及び最下位ビットにより、上述の情報ビットと同一の冗長ビットが構成される。
【００４９】
そして、メモリセルＭ１〜Ｍ４に書き込まれた最上位ビット〜最下位ビットにより、４値（”００００”，”０１０１”，”１０１０”，”１１１１”）のデータ列が構成されることになる。
【００５０】
一方、読み出し時においては、後述するようにデータ列を構成するビットに誤りが発生した場合を考慮して、１６値（”００００”，”０００１”，”００１０”，”００１１”，”０１００”，”０１０１”，”０１１０”，”０１１１”，”１０００”，”１００１”，”１０１０”，”１０１１”，”１１００”，”１１０１”，”１１１０”，”１１１１”）のデータ列をメモリセルＭ１〜Ｍ４から読み出した各ビットから構成することが可能であり、誤りがあると判定された場合には後述するように訂正を施して出力する。
【００５１】
この第２の実施形態においても、第１の実施形態の場合と同様に、各メモリセルの浮遊ゲート電極５に電荷が蓄積された状態”１”から電荷が引き抜かれた状態”０”へ遷移する確率に比して、浮遊ゲート電極５に電荷が引き抜かれた状態”０”から電荷が蓄積された状態”１”へ遷移する確率は圧倒的に小さく、更に、４つのメモリセルＭ１〜Ｍ４中で２つのメモリセルに記憶された各ビットが共にデータ化けを起こす確率、即ち、データ列中の２ビット以上が共に状態”１”から状態”０”へ遷移する確率もまた小さいことを利用して、読み出されたデータ列の誤り訂正を行う。
【００５２】
具体的な誤り訂正法を図４に示す。ここで、書き込み時のデータ列”１１１１”が読み出し時にデータ列”０１１１”や”１０１１”，”１１０１”，”１１１０”にデータ化けする確率Ｐ１１，Ｐ１２，Ｐ１３，Ｐ１４に比して、書き込み時のデータ列”１１１１”が”０１０１”や”１０１０”等にデータ化けする確率Ｐ１５，Ｐ１６は極めて小さく、無視することができる。
【００５３】
同様に、書き込み時のデータ列”０１０１”である場合には、”０”から”１”にデータ化けする確率を無視すれば、読み出し時にデータ列”０００１”や”０１００”にデータ化けする確率Ｐ１７，Ｐ１８のみを考慮すればよい。
【００５４】
また、書き込み時のデータ列”１０１０”である場合には、”０”から”１”にデータ化けする確率を無視すれば、読み出し時にデータ列”００１０”や”１０００”にデータ化けする確率Ｐ１９，Ｐ２０のみを考慮すればよい。
【００５５】
また、書き込み時のデータ列”００００”である場合には、”０”から”１”にデータ化けする確率を無視すれば、誤りがなく読み出し時にも”００００”となると見做せる。
【００５６】
従って、読み出されたデータ列が”０１１１”、”１０１１”、”１１０１”の何れかであれば、このデータ列には誤りがあることになる。このことは、メモリセルＭ１，Ｍ２に書き込まれた情報ビット（上位の２ビット）とメモリセルＭ３，Ｍ４に書き込まれた冗長ビット（下位の２ビット）とが同一であることを考慮すると、データ列中の”１”の個数が３個であることと等価となる。このときの正しいデータ列は、前記遷移確率の性質から、”１１１１”であることが分かる。
【００５７】
同様に、読み出されたデータ列が”０００１”、”０１００”の何れかであれば、このデータ列には誤りがあることになる。このときの正しいデータ列は、前記遷移確率の性質から、”０１０１”であることが分かる。また、読み出されたデータ列が”００１０”、”１０００”の何れかであれば、このデータ列には誤りがあることになり、このときの正しいデータ列は、前記遷移確率の性質から、”１０１０”であることが分かる。
【００５８】
このことから、データ列中の”１”の個数が１個であれば、当該データ列には誤りがあることになる。正しいデータ列が”０１０１”又は”１０１０”の何れであるかを判別するには、データ列中の”１”の位置をＬＳＢから検索し、その位置が偶数位置であれば”１０１０”に、奇数位置であれば”０１０１”にデータ列を訂正すればよい。
【００５９】
上述の性質を利用したＥＥＰＲＯＭからのデータ列の誤り訂正を含む読み出し方法について、図５を用いて説明する。
【００６０】
先ず、各メモリセルＭ１〜Ｍ４にそれぞれ記憶された各ビットを読み出し、４ビットのデータ列Ｂを構成する（ステップＳ１１）。
【００６１】
次に、読み出されたデータ列Ｂ中の”１”の個数Ｃ２を計数する（ステップＳ１２）。
【００６２】
次に、ステップＳ１２において計数された個数Ｃ２の偶奇を判定する（ステップＳ１３）。
【００６３】
次に、ステップＳ１３において個数Ｃ２が偶数であると判定された場合、即ちデータ列Ｂが”００００”，”０１０１”，”１０１０”，”１１１１”であるときには、データ列Ｂに誤りはないので、このデータ列Ａをそのまま出力する（ステップＳ１４）。
【００６４】
一方、ステップＳ１３において個数Ｃ２が奇数であると判定された場合、個数Ｃ２が１個或いは３個の何れかを判定する（ステップＳ１５）。
【００６５】
次に、ステップＳ１５において個数Ｃ２が３個であると判定された場合、即ちデータ列Ｂが”０１１１”，”１０１１，”，”１１０１”，”１１１０，”であるときには、データ列Ｂを”１１１１”に訂正して出力する（ステップＳ１６）。
【００６６】
一方、ステップＳ１５において個数Ｃ２が１個であると判定された場合、当該データ列Ｂにおける”１”の位置Ｃ３を検索する（ステップＳ１７）。
【００６７】
次に、ステップＳ１７において検索された位置Ｃ３が最下位ビットから数えて偶数位置か奇数位置かを判定する（ステップＳ１８）。
【００６８】
次に、ステップＳ１８において位置Ｃ３が偶数位置であると判定された場合、即ちデータ列Ｂが”００１０”又は”１０００，”であるときには、データ列Ｂを”１０１０”に訂正して出力する（ステップＳ１９）。
【００６９】
一方、ステップＳ１８において位置Ｃ３が奇数位置であると判定された場合、即ちデータ列Ｂが”０００１”又は”０１００，”であるときには、データ列Ｂを”０１０１”に訂正して出力する（ステップＳ２０）。
【００７０】
上述のように、第２の実施形態のＥＥＰＲＯＭによれば、従来では２ビットの情報ビットに少なくとも３ビット以上の冗長データを付加しなければ誤り訂正を行うことができなかったのに対して、２ビットの情報ビットに２ビットの冗長データを付加することで、容易且つ確実に誤り訂正を行うことが可能となる。
【００７１】
なお、第２の実施形態においては、２ビットの情報ビットに当該情報ビットと同一の２ビットの冗長ビットを付加してデータ列を作成したが、２ビットの情報ビットに当該情報ビットのビット位置を逆にした２ビットの冗長ビットを付加してデータ列を作成し、書き込み及び読み出しを行うようにしてもよい。この場合、ＥＥＰＲＯＭからのデータ列の誤り訂正を含む読み出し時には、ステップＳ１９とステップＳ２０の順序が入れ替わる。
【００７２】
また、前述の第１及び第２の実施形態において図３及び図５を用いて説明した書き込み方法及び読み出し方法の機能を実現するように、各種のデバイスを動作させるためのプログラムコード自体及びそのプログラムコードをコンピュータに供給するための手段、例えばかかるプログラムコードを格納した記憶媒体は本発明の範疇に属する。かかるプログラムコードを記憶する記憶媒体としては、例えばフロッピーディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード、ＲＯＭ等を用いることができる。
【００７３】
また、コンピュータが供給されたプログラムコードを実行することにより、第１及び第２の実施形態の機能が実現されるだけでなく、そのプログラムコードがコンピュータにおいて稼働しているＯＳ（オペレーティングシステム）或いは他のアプリケーションソフト等の共同して第１及び第２の実施形態の機能が実現される場合にもかかるプログラムコードは本発明に含まれる。
【００７４】
更に、供給されたプログラムコードがコンピュータの機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに格納された後、そのプログラムコードの指示に基づいてその機能拡張ボードや機能拡張ユニットに備わるＣＰＵ等が実際の処理の一部または全部を行い、その処理によって第１及び第２の実施形態の機能が実現されるシステムも本発明に含まれる。
【００７５】
【発明の効果】
本発明によれば、情報ビットに付加する冗長ビットを極めて短いものとし、効率良く正確に誤り訂正を行うことができる。具体的には、情報ビットに当該情報ビットと同一の誤り訂正用の冗長ビットを付加することで、容易且つ確実に誤り訂正を行うことが可能となる。
【図面の簡単な説明】
【図１】本発明の第１の実施形態に係るＥＥＰＲＯＭを構成する１つのメモリセルの主要構成を示す概略断面図である。
【図２】本発明の第１の実施形態において、遷移確率に基づいて誤りが発生する様子を示す模式図である。
【図３】本発明の第１の実施形態において、読み出し時において誤り訂正を施すフローチャート図である。
【図４】本発明の第２の実施形態において、遷移確率に基づいて誤りが発生する様子を示す模式図である。
【図５】本発明の第２の実施形態において、読み出し時において誤り訂正を施すフローチャート図である。
【符号の説明】
１  シリコン半導体基板
２  素子形成領域
３  ソース
４  ドレイン
５  浮遊ゲート電極
６  制御ゲート電極
７  トンネル酸化膜
８  誘電体膜
【図１】
0003605266.tif 000004
【図２】
0003605266.tif 000005
【図３】
0003605266.tif 000006
【図４】
0003605266.tif 000007
【図５】
0003605266.tif 000008