JP2021140642A - データ処理装置、データ処理方法およびプログラム - Google Patents
データ処理装置、データ処理方法およびプログラム Download PDFInfo
- Publication number
- JP2021140642A JP2021140642A JP2020039749A JP2020039749A JP2021140642A JP 2021140642 A JP2021140642 A JP 2021140642A JP 2020039749 A JP2020039749 A JP 2020039749A JP 2020039749 A JP2020039749 A JP 2020039749A JP 2021140642 A JP2021140642 A JP 2021140642A
- Authority
- JP
- Japan
- Prior art keywords
- data
- area
- processor
- region
- register
- 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.)
- Granted
Links
- 238000012545 processing Methods 0.000 title claims description 62
- 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 36
- 238000000034 method Methods 0.000 claims description 79
- 230000008569 process Effects 0.000 claims description 78
- 230000006870 function Effects 0.000 claims description 32
- 238000010586 diagram Methods 0.000 description 13
- 230000008439 repair process Effects 0.000 description 7
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 241000282414 Homo sapiens Species 0.000 description 2
- 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
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000011084 recovery Methods 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
Abstract
Description
航空宇宙システム、自動車、医療機器、通信機器、産業機器など様々に分野において、メモリのソフトエラーに起因するシステムの一時的な停止を抑制することが望まれる。本開示は、このような様々な分野のシステムに適用され得る。以下では、本開示の適用例として、FA(ファクトリオートメーション)分野に組み込まれる制御システムについて説明するが、本開示の適用例は、当該制御システムに限定されない。
<安全IOユニットのハードウェア構成>
図3は、安全IOユニットのハードウェア構成例を示す模式図である。図3に例示される安全IOユニット400は、プロセッサ402と、メインメモリ404と、ストレージ410と、ローカルバスコントローラ420と、安全IOモジュール430とを含む。これらのコンポーネントは、プロセッサバス440を介して接続されている。
図4は、メインメモリの領域を示す図である。図4に示されるように、メインメモリ404は、スタック領域405、データ領域406およびテキスト領域407を含む。スタック領域405は、レジスタ403に保持されるデータを一時退避させるための領域である。データ領域406は、変数などが配置される領域である。テキスト領域407は、プログラムが展開される領域である。
メインメモリ404のデータ領域406に対するデータの書き込みおよび読み出しは、書込読出プログラム42に従ってプロセッサ402によって実行される。
上述したように、プロセッサ402は、Push命令に従って、レジスタ403に保持されたデータをスタック領域405に一時退避させる(Push操作)。プロセッサ402は、Pop命令に従って、スタック領域405に退避させていたデータをレジスタ403に復帰させる(Pop操作)。ここで、Push命令の代わりに、レジスタ403に保持されたデータを、スタック領域405における3つの部分領域に一時退避させる命令を発行することが考えられる。そして、Pop命令の代わりに、スタック領域405における3つの部分領域のデータを互いに照合し、3つの部分領域のうち過半数の部分領域のデータが一致することに応じて、当該過半数の部分領域のデータをレジスタ403に復帰させる命令を発行することが考えられる。しかしながら、Push命令およびPop命令は、コンパイラによって生成される。そのため、汎用のコンパイラを使用する限り、Push命令およびPop命令の代わりに上記のような命令を発行することができない。
(標準PLCのハードウェア構成)
図9は、標準PLCのハードウェア構成例を示す模式図である。図9に例示される標準PLC100は、プロセッサ102と、メインメモリ104と、ストレージ110と、フィールドネットワークコントローラ108と、ローカルバスコントローラ116とを含む。これらのコンポーネントは、プロセッサバス118を介して接続されている。
図10は、安全PLCのハードウェア構成例を示す模式図である。図10に例示される安全PLC200は、プロセッサ202と、メインメモリ204と、ストレージ210と、ローカルバスコントローラ216とを含む。これらのコンポーネントは、プロセッサバス218を介して接続されている。
図11は、カプラのハードウェア構成例を示す模式図である。図11に例示されるカプラ300は、プロセッサ302と、メインメモリ304と、ストレージ310と、フィールドネットワークコントローラ308と、ローカルバスコントローラ316とを含む。これらのコンポーネントは、プロセッサバス318を介して接続されている。
以上のように、データ処理装置である安全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に上書きする処理を含む。
上記の説明では、プロセッサ402は、Push命令に応じて部分領域405aに一時退避されたデータをコピーすることにより得られるコピーデータを、データ領域406における2つの部分領域406a,406bにそれぞれ書き込むものとした。しかしながら、プロセッサ402は、部分領域405aのデータのコピーデータを、データ領域406における3つ以上の部分領域に書き込んでもよい。これにより、Push命令に応じてスタック領域405に一時退避されたデータが多重化される。
標準PLC100、安全PLC200およびカプラ300も、安全IOユニット400と同様に、スタック操作に関連付けて図7および図8に示す処理を行なってもよい。これにより、標準PLC100、安全PLC200およびカプラ300も、スタック操作に応じてスタック領域に一時退避されたデータの破損を修復できる。その結果、制御システム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)に上書きする処理とを含む、データ処理装置。
前記第1の領域(405a)は、前記メモリ(404)に設定されたスタック領域(405)に含まれ、
前記プロセッサ(402)は、前記退避命令の実行前後における、前記スタック領域(405)に設定されたスタックポインタを参照して、前記第1の領域(404a,405a)を特定する、構成1に記載のデータ処理装置。
前記退避命令は、関数処理の呼び出しのために発行され、
前記復帰命令は、前記関数処理(20)の完了後に発行され、
前記プロセッサ(402)は、前記関数処理(20)の完了に応じて、前記第2の処理を開始する、構成1または2に記載のデータ処理装置。
データ処理装置(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)に上書きする処理とを含む、データ処理方法。
構成4に記載のデータ処理方法をコンピュータに実行させるプログラム。
Claims (5)
- データ処理装置であって、
メモリと、
前記メモリを用いて演算処理を実行するプロセッサとを備え、
前記プロセッサは、レジスタを内蔵し、
前記プロセッサは、
退避命令に応じて、前記レジスタに保持されたデータを前記メモリの第1の領域に退避させ、
復帰命令に応じて、前記第1の領域のデータを前記レジスタに復帰させ、
前記プロセッサは、前記退避命令の実行後に第1の処理を実行し、前記復帰命令の実行前に第2の処理を実行し、
前記第1の処理は、前記第1の領域のデータを、前記メモリにおける第2の領域から第Nの領域の各々に書き込む処理を含み、
Nは3以上の整数であり、
前記第2の処理は、
前記第1の領域から前記第Nの領域のデータを互いに照合する処理と、
前記第1の領域から前記第Nの領域のうち過半数の領域のデータが一致し、かつ、前記第1の領域のデータが前記過半数の領域のデータと一致しないことに応じて、前記過半数の領域のデータを前記第1の領域に上書きする処理とを含む、データ処理装置。 - 前記第1の領域は、前記メモリに設定されたスタック領域に含まれ、
前記プロセッサは、前記退避命令の実行前後における、前記スタック領域に設定されたスタックポインタを参照して、前記第1の領域を特定する、請求項1に記載のデータ処理装置。 - 前記退避命令は、関数処理の呼び出しのために発行され、
前記復帰命令は、前記関数処理の完了後に発行され、
前記プロセッサは、前記関数処理の完了に応じて、前記第2の処理を開始する、請求項1または2に記載のデータ処理装置。 - データ処理装置のデータ処理方法であって、
前記データ処理装置は、
メモリと、
前記メモリを用いて演算処理を実行するプロセッサとを備え、
前記プロセッサは、レジスタを内蔵し、
前記データ処理方法は、
前記プロセッサが、退避命令に応じて、前記レジスタに保持されたデータを前記メモリの第1の領域に退避させるステップと、
前記プロセッサが、前記退避命令の実行後に第1の処理を実行するステップと、
前記プロセッサが、復帰命令の実行前に第2の処理を実行するステップと、
前記プロセッサが、前記復帰命令に応じて、前記第1の領域のデータを前記レジスタに復帰させるステップとを備え、
前記第1の処理は、前記第1の領域のデータを、前記メモリにおける第2の領域から第Nの領域の各々に書き込む処理を含み、
Nは3以上の整数であり、
前記第2の処理は、
前記第1の領域から前記第Nの領域のデータを互いに照合する処理と、
前記第1の領域から前記第Nの領域のうち過半数の領域のデータが一致し、かつ、前記第1の領域のデータが前記過半数の領域のデータと一致しないことに応じて、前記過半数の領域のデータを前記第1の領域に上書きする処理とを含む、データ処理方法。 - 請求項4に記載のデータ処理方法をコンピュータに実行させるプログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020039749A JP6721140B1 (ja) | 2020-03-09 | 2020-03-09 | データ処理装置、データ処理方法およびプログラム |
PCT/JP2020/015665 WO2021181712A1 (ja) | 2020-03-09 | 2020-04-07 | データ処理装置、データ処理方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2020039749A JP6721140B1 (ja) | 2020-03-09 | 2020-03-09 | データ処理装置、データ処理方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP6721140B1 JP6721140B1 (ja) | 2020-07-08 |
JP2021140642A true JP2021140642A (ja) | 2021-09-16 |
Family
ID=71402421
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2020039749A Active JP6721140B1 (ja) | 2020-03-09 | 2020-03-09 | データ処理装置、データ処理方法およびプログラム |
Country Status (2)
Country | Link |
---|---|
JP (1) | JP6721140B1 (ja) |
WO (1) | WO2021181712A1 (ja) |
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 (ja) * | 2004-05-24 | 2009-12-02 | 独立行政法人科学技術振興機構 | キャッシュ・メモリ及びその制御方法 |
-
2020
- 2020-03-09 JP JP2020039749A patent/JP6721140B1/ja active Active
- 2020-04-07 WO PCT/JP2020/015665 patent/WO2021181712A1/ja active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JP6721140B1 (ja) | 2020-07-08 |
WO2021181712A1 (ja) | 2021-09-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021181712A1 (ja) | データ処理装置、データ処理方法およびプログラム | |
JP6733843B1 (ja) | データ処理装置、制御方法およびプログラム | |
WO2021157103A1 (ja) | 情報処理装置、制御方法およびプログラム | |
WO2022185582A1 (ja) | データ処理装置、データ処理方法およびプログラム | |
JP2002351504A (ja) | 制御データ保護装置 | |
WO2022085218A1 (ja) | 情報処理システムおよびデータベースの構築方法 | |
JPH0317760A (ja) | データ書込み確認方式 | |
JPH0728707A (ja) | 不揮発性メモリのデ−タ保護方法 | |
JPS60142747A (ja) | 命令再実行制御方式 | |
JPH11338712A (ja) | 割込順序保存回路 | |
JPS59111501A (ja) | シ−ケンスコントロ−ラ | |
JP3231864B2 (ja) | タスク縮退管理装置 | |
TW202001543A (zh) | 影像處理電路及其備份/還原方法 | |
JP2001051854A (ja) | 情報管理システム | |
WO2019231691A1 (en) | Combinational address repair in memory controller | |
JPH02178740A (ja) | 情報処理装置 | |
JPS62256047A (ja) | 擬似障害発生方式 | |
JPS62166451A (ja) | 論理装置の履歴解折装置 | |
JP2008242592A (ja) | メモリ監視回路、情報処理装置、及びメモリ監視方法 | |
JPS61134850A (ja) | 従属プロセツサのデバツグ方法 | |
JPS61101845A (ja) | 情報処理装置の試験方式 | |
US20020089772A1 (en) | Automation system with a work drive unit | |
JPH0553925A (ja) | マイクロプログラム制御装置 | |
JPH03127241A (ja) | ページング仮想記憶方式におけるメモリ管理方式 | |
JPS62209627A (ja) | デ−タ処理装置 |
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 |