(57)【要約】本発明は、複数の不揮発性記憶セルを伴うメモリの書き込みコントローラ（１０）、複数の不揮発性記憶セルを伴うメモリの読み出しコントローラ、書き込み／読み出し兼用コントローラ、複数の不揮発性記憶セルを伴うメモリを備えるソリッド・ステート・デバイス［solid state device］、不揮発性メモリに２進データを書き込むプログラマ・デバイス［programmer device］、不揮発性記憶セルを備えるメモリに少なくとも１つの入力ビットを備えるデータを書き込む方法、およびメモリの不揮発性記憶セルに格納された少なくとも１つの入力ビットを備えるデータの整合性を管理する方法に関する。本発明は、不揮発性メモリの内容に対して発生した変更を検出する信頼性の高い方法を提供する。本発明の基本的な考え方は、不揮発性メモリに格納された情報を少なくとも１つのチェック・ビットで拡張することである。このチェック・ビットは、１つのコード・ビットまたは複数のコード・ビットのそれぞれに割り当てられる。こうした割り当ては、好ましくは入力ビットおよびコード・ビットを格納するメモリ・セルの割り当てに反映される。
2006526833.tif 000002
【特許請求の範囲】
【請求項１】
複数の不揮発性記憶セルを伴うメモリの書き込みコントローラであって、前記メモリに書き込まれる少なくとも１つの入力ビットを備える入力データを受信する入力を備えており、前記入力データから出力データおよび割り当てられたアドレス情報を生成するように適応されるアドレス情報書き込みコントローラにおいて、
前記出力データは前記入力データと前記入力ビットに割り当てられた少なくとも１つのチェック・ビットとを備えており、前記チェック・ビットは前記入力ビットの補数値をとり、
前記アドレス情報は前記それぞれの入力ビットを格納する記憶セルに割り当てられた記憶セルに前記チェック・ビットを割り当てる書き込みコントローラ。
【請求項２】
前記それぞれの入力ビットを格納する記憶セルに隣接する記憶セルに前記チェック・ビットを割り当てるアドレス情報を生成するように適応されている請求項１に記載の書き込みコントローラ。
【請求項３】
前記出力データは、前記入力ビットに割り当てられた特定の個数のチェック・ビットを備えており、前記個数は２〜８の範囲であり、さらに前記アドレス情報は各チェック・ビットを記憶セルの直線状の配置、またはそれぞれ行列状の配置に割り当て、入力ビットとそれに割り当てられたチェック・ビットのセットごとに格納されるビット値の直線のパターンまたは２次元のパターンが作成される請求項２に記載の書き込みコントローラ。
【請求項４】
前記入力に接続され、前記少なくとも１つの入力ビットのビット値を確認し、前記少なくとも１つのチェック・ビットを生成し、各チェック・ビットのビット値は前記それぞれの割り当てられた入力ビットのビット値の補数をとるように適応されているチェック・ビット・ジェネレータを備える請求項１に記載の書き込みコントローラ。
【請求項５】
前記入力と前記チェック・ビット・ジェネレータに接続され、前記少なくとも１つの入力ビットと前記割り当てられた少なくとも１つのチェック・ビットに、互いに隣接する記憶セルのそれぞれのアドレス情報を割り当てるように適応されているアドレス情報ジェネレータを備える請求項１に記載の書き込みコントローラ。
【請求項６】
複数の不揮発性記憶セルを伴うメモリの読み出しコントローラであって、前記メモリから読み出される少なくとも１つの入力ビットと前記入力ビットに割り当てられた少なくとも１つのチェック・ビットとを備えるデータを受信する入力と、
前記少なくとも１つの入力ビットの値と前記少なくとも１つのチェック・ビットの値とを比較し、前記コード・ビットの値と前記チェック・ビットの値とが互いの補数になっているかどうかを示す出力信号を提供するように適応されている整合性管理ユニットとを備える読み出しコントローラ。
【請求項７】
少なくとも１つの選択されたメモリ・セルと前記割り当てられたチェック・ビットを格納する前記少なくとも１つの隣接するメモリ・セルとを対象とする読み出し要求を生成するように適応されているアドレス・ジェネレータを備える請求項６に記載の読み出しコントローラ。
【請求項８】
複数の不揮発性記憶セルを伴うメモリの読み出し／書き込みコントローラであって、請求項１に記載の書き込みコントローラと、請求項６に記載の読み出しコントローラとを備える読み出し／書き込みコントローラ。
【請求項９】
不揮発性メモリに２進コードを書き込むプログラマ・デバイスであって、請求項１に記載の書き込みコントローラを備えており、前記書き込みコントローラはその入力で前記２進コードを受信するように適応されているプログラマ・デバイス。
【請求項１０】
前記書き込みコントローラの前記入力に接続され、特有の識別子コードを生成し、このコードを書き込みコントローラの入力に提供するように適応されているコード・ジェネレータを備える請求項９に記載のプログラマ・デバイス。
【請求項１１】
複数の不揮発性記憶セルを伴うメモリと、前記メモリに接続された請求項１に記載の書き込みコントローラまたは請求項５に記載の読み出しコントローラ、あるいはその両方を備えるソリッド・ステート・デバイス。
【請求項１２】
磁気記憶セルを備える請求項１１に記載のソリッド・ステート・デバイス。
【請求項１３】
前記メモリ内で、少なくとも２つの隣接する強磁場［high-field］記憶セルは他のすべての記憶セルよりサイズが大きく、前記書き込みコントローラは前記入力ビットと前記割り当てられた少なくとも１つのチェック・ビットとを前記隣接する強磁場記憶セルに割り当てるアドレス情報を作成するように適応されている請求項１２に記載のソリッド・ステート・デバイス。
【請求項１４】
不揮発性記憶セルを備えるメモリに少なくとも１つの入力ビットを備えるデータを書き込む方法であって、
ａ）前記入力ビットに割り当てられた少なくとも１つのチェック・ビットのビット値が前記入力ビットのビット値の補数をとるビット値であることを確認するステップと、
ｂ）あらかじめ指定されたアルゴリズムに従って、前記入力ビットと前記チェック・ビットに不揮発性半導体メモリ・セルを割り当てるステップと、
ｃ）ステップｂ）にしたがって割り当てられた前記メモリの前記不揮発性記憶セルに前記少なくとも１つのチェック・ビットと前記入力ビットとを書き込むステップとを備える方法。
【請求項１５】
前記データは前記メモリに割り当てられた識別子を備える請求項１４に記載の方法。
【請求項１６】
前記割り当てアルゴリズムは前記入力ビットと前記チェック・ビットを隣接する記憶セルに割り当てることを備える請求項１４に記載の方法。
【請求項１７】
前記メモリを含むダイをテストする前、テスト中、またはテスト終了後に実行される請求項１４に記載の方法。
【請求項１８】
前記書き込みのステップの後に、前記メモリへのさらなる書き込みが阻止される請求項１４に記載の方法。
【請求項１９】
前記書き込みのステップは、パスワードを提供し、前記メモリを含むチップ上に格納されたパスワードを使用して前記提供されたパスワードのＩＤを検証するステップの後に実行される請求項１４に記載の方法。
【請求項２０】
メモリの不揮発性記憶セルに格納された少なくとも１つの入力ビットを備えるデータの整合性を管理する方法であって、
ａ）前記入力ビットに割り当てられた少なくとも１つのチェック・ビットのビット値が前記入力ビットのビット値の補数をとるビット値であることを確認するステップと、
ｂ）あらかじめ指定されたアルゴリズムに従って、前記入力ビットと前記チェック・ビットに不揮発性半導体メモリ・セルを割り当てるステップと、
ｃ）ステップｂ）に従って割り当てられた前記不揮発性記憶セルに前記チェック・ビットと前記入力ビットとを書き込むステップと、
ｄ）前記割り当てられた記憶セルから前記入力ビットと前記チェック・ビットを読み出すステップと、
ｅ）前記入力ビットと前記チェック・ビットとを比較するステップと、
ｆ）前記入力ビットと前記チェック・ビットとが互いの補数になっているかどうかを示す信号を提供するステップとを備える方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の不揮発性記憶セルを伴うメモリの書き込みコントローラ、複数の不揮発性記憶セルを伴うメモリの読み出しコントローラ、書き込み／読み出し兼用コントローラ、複数の不揮発性記憶セルを伴うメモリを備えるソリッド・ステート・デバイス、不揮発性メモリに２進データを書き込むプログラマ・デバイス、不揮発性記憶セルを備えるメモリに少なくとも１つの入力ビットを備えるデータを書き込む方法、およびメモリの不揮発性記憶セルに格納された少なくとも１つの入力ビットを備えるデータの整合性を管理する方法に関する。
【背景技術】
【０００２】
不揮発性メモリは、メモリに動作電力が供給されなくても、格納された情報を保持するという利点を有する。今日知られている不揮発性メモリの動作の原理は、磁気性、強誘電性、または半導体効果のような物理的な効果に基づいている。既知の不揮発性メモリ・デバイスは、例えば磁気ランダム・アクセス・メモリ（ＭＲＡＭ：Magnetic Random  Access Memory）、消去可能プログラマブル読み出し専用メモリ（ＥＰＲＯＭ：Erasable Programmable Read Only Memory）、電気的ＥＰＲＯＭ（ＥＥＰＲＯＭ：Electrically ＥＰＲＯＭ）、フラッシュ・メモリなどを含んでいる。
【０００３】
不揮発性メモリは書き換え可能なメモリである。読み出し専用メモリの技術と異なり、記憶メカニズムの不揮発性では格納された情報の望ましくない変更を防止できない。ＭＲＡＭでは、格納された情報は例えば温度変化、個々の磁気セルの向きのランダムなフリップ［flipping］、あるいは改ざん［tampering―改竄すること・不法に改変すること］による影響を受ける可能性がある。ＭＲＡＭの改ざんには、メモリに外部から強力な磁場をかける方法を含めてもよい。ＭＲＡＭにこうした磁場をかけると、すべての記憶セルでその個々の磁気記憶レイヤーの磁気モーメントがその強力な磁場と平行に整列する。これでチェック・ビットも含めたすべての記憶セルに０または１の同じビット値が入る。したがって、初めにメモリに格納されていた情報は失われる。
【０００４】
また、ソフトウェアまたはハードウェアの形で専用に設計されたアプリケーションによって、「読み出し専用［read-only］」または「アクセス不可［no-access］」として分類された情報に対する権限のない変更が試行される場合もある。
【０００５】
不揮発性メモリ・セルの望ましくない書き換えが行われる可能性があるため、提供された情報の整合性が極めて重要な商業上の領域で、不揮発性メモリの利用を制限するセキュリティの問題が発生する。デジタル著作権管理（ＤＲＭ：Digital Rights Management）では、例えば、ソリッド・ステート・デバイスの特有の識別子をキーと同様に使用して、特権のある情報、特権的品質のサービスへのアクセスを許可したりまたは拒否したり、さらに請求情報を収集したりすることができる。こうした特有の識別子は、通常はソリッド・ステート・デバイスの内蔵メモリに書き込まれた２進コードで構成される。識別子のビットが書き換えられると、以前には許可されたアクセス権が拒否されたり、侵入者のアクセスを許可したり、誤った請求明細が作成されたりする恐れがある。
【０００６】
アプリケーションは、通常は識別子のような「読み出し専用」または「アクセス不可」の情報の変更は許可されない。実際に、こうした情報を変更できないように注意が払われている。不揮発性半導体メモリの保護システムでは米国特許第５，９１７，７５０号公報に記載の事例が知られている。このメモリでは、メモリ・セルに格納されたデータを保護するかどうかを示す保護信号を生成する保護回路が提供される。メモリ内で保護信号が書き込みアクセスを示す部分にのみ書き込みが許可される。しかし、このシステムは、大量の追加の回路をメモリに接続する必要があり、内部的な影響を回避できない。ＭＲＡＭの場合は、国際公開ＷＯ２０００／７２３２４Ａｌ公報と米国公開ＵＳ２００２／０００８９８８Ａｌ公報に記載の物理的な遮蔽機構［shielding mechanism―保護機構―］が既知である。いずれ文書も、メモリ内の追加の遮蔽層について説明している。このような追加の物理的な遮蔽はメモリの原価を増大し、外部の強力な磁場または権限のないアプリケーションがメモリを書き換えるのを安全に防止できない。
【０００７】
前述の保護機構［protection mechanism］のこのような欠点は、書き込み保護機構は大きな技術的な労力を必要とするが、不揮発性メモリの書き換えに対する十分な安全性を提供できないことを示している。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
したがって、本発明の１つの目的は、不揮発性メモリに格納された「読み出し専用」または「アクセス不可」の情報に対する予期せぬ変更または意図的な変更によって発生する損害を防止する別の方法を提供することである。
【課題を解決するための手段】
【０００９】
本発明の第１の態様により、複数の不揮発性記憶セルを伴うメモリの書き込みコントローラによりこの目的は解決され、前記メモリに書き込まれる少なくとも１つの入力ビットを備える入力データを受信する入力を備え、前記入力データから出力データを生成するために使用され、さらにアドレス情報を割り当てられる。このコントローラにおいて、前記出力データは、前記入力データと前記入力ビットに割り当てられた少なくとも１つのチェック・ビットとを備えており、前記チェック・ビットは前記入力ビットの補数値をとり、さらにこのコントローラにおいて、前記アドレス情報は、前記それぞれの入力ビットを格納する記憶セルに割り当てられた記憶セルに前記チェック・ビットを割り当てる。
【００１０】
本発明は、適切な書き込み保護を提供する試みとは異なるステップを踏む。本発明は、不揮発性メモリの内容に対して発生した変更を検出する信頼性の高い方法に照準を合わせている。本発明の基本的な考え方は、不揮発性メモリに格納された情報を少なくとも１つのチェック・ビットで拡張することである。格納される情報は、本明細書において入力ビットまたは同等の意味合いでコード・ビットと呼ばれる。入力ビットという用語は、本発明の書き込みコントローラがメモリ・クライアントから入力時にこれらの格納されるビットを受け取ることを明確に示すために使用される。本発明の書き込みコントローラは、こうした格納されるビットを生成しない。
【００１１】
外部のソースから受け渡される入力ビットとは異なり、本発明の書き込みコントローラはチェック・ビットを生成する。書き込みコントローラは、さらにそれぞれの入力ビットにチェック・ビットを割り当てる。複雑な一般化を避けるために、本明細書のこれ以降の部分では、１つまたは複数のチェック・ビットを使用できる場合は必ず単独の形の「チェック・ビット」を使用する。本発明の実施形態がそれぞれのケースを利用する場合は、いつでも唯一のチェック・ビットと複数のチェック・ビットのいずれかを選択するケースについて明示的に対処する。
【００１２】
本発明により、チェック・ビットは、このチェック・ビットが割り当てられている個々の入力ビットの補数値をとる。つまり、入力ビットが値１をとる場合はチェック・ビットが値０をとり、入力ビットが値０をとる場合はチェック・ビットが値１をとる。入力ビットまたはチェック・ビットの変更は容易に検出できる。入力ビットとチェック・ビットの値の両方が同じ値をとる場合は、変更が発生したことがわかる。このように、補数値をとるチェック・ビットを提供することにより、本発明は改ざんの試みでたびたび使用される選択性のない外部の作用によるメモリへの変更を検出できる。例えば、ＭＲＡＭを外部の強力な磁場にさらすことで、すべてのメモリ・セルを同じ値に設定し、本発明によるデータの整合性を示す入力ビットとチェック・ビットとの既定の関係を破壊する。別の例として、ＥＰＲＯＭメモリを紫外線にさらしても同様の効果がある。
【００１３】
入力ビットとチェック・ビットの間の割り当てを提供する明示的なアルゴリズムは、以下で説明するように実施形態ごとに異なっている。メモリの内容への変更を検出する際の誤りを防止するために、こうした割り当てを変更してはならない。チェック・ビットは、唯一の入力ビットに割り当てることも任意の数の入力ビットに割り当てることもできる。例えば、１つの実施形態では、唯一の入力ビットにチェック・ビットが割り当てられる。例えば外部ソースで生成される強い力のような選択性のない影響力によるメモリの上書きを検出するには、１つのチェック・ビットで十分である。別の実施形態では、各入力ビットにチェック・ビットが割り当てられる。この場合は、「読み出し専用」または「アクセス不可」として分類された個々の入力ビットに対する選択性のある変更を検出できる。
【００１４】
入力ビットとチェック・ビットの間に簡単な割り当てを提供するために、入力ビットとチェック・ビットの間の割り当ては、好ましくはメモリ内の互いに相対的なそれぞれのビットの位置に反映される。本発明の書き込みコントローラは、あらかじめ定義された割り当てアルゴリズムに従って、入力ビットとチェック・ビットの両方について個々のアドレス情報を生成する。アドレス情報は入力データとチェック・ビット（１つまたは複数）を備える出力データをこのアドレス情報に対応するメモリ・セルに格納するために使用される。アドレス情報は、書き込みコントローラの出力データの追加部分でもよいが、メモリには格納されない。別の実施形態において、アドレス情報はメモリの特定のワード・ラインと特定のビット・ラインに適用される電気信号の形で提供される。つまり、書き込みコントローラはワード・ラインとビット・ラインのドライバを統合し、特定の出力データ・ビットが書き込まれる特定のメモリ・セルに物理的にアドレス指定する。
【００１５】
本発明による書き込みコントローラの１つの実施形態において、書き込みコントローラは外部のメモリ・クライアントから書き込みコントローラに入力データの一部として提供されるアドレス・データにアドレス情報を割り当てる。本発明の書き込みコントローラはこの実施形態において、入力ビットに加えてアドレス・データを備える入力データを受信するように適応されている。１つの代替において、こうしたアドレス・データは書き込みコントローラの同じ入力ポートから入力データ・ストリームの一部として受信される。別の代替において、こうしたアドレス・データは書き込みコントローラの別の入力ポートから対応する入力ビットと同時に受信される。
【００１６】
本実施形態の１つの代替において、書き込みコントローラは、入力ビットと同等の出力データの該当する部分のアドレス情報として受信したアドレス・データを使用する。この代替において、書き込みコントローラはチェック・ビット用の新しいアドレス情報を生成する。この新しいアドレス情報は、外部のメモリ・クライアントから提供されるアドレス・データによって決まる。このアドレス指定方法では、外部のクライアントから提供されるアドレス・データと、あらかじめ指定された割り当てアルゴリズムに従って書き込みコントローラがチェック・ビット用に内部的に生成するアドレス情報との間の競合を回避するように注意を払う必要がある。このような注意事項には、例えば使用可能なアドレス範囲に関する情報をメモリ・クライアントに提供することがある。
【００１７】
この実施形態の別の代替では、書き込みコントローラは外部のメモリ・クライアントから提供されたアドレス・データに割り当てられる新しいアドレス情報を生成する。書き込みコントローラは、このために、書き込みコントローラの入力で受信したアドレス・データを出力で提供されるアドレス情報に変換するアドレス割り当てテーブルを保持してもよい。この割り当てテーブルは、好ましくはメモリの読み出しコントローラと共有される。この代替では、外部のメモリ・クライアントが入力ビットのアドレス・データを提供し、書き込みコントローラは入力ビットとチェック・ビットのアドレス情報を生成する。書き込みコントローラで生成されたアドレス情報は、外部のメモリ・クライアントで管理される可能性もなく、外部のメモリ・クライアントに伝達されることもない。データの整合性を保証するためのチェック・ビット・アルゴリズムは、外部のメモリ・クライアントに対しては完全に透過的なものである。
【００１８】
読み出し要求の場合には、外部のメモリ・クライアントはデータを格納するときに提供されたアドレス・データを使用し、これらを読み出しコントローラに提供する。読み出しコントローラは、アドレス割り当てテーブルを参照し、アドレス・データをメモリ内に格納される対応する入力ビットのアドレス情報に変換することによって、こうした入力ビットをメモリ・クライアントに提供する。これで、格納されたデータの整合性が得られる。この態様については、本発明の読み出しコントローラに関する説明の文脈［context］で詳細に説明する。好ましくは、入力ビットと割り当てられたチェック・ビットが物理的に近いメモリ・セルに格納されている。物理的に近いビットは、いずれも局部的な外部磁場［local external field］によって影響される可能性が高い。入力ビットとチェック・ビットを近接させて局部的な配置にすることによって、メモリ内の限定された範囲に外部の磁場がかかったことを検知する可能性が高くなる。
【００１９】
好ましい実施形態により、チェック・ビットは割り当てられた入力ビットのメモリ・セルに近接するメモリ・セルに格納される。近接するセルは、さまざまな実施形態において同じ行でも同じ列でもよい。メモリ・セルの行列と同様の配置において、隣接する近傍は隣接する行と隣接する列、すなわち入力ビットを格納するメモリ・セルに対して直交する配置で決定してもよい。
【００２０】
チェック・ビットを格納する場合は、隣接する近傍を使用することで、識別子を格納するためのセルの数が少ない小規模なメモリ・アレイと単一メモリ・ラインでも使用されるように適応される、最も簡単で柔軟な解決法を提供するのが好ましい。したがって、本発明の書き込みコントローラは、好ましくは前記それぞれの入力ビットを格納する記憶セルに隣接する記憶セルに前記チェック・ビットを割り当てるようなアドレス情報を生成するように適応されている。
【００２１】
しかし、本発明はこうした配置には限定されない。本発明の他の実施形態では、入力ビットに割り当てられたチェック・ビットは、別の割り当てアルゴリズムを使用して決定される記憶セルに格納される。例えば、チェック・ビットは、入力ビットを格納するメモリ・セルと同じ行または同じ列の２番目または３番目に最も隣接する近接するセルに格納されてもよい。
【００２２】
チェック・ビットを使用するという概念は異なる文脈で知られているが、本発明では、格納された情報の整合性を保証し、変更された情報を効果的に検出できるようにするために特に有効なチェック・ビットへの新しいアプローチを提供する。チェック・ビットの使用は、デジタル・データ送信の分野で知られている。この分野では、チェック・ビットは例えば低品質の送信環境による受信データ・シーケンスの送信エラーを検出するための巡回冗長検査（ＣＲＣ：cyclic redundancy check）の方法のフレームワークにおいてフレーム・チェック・シーケンス（ＦＣＳ：frame check sequence）の形をとる。ＣＲＣのＦＣＳは、通常は長さが２バイトであり、２元多項式を使用したアルゴリズムに従って計算される。同じ文脈において、データ送信におけるエラー検出の別の考え方は、パリティ・ビットの使用である。多くのビットで構成されるブロックにパリティ・ビットが付加され、ブロックに含まれ、ビット値「１」をとるビットの数が偶数か奇数かを表す。偶数パリティの場合は、パリティ・ビットが「１」であり、奇数パリティの場合は、パリティ・ビットが「０」である。
【００２３】
この解決法は、チェック・ビットを使用するが、ＣＲＣやパリティ・チェックの考え方とは異なっている。本発明において使用するチェック・ビットは、前述の既知の方法とは異なり、複数のビットではなく個々の入力ビットに割り当てられる。このことによって、特定の設計による書き込みコントローラにおいて、極めて高い柔軟性が提供される。本発明の書き込みコントローラは、指定された境界条件に従って設計できる。使用するチェック・ビットの数と１つまたは複数のチェック・ビットを割り当てられる特定の格納されたコードの入力ビットの数は、指定されたハードウェア設計によって決定できる。例えば、タスクがＭＲＡＭに外部の強力な磁場をかけることによる改ざんの試みを検出できるようにする場合は、例えば識別子の最初の入力ビットなど、１つの入力ビットに１つのチェック・ビットを割り当てれば十分である。既知のチェック・ビットの考え方と比較した場合に、本発明によるチェック・ビットのもう１つの相違点は、本発明によるチェック・ビットの値を決定するアルゴリズムははるかにシンプルなことである。実際に、シンプルなインバータを使用してチェック・ビットを生成できる。チェック・ビットの値を決定するためにそれほど多くの回路を必要とはしないので、このようにシンプルなことは、既知のアルゴリズムに対する重要な利点である。既知のチェック・ビットの考え方とのさらに別の相違点として、本発明のチェック・ビットは外部のアプリケーション、すなわちメモリ・クライアントでは表示されないことがある。本発明のチェック・ビットは、メモリ・クライアントに対する如何なる情報［any communication―如何なる通信―］もなく、透過性［transparency］もなしに、生成（およびチェック）される。
【００２４】
本発明の第１の態様による書き込みコントローラのさまざまな実施形態において、出力データは個々の入力ビットに割り当てられた多くのチェック・ビットを備えている。チェック・ビットの数は、実施形態ごとに固定である。メモリ・セルの行列状の配置では、個々の入力ビットに対して隣接するメモリ・セル内に２〜８個のチェック・ビットを割り当てることができる。メモリ・セルの直線状の配置では、１つの入力ビットに対して隣接するメモリ・セル内に最大２個のチェック・ビットを割り当てることができる。これらの実施形態では、前記アドレス情報は各チェック・ビットを記憶セルの直線状の配置、またはそれぞれ行列状の配置に割り当て、入力ビットとそれに割り当てられたチェック・ビットのセットごとに格納されるビット値の直線または２次元のパターンが作成される。チェック・ビット数が多い場合は、明らかにより大きなメモリ領域を要するという欠点がある。他方では、チェック・ビット・パターンが大きいと、個々のビットに基づいてメモリの内容を操作する試みにおいて解読がより困難になり、こうした大規模なチェック・ビット・パターンを生成できることは、チェック・ビット・アルゴリズムを隠し、個々のメモリ・セルへの操作の試みを検出するのに有効である。
【００２５】
本発明の書き込みコントローラの好ましい実施形態は、前記入力に接続されたチェック・ビット・ジェネレータを備えている。チェック・ビット・ジェネレータは、不揮発性メモリに書き込まれる入力ビットのビット値を確認し、前記入力ビットのビット値の補数をビット値とするチェック・ビットを生成するように適応されている。チェック・ビット・ジェネレータは、１つの実施形態では専用の回路によって提供される。別の実施形態ではチェック・ビット・ジェネレータは埋め込みのソフトウェアによって提供される。
【００２６】
本発明による書き込みコントローラの別の好ましい実施形態は、前記入力と前記チェック・ビット・ジェネレータとに接続されたアドレス情報ジェネレータを備えている。アドレス情報ジェネレータは、前記少なくとも１つの入力ビットと前記割り当てられた少なくとも１つのチェック・ビットのそれぞれに対して、互いに隣接する記憶セルのアドレス情報を割り当てるように適応されている。アドレス・ジェネレータは、１つの実施形態では専用の回路で提供される。別の実施形態では、アドレス・ジェネレータは埋め込みのソフトウェアによって提供される。アドレス情報は、メモリ内のメモリ・セルに割り当てられたアドレスを表す２進コードの形をとることができる。選択されたワード・ラインとビット・ラインに適用される電気信号の形をとってもよい。この場合は、２進コードをこうした信号に変換する中間のステップなしに個々のメモリ・セルを直接アドレス指定する。
【００２７】
本発明の第２の態様により、複数の不揮発性記憶セルを伴うメモリの読み出しコントローラが提供される。本発明の読み出しコントローラは、メモリから読み出したデータを受信する入力を備えている。読み出しデータは、少なくとも１つの入力ビットと、この入力ビットに割り当てられた少なくとも１つのチェック・ビットとを備えている。本発明の読み出しコントローラは、さらに整合性管理ユニットを備えており、このユニットは、前記少なくとも１つの入力ビットの値と前記少なくとも１つのチェック・ビットの値とを比較し、前記コード・ビットと前記チェック・ビットの値が互いの補数になっているかどうかを示す出力信号を提供するように適応されている。
【００２８】
本発明の読み出しコントローラは、前述の書き込みコントローラと相補関係にあるユニットである。読み出しコントローラは、本発明の書き込みコントローラを使用して不揮発性メモリに書き込まれたデータの整合性をチェックする役割を果たす。このように、読み出しコントローラは書き込みコントローラと同じチェック・ビット・アルゴリズムに基づいている。読み出しコントローラは、特定の入力ビットの整合性をチェックするのにメモリ・セルのどのグループをアドレス指定する必要があるかを「認識」している。したがって、読み出しコントローラの好ましい実施形態は、本発明の書き込みコントローラの対応する実施形態から直ちに推測できる。
【００２９】
例えば、本発明による読み出しコントローラの１つの好ましい実施形態において、書き込みコントローラで入力ビットに使用するチェック・ビット・パターンは読み出しコントローラで入力ビットの整合性をチェックする場合にも使用される。読み出しコントローラは、少なくとも１つの選択されたメモリ・セルと前記割り当てられたチェック・ビットを格納する前記少なくとも１つの隣接するメモリ・セルとを対象とする読み出し要求を生成するように適応されたアドレス・ジェネレータを備えている。アドレス・ジェネレータは、比較する場合に同じ特定の数のメモリ・セルを使用し、作成されたチェック・ビット・パターンから得られる同じアドレスを使用する。別の実施形態において、読み出しコントローラが整合性チェックに使用するチェック・ビットは、書き込みコントローラが作成したものより少ない。読み出しコントローラで作成されるアドレス情報は、メモリ内のメモリ・セルに割り当てられたアドレスを表す２進コードの形をとることができる。選択されたワード・ラインとビット・ラインに適用される電気信号の形をとることもできる。この場合は、２進コードをこうした信号に変換する中間のステップなしに個々のメモリ・セルを直接アドレス指定する。
【００３０】
読み出しコントローラは不揮発性メモリから読み出されたチェック・ビットを外部アプリケーションに伝達するようには適応されていないことに留意されたい。整合性チェックは、整合性管理ユニットによって内部的に実行される。整合性チェックの結果のみが、入力ビットと入力ビットに割り当てられるチェック・ビットとが互いの補数になっているかどうかを示す２進の信号として伝達できる。読み出しコントローラは、暗号化のようなさらなるセキュリティ対策が講じられない限り、それに統合されたチップの範囲を超えてこの２進の信号を伝達するようには適応されていない。読み出しコントローラは、チップのＩＰブロック、例えばチップ内の独立した要素の形で提供されてもよい。この実施形態において、読み出しコントローラは、チップ設計者の選択によりチップを超えない範囲でチップ上の２進の信号を伝達するように適応されている場合もされていない場合もある。
【００３１】
２進の整合性信号を伝達するチップ間に標準の配線を使用する場合は、例えばコントローラからの配線を切断し、「常に使用可能［always ok］」なソースに接続することによって、この信号を「ハッキング［hack］」するのは他愛ない操作である。本発明により改ざん耐性［tamper-resistant］の通信を備えることは重要である。
【００３２】
稼働中に、本発明の読み出しコントローラに備えられている整合性管理ユニットは一方の入力ビットと１つまたは複数の割り当てられた他方のチェック・ビットとを比較する。複数の入力ビットにチェック・ビットを割り当てられた１つの実施形態において、入力に接続された並列比較段［parallel comparator stage―パラレル・コンパレータ・ステージ―］が提供され、整合性管理の速度を向上する。しかし、速度が重要でない場合に、代替の実施形態は唯一の比較段［コンパレータ・ステージ］を備えており、整合性チェックはチェック・ビットを割り当てられた入力ビットごとに順次実行される。
【００３３】
本発明の第３の態様により、複数の不揮発性記憶セルを伴うメモリの読み出し／書き込みコントローラが提供される。読み出し／書き込みコントローラは、本発明の第１の態様による書き込みコントローラと本発明の第２の態様による読み出しコントローラを備えている。
【００３４】
読み出し／書き込みコントローラは、前述の書き込みコントローラと読み出しコントローラの利点を兼ね備えている。読み出し／書き込みコントローラは、不揮発性メモリの書き込みと不揮発性メモリの読み出しとを１台のユニットで実行する必要がある場合に特に有効である。これに対して、後述のプログラマのようにチップ上の不揮発性メモリをプログラミングする役割を果たすのみのデバイスの場合は、書き込みコントローラのみで十分である。整合性チェックは、チップ上に提供される読み出しコントローラで実行できる。
【００３５】
本発明の第４の態様により、不揮発性メモリに２進コードを書き込むプログラマ・デバイスが提供される。プログラマ・デバイスは、本発明の第１の態様による書き込みコントローラを備えている。書き込みコントローラは、その入力で２進コードを受信するように適応されている。
【００３６】
プログラマ・デバイスは、通常は集積回路（ＩＣ：Integrated Circuit）の生産で使用されており、ＩＣテスターまたはデジタルＩＣ検証システムに組み込まれている。不揮発性メモリを備えるＩＣの多くの製造プロセスでは、不揮発性メモリを初期化する必要がある。初期化の作業は、プログラマ・デバイスによって実行される。本発明の本態様により、本発明の書き込みコントローラを使用してＩＣが備える不揮発性メモリをプログラミングするという付加機能を伴うこのようなプログラマ・デバイスが提供される。このように、効率的な整合性管理メカニズムを備えるＩＣ製品が提供される。ＩＣは、格納されたデータの整合性侵害を検出できるように、本発明の読み出しコントローラを備えていてもよい。
【００３７】
プログラマ・デバイスの好ましい実施形態は、前述の本発明の第１の態様による書き込みコントローラを備えている。
【００３８】
本発明によるプログラマ・デバイスの別の好ましい実施形態は、書き込みコントローラの入力に接続され、特有の［unique］識別子コードを生成し、このコードを書き込みコントローラの入力に提供するように適応されたコード・ジェネレータを備える。特有の識別子コードは、ＩＣごとに個別に作成されるコード・ビットの組み合わせを備える。このように、プログラマは各ＩＣ製品に特有の識別子を提供する。当業者は、特有の識別子を生成できる方法を認識している。例えば、イーサネット［Ethernet］（登録商標）コントローラの製造プロセスにおける特有のＭＡＣアドレスの生成とプログラミングがある。第１の特定の組み合わせによる識別子ビットは、特定のメーカーに一義的に帰属し、メーカーはこの特定のメーカーの製造プロセス内で特有である第２の組み合わせによる識別子ビットを付加することによって、グローバルに特有の識別子、いわゆるＭＡＣアドレスを生成する。
【００３９】
代替の実施形態において、プログラマは書き込みコントローラに入力として提供する特有の識別子をプログラマに送信する外部のコード・ジェネレータに接続する。別の代替の実施形態において、プログラマは書き込みコントローラに入力として提供される特有の識別子のリストを格納するメモリを備えている。
【００４０】
本発明の第５の態様により、複数の不揮発性記憶セルを伴うメモリと、前記メモリに接続された本発明の第１の態様による書き込みコントローラまたは本発明の第２の態様による読み出しコントローラ、あるいはその両方を備えるソリッド・ステート・デバイスが提供される。
【００４１】
本発明の本態様によるソリッド・ステート［solid-state―固体―］・デバイスは、電子回路を備える任意のデバイスである。こうしたソリッド・ステート・デバイスの例は、ＩＣや、例えばＭＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭの形のメモリ・デバイスや、フラッシュ・メモリ、例えばＰＣＭＣＩＡカードのようなコンピュータ・カードのようなＩＣを備えるデバイスである。本発明のソリッド・ステート・デバイスは、不揮発性記憶セルを伴うメモリを備えている。ただし、メモリは揮発性記憶セルと不揮発性記憶セルの組み合わせを備えていてもよい。また、ソリッド・ステート・デバイスに個別に提供されるさまざまな形のメモリでもよい。
【００４２】
本発明の本態様によるソリッド・ステート・デバイスの好ましい実施形態は、本発明の書き込みコントローラの実施形態と読み出しコントローラの実施形態を備えている。
【００４３】
ソリッド・ステート・デバイスの別の好ましい実施形態は、ＭＲＡＭセルのような磁気記憶セルを備えている。ＭＲＡＭは、現在のメモリ技術の利点を維持しながらその欠点を克服する優れた可能性を有する非常に将来性のある技術である。
【００４４】
ＭＲＡＭ技術に基づく好ましい実施形態において、本発明の本態様によるソリッド・ステート・デバイスは、前記メモリに含まれる他のすべての記憶セルよりサイズの大きな少なくとも２つの隣接するＭＲＡＭセルを備えている。この実施形態において、書き込みコントローラは前記入力ビットと前記割り当てられた少なくとも１つのチェック・ビットを隣接する強磁場記憶セルに割り当てるアドレス情報を作成するように適応されている。ＭＲＡＭ内のサイズの大きなセルを使用して入力ビットとチェック・ビットを格納する場合は、（自然の）ランダムなビット・フリップ［bit flip］が発生するはずがないという利点がある。したがって、外部の磁場によって発生したビット・フリップ（すなわち、改ざん）を明確に検出できるので、整合性管理の信頼性が向上する。
【００４５】
先行技術のＭＲＡＭではすべてのメモリ・セルがほとんど同じサイズであることに留意されたい。サイズという用語は、セルの層シーケンスに垂直な方向にあるＭＲＡＭセルの記憶層を横方向の長さ、および層シーケンスの方向にある記憶層の厚みを表す。記憶層は、セルの書き込みに使用する磁場との相互作用において、メモリの磁気モーメントの方向に並んだメモリ・セルの層である。記憶層サイズの異なる少なくとも２つのグループのメモリ・セルを備えるＭＲＡＭは、独立した発明と見なされる。
【００４６】
本発明の第６の態様により、不揮発性記憶セルを備えるメモリに少なくとも１つの入力ビットを備えるデータを書き込む方法が提供され、この方法は以下のステップを備えている。
【００４７】
ａ）前記入力ビットに割り当てられた少なくとも１つのチェック・ビットのビット値が前記入力ビットのビット値の補数をとるビット値であることを確認し、
ｂ）あらかじめ指定されたアルゴリズムに従って、入力ビットとチェック・ビットに不揮発性半導体メモリ・セルを割り当て、
ｃ）ステップｂ）に従って割り当てられた前記メモリの不揮発性記憶セルに前記少なくとも１つのチェック・ビットと前記入力ビットとを書き込む。
【００４８】
本発明のこの態様による方法を使用すると、データを不揮発性メモリに格納し、後でその整合性をチェックすることができる。例えば、本発明の方法をプログラマ・デバイスに適用できる。この方法の利点については、本発明の他の態様、特に書き込みコントローラに関する説明の文脈ですでに説明済みである。本方法は、好ましくは「読み出し専用」または「アクセス不可」として同様に分類された識別子または情報を格納するのに使用される。すでに詳細に説明したように、割り当てアルゴリズムは好ましくは前記入力ビットと前記チェック・ビットを隣接する記憶セルに割り当てるステップを備えている。本発明による方法の別の好ましい実施形態は、本発明の第１の態様による書き込みコントローラの説明で示されている。
【００４９】
本発明の第７の態様により、メモリの不揮発性記憶セルに格納された少なくとも１つの入力ビットを備えるデータの整合性をチェックする方法が提供され、この方法は以下のステップを備えている。
【００５０】
ａ）前記入力ビットに前記入力ビットの補数値として割り当てられたチェック・ビットの値を確認し、
ｂ）あらかじめ指定されたアルゴリズムに従って、入力ビットとチェック・ビットに不揮発性半導体メモリ・セルを割り当て、
ｃ）ステップｂ）に従って割り当てられた不揮発性記憶セルに前記チェック・ビットと前記入力ビットとを書き込み、
ｄ）割り当てられた記憶セルから前記入力ビットと前記チェック・ビットを読み出し、
ｅ）前記入力ビットと前記チェック・ビットとを比較し、
ｆ）前記入力ビットと前記チェック・ビットとが互いの補数になっているかどうかを示す信号を提供する。
【００５１】
この方法のステップｄ）〜ｆ）は、好ましい実施形態において繰り返し実行される。好ましくはステップｄ）〜ｆ）を実行する連続するサイクルの間に待機のステップがある。有効な待機時間は、メモリ・セルが置かれる環境やメモリへのアクセス頻度によって、分から日までの任意の時間的尺度で指定できる。
【００５２】
本発明の詳細な機能および利点は、以下の図面に関連して後で詳細に説明する。
【発明を実施するための最良の形態】
【００５３】
図１は、書き込みコントローラ１０の簡素化されたブロック図を示している。書き込みコントローラ１０は、入力１２を備えており、入力１２から入力データを受信する。入力１２は、チェック・ビット・ジェネレータ１４と、アドレス・ジェネレータ１６に接続されている。チェック・ビット・ジェネレータ１４は、２つの出力を備えており、出力の１つはアドレス・ジェネレータ１６に接続されている。チェック・ビット・ジェネレータ１４のもう１つの出力は、書き込みコントローラ１０からメモリ（図示せず）に接続する出力１８に接続されている。出力１８は、３つの出力レジスタ１８．１、１８．２および１８．３を備えている。出力レジスタ１８．１は、チェック・ビット・ジェネレータ１４に接続されている。出力レジスタ１８．２は、入力１２に接続されている。出力レジスタ１８．３は、アドレス・ジェネレータ１６に接続されている。出力１８の３つのレジスタへの分割は構成上の必須の特徴ではなく、ここでは説明の目的でのみ使用されている。
【００５４】
以下では、書き込みコントローラの動作が説明される。例として、受信された入力データは、集積回路の２進の識別子を表しており、この識別子は集積回路を提供されたＭＲＡＭメモリに格納されるものと仮定する。識別子は「読み出し専用」として分類される。
【００５５】
入力１２から受信された入力ビットは、チェック・ビット・ジェネレータ１４に渡される。チェック・ビット・ジェネレータ１４は、提供された各入力ビットのチェック・ビットを生成する。チェック・ビットは、チェック・ビット・ジェネレータ１４が備えるインバータ・ゲート［inverter gate］（図示せず）を使用して生成される。
【００５６】
チェック・ビット・ジェネレータ１４は、さらにアドレス・ジェネレータ１６に制御信号を提供する。制御信号は、アドレス・ジェネレータ１６をトリガーして入力ビットとチェック・ビットに隣接する２つのメモリ・セルを割り当てるアドレス情報を生成する。前述のように、別の実施形態は隣接する記憶セルを使用しないさまざまな割り当てアルゴリズムを備えている。使用された割り当てアルゴリズムは、アドレス・ジェネレータ１６に実装されている。アドレス情報は、２進のアドレス・コードの形を取る。アドレス・コードは、当業者に知られるように、書き込みコントローラとメモリの間に配置されるドライバ・ステージ（図示せず）によってワード・ラインとビット・ラインに適用される当該の電気信号に変換され、アドレス・コードに割り当てられたメモリ・セルを選択する。ドライバ・ステージは、書き込みコントローラの一部であってもよい。ＭＲＡＭにメモリ・セルが１行しかない場合、個々のセルをアドレス指定する容易な方法を選択するのは明白である。
【００５７】
入力ビットと割り当てられたチェック・ビットをメモリに書き込む場合は、出力レジスタ１８．１と１８．２の内容は出力レジスタ１８．３に含まれる個々のアドレス情報とともにメモリに渡される。もちろん、別の実施形態では、出力１８は多くの入力ビットとチェック・ビットを収集し、入力ビットとチェック・ビットのシーケンスをメモリにパラレルに渡すようにしてもよい。この場合、出力レジスタ領域はさらに広い。
【００５８】
説明した書き込みコントローラは、例えば、チップ・ダイをテストする前、テスト中、またはテスト終了後に識別子を設定するのに使用できる。識別子の設定は、例えばパッケージングで接続されないパッドを使用して行なうことができる。これで、識別子を変更できないパッケージングされたチップが得られる。この方法は、すべて特有の識別子を持つチップまたは同じ識別子を持つチップのバッチの作成に使用できる。
【００５９】
チップを製造後に識別子の改ざんを防止する別の方法は、いったんパッケージングされたチップを使用して識別子を設定し、続いて例えばライトワンス［write-once―１度書き込み―］レジスタや何らかのヒューズなどの形のロジックやトラップドア［trapdoor―データへの不法な侵入口―］を使用して追加の書き込みを阻止する。
【００６０】
識別子の侵害を防ぐさらに別の方法は、識別子を書き込むときにパスワード保護を使用すること、およびハード・コード・パスワードを使用することである。パスワードは、読み出しはできないが、特有の識別子を書き込もうとすると、チップでチェックされる。
【００６１】
図２は、書き込みコントローラ２０を簡素化されたブロック図で示している。読み出しコントローラ２０は入力２２を備えており、入力２２を経由してメモリ（図示せず）に接続される。入力２２は整合性管理ユニット２４に接続されている。読み出しコントローラ２０は、メモリに接続された出力を備えるアドレス・ジェネレータ２６をさらに備えている。
【００６２】
操作時に、アドレス・ジェネレータ２６は、入力ビットと割り当てられたチェック・ビットを備える割り当てられたてメモリ・セルのアドレス情報を提供する。アドレス・ジェネレータ２６には、特定のアドレス割り当てアルゴリズムが実装されている。説明のために、割り当てアルゴリズムは、ここでもメモリ・セルの同じ行の次の列のアドレスを持つ隣接する近傍など、隣接するメモリ・セルを使用する。
【００６３】
もちろん、読み出しコントローラのアドレス・ジェネレータでも、メモリにチェック・ビットを書き込む場合に使用する書き込みコントローラのアドレス・ジェネレータと同じ割り当てアルゴリズムを使用する必要がある。
【００６４】
アドレス情報は、読み出しコントローラ２０で生成されたｒｅａｄコマンドと組み合わせてメモリに提示される。要求された入力とチェック・ビットを受信すると、こうしたビットは入力２２から整合性管理ユニット２４に転送される。整合性管理ユニットは、入力ビットとチェック・ビットが互いの補数になっているかどうかを示す出力信号を作成するコンパレータ（図示せず）を備えている。
【００６５】
整合性管理ユニットの出力信号は、必要に応じて読み出しコントローラに接続されたステージによって処理できる。
【００６６】
書き込み／読み出し兼用のコントローラは、図１の書き込みコントローラと図２の読み出しコントローラの構造上の機能を唯一のデバイスに統合する。これは、入力１２の機能と整合性管理ユニット２４の出力の機能を備えるメモリ・クライアントへの第１のインターフェイスを備えている。これには、書き込みコントローラ１０の出力１８、読み出しコントローラ２０の入力２２、アドレス・ジェネレータ２６の出力の機能からなるメモリへの２番目のインターフェイスがある。書き込み／読み出し兼用コントローラでは、唯一のアドレス・ジェネレータが必要であることに留意されたい。
【００６７】
図３は、プログラマ３０を簡素化されたブロック図で示している。本発明で重要な機能［feature］のみが示されている。さらに、当業者に知られているように、プログラマはウエハーの個々のダイをテストするための自動ウエハー・ハンドラ、テスト・ピン、管理ユニットを備えていてもよい。
【００６８】
プログラマ３０は、本発明による書き込みコントローラを備えている。簡単にするために、書き込みコントローラ１０はプログラマ３０に実装されると想定されている。したがって、書き込みコントローラの構造上および機能上の説明は、図１に関する説明を参照されたい。
【００６９】
書き込みコントローラ１０は、コード・ジェネレータ３２に接続されている。コード・ジェネレータ３２は、書き込みコントローラ１０の入力１２に渡される特有のアドレスを生成する。書き込みコントローラ１０は、プログラマ３０の出力３４にさらに接続されている。
【００７０】
動作時に、プログラマは、テストされ、プログラミングされるチップのメモリに格納される特有の識別子を生成する。書き込みコントローラ１０はチェック・ビットを使用して識別子を拡張し、適切なアドレス情報を出力３４に提供し、出力はチップに配置されたメモリにＩＤを書き込む。プログラマが使用される特定の製造環境によるが、識別子はダイ・テスト・ステージでパッケージングされていないチップのパッドを使用してプログラミングされる。代替として、プログラミングはパッケージングされたチップ上で行なうことができる。
【００７１】
図５では、本発明によるソリッド・ステート・デバイスの１つの実施形態として、チップ４０の簡素化されたブロック図を示している。チップ４０は、集積回路４２、ＭＲＡＭ４４、簡略化のために読み出しコントローラ２０であるものと仮定された読み出しコントローラを備えている。集積回路４２の特定の構造と機能は、この文脈において重要ではない。集積回路４２は、外部のユニットに接続されていてもよい。ＭＲＡＭ４４は、例えばメモリ・セルの２次元配列として示されている。ここでは、チェック・ビットを伴う特有の識別子がプログラマ３０を使用してＭＲＡＭ４４に保存されているものとしてさらに想定する。
【００７２】
チップが動作すると、図２に関連して説明したように、読み出しコントローラ２０は格納された識別子の整合性をチェックする。読み出しコントローラ２０は、その出力信号を集積回路４２に提供する。読み出しコントローラ２０が情報を処理する方法の例として、読み出しコントローラ２０から提供された信号が、チェック・ビットと割り当てられた識別子のコード・ビットとが等しいことを示す場合に、集積回路は動作を停止する。
【００７３】
図６は、２つのメモリ・セル５０と５２を示しており、それぞれ矢印５２と５６を伴っている。矢印は、メモリ・セルの書き込みに使用される印加磁場に適合するメモリ・セル内のレイヤーの磁気モーメントの方向を表している。可能な２つの方向は、メモリ・セルに含まれる書き込みの磁場による層と他の磁気層について示されている。したがって、各方向は１つのビットで発生する可能性がある状態、上と下すなわち０と１を表すことができる。
【００７４】
図６〜１０は、それぞれ少なくとも１つの入力ビットを備えるデータを、不揮発性記憶セルを備えるメモリに書き込む本発明による方法のさまざまな実施形態を使用してＭＲＡＭに格納された２進コードを表すブロック図を示している。
【００７５】
図６は、格納されたコード・シーケンス［code sequence―符号列―］「１１１０１０００」を伴うＭＲＡＭ６０を示している。メモリ・セル６２には１つのチェック・ビットが用意されており、これに隣接するメモリ・セル６４に割り当てられている。その他のすべてのコード・ビットはチェック・ビットなしで格納されている。この例は、外部の強力な磁場に対するＭＲＡＭの脆弱性によって発生する問題を解決する。上または下のいずれかの方向にあるすべてのセルにこのような磁場が掛けられる。セル６２とセル６４の逆平行ペアの存在は、コード・シーケンスの整合性を示している。
【００７６】
図７は、格納されたコード・シーケンス「１００１」を伴うＭＲＡＭ７０を示している。各コード・ビットには、左側の隣接するメモリ・セルに割り当てられたチェック・ビットが存在する。この例では、局所化された改ざんの試みに対して格納されたコード・シーケンスの信頼性が向上する。
【００７７】
図８は、格納されたコード・シーケンス「０１００１１０」を伴うＭＲＡＭ８０を示している。図６の例と同様に、割り当てられたチェック・ビット８４を持つ唯一のコード・ビット８２が存在する。しかし、この例では割り当てられたチェック・ビットがコード・ビットの右側の隣接するセルに格納される。さらに、選択したコード・ビットとそれに割り当てられたチェック・ビットは、他のセルよりもサイズが大きいセルに格納される。このことによって、整合性管理ビットの堅牢性［robustness］が向上する。
【００７８】
図９は、格納されたコード・シーケンス「００１１０」を伴うＭＲＡＭ９０を示している。この例では、１つのコード・ビットを格納するのに３つのメモリ・セルが使用されている。各コード・ビットは、隣接する２つのチェック・ビットを備えている。この例はコード・ビットまたはチェック・ビットのどちらがひっくり返ったかを判断できないランダム・ビット・フリッピングにより生じた問題を解決する。２つの逆行するチェック・ビットの中間にコード・ビットを配置することで、どのビットがその方向をフリップしたかを確認できる。コード・ビットがその方向を変更した場合にのみ、格納されたコードの整合性が侵害される。
【００７９】
図１０は、さらに２次元配列のメモリ・セルにコード・シーケンス「０１１」を格納するＭＲＡＭ１００の例を示している。３つの行と３つの列にある９個のメモリ・セルのグループは、各ビットを格納するのに使用される。コード・ビットは、各グループの中央のメモリ・セルに格納されており、８個のメモリ・セルで囲まれており、このうちの３個のみがチェック・ビットとして使用される。その他のすべてのメモリ・セルは空で、上または下の任意の方向を示している。この例は、チェック・ビットが使用されていることを知っている人がコードを変更しようとする局所的な改ざんの試みの問題に対処している。任意の方向を示すセルの間に隠されたチェック・ビットの２次元パターンを使用することにより、使用されているチェック・ビットのパターンの検出を困難にする。このように本発明の整合性管理方法を使用することで、コード・ビットと割り当てられたチェック・ビットの操作を同時に保護することができる。
【００８０】
図１１は、メモリの不揮発性記憶セルに格納されたデータの整合性を管理する方法の好ましい実施形態の流れ図を示している。ステップＳ１０で、格納される入力ビットが受信される。ステップＳ１２で、ステップＳ１０で受信された入力ビットに対するチェック・ビットの値が確認される。チェック・ビットは、入力ビット値の補数をとる。ステップＳ１４で、前述のように割り当てアルゴリズムの１つを使用して、入力ビットとチェック・ビットにメモリ・セルが割り当てられる。ステップＳ１６で、入力ビットとチェック・ビットは割り当てられたメモリ・セルに格納される。ステップＳ１６の後、ステップＳ１８で整合性管理が始まる前に待機ステップ（図示せず）があり、このステップで入力ビットとチェック・ビットがメモリから読み出される。ステップＳ２０で、入力ビットとチェック・ビットが互いに比較される。ステップＳ２２で、入力ビットとチェック・ビットが等しいかどうかを示す出力信号が提供される。待機ステップＳ２４の後で、ステップＳ１８からステップＳ２２までの整合性管理が繰り返される。
【図面の簡単な説明】
【００８１】
【図１】本発明による書き込みコントローラの１つの好ましい実施形態を示す簡素化されたブロック図である。
【図２】本発明による読み出しコントローラの１つの好ましい実施形態を示す簡素化されたブロック図である。
【図３】本発明によるプログラマ・デバイスの１つの好ましい実施形態を示す簡素化されたブロック図である。
【図４】本発明によるソリッド・ステート・デバイスの１つの好ましい実施形態として、本発明による読み出しコントローラを備える集積回路を示す簡素化されたブロック図である。
【図５】磁気記憶セルに格納されたデジタル情報の表現を示す図である。
【図６】不揮発性記憶セルを備えるメモリに少なくとも１つの入力ビットを備えるデータを書き込む方法の第１の好ましい実施形態を使用してＭＲＡＭに格納された２進コードを表すブロック図である。
【図７】不揮発性記憶セルを備えるメモリに、少なくとも１つの入力ビットを備えるデータを書き込む方法の第２の好ましい実施形態を使用してＭＲＡＭに格納された２進コードを表すブロック図である。
【図８】不揮発性記憶セルを備えるメモリに少なくとも１つの入力ビットを備えるデータを書き込む方法の第３の好ましい実施形態を使用してサイズの異なる２つのグループのメモリ・セルを備えるＭＲＡＭに格納された２進コードを表すブロック図である。
【図９】不揮発性記憶セルを備えるメモリに少なくとも１つの入力ビットを備えるデータを書き込む方法の第４の好ましい実施形態を使用してＭＲＡＭに格納された２進コードを表すブロック図である。
【図１０】不揮発性記憶セルを備えるメモリに少なくとも１つの入力ビットを備えるデータを書き込む方法の第５の好ましい実施形態を使用してＭＲＡＭに格納された２進コードを表すブロック図である。
【図１１】メモリの不揮発性記憶セルに記憶されたデータの整合性を管理する方法の１つの好ましい実施形態を示す流れ図である。
【図１】
2006526833.tif 000003
【図２】
2006526833.tif 000004
【図３】
2006526833.tif 000005
【図４】
2006526833.tif 000006
【図５】
2006526833.tif 000007
【図６】
2006526833.tif 000008
【図７】
2006526833.tif 000009
【図８】
2006526833.tif 000010
【図９】
2006526833.tif 000011
【図１０】
2006526833.tif 000012
【図１１】
2006526833.tif 000013
【国際調査報告】
2006526833.tif 000014
2006526833.tif 000015
2006526833.tif 000016