(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0013】
1.実施の形態の概要
先ず、本願において開示される実施の形態について概要を説明する。ここでの概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
【0014】
〔1〕<通信とメモリアクセスの排他制御>
半導体装置(1,1A)は、外部と通信可能な通信部(61)と、所定の記憶部(31,21)と、前記通信部による通信と前記所定の記憶部へのアクセスとの排他制御を行う排他制御部(91,92)と、を有する。
【0015】
これによれば、通信部による通信と所定の記憶部へのアクセスとが排他制御されるから、正規の通信動作中にバックグラウンドでその通信機能を経由して、不正機能が所定の記憶部にインストールされたり、さらには、所定の記憶部から秘匿情報が読み出されて盗み取られたりすることを防止することができる。
【0016】
〔2〕<通信クロックを用いた排他制御>
項1において、前記排他制御部は、前記通信部が通信に用いる通信クロック(CKC)の状態を検出する検出回路(51,52)を有し、前記検出回路による前記通信部の通信クロックの活性状態に応じて前記所定の記憶部へのアクセスを制限し、前記検出回路による前記通信部の通信クロックの非活性状態に応じて前記所定の記憶部へのアクセス制限を解除する。
【0017】
これによれば、検出回路での通信クロックの活性/非活性というハードウェア面での状態に基づいて上記排他制御を行うので、通信中の不正アクセスに対するソフトウェア面での対策を補強するという意義を有する。
【0018】
〔3〕<通信クロックの発振、発振停止の判定>
項2において、前記通信部が通信に用いる通信クロックを生成する通信クロック生成部(62)を有する。前記排他制御部(91,92)は、前記通信部の通信クロックの状態を検出する検出回路(51,52)を有し、前記検出回路による前記通信クロックの発振停止の検出に応じて前記所定の記憶部へのアクセス制限を解除し、前記検出回路による前記通信クロックの発振再開の検出に応じて前記所定の記憶部へのアクセスを制限する。
【0019】
これによれば、半導体装置が通信クロック生成部を備える場合には、前記クロック生成回路による通信クロックの発振/発振停止というハードウェア面での状態の検出結果に基づいて上記排他制御を行うので、通信中の不正アクセスに対するソフトウェア面での対策を補強するという意義を有する。
【0020】
〔4〕<通信レートを規定する通信クロック>
項2又は3において、前記通信クロックは通信レートを規定するクロック信号(CKC)である。
【0021】
これによれば、通信レートを規定する通信クロックに対する発振停止/発振再開の検出は高精度に且つ短時間で行う事ができるので、通信クロックに対する検出誤りを防止することができ、上記通信とアクセスの排他制御に対する確実性を容易に保証することができる。
【0022】
〔5〕<通信時に書き込み禁止>
項1において、前記所定の記憶部へのアクセス制限は、前記所定の記憶部(31)に対する書き込み動作の禁止であり、前記通信部がダウンロードしたデータを一時的に格納する一時記憶部を前記所定の記憶部とは別に有する。
【0023】
これによれば、通信部による一時記憶部へのダウンロード中にバックグラウンドでその通信機能を経由して不正プログラムなどが所定の記憶部にインストールされることはない。一時記憶部にダウンロードされたプログラムなどを所定の記憶部に書込むときは通信部の通信動作は不可能にされているから、その書き込みに乗じて通信部から不正なプログラムやデータが入り込んで一緒に格納され、或いはすりかえられて格納される事態の発生を抑制することができる。また、一時記憶部に不所望に入り込んだりした不正プログラムが、所定の記憶部に対する正規の書込み処理に乗じて、通信部から不正なプログラムやデータを取り込んで所定に記憶部に書き込むような所謂バックドア(Back Door)の操作を行おうとしてもその処理は阻まれる。要するに、不所望なバックドア操作による被害が通信中に拡大されることを防止することができる。更に具体的には、通信部による一時記憶部へのダウンロード中にバックグラウンドでその通信機能を経由して不正プログラムなどが一時記憶部に入り込んだとしても、ダウンロードと所定の記憶部への書込みとを2ステップで行うので、一時記憶部に入り込んだ不正プログラムそれ自体が所定の記憶部に格納されてしまうことは、ハッシュのようなデータチェックなどのその他のプロテクト手段を講ずる時間的な余裕があるので、阻むことが容易になる。
【0024】
〔6〕<通信時に読み出し禁止>
項1において、前記所定の記憶部へのアクセス制限は、前記所定の記憶部に対する読み出し動作の禁止である。
【0025】
これによれば、所定の記憶部に対する読み出し動作中はこれに並行した通信部の通信動作は不可能にされているので、所定の記憶部から秘匿情報が読み出されても、これがそのまま不所望に通信部から外部に漏洩する事態の発生を防止することができる。
【0026】
〔7〕<不揮発性メモリ>
項5又は6において、前記所定の記憶部は電気的に書換え可能な不揮発性メモリ(31)である。
【0027】
これによれば、揮発性メモリに不正なプログラムなどが入り込んでもシステムリセット又はメモリクリアされる限りでは、その影響は拡大し難い。一方、不揮発性メモリに不正プログラムなどが一旦入り込むと、その被害を累積的に拡大させるのが容易である。この点で、アクセス制限対象を書き換え可能な不揮発性メモリとすることの意義は大きい。
【0028】
〔8〕<メモリコントローラ>
項5又は6において前記排他制御部(91)は、アクセス要求に応答して前記所定の記憶部へのメモリインタフェース制御を行うメモリコントローラ(41)と、前記通信クロックの状態を検出し、発振停止の状態を検出した場合には前記メモリコントローラのメモリインタフェース動作を可能とし、前記通信クロックの発振中の状態を検出した場合には前記メモリコントローラのメモリインタフェース動作を前記アクセス制限に従って不可能とする検出回路(51,52)と、を有する。
【0029】
これによれば、メモリコントローラを流用して排他制御を行うことができる。
【0030】
〔9〕<メモリマネージメントユニット>
項5又は6において前記排他制御部(92)は、前記所定の記憶部のマッピングアドレスに対するメモリ保護機能を有するメモリマネージメントユニット(42)と、前記通信クロックの状態を検出し、発振停止の状態を検出した場合には前記メモリマネージメントユニットに対して前記所定の記憶部にマッピングされたアドレスに対するアドレス変換を可能とし、前記通信クロックの発振中の状態を検出した場合には前記メモリマネージメントユニットに対して前記所定の記憶部にマッピングされたアドレスに対するアドレス変換を前記アクセス制限に従って不可能とする検出回路(51,52)と、を有する。
【0031】
これによれば、メモリマネージメントユニットを流用して排他制御を行うことができる。
【0032】
〔10〕<通信とメモリアクセスの排他制御によるアクセス制限方法>
アクセス制限方法は、外部と通信可能な通信部による通信動作中は所定の記憶部へのアクセスを制限し、前記通信部による通信動作の休止中は前記所定の記憶部へのアクセス制限を解除することによって、前記通信部による通信と前記所定の記憶部へのアクセスとの排他制御を行う。
【0033】
これによれば、項1と同様の効果を得る。
【0034】
〔11〕<通信クロックを用いた排他制御>
項10において、前記通信部(61)が通信に用いる通信クロック(CKC)の活性状態を検出回路(51,52)で検出することに応じて前記所定の記憶部(31,32)へのアクセスを制限し、前記通信クロックの非活性状態を前記検出回路で検出することに応じて前記所定の記憶部へのアクセス制限を解除する。
【0035】
これによれば、項2と同様の効果を得る。
【0036】
〔12〕<通信クロックの発振、発振停止の判定>
項10において、前記通信部が通信に用いる通信クロックを生成する通信クロック生成部(62)における前記通信クロックの発振停止を検出回路で検出することに応じて前記所定の記憶部へのアクセス制限を解除し、前記通信クロックの発振再開を前記検出回路で検出することに応じて前記所定の記憶部へのアクセスを制限する。
【0037】
これによれば、項3と同様の効果を得る。
【0038】
〔13〕<通信レートを規定する通信クロック>
項12において、前記通信クロックは通信レートを規定するクロック信号(CKC)である。
【0039】
これによれば、項4と同様の効果を得る。
【0040】
〔14〕<通信時に書き込み禁止>
項10において、前記アクセス制限として前記所定の記憶部(31)に対する書き込み動作が禁止されている最中に、前記通信部が一時記憶部にダウンロードしたデータを、前記所定の記憶部に対する書き込み動作の禁止が解除されてから前記所定の記憶部に書き込む。
【0041】
これによれば、項5と同様の効果を得る。
【0042】
〔15〕<通信時に読み出し禁止>
項10において、前記通信クロックの発振状態では前記アクセス制限として前記所定の記憶部(31,21)に対する読み出し動作を禁止し、前記通信クロックの発振停止の状態で前記所定の記憶部に対する読み出し動作を可能にする。
【0043】
これによれば、項6と同様の効果を得る。
【0044】
〔16〕<不揮発性メモリ>
項14又は15において、前記所定の記憶部は電気的に書換え可能な不揮発性メモリ(31)である。
【0045】
これによれば、項7と同様の効果を得る。
【0046】
〔17〕<メモリコントローラによるアクセス制限の制御>
項14又は15において、前記通信クロックの発振停止の状態を検出回路で検出した場合には、アクセス要求に応答して前記所定の記憶部へのメモリインタフェース制御を行うメモリコントローラ(41)のメモリインタフェース動作を可能とし、前記通信クロックの発振中の状態を前記検出回路で検出した場合には、前記メモリコントローラのメモリインタフェース動作を前記アクセス制限に従って不可能とする。
【0047】
これによれば、項8と同様の効果を得る。
【0048】
〔18〕<メモリマネージメントユニットによるアクセス制限の制御>
項14又は15において、前記通信クロックの発振停止の状態を検出回路で検出した場合には、前記所定の記憶部のマッピングアドレスに対するメモリ保護機能を有するメモリマネージメントユニット(42)に対して前記所定の記憶部にマッピングされたアドレスに対するアドレス変換を可能とし、前記通信クロックの発振中の状態を前記検出回路で検出した場合には、前記メモリマネージメントユニットに対して前記所定の記憶部にマッピングされたアドレスに対するアドレス変換を前記アクセス制限に従って不可能とする。
【0049】
これによれば、項9と同様の効果を得る。
【0050】
2.実施の形態の詳細
実施の形態について更に詳述する。
【0051】
《1.通信動作とメモリアクセス動作のメモリコントローラによる排他制御》
図1には半導体装置の一例であるマイクロコンピュータの概略的な構成が例示される。同図に示されるマイクロコンピュータ(MCU)1は、特に制限されないが、CMOS半導体集積回路製造技術によって単結晶シリコンのような1個の半導体基板に形成される。
【0052】
マイクロコンピュータ1は、CPU(中央処理装置)11、RAM(Random Access Memory)21、フラッシュメモリ31、メモリコントローラ41、アクセス許可回路51、発振停止確認回路52、通信回路61、通信用発振器62、メイン発振器71、内部バス81、及び図示を省略する割込みコントローラなどを有する。CPU11は内部バス81を介してRAM21、フラッシュメモリ31、メモリコントローラ41、及び通信回路61をアクセスする。
【0053】
CPU11は、フェッチした命令を解読して命令実行を制御する命令制御部及び命令制御部の制御に基づく演算処理を行う実行部とを有し、所定の命令セットを用いて記述されたプログラムを実行する。
【0054】
RAM21はCPU11のワーク領域又はデータ一時記憶領域などに用いられる揮発性メモリであり、例えばSRAMなどによって構成される。
【0055】
通信回路61はマイクロコンピュータ1の外部と通信可能な回路であって、例えば、ユニバーサルシリアルバス、シリアルコミュニケーションインタフェース、又はIIC(Inter Integrated Circuit)バスインタフェース、又はシリアルペリフェラルインタフェースなどの通信方式による外部インタフェース機能を有する。この通信回路61における通信に用いるクロック、即ち、通信レートを規定する高精度のクロック信号(通信クロック)CKCは通信用発振器62を用いて生成する。メイン発振器71は上記通信クロックCKC以外のクロック信号を生成し、例えば内部同期用の基準クロック信号CKSを生成してマイクロコンピュータ1内のクロック同期回路にそれぞれ供給する。通信用発振器62及びメイン発振器71はマイクロコンピュータ1のパワーオンリセットによって発振動作を開始する。また、通信用発振器62の発振動作はCPU11によって停止と再開を制御することが可能にされる。通信回路61の通信条件の設定、送信イネーブルの指示は例えばCPU11が行い、受信データの処理は、例えば図示を省略する割込みコントローラへの受信割り込み要求を介してCPU11の割込み処理に委ねる。
【0056】
フラッシュメモリ31はCPU11が実行するプログラムやデータを書き換え可能に記憶する不揮発性記憶部の一例を成し、不揮発性記憶素子の電荷蓄積領域にトラップされる電子の量に応じて閾値電圧が決定される記憶形式を持つ。
【0057】
メモリコントローラ41はCPU11からのフラッシュメモリ31に対するアクセス要求に応答して、フラッシュメモリ31に対する記憶情報の読み出し及び書き換えのためのメモリ制御を行う。読み出しのためのメモリ制御では、選択した不揮発性記憶素子から得られる読み出し情報を増幅して取得するための制御を行う。書き換えのためのメモリ制御は、プログラム処理とイレーズ処理である。例えばイレーズ処理では書き換え対象の不揮発性記憶素子に消去電圧を与えて閾値電圧の低い消去状態にする電圧印加及びタイミング制御を行う。プログラム処理では書き換え対象の不揮発性記憶素子に書込み電圧を与えて閾値電圧の高い書込み状態にする電圧印加及びタイミング制御を行う。更に、メモリコントローラ41はアクセス許可回路51及び発振停止確認回路52と共に排他制御部91を実現する。ここに示される排他制御部91は、通信回路61による通信とフラッシュメモリ31へのアクセスとを排他制御する機能を実現する一例として位置付けられる。以下、排他制御部91による排他制御について詳述する。
【0058】
発振停止確認回路52は通信クロックCKCの状態を検出する回路であり、通信クロックが活性状態であるか又は非活性状態であるかを判別する。例えば、発振停止確認回路52は通信クロックCKCが発振停止したか、そして、通信クロックCKCが発振再開したかを検出する。例えば発振停止確認回路52は発振停止の検出で検出信号DTCをハイレベルからローレベルに変化させ、発振再開の検出で検出信号DTCをローレベルからハイレベルに変化させる。
【0059】
アクセス許可回路51は、特に制限されないが、検出信号DTCによる通信クロックCKCの発振停止の検出に応じてメモリコントローラ41へのアクセス許可信号PRMをイネーブルに反転してフラッシュメモリ31へのアクセス制限を解除し、検出信号DTCによる通信クロックCKCの発振再開の検出に応じてメモリコントローラ41へのアクセス許可信号PRMをディスエーブルに反転してフラッシュメモリ31へのアクセスを制限する。
【0060】
メモリコントローラ41は、CPU11からフラッシュメモリ31の書き換え指示があった場合、アクセス許可信号PRMがイネーブルにされていることを条件に、フラッシュメモリ31の書き換え動作を行うことができる。書き換え指示を受けたとき、アクセス許可信号PRMがディスエーブルにされている場合には、アクセス許可信号PRMがイネーブルにされているのを待って、フラッシュメモリ31の書き換え動作を行うことができる。また、アクセス許可信号PRMがイネーブルにされている状態でフラッシュメモリ31の書き換え動作を行っている最中に、アクセス許可信号PRMがディスエーブルにされたときは、これに応答して、書き換え動作を中断する。メモリコントローラ41は、書き換え動作を中断した場合、例えば、その書き換え動作を途中から再開できるように必要な書き換え制御情報を自ら保持し、或いは、CPU11に書込みエラーを返す。
【0061】
また、メモリコントローラ41は、CPU11からフラッシュメモリ31の読み出し指示があった場合、アクセス許可信号PRMがイネーブルにされていることを条件に、フラッシュメモリ31の読み出し動作を行うことができる。読み出し指示を受けたとき、アクセス許可信号PRMがディスエーブルにされている場合には、アクセス許可信号PRMがイネーブルにされているのを待って、フラッシュメモリ31の読み出し動作を行うことができる。また、アクセス許可信号PRMがイネーブルにされている状態でフラッシュメモリ31の読み出し動作を行っている最中に、アクセス許可信号PRMがディスエーブルにされたときは、これに応答して、読み出し動作を中断する。メモリコントローラ41は、読み出し動作を中断した場合、例えば、その読み出し動作を途中から再開できるように必要な読み出し制御情報を自ら保持し、或いは、CPU11に読み出しエラーを返す。
【0062】
図2には通信回路61の通信動作とフラッシュメモリ31に対する書き換え動作との排他制御に関する回路の接続関係が例示される。CPU11が通信回路61を設定して通信回路61で受信した書き換えデータをRAM21に格納する。通信回路61の通信動作中は通信用発振器62で生成される通信クロックCKCに同期して通信動作が行われるから、発振停止確認回路52で通信クロックCKCのクロック変化が検出されることによって検出信号DTCがハイレベルにされ、これを受けるアクセス許可回路51はアクセス許可信号PRMをディスエーブルとし、メモリコントローラ41によるフラッシュメモリのアクセス制御が不可能にされている。したがって、通信回路61によるダウンロードデータを直接フラッシュメモリ31に書き込むことはできない。
【0063】
CPU11は書き換えデータをRAM21にダウンロードした後に、通信用発振器62の発振動作を停止させる。これによって通信クロックCKCのクロック変化が停止されると、検出信号DTCがローレベルにされ、これを受けるアクセス許可回路51はアクセス許可信号PRMをイネーブルとし、メモリコントローラ41によるフラッシュメモリのアクセス制御を可能にする。CPU11はRAM21に格納された書き換えデータでフラッシュメモリ31を書き換える指示を発行することにより、メモリコントローラ41はその書き換え指示にしたがってフラッシュメモリ31を書き換えることができる。書換えが行われているとき通信クロックCKCは発振停止されているから通信回路61による通信は不可能である。書き換え中に通信用発振器62の発振動作が再開されたとしても、その時点でアクセス許可信号PRMがディスエーブルに反転されるので、書き換え動作それ自体が中断されることになる。
【0064】
図3にはCPU11がフラッシュメモリ31の書換えを行おうとする場合の制御フローが例示される。CPU11が外部から書き換えデータをダウンロードしてフラッシュメモリ31の書換えを行おうとする場合、先ず、通信用発振器62の発振動作を開始させ(S1)、CPU11が通信回路61を用いて新しいプログラムやデータなどの書き換えデータをダウンロードして(S2)、RAM21の一時格納領域に格納する(S3)。CPU11は通信回路61による受信完了の通知を割り込み要求などを介して受けることによって通信回路を終了し(S4)、通信用発振器62の発振動作を停止させる(S5)。
【0065】
発振停止確認回路52は通信クロックCKCの停止を確認すると(S6)、アクセス許可回路51がメモリコントローラ41に書換えを許可する(S7)。これによって、メモリコントローラ41は、CPU11からの書き換え要求に基づいて、RAM21にダウンロードされた書き換えデータを用いてフラッシュメモリ31を書き換える書き換え動作を制御する(S8)。
【0066】
上記通信動作とフラッシュメモリの書き換え動作との排他制御によれば、以下の作用効果を奏する。
【0067】
(1)発振停止確認回路52での通信クロックCKCの活性/非活性というハードウェア面での状態に基づいて通信回路61による通信動作とメモリコントローラ41によるフラッシュメモリ31の書き換え動作とを排他制御するので、通信中の不正アクセスに対するソフトウェア面での対策(例えばデータサイズの検証、又はハッシュによる検証など)を補強することができる。
【0068】
(2)通信レートを規定する通信クロックCKCに対する発振停止/発振再開の検出は高精度に且つ短時間で行う事ができるので、通信クロックに対する検出誤りを防止することができ、上記通信とアクセスの排他制御に対する確実性を容易に保証することができる。即ち、通信と書き換えの排他動作を実現するためには、確実かつ容易な通信停止判定方法の実現が必要である。ここでは、通信機能ではボーレート生成のためにクロックが必須であることに着目し、このクロック、即ち通信クロックCKCを判定に用いる。一般的に、クロック停止判定に際しては、判定時間の長さ、および、対象クロックが不安定な場合の誤判定などが考慮される。例えば、クロック停止判定のために独立した発振器で生成した基準クロックを判定に用いる場合には、予め決められた基準クロックの複数サイクル期間で当該クロックの反転有無を検出しなければならない。これは、コストなどとの関係で当該基準クロックに過度な高精度を要求することができないからである。本実施の形態では、通信に必須な通信用クロックCKCが高速かつ高精度であることを利用することにより、不安定なクロックに対する停止検出の時間的制約や検出精度低下という課題を残さないように解決している。換言すれば、通信動作の停止を通信クロックの停止というハードウェア面で検出することを容易且つ高精度に実現することができる。
【0069】
(3)通信時にフラッシュメモリ31に対する書き換え動作を禁止するというアクセス制限を行うことができるから、通信回路61によるRAM21へのダウンロード中にバックグラウンドでその通信動作を経由して不正プログラムなどがフラッシュメモリ31にインストールされることはない。RAM21にダウンロードされたプログラムなどをフラッシュメモリ31に書込むときは通信回路61の通信動作は不可能にされているから、その書き込みに乗じて通信回路61から不正なプログラムやデータが入り込んで一緒に格納され、或いはすりかえられて格納される事態の発生を抑制することができる。また、RAM21に不所望に入り込んだりした不正プログラムが、フラッシュメモリ31に対する正規の書込み処理に乗じて、通信回路61から不正なプログラムやデータを取り込んでフラッシュメモリ31に書き込むような所謂バックドアの操作を行おうとしてもその処理は阻まれる。要するに、不所望なバックドア操作による被害が通信中に拡大されることを防止することができる。更に具体的には、通信回路61によるRAM21へのダウンロード中にバックグラウンドでその通信機能を経由して不正プログラムなどがRAM21に入り込んだとしても、ダウンロードとフラッシュメモリ31への書込みとを2ステップで行うので、RAM21に入り込んだ不正プログラムそれ自体がフラッシュメモリ31に格納されてしまうことは、ハッシュのようなデータチェックなどのその他のプロテクト手段を講ずる時間的な余裕があるので、阻むことが容易になる。
【0070】
図4には通信回路61の通信動作とフラッシュメモリ31に対する読み出し動作との排他制御に関する回路の接続関係が例示される。CPU11はフラッシュメモリ31からデータを読み出すとき、予め通信用発振器62の発振動作を停止させ、これを発振停止確認回路52に検出させて許可信号PRMをイネーブルにする。これによってメモリコントローラ41はCPU11からのフラッシュメモリ31に対する読み出しアクセスの要求に応答してフラッシュメモリ31に対する読み出し動作を行う事ができる。フラッシュメモリ31から読み出しが行われているとき通信クロックCKCは発振停止されているから通信回路61による通信は不可能である。読み出し中に通信用発振器62の発振動作が再開されたとしても、その時点でアクセス許可信号PRMがディスエーブルに反転されるので、読み出し動作それ自体が中断されることになる。
【0071】
図5にはCPU11がフラッシュメモリ31の読み出しを行おうとする場合の制御フローが例示される。CPU11は通信回路61による通信処理を終了し(S11)、通信用発振器62の発振動作を停止させる(S12)。発振停止確認回路52は通信クロックCKCの停止を確認すると(S13)、アクセス許可回路51がメモリコントローラ41に書換えを許可する(S14)。これによって、メモリコントローラ41は、CPU11からの読み出し要求に基づいて、フラッシュメモリ31の読み出し動作を制御する(S15)。
【0072】
上記通信動作とフラッシュメモリの読み出し動作との排他制御によれば、以下の作用効果を奏する。
【0073】
(1)フラッシュメモリ31に対する読み出し動作中はこれに並行した通信回路61の通信動作は不可能にされているので、フラッシュメモリ31から秘匿情報(例えばパスワード又は個人情報など)が読み出されても、これがそのまま不所望に通信回路61を経由してから外部に漏洩する事態の発生を防止することができる。
【0074】
(2)発振停止確認回路52での通信クロックCKCの活性/非活性というハードウェア面での状態に基づいて通信回路61による通信動作とメモリコントローラ41によるフラッシュメモリ31の読み出し動作とを排他制御するので、通信中の不正アクセスに対するソフトウェア面での対策を補強することができる。
【0075】
《2.通信動作とメモリアクセス動作とのMMUによる排他制御》
図6には半導体装置の別の例であるマイクロコンピュータの概略的な構成が例示される。同図に示されるマイクロコンピュータ(MCU)1Aは、特に制限されないが、CMOS半導体集積回路製造技術によって単結晶シリコンのような1個の半導体基板に形成される。
【0076】
図6のマイクロコンピュータ1Aには仮想記憶が採用され、MMU(メモリマネージメントユニット)42により、CPU1が出力する論理アドレスを物理アドレスに変換し、変換された物理アドレスがバス871に出力されることによってRAM21やフラッシュメモリ31などのアクセスアドレスが指定される。特に制限されないが、プログラム情報やデータ情報などのデータに関してはキャッシュメモリ(CACHE)43が設けられている。MMU42は論理アドレスを物理アドレスに変換するために変換対を有し、更に変換対にはメモリ保護を行うための保護情報が設定される。保護情報は、当該アドレスのアクセスに必要なアクセス権(例えばユーザモードによるアクセス可能なユーザエリア、特権モードによるアクセス可能な特権エリアなど)の種別、当該アドレスのアクセスが許容されるアクセス種別(例えばリード又はライトなどの種別)を指定する情報などとされる。
図6の例では、MMU42は、前記アクセス許可回路51及び発振停止確認回路52と共に排他制御部92を実現する。ここに示される排他制御部92は、通信回路61による通信とフラッシュメモリ31又はRAM21へのアクセスとを排他制御する機能を実現する一例として位置付けられる。したがって、メモリコントローラ41Aには
図1で説明した排他制御に特有の構成と機能、即ち、アクセス許可信号PRMに応じたアクセス制限機能が省略されている。その他、
図1と同様に機能を有する回路ブロック及び信号には同じ参照符号を付してそれらの詳細な説明は省略する。以下、排他制御部91による排他制御について詳述する。
【0077】
MMU42はCPU11がフラッシュメモリ31又はRAM21に割り当てられた特定の論理アドレスを出力したとき、アクセス許可信号PRMがイネーブルにされていることを条件に、当該特定論理アドレスに対する物理アドレスへのアドレス変換を行う。アクセス許可信号PRMがディスエーブルにされている場合には、アドレスエラーなどの例外処理をCPU11に要求する。要するに、通信用発振器62の発振状態において特定論理アドレスの物理アドレスへの変換が拒否され、結果として、このときはCPU11によるフラッシュメモリ31又はRAM21のアクセスが拒否される。通信用発振器62の発振停止状態では特定論理アドレスの物理アドレスへの変換が行われ、結果として、このときはCPU11によるフラッシュメモリ31又はRAM21のアクセスが可能にされる。
【0078】
MMU42は上記特定の論理アドレスに対するライト動作およびリード動作においてアクセス許可信号PRMのイネーブル/ディスエーブルの状態に従ってアドレス変換の制限/制限解除を行う。
【0079】
図7には通信回路61の通信動作とフラッシュメモリ31に対する書き換え動作との排他制御に関する回路の接続関係が例示される。この例では上記特定の論理アドレスはフラッシュメモリ31に割り当てられる論理アドレスとする。
【0080】
CPU11が通信回路61を設定して通信回路61で受信した書き換えデータをRAM21に格納する。通信回路61の通信動作中は通信用発振器62で生成される通信クロックCKCに同期して通信動作が行われるから、発振停止確認回路52で通信クロックCKCのクロック変化が検出されることによって検出信号DTCがハイレベルにされ、これを受けるアクセス許可回路51はアクセス許可信号PRMをディスエーブルとし、フラッシュメモリに割り当てられた論理アドレスに対するMMU42でのアドレス変換が不可能にされ、結果として、通信回路61による通信動作中にはメモリコントローラ41によるフラッシュメモリ31のアクセス制御が不可能になる。したがって、通信回路61によるダウンロードデータを直接フラッシュメモリ31に書き込むことはできない。
【0081】
CPU11は書き換えデータをRAM21にダウンロードした後に、通信用発振器62の発振動作を停止させる。これによって通信クロックCKCのクロック変化が停止されると、検出信号DTCがローレベルにされ、これを受けるアクセス許可回路51はアクセス許可信号PRMをイネーブルとし、フラッシュメモリ31に割り当てられた論理アドレスに対するMMU42でのアドレス変換を可能にする。したがって、CPU11がRAM21に格納された書き換えデータでフラッシュメモリ31を書き換えるアクセス指示に対して、メモリコントローラ41はその書き換え指示にしたがってフラッシュメモリ31を書き換えることができる。書換えが行われているとき通信クロックCKCは発振停止されているから通信回路61による通信は不可能である。書き換え中に通信用発振器62の発振動作が再開されたとしても、その時点でアクセス許可信号PRMがディスエーブルに反転されるので、CPU11が発行する新たなアクセスアドレスによるフラッシュメモリの書き換え動作はアドレスエラーによって阻まれることになる。
【0082】
上記通信動作とフラッシュメモリの書き換え動作とのMMUによる排他制御によれば、以下の作用効果を奏する。
【0083】
(1)発振停止確認回路52での通信クロックCKCの活性/非活性というハードウェア面での状態に基づいて通信回路61による通信動作中はMMU42によるフラッシュメモリ31のアクセス保護機能が働き、通信回路61による通信動作とフラッシュメモリ31の書き換え動作とを排他制御することができるので、通信中の不正アクセスに対するソフトウェア面での対策(例えばデータサイズの検証、又はハッシュによる検証など)を補強することができる。
【0084】
(2)通信レートを規定する通信クロックCKCに対する発振停止/発振再開の検出は高精度に且つ短時間で行う事ができるので、通信クロックに対する検出誤りを防止することができ、上記通信とアクセスの排他制御に対する確実性を容易に保証することができる。
【0085】
(3)通信時にフラッシュメモリ31に対する書き換え動作を禁止するというアクセス制限をMMU42を介して行うことができるから、通信回路61によるRAM21へのダウンロード中にバックグラウンドでその通信動作を経由して不正プログラムなどがフラッシュメモリ31にインストールされることはない。RAM21にダウンロードされたプログラムなどをフラッシュメモリ31に書込むときは通信回路61の通信動作は不可能にされているから、その書き込みに乗じて通信回路61から不正なプログラムやデータが入り込んで一緒に格納され、或いはすりかえられて格納される事態の発生を抑制することができる。また、RAM21に不所望に入り込んだりした不正プログラムが、フラッシュメモリ31に対する正規の書込み処理に乗じて、通信回路61から不正なプログラムやデータを取り込んでフラッシュメモリ31に書き込むような所謂バックドアの操作を行おうとしてもその処理は阻まれる。要するに、不所望なバックドア操作による被害が通信中に拡大されることを防止することができる。
【0086】
図8には通信回路61の通信動作とフラッシュメモリ31に対する読み出し動作との排他制御に関する回路の接続関係が例示される。この例では上記特定の論理アドレスはフラッシュメモリ31に割り当てられる論理アドレスとする。
【0087】
CPU11はフラッシュメモリ31からデータを読み出すとき、予め通信用発振器62の発振動作を停止させ、これを発振停止確認回路52に検出させて許可信号PRMをイネーブルにする。これによってフラッシュメモリ31に割り当てられた論理アドレスに対するMMU42でのアドレス変換が可能にされ、変換された物理アドレスを用いてメモリコントローラ41はCPU11からのフラッシュメモリ31に対する読み出しアクセスに応答してフラッシュメモリ31に対する読み出し動作を行う事ができる。フラッシュメモリ31から読み出しが行われているとき通信クロックCKCは発振停止されているから通信回路61による通信は不可能である。読み出し中に通信用発振器62の発振動作が再開されたとしても、その時点でアクセス許可信号PRMがディスエーブルに反転されるので、CPU11が発行する新たなアクセスアドレスによるフラッシュメモリのリード動作はアドレスエラーによって阻まれることになる。
【0088】
上記通信動作とフラッシュメモリ31の読み出し動作とのMMU41による排他制御によれば、以下の作用効果を奏する。
【0089】
(1)フラッシュメモリ31に対する読み出し動作中はこれに並行した通信回路61の通信動作は不可能にされているので、フラッシュメモリ31から秘匿情報(例えばパスワード又は個人情報など)が読み出されても、これがそのまま不所望に通信回路61を経由してから外部に漏洩する事態の発生を防止することができる。
【0090】
(2)発振停止確認回路52での通信クロックCKCの活性/非活性というハードウェア面での状態に基づいて通信回路61による通信動作中はMMU42によるフラッシュメモリ31のアクセス保護機能が働き、通信回路61による通信動作とフラッシュメモリ31の読み出し動作とを排他制御することができるので、通信中の不正アクセスに対するソフトウェア面での対策(例えばデータサイズの検証、又はハッシュによる検証など)を補強することができる。
【0091】
最後に、通信動作とメモリアクセス動作とのMMUによる排他制御の対象をRAM21とする場合の例を説明する。
【0092】
図9には通信回路61の通信動作とRAM21に対する読み出し動作との排他制御に関する回路の接続関係が例示される。ここでは、許可信号PRMを参照して行われるMMU42によるメモリ保護機能の対象が
図7及び
図8の場合と相違される。即ち、ここは上記特定の論理アドレスはRAM21に割り当てられる論理アドレスとする。
【0093】
通信用発振器62の発振動作が行われているとき、これを発振停止確認回路52が検出して許可信号PRMをイネーブルにすることにより、MMU42は、RAM21に割り当てられた論理アドレスに対してぶつ路アドレスへのアドレス変換を行わず、アドレスエラーを発行し、結果として、CPU11によるRAM21のアクセスが不可能にされる。
【0094】
CPU11はRAM21をアクセスするとき、予め通信用発振器62の発振動作を停止させ、これを発振停止確認回路52に検出させて許可信号PRMをイネーブルにする。これによって、RAM21に割り当てられた論理アドレスに対するMMU42でのアドレス変換が可能にされ、結果として、変換された物理アドレスでRAM21のアクセスが可能になる。RAM21に対するアクセス中は通信クロックCKCの発振が停止されているから通信回路61による通信は不可能である。RAM21のアクセス中に通信用発振器62の発振動作が再開されたとしても、その時点でアクセス許可信号PRMがディスエーブルに反転されるので、CPU11がRAMアクセスのために発行する新たなアクセスアドレスに対してはアドレスエラーが発生して、その後のRAM21のアクセスが阻まれる。
【0095】
通信回路61の通信動作とRAM21に対する読み出し動作とのMMU42による排他制御についても、フラッシュメモリに対する場合と同様の作用効果を奏する。特にRAM21に対する上記排他制御によるメモリ保護の場合は、フラッシュメモリ31に対する不正書き込みや読み出しの前段階としての通信回路61からRAM21への不正なプログラムやデータの書込みを阻止する意味がある。
【0096】
本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【0097】
例えば、発振停止の確認に基づくアクセス排他制御は高速クロックを検出して書き換えなどのアクセスを制限する機能を実現できればよく、上記実施の形態に制限されない。例えば、
図1の排他制御部91を、高速のクロックである通信クロックCKCでは正常動作することができないメモリコントローラに置き換える例が考えられる。すなわち、メモリコントローラの制御対象をフラッシュメモリとすると、書き換えに用いる高電圧をチャージポンプで生成する構成において、その高速同期クロックが入力されているときはチャージポンプの昇圧動作を行わない構成とする。これにより、通信クロックが停止されている場合だけ昇圧電圧を用いた書換えが可能にされ
また、アクセス許可回路を省略して、発振停止の検出信号DTCをアクセス許可信号PRMに流用してもよい。
【0098】
通信とアクセスとの排他制御の対象になる記憶部はフラッシュメモリ又はRAMに限定されず、双方共に排他制御の対象としてもよいし、また、フラッシュメモリは誘電体メモリのアドのその他の不揮発性メモリであってもよい。
【0099】
通信部は上記ユニバーサルシリアルバスなどの通信機能に限定されない。例えばアンテナに接続される高周波インタフェース部であってもよい。排他制御部にはMMUやメモリコントローラを流用する場合に限定されず、物理的にアクセス経路を遮断するハードウェアを採用することも可能である。