JP6358019B2 - Arithmetic apparatus, arithmetic method, and arithmetic program - Google Patents
Arithmetic apparatus, arithmetic method, and arithmetic program Download PDFInfo
- Publication number
- JP6358019B2 JP6358019B2 JP2014199957A JP2014199957A JP6358019B2 JP 6358019 B2 JP6358019 B2 JP 6358019B2 JP 2014199957 A JP2014199957 A JP 2014199957A JP 2014199957 A JP2014199957 A JP 2014199957A JP 6358019 B2 JP6358019 B2 JP 6358019B2
- Authority
- JP
- Japan
- Prior art keywords
- arithmetic unit
- core
- arithmetic
- area
- stack area
- 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
Links
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Description
本発明は、自己診断を実行するマイクロプロセッサ等の技術分野に関する。 The present invention relates to the technical field of a microprocessor or the like that performs self-diagnosis.
マイクロプロセッサを構成する多くの素子は半導体であり、半導体は結晶の状態や、あるいは経年劣化等の原因によって故障する可能性がある。特に、セキュリティを目的とするスマートカードや、機能安全を目的とする車載、航空、宇宙等の分野に使用されるマイクロプロセッサは、高い精度の故障検知能力が要求されている。故障検知のための有効な手段として、マイクロプロセッサの自己診断が知られている。これは、メモリやレジスタの書き込み及び読み出し能力(例えば、あるデータを書き込んだ後に読み出し、書き込んだデータと読み出したデータが一致するか)を検査したり、演算能力(例えば、乱数生成器を連続実行しても同じ値が出力されないか、RSAによる暗号化を実行すると想定通りの答えが出力されるか)を検査するものである。このような自己診断は、例えば、マイクロプロセッサが起動されるたびに実行される。これはスタートアップ処理やブートストラップ処理と呼ばれる処理中に実行されるものであり、マイクロプロセッサが起動するたびに正常に動作することを試し、正常な動作が確認された素子を使用して重要な処理を実行するものである。また、マイクロプロセッサが搭載されるICカードにおける自己診断は、ICカードの活性化後に外部装置に対して行われる初期応答情報(ATR)の出力前に実行されるようになっている(特許文献1参照)。 Many elements constituting the microprocessor are semiconductors, and the semiconductors may break down due to a crystal state or a cause such as aging. In particular, a smart card for security purposes and a microprocessor used in the fields of in-vehicle, aviation, space, etc. for functional safety are required to have a high-precision failure detection capability. As an effective means for detecting a failure, self-diagnosis of a microprocessor is known. This can be done by checking the memory and register writing and reading capabilities (for example, after writing some data, whether the written data and the read data match), or computing capability (for example, running a random number generator continuously) Even if the same value is not output even if RSA encryption is executed, an expected answer is output). Such self-diagnosis is executed, for example, every time the microprocessor is started. This is executed during a process called startup processing or bootstrap processing, and it is important to try to operate normally every time the microprocessor starts up and to use elements that have been confirmed to operate normally. Is to execute. Further, the self-diagnosis in the IC card on which the microprocessor is mounted is executed before the output of the initial response information (ATR) performed to the external device after the activation of the IC card (Patent Document 1). reference).
しかしながら、自己診断の実行中にマイクロプロセッサが用いるスタックを記憶しておく揮発性メモリの一部の領域や、自己診断のためにメモリから読み出されたデータを一時的に記憶しておくレジスタは、自己診断により使用されるため、検査対象とすることはできない。そのため、この揮発性メモリの一部に発生した故障は、自己診断とは別の何らかの要因によって偶発的に検知されることになり、特に高い精度の故障検知能力が要求される製品分野では問題となっていた。 However, some areas of the volatile memory that stores the stack used by the microprocessor during self-diagnosis and registers that temporarily store data read from the memory for self-diagnosis Because it is used for self-diagnosis, it cannot be the subject of inspection. For this reason, a failure that occurs in a part of this volatile memory is detected accidentally by some factor other than self-diagnosis, which is a problem particularly in product fields that require high-precision failure detection capability. It was.
そこで、本発明は、上記問題等に鑑みてなされたものであり、自己診断のために用いられる領域の検査を効率良く実行することが可能な演算装置、演算方法、及び演算プログラムを提供することを目的とする。 Accordingly, the present invention has been made in view of the above problems and the like, and provides an arithmetic device, an arithmetic method, and an arithmetic program capable of efficiently executing an inspection of a region used for self-diagnosis. With the goal.
上記課題を解決するために、請求項1に記載の発明は、第1の演算ユニットと第2の演算ユニットを含む複数の演算ユニットと、データの書き込み及び読み出し能力の検査を前記演算ユニットそれぞれに実行させるためのプログラムを記憶する不揮発性メモリと、データを一時的に記憶するワーク領域を有する揮発性メモリと、を備える演算装置であって、前記揮発性メモリは、さらに、前記第1の演算ユニットが前記検査中に用いるデータを記憶する第1のスタック領域と、前記第2の演算ユニットが前記検査中に用いるデータを記憶する第2のスタック領域と、を含む複数のスタック領域を有し、前記第1の演算ユニットは前記第2のスタック領域の前記書き込み及び読み出し能力を検査し、前記第2の演算ユニットは前記第1のスタック領域の前記書き込み及び読み出し能力を検査し、前記第1の演算ユニットと前記第2の演算ユニットの少なくとも一方は前記ワーク領域の前記書き込み及び読み出し能力を検査することを特徴とする。
In order to solve the above-mentioned problem, the invention according to
請求項2に記載の発明は、請求項1に記載の演算装置において、前記演算ユニットは、それぞれ、データを一時的に記憶するレジスタを備えており、前記第1の演算ユニットは前記第2の演算ユニットが備えるレジスタの前記書き込み及び読み出し能力をさらに検査し、前記第2の演算ユニットは前記第1の演算ユニットが備えるレジスタの前記書き込み及び読み出し能力をさらに検査することを特徴とする。 According to a second aspect of the present invention, in the arithmetic device according to the first aspect, each of the arithmetic units includes a register for temporarily storing data, and the first arithmetic unit includes the second arithmetic unit. The writing and reading ability of the register included in the arithmetic unit is further checked, and the second arithmetic unit further checks the writing and reading ability of the register included in the first arithmetic unit.
請求項3に記載の発明は、請求項1または2に記載の演算装置において、前記第1の演算ユニットは前記ワーク領域における一部の領域の前記書き込み及び読み出し能力を検査し、前記第2の演算ユニットは前記ワーク領域における前記一部の領域を除く残りの領域の前記書き込み及び読み出し能力を検査することを特徴とする。 According to a third aspect of the present invention, in the arithmetic device according to the first or second aspect, the first arithmetic unit inspects the writing and reading ability of a part of the work area, and the second arithmetic unit The arithmetic unit checks the writing and reading ability of the remaining area excluding the partial area in the work area.
請求項4に記載の発明は、第1の演算ユニットと第2の演算ユニットを含む複数の演算ユニットと、データの書き込み及び読み出し能力の検査を前記演算ユニットそれぞれに実行させるためのプログラムを記憶する不揮発性メモリと、データを一時的に記憶するワーク領域と、前記第1の演算ユニットが前記検査中に用いるデータを記憶する第1のスタック領域、及び前記第2の演算ユニットが前記検査中に用いるデータを記憶する第2のスタック領域を含む複数のスタック領域とを有する揮発性メモリと、を備えるプロセッサにおける演算方法であって、前記第1の演算ユニットが前記第2のスタック領域の前記書き込み及び読み出し能力を検査するステップと、前記第2の演算ユニットが前記第1のスタック領域の前記書き込み及び読み出し能力を検査するステップと、前記第1の演算ユニットと前記第2の演算ユニットの少なくとも一方が前記ワーク領域の前記書き込み及び読み出し能力を検査するステップと、を含むことを特徴とする。 The invention according to claim 4 stores a plurality of arithmetic units including a first arithmetic unit and a second arithmetic unit, and a program for causing each of the arithmetic units to execute a data write / read capability check. A non-volatile memory; a work area for temporarily storing data; a first stack area for storing data used by the first arithmetic unit during the inspection; and the second arithmetic unit during the inspection. A volatile memory having a plurality of stack areas including a second stack area for storing data to be used, wherein the first arithmetic unit writes the second stack area to the write And checking the read capability, and the second arithmetic unit writes and reads the first stack area. A method for inspecting and capacity, at least one of said second arithmetic unit and the first operation unit, characterized in that it comprises the steps of: inspecting said writing and reading performance of the work area.
請求項5に記載の発明は、第1の演算ユニットと第2の演算ユニットを含む複数の演算ユニットと、データの書き込み及び読み出し能力の検査を前記演算ユニットそれぞれに実行させるためのプログラムを記憶する不揮発性メモリと、データを一時的に記憶するワーク領域と、前記第1の演算ユニットが前記検査に用いるデータを記憶する第1のスタック領域、及び前記第2の演算ユニットが前記検査に用いるデータを記憶する第2のスタック領域を含む複数のスタック領域とを有する揮発性メモリと、を備えるプロセッサに、前記第1の演算ユニットが前記第2のスタック領域の前記書き込み及び読み出し能力を検査するステップと、前記第2の演算ユニットが前記第1のスタック領域の前記書き込み及び読み出し能力を検査するステップと、前記第1の演算ユニットと前記第2の演算ユニットの少なくとも一方が前記ワーク領域の前記書き込み及び読み出し能力を検査するステップと、を実行させることを特徴とする。 The invention according to claim 5 stores a plurality of arithmetic units including a first arithmetic unit and a second arithmetic unit, and a program for causing each of the arithmetic units to execute a data write / read capability check. A nonvolatile memory, a work area for temporarily storing data, a first stack area for storing data used by the first arithmetic unit for the inspection, and data used for the inspection by the second arithmetic unit And a volatile memory having a plurality of stack areas including a second stack area for storing the second stack area, wherein the first arithmetic unit checks the write and read capabilities of the second stack area. And the second arithmetic unit inspects the write and read capabilities of the first stack area. , Characterized in that to execute the steps at least one of said second arithmetic unit and the first operation unit inspects the writing and reading performance of the work area.
本発明によれば、第1の演算ユニットが第2のスタック領域の書き込み及び読み出し能力を検査し、第2の演算ユニットが第1のスタック領域の書き込み及び読み出し能力を検査するように構成したので、自己診断のために用いられるスタック領域の検査を効率良く実行することができる。 According to the present invention, the first arithmetic unit is configured to inspect the writing and reading ability of the second stack area, and the second arithmetic unit is configured to inspect the writing and reading ability of the first stack area. The stack area used for self-diagnosis can be efficiently inspected.
以下、図面を参照して本発明の実施形態について詳細に説明する。以下に説明する実施形態は、マイクロプロセッサであるコアを複数備えるICチップに対して本発明を適用した場合の実施の形態である。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. The embodiment described below is an embodiment when the present invention is applied to an IC chip including a plurality of cores which are microprocessors.
先ず、図1を参照して、本実施形態に係るICチップの概要構成について説明する。図1(A)は、ICチップCの概要構成例を示す図である。ICチップCは、本発明の演算装置の一例である。なお、ICチップCは、キャッシュカード、クレジットカード、社員カード等に搭載されて使用される。或いは、ICチップCは、スマートフォンや携帯電話機等の通信機器に組み込まれる。ICチップCは、通信機器の回路基板上に直接組み込んで構成するようにしてもよい。 First, a schematic configuration of the IC chip according to the present embodiment will be described with reference to FIG. FIG. 1A is a diagram illustrating a schematic configuration example of the IC chip C. The IC chip C is an example of the arithmetic device of the present invention. The IC chip C is used by being mounted on a cash card, a credit card, an employee card or the like. Alternatively, the IC chip C is incorporated in a communication device such as a smartphone or a mobile phone. The IC chip C may be configured by being directly incorporated on the circuit board of the communication device.
ICチップCは、図1(A)に示すように、コア1、コア2、RAM(Random Access Memory)3、フラッシュメモリ4、ROM(Read Only Memory)5、及びI/O回路6を備えて構成される。コア1は、第1の演算ユニットの一例である。コア2は、第2の演算ユニットの一例である。コア1とコア2とは並列処理が可能に構成されている。コア1、コア2、RAM3、フラッシュメモリ4、ROM5、及びI/O回路6は、バス7に接続されている。バス7は、アドレスバスとデータバスを備える。フラッシュメモリ4及びROM5は、不揮発性メモリの一例である。フラッシュメモリ4の代わりに、「Electrically Erasable Programmable Read-Only Memory」を適用しても構わない。
As shown in FIG. 1A, the IC chip C includes a
図1(B)は、RAM3の記憶領域の構成例を示す図である。RAM3(揮発性メモリの一例)は、図1(B)に示すように、コア1用スタック領域31、コア2用スタック領域32、及びデータを一時的に記憶する汎用領域33を有する。コア1用スタック領域31は、コア1が自己診断の実行中に用いる参照用データを記憶する第1のスタック領域の一例である。コア2用スタック領域32は、コア2が自己診断の実行中に用いる参照用データを記憶する第2のスタック領域の一例である。スタック領域は、最初に入力されたデータを後に出力する(First In, Last Out)という特徴を持つ。自己診断の実行中に用いられる参照用データには、例えば、自己診断の対象となるデータの長さ、自己診断中に関数等を呼び出すときの引数、当該関数等の呼び出し元のアドレス(番地)、及び戻り先のアドレス等が含まれる。
FIG. 1B is a diagram illustrating a configuration example of a storage area of the
フラッシュメモリ4には、プログラムメモリとデータメモリを備える。プログラムメモリには、コア1とコア2に実行させるためのプログラムを構成する複数の命令コードが記憶(格納)される。データメモリには、各種データが記憶される。各種プログラムの中には、自己診断プログラムが含まれる。自己診断プログラムは、データの書き込み及び読み出し能力の検査を含む自己診断をコア1とコア2それぞれに実行させるためのプログラムである。なお、ROM5には、フラッシュメモリ4に記憶されるプログラムの一部が記憶されてもよい。
The
図1(C)は、自己診断における検査プログラムのソースの一例を示す図である。コア1が書き込み及び読み出し能力の検査を行う場合、図1(C)に示す“Start Addr”は、コア2用スタック領域32の検査開始アドレス(先頭アドレス)を示す。つまり、コア2用スタック領域32の検査は、コア1により実行される。コア2が書き込み及び読み出し能力の検査を行う場合、図1(C)に示す“Start Addr”は、コア1用スタック領域31の検査開始アドレスを示す。つまり、コア1用スタック領域31の検査は、コア2により実行される。図1(C)に示す“length”は、検査対象となるデータの長さ(つまり、スタック領域のサイズに相当)を示す。図1(C)に示す“test Addr”は、検査対象アドレス(検査開始アドレスから検査終了アドレスまで)を示す。そして、図1(C)に示す自己診断プログラムによれば、検査対象アドレスに対応する検査対象領域にデータ“5A(h)”(hは16進数を示す)が書き込まれた後、当該検査対象領域からデータが読み出され、読み出されたデータと書き込まれたデータ“5A(h)”とが一致するかがチェックされる。そして、両データが一致しない場合、動作停止(“HALT”)となる。一方、両データが一致する場合、当該検査対象アドレスに対応する検査対象領域にデータ“A5(h)”が書き込まれた後、当該検査対象領域からデータが読み出され、読み出されたデータと書き込まれたデータ“A5(h)”とが一致するかがチェックされる。そして、両データが一致しない場合、動作停止(“HALT”)となる。一方、両データが一致する場合、次の検査対象アドレスに進み、上記と同様の処理が行われる(処理ループが繰り返される)。こうして、スタック領域全体について、データの書き込み及び読み出し能力の検査が行われることになる。なお、図1(C)の例では、検査対象領域をスタック領域としたが、コア1とコア2内のレジスタ(データを一時的に記憶するレジスタ)を検査対象領域としてもよい。この場合、コア2内のレジスタの検査は、コア1により実行され、コア1内のレジスタの検査は、コア2により実行される。
FIG. 1C is a diagram illustrating an example of a source of an inspection program in self-diagnosis. When the
I/O回路6は、外部端末とのインターフェイスを担う。接触式のICチップCの場合、I/O回路6には、例えば、C1〜C8の8個の端子が備えられている。例えば、C1端子は電源端子、C2端子はリセット端子、C3端子はクロック端子、C5端子はグランド端子、C7端子は外部端末との間で通信を行うための端子である。一方、非接触式のICチップCの場合、I/O回路6には、例えば、アンテナ、及び変復調回路が備えられている。なお、外部端末の例としては、ICカード発行機、ATM、改札機、認証用ゲート等が挙げられる。或いは、ICチップCが通信機器に組み込まれる場合、外部端末には通信機器の機能を担う制御部が該当する。
The I /
コア1は、演算器11、内部メモリ12、プログラムカウンタ13、及び割込みコントローラ14を備える。コア2は、演算器21、内部メモリ22、プログラムカウンタ23、及び割込みコントローラ24を備える。演算器11,21は、それぞれ、命令レジスタ及びデコーダを備える。内部メモリ12,22は、それぞれ、データレジスタを備える。プログラムカウンタ13,23は、次に実行されるべき命令コードが記憶されているプログラムメモリ上のアドレスを保持する。割込みコントローラ14と割込みコントローラ24とは、バス7を介さずにデータ送受信可能に構成されている。
The
演算器11,21は、それぞれ、プログラムカウンタ13,23が指し示すアドレスに記憶されている命令コードを、フラッシュメモリ4内のプログラムメモリから命令レジスタにフェッチ(取得)する。そして、演算器11,21は、取得した命令コードをデコーダによって解釈(デコード)し、解釈した命令コードに従って処理を実行し(例えば、四則演算、論理演算等の演算処理を実行し)、当該処理の結果を示すデータを内部メモリ12,22のデータレジスタに記憶する。プログラムカウンタ13,23は、演算器11,21により命令コードが実行されるたびに、例えば3バイトまたは4バイトずつアドレスを進める。これにより、複数の命令コードから構成されるプログラムが実行される。割込みコントローラ14は、内部メモリ12にアクセス可能になっており、内部メモリ12内のデータレジスタから読み出したデータを、フラッシュメモリ4内のデータメモリに書き込む。一方、割込みコントローラ24は、内部メモリ22にアクセス可能になっており、内部メモリ22内のデータレジスタから読み出したデータを、フラッシュメモリ4内のデータメモリに書き込む。更に、割込みコントローラ14は、コア2がSleep(スリープ)しているときに、コア2の割込みコントローラ24へSleep解除指令を送ることで、コア2のSleepを解除することができる。一方、割込みコントローラ24は、コア1がSleep(スリープ)しているときに、コア1の割込みコントローラ14へSleep解除指令を送ることで、コア1のSleepを解除することができる。
The
次に、図2を参照して、本実施形態に係るICチップCの起動時における自己診断について説明する。図2は、ICチップCの起動時におけるコア1とコア2の自己診断に係る処理フローを示す図である。図2に示す処理は、例えば外部端末からリセットが受信されたときに開始される。
Next, with reference to FIG. 2, a self-diagnosis at the time of activation of the IC chip C according to the present embodiment will be described. FIG. 2 is a diagram illustrating a processing flow relating to self-diagnosis of the
先ず、コア2は、Sleep(スリープ)する(ステップS21)。Sleepの状態では、コア2への電力供給は制限され省電力状態となり、演算器21は、命令コードのフェッチ及び処理を停止するが、割込みコントローラ24は、割込みコントローラ14からの命令を受け付けて処理可能な状態になっている。一方、コア1は、コア2用スタック領域32の検査(データの書き込み及び読み出し能力の検査)を実行する(ステップS1)。この検査において、コア1は、先ず、検査中に用いる参照用データ(例えば、検査対象となるデータの長さ、引数、アドレス等)をコア1用スタック領域31に格納する。そして、コア1は、コア1用スタック領域31に格納した参照用データを用いて、コア2用スタック領域32における検査開始アドレスから検査終了アドレスまでの各検査対象領域について、順次、上述したように、データの書き込み及び読み出しを行い、書き込んだデータと読み出したデータとが一致するかをチェックする。
First, the
そして、コア1は、コア2用スタック領域32は正常であるか否かを判定する(ステップS2)。例えば全ての検査対象領域において両データが一致する場合、コア1は、コア2用スタック領域32は正常であると判定し(ステップS2:YES)、ステップS3へ進む。一方、例えば何れか一つの検査対象領域において両データが一致しない場合、コア1は、コア2用スタック領域32は正常でないと判定し(ステップS2:NO)、動作停止する(ステップS11)。
Then, the
ステップS3では、コア1は、コア2内のレジスタ(コア2が備えるレジスタ)の検査を実行する。この検査において、コア1は、先ず、検査中に用いる参照用データをコア1用スタック領域31に格納する。そして、コア1は、コア1用スタック領域31に格納した参照用データを用いて、コア2内の命令レジスタ及びデータレジスタを含むレジスタを検査対象領域として、割込みコントローラ14及び割込みコントローラ24を介して、データの書き込み及び読み出しを行い、書き込んだデータと読み出したデータとが一致するかをチェックする。
In step S3, the
そして、コア1は、コア2内のレジスタ(検査対象領域)は正常であるか否かを判定する(ステップS4)。例えば全ての検査対象領域において両データが一致する場合、コア1は、コア2内のレジスタは正常であると判定し(ステップS4:YES)、ステップS5へ進む。一方、例えば何れか一つのレジスタにおいて両データが一致しない場合、コア1は、レジスタは正常でないと判定し(ステップS4:NO)、動作停止する(ステップS11)。
Then, the
ステップS5では、コア1は、Sleep解除指令を、割込みコントローラ14及び割込みコントローラ24を介して、コア2へ送る。そして、コア1は、Sleepする(ステップS6)。
In step S <b> 5, the
コア2は、コア1からのSleep解除指令を受け付けると、Sleepを解除する(ステップS22)。そして、コア2は、コア1用スタック領域31の検査を実行する(ステップS23)。この検査において、コア2は、先ず、検査中に用いる参照用データをコア2用スタック領域32に格納する。そして、コア2は、コア2用スタック領域32に格納した参照用データを用いて、コア1用スタック領域31における検査開始アドレスから検査終了アドレスまでの各検査対象領域について、順次、上述したように、データの書き込み及び読み出しを行い、書き込んだデータと読み出したデータとが一致するかをチェックする。
When the
そして、コア2は、コア1用のスタック領域31は正常であるか否かを判定する(ステップS24)。コア2は、コア1用のスタック領域31は正常であると判定した場合(ステップS24:YES)、ステップS25へ進む。一方、コア2は、コア1用のスタック領域31は正常でないと判定した場合(ステップS24:NO)、動作停止する(ステップS31)。
Then, the
ステップS25では、コア2は、コア1内のレジスタ(コア1が備えるレジスタ)の検査を実行する。この検査において、コア2は、先ず、検査中に用いる参照用データをコア2用スタック領域32に格納する。そして、コア2は、コア2用スタック領域32に格納した参照用データを用いて、コア1内の命令レジスタ及びデータレジスタを含むレジスタを検査対象領域として、割込みコントローラ24及び割込みコントローラ14を介して、データの書き込み及び読み出しを行い、書き込んだデータと読み出したデータとが一致するかをチェックする。
In step S <b> 25, the
そして、コア2は、コア1内のレジスタ(検査対象領域)は正常であるか否かを判定する(ステップS26)。コア2は、コア1内のレジスタは正常であると判定した場合(ステップS26:YES)、ステップS27へ進む。一方、コア2は、レジスタは正常でないと判定した場合(ステップS26:NO)、動作停止する(ステップS31)。
Then, the
ステップS27では、コア2は、Sleep解除指令を、割込みコントローラ24及び割込みコントローラ14を介して、コア1へ送り、ステップS28へ進む。コア1は、コア2からのSleep解除指令を受け付けると、Sleepを解除する(ステップS7)。そして、コア1は、汎用領域33の検査を実行する(ステップS8)。例えば、コア1は、汎用領域33における一部の領域の書き込み及び読み出し能力を検査する。ここで、例えば、汎用領域33が、アドレス“1000(h)”から“2FFF(h)”までの領域であるとすると、コア1は、アドレス“1000(h)”から“1FFF(h)”までの領域を検査対象領域(つまり、汎用領域33における一部の領域)とする。この場合、コア1は、先ず、検査中に用いる参照用データをコア1用スタック領域31に格納する。そして、コア1は、コア1用スタック領域31に格納した参照用データを用いて、当該検査対象領域について、順次、データの書き込み及び読み出しを行い、書き込んだデータと読み出したデータとが一致するかをチェックする。この場合、汎用領域33における一部の領域を除く残りの領域は、コア2によりチェックされる。なお、汎用領域33における全部の領域を、コア1、またはコア2がチェックするように構成してもよい。
In step S27, the
そして、コア1は、汎用領域33(検査対象領域)は正常であるか否かを判定する(ステップS9)。例えば全ての検査対象領域において両データが一致する場合、コア1は、汎用領域33は正常であると判定し(ステップS9:YES)、ステップS10へ進む。一方、例えば何れか一つの検査対象領域において両データが一致しない場合、コア1は、汎用領域33は正常でないと判定し(ステップS9:NO)、動作停止する(ステップS11)。
Then, the
一方、コア2は、ステップS28において、汎用領域33の検査を実行する。例えば、上述したように、コア2は、コア1により検査された一部の領域を除く残りの領域を検査対象領域としてその書き込み及び読み出し能力を検査する。この場合、コア2は、先ず、検査中に用いる参照用データをコア2用スタック領域32に格納する。そして、コア2は、コア2用スタック領域32に格納した参照用データを用いて、当該検査対象領域について、順次、データの書き込み及び読み出しを行い、書き込んだデータと読み出したデータとが一致するかをチェックする。
On the other hand, the
そして、コア2は、汎用領域33(検査対象領域)は正常であるか否かを判定する(ステップS29)。コア2は、汎用領域33は正常であると判定した場合(ステップS29:YES)、ステップS30へ進む。一方、コア2は、汎用領域33は正常でないと判定した場合(ステップS29:NO)、動作停止する(ステップS31)。なお、コア1におけるステップ8及びS9の処理と、コア2におけるステップS28及びS29の処理とは、並列して行われる。こうして、コア1及びコア2は、コマンド受付待機状態にスタンバイする(ステップS10,S30)。なお、コア1及びコア2は、自己診断において、演算能力(例えば、乱数生成器を連続実行しても同じ値が出力されないか、RSAによる暗号化を実行すると想定通りの答えが出力されるか)を検査した後に、ステップS10,S30へ移行するように構成してもよい。
Then, the
以上説明したように、上記実施形態によれば、コア1は、コア2用スタック領域32を検査し、コア2は、コア1用スタック領域31を検査し、コア1とコア2の少なくとも一方は汎用領域33を検査するように構成したので、自己診断のために用いられるスタック領域の検査を効率良く実行することができる。また、コア1が汎用領域33における一部の領域を検査し、コア2が汎用領域33における残りの領域を検査する構成によれば、自己診断時間を短縮することができる。また、コア1は、コア2内のレジスタを検査し、コア3は、コア1内のレジスタを検査する構成によれば、自己診断のために用いられるレジスタの検査を効率良く実行することができる。
As described above, according to the embodiment, the
なお、上記実施形態においては、2つのコアを備えるICチップCを例にとって説明したが、3つ以上のコアを備えるICチップCに対して本発明を適用可能である。また、上記実施形態においては、演算装置としてICチップCを例にとって説明したが、ICチップC以外の例えば組み込み型のマイクロコンピュータに対して本発明を適用してもよい。 In the above embodiment, the IC chip C having two cores has been described as an example, but the present invention can be applied to an IC chip C having three or more cores. In the above embodiment, the IC chip C is described as an example of the arithmetic device. However, the present invention may be applied to, for example, an embedded microcomputer other than the IC chip C.
1 コア
2 コア
3 RAM
4 フラッシュメモリ
5 ROM
6 I/O回路
11,21 演算器
12,22 内部メモリ
13,23 プログラムカウンタ
14,24 割込みコントローラ
C ICチップ
1
4
6 I /
Claims (5)
データの書き込み及び読み出し能力の検査を前記演算ユニットそれぞれに実行させるためのプログラムを記憶する不揮発性メモリと、
データを一時的に記憶するワーク領域を有する揮発性メモリと、
を備える演算装置であって、
前記揮発性メモリは、さらに、前記第1の演算ユニットが前記検査中に用いるデータを記憶する第1のスタック領域と、前記第2の演算ユニットが前記検査中に用いるデータを記憶する第2のスタック領域と、を含む複数のスタック領域を有し、
前記第1の演算ユニットは前記第2のスタック領域の前記書き込み及び読み出し能力を検査し、前記第2の演算ユニットは前記第1のスタック領域の前記書き込み及び読み出し能力を検査し、前記第1の演算ユニットと前記第2の演算ユニットの少なくとも一方は前記ワーク領域の前記書き込み及び読み出し能力を検査することを特徴とする演算装置。 A plurality of arithmetic units including a first arithmetic unit and a second arithmetic unit;
A non-volatile memory for storing a program for causing each of the arithmetic units to execute a data write and read capability check;
Volatile memory having a work area for temporarily storing data;
An arithmetic device comprising:
The volatile memory further includes a first stack area for storing data used during the inspection by the first arithmetic unit, and a second memory for storing data used by the second arithmetic unit during the inspection. A plurality of stack areas including a stack area,
The first arithmetic unit inspects the write and read capabilities of the second stack area, the second arithmetic unit inspects the write and read capabilities of the first stack area, and the first arithmetic unit At least one of the arithmetic unit and the second arithmetic unit inspects the writing and reading ability of the work area.
前記第1の演算ユニットは前記第2の演算ユニットが備えるレジスタの前記書き込み及び読み出し能力をさらに検査し、前記第2の演算ユニットは前記第1の演算ユニットが備えるレジスタの前記書き込み及び読み出し能力をさらに検査することを特徴とする請求項1に記載の演算装置。 Each of the arithmetic units includes a register for temporarily storing data,
The first arithmetic unit further checks the write and read capability of the register included in the second arithmetic unit, and the second arithmetic unit determines the write and read capability of the register included in the first arithmetic unit. The arithmetic unit according to claim 1, further inspecting.
データの書き込み及び読み出し能力の検査を前記演算ユニットそれぞれに実行させるためのプログラムを記憶する不揮発性メモリと、
データを一時的に記憶するワーク領域と、前記第1の演算ユニットが前記検査中に用いるデータを記憶する第1のスタック領域、及び前記第2の演算ユニットが前記検査中に用いるデータを記憶する第2のスタック領域を含む複数のスタック領域とを有する揮発性メモリと、
を備えるプロセッサにおける演算方法であって、
前記第1の演算ユニットが前記第2のスタック領域の前記書き込み及び読み出し能力を検査するステップと、
前記第2の演算ユニットが前記第1のスタック領域の前記書き込み及び読み出し能力を検査するステップと、
前記第1の演算ユニットと前記第2の演算ユニットの少なくとも一方が前記ワーク領域の前記書き込み及び読み出し能力を検査するステップと、
を含むことを特徴とする演算方法。 A plurality of arithmetic units including a first arithmetic unit and a second arithmetic unit;
A non-volatile memory for storing a program for causing each of the arithmetic units to execute a data write and read capability check;
A work area for temporarily storing data, a first stack area for storing data used by the first arithmetic unit during the inspection, and data used by the second arithmetic unit during the inspection are stored. A volatile memory having a plurality of stack areas including a second stack area;
An arithmetic method in a processor comprising:
The first computing unit testing the write and read capabilities of the second stack area;
The second computing unit testing the write and read capabilities of the first stack area;
At least one of the first arithmetic unit and the second arithmetic unit inspects the writing and reading ability of the work area;
The calculation method characterized by including.
データの書き込み及び読み出し能力の検査を前記演算ユニットそれぞれに実行させるためのプログラムを記憶する不揮発性メモリと、
データを一時的に記憶するワーク領域と、前記第1の演算ユニットが前記検査に用いるデータを記憶する第1のスタック領域、及び前記第2の演算ユニットが前記検査に用いるデータを記憶する第2のスタック領域を含む複数のスタック領域とを有する揮発性メモリと、
を備えるプロセッサに、
前記第1の演算ユニットが前記第2のスタック領域の前記書き込み及び読み出し能力を検査するステップと、
前記第2の演算ユニットが前記第1のスタック領域の前記書き込み及び読み出し能力を検査するステップと、
前記第1の演算ユニットと前記第2の演算ユニットの少なくとも一方が前記ワーク領域の前記書き込み及び読み出し能力を検査するステップと、
を実行させることを特徴とする演算プログラム。 A plurality of arithmetic units including a first arithmetic unit and a second arithmetic unit;
A non-volatile memory for storing a program for causing each of the arithmetic units to execute a data write and read capability check;
A work area for temporarily storing data, a first stack area for storing data used by the first arithmetic unit for the inspection, and a second for storing data used for the inspection by the second arithmetic unit. A volatile memory having a plurality of stack areas including a stack area of
A processor comprising
The first computing unit testing the write and read capabilities of the second stack area;
The second computing unit testing the write and read capabilities of the first stack area;
At least one of the first arithmetic unit and the second arithmetic unit inspects the writing and reading ability of the work area;
An arithmetic program characterized in that is executed.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014199957A JP6358019B2 (en) | 2014-09-30 | 2014-09-30 | Arithmetic apparatus, arithmetic method, and arithmetic program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014199957A JP6358019B2 (en) | 2014-09-30 | 2014-09-30 | Arithmetic apparatus, arithmetic method, and arithmetic program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016071600A JP2016071600A (en) | 2016-05-09 |
JP6358019B2 true JP6358019B2 (en) | 2018-07-18 |
Family
ID=55866930
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014199957A Active JP6358019B2 (en) | 2014-09-30 | 2014-09-30 | Arithmetic apparatus, arithmetic method, and arithmetic program |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6358019B2 (en) |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04256033A (en) * | 1991-02-07 | 1992-09-10 | Nec Corp | Memory diagnostic system |
JP4644980B2 (en) * | 2001-06-27 | 2011-03-09 | 株式会社デンソー | Microcomputer |
-
2014
- 2014-09-30 JP JP2014199957A patent/JP6358019B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2016071600A (en) | 2016-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH04264643A (en) | Integrated circuit having improved access safety device | |
CN104123167B (en) | MCU method for energizing and starting and its self checking method with configuration words self-checking function | |
CN106547653B (en) | Computer system fault state detection method, device and system | |
US8176281B2 (en) | Controlling access to an embedded memory of a microcontroller | |
JP2006276967A (en) | Semiconductor apparatus | |
CN107567629A (en) | Dynamic firmware module loader in credible performing environment container | |
JP2013172870A5 (en) | ||
JP2008052722A (en) | Ic card operation system and method | |
KR100825786B1 (en) | Memory card and debugging method for the same | |
JP6358019B2 (en) | Arithmetic apparatus, arithmetic method, and arithmetic program | |
CN110659497A (en) | Trusted boot control method and device and computer readable storage medium | |
JP2009259126A (en) | Method for detecting fault attack and security device | |
JP6798157B2 (en) | Electronic information storage medium, anomaly detection method, and anomaly detection program | |
US7197666B1 (en) | Method for checking the reset function in an embedded processor | |
CN101667130B (en) | Embedded system with authentication, and associated authentication method | |
JP6493672B2 (en) | Electronic information storage medium, abnormality detection method, abnormality detection program, and IC card | |
JP4543505B2 (en) | Microcomputer control method and abnormality monitoring device | |
JP6424633B2 (en) | Electronic information storage medium, abnormality detection method, and program | |
JP7247638B2 (en) | Electronic information storage medium, IC card, falsification check method, and program | |
JP6387767B2 (en) | Electronic information recording medium, IC card, check method, and processing program | |
KR20120017790A (en) | Smart card and operating method having memory area of practicable rewritting for os | |
JP6398449B2 (en) | Electronic information recording medium, processor module operation control method, and processor module operation control program | |
JP6379852B2 (en) | Electronic information recording medium, processor module processing method, and processor module processing program | |
TW201430698A (en) | Gambling application system execution method with high reliability and electronic device thereof | |
JP2006302130A (en) | Ic card and program for ic card |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20170727 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180517 |
|
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: 20180522 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20180604 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6358019 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |