(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024134199
(43)【公開日】2024-10-03
(54)【発明の名称】半導体集積回路装置
(51)【国際特許分類】
G06F 15/78 20060101AFI20240926BHJP
G06F 11/14 20060101ALI20240926BHJP
G06F 1/04 20060101ALI20240926BHJP
【FI】
G06F15/78 515
G06F15/78 517
G06F11/14 641Z
G06F1/04 571
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2023044388
(22)【出願日】2023-03-20
(71)【出願人】
【識別番号】320012037
【氏名又は名称】ラピステクノロジー株式会社
(74)【代理人】
【識別番号】110001519
【氏名又は名称】弁理士法人太陽国際特許事務所
(72)【発明者】
【氏名】島崎 広野
【テーマコード(参考)】
5B062
【Fターム(参考)】
5B062AA08
5B062DD10
5B062EE06
5B062HH01
5B062HH08
5B062JJ06
(57)【要約】
【課題】半導体集積回路装置に侵入する電磁ノイズから内部回路又は外部回路を保護することが可能な半導体集積回路装置を提供すること。
【解決手段】半導体集積回路装置100、200、300、400は、ノイズを検知した場合に検知信号を生成するノイズ検知信号生成回路20と、前記ノイズ検知信号生成回路20が生成した検知信号に応じて、保護対象となる回路をノイズの影響を回避する状態にする保護回路と、を備える。
【選択図】
図2
【特許請求の範囲】
【請求項1】
ノイズを検知した場合に検知信号を生成するノイズ検知信号生成回路と、
前記ノイズ検知信号生成回路が生成した検知信号に応じて、保護対象となる回路をノイズの影響を回避する状態にする保護回路と、を備える半導体集積回路装置。
【請求項2】
前記保護回路は、前記ノイズ検知信号生成回路が生成した前記検知信号に応じて前記半導体集積回路装置内の前記保護対象となる回路を初期化する信号を発生させ、前記保護対象となる回路に供給する、請求項1記載の半導体集積回路装置。
【請求項3】
前記保護回路は、前記ノイズ検知信号生成回路が生成した前記検知信号に応じて前記半導体集積回路装置の全体を初期化する初期化信号発生回路である、請求項2記載の半導体集積回路装置。
【請求項4】
前記保護回路は、前記ノイズ検知信号生成回路が生成した前記検知信号に応じて前記半導体集積回路装置内の前記保護対象となる回路に対するクロック供給を一時的に停止する、請求項1記載の半導体集積回路装置。
【請求項5】
前記保護回路は、前記ノイズ検知信号生成回路が生成した前記検知信号に応じて前記半導体集積回路装置のシステムクロックの供給を一時的に停止する、クロックゲーティング制御回路である、請求項4記載の半導体集積回路装置。
【請求項6】
前記保護回路は、前記ノイズ検知信号生成回路が生成した前記検知信号に応じて入出力端子を安全な入出力状態に設定する、請求項1記載の半導体集積回路装置。
【請求項7】
前記保護回路は、前記ノイズ検知信号生成回路が生成した前記検知信号に応じて入出力端子を、予め定められた期間ロウ出力状態、ハイ出力状態、及びハイインピーダンス状態のいずれかに固定するための入出力制御信号を出力する、請求項6記載の半導体集積回路装置。
【請求項8】
前記半導体集積回路装置は、中央演算処理回路を備え、
前記保護回路は、前記ノイズ検知信号生成回路が生成した前記検知信号に応じて緊急停止割込み要求信号、及び復旧・再開割込み要求信号を発生させるとともに前記検知信号を受信した時点における回路状態をデータとしてバックトレースメモリに記憶し、
前記中央演算処理回路は、前記緊急停止割込み要求信号に応じて緊急停止処理を行い、緊急停止処理を完了した後に、前記復旧・再開割込み要求信号に応じて前記バックトレースメモリから前記緊急停止処理前のデータを読み出す復旧・再開処理を行う、請求項1から7記載の半導体集積回路装置。
【請求項9】
前記保護回路は、前記ノイズ検知信号生成回路が生成した前記検知信号に応じて前記半導体集積回路装置内の前記保護対象となる回路に対するクロック供給を一時的に停止する、請求項2、3、6、7のいずれか1項に記載の半導体集積回路装置。
【請求項10】
前記保護回路は、前記ノイズ検知信号生成回路が生成した前記検知信号に応じて入出力端子を安全な入出力状態に設定する、請求項2から5のいずれか1項に記載の半導体集積回路装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電磁ノイズの侵入によって生じる誤作動を低減させる機能を備えた半導体集積回路装置に関する。
【背景技術】
【0002】
電磁ノイズの侵入を防ぐため、従来の半導体集積回路装置においては、その内外にデカップリングコンデンサ等のフィルタを設けたり、電磁シールドを実装したりして、電磁ノイズをグランドに流すことが行われている。これにより、半導体集積回路装置内部に伝搬する電磁ノイズの量を低減している。
【0003】
しかしながら、半導体集積回路装置内に侵入する電磁ノイズを上記の方法によって低減することには限界があり、完全に防ぐことは困難である。そのため、電磁ノイズがある量を超えた場合、半導体集積回路装置内に伝搬し、回路が誤動作を起こし、例えばフリーズ、暴走、通常は禁止されている危険な制御が行われる、といった致命的なエラーを生じる可能性がある。
【0004】
下記特許文献1には、半導体集積回路装置内に設けられるノイズ検知回路を開示している。このノイズ検知回路は、演算増幅器の一方の入力にバイアス電圧を印加し、他方の入力にバイアス電圧にノイズを重畳させて入力させ、演算増幅器の出力にラッチ回路を接続することにより、ノイズが侵入するとラッチ回路が動作してノイズを検知するものである。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
特許文献1に開示された発明は、ラッチアップ状態に陥った半導体集積回路装置を通常の動作状態に戻すためにノイズ検知時にコアロジックへの電圧の供給を停止するものであり、半導体集積回路装置をノイズそのものから保護するためのものではない。
【0007】
したがって、本発明は、上記の事情を踏まえ、半導体集積回路装置に侵入する電磁ノイズから内部回路又は外部回路を保護することが可能な半導体集積回路装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記課題を解決するため、本発明に係る半導体集積回路装置は、ノイズを検知した場合に検知信号を発生させるノイズ検知信号生成回路と、前記ノイズ検知信号生成回路が生成した前記検知信号に応じて、保護対象となる回路をノイズの影響を回避する状態にする保護回路と、を備える。
【発明の効果】
【0009】
本発明によれば、半導体集積回路装置に侵入する電磁ノイズから内部回路又は外部回路を保護することが可能な半導体集積回路装置を提供できるという効果を奏する。
【図面の簡単な説明】
【0010】
【
図1】
図1(A)は、実施形態のノイズ検知回路の一例を示す図であり、
図1(B)は、実施形態のノイズ検知回路の他の一例を示す図である。
【
図2】
図2(A)は、実施形態1の半導体集積回路装置の構成の一部分を示す図であり、
図2(B)は、
図2(A)の半導体集積回路装置のノイズ検知時における動作を示すタイムチャートである。
【
図3】
図3(A)は、実施形態2の半導体集積回路装置の構成の一部分を示す図であり、
図3(B)は、
図3(A)の半導体集積回路装置のノイズ検知時における動作を示すタイムチャートである。
【
図4】
図4(A)は、実施形態3の半導体集積回路装置の構成の一部分を示す図であり、
図4(B)は、
図4(A)の半導体集積回路装置のノイズ検知時における動作を示すタイムチャートである。
【
図5】
図5は、実施形態4の半導体集積回路装置の構成の一部分を示す図である。
【
図6】
図6は、実施形態4の半導体集積回路装置を構成するバックトレースメモリが保持するデータについての、アドレスマップのマトリクスを示している。
【
図7】
図7は、実施形態4の半導体集積回路装置400のノイズ検知時における動作を示すタイムチャートである。
【
図8】
図8は、実施形態4の半導体集積回路装置のCPUがプログラムを処理する際のプログラムメモリのアドレス遷移イメージを示している。
【発明を実施するための形態】
【0011】
以下、図面を参照し、本発明の実施の形態について詳細に説明する。
【0012】
以下に説明する実施形態1から実施形態4の半導体集積回路装置100、200、300、400は、
図1(A)、
図1(B)に示すようなノイズ検知信号生成回路20を有している。ノイズ検知信号生成回路20は、半導体集積回路装置100、200、300、400の内部に設けられ、
図1(A)に示すような外部に設けられたノイズ受信部10Aに接続され、ノイズを検知した場合に検知信号を生成する。
図1(A)のノイズ受信部10Aは、例えば、導線又は導体をループ状に何回か巻いたものの両端部にコンデンサを接続して電磁波の変化を電流の変化として出力するものである。あるいは、ノイズ検知信号生成回路20は、
図1(B)に示すような既知の電磁波検知器10Bに接続されてもよい。電磁波検知器10Bは、電源電圧の電圧値の変動をコンパレータによって基準電圧と比較することによりノイズを検出するもの、あるいは他の外付けの検知器であってもよい。その場合、電磁波検知器10Bは、検知した電磁波の大きさに応じた検知レベル信号を生成して出力する。検知レベル信号は、デジタル信号であってもよいし、アナログ信号であってもよい。
【0013】
ノイズ検知信号生成回路20は、下記に説明する実施形態1から実施形態4において共通であるが、
図1(A)のノイズ受信部10Aからの出力、又は
図1(B)の電磁波検知器10Bからの出力が予め定められた値を超えた際に、ノイズ検知信号を出力する。ノイズ検知信号は、例えば単一のパルス波であるが、これに限定されない。ノイズ検知信号は、複数のパルス波であってもよいし、所定パターンの信号波であってもよい。なお、以下の説明においては、
図1(A)のノイズ受信部10Aとノイズ検知信号生成回路20、あるいは
図1(B)の電磁波検知器10Bとノイズ検知信号生成回路20をまとめてノイズ検知回路30と呼ぶこととする。以下の実施形態1-実施形態4の半導体集積回路装置100-400は、ノイズ検知回路30が生成した検知信号に応じて、保護対象となる回路をノイズの影響を回避した状態にする保護回路を備えており、保護回路は以下に説明する各種の形態をとる。
[実施形態1]
図2(A)を参照して、実施形態1の半導体集積回路装置100について説明する。半導体集積回路装置100は、ノイズ検知回路30が出力するノイズ検知信号に応じて、半導体集積回路装置100の全体を初期化する初期化信号を発生させる初期化信号発生回路110を含む。初期化信号発生回路110は、ノイズ検知信号を受信すると、初期化信号あるいはシステムリセット信号を所定期間発生させ、半導体集積回路装置100内に供給する。
【0014】
図2(B)は、
図2(A)の半導体集積回路装置100のノイズ検知時における動作を示すタイムチャートである。
図2(B)に示すように、ノイズ検知回路30がノイズを検知すると、ノイズ検知信号がアサート(有効化)される。ノイズ検知信号をトリガとして、初期化信号発生回路110は、初期化信号をアサートする。
【0015】
ノイズ検知回路30がノイズを検知すると、ノイズ検知信号がアサートされる。この信号をトリガとし、リセット発生回路が初期化信号をアサートする。なお、
図2(B)では、ノイズ検知信号はHアクティブであり、初期化信号は、Lアクティブである。
【0016】
初期化信号発生回路110は、クロック信号に同期して動作するロジック回路である。初期化信号発生回路110の出力である初期化信号がアサートされる期間は、初期化信号発生回路の制御パラメータを変更することによって変更することができ、ノイズの影響が収束するまでに想定される時間が設定される。
【0017】
上記実施形態1によれば、ノイズ検知によって半導体集積回路装置100が初期化されるため、半導体集積回路装置100のシステムが、フリーズ、暴走、通常は禁止されている制御が行われる等、致命的なエラーが発生した状態で滞留することを防止できる。
【0018】
[実施形態2]
図3(A)を参照して、実施形態2の半導体集積回路装置200について説明する。半導体集積回路装置200は、クロック発生回路210、クロックゲーティング制御回路220、クロックゲートセル230を含む。
【0019】
クロック発生回路210は、
図3(B)に示すような予め定められた周波数のクロック信号を発生させ、クロックゲーティング制御回路220及びクロックゲートセル230に供給する。
【0020】
クロックゲーティング制御回路220は、ノイズ検知回路30が出力するノイズ検知信号に応じて、クロック発生回路210から供給されたクロック信号に同期してクロックゲーティング信号を生成し、クロックゲートセル230に出力する。クロックゲーティング信号は、半導体集積回路装置200内にシステムクロックの供給・停止を行う制御を行うための信号である。
【0021】
クロックゲートセル230は、クロックゲーティング専用の標準論理ゲートセルであり、クロック発生回路210からのクロック信号とクロックゲーティング制御回路220からのクロックゲーティング信号が入力され、システムクロックが出力される。
【0022】
図3(B)は、
図3(A)の半導体集積回路装置200のノイズ検知時における動作を示すタイムチャートである。
図3(B)に示すように、ノイズ検知回路30がノイズを検知すると、ノイズ検知信号がアサートされる。なお、このノイズ検知信号は、クロック発生回路210が発生させるクロック信号とは同期していない、非同期に生成される信号である。
【0023】
ノイズ検知信号をトリガとして、クロックゲーティング制御回路220は、クロック発生回路210が供給するクロック信号と同期したクロックゲーティング信号をアサートする。
【0024】
クロックゲーティング信号がアサートされると、クロックゲートセル230により半導体集積回路装置200へのシステムクロックの供給が停止される。一方、クロックゲーティング信号がネゲートされると、半導体集積回路装置200内へのシステムクロックの供給が再開される。
【0025】
クロックゲーティング制御回路220によってクロックゲーティング信号がアサートされる期間は、ノイズの影響が収束するまでに想定される時間であり、例えば数クロック分の期間、あるいはそれよりも長い期間である。このクロックゲーティング信号がアサートされる期間は、クロックゲーティング制御回路220の制御パラメータを適宜設定することにより調節することが可能である。
【0026】
上記実施形態2によれば、ノイズ検知時に半導体集積回路装置200の保護対象となる回路又は全体に対するシステムクロックの供給を一時的に停止することができる。これにより、半導体集積回路装置200内部の制御回路(ロジック)が異常動作状態に陥るリスクを低減できる。さらに、上記第2実施形態の半導体集積回路装置200においては、システムクロックの供給を再開すれば、システムをリセットすることなく処理を継続することができる。なお、上記実施形態2では、ノイズ検知時にシステムクロックの供給を一時的に停止する場合を説明したが、本発明はこれに限定されず、半導体集積回路装置200の保護対象となる一部の回路に対するクロック供給を一時的に停止するものであってもよい。
【0027】
[実施形態3]
図4(A)を参照して、実施形態3の半導体集積回路装置300について説明する。半導体集積回路装置300は、入出力端子310、I/O回路320、内部回路330、モード切替制御回路340、I/O制御信号生成回路350を含む。
【0028】
入出力端子310は、I/O回路320から出力される信号を出力したり、外部装置から入力される信号をI/O回路320に対して入力したりする。
【0029】
I/O回路320は、内部回路330とモード切替制御回路340とに接続されている。通常モード時には、I/O回路320は、内部回路330からの信号を入出力端子310に出力、あるいは入出力端子310に入力された外部装置からの入力信号を内部回路330に出力する。
【0030】
一方、安全機能モード時には、I/O回路320は、I/O制御信号生成回路350から出力されるI/O制御信号に応じて、入出力端子310をLow出力状態、High出力状態、及びH-Z(ハイインピーダンス)出力状態のいずれかに固定する。つまり、入出力端子310を安全な入出力状態に設定する。あるいは、安全機能モード時において、I/O回路320は、入出力端子310の幾つかを通常モード時と同じ状態にしたままにしてもよい。
【0031】
モード切替制御回路340は、半導体集積回路装置300のシステムクロックに同期して動作するロジック回路であるが、ノイズ検知回路30が出力するノイズ検知信号に応じて、モード切替信号を出力する。モード切替信号は、例えば予め定められた期間アサートされ、アサートされた期間は、I/O制御信号生成回路350は、入出力端子310の状態を固定するためのI/O制御信号を生成して出力する。
【0032】
I/O制御信号生成回路350は、モード切替制御回路340が出力するモード切替信号に応じて、安全機能モードにおいて入出力端子310の一つ一つをどの状態に固定するかを指示するI/O制御信号を出力する。例えば、入出力端子310が第1端子、第2端子、…第8端子の8つの端子を有する場合に、第1端子はLow出力、第2端子はHigh出力、…第8端子はH-Z(ハイインピーダンス)出力に固定することを指示する信号を出力する。なお、安全機能モードにおいて入出力端子310をどの状態に固定するかについての情報は、I/O制御信号生成回路350に含まれるレジスタ等に記憶されていてもよい。その場合、I/O制御信号生成回路350は、モード切替制御回路340がアサートされた際に、当該レジスタから情報を読み出し、I/O制御信号として出力する。
【0033】
図4(B)は、
図4(A)の半導体集積回路装置300のノイズ検知時における動作を示すタイムチャートである。
図4(B)に示すように、ノイズ検知回路30がノイズを検知すると、ノイズ検知信号がアサートされる。ノイズ検知信号をトリガとして、モード切替制御回路340がモード切替信号を所定期間アサートする。
【0034】
モード切替制御回路340によりモード切替信号がアサートされると、I/O制御信号生成回路350は、安全機能モードにおいて入出力端子310の一つ一つをどの状態に固定するかを指示するI/O制御信号を出力する。I/O回路320は、I/O制御信号生成回路350から出力されるI/O制御信号に応じて、入出力端子310をLow出力状態、High出力状態、及びH-Z(ハイインピーダンス)出力状態のいずれかに固定、あるいは通常モードと同じ状態にする。このように、半導体集積回路装置300においては、モード切替信号がアサートされると、I/O回路320及び入出力端子310を安全機能モードで機能させることが可能となる。
【0035】
なお、モード切替制御回路340がアサートされる期間は、制御パラメータを変更することで設定することが可能であり、ノイズの影響が収束するまでに想定される時間を設定できる。また、安全機能モードにおいて入出力端子310をどの状態とするかは、各入出力端子310に接続される外部装置、及び素子に対する安全性を考慮して決定する。
【0036】
上記実施形態3によれば、ノイズによる影響によって内部回路330が一時的に異常となることが考えられる場合に、入出力端子310に接続される外部装置、及び素子が危険な状態に制御されることを防止できる。特に、外部素子としてIGBT(Insulated Gate Bipolar Transistor:絶縁ゲートバイポーラトランジスタ)等の高電力を扱う素子に対する意図しない制御が行われることを防止できる。
【0037】
[実施形態4]
図5を参照して、実施形態4の半導体集積回路装置400について説明する。半導体集積回路装置400は、例えばマイコンであるが、中央演算処理回路410(以下、CPU410という)、プログラムメモリ(ROM)420、データメモリ(RAM)430、周辺回路440、割込みコントローラ450、緊急停止/復旧・再開コントローラ460を含む。CPU410、データメモリ430、周辺回路440、割込みコントローラ450、緊急停止/復旧・再開コントローラ460はそれぞれアドレスバス、データバスに接続されており、各構成要素とCPU410との間でデータのやり取りが可能となっている。
【0038】
CPU410は、プログラムメモリ420に記憶された命令を順次読み出して実行し、CPU410がアドレスバスを介して指定した構成要素と、データバスを介してデータのやり取りを行う。
【0039】
プログラムメモリ420は、この半導体集積回路装置400を動作させるためのプログラムが不揮発に記録されている。データメモリ430は、CPU410がプログラムメモリ420に記録された命令を実行する際に生じる各種のデータを一時的に記憶する。
【0040】
周辺回路440は、SFR(Specific Function Register:特殊機能レジスタ)に加えて、例えばタイマー回路、A/D変換回路といった、マイコンの用途に応じて半導体集積回路装置400の機能を豊富にする回路群を含んでいる。これらの回路群は、SFRの設定によってその動作が制御される。
【0041】
割込みコントローラ450は、周辺回路440からの割込み信号を受信すると、CPU410に対して割込み要求信号を出力し、当該割込み要求信号に応じた処理をCPU410が優先的に実行するようにする。
【0042】
緊急停止/復旧・再開コントローラ460は、ノイズ検知回路30、バックトレースメモリ470、内部制御回路480を含み、半導体集積回路装置400がノイズ検知時に緊急停止/復旧・再開処理をする際の制御を行う主回路である。
【0043】
バックトレースメモリ470は、半導体集積回路装置400の各回路の内部信号、レジスタの値といった回路状態を取得し、データとして記憶している。
図6は、バックトレースメモリ470が保持するデータについての、アドレスマップのマトリクスを示している。
【0044】
バックトレースメモリ470へのデータの書き込みは、半導体集積回路装置400のシステムクロック又は同期サイクル毎に、各回路の状態をモニタリングし、バックトレースメモリ470の内部アドレスの先頭に行単位でスタックすることにより行われる。つまり、CPU410、周辺回路440、割込みコントローラ450の回路の内部信号、レジスタの値を、システムクロック又は同期サイクル毎に、バックトレースメモリ470の内部アドレスの最上位の行データとして順次蓄積する。蓄積されたデータがメモリサイズ上限に達した場合、あるいは超えた場合は、古いデータから順次廃棄される。
【0045】
また、バックトレースメモリ470からのデータの読み出しは、内部制御回路480が指定する内部アドレスが示す行に対し、CPU-IFのアドレスで指定した列を、データを参照することにより行われる。
【0046】
内部制御回路480は、CPU410及び割込みコントローラ450との間で各信号を送受信し、バックトレースメモリ470及びノイズ検知回路30に関わる制御を仲介する。内部制御回路480は、SFR(Specific Function Register:特殊機能レジスタ)を含む。具体的には、内部制御回路480は、ノイズ検知信号を受信した際に、SFRに設定された時間が経過した後に緊急停止割込み要求信号を生成し、当該信号をCPU410に出力する。緊急停止割込み要求信号は、半導体集積回路装置400内における優先レベルが最も高い割込み要求であり、ノンマスカブル割込み要求としてCPU410が受け付ける。
【0047】
さらに、内部制御回路480は、緊急停止要求信号と同時に復旧・再開割込み要求信号を生成し、当該信号をCPU410に出力する。復旧・再開割込み要求信号は、半導体集積回路装置400内における優先レベルが緊急停止割込み要求信号に次いで高い割込み要求であり、ノンマスカブル割込み要求としてCPU410が受け付ける。
【0048】
また、内部制御回路480は、ノイズ検知信号を受信した際に、割込み要求マスク信号を生成して割込みコントローラ450に出力する。割込みコントローラ450は、割込み要求マスク信号を内部制御回路480から受信すると、周辺回路440からの割込み要求を、CPU410が緊急停止処理、復旧・再開処理を完了するまでの間、無効とする。
【0049】
また、内部制御回路480は、ノイズ検知信号を受信した際に、更新待機信号を生成し、バックトレースメモリ470に出力する。バックトレースメモリ470は、更新待機信号を受信すると、状態モニタ信号の書き込み処理を停止する。
【0050】
また、内部制御回路480は、CPU410が緊急停止処理を完了した後に行われる復旧・再開処理の指示に応じて初期化信号を生成してバックトレースメモリ470に出力する。バックトレースメモリ470は、初期化信号を受信すると、内部制御回路480のSFRにより指定された内部アドレスの内容を、他の全内部アドレスにコピーする。
【0051】
図7は、
図5の半導体集積回路装置400のノイズ検知時における動作を示すタイムチャートである。まず、前提として、通常時は、プログラムメモリ420に記録されているプログラムのメインルーチンをCPU410が実行している(通常処理)。これに平行して、各回路の内部信号、レジスタの値を示す状態モニタ信号がバックトレースメモリ470にシステムクロック又は半導体集積回路装置400の同期サイクル毎に書き込まれる。
【0052】
ノイズ検知回路30がノイズを検知すると、ノイズ検知信号がアサートされる。次いで、内部制御回路480は、このノイズ検知信号をトリガにして、内部制御回路480のSFRに設定された時間の経過後に、緊急停止割込み要求信号と復旧・再開割込み要求信号を同時にアサートし、CPU410に出力する。また、内部制御回路480は、ノイズ検知信号をトリガにして、更新待機信号をバックトレースメモリ470に出力し、これに応じてバックトレースメモリ470は、状態モニタ信号の書き込み処理を停止する。さらに、内部制御回路480は、割込み要求マスク信号を割込みコントローラ450に出力し、周辺回路440からの割込み要求が無効となるようにする。
【0053】
CPU410は、緊急停止割込み要求信号を受信すると、即座に緊急停止処理を開始する。緊急停止処理は、例えば、ノイズ検知回路30が複数個設けられていたり、緊急停止/復旧・再開コントローラ460が複数設けられていたりする場合に、緊急停止割込み要求がどこから発生したかを判別する処理が含まれる。これは、ノンマスカブル割込み要求を、複数の要求元で供給する場合には、割込み要求元を判別する必要があるためである。あるいは、緊急停止処理は、I/O回路、周辺回路を停止・初期化して安全な状態に設定する処理が含まれる。なお、緊急停止処理の実行中に次の緊急停止割込み要求信号を受信した場合には、CPU410は即座に受付、再度緊急停止処理の先頭から実行する。
【0054】
緊急停止処理が完了すると、CPU410は、復旧・再開処理を実行する。復旧・再開処理は、I/O回路、及び周辺回路を通常時の状態に設定する処理、バックトレースメモリ470から緊急停止処理前のデータを読み出す処理、バックトレースメモリ470を初期化する処理が含まれる。
【0055】
CPU410によるデータの復帰は、バックトレースメモリ470の内部アドレスの先頭行、あるいは内部制御回路480のSFRが指定する内部アドレスに記憶されている行のデータを読み出すことにより行われる。
【0056】
バックトレースメモリ470の初期化は、バックトレースメモリ470の内部アドレスの先頭行、あるいは内部制御回路480のSFRが指定する内部アドレスの行の内容を、他の全内部アドレスにコピーすることにより行われる。
【0057】
CPU410の復旧・再開処理が完了すると、CPU410は通常処理を再開する。また、内部制御回路480は、SFRに設定されている期間が経過した後に、バックトレースメモリ470への書込み処理を再開させる。ここで、書込み処理の再開はCPU410の復旧・再開処理の完了以降となるように設定される。
【0058】
なお、復旧・再開処理の実行中に緊急停止割込み要求がアサートされた場合には、緊急停止処理を即座に実行し、緊急停止処理が完了した後に、復旧・再開処理を最初から実行する。
【0059】
図8を参照して、実施形態4の情報処理装置のCPU410がプログラムメモリ420に記録されているプログラムを処理する際の遷移について説明する。プログラムメモリ420には、通常処理のプログラムがプログラムメモリ420の先頭アドレス「0000h」、…「x-N」…「x」…に記録されている。また、緊急停止処理のプログラムがアドレス「S」以降に記録され、復旧・正解処理のプログラムがアドレス「T」以降に記録されている。通常時に、CPU410は、プログラムメモリ420の先頭アドレス「0000h」から順に命令を読み出して実行する。
【0060】
アドレス「x」の命令を実行時に、緊急停止割込み要求を受け付けると、CPU410は、プログラムメモリ420の緊急停止処理の先頭アドレス「S」の処理に分岐し、アドレス「S」から順に命令を読み出して実行する。CPU410は、緊急停止処理を完了すると、復旧・再開割込み要求を受け付けて、プログラムメモリ420の復旧・再開処理の先頭アドレス「T」の処理に分岐し、アドレス「T」から順に命令を読み出して実行する。
【0061】
CPU410は、復旧・再開処理を完了すると、緊急停止割込み要求を受け付けた時点のnサイクル前に実行したアドレス「x-N」の処理に分岐し、アドレス「x-N」から順に命令を読み出して実行する。なお、「N」は、内部制御回路480のSFRが設定している、復帰するデータが格納されているバックトレースメモリ470の内部アドレス(行)によって決定される。具体的には、例えば、CPU410によって復帰されたデータが、バックトレースメモリ470の内部アドレス「5行目」に格納されたデータであった場合、CPU410は、アドレス「x-5」の命令から処理を再開する。
【0062】
上記実施形態4によれば、ノイズの影響により回路が不安定となる場合に、処理を一旦停止し、ノイズが収束したところで、処理を再開することができる。また、緊急停止処理や、復旧・再開処理の内容は、プログラム(ソフトウェア)によって設定が可能となるので、この半導体集積回路装置400の用途の応じて柔軟に制御することが可能となる。
【0063】
なお、上記実施形態1-4で説明した、ノイズ検知時に半導体集積回路装置を初期化する構成、システムクロックの供給を一時的に停止する構成、入出力端子を安全機能モードに設定する構成、緊急停止/復旧・再開処理を行う構成を任意に組み合わせてもよい。その場合、例えば、半導体集積回路装置の一部分を初期化し、他の部分へのシステムクロックの供給を一時的に停止するようにしてもよい。
【符号の説明】
【0064】
10A ノイズ受信部
10B 電磁波検知器
20 ノイズ検知信号生成回路
30 ノイズ検知回路
100 半導体集積回路装置
110 初期化信号発生回路
200 半導体集積回路装置
210 クロック発生回路
220 クロックゲーティング制御回路
230 クロックゲートセル
300 半導体集積回路装置
310 入出力端子
320 I/O回路
330 内部回路
340 モード切替制御回路
350 制御信号生成回路
400 半導体集積回路装置
420 プログラムメモリ
430 データメモリ
440 周辺回路
450 割込みコントローラ
460 復旧・再開コントローラ
470 バックトレースメモリ
480 内部制御回路