(57)【要約】      （修正有）【課題】制御用コアがアクセスするデータ領域の診断を行う際、制御演算に使用しているデータを書き潰す事なしに診断処理を行うマルチコア制御装置を提供する。【解決手段】マルチコア制御装置１は、一定周期でプラント制御のための処理を行う制御用コア１１と診断を実行する診断用コア１２を備え、制御演算で使用するデータ領域を２面持ち、制御演算処理のデータ領域と診断対象となる領域をセレクター４で切り替えることによって、制御用コアと診断用コアで排他を取りながら制御演算処理と診断処理が並列実行する。【選択図】図１
2020030507.tif 000002
【特許請求の範囲】
【請求項１】
ＲＯＭに格納された第１の実行コードを主記憶部に記憶し、記憶された前記第１の実行コードに基づいて制御演算を実行する制御演算処理部を有する第１のコア、前記ＲＯＭに格納された第２の実行コードを主記憶部に記憶し、記憶された前記第２の実行コードに基づいて前記ＲＯＭまたは前記主記憶部の診断を実行する診断処理部を有する第２のコアを備えたマルチコア制御装置において、前記主記憶部の内、前記制御演算処理部により処理されたデータを記憶した第１のデータ領域を前記診断処理部が診断する際、前記制御演算処理部が前記第１のデータ領域にアクセスしないためのセレクターを備えたことを特徴とするマルチコア制御装置。
【請求項２】
前記セレクターは複数のデータ領域の内、診断対象のデータ領域を示す診断面と、前記診断面の診断の実行状態を示す診断指示部とから構成され、前記診断面が前記第１のデータ領域を示し、前記診断指示部が診断の実行中を示している場合、前記制御演算処理部は前記第１のデータ領域にアクセスしないことを特徴とする請求項１に記載のマルチコア制御装置。
【請求項３】
前記診断処理部が前記第１のデータ領域を診断する際、前記制御演算処理部により処理されるデータは第２のデータ領域に記憶されることにより、制御演算処理と診断処理が並列に実行されることを特徴とする請求項１または２に記載のマルチコア制御装置。
【請求項４】
前記セレクターは、複数の診断処理部が同じ診断領域を順次診断できるように制御するためのコア間診断制御部をさらに有し、前記コア間診断制御部によりアクセス権が与えられた診断処理部が前記診断領域を診断し、全ての診断処理部の診断を終了した際、診断の停止を前記診断指示部に示すことを特徴とする請求項２に記載のマルチコア制御装置。
【請求項５】
前記第１のコアを複数有し、前記第２のコアを複数有し、複数に分割した前記第１のデータ領域のそれぞれの領域に対応した複数の制御演算処理部で演算処理し、複数の診断処理部で診断することを特徴とする請求項１に記載のマルチコア制御装置。
【請求項６】
制御演算の負荷に応じて前記第２のコアを前記第１のコアに変更する負荷監視用コアを備えたことを特徴とする請求項５に記載のマルチコア制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、マルチコア制御装置に関する。
【背景技術】
【０００２】
従来のマルチコアから構成される制御装置内のＣＰＵの診断方式においては、制御用と監視用の２つのコアを設けて、監視用コアが制御用コア内部にある監視用ＲＡＭ領域を監視し、その監視結果で制御用コアの異常を検出している。(例えば、特許文献1参照)
【０００３】
制御用コアは監視領域を一定間隔で読み込み、その反転値で監視領域を上書きする。監視用コアは制御用コアの監視領域を読み込み、期待値と読込値が、一定回数以上一致していなければ、予め定められたデフォルト値に置換する等のフェールセーフ処理を行う。
【０００４】
このような従来の方式は、車両制御用の計算機等に用いられているが、診断の対象範囲は制御用コアのみであり、回路規模の大きい原子力又は火力発電所向けの制御装置では、主記憶部、及びＲＯＭ等の診断を行うことができない。
【０００５】
また、従来の方式はコア内部にＲＡＭ領域があることを想定しているが、そのようなマルチコア制御装置は高価格及び大面積となってしまい、一般的なマルチコア制御装置はコア毎に内部でＲＡＭを持っていないため、上記方式は適用できない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−１５５９０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従来の診断方式では、マルチコア制御装置のコア間しか監視していないため、マルチコア制御装置外部の主記憶、又はＲＯＭ等の周辺回路の異常を検出できないという問題があった。
【０００８】
また、マルチコア制御装置のコア内部にＲＡＭが搭載されていることを前提としているため、原子力又は火力発電所向けの制御装置のＣＰＵで使用しているコア内部にＲＡＭが搭載されていないマルチコア制御装置には適用できないという問題もあった。
【０００９】
本願は上記のような課題を解決するためになされたものであり、マルチコア制御装置外部の周辺回路の診断を可能とするとともに、マルチコア制御装置内部にＲＡＭが搭載されていなくても、制御演算と診断処理でコア分割を行うことで、コア間におけるデータ領域の干渉を防止することができ、高性能及び信頼性の高いマルチコア制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１０】
本願に開示されるマルチコア制御装置は、
ＲＯＭに格納された第１の実行コードを主記憶部に記憶し、記憶された第１の実行コードに基づいて制御演算を実行する制御演算処理部を有する第１のコア、ＲＯＭに格納された第２の実行コードを主記憶部に記憶し、記憶された第２の実行コードに基づいてＲＯＭまたは主記憶部の診断を実行する診断処理部を有する第２のコアを備えたものであって、主記憶部の内、制御演算処理部により処理されたデータを記憶した第１のデータ領域を診断処理部が診断する際、制御演算処理部が第１のデータ領域にアクセスしないためのセレクターを備えたことを特徴とするものである。
【発明の効果】
【００１１】
本願に開示されるマルチコア制御装置によれば、セレクターを用いて制御演算処理用のデータ領域と診断処理部が診断を実行するデータ領域を排他的に使用することができ、コア間におけるデータ領域の干渉を防止することができる。
【図面の簡単な説明】
【００１２】
【図１】実施の形態１のマルチコア制御装置の一例を示す概略構成図である。
【図２】実施の形態１のマルチコア制御装置のセレクターの構造を示す図である。
【図３Ａ】実施の形態１のマルチコア制御装置の制御演算処理部の動作を説明するフローチャートである。
【図３Ｂ】実施の形態１のマルチコア制御装置の診断処理部の動作を説明するフローチャートである。
【図４】実施の形態２のマルチコア制御装置の一例を示す概略構成図である。
【図５】実施の形態３のマルチコア制御装置の一例を示す概略構成図である。
【図６】実施の形態３のマルチコア制御装置のセレクターの構造を示す図である。
【図７】実施の形態３のマルチコア制御装置の診断処理部の動作を説明するフローチャートである。
【図８】実施の形態４のマルチコア制御装置の一例を示す概略構成図である。
【発明を実施するための形態】
【００１３】
以下、本願に係るマルチコア制御装置の好適な実施の形態について、図面を参照して説明する。なお、同一内容および相当部については同一符号を配し、その詳しい説明は省略する。以降の実施形態も同様に、同一符号を付した構成について重複した説明は省略する。
【００１４】
実施の形態１．
以下、本願の実施の形態１を図１に基づいて説明する。図１は、マルチコア制御装置の一例を示すデュアルコアプロセッサ１の概略構成図であり、マイクロプロセッサ（ＣＰＵ）内に制御用コア１１、診断用コア１２、メモリコントローラ１４、及びローカルバスコントローラ１５から構成され、それらはデュアルコアプロセッサ１内部のＣＰＵ内部バス１３で接続されている。
【００１５】
制御用コア１１は制御演算処理部１１１により、一定周期でプラント制御のための処理を行い、診断用コア１２は診断処理部１２１により、デュアルコアプロセッサ１内部の診断処理を常時、実行している。
【００１６】
制御用コア１１は制御演算実行時、メモリコントローラ１４を通して主記憶部２にアクセスする。主記憶部２は制御演算処理のプログラムが格納されているコード領域２１及び、制御演算処理部１１１のワーク領域であるデータ領域Ａ、データ領域Ｂより構成される。
【００１７】
制御用コア１１は、ＲＯＭ３に格納されている制御演算処理の実行コードをローカルバスコントローラ１５経由で読み出し、読み出した実行コードをメモリコントローラ１４経由でコード領域２１に展開して、展開された実行コードを制御演算処理部１１１が実行する。
【００１８】
診断用コア１２もＲＯＭ３に格納されている診断処理の実行コードをローカルバスコントローラ１５経由で読み出し、読み出した実行コードをメモリコントローラ１４経由でコード領域２１に展開して、展開された実行コードを診断処理部１２１が診断を実行する。
【００１９】
コード領域２１は、読み出しだけの領域であるため、ＣＲＣ（Cyclic Redundancy Check）によって診断することが可能であるが、データ領域Ａ及びデータ領域Ｂは、読み出しも書き込みもできる領域であるため、ＣＲＣによる診断は不可能であり、Write/Read/Compare でしか診断ができない。
【００２０】
従って、制御演算処理部１１１が、データ領域Ａを使用中に診断処理部１２１が、データ領域Ａまたはデータ領域ＢをWrite/Read/Compare で診断した場合、制御演算処理部１１１がデータ領域Ａまたはデータ領域Ｂに格納したデータを診断処理部１２１が書き潰してしまい、制御演算が誤動作する恐れがある。
【００２１】
また逆に、診断処理部１２１が、データ領域Ａまたはデータ領域Ｂを診断中に、制御演算処理部１１１が制御演算の出力結果を、中間値等で診断処理部１２１のデータを上書きした場合、誤ってデータの不一致を検出して異常と見做す恐れがある。
【００２２】
このようなデータ領域Ａまたはデータ領域Ｂにおける競合を防止するため、セレクター４により、データ領域Ａまたはデータ領域Ｂを制御演算処理部１１１と診断処理部１２１で排他的に使用して、演算処理と診断処理が同時に動作できることを保証する。
【００２３】
セレクター４は、図２に示す通り、診断面４１及び診断指示部４２から構成される。診断面４１は診断処理されているデータ領域が、データ領域Ａであるか、データ領域Ｂであるかを示し、診断指示部４２は診断実行中であるか、又は停止中であるかの診断処理部１２１の状態を示す。診断実行中を「RUN」、診断停止中を「STOP」と示す。
【００２４】
次に実施の形態１の動作を図３Ａ、図３Ｂのフローチャートを用いて説明する。
図３Ａにおいて、制御演算処理部１１１は基本周期内でアプリケーションロジックを実行する（ステップＳ１０１）。実行後、基本周期内の空き時間で、セレクター４内の診断指示部４２を確認し、診断指示部４２が「RUN」であれば、次の基本周期の先頭からアプリケーションロジックを実行し、診断指示部４２が「STOP」であればデータ領域の切り替え処理に移る（ステップＳ１０２）。
【００２５】
制御演算処理部１１１は、データ領域を切り替える前に、現在、制御演算で使用しているデータ領域（制御面と称す）Ａ内の全てのデータを、診断面４１へコピーする（ステップＳ１０３）。
【００２６】
制御演算処理部１１１は、コピー処理完了後、診断面４１に診断対象となるデータ領域Ａをセットすることによって制御面と診断面を入れ替える（ステップＳ１０４）。その後、診断指示部４２を「RUN」にすることで、停止中となっていた診断処理部１２１に診断再開を指示し、制御演算処理部１１１も基本周期の先頭からアプリケーションロジックを実行する（ステップＳ１０５）。実行されたアプリケーションロジックにより演算処理されたデータは、データ領域Ｂに記憶される。これにより演算処理と診断処理が並行して行われる。
【００２７】
図３Ｂにおいて、診断処理部１２１はＲＯＭ領域のＣＲＣによるＲＯＭ診断（ステップＳ２０１）、コード領域２１のＣＲＣによるコード領域診断を順に行う（ステップＳ２０２）。
【００２８】
診断処理部１２１は、続けてデータ領域の診断を行うが、このとき診断面４１で指定されたデータ領域Ａ（制御面と診断面を入れ替えたデータ領域）のみをWrite/Read/Compareによりデータ領域診断を行う（ステップＳ２０３）。データ領域診断完了後、診断指示部４２をSTOPにする（ステップＳ２０４）。
【００２９】
診断処理部１２１は、診断が一通り完了した後、診断指示部４２を確認し、診断指示部４２が「RUN」となっていれば、再度ステップＳ２０１に戻って診断を再開し、「STOP」となっていれば、「RUN」となるまで診断指示部４２を監視し続ける（ステップＳ２０５）。
【００３０】
上記のようにセレクター４を用いて制御演算処理部１１１用のデータ領域と診断処理部１２１が診断対象としているデータ領域を排他的に使用することによってコア間におけるデータ領域の干渉を防止し、かつ、主記憶部２の全域を診断できるようになるため、診断の信頼性を高くすることができる。
なお、上述では、データ領域Ａの診断について説明したが、データ領域Ｂについても同様である。
【００３１】
実施の形態２．
上記実施の形態１において、マルチコア制御装置は、１つのＣＰＵ内に２つのコアを有するデュアルコアプロセッサ１であり、制御用コア１１と診断用コア１２でコアを一つずつ振り分けていた場合について説明したが、図４に示すように、１つのＣＰＵ内の制御用コアと診断用コアのそれぞれが複数存在するマルチコアプロセッサ１ａでも各コアに関して制御演算処理用、診断処理用に事前に割り当てることによって制御演算処理と診断処理を同時に実行することが可能となる。
【００３２】
実施の形態１では、診断対象領域である主記憶部２、ＲＯＭ３は１つの診断用コア１２で診断していたが、本実施の形態では、制御用コア１１ａ〜１１ｎと診断用コア１２ａ〜１２ｎを同数用意し、ＲＯＭ３とコード領域２１を領域ａから領域ｎのｎ個に分割し、診断対象領域を診断用コア１２ａ〜１２ｎに割り振ればＲＯＭ３の診断時間とコード領域２１の診断時間は実施の形態１と比較して１／ｎに短縮することができる。
【００３３】
データ領域Ａ及びデータ領域Ｂもｎ個（領域Ａａ〜Ａｎ、領域Ｂａ〜Ｂｎ）に分割し、制御用コア１１ａ〜１１ｎで使用する領域、診断用コア１２ａ〜１２ｎで診断する対象を割り振り、セレクター４ａ〜４ｎを用意すれば、データ領域Ａ及びデータ領域Ｂを、実施の形態１同様、排他的に制御演算用途及び診断対象として使用することが可能となり、かつデータ領域Ａ及びデータ領域Ｂの診断時間を１／ｎに短縮することが可能となる。
【００３４】
これにより、診断時間が、実施の形態１と比較して１／ｎになるため、故障の検出サイクルが早くなり、更に診断の信頼性を向上することができる。
【００３５】
実施の形態３．
実施の形態２では診断対象の領域を診断用コアの数だけ分割し、診断による故障検出サイクルの高速化を行っていたが、複数の診断用コアが診断対象の同一領域を診断し、一つでも異常を検出したコアがある場合、異常と判断し、予め定められたデフォルト値に置換する等のフェールセーフな診断を行う診断方式がある。
【００３６】
そのような場合のマルチコアプロセッサ１ａの構成概要図を図５に示す。また、セレクター４の構成を図６に示す構成に拡張することによって対応可能となる。
図６で、コア間診断制御部４３はリードモディファイライトのレジスタで、データ領域Ａまたはデータ領域ＢのWrite/Read/Compareによる診断を、複数の診断用コア間で排他的に実施するために設け、診断完了数４４は１サイクルのデータ領域診断を完了したコアの数を記録する。
【００３７】
次に実施の形態３における診断処理部１２１ａ〜１２１ｎの動作を図７に示すフローチャートを用いて説明する。
診断処理部１２１ａ〜１２１ｎはＲＯＭ領域のＣＲＣによるＲＯＭ診断を行い（ステップＳ３０１）、コード領域２１のＣＲＣによるコード領域診断（ステップＳ３０２）を行う。
【００３８】
複数の診断用コア内の診断処理部１２１ａ〜１２１ｎは、続けてデータ領域Ａまたはデータ領域Ｂの診断を行うが、この際、それぞれの診断処理部との排他制御を行うため、コア間診断制御部４３を読み出す（ステップＳ３０３）。このコア間診断制御部４３により、複数の診断用コアのアクセス権の制御を行う。アクセス権の取れた診断用コア内の診断処理部は、実施の形態１で説明したのと同様に、診断面４１で指定されたデータ領域（データ領域Ａまたはデータ領域Ｂ）のみをWrite/Read/Compareによりデータ領域診断を行う（ステップＳ３０５）。ステップＳ３０３でアクセス権を取れなかった診断用コア内の診断処理部は、アクセス権が取れるまでコア間診断制御部４３を読み出し続ける（ステップＳ３０４）。
【００３９】
診断処理部１２１ａ〜１２１ｎは、ステップＳ３０５のデータ領域(診断面)の診断が完了したら、コア間診断制御部４３をクリアすることによってデータ領域Ａまたはデータ領域Ｂの診断面のアクセス権を解放し（ステップＳ３０６）、診断完了数をインクリメントする（ステップＳ３０７）。
【００４０】
診断処理部１２１ａ〜１２１ｎは、セレクター４内の診断完了数４４が診断用コアの数と同数になるまで待ち続け（ステップＳ３０８）、ステップＳ３０７の他の診断処理部のインクリメント処理によって診断完了数４４が診断用コアと同数になった場合、同数になった際の診断処理部が、セレクター４の診断完了数４４をクリアすると共に（ステップＳ３０９）、診断指示部４２を「STOP」にする（ステップＳ３１０）。
【００４１】
診断処理部１２１ａ〜１２１ｎは、各々の診断処理が完了した後、診断指示部４２を確認し、診断指示部４２が「RUN」となっていれば、再度ステップＳ３０１に戻って診断を再開し、「STOP」となっていれば「RUN」となるまで診断指示部４２を監視し続ける（ステップＳ３１１）。
【００４２】
このように図６のようなセレクター４を用いて制御演算用のデータ領域と診断処理が診断対象としているデータ領域を排他的に使用することによってコア間におけるデータ領域の干渉を防止し、かつ、すべての診断用コアが主記憶部２の全域を診断できるようになるため、診断の信頼性を高くすることができる。
【００４３】
実施の形態４．
実施の形態２では、制御用コア１１ａ〜１１ｎと診断用コア１２ａ〜１２ｎは予め同数ずつに割り当てているが、図８に示す通り、マルチコアプロセッサ１ａの一つのコアを負荷監視用コア１６として割り当てて、その負荷監視用コア１６の負荷監視処理部１６１で制御用コアの演算負荷を監視し、負荷が一定値を超えて高くなる状態が持続した場合、診断用コア１２ａ〜１２ｎの一部を制御用コアに割り当て、動的にコアの割り当てを変えることにより、演算負荷を均等にすることができる。
【００４４】
本願は、様々な例示的な実施の形態及び実施例が記載されているが、１つ、または複数の実施の形態に記載された様々な特徴、態様、及び機能は特定の実施の形態の適用に限られるのではなく、単独で、または様々な組み合わせで実施の形態に適用可能である。
従って、例示されていない無数の変形例が、本願明細書に開示される技術の範囲内において想定される。例えば、少なくとも１つの構成要素を変形する場合、追加する場合または省略する場合、さらには、少なくとも１つの構成要素を抽出し、他の実施の形態の構成要素と組み合わせる場合が含まれるものとする。
【符号の説明】
【００４５】
１：デュアルコアプロセッサ、１ａ：マルチコアプロセッサ、２：主記憶部、３：ＲＯＭ、４、４ａ〜４ｎ：セレクター、１１、１１ａ〜１１ｎ：制御用コア、１２、１２ａ〜１２ｎ：診断用コア、１３：ＣＰＵ内部バス、１４：メモリコントローラ、１５：ローカルバスコントローラ、１６：負荷監視用コア、１１１：制御演算処理部、１２１、１２１ａ〜１２１ｎ：診断処理部、１６１：負荷監視処理部
【図１】
2020030507.tif 000003
【図２】
2020030507.tif 000004
【図３Ａ】
2020030507.tif 000005
【図３Ｂ】
2020030507.tif 000006
【図４】
2020030507.tif 000007
【図５】
2020030507.tif 000008
【図６】
2020030507.tif 000009
【図７】
2020030507.tif 000010
【図８】
2020030507.tif 000011