(57)【特許請求の範囲】
【請求項１】
情報の記憶を可能とする記憶部を含む半導体集積回路装置であって、
上記記憶部は、それぞれ情報の記憶を可能とする複数のトランジスタが配列されて成るメモリマットと、
上記メモリマットからの情報読み出しが正常か否かを判定してエラー信号を形成するための第１異常検出回路と、を含み、
上記メモリマットは、上記メモリマットからの情報読み出しの際に、上記第１異常検出回路での判定に用いられる情報を出力可能な第１異常検出用ラインと第２異常検出用ラインとを含み、
上記第１異常検出用ラインには、上記第１異常検出用ラインを論理値”０”にするための第１トランジスタが結合され、上記第２異常検出力用ラインには、上記第２異常検出用ラインを論理値”１”にするための第２トランジスタが結合され、
上記メモリマットにおける複数ビット毎に上記第１異常検出用ライン又は上記第２異常検出用ラインが配置されて成る半導体集積回路装置。
【請求項２】
上記第１異常検出用ラインと上記第２異常検出用ラインとは、上記メモリマットの端部に配置された請求項１記載の半導体集積回路装置。
【請求項３】
上記第１異常検出回路は、上記第１異常検出用ラインから得られた信号の論理値が期待値通りであるか否かを判定するための第１判定回路と、
上記第２異常検出用ラインから得られた信号の論理値が期待値通りであるか否かを判定するための第２判定回路と、を含む請求項１記載の半導体集積回路装置。
【請求項４】
上記記憶部は、入力されたアドレス信号をデコードするための行デコーダと、
上記行デコーダの出力信号に基づいて、上記メモリマットに含まれるワード線を駆動するための第１ドライバと、
上記第１ドライバの入力側の論理レベルと出力側の論理レベルとを比較してエラー信号を形成するための第２異常検出回路と、を含む請求項１記載の半導体集積回路装置。
【請求項５】
上記記憶部は、上記記憶部における主要部の動作用電源電圧を形成するための電源回路と、
上記電源回路によって形成された動作用電源電圧を所定の基準電圧と比較してエラー信号を形成するための第３異常検出回路と、を含む請求項１記載の半導体集積回路装置。
【請求項６】
上記記憶部にアクセス可能なＣＰＵと、
上記エラー信号に基づいて、上記ＣＰＵの動作を制御可能なシステムコントローラと、を含む請求項１記載の半導体集積回路装置。
【請求項７】
情報の記憶を可能とするメモリ部を含む半導体集積回路装置であって、
上記メモリ部は、それぞれ情報の記憶を可能とする複数のトランジスタが配列されて成るメモリマットと、
上記メモリマットからの情報読み出しが正常か否かを判定してエラー信号を生成するための異常検出回路と、を有し、
上記メモリマットは、複数のビット線と、複数のワード線と、上記ビット線を選択するための列選択回路と、上記異常検出回路へ接続され、第１の論理値を得るための第１異常検出用ラインと、第１の論理値とは異なる第２の論理値を得るための第２異常検出用ラインとを含み、
上記第１異常検出用ラインと上記第２異常検出用ラインとは上記ビット線に対して並列に配置され、
上記第１異常検出用ライン及び第２異常検出用ラインは、上記メモリマットのリード毎に、上記列選択回路によって選択され、
上記第１異常検出用ラインには、上記ビット線と上記ワード線とに接続された複数の第１トランジスタが結合され、
上記第２異常検出用ラインには、上記ビット線に接続された複数の第２トランジスタが結合され、
上記複数単位のビット線毎に上記第１異常検出用ライン又は上記第２異常検出用ラインを配置した半導体集積回路装置。
【請求項８】
上記メモリ部は、上記メモリ部における主要部の動作用電源電圧を形成するための電源回路と、
上記電源回路によって形成された動作用電源電圧を所定の基準電圧と比較してエラー信号を形成するための電圧変動検出回路と、を含む請求項７記載の半導体集積回路装置。
【請求項９】
上記メモリ部は、ＥＥＰＲＯＭである請求項８記載の半導体集積回路装置。
【請求項１０】
上記第１トランジスタは、低電位側電源への配線が省略され、
上記第２トランジスタは、低電位側電源へ結合されている請求項９記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体集積回路装置、特に情報の記憶を可能とする記憶部を含む半導体集積回路装置における異常検出技術に関する。
【背景技術】
【０００２】
半導体集積回路装置の一例とされるマイクロコンピュータには、メモリエラーを引き起こす要因を排除する機能(異常電圧、異常周波数、異常温度等の検出器)、もしくはメモリエラー発生後のチップ誤動作を防止する機能(イリーガルアクセス検出、未定義命令検出等)が搭載される。メモリエラー対策としては、 ハードウェアによる対策と、ソフトウェアによる対策とを挙げることができる。
【０００３】
（１）ハードウェアによるメモリエラー対策
メモリエラーを未然に防ぐ対策として、異常電圧や異常電圧の印加や異常温度、レーザー照射等を検出す回路を設ける。また、命令フェッチ時にメモリエラーが発生した場合にチップの誤動作を防ぐ対策として、ＦＭＵ(Firewall Management Unit)によるメモリアクセスの監視、ＷＤＴ(Watch Dog Timer)によるプログラムの正常実行を監視する回路を設ける。さらに、命令コードが定義されていないコードである場合に検出する不当命令検出機能や、未定義アドレスへのアクセスを検出するアドレスエラー検出回路を設ける。
【０００４】
（２）ソフトウェアによるメモリエラー対策
メモリアクセスが正常に行われない場合、データ読み出し時にはそのデータが誤った値となってしまう。また、プログラム実行時の命令フェッチが正常に行われない場合は、命令コードの変化による様々なチップの誤動作が想定される。そのためソフトウェア対策として、暗号鍵のような重要なデータの読み出しの際にはチェックサム等読み出しデータの正当性の確認が推奨される。また、命令コードの変化による正規のプログラムフローからの逸脱を防止する対策や、プログラム内のアクセス領域を制限する対策等が推奨される。
【０００５】
尚、特許文献１には、セキュリティ機能を搭載した記憶装置及びその記憶装置が挿入可能なホスト機器及びその記憶装置を備えたホスト機器、特にフラッシュメモリチップ及びコントローラを有するメモリカード及びそのメモリカードが挿入可能な情報処理装置及びそのそのメモリカードを備えた情報処理装置におけるセキュリティ処理技術が記載されている。
【０００６】
【特許文献１】特開２００４−１０４５３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上記ハードウェアによるメモリエラー対策や、上記ソフトウェアによるメモリエラー対策について本願発明者が検討したところ、以下の課題が見いだされた。
【０００８】
（１）ハードウェアによるメモリエラー対策における課題
セキュリティを重視する分野に最適なマイクロコンピュータ（「セキュリティマイコン」と称される）には、メモリエラーを未然に防止するハードウェアや、メモリエラー発生後にチップ誤動作を防止するハードウェアが搭載されているが、現状では１００％防止できていない。例えば、レーザーによるアタックに対しては、検出器を搭載しても局所的な照射に対する検出は困難である。また、不当命令検出機能や未定義アドレス検出機能は、メモリエラーによってフェッチした命令やアドレスが定義されているものに改竄された場合は検出できず、誤った命令の実行や期待していないアドレスへのアクセスが実行されてしまう。
【０００９】
メモリのエラー対策としてパリティビットを用いる技術が知られている。パリティビットとは、例えば８ｂｉｔのデータに対し１ｂｉｔのパリティを計算し、合計９ｂｉｔとしてメモリに書込み、読み出し時にパリティチェックを行うものである。しかし、パリティチェックの場合、奇数ビットのデータ異常の検出は可能だが、偶数ビットのデータ異常は検出できない場合があるため、検出率が低い。
【００１０】
（２）ソフトウェアによるメモリエラー対策における課題
メモリエラー対策として各種ソフトウェア対策が推奨されている。しかし、ソフトウェアでの対策は実行パフォーマンスの低下やプログラム領域の増大、または、顧客のソフト開発負担が増大してしまう。また、ソフトウェアによるメモリエラー対策で誤動作が１００％防止できる保証は無い。
【００１１】
本発明の目的は、アタックに起因するメモリエラーの検出率を向上させるための技術を提供することにある。
【００１２】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１３】
本願において開示される発明のうち代表的なものについて簡単に説明すれば下記のとおりである。
【００１４】
すなわち、情報の記憶を可能とする記憶部を設ける。この記憶部は、メモリマットと、エラー信号を形成するための第１異常検出回路とを含む。上記メモリマットは、上記メモリマットからの情報読み出しの際に、上記第１異常検出回路での判定に用いられる情報を出力可能な第１異常検出用ラインと第２異常検出用ラインとを含む。上記第１異常検出用ラインには、上記第１異常検出用ラインを論理値”０”にするための第１メモリセルが結合され、上記第２異常検出力用ラインには、上記第２異常検出用ラインを論理値”１”にするための第２メモリセルが結合される。異常検出用ラインの論理値が正しく得られない場合にエラー信号をアサートすることで、メモリエラーの検出率の向上を図る。
【発明の効果】
【００１５】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記の通りである。
【００１６】
すなわち、本発明によれば、アタックに起因するメモリエラーの検出率を向上させることができる。
【発明を実施するための最良の形態】
【００１７】
１．代表的な実施の形態
先ず、本願において開示される発明の代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【００１８】
〔１〕本発明の代表的な実施の形態に係る半導体集積回路装置（１２０）は、情報の記憶を可能とする記憶部（１２３）を含む。そしてこの記憶部は、それぞれ情報の記憶を可能とする複数のメモリセルが配列されて成るメモリマット（３３）と、上記メモリマットからの情報読み出しが正常か否かを判定してエラー信号を形成するための第１異常検出回路（３６）とを含む。上記メモリマットは、上記メモリマットからの情報読み出しの際に、上記第１異常検出回路での判定に用いられる情報を出力可能な第１異常検出用ライン（ＲＬ０）と第２異常検出用ライン（ＲＬ１）とを含む。上記第１異常検出用ライン（ＲＬ０）には、上記第１異常検出用ラインを論理値”０”にするための第１メモリセルが結合され、上記第２異常検出力用ライン（ＲＬ１）には、上記第２異常検出用ラインを論理値”１”にするための第２メモリセルが結合される。
【００１９】
〔２〕上記第１異常検出用ラインと上記第２異常検出用ラインとは、上記メモリマットの端部に配置することができる。
【００２０】
〔３〕上記メモリマットにおける複数ビット毎に上記第１異常検出用ライン又は上記第２異常検出用ラインを配置することができる。
【００２１】
〔４〕上記第１異常検出回路は、上記第１異常検出用ラインから得られた信号の論理値が期待値通りであるか否かを判定するための第１判定回路（２５）と、上記第２異常検出用ラインから得られた信号の論理値が期待値通りであるか否かを判定するための第２判定回路（２７）とを含んで構成することができる。
【００２２】
〔５〕上記メモリ部には、入力されたアドレス信号をデコードするための行デコーダ（３１）と、上記行デコーダの出力信号に基づいて、上記メモリマットに含まれるワード線を駆動するための第１ドライバ（７１）と、上記第１ドライバの入力側の論理レベルと出力側の論理レベルとを比較してエラー信号を形成するための第２異常検出回路（８１，８２，８３）とを設けることができる。
【００２３】
〔６〕上記メモリ部は、上記メモリ部における主要部の動作用電源電圧を形成するための電源回路（１０２）と、上記電源回路によって形成された動作用電源電圧を所定の基準電圧と比較してエラー信号を形成するための第３異常検出回路（１１３，１１４）とを設けることができる。
【００２４】
〔７〕上記半導体集積回路装置には、さらに上記メモリ部にアクセス可能なＣＰＵ（１２５）と、上記エラー信号に基づいて、上記ＣＰＵの動作を制御可能なシステムコントローラ（１２４）とを設けることができる。
【００２５】
２．実施の形態の説明
次に、実施の形態について更に詳述する。
【００２６】
＜実施の形態１＞
図１２には、本発明にかかる半導体集積回路装置の一例とされるＩＣカード用マイクロコンピュータが示される。
【００２７】
図１２に示されるＩＣカード用マイクロコンピュータ１２０は、特に制限されないが、ポート（ＰＯＲＴ）１２２、メモリ１２３、システムコントローラ１２４、ＣＰＵ（中央処理装置）１２５、モジュール１２６，１２７，１２８を含み、それらが、バス１２９によって結合されている。このＩＣカード用マイクロコンピュータ１２０は、特に制限されないが、公知の半導体集積回路製造技術により、単結晶シリコン基板などの一つの半導体基板に形成される。
【００２８】
ＣＰＵ１２５は、予め設定されたプログラムを実行することによって所定の演算処理を行う。メモリ１２３は、上記ＣＰＵ１２５で実行されるプログラムが格納されるマスクＲＯＭ（Read Only Memory）や、ＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）などとされる。図示はされないが、上記ＣＰＵのワークエリアとして用いられるＲＡＭ（Random Access Memory）を含んでいてもよい。このメモリ１２３でメモリエラーが検出された場合、そのエラー検出結果（ＥＲＲ）がシステムコントローラ１２４に伝達されるようになっている。ポート１２２にはリセット端子１２１が結合され、このリセット端子１２１が例えばローレベルにされると、ポート１２２を介して端子リセット信号ＲＳＴ１がアサートされる。システムコントローラ１２４は、内部リセット信号ＲＳＴ２や、割り込み信号であるＮＭＩ（Non-Maskable Interrupt）信号を生成する。内部リセット信号ＲＳＴ２は、上記メモリ１２３、ＣＰＵ１２５、及び上記モジュール１２６〜１２８に供給される。ＮＭＩ信号は上記ＣＰＵ１２５に供給される。
【００２９】
メモリエラー検出時は何らかの要因によりアタックが実施されていることが想定されるため、そのような場合は直ちに現状の処理を停止し、チップ動作を保護する必要がある。そこで、メモリエラー検出時には直ちにシステムコントローラ１２４によって内部リセット信号がアサートされることによってシステムがリセット状態に遷移され、以後の処理が停止される。尚、ＣＰＵ１２５に対してＮＭＩによる割り込みを発生させて、所定の割り込み処理に遷移させることで、チップ動作を保護するようにしても良い。システムコントローラ１２４によって内部リセット信号がアサートされた場合、その状態（リセット状態）が保持される。システム動作を再開させるためには、リセット端子１２１からのリセット指示あるいは、システムの電源再投入によるイニシャライズが必要となる。
【００３０】
次に各部の詳細な構成について説明する。
【００３１】
図１には、上記メモリ１２３の構成例が示される。
【００３２】
図１に示されるように上記メモリ１２３は、行デコーダ３１、列デコーダ３２、列選択回路３４、センスアンプ回路３５、及びメモリマット３３を含む。メモリマット３３は、複数のワード線ＷＬとそれに交差するように配置された複数のビット線とを含む。ビット線は、メモリマット３３の１バイト（ｂｙｔｅ）毎に８本設けられる。行デコーダ３１は、入力されたアドレス信号をデコードして、上記複数のワード線ＷＬから１本のワード線を選択するための選択信号を形成する。列デコーダ３２は、入力されたアドレス信号をデコードして列選択信号を形成する。列選択回路３４は、上記列選択信号に基づいてビット線を選択する。選択されたビット線の信号は、センスアンプ回路３５で増幅されてから、出力回路３８を介してバス１２９に出力される（ＯＵＴ）。また、異常検出回路３６が設けられ、この異常検出回路３６は、上記メモリマットからの情報読み出しが正常か否かを判定してエラー信号ＥＲＲを形成する。上記メモリマットからの情報読み出しが正常で無い場合、エラー信号ＥＲＲがアサートされる。さらに、コントローラ３７が設けられ、このコントローラ３７はこのメモリ１２３の全体的な動作制御を司る。
【００３３】
上記メモリマット３３には、通常のビット線とは別に、２本の異常検出用ラインＲＬ０，ＲＬ１が設けられる。この２本の異常検出用ラインＲＬ０，ＲＬ１は、図１において右側端部に配置される。異常検出用ラインＲＬ０は、論理値“０”異常検出のために設けられ、論理値“０”が得られるようになっている。異常検出用ラインＲＬ１は、論理値“１”の異常検出のために設けられ、論理値“１”が得られるようになっている。メモリ１２３のリード動作時には必ずこの異常検出用ラインＲＬ０，ＲＬ１の信号が列選択回路３４によって選択され、その論理値が異常検出回路３６で判断されることで異常検出が可能とされる。異常検出用ラインＲＬ０の論理値“０”、及び異常検出用ラインＲＬ１の論理値“１”がそれぞれ正しく得られれば、メモリ１２３は正常動作していると判断される。しかし、異常検出用ラインＲＬ０の論理値“０”、又は検出ラインＲＬ１の論理値“１”が正しく得られない場合には、異常動作と判断され、エラー信号ＥＲＲがアサートされる。
【００３４】
ここで、図１に示されるように異常検出用ラインＲＬ０，ＲＬ１をメモリマット３３の端部に配置する構成では、メモリマット３３全体に影響を及ぼすようなアタック(異常電圧、異常周波数印加や異常温度での動作)には有効である。しかし、レーザー照射等、メモリマット上の一部領域の誤動作を引き起こすような局所的なアタックに対しては、それを検出できないことが考えられる。そのため、局所的なアタックに対応するには、図２に示されるように、メモリマット３３の端部の異常検出用ラインＲＬ０，ＲＬ１とは別に、メモリマット３３の数ビット毎、例えば１バイト（ｂｙｔｅ）毎に、異常検出用ラインＲＬ０，ＲＬ１を配置するのが望ましい。このようにすれば、メモリマット３３において多数の異常検出用ラインＲＬ０，ＲＬ１が密に配置されるため、メモリマット３３の局所的なアタックに対しても十分に対応することができる。
【００３５】
尚、図２に示されるようにメモリマット３３において異常検出用ラインＲＬ０，ＲＬ１が密に配置されると、その分だけメモリマット３３の面積や消費電流が増加してしまうため、求めるセキュリティのレベルやメモリの特性に応じて異常検出用ラインＲＬ０，ＲＬ１の配置本数を決定するのが望ましい。メモリの特性とは、例えばアタックによるリードデータの変化が論理値“０”から論理値“１”もしくはそれとは逆の論理値“１”から論理値“０”のどちらか一方しか発生しないことを指し、このようなことが明かである場合には、配置する異常検出用ラインは論理値“０”又は論理値“１”の片方だけで十分となる。例えば、メモリマット３３の端部の異常検出用ラインＲＬ０，ＲＬ１はそのまま設け、メモリマット３３の数ビット毎には、異常検出用ラインＲＬ０，ＲＬ１の何れか一方のみを設ける構成が効果的と考えられる。例えば、電位保持状態が“１”であるメモリセルにレーザーを照射した場合、本来ならばビット線をディスチャージしないはずが誤動作によりディスチャージしてしまうとリードデータは“１”から“０”に変化してしまう。レーザー照射によるデータ化けがこの“０”化けメインである場合はRL１をRL０の配置本数に比較し、より多数設けることにより、レーザー照射によるアタック検出効率を向上させることが可能となる。逆に、電位保持状態が“０”であるメモリセルの“１”化け（ディスチャージするはずが、ディスチャージされない）がデータ化けのメインであるならば、RL０をより多数設けることが有効である。
【００３６】
次に、上記異常検出用ラインＲＬ０，ＲＬ１の形成について説明する。
【００３７】
メモリ１２３がマスクＲＯＭとされる場合、異常検出用ラインＲＬ０，ＲＬ１はインプラ方式やビア方式によって形成することができる。
【００３８】
例えばインプラ方式の場合、図３（Ａ）に示されるように、異常検出用ラインＲＬ０に結合されている全てのメモリセルＭＣに対してはイオン注入により、論理値“０”の書込みを行い、異常検出用ラインＲＬ１に結合されている全てのメモリセルＭＣに対してはイオン非注入により、論理値“１”の書込みを行えば良い。また、ビア方式の場合、図３（Ｂ）に示されるように、異常検出用ラインＲＬ０に結合されている全てのメモリセルＭＣに対しては低電位側電源ＶＳＳラインに結合させることにより、論理値“０”の書込みを行い、異常検出用ラインＲＬ１に結合されている全てのメモリセルＭＣに対しては低電位側電源ＶＳＳラインへの配線を省略することにより、論理値“１”の書込みを行えば良い。何れの場合においても、データ保持の対象となる通常のビット線ＢＬは、それぞれ異常検出用ラインとワード線が共通とされ、各メモリセルMCにおいては、“０”または“１”の任意のデータを保持可能に構成される。
【００３９】
メモリ１２３がＥＥＰＲＯＭとされる場合に、図４に示されるように、異常検出用ラインＲＬ０は、それに結合される全てのメモリセルＭＣに対して論理値“０”の書込みを行えば良く、また、異常検出用ラインＲＬ１は、それに結合される全てのメモリセルＭＣを消去済のまま（論理値“１”）とすれば良い。図示はしないが、図３と同様に、図４における通常のビット線は、それぞれ異常検出用ラインとワード線が共通とされ、各メモリセルMCにおいては、“０”または“１”の任意のデータを保持可能に構成される。
【００４０】
図５には、図１及び図２における異常検出回路３６及びその周辺のさらに詳細な構成が示される。
【００４１】
図５に示されるように、１本の異常検出用ラインＲＬ０毎に、トランスファゲート３０１とインバータ３０２が設けられる。トランスファゲート３０１はｐチャネル型ＭＯＳトランジスタとｎチャネル型ＭＯＳトランジスタとが並列接続されて成る。トランスファゲート３０１は列デコーダ３２からの列選択信号ＳＥＬによってオンオフ制御される。トランスファゲート３０１を構成するｐチャネル型ＭＯＳトランジスタとｎチャネル型ＭＯＳトランジスタとを同時にオン又はオフさせるためにインバータ３０２によって列選択信号ＳＥＬの論理反転が行われる。上記トランスファゲート３０１とインバータ３０２とは、図２における列選択回路３４の一部とされる。そして、リード信号ＲＥＤによって動作制御されるｎチャネル型ＭＯＳトランジスタ２４が設けられ、上記トランスファゲート３０１と上記ｎチャネル型ＭＯＳトランジスタ２４との間の信号伝達ラインを、プリチャージ信号ＣＨＧに応じて高電位側電源Ｖｄｄレベルにプリチャージするためのｐチャネル型ＭＯＳトランジスタ２３が設けられる。上記プリチャージ信号ＣＨＧや上記リード信号ＲＥＤはコントローラ３７によって生成される。ｎチャネル型ＭＯＳトランジスタ２４を設け、このｎチャネル型ＭＯＳトランジスタ２４を上記リード信号ＲＥＤによって動作制御するのは、異常検出はリード動作時のみ行えば良いからである。センスアンプＳＡは、上記ｎチャネル型ＭＯＳトランジスタ２４を介して伝達された信号を増幅するもので、図２に示されるセンスアンプ回路３５の一部とされる。上記センスアンプＳＡの出力信号は異常検出回路３６に伝達される。異常検出回路３６は、オア回路２５，２６、ナンド回路２７、及びフリップフロップ回路（ＦＦ）２８とを含む。上記オア回路２５における一つの入力端子に上記センスアンプＳＡの出力信号が伝達される。上記オア回路２５における他の入力端子には、他の異常検出用ラインＲＬ０に対応するセンスアンプの出力信号が伝達される。つまり、オア回路２５では、メモリマット３３における全ての異常検出用ラインＲＬ０に対応するセンスアンプの出力信号のオア論理が求められることで、入力信号の論理値が期待値通りであるか否かの判定が行われる。例えばメモリマット３３において複数配置された全ての異常検出用ラインＲＬ０に対応するセンスアンプの出力信号の全てがローレベルとされる場合には、それは期待値通りであり、オア回路２５の出力信号はローレベルとされる。しかし、メモリマット３３に対するアタックに起因して、メモリマット３３における全ての異常検出用ラインＲＬ０のうちの少なくとも１本から論理値“０”の読み出しができない場合には、それは期待値と異なるため、オア回路２５の出力信号はハイレベルとされる。オア回路２５の出力は、フリップフロップ回路２８のセット端子Ｓに伝達されて、このフリップフロップ回路２８に保持される。オア回路２５の出力は通常ローレベルであるが、オア回路２５の出力がハイレベルの場合、フリップフロップ回路２８によって、エラー信号ＥＲＲがハイレベルにアサートされる。尚、フリップフロップ回路２８はリセット端子Ｒを有し、このリセット端子Ｒに供給されるリセット信号をアサートすることによって、フリップフロップ回路２８を初期化することができる。
【００４２】
図５では省略されているが、異常検出用ラインＲＬ１に対応する回路は、異常検出用ラインＲＬ０に対応する回路と同様に構成することができる。ただし、全ての異常検出用ラインＲＬ１に対応するセンスアンプＳＡの出力信号は、ナンド回路２７に伝達され、そこでナンド論理が得られることで、入力信号の論理値が期待値通りであるか否かの判定が行われる。この場合、メモリマット３３に対するアタックに起因して、メモリマット３３における全ての異常検出用ラインＲＬ１のうちの少なくとも１本から論理値“１”の読み出しができない場合には、ナンド回路２７の出力信号はハイレベルとされ、それがオア回路２６介してフリップフロップ回路２８に保持され、エラー信号ＥＲＲがハイレベルにアサートされる。
【００４３】
次に、異常検出用ラインＲＬ０，ＲＬ１の検出感度を向上させるための技術について説明する。
【００４４】
異常検出用ラインの構成を通常のメモリ領域と同じ構成とした場合、プロセスばらつきやアタックによる影響の偏りによって、異常検出用ラインの論理値は正常にもかかわらず、通常のデータ記憶領域にエラーが発生することも考えられる。そのため、作りこみによって異常検出用ラインの特性をあらかじめ悪い（エラーが起こりやすい）状態にすることが考えられる。例えば、図６に示されるように、メモリセルを構成するＭＯＳトランジスタの駆動能力を調整することにより、異常検出用ラインＲＬ０，ＲＬ１のプリチャージ能力をメモリマット３３における任意のデータを保持するビット線ＢＬのプリチャージ能力よりも低くすると良い。また、ビット線ＢＬに対応するプリチャージ用ＭＯＳトランジスタ６１や、異常検出用ラインＲＬ０，ＲＬ１に対応するプリチャージ用ＭＯＳトランジスタ２３の駆動能力を調整することにより、異常検出用ラインＲＬ０，ＲＬ１に結合されたメモリセルＭＣのディスチャージ能力をメモリマット３３におけるビット線ＢＬに結合されたメモリセルＭＣのディスチャージ能力よりも低くすると良い。このようにすれば、プロセスばらつきやアタックによる影響の偏りにかかわらず、適切な異常検出を行うことができる。
【００４５】
上記例によれば、以下の作用効果を得ることができる。
【００４６】
（１）メモリマット３３の右側端部には、通常のビット線とは別に、２本の異常検出用ラインＲＬ０，ＲＬ１が設けられる。異常検出用ラインＲＬ０は、論理値“０”異常検出のために設けられ、異常検出用ラインＲＬ１は、論理値“１”の異常検出のために設けられる。メモリ１２３のリード動作時には必ずこの異常検出用ラインＲＬ０，ＲＬ１の信号が列選択回路３４によって選択され、その論理値が異常検出回路３６で判断されることで異常検出が行われる。異常検出用ラインＲＬ０の論理値“０”、及び異常検出用ラインＲＬ１の論理値“１”がそれぞれ正しく得られれば、メモリ１２３は正常動作していると判断される。しかし、異常検出用ラインＲＬ０の論理値“０”、又は検出ラインＲＬ１の論理値“１”が正しく得られない場合には異常とされ、エラー信号ＥＲＲがアサートされる。これにより、アタックに起因するメモリエラーの検出率の向上を図ることができる。
【００４７】
（２）メモリマット３３の端部の異常検出用ラインＲＬ０，ＲＬ１とは別に、メモリマット３３の数ビット毎、例えば１バイト（ｂｙｔｅ）毎に、異常検出用ラインＲＬ０，ＲＬ１を配置する。このようにすれば、メモリマット３３において多数の異常検出用ラインＲＬ０，ＲＬ１が密に配置されるため、メモリマット３３の局所的なアタックに対しても十分に対応することができるので、メモリエラーの検出率をさらに向上させることができる。
【００４８】
（３）メモリマット３３において異常検出用ラインＲＬ０，ＲＬ１が密に配置されると、その分だけメモリマット３３の面積や消費電流が増加してしまうため、求めるセキュリティのレベルやメモリの特性に応じて異常検出用ラインＲＬ０，ＲＬ１の配置本数を決定するのが望ましい。メモリの特性とは、例えばアタックによるリードデータの変化が論理値“０”から論理値“１”もしくはそれとは逆の論理値“１”から論理値“０”のどちらか一方しか発生しないことを指し、このようなことが明かである場合には、配置する異常検出用ラインは論理値“０”又は論理値“１”の片方だけで十分となる。例えば、メモリマット３３の端部の異常検出用ラインＲＬ０，ＲＬ１はそのまま設け、メモリマット３３の数ビット毎には、異常検出用ラインＲＬ０，ＲＬ１の何れか一方のみを設ける構成が効果的と考えられる。
【００４９】
（４）メモリセルを構成するＭＯＳトランジスタの駆動能力を調整することにより、異常検出用ラインＲＬ０，ＲＬ１のプリチャージ能力をメモリマット３３におけるビット線ＢＬのプリチャージ能力よりも低くする。また、ビット線ＢＬに対応するプリチャージ用ＭＯＳトランジスタ６１や、異常検出用ラインＲＬ０，ＲＬ１に対応するプリチャージ用ＭＯＳトランジスタ２３の駆動能力を調整することにより、異常検出用ラインＲＬ０，ＲＬ１に結合されたメモリセルＭＣのディスチャージ能力をメモリマット３３におけるビット線ＢＬに結合されたメモリセルＭＣのディスチャージ能力よりも低くする。それにより、プロセスばらつきやアタックによる影響の偏りにかかわらず、適切な異常検出を行うことができるので、メモリエラーの検出率を向上させることができる。
【００５０】
＜実施の形態２＞
実施の形態１では、メモリマット部におけるアタック対策について説明したが、実施の形態２では行デコーダにおけるアタック対策について説明する。
【００５１】
レーザー照射により行デコーダ３１が誤動作し、メモリエラーを生ずることが本願発明者によって確認されている。誤動作の発生箇所は、図７に示されるように、ワード線ＷＬを選択レベルに駆動するためのドライバ部と推定され、ドライバ部のエラーにより、非選択であるはずのワード線が選択状態になっていると考えられる。例えばアドレスのデコード結果によりワード線ＷＬ−Aが選択されている状態でも、ワード線ＷＬ−Ａに対応するメモリセルは接続されていないため、ビット線ＢＬのレベルはハイ（Ｈ）レベルのままで変化しない。しかし、レーザー照射等のアタックによりドライバが誤動作した場合には、非選択であるはずのワード線ＷＬ−Ｂが選択レベルに駆動される可能性がある。このとき、ワード線ＷＬ−Ｂに結合されているメモリセルによってビット線ＢＬがディスチャージされるため、ビット線ＢＬはハイレベルからローレベルに変化してしまい、読み出しデータの論理値が期待値と異なるものとなってしまう。
【００５２】
そこで、図８に示されるように、各ドライバ７１毎に、入力側論理と出力側論理とのモニタを可能とするモニタ回路８１を搭載する。このモニタ回路８１は、対応するドライバ７１の入力側論理と出力側論理とを比較するための排他的論理和回路によって構成される。ドライバ７１の入力側論理と出力側論理とが異なる場合には正常であり、ドライバ７１の入力側論理と出力側論理とが一致する場合には異常である。全てのモニタ回路８１の出力信号は、オア回路８２を介して後段のフリップフロップ回路８３に伝達され、このフリップフロップ回路８３によってエラー信号ＥＲＲが形成されるようになっている。ドライバ７１の入力側論理と出力側論理とが一致する場合、当該ドライバ７１に対応するモニタ回路８１の出力信号がハイレベルになり、それがオア回路８２を介してフリップフロップ回路８３に伝達されると、このフリップフロップ回路８３によりエラー信号ＥＲＲがアサートされる。
【００５３】
上記の構成によれば、上記モニタ回路８１によって、対応するドライバ７１の力側論理と出力側論理とが一致するか否かを判別することで、非選択ワード線がレーザーによって選択レベルになった場合のみならず、選択ワード線がレーザーによって逆に非選択になった場合も、エラー検出することができる。
【００５４】
図９には、上記モニタ回路８１の別の構成例が示される。
【００５５】
図９に示されるモニタ回路８１は、二つのｎチャネル型ＭＯＳトランジスタ９１，９２が直列接続されて成る。ｎチャネル型ＭＯＳトランジスタ９１のゲート電極は、対応するドライバ７１の入力端子に結合され、ｎチャネル型ＭＯＳトランジスタ９２のゲート電極は対応するドライバ７１の出力端子に結合される。ｎチャネル型ＭＯＳトランジスタ９１のソース電極は低電位側電源Ｖｓｓに結合され、ｎチャネル型ＭＯＳトランジスタ９２のドレイン電極は、プルアップ抵抗Ｒ１を介して高電位側電源Ｖｄｄに結合されるとともに、インバータ９３を介してフリップフロップ回路８３に結合される。かかる構成において、ドライバ７１の入力側論理と出力側論理とが一致する場合、当該ドライバ７１に対応するモニタ回路８１において、二つのｎチャネル型ＭＯＳトランジスタ９１，９２の双方が導通されることにより、インバータ９３の入力端子側は、蓄積電荷が引き抜かれてハイ（Ｈ）レベルからロー（Ｌ）レベルに遷移される。これにより、インバータ９３の出力がローレベルからハイレベルに遷移され、フリップフロップ回路８３によってエラー信号ＥＲＲがアサートされる。
【００５６】
尚、上記の回路構成では、非選択ワード線の誤選択状態しか検出することができないが、図８に示される構成に比べて、モニタ回路８１の回路規模の削減が可能である。
【００５７】
以上、行デコーダの異常を検出する方式について説明したが、列デコーダの誤動作検出も同様の方式で対応可能であると考えられる。
【００５８】
＜実施の形態３＞
メモリ１２３においては、読み出し時間短縮などの性能向上のために、内部で専用の電源電圧が生成される場合がある。例えば、ビット線選択のためのトランスファゲート３０１を導通させるために、電源回路１０２において、高電位側電源Ｖｄｄよりも高レベルの電圧Ｖｄｄ＿ｅが生成される。電圧Ｖｄｄ＿ｅは、列デコーダ３２からの選択信号ＳＥＬに基づいてドライバ１０１の動作用電源電圧とされる。ドライバ１０１から出力されるハイレベルの電圧レベルはＶｄｄ＿ｅレベルとされ、それは高電位側電源Ｖｄｄよりも高レベルとされるため、導通されたトランスファゲート３０１のオン抵抗を小さく抑えることができる。トランスファゲート３０１のオン抵抗を小さく抑えることにより、ビット線ＢＬのチャージや、ディスチャージを高速化している。かかる構成において、電源回路１０２へのレーザー照射によりその出力電圧レベルが変動することが、本願発明者によって確認されている。また、その電圧変動によって、トランスファゲート３０１が導通されない場合があり、かかる場合には、ビット線ＢＬがディスチャージされないため、データを正しく読み出すことができなくなる。
【００５９】
そこで、電源回路１０２において、電圧変動を検出可能な検出器を設けることで、メモリエラー検出率の向上を図ることができる。図１１には、その場合の電源回路１０２の構成例が示される。
【００６０】
図１１に示される電源回路１０２は、基準電圧Ｖｒｅｆを生成する基準電圧生成部１１１と、電源電圧Ｖｄｄ＿ｅを生成する電源電圧生成部１１２と、上記基準電圧Ｖｒｅｆと電源電圧Ｖｄｄ＿ｅとの比較を行うコンパレータ１１３と、このコンパレータ１１３の出力信号に基づいてエラー信号ＥＲＲを形成するフリップフロップ回路１１４とを含む。基準電圧Ｖｒｅｆを生成し、電源電圧Ｖｄｄ＿ｅの変動が、基準電圧Ｖｒｅｆを超えた場合はコンパレータ１１３の出力がハイレベルとなり、それがフリップフロップ回路１１４に保持されることで、エラー信号ＥＲＲがアサートされる。このとき基準電圧Ｖｒｅｆは、実際の読み出しエラーが発生する電圧変動より早く検出可能なレベルに設定するべきである。また、基準電圧Ｖｒｅｆを生成する基準電圧生成部１１１は、局所的なアタック（レーザー照射等）において、電源電圧生成部１１２と同時に影響を受けることにより、電圧変動の検出が不能になることを防止するため、基準電圧Ｖｒｅｆが変動しないように、電源電圧生成部１１２との間隔を十分に確保すると良い。さらに、図１１において５０で示されるように、アタックに起因する電圧変動を、基準電圧Ｖｒｅｆと電源電圧Ｖｄｄ＿ｅとで互いに逆位相にすることで、コンパレータ１１３での比較をより高感度で行うことができる。
【００６１】
以上本発明者によってなされた発明を具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【図面の簡単な説明】
【００６２】
【図１】本発明にかかる半導体集積回路装置の一例とされるＩＣカード用マイクロコンピュータにおけるメモリの構成例ブロック図である。
【図２】上記メモリの別の構成例ブロック図である。
【図３】上記メモリに含まれるメモリマットにおける主要部の構成例回路図である。
【図４】上記メモリマットにおける主要部の別の構成例回路図である。
【図５】上記メモリに含まれる異常検出回路及びその周辺の構成例回路図である。
【図６】上記メモリマットにおける主要部の別の構成例回路図である。
【図７】上記メモリにおける主要部の構成例ブロック図である。
【図８】上記メモリにおける主要部の別の構成例ブロック図である。
【図９】上記メモリにおける主要部の別の構成例ブロック図である。
【図１０】上記メモリにおける主要部の別の構成例ブロック図である。
【図１１】図１０に示される電源回路の構成例ブロック図である。
【図１２】上記ＩＣカード用マイクロコンピュータの全体的な構成例ブロック図である。
【符号の説明】
【００６３】
３１  行デコーダ
３２  列デコーダ
３３  メモリマット
３４  列選択回路
３５  センスアンプ回路
３６  異常検出回路
３７  コントローラ
３８  出力回路
７１  ドライバ
８１  モニタ回路
８３  フリップフロップ回路
１１１  基準電圧生成部
１１２  電源電圧生成部
１１３  コンパレータ
１１４  フリップフロップ回路
１２１  リセット端子
１２２  ポート
１２３  メモリ
１２４  システムコントローラ
１２５  ＣＰＵ
１２６〜１２８  モジュール
ＲＬ０，ＲＬ１  異常検出用ライン
ＷＬ  ワード線
ＢＬ  ビット線
【図１】
0005179923.tif 000002
【図２】
0005179923.tif 000003
【図３】
0005179923.tif 000004
【図４】
0005179923.tif 000005
【図５】
0005179923.tif 000006
【図６】
0005179923.tif 000007
【図７】
0005179923.tif 000008
【図８】
0005179923.tif 000009
【図９】
0005179923.tif 000010
【図１０】
0005179923.tif 000011
【図１１】
0005179923.tif 000012
【図１２】
0005179923.tif 000013