JP6721140B1 - Data processing device, data processing method and program - Google Patents
Data processing device, data processing method and program Download PDFInfo
- Publication number
- JP6721140B1 JP6721140B1 JP2020039749A JP2020039749A JP6721140B1 JP 6721140 B1 JP6721140 B1 JP 6721140B1 JP 2020039749 A JP2020039749 A JP 2020039749A JP 2020039749 A JP2020039749 A JP 2020039749A JP 6721140 B1 JP6721140 B1 JP 6721140B1
- Authority
- JP
- Japan
- Prior art keywords
- data
- area
- processor
- register
- instruction
- 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
- 238000003672 processing method Methods 0.000 title claims description 13
- 230000015654 memory Effects 0.000 claims abstract description 89
- 230000004044 response Effects 0.000 claims abstract description 25
- 238000000034 method Methods 0.000 claims description 64
- 230000008569 process Effects 0.000 claims description 62
- 230000006870 function Effects 0.000 claims description 32
- 238000010586 diagram Methods 0.000 abstract description 17
- 239000000725 suspension Substances 0.000 abstract description 2
- 230000008439 repair process Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/18—Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Executing Machine-Instructions (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
【課題】レジスタからメモリに一時退避されるデータの破損に起因する、システムの一時的な停止を抑制する。【解決手段】プロセッサは、退避命令に応じて、レジスタのデータをメモリの第1の領域に退避させ、復帰命令に応じて、第1の領域のデータをレジスタに復帰させる。プロセッサは、退避命令の実行後に、第1の領域のデータを、メモリにおける第2の領域から第Nの領域の各々に書き込む。プロセッサは、復帰命令の実行前に、第1の領域から第Nの領域のデータを互いに照合し、過半数の領域のデータが一致し、かつ、第1の領域のデータが過半数の領域のデータと一致しないことに応じて、過半数の領域のデータを第1の領域に上書きする。【選択図】図3PROBLEM TO BE SOLVED: To suppress temporary suspension of a system due to damage of data temporarily saved from a register to a memory. A processor saves data in a register in a first area of a memory in response to a save instruction, and restores data in a first area in the register in response to a restore instruction. After executing the save instruction, the processor writes the data in the first area to each of the second area to the Nth area in the memory. Before executing the return instruction, the processor collates the data in the first area to the data in the N-th area with each other, the data in the majority area matches, and the data in the first area matches the data in the majority area. If the data does not match, the data in the majority area is overwritten in the first area. [Selection diagram] Fig. 3
Description
本開示は、データ処理装置、データ処理方法およびプログラムに関する。 The present disclosure relates to a data processing device, a data processing method, and a program.
半導体デバイスの高集積化および微細化に伴い、メモリにおける一過性のビットエラー(ソフトエラー)が急増している。ソフトエラーにより、データが破損する(データ化けが発生する)。ソフトエラーは、例えばα粒子や宇宙線中性子の衝突によって生じる。ソフトエラーの起こりうるメモリをシステムに適用すると、データの破損によるシステムの一時的な停止が生じうる。 Along with the high integration and miniaturization of semiconductor devices, transient bit errors (soft errors) in memories are rapidly increasing. Data is corrupted due to soft error (data corruption occurs). Soft errors occur, for example, due to collisions of alpha particles and cosmic ray neutrons. Applying soft error-prone memory to the system can cause a temporary outage of the system due to data corruption.
データの破損によるシステムの一時的な停止を回避するための技術が開発されている。例えば、特開2007−18414号公報(特許文献1)には、RAM(Random Access Memory)の変数データを書き換える場合に、同一のデータをRAM内の異なる3以上のアドレスの各々に書き込む制御装置が開示されている。この制御装置は、プログラムの実行によって変数を読み出すとき、RAM内の異なる3以上のアドレスの各々からデータを読み出す。そして、制御装置は、異なる3以上のアドレスからそれぞれ読み出したデータのうち、任意の1個のデータが他の複数個のデータと異なっている場合には、異なっているデータを他の複数個のデータに書き換える。 Techniques have been developed to avoid temporary system outages due to data corruption. For example, Japanese Patent Laying-Open No. 2007-18414 (Patent Document 1) discloses a control device that writes the same data to three or more different addresses in a RAM when rewriting variable data in a RAM (Random Access Memory). It is disclosed. When reading a variable by executing a program, the control device reads data from each of three or more different addresses in the RAM. Then, in the case where any one of the data read from three or more different addresses is different from the plurality of other data, the control device determines the different data to be different from the other plurality of addresses. Rewrite with data.
メインルーチンの実行中に関数処理(サブルーチン)が発生すると、メインルーチンを中断させるためにスタック操作が行なわれる。スタック操作は、(1)サブルーチン処理開始時に、プロセッサに内蔵されるレジスタに保持されたデータをRAMのスタック領域に一時退避させる退避操作(いわゆるPush操作)と、(2)サブルーチン処理終了時に、スタック領域に退避させたデータをレジスタに復帰させる復帰操作(いわゆるPop操作)とを含む。スタック操作によってデータが一時退避されるスタック領域についてもソフトエラーが起こり得る。しかしながら、サブルーチン処理に伴うスタック操作のコードは、コンパイラによって自動生成される。そのため、汎用のコンパイラを用いる場合、スタック操作に対して特許文献1に記載の技術を適用することができない。
When a function process (subroutine) occurs during execution of the main routine, a stack operation is performed to suspend the main routine. The stack operation includes (1) a save operation (so-called Push operation) for temporarily saving the data held in a register incorporated in the processor to the stack area of the RAM at the start of the subroutine processing, and (2) a stack operation at the end of the subroutine processing. It includes a return operation (so-called Pop operation) for returning the data saved in the area to the register. A soft error may occur in the stack area where the data is temporarily saved by the stack operation. However, the code of the stack operation associated with the subroutine processing is automatically generated by the compiler. Therefore, when a general-purpose compiler is used, the technique described in
本開示は、上記の問題に鑑みてなされたものであり、その目的は、レジスタからメモリに一時退避されるデータの破損に起因する、システムの一時的な停止を抑制可能なデータ処理装置、データ処理方法およびプログラムを提供することである。 The present disclosure has been made in view of the above problems, and an object of the present disclosure is to provide a data processing device and a data processing device capable of suppressing a temporary stop of a system due to damage of data temporarily saved from a register to a memory. It is to provide a processing method and a program.
本開示の一例によれば、データ処理装置は、メモリと、メモリを用いて演算処理を実行するプロセッサとを備える。プロセッサは、レジスタを内蔵する。プロセッサは、退避命令に応じて、レジスタに保持されたデータをメモリの第1の領域に退避させ、復帰命令に応じて、第1の領域のデータをレジスタに復帰させる。プロセッサは、退避命令の実行後に第1の処理を実行し、復帰命令の実行前に第2の処理を実行する。第1の処理は、第1の領域のデータを、メモリにおける第2の領域から第Nの領域の各々に書き込む処理を含む。Nは3以上の整数である。第2の処理は、第1の領域から第Nの領域のデータを互いに照合する処理と、第1の領域から第Nの領域のうち過半数の領域のデータが一致し、かつ、第1の領域のデータが過半数の領域のデータと一致しないことに応じて、過半数の領域のデータを第1の領域に上書きする処理とを含む。 According to an example of the present disclosure, a data processing device includes a memory and a processor that executes arithmetic processing using the memory. The processor contains registers. The processor saves the data held in the register in the first area of the memory in response to the save instruction, and restores the data in the first area to the register in response to the restore instruction. The processor executes the first processing after executing the save instruction, and executes the second processing before executing the return instruction. The first process includes a process of writing the data in the first area to each of the second area to the Nth area in the memory. N is an integer of 3 or more. The second process is a process in which the data in the first region to the Nth region are collated with each other, and the data in the majority region of the first region to the Nth region are the same, and the first region Processing of overwriting the data of the majority area on the first area when the data of the area does not match the data of the majority area.
この開示によれば、退避命令に応じてデータが一時退避された第1の領域にソフトエラーが発生したとしても、復帰命令の実行前に、第1の領域のデータが修復される。そのため、復帰命令に応じて、レジスタには正しいデータが復帰される。その結果、レジスタからメモリに一時退避されるデータの破損に起因する、システムの一時的な停止を抑制できる。 According to this disclosure, even if a soft error occurs in the first area where the data is temporarily saved according to the save instruction, the data in the first area is restored before the execution of the return instruction. Therefore, correct data is restored to the register according to the restore instruction. As a result, it is possible to prevent the system from being temporarily stopped due to the damage of the data temporarily saved in the memory from the register.
上述の開示において、第1の領域は、メモリに設定されたスタック領域に含まれる。プロセッサは、退避命令の実行前後における、スタック領域に設定されたスタックポインタを参照して、第1の領域を特定する。 In the above disclosure, the first area is included in the stack area set in the memory. The processor identifies the first area by referring to the stack pointer set in the stack area before and after the execution of the save instruction.
この開示によれば、プロセッサは、メモリにおいて、レジスタからデータが一時退避された第1の領域を正しく特定できる。 According to this disclosure, the processor can correctly specify the first area in the memory in which the data is temporarily saved from the register.
上述の開示において、退避命令は、関数処理の呼び出しのために発行される。復帰命令は、関数処理の完了後に発行される。プロセッサは、関数処理の完了に応じて、第2の処理を開始する。この開示によれば、復帰命令の実行の直前において、第1の領域のデータを修復できる。 In the above disclosure, the save instruction is issued to call a function process. The return instruction is issued after the function processing is completed. The processor starts the second processing in response to the completion of the function processing. According to this disclosure, the data in the first area can be restored immediately before the execution of the return instruction.
本開示の一例によれば、データ処理装置は、メモリと、メモリを用いて演算処理を実行するプロセッサとを備える。プロセッサは、レジスタを内蔵する。データ処理装置のデータ処理方法は、第1〜第4のステップを備える。第1のステップは、プロセッサが、退避命令に応じて、レジスタに保持されたデータをメモリの第1の領域に退避させるステップである。第2のステップは、プロセッサが、退避命令の実行後に第1の処理を実行するステップである。第3のステップは、プロセッサが、復帰命令の実行前に第2の処理を実行するステップである。第4のステップは、プロセッサが、復帰命令に応じて、第1の領域のデータをレジスタに復帰させるステップである。第1の処理は、第1の領域のデータを、メモリにおける第2の領域から第Nの領域の各々に書き込む処理を含む。Nは3以上の整数である。第2の処理は、第1の領域から第Nの領域のデータを互いに照合する処理と、第1の領域から第Nの領域のうち過半数の領域のデータが一致し、かつ、第1の領域のデータが過半数の領域のデータと一致しないことに応じて、過半数の領域のデータを第1の領域に上書きする処理とを含む。 According to an example of the present disclosure, a data processing device includes a memory and a processor that executes arithmetic processing using the memory. The processor contains registers. The data processing method of the data processing device includes first to fourth steps. The first step is a step in which the processor saves the data held in the register in the first area of the memory in response to the save instruction. The second step is a step in which the processor executes the first process after executing the save instruction. The third step is a step in which the processor executes the second process before executing the return instruction. The fourth step is a step in which the processor restores the data in the first area to the register in response to the restore instruction. The first process includes a process of writing the data in the first area to each of the second area to the Nth area in the memory. N is an integer of 3 or more. The second process is a process in which the data in the first region to the Nth region are collated with each other, and the data in the majority region of the first region to the Nth region are the same, and the first region Processing of overwriting the data of the majority area on the first area when the data of the area does not match the data of the majority area.
本開示の一例によれば、プログラムは、上記のデータ処理方法をコンピュータに実行させる。これらの開示によっても、レジスタからメモリに一時退避されるデータの破損に起因する、システムの一時的な停止を抑制できる。 According to an example of the present disclosure, a program causes a computer to execute the above data processing method. With these disclosures as well, it is possible to prevent the system from being temporarily stopped due to the damage of the data temporarily saved in the memory from the register.
本開示によれば、レジスタからメモリに一時退避されるデータの破損に起因する、システムの一時的な停止を抑制できる。 According to the present disclosure, it is possible to suppress a temporary stop of the system due to the damage of the data temporarily saved in the memory from the register.
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。 Embodiments of the present invention will be described in detail with reference to the drawings. It should be noted that the same or corresponding parts in the drawings are denoted by the same reference characters and description thereof will not be repeated.
§1 適用例
航空宇宙システム、自動車、医療機器、通信機器、産業機器など様々に分野において、メモリのソフトエラーに起因するシステムの一時的な停止を抑制することが望まれる。本開示は、このような様々な分野のシステムに適用され得る。以下では、本開示の適用例として、FA(ファクトリオートメーション)分野に組み込まれる制御システムについて説明するが、本開示の適用例は、当該制御システムに限定されない。
§1 Application example In various fields such as aerospace systems, automobiles, medical equipment, communication equipment, and industrial equipment, it is desired to suppress temporary suspension of the system due to a memory soft error. The present disclosure may be applied to systems in such various fields. Hereinafter, a control system incorporated in the FA (factory automation) field will be described as an application example of the present disclosure, but the application example of the present disclosure is not limited to the control system.
図1は、実施形態に係る制御システムの全体構成を示す概略図である。図1に例示される制御システム1は、主要なコンポーネントとして、標準PLC(プログラマブルロジックコントローラ)100と、安全PLC200と、1以上のカプラ300と、1以上の安全IOユニット400とを含む。制御システム1に含まれるこれらの装置は、各種のタスクを実行するデータ処理装置である。
FIG. 1 is a schematic diagram showing the overall configuration of a control system according to an embodiment. The
標準PLC100は、予め作成された標準制御プログラムに従って、任意の制御対象に対する標準制御を実行する。「標準制御」は、予め定められた要求仕様に沿って、制御対象を制御するための処理の総称である。制御対象は、例えばサーボモータ、ロボットなどである。
The
安全PLC200は、標準PLC100とは独立して、任意の制御対象に対するセーフティ制御を実行する。図1に例示される安全PLC200は、ローカルバスを介して標準PLC100に接続される。「セーフティ制御」は、設備や機械などによって人の安全が脅かされることを防止するための処理の総称である。「セーフティ制御」は、例えばIEC 61508などに規定されたセーフティ機能を実現するための要件を満たすように設計される。
The
カプラ300は、標準PLC100と安全IOユニット400との間のデータの遣り取りを仲介する。カプラ300は、フィールドネットワーク2を介して、標準PLC100と電気的に接続されている。フィールドネットワーク2は、FA用のデータ伝送を実現するための通信媒体である。フィールドネットワーク2において、予め定められた周期でフレーム伝送が可能になっており、ネットワーク内の各ノードに対するデータ到着時間が保証される。このようなデータ到着時間が保証されるプロトコルの一例として、本実施の形態に従う制御システム1においては、フィールドネットワーク2にはEtherCAT(登録商標)を採用する。
The
カプラ300は、標準PLC100から受信したデータを安全IOユニット400へ送信するとともに、安全IOユニット400からデータを受信すると、当該受信したデータを次に到着するフレームに格納する準備を行う。
The
安全IOユニット400は、安全PLC200またはカプラ300にローカルバスを介して接続される。さらに、安全IOユニット400には任意の安全デバイス(図示せず)が接続される。安全デバイスには、ライトカーテン、非常停止ボタン、セーフティドアスイッチなどが含まれる。
The
安全IOユニット400は、安全デバイスからの入力信号を受け付けて、安全PLC200へ当該入力信号を提供する。あるいは、安全IOユニット400は、安全デバイスからの入力信号を受け付けて、カプラ300を介して標準PLC100へ当該入力信号を提供する。標準PLC100へ提供された入力信号は、安全PLC200へ提供される。
The
さらに、安全IOユニット400は、安全PLC200からの指令に応じて、安全デバイスへ出力信号を出力する。あるいは、安全IOユニット400は、カプラ300および標準PLC100を介した安全PLC200からの指令に応じて、安全デバイスへ出力信号を出力する。
Further, the
安全IOユニット400は、予め定められた周期ごとに、安全デバイスからの入力信号の受け付け、当該入力信号の提供、安全デバイスへの出力信号の出力などに関する演算処理を実行する。
The
安全PLC200は、安全IOユニット400から提供された入力信号に応じて、セーフティ制御を実行する。例えば、安全PLC200は、ライトカーテンである安全デバイスから人の侵入を示す入力信号が提供されると、標準PLC100の制御対象への電源供給を遮断し、制御システム1を一時的に停止させる。あるいは、安全PLC200は、非常停止ボタンである安全デバイスからボタン押下を示す入力信号が提供されると、標準PLC100の制御対象への電源供給を遮断し、制御システム1を一時的に停止させる。
The
このように、安全IOユニット400は、人の安全が脅かされることを防止するためのセーフティ制御に直接関わる。従って、安全PLC200は、安全IOユニット400に故障や異常が発生したときにも、制御システム1を一時的に停止させるように設計されている。
In this way, the
安全IOユニット400において、メインルーチンの実行中に関数処理(サブルーチン)が発生すると、プロセッサに内蔵されるレジスタに保持されたデータがメインメモリに一時退避され、関数処理の完了後に、退避されたデータがレジスタに復帰される。レジスタに保持されたデータのメインメモリへの退避は、退避命令であるPush命令に応じて実行される。退避されたデータのレジスタへの復帰は、復帰命令であるPop命令に応じて実行される。
In the
メインメモリにおいて、データが一時退避された領域にソフトエラーが発生すると、一時退避されたデータが破損する。破損したデータが修復されないまま安全IOユニット400が動作し続けると、安全PLC200は、セーフティ制御を正常に実行できない。そのため、安全IOユニット400は、メインメモリに一時退避されたデータが破損したとしても、当該データを修復する機能を有する。
When a soft error occurs in the area where the data is temporarily saved in the main memory, the temporarily saved data is damaged. If the
図2は、実施の形態に係る安全IOユニットにおけるデータ修復処理の概要を示す図である。図2に示されるプロセッサ402およびメインメモリ404は、安全IOユニット400に備えられる。プロセッサ402は、レジスタ403を内蔵する。
FIG. 2 is a diagram showing an outline of data restoration processing in the safety IO unit according to the embodiment. The
プロセッサ402は、Push命令に応じて、レジスタ403に保持されたデータをメインメモリ404の領域404aに退避させる(ステップS1)。
The
プロセッサ402は、Push命令の実行後に、領域404aのデータを、メインメモリ404における領域404aとは別の2つの領域404b,404cの各々に書き込む(ステップS2)。これにより、メインメモリ404において、レジスタ403から一時退避されたデータが3重化される。
After executing the Push instruction, the
プロセッサ402は、Pop命令の実行前に、領域404a,404b,404cのデータを互いに照合する(ステップS3)。
The
さらに、プロセッサ402は、領域404a〜404cのうち過半数(すなわち2つ)の領域のデータが一致し、かつ、領域404aのデータが過半数の領域のデータと一致しないことに応じて、過半数の領域のデータを領域404aに上書きする(ステップS4)。ステップS2が完了してからステップS3の開始までの間に、領域404aにソフトエラーが発生した場合、領域404aのデータは、領域404b,404cのデータと一致しない。そのため、領域404b,404cのデータが領域404aに上書きされる。これにより、領域404aにおけるデータの破損が修復される。
Further, the
その後、プロセッサ402は、Pop命令に応じて、領域404aのデータをレジスタ403に復帰させる(ステップS5)。
After that, the
上述したように、ステップS2の完了からステップS3の開始までの間に、領域404aにソフトエラーが発生したとしても、ステップS4において、領域404aのデータが修復される。そのため、ステップS4の完了からステップS5の開始までの間に、領域404aにソフトエラーが発生しない限り、レジスタ403には、正しいデータが復帰される。その結果、レジスタ403からメインメモリ404に一時退避されるデータの破損に起因する、システムの一時的な停止を抑制できる。
As described above, even if a soft error occurs in the
§2 具体例
<安全IOユニットのハードウェア構成>
図3は、安全IOユニットのハードウェア構成例を示す模式図である。図3に例示される安全IOユニット400は、プロセッサ402と、メインメモリ404と、ストレージ410と、ローカルバスコントローラ420と、安全IOモジュール430とを含む。これらのコンポーネントは、プロセッサバス440を介して接続されている。
§2 Concrete example <Hardware configuration of safety IO unit>
FIG. 3 is a schematic diagram showing a hardware configuration example of the safety IO unit. The
プロセッサ402は、セーフティ制御を実現するために必要な信号の入出力および管理機能に係る制御演算を実行する演算処理部に相当し、CPUやMPU(Micro Processing Unit)などによって構成される。プロセッサ402は、レジスタ403を内蔵している。レジスタ403は、プロセッサ402による演算結果を一時的に保持したり、メインメモリ404を読み書きする際のアドレスを保持したりする。
The
メインメモリ404は、例えばDRAMやSRAMのような揮発性メモリによって構成される。SRAMは、記憶部の構造としてフリップフロップを用いており、リフレッシュ動作を必要とせず、DRAMより高速に動作できるという利点を有する。そのため、SRAMをメインメモリ404として用いることが好ましい。
The
積み上げ型(スタック型)の構造を有するDRAMでは、ソフトエラー耐性が高い。一方、フリップフロップ構造を有するSRAMでは、微細化によりソフトエラー耐性が低下する。そのため、大容量化のために高集積化されたSRAMによって構成されるメインメモリ404を用いる場合、メインメモリ404にソフトエラーが起こりやすい。以下、メインメモリ404がSRAMであるとものとして説明する。
A DRAM having a stacked type structure has a high soft error resistance. On the other hand, in the SRAM having the flip-flop structure, the soft error resistance decreases due to the miniaturization. Therefore, when using the
ストレージ410は、例えば、SSDやHDDなどの不揮発性記憶装置などで構成される。ストレージ410には、IO機能を実現するための実行可能プログラム41と、書込読出プログラム42と、照合修復プログラム43とが格納される。
The
ローカルバスコントローラ420は、ローカルバスを介して、安全IOユニット400が接続されるデバイス(例えば安全PLC200、カプラ300)との間でデータを遣り取りする。
The
安全IOモジュール430は、安全デバイスと電気的に接続され、安全デバイスによる検出結果などの入力を受け付けたり、安全デバイスへ信号を出力したりする。
The
<メインメモリ>
図4は、メインメモリの領域を示す図である。図4に示されるように、メインメモリ404は、スタック領域405、データ領域406およびテキスト領域407を含む。スタック領域405は、レジスタ403に保持されるデータを一時退避させるための領域である。データ領域406は、変数などが配置される領域である。テキスト領域407は、プログラムが展開される領域である。
<Main memory>
FIG. 4 is a diagram showing an area of the main memory. As shown in FIG. 4, the
プロセッサ402は、テキスト領域407に展開されたプログラムの命令を1行ずつ実行する。プロセッサ402は、命令内容に応じて、データ領域406から変数の値を読み出したり、データ領域406に変数の値を書き込んだりする。
The
テキスト領域407に展開されるプログラム(図3に示す実行可能プログラム41など)は、コンパイラによって生成される。コンパイラは、メインルーチンの実行中に関数処理(サブルーチン)を呼び出すときにPush命令を生成し、関数処理の完了後にPop命令を生成する。プロセッサ402は、Push命令に従って、レジスタ403に保持されたデータをスタック領域405に一時退避させる。プロセッサ402は、Pop命令に従って、スタック領域405に退避させていたデータをレジスタ403に復帰させる。
The program expanded in the text area 407 (such as the
スタック領域405には、スタックポインタSPが設定される。スタックポインタSPは、スタック領域405に置かれたデータの先頭のアドレスを示す。言い換えると、スタックポインタSPは、スタック領域405に最後に置かれたデータのアドレスを示す。スタック領域405に新たなデータが置かれると、スタックポインタSPが更新される。
A stack pointer SP is set in the
<メインメモリのデータ領域に対する処理>
メインメモリ404のデータ領域406に対するデータの書き込みおよび読み出しは、書込読出プログラム42に従ってプロセッサ402によって実行される。
<Processing for data area of main memory>
The writing and reading of data to and from the
図5は、メインメモリへのデータの書き込み処理の一例を示す図である。図5に示されるように、プロセッサ402は、指定された変数の値を示す対象データをメインメモリ404のデータ領域406に書き込む際に、対象データを2回コピーし、2つのコピーデータを生成する。
FIG. 5 is a diagram showing an example of a process of writing data to the main memory. As shown in FIG. 5, the
プロセッサ402は、データ領域406の部分領域406aに対象データを書き込むとともに、部分領域406b,406cに2つのコピーデータをそれぞれ書き込む。部分領域406a,406b,406cのアドレスは、変数と対応付けて管理される。プロセッサ402は、当該アドレスを用いて、部分領域406a,406b,406cにデータを書き込む。これにより、メインメモリ404において、データが3重化される。
The
書き込み直後において、部分領域406a,406b,406cのデータは同一である。しかしながら、例えば宇宙線や中性子線の影響により、部分領域406a,406b,406cのいずれかにおいてソフトエラーが生じ得る。
Immediately after the writing, the data in the
図6は、メインメモリからのデータの読み出し処理の一例を示す図である。図6に示されるように、プロセッサ402は、メインメモリ404のデータ領域406における部分領域406a,406b,406cからデータを読み出し、部分領域406a,406b,406cから読み出したデータを互いに照合する。具体的には、プロセッサ402は、部分領域406a,406b,406cのデータをレジスタ403にコピーし、レジスタ403にコピーされたデータ同士を照合する。
FIG. 6 is a diagram showing an example of a process of reading data from the main memory. As shown in FIG. 6, the
部分領域406a,406b,406cのいずれにもソフトエラーが発生していない場合、部分領域406a,406b,406cから読み出したデータの全てが一致する。そのため、プロセッサ402は、部分領域406a,406b,406cから読み出したデータの全てが一致することに応じて、部分領域406aから読み出したデータで示される値を用いて演算処理を続行する。
When no soft error has occurred in any of the
部分領域406a,406b,406cのうちの1つの部分領域にソフトエラーが発生したとしても、残り2つの部分領域から読み出したデータが一致する。そのため、プロセッサ402は、部分領域406a,406b,406cのうち1つの部分領域を除いた2つの領域から読み出したデータが一致することに応じて、当該2つの部分領域から読み出したデータと一致するように当該1つの部分領域から読み出したデータを書き換える。これにより、レジスタ403上において、当該1つの部分領域から読み出されたデータは、修復される。その後、プロセッサ402は、レジスタ403上の部分領域406aから読み出したデータで示される値を用いて演算処理を続行する。
Even if a soft error occurs in one of the
さらに、プロセッサ402は、当該2つの部分領域から読み出したデータを、メインメモリ404のデータ領域406における当該1つの部分領域に上書きする。これにより、メインメモリ404上においても、当該1つの部分領域のデータが修復される。
Further, the
このように、部分領域406a,406b,406cのうちの1つの部分領域にソフトエラーが発生したとしても、読み出し処理において、当該1つの部分領域のデータが修復される。
Thus, even if a soft error occurs in one of the
<スタック操作に関連付けて実行される処理>
上述したように、プロセッサ402は、Push命令に従って、レジスタ403に保持されたデータをスタック領域405に一時退避させる(Push操作)。プロセッサ402は、Pop命令に従って、スタック領域405に退避させていたデータをレジスタ403に復帰させる(Pop操作)。ここで、Push命令の代わりに、レジスタ403に保持されたデータを、スタック領域405における3つの部分領域に一時退避させる命令を発行することが考えられる。そして、Pop命令の代わりに、スタック領域405における3つの部分領域のデータを互いに照合し、3つの部分領域のうち過半数の部分領域のデータが一致することに応じて、当該過半数の部分領域のデータをレジスタ403に復帰させる命令を発行することが考えられる。しかしながら、Push命令およびPop命令は、コンパイラによって生成される。そのため、汎用のコンパイラを使用する限り、Push命令およびPop命令の代わりに上記のような命令を発行することができない。
<Process executed in association with stack operation>
As described above, the
そのため、安全IOユニット400では、スタック操作に関連付けて以下のような処理が実行される。スタック操作に関連付けた以下の処理は、照合修復プログラム43に従ってプロセッサ402によって実行される。
Therefore, the
図7は、Push操作後に実行される処理を示す図である。図7には、関数処理20を呼び出すためのPush命令が発行され、当該Push命令に応じたPush操作の後に実行される処理が示される。
FIG. 7 is a diagram showing a process executed after the Push operation. FIG. 7 shows processing that is executed after the Push instruction for calling the
プロセッサ402は、スタック領域405におけるスタックポインタSPを監視している。プロセッサ402は、スタック操作の前後のスタックポインタSPを参照することにより、スタック領域405のうち、Push操作によってデータが退避された部分領域405aを特定する(ステップS11)。
The
プロセッサ402は、特定した部分領域405aのデータをコピーすることにより得られる2つのコピーデータを、データ領域406における2つの部分領域406d,406eにそれぞれ書き込む(ステップS12)。
The
これにより、メインメモリ404において、Push操作によってスタック領域405に一時退避されたデータが3重化される。
As a result, in the
図8は、Pop操作前に実行される処理を示す図である。図8には、図7に示すPush操作に対応するPop操作の前に実行される処理が示される。 FIG. 8 is a diagram showing a process executed before the Pop operation. FIG. 8 shows a process executed before the Pop operation corresponding to the Push operation shown in FIG. 7.
プロセッサ402は、Push命令の後に呼び出された関数処理20の完了を示す行「functionExit();」を実行することにより、関数処理20の完了を認識する(ステップS21)。関数処理20の完了の後、メインルーチンに戻るためにPop命令が発行される。そのため、プロセッサ402は、関数処理を完了してから以下のステップS22,S23を実行する。
The
プロセッサ402は、関数処理20の完了を認識すると、スタック領域405の部分領域405aおよびデータ領域406の2つの部分領域406a,406bのデータを互いに照合する(ステップS22)。
When recognizing the completion of the
プロセッサ402は、部分領域405a,406d,406eのデータの照合結果に応じて、部分領域405a,406d,406eの修復を行なう(ステップS23)。
The
図7に示すステップS12の完了から図8のステップS22の開始までの間に、部分領域405a,406d,406eのいずれにもソフトエラーが発生していない場合、部分領域405a,406d,406eから読み出したデータの全てが一致する。この場合には、部分領域405a,406d,406eの修復が必要ないため、ステップS23の処理は省略される。
During the period from the completion of step S12 shown in FIG. 7 to the start of step S22 of FIG. 8, if no soft error has occurred in any of the
部分領域405a,406d,406eのうちの1つの部分領域にソフトエラーが発生したとしても、残り2つの部分領域から読み出したデータが一致する。そのため、プロセッサ402は、部分領域405a,406d,406eのうち1つの部分領域を除いた2つの部分領域から読み出したデータが一致することに応じて、当該2つの部分領域から読み出したデータを当該1つの部分領域に上書きする。これにより、当該1つの部分領域のデータが修復される。
Even if a soft error occurs in one of the
具体的には、部分領域406d,406eのデータが一致し、部分領域405aのデータが部分領域406d,406eのデータと不一致の場合、部分領域406d,406eのデータが部分領域405aに上書きされる。図8では、部分領域405aにおけるデータ「00103333」が、部分領域406d,406eのデータ「00003333」と一致しない。そのため、部分領域406d,406eのデータ「00003333」が部分領域405aに上書きされる。これにより、部分領域405aのデータが修復される。
Specifically, when the data in the
なお、部分領域406d,406eのデータは、部分領域405aにソフトエラーが発生しているか否かの判定および部分領域405aの修復に使用される。そのため、部分領域405a,406dのデータが一致し、部分領域406eのデータが部分領域405a,406dのデータと不一致の場合、部分領域406eのデータの修復は省略されてもよい。同様に、部分領域405a,406eのデータが一致し、部分領域406dのデータが部分領域405a,406eのデータと不一致の場合、部分領域406dのデータの修復は省略されてもよい。
The data in the
その後、プロセッサ402は、Pop命令に応じて、部分領域405aのデータをレジスタ403に復帰させる。上述したように、ステップS12の完了からステップS22の開始までの間に、部分領域405aにソフトエラーが発生したとしても、ステップS22およびステップS23により、部分領域405aのデータが修復される。そのため、スタック操作に応じてデータが一時退避されるスタック領域405のソフトエラーに起因する制御システム1の一時的な停止を抑制できる。
After that, the
なお、部分領域405a,406d,406eのデータが互いに異なる場合には、どのデータが正しいかを判定できない。そのため、プロセッサ402は、部分領域405a,406d,406eのデータが互いに異なる場合に、エラー通知を行なってもよい。
If the data in the
<その他の装置のハードウェア構成>
(標準PLCのハードウェア構成)
図9は、標準PLCのハードウェア構成例を示す模式図である。図9に例示される標準PLC100は、プロセッサ102と、メインメモリ104と、ストレージ110と、フィールドネットワークコントローラ108と、ローカルバスコントローラ116とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
<Hardware configuration of other devices>
(Standard PLC hardware configuration)
FIG. 9 is a schematic diagram showing a hardware configuration example of a standard PLC. The
プロセッサ102は、主として、標準制御に係る制御演算を実行する演算処理部に相当し、CPUやGPUなどで構成され、レジスタ103を内蔵する。プロセッサ102は、ストレージ110に格納されたプログラム(一例として、システムプログラム1102および標準制御プログラム1104)を読出して、メインメモリ104に展開して実行することで、制御対象に応じた制御演算、および、後述するような各種処理を実現する。
The
メインメモリ104は、例えばDRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)のような揮発性メモリによって構成される。ストレージ110は、例えば、SSD(Solid State Drive)やHDD(Hard Disk Drive)などの不揮発性記憶装置などによって構成される。
The
ストレージ110には、基本的な機能を実現するためのシステムプログラム1102、制御対象に応じて作成された標準制御プログラム1104、および標準PLC100での処理を規定するための設定情報1106が格納される。
The
フィールドネットワークコントローラ108は、フィールドネットワーク2を介して任意のデバイス(例えばカプラ300)との間でデータを遣り取りする。
The
ローカルバスコントローラ116は、ローカルバスを介して、標準PLC100に接続される任意のユニット(例えば安全PLC200)との間でデータを遣り取りする。
The
(安全PLCのハードウェア構成)
図10は、安全PLCのハードウェア構成例を示す模式図である。図10に例示される安全PLC200は、プロセッサ202と、メインメモリ204と、ストレージ210と、ローカルバスコントローラ216とを含む。これらのコンポーネントは、プロセッサバス218を介して接続されている。
(Hardware configuration of safety PLC)
FIG. 10 is a schematic diagram showing a hardware configuration example of the safety PLC. The
プロセッサ202は、主として、セーフティ制御に係る制御演算を実行する演算処理部に相当し、CPUやGPUなどで構成される。プロセッサ202は、レジスタ203を内蔵する。
The
メインメモリ204は、例えばDRAMやSRAMのような揮発性メモリによって構成される。ストレージ210は、例えば、SSDやHDDなどの不揮発性記憶装置などによって構成される。
The
ストレージ210には、基本的な機能を実現するためのシステムプログラム2102、要求されるセーフティ機能に応じた作成された安全プログラム2104、および安全PLC200での処理を規定するための設定情報2106が格納される。
The
ローカルバスコントローラ216は、ローカルバスを介して、安全PLC200に接続される安全IOユニット400との間でデータを遣り取りする。
The
(カプラのハードウェア構成)
図11は、カプラのハードウェア構成例を示す模式図である。図11に例示されるカプラ300は、プロセッサ302と、メインメモリ304と、ストレージ310と、フィールドネットワークコントローラ308と、ローカルバスコントローラ316とを含む。これらのコンポーネントは、プロセッサバス318を介して接続されている。
(Hardware configuration of coupler)
FIG. 11 is a schematic diagram showing a hardware configuration example of the coupler. The
プロセッサ302は、主として、カプラ300を動作させるための制御演算を実行する演算処理部に相当し、CPUやGPUなどで構成される。プロセッサ302は、レジスタ303を内蔵する。
The
メインメモリ304は、例えばDRAMやSRAMのような揮発性メモリによって構成される。ストレージ310は、例えば、SSDやHDDなどの不揮発性記憶装置などによって構成される。
The
ストレージ310には、基本的な機能を実現するためのシステムプログラム3102およびカプラ300での処理を規定するための設定情報3106が格納される。
The
フィールドネットワークコントローラ308は、フィールドネットワーク2を介して、任意のデバイス(例えば標準PLC100)との間でデータを遣り取りする。
The
ローカルバスコントローラ316は、ローカルバスを介して、カプラ300に接続される安全IOユニット400との間でデータを遣り取りする。
The
<作用・効果>
以上のように、データ処理装置である安全IOユニット400は、メインメモリ404と、メインメモリ404を用いて演算処理を実行するプロセッサ402とを備える。プロセッサ402は、レジスタ403を内蔵する。プロセッサ402は、Push命令に応じて、レジスタ403に保持されたデータをメインメモリ404におけるスタック領域405の部分領域405aに退避させる。プロセッサ402は、Pop命令に応じて、部分領域405aのデータをレジスタ403に復帰させる。プロセッサ402は、Push命令の実行後に第1の処理を実行し、Pop命令の実行前に第2の処理を実行する。第1の処理は、部分領域405aのデータを、メインメモリ404におけるデータ領域406の部分領域406d,406eの各々に書き込む処理を含む。第2の処理は、部分領域405a,406d,406eのデータを互いに照合する処理を含む。第2の処理は、さらに、部分領域406d,406eのデータが一致し、かつ、部分領域405aのデータが当該部分領域406d,406eのデータと一致しないことに応じて、当該部分領域406d,406eのデータを部分領域405aに上書きする処理を含む。
<Action/effect>
As described above, the
上記の構成によれば、Push命令に応じてデータが一時退避された部分領域405aにソフトエラーが発生したとしても、Pop命令の実行前に、部分領域405aのデータが修復される。そのため、Pop命令に応じて、レジスタ403には正しいデータが復帰される。その結果、レジスタ403からメインメモリ404に一時退避されるデータの破損に起因する、システムの一時的な停止を抑制できる。
According to the above configuration, even if a soft error occurs in the
部分領域405aは、メインメモリ404に設定されたスタック領域405に含まれる。プロセッサ402は、Push命令の実行前後における、スタック領域405に設定されたスタックポインタSPを参照して、部分領域405aを特定する。これにより、プロセッサ402は、メインメモリ404において、レジスタ403からデータが一時退避された部分領域405aを正しく特定できる。
The
Push命令は、関数処理20の呼び出しのために発行される。Pop命令は、関数処理20の完了後に発行される。プロセッサ402は、関数処理20の完了に応じて、上記の第2の処理を開始する。これにより、Pop命令の実行の直前において、部分領域405aのデータを修復できる。
The Push instruction is issued to call the
<変形例1>
上記の説明では、プロセッサ402は、Push命令に応じて部分領域405aに一時退避されたデータをコピーすることにより得られるコピーデータを、データ領域406における2つの部分領域406a,406bにそれぞれ書き込むものとした。しかしながら、プロセッサ402は、部分領域405aのデータのコピーデータを、データ領域406における3つ以上の部分領域に書き込んでもよい。これにより、Push命令に応じてスタック領域405に一時退避されたデータが多重化される。
<
In the above description, the
例えば、プロセッサ402は、部分領域405aのデータのコピーデータを、データ領域406における第2の部分領域〜第Nの部分領域に書き込む。Nは4以上の整数である。そして、プロセッサ402は、Pop命令の実行前に、部分領域405aおよび第2の部分領域〜第Nの部分領域のデータを互いに照合する。プロセッサ402は、部分領域405aおよび第2の部分領域〜第Nの部分領域のうち過半数の部分領域のデータが一致し、かつ、部分領域405aのデータが当該過半数の部分領域のデータと一致しないことに応じて、当該過半数の部分領域のデータを部分領域405aに上書きする。これにより、部分領域405aにソフトエラーが発生したとしても、部分領域405aのデータが修復される。
For example, the
<変形例2>
標準PLC100、安全PLC200およびカプラ300も、安全IOユニット400と同様に、スタック操作に関連付けて図7および図8に示す処理を行なってもよい。これにより、標準PLC100、安全PLC200およびカプラ300も、スタック操作に応じてスタック領域に一時退避されたデータの破損を修復できる。その結果、制御システム1の停止の頻度が抑制される。
<
Like the
§3 付記
以上のように、本実施の形態は以下のような開示を含む。
§3 Appendix As described above, the present embodiment includes the following disclosures.
(構成1)
データ処理装置(400)であって、
メモリ(404)と、
前記メモリ(404)を用いて演算処理を実行するプロセッサ(402)とを備え、
前記プロセッサ(402)は、レジスタ(403)を内蔵し、
前記プロセッサ(402)は、
退避命令に応じて、前記レジスタ(403)に保持されたデータを前記メモリ(404)の第1の領域(404a,405a)に退避させ、
復帰命令に応じて、前記第1の領域(404a,405a)のデータを前記レジスタ(403)に復帰させ、
前記プロセッサ(402)は、前記退避命令の実行後に第1の処理を実行し、前記復帰命令の実行前に第2の処理を実行し、
前記第1の処理は、前記第1の領域(404a,405a)のデータを、前記メモリ(404)における第2の領域(404b,404c,406d,406e)から第Nの領域(404b,404c,406d,406e)の各々に書き込む処理を含み、
Nは3以上の整数であり、
前記第2の処理は、
前記第1の領域(404a,405a)から前記第Nの領域(404b,404c,406d,406e)のデータを互いに照合する処理と、
前記第1の領域(404a,405a)から前記第Nの領域(404b,404c,406d,406e)のうち過半数の領域のデータが一致し、かつ、前記第1の領域(404a,405a)のデータが前記過半数の領域のデータと一致しないことに応じて、前記過半数の領域のデータを前記第1の領域(404a,405a)に上書きする処理とを含む、データ処理装置。
(Structure 1)
A data processing device (400),
A memory (404),
A processor (402) for executing arithmetic processing using the memory (404),
The processor (402) includes a register (403),
The processor (402) is
In response to the save instruction, save the data held in the register (403) to the first area (404a, 405a) of the memory (404),
In response to a restore instruction, restore the data in the first area (404a, 405a) to the register (403),
The processor (402) executes a first process after the execution of the save instruction and a second process before the execution of the return instruction,
In the first processing, the data in the first area (404a, 405a) is transferred from the second area (404b, 404c, 406d, 406e) in the memory (404) to the Nth area (404b, 404c, 406d, 406e), including the process of writing
N is an integer of 3 or more,
The second processing is
A process of collating the data of the first region (404a, 405a) to the Nth region (404b, 404c, 406d, 406e) with each other;
Data of a majority of the first area (404a, 405a) to the N-th area (404b, 404c, 406d, 406e) is the same, and the data of the first area (404a, 405a) is the same. Processing for overwriting the data of the majority area on the first area (404a, 405a) when the data does not match the data of the majority area.
(構成2)
前記第1の領域(405a)は、前記メモリ(404)に設定されたスタック領域(405)に含まれ、
前記プロセッサ(402)は、前記退避命令の実行前後における、前記スタック領域(405)に設定されたスタックポインタを参照して、前記第1の領域(404a,405a)を特定する、構成1に記載のデータ処理装置。
(Configuration 2)
The first area (405a) is included in the stack area (405) set in the memory (404),
The configuration (1), wherein the processor (402) identifies the first area (404a, 405a) by referring to a stack pointer set in the stack area (405) before and after the execution of the save instruction. Data processing equipment.
(構成3)
前記退避命令は、関数処理の呼び出しのために発行され、
前記復帰命令は、前記関数処理(20)の完了後に発行され、
前記プロセッサ(402)は、前記関数処理(20)の完了に応じて、前記第2の処理を開始する、構成1または2に記載のデータ処理装置。
(Structure 3)
The save instruction is issued to call a function process,
The return instruction is issued after completion of the function processing (20),
The data processing device according to
(構成4)
データ処理装置(400)のデータ処理方法であって、
前記データ処理装置(400)は、
メモリ(404)と、
前記メモリ(404)を用いて演算処理を実行するプロセッサ(402)とを備え、
前記プロセッサ(402)は、レジスタ(403)を内蔵し、
前記データ処理方法は、
前記プロセッサ(402)が、退避命令に応じて、前記レジスタ(403)に保持されたデータを前記メモリ(404)の第1の領域(404a,405a)に退避させるステップと、
前記プロセッサ(402)が、前記退避命令の実行後に第1の処理を実行するステップと、
前記プロセッサ(402)が、復帰命令の実行前に第2の処理を実行するステップと、
前記プロセッサ(402)が、前記復帰命令に応じて、前記第1の領域(404a,405a)のデータを前記レジスタに復帰させるステップとを備え、
前記第1の処理は、前記第1の領域(404a,405a)のデータを、前記メモリ(404)における第2の領域(404b,404c,406d,406e)から第Nの領域(404b,404c,406d,406e)の各々に書き込む処理を含み、
Nは3以上の整数であり、
前記第2の処理は、
前記第1の領域(404a,405a)から前記第Nの領域のデータを互いに照合する処理と、
前記第1の領域(404a,405a)から前記第Nの領域(404b,404c,406d,406e)のうち過半数の領域のデータが一致し、かつ、前記第1の領域(404a,405a)のデータが前記過半数の領域のデータと一致しないことに応じて、前記過半数の領域のデータを前記第1の領域(404a,405a)に上書きする処理とを含む、データ処理方法。
(Structure 4)
A data processing method of a data processing device (400), comprising:
The data processing device (400) is
A memory (404),
A processor (402) for executing arithmetic processing using the memory (404),
The processor (402) includes a register (403),
The data processing method is
A step in which the processor (402) saves the data held in the register (403) to a first area (404a, 405a) of the memory (404) in response to a save instruction;
The processor (402) executing a first process after executing the save instruction;
The processor (402) performing a second process before executing a return instruction;
The processor (402) restores the data in the first area (404a, 405a) to the register in response to the restore instruction,
In the first processing, the data in the first area (404a, 405a) is transferred from the second area (404b, 404c, 406d, 406e) in the memory (404) to the Nth area (404b, 404c, 406d, 406e), including the process of writing
N is an integer of 3 or more,
The second processing is
A process of collating the data of the Nth region from the first region (404a, 405a) with each other;
Data of a majority of the first area (404a, 405a) to the N-th area (404b, 404c, 406d, 406e) is the same, and the data of the first area (404a, 405a) is the same. A data processing method of overwriting the data of the majority area on the first area (404a, 405a) when the data does not match the data of the majority area.
(構成5)
構成4に記載のデータ処理方法をコンピュータに実行させるプログラム。
(Structure 5)
A program that causes a computer to execute the data processing method according to configuration 4.
本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。 Although the embodiments of the present invention have been described, it should be considered that the embodiments disclosed this time are illustrative in all points and not restrictive. The scope of the present invention is shown by the claims, and is intended to include meanings equivalent to the claims and all modifications within the scope.
1 制御システム、2 フィールドネットワーク、20 関数処理、41 実行可能プログラム、42 書込読出プログラム、43 照合修復プログラム、100 標準PLC、102,202,302,402 プロセッサ、103,203,303,403 レジスタ、104,204,304,404 メインメモリ、108,308 フィールドネットワークコントローラ、110,210,310,410 ストレージ、116,216,316,420 ローカルバスコントローラ、118,218,318,440 プロセッサバス、200 安全PLC、300 カプラ、400 安全IOユニット、404a〜404c 領域、405 スタック領域、405a,406a〜406e 部分領域、406 データ領域、407 テキスト領域、430 安全IOモジュール、1102,2102,3102 システムプログラム、1104 標準制御プログラム、1106,2106,3106 設定情報、2104 安全プログラム。 1 control system, 2 field network, 20 function processing, 41 executable program, 42 writing/reading program, 43 collation and repair program, 100 standard PLC, 102, 202, 302, 402 processor, 103, 203, 303, 403 register, 104, 204, 304, 404 main memory, 108, 308 field network controller, 110, 210, 310, 410 storage, 116, 216, 316, 420 local bus controller, 118, 218, 318, 440 processor bus, 200 safety PLC , 300 coupler, 400 safety IO unit, 404a to 404c area, 405 stack area, 405a, 406a to 406e partial area, 406 data area, 407 text area, 430 safety IO module, 1102, 2102, 3102 system program, 1104 standard control Program, 1106, 2106, 3106 Setting information, 2104 Safety program.
Claims (5)
メモリと、
前記メモリを用いて演算処理を実行するプロセッサとを備え、
前記プロセッサは、レジスタを内蔵し、
前記プロセッサは、
退避命令に応じて、前記レジスタに保持されたデータを前記メモリの第1の領域に退避させ、
復帰命令に応じて、前記第1の領域のデータを前記レジスタに復帰させ、
前記プロセッサは、前記退避命令の実行後に第1の処理を実行し、前記復帰命令の実行前に第2の処理を実行し、
前記第1の処理は、前記第1の領域のデータを、前記メモリにおける第2の領域から第Nの領域の各々に書き込む処理を含み、
Nは3以上の整数であり、
前記第2の処理は、
前記第1の領域から前記第Nの領域のデータを互いに照合する処理と、
前記第1の領域から前記第Nの領域のうち過半数の領域のデータが一致し、かつ、前記第1の領域のデータが前記過半数の領域のデータと一致しないことに応じて、前記過半数の領域のデータを前記第1の領域に上書きする処理とを含む、データ処理装置。 A data processing device,
Memory and
A processor that executes arithmetic processing using the memory,
The processor includes a register,
The processor is
In response to the save instruction, save the data held in the register to the first area of the memory,
In response to a restore instruction, restore the data in the first area to the register,
The processor executes a first process after the execution of the save instruction and a second process before the execution of the return instruction,
The first process includes a process of writing the data in the first area to each of the second area to the Nth area in the memory,
N is an integer of 3 or more,
The second processing is
A process of collating data in the first region to the Nth region with each other;
The data of the majority area of the first area to the Nth area matches, and the data of the first area does not match the data of the majority area. A data processing device including the process of overwriting the first area with the above data.
前記プロセッサは、前記退避命令の実行前後における、前記スタック領域に設定されたスタックポインタを参照して、前記第1の領域を特定する、請求項1に記載のデータ処理装置。 The first area is included in a stack area set in the memory,
The data processing device according to claim 1, wherein the processor identifies the first area by referring to a stack pointer set in the stack area before and after execution of the save instruction.
前記復帰命令は、前記関数処理の完了後に発行され、
前記プロセッサは、前記関数処理の完了に応じて、前記第2の処理を開始する、請求項1または2に記載のデータ処理装置。 The save instruction is issued to call a function process,
The return instruction is issued after completion of the function processing,
The data processing device according to claim 1, wherein the processor starts the second processing in response to completion of the function processing.
前記データ処理装置は、
メモリと、
前記メモリを用いて演算処理を実行するプロセッサとを備え、
前記プロセッサは、レジスタを内蔵し、
前記データ処理方法は、
前記プロセッサが、退避命令に応じて、前記レジスタに保持されたデータを前記メモリの第1の領域に退避させるステップと、
前記プロセッサが、前記退避命令の実行後に第1の処理を実行するステップと、
前記プロセッサが、復帰命令の実行前に第2の処理を実行するステップと、
前記プロセッサが、前記復帰命令に応じて、前記第1の領域のデータを前記レジスタに復帰させるステップとを備え、
前記第1の処理は、前記第1の領域のデータを、前記メモリにおける第2の領域から第Nの領域の各々に書き込む処理を含み、
Nは3以上の整数であり、
前記第2の処理は、
前記第1の領域から前記第Nの領域のデータを互いに照合する処理と、
前記第1の領域から前記第Nの領域のうち過半数の領域のデータが一致し、かつ、前記第1の領域のデータが前記過半数の領域のデータと一致しないことに応じて、前記過半数の領域のデータを前記第1の領域に上書きする処理とを含む、データ処理方法。 A data processing method of a data processing device, comprising:
The data processing device,
Memory and
A processor that executes arithmetic processing using the memory,
The processor includes a register,
The data processing method is
The processor saves the data held in the register in a first area of the memory in response to a save instruction;
The processor executing a first process after executing the save instruction;
The processor performing a second process before executing a return instruction;
The processor restores the data in the first area to the register in response to the restore instruction,
The first process includes a process of writing the data in the first area to each of the second area to the Nth area in the memory,
N is an integer of 3 or more,
The second processing is
A process of collating data in the first region to the Nth region with each other;
The data of the majority area of the first area to the Nth area matches, and the data of the first area does not match the data of the majority area. A data processing method for overwriting the first area with the above data.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020039749A JP6721140B1 (en) | 2020-03-09 | 2020-03-09 | Data processing device, data processing method and program |
PCT/JP2020/015665 WO2021181712A1 (en) | 2020-03-09 | 2020-04-07 | Data processing device, data processing method, and program |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020039749A JP6721140B1 (en) | 2020-03-09 | 2020-03-09 | Data processing device, data processing method and program |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6721140B1 true JP6721140B1 (en) | 2020-07-08 |
JP2021140642A JP2021140642A (en) | 2021-09-16 |
Family
ID=71402421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020039749A Active JP6721140B1 (en) | 2020-03-09 | 2020-03-09 | Data processing device, data processing method and program |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6721140B1 (en) |
WO (1) | WO2021181712A1 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040168078A1 (en) * | 2002-12-04 | 2004-08-26 | Brodley Carla E. | Apparatus, system and method for protecting function return address |
US7272748B1 (en) * | 2004-03-17 | 2007-09-18 | Symantec Corporation | Method and apparatus to detect and recover from a stack frame corruption |
JP4374476B2 (en) * | 2004-05-24 | 2009-12-02 | 独立行政法人科学技術振興機構 | Cache memory and control method thereof |
-
2020
- 2020-03-09 JP JP2020039749A patent/JP6721140B1/en active Active
- 2020-04-07 WO PCT/JP2020/015665 patent/WO2021181712A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JP2021140642A (en) | 2021-09-16 |
WO2021181712A1 (en) | 2021-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR970062904A (en) | Database recovery method using double-sided nonvolatile memory and method thereof | |
JP6721140B1 (en) | Data processing device, data processing method and program | |
JP6729825B1 (en) | Information processing apparatus, control method, and program | |
JPS61188626A (en) | Microprocessor | |
JP6733843B1 (en) | Data processing device, control method and program | |
US20180095434A1 (en) | Information processing apparatus, information processing method and program | |
WO2022185582A1 (en) | Data processing device, data processing method, and program | |
JPS5856165A (en) | Record update system | |
JP2002351504A (en) | Device for protecting control data | |
JPH11338712A (en) | Interruption sequence saving circuit | |
JP7074291B2 (en) | Information processing equipment, information processing methods and programs | |
JP2003330737A (en) | Computer system | |
JPH0317760A (en) | Data write confirming system | |
CN117289976A (en) | Program updating method, device, equipment and computer readable storage medium | |
EP3803608A1 (en) | Combinational address repair in memory controller | |
JP2001051854A (en) | Information management system | |
JPH05189089A (en) | Data processing system | |
JP3231864B2 (en) | Task degeneration management device | |
CN117785554A (en) | Device power-down data retention method, system, device and readable storage medium | |
JPS58125154A (en) | State hysteresis storing system | |
JPH0535615A (en) | Data preserving and restoring device for computer system | |
JPS61134850A (en) | Debugging method of subsequent processor | |
JPH02178740A (en) | Information processor | |
US20020089772A1 (en) | Automation system with a work drive unit | |
JPS62256047A (en) | Spurious fault generating system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20200414 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20200414 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20200507 |
|
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: 20200519 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200601 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6721140 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |