JP7375903B2 - 異常検出回路及び異常検出方法 - Google Patents

異常検出回路及び異常検出方法 Download PDF

Info

Publication number
JP7375903B2
JP7375903B2 JP2022502705A JP2022502705A JP7375903B2 JP 7375903 B2 JP7375903 B2 JP 7375903B2 JP 2022502705 A JP2022502705 A JP 2022502705A JP 2022502705 A JP2022502705 A JP 2022502705A JP 7375903 B2 JP7375903 B2 JP 7375903B2
Authority
JP
Japan
Prior art keywords
value
key value
seed
storage unit
counter
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2022502705A
Other languages
English (en)
Other versions
JPWO2021171472A1 (ja
Inventor
直彦 下山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sanken Electric Co Ltd
Original Assignee
Sanken Electric Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sanken Electric Co Ltd filed Critical Sanken Electric Co Ltd
Publication of JPWO2021171472A1 publication Critical patent/JPWO2021171472A1/ja
Application granted granted Critical
Publication of JP7375903B2 publication Critical patent/JP7375903B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs

Description

本発明は、CPUの異常を検出する異常検出回路及び異常検出方法に関する。
CPUの異常を検出する異常検出回路としてウォッチドッグタイマが知られている。ウォッチドッグタイマは、CPUによってカウントがリセットされることなく、カウント値が設定されたタイムアウト値に到達した場合にCPUの異常を検出する。
CPUによるカウンタのリセットに際し、鍵値を使用することが提案されている(例えば、特許文献1、2参照)。特許文献1では、リセットに使用した鍵値の値に対して演算処理を行った値を、次に使用する鍵値として使用する。また、特許文献2では、カウンタのカウント値を次に使用する鍵値として使用する。
特開平01-147643号公報 特開平11-306047号公報
しかしながら、特許文献1では、プログラムシーケンスを監視する機能として論理的監視を行う機能は満たすが、鍵となる値は一定周期を持つ繰り返し値であり、前の鍵が決まれば次の鍵が一意に決まる。従って、プログラムシーケンスの動作状況により次の鍵が変化することはなく、プログラムシーケンスの監視機能が弱いという問題点があった。
また、特許文献2では、カウント値の読出しタイミングによって鍵値が異なるためプログラムシーケンスの動作状況によりランダム性が得られるが、読み出したそのままの値を鍵値として用いるため論理的な手順処理が無く、プログラムシーケンスの論理監視を行う監視機能が不足している。また、読み出したカウント値をそのまま鍵値として設定するため、CPUが読み出したカウント値を鍵値として書き込む前にデバッガ等の他のバスマスタがレジスタの読出しを行うと、鍵値が変化してしまいウォッチドッグタイマのカウンタがリセットされなくなってしまう。
本発明は斯かる問題点を鑑みてなされたものであり、その目的とするところは、プログラムシーケンスを時間的及び論理的に監視することができる異常検出回路及び異常検出方法を提供する点にある。
本発明に係る異常検出回路及び異常検出方法は、上記の目的を達成するため、次のように構成される。
本発明の異常検出回路は、初期値からタイムアウト値に向けて所定のクロックでカウントを行うカウンタを有し、前記カウンタがリセットされることなく、カウント値が前記タイムアウト値に到達した場合に、CPUの異常を検出する異常検出回路であって、前記CPUから読み出し可能に種値を保存する種値記憶部と、前記種値記憶部に保存された前記種値に対して規定の演算処理を実行することで検証用鍵値を生成する演算器と、前記CPUによって鍵値が書き込まれる鍵値記憶部と、前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とを比較する比較器とを具備し、前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とが一致した場合、前記カウンタをリセットすると共に、前記カウンタのリセット時のカウント値を前記種値として前記種値記憶部に保存することを特徴とする。
また、本発明の異常検出回路は、初期値からタイムアウト値に向けて所定のクロックでカウントを行うカウンタを有し、前記カウンタがリセットされることなく、カウント値が前記タイムアウト値に到達した場合に、CPUの異常を検出する異常検出回路であって、前記CPUから読み出し可能に種値を保存する種値記憶部と、前記種値記憶部に保存された前記種値に対して規定の演算処理を実行することで検証用鍵値を生成する演算器と、前記CPUによって鍵値が書き込まれる鍵値記憶部と、前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とを比較する比較器と、前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とが一致してもリセットされないフリーカウンタとを具備し、前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とが一致した場合、前記カウンタをリセットすると共に、前記カウンタのリセット時における前記フリーカウンタのカウント値を前記種値として前記種値記憶部に保存することを特徴とする。
また、本発明の異常検出回路は、初期値からタイムアウト値に向けて所定のクロックでカウントを行うカウンタを有し、前記カウンタがリセットされることなく、カウント値が前記タイムアウト値に到達した場合に、CPUの異常を検出する異常検出回路であって、前記CPUから読み出し可能に種値を保存する種値記憶部と、前記種値記憶部に保存された前記種値に対して規定の演算処理を実行することで検証用鍵値を生成する演算器と、前記CPUによって鍵値が書き込まれる鍵値記憶部と、前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とを比較する比較器と、乱数発生器とを具備し、前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とが一致した場合、前記カウンタをリセットすると共に、前記カウンタのリセット時に前記乱数発生器が発生する乱数を前記種値として前記種値記憶部に保存することを特徴とする。
また、本発明の異常検出回路は、初期値からタイムアウト値に向けて所定のクロックでカウントを行うカウンタを有し、前記カウンタがリセットされることなく、カウント値が前記タイムアウト値に到達した場合に、CPUの異常を検出する異常検出回路であって、前記CPUから読み出し可能に種値を保存する種値記憶部と、前記種値記憶部に保存された前記種値に対して規定の演算処理を実行することで検証用鍵値を生成する演算器と、前記CPUによって鍵値が書き込まれる鍵値記憶部と、前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とを比較する比較器とを具備し、前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とが一致した場合、前記カウンタをリセットすると共に、前記カウンタのリセット時における外部回路のカウント値や乱数を前記種値として前記種値記憶部に保存することを特徴とする。
また、本発明の異常検出方法は、カウンタによって初期値からタイムアウト値に向けて所定のクロックでカウントを行い、前記カウンタがリセットされることなく、カウント値が前記タイムアウト値に到達した場合に、CPUの異常を検出する異常検出方法であって、種値記憶部に前記CPUから読み出し可能に種値を保存し、演算器によって前記種値記憶部に保存した前記種値に対して規定の演算処理を実行することで検証用鍵値を生成し、鍵値記憶部に前記CPUによって鍵値が書き込まれるのを待ち受け、比較器によって前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とを比較し、前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とが一致した場合、前記カウンタをリセットすると共に、前記カウンタのリセット時のカウント値を前記種値として前記種値記憶部に保存することを特徴とする。
また、本発明の異常検出方法は、カウンタによって初期値からタイムアウト値に向けて所定のクロックでカウントを行い、前記カウンタがリセットされることなく、カウント値が前記タイムアウト値に到達した場合に、CPUの異常を検出する異常検出方法であって、種値記憶部に前記CPUから読み出し可能に種値を保存し、演算器によって前記種値記憶部に保存した前記種値に対して規定の演算処理を実行することで検証用鍵値を生成し、鍵値記憶部に前記CPUによって鍵値が書き込まれるのを待ち受け、比較器によって前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とを比較し、フリーカウンタによって前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とが一致してもリセットすることなくカウントし、前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とが一致した場合、前記カウンタをリセットすると共に、前記カウンタのリセット時における前記フリーカウンタのカウント値を前記種値として前記種値記憶部に保存することを特徴とする。
本発明の異常検出回路及び異常検出方法によれば、CPUは、種値を読み出し、その都度異なる種値に対する規定の演算処理、鍵値の書き込みという一連の動作をカウント値がタイムアウト値に到達する前に実行する必要があるため、プログラムシーケンスを時間的及び論理的に監視することができるという効果を奏する。
本発明に係る異常検出回路の実施の形態を内蔵したマイクロコンピュータの構成を示すブロック図である。 図1に示す異常検出回路の一致時及び不一致時の動作を示すタイミングチャートである。 図1に示す異常検出回路のタイムアウト時の動作を示すタイミングチャートである。 図1に示す異常検出回路の他の構成例を示すブロック図である。 図4に示すフリーカウンタのカウント動作を示すタイミングチャートである。 図1に示す異常検出回路の他の構成例を示すブロック図である。
以下に、本発明の好適な実施の形態を添付図面に基づいて説明する。
本実施の形態の異常検出回路10は、図1を参照すると、プログラムを実行するCPU2、CPU2が実行するプログラムを格納するROM3、CPU2のワーク領域となるRAM4等を有するマイクロコンピュータ1に内蔵され、例えば、1つの半導体チップに形成される。
異常検出回路10は、CPU2によってカウントがリセットされることなく、設定されたカウント値に到達した場合にCPU2の異常を検出するウォッチドッグタイマであり、内部バス(BUS)5を介してCPU2に接続されている。
異常検出回路10は、バスインターフェース(BUS_I/F)11と、カウンタ(COUNTER)12と、種値レジスタ(SEED)13と、演算器(CALCULATOR)14と、ライトキーレジスタ(WKEY)15と、比較器(COMPARE)16と、バッファ(WRITE_KEY_BUF)17と、第1アンド回路18と、第2アンド回路19と、第1オア回路20と、第2オア回路21とを備えている。
カウンタ12は、初期値(INITIAL_VALUE)から所定のクロックでカウントを行い、カウント値が設定されたタイムアウト値(TIMEOUT_VALUE)に到達すると、カウントタイムアウト信号(COUNT_TIMEOUT)を出力する。
また、カウンタ12は、リセットカウンタ信号(RESET_COUNTER)が入力されると、カウント値を初期値にリセットして、新たなカウントを開始する。また、リセットカウンタ信号(RESET_COUNTER)は、種値読み出し信号(LOAD_SEED)として種値レジスタ13に入力され、種値レジスタ13には、カウンタ12のリセット前のカウント値が種値(SEED)として保存される。
種値レジスタ13は、バスインターフェース11を介してリードアクセス可能に構成されている。CPU2は、種値レジスタ13に保存された種値をカウンタ12のカウント値がタイムアウト値に到達する前に読み出す。
種値は、カウンタ12をリセットした時のカウント値が種値レジスタ13に保存される。従って、プログラムシーケンスの動作状況により種値が変化する。また、種値レジスタ13へのリードアクセスでは、カウンタ12からの読み出しが発生しないため、他のバスマスタ等による種値レジスタ13へのリードアクセスが発生しても種値が変化することがない。
演算器14は、種値レジスタ13に保存された種値に対して規定の演算処理を実施することで、鍵値(CKEY)を生成する。演算器14で実施される規定の演算処理は、種値から生成した鍵値が他の種値からは生成できない演算処理が適用される。すなわち、規定の演算処理は、種値としてとりうる値の種値集合と、鍵値としてとりうる値の鍵値集合との関係として、種値集合から鍵値集合への写像を全単射とした演算処理である。これにより、異なる種値に対して同一の鍵値が存在しないため、異なる種値から生成した鍵値が有効となることなく、論理的監視を行う機能の有効性が向上する。
また、規定の演算処理では、種値と鍵値とが一対一に対応するため、鍵値のビット幅は、種値のビット幅以上に設定されている。すなわち、鍵値のビット幅が種値のビット幅未満の場合は、異なる種から同じ鍵が生成される虞がある。さらに、規定の演算処理において、種値の全ビットが演算で使用され、未使用のビットは無いように設定されている。
規定の演算処理を複数の演算の組み合わせとし、個々の演算で全単射が維持されるようにすると良い。カウンタ12のカウント値及び鍵値(CKEY)を32bit幅とすると、例えば、ビットスワップと、固定値の加算(鍵値のビット幅を超えるキャリーは削除)と、ビット反転(固定値の排他的論理和)とを組み合わせた次式を規定の演算処理として適用することができる。
CKEY[31:0]=({SEED[7:0],SEED[31:8]} +0x85C421FE ) ^ 0x3486A8D7
ライトキーレジスタ15は、バスインターフェース11を介してライトアクセス可能に構成されている。CPU2は、種値レジスタ13から読み出した種値に対して、演算器14と同じ規定の演算処理を実施することで、鍵値(WKEY)を生成し、ライトキーレジスタ15に書き込み信号(WRITE_KEY)を出力することで、生成した鍵値(WKEY)をカウンタ12のカウント値がタイムアウト値に到達する前にライトキーレジスタ15に書き込む。
比較器16は、演算器14によって演算された鍵値(CKEY)と、ライトキーレジスタ15に書き込まれた鍵値(WKEY)とを比較し、両者が一致した場合にHIGHとなり、両者が不一致の場合にLOWとなる比較信号(COMP_KEY)を出力する。
第1アンド回路18の一方の入力端子には、書き込み信号(WRITE_KEY)がバッファ17を介して1クロック分遅れた書き込みバッファ信号(WRITE_KEY_BUF)として入力され、第1アンド回路18の他方の反転入力端子には、比較器16から出力される比較信号(COMP_KEY)が入力される。これにより、書き込み信号(WRITE_KEY)に伴ってライトキーレジスタ15に書き込まれた鍵値(WKEY)が演算器14によって演算された鍵値(CKEY)と不一致である場合、第1アンド回路18の出力端子から不一致信号(UNMATCH KEY)が出力される。
第2アンド回路19の一方の入力端子には、ライトキーレジスタ15への書き込み信号(WRITE_KEY)がバッファ17を介して1クロック分遅れた書き込みバッファ信号(WRITE_KEY_BUF)として入力され、第1アンド回路18の他方の入力端子には、比較器16から出力される比較信号(COMP_KEY)が入力される。これにより、書き込み信号(WRITE_KEY)に伴ってライトキーレジスタ15に書き込まれた鍵値(WKEY)が演算器14によって演算された鍵値(CKEY)と一致する場合、第2アンド回路19の出力端子から一致信号(MATCH_KEY)が出力される。
第1オア回路20の一方の入力端子には、カウンタ12から出力されるカウントタイムアウト信号(COUNT_TIMEOUT)が入力され、第1オア回路20の他方の入力端子には、第1アンド回路18から出力される不一致信号(UNMATCH_KEY)が入力される。これにより、カウントタイムアウト信号(COUNT_TIMEOUT)と不一致信号(UNMATCH_KEY)とのいずれか若しくは両方が第1オア回路20に入力されると、第1オア回路20の出力端子からCPU2の異常を検出したエラー信号(ERROR)として出力される。
第2オア回路21の一方の入力端子には、第1オア回路20から出力されるエラー信号(ERROR)が入力され、第2オア回路21の他方の入力端子には、第2アンド回路19から出力される一致信号(MATCH_KEY)が入力される。これにより、エラー信号(ERROR)と不一致信号(UNMATCH_KEY)とのいずれか若しくは両方が第2オア回路21に入力されると、第2オア回路21の出力端子からリセットカウンタ信号(RESET_COUNTER)が出力される。
次に、異常検出回路10の一致時の動作について図2を参照して説明する。
CPU2からの書き込み信号(WRITE_KEY)に伴って、時刻t1に、ライトキーレジスタ15に鍵値(WKEY: 0xB1428929)が書き込まれる。すると、比較器16は、演算器14によって、種値レジスタ13に保存されている種値(SEED:0x 00000000)に対して規程の演算処理を実施することで生成された鍵値(CKEY: 0xB1428929)と、ライトキーレジスタ15に書き込まれた鍵値(WKEY: 0xB1428929)とを比較する。
すると、鍵値(CKEY: 0xB1428929)と鍵値(WKEY: 0xB1428929)とが一致して比較器16からの比較信号(COMP_KEY)がHIGHとなるため、書き込みバッファ信号(WRITE_KEY_BUF)が一致信号(MATCH_KEY)として第2アンド回路19の出力端子から出力される。そして、一致信号(MATCH_KEY)は、リセットカウンタ信号(RESET_COUNTER)及び種値読み出し信号(LOAD_SEED)として第2オア回路21の出力端子から出力される。これにより、カウンタ12は、カウント値を初期値にリセットして、新たなカウントを開始すると共に、種値レジスタ13には、カウンタ12のリセット前のカウント値(0x0000A38D)が種値(SEED: 0x0000A38D)として保存される。
この場合、CPU2は、種値レジスタ13からの種値を読み出し、その都度異なる種値に対する規定の演算処理、ライトキーレジスタ15への鍵値の書き込みという一連の動作をカウンタ12のカウント値がタイムアウト値に到達する前に実行でき、種値に対する規定の演算処理が正常に行えたことになる。従って、CPU2でのプログラムシーケンスが正常に機能していることが、時間的及び論理的に検証されたことになる。
次に、異常検出回路10の不一致時の動作について図2を参照して説明する。
CPU2からの書き込み信号(WRITE_KEY)に伴って、時刻t2に、ライトキーレジスタ15に鍵値(WKEY: 0x12345678)が書き込まれる。すると、比較器16は、演算器14によって、種値レジスタ13に保存されている種値(SEED:0x0000A38D)に対して規程の演算処理を実施することで生成された鍵値(CKEY: 0x26428A76)と、ライトキーレジスタ15に書き込まれた鍵値(WKEY: 0x12345678)とを比較する。
すると、鍵値(CKEY: 0xB1428929)と鍵値(WKEY: 0xB1428929)とが不一致となって比較器16からの比較信号(COMP_KEY)がLOWとなるため、書き込みバッファ信号(WRITE_KEY_BUF)が不一致信号(UNMATCH_KEY)として第1アンド回路18の出力端子から出力される。そして、不一致信号(UNMATCH_KEY)は、エラー信号(ERROR)として第1オア回路20の出力端子から出力されると共に、リセットカウンタ信号(RESET_COUNTER)及び種値読み出し信号(LOAD_SEED)として第2オア回路21の出力端子から出力される。これにより、カウンタ12は、カウント値を初期値にリセットして、新たなカウントを開始すると共に、種値レジスタ13には、カウンタ12のリセット前のカウント値(0x000002E5)が種値(SEED: 0x000002E5)として保存される。
この場合、CPU2は、種値レジスタ13からの種値を読み出し、その都度異なる種値に対する規定の演算処理、ライトキーレジスタ15への鍵値の書き込みという一連の動作をカウンタ12のカウント値がタイムアウト値に到達する前に実行できたが、種値に対する規定の演算処理を正常に行えなかったことになる。従って、CPU2でのプログラムシーケンスが論理的に異常をきたしていることが検出される。
次に、異常検出回路10のタイムアウト時の動作について図3を参照して説明する。
CPU2からの書き込み信号(WRITE_KEY)が入力されることなく、時刻t3に、カウント値が設定されたタイムアウト値(TIMEOUT_VALUE)に到達すると、カウンタ12は、カウントタイムアウト信号(COUNT_TIMEOUT)を出力する。
カウントタイムアウト信号(COUNT_TIMEOUT)は、エラー信号(ERROR)として第1オア回路20の出力端子から出力されると共に、リセットカウンタ信号(RESET_COUNTER)及び種値読み出し信号(LOAD_SEED)として第2オア回路21の出力端子から出力される。これにより、カウンタ12は、カウント値を初期値にリセットして、新たなカウントを開始すると共に、種値レジスタ13には、カウンタ12のリセット前のカウント値(0x02000000)が種値(SEED: 0x02000000)として保存される。
この場合、CPU2は、種値レジスタ13からの種値を読み出し、その都度異なる種値に対する規定の演算処理、ライトキーレジスタ15への鍵値の書き込みという一連の動作をカウンタ12のカウント値がタイムアウト値に到達する前に実行できなかったことになる。従って、CPU2でのプログラムシーケンスが時間的に異常をきたしていることが検出される。
図4に示す異常検出回路10aは、カウンタ12とは異なるフリーカウンタ22を備え、種値読み出し信号(LOAD_SEED)が種値レジスタ13に入力されると、フリーカウンタ22のカウント値が種値(SEED)として保存されるように構成されている。
フリーカウンタ22は、図5に示すように、カウンタ12をリセットするリセットカウンタ信号(RESET_COUNTER)によってリセットされることなく、所定のクロック信号に基づいて初期値(INITIAL_VALUE)と目標値(TARGET_VALUE)との間を順次カウントする。この例では、フリーカウンタ22という構成を追加する必要があるが、プログラムシーケンス毎の種値(SEED)を確実に異なる値にすることができる。すなわち、CPU2が同じタイミングで一連の動作を実行している場合、リセットカウンタ信号(RESET_COUNTER)によってリセットされるカウンタ12のリセット前のカウント値が同じ値となるケースが想定される。これに対し、フリーカウンタ22は、リセットカウンタ信号(RESET_COUNTER)によってリセットされることないため、CPU2が同じタイミングで一連の動作を実行しても、リセット時のカウント値が異なる値となる。なお、フリーカウンタ22において初期値(INITIAL_VALUE)と目標値(TARGET_VALUE)との間のカウント値は、十分に大きい値に設定することが好ましく、カウンタ12における初期値(INITIAL_VALUE)とタイムアウト値(TIMEOUT_VALUE)との間のカウント値以上に設定すると良い。
また、フリーカウンタ22の代わりに乱数発生器を備え、種値読み出し信号(LOAD_SEED)が種値レジスタ13に入力されると、乱数発生器が発生させる乱数を種値(SEED)として保存させるようにしても良い。
さらに、フリーカウンタ22や乱数発生器として機能する外部回路がある場合には、種値読み出し信号(LOAD_SEED)が種値レジスタ13に入力されると、外部回路のカウント値や乱数を種値(SEED)として保存させるようにしても良い。
図6に示す異常検出回路10bは、第1アンド回路18及び第1オア回路20が省略され、鍵値(WKEY)と鍵値(CKEY)とが不一致であっても、エラー信号(ERROR)及びリセットカウンタ信号(RESET_COUNTER)が出力されないように構成されている。この場合、カウンタ12のカウント値がタイムアウト値(TIMEOUT_VALUE)に到達した場合のみ、カウントタイムアウト信号(COUNT_TIMEOUT)を出力され、エラー信号(ERROR)が出力されることになる。
以上説明したように、本実施の形態は、初期値からタイムアウト値に向けてカウントを行うカウンタ12を有し、カウンタ12がリセットされることなく、カウント値がタイムアウト値に到達した場合に、CPU2の異常を検出する異常検出回路10であって、CPU2から読み出し可能に種値(SEED)を保存する種値記憶部である種値レジスタ13と、種値レジスタ13に保存された種値に対して規程の演算処理を実行することで検証用の鍵値(CKEY)を生成する演算器14と、CPU2によって鍵値(WKEY)が書き込まれる鍵値記憶部であるライトキーレジスタ15と、ライトキーレジスタ15に書き込まれた鍵値(WKEY)と検証用の鍵値(CKEY)とを比較する比較器16とを具備し、ライトキーレジスタ15に書き込まれた鍵値(WKEY)と検証用の鍵値(CKEY)とが一致した場合、カウンタ12をリセットすると共に、カウンタ12のリセット時に決定する種値(SEED)を種値レジスタ13に保存する。
この構成により、CPU2は、種値レジスタ13からの種値を読み出し、その都度異なる種値に対する規定の演算処理、ライトキーレジスタ15への鍵値の書き込みという一連の動作をカウンタ12のカウント値がタイムアウト値に到達する前に実行する必要があるため、プログラムシーケンスを時間的及び論理的に監視することができる。
さらに、本実施の形態において、演算器14による既定の演算処理は、種値(SEED)としてとりうる値の種値集合と、検証用鍵値(CKEY)としてとりうる値の鍵値集合との関係として、種値集合から鍵値集合への写像が全単射である。
この構成により、鍵値(WKEY)と検証用の鍵値(CKEY)とが異なる演算処理によって一致することがないため、プログラムシーケンスの論理的監視を正確に行うことができる。
さらに、本実施の形態において、演算器14による既定の演算処理には、ビットスワップが含まれている。
この構成により、ハードウェアに比べてソフトウェアでの処理が煩雑であるため、プログラムシーケンスの論理的監視を正確に行うことができる。
さらに、本実施の形態において、カウンタ12のリセット時のカウント値を種値(SEED)として種値レジスタ13に保存する。
この構成により、種値を決定するための回路を新たに設けることなく、カウンタ12のリセット時のカウント値を種値(SEED)として用いることができる。
さらに、本実施の形態は、ライトキーレジスタ15に書き込まれた鍵値(WKEY)と検証用の鍵値(CKEY)とが一致してもリセットされないフリーカウンタ22を具備し、カウンタ12のリセット時におけるフリーカウンタ22のカウント値を種値(SEED)として種値レジスタ13に保存する。
この構成により、CPU2が同じタイミングで一連の動作を実行しても、リセット時のカウント値が異なる値となり、プログラムシーケンスの論理的監視を正確に行うことができる。
さらに、本実施の形態は、乱数発生器を具備し、カウンタ12のリセット時に乱数発生器が発生する乱数を種値(SEED)として種値レジスタ13に保存する。
この構成により、CPU2が同じタイミングで一連の動作を実行しても、リセット時のカウント値が異なる値となり、プログラムシーケンスの論理的監視を正確に行うことができる。
さらに、本実施の形態において、カウンタ12のリセット時に外部回路で決定する値を種値(SEED)として種値レジスタ13に保存する。
この構成により、回路内に種値を決定する回路を設けることなく、外部回路で決定する値を種値(SEED)として用いることができる。
さらに、本実施の形態において、ライトキーレジスタ15に書き込まれた鍵値(WKEY)と検証用の鍵値(CKEY)とが不一致である場合、カウンタ12をリセットすることなく、カウントを継続させる。
この構成により、カウンタ12のカウント値がタイムアウト値(TIMEOUT_VALUE)に到達した場合のみ、エラー信号(ERROR)が出力され、エラー検出のロジックを統一することができる。
なお、本発明が上記各実施の形態に限定されず、本発明の技術思想の範囲内において、各実施の形態は適宜変更され得ることは明らかである。また、上記構成部材の数、位置、形状等は上記実施の形態に限定されず、本発明を実施する上で好適な数、位置、形状等にすることができる。なお、各図において、同一構成要素には同一符号を付している。
1 マイクロコンピュータ
2 CPU
3 ROM
4 RAM
5 内部バス
10 異常検出回路
11 バスインターフェース
12 カウンタ
13 種値レジスタ
14 演算器
15 ライトキーレジスタ
16 比較器
17 バッファ
18 第1アンド回路
19 第2アンド回路
20 第1オア回路
21 第2オア回路
22 フリーカウンタ

Claims (10)

  1. 初期値からタイムアウト値に向けて所定のクロックでカウントを行うカウンタを有し、
    前記カウンタがリセットされることなく、カウント値が前記タイムアウト値に到達した場合に、CPUの異常を検出する異常検出回路であって、
    前記CPUから読み出し可能に種値を保存する種値記憶部と、
    前記種値記憶部に保存された前記種値に対して規定の演算処理を実行することで検証用鍵値を生成する演算器と、
    前記CPUによって鍵値が書き込まれる鍵値記憶部と、
    前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とを比較する比較器とを具備し、
    前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とが一致した場合、前記カウンタをリセットすると共に、前記カウンタのリセット時のカウント値を前記種値として前記種値記憶部に保存することを特徴とする異常検出回路。
  2. 初期値からタイムアウト値に向けて所定のクロックでカウントを行うカウンタを有し、前記カウンタがリセットされることなく、カウント値が前記タイムアウト値に到達した場合に、CPUの異常を検出する異常検出回路であって、
    前記CPUから読み出し可能に種値を保存する種値記憶部と、
    前記種値記憶部に保存された前記種値に対して規定の演算処理を実行することで検証用鍵値を生成する演算器と、
    前記CPUによって鍵値が書き込まれる鍵値記憶部と、
    前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とを比較する比較器と、
    前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とが一致してもリセットされないフリーカウンタとを具備し、
    前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とが一致した場合、前記カウンタをリセットすると共に、前記カウンタのリセット時における前記フリーカウンタのカウント値を前記種値として前記種値記憶部に保存することを特徴とする異常検出回路。
  3. 初期値からタイムアウト値に向けて所定のクロックでカウントを行うカウンタを有し、前記カウンタがリセットされることなく、カウント値が前記タイムアウト値に到達した場合に、CPUの異常を検出する異常検出回路であって、
    前記CPUから読み出し可能に種値を保存する種値記憶部と、
    前記種値記憶部に保存された前記種値に対して規定の演算処理を実行することで検証用鍵値を生成する演算器と、
    前記CPUによって鍵値が書き込まれる鍵値記憶部と、
    前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とを比較する比較器と、
    乱数発生器とを具備し、
    前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とが一致した場合、前記カウンタをリセットすると共に、前記カウンタのリセット時に前記乱数発生器が発生する乱数を前記種値として前記種値記憶部に保存することを特徴とする異常検出回路。
  4. 初期値からタイムアウト値に向けて所定のクロックでカウントを行うカウンタを有し、
    前記カウンタがリセットされることなく、カウント値が前記タイムアウト値に到達した場
    合に、CPUの異常を検出する異常検出回路であって、
    前記CPUから読み出し可能に種値を保存する種値記憶部と、
    前記種値記憶部に保存された前記種値に対して規定の演算処理を実行することで検証用鍵値を生成する演算器と、
    前記CPUによって鍵値が書き込まれる鍵値記憶部と、
    前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とを比較する比較器とを具備し、
    前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とが一致した場合、前記カウンタをリセットすると共に、前記カウンタのリセット時における外部回路のカウント値や乱数を前記種値として前記種値記憶部に保存することを特徴とする異常検出回路。
  5. 前記演算器による規定の演算処理は、前記種値としてとりうる値の種値集合と、前記検証用鍵値としてとりうる値の鍵値集合との関係として、前記種値集合から前記鍵値集合への写像が全単射であることを特徴とする請求項1乃至4のいずれかに記載の異常検出回路。
  6. 前記演算器による規定の演算処理には、ビットスワップが含まれていることを特徴とする請求項1乃至5のいずれかに記載の異常検出回路。
  7. 前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とが不一致である場合、前記カウンタをリセットすることなく、カウントを継続させることを特徴とする請求項1乃至のいずれかに記載の異常検出回路。
  8. 請求項1乃至のいずれかに記載の異常検出回路と、前記CPUとを具備することを特徴とするマイクロコンピュータ。
  9. カウンタによって初期値からタイムアウト値に向けて所定のクロックでカウントを行い、前記カウンタがリセットされることなく、カウント値が前記タイムアウト値に到達した場合に、CPUの異常を検出する異常検出方法であって、
    種値記憶部に前記CPUから読み出し可能に種値を保存し、
    演算器によって前記種値記憶部に保存した前記種値に対して規定の演算処理を実行することで検証用鍵値を生成し、
    鍵値記憶部に前記CPUによって鍵値が書き込まれるのを待ち受け、
    比較器によって前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とを比較し、
    前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とが一致した場合、前記カウンタをリセットすると共に、前記カウンタのリセット時のカウント値を前記種値として前記種値記憶部に保存することを特徴とする異常検出方法。
  10. カウンタによって初期値からタイムアウト値に向けて所定のクロックでカウントを行い
    、前記カウンタがリセットされることなく、カウント値が前記タイムアウト値に到達した
    場合に、CPUの異常を検出する異常検出方法であって、
    種値記憶部に前記CPUから読み出し可能に種値を保存し、
    演算器によって前記種値記憶部に保存した前記種値に対して規定の演算処理を実行することで検証用鍵値を生成し、
    鍵値記憶部に前記CPUによって鍵値が書き込まれるのを待ち受け、
    比較器によって前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とを比較し、
    フリーカウンタによって前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とが一致してもリセットすることなくカウントし、
    前記鍵値記憶部に書き込まれた前記鍵値と前記検証用鍵値とが一致した場合、前記カウンタをリセットすると共に、前記カウンタのリセット時における前記フリーカウンタのカウント値を前記種値として前記種値記憶部に保存することを特徴とする異常検出方法。
JP2022502705A 2020-02-27 2020-02-27 異常検出回路及び異常検出方法 Active JP7375903B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/008006 WO2021171472A1 (ja) 2020-02-27 2020-02-27 異常検出回路及び異常検出方法

Publications (2)

Publication Number Publication Date
JPWO2021171472A1 JPWO2021171472A1 (ja) 2021-09-02
JP7375903B2 true JP7375903B2 (ja) 2023-11-08

Family

ID=77490066

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2022502705A Active JP7375903B2 (ja) 2020-02-27 2020-02-27 異常検出回路及び異常検出方法

Country Status (4)

Country Link
US (1) US20220342665A1 (ja)
JP (1) JP7375903B2 (ja)
CN (1) CN114830093A (ja)
WO (1) WO2021171472A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003218850A (ja) 2002-01-18 2003-07-31 Victor Co Of Japan Ltd コンテンツ記録再生装置
JP2015133573A (ja) 2014-01-10 2015-07-23 パナソニックIpマネジメント株式会社 暗号化データ通信装置、暗号化データ通信方法、プログラム、及び、記録媒体

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11289324A (ja) * 1998-04-03 1999-10-19 Matsushita Electric Ind Co Ltd 送受信装置および送受信方法
JPH11306047A (ja) * 1998-04-24 1999-11-05 Matsushita Electric Ind Co Ltd 暴走検出装置
GB9911890D0 (en) * 1999-05-22 1999-07-21 Lucas Ind Plc Method and apparatus for detecting a fault condition in a computer processor
US8386101B2 (en) * 2007-11-07 2013-02-26 GM Global Technology Operations LLC Detecting program flow fault in torque security software for hybrid vehicle electric drive system
KR101988723B1 (ko) * 2017-08-02 2019-06-12 현대오트론 주식회사 Mcu 동작 감시 시스템 및 제어방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003218850A (ja) 2002-01-18 2003-07-31 Victor Co Of Japan Ltd コンテンツ記録再生装置
JP2015133573A (ja) 2014-01-10 2015-07-23 パナソニックIpマネジメント株式会社 暗号化データ通信装置、暗号化データ通信方法、プログラム、及び、記録媒体

Also Published As

Publication number Publication date
US20220342665A1 (en) 2022-10-27
CN114830093A (zh) 2022-07-29
WO2021171472A1 (ja) 2021-09-02
JPWO2021171472A1 (ja) 2021-09-02

Similar Documents

Publication Publication Date Title
JPH0346854B2 (ja)
CN103778028A (zh) 半导体器件
US7676530B2 (en) Duration minimum and maximum circuit for performance counter
JP2018107679A (ja) 半導体装置
US9411007B2 (en) System and method for statistical post-silicon validation
US20090138767A1 (en) Self-diagnostic circuit and self-diagnostic method for detecting errors
JP4693245B2 (ja) 外部からの不正操作に対するコンピュータコアの保護
JP7375903B2 (ja) 異常検出回路及び異常検出方法
US11069421B1 (en) Circuitry for checking operation of error correction code (ECC) circuitry
US8352795B2 (en) High integrity processor monitor
US5440604A (en) Counter malfunction detection using prior, current and predicted parity
JP6041749B2 (ja) トレース収集回路及びトレース収集方法
US20070168807A1 (en) Start/stop circuit for performance counter
US7484147B2 (en) Semiconductor integrated circuit
US8219864B2 (en) Circuit arrangement
TWI802951B (zh) 儲存有限狀態機之狀態資料的方法、電腦系統、及電腦程式產品
US9182958B2 (en) Software code profiling
US9983926B2 (en) Apparatus, system and method for protecting data
Manoochehri et al. Accurate model for application failure due to transient faults in caches
US5144628A (en) Microprogram controller in data processing apparatus
SU1709321A2 (ru) Устройство дл контрол устойчивости функционировани программ
JPH03132829A (ja) パリテイ検査システム
CN112036117A (zh) 一种适用于多种位宽并行输入数据的crc校验控制系统
JP2536781B2 (ja) パリティチェック装置
JPH02207355A (ja) メモリ読出し方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220517

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230411

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230602

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230718

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230913

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230926

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231009

R150 Certificate of patent or registration of utility model

Ref document number: 7375903

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150