(57)【要約】本発明は、少なくとも１つの消去不可能な安全領域（ＯＴＰ）を有した電気的に消去可能でプログラム可能なメモリ（ＭＥＭ３）に関する。本発明によると、メモリは、メモリに冗長ビットを記録し、メモリで読み出された冗長ビットが等価でない場合には、誤り信号（ＥＲＲ）を送出するおよび／または多数決値ビットを送出する、安全領域の読み出し誤りを検出および／または訂正する手段（ＥＣＣＴ１、ＡＣＣ、ＭＵＸ１、ＭＵＸ２）を備えている。【選択図】図３
2004503891.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも１つのプログラム可能で消去不可能な安全領域（ＯＴＰ）と、１つの消去可能でプログラム可能な安全でない領域と、を有した　電気的に消去可能でプログラム可能なメモリ（ＭＥＭ３）において、冗長ビット（ｂ１１’−ｂ０’）を前記安全領域に記録する手段（ＤＭ）と、前記安全領域で読み出された冗長ビット（ｂ８、ｂ４、ｂ０）を受信し、冗長ビットが等価でない場合には誤り信号（ｅ０）および／または多数決値ビット（ｂ０）を送出する手段（ＣＴ）と、を有した前記安全領域（ＯＴＰ）に専用の第１誤り検出および／または訂正回路（ＥＣＣＴ１）を備えたことを特徴とする電気的に消去可能でプログラム可能なメモリ。
【請求項２】
前記メモリの前記消去可能でプログラム可能な領域に専用で、データビット（ｂ７−ｂ０）を記録するとともに、前記メモリに誤り訂正コード（ＥＣＣ、ｂ１１―ｂ８）を記録し、必要に応じて、前記メモリで読み出されたビット列（ＤＳｊ）における誤りビットの存在を検出し、前記誤りビットを訂正する第２誤り訂正回路（ＥＣＣＴ２）を備えたことを特徴とする請求項１に記載のメモリ。
【請求項３】
前記メモリに対応されるアドレス（ＡＤＲ）の値に応じて、第１（ＥＣＣＴ１）または第２（ＥＣＣＴ２）誤り検出および／または訂正回路を選択する信号（ＶＡＬＩＤ）を送出する選択回路（ＡＣＣ）を備えたことを特徴とする請求項２に記載のメモリ。
【請求項４】
前記選択回路が、前記メモリに対応される前記アドレスが前記安全領域に相当する場合に消去動作（ＥＲＡＳＥ）を禁止する信号（ＶＡＬＩＤ）を送出する、前記安全領域を保護する回路（ＡＣＣ）であることを特徴とする請求項３に記載のメモリ。
【請求項５】
前記メモリの前記消去可能な領域にＮ１個のデータビット（ｂ７−ｂ０）とＮ２個の誤り訂正コードビット（ｂ１１−ｂ８）から構成されるＭ個のビット列（ＤＳｊ）と、
前記消去不可能な安全領域にＭ／Ｎ３個の冗長ビット（ｂ３’−ｂ０’）から構成されるＭ個のビット（ｂ１１’−ｂ０’）の列（ＤＳｊ）を含み、Ｎ３が冗長比であることを特徴とする請求項２から４のいずれかに記載のメモリ。
【請求項６】
前記安全領域に専用の前記第１誤り検出および／または訂正回路（ＥＣＣＴ１）が、
ビットを前記安全領域にプログラムする必要のある場合には、記録する前記ビットと等価の少なくとも２個のビットをプログラムし、
ビットを前記安全な保存領域で読み出す必要のある場合には、読み出す前記ビットに対応する前記冗長ビットを読み出し、前記冗長ビットが等価でない場合には誤り信号（ＥＲＲ）を送出することを特徴とする請求項１から５のいずれかに記載のメモリ。
【請求項７】
前記安全領域に専用の前記第１誤り検出および／または訂正回路（ＥＣＣＴ１）が、
ビットを前記安全領域にプログラムする必要のある場合には、記録する前記ビットと等価の少なくとも３個のビットをプログラムし、
ビットを前記安全な保存領域で読み出す必要のある場合には、前記ビットに対応する前記冗長ビットを読み出し、前記冗長ビットから多数決値を有するビットを送出することを特徴とする請求項１から５のいずれかに記載のメモリ。
【請求項８】
前記安全領域に専用の前記第１誤り検出および／または訂正回路（ＥＣＣＴ１）が、冗長ビットを割り込ませることを特徴とする請求項１から７のいずれかに記載のメモリ。
【請求項９】
請求項１から８のいずれかに記載の電気的に消去可能でプログラム可能なメモリを含むことを特徴とする集積回路（２１）。
【請求項１０】
請求項１から８のいずれかに記載の電気的に消去可能でプログラム可能なメモリを含む集積回路を含むことを特徴とする携帯用電子機器（２０）。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、消去不可能な安全領域を備えたＥＥＰＲＯＭメモリに関し、特に、スマートカード集積回路用ＥＥＰＲＯＭメモリに関する。
【０００２】
本発明は、より詳細には、誤り訂正回路のこれらのメモリへの搭載に関する。
【０００３】
【従来の技術】
現在、スマートカード集積回路に備えられている電気的に消去可能でプログラム可能なメモリは、一般的に、ＯＴＰビット、すなわち、一方向にのみ値が変化することができるビットを受信すること意図した、プログラム可能であるが、消去不可能な保護された保存領域を備えている。従来、値「０」を消去されたビットに、値「１」をプログラムされたビットに割当てるが、ＯＴＰビットは、上述のように、１に設定することはできるが、その後、０に戻すことができないという点で、通常のビットとは区別されている。
【０００４】
ＯＴＰビットは、メモリのデータのセキュリティに関連した各種の用途で使用されており、一般的に、消耗可能な「トークン」として、または非可逆的なカウンタを形成するなどして利用されている。たとえば、ＯＴＰビットは、スマートカードをカスタマイズ、すなわち個別化する工程では、特定の保存領域へのアクセスを認証するために使用し、スマートカードを市場に流通させる際には、すべての値を１に設定して、例えば、秘密コードの配置されている微妙な保存領域へのアクセスを遮断することができる。このように、ＯＴＰビットを含むメモリセルへのプログラムが非可逆的であることは、スマートカード集積回路に一定のレベルのセキュリティをもたせるために欠かすことができない。
【０００５】
さらに、技術の発達と集積回路の一層の小型化に伴い、ＥＥＰＲＯＭメモリに、ビットを保存する際に発生する誤りを検出する回路を搭載することが願われてきている。一般的に、これらの誤りはメモリセルの電気的な不揮発性特性（閾値電圧）の変化によるものであり、０．３５マイクロメータ以下のとても短いゲートを有した浮遊ゲート型トランジスタを備えた最新世代のメモリでは発生頻度が高くなっている。実際、メモリセルの電気的不揮発性特性の変化は、たとえば、「１」として記録したビットが「０」として読み出されるなど、ビットの読み出しを誤らせることがある。
【０００６】
この不具合を克服するため、ＥＥＰＲＯＭメモリには、それぞれの記録されたバイナリワードに対して、例えば、当業者に周知のハミングアルゴリズムの手法により生成した誤り訂正コード、すなわちＥＣＣコードを関連付けさせる誤り訂正回路が備えられている。この方法によると、バイナリワードのビットに変化が発生すると、そのバイナリワードに関連付けられた新しいＥＣＣコードをメモリに記録することが必要になる。しかしながら、この方法は、生成された新しいＥＣＣコードを記録する際に、コードを受け取るメモリセルの消去およびプログラムが必要となるが、ＯＴＰ領域のメモリセルは消去することができないため、ＯＴＰビットを有する保存領域では不可能であることが判明している。
【０００７】
本発明は、この不具合を克服すること、特に、メモリの消去不可能な安全領域の読み出し誤りを検出および／または訂正する手段を提供することを目的とする。
【０００８】
さらに、本発明は、安全なＯＴＰ領域、およびメモリ全体を対象とする誤り検出および／または訂正システムを備えたメモリを提供することを目的とする。
【０００９】
【課題を解決するための手段】
これらの目的を達成するため、本発明の１つの着想は、メモリのＯＴＰ領域に、メモリセルを消去することなく実施することが可能な、誤りの検出および／または訂正する方法を提供することにある。
【００１０】
より詳細には、本発明は、メモリに冗長なバイトを提供する誤り検出技術は、「ビットレベル」でＯＴＰビットに適用可能であり、これをＯＴＰビットに適用する場合にはメモリセルを消去する必要がないことに着目している。これは当初、考えられなかったが、具体例を検討する際に明確になった。したがって、ＯＴＰ保存領域は、たとえば、「０」のデフォルトＯＴＰビット（使用されていない、または「消耗」されていないビット）によりのみ構成されていると考える。ＯＴＰビットの使用または「消耗」は、ＥＥＰＲＯＭ型メモリでメモリセルを個別にプログラムするように、メモリセルを消去することを必要とせずに、Ｎ個のメモリセルをプログラムすること（Ｎ個のＯＴＰビットが「１」）に相当する。本発明によると、このＯＴＰの冗長ビットは、ＯＴＰビットの間に割り込ませても、割り込ませなくても提供することができる。
【００１１】
したがって、本発明に係る第１の態様は、メモリのＯＴＰ領域に、冗長ビットに基づき、冗長ビットが等しくない場合は、誤り信号の送出、および／または大多数の値のビットに基づいて読み出し誤りを検出／および訂正する方法を提供する。
【００１２】
これに対して、通常の、ＯＴＰビットに誤りが記録されることを防止する技術は、ＯＴＰビットの少なくとも１つが希望する値になるように、メモリに保存されるＯＴＰビットの数を倍加させるものであり、この技術は、冗長ビットの値との比較に基づく誤りの検出および／または訂正とは関係がない。
【００１３】
米国５，９９９，４４７の文献は、この古典的な技術を開示している。ＯＴＰ領域は、ｎ個の冗長ＯＴＰビットからなる第１グループと、ｎ個の冗長反転ＯＴＰビットからなる第２グループとから構成される。その文献の図３に示された差分読出し回路［ＤＩＦＦ−ＳＥＮＳＥ］は、第１グループの冗長ビットと第２グループの冗長反転ビットを同時に読み出し、１つ、そしてただ１つのビット［“ＢＩＴ”］を送出する。この差分読出し回路は、多数決の概念に敏感ではなく、誤り信号を送出することもできない。少なくとも１つのメモリセルが読出し増幅器の回路に電流を流すことが重要である。
【００１４】
同じ原理に従って、ＦＲ２，６８７，８１１に知られているフレッシュメモリ２は、複数のセクタに分割されており、各セクタが、冗長な消去有効化フラグ［Ｄ７、Ｄ６］と、冗長な不良セクタ指示フラグ［Ｄ５、Ｄ４］とからなる、消去管理フィールド［１１］を有している。この出願では、誤り検出および／または訂正、あるいは多数決による値の決定の概念はない。たとえば、フラグの有効値が「１」の場合、「１」と等価と考えられる冗長グループのフラグの中で、少なくとも１つのフラグが「１」であることが重要である。
【００１５】
本発明のもう１つの着想は、メモリの非ＯＴＰ部分について、ハミングコード型の誤り訂正コードを使用して、読み出された誤りを訂正する方法を提供することにある。
【００１６】
本発明のさらに別の着想は、単純、または多数決冗長の原理に従って動作するメモリの第１誤り検出および／または訂正回路と、誤り訂正コードを使用した第２誤り訂正回路を、メモリに対応されるアドレスに応じてこれらの回路の１つ、または他方を選択することにより組み合わせることにある。ここで第１回路はメモリのＯＴＰ回路に専用であり、第２回路はメモリの消去可能領域に専用である。
【００１７】
したがって、本発明は、少なくとも１つのプログラム可能で消去不可の安全領域と、１つの消去可能でプログラム可能な安全でない領域とからなる電気的に消去可能でプログラム可能なメモリと、安全領域に冗長ビットを記録する手段と、安全領域で読み出された冗長ビットを受信し、冗長ビットが等価でない場合には誤り信号および／または多数決値ビットを送出する手段を備えた、安全領域専用の第１誤り検出および／または訂正回路を提供する。
【００１８】
ある実施の形態によると、前記メモリは、前記メモリの前記消去可能でプログラム可能な領域に専用で、データビットを記録するとともに、前記メモリに誤り訂正コードを記録し、必要に応じて、前記メモリで読み出されたビット列における誤りビットの存在を検出し、前記誤りビットを訂正する第２誤り訂正回路を備える。
【００１９】
ある実施の形態によると、前記メモリは、前記メモリに対応されるアドレスの値に応じて、第１または第２誤り検出および／または訂正回路を選択する信号を送出する選択回路を備える。
【００２０】
ある実施の形態によると、前記選択回路は、前記メモリに対応される前記アドレスが前記安全領域に相当する場合に消去動作を禁止する信号を送出する、前記安全領域を保護する回路である。
【００２１】
ある実施の形態によると、前記メモリは、前記メモリの前記消去可能な領域にＮ１個のデータビットとＮ２個の誤り訂正コードビットから構成されるＭ個のビット列と、前記消去不可能な安全領域にＭ／Ｎ３個の冗長ビットから構成されるＭ個のビット列を含み、Ｎ３が冗長比である。
【００２２】
ある実施の形態によると、前記安全領域に専用の前記第１誤り検出および／または訂正回路は、ビットを前記安全領域にプログラムする必要のある場合には、記録する前記ビットと等価の少なくとも２個のビットをプログラムし、ビットを前記安全な保存領域で読み出す必要のある場合には、読み出す前記ビットに対応する前記冗長ビットを読み出し、前記冗長ビットが等価でない場合には誤り信号（ＥＲＲ）を送出する。
【００２３】
ある実施の形態によると、前記安全領域に専用の前記第１誤り検出および／または訂正回路は、ビットを前記安全領域にプログラムする必要のある場合には、記録する前記ビットと等価の少なくとも３個のビットをプログラムし、　ビットを前記安全な保存領域で読み出す必要のある場合には、前記ビットに対応する前記冗長ビットを読み出し、前記冗長ビットから多数決値を有するビットを送出する。
【００２４】
ある実施の形態によると、前記安全領域に専用の前記第１誤り検出および／または訂正回路は、冗長ビットを割り込ませる。
【００２５】
本発明はまた、本発明に係る電気的に消去可能でプログラム可能なメモリを含む集積回路、および、本発明に係る電気的に消去可能でプログラム可能なメモリを含む集積回路を含む携帯用電子機器に関する。
【００２６】
消去不可能な安全領域を有したＥＥＰＲＯＭメモリに関する備考
【００２７】
備考として図１に、ＯＴＰ型消去不可能な安全領域を有したメモリＭＥＭ１の古典的な構成を表すブロック図を示す。メモリＭＥＭ１は、メモリ配列ＣＭＥＭ、それぞれメモリに対応するアドレスＡＤＲの最上位ビットＡＤＨと最下位ビットＡＤＬを受信する行デコーダＤＲ、および列デコーダＤＣと、データを取り込む回路ＬＴＣと、それぞれメモリ配列ＣＭＥＭの消去およびプログラミング動作を制御する読み出し回路ＳＡおよび回路ＥＰＣと、から構成される。
【００２８】
メモリ配列ＣＭＥＭは、古典的に、ワード線ＷＬｉとビット線に配列されたメモリセルとから構成されており、ビット線は、通常はｂ７からｂ０の、それぞれがＭビットからなる、バイナリワードＷ０からＷＮの各ワード線ＷＬｉを列で区切っている。回路ＬＴＣは、メモリに記録するワードＷｊのビットを保存するための複数のプログラミングラッチを有している。回路ＳＡは、メモリ配列ＣＭＥＭで選択されたワードＷｊのビットを読み出す読出し増幅器を有している。回路ＥＰＣは、メモリをプログラミングする信号ＰＲＯＧおよび消去する信号ＥＲＡＳＥを入力側で受信し、１５から２０Ｖのレベルの「高い」プログラミングまたは消去電圧Ｖｐｐを行デコーダＤＲ、列デコーダＤＣ、および回路ＤＣに印可する。
【００２９】
バイナリワードＷｊをメモリに記録することが必要な場合、そのワードを記録するアドレスＡＤＲはそのメモリに対応される。ワードＷｊのビットｂ７からｂ０は、回路ラッチＬＴＣに取り込まれ、最初に信号ＥＲＡＳＥが回路ＥＰＣに送られ、アドレスＡＤＲにより指定されたセルを消去するための電圧Ｖｐｐが行デコーダＤＲに印可される。次に、プログラミング信号ＰＲＯＧが、回路ＥＰＣに送られ、アドレスＡＤＲにより指定されたセルをプログラムするための電圧Ｖｐｐが列デコーダＤＣとラッチＬＴＣに印可される。
【００３０】
要約すると、ワードＷｊの記録は、アドレスＡＤＲにより指定されたセルを一括して消去する、すなわち０に設定する（ここで、「０」は従来どおりに、消去された状態を指定するために選択されるものとする）、ステップと、次に、新しいワードＷｊのビットが「１」を有するようにセルを個別にプログラムするステップと、から構成される。なお、これらのセルは回路ＬＴＣのラッチにより自動的に選択される。
【００３１】
このメモリでは、ＯＴＰ型消去不可能な安全領域は、メモリに対応されるアドレスＡＤＲを入力側で受信すると、消去動作を有効にする信号ＶＡＬＩＤを送付するアドレス制御回路ＡＣＣにより単純な方法で得られる。信号ＶＡＬＩＤは、ＯＴＰ領域に該当するアドレスがメモリに対応されると、回路ＡＣＣにより、例えば、０に設定され、信号ＥＲＡＳＥが回路ＥＰＣに印可されることを禁止し、図１に示されるように、ＡＮＤゲートは入力側で信号ＥＲＡＳＥおよび信号ＶＡＬＩＤを受信すると、信号ＥＲＡＳＥを回路ＥＰＣに送出する。
【００３２】
誤り訂正回路を備えたＥＥＰＲＯＭメモリに関する備考
【００３３】
さらに備考として図２に、誤り訂正回路ＥＣＣＴを備えているが、安全領域は有していない点でメモリＭＥＭ１とは異なるメモリＭＥＭ２の構成を表すブロック図を示す。回路ＥＣＣＴは、メモリのデータバスＤＴＢに接続された入力／出力ＥＳ１と、回路ＬＴＣの入力側および回路ＳＡの出力側に接続された入力／出力ＥＳ２（以後、説明の内容に応じて、「入力」または「出力」と記載する）と、を備えている。回路ＥＣＣＴは、メモリを読み出している段階では１である信号ＲＤ（“Ｒｅａｄ”）、および消去またはプログラミングをしている段階では１である信号ＷＲ（“Ｗｒｉｔｅ”）を受信する。
【００３４】
ワードＷｊをメモリに記録する必要のある場合（ＷＲ＝１）には、ワードは回路ＥＣＣＴの入力ＥＳ１に印可され、出力側からワードＷｊに誤り検出コードＥＣＣｊを連結して送出される。連結されたＥＣＣｊ／／Ｗｊは、ビット列ＤＳｊを形成し、回路ＬＴＣに取り込まれメモリ配列ＣＭＥＭに記録される。１２ビットからなるビット列ＤＳｊから構成され、ビットｂ１１からｂ８がコードＥＣＣｊを形成し、ビットｂ７からｂ０がワードＷｊを形成するとした場合、コードＥＣＣｊは、例えば、４ビットのハミングコードで、１２個の中から１個の誤りビットを検出し、訂正することが可能にする。
ＥＳｊ＝ｂ１１　ｂ１０　ｂ９　ｂ８　ｂ７　ｂ６　ｂ５　ｂ４　ｂ３　ｂ２　ｂ１　ｂ０
【００３５】
このように、メモリＭＥＭ２は前述のものと、メモリ配列ＣＭＥＭのワード線ＷＬｉが、それぞれバイナリワードＷｊとコードＥＣＣｊを有したビット列ＤＳｊ（ＤＳ０からＤＳＮ）から構成されている点で異なる。したがって、ビット列ＤＳｊが回路ＳＡ（ＲＤ＝１）によりメモリから読み出されると、回路ＥＣＣＴは、入力側ＥＳ２でビット列ＤＳｊを受信し、８個のデータビットｂ７―ｂ０を出力側ＥＳ１で送出する。ここで、読み出しに誤りが検出された場合、列ＤＳｊに含まれるデータビットがこれらのビットを訂正する。
【００３６】
すでに述べたとおりに、誤り訂正コードはすでに記録されたコードのビットとは関係のない１または０のビットから構成することができるため、このメモリの消去不可能な安全領域には、最初にデータを受信するセルを消去しなくては、ＥＣＣコードを有したビット列を記録することはできないことに課題があった。回路ＥＣＣＴなどの誤り訂正回路をメモリに搭載するためには、消去不可能なＯＴＰ領域の存在が不都合となる。
【００３７】
本発明に係るメモリの説明
【００３８】
図３に、上述の不都合を解消した本発明に係るメモリＭＥＭ３を示す。メモリＭＥＭ３の構造は全体的にメモリＭＥＭ１およびＭＥＭ２のものと同様である。メモリＭＥＭ３のメモリ配列ＣＭＥＭが、メモリＭＥＭ２のものと同様に、それぞれ１２ビットからなるビット列ＤＳｊを有しているものとする。
【００３９】
メモリＭＥＭ３は、安全なＯＴＰ領域、およびＯＴＰ領域を含むメモリ配列ＣＭＥＭ全体を対象とする誤り訂正システムを有している点でメモリＭＥＭ１、ＭＥＭ２とは異なる。このＯＴＰ領域は、メモリに対応されるアドレスＡＤＲがＯＴＰ領域に該当するか否かに応じて、消去動作（信号ＥＲＡＳＥ）を禁止または有効化する信号ＶＡＬＩＤを送出するアドレス制御回路ＡＣＣにより古典的な方法で消去できないように保護されている。
【００４０】
本発明によると、メモリＭＥＭ３は、ＯＴＰ領域の読み出し誤りの管理専用の第１誤り訂正回路ＥＣＣＴ１と、第１と並列の、メモリ配列ＣＭＥＭの残りの読み出し誤りの管理専用の第２誤り訂正回路ＥＣＣＴ２と、を有している。回路ＥＣＣＴ１、ＥＣＣＴ２はそれぞれ、２つの入力／出力ＥＳ１、ＥＳ２を有し、メモリ読み出し期間の間は１である信号ＲＤと、書き込み期間の間は１である信号ＷＲと、を受信する。各回路の入力／出力ＥＳ１は、多重化装置ＭＵＸ１を介してメモリのデータバスＤＴＢに接続されており、入力／出力ＥＳ２は多重化装置ＭＵＸ２を介してデータ取り込み回路ＬＴＣおよび読出し回路ＳＡに接続されている。多重化装置ＭＵＸ１、ＭＵＸ２は信号ＶＡＬＩＤをそれぞれの選択入力側で受信し、前記信号は、アドレス制御回路ＡＣＣにより送付され、この信号の値に応じて２つの回路ＥＣＣＴ１、ＥＣＣＴ２の１つまたは他方を選択するようになっている。
【００４１】
このため、メモリに対応されるアドレスＡＤＲがＯＴＰ領域に配置されるビット列を指定する場合、データバスＤＴＢに接続した入力／出力ＥＳ１と、回路ＬＴＣ、ＳＡに接続した入力／出力ＥＳ２と、を有する回路ＥＣＣＴ１が対象となる。ＡＤＲに対応するアドレスがＯＴＰ領域に相当しない場合は従来、どおり、データバスＤＴＢおよび回路ＬＴＣ、ＳＡに接続した入力／出力ＥＳ１、ＥＳ２を有する回路ＥＣＣＴ２が対象となる。
【００４２】
回路ＥＣＣＴ２は、前述した回路ＥＣＣＴと同様の古典的な誤り訂正回路である。したがって、メモリの書き込みモード（ＷＲ＝１）では、回路ＥＣＣＴ２はビット列をその出力側ＥＳ２で送出するが、前記ビット列は、入力側ＥＳ１で受信されるバイナリワードＷｊをコピーする８個のデータ列ｂ７―ｂ０と、例えばハミングコードなどの、誤り訂正コードを形成する４個のビットｂ１１―ｂ８と、から構成される。メモリの読み込みモード（ＲＤ＝１）では、回路ＥＣＣＴ２は、コードＥＣＣと８個のデータビットｂ７−ｂ０から構成さるビット列をその入力側ＥＳ２で受信し、８個のデータビットｂ７−ｂ０は出力側ＥＳ１で送出されるが、読み出し誤りが検出された場合は、ビットを訂正した後に、送出されることもある。
【００４３】
回路ＥＣＣＴ１は、符号化をせずに、冗長ビットに基づいて別の誤り訂正原理に従って動作する。メモリの書き込みモード（ＷＲ＝１）では、回路ＥＣＣＴ１はビット列をその出力側ＥＳ２で送出するが、前記ビット列は、入力側ＥＳ１で受信されるビットを冗長方式でコピーしている。メモリ配列ＣＭＥＭがここで１２個のビットの列を記録する場合、回路ＥＣＣＴ１の冗長比が、例えば、３と等価に選択されたとすると、４個のビットのグループを３つ形成する。したがって、回路ＥＣＣＴ１は、入力側ＥＳ１で受信した４個のビットｂ３からｂ０を１２個のビットｂ１２’からｂ０’をコピーして出力側ＥＳ２から送出する。出力されるビットはビットｂ３からｂ０とそれぞれ次の関係を有し、冗長ビットｂ１１’からｂ０’に割り込まれ、３倍の冗長を形成する。
ｂ８’　＝ｂ４’＝ｂ０’＝ｂ０
ｂ９’　＝ｂ５’＝ｂ１’＝ｂ１
ｂ１０’＝ｂ６’＝ｂ２’＝ｂ２
ｂ１１’＝ｂ７’＝ｂ３’＝ｂ３
ビットｂ１１’からｂ０’は、次に回路ＬＴＣのラッチに読み込まれ、ＯＴＰビットの処理規則が尊重される場合は、メモリセルを消去する必要のない、単純なプログラミング動作によりメモリに記録される。
【００４４】
例えば、ＯＴＰ領域が以下と等価のビット列から構成されると仮定する。
ＤＳｊ＝１１１０１１１０１１１０
冗長を削除することにより、ビット列は、３個がすでに「使用済み」（ビットが１）で、１個が使用可能（ビットが０）である４個のトークンと等価になる。
１１１０
最後のトークンを「使用」するためには、回路ＥＣＣＴ１の入力側ＥＳ１にワード「１１１１」を配置し、出力側ＥＳ２で以下の冗長列を送付する。
ＤＳｊ’＝１１１１１１１１１１１１
ビット列ＤＳｊ’は、前のビット列ＤＳｊに代わって、回路ＬＴＣの対応するラッチに読み込まれ、記録される。この動作は、前の３個の「０」に代わって３個の「１」を記録するだけの動作であり、前のビット列を消去することなく、該当するセルをプログラミングするステップのみが必須である。このため、消去不可能なＯＴＰ領域は冗長ビットの記録に問題がないことが明らかである。
【００４５】
メモリが読み出しモード（ＲＤ＝１）の場合、回路ＥＣＣＴ１は入力側ＥＳ２で、読出し回路ＳＡにより送付された冗長ビットの列ｂ１１’―ｂ０’を受信し、出力側ＥＳ１で４個の初期ビットｂ３―ｂ０を送付する。ビットの読み出しに誤りがあると、３個の冗長ビットがお互いに等価でなくなるため、出力側ＥＳ１で送付されるビットは読み出された３個のビットの中で多数決された値、すなわち多数決値となる。読出し回路ＳＡにより、例えば、以下のビット列が回路ＥＣＣＴ１の入力側ＥＳ１に送付されると仮定する。
ＤＳｊ＝０１１１０１１００１１０
このビット列は、等価であるべき３個のビット（下線を引いたビット）が等価でないため、読み出し誤りを有している。次に、回路ＥＣＣＴ１は、３個の冗長ビットの中で「０」が多数決値であるため、４番目のビットを「０」として、以下のビットを出力側ＥＳ１に送付する。
０１１０
さらに、回路ＥＣＣＴ１は、読みだされたビットの中で少なくとも１個が誤りであることを示す誤り信号ＥＲＲを送付する。
【００４６】
回路ＥＣＣＴ１の実施の形態の例
【００４７】
図４に、回路ＥＣＣＴ１の実施の形態を示す。回路ＥＣＣＴ１は、訂正ブロックＣＴと冗長ブロックＤＭとから構成されている。訂正ブロックＣＴはバッファＢＵＦ１を介して入力側ＥＳ２に、バッファＢＵＦ２を介して出力側ＥＳ１に接続しており、バッファＢＵＦ１、ＢＵＦ２は信号ＲＤが１の場合に透過的である。冗長ブロックＤＭは、バッファＢＵＦ３を介して入力側ＥＳ１に、バッファＢＵＦ４を介して出力側ＥＳ２に接続しており、バッファＢＵＦ３、ＢＵＦ４は信号ＷＲが１の場合に透過的である。
【００４８】
ブロックＤＭは、それぞれが１個の入力と３個の出力を有した４個の逆多重化装置ＤＭ１からＤＭ４を備えている。３個の出力は入力側で受け取ったビットの値を同時にコピーしたものである。回路ＤＭ１は入力側で、入力側ＥＳ１に印可されたビット列のビットｂ０を受信し、冗長ビットｂ８’、ｂ４’、ｂ０’を送出する。回路ＤＭ２はビットｂ１を受信し、冗長ビットｂ９’、ｂ５’、ｂ１’を送出する。回路ＤＭ３はビットｂ２を受信し、冗長ビットｂ１０’、ｂ６’、ｂ２’を送出する。回路ＤＭ４はビットｂ３を受信し、冗長ビットｂ１１’、ｂ７’、ｂ３’を送出する。入力側ＥＳ１に印可される他の８個のビットは、該当するデータバスのコンダクタトラックが回路ＥＣＣＴ１に接続されていないため、使用されない。
【００４９】
ブロックＣＴは、読み出し回路ＳＡにより送付されたビットｂ１１からｂ０の列で選択され、入力側ＥＳ２に印可された冗長ビットをそれぞれ３個ずつ受信する４個の誤り訂正回路ＣＴ１からＣＴ４を備えている。それらはそれぞれビット｛ｂ８’、ｂ４’、およびｂ０’｝、｛ｂ９’、ｂ５’、およびｂ１’｝、｛ｂ１０’、ｂ６’、およびｂ２’｝、｛ｂ１１’、ｂ７’、およびｂ３’｝である。ブロックＣＴ１からＣＴ４はそれぞれ、バッファＢＵＦ２を介して出力側ＥＳ１に印可する訂正ビットｂ０、ｂ１、ｂ２、ｂ３を送出する。さらに、各回路ＣＴ１からＣＴ４は、入力側で受け取る３個の冗長ビットが等価でない場合には、それぞれ、ｅ０からｅ３の誤りビットを送出する。誤りビットはＯＲゲートで組み合わされ、回路ＥＣＣＴ１により送出される誤り信号ＥＲＲを形成する。
【００５０】
図５に、論理回路の形式で、訂正回路ＣＴ１の一つの実施の形態の例を示す。回路ＣＴ１は、３つの入力を有した「ＯＲ」ゲート１０と、３つの入力を有した「ＮＡＮＤ」ゲート１１と、２つの入力
2004503891.tif 000003
を有した「排他的ＯＲ」ゲート１２と、２つの入力を有した「ＯＲ」ゲート１３と、２つの入力を有した「ＡＮＤ」ゲート１４と、２つの入力を有した「ＡＮＤ」ゲート１５と、２つの入力を有した「ＡＮＤ」ゲート１６と、２つの入力を有した反転ゲート１７（「ＩＮＶ」）と、を有している。これらの各種のゲートは、以下の関係に従ってデータビットｂ０および誤りビットｅ０を送出する。
2004503891.tif 000004
【００５１】
他の回路ＣＴ２、ＣＴ３、ＣＴ４も回路ＣＴ１と同様の構成であるため、説明を省略する。それらは、入力側で受信されるビットの順序、および送出されるビットの順序において回路ＣＴ１と異なる。
【００５２】
本発明の変形態様および応用
【００５３】
本発明にはさまざまな変形態様および実施の形態が考えられることは明らかである。特に、多数決冗長により誤り訂正を実行する回路ＥＣＣＴ１について記載したが、ある実施の形態では、ビット訂正を行わずに誤り検出のみを実行する回路ＥＣＣＴ１を有してもよい。この場合、回路ＥＣＣＴ１は、単純な冗長の原理に従って、入力側ＥＳ１で受信した１個のビットを、以下の例に示されるように、出力側ＥＳ２で２個のビットにだけコピーする。
ｂ６’　　＝ｂ０’＝ｂ０
ｂ７’　　＝ｂ１’＝ｂ１
ｂ８’　　＝ｂ２’＝ｂ２
ｂ９’　　＝ｂ３’＝ｂ３
ｂ１０’　＝ｂ４’＝ｂ４
ｂ１１’　＝ｂ５’＝ｂ５
この場合、２個の冗長ビットが等価でないとき、回路ＥＣＣＴ１は２個の冗長ビットの間の矛盾を解決することはなく、誤り信号ＥＲＲ２お送出するだけに限定される。誤り信号ＥＲＲは、例えば、誤り信号が発行された場合に自身をブロックするようにプログラムすることができる、マイクロプロセッサなどの、メモリマネージャにより検出される。この場合、メモリは有効でなく、それが組み込まれている回路は使えなくする必要があると考えられる。
【００５４】
さらに、冗長ビットを割り込ませることについて説明したが、以下の例に示すように、冗長ビットを割り込ませずに提供することもできる。
ｂ２’　＝ｂ１’＝ｂ０’＝ｂ０
ｂ５’　＝ｂ４’＝ｂ３’＝ｂ１
ｂ８’　＝ｂ７’＝ｂ６’＝ｂ２
ｂ１１’＝ｂ１０’＝ｂ９’＝ｂ３
【００５５】
また、単純、または多数決冗長の原理に従って動作する誤り検出および／または訂正回路ＥＣＣＴ１、および誤り検出コードを使用した誤り訂正回路ＥＣＣＴ２を有利に組み合わせることについて説明したが、ここに示唆した組合せとは独立して、回路ＥＣＣＴ２を除外して回路ＥＣＣＴ１を実施することも可能であり、消去不可能な安全な領域を回路ＥＣＣＴ１に適用することが、本発明の基本的な態様であることは言うまでもない。また、回路ＥＣＣＴ１は他の種類の誤り訂正回路と組み合わせて実施することも可能である。
【００５６】
さらに、本発明は上述したように、消去不可能な安全領域を備えた電気的に消去可能でプログラム可能なあらゆる種類のメモリ、特にフラッシュメモリに適用可能である。
【００５７】
最後に、本発明に係るメモリは、各種の用途に応用可能である。特に、他の構成要素と独立、または関連して、シリコンウェーハに組み込むことも可能である。図６に、集積回路２１と、例えば、８個のＩＳＯ７８１６コンタクトなどのコンタクト２２を備えたスマートカード２０の一例をごく簡単に示す。集積回路２１は、マイクロプロセッサＭＰ、本発明に係るメモリＭＥＭ３、読み出し専用メモリＲＯＭ、およびランダムアクセスメモリＲＡＭから構成され、これらの構成要素は、データバスＤＴＢとアドレスバスＡＤＢに接続している。さらに、マイクロプロセッサＭＰは、コンタクト２２に接続した入力／出力ポートを備えている。
【００５８】
この場合、メモリＭＥＭ３のＯＴＰ領域は、メモリＭＥＭ３、ＲＯＭまたはＲＡＭの特定の領域へのアクセスを管理するためにカード２０を個別化するステップの間、使用することができる。カード２０の使用を開始すると、すべてのＯＴＰビットは１をとなり、カードの個別化領域へのアクセスはすべて確実に遮断される。
【図面の簡単な説明】
【図１】図１は、消去不可能な安全領域を有したＥＥＰＲＯＭメモリの古典的な構成を示している。
【図２】図２は、誤り訂正回路を備えたＥＥＰＲＯＭメモリの古典的な構成を示している。
【図３】図３は、消去不可能な安全領域と誤り検出および／または訂正システムを備えた、本発明に係るメモリの構成を示している。
【図４】図４は、図３のブロック図に表された本発明に係る誤り検出および／または訂正回路の構造を表している。
【図５】図５は、図４のブロック図に表された本発明に係る誤り訂正要素の論理図である。
【図６】図６は、本発明に係るメモリを備えたスマートカードの概要を表している。
【国際公開パンフレット】
2004503891.tif 000005
2004503891.tif 000006
2004503891.tif 000007
2004503891.tif 000008
2004503891.tif 000009
2004503891.tif 000010
2004503891.tif 000011
2004503891.tif 000012
2004503891.tif 000013
2004503891.tif 000014
2004503891.tif 000015
2004503891.tif 000016
2004503891.tif 000017
2004503891.tif 000018
2004503891.tif 000019
2004503891.tif 000020
2004503891.tif 000021
2004503891.tif 000022
2004503891.tif 000023
2004503891.tif 000024
2004503891.tif 000025
2004503891.tif 000026
2004503891.tif 000027
2004503891.tif 000028
【国際調査報告】
2004503891.tif 000029
2004503891.tif 000030
2004503891.tif 000031
2004503891.tif 000032