JP7316613B2 - 異常検出方法、異常検出プログラム、異常検出装置、書き換え方法、書き換えプログラム及び書き換え装置 - Google Patents

異常検出方法、異常検出プログラム、異常検出装置、書き換え方法、書き換えプログラム及び書き換え装置 Download PDF

Info

Publication number
JP7316613B2
JP7316613B2 JP2020058221A JP2020058221A JP7316613B2 JP 7316613 B2 JP7316613 B2 JP 7316613B2 JP 2020058221 A JP2020058221 A JP 2020058221A JP 2020058221 A JP2020058221 A JP 2020058221A JP 7316613 B2 JP7316613 B2 JP 7316613B2
Authority
JP
Japan
Prior art keywords
branch destination
branch
abnormality detection
rewriting
program
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
JP2020058221A
Other languages
English (en)
Other versions
JP2021157594A (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.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management 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 Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Priority to JP2020058221A priority Critical patent/JP7316613B2/ja
Priority to PCT/JP2021/000423 priority patent/WO2021192485A1/ja
Priority to DE112021000046.2T priority patent/DE112021000046T5/de
Publication of JP2021157594A publication Critical patent/JP2021157594A/ja
Priority to US17/568,268 priority patent/US11947408B2/en
Application granted granted Critical
Publication of JP7316613B2 publication Critical patent/JP7316613B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error 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 the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • 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/0706Error 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 the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error 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 the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • 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
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1048Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using arrangements adapted for a specific error detection or correction feature
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30054Unconditional branch instructions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)

Description

本開示は、異常検出方法、異常検出プログラム、異常検出装置、書き換え方法、書き換えプログラム及び書き換え装置に関する。
従来、関数コール又は割り込み関数の発生時において、復帰アドレスを退避するスタックを多重化する装置が開示されている(例えば特許文献1)。これにより、関数復帰時の異常を検出できる。
特開2017-123119号公報
しかしながら、上記特許文献1では、関数復帰時の異常を検出できるが、関数分岐時の異常を検出することについては開示されていない。
そこで、本開示では、関数分岐時の異常を検出できる異常検出方法等を提供する。
本開示の一態様に係る異常検出方法は、分岐命令に対応する分岐先アドレスを2回以上読み出し、読み出された前記分岐先アドレスのそれぞれが一致しているか否かを判定し、読み出された前記分岐先アドレスのそれぞれが一致している場合、前記分岐命令を実行し、読み出された前記分岐先アドレスのそれぞれが一致していない場合、異常検出処理を実行する処理を含む。
本開示の一態様に係る異常検出プログラムは、上記の異常検出方法をコンピュータに実行させるためのプログラムである。
本開示の一態様に係る異常検出装置は、プログラムにおける分岐命令を検出する検出部と、検出された前記分岐命令に対応する分岐先アドレスを2回以上読み出す読み出し部と、読み出された前記分岐先アドレスのそれぞれが一致しているか否かを判定する判定部と、読み出された前記分岐先アドレスのそれぞれが一致している場合、前記分岐命令を実行し、読み出された前記分岐先アドレスのそれぞれが一致していない場合、異常検出処理を実行する実行部と、を備える。
本開示の一態様に係る書き換え方法は、プログラムの書き換え方法であって、前記プログラムにおける分岐命令を検出し、検出された前記分岐命令を異常検出命令に書き換える処理を含み、前記異常検出命令は、前記分岐命令に対応する分岐先アドレスを2回以上読み出し、読み出された前記分岐先アドレスのそれぞれが一致しているか否かを判定し、読み出された前記分岐先アドレスのそれぞれが一致している場合、前記分岐命令を実行し、読み出された前記分岐先アドレスのそれぞれが一致していない場合、異常検出処理を実行する命令である。
本開示の一態様に係る書き換えプログラムは、上記の書き換え方法をコンピュータに実行させるためのプログラムである。
本開示の一態様に係る書き換え装置は、プログラムの書き換え装置であって、前記プログラムにおける分岐命令を検出する検出部と、検出された前記分岐命令を異常検出命令に書き換える書き換え部と、を備え、前記異常検出命令は、前記分岐命令に対応する分岐先アドレスを2回以上読み出し、読み出された前記分岐先アドレスのそれぞれが一致しているか否かを判定し、読み出された前記分岐先アドレスのそれぞれが一致している場合、前記分岐命令を実行し、読み出された前記分岐先アドレスのそれぞれが一致していない場合、異常検出処理を実行する命令である。
なお、これらの包括的又は具体的な態様は、システム、方法、集積回路、コンピュータプログラムまたはコンピュータ読み取り可能なCD-ROMなどの記録媒体で実現されてもよく、システム、方法、集積回路、コンピュータプログラム及び記録媒体の任意な組み合わせで実現されてもよい。また、記録媒体は、非一時的な記録媒体であってもよい。
本開示の一態様に係る異常検出方法等は、関数分岐時の異常を検出できる。
図1は、実施の形態1に係る異常検出方法の一例を示すフローチャートである。 図2Aは、比較例に係るプログラムの一例及び一時異常発生時の状況を示す図である。 図2Bは、実施の形態1に係る異常検出プログラムの一例及び一時異常発生時の状況を示す図である。 図3Aは、比較例に係るプログラムの一例及び恒久異常発生時の状況を示す図である。 図3Bは、実施の形態1に係る異常検出プログラムの他の一例及び恒久異常発生時の状況を示す図である。 図4は、実施の形態1に係る異常検出装置の一例を示すブロック図である。 図5は、実施の形態2に係る書き換え方法の一例を示すフローチャートである。 図6は、実施の形態2に係る書き換え方法の具体例を模式的に表す図である。 図7は、実施の形態2に係る書き換え装置の一例を示すブロック図である。
本開示の一態様に係る異常検出方法は、分岐命令に対応する分岐先アドレスを2回以上読み出し、読み出された前記分岐先アドレスのそれぞれが一致しているか否かを判定し、読み出された前記分岐先アドレスのそれぞれが一致している場合、前記分岐命令を実行し、読み出された前記分岐先アドレスのそれぞれが一致していない場合、異常検出処理を実行する処理を含む。
これによれば、分岐命令に対応する分岐先アドレスが、プログラムカウンタ(PC)に代入される前に2回以上読み出されて、それぞれが一致した場合のみ分岐命令が実行され(つまり、分岐先アドレスがPCに代入され)、一致していない場合に異常検出処理が実行されるため、関数分岐時の異常を検出できる。
例えば、前記分岐先アドレスは、1つのメモリ領域に保持され、前記読み出しでは、前記分岐先アドレスを前記1つのメモリ領域から2回以上読み出してもよい。
これによれば、1つのメモリ領域からそれぞれ時間間隔を空けて2回以上分岐先アドレスを読み出すという時間的冗長性を利用することで、宇宙線に誘起されるビットステータスの反転等の一時異常を検出できる。また、1つのメモリ領域を利用することから、メモリの使用量を抑制できる。
例えば、前記分岐先アドレスは、異なるメモリ領域に保持され、前記読み出しでは、前記分岐先アドレスを前記異なるメモリ領域から2回以上読み出してもよい。
これによれば、異なるメモリ領域から2回以上分岐先アドレスを読み出すという空間的冗長性を利用することで、製造ばらつき又は経年劣化等による異常等の恒久異常を検出できる。また、異なるメモリ領域からそれぞれ時間間隔を空けて2回以上分岐先アドレスを読み出すという時間的冗長性も利用することで、恒久異常だけでなく一時異常も検出できる。
例えば、前記異常検出方法では、特定の条件が満たされた場合に前記読み出しが行われ、前記特定の条件が満たされない場合には前記読み出しが行われなくてもよい。
プログラムに存在する全ての分岐命令に対して、対応する分岐先アドレスが2回以上読み出されて異常検出のための処理が実行されると、処理負荷が増大する。これに対して、特定の条件が満たされた場合にのみ分岐先アドレスの読み出しが実行されることで、処理負荷を抑制できる。
本開示の一態様に係る異常検出プログラムは、上記の異常検出方法をコンピュータに実行させるためのプログラムである。
これによれば、関数分岐時の異常を検出できる異常検出プログラムを提供できる。
本開示の一態様に係る異常検出装置は、プログラムにおける分岐命令を検出する検出部と、検出された前記分岐命令に対応する分岐先アドレスを2回以上読み出す読み出し部と、読み出された前記分岐先アドレスのそれぞれが一致しているか否かを判定する判定部と、読み出された前記分岐先アドレスのそれぞれが一致している場合、前記分岐命令を実行し、読み出された前記分岐先アドレスのそれぞれが一致していない場合、異常検出処理を実行する実行部と、を備える。
これによれば、関数分岐時の異常を検出できる異常検出装置を提供できる。
本開示の一態様に係る書き換え方法は、プログラムの書き換え方法であって、前記プログラムにおける分岐命令を検出し、検出された前記分岐命令を異常検出命令に書き換える処理を含み、前記異常検出命令は、前記分岐命令に対応する分岐先アドレスを2回以上読み出し、読み出された前記分岐先アドレスのそれぞれが一致しているか否かを判定し、読み出された前記分岐先アドレスのそれぞれが一致している場合、前記分岐命令を実行し、読み出された前記分岐先アドレスのそれぞれが一致していない場合、異常検出処理を実行する命令である。
これによれば、既存のプログラムを、関数分岐時の異常を検出できる異常検出プログラムに書き換えることができる書き換え方法を提供できる。
例えば、前記書き換え方法では、特定の条件が満たされた場合に前記書き換えが行われ、前記特定の条件が満たされない場合には前記書き換えが行われなくてもよい。
プログラムに存在する全ての分岐命令に対して、書き換えの処理が実行されると、処理負荷が増大する。これに対して、特定の条件が満たされた場合にのみ書き換えの処理が実行されることで、処理負荷を抑制できる。
本開示の一態様に係る書き換えプログラムは、上記の書き換え方法をコンピュータに実行させるためのプログラムである。
これによれば、既存のプログラムを、関数分岐時の異常を検出できる異常検出プログラムに書き換えることができる書き換えプログラムを提供できる。
本開示の一態様に係る書き換え装置は、プログラムの書き換え装置であって、前記プログラムにおける分岐命令を検出する検出部と、検出された前記分岐命令を異常検出命令に書き換える書き換え部と、を備え、前記異常検出命令は、前記分岐命令に対応する分岐先アドレスを2回以上読み出し、読み出された前記分岐先アドレスのそれぞれが一致しているか否かを判定し、読み出された前記分岐先アドレスのそれぞれが一致している場合、前記分岐命令を実行し、読み出された前記分岐先アドレスのそれぞれが一致していない場合、異常検出処理を実行する命令である。
これによれば既存のプログラムを、関数分岐時の異常を検出できる異常検出プログラムに書き換えることができる書き換え装置を提供できる。
以下、実施の形態について、図面を参照しながら具体的に説明する。
なお、以下で説明する実施の形態は、いずれも包括的又は具体的な例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本開示を限定する主旨ではない。
(実施の形態1)
実施の形態1について図1から図4を用いて説明する。実施の形態1では、関数分岐時の異常を検出できる異常検出方法、異常検出方法をコンピュータに実行させるための異常検出プログラム及び異常検出装置について説明する。
異常検出方法は、プログラムにおける分岐命令(関数呼び出し命令)が実行される際の異常を検出する方法である。プログラムにおける分岐命令は、ジャンプ先の関数の命令コードが格納される分岐先アドレス(例えば関数ポインタの値)がPCに代入されることで実行される。このとき、ジャンプ先のアドレス、すなわち分岐先アドレスが何らかの要因で書き換えられることがある。例えば、書き換えられたアドレスがアクセス不可のメモリ領域だった場合には、Abort例外として異常検出が可能であり、或いは、書き換えられたアドレスがアクセス可能だが無効命令(例えばコード領域外)だった場合には、無効命令例外として異常検出が可能である。しかし、書き換えられたアドレスがコード領域だった場合、例外処理ができないか遅れるため、プログラムが暴走するおそれがある。例えば、誤ったジャンプ先の関数の完了時には、スタックに正しい復帰アドレスが退避されていないため、誤った復帰アドレスをスタックからポップすることで、PCが再度想定外の値となる。例えば、車載製品のプログラムがこのような想定外の動作をしてしまうと、事故等の要因になりかねない。このため、このような異常を検出する必要がある。
図1は、実施の形態1に係る異常検出方法の一例を示すフローチャートである。
まず、分岐命令に対応する分岐先アドレスを2回以上読み出す処理(ステップS1)が行われる。例えば、当該読み出しでは、分岐先アドレスを1つのメモリ領域から2回以上読み出してもよいし、分岐先アドレスを異なるメモリ領域から2回以上読み出してもよい。
次に、読み出された分岐先アドレスのそれぞれが一致しているか否かを判定する処理(ステップS2)が行われる。例えば、読み出された分岐先アドレスがそれぞれ異なるレジスタに格納され、異なるレジスタに格納された分岐先アドレスのそれぞれが一致しているか否かが判定される。
そして、読み出された分岐先アドレスのそれぞれが一致している場合(ステップS2でYes)、分岐命令を実行する処理(ステップS3)が行われる。例えば、読み出された分岐先アドレスのそれぞれが一致している場合、PCに分岐先アドレスが代入されることで、分岐命令が実行される。
読み出された分岐先アドレスのそれぞれが一致していない場合(ステップS2でNo)、異常検出処理を実行する処理(ステップS4)が行われる。異常検出処理は、例えば例外処理である。例えば、読み出された分岐先アドレスのそれぞれが一致していない場合、PCに例外処理命令に対応するアドレスが代入されることで、異常検出処理が実行される。
このように、分岐命令に対応する分岐先アドレスが、PCに代入される前に2回以上読み出されて、それぞれが一致した場合のみ分岐命令が実行され(つまり、分岐先アドレスがPCに代入され)、一致していない場合に異常検出処理が実行されるため、関数分岐時の異常を検出できる。
例えば、異常検出方法におけるステップは、コンピュータ(コンピュータシステム)によって実行されてもよい。そして、本開示は、異常検出方法に含まれるステップを、コンピュータに実行させるための異常検出プログラムとして実現できる。さらに、本開示は、異常検出プログラムを記録したCD-ROM等である非一時的なコンピュータ読み取り可能な記録媒体として実現できる。
例えば、本開示が、異常検出プログラム(ソフトウェア)で実現される場合には、コンピュータのCPU、メモリ及び入出力回路等のハードウェア資源を利用して異常検出プログラムが実行されることによって、異常検出方法に含まれる各ステップが実行される。つまり、CPUがデータをメモリ又は入出力回路等から取得して演算したり、演算結果をメモリ又は入出力回路等に出力したりすることによって、各ステップが実行される。
異常検出方法及び異常検出プログラムの具体例について、図2Aから図3Bを用いて説明する。なお、異常検出プログラムは、アセンブリ言語等のような低水準言語により実現されてもよいし、C言語等のような高水準言語により実現されてもよい。
図2Aは、比較例に係るプログラムの一例及び一時異常発生時の状況を示す図である。
図2Aの上側には、比較例に係るプログラム1000を示し、図2Aの下側にはプログラム1000が実行されるときに一時異常が発生したときの状況を示す。
プログラム1000は、関数func1()及び関数func2()を含むプログラムであり、例えばソースコードで模式的に表現されている。関数func1()及び関数func2()は、それぞれ分岐命令である。ここでは、関数func2()に着目する。
図2Aの下側に示されるように、プログラム1000の置かれたメモリに保持された関数func2()に対応する分岐先アドレス(例えば0xDE00_0000)がPCに代入されることで、関数func2()が実行される。しかし、分岐先アドレスがPCに代入される際に、宇宙線に誘起されるビットステータスの反転等の一時異常が発生した場合、一時異常によって書き換えられた分岐先アドレス(例えば0xBE00_0000)がPCに代入され、プログラムが暴走するおそれがある。
図2Bは、実施の形態1に係る異常検出プログラムの一例及び一時異常発生時の状況を示す図である。
図2Bの上側には、実施の形態1に係る異常検出プログラム1001を示し、図2Bの下側には異常検出プログラム1001が実行されるときに一時異常が発生したときの状況を示す。
例えば、関数func2()に対応する分岐先アドレスは、1つのメモリ領域に保持され、異常検出プログラム1001では、関数func2()に対応する分岐先アドレスが1つのメモリ領域から2回以上読み出される。例えば、図2Bに示されるように、1つのメモリ領域から関数func2()に対応する分岐先アドレスが読み出されて、関数アドレス一時保存用変数A(例えばレジスタA)に格納され(ステップS1A)、1つのメモリ領域から関数func2()に対応する分岐先アドレスが再度読み出されて、関数アドレス一時保存用変数B(例えばレジスタB)に格納される(ステップS1B)。ここでのステップS1A及びステップS1Bは、図1に示される異常検出方法におけるステップS1に対応する。なお、分岐先アドレスが読み出される時間間隔は、異常検出プログラム1001を実行するコンピュータの性能等に応じて適宜決定される。
図2Bの下側に示されるように、ステップS1Aにおける分岐先アドレスの1回目の読み出しでは、一時異常が発生せずレジスタAに正しい分岐先アドレス(例えば0xDE00_0000)が格納されることがわかる。ステップS1Bにおける分岐先アドレスの2回目の読み出しでは、一時異常が発生しており、レジスタBに一時異常によって書き換えられた分岐先アドレス(例えば0xBE00_0000)が格納されることがわかる。
次に、異常検出プログラム1001では、読み出された分岐先アドレスのそれぞれが一致しているか否かが判定される(ステップS2)。ここでのステップS2は、図1に示される異常検出方法におけるステップS2に対応する。
図2Bの下側に示されるように、ステップS2における判定では、レジスタAに格納された分岐先アドレスとレジスタBに格納された分岐先アドレスとが一致しているか否かが判定される。
異常検出プログラム1001では、読み出された分岐先アドレスのそれぞれが一致している場合、関数func2()が実行される(ステップS3)。すなわち、関数func2()に対応する分岐先アドレスがPCに代入される。ここでのステップS3は、図1に示される異常検出方法におけるステップS3に対応する。
異常検出プログラム1001では、読み出された分岐先アドレスのそれぞれが一致していない場合、異常検出処理として例えば例外処理が実行される。すなわち、例外処理命令に対応するアドレスがPCに代入される。ここでのステップS4は、図1に示される異常検出方法におけるステップS4に対応する。
このように、1つのメモリ領域からそれぞれ時間間隔を空けて2回以上分岐先アドレスを読み出すという時間的冗長性を利用することで、宇宙線に誘起されるビットステータスの反転等の一時異常を検出できる。
図3Aは、比較例に係るプログラムの一例及び恒久異常発生時の状況を示す図である。
図3Aの上側には、比較例に係るプログラム1000を示し、図3Aの下側にはプログラム1000が実行されるときに恒久異常が発生したときの状況を示す。
プログラム1000は、図2Aで説明したものと同じであるため説明は省略する。
図3Aの下側に示されるように、プログラム1000の置かれたメモリに保持された関数func2()に対応する分岐先アドレス(例えば0xDE00_0000)がPCに代入されることで、関数func2()が実行される。しかし、製造ばらつき又は経年劣化等によるメモリの異常等の恒久異常が発生した場合、メモリに保持された分岐先アドレスが書き換えられ、恒久異常によって書き換えられた分岐先アドレス(例えば0xBE00_0000)がPCに代入され、プログラムが暴走するおそれがある。
図3Bは、実施の形態1に係る異常検出プログラムの他の一例及び恒久異常発生時の状況を示す図である。
図3Bの上側には、実施の形態1に係る異常検出プログラム1002を示し、図3Bの下側には異常検出プログラム1002が実行されるときに恒久異常が発生したときの状況を示す。
例えば、関数func2()に対応する分岐先アドレスは、異なるメモリ領域に保持され、異常検出プログラム1002では、関数func2()に対応する分岐先アドレスが異なるメモリ領域から2回以上読み出される。例えば、図3Bに示されるように、メモリ領域1から関数func2()に対応する分岐先アドレスが読み出されて、関数アドレス一時保存用変数A(例えばレジスタA)に格納され(ステップS1A)、メモリ領域2から関数func2()に対応する分岐先アドレスが読み出されて、関数アドレス一時保存用変数B(例えばレジスタB)に格納される(ステップS1B)。ここでのステップS1A及びステップS1Bは、図1に示される異常検出方法におけるステップS1に対応する。
図3Bの下側に示されるように、ステップS1Aにおける分岐先アドレスのメモリ領域1からの読み出しでは、メモリ領域1には恒久異常が発生しておらずレジスタAに正しい分岐先アドレス(例えば0xDE00_0000)が格納されることがわかる。ステップS1Bにおける分岐先アドレスのメモリ領域2からの読み出しでは、メモリ領域2に恒久異常が発生しており、レジスタBに恒久異常によって書き換えられた分岐先アドレス(例えば0xBE00_0000)が格納されることがわかる。
次に、異常検出プログラム1002では、読み出された分岐先アドレスのそれぞれが一致しているか否かが判定される(ステップS2)。ここでのステップS2は、図1に示される異常検出方法におけるステップS2に対応する。
図3Bの下側に示されるように、ステップS2における判定では、レジスタAに格納された分岐先アドレスとレジスタBに格納された分岐先アドレスとが一致しているか否かが判定される。
異常検出プログラム1002では、読み出された分岐先アドレスのそれぞれが一致している場合、関数func2()が実行される(ステップS3)。すなわち、関数func2()に対応する分岐先アドレスがPCに代入される。ここでのステップS3は、図1に示される異常検出方法におけるステップS3に対応する。
異常検出プログラム1002では、読み出された分岐先アドレスのそれぞれが一致していない場合、異常検出処理として例えば例外処理が実行される。すなわち、例外処理命令に対応するアドレスがPCに代入される。ここでのステップS4は、図1に示される異常検出方法におけるステップS4に対応する。
このように、異なるメモリ領域から2回以上分岐先アドレスを読み出すという空間的冗長性を利用することで、製造ばらつき又は経年劣化等による異常等の恒久異常を検出できる。なお、異なるメモリ領域からそれぞれ時間間隔を空けて2回以上分岐先アドレスを読み出すという時間的冗長性も利用することで、恒久異常だけでなく一時異常も検出できる。
なお、プログラムには、数多くの分岐命令が存在する場合があり、プログラムに存在する全ての分岐命令に対して、対応する分岐先アドレスが2回以上読み出されて異常検出のための処理が実行されると、処理負荷が増大する。そこで、異常検出方法では、特定の条件が満たされた場合に上記読み出しが行われ、特定の条件が満たされない場合には上記読み出しが行われなくてもよい。例えば、特定の条件は、分岐命令に対応する分岐先アドレスを2回以上読み込んだときに追加で必要となるメモリ容量又は処理時間等が、一定以下となるという条件である。また、例えば、各分岐命令について、プログラムにおいて実行される頻度に応じて優先順位が付けられていてもよく、特定の条件は、読み出そうとしている分岐先アドレスに対応する分岐命令の優先順位が一定以上であるという条件であってもよい。このように、特定の条件が満たされた場合にのみ分岐先アドレスの読み出しが実行されることで、処理負荷を抑制できる。
例えば、本開示は、関数分岐時の異常を検出できる異常検出装置として実現できる。
図4は、実施の形態1に係る異常検出装置10の一例を示すブロック図である。なお、図4には、異常検出装置10の他に分岐命令を含むプログラム及び各種命令に対応するアドレス等を保持するメモリ20、並びに、PC30が示されている。メモリ20及びPC30は、異常検出装置10に備えられていてもよい。なお、分岐命令を含むプログラム及び各種命令に対応するアドレス等は、1つのメモリ20に保持されていてもよいし、複数のメモリに分かれて保持されていてもよい。
異常検出装置10は、プロセッサ及びメモリ等を含むコンピュータである。メモリは、プロセッサにより実行される制御プログラムを記憶することができる。異常検出装置10は、検出部11、読み出し部12、判定部13、実行部14及び記憶回路15を備える。検出部11、読み出し部12、判定部13及び実行部14は、メモリに格納された制御プログラムを実行するプロセッサ等によって実現される。
検出部11は、メモリ20に置かれたプログラムにおける分岐命令を検出する。
読み出し部12は、検出部11によって検出された分岐命令に対応する分岐先アドレスを2回以上読み出す。例えば、読み出し部12は、分岐先アドレスを2回読み出し、1回目に読み出した分岐先アドレスを記憶回路15のレジスタAに格納し、2回目に読み出した分岐先アドレスを記憶回路15のレジスタBに格納する。なお、ここでは、ある分岐命令に対応する分岐先アドレスが1つのメモリ領域に保持され、読み出し部12は、分岐先アドレスを1つのメモリ領域から2回以上読み出す例を示しているが、ある分岐命令に対応する分岐先アドレスが異なるメモリ領域に保持され、読み出し部12は、分岐先アドレスを異なるメモリ領域から2回以上読み出してもよい。
判定部13は、読み出された分岐先アドレスのそれぞれが一致しているか否かを判定する。例えば、判定部13は、1回目に読み出されてレジスタAに格納された分岐先アドレスと、2回目に読み出されてレジスタBに格納された分岐先アドレスとが一致しているか否かを判定する。
実行部14は、読み出された分岐先アドレスのそれぞれが一致している場合、分岐命令を実行し、読み出された前記分岐先アドレスのそれぞれが一致していない場合、異常検出処理を実行する。実行部14は、読み出された分岐先アドレスのそれぞれが一致している場合、例えば、分岐命令に対応する分岐先アドレスとしてレジスタBに格納された分岐先アドレスをPC30に代入することで、分岐命令を実行する。なお、実行部14は、読み出された分岐先アドレスのそれぞれが一致している場合に、分岐命令に対応する分岐先アドレスとしてレジスタAに格納された分岐先アドレスをPC30に代入することで、分岐命令を実行してもよい。実行部14は、読み出された分岐先アドレスのそれぞれが一致していない場合、例えば、例外処理命令に対応するアドレスをPC30に代入することで、異常検出処理を実行する。
なお、上述した特定の条件が満たされた場合に、検出部11は、メモリ20に置かれたプログラムにおける分岐命令を検出してもよく、読み出し部12は、検出された分岐命令に対応する分岐先アドレスを2回以上読み出してもよい。
このように、本開示は、関数分岐時の異常を検出できる異常検出装置10(ハードウェア)として実現でき、ソフトウェアによる方式と比較して、メモリ資源の削減が可能となる。
(実施の形態2)
実施の形態2について図5から図7を用いて説明する。実施の形態2では、既存のプログラムを、関数分岐時の異常を検出できる異常検出プログラムに書き換えることができる書き換え方法、書き換えプログラム及び書き換え装置について説明する。
図5は、実施の形態2に係る書き換え方法の一例を示すフローチャートである。
まず、プログラムにおける分岐命令を検出する処理(ステップS11)が行われる。なお、実施の形態1で説明したように、処理負荷の抑制のために、プログラムに存在する複数の分岐命令のうちの一部の分岐命令を検出する処理が行われてもよい。
次に、検出された分岐命令を異常検出命令に書き換える処理(ステップS12)が行われる。異常検出命令は、分岐命令に対応する分岐先アドレスを2回以上読み出し、読み出された分岐先アドレスのそれぞれが一致しているか否かを判定し、読み出された分岐先アドレスのそれぞれが一致している場合、分岐命令を実行し、読み出された分岐先アドレスのそれぞれが一致していない場合、異常検出処理を実行する命令である。
実施の形態2に係る書き換え方法の具体例について、図6を用いて説明する。
図6は、実施の形態2に係る書き換え方法の具体例を模式的に表す図である。
図6に示されるように、例えば、プログラム1000における分岐命令(関数func2())が検出されることで、プログラム1000における関数func2()が、異常検出命令に書き換えられる。これにより、既存のプログラム1000を、関数分岐時の異常を検出できる異常検出プログラム1001に書き換えることができる。なお、既存のプログラム1000が異常検出プログラム1002に書き換えられてもよい。
なお、プログラムには、数多くの分岐命令が存在する場合があり、プログラムに存在する全ての分岐命令に対して、書き換えの処理が実行されると、処理負荷が増大する。そこで、書き換え方法では、特定の条件が満たされた場合に上記書き換えが行われ、特定の条件が満たされない場合には上記書き換えが行われなくてもよい。例えば、特定の条件は、分岐命令を異常検出命令に書き換えたときに追加で必要となるメモリ容量又は処理時間等が、一定以下となるという条件である。また、例えば、各分岐命令について、プログラムにおいて実行される頻度に応じて優先順位が付けられていてもよく、特定の条件は、書き換えようとしている分岐命令の優先順位が一定以上であるという条件であってもよい。このように、特定の条件が満たされた場合にのみ書き換えの処理が実行されることで、処理負荷を抑制できる。
例えば、本開示は、既存のプログラムを、関数分岐時の異常を検出できる異常検出プログラムに書き換えることができる書き換え装置として実現できる。
図7は、実施の形態2に係る書き換え装置100の一例を示すブロック図である。なお、図7には、書き換え装置100の他に分岐命令を含むプログラム及び各種命令に対応するアドレス等を保持するメモリ20が示されている。なお、分岐命令を含むプログラム及び各種命令に対応するアドレス等は、1つのメモリ20に保持されていてもよいし、複数のメモリに分かれて保持されていてもよい。
書き換え装置100は、プロセッサ及びメモリ等を含むコンピュータである。メモリは、プロセッサにより実行される制御プログラムを記憶することができる。書き換え装置100は、検出部101及び書き換え部102を備える。検出部101及び書き換え部102は、メモリに格納された制御プログラムを実行するプロセッサ等によって実現される。
検出部101は、メモリ20に置かれたプログラムにおける分岐命令を検出する。
書き換え部102は、検出部101によって検出された分岐命令を異常検出命令に書き換える。例えば、書き換え部102は、検出された分岐命令に対応する分岐先アドレス及び例外処理命令に対応するアドレス等を用いて書き換えを実行する。
なお、上述した特定の条件が満たされた場合に、検出部101は、メモリ20に置かれたプログラムにおける分岐命令を検出してもよく、書き換え部102は、検出された分岐命令を異常検出命令に書き換えてもよい。
このように、本開示は、既存のプログラムを、関数分岐時の異常を検出できる異常検出プログラムに書き換えることができる書き換え装置100(ハードウェア)として実現できる。
例えば、書き換え方法におけるステップは、コンピュータ(コンピュータシステム)によって実行されてもよい。そして、本開示は、書き換え方法に含まれるステップを、コンピュータに実行させるための書き換えプログラムとして実現できる。さらに、本開示は、書き換えプログラムを記録したCD-ROM等である非一時的なコンピュータ読み取り可能な記録媒体として実現できる。
例えば、本開示が、書き換えプログラム(ソフトウェア)で実現される場合には、コンピュータのCPU、メモリ及び入出力回路等のハードウェア資源を利用して書き換えプログラムが実行されることによって、書き換え方法に含まれる各ステップが実行される。つまり、CPUがデータをメモリ又は入出力回路等から取得して演算したり、演算結果をメモリ又は入出力回路等に出力したりすることによって、各ステップが実行される。
(その他の実施の形態)
以上のように、本開示に係る技術の例示として実施の形態を説明した。しかしながら、本開示に係る技術は、これに限定されず、適宜、変更、置き換え、付加、省略等を行った実施の形態にも適用可能である。例えば、以下のような変形例も本開示の一実施の形態に含まれる。
上記実施の形態の異常検出装置10及び書き換え装置100に含まれる各構成要素は、専用又は汎用の回路として実現されてもよい。
また、上記実施の形態の異常検出装置10及び書き換え装置100に含まれる各構成要素は、集積回路(IC:Integrated Circuit)であるLSI(Large Scale Integration)として実現されてもよい。
また、集積回路はLSIに限られず、専用回路又は汎用プロセッサで実現されてもよい。プログラム可能なFPGA(Field Programmable Gate Array)、又は、LSI内部の回路セルの接続及び設定が再構成可能なリコンフィギュラブル・プロセッサが、利用されてもよい。
さらに、半導体技術の進歩又は派生する別技術によりLSIに置き換わる集積回路化の技術が登場すれば、当然、その技術を用いて、異常検出装置10及び書き換え装置100に含まれる各構成要素の集積回路化が行われてもよい。
その他、実施の形態に対して当業者が思いつく各種変形を施して得られる形態、本開示の趣旨を逸脱しない範囲で各実施の形態における構成要素及び機能を任意に組み合わせることで実現される形態も本開示に含まれる。
本開示は、分岐命令を含むプログラムを使用する装置等に適用できる。
10 異常検出装置
11、101 検出部
12 読み出し部
13 判定部
14 実行部
15 記憶回路
20 メモリ
30 PC
100 書き換え装置
102 書き換え部
1000 プログラム
1001、1002 異常検出プログラム

Claims (14)

  1. 分岐命令に対応する分岐先アドレスを2回以上読み出し、
    読み出された前記分岐先アドレスのそれぞれが一致しているか否かを判定し、
    読み出された前記分岐先アドレスのそれぞれが一致している場合、前記分岐命令を実行し、読み出された前記分岐先アドレスのそれぞれが一致していない場合、異常検出処理を実行し、
    同一の前記分岐先アドレスは、プログラムが置かれたメモリ領域において、2つの異なるメモリ領域に保持され、
    前記読み出しでは、前記分岐先アドレスを前記2つの異なるメモリ領域から2回以上読み出す
    異常検出方法。
  2. 前記異常検出方法では、特定の条件が満たされた場合に前記読み出しが行われ、前記特定の条件が満たされない場合には前記読み出しが行われない
    請求項1に記載の異常検出方法。
  3. 前記特定の条件は、前記分岐命令に対応する分岐先アドレスを2回以上読み込んだときに追加で必要となるメモリ容量が一定以下となる条件である
    請求項に記載の異常検出方法。
  4. 前記特定の条件は、前記分岐命令に対応する分岐先アドレスを2回以上読み込んだときに追加で必要となる処理時間が一定以下となる条件である
    請求項に記載の異常検出方法。
  5. 前記特定の条件は、読み出そうとしている分岐先アドレスに対応する分岐命令の優先順位が一定以上であるという条件である
    請求項に記載の異常検出方法。
  6. 請求項1~のいずれか1項に記載の異常検出方法をコンピュータに実行させるための異常検出プログラム。
  7. プログラムにおける分岐命令を検出する検出部と、
    検出された前記分岐命令に対応する分岐先アドレスを2回以上読み出す読み出し部と、
    読み出された前記分岐先アドレスのそれぞれが一致しているか否かを判定する判定部と、
    読み出された前記分岐先アドレスのそれぞれが一致している場合、前記分岐命令を実行し、読み出された前記分岐先アドレスのそれぞれが一致していない場合、異常検出処理を実行する実行部と、を備え、
    同一の前記分岐先アドレスは、プログラムが置かれたメモリ領域において、2つの異なるメモリ領域に保持され、
    前記読み出し部は、前記分岐先アドレスを前記2つの異なるメモリ領域から2回以上読み出す
    異常検出装置。
  8. プログラムの書き換え方法であって、
    前記プログラムにおける分岐命令を検出し、
    検出された前記分岐命令を異常検出命令に書き換え、
    前記異常検出命令は、
    前記分岐命令に対応する分岐先アドレスを2回以上読み出し、
    読み出された前記分岐先アドレスのそれぞれが一致しているか否かを判定し、
    読み出された前記分岐先アドレスのそれぞれが一致している場合、前記分岐命令を実行し、読み出された前記分岐先アドレスのそれぞれが一致していない場合、異常検出処理を実行する命令であり、
    同一の前記分岐先アドレスは、プログラムが置かれたメモリ領域において、2つの異なるメモリ領域に保持され、
    前記読み出しでは、前記分岐先アドレスを前記2つの異なるメモリ領域から2回以上読み出す
    書き換え方法。
  9. 前記書き換え方法では、特定の条件が満たされた場合に前記書き換えが行われ、前記特定の条件が満たされない場合には前記書き換えが行われない
    請求項に記載の書き換え方法。
  10. 前記特定の条件は、前記分岐命令を前記異常検出命令に書き換えたときに追加で必要となるメモリ容量が一定以下となる条件である
    請求項に記載の書き換え方法。
  11. 前記特定の条件は、前記分岐命令を前記異常検出命令に書き換えたときに追加で必要となる処理時間が一定以下となる条件である
    請求項に記載の書き換え方法。
  12. 前記特定の条件は、書き換えようとしている分岐命令の優先順位が一定以上であるという条件である
    請求項に記載の書き換え方法。
  13. 請求項12のいずれか1項に記載の書き換え方法をコンピュータに実行させるための書き換えプログラム。
  14. プログラムの書き換え装置であって、
    前記プログラムにおける分岐命令を検出する検出部と、
    検出された前記分岐命令を異常検出命令に書き換える書き換え部と、を備え、
    前記異常検出命令は、
    前記分岐命令に対応する分岐先アドレスを2回以上読み出し、
    読み出された前記分岐先アドレスのそれぞれが一致しているか否かを判定し、
    読み出された前記分岐先アドレスのそれぞれが一致している場合、前記分岐命令を実行し、読み出された前記分岐先アドレスのそれぞれが一致していない場合、異常検出処理を実行する命令であり、
    同一の前記分岐先アドレスは、プログラムが置かれたメモリ領域において、2つの異なるメモリ領域に保持され、
    前記読み出しでは、前記分岐先アドレスを前記2つの異なるメモリ領域から2回以上読み出す
    書き換え装置。
JP2020058221A 2020-03-27 2020-03-27 異常検出方法、異常検出プログラム、異常検出装置、書き換え方法、書き換えプログラム及び書き換え装置 Active JP7316613B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2020058221A JP7316613B2 (ja) 2020-03-27 2020-03-27 異常検出方法、異常検出プログラム、異常検出装置、書き換え方法、書き換えプログラム及び書き換え装置
PCT/JP2021/000423 WO2021192485A1 (ja) 2020-03-27 2021-01-08 異常検出方法、異常検出プログラム、異常検出装置、書き換え方法、書き換えプログラム及び書き換え装置
DE112021000046.2T DE112021000046T5 (de) 2020-03-27 2021-01-08 Anomalieerfassungsverfahren, Anomalieerfassungsprogramm, Anomalieerfassungsvorrichtung, Umschreibeverfahren, Umschreibeprogramm und Umschreibevorrichtung
US17/568,268 US11947408B2 (en) 2020-03-27 2022-01-04 Anomaly detection method, anomaly detection recording medium, anomaly detection device, rewriting method, and rewriting device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2020058221A JP7316613B2 (ja) 2020-03-27 2020-03-27 異常検出方法、異常検出プログラム、異常検出装置、書き換え方法、書き換えプログラム及び書き換え装置

Publications (2)

Publication Number Publication Date
JP2021157594A JP2021157594A (ja) 2021-10-07
JP7316613B2 true JP7316613B2 (ja) 2023-07-28

Family

ID=77891670

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020058221A Active JP7316613B2 (ja) 2020-03-27 2020-03-27 異常検出方法、異常検出プログラム、異常検出装置、書き換え方法、書き換えプログラム及び書き換え装置

Country Status (4)

Country Link
US (1) US11947408B2 (ja)
JP (1) JP7316613B2 (ja)
DE (1) DE112021000046T5 (ja)
WO (1) WO2021192485A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000172532A (ja) 1998-12-08 2000-06-23 Hiroaki Takada マルチタスクデバッグ装置及びマルチタスクデバッグ方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2077010B (en) * 1980-06-02 1984-10-31 Hitachi Ltd Microprogramme control method and apparatus therefor
JPS6355644A (ja) * 1986-08-27 1988-03-10 Nec Corp プログラム暴走防止方式
JPS6424633U (ja) 1987-08-05 1989-02-10
JPH03268034A (ja) * 1990-03-19 1991-11-28 Hitachi Ltd プログラム実行監視方法
JPH04364531A (ja) * 1991-06-12 1992-12-16 Toshiba Corp マイクロプロセッサ
JPH0564933A (ja) 1991-07-08 1993-03-19 Sharp Corp プリンター
JPH0564933U (ja) * 1992-01-27 1993-08-27 三菱電機株式会社 電子計算機
JP4660056B2 (ja) * 2002-08-05 2011-03-30 株式会社セキュアウェア データ処理装置
JP2011154459A (ja) 2010-01-26 2011-08-11 Renesas Electronics Corp コンピュータシステムのプログラム異常動作検出装置
JP5549734B2 (ja) * 2010-08-18 2014-07-16 富士通株式会社 試験方法、演算処理装置、試験プログラム、試験プログラム生成方法、試験プログラム生成装置、及び試験プログラム生成プログラム
JP3169879U (ja) 2010-10-22 2011-08-25 有限会社アトリエ セン サイズ調節可能アクセサリー
US9003225B2 (en) * 2012-10-17 2015-04-07 Advanced Micro Devices, Inc. Confirming store-to-load forwards
JP6424633B2 (ja) 2015-01-08 2018-11-21 大日本印刷株式会社 電子情報記憶媒体、異常検知方法、及びプログラム
JP2017123119A (ja) 2016-01-08 2017-07-13 株式会社デンソー 電子制御装置
DE102016113968A1 (de) * 2016-07-28 2018-02-01 Technische Universität München Prozessor zur korrelationsbasierter Endlosschleifenerkennung

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000172532A (ja) 1998-12-08 2000-06-23 Hiroaki Takada マルチタスクデバッグ装置及びマルチタスクデバッグ方法

Also Published As

Publication number Publication date
WO2021192485A1 (ja) 2021-09-30
DE112021000046T5 (de) 2022-07-07
US20220129339A1 (en) 2022-04-28
US11947408B2 (en) 2024-04-02
JP2021157594A (ja) 2021-10-07

Similar Documents

Publication Publication Date Title
CN109086193B (zh) 监控方法、装置及系统
JP2009541834A (ja) ネイティブコードに結合中に例外処理するための例外処理システム、例外処理方法、変換装置、および記憶媒体
JP2010044578A (ja) マルチコアプロセッサ
JP4202244B2 (ja) Vliw型dsp,及びその動作方法
JP4434548B2 (ja) L2訂正可能エラーのための複数のプロセッサ・コアの割振り解除方法
JP2013225208A (ja) 情報処理装置、情報処理方法、及びプログラム
US7640421B1 (en) Method and system for determining context switch state
US20120017072A1 (en) Modifying a video resolution of video data in a pre-operating system environment
JP7316613B2 (ja) 異常検出方法、異常検出プログラム、異常検出装置、書き換え方法、書き換えプログラム及び書き換え装置
CN111797390B (zh) 程序运行方法、装置、电子设备及计算机可读存储介质
JP2000322264A (ja) 電子機器
TW201346529A (zh) 訊號處理電路以及使用該訊號處理電路的測試裝置
CN110275710B (zh) 一种Java本地接口一致性检查方法及系统、存储介质及终端
JP2001256044A (ja) データ処理装置
US20070101220A1 (en) Systems and methods for accessing input/output devices
CN111221701A (zh) 一种芯片及其电路逻辑重构系统
JP2000339189A (ja) 不正なメモリアクセスを検出する方法、デバッグ装置および記録媒体
US20090217014A1 (en) Processor, memory device, processing device, and method for processing instruction
KR101225577B1 (ko) 어셈블리 언어 코드의 분석 장치 및 방법
US20240037028A1 (en) Software sharing across multiple cores
JPH1069399A (ja) マイクロコンピュータ
KR102475840B1 (ko) 태스크 모니터링 방법, 그리고 이를 구현하기 위한 장치
JP3102568B2 (ja) ソフトウエア開発装置
WO2022089505A1 (zh) 一种错误检测方法及相关装置
KR20080044652A (ko) Cpu에서의 스택을 이용한 디버깅 방법

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20221220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230217

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: 20230607

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: 20230620

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230707

R151 Written notification of patent or utility model registration

Ref document number: 7316613

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

SZ03 Written request for cancellation of trust registration

Free format text: JAPANESE INTERMEDIATE CODE: R313Z03