JP7379932B2 - 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム - Google Patents

制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム Download PDF

Info

Publication number
JP7379932B2
JP7379932B2 JP2019152913A JP2019152913A JP7379932B2 JP 7379932 B2 JP7379932 B2 JP 7379932B2 JP 2019152913 A JP2019152913 A JP 2019152913A JP 2019152913 A JP2019152913 A JP 2019152913A JP 7379932 B2 JP7379932 B2 JP 7379932B2
Authority
JP
Japan
Prior art keywords
volatile memory
data
instruction
error
read
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
JP2019152913A
Other languages
English (en)
Other versions
JP2021033623A (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.)
Omron Corp
Original Assignee
Omron Corp
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 Omron Corp filed Critical Omron Corp
Priority to JP2019152913A priority Critical patent/JP7379932B2/ja
Priority to PCT/JP2020/007778 priority patent/WO2021038923A1/ja
Publication of JP2021033623A publication Critical patent/JP2021033623A/ja
Application granted granted Critical
Publication of JP7379932B2 publication Critical patent/JP7379932B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Program-control systems
    • G05B19/02Program-control systems electric
    • G05B19/04Program control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/048Monitoring; Safety
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operations
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Automation & Control Theory (AREA)
  • Stored Programmes (AREA)
  • Programmable Controllers (AREA)
  • Detection And Correction Of Errors (AREA)
  • Retry When Errors Occur (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、制御対象を制御するためにユーザプログラムを実行する制御装置と、当該制御装置におけるユーザプログラムの実行制御方法と、当該制御装置を実現するためのシステムプログラムに関する。
様々な製造現場において、PLC(Programmable Logic Controller)などの制御装置が導入されている。このような制御装置は、一種のコンピュータであり、RAM(Random Access Memory)などの揮発性メモリと、CPU(Central Processing Unit)などのプロセッサとを備える。揮発性メモリは、製造装置または製造設備などに応じて設計されたユーザプログラムを格納する。プロセッサは、揮発性メモリに格納されたユーザプログラムを構成する命令を順番に読み込み、逐次実行する。
揮発性メモリに格納されたユーザプログラムを実行する場合に、ユーザプログラムのデータが放射線の影響を受けて1ビット単位で破壊され、揮発性メモリにソフトエラーが発生することがある。このように、ユーザプログラムのデータが破壊されてソフトエラーが発生することがあるため、ソフトエラーの検出、および、検出したソフトエラーを修正する機能を制御装置に対して設けることが望まれている。
特開2004-220580号公報(特許文献1)は、ユーザプログラムが格納されるユーザプログラムメモリに加えて、ユーザプログラムメモリに格納されたユーザプログラムと同一内容のデータが格納されたバックアップメモリとを備えたプログラマブルコントローラ用ユニットを開示する。このプログラマブルコントローラ用ユニットは、バックアップメモリとユーザプログラムメモリの内容を比較することで異常を検知し、異常を検知した場合にユーザプログラムメモリに格納されたユーザプログラムをバックアップメモリに格納されたデータに基づいて修復する。
特開2004-220580号公報
特許文献1に開示されたエラーの検知方法は、2つのメモリを互いに比較することでエラーを検知するため、比較結果を得るまでに時間がかかるという課題がある。
本発明は、メモリに生じる誤りの検出および復元に要する時間を短縮することを目的とする。
本開示の一例によれば、制御対象を制御するための制御装置が提供される。制御装置は、ユーザプログラムに含まれる命令を順次実行する命令実行部と、ユーザプログラムを格納する揮発性メモリと、揮発性メモリに格納されたユーザプログラムと同一内容のバックアップ用のユーザプログラムを格納するバックアップメモリと、所定の実行順序に従って、ユーザプログラムに含まれる命令を揮発性メモリから読み出して命令実行部へ提供するアクセス制御部とを含む。揮発性メモリは、誤り検出用の情報を付加してデータを格納するとともに、読み出し要求に応じて、指定された領域のデータ、および、指定された領域に対応する誤り検出用の情報に基づいて決定される指定された領域における誤りの発生有無、を応答するように構成されている。アクセス制御部は、揮発性メモリから命令を読み出した場合に、読み出した命令を格納していた領域に誤りが発生していることが揮発性メモリから応答されると、誤りが発生している領域のデータをバックアップメモリから揮発性メモリにロードしなおし、揮発性メモリから命令を再度読み出すように構成されている。
本開示によれば、指定された領域の誤りの検出を誤り検出用の情報に基づいて誤りの発生有無が決定されるため、メモリ間を比較して誤りの発生を検知する場合に比べて、処理にかかる時間を短縮することができる。
上述の開示において、揮発性メモリは、パリティチェックにより誤りの発生有無を応答するように構成されていてもよい。この構成によれば、1ビット単位の誤りを検知することができる。
上述の開示において、アクセス制御部は、命令実行部に命令を提供することを目的とした読み出しとは別に、揮発性メモリに格納されたデータを予め定められた順番に予め定められたタイミングで読み出し、読み出したデータを格納していた領域に誤りが発生していることが揮発性メモリから応答されると、バックアップメモリに格納されている命令を含むデータをバックアップメモリから揮発性メモリにロードしなおす。
この開示によれば、命令の実行順序によっては、呼び出される頻度が極めて低い命令にかかるデータに対しても、定期的に誤り検出と誤りの復元とが実行される。
上述の開示において、バックアップメモリは、バックアップ用のユーザプログラムを不揮発的に格納するメモリであってもよい。この場合に、揮発性メモリに格納されるユーザプログラムは、バックアップメモリからロードされる。
この開示によれば、電断用のメモリをバックアップメモリに用いることができるため、バックアップメモリを別途用意する必要がなく、メモリ容量を削減することができる。
上述の開示において、バックアップメモリは、バックアップ用のユーザプログラムを揮発的に格納するメモリであってもよい。アクセス制御部は、命令の実行に伴って揮発性メモリに格納されたデータの書き換えが必要な場合、揮発性メモリに格納されたデータおよびバックアップメモリに格納されたデータを書き換える。
この開示によれば、揮発性メモリに格納されたデータに加えてバックアップメモリに格納されたデータを書き換えることで、データの書き換えが生じる命令を含むユーザプログラムのソフトエラーにも対応することができる。
本開示の別の一例によれば、制御対象を制御するための制御装置におけるユーザプログラムの実行制御方法が提供される。制御装置は、ユーザプログラムを格納する揮発性メモリと、揮発性メモリに格納されたユーザプログラムと同一内容のバックアップ用のユーザプログラムを格納するバックアップメモリとを含む。揮発性メモリは、誤り検出用の情報を付加してデータを格納するとともに、読み出し要求に応じて、指定された領域のデータ、および、指定された領域に対応する誤り検出用の情報に基づいて決定される指定された領域における誤りの発生有無、を応答するように構成されている。ユーザプログラムの実行制御方法は、所定の実行順序に従って、ユーザプログラムに含まれる命令を揮発性メモリから読み出すステップと、揮発性メモリから命令を読み出した場合に、読み出した命令を格納していた領域に誤りが発生していることが揮発性メモリから応答されると、誤りが発生している領域のデータをバックアップメモリから揮発性メモリにロードしなおし、揮発性メモリから命令を再度読み出すステップと、揮発性メモリから読み出した命令を実行するステップとを含む。
この開示によれば、指定された領域の誤りの検出を誤り検出用の情報に基づいて誤りの発生有無が決定されるため、メモリ間を比較して誤りの発生を検知する場合に比べて、処理にかかる時間を短縮することができる。
本開示のさらに別の一例によれば、制御対象を制御するための制御装置を実現するためのシステムプログラムが提供される。制御装置は、ユーザプログラムを格納する揮発性メモリと、揮発性メモリに格納されたユーザプログラムと同一内容のバックアップ用のユーザプログラムを格納するバックアップメモリとを含む。揮発性メモリは、誤り検出用の情報を付加してデータを格納するとともに、読み出し要求に応じて、指定された領域のデータ、および、指定された領域に対応する誤り検出用の情報に基づいて決定される指定された領域における誤りの発生有無、を応答するように構成されている。システムプログラムは制御装置のプロセッサに、所定の実行順序に従って、ユーザプログラムに含まれる命令を揮発性メモリから読み出すステップと、揮発性メモリから命令を読み出した場合に、読み出した命令を格納していた領域に誤りが発生していることが揮発性メモリから応答されると、誤りが発生している領域のデータをバックアップメモリから揮発性メモリにロードしなおし、揮発性メモリから命令を再度読み出すステップと、揮発性メモリから読み出した命令を実行するステップとを実行させる。
この開示によれば、指定された領域の誤りの検出を誤り検出用の情報に基づいて誤りの発生有無が決定されるため、メモリ間を比較して誤りの発生を検知する場合に比べて、処理にかかる時間を短縮することができる。
本発明によれば、メモリに生じる誤りの検出および復元に要する時間を短縮することができる。
本開示の適用例を模式的に説明するための図である。 制御装置100の構成を模式的に示した図である。 プロセッサ102が実行する処理の一例を説明するためのフローチャートである。 プロセッサ102が実行する処理の変形例を示す。 図4に示した処理を実行したときのデータの読出/書込/復元の模式図である。 ログデータの一例を示す図である。
以下、図面を参照しつつ、本発明に従う各実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。したがって、これらについての詳細な説明は繰り返さない。なお、以下で説明される各実施の形態および各変形例は、適宜選択的に組み合わせてもよい。
§1.適用例
図1を参照して、本発明が適用される場面の一例について説明する。図1は、本開示の適用例を模式的に説明するための図である。図1を参照して、本開示に係る制御装置100Xは、例えば、PLC(プログラマブルコントローラ)と称される産業用のコントローラに相当し、図示しない各種の製造設備や機械を制御する。制御装置100Xによる制御においては、センサなどを用いて必要な情報を取得し、制御装置100Xで実行されるプログラムに従って、それらの取得された情報を用いて予め定められた制御演算を実行することで、制御出力を算出する。
制御装置100Xは、命令実行部202Xと、揮発性メモリ106Xと、バックアップメモリ110Xと、アクセス制御部204Xとを含む。
命令実行部202Xは、ユーザプログラム114に含まれる命令を順次実行する。ユーザプログラム114は、制御対象を制御することを目的として作成されたプログラム、制御装置100と通信可能な他の装置(たとえば、データベース、他の制御装置、HMI(Human Machine Interface)など)との間でデータの送受信を行うためのプログラムなど、任意のアプリケーションを実現するためのプログラムである。
アクセス制御部204Xは、所定の実行順序に従って、メインメモリ106からユーザプログラム114に含まれる命令を読み出して命令実行部202に提供する。
命令実行部202Xおよびアクセス制御部204Xは、たとえば、制御装置100のプロセッサが、制御装置の基本的な機能を実現するためのシステムプログラムを実行することで実現される機能である。なお、命令実行部202Xおよびアクセス制御部204Xの機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。たとえば、命令実行部202Xの機能を専用のハードウェア回路を用いて実装し、アクセス制御部204Xの機能を制御装置100Xのプロセッサがシステムプログラムを実行することで実現してもよい。
揮発性メモリ106Xは、ユーザプログラム114を揮発的に格納する。揮発性メモリ106Xに格納されたユーザプログラム114は、実行用のプログラムであって、ユーザデータ140である。
バックアップメモリ110Xは、揮発性メモリ106Xに格納されたユーザプログラム114と同一内容のバックアップ用のユーザプログラム114であるバックアップデータ160を格納する。バックアップメモリ110Xは、揮発性のメモリであっても、不揮発性のメモリであってもよい。
バックアップデータ160は、ユーザデータ140が破壊された際に当該ユーザデータ140を復元するために利用される。たとえば、ユーザデータ140が宇宙線中性子などにより破壊された場合に、揮発性メモリ106Xにバックアップデータ160をロードしなおすことで、破壊されたデータを復元する。
揮発性メモリ106Xは、誤り検出機能を搭載したメモリであって、具体的には、データ142を格納する際に、データ142に誤り検出用の情報(検出用情報144X)を付加して格納する。また、揮発性メモリ106Xは、読み出し要求に応じて、指定された領域のデータを出力する場合に、指定された領域に誤りの発生有無を合わせて出力する。誤りの発生有無は、検出用情報144Xに基づいて決定される。誤りの発生有無は、たとえば、従来から知られているパリティチェックに従って決定される。
アクセス制御部204Xは、読み出した命令を格納していた領域に誤りが発生していることが揮発性メモリ106Xから応答されると、誤りが発生している領域のデータについて、バックアップメモリ110Xから揮発性メモリ106Xにロードしなおす。アクセス制御部204Xは、ロードしなおした後、揮発性メモリ106Xから命令を再度読み出す。
このように、指定された領域の誤りの検出を誤り検出用の情報に基づいて誤りの発生有無が決定されるため、メモリ間を比較して誤りの発生を検知する場合に比べて、処理にかかる時間を短縮することができる。
また、データの誤りを検出する機能を備えた揮発性メモリは、市場に一般的に流通している。本開示に係る制御装置100Xは、このような一般的に流通している揮発性メモリ106Xを利用しつつ、誤りが発生している場合に揮発性メモリ106Xから命令を再度読み出す処理をプロセッサに実行させるように構成すればよく、容易に実現することが可能である。
また、データの誤りをハードウェア的に検知し、かつ訂正する機能を有するメモリが存在するが、このようなメモリは高価である。本開示に係る制御装置100Xは、誤り検出機能のみを備えるメモリを利用することでも実現可能であるため、コストを抑えて実現することが可能である。
なお、揮発性メモリ106Xは、データの誤りをハードウェア的に検知し、かつ訂正する機能を有するメモリであってもよい。この場合、たとえば、メモリによりデータの訂正ができない場合であっても、プロセッサの処理としてデータをロードしなおすように構成することで、メモリが備える訂正機能を補うことができる。
また、本開示にかかる制御装置100Xは、命令を実行する前に、データをロードしなおすため、誤ったデータに従って命令が実行されることを防止することができる。
また、命令を実行した後に、誤ったデータをロードしなおす場合には、誤ったデータに従って命令を実行して更新される入出力データについてもバックアップをとっておくことが望まれる。これに対して、本開示にかかる制御装置100Xは、命令を実行する前に、誤ったデータをロードしなおすため、入出力データのバックアップを必ずしもとっておく必要がなく、メモリの削減をすることができる。
また、本開示に係る制御装置100Xは、データの読み出し要求に応じて、誤りの発生有無の応答がされる。そのため、ユーザプログラム114全体を実行した後に誤りの発生有無を行うような場合に比べてデータの誤りを早くに発見することができる。
なお、データを復元するタイミングは、誤りの発生有無の応答がされたときであってもよく、また、誤りの発生有無の応答がされたあと、当該誤りの発生有無にかかるデータの命令を実行するときであってもよい。
また、誤りが発生している場合、誤りが発生しているデータのみをバックアップメモリ110Xからロードしなおしてもよく、また、読み出した命令単位でデータをバックアップメモリ110Xからロードしなおしてもよく、また、ユーザプログラム114全体をロードしなおすことで誤りが発生しているデータをロードしなおしてもよい。
なお、誤りが発生している場合にロードをしなおす場合、誤りが発生しているデータのみ、または、読み出した命令にかかるデータを読み出すようにした方が、ユーザプログラム114全体をロードしなおす場合に比べて、復元に要する時間を短縮することができる。
§2.具体例
<A.制御装置100の構成>
図2は、制御装置100の構成を模式的に示した図である。図2においては、制御装置100の中心的な処理を行う構成の一部を示している。
図2を参照して、制御装置100は、プロセッサ102、メインメモリ106およびフラッシュメモリ108を有する。プロセッサ102、メインメモリ106、およびフラッシュメモリ108は、ワンチップマイコンに搭載された形で制御装置100に設けられていてもよく、また、各々、別々に搭載された形で制御装置100に設けられていてもよい。
プロセッサ102は、フラッシュメモリ108に格納されたシステムプログラム112を直接実行することで、ユーザプログラム114をメインメモリ106に展開して順次実行する。プロセッサ102は、ユーザプログラム114を読み出して、メインメモリ106に展開して実行することで、制御対象に対する制御を実現する。なお、システムプログラム112をメインメモリ106に展開して実行するような構成であってもよいが、システムプログラム112がメインメモリ106に展開されることなく直接実行されることで、制御装置100を実現するための重要なプログラムが宇宙線中性子などの放射線の影響を受けて化けることを防止することができる。
フラッシュメモリ108は、不揮発性メモリであって、システムプログラム112およびユーザプログラム114を含む各種プログラムおよび、各種プログラムで利用される各種パラメータを保持する。本実施の形態において、フラッシュメモリ108は、メインメモリ106に展開される実行用のユーザプログラム114と同一内容のユーザプログラム114であるバックアップデータ160を格納するバックアップメモリとして機能する。
システムプログラム112は、ファームウェアであって、制御装置100を実現するためのプログラムである。ユーザプログラム114は、システムプログラム112以外のプログラムであって、たとえば、制御対象を制御することを目的として作成されたプログラム、制御装置100と通信可能な他の装置(たとえば、データベース、他の制御装置、HMIなど)との間でデータの送受信を行うためのプログラムなどを含み得る。
なお、システムプログラム112、およびシステムプログラム112以外のユーザプログラム114などのデータを、互いに異なる不揮発性メモリに格納するように構成してもよい。この場合に、メインメモリ106に展開することなく直接実行されるシステムプログラム112は高速のフラッシュメモリに格納し、書き換え頻度の高いユーザプログラム114等のデータについては別の不揮発性メモリに格納してもよい。
メインメモリ106は、揮発性メモリであって、プロセッサ102がユーザプログラム114を実行するときの実行用のユーザデータ140を保持する。
なお、図2に記載していないものの、制御装置100は、他の装置と通信するためのインターフェイス、および、内部バスを通じて連結される機能ユニットとの間でデータを遣り取りするための内部バスコントローラ、メモリカードに格納されたデータの読み書きを行うためのメモリカードインターフェイスなどを備える。
制御装置100と連結される機能ユニットとしては、I/O(Input Output)ユニット、セーフティI/Oユニット、通信ユニット、モーションコントローラユニット、温度調整ユニット、パルスカウンタユニットなどを包含し得る。
また、制御装置100は、制御対象に関するセーフティ機能を実現するための制御演算を実行するセーフティユニットであってもよい。
<B.プロセッサおよびメインメモリの機能構成>
図2を参照して、プロセッサ102およびメインメモリ106の機能構成について説明する。プロセッサ102は、命令実行部202と、アクセス制御部204と、レジスタ206と、アクセスインターフェイス220とを含む。
命令実行部202は、演算器であって、1または複数の演算回路から構成されている。命令実行部202は、メインメモリ106から読み込んだ命令を実行する。
アクセス制御部204は、システムプログラム112が実行されることで実現される機能であって、アクセスインターフェイス220を制御することで、プロセッサ102とフラッシュメモリ108とメインメモリ106との間のデータの遣り取りを制御することで、所定の実行順序に従って、ユーザプログラム114に含まれる命令をメインメモリ106から読み出して命令実行部202へ提供する。
レジスタ206は、エラーアドレスレジスタ208と、エラーステータスレジスタ210と、命令レジスタ212とを含み得る。プロセッサ102は、他の種類のレジスタをさらに備えていてもよい。
エラーアドレスレジスタ208は、メインメモリ106内においてソフトエラーの発生しているエリア(アドレス)を保持する。
エラーステータスレジスタ210は、メインメモリ106内においてソフトエラーが発生している状態にあることを保持する。
命令レジスタ212は、命令実行部202が実行する命令を保持する。プロセッサ102は、命令レジスタ212を複数備えてもよい。
アクセスインターフェイス220は、アクセス制御部204の指示に従って制御され、メインメモリ106およびフラッシュメモリ108との間でデータの遣り取りを行う。
メインメモリ106は、アドレスデコーダ602と、メモリセル604と、読出/書込回路606と、パリティチェック回路610とを備える。
アドレスデコーダ602は、アドレスバス402を介してプロセッサ102に接続されている。アドレスデコーダ602は、アドレスバス402上に出力された信号をデコードすることでアドレスを特定し、メモリセル604のうち特定したアドレスのセルを活性化させる。アドレスデコーダ602によってデコードされた結果は、パリティチェック回路610に出力される。
メモリセル604には、実行用のユーザプログラム114であるユーザデータ140が格納される。メモリセル604には、データ142が誤り検出用の情報としてパリティビット144が付加された状態で格納される。
読出/書込回路606は、コントロールバス404およびデータバス406を介してプロセッサ102に接続されている。読出/書込回路606は、コントロールバス404からの制御信号に応じて、メモリセル604に対し、データの読み出しまたは書き込みを行う。
読出/書込回路606は、パリティ生成回路608を有する。パリティ生成回路608は、データバス406を介して送信されたデータ142からパリティビット144を生成する。読出/書込回路606は、データの書き込みを行う場合、アドレスデコーダ602によって活性化されたセルに、パリティ生成回路608が生成したパリティビット144を付加して、データバス406を介して送られたデータ142を格納する。
読出/書込回路606は、データの読み出しを行う場合、アドレスデコーダ602によって活性化されたセルに格納されたデータ(データ142およびパリティビット144)を読み出し、データバス406に出力する。また、読出/書込回路606は、読み出したデータ(データ142およびパリティビット144)をパリティチェック回路610に出力する。なお、読出/書込回路606は、データバス406にデータ142だけを出力するようにしてもよい。
パリティチェック回路610は、エラーバス408を介してプロセッサ102に接続されている。パリティチェック回路610は、読出/書込回路606から出力されたデータに誤りが発生しているか否かをパリティチェックによりチェックする。たとえば、書き込み時のデータ142が、宇宙線中性子などにより破壊される場合、1ビット単位で破壊される。パリティビット144が付与されたデータ142が宇宙線中性子により2ビット以上破壊される可能性は低いため、パリティチェックをすることで宇宙線中性子により破壊されているか否かを検知することができる。なお、パリティチェックの方法について、従来技術であるため、詳細な説明は省略する。
パリティチェック回路610は、データ誤りの発生有無と、アドレスデコーダ602から出力されたアドレス(パリティチェックをしたセルのアドレス)とをエラーバス408に出力する。なお、パリティチェック回路610は、データ誤りが発生している場合にのみ、データ誤りの発生と、アドレスとをエラーバス408に出力するようにしてもよい。
なお、図2に示した構成は一例であって、データ誤りを検出するための回路を有する揮発性メモリであれば、図2に示した構成に限られない。また、データ誤りを検出する方法は、パリティチェックに限られず、任意の方法を適用可能である。
プロセッサ102とフラッシュメモリ108とは、アドレスバス410、コントロールバス412、およびデータバス414を介して接続されている。プロセッサ102は、これらのバスを介してシステムプログラム112を実行する。また、プロセッサ102は、これらのバスを介して、適宜、フラッシュメモリ108からプログラムをメインメモリ106に展開して、ユーザプログラム114を実行する。
<プロセッサの処理>
図3は、プロセッサ102が実行する処理の一例を説明するためのフローチャートである。以下では、ステップは、単に「S」と記載する。図3に示すフローチャートは、プロセッサ102がシステムプログラム112を実行することで実現される。図3に示すフローチャートは、制御装置100に電源が供給されると実行される。
S102において、プロセッサ102は、ユーザプログラム114をメインメモリ106に展開する。S102の処理により、メインメモリ106のメモリセル604にパリティビット144を付加したデータ142が格納される。
S104において、プロセッサ102は、実行対象の命令をメインメモリ106からフェッチする。より具体的には、アクセスインターフェイス220は、アクセス制御部204の指示に従って、実行対象の命令に対応するデータが格納されたアドレスをアドレスバス402に出力し、コントロールバス404に読み出しを要求する信号を出力する。
メインメモリ106は、プロセッサ102からの読み出し要求に対して、指定されたアドレスのデータ142と、当該指定されたアドレスのデータ142に対するパリティチェックの結果とを出力することで応答する。具体的には、アドレスデコーダ602は、アドレスバス402に出力されたアドレスのセルを活性化させ、また、アドレスをパリティチェック回路610に出力する。読出/書込回路606は、読み出しを要求する信号を受けて、活性化されているセルのデータ142およびパリティビット144をデータバス406と、パリティチェック回路610とに出力する。パリティチェック回路610は、データ142およびパリティビット144に基づいて、データ142の誤りの有無をチェックし、チェック結果と、チェックしたデータ142のアドレスとをエラーバス408に出力する。
データバス406を介して送られたデータ142は、命令レジスタ212に格納される。エラーバス408を介して送られたデータのうちのチェックしたデータ142のアドレスは、エラーアドレスレジスタ208に格納される。エラーバス408を介して送られたデータのうちのチェック結果は、エラーステータスレジスタ210に格納される。
S106において、プロセッサ102は、エラーがあるか否かを判定する。具体的には、プロセッサ102は、エラーステータスレジスタ210に格納されたチェック結果に基づいて判定する。
エラーがあると判定された場合(S106においてYES)、S108において、プロセッサ102は、データを復元する。具体的には、アクセス制御部204は、エラーアドレスレジスタ208に格納されているアドレスのデータをフラッシュメモリ108からメインメモリ106に再度ロードするようにアクセスインターフェイス220を制御する。
たとえば、アクセス制御部204は、エラーアドレスレジスタ208に格納されているアドレスに基づいて、当該アドレスのデータが格納されたフラッシュメモリ108内のアドレスを特定する。アクセスインターフェイス220は、アクセス制御部204の指示に従って、特定されたアドレスをアドレスバス410に、読み出しを要求する信号をコントロールバス412に出力する。
そして、アクセスインターフェイス220は、アクセス制御部204の指示に従って、復元対象のデータ142が格納されたアドレスをアドレスバス402に、フラッシュメモリ108が読み出し要求に応じて出力したデータをデータバス406に、書き込みを要求する信号をコントロールバス404に、それぞれ出力する。
メインメモリ106は、プロセッサ102からの書き込みを要求する信号を受けて、アドレスバス402を介して指定されたアドレスに、データバス406を介して送られたデータ142およびパリティビット144が書き込まれる。これにより、誤りのあるデータが、復元されることとなる。
S110において、プロセッサ102は、エラーアドレスレジスタ208とエラーステータスレジスタ210のデータをクリアする。プロセッサ102は、S110の処理を実行した後、再度S104およびS106の処理を実行し、データが復元されたことでパリティエラーが解消されたことを確認する。
図3に示す例では、エラーがないと判定されるまで、S108およびS110の処理を繰り返すものとしている。なお、S108およびS110の処理を所定回数繰り返し実行した場合には、ユーザプログラム114の実行を停止して、エラーをユーザに対して通知するようにしてもよい。
また、本実施の形態において、エラーバス408を介して送られたデータは、エラーアドレスレジスタ208とエラーステータスレジスタ210とに格納されるとした。なお、エラーバス408を介して送られたデータに基づいてエラーがあるか否かを判定し、エラーがある場合に、エラーアドレスレジスタ208とエラーステータスレジスタ210とにデータを格納するようにしてもよい。
エラーがないと判定された場合(S106においてNO)、S112において、プロセッサ102は、フェッチした命令を実行する。具体的には、プロセッサ102の命令実行部202は、命令レジスタ212に格納されたデータ142が示す命令を実行する。
S114において、プロセッサ102は、ユーザプログラム114を1サイクル分実行したか否かを判定する。ユーザプログラム114を1サイクル分実行していないと判定された場合(S114においてNO)、プロセッサ102は、S126に処理を切り替える。
ユーザプログラム114を1サイクル分実行したと判定された場合(S114においてYES)、S116において、プロセッサ102は、データ142をダミーでメインメモリ106からフェッチする。
S118,120,122の処理は、S106,108,110の処理と共通するため、説明を省略する。
S118においてエラーがないと判定された場合、または、S120およびS122の処理が実行された後、S124において、プロセッサ102は、ダミーで読み出すアドレスを更新する。具体的には、プロセッサ102は、命令の実行結果に関わらず、アドレスを順次更新し、S118からS124の処理を繰り返すことで、ユーザプログラム114を複数サイクル実行したときに、メモリセル604内の全てのデータ142を少なくとも1度は読み出す。すなわち、プロセッサ102は、メモリセル604に格納されたデータを予め定められた順で読み出されるように、ダミーで読み出すアドレスを更新する。
S126において、プロセッサ102は、S112において実行した命令の結果に応じて、次に実行する命令が格納されたアドレスを特定する。プロセッサ102は、S104~S126の処理を繰り返すことで、ユーザプログラム114を実行する。
ユーザプログラム114を構成する命令の中には、実行頻度の低いものも存在する。S116~S124の処理を実行しなかった場合には、実行頻度の低い命令を実行するためのデータについては、長期間に亘ってチェックされないこととなる。また、パリティチェックは、1ビットの誤りしか検出することができない。そのため、長期間に亘ってチェックされることなく放置されて2ビット以上の破壊が生じている場合、当該破壊を検出することができない。
本実施の形態においては、S116~S124が繰り返し実行されることで、メインメモリ106に格納されたデータ142が少なくとも1度は読み出されることになるため、実行頻度の低い命令を実行するためのデータが長期間に亘ってチェックされることなく放置されてしまうことを防止することができる。
なお、命令の実行とは別にデータの読み出しをするタイミングは、ユーザプログラム114を1サイクル分実行した後としたが(S116)、これに限られない。命令の実行とは別にデータの読み出しをするタイミングは、たとえば、ユーザプログラム114を複数サイクル分実行した後であってもよく、また、複数の命令を実行した後であってもよい。また、制御装置100に複数のプロセッサが搭載されている場合には、命令の実行とは別にデータの読み出しをするタイミングは、ユーザプログラム114の実行中であってもよい。また、S116において読み出すデータの量は、任意であり、限定されるものではない。
<変形例>
(変形例1)
上記実施の形態においては、データの復元に用いるバックアップデータ160を保持するメモリは、不揮発性メモリであるフラッシュメモリ108とした。すなわち、上記実施の形態においては、フラッシュメモリ108のような不揮発性メモリに格納された電断保持用のデータを、バックアップ用のデータとして用いた。そのため、新たにバックアップ用のデータを用意する必要がなく、メモリを削減することができる。
なお、バックアップデータ160は、電断保持用のデータとは別に保持されていてもよい。たとえば、バックアップデータ160は、メインメモリ106のような揮発性メモリに、ユーザデータ140とは別に格納されていてもよい。プロセッサ102からのアクセスがフラッシュメモリ108に比べて早い揮発性メモリにバックアップデータ160を格納することで、復元にかかる時間を短縮することができる。バックアップデータ160は、メインメモリ106に格納されてもよく、また、メインメモリ106とは異なる別の揮発性メモリに格納されてもよい。
なお、バックアップデータ160を保持するメモリを揮発性メモリとする場合、プロセッサ102は、ユーザプログラム114をメインメモリ106に展開する際に、バックアップデータ160を保持するメモリにもユーザプログラム114を読み出す。
<変形例2>
上記実施の形態においては、命令の実行に伴ってユーザプログラム114のデータが更新されることについて言及しなかった。なお、ユーザプログラム114によっては、命令の実行に伴って、ユーザプログラム114のデータが動的に変化することもある。このような場合には、バックアップデータ160についても、実行用のデータと同様に更新されるように構成することが好ましい。
ユーザプログラム114の実行に伴いデータを更新する場合、バックアップデータ160へのアクセス回数が増える。そのため、ユーザプログラム114が動的に変化する場合は、電断保持用のデータとは別に揮発性メモリにバックアップデータ160を格納しておくことが好ましい。
図4は、プロセッサ102が実行する処理の変形例を示す。図4において、図3と共通する処理には共通のステップ番号を付す。図4に示す処理は、新たにS103、S113-1およびS113-2の処理を、S108およびS120の代わりにS108’およびS120’の処理を実行する点で図3に示す処理と異なる。以下では、図3に示す処理と異なる処理を中心に説明する。
S103において、プロセッサ102は、バックアップデータ160をメインメモリに格納する。すなわち、プロセッサ102は、メインメモリ106のメモリセル604に、ユーザデータ140と、当該ユーザデータ140と同じバックアップデータ160とを格納する。
S108’の処理は、S108の処理と比べて、再度ロードするときに参照するデータが、フラッシュメモリ108に格納されたデータではなく、メインメモリ106に格納されているバックアップデータ160である点が異なる(図5参照)。S120’の処理とS120の処理との違いは、S108’の処理とS108の処理との違いと共通する。
S113-1において、プロセッサ102は、データの変更があるか否かを判定する。データの変更がある場合には、データを書き換える必要がある。すなわち、データの変更があるか否かを判定することで、データを書き換える必要があるか否かが判定される。具体的には、プロセッサ102は、S112において実行した命令の結果、データの変更が生じたか否かを判定する。
データの変更がある場合(S113-1においてYES)、すなわち、データを書き換える必要がある場合、プロセッサ102は、S113-2において、ユーザデータ140とバックアップデータ160とを書き換える。データの変更がない場合(S113-1においてNO)、すなわち、データを書き換える必要がない場合、プロセッサ102は、S113-2の処理を実行することなく、S114以降の処理を実行する。
図5は、図4に示した処理を実行したときのデータの読出/書込/復元の模式図である。メモリセル604には、実行用のユーザデータ140と、バックアップデータ160とがそれぞれ格納されている。書き込み時は、ユーザデータ140およびバックアップデータ160の双方にデータが書き込まれる(図4のS113-2)。データを復元する場合は、バックアップデータ160を用いてユーザデータ140のデータを復元する(図4のS108’、S120’)。また、データを読み出す時は、ユーザデータ140から読み出され、バックアップデータ160からは読み出されない(図4のS104)。
なお、バックアップデータ160が破壊されることも考えられるが、ユーザデータ140とバックアップデータ160とについて、共通のデータが両方とも破壊される確率は極めて低い。そのため、バックアップデータ160が破壊されることを考慮する必要性は低い。
なお、バックアップデータ160とユーザデータ140とを共通のメインメモリ106に格納する例を示したが、バックアップデータ160を格納するための揮発性メモリを別途設けてもよい。
また、S116~S124の処理を実行することで、命令の実行とは別にユーザデータ140だけをチェックするようにしてもよく、ユーザデータ140に加えてバックアップデータ160についてもチェックするようにしてもよい。
また、S108’およびS120’においてデータの復元をする場合に、プロセッサ102は、バックアップデータ160のデータについてもチェックするようにし、エラーがある場合には、復元することができないとしてエラーを通知するように構成してもよい。
<変形例3>
上記実施の形態においては、パリティチェックをした結果、エラーとなった場合は、単にデータを復元するに留めたが、プロセッサ102は、エラーの情報をログとして残しても良い。
図6は、ログデータの一例を示す図である。プロセッサ102は、エラーが発生した場合に、エラーを検出した日と、エラーとなったデータが格納されているアドレスと、復元前のデータ142と、復元後のデータ142とをログデータ180として残す。
なお、プロセッサ102は、バックアップデータ160を残していないデータに対してエラーが検知された場合においても、当該エラーが検知された日時と、エラーが発生したデータと、当該データが格納されているアドレスとをログデータとして残しても良い。
このように、ログデータ180を残すことで、ユーザは、ログデータ180を確認することで、パリティチェックエラーが発生している頻度、発生原因などを解析することができる。
<その他の変形例>
上記実施の形態において、誤りの発生有無を決定する方法は、パリティチェックによる方法とした。これは、市場に流通している誤り検出機能付きの揮発性メモリは、誤りの発生有無の決定をパリティチェックにより実現していることが多いため、誤りの発生有無を決定する方法の一例としてパリティチェックによる方法を挙げた。なお、誤りの発生有無を決定する方法は、これに限られない。なお、コストの面を考慮すると、市場に一般的に流通しているパリティチェック機能付きの揮発性メモリを制御装置100に設けることが好ましい。
上記実施の形態において、バックアップデータ160として、ユーザプログラム114のみを格納する例を示した。なお、バックアップデータ160は、ユーザプログラム114を実行する上で必要なパラメータ等のユーザプログラム114とは別のデータを含み得る。
§3.付記
以上のように、上記の実施の形態および変形例は以下のような開示を含む。
<構成1>
制御対象を制御するための制御装置(100,100X)であって、
ユーザプログラムに含まれる命令を順次実行する命令実行部(202,202X)と、
前記ユーザプログラムを格納する揮発性メモリ(106,106X)と、
前記揮発性メモリに格納された前記ユーザプログラムと同一内容のバックアップ用のユーザプログラムを格納するバックアップメモリ(108,110X,106)と、
所定の実行順序に従って、前記ユーザプログラムに含まれる命令を前記揮発性メモリから読み出して前記命令実行部へ提供するアクセス制御部(204,204X)とを備え、
前記揮発性メモリは、誤り検出用の情報(144,144X)を付加してデータ(142)を格納するとともに、読み出し要求に応じて、指定された領域のデータ、および、当該指定された領域に対応する誤り検出用の情報に基づいて決定される当該指定された領域における誤りの発生有無、を応答するように構成されており(606,608,610)、
前記アクセス制御部は、前記揮発性メモリから命令を読み出した場合に、当該読み出した命令を格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、誤りが発生している領域のデータを前記バックアップメモリから前記揮発性メモリにロードしなおし、前記揮発性メモリから当該命令を再度読み出すように構成されている(S104,S106,S108,S108’)、制御装置。
<構成2>
前記揮発性メモリは、パリティチェックにより誤りの発生有無を応答するように構成されている(610)、構成1に記載の制御装置。
<構成3>
前記アクセス制御部は、前記命令実行部に命令を提供することを目的とした読み出しとは別に、前記揮発性メモリに格納されたデータを予め定められた順番に予め定められたタイミングで読み出し、当該読み出したデータを格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、前記バックアップメモリに格納されている当該命令を含むデータを前記バックアップメモリから前記揮発性メモリにロードしなおす(S116,S118,S120,S120’,S124)、構成1または構成2に記載の制御装置。
<構成4>
前記バックアップメモリは、前記バックアップ用のユーザプログラムを不揮発的に格納するメモリ(108)であって、
前記揮発性メモリに格納される前記ユーザプログラムは、前記バックアップメモリからロードされる(S102)、構成1~構成3のうちいずれか1に記載の制御装置。
<構成5>
前記バックアップメモリは、前記バックアップ用のユーザプログラムを揮発的に格納するメモリであって(106)、
前記アクセス制御部は、前記命令の実行に伴って前記揮発性メモリに格納されたデータの書き換えが必要な場合、前記揮発性メモリに格納されたデータおよび前記バックアップメモリに格納されたデータを書き換える(S113-1,S113-2)、構成1~構成3のうちいずれか1に記載の制御装置。
<構成6>
制御対象を制御するための制御装置におけるユーザプログラムの実行制御方法であって、
前記制御装置(100,100X)は、
前記ユーザプログラムを格納する揮発性メモリ(106,106X)と、
前記揮発性メモリに格納された前記ユーザプログラムと同一内容のバックアップ用のユーザプログラムを格納するバックアップメモリ(108,110X,106)とを備え、
前記揮発性メモリは、誤り検出用の情報(144,144X)を付加してデータ(142)を格納するとともに、読み出し要求に応じて、指定された領域のデータ、および、当該指定された領域に対応する誤り検出用の情報に基づいて決定される当該指定された領域における誤りの発生有無、を応答するように構成されており(606,608,610)、
所定の実行順序に従って、前記ユーザプログラムに含まれる命令を前記揮発性メモリから読み出すステップ(S104)と、
前記揮発性メモリから命令を読み出した場合に、当該読み出した命令を格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、誤りが発生している領域のデータを前記バックアップメモリから前記揮発性メモリにロードしなおし、前記揮発性メモリから当該命令を再度読み出すステップ(S104,S106,S108,S108’)と、
前記揮発性メモリから読み出した命令を実行するステップ(S112)とを備える、ユーザプログラムの実行制御方法。
<構成7>
制御対象を制御するための制御装置を実現するためのシステムプログラムであって、
前記制御装置(100,100X)は、
ユーザプログラムを格納する揮発性メモリ(106,106X)と、
前記揮発性メモリに格納された前記ユーザプログラムと同一内容のバックアップ用のユーザプログラムを格納するバックアップメモリ(108,110X,106)とを備え、
前記揮発性メモリは、誤り検出用の情報(144,144X)を付加してデータ(142)を格納するとともに、読み出し要求に応じて、指定された領域のデータ、および、当該指定された領域に対応する誤り検出用の情報に基づいて決定される当該指定された領域における誤りの発生有無、を応答するように構成されており(606,608,610)、
前記システムプログラムは前記制御装置のプロセッサ(102)に、
所定の実行順序に従って、前記ユーザプログラムに含まれる命令を前記揮発性メモリから読み出すステップ(S104)と、
前記揮発性メモリから命令を読み出した場合に、当該読み出した命令を格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、誤りが発生している領域のデータを前記バックアップメモリから前記揮発性メモリにロードしなおし、前記揮発性メモリから当該命令を再度読み出すステップ(S104,S106,S108,S108’)と、
前記揮発性メモリから読み出した命令を実行するステップ(S112)とを実行させる、システムプログラム。
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。また、実施の形態および各変形例において説明された発明は、可能な限り、単独でも、組み合わせても、実施することが意図される。
100,100X 制御装置、102 プロセッサ、106 メインメモリ、106X 揮発性メモリ、108 フラッシュメモリ、110X バックアップメモリ、112 システムプログラム、114 ユーザプログラム、140 ユーザデータ、142 データ、144 パリティビット、144X 検出用情報、160 バックアップデータ、180 ログデータ、202,202X 命令実行部、204,204X アクセス制御部、206 レジスタ、208 エラーアドレスレジスタ、210 エラーステータスレジスタ、212 命令レジスタ、220 アクセスインターフェイス、402,410 アドレスバス、404,412 コントロールバス、406,414 データバス、408 エラーバス、602 アドレスデコーダ、604 メモリセル、606 読出/書込回路、608 パリティ生成回路、610 パリティチェック回路。

Claims (6)

  1. 制御対象を制御するための制御装置であって、
    ユーザプログラムに含まれる命令を順次実行する命令実行部と、
    前記ユーザプログラムを格納する揮発性メモリと、
    前記揮発性メモリに格納された前記ユーザプログラムと同一内容のバックアップ用のユーザプログラムを格納するバックアップメモリと、
    所定の実行順序に従って、前記ユーザプログラムに含まれる命令を前記揮発性メモリから読み出して前記命令実行部へ提供するアクセス制御部とを備え、
    前記揮発性メモリは、誤り検出用の情報を付加してデータを格納するとともに、読み出し要求に応じて、指定された領域のデータ、および、当該指定された領域に対応する誤り検出用の情報に基づいて決定される当該指定された領域における誤りの発生有無、を応答するように構成されており、
    前記アクセス制御部は、
    前記揮発性メモリから命令を読み出した場合に、当該読み出した命令を格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、誤りが発生している領域のデータを前記バックアップメモリから前記揮発性メモリにロードしなおし、前記揮発性メモリから当該命令を再度読み出し、当該読み出した命令を格納していた領域に誤りが発生していないことが前記揮発性メモリから応答されると、当該命令を前記命令実行部に提供して当該命令を実行させるとともに、当該命令の実行結果に応じて次に実行する命令を特定するように構成されており、
    前記命令実行部に命令を提供することを目的とした読み出しとは別に、当該命令が実行されてから前記次に実行する命令が特定されるまでの間において所定条件が成立する度に、前記揮発性メモリに格納されたデータのうち指定された領域のデータを読み出し、当該読み出したデータを格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、前記バックアップメモリに格納されている当該命令を含むデータを前記バックアップメモリから前記揮発性メモリにロードしなおし、当該読み出したデータを格納していた領域に誤りが発生していないことが前記揮発性メモリから応答されると、前記揮発性メモリに格納されたデータが予め定められた順番で読み出されるように当該所定条件が次に成立したときに読み出す領域を指定する、一連の処理を行うように構成されている、制御装置。
  2. 前記揮発性メモリは、パリティチェックにより誤りの発生有無を応答するように構成されている、請求項1に記載の制御装置。
  3. 前記バックアップメモリは、前記バックアップ用のユーザプログラムを不揮発的に格納するメモリであって、
    前記揮発性メモリに格納される前記ユーザプログラムは、前記バックアップメモリからロードされる、請求項1または請求項2に記載の制御装置。
  4. 前記バックアップメモリは、前記バックアップ用のユーザプログラムを揮発的に格納するメモリであって、
    前記アクセス制御部は、前記命令の実行に伴って前記揮発性メモリに格納されたデータの書き換えが必要な場合、前記揮発性メモリに格納されたデータおよび前記バックアップメモリに格納されたデータを書き換える、請求項1または請求項2に記載の制御装置。
  5. 制御対象を制御するための制御装置におけるユーザプログラムの実行制御方法であって、
    前記制御装置は、
    前記ユーザプログラムを格納する揮発性メモリと、
    前記揮発性メモリに格納された前記ユーザプログラムと同一内容のバックアップ用のユーザプログラムを格納するバックアップメモリとを備え、
    前記揮発性メモリは、誤り検出用の情報を付加してデータを格納するとともに、読み出し要求に応じて、指定された領域のデータ、および、当該指定された領域に対応する誤り検出用の情報に基づいて決定される当該指定された領域における誤りの発生有無、を応答するように構成されており、
    ユーザプログラムの実行制御方法は、
    所定の実行順序に従って、前記ユーザプログラムに含まれる命令を前記揮発性メモリから読み出すステップと、
    前記揮発性メモリから命令を読み出した場合に、当該読み出した命令を格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、誤りが発生している領域のデータを前記バックアップメモリから前記揮発性メモリにロードしなおし、前記揮発性メモリから当該命令を再度読み出すステップと
    当該読み出した命令を格納していた領域に誤りが発生していないことが前記揮発性メモリから応答されると、前記揮発性メモリから読み出した命令を実行するステップと、
    当該命令の実行結果に応じて次に実行する命令を特定するステップと、
    命令の実行を目的とした読み出しとは別に、当該命令が実行されてから前記次に実行する命令が特定されるまでの間において所定条件が成立する度に実行する、前記揮発性メモリに格納されたデータのうち指定された領域のデータを読み出し、当該読み出したデータを格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、前記バックアップメモリに格納されている当該命令を含むデータを前記バックアップメモリから前記揮発性メモリにロードしなおし、当該読み出したデータを格納していた領域に誤りが発生していないことが前記揮発性メモリから応答されると、前記揮発性メモリに格納されたデータが予め定められた順番で読み出されるように当該所定条件が次に成立したときに読み出す領域を指定するという一連のステップとを含む、を備える、ユーザプログラムの実行制御方法。
  6. 制御対象を制御するための制御装置を実現するためのシステムプログラムであって、
    前記制御装置は、
    ユーザプログラムを格納する揮発性メモリと、
    前記揮発性メモリに格納された前記ユーザプログラムと同一内容のバックアップ用のユーザプログラムを格納するバックアップメモリとを備え、
    前記揮発性メモリは、誤り検出用の情報を付加してデータを格納するとともに、読み出し要求に応じて、指定された領域のデータ、および、当該指定された領域に対応する誤り検出用の情報に基づいて決定される当該指定された領域における誤りの発生有無、を応答するように構成されており、
    前記システムプログラムは前記制御装置のプロセッサに、
    所定の実行順序に従って、前記ユーザプログラムに含まれる命令を前記揮発性メモリから読み出すステップと、
    前記揮発性メモリから命令を読み出した場合に、当該読み出した命令を格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、誤りが発生している領域のデータを前記バックアップメモリから前記揮発性メモリにロードしなおし、前記揮発性メモリから当該命令を再度読み出すステップと、
    当該読み出した命令を格納していた領域に誤りが発生していないことが前記揮発性メモリから応答されると、前記揮発性メモリから読み出した命令を実行するステップと
    当該命令の実行結果に応じて次に実行する命令を特定するステップと、を実行させ、
    前記システムプログラムは前記プロセッサに、
    命令の実行を目的とした読み出しとは別に、当該命令が実行されてから前記次に実行する命令が特定されるまでの間において所定条件が成立する度に、前記揮発性メモリに格納されたデータのうち指定された領域のデータを読み出し、当該読み出したデータを格納していた領域に誤りが発生していることが前記揮発性メモリから応答されると、前記バックアップメモリに格納されている当該命令を含むデータを前記バックアップメモリから前記揮発性メモリにロードしなおし、当該読み出したデータを格納していた領域に誤りが発生していないことが前記揮発性メモリから応答されると、前記揮発性メモリに格納されたデータが予め定められた順番で読み出されるように当該所定条件が次に成立したときに読み出す領域を指定するという一連のステップを実行させる、システムプログラム。
JP2019152913A 2019-08-23 2019-08-23 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム Active JP7379932B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2019152913A JP7379932B2 (ja) 2019-08-23 2019-08-23 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム
PCT/JP2020/007778 WO2021038923A1 (ja) 2019-08-23 2020-02-26 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019152913A JP7379932B2 (ja) 2019-08-23 2019-08-23 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム

Publications (2)

Publication Number Publication Date
JP2021033623A JP2021033623A (ja) 2021-03-01
JP7379932B2 true JP7379932B2 (ja) 2023-11-15

Family

ID=74675878

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019152913A Active JP7379932B2 (ja) 2019-08-23 2019-08-23 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム

Country Status (2)

Country Link
JP (1) JP7379932B2 (ja)
WO (1) WO2021038923A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115714908B (zh) * 2021-08-20 2024-08-13 荣耀终端有限公司 工作模式的切换控制方法、电子设备及可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003131955A (ja) 2001-10-19 2003-05-09 Kyocera Corp データバックアップ回路
WO2012172645A1 (ja) 2011-06-14 2012-12-20 富士通株式会社 メモリ制御装置および制御方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63142449A (ja) * 1986-12-04 1988-06-14 Fujitsu Ltd 制御メモリに対するパトロ−ルチエツク方式
JPH02178862A (ja) * 1988-12-29 1990-07-11 Nec Corp 情報処理装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003131955A (ja) 2001-10-19 2003-05-09 Kyocera Corp データバックアップ回路
WO2012172645A1 (ja) 2011-06-14 2012-12-20 富士通株式会社 メモリ制御装置および制御方法

Also Published As

Publication number Publication date
WO2021038923A1 (ja) 2021-03-04
JP2021033623A (ja) 2021-03-01

Similar Documents

Publication Publication Date Title
US7376887B2 (en) Method for fast ECC memory testing by software including ECC check byte
JP5780174B2 (ja) 不良ビットエラーを処理するシステムおよび方法
JP4868216B2 (ja) ファームウェア更新回路およびファームウェア更新方法
EP2770507B1 (en) Memory circuits, method for accessing a memory and method for repairing a memory
US7299400B2 (en) Error correction circuit
JP6290303B2 (ja) 誤り訂正能力をテストするための回路および方法
KR20130031888A (ko) 데이터 메모리의 모니터링 방법
JP2016167669A (ja) プログラマブル論理回路装置及びそのエラー検出方法
US10379946B2 (en) Controller
JP7379932B2 (ja) 制御装置、ユーザプログラムの実行制御方法、およびシステムプログラム
CN113961227B (zh) 一种通用软件在线维护控制装置
CN118672822A (zh) Fpga抗软错误的方法及装置
US20050207232A1 (en) Access method for a NAND flash memory chip, and corresponding NAND flash memory chip
JP2010181990A (ja) データプロセッサ
JP4135413B2 (ja) メモリチェックシステムおよびメモリチェック方法、信号処理装置および信号処理装置のメモリチェック方法、ならびに、メモリチェックプログラム
JP5964265B2 (ja) 半導体集積回路装置
CN104200835B (zh) 在数据存储器中识别供电中断和重建数据存储器的方法
US12524304B2 (en) Electronic device, electronic system, method for operating an electronic device, and method for operating an electronic system
JP4543505B2 (ja) マイクロコンピュータの制御方法及び異常監視装置
JP7142731B2 (ja) プログラマブルデバイス
US20080270830A1 (en) Data Processing System and Method for Operating a Data Processing System
JP5935319B2 (ja) 回路エミュレーション装置、回路エミュレーション方法及び回路エミュレーションプログラム
JP2002150795A (ja) 半導体集積回路
JPH08166891A (ja) フォールトトレラントコンピュータシステム
JPS635784B2 (ja)

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220607

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230322

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230420

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230725

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230822

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20231016

R150 Certificate of patent or registration of utility model

Ref document number: 7379932

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150