(57)【要約】【課題】不揮発性メモリの動作特性及び寿命を劣化させることなく、不揮発性メモリに物理的改竄がなされているか否かを容易に判定する。【解決手段】半導体装置において、セルフテスト回路（２０）は、不揮発性メモリ（１０）における専用領域（１０１）における所定のアドレスにデータを書き込むライト部（２０１）と、所定のアドレスから書き込まれたデータを読み出すリード部（２０２）と、書き込まれたデータと読み出されたデータとの異同を判定するベリファイ部（２０４）と、ベリファイ部（２０４）の判定結果に基づいて、不揮発性メモリ（１０）の健全性を判定する判定部（２０５）とを備えている。判定部（２０５）は、書き込まれたデータと読み出されたデータとが一致する場合、不揮発性メモリ（１０）は健全であると判定する一方、一致しない場合、不揮発性メモリ（１０）は不健全であると判定する。【選択図】図１
2007293593.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリのセルフテスト回路であって、
前記不揮発性メモリにおける専用領域における所定のアドレスにデータを書き込むライト部と、
前記所定のアドレスから前記書き込まれたデータを読み出すリード部と、
前記書き込まれたデータと前記読み出されたデータとの異同を判定するベリファイ部と、
前記ベリファイ部の判定結果に基づいて、前記書き込まれたデータと前記読み出されたデータとが一致する場合、前記不揮発性メモリは健全であると判定する一方、前記書き込まれたデータと前記読み出されたデータとが一致しない場合、前記不揮発性メモリは不健全であると判定する判定部とを備えた
ことを特徴とするメモリセルフテスト回路。
【請求項２】
請求項１に記載のメモリセルフテスト回路において、
前記不揮発性メモリは、複数のメモリバンクから構成され、かつ、当該メモリバンクごとに専用領域を有するものであり、
前記ライト部は、前記メモリバンクごとに、前記専用領域における所定のアドレスにデータを書き込むものであり、
前記リード部は、前記メモリバンクごとに、前記所定のアドレスから前記書き込まれたデータを読み出すものであり、
前記ベリファイ部は、前記メモリバンクごとに、前記書き込まれたデータと前記読み出されたデータとの異同を判定するものであり、
前記判定部は、前記複数のメモリバンクのすべてについて、前記書き込まれたデータと前記読み出されたデータとが一致する場合、前記不揮発性メモリは健全であると判定する一方、前記書き込まれたデータと前記読み出されたデータとが一致しない場合、前記不揮発性メモリは不健全であると判定するものである
ことを特徴とするメモリセルフテスト回路。
【請求項３】
請求項１に記載のメモリセルフテスト回路において、
前記専用領域における複数のアドレスの中からいずれか一つを選択する選択部を備え、
前記ライト部は、前記選択部によって選択されたアドレスにデータを書き込むものであり、
前記リード部は、前記選択部によって選択されたアドレスから前記書き込まれたデータを読み出すものである
ことを特徴とするメモリセルフテスト回路。
【請求項４】
請求項３に記載のメモリセルフテスト回路において、
前記選択部は、前記いずれか一つのアドレスを無作為に選択するものである
ことを特徴とするメモリセルフテスト回路。
【請求項５】
請求項３に記載のメモリセルフテスト回路において、
前記選択部は、前記いずれか一つのアドレスを順番に選択するものである
ことを特徴とするメモリセルフテスト回路。
【請求項６】
不揮発性メモリを備えた半導体装置であって、
前記不揮発性メモリの健全性を確認するメモリセルフテスト回路を備え、
前記メモリセルフテスト回路は、
前記不揮発性メモリにおける専用領域における所定のアドレスにデータを書き込むライト部と、
前記所定のアドレスから前記書き込まれたデータを読み出すリード部と、
前記書き込まれたデータと前記読み出されたデータとの異同を判定するベリファイ部と、
前記ベリファイ部の判定結果に基づいて、前記書き込まれたデータと前記読み出されたデータとが一致する場合、前記不揮発性メモリは健全であると判定する一方、前記書き込まれたデータと前記読み出されたデータとが一致しない場合、前記不揮発性メモリは不健全であると判定する判定部とを有する
ことを特徴とする半導体装置。
【請求項７】
請求項６に記載の半導体装置において、
当該半導体装置に電源が投入されたときリセット信号を出力するパワーオンリセット回路を備え、
前記メモリセルフテスト回路は、前記リセット信号を受けたとき、前記不揮発性メモリの健全性を確認する
ことを特徴とする半導体装置。
【請求項８】
請求項６に記載の半導体装置において、
所定の時間を計時するごとにタイマ信号を出力するタイマ回路を備え、
前記メモリセルフテスト回路は、前記タイマ信号を受けたとき、前記不揮発性メモリの健全性を確認する
ことを特徴とする半導体装置。
【請求項９】
請求項６に記載の半導体装置において、
与えられたプログラムを実行するとともに、前記不揮発性メモリへのアクセスに係るライブラリ関数を呼び出したとき、制御信号を出力するＣＰＵを備え、
前記メモリセルフテスト回路は、前記制御信号を受けたとき、前記不揮発性メモリの健全性を確認する
ことを特徴とする半導体装置。
【請求項１０】
請求項６に記載の半導体装置において、
与えられたプログラムを実行するとともに、ユーザ所定の命令を実行するとき、制御信号を出力するＣＰＵを備え、
前記メモリセルフテスト回路は、前記制御信号を受けたとき、前記不揮発性メモリの健全性を確認する
ことを特徴とする半導体装置。
【請求項１１】
不揮発性メモリを備えたＩＣカードであって、
前記不揮発性メモリの健全性を確認するメモリセルフテスト回路を備え、
前記メモリセルフテスト回路は、
前記不揮発性メモリにおける専用領域における所定のアドレスにデータを書き込むライト部と、
前記所定のアドレスから前記書き込まれたデータを読み出すリード部と、
前記書き込まれたデータと前記読み出されたデータとの異同を判定するベリファイ部と、
前記ベリファイ部の判定結果に基づいて、前記書き込まれたデータと前記読み出されたデータとが一致する場合、前記不揮発性メモリは健全であると判定する一方、前記書き込まれたデータと前記読み出されたデータとが一致しない場合、前記不揮発性メモリは不健全であると判定する判定部とを有する
ことを特徴とするＩＣカード。
【請求項１２】
請求項１１に記載のＩＣカードにおいて、
リーダライタと通信する送受信回路と、
前記送受信回路が受信したコマンドに従って前記不揮発性メモリにアクセスするとともに、前記不揮発性メモリにアクセスする前に制御信号を出力する制御回路とを備え、
前記メモリセルフテスト回路は、前記制御信号を受けたとき、前記不揮発性メモリの健全性を確認するものであり、
前記制御回路は、前記メモリセルフテスト回路によって前記不揮発性メモリの健全性が確認されたとき、前記不揮発性メモリにアクセスするものである
ことを特徴とするＩＣカード。
【請求項１３】
請求項１１に記載のＩＣカードにおいて、
リーダライタと通信する送受信回路と、
前記送受信回路が受信したコマンドに従って前記不揮発性メモリにアクセスするとともに、前記不揮発性メモリにアクセスした後に制御信号を出力する制御回路とを備え、
前記メモリセルフテスト回路は、前記制御信号を受けたとき、前記不揮発性メモリの健全性を確認するものであり、
前記制御回路は、前記メモリセルフテスト回路によって前記不揮発性メモリの健全性が確認されたとき、前記送受信回路にレスポンス送信の指示をするものである
ことを特徴とするＩＣカード。
【請求項１４】
不揮発性メモリの健全性を確認するメモリセルフテスト方法であって、
前記不揮発性メモリにおける専用領域における所定のアドレスにデータを書き込む第１のステップと、
前記所定のアドレスから前記書き込まれたデータを読み出す第２のステップと、
前記書き込まれたデータと前記読み出されたデータとの異同を判定する第３のステップと、
前記第３のステップでの判定結果に基づいて、前記書き込まれたデータと前記読み出されたデータとが一致する場合、前記不揮発性メモリは健全であると判定する一方、前記書き込まれたデータと前記読み出されたデータとが一致しない場合、前記不揮発性メモリは不健全であると判定する第４のステップとを備えた
ことを特徴とするメモリセルフテスト方法。
【請求項１５】
請求項１４に記載のメモリセルフテスト方法において、
前記不揮発性メモリは、複数のメモリバンクから構成され、かつ、当該メモリバンクごとに専用領域を有するものであり、
前記第１のステップでは、前記メモリバンクごとに、前記専用領域における所定のアドレスにデータが書き込まれ、
前記第２のステップでは、前記メモリバンクごとに、前記所定のアドレスから前記書き込まれたデータが読み出され、
前記第３のステップでは、前記メモリバンクごとに、前記書き込まれたデータと前記読み出されたデータとの異同が判定され、
前記第４のステップでは、前記複数のメモリバンクのすべてについて、前記書き込まれたデータと前記読み出されたデータとが一致する場合、前記不揮発性メモリは健全であると判定される一方、前記書き込まれたデータと前記読み出されたデータとが一致しない場合、前記不揮発性メモリは不健全であると判定される
ことを特徴とするメモリセルフテスト方法。
【請求項１６】
請求項１４に記載のメモリセルフテスト方法において、
前記専用領域における複数のアドレスの中からいずれか一つを選択する第５のステップを備え、
前記第１のステップでは、前記第５のステップで選択されたアドレスにデータが書き込まれ、
前記第２のステップでは、前記第５のステップで選択されたアドレスから前記第１のステップで書き込まれたデータが読み出される
ことを特徴とするメモリセルフテスト方法。
【請求項１７】
請求項１６に記載のメモリセルフテスト方法において、
前記第５のステップでは、前記いずれか一つのアドレスが無作為に選択される
ことを特徴とするメモリセルフテスト方法。
【請求項１８】
請求項１６に記載のメモリセルフテスト方法において、
前記第５のステップでは、前記いずれか一つのアドレスが順番に選択される
ことを特徴とするメモリセルフテスト方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性メモリのセルフテスト技術に関し、特に、セキュリティの確保を要する不揮発性メモリの健全性を確認するメモリセルフテスト方法及び回路に関する。
【背景技術】
【０００２】
機密性の高いデータやプログラムを搭載するＬＳＩやＩＣカード用途等のセキュリティ回路を搭載するＬＳＩ等では、フラッシュメモリやＦｅＲＡＭ等の不揮発性メモリに秘匿性の高い重要なデータやプログラムが格納される。例えば、ＩＣカード用途のＬＳＩの不揮発性メモリには、個人情報や認証データ、暗号化装置のための暗号鍵データなどが保存される。このように不揮発性メモリには非常に重要な内容が格納されるため、これらのデータが悪意のある第三者により解読されたり改竄されたりしないような手段が必要となる。これには、不揮発性メモリに格納するデータを暗号化することが有効である。
【０００３】
さらにセキュリティを高めるには、不揮発性メモリにセキュリティステータスを示す情報を格納しておいて不正アクセス自体を制限するのが有効である。従来、不揮発性メモリにアクセスする際の認証に失敗した回数を不揮発性メモリに書き込んでおき、その回数が所定値を上回れば不正アクセスであるとみなして、以後の認証を拒絶したり、不揮発性メモリに格納された秘匿データを消去したり、次回の電源投入時の起動時間を延長したりなどをしてセキュリティ保護を実現しているものがある（例えば、特許文献１参照）。
【特許文献１】特開２００４―１０２６３５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかし、上記のセキュリティ保護対策を施していても、認証失敗の回数が正しくインクリメントされなければ不正アクセスを有効に制限することができなくなる。例えば、不揮発性メモリに対して、書込みイネーブル信号をディセーブル状態に固定したり、書き込みに必要な電源ラインを切断したりなどの、書き込みが不可能となるような物理的改竄がなされた場合、不揮発性メモリに格納されたセキュリティステータスを示す情報を更新することができなくなってしまう。この結果、認証失敗を繰り返しても失敗回数がインクリメントされずに、不正アクセスの制限が機能しなくなってしまう。
【０００５】
書き込みデータのベリファイを行うことで不揮発性メモリに物理的改竄がなされているか否か、すなわち、不揮発性メモリの健全性を確認することができる。しかし、データ書き込みのたびにベリファイを行うのでは、消費電力の増大及びデータ書き込み速度の低下を招き、さらに、メモリアクセス回数が多くなることから不揮発性メモリの寿命を縮めてしまうおそれがある。
【０００６】
上記問題に鑑み、本発明は、不揮発性メモリの動作特性及び寿命を劣化させることなく、不揮発性メモリに物理的改竄がなされているか否かを容易に判定することを課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために本発明が講じた手段は、不揮発性メモリのセルフテスト回路として、不揮発性メモリにおける専用領域における所定のアドレスにデータを書き込むライト部と、所定のアドレスから書き込まれたデータを読み出すリード部と、書き込まれたデータと読み出されたデータとの異同を判定するベリファイ部と、ベリファイ部の判定結果に基づいて、書き込まれたデータと読み出されたデータとが一致する場合、不揮発性メモリは健全であると判定する一方、書き込まれたデータと読み出されたデータとが一致しない場合、不揮発性メモリは不健全であると判定する判定部とを備えたものとする。また、不揮発性メモリの健全性を確認するメモリセルフテスト方法として、不揮発性メモリにおける専用領域における所定のアドレスにデータを書き込む第１のステップと、所定のアドレスから書き込まれたデータを読み出す第２のステップと、書き込まれたデータと読み出されたデータとの異同を判定する第３のステップと、第３のステップでの判定結果に基づいて、書き込まれたデータと読み出されたデータとが一致する場合、不揮発性メモリは健全であると判定する一方、書き込まれたデータと読み出されたデータとが一致しない場合、不揮発性メモリは不健全であると判定する第４のステップとを備えたものとする。
【０００８】
これによると、ライト部によって不揮発性メモリにおける専用領域における所定のアドレスにデータが書き込まれ、リード部によって当該所定のアドレスから書き込まれたデータが読み出され、ベリファイ部によって両データの異同が判定され、そして、その判定結果に基づいて、判定部によって不揮発性メモリが健全が否かが判定される。このように、代表的に専用領域を使用して不揮発性メモリの健全性を確認するため、不揮発性メモリの動作特性及び寿命を劣化させることなく、不揮発性メモリに物理的改竄がなされているか否かを容易に判定することができる。
【０００９】
具体的には、不揮発性メモリは、複数のメモリバンクから構成され、かつ、当該メモリバンクごとに専用領域を有する。そして、上記のメモリセルフテスト回路において、ライト部は、メモリバンクごとに、専用領域における所定のアドレスにデータを書き込むものであり、リード部は、メモリバンクごとに、所定のアドレスから書き込まれたデータを読み出すものであり、ベリファイ部は、メモリバンクごとに、書き込まれたデータと読み出されたデータとの異同を判定するものであり、判定部は、複数のメモリバンクのすべてについて、書き込まれたデータと読み出されたデータとが一致する場合、不揮発性メモリは健全であると判定する一方、書き込まれたデータと読み出されたデータとが一致しない場合、不揮発性メモリは不健全であると判定するものとする。また、上記のメモリセルフテスト方法において、第１のステップでは、メモリバンクごとに、専用領域における所定のアドレスにデータが書き込まれ、第２のステップでは、メモリバンクごとに、所定のアドレスから書き込まれたデータが読み出され、第３のステップでは、メモリバンクごとに、書き込まれたデータと読み出されたデータとの異同が判定され、第４のステップでは、複数のメモリバンクのすべてについて、書き込まれたデータと読み出されたデータとが一致する場合、不揮発性メモリは健全であると判定される一方、書き込まれたデータと読み出されたデータとが一致しない場合、不揮発性メモリは不健全であると判定される。
【００１０】
これによると、メモリバンクごとに専用領域を使用してその健全性が確認され、すべてのメモリバンクが健全であるとき、不揮発性メモリは健全であると判定される。これにより、一部のメモリバンクにセキュリティ攻撃がされた場合であっても、それを的確に検出することができ、不揮発性メモリ全体としてより高いセキュリティを確保することができる。
【００１１】
上記のメモリセルフテスト回路は、専用領域における複数のアドレスの中からいずれか一つを選択する選択部を備えていることが好ましい。そして、ライト部は、選択部によって選択されたアドレスにデータを書き込むものであり、リード部は、選択部によって選択されたアドレスから書き込まれたデータを読み出すものとする。具体的には、選択部は、いずれか一つのアドレスを無作為又は順番に選択する。同様に、上記のメモリセルフテスト方法は、専用領域における複数のアドレスの中からいずれか一つを選択する第５のステップを備えていることが好ましい。この場合、第１のステップでは、第５のステップで選択されたアドレスにデータが書き込まれ、第２のステップでは、第５のステップで選択されたアドレスから第１のステップで書き込まれたデータが読み出される。具体的には、第５のステップでは、いずれか一つのアドレスが無作為又は順番に選択される。
【００１２】
これによると、不揮発性メモリの健全性の確認のために使用されるアドレスが適度に分散されるため、特定のアドレスへのデータ書き込み回数が極端に多くなることを回避することができる。すなわち、書き込み回数に制限がある不揮発性メモリの寿命の低下を回避することができる。
【００１３】
一方、本発明が講じた手段は、不揮発性メモリを備えた半導体装置又はＩＣカードとして、不揮発性メモリの健全性を確認するメモリセルフテスト回路を備えたものとする。そして、メモリセルフテスト回路は、不揮発性メモリにおける専用領域における所定のアドレスにデータを書き込むライト部と、所定のアドレスから書き込まれたデータを読み出すリード部と、書き込まれたデータと読み出されたデータとの異同を判定するベリファイ部と、ベリファイ部の判定結果に基づいて、書き込まれたデータと読み出されたデータとが一致する場合、不揮発性メモリは健全であると判定する一方、書き込まれたデータと読み出されたデータとが一致しない場合、不揮発性メモリは不健全であると判定する判定部とを有するものとする。
【００１４】
これによると、不揮発性メモリを備えた半導体装置又はＩＣカードにおいて、ライト部によって不揮発性メモリにおける専用領域における所定のアドレスにデータが書き込まれ、リード部によって当該所定のアドレスから書き込まれたデータが読み出され、ベリファイ部によって両データの異同が判定され、そして、その判定結果に基づいて、判定部によって不揮発性メモリが健全が否かが判定される。このように、代表的に専用領域を使用して不揮発性メモリの健全性を確認するため、不揮発性メモリの動作特性及び寿命を劣化させることなく、不揮発性メモリに物理的改竄がなされているか否かを容易に判定することができる。
【００１５】
上記の半導体装置は、当該半導体装置に電源が投入されたときリセット信号を出力するパワーオンリセット回路を備えていることが好ましい。この場合、メモリセルフテスト回路は、リセット信号を受けたとき、不揮発性メモリの健全性を確認するものとする。
【００１６】
これによると、半導体装置への電源投入時に不揮発性メモリの健全性の確認が行われ、その判定結果に応じて適宜適切な後処理を行うことが可能となる。
【００１７】
また、上記の半導体装置は、所定の時間を計時するごとにタイマ信号を出力するタイマ回路を備えていることが好ましい。この場合、メモリセルフテスト回路は、タイマ信号を受けたとき、不揮発性メモリの健全性を確認するものとする。
【００１８】
これによると、定期的に不揮発性メモリの健全性を確認することができるため、より高いセキュリティを確保することができる。
【００１９】
具体的には、上記の半導体装置は、与えられたプログラムを実行するとともに、不揮発性メモリへのアクセスに係るライブラリ関数を呼び出したとき、制御信号を出力するＣＰＵを備えている。そして、メモリセルフテスト回路は、制御信号を受けたとき、不揮発性メモリの健全性を確認するものとする。
【００２０】
これによると、不揮発性メモリへのアクセスがあるときにその健全性の確認が行われるため、効率のよいセルフテストが実現される。
【００２１】
また、具体的には、上記の半導体装置は、与えられたプログラムを実行するとともに、ユーザ所定の命令を実行するとき、制御信号を出力するＣＰＵを備えている。そして、メモリセルフテスト回路は、制御信号を受けたとき、不揮発性メモリの健全性を確認するものとする。
【００２２】
これによると、不揮発性メモリの健全性の確認のタイミングをユーザが任意に指示することができ、不揮発性メモリの健全性の確認を必要に応じて実行することができる。
【００２３】
また、具体的には、上記のＩＣカードは、リーダライタと通信する送受信回路と、送受信回路が受信したコマンドに従って不揮発性メモリにアクセスするとともに、不揮発性メモリにアクセスする前に制御信号を出力する制御回路とを備えている。そして、メモリセルフテスト回路は、制御信号を受けたとき、不揮発性メモリの健全性を確認する。また、制御回路は、メモリセルフテスト回路によって不揮発性メモリの健全性が確認されたとき、不揮発性メモリにアクセスする。
【００２４】
これによると、メモリセルフテスト回路によって不揮発性メモリの健全性が確認されなければ制御回路が不揮発性メモリにアクセスすることができなくなる。したがって、不揮発性メモリに物理的改竄がなされていても、そこに格納されている秘匿情報が不正に読み出されることがない。
【００２５】
また、具体的には、上記のＩＣカードは、リーダライタと通信する送受信回路と、送受信回路が受信したコマンドに従って不揮発性メモリにアクセスするとともに、不揮発性メモリにアクセスした後に制御信号を出力する制御回路とを備えている。そして、メモリセルフテスト回路は、制御信号を受けたとき、不揮発性メモリの健全性を確認する。また、制御回路は、メモリセルフテスト回路によって不揮発性メモリの健全性が確認されたとき、送受信回路にレスポンス送信の指示をする。
【００２６】
これによると、メモリセルフテスト回路によって不揮発性メモリの健全性が確認されなければ送受信回路からリーダライタへのレスポンスが送信されなくなる。したがって、不揮発性メモリに物理的改竄がなされていても、不正なデータに基づく処理結果がリーダライタに送信されることがない。
【発明の効果】
【００２７】
以上のように本発明によると、不揮発性メモリの動作特性及び寿命を劣化させることなく不揮発性メモリに物理的改竄がなされているか否かを容易に判定することが可能となる。
【発明を実施するための最良の形態】
【００２８】
以下、本発明を実施するための最良の形態について、図面を参照しながら説明する。
【００２９】
（第１の実施形態）
図１は、第１の実施形態に係る半導体装置の構成を示す。本半導体装置は、不揮発性メモリ１０、メモリセルフテスト回路２０、ＣＰＵ３０、パワーオンリセット回路４０、及びタイマ回路５０を備えている。
【００３０】
不揮発性メモリ１０は、例えば、ＦｅＲＡＭやフラッシュメモリ等である。不揮発性メモリ１０は、専用領域１０１を有する２つのメモリバンクから構成されている。各専用領域１０１は、４つのアドレスＡ，Ｂ，Ｃ及びＤを含んでいる。専用領域１０１は、不揮発性メモリ１０の健全性を確認するために設けられたダミー領域である。
【００３１】
メモリセルフテスト回路２０は、各メモリバンクにおける専用領域１０１を使用して、不揮発性メモリ１０の健全性の確認を行う。具体的には、メモリセルフテスト回路２０は、ライト部２０１、リード部２０２、選択部２０３、ベリファイ部２０４、及び判定部２０５を備えている。選択部２０３は、メモリバンクごとに、専用領域１０１における４つのアドレスの中からデータの読み書き対象となるいずれか一つを選択する。アドレスの選択は、無作為であってもよいし、順番であってもよい。ライト部２０１は、選択部２０３によって選択されたアドレスに任意のデータを書き込む。リード部２０２は、選択部２０３によって選択されたアドレスから、ライト部２０１によって書き込まれたデータを読み出す。ベリファイ部２０４は、ライト部２０１によって書き込まれたデータとリード部２０２によって読み出されたデータとの異同を判定する。すなわち、ベリファイ部２０４は、ライト部２０１によって書き込まれたデータの正当性を検証する。判定部２０５は、ベリファイ部２０４の判定結果を受け、上記の両データが一致する場合には不揮発性メモリ１０は健全であると判定し、一致しない場合には不揮発性メモリ１０は物理的改竄がなされている可能性があるとして非健全であると判定する。
【００３２】
専用領域１０１は、不揮発性メモリ１０の健全性の確認のたびに使用されることから、他の一般領域と比べてアクセス回数が多くなり、寿命が比較的早く尽きてしまい、不揮発性メモリ１０の健全性の確認が有効に機能しなくなるおそれがある。しかし、上記のように専用領域１０１に複数のアドレスを用意しておき、その中からいずれか一つを適宜選択して使用することにより、特定のアドレスへのデータ書き込み回数が極端に多くなることを回避することができる。
【００３３】
次に、図２のフローチャートを参照しながら、メモリセルフテスト回路２０の動作について説明する。まず、選択部２０３によって、メモリバンク０の専用領域１０１における４つのアドレスからいずれか一つが選択される（Ｓ１１）。そして、ライト部２０１によって、選択されたアドレスに任意のデータが書き込まれ（Ｓ１２）、その後、リード部２０２によって、選択されたアドレスから当該書き込まれたデータが読み出される（Ｓ１３）。そして、ベリファイ部２０４によって、ライト部２０１が書き込んだデータとリード部２０２が読み出したデータとの異同が判定される（Ｓ１４）。両データが一致する場合（Ｓ１５のＹＥＳ肢）、メモリバンク１について上記と同様の処理が繰り返される。すなわち、メモリバンク１の専用領域における４つのアドレスからいずれか一つが選択され（Ｓ２１）、選択されたアドレスに任意のデータが書き込まれ（Ｓ２２）、選択されたアドレスから当該書き込まれたデータが読み出され（Ｓ２３）、両データの異同が判定される（Ｓ１４）。そして、両データが一致する場合（Ｓ２５のＹＥＳ肢）、判定部２０５によって、不揮発性メモリ１０は健全であると判定される（Ｓ３１）。一方、ステップＳ１５又はＳ２５において両データが一致しない場合（ＮＯ肢）、判定部２０５によって、不揮発性メモリ１０は非健全であると判定される（Ｓ３２）。
【００３４】
図１に戻り、ＣＰＵ３０は、与えられたプログラムを実行するとともに不揮発性メモリ１０に適宜アクセスする。また、ＣＰＵ３０は、不揮発性メモリ１０へのアクセスに係るライブラリ関数を呼び出すときやユーザ所定の命令を実行するときに制御信号ＣＴＬを出力してもよい。後者の場合には、不揮発性メモリ１０の健全性の確認処理をライブラリ関数化しておき、ユーザプログラム中で適宜そのライブラリ関数を呼び出しできるようにしておくとよい。メモリセルフテスト回路２０は、制御信号ＣＴＬを受けると、不揮発性メモリ１０の健全性を確認する。これにより、不揮発性メモリ１０へのアクセスがあるときにその健全性の確認が行われるため、効率のよいセルフテストが実現される。また、不揮発性メモリ１０の健全性の確認のタイミングをユーザが任意に指示することができ、不揮発性メモリ１０の健全性の確認を必要に応じて実行することができる。
【００３５】
また、ＣＰＵ３０は、判定部２０５から判定結果を受け、不揮発性メモリ１０の健全性が確認されると、適宜不揮発性メモリ１０にアクセスして所期の動作をする。一方、判定部２０５の判定結果から不揮発性メモリ１０に異常が生じていることが確認されたとき、ＣＰＵ３０は、不揮発性メモリ１０へアクセスを制限する処理を施す。具体的には、ＣＰＵ３０は、本半導体装置のリセット処理をしたり、無限ループの処理を実行したりなどをして、不揮発性メモリ１０へのアクセスをできなくする。
【００３６】
パワーオンリセット回路４０は、本半導体装置に電源が投入されたとき、リセット信号ＲＳＴを出力する。メモリセルフテスト回路２０は、リセット信号ＲＳＴを受けると、不揮発性メモリ１０の健全性を確認する。これにより、本半導体装置への電源投入時に不揮発性メモリ１０の健全性の確認が行われ、その判定結果に応じて適宜適切な後処理を行うことが可能となる。なお、パワーオンリセット回路４０は省略可能である。
【００３７】
タイマ回路５０は、所定の時間を計時するごとにタイマ信号ＴＭを出力する。メモリセルフテスト回路２０は、タイマ信号ＴＭを受けると、不揮発性メモリ１０の健全性を確認する。これにより、定期的に不揮発性メモリ１０の健全性を確認することができるため、より高いセキュリティを確保することができる。なお、タイマ回路５０は省略可能である。
【００３８】
以上、本実施形態によると、不揮発性メモリに物理的改竄がなされているか否かの判定が専用領域を使用して適宜行われるため、消費電力を増大させることなく、また、データ書き込み速度及び不揮発性メモリの寿命を低下させることなく、不揮発性メモリの健全性を確認することできる。すなわち、不揮発性メモリの動作特性及び寿命を劣化させることなく、不揮発性メモリの異常を利用したセキュリティ攻撃などの不正アクセスを制限して、不揮発性メモリに格納された秘匿性の高いデータを有効に保護することができる。
【００３９】
なお、すべてのメモリバンクについてアドレスの選択を統一的に行ってもよい。すなわち、メモリバンク０でアドレスＡが選択されるならば、メモリバンク１でもアドレスＡを選択するようにしてもよい。
【００４０】
また、専用領域１０１に含まれるアドレスは１個であってもよい。この場合、メモリセルフテスト回路２０において選択部２０３が省略可能である。また、不揮発性メモリ１０を構成するメモリバンクは１個であってもよいし、３個以上であってもよい。メモリバンクが１個の場合には、図２に示したフローチャートにおいてステップＳ２１〜Ｓ２５が省略可能である。また、メモリバンクが３個以上であれば、図２に示したフローチャートにおいてステップＳ２５とステップＳ３１との間にステップＳ１１〜Ｓ１５と同様の処理を追加すればよい。
【００４１】
また、メモリセルフテスト回路２０が行う処理をＣＰＵ３０においてソフトウェア処理してもよい。この場合、メモリセルフテスト回路２０が省略可能となる。
【００４２】
（第２の実施形態）
図３は、第２の実施形態に係るＩＣカードの構成を示す。本ＩＣカードは、不揮発性メモリ１０、メモリセルフテスト回路２０、送受信回路６０、及び制御回路７０を備えている。なお、不揮発性メモリ１０、メモリセルフテスト回路２０、パワーオンリセット回路４０、及びタイマ回路５０は上述したとおりである。
【００４３】
送受信回路６０は、無線又は有線通信により、図示しないリーダライタからコマンドを受信し、また、リーダライタに対してレスポンスを送信する。制御回路７０は、送受信回路６０が受信したコマンドに従って適宜不揮発性メモリ１０にアクセスしてデータの読み書きを行い、読み出したデータを適宜送受信回路６０に送る。また、制御回路７０は、受信コマンドに従って不揮発性メモリ１０にアクセスする前又は後において制御信号ＣＴＬを出力する。メモリセルフテスト回路２０は、制御信号ＣＴＬを受けると、不揮発性メモリ１０の健全性を確認する。これにより、メモリセルフテスト回路２０によって不揮発性メモリ１０の健全性が確認されなければ制御回路７０が不揮発性メモリ１０にアクセスすることができなくなる、又は送受信回路６０からリーダライタへのレスポンスが送信されなくなる。したがって、不揮発性メモリ１０に物理的改竄がなされていても、そこに格納されている秘匿情報が不正に読み出されたり、不正なデータに基づく処理結果がリーダライタへ送信されたりすることを防ぐことができる。
【００４４】
次に、図４のフローチャートを参照しながら、本ＩＣカードの動作について説明する。まず、リーダライタから出力されたコマンドが送受信回路６０によって受信され（Ｓ１０１）、メモリセルフテスト回路２０によって不揮発性メモリ１０の健全性が確認される（Ｓ１０２）。そして、不揮発性メモリ１０が健全であることが確認された場合（Ｓ１０３のＹＥＳ肢）、制御回路７０によって当該コマンドに従った処理が実行され、不揮発性メモリ１０に対してデータの読み書きが行われる（Ｓ１０４）。その後、メモリセルフテスト回路２０によって不揮発性メモリ１０の健全性が確認される（Ｓ１０５）。そして、不揮発性メモリ１０が健全であることが確認された場合（Ｓ１０６のＹＥＳ肢）、送受信回路６０からリーダライタへのレスポンスとして不揮発性メモリ１０から読み出されたデータなどが送信される（Ｓ１０７）。一方、ステップＳ１０３又はＳ１０６において不揮発性メモリ１０に異常が生じていると判定された場合（ＮＯ肢）、不揮発性メモリ１０へのアクセスが禁じられ、以降の処理は停止する（Ｓ１０８）。
【００４５】
以上、本実施形態によると、不揮発性メモリを備えたＩＣカードについて、不揮発性メモリの動作特性及び寿命を劣化させることなく、不揮発性メモリの異常を利用したセキュリティ攻撃などの不正アクセスを制限して、不揮発性メモリに格納された秘匿性の高いデータを有効に保護することができる。
【００４６】
なお、制御回路７０は、受信コマンドに従って不揮発性メモリ１０にアクセスする前及び後のいずれか一方において制御信号ＣＴＬを出力するようにしてもよい。すなわち、図４のフローチャートにおいて、ステップＳ１０２−Ｓ１０３及びＳ１０５−Ｓ１０６のいずれか一方が省略可能である。
【産業上の利用可能性】
【００４７】
本発明に係るメモリセルフテスト回路は、不揮発性メモリに物理的改竄がなされているか否かを容易に判定することができるため、特に、改竄や不正アクセスから保護すべき秘匿情報を格納し、かつ、書き込み回数などに制限のある不揮発性メモリのテスト回路として有用である。
【図面の簡単な説明】
【００４８】
【図１】第１の実施形態に係る半導体装置の構成図である。
【図２】図１に示したメモリセルフテスト回路のフローチャートである。
【図３】第２の実施形態に係るＩＣカードの構成図である。
【図４】図３に示したＩＣカードのフローチャートである。
【符号の説明】
【００４９】
１０  不揮発性メモリ
２０  メモリセルフテスト回路
３０  ＣＰＵ
４０  パワーオンリセット回路
５０  タイマ回路
６０  送受信回路
７０  制御回路
１０１  専用領域
２０１  ライト部
２０２  リード部
２０３  選択部
２０４  ベリファイ部
２０５  判定部
【図１】
2007293593.tif 000003
【図２】
2007293593.tif 000004
【図３】
2007293593.tif 000005
【図４】
2007293593.tif 000006