半導体装置
【課題】各モードにおけるセキュリティーレベルを適切に制御することができる半導体装置の提供を図る。
【解決手段】不揮発性メモリ11と、該不揮発性メモリに対するデータの受け渡しを行うインターフェイス12と、を有する半導体装置であって、前記インターフェイスは、予め設定された複数のセキュリティーコードおよび前記不揮発性メモリの特定エリアLCAに書き込まれたロックコードに従って、前記不揮発性メモリに書き込まれたデータのセキュリティーレベルを制御するセキュリティー論理部20を有する。
【解決手段】不揮発性メモリ11と、該不揮発性メモリに対するデータの受け渡しを行うインターフェイス12と、を有する半導体装置であって、前記インターフェイスは、予め設定された複数のセキュリティーコードおよび前記不揮発性メモリの特定エリアLCAに書き込まれたロックコードに従って、前記不揮発性メモリに書き込まれたデータのセキュリティーレベルを制御するセキュリティー論理部20を有する。
【発明の詳細な説明】
【技術分野】
【0001】
この出願で言及する実施例は、半導体装置に関する。
【背景技術】
【0002】
近年、不揮発性メモリを搭載した半導体装置が様々な分野で利用されている。具体的に、例えば、フラッシュメモリ等の不揮発性メモリを搭載したマイコン(マイクロコントローラ)は、各種の家電機器や情報機器、或いは、自動車の制御装置等に利用されている。
【0003】
マイコンの不揮発性メモリには、例えば、システム製造者によりマイコンを制御するプログラム等の情報が書き込まれており、悪意のある第三者の不正なアクセスに対して、その不揮発性メモリに書き込まれた情報を保護するセキュリティー技術が開発されている。
【0004】
一方、マイコンに予期しない不具合が生じた場合、例えば、マイコン製造者がそのマイコンに搭載された不揮発性メモリに書き込まれた情報を調べて不具合の原因を解析することも行われている。
【0005】
ところで、従来、セキュリティー技術が適用された不揮発性メモリを搭載したマイコン(半導体装置)としては、様々なものが提案されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平10−301855号公報
【特許文献2】特開2004−227509号公報
【特許文献3】特開2003−263368号公報
【特許文献4】特開平07−271751号公報
【特許文献5】特開平09−198316号公報
【特許文献6】特開2004−288257号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述したように、従来、セキュリティー技術が適用された不揮発性メモリを搭載したマイコンが提案されているが、これは、例えば、一旦セキュリティーがオンに設定されると、不揮発性メモリ全体の消去(全消去:Chip Erase)しか行うことかできなくなる。
【0008】
また、例えば、市場において、最終ユーザがマイコンを用いた製品の使用中に何らかの不具合(不良)が発生し、そのマイコンがシステム製造者に戻され、さらに、マイコン製造者に返品され、マイコン製造者が不良解析を行うことがある。
【0009】
このとき、例えば、不揮発性メモリに格納されたプログラムを実行したときに不具合が生じるが、不揮発性メモリの全消去を行った後では確認することができない不良に関しては、マイコン製造者における不良解析が困難になる。
【0010】
すなわち、従来のセキュリティー機能を有する不揮発性メモリを搭載したマイコンにおいて、一旦セキュリティーがオンに設定されると、不揮発性メモリの全消去しか行えないため、マイコン製造者は、不具合が起こったその状態を確認することができない。
【0011】
なお、セキュリティー機能を持たない不揮発性メモリを搭載したマイコンに関しては、マイコン製造者で不良解析を行うことはできるが、そのようなマイコンは、悪意のある第三者の不正アクセスに対処することができず、システム製造者から敬遠されてしまう。
【課題を解決するための手段】
【0012】
一実施形態によれば、不揮発性メモリと、該不揮発性メモリに対するデータの受け渡しを行うインターフェイスと、を有する半導体装置が提供される。
【0013】
前記インターフェイスは、予め設定された複数のセキュリティーコードおよび前記不揮発性メモリの特定エリアに書き込まれたロックコードに従って、前記不揮発性メモリに書き込まれたデータのセキュリティーレベルを制御するセキュリティー論理部を有する。
【発明の効果】
【0014】
開示の半導体装置は、各モードにおけるセキュリティーレベルを適切に制御することができるという効果を奏する。
【図面の簡単な説明】
【0015】
【図1】半導体装置の一例を示すブロック図である。
【図2】セキュリティーのオン/オフとアクセスの定義を説明するための図である。
【図3】出荷前の試験モードと、ユーザ(User)使用向けの通常モードそれぞれのセキュリティーコード名称とその格納場所を説明するための図である。
【図4】本実施形態の半導体装置における通常モードおよび試験モードとセキュリティーとの関係を説明するための図である。
【図5】本実施形態の半導体装置を概略的に示すブロック図である。
【図6】図5に示す半導体装置における不揮発性メモリを複数持つ場合のデータ格納領域の全消去(Chip Erase)の順序を説明するための図である。
【図7】図5に示す半導体装置におけるパワーオンリセット時の状態遷移を説明するための図である。
【図8】図5に示す半導体装置におけるパワーオンリセット後の動作を説明するためのフローチャートである。
【図9】図5における破線領域MP部分の第1実施例を示すブロック図(その1)である。
【図10】図5における破線領域MP部分の第1実施例を示すブロック図(その2)である。
【図11】図9および図10に示す半導体装置に対してモード切り替えのために外部から入力する一例として、シリアルキー入力を説明するための図である。
【図12】図9および図10に示す半導体装置セキュリティー論理部の動作を説明するためのフローチャートである。
【図13】図5に示す半導体装置におけるセキュリティー論理部の第2実施例を示すブロック図(その1)である。
【図14】図5に示す半導体装置におけるセキュリティー論理部の第2実施例を示すブロック図(その2)である。
【図15】図13および図14に示す半導体装置セキュリティー論理部の動作を説明するためのフローチャートである。
【図16】図13および図14に示す半導体装置のセキュリティー論理部の第2実施例により追加される機能の一例を説明するための図である。
【図17】本実施例の半導体装置に適用されるセキュリティーコードの例を説明するための図である。
【図18】本実施例の半導体装置に適用されるシステム製造者が書き込むロックコードの例とその効果を説明するための図である。
【図19】本実施例の半導体装置における通常モードと試験モード別に各ロックコードの場合のコマンド受付可否を説明するための図である。
【図20】本実施例の半導体装置におけるロックコード格納領域のデータによる通常モードおよび試験モードのセキュリティー状態を説明するための図である。
【図21】本実施例の半導体装置におけるセキュリティーコードおよびロックコードを時系列的に説明するための図(その1)である。
【図22】本実施例の半導体装置におけるセキュリティーコードおよびロックコードを時系列的に説明するための図(その2)である。
【発明を実施するための形態】
【0016】
まず、半導体装置の実施例を詳述する前に、半導体装置およびその問題点を図1および図2を参照して説明する。
【0017】
図1は、半導体装置の一例を示すブロック図であり、不揮発性メモリへのアクセスの種類とセキュリティーの意味を説明するためのものである。また、図2は、セキュリティーのオン/オフとアクセスの定義を説明するための図である。
【0018】
図1において、参照符号1は半導体装置(マイクロコントローラ)、11は不揮発性メモリ、12はインターフェイス(I/F:InterFace)、13はCPU(Central Processing Unit)、そして、14はオンチップデバッガ(OCD:On Chip Debugger)を示す。
【0019】
マイクロコントローラ(マイコン)1は、不揮発性メモリ11、インターフェイス12、CPU13およびOCD14を有する。
【0020】
不揮発性メモリ11は、例えば、フラッシュメモリやEEPROM等の不揮発性の半導体記憶装置であり、システム製造者によりマイコン1(CPU13)を制御するプログラム等の情報が書き込まれる。
【0021】
ここで、OCD14は、マイコン1に内蔵されたエミュレーションコントロールやブレークおよびトレース機能などを利用するデバッグ装置であり、デバッグ時にターゲット資源を100%活用することができる。
【0022】
なお、不揮発性メモリ11に対するアクセスの種類としては、例えば、オンチップデバッグ(OCD)モードAM1、外部バス(外バス)モードAM2、ライタモードAM3およびCPUモードAM4がある。
【0023】
OCDモードAM1は、OCD14がCPU13を乗っ取って自由にアクセスが可能なモードであり、また、外部バスモードAM2は、マイコン1と外部回路を結ぶ外部バスを使うモードである。ここで、例えば、外部バスにメモリを置くと、そのメモリに対して不揮発性メモリ11のデータを取り出すことが可能になる。
【0024】
ライタモードAM3は、例えば、専用のパラレルライタによりCPU13を介さずに、不揮発性メモリ11に直接データ書き込みを行うモードである。また、CPUモードAM4は、内部回路を結ぶ内部バスを使用して不揮発性メモリ11をアクセスするもので、不揮発性メモリ11へのアクセス制限はない。なお、パラレルライタは、例えば、オフボードでのみ使用可能になっている。
【0025】
図2に示されるように、例えば、システム製造者がCPU13を制御するプログラム等の情報を不揮発性メモリ11に書き込んだ後、セキュリティーをオンに設定すると、CPUモードAM4以外のアクセス(外部からのアクセス)は、通常、全消去(Chip Erase)だけになる。
【0026】
すなわち、不揮発性メモリ11に対する外部からのアクセスは、セキュリティーがオフのときは、消去,読み出しおよび書き込みの全ての命令を受け付ける(消去/読み出し/書き込みの全てが可能)が、セキュリティーがオンのときは、全消去のみ受け付ける。
【0027】
なお、CPU13から不揮発性メモリ11に対するアクセスは、セキュリティーのオン/オフに関わらず、消去/読み出し/書き込みの全てが可能である。
【0028】
そのため、例えば、市場においてマイコンを用いた製品に不良が発生した場合、そのマイコンがマイコン製造者に返却されても、セキュリティーがオンになっていると、実際の不良状態を再現して十分な解析を行うことが困難になる。
【0029】
或いは、例えば、セキュリティーがオフになっているマイコンを用いた製品を市場に出した場合には、不揮発性メモリに格納された情報が第三者によって自由に消去/読み出し/書き込みが可能になるため、システム製造者から敬遠され、現実的ではない。
【0030】
以下、半導体装置の各実施例を、添付図面を参照して詳述する。図3は、出荷前の試験モードと、ユーザ(User)使用向けの通常モードそれぞれのセキュリティーコード名称とその格納場所を説明するための図である。また、図4は、本実施形態の半導体装置における通常モードおよび試験モードとセキュリティーとの関係を説明するための図である。
【0031】
図3に示されるように、セキュリティーコードとして、例えば、出荷前の試験モードのための試験セキュリティーコード、並びに、システム製造者および最終ユーザの通常モードのためのユーザセキュリティーコードを半導体装置(マイコン)1に持たせるようにする。
【0032】
ここで、セキュリティーコード(試験セキュリティーコードおよびユーザセキュリティーコード)は、インターフェイス12に対して、予め固定の期待値として用意する。
【0033】
すなわち、試験セキュリティーコードおよびユーザセキュリティーコードは、例えば、インターフェイス12に対して製造段階でマスクにより焼き込むか、或いは、ヒューズの溶断等の電源クランプ処理により物理的に設定する。
【0034】
これら試験セキュリティーコードおよびユーザセキュリティーコードは、例えば、不揮発性メモリの所定領域(ロックコード格納領域LCA)に格納されたロックコードと比較され、セキュリティーの制御が行われる。そして、試験モードと通常モードを切り替えるモード切り替えの論理が構築される。
【0035】
なお、セキュリティーコードおよびロックコードを何ビットにするかは、例えば、マイコンに依存する。また、ユーザセキュリティーコードを利用するのは、例えば、不揮発性メモリ11に対して作成(開発)したプログラムを書き込むマイコンのシステム製造者である。
【0036】
すなわち、図4に示されるように、試験モードにおいては、セキュリティーコードとロックコードが一致したときにセキュリティーがオンし、また、セキュリティーコードとロックコードが不一致のときはセキュリティーがオフする。
【0037】
一方、通常モードにおいては、セキュリティーコードとロックコードが一致したときにセキュリティーがオフし、また、セキュリティーコードとロックコードが不一致のときはセキュリティーがオンする。
【0038】
ここで、試験モードにおいて、セキュリティーコードとロックコードが不一致のとき、セキュリティーがオフするので、これを利用して不揮発性メモリに対して読み出し/書き込み/消去の不良解析(初期解析)を行うことはできる。
【0039】
なお、ロックコードは、システム製造者により不揮発性メモリ11に書き込まれるが、後に詳述するように、不揮発性メモリ11のアドレス空間の中で最後に消去されるアドレスのメモリ領域を書き込みロックコードの格納領域とするのが好ましい。
【0040】
このように、本実施形態の半導体装置によれば、通常モードから試験モードに切り替えることによって、半導体装置に搭載される不揮発性メモリに格納されたデータに関して、従来方式よりセキュリティーレベルを落とすことなく、不良発生の際の解析を可能にするかしないかを容易に選択することができる。
【0041】
すなわち、各モード(通常モードおよび試験モード)におけるセキュリティーレベルを適切に制御することができる。
【0042】
図5は、本実施形態の半導体装置を概略的に示すブロック図であり、また、図6は、図5に示す半導体装置における不揮発性メモリを複数持つ場合のデータ格納領域の全消去(Chip Erase)の順序を説明するための図である。
【0043】
なお、図5において、破線で囲った領域MPは、後述する図9および図10に示す第1実施例のブロック図、並びに、図13および図14に示す第2実施例のブロック図で描いた領域に対応している。
【0044】
図5に示されるように、半導体装置(マイコン)1は、不揮発性メモリ11、インターフェイス(I/F)12、CPU13、入出力部(I/O)15およびポートマルチプレクサ16を有する。
【0045】
インターフェイス12は、データマスク部21およびセキュリティー制御部22を有するセキュリティー論理部20、並びに、マルチプレクサ23を有し、データマスク部21は、コマンドマスク論理部211および読み出しデータマスク論理部212を有する。
【0046】
不揮発性メモリ11は、組み込み式不揮発性メモリ(eNVM:embedded Non-Volatile Memory:組み込みフラッシュメモリ)とされ、その一部には、システム製造者等のユーザがセキュリティーを制御するためのロックコード格納領域LCAが設けられている。
【0047】
ここで、ロックコード格納領域LCAは、eNVM11のアドレス空間の中で最後に消去されるアドレス領域に設定するのが好ましい。これは、ロックコードが消去されたときには、不揮発性メモリ11の他のアドレスにデータが残っていないことを保証するためである。
【0048】
具体的に、例えば、図6に示されるように、不揮発性メモリ11が複数フラッシュマクロ(例えば、4つのフラッシュマクロMacro0〜3)を有する場合、まず、Macro3のプリプログラム((1)Pre-PGM))および消去((2)Erase Pulse))を行う。
【0049】
さらに、Macro2の(3)Pre-PGMおよび(4)Erase Pulse、並びに、Macro1の(5)Pre-PGMおよび(6)Erase Pulseを行い、最後に、Macro0の(7)Pre-PGMおよび(8)Erase Pulseを行うが、LCAは、最後に消去されるMacro0の最後の領域に設けられる。
【0050】
すなわち、LCAを持たないマクロ(Macro3〜1)から消去を行い、LCAを有するマクロ(Macro0)が最後に消去されるようにする。そして、Pre-PGMの完了を検出できるステータスフラグを監視して、LCAを持たないマクロ(Macro3〜1)がPre-PGMが終わっていることを確認してから、LCAを有するマクロ(Macro0)の消去を開始する。
【0051】
これにより、例えば、セキュリティーオン時で1つ目のMacro3に全消去(Chip Erase)コマンドが入った後、異常があってPre-PGMが終わる前に止まってしまった場合でも、セキュリティーの確保が可能になる。
【0052】
すなわち、例えば、Macro3〜1のPre-PGMが完了したことを確認していないと、LCAを有する最後のMacro0が消去されてセキュリティーが解除されることがないため、Macro3〜1(Macro3〜0)のセキュリティーが確保されることになる。
【0053】
ここで、マルチプレクサ23は、モード信号modeに従って、外部からのデータ(不揮発性メモリ若しくはeNVMテストパラレルライタからのデータ)、或いは、CPU13からのデータを選択してデータマスク部21(コマンドマスク論理部211)に供給する。
【0054】
また、ポートマルチプレクサ16は、モード信号modeに従って、データマスク部21(読み出しデータマスク論理部212)からのデータ、或いは、CPU13からのデータを選択して外部に出力する。
【0055】
なお、セキュリティーコード(試験セキュリティーコードおよびユーザセキュリティーコード)は、例えば、インターフェイス12に対して製造段階でマスクにより焼き込むか、或いは、ヒューズの溶断等の電源クランプ処理により物理的に設定される。また、セキュリティーコードを何ビットにするかは、例えば、マイコンに依存するのは前述した通りである。
【0056】
図7は、図5に示す半導体装置におけるパワーオンリセット時の状態遷移を説明するための図であり、また、図8は、図5に示す半導体装置におけるパワーオンリセット後の動作を説明するためのフローチャートである。
【0057】
図7に示されるように、パワーオフ状態S1からパワーオンすると、状態S2において、パワーオンリセット(Power On Reset)の初期化処理が行われて、セキュリティーオン,ロックコードの読み出しおよび判定が行われる。
【0058】
そして、状態S2における判定結果に従って、状態S3のセキュリティーオン、または、状態S4のセキュリティーオフに遷移する。
【0059】
図8に示されるように、ステップST11において、パワーオンリセットすると、状態ST12のセキュリティーオンに遷移し、さらに、ステップST13に進んで、不揮発性メモリ11のロックコード格納領域LCAに格納されたデータを読み出す。
【0060】
さらに、ステップST14に進んで、LCAから読み出したデータ(ロックコード)と固定の期待値(インターフェイス12に用意したセキュリティーコード)との比較を行う。
【0061】
そして、状態ST15に遷移する。試験モードの場合はステップST14で、ロックコードと試験セキュリティーコードが一致すれば、セキュリティーをオンし、逆に、ロックコードと試験セキュリティーコードが一致しなければ、セキュリティーをオフとなる。
【0062】
通常モードの場合はステップST14で、ロックコードとユーザセキュリティーコードが一致すれば、セキュリティーをオフし、逆に、ロックコードとユーザセキュリティーコードが一致しなければ、セキュリティーをオンとなる。
【0063】
図9および図10は、図5における破線領域MP部分の第1実施例を示すブロック図であり、また、図11は、図9および図10に示す半導体装置に対してモード切り替えのために外部から入力する一例として、シリアルキー入力を説明するための図である。
【0064】
また、図9および図10において、不揮発性メモリ(eNVM)11,コマンドマスク論理部211および読み出しデータマスク論理部212以外は、セキュリティー制御部22に相当する。
【0065】
図9および図10に示されるように、図5におけるセキュリティー制御部22は、複数の比較部131〜137、オアゲート141,142、ナンドゲート143、アンドゲート144、セレクタ145,146、フリップフロップ147および有限状態機械150を有する。
【0066】
有限状態機械(Finite State Machine)150は、リセット状態から不揮発性メモリ11のアクセス可能を待ってLCAに格納されたロックコードを読み出し、セキュリティー判断を行って、不揮発性メモリ11に対するアクセス許可を行う。
【0067】
各比較部131〜137は、比較結果が一致すると『1』を出力するようになっている。ここで、比較部132は、不揮発性メモリ11からのロックコードとセキュリティーコードA(第1セキュリティーコード:試験セキュリティーコード)の比較を行う。なお、セキュリティーコードAは、例えば、後述する図17の0x1234hに対応する。
【0068】
また、比較部133および134は、不揮発性メモリ11からのロックコードとセキュリティーコードC1およびC2(第2セキュリティーコード:ユーザセキュリティーコード)の比較を行う。なお、セキュリティーコードC1およびC2は、例えば、図17の0xFFFFhおよび0xAA55hに対応する。
【0069】
ナンドゲート143は、比較部131および132の出力を受け取り、オアゲート141は、比較部133および134の出力を受け取り、また、アンドゲート144は、比較部131およびオアゲート141の出力を受け取り、ゲート143および144の出力は、セレクタ145に供給されている。
【0070】
セレクタ145は、例えば、図11に示すような複数のフリップフロップFF1〜FF4によるシリアルキーQ1〜Q4(モード信号mode)に従って、試験モードまたは通常モードが選択される。
【0071】
まず、フリップフロップFF1〜FF4に対して、データ入力(Data In)からシリアルデータを与えてクロック(Clock)により4ビットのシリアルキーQ1〜Q4を書き込む。
【0072】
そして、フリップフロップFF1〜FF4に格納されたシリアルキーQ1〜Q4を読み出してモード信号modeとして与え、試験/通常モードの選択を行う。なお、シリアルキーQ1〜Q4は4ビットに限定されるものではなく、様々なものを適用することができるのはいうまでもない。
【0073】
セレクタ(マルチプレクサ)146は、セレクタ145の出力により制御され、セレクタ146の出力は、フリップフロップ147を介してセキュリティフラグSFとして、コマンドマスク論理部211および読み出しデータマスク論理部212に供給される。
【0074】
コマンドマスク論理部211は、オアゲート142の出力およびセキュリティフラグSFを受け取るアンドゲート112、並びに、アンドゲート112の出力により制御されるセレクタ111を有する。
【0075】
オアゲート142は、比較部135および136の出力を受け取るが、比較部135および136は、それぞれコマンド入力端子を介して供給される信号DIN[7:0]と信号0xA0および0x30を比較する。また、セレクタ111は、信号DIN[7:0]および信号0xF0を受け取って、アンドゲート112の出力により選択された信号を不揮発性メモリ11に供給する。
【0076】
ここで、比較部135および136に供給する信号0xA0および0x30、並びに、セレクタ111に供給する信号0xF0は、JEDEC標準型のコマンド方式を想定したものになっているが、これに限定されるものではない。
【0077】
読み出しデータマスク論理部212は、比較部137の出力を反転入力で受け取ると共にセキュリティフラグSFを受け取るアンドゲート122、並びに、アンドゲート122の出力により制御されるセレクタ121を有する。なお、比較部137は、モード信号mode(例えば、シリアルキー)とCPUモード(AM4)を比較する。
【0078】
そして、本第1実施例の半導体装置において、セキュリティフラグSFが『0』のときは、許可コマンドが全て(all)になり、不揮発性メモリ11に対する消去/読み出し/書き込みの全てのアクセスが可能になる。
【0079】
一方、SFが『1』のときは、許可コマンドが全消去(Chip Erase)のみになり、不揮発性メモリ11の全消去だけが可能になり、他の読み出し/書き込み等のアクセスは禁止される。
【0080】
なお、シリアルキー(モード信号mode)は、例えば、マイコン製造者により管理され、半導体装置(マイコン)を試験モードにしたいときに、マイコン製造者が外部から入力する。
【0081】
図12は、図9および図10に示す半導体装置セキュリティー論理部の動作を説明するためのフローチャートである。まず、リセット状態において、例えば、後述するステップST104において試験モードに設定した場合には、シリアルキーQ1〜Q4を入力しておく。
【0082】
リセット(パワーオンリセット)すると、ステップST101において、不揮発性メモリ11の起動を待ち、ステップST102において、不揮発性メモリ11が起動したと判定すると、ステップST103に進んでLCAからロックコードを読み出す。
【0083】
次に、ステップST104に進んで、動作モードが試験モードか否かを判別する。ステップST104において、試験モードであると判別すると、ステップST105に進んで、セキュリティーコードA(試験セキュリティーコード)を読み出す。
【0084】
さらに、ステップST106に進んで、セキュリティーコードAがロックコードに一致するか否かを判別する。ステップST106において、セキュリティーコードAがロックコードに一致すると判別すると、ステップST107に進み、セキュリティーをオン状態にする。
【0085】
このとき、不揮発性メモリ11に対しては、チップの全消去のみが受け付け可能で、外部から不揮発性メモリ11に格納されたデータの読み出し等は行うことはできない。
【0086】
すなわち、試験モードにおいて、例えば、インターフェイス12に設定された試験セキュリティーコードと同じコードが、不揮発性メモリ11のロックコード格納領域LCAに書き込まれていると、セキュリティーがオンして全消去以外は行うことができない。
【0087】
一方、ステップST106において、セキュリティーコードAがロックコードに一致しないと判別すると、ステップST110に進み、セキュリティーをオフ状態にする。このとき、外部から不揮発性メモリ11に対して、読み出し,書き込みおよび消去等の全てのコマンドが受け付け可能になる。
【0088】
また、ステップST104において、試験モードではないと判別すると、すなわち、通常モードであると判別すると、ステップST108に進んで、セキュリティーコードC(ユーザセキュリティーコード)を読み出す。
【0089】
さらに、ステップST109に進んで、セキュリティーコードCがロックコードに一致するか否かを判別する。ステップST109において、セキュリティーコードCがロックコードに一致すると判別すると、ステップST110に進み、セキュリティーをオフ状態にする。
【0090】
一方、ステップST109において、セキュリティーコードCがロックコードに一致しないと判別すると、ステップST107に進み、セキュリティーをオン状態にする。
【0091】
そして、ステップST107またはST110によるセキュリティーの設定が行われると、CPU13、或いは、半導体装置の外部から不揮発性メモリ11に対するアクセスの許可(制限)が行われる。ここで、ステップST107またはST110によるセキュリティーの設定が行われるまで、CPU/外部からのアクセスは一切受け付けないようになっている。
【0092】
このように、本第1実施例の半導体装置(不揮発性メモリを有するマイコン)によれば、マイコン製造者の出荷前試験では、消去/読み出し/書き込みが行えるように、試験前や試験中にセキュリティーがオン状態にならないようにすることができる。
【0093】
また、例えばシステム製造者が、不揮発性メモリにプログラムコードの書き込みをするとき、LCAにセキュリティーコードA(試験セキュリティーコード)と同じ値を書き込まないでおけば、セキュリティーがオン状態にならないようにすることができる。
【0094】
さらに、システム製造者が不揮発性メモリにプログラムコードを書き終わった後、セキュリティーをオンに設定したら、つまりLCAにセキュリティーコードA(試験セキュリティーコード)と同じコードを書き込むと、プログラムコードを外部からのアクセスでは読み取られないようにしておくことができる。
【0095】
そして、一旦セキュリティーをオンにしたら、外部から悪意のある操作がなされた場合でも、全消去(Chip Erase)以外ではセキュリティーが外れることがないようにすることができる。さらに、一旦セキュリティーをオンにした後、市場でプログラムコードの修正が必要になったときには、システム製造者は、書き換え(全消去の後の書き換え)ができるようにし、その修正後、またセキュリティーをオンにすることもできる。
【0096】
図13および図14は、図5に示す半導体装置におけるセキュリティー論理部の第2実施例を示すブロック図であり、前述した図5における破線領域MPに対応する。
【0097】
図13および図14と、前述した図9および図10との比較から明らかなように、本第2実施例の半導体装置では、不揮発性メモリ11からのロックコードとセキュリティーコードBの比較を行う比較部138が設けられている。
【0098】
なお、セキュリティーコードB(第3セキュリティーコード:初期解析セキュリティーコード)は、例えば、後述する図17の0x5678hに対応する。
【0099】
さらに、本第2実施例の半導体装置では、比較部139および140、ノアゲート151、アンドゲート152および153、セレクタ154、並びに、フリップフロップ155も設けられている。
【0100】
比較部139は、不揮発性メモリ11のテストモード入力に供給される信号である試験モードと初期解析に使いたい動作モードの比較を行って、その出力を読み出しデータマスク論理部212に供給する。
【0101】
比較部140は、シリアルキー(モード信号mode)が試験モードに一致するかを比較するためのもので、その出力は、比較部131および138の出力と共に、3入力アンドゲート153に供給される。
【0102】
セレクタ154は、アンドゲート153の出力により制御され、その出力は、フリップフロップ155を介して解析可能化信号AESとしてコマンドマスク論理部211および読み出しデータマスク論理部212に供給される。
【0103】
読み出しデータマスク論理部212は、セレクタ121およびアンドゲート122に加えて、アンドゲート123およびオアゲート124を有する。アンドゲート123は、解析可能化信号AESおよび比較部139の出力を受け取り、また、オアゲート124は、アンドゲート123の出力および比較部137の出力を受け取る。なお、オアゲート124の出力は、アンドゲート122の反転入力に供給される。
【0104】
そして、本第2実施例の半導体装置において、セキュリティフラグSFが『0』で解析可能化信号AESが『0』のときは、全コマンドが許可となる。すなわち、不揮発性メモリ11に対する消去/読み出し/書き込みの全てのアクセスが可能(セキュリティーレベル0)になる。
【0105】
また、SFが『1』でAESが『0』のときは、許可コマンドが全消去(Chip Erase)のみになり、不揮発性メモリ11の全消去だけが可能(セキュリティーレベル2)になり、他の読み出し/書き込み等のアクセスは禁止される。
【0106】
さらに、SFが『1』でAESが『1』のときは、許可コマンドが全消去、並びに、初期解析に使いたいコマンド(初期解析用コマンド)のみになり、不揮発性メモリ11の全消去および初期解析用コマンドだけが可能(セキュリティーレベル1)になる。
【0107】
このように、本第2実施例の半導体装置によれば、セキュリティーコードAおよびCに加えて、セキュリティーコードBにより、試験モードにおいて、初期解析用コマンドの受け付けを可能にすることができる。
【0108】
なお、セキュリティーコードBは、1つの初期解析用コマンドに対応した1つに限定されるものではなく、例えば、複数のセキュリティーコードBによってさらに多くのセキュリティーレベルを設定することも可能である。
【0109】
図15は、図13および図14に示す半導体装置セキュリティー論理部の動作を説明するためのフローチャートである。また、図16は、図13および図14に示す半導体装置のセキュリティー論理部の第2実施例により追加される機能の一例を説明するための図である。
【0110】
図15と前述した図12との比較から明らかなように、図13および図14に示す第2実施例の半導体装置において、ステップST101〜ST110の処理は、実質的に第1実施例のものと同様である。
【0111】
ここで、ステップST107におけるセキュリティーのオン状態は、上述したセキュリティーレベル2に対応し、また、ステップST110におけるセキュリティーのオフ状態は、前述したセキュリティーレベル0に対応する。
【0112】
前述した図12では、ステップST106において、セキュリティーコードAがロックコードに一致しないと判別すると、ステップST110に進んで、セキュリティーをオフ状態にしたが、図15では、ステップST111に進む。
【0113】
すなわち、ステップST106において、セキュリティーコードAがロックコードに一致しないと判別すると、ステップST111に進んで、セキュリティーコードB(初期解析セキュリティーコード)を読み出してステップST112に進む。
【0114】
ステップST112において、セキュリティーコードBがロックコードに一致すると判別すると、ステップST113に進み、セキュリティーをオン状態(セキュリティーレベル1)にする。
【0115】
ここで、セキュリティーレベル1は、ステップST107における許可コマンドが全消去だけのセキュリティーレベル2(セキュリティーがオン状態)とは異なり、初期解析用コマンドも許可コマンドに含まれることになる。
【0116】
すなわち、試験モードにおいて、例えば、インターフェイス12に設定されたセキュリティーコードB(初期解析セキュリティーコード)と同じコードが、不揮発性メモリ11のロックコード格納領域LCAに書き込まれていると、全消去以外に、例えば、不良解析も行うことが可能になる。
【0117】
なお、ステップST112において、セキュリティーコードBがロックコードに一致しないと判別すると、ステップST110に進んで、セキュリティーをオフ状態(セキュリティーレベル0)にする。
【0118】
ここで、セキュリティーコードBがロックコードに一致して受け付け可能とされる初期解析用コマンドとしては、例えば、図16に示されるような追加機能を可能にする。
【0119】
すなわち、図16の例は、例えば、システム製造者が不揮発性メモリ11に書き込んだデータ自体を読み出すことはできないが、セクター単位(セクター0,セクター1,…)のメモリセルにおける閾値電圧Vtの分布を取得する機能を示している。
【0120】
具体的に、図16では、セクター3において、そのセクター3に書き込まれたデータに応じた閾値電圧とビット数との関係を示しており、例えば、データ『1』および『0』の閾値電圧になっているメモリセルの分布により不良解析を行う。
【0121】
すなわち、例えば、市場で不揮発性メモリを搭載したマイコンが不良になって、マイコン製造者に返品されたときに、不揮発性メモリ11のロックコード格納領域LCAにセキュリティーコードB(初期解析セキュリティーコード)と同じコードが書き込まれていれば、不揮発性メモリの全消去を行う前に、シリアルキー入力で試験モードにし、セクター単位の閾値電圧の分布による不良解析が可能になる。
【0122】
なお、セキュリティーコードBがロックコードに一致して受け付け可能とされる初期解析用コマンドは、上記のセクター単位の閾値電圧の分布以外に、様々なものを設計時に選ぶことができ、その数も1つに限定されるものではない。
【0123】
このように、本第2実施例の半導体装置によれば、前述した第1実施例の半導体装置の効果に加えて、もし、市場で不揮発性メモリの不良が発生した際は、システム製造者がマイコン製造者に所定の初期解析用コマンドに基づく不良解析を行わせるよう選択することができる。
【0124】
すなわち、マイコン製造者は、システム製造者が設定(許容)した初期解析セキュリティーコードに応じた不良解析を行うことが可能になる。なお、ここで言う不良解析とは、例えば、消去/読み出し/書き込みにより、メモリ内の異常なビットを特定し、或いは、異常電流を見つけることを意味する。
【0125】
図17は、本実施例の半導体装置に適用されるセキュリティーコードの例を説明するための図であり、また、図18は、本実施例の半導体装置に適用されるシステム製造者が書き込むロックコードの例とその効果を説明するための図である。
【0126】
さらに、図19は、本実施例の半導体装置における通常モードと試験モード別に各ロックコードの場合のコマンド受付可否を説明するための図である。そして、図20は、本実施例の半導体装置におけるロックコード格納領域のデータによる通常モードおよび試験モードのセキュリティー状態を説明するための図であり、図19のコード例を使って通常モードおよび試験モードとロックコード格納領域のデータとの関係を説明するものである。
【0127】
まず、図17に示されるように、半導体装置が16ビットマイコンの場合、セキュリティーコードA(第1セキュリティーコード:試験セキュリティーコード)は、例えば、0x1234hに設定される。
【0128】
また、セキュリティーコードC(C1,C2:第2セキュリティーコード:ユーザセキュリティーコード)は、例えば、0xFFFFh,0xAA55hに設定される。
【0129】
さらに、セキュリティーコードB(第3セキュリティーコード:初期解析セキュリティーコード)は、例えば、0x5678hに設定される。なお、セキュリティーコードBも、試験モードにおけるセキュリティーを制御するという意味では、試験セキュリティーコードに含まれる。
【0130】
これらセキュリティーコードA,B,Cは、前述したように、例えば、インターフェイス12に対して製造段階でマスクにより焼き込むか、或いは、ヒューズの溶断等の電源クランプ処理により物理的に設定される。
【0131】
ここで、セキュリティーコードCに関して、例えば、不揮発性メモリ11の全消去(Chip Erase)を行うと、メモリセルアレイは全てデータ『1』になるので、ロックコード格納領域LCAも0xFFFFhになる。すなわち、不揮発性メモリ11の全消去後に、セキュリティーがオンにならないように、全消去のデータに対応するコード0xFFFFhをユーザセキュリティーコード(第2セキュリティーコード)に設定するのが好ましい。
【0132】
また、セキュリティーコードCに関して、例えば、マイコンをパッケージングした後の出荷前試験(FT試験:最終試験)では通常モードの扱いになる。そのため、例えば、FT試験でLCAが0xAA55になるようなパターンを使用する場合、それに対応してコード0xAA55をユーザセキュリティーコードに設定するのが好ましい。
【0133】
これにより、FT試験中にセキュリティーがオンにならず、例えば、試験の途中に使用したパターンの状態で再測にまわった場合でも、全消去を行ってセキュリティーを解除する手間が不要になる。
【0134】
セキュリティーコードAおよびBに関して、例えば、0xFFFFhは、試験中に行われる不揮発性メモリ11の全消去によってセキュリティーがオンしてしまうことになるため、使用することはできない。
【0135】
また、セキュリティーコードAおよびBは、例えば、プロセスアウト後のメモリセルデータから遠い値にしておく。例えば、不揮発性メモリがフラッシュメモリの場合、プロセスアウト後ではメモリセルのデータはどちらかというと全て『1』に近い状態になっているため、ロックコード格納領域LCAも0xFFFFhに近い値になっている。
【0136】
すなわち、フラッシュメモリのロックコード格納領域LCAに0xFFFFhに近い値(例えば、0xFFFEhなど)を設定すると、試験を行う際、起動後にロックコードと試験セキュリティーコードが一致してセキュリティーがオンになる確率が高くなる。そこで、セキュリティーコードAおよびBは、例えば、0xFFFFhから遠い値に設定するのが好ましい。
【0137】
図18は、ユーザ(例えば、システム製造者)に通知するコード、すなわち、ユーザがロックコード格納領域LCAに設定するロックコードの例a〜cとセキュリティー・初期解析効果の例を示している。
【0138】
すなわち、図18〜図20に示されるように、例えば、システム製造者(ユーザ)は、図17のセキュリティーコードA〜Cの通知を受け、ロックコード格納領域LCAにロックコードa〜cを書き込む。
【0139】
具体的に、セキュリティーコードA〜Cが図17の具体例の場合、まず、LCAに対してロックコードa(x1234h)を書き込むと、セキュリティーコードAに一致するため、通常モードおよび試験モードのいずれのモードにおいても、全消去(Chip Erase)コマンドのみしか受け付けない。
【0140】
すなわち、ロックコードaは、1番強固なセキュリティーレベル(レベル2)で、通常モードだけでなく試験モードにおいても、セキュリティーを解除することができず、マイコン製造者に不良返品された際でも、全消去しか行うことができない。
【0141】
次に、LCAに対してロックコードb(x5678h)を書き込むと、セキュリティーコードBに一致するため、通常モードでは全消去コマンドのみしか受け付けないが、試験モードでは、全消去コマンドおよび初期解析コマンドを受け付ける。
【0142】
すなわち、ロックコードbは、マイコン製造者にマイコンが不良返品された際、試験モードにすることで、全消去を行わなくても、例えば、図16を参照して説明したセクター単位の閾値電圧の分布による不良解析を行うことが可能になる。
【0143】
さらに、LCAに対してロックコードc(0xFFFFh,0xAA55h、或いは、x1234hおよびx5678h以外のコード)を書き込むと、通常モードでは全消去コマンドのみしか受け付けないが、試験モードでは、書き込み/読み出し/消去の全コマンドを受け付ける。
【0144】
すなわち、ロックコードcは、1番低いセキュリティーレベル(レベル0)で、マイコン製造者にマイコンが不良返品された際、試験モードにすることで、全消去を行わなくても、初期解析を完全に行うことが可能になる。
【0145】
なお、通常モードから試験モードへの切り替えは、前述したように、例えば、マイコン製造者がマイコンに対してシリアルキーを与えること等で、パワーオンリセット時に試験モードにすることができる。
【0146】
図21および図22は、本実施例の半導体装置におけるセキュリティーコードおよびロックコードを時系列的に説明するための図であり、上述した説明を、マイコン製造者,システム製造者および最終ユーザに分けて時系列的に示したものである。
【0147】
すなわち、図21および図22は、マイコン製造者が製造したマイコンに搭載された不揮発性メモリに対して、システム製造者がプログラムコードを書き込み、そのマイコンを搭載した製品が市場に提供される様子を示している。
【0148】
さらに、その製品が最終ユーザに渡り、そこで、システム製造者がプログラムコードの修正(アップデート)を行い、或いは、その製品に不具合が生じて、製品に搭載されたマイコンがシステム製造者を介してマイコン製造者に返品される場合を示している。
【0149】
まず、マイコン製造者は、工程P1の設計時〜工程P5の出荷までを行って、製品(不揮発性メモリ搭載マイコン)がシステム製造者に渡される。システム製造者は、工程P8で不揮発性メモリに対してプログラムコードを書き込み、工程P7でセキュリティーをかける。
【0150】
ここで、システム製造者は、工程P7において、前に図17〜図19を参照して説明したように、設定するセキュリティーレベルに対応したロックコードを不揮発性メモリのロックコード格納領域LCAに書き込む。
【0151】
さらに、システム製造者によりプログラムコードが書き込まれた不揮発性メモリを搭載したマイコンは、最終製品(例えば、マイコンを使用した家電製品や自動車等)として市場において最終ユーザに提供される。
【0152】
ここで、工程P8のように、最終ユーザは、システム製造者がLCAにロックコードa〜cのいずれを書き込んでいても、通常モードであるためセキュリティーがかかっており、外部からプログラムコードを読み出し、或いは、書き換える(書き込む)ことはできない。
【0153】
また、工程P9のように、例えば、システム製造者がプログラムコードの修正(アップデート)をする場合には、全消去を行った後に新たなプログラムコードを書き込み、その後、LCAにロックコードを書き込むことでセキュリティーをかけることができる。
【0154】
工程P10は、例えば、市場でマイコンを搭載した最終製品が不良になって、その不良とされたマイコンがシステム製造者に返品された場合を示す。また、工程P11は、その不良とされたマイコンがシステム製造者からマイコン製造者に返品された場合を示す。
【0155】
このとき、システム製造者は、工程P10のように、通常モードなので、セキュリティーはオンのままなので、まずはフラシュメモリを全消去するしかなく、不良発生状態の確認はできない。
【0156】
これに対して、マイコン製造者は、工程P11のように、例えば、外部からシリアルキーを入力して試験モードにすることにより、システム製造者が設定したセキュリティーレベルに対応した試験を行うことができるようになっている。
【0157】
すなわち、図18〜図20を参照して説明したように、セキュリティーコードA〜Cが図17の具体例の場合、まず、LCAに対してx1234hが書き込まれていると、そのロックコードはセキュリティーコードAに一致するため、試験モードにおいても、全消去しかできず、不良発生状態の確認はできない。
【0158】
また、LCAに対してx5678hが書き込まれていると、そのロックコードはセキュリティーコードBに一致するため、試験モードでは、全消去コマンド以外に初期解析コマンドを受け付けることができる。すなわち、試験モードにおいて、全消去を行わなくても、例えば、セクター単位の閾値電圧の分布による不良解析を行うことが可能になる。
【0159】
さらに、LCAに対して0xFFFh,0xAA55h、或いは、x1234hおよびx5678h以外のコードが書き込まれていると、試験モードでは、セキュリティーが解除される。すなわち、試験モードにおいて、書き込み/読み出し/消去の全コマンドを受け付けることになる。
【0160】
なお、この場合、試験モードにおいて、システム製造者が不揮発性メモに書き込んだプログラムコードは、マイコン製造者により自由にアクセス可能になる。すなわち、システム製造者は、不揮発性メモに書き込んだプログラムコードがマイコン製造者により自由にアクセされることを許容した上で、マイコン製造者にマイコンを返品することになる。
【0161】
以上において、不揮発性メモリは、フラッシュメモリに限定されるものではなく、EEPROM等の他の不揮発性メモリであってもよく、また、半導体装置も不揮発性メモリを搭載したマイコンに限定されるものではない。
【0162】
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
(付記1)
不揮発性メモリと、該不揮発性メモリに対するデータの受け渡しを行うインターフェイスと、を有する半導体装置であって、前記インターフェイスは、
予め設定された複数のセキュリティーコードおよび前記不揮発性メモリの特定エリアに書き込まれたロックコードに従って、前記不揮発性メモリに書き込まれたデータのセキュリティーレベルを制御するセキュリティー論理部を有することを特徴とする半導体装置。
【0163】
(付記2)
付記1に記載の半導体装置において、
前記セキュリティーコードは、第1セキュリティーコードおよび第2セキュリティーコードを含み、
前記セキュリティー論理部は、
前記半導体装置の試験を行う試験モードにおいて、前記第1セキュリティーコードが前記ロックコードに一致すればセキュリティーをオンして不一致ならばオフし、
前記半導体装置を使用する通常モードにおいて、前記第2セキュリティーコードが前記ロックコードに一致すればセキュリティーをオフして不一致ならばオンすることを特徴とする半導体装置。
【0164】
(付記3)
付記2に記載の半導体装置において、
前記セキュリティーコードは、さらに、第3セキュリティーコードを含み、
前記セキュリティー論理部は、前記試験モードにおいて、前記第1セキュリティーコードが前記ロックコードに不一致で、前記第3セキュリティーコードが前記ロックコードに一致すれば、セキュリティーを、一部機能を除いてオンし、不一致ならばオフすることを特徴とする半導体装置。
【0165】
(付記4)
付記3に記載の半導体装置において、
前記セキュリティー論理部は、前記試験モードにおいて、前記第1セキュリティーコードが前記ロックコードに不一致で、前記第3セキュリティーコードが前記ロックコードに一致したとき、予め定められた機能のみを実行可能にすることを特徴とする半導体装置。
【0166】
(付記5)
付記4に記載の半導体装置において、
前記予め定められた機能は、前記半導体装置の不良解析において、初期解析用のコマンドにより実行される機能であることを特徴とする半導体装置。
【0167】
(付記6)
付記3〜5のいずれか1項に記載の半導体装置において、
前記第2セキュリティーコードは、前記不揮発性メモリを全消去したときのデータに対応するコードを含むことを特徴とする半導体装置。
【0168】
(付記7)
付記6に記載の半導体装置において、
前記第1セキュリティーコードおよび前記第3セキュリティーコードは、前記不揮発性メモリを全消去したときのデータに対応するコードとは異なるコードになっていることを特徴とする半導体装置。
【0169】
(付記8)
付記3〜5のいずれか1項に記載の半導体装置において、
前記第2セキュリティーコードは、前記半導体装置の出荷前試験で使用する試験パターンに対応するコードを含むことを特徴とする半導体装置。
【0170】
(付記9)
付記8に記載の半導体装置において、
前記第1セキュリティーコードおよび前記第3セキュリティーコードは、前記半導体装置の出荷前試験で使用する試験パターンに対応するコードとは異なるコードになっていることを特徴とする半導体装置。
【0171】
(付記10)
付記1〜9のいずれか1項に記載の半導体装置において、
前記通常モードから前記試験モードへのモード切り換えは、予め定められたコードを外部から入力することにより実行されることを特徴とする半導体装置。
【0172】
(付記11)
付記1〜10のいずれか1項に記載の半導体装置において、
前記特定エリアは、前記不揮発性メモリのアドレス空間の中で最後に消去される領域であることを特徴とする半導体装置。
【0173】
(付記12)
付記11に記載の半導体装置において、
前記不揮発性メモリは、複数のバンクを有し、
前記特定エリアは、前記複数のバンクの中で最後に消去されるバンクに含まれることを特徴とする半導体装置。
【0174】
(付記13)
付記1〜12のいずれか1項に記載の半導体装置において、
前記セキュリティーコードは、前記半導体装置の製造時におけるマスク焼き込み、または、電源クランプによって、前記インターフェイスに予め設定されることを特徴とする半導体装置。
【0175】
(付記14)
付記1〜13のいずれか1項に記載の半導体装置において、
起動後のセキュリティーは、デフォルトでオン状態になっていることを特徴とする半導体装置。
【0176】
(付記15)
付記1〜14のいずれか1項に記載の半導体装置において、さらに、
CPUを有し、
前記不揮発性メモリに書き込まれたデータは、前記CPUを制御して所定の機能を実現するプログラムコードであることを特徴とする半導体装置。
【符号の説明】
【0177】
1 半導体装置(マイクロコントローラ:マイコン)
11 不揮発性メモリ(eNVM)
12 インターフェイス(I/F)
13 CPU(Central Processing Unit)
14 オンチップデバッガ(OCD:On Chip Debugger)
15 入出力部(I/O)
16 ポートマルチプレクサ
20 セキュリティー論理部
21 データマスク部
22 セキュリティー制御部
23 マルチプレクサ
211 コマンドマスク論理部
212 読み出しデータマスク論理部
【技術分野】
【0001】
この出願で言及する実施例は、半導体装置に関する。
【背景技術】
【0002】
近年、不揮発性メモリを搭載した半導体装置が様々な分野で利用されている。具体的に、例えば、フラッシュメモリ等の不揮発性メモリを搭載したマイコン(マイクロコントローラ)は、各種の家電機器や情報機器、或いは、自動車の制御装置等に利用されている。
【0003】
マイコンの不揮発性メモリには、例えば、システム製造者によりマイコンを制御するプログラム等の情報が書き込まれており、悪意のある第三者の不正なアクセスに対して、その不揮発性メモリに書き込まれた情報を保護するセキュリティー技術が開発されている。
【0004】
一方、マイコンに予期しない不具合が生じた場合、例えば、マイコン製造者がそのマイコンに搭載された不揮発性メモリに書き込まれた情報を調べて不具合の原因を解析することも行われている。
【0005】
ところで、従来、セキュリティー技術が適用された不揮発性メモリを搭載したマイコン(半導体装置)としては、様々なものが提案されている。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特開平10−301855号公報
【特許文献2】特開2004−227509号公報
【特許文献3】特開2003−263368号公報
【特許文献4】特開平07−271751号公報
【特許文献5】特開平09−198316号公報
【特許文献6】特開2004−288257号公報
【発明の概要】
【発明が解決しようとする課題】
【0007】
上述したように、従来、セキュリティー技術が適用された不揮発性メモリを搭載したマイコンが提案されているが、これは、例えば、一旦セキュリティーがオンに設定されると、不揮発性メモリ全体の消去(全消去:Chip Erase)しか行うことかできなくなる。
【0008】
また、例えば、市場において、最終ユーザがマイコンを用いた製品の使用中に何らかの不具合(不良)が発生し、そのマイコンがシステム製造者に戻され、さらに、マイコン製造者に返品され、マイコン製造者が不良解析を行うことがある。
【0009】
このとき、例えば、不揮発性メモリに格納されたプログラムを実行したときに不具合が生じるが、不揮発性メモリの全消去を行った後では確認することができない不良に関しては、マイコン製造者における不良解析が困難になる。
【0010】
すなわち、従来のセキュリティー機能を有する不揮発性メモリを搭載したマイコンにおいて、一旦セキュリティーがオンに設定されると、不揮発性メモリの全消去しか行えないため、マイコン製造者は、不具合が起こったその状態を確認することができない。
【0011】
なお、セキュリティー機能を持たない不揮発性メモリを搭載したマイコンに関しては、マイコン製造者で不良解析を行うことはできるが、そのようなマイコンは、悪意のある第三者の不正アクセスに対処することができず、システム製造者から敬遠されてしまう。
【課題を解決するための手段】
【0012】
一実施形態によれば、不揮発性メモリと、該不揮発性メモリに対するデータの受け渡しを行うインターフェイスと、を有する半導体装置が提供される。
【0013】
前記インターフェイスは、予め設定された複数のセキュリティーコードおよび前記不揮発性メモリの特定エリアに書き込まれたロックコードに従って、前記不揮発性メモリに書き込まれたデータのセキュリティーレベルを制御するセキュリティー論理部を有する。
【発明の効果】
【0014】
開示の半導体装置は、各モードにおけるセキュリティーレベルを適切に制御することができるという効果を奏する。
【図面の簡単な説明】
【0015】
【図1】半導体装置の一例を示すブロック図である。
【図2】セキュリティーのオン/オフとアクセスの定義を説明するための図である。
【図3】出荷前の試験モードと、ユーザ(User)使用向けの通常モードそれぞれのセキュリティーコード名称とその格納場所を説明するための図である。
【図4】本実施形態の半導体装置における通常モードおよび試験モードとセキュリティーとの関係を説明するための図である。
【図5】本実施形態の半導体装置を概略的に示すブロック図である。
【図6】図5に示す半導体装置における不揮発性メモリを複数持つ場合のデータ格納領域の全消去(Chip Erase)の順序を説明するための図である。
【図7】図5に示す半導体装置におけるパワーオンリセット時の状態遷移を説明するための図である。
【図8】図5に示す半導体装置におけるパワーオンリセット後の動作を説明するためのフローチャートである。
【図9】図5における破線領域MP部分の第1実施例を示すブロック図(その1)である。
【図10】図5における破線領域MP部分の第1実施例を示すブロック図(その2)である。
【図11】図9および図10に示す半導体装置に対してモード切り替えのために外部から入力する一例として、シリアルキー入力を説明するための図である。
【図12】図9および図10に示す半導体装置セキュリティー論理部の動作を説明するためのフローチャートである。
【図13】図5に示す半導体装置におけるセキュリティー論理部の第2実施例を示すブロック図(その1)である。
【図14】図5に示す半導体装置におけるセキュリティー論理部の第2実施例を示すブロック図(その2)である。
【図15】図13および図14に示す半導体装置セキュリティー論理部の動作を説明するためのフローチャートである。
【図16】図13および図14に示す半導体装置のセキュリティー論理部の第2実施例により追加される機能の一例を説明するための図である。
【図17】本実施例の半導体装置に適用されるセキュリティーコードの例を説明するための図である。
【図18】本実施例の半導体装置に適用されるシステム製造者が書き込むロックコードの例とその効果を説明するための図である。
【図19】本実施例の半導体装置における通常モードと試験モード別に各ロックコードの場合のコマンド受付可否を説明するための図である。
【図20】本実施例の半導体装置におけるロックコード格納領域のデータによる通常モードおよび試験モードのセキュリティー状態を説明するための図である。
【図21】本実施例の半導体装置におけるセキュリティーコードおよびロックコードを時系列的に説明するための図(その1)である。
【図22】本実施例の半導体装置におけるセキュリティーコードおよびロックコードを時系列的に説明するための図(その2)である。
【発明を実施するための形態】
【0016】
まず、半導体装置の実施例を詳述する前に、半導体装置およびその問題点を図1および図2を参照して説明する。
【0017】
図1は、半導体装置の一例を示すブロック図であり、不揮発性メモリへのアクセスの種類とセキュリティーの意味を説明するためのものである。また、図2は、セキュリティーのオン/オフとアクセスの定義を説明するための図である。
【0018】
図1において、参照符号1は半導体装置(マイクロコントローラ)、11は不揮発性メモリ、12はインターフェイス(I/F:InterFace)、13はCPU(Central Processing Unit)、そして、14はオンチップデバッガ(OCD:On Chip Debugger)を示す。
【0019】
マイクロコントローラ(マイコン)1は、不揮発性メモリ11、インターフェイス12、CPU13およびOCD14を有する。
【0020】
不揮発性メモリ11は、例えば、フラッシュメモリやEEPROM等の不揮発性の半導体記憶装置であり、システム製造者によりマイコン1(CPU13)を制御するプログラム等の情報が書き込まれる。
【0021】
ここで、OCD14は、マイコン1に内蔵されたエミュレーションコントロールやブレークおよびトレース機能などを利用するデバッグ装置であり、デバッグ時にターゲット資源を100%活用することができる。
【0022】
なお、不揮発性メモリ11に対するアクセスの種類としては、例えば、オンチップデバッグ(OCD)モードAM1、外部バス(外バス)モードAM2、ライタモードAM3およびCPUモードAM4がある。
【0023】
OCDモードAM1は、OCD14がCPU13を乗っ取って自由にアクセスが可能なモードであり、また、外部バスモードAM2は、マイコン1と外部回路を結ぶ外部バスを使うモードである。ここで、例えば、外部バスにメモリを置くと、そのメモリに対して不揮発性メモリ11のデータを取り出すことが可能になる。
【0024】
ライタモードAM3は、例えば、専用のパラレルライタによりCPU13を介さずに、不揮発性メモリ11に直接データ書き込みを行うモードである。また、CPUモードAM4は、内部回路を結ぶ内部バスを使用して不揮発性メモリ11をアクセスするもので、不揮発性メモリ11へのアクセス制限はない。なお、パラレルライタは、例えば、オフボードでのみ使用可能になっている。
【0025】
図2に示されるように、例えば、システム製造者がCPU13を制御するプログラム等の情報を不揮発性メモリ11に書き込んだ後、セキュリティーをオンに設定すると、CPUモードAM4以外のアクセス(外部からのアクセス)は、通常、全消去(Chip Erase)だけになる。
【0026】
すなわち、不揮発性メモリ11に対する外部からのアクセスは、セキュリティーがオフのときは、消去,読み出しおよび書き込みの全ての命令を受け付ける(消去/読み出し/書き込みの全てが可能)が、セキュリティーがオンのときは、全消去のみ受け付ける。
【0027】
なお、CPU13から不揮発性メモリ11に対するアクセスは、セキュリティーのオン/オフに関わらず、消去/読み出し/書き込みの全てが可能である。
【0028】
そのため、例えば、市場においてマイコンを用いた製品に不良が発生した場合、そのマイコンがマイコン製造者に返却されても、セキュリティーがオンになっていると、実際の不良状態を再現して十分な解析を行うことが困難になる。
【0029】
或いは、例えば、セキュリティーがオフになっているマイコンを用いた製品を市場に出した場合には、不揮発性メモリに格納された情報が第三者によって自由に消去/読み出し/書き込みが可能になるため、システム製造者から敬遠され、現実的ではない。
【0030】
以下、半導体装置の各実施例を、添付図面を参照して詳述する。図3は、出荷前の試験モードと、ユーザ(User)使用向けの通常モードそれぞれのセキュリティーコード名称とその格納場所を説明するための図である。また、図4は、本実施形態の半導体装置における通常モードおよび試験モードとセキュリティーとの関係を説明するための図である。
【0031】
図3に示されるように、セキュリティーコードとして、例えば、出荷前の試験モードのための試験セキュリティーコード、並びに、システム製造者および最終ユーザの通常モードのためのユーザセキュリティーコードを半導体装置(マイコン)1に持たせるようにする。
【0032】
ここで、セキュリティーコード(試験セキュリティーコードおよびユーザセキュリティーコード)は、インターフェイス12に対して、予め固定の期待値として用意する。
【0033】
すなわち、試験セキュリティーコードおよびユーザセキュリティーコードは、例えば、インターフェイス12に対して製造段階でマスクにより焼き込むか、或いは、ヒューズの溶断等の電源クランプ処理により物理的に設定する。
【0034】
これら試験セキュリティーコードおよびユーザセキュリティーコードは、例えば、不揮発性メモリの所定領域(ロックコード格納領域LCA)に格納されたロックコードと比較され、セキュリティーの制御が行われる。そして、試験モードと通常モードを切り替えるモード切り替えの論理が構築される。
【0035】
なお、セキュリティーコードおよびロックコードを何ビットにするかは、例えば、マイコンに依存する。また、ユーザセキュリティーコードを利用するのは、例えば、不揮発性メモリ11に対して作成(開発)したプログラムを書き込むマイコンのシステム製造者である。
【0036】
すなわち、図4に示されるように、試験モードにおいては、セキュリティーコードとロックコードが一致したときにセキュリティーがオンし、また、セキュリティーコードとロックコードが不一致のときはセキュリティーがオフする。
【0037】
一方、通常モードにおいては、セキュリティーコードとロックコードが一致したときにセキュリティーがオフし、また、セキュリティーコードとロックコードが不一致のときはセキュリティーがオンする。
【0038】
ここで、試験モードにおいて、セキュリティーコードとロックコードが不一致のとき、セキュリティーがオフするので、これを利用して不揮発性メモリに対して読み出し/書き込み/消去の不良解析(初期解析)を行うことはできる。
【0039】
なお、ロックコードは、システム製造者により不揮発性メモリ11に書き込まれるが、後に詳述するように、不揮発性メモリ11のアドレス空間の中で最後に消去されるアドレスのメモリ領域を書き込みロックコードの格納領域とするのが好ましい。
【0040】
このように、本実施形態の半導体装置によれば、通常モードから試験モードに切り替えることによって、半導体装置に搭載される不揮発性メモリに格納されたデータに関して、従来方式よりセキュリティーレベルを落とすことなく、不良発生の際の解析を可能にするかしないかを容易に選択することができる。
【0041】
すなわち、各モード(通常モードおよび試験モード)におけるセキュリティーレベルを適切に制御することができる。
【0042】
図5は、本実施形態の半導体装置を概略的に示すブロック図であり、また、図6は、図5に示す半導体装置における不揮発性メモリを複数持つ場合のデータ格納領域の全消去(Chip Erase)の順序を説明するための図である。
【0043】
なお、図5において、破線で囲った領域MPは、後述する図9および図10に示す第1実施例のブロック図、並びに、図13および図14に示す第2実施例のブロック図で描いた領域に対応している。
【0044】
図5に示されるように、半導体装置(マイコン)1は、不揮発性メモリ11、インターフェイス(I/F)12、CPU13、入出力部(I/O)15およびポートマルチプレクサ16を有する。
【0045】
インターフェイス12は、データマスク部21およびセキュリティー制御部22を有するセキュリティー論理部20、並びに、マルチプレクサ23を有し、データマスク部21は、コマンドマスク論理部211および読み出しデータマスク論理部212を有する。
【0046】
不揮発性メモリ11は、組み込み式不揮発性メモリ(eNVM:embedded Non-Volatile Memory:組み込みフラッシュメモリ)とされ、その一部には、システム製造者等のユーザがセキュリティーを制御するためのロックコード格納領域LCAが設けられている。
【0047】
ここで、ロックコード格納領域LCAは、eNVM11のアドレス空間の中で最後に消去されるアドレス領域に設定するのが好ましい。これは、ロックコードが消去されたときには、不揮発性メモリ11の他のアドレスにデータが残っていないことを保証するためである。
【0048】
具体的に、例えば、図6に示されるように、不揮発性メモリ11が複数フラッシュマクロ(例えば、4つのフラッシュマクロMacro0〜3)を有する場合、まず、Macro3のプリプログラム((1)Pre-PGM))および消去((2)Erase Pulse))を行う。
【0049】
さらに、Macro2の(3)Pre-PGMおよび(4)Erase Pulse、並びに、Macro1の(5)Pre-PGMおよび(6)Erase Pulseを行い、最後に、Macro0の(7)Pre-PGMおよび(8)Erase Pulseを行うが、LCAは、最後に消去されるMacro0の最後の領域に設けられる。
【0050】
すなわち、LCAを持たないマクロ(Macro3〜1)から消去を行い、LCAを有するマクロ(Macro0)が最後に消去されるようにする。そして、Pre-PGMの完了を検出できるステータスフラグを監視して、LCAを持たないマクロ(Macro3〜1)がPre-PGMが終わっていることを確認してから、LCAを有するマクロ(Macro0)の消去を開始する。
【0051】
これにより、例えば、セキュリティーオン時で1つ目のMacro3に全消去(Chip Erase)コマンドが入った後、異常があってPre-PGMが終わる前に止まってしまった場合でも、セキュリティーの確保が可能になる。
【0052】
すなわち、例えば、Macro3〜1のPre-PGMが完了したことを確認していないと、LCAを有する最後のMacro0が消去されてセキュリティーが解除されることがないため、Macro3〜1(Macro3〜0)のセキュリティーが確保されることになる。
【0053】
ここで、マルチプレクサ23は、モード信号modeに従って、外部からのデータ(不揮発性メモリ若しくはeNVMテストパラレルライタからのデータ)、或いは、CPU13からのデータを選択してデータマスク部21(コマンドマスク論理部211)に供給する。
【0054】
また、ポートマルチプレクサ16は、モード信号modeに従って、データマスク部21(読み出しデータマスク論理部212)からのデータ、或いは、CPU13からのデータを選択して外部に出力する。
【0055】
なお、セキュリティーコード(試験セキュリティーコードおよびユーザセキュリティーコード)は、例えば、インターフェイス12に対して製造段階でマスクにより焼き込むか、或いは、ヒューズの溶断等の電源クランプ処理により物理的に設定される。また、セキュリティーコードを何ビットにするかは、例えば、マイコンに依存するのは前述した通りである。
【0056】
図7は、図5に示す半導体装置におけるパワーオンリセット時の状態遷移を説明するための図であり、また、図8は、図5に示す半導体装置におけるパワーオンリセット後の動作を説明するためのフローチャートである。
【0057】
図7に示されるように、パワーオフ状態S1からパワーオンすると、状態S2において、パワーオンリセット(Power On Reset)の初期化処理が行われて、セキュリティーオン,ロックコードの読み出しおよび判定が行われる。
【0058】
そして、状態S2における判定結果に従って、状態S3のセキュリティーオン、または、状態S4のセキュリティーオフに遷移する。
【0059】
図8に示されるように、ステップST11において、パワーオンリセットすると、状態ST12のセキュリティーオンに遷移し、さらに、ステップST13に進んで、不揮発性メモリ11のロックコード格納領域LCAに格納されたデータを読み出す。
【0060】
さらに、ステップST14に進んで、LCAから読み出したデータ(ロックコード)と固定の期待値(インターフェイス12に用意したセキュリティーコード)との比較を行う。
【0061】
そして、状態ST15に遷移する。試験モードの場合はステップST14で、ロックコードと試験セキュリティーコードが一致すれば、セキュリティーをオンし、逆に、ロックコードと試験セキュリティーコードが一致しなければ、セキュリティーをオフとなる。
【0062】
通常モードの場合はステップST14で、ロックコードとユーザセキュリティーコードが一致すれば、セキュリティーをオフし、逆に、ロックコードとユーザセキュリティーコードが一致しなければ、セキュリティーをオンとなる。
【0063】
図9および図10は、図5における破線領域MP部分の第1実施例を示すブロック図であり、また、図11は、図9および図10に示す半導体装置に対してモード切り替えのために外部から入力する一例として、シリアルキー入力を説明するための図である。
【0064】
また、図9および図10において、不揮発性メモリ(eNVM)11,コマンドマスク論理部211および読み出しデータマスク論理部212以外は、セキュリティー制御部22に相当する。
【0065】
図9および図10に示されるように、図5におけるセキュリティー制御部22は、複数の比較部131〜137、オアゲート141,142、ナンドゲート143、アンドゲート144、セレクタ145,146、フリップフロップ147および有限状態機械150を有する。
【0066】
有限状態機械(Finite State Machine)150は、リセット状態から不揮発性メモリ11のアクセス可能を待ってLCAに格納されたロックコードを読み出し、セキュリティー判断を行って、不揮発性メモリ11に対するアクセス許可を行う。
【0067】
各比較部131〜137は、比較結果が一致すると『1』を出力するようになっている。ここで、比較部132は、不揮発性メモリ11からのロックコードとセキュリティーコードA(第1セキュリティーコード:試験セキュリティーコード)の比較を行う。なお、セキュリティーコードAは、例えば、後述する図17の0x1234hに対応する。
【0068】
また、比較部133および134は、不揮発性メモリ11からのロックコードとセキュリティーコードC1およびC2(第2セキュリティーコード:ユーザセキュリティーコード)の比較を行う。なお、セキュリティーコードC1およびC2は、例えば、図17の0xFFFFhおよび0xAA55hに対応する。
【0069】
ナンドゲート143は、比較部131および132の出力を受け取り、オアゲート141は、比較部133および134の出力を受け取り、また、アンドゲート144は、比較部131およびオアゲート141の出力を受け取り、ゲート143および144の出力は、セレクタ145に供給されている。
【0070】
セレクタ145は、例えば、図11に示すような複数のフリップフロップFF1〜FF4によるシリアルキーQ1〜Q4(モード信号mode)に従って、試験モードまたは通常モードが選択される。
【0071】
まず、フリップフロップFF1〜FF4に対して、データ入力(Data In)からシリアルデータを与えてクロック(Clock)により4ビットのシリアルキーQ1〜Q4を書き込む。
【0072】
そして、フリップフロップFF1〜FF4に格納されたシリアルキーQ1〜Q4を読み出してモード信号modeとして与え、試験/通常モードの選択を行う。なお、シリアルキーQ1〜Q4は4ビットに限定されるものではなく、様々なものを適用することができるのはいうまでもない。
【0073】
セレクタ(マルチプレクサ)146は、セレクタ145の出力により制御され、セレクタ146の出力は、フリップフロップ147を介してセキュリティフラグSFとして、コマンドマスク論理部211および読み出しデータマスク論理部212に供給される。
【0074】
コマンドマスク論理部211は、オアゲート142の出力およびセキュリティフラグSFを受け取るアンドゲート112、並びに、アンドゲート112の出力により制御されるセレクタ111を有する。
【0075】
オアゲート142は、比較部135および136の出力を受け取るが、比較部135および136は、それぞれコマンド入力端子を介して供給される信号DIN[7:0]と信号0xA0および0x30を比較する。また、セレクタ111は、信号DIN[7:0]および信号0xF0を受け取って、アンドゲート112の出力により選択された信号を不揮発性メモリ11に供給する。
【0076】
ここで、比較部135および136に供給する信号0xA0および0x30、並びに、セレクタ111に供給する信号0xF0は、JEDEC標準型のコマンド方式を想定したものになっているが、これに限定されるものではない。
【0077】
読み出しデータマスク論理部212は、比較部137の出力を反転入力で受け取ると共にセキュリティフラグSFを受け取るアンドゲート122、並びに、アンドゲート122の出力により制御されるセレクタ121を有する。なお、比較部137は、モード信号mode(例えば、シリアルキー)とCPUモード(AM4)を比較する。
【0078】
そして、本第1実施例の半導体装置において、セキュリティフラグSFが『0』のときは、許可コマンドが全て(all)になり、不揮発性メモリ11に対する消去/読み出し/書き込みの全てのアクセスが可能になる。
【0079】
一方、SFが『1』のときは、許可コマンドが全消去(Chip Erase)のみになり、不揮発性メモリ11の全消去だけが可能になり、他の読み出し/書き込み等のアクセスは禁止される。
【0080】
なお、シリアルキー(モード信号mode)は、例えば、マイコン製造者により管理され、半導体装置(マイコン)を試験モードにしたいときに、マイコン製造者が外部から入力する。
【0081】
図12は、図9および図10に示す半導体装置セキュリティー論理部の動作を説明するためのフローチャートである。まず、リセット状態において、例えば、後述するステップST104において試験モードに設定した場合には、シリアルキーQ1〜Q4を入力しておく。
【0082】
リセット(パワーオンリセット)すると、ステップST101において、不揮発性メモリ11の起動を待ち、ステップST102において、不揮発性メモリ11が起動したと判定すると、ステップST103に進んでLCAからロックコードを読み出す。
【0083】
次に、ステップST104に進んで、動作モードが試験モードか否かを判別する。ステップST104において、試験モードであると判別すると、ステップST105に進んで、セキュリティーコードA(試験セキュリティーコード)を読み出す。
【0084】
さらに、ステップST106に進んで、セキュリティーコードAがロックコードに一致するか否かを判別する。ステップST106において、セキュリティーコードAがロックコードに一致すると判別すると、ステップST107に進み、セキュリティーをオン状態にする。
【0085】
このとき、不揮発性メモリ11に対しては、チップの全消去のみが受け付け可能で、外部から不揮発性メモリ11に格納されたデータの読み出し等は行うことはできない。
【0086】
すなわち、試験モードにおいて、例えば、インターフェイス12に設定された試験セキュリティーコードと同じコードが、不揮発性メモリ11のロックコード格納領域LCAに書き込まれていると、セキュリティーがオンして全消去以外は行うことができない。
【0087】
一方、ステップST106において、セキュリティーコードAがロックコードに一致しないと判別すると、ステップST110に進み、セキュリティーをオフ状態にする。このとき、外部から不揮発性メモリ11に対して、読み出し,書き込みおよび消去等の全てのコマンドが受け付け可能になる。
【0088】
また、ステップST104において、試験モードではないと判別すると、すなわち、通常モードであると判別すると、ステップST108に進んで、セキュリティーコードC(ユーザセキュリティーコード)を読み出す。
【0089】
さらに、ステップST109に進んで、セキュリティーコードCがロックコードに一致するか否かを判別する。ステップST109において、セキュリティーコードCがロックコードに一致すると判別すると、ステップST110に進み、セキュリティーをオフ状態にする。
【0090】
一方、ステップST109において、セキュリティーコードCがロックコードに一致しないと判別すると、ステップST107に進み、セキュリティーをオン状態にする。
【0091】
そして、ステップST107またはST110によるセキュリティーの設定が行われると、CPU13、或いは、半導体装置の外部から不揮発性メモリ11に対するアクセスの許可(制限)が行われる。ここで、ステップST107またはST110によるセキュリティーの設定が行われるまで、CPU/外部からのアクセスは一切受け付けないようになっている。
【0092】
このように、本第1実施例の半導体装置(不揮発性メモリを有するマイコン)によれば、マイコン製造者の出荷前試験では、消去/読み出し/書き込みが行えるように、試験前や試験中にセキュリティーがオン状態にならないようにすることができる。
【0093】
また、例えばシステム製造者が、不揮発性メモリにプログラムコードの書き込みをするとき、LCAにセキュリティーコードA(試験セキュリティーコード)と同じ値を書き込まないでおけば、セキュリティーがオン状態にならないようにすることができる。
【0094】
さらに、システム製造者が不揮発性メモリにプログラムコードを書き終わった後、セキュリティーをオンに設定したら、つまりLCAにセキュリティーコードA(試験セキュリティーコード)と同じコードを書き込むと、プログラムコードを外部からのアクセスでは読み取られないようにしておくことができる。
【0095】
そして、一旦セキュリティーをオンにしたら、外部から悪意のある操作がなされた場合でも、全消去(Chip Erase)以外ではセキュリティーが外れることがないようにすることができる。さらに、一旦セキュリティーをオンにした後、市場でプログラムコードの修正が必要になったときには、システム製造者は、書き換え(全消去の後の書き換え)ができるようにし、その修正後、またセキュリティーをオンにすることもできる。
【0096】
図13および図14は、図5に示す半導体装置におけるセキュリティー論理部の第2実施例を示すブロック図であり、前述した図5における破線領域MPに対応する。
【0097】
図13および図14と、前述した図9および図10との比較から明らかなように、本第2実施例の半導体装置では、不揮発性メモリ11からのロックコードとセキュリティーコードBの比較を行う比較部138が設けられている。
【0098】
なお、セキュリティーコードB(第3セキュリティーコード:初期解析セキュリティーコード)は、例えば、後述する図17の0x5678hに対応する。
【0099】
さらに、本第2実施例の半導体装置では、比較部139および140、ノアゲート151、アンドゲート152および153、セレクタ154、並びに、フリップフロップ155も設けられている。
【0100】
比較部139は、不揮発性メモリ11のテストモード入力に供給される信号である試験モードと初期解析に使いたい動作モードの比較を行って、その出力を読み出しデータマスク論理部212に供給する。
【0101】
比較部140は、シリアルキー(モード信号mode)が試験モードに一致するかを比較するためのもので、その出力は、比較部131および138の出力と共に、3入力アンドゲート153に供給される。
【0102】
セレクタ154は、アンドゲート153の出力により制御され、その出力は、フリップフロップ155を介して解析可能化信号AESとしてコマンドマスク論理部211および読み出しデータマスク論理部212に供給される。
【0103】
読み出しデータマスク論理部212は、セレクタ121およびアンドゲート122に加えて、アンドゲート123およびオアゲート124を有する。アンドゲート123は、解析可能化信号AESおよび比較部139の出力を受け取り、また、オアゲート124は、アンドゲート123の出力および比較部137の出力を受け取る。なお、オアゲート124の出力は、アンドゲート122の反転入力に供給される。
【0104】
そして、本第2実施例の半導体装置において、セキュリティフラグSFが『0』で解析可能化信号AESが『0』のときは、全コマンドが許可となる。すなわち、不揮発性メモリ11に対する消去/読み出し/書き込みの全てのアクセスが可能(セキュリティーレベル0)になる。
【0105】
また、SFが『1』でAESが『0』のときは、許可コマンドが全消去(Chip Erase)のみになり、不揮発性メモリ11の全消去だけが可能(セキュリティーレベル2)になり、他の読み出し/書き込み等のアクセスは禁止される。
【0106】
さらに、SFが『1』でAESが『1』のときは、許可コマンドが全消去、並びに、初期解析に使いたいコマンド(初期解析用コマンド)のみになり、不揮発性メモリ11の全消去および初期解析用コマンドだけが可能(セキュリティーレベル1)になる。
【0107】
このように、本第2実施例の半導体装置によれば、セキュリティーコードAおよびCに加えて、セキュリティーコードBにより、試験モードにおいて、初期解析用コマンドの受け付けを可能にすることができる。
【0108】
なお、セキュリティーコードBは、1つの初期解析用コマンドに対応した1つに限定されるものではなく、例えば、複数のセキュリティーコードBによってさらに多くのセキュリティーレベルを設定することも可能である。
【0109】
図15は、図13および図14に示す半導体装置セキュリティー論理部の動作を説明するためのフローチャートである。また、図16は、図13および図14に示す半導体装置のセキュリティー論理部の第2実施例により追加される機能の一例を説明するための図である。
【0110】
図15と前述した図12との比較から明らかなように、図13および図14に示す第2実施例の半導体装置において、ステップST101〜ST110の処理は、実質的に第1実施例のものと同様である。
【0111】
ここで、ステップST107におけるセキュリティーのオン状態は、上述したセキュリティーレベル2に対応し、また、ステップST110におけるセキュリティーのオフ状態は、前述したセキュリティーレベル0に対応する。
【0112】
前述した図12では、ステップST106において、セキュリティーコードAがロックコードに一致しないと判別すると、ステップST110に進んで、セキュリティーをオフ状態にしたが、図15では、ステップST111に進む。
【0113】
すなわち、ステップST106において、セキュリティーコードAがロックコードに一致しないと判別すると、ステップST111に進んで、セキュリティーコードB(初期解析セキュリティーコード)を読み出してステップST112に進む。
【0114】
ステップST112において、セキュリティーコードBがロックコードに一致すると判別すると、ステップST113に進み、セキュリティーをオン状態(セキュリティーレベル1)にする。
【0115】
ここで、セキュリティーレベル1は、ステップST107における許可コマンドが全消去だけのセキュリティーレベル2(セキュリティーがオン状態)とは異なり、初期解析用コマンドも許可コマンドに含まれることになる。
【0116】
すなわち、試験モードにおいて、例えば、インターフェイス12に設定されたセキュリティーコードB(初期解析セキュリティーコード)と同じコードが、不揮発性メモリ11のロックコード格納領域LCAに書き込まれていると、全消去以外に、例えば、不良解析も行うことが可能になる。
【0117】
なお、ステップST112において、セキュリティーコードBがロックコードに一致しないと判別すると、ステップST110に進んで、セキュリティーをオフ状態(セキュリティーレベル0)にする。
【0118】
ここで、セキュリティーコードBがロックコードに一致して受け付け可能とされる初期解析用コマンドとしては、例えば、図16に示されるような追加機能を可能にする。
【0119】
すなわち、図16の例は、例えば、システム製造者が不揮発性メモリ11に書き込んだデータ自体を読み出すことはできないが、セクター単位(セクター0,セクター1,…)のメモリセルにおける閾値電圧Vtの分布を取得する機能を示している。
【0120】
具体的に、図16では、セクター3において、そのセクター3に書き込まれたデータに応じた閾値電圧とビット数との関係を示しており、例えば、データ『1』および『0』の閾値電圧になっているメモリセルの分布により不良解析を行う。
【0121】
すなわち、例えば、市場で不揮発性メモリを搭載したマイコンが不良になって、マイコン製造者に返品されたときに、不揮発性メモリ11のロックコード格納領域LCAにセキュリティーコードB(初期解析セキュリティーコード)と同じコードが書き込まれていれば、不揮発性メモリの全消去を行う前に、シリアルキー入力で試験モードにし、セクター単位の閾値電圧の分布による不良解析が可能になる。
【0122】
なお、セキュリティーコードBがロックコードに一致して受け付け可能とされる初期解析用コマンドは、上記のセクター単位の閾値電圧の分布以外に、様々なものを設計時に選ぶことができ、その数も1つに限定されるものではない。
【0123】
このように、本第2実施例の半導体装置によれば、前述した第1実施例の半導体装置の効果に加えて、もし、市場で不揮発性メモリの不良が発生した際は、システム製造者がマイコン製造者に所定の初期解析用コマンドに基づく不良解析を行わせるよう選択することができる。
【0124】
すなわち、マイコン製造者は、システム製造者が設定(許容)した初期解析セキュリティーコードに応じた不良解析を行うことが可能になる。なお、ここで言う不良解析とは、例えば、消去/読み出し/書き込みにより、メモリ内の異常なビットを特定し、或いは、異常電流を見つけることを意味する。
【0125】
図17は、本実施例の半導体装置に適用されるセキュリティーコードの例を説明するための図であり、また、図18は、本実施例の半導体装置に適用されるシステム製造者が書き込むロックコードの例とその効果を説明するための図である。
【0126】
さらに、図19は、本実施例の半導体装置における通常モードと試験モード別に各ロックコードの場合のコマンド受付可否を説明するための図である。そして、図20は、本実施例の半導体装置におけるロックコード格納領域のデータによる通常モードおよび試験モードのセキュリティー状態を説明するための図であり、図19のコード例を使って通常モードおよび試験モードとロックコード格納領域のデータとの関係を説明するものである。
【0127】
まず、図17に示されるように、半導体装置が16ビットマイコンの場合、セキュリティーコードA(第1セキュリティーコード:試験セキュリティーコード)は、例えば、0x1234hに設定される。
【0128】
また、セキュリティーコードC(C1,C2:第2セキュリティーコード:ユーザセキュリティーコード)は、例えば、0xFFFFh,0xAA55hに設定される。
【0129】
さらに、セキュリティーコードB(第3セキュリティーコード:初期解析セキュリティーコード)は、例えば、0x5678hに設定される。なお、セキュリティーコードBも、試験モードにおけるセキュリティーを制御するという意味では、試験セキュリティーコードに含まれる。
【0130】
これらセキュリティーコードA,B,Cは、前述したように、例えば、インターフェイス12に対して製造段階でマスクにより焼き込むか、或いは、ヒューズの溶断等の電源クランプ処理により物理的に設定される。
【0131】
ここで、セキュリティーコードCに関して、例えば、不揮発性メモリ11の全消去(Chip Erase)を行うと、メモリセルアレイは全てデータ『1』になるので、ロックコード格納領域LCAも0xFFFFhになる。すなわち、不揮発性メモリ11の全消去後に、セキュリティーがオンにならないように、全消去のデータに対応するコード0xFFFFhをユーザセキュリティーコード(第2セキュリティーコード)に設定するのが好ましい。
【0132】
また、セキュリティーコードCに関して、例えば、マイコンをパッケージングした後の出荷前試験(FT試験:最終試験)では通常モードの扱いになる。そのため、例えば、FT試験でLCAが0xAA55になるようなパターンを使用する場合、それに対応してコード0xAA55をユーザセキュリティーコードに設定するのが好ましい。
【0133】
これにより、FT試験中にセキュリティーがオンにならず、例えば、試験の途中に使用したパターンの状態で再測にまわった場合でも、全消去を行ってセキュリティーを解除する手間が不要になる。
【0134】
セキュリティーコードAおよびBに関して、例えば、0xFFFFhは、試験中に行われる不揮発性メモリ11の全消去によってセキュリティーがオンしてしまうことになるため、使用することはできない。
【0135】
また、セキュリティーコードAおよびBは、例えば、プロセスアウト後のメモリセルデータから遠い値にしておく。例えば、不揮発性メモリがフラッシュメモリの場合、プロセスアウト後ではメモリセルのデータはどちらかというと全て『1』に近い状態になっているため、ロックコード格納領域LCAも0xFFFFhに近い値になっている。
【0136】
すなわち、フラッシュメモリのロックコード格納領域LCAに0xFFFFhに近い値(例えば、0xFFFEhなど)を設定すると、試験を行う際、起動後にロックコードと試験セキュリティーコードが一致してセキュリティーがオンになる確率が高くなる。そこで、セキュリティーコードAおよびBは、例えば、0xFFFFhから遠い値に設定するのが好ましい。
【0137】
図18は、ユーザ(例えば、システム製造者)に通知するコード、すなわち、ユーザがロックコード格納領域LCAに設定するロックコードの例a〜cとセキュリティー・初期解析効果の例を示している。
【0138】
すなわち、図18〜図20に示されるように、例えば、システム製造者(ユーザ)は、図17のセキュリティーコードA〜Cの通知を受け、ロックコード格納領域LCAにロックコードa〜cを書き込む。
【0139】
具体的に、セキュリティーコードA〜Cが図17の具体例の場合、まず、LCAに対してロックコードa(x1234h)を書き込むと、セキュリティーコードAに一致するため、通常モードおよび試験モードのいずれのモードにおいても、全消去(Chip Erase)コマンドのみしか受け付けない。
【0140】
すなわち、ロックコードaは、1番強固なセキュリティーレベル(レベル2)で、通常モードだけでなく試験モードにおいても、セキュリティーを解除することができず、マイコン製造者に不良返品された際でも、全消去しか行うことができない。
【0141】
次に、LCAに対してロックコードb(x5678h)を書き込むと、セキュリティーコードBに一致するため、通常モードでは全消去コマンドのみしか受け付けないが、試験モードでは、全消去コマンドおよび初期解析コマンドを受け付ける。
【0142】
すなわち、ロックコードbは、マイコン製造者にマイコンが不良返品された際、試験モードにすることで、全消去を行わなくても、例えば、図16を参照して説明したセクター単位の閾値電圧の分布による不良解析を行うことが可能になる。
【0143】
さらに、LCAに対してロックコードc(0xFFFFh,0xAA55h、或いは、x1234hおよびx5678h以外のコード)を書き込むと、通常モードでは全消去コマンドのみしか受け付けないが、試験モードでは、書き込み/読み出し/消去の全コマンドを受け付ける。
【0144】
すなわち、ロックコードcは、1番低いセキュリティーレベル(レベル0)で、マイコン製造者にマイコンが不良返品された際、試験モードにすることで、全消去を行わなくても、初期解析を完全に行うことが可能になる。
【0145】
なお、通常モードから試験モードへの切り替えは、前述したように、例えば、マイコン製造者がマイコンに対してシリアルキーを与えること等で、パワーオンリセット時に試験モードにすることができる。
【0146】
図21および図22は、本実施例の半導体装置におけるセキュリティーコードおよびロックコードを時系列的に説明するための図であり、上述した説明を、マイコン製造者,システム製造者および最終ユーザに分けて時系列的に示したものである。
【0147】
すなわち、図21および図22は、マイコン製造者が製造したマイコンに搭載された不揮発性メモリに対して、システム製造者がプログラムコードを書き込み、そのマイコンを搭載した製品が市場に提供される様子を示している。
【0148】
さらに、その製品が最終ユーザに渡り、そこで、システム製造者がプログラムコードの修正(アップデート)を行い、或いは、その製品に不具合が生じて、製品に搭載されたマイコンがシステム製造者を介してマイコン製造者に返品される場合を示している。
【0149】
まず、マイコン製造者は、工程P1の設計時〜工程P5の出荷までを行って、製品(不揮発性メモリ搭載マイコン)がシステム製造者に渡される。システム製造者は、工程P8で不揮発性メモリに対してプログラムコードを書き込み、工程P7でセキュリティーをかける。
【0150】
ここで、システム製造者は、工程P7において、前に図17〜図19を参照して説明したように、設定するセキュリティーレベルに対応したロックコードを不揮発性メモリのロックコード格納領域LCAに書き込む。
【0151】
さらに、システム製造者によりプログラムコードが書き込まれた不揮発性メモリを搭載したマイコンは、最終製品(例えば、マイコンを使用した家電製品や自動車等)として市場において最終ユーザに提供される。
【0152】
ここで、工程P8のように、最終ユーザは、システム製造者がLCAにロックコードa〜cのいずれを書き込んでいても、通常モードであるためセキュリティーがかかっており、外部からプログラムコードを読み出し、或いは、書き換える(書き込む)ことはできない。
【0153】
また、工程P9のように、例えば、システム製造者がプログラムコードの修正(アップデート)をする場合には、全消去を行った後に新たなプログラムコードを書き込み、その後、LCAにロックコードを書き込むことでセキュリティーをかけることができる。
【0154】
工程P10は、例えば、市場でマイコンを搭載した最終製品が不良になって、その不良とされたマイコンがシステム製造者に返品された場合を示す。また、工程P11は、その不良とされたマイコンがシステム製造者からマイコン製造者に返品された場合を示す。
【0155】
このとき、システム製造者は、工程P10のように、通常モードなので、セキュリティーはオンのままなので、まずはフラシュメモリを全消去するしかなく、不良発生状態の確認はできない。
【0156】
これに対して、マイコン製造者は、工程P11のように、例えば、外部からシリアルキーを入力して試験モードにすることにより、システム製造者が設定したセキュリティーレベルに対応した試験を行うことができるようになっている。
【0157】
すなわち、図18〜図20を参照して説明したように、セキュリティーコードA〜Cが図17の具体例の場合、まず、LCAに対してx1234hが書き込まれていると、そのロックコードはセキュリティーコードAに一致するため、試験モードにおいても、全消去しかできず、不良発生状態の確認はできない。
【0158】
また、LCAに対してx5678hが書き込まれていると、そのロックコードはセキュリティーコードBに一致するため、試験モードでは、全消去コマンド以外に初期解析コマンドを受け付けることができる。すなわち、試験モードにおいて、全消去を行わなくても、例えば、セクター単位の閾値電圧の分布による不良解析を行うことが可能になる。
【0159】
さらに、LCAに対して0xFFFh,0xAA55h、或いは、x1234hおよびx5678h以外のコードが書き込まれていると、試験モードでは、セキュリティーが解除される。すなわち、試験モードにおいて、書き込み/読み出し/消去の全コマンドを受け付けることになる。
【0160】
なお、この場合、試験モードにおいて、システム製造者が不揮発性メモに書き込んだプログラムコードは、マイコン製造者により自由にアクセス可能になる。すなわち、システム製造者は、不揮発性メモに書き込んだプログラムコードがマイコン製造者により自由にアクセされることを許容した上で、マイコン製造者にマイコンを返品することになる。
【0161】
以上において、不揮発性メモリは、フラッシュメモリに限定されるものではなく、EEPROM等の他の不揮発性メモリであってもよく、また、半導体装置も不揮発性メモリを搭載したマイコンに限定されるものではない。
【0162】
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
(付記1)
不揮発性メモリと、該不揮発性メモリに対するデータの受け渡しを行うインターフェイスと、を有する半導体装置であって、前記インターフェイスは、
予め設定された複数のセキュリティーコードおよび前記不揮発性メモリの特定エリアに書き込まれたロックコードに従って、前記不揮発性メモリに書き込まれたデータのセキュリティーレベルを制御するセキュリティー論理部を有することを特徴とする半導体装置。
【0163】
(付記2)
付記1に記載の半導体装置において、
前記セキュリティーコードは、第1セキュリティーコードおよび第2セキュリティーコードを含み、
前記セキュリティー論理部は、
前記半導体装置の試験を行う試験モードにおいて、前記第1セキュリティーコードが前記ロックコードに一致すればセキュリティーをオンして不一致ならばオフし、
前記半導体装置を使用する通常モードにおいて、前記第2セキュリティーコードが前記ロックコードに一致すればセキュリティーをオフして不一致ならばオンすることを特徴とする半導体装置。
【0164】
(付記3)
付記2に記載の半導体装置において、
前記セキュリティーコードは、さらに、第3セキュリティーコードを含み、
前記セキュリティー論理部は、前記試験モードにおいて、前記第1セキュリティーコードが前記ロックコードに不一致で、前記第3セキュリティーコードが前記ロックコードに一致すれば、セキュリティーを、一部機能を除いてオンし、不一致ならばオフすることを特徴とする半導体装置。
【0165】
(付記4)
付記3に記載の半導体装置において、
前記セキュリティー論理部は、前記試験モードにおいて、前記第1セキュリティーコードが前記ロックコードに不一致で、前記第3セキュリティーコードが前記ロックコードに一致したとき、予め定められた機能のみを実行可能にすることを特徴とする半導体装置。
【0166】
(付記5)
付記4に記載の半導体装置において、
前記予め定められた機能は、前記半導体装置の不良解析において、初期解析用のコマンドにより実行される機能であることを特徴とする半導体装置。
【0167】
(付記6)
付記3〜5のいずれか1項に記載の半導体装置において、
前記第2セキュリティーコードは、前記不揮発性メモリを全消去したときのデータに対応するコードを含むことを特徴とする半導体装置。
【0168】
(付記7)
付記6に記載の半導体装置において、
前記第1セキュリティーコードおよび前記第3セキュリティーコードは、前記不揮発性メモリを全消去したときのデータに対応するコードとは異なるコードになっていることを特徴とする半導体装置。
【0169】
(付記8)
付記3〜5のいずれか1項に記載の半導体装置において、
前記第2セキュリティーコードは、前記半導体装置の出荷前試験で使用する試験パターンに対応するコードを含むことを特徴とする半導体装置。
【0170】
(付記9)
付記8に記載の半導体装置において、
前記第1セキュリティーコードおよび前記第3セキュリティーコードは、前記半導体装置の出荷前試験で使用する試験パターンに対応するコードとは異なるコードになっていることを特徴とする半導体装置。
【0171】
(付記10)
付記1〜9のいずれか1項に記載の半導体装置において、
前記通常モードから前記試験モードへのモード切り換えは、予め定められたコードを外部から入力することにより実行されることを特徴とする半導体装置。
【0172】
(付記11)
付記1〜10のいずれか1項に記載の半導体装置において、
前記特定エリアは、前記不揮発性メモリのアドレス空間の中で最後に消去される領域であることを特徴とする半導体装置。
【0173】
(付記12)
付記11に記載の半導体装置において、
前記不揮発性メモリは、複数のバンクを有し、
前記特定エリアは、前記複数のバンクの中で最後に消去されるバンクに含まれることを特徴とする半導体装置。
【0174】
(付記13)
付記1〜12のいずれか1項に記載の半導体装置において、
前記セキュリティーコードは、前記半導体装置の製造時におけるマスク焼き込み、または、電源クランプによって、前記インターフェイスに予め設定されることを特徴とする半導体装置。
【0175】
(付記14)
付記1〜13のいずれか1項に記載の半導体装置において、
起動後のセキュリティーは、デフォルトでオン状態になっていることを特徴とする半導体装置。
【0176】
(付記15)
付記1〜14のいずれか1項に記載の半導体装置において、さらに、
CPUを有し、
前記不揮発性メモリに書き込まれたデータは、前記CPUを制御して所定の機能を実現するプログラムコードであることを特徴とする半導体装置。
【符号の説明】
【0177】
1 半導体装置(マイクロコントローラ:マイコン)
11 不揮発性メモリ(eNVM)
12 インターフェイス(I/F)
13 CPU(Central Processing Unit)
14 オンチップデバッガ(OCD:On Chip Debugger)
15 入出力部(I/O)
16 ポートマルチプレクサ
20 セキュリティー論理部
21 データマスク部
22 セキュリティー制御部
23 マルチプレクサ
211 コマンドマスク論理部
212 読み出しデータマスク論理部
【特許請求の範囲】
【請求項1】
不揮発性メモリと、該不揮発性メモリに対するデータの受け渡しを行うインターフェイスと、を有する半導体装置であって、前記インターフェイスは、
予め設定された複数のセキュリティーコードおよび前記不揮発性メモリの特定エリアに書き込まれたロックコードに従って、前記不揮発性メモリに書き込まれたデータのセキュリティーレベルを制御するセキュリティー論理部を有することを特徴とする半導体装置。
【請求項2】
請求項1に記載の半導体装置において、
前記セキュリティーコードは、第1セキュリティーコードおよび第2セキュリティーコードを含み、
前記セキュリティー論理部は、
前記半導体装置の試験を行う試験モードにおいて、前記第1セキュリティーコードが前記ロックコードに一致すればセキュリティーをオンして不一致ならばオフし、
前記半導体装置を使用する通常モードにおいて、前記第2セキュリティーコードが前記ロックコードに一致すればセキュリティーをオフして不一致ならばオンすることを特徴とする半導体装置。
【請求項3】
請求項2に記載の半導体装置において、
前記セキュリティーコードは、さらに、第3セキュリティーコードを含み、
前記セキュリティー論理部は、前記試験モードにおいて、前記第1セキュリティーコードが前記ロックコードに不一致で、前記第3セキュリティーコードが前記ロックコードに一致すれば、セキュリティーを、一部機能を除いてオンし、不一致ならばオフすることを特徴とする半導体装置。
【請求項4】
請求項3に記載の半導体装置において、
前記セキュリティー論理部は、前記試験モードにおいて、前記第1セキュリティーコードが前記ロックコードに不一致で、前記第3セキュリティーコードが前記ロックコードに一致したとき、予め定められた機能のみを実行可能にすることを特徴とする半導体装置。
【請求項5】
請求項4に記載の半導体装置において、
前記予め定められた機能は、前記半導体装置の不良解析において、初期解析用のコマンドにより実行される機能であることを特徴とする半導体装置。
【請求項6】
請求項1〜5のいずれか1項に記載の半導体装置において、
前記特定エリアは、前記不揮発性メモリのアドレス空間の中で最後に消去される領域であることを特徴とする半導体装置。
【請求項7】
請求項6に記載の半導体装置において、
前記不揮発性メモリは、複数のバンクを有し、
前記特定エリアは、前記複数のバンクの中で最後に消去されるバンクに含まれることを特徴とする半導体装置。
【請求項8】
請求項1〜7のいずれか1項に記載の半導体装置において、
前記セキュリティーコードは、前記半導体装置の製造時におけるマスク焼き込み、または、電源クランプによって、前記インターフェイスに予め設定されることを特徴とする半導体装置。
【請求項9】
請求項1〜8のいずれか1項に記載の半導体装置において、
起動後のセキュリティーは、デフォルトでオン状態になっていることを特徴とする半導体装置。
【請求項10】
請求項1〜9のいずれか1項に記載の半導体装置において、さらに、
CPUを有し、
前記不揮発性メモリに書き込まれたデータは、前記CPUを制御して所定の機能を実現するプログラムコードであることを特徴とする半導体装置。
【請求項1】
不揮発性メモリと、該不揮発性メモリに対するデータの受け渡しを行うインターフェイスと、を有する半導体装置であって、前記インターフェイスは、
予め設定された複数のセキュリティーコードおよび前記不揮発性メモリの特定エリアに書き込まれたロックコードに従って、前記不揮発性メモリに書き込まれたデータのセキュリティーレベルを制御するセキュリティー論理部を有することを特徴とする半導体装置。
【請求項2】
請求項1に記載の半導体装置において、
前記セキュリティーコードは、第1セキュリティーコードおよび第2セキュリティーコードを含み、
前記セキュリティー論理部は、
前記半導体装置の試験を行う試験モードにおいて、前記第1セキュリティーコードが前記ロックコードに一致すればセキュリティーをオンして不一致ならばオフし、
前記半導体装置を使用する通常モードにおいて、前記第2セキュリティーコードが前記ロックコードに一致すればセキュリティーをオフして不一致ならばオンすることを特徴とする半導体装置。
【請求項3】
請求項2に記載の半導体装置において、
前記セキュリティーコードは、さらに、第3セキュリティーコードを含み、
前記セキュリティー論理部は、前記試験モードにおいて、前記第1セキュリティーコードが前記ロックコードに不一致で、前記第3セキュリティーコードが前記ロックコードに一致すれば、セキュリティーを、一部機能を除いてオンし、不一致ならばオフすることを特徴とする半導体装置。
【請求項4】
請求項3に記載の半導体装置において、
前記セキュリティー論理部は、前記試験モードにおいて、前記第1セキュリティーコードが前記ロックコードに不一致で、前記第3セキュリティーコードが前記ロックコードに一致したとき、予め定められた機能のみを実行可能にすることを特徴とする半導体装置。
【請求項5】
請求項4に記載の半導体装置において、
前記予め定められた機能は、前記半導体装置の不良解析において、初期解析用のコマンドにより実行される機能であることを特徴とする半導体装置。
【請求項6】
請求項1〜5のいずれか1項に記載の半導体装置において、
前記特定エリアは、前記不揮発性メモリのアドレス空間の中で最後に消去される領域であることを特徴とする半導体装置。
【請求項7】
請求項6に記載の半導体装置において、
前記不揮発性メモリは、複数のバンクを有し、
前記特定エリアは、前記複数のバンクの中で最後に消去されるバンクに含まれることを特徴とする半導体装置。
【請求項8】
請求項1〜7のいずれか1項に記載の半導体装置において、
前記セキュリティーコードは、前記半導体装置の製造時におけるマスク焼き込み、または、電源クランプによって、前記インターフェイスに予め設定されることを特徴とする半導体装置。
【請求項9】
請求項1〜8のいずれか1項に記載の半導体装置において、
起動後のセキュリティーは、デフォルトでオン状態になっていることを特徴とする半導体装置。
【請求項10】
請求項1〜9のいずれか1項に記載の半導体装置において、さらに、
CPUを有し、
前記不揮発性メモリに書き込まれたデータは、前記CPUを制御して所定の機能を実現するプログラムコードであることを特徴とする半導体装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公開番号】特開2012−155363(P2012−155363A)
【公開日】平成24年8月16日(2012.8.16)
【国際特許分類】
【出願番号】特願2011−11243(P2011−11243)
【出願日】平成23年1月21日(2011.1.21)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】
【公開日】平成24年8月16日(2012.8.16)
【国際特許分類】
【出願日】平成23年1月21日(2011.1.21)
【出願人】(308014341)富士通セミコンダクター株式会社 (2,507)
【Fターム(参考)】
[ Back to top ]