(57)【要約】【課題】標準制御を行う演算部とセーフティ制御を行う演算部とが共存する場合であっても安全を担保することができる制御装置を提供する。【解決手段】制御装置１００は、駆動装置４３０に関してセーフティ制御を実行する第１演算部１０１と、駆動装置４３０に関して標準制御を実行する第２演算部１０２と、第１演算部１０１および第２演算部１０２のいずれからもアクセス可能であって、セーフティ制御に係るデータを記憶する第１記憶領域１０３１と、標準制御に係るデータを記憶する第２記憶領域１０３２とを含む記憶部１０３とを備え、第１演算部１０１は、第１記憶領域１０３１および第２記憶領域１０３２のいずれにもアクセス可能である一方で、第２演算部１０２は、第２記憶領域１０３２にアクセス可能であるのに対して第１記憶領域１０３１についてはアクセス制限されている。【選択図】図１
2020135046.tif 000002
【特許請求の範囲】
【請求項１】
駆動装置を制御する制御装置であって、
前記駆動装置に関してセーフティ制御を実行する第１演算部と、
前記駆動装置に関して標準制御を実行する第２演算部と、
前記第１演算部および前記第２演算部のいずれからもアクセス可能であって、前記セーフティ制御に係るデータを記憶する第１記憶領域と、前記標準制御に係るデータを記憶する第２記憶領域とを含む記憶部とを備え、
前記第１演算部は、前記第１記憶領域および前記第２記憶領域のいずれにもアクセス可能である一方で、
前記第２演算部は、前記第２記憶領域にアクセス可能であるのに対して前記第１記憶領域についてはアクセス制限されている、制御装置。
【請求項２】
複数のマイクロコントローラユニット（ＭＣＵ）を備え、
前記第１演算部は、前記セーフティ制御を実行するプロセッサコアであり、
前記第２演算部は、前記標準制御を実行するプロセッサコアであり、
前記複数のマイクロコントローラユニットのそれぞれは、前記セーフティ制御を実行するプロセッサコアを含み、
前記複数のマイクロコントローラユニットの少なくともいずれか一方は、前記標準制御を実行するプロセッサコアを含む、請求項１に記載の制御装置。
【請求項３】
前記複数のマイクロコントローラユニットのそれぞれに含まれる前記セーフティ制御を実行するプロセッサコア間においては、相互監視が行われる、請求項２に記載の制御装置。
【請求項４】
マイクロコントローラユニット（ＭＣＵ）を備え、
前記第１演算部は、前記セーフティ制御を実行するプロセッサコアであり、
前記第２演算部は、前記標準制御を実行するプロセッサコアであり、
前記マイクロコントローラユニットは、前記セーフティ制御を実行するプロセッサコアを複数含むとともに、前記標準制御を実行するプロセッサコアを少なくとも１つ以上含む、請求項１に記載の制御装置。
【請求項５】
前記記憶部のメモリアドレスに対するアクセスの許可および禁止を規定するデータテーブルを備え、
前記第１演算部は、前記データテーブルに基づき、前記第１記憶領域および前記第２記憶領域のいずれのメモリアドレスにもアクセス可能である一方で、
前記第２演算部は、前記第２記憶領域のメモリアドレスにアクセス可能であるのに対して前記第１記憶領域のメモリアドレスについてはアクセス制限されている、請求項１〜請求項４のいずれか１項に記載の制御装置。
【請求項６】
前記第１演算部は、所定の命令に基づいて、前記第１記憶領域および前記第２記憶領域のいずれにもアクセス可能である一方で、
前記第２演算部は、前記所定の命令に基づいて、前記第２記憶領域にアクセス可能であるのに対して前記第１記憶領域についてはアクセス制限されている、請求項１〜請求項４のいずれか１項に記載の制御装置。
【請求項７】
前記記憶部に対するアクセスの許可および禁止を規定するモードとして、第１モードと、当該第１モードよりもアクセスが制限されている第２モードとが設けられており、
前記第２演算部は、前記モードが第１モードおよび前記第２モードのいずれであるかに関わらず、前記第１記憶領域についてはアクセス制限されている、請求項６に記載の制御装置。
【請求項８】
前記第１演算部は、前記セーフティ制御を実行するプロセッサコアであり、
前記第２演算部は、前記標準制御を実行するプロセッサコアであり、
前記標準制御を実行するプロセッサコアおよび前記セーフティ制御を実行するプロセッサコアを含むプロセッサを補助するコプロセッサとして、当該プロセッサによる前記第１記憶領域および前記第２記憶領域に対するアクセスを監視する監視プロセッサをさらに備え、
前記第２演算部は、前記監視プロセッサによって、前記第１記憶領域に対してアクセス制限されている、請求項１〜請求項４のいずれか１項に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御装置に関し、より特定的には駆動装置を制御する制御装置に関する。
【背景技術】
【０００２】
近年、様々な生産現場において、設備や機械を安全に使用するために、駆動装置に関して標準的な制御を行う演算部の他に、安全を担保する観点から駆動装置に関してセーフティな制御を行う演算部を備える制御装置が知られている。
【０００３】
たとえば、国際公開第２０１５／１４５５６２号（特許文献１）においては、駆動装置に関する駆動制御を行う駆動ＣＰＵ（Central Processing Unit）と、駆動装置に関する安全制御を行う安全ＣＰＵとの両方を備えるコントローラが開示されている。また、特許文献１においては、駆動ＣＰＵと安全ＣＰＵとをデュアルコアプロセッサで実現してもよいことも開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】国際公開第２０１５／１４５５６２号
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１に開示されたコントローラのように、駆動ＣＰＵと安全ＣＰＵとをデュアルコアプロセッサで実現することができれば、装置の省スペース化および低コスト化を図ることが可能である。しかしながら、標準制御を行う演算部と、セーフティ制御を行う演算部とが共存した場合、特にセーフティ制御によって用いられるデータを保護する観点から安全を担保するための工夫が必要となるが、特許文献１に記載のコントローラにおいては何ら考慮されていなかった。
【０００６】
本発明は、上述したような課題を解決することを一つの目的とし、標準制御を行う演算部とセーフティ制御を行う演算部とが共存する場合であっても安全を担保することができる制御装置を提供する。
【課題を解決するための手段】
【０００７】
本開示の一例に従えば、駆動装置を制御する制御装置が提供される。制御装置は、駆動装置に関してセーフティ制御を実行する第１演算部と、駆動装置に関して標準制御を実行する第２演算部と、第１演算部および第２演算部のいずれからもアクセス可能であって、セーフティ制御に係るデータを記憶する第１記憶領域と、標準制御に係るデータを記憶する第２記憶領域とを含む記憶部とを備える。第１演算部は、第１記憶領域および第２記憶領域のいずれにもアクセス可能である一方で、第２演算部は、第２記憶領域にアクセス可能であるのに対して第１記憶領域についてはアクセス制限されている。
【０００８】
この開示によれば、セーフティ制御を実行する第１演算部と標準制御を実行する第２演算部とが共存する場合であっても、第２演算部は、セーフティ制御に係るデータを記憶する第１記憶領域についてはアクセス制限されているため、標準制御を実行する第２演算部によってセーフティ制御に影響を与えることがなく、安全を担保することができる。
【０００９】
上述の開示において、制御装置は、複数のマイクロコントローラユニット（ＭＣＵ）を備える。第１演算部は、セーフティ制御を実行するプロセッサコアであり、第２演算部は、標準制御を実行するプロセッサコアである。複数のマイクロコントローラユニットのそれぞれは、セーフティ制御を実行するプロセッサコアを含み、複数のマイクロコントローラユニットの少なくともいずれか一方は、標準制御を実行するプロセッサコアを含む。
【００１０】
この開示によれば、単一のマイクロコントローラユニット内にセーフティ制御を実行するプロセッサコアと標準制御を実行するプロセッサコアとを共存させることで、装置の省スペース化および低コスト化を図ることができる。
【００１１】
上述の開示において、複数のマイクロコントローラユニットのそれぞれに含まれるセーフティ制御を実行するプロセッサコア間においては、相互監視が行われる。
【００１２】
この開示によれば、セーフティ制御を実行する複数のプロセッサコア間において相互監視が行われることで、より安全を担保することができる。
【００１３】
上述の開示において、制御装置は、マイクロコントローラユニット（ＭＣＵ）を備える。第１演算部は、セーフティ制御を実行するプロセッサコアであり、第２演算部は、標準制御を実行するプロセッサコアである。マイクロコントローラユニットは、セーフティ制御を実行するプロセッサコアを複数含むとともに、標準制御を実行するプロセッサコアを少なくとも１つ以上含む。
【００１４】
この開示によれば、単一のマイクロコントローラユニット内にセーフティ制御を実行するプロセッサコアと標準制御を実行するプロセッサコアとを共存させることで、装置の省スペース化および低コスト化を図ることができる。
【００１５】
上述の開示において、制御装置は、記憶部のメモリアドレスに対するアクセスの許可および禁止を規定するデータテーブルを備える。第１演算部は、データテーブルに基づき、第１記憶領域および第２記憶領域のいずれのメモリアドレスにもアクセス可能である一方で、第２演算部は、第２記憶領域のメモリアドレスにアクセス可能であるのに対して第１記憶領域のメモリアドレスについてはアクセス制限されている。
【００１６】
この開示によれば、記憶部のメモリアドレスに対するアクセスの許可および禁止を規定するデータテーブルに基づき、セーフティ制御に係るデータを記憶する第１記憶領域に対する第２演算部によるアクセスを制限することができる。
【００１７】
上述の開示において、第１演算部は、所定の命令に基づいて、第１記憶領域および第２記憶領域のいずれにもアクセス可能である一方で、第２演算部は、所定の命令に基づいて、第２記憶領域にアクセス可能であるのに対して第１記憶領域についてはアクセス制限されている。
【００１８】
この開示によれば、第１演算部が所定の命令に基づいてアクセスした場合と異なり、第２演算部が所定の命令に基づいてアクセスした場合には、セーフティ制御に係るデータを記憶する第１記憶領域に対する第２演算部によるアクセスを制限することができる。
【００１９】
上述の開示において、記憶部に対するアクセスの許可および禁止を規定するモードとして、第１モードと、当該第１モードよりもアクセスが制限されている第２モードとが設けられている。第２演算部は、モードが第１モードおよび第２モードのいずれであるかに関わらず、第１記憶領域についてはアクセス制限されている。
【００２０】
この開示によれば、記憶部に対するアクセスの許可および禁止を規定するモードが第１モード、および当該第１モードよりもアクセスが制限されている第２モードのいずれであるかに関わらず、セーフティ制御に係るデータを記憶する第１記憶領域に対するアクセスを制限することができる。
【００２１】
上述の開示において、第１演算部は、セーフティ制御を実行するプロセッサコアであり、第２演算部は、標準制御を実行するプロセッサコアである。制御装置は、標準制御を実行するプロセッサコアおよびセーフティ制御を実行するプロセッサコアを含むプロセッサを補助するコプロセッサとして、当該プロセッサによる第１記憶領域および第２記憶領域に対するアクセスを監視する監視プロセッサをさらに備える。第２演算部は、監視プロセッサによって、第１記憶領域に対してアクセス制限されている。
【００２２】
この開示によれば、第１演算部および第２演算部を含むプロセッサによる第１記憶領域および第２記憶領域に対するアクセスを監視する監視プロセッサによって、セーフティ制御に係るデータを記憶する第１記憶領域に対する第２演算部によるアクセスを制限することができる。
【図面の簡単な説明】
【００２３】
【図１】本実施の形態に係る制御装置の適用例を示す模式図である。
【図２】第１実施形態に係る制御装置のハードウェア構成例を示す模式図である。
【図３】第１実施形態に係る制御装置におけるアクセス制限方法の第１の例を説明するための模式図である。
【図４】第１実施形態に係る制御装置におけるアクセス制限方法の第１の例を説明するための模式図である。
【図５】第１実施形態に係る制御装置におけるアクセス制限方法の第２の例を説明するための模式図である。
【図６】第１実施形態に係る制御装置におけるアクセス制限方法の第２の例を説明するための模式図である。
【図７】第１実施形態に係る制御装置におけるアクセス制限方法の第３の例を説明するための模式図である。
【図８】第２実施形態に係る制御装置のハードウェア構成例を示す模式図である。
【図９】第２実施形態に係る制御装置におけるアクセス制限方法の第１の例を説明するための模式図である。
【図１０】第２実施形態に係る制御装置におけるアクセス制限方法の第２の例を説明するための模式図である。
【図１１】第２実施形態に係る制御装置におけるアクセス制限方法の第３の例を説明するための模式図である。
【発明を実施するための形態】
【００２４】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【００２５】
［Ａ．適用例］
本発明が適用される場面の一例について説明する。
【００２６】
図１は、本実施の形態に係る制御装置１００の適用例を示す模式図である。本実施の形態に係る制御システム１は、たとえば、ＩＥＣ  ６１５０８などに規定されたセーフティ機能を提供する。制御システム１は、主に、制御装置１００と、セーフティデバイス３００と、駆動装置４３０とを備える。
【００２７】
制御装置１００は、典型的には、プログラマブルコントローラ（Programmable Logic Controller：ＰＬＣ）などで構成され、制御対象から取得された入力データに関して予め定められたユーザプログラムを実行し、ユーザプログラムの実行によって算出される出力データに応じて制御対象に指令を与える。図１に示す例では、制御対象には、駆動装置４３０と、駆動装置４３０を駆動するドライバ４２０とが含まれる。
【００２８】
たとえば、制御装置１００は、所定の駆動条件が成立したときに、駆動装置４３０を制御するための標準指令をドライバ４２０に出力することで、駆動装置４３０を駆動させたり停止させたりする。また、制御装置１００は、駆動装置４３０からのフィードバック信号などに基づいて、駆動装置４３０の位置や速度などを制御する。なお、駆動装置４３０は、ドライバ４２０によって駆動するサーボモータを想定するが、サーボモータに限らず、他の種類の駆動装置であってもよい。本実施の形態においては、このような制御装置１００による駆動装置４３０およびドライバ４２０に対する制御を「標準制御」とも称する。
【００２９】
制御装置１００は、上述した標準制御に加えて、制御システム１における作業者の安全を担保するための制御を行う。
【００３０】
たとえば、制御装置１００は、セーフティデバイス３００（非常停止スイッチ、セーフティドアスイッチ、セーフティライトカーテンなど）からのセーフティ入力を受け付けたときに、セーフティ指令をセーフティリレー４１０に出力する。セーフティリレー４１０は、ドライバ４２０に対する電力供給ライン上に配置されており、制御装置１００からのセーフティ指令に基づいて、電力供給を遮断するための制御を行う。これにより、ドライバ４２０に対する電力供給が遮断されるため、駆動装置４３０が停止する。このような制御装置１００によるセーフティリレー４１０を介した駆動装置４３０およびドライバ４２０に対する制御を「セーフティ制御」とも称する。なお、制御装置１００は、セーフティ制御として、駆動装置４３０に対する電力を調整することで、駆動装置４３０の位置や速度などを制御してもよい。
【００３１】
制御装置１００が実行する標準制御およびセーフティ制御のそれぞれに係るユーザプログラムは、制御装置１００と通信可能に接続されたサポート装置５００から制御装置１００に提供される。
【００３２】
制御装置１００は、駆動装置４３０に関して上述したセーフティ制御を実行する第１演算部１０１と、駆動装置４３０に関して上述した標準制御を実行する第２演算部１０２とを備える。さらに、制御装置１００は、第１演算部１０１および第２演算部１０２のいずれからもアクセス可能であって、セーフティ制御に係るデータを記憶する第１記憶領域１０３１と、標準制御に係るデータを記憶する第２記憶領域１０３２とを含む記憶部１０３を備える。
【００３３】
「第１演算部」および「第２演算部」は、所定のプロセッサに含まれるプロセッサコアであってもよいし、プロセッサあるいはＣＰＵそのものであってもよい。また、「第１演算部」および「第２演算部」は、その両方が単一のプロセッサに含まれるプロセッサコアであってもよいし、複数のプロセッサのそれぞれに含まれるプロセッサコアであってもよい。
【００３４】
本明細書において、「標準制御」および「セーフティ制御」の用語を対比的に用いる。「標準制御」は、予め定められた要求仕様に沿って、駆動装置４３０などの制御対象を制御するための処理の総称である。一方、「セーフティ制御」は、制御システム１における設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。「セーフティ制御」は、ＩＥＣ  ６１５０８などに規定されたセーフティ機能を実現するための要件を満たすように設計される。
【００３５】
このように構成された制御装置１００において、第１演算部１０１は、セーフティ制御に係るデータを記憶する第１記憶領域１０３１、および標準制御に係るデータを記憶する第２記憶領域１０３２のいずれにもアクセス可能であり、これらの記憶領域にアクセスすることで、セーフティ制御を実行する。
【００３６】
ここで、上述したように、セーフティ制御はＩＥＣ  ６１５０８などに規定されており、制御装置１００のメーカ側で予めセーフティ制御に係るプログラムやデータが設計されている。このため、標準制御に係るプログラムやデータに基づき、第２演算部１０２によって第１記憶領域１０３１にアクセスされてしまうと、安全を担保することができないおそれがある。そこで、本実施の形態に係る制御装置１００においては、第２演算部１０２は、標準制御に係るデータを記憶する第２記憶領域１０３２についてはアクセス可能であるのに対して、セーフティ制御に係るデータを記憶する第１記憶領域１０３１についてはアクセス制限されている。たとえば、制御装置１００においては、第２演算部１０２のアクセス先が第１記憶領域１０３１である場合、例外処理が行われることで、第２演算部１０２による第１記憶領域１０３１に対するアクセスが制限される。
【００３７】
これにより、セーフティ制御を実行する第１演算部１０１と標準制御を実行する第２演算部１０２とが共存する場合であっても、第２演算部１０２は、セーフティ制御に係るデータを記憶する第１記憶領域１０３１についてはアクセス制限されているため、標準制御を実行する第２演算部１０２によって第１記憶領域１０３１に格納されたセーフティ制御に係るデータに影響を与えることがなく、安全を担保すことができる。
【００３８】
［Ｂ．第１実施形態］
第１実施形態に係る制御装置１００について説明する。
【００３９】
＜ａ１．制御装置のハードウェア構成例＞
図２は、第１実施形態に係る制御装置１００のハードウェア構成例を示す模式図である。図２に示すように、制御装置１００は、複数のマイクロコントローラユニット（Microcontroller Unit：ＭＣＵ）と、当該複数のＭＣＵのそれぞれに対応する複数のＲＡＭ（Random access memory）とを備える。本実施の形態においては、制御装置１００は、ＭＣＵ１１０およびＭＣＵ１２０と、ＭＣＵ１１０に対応するＲＡＭ１１５と、ＭＣＵ１２０に対応するＲＡＭ１２５とを備える。なお、ＭＣＵおよびＲＡＭは、２つに限らず、３つ以上設けられてもよい。
【００４０】
また、制御装置１００は、ストレージ１３０と、ＵＳＢコントローラ１４０と、メモリカードインターフェイス１５０と、ローカルバスインターフェイス１６０とを備える。これらのコンポーネントは、ブリッジ１０５３を介してプロセッサバス１０５１，１０５２に接続されている。ＭＣＵ１１０は、プロセッサバス１０５１に接続され、ＭＣＵ１２０は、プロセッサバス１０５２に接続されている。
【００４１】
ストレージ１３０は、要求されるセーフティ機能に応じてユーザによって作成されたセーフティ制御に係るセーフティプログラム１３２、および制御対象に応じてユーザによって作成された標準制御に係る標準プログラム１３４など、各種のプログラムやデータを格納する。
【００４２】
ＵＳＢコントローラ１４０は、ＵＳＢ接続を介して、サポート装置５００などとの間でデータを遣り取りする。
【００４３】
メモリカードインターフェイス１５０は、受け付けたメモリカードに対してデータを書き込み、メモリカードから各種データ（ログやトレースデータなど）を読み出すように構成されている。
【００４４】
ローカルバスインターフェイス１６０は、ローカルバスを介して、制御装置１００に接続されたセーフティリレー４１０、ドライバ４２０、およびセーフティデバイス３００などの任意のデバイスとの間でデータを遣り取りする。
【００４５】
ＭＣＵ１１０は、プロセッサ１１６と、セーフティＲＯＭ（Read Only Memory）１１２と、標準ＲＯＭ１１４とを含む。
【００４６】
プロセッサ１１６は、マルチコアプロセッサであり、セーフティコア１１６２と、標準コア１１６４とを含む。セーフティコア１１６２は、「第１演算部」の一例であり、セーフティ制御に係る制御演算を実行する。標準コア１１６４は、「第２演算部」の一例であり、標準制御に係る制御演算を実行する。このように、単一のプロセッサ１１６内において、セーフティ制御に係るセーフティコア１１６２と、標準制御に係る標準コア１１６４とを共存させることで、装置の省スペース化および低コスト化を図ることができる。
【００４７】
セーフティＲＯＭ１１２は、セーフティ制御に係る基本的な機能を実現するためのセーフティシステムプログラム１１２２を格納し、セーフティコア１１６２に接続されている。
【００４８】
標準ＲＯＭ１１４は、標準制御に係る基本的な機能を実現するための標準システムプログラム１１４２を格納し、標準コア１１６４に接続されている。
【００４９】
ＭＣＵ１２０は、プロセッサ１２６と、セーフティＲＯＭ１２２と、標準ＲＯＭ１２４とを含む。
【００５０】
プロセッサ１２６は、マルチコアプロセッサであり、セーフティコア１２６２と、標準コア１２６４とを含む。セーフティコア１２６２は、「第１演算部」の一例であり、セーフティ制御に係る制御演算を実行する。標準コア１２６４は、「第２演算部」の一例であり、標準制御に係る制御演算を実行する。
【００５１】
このように、単一のプロセッサ１２６内において、セーフティ制御に係るセーフティコア１２６２と、標準制御に係る標準コア１２６４とを共存させることで、セーフティコアと標準コアとを別々のプロセッサにそれぞれ含めるよりも、装置の省スペース化および低コスト化を図ることができる。
【００５２】
セーフティＲＯＭ１２２は、セーフティ制御に係る基本的な機能を実現するためのセーフティシステムプログラム１２２２を格納し、セーフティコア１２６２に接続されている。
【００５３】
標準ＲＯＭ１２４は、標準制御に係る基本的な機能を実現するための標準システムプログラム１２４２を格納し、標準コア１２６４に接続されている。
【００５４】
プロセッサ１１６と、プロセッサ１２６との間においては、クロスコミュニケーションによってその動作や状態が相互に監視されるように制御装置１００が構成されている。これより、プロセッサ１１６およびプロセッサ１２６のうちのいずれかに異常が生じた場合でも、その異常が検出される。
【００５５】
たとえば、プロセッサ１１６およびプロセッサ１２６のそれぞれは、プログラムを並列的に実行する。また、プロセッサ１１６およびプロセッサ１２６のそれぞれは、図示しないウォッチドッグタイマを有している。プロセッサ１１６は、自身が有するウォッチドッグタイマを定期的にリセットし、プロセッサ１２６も、自身が有するウォッチドッグタイマを定期的にリセットする。プロセッサ１１６は、プロセッサ１２６によってウォッチドッグタイマが定期的にリセットされているかを監視し、プロセッサ１２６は、プロセッサ１１６によってウォッチドッグタイマが定期的にリセットされているかを監視することで、プロセッサ間で異常の有無を相互監視するようになっている。
【００５６】
また、たとえば、プロセッサ１１６およびプロセッサ１２６のそれぞれは、プログラムを並列的に実行する際に、そのプログラムの実行に係る制御演算の計算結果を相互に確認し合うことで、プロセッサ間で異常の有無を相互監視するようになっている。すなわち、一方のプロセッサに何らかの異常が生じて制御演算の計算結果が不正確となると、他方のプロセッサにおける制御演算の計算結果と一致しなくなるため、他方のプロセッサは、計算結果が一致しないことを検出することで、一方のプロセッサに異常が生じたことを検出することができる。
【００５７】
このように、セーフティ制御を実行する複数のセーフティコア１１６２およびセーフティコア１２６２間において相互監視が行われることで、より安全を担保することができる。
【００５８】
制御装置１００は、異常が生じたプロセッサについては、電力供給を遮断するなどの処理を行うことで、異常が生じた状態でセーフティ制御が実行されることを防止する。このように、独立して設けられた複数のプロセッサ１１６，１２６は、動作や状態を相互に監視することで、異常の発生を検出することができる。特に、セーフティコア１１６２，１２６２は、安全を担保するためのセーフティ制御を実行するものであるため、相互に監視することで、より安全レベルを高めることができる。
【００５９】
ＲＡＭ１１５は、「記憶部」の一例である。ＲＡＭ１１５の記憶領域には、セーフティ記憶領域１１５２と、標準記憶領域１１５４とが含まれる。セーフティ記憶領域１１５２は、「第１記憶領域」の一例であり、セーフティ制御を実行するためのデータを格納する。標準記憶領域１１５４は、「第２記憶領域」の一例であり、標準制御を実行するためのデータを格納する。
【００６０】
プロセッサ１１６のセーフティコア１１６２は、セーフティＲＯＭ１１２に格納されたセーフティシステムプログラム１１２２を読み出し、ＲＡＭ１１５内の記憶領域に展開して実行することで、セーフティ制御を実現する。同様に、プロセッサ１１６の標準コア１１６４は、標準ＲＯＭ１１４に格納された標準システムプログラム１１４２を読み出し、ＲＡＭ１１５内の記憶領域に展開して実行することで、標準制御を実現する。
【００６１】
このように、プロセッサ１１６のセーフティコア１１６２および標準コア１１６４は、ＲＡＭ１１５にアクセスすることでセーフティ制御や標準制御を実行するが、セーフティコア１１６２から標準記憶領域１１５４に対してはアクセスが許可されている一方で、安全を担保する観点から、標準コア１１６４からセーフティ記憶領域１１５２に対してはアクセスが制限されている。たとえば、制御装置１００においては、標準コア１１６４のアクセス先がセーフティ記憶領域１１５２である場合、例外処理が行われることで、標準コア１１６４によるセーフティ記憶領域１１５２に対するアクセスが制限される。
【００６２】
これにより、標準コア１１６４によるアクセスによってセーフティ記憶領域１１５２に格納されたセーフティ制御に係るデータに何らかの異常が生じることを防止することができ、安全を担保することができる。
【００６３】
ＲＡＭ１２５は、「記憶部」の一例である。ＲＡＭ１２５の記憶領域には、セーフティ記憶領域１２５２と、標準記憶領域１２５４とが含まれる。セーフティ記憶領域１２５２は、「第１記憶領域」の一例であり、セーフティ制御を実行するためのデータが格納される。標準記憶領域１２５４は、「第２記憶領域」の一例であり、標準制御を実行するためのデータが格納される。
【００６４】
プロセッサ１２６のセーフティコア１２６２は、セーフティＲＯＭ１２２に格納されたセーフティシステムプログラム１２２２を読み出し、ＲＡＭ１２５内の記憶領域に展開して実行することで、セーフティ制御を実現する。同様に、プロセッサ１２６の標準コア１２６４は、標準ＲＯＭ１２４に格納された標準システムプログラム１２４２を読み出し、ＲＡＭ１２５内の記憶領域に展開して実行することで、標準制御を実現する。
【００６５】
このように、プロセッサ１２６のセーフティコア１２６２および標準コア１２６４は、ＲＡＭ１２５にアクセスすることでセーフティ制御や標準制御を実行するが、セーフティコア１２６２から標準記憶領域１２５４に対してはアクセスが許可されている一方で、安全を担保する観点から、標準コア１２６４からセーフティ記憶領域１２５２に対してはアクセスが制限されている。たとえば、制御装置１００においては、標準コア１２６４のアクセス先がセーフティ記憶領域１２５２である場合、例外処理が行われることで、標準コア１２６４によるセーフティ記憶領域１２５２に対するアクセスが制限される。
【００６６】
これにより、標準コア１２６４によるアクセスによってセーフティ記憶領域１２５２に格納されたセーフティ制御に係るデータに何らかの異常が生じることを防止することができ、安全を担保することができる。
【００６７】
＜ｂ１．制御装置におけるアクセス制限方法の第１の例＞
図３および図４は、第１実施形態に係る制御装置１００ａにおけるアクセス制限方法の第１の例を説明するための模式図である。なお、図３に示す制御装置１００ａのハードウェア構成例においては、図２に示す制御装置１００のハードウェア構成例と同じ構成および機能を有する部分については同じ符号を付加し、その説明を省略する。
【００６８】
図３に示すように、制御装置１００ａのＭＣＵ１１０ａは、プロセッサ１１６に接続されたＭＭＵ（Memory Management Unit）１１７を含む。ＭＭＵ１１７は、メモリ保護機能を有しており、プロセッサ１１６内のコアが自身に割り当てられていない記憶領域にアクセスすることを防ぐ。具体的には、ＭＭＵ１１７においては、図４に示す変換テーブル６００が起動時に設定され、制御装置１００ａは、この変換テーブル６００を利用して標準コア１１６４によるセーフティ記憶領域１１５２に対するアクセスを制限する。
【００６９】
たとえば、標準ＲＯＭ１１４には、標準コア１１６４によるセーフティ記憶領域１１５２に対するアクセスを制限するための制限データ１１４４が含まれる。ＭＣＵ１１０ａの起動時において、この制限データ１１４４がＭＭＵ１１７に設定されることで、標準コア１１６４に対応する変換テーブル６００が構築される。なお、図示は省略するが、セーフティＲＯＭ１１２においても変換テーブル６００を構築するためのデータが格納されており、当該データがＭＣＵ１１０ａの起動時にＭＭＵ１１７に設定されることで、セーフティコア１１６２に対応する変換テーブル６００が構築される。
【００７０】
変換テーブル６００は、「データテーブル」の一例であり、図４に示すように、セーフティコア１１６２および標準コア１１６４のいずれの種別であるかを特定するための属性情報と、ＲＡＭ１１５の物理アドレスに変換される仮想アドレスとを含む。
【００７１】
たとえば、ＲＡＭ１１５の物理アドレスは、システム用の物理アドレス範囲１（たとえば、００００〜３ＦＦＦ）と、セーフティ制御用の物理アドレス範囲２（たとえば、４０００〜４ＦＦＦ）と、標準制御用の物理アドレス範囲３（たとえば、５０００〜５ＦＦＦ）と、セーフティ制御用の物理アドレス範囲４（たとえば、６０００〜６ＦＦＦ）と、標準制御用の物理アドレス範囲５（たとえば、７０００〜７ＦＦＦ）とに分割されている。セーフティ制御用の物理アドレス範囲２および物理アドレス範囲４は、セーフティ記憶領域１１５２に対応するアドレス範囲である。標準制御用の物理アドレス範囲３および物理アドレス範囲５は、標準記憶領域１１５４に対応するアドレス範囲である。
【００７２】
変換テーブル６００の仮想アドレスは、システム分のアドレス範囲を除いており、セーフティ制御用の仮想アドレス範囲１（たとえば、００００〜０ＦＦＦ）と、標準制御用の仮想アドレス範囲２（たとえば、１０００〜１ＦＦＦ）と、セーフティ制御用の仮想アドレス範囲３（たとえば、２０００〜２ＦＦＦ）と、標準制御用の仮想アドレス範囲４（たとえば、３０００〜３ＦＦＦ）とに分割されている。仮想アドレス範囲１は物理アドレス範囲２に、仮想アドレス範囲２は物理アドレス範囲３に、仮想アドレス範囲３は物理アドレス範囲４に、仮想アドレス範囲４は物理アドレス範囲５に、それぞれ変換可能である。
【００７３】
セーフティコア１１６２および標準コア１１６４のそれぞれは、変換テーブル６００に割り当てられた仮想アドレスにアクセスすることで、ＲＡＭ１１５の物理アドレスにアクセスすることができる。
【００７４】
ここで、仮想アドレスは、セーフティコア１１６２および標準コア１１６４のそれぞれについて、アクセスの許可または禁止が設定されている。たとえば、セーフティコア１１６２は、セーフティ制御用の仮想アドレス範囲１および仮想アドレス範囲３に限らず、標準制御用の仮想アドレス範囲２についてもアクセスが許可されている。一方、標準コア１１６４は、標準制御用の仮想アドレス範囲２および仮想アドレス範囲４についてはアクセスが許可されているのに対して、セーフティ制御用の仮想アドレス範囲１および仮想アドレス範囲３についてはアクセスが禁止（制限）されている。
【００７５】
このように、ＭＭＵ１１７において設定される変換テーブル６００においては、標準コア１１６４によるセーフティ制御用の仮想アドレス範囲１および仮想アドレス範囲３に対するアクセスが制限されるため、仮想アドレス範囲１および仮想アドレス範囲３に対応するＲＡＭ１１５におけるセーフティ制御用の物理アドレス範囲２および物理アドレス範囲４（すなわち、セーフティ記憶領域１１５２）に対する標準コア１１６４によるアクセスも制限される。これにより、ＲＡＭ１１５の物理アドレスに対するアクセスの許可および禁止を規定する変換テーブル６００に基づき、セーフティ制御に係るデータを記憶するセーフティ記憶領域１１５２に対する標準コア１１６４によるアクセスを制限することができる。
【００７６】
同様に、制御装置１００ａのＭＣＵ１２０ａは、プロセッサ１２６に接続されたＭＭＵ１２７を含む。ＭＭＵ１２７は、ＭＭＵ１１７と同様に、メモリ保護機能を有しており、プロセッサ１２６内のコアが自身に割り当てられていない記憶領域にアクセスすることを防ぐ。具体的には、ＭＭＵ１２７においては、ＭＭＵ１１７と同様に、図４に示す変換テーブル６００が起動時に設定され、制御装置１００ａは、この変換テーブル６００を利用して標準コア１２６４によるセーフティ記憶領域１２５２に対するアクセスを制限する。なお、ＭＭＵ１２７の変換テーブル６００は、ＭＭＵ１１７の変換テーブル６００と同様の構成および機能を有するため、その説明を省略する。
【００７７】
このように、ＭＭＵ１２７において設定される変換テーブル６００においては、セーフティ制御用の仮想アドレス範囲１および仮想アドレス範囲３に対する標準コア１２６４によるアクセスが制限されるため、仮想アドレス範囲１および仮想アドレス範囲３に対応するＲＡＭ１２５におけるセーフティ制御用の物理アドレス範囲２および物理アドレス範囲４（すなわち、セーフティ記憶領域１２５２）に対する標準コア１２６４によるアクセスが制限されている。これにより、ＲＡＭ１２５の物理アドレスに対するアクセスの許可および禁止を規定する変換テーブル６００に基づき、セーフティ制御に係るデータを記憶するセーフティ記憶領域１２５２に対する標準コア１２６４によるアクセスを制限することができる。
【００７８】
なお、図３および図４に示すアクセス制限方法の第１の例においては、セーフティコアと標準コアとで共通の変換テーブル６００を用い、属性情報に基づきアクセスの許可または禁止を設定していたが、セーフティコア用の変換テーブル６００と標準コア用の変換テーブル６００とを設けてもよい。
【００７９】
また、図３および図４に示すアクセス制限方法の第１の例においては、ＭＭＵを採用したが、ＭＭＵと同様にメモリ保護機能を有するＭＰＵ（Memory Protection Unit）を採用してもよい。なお、ＭＰＵにおいては、仮想アドレスから物理アドレスへの変換を行わないため、物理アドレスに対応するアドレス範囲ごとに、セーフティコアおよび標準コアのそれぞれについて、アクセスの許可または禁止を設定すればよい。
【００８０】
＜ｃ１．制御装置におけるアクセス制限方法の第２の例＞
図５および図６は、第１実施形態に係る制御装置１００ｂにおけるアクセス制限方法の第２の例を説明するための模式図である。なお、図５に示す制御装置１００ｂのハードウェア構成例においては、図２に示す制御装置１００のハードウェア構成例と同じ構成および機能を有する部分については同じ符号を付加し、その説明を省略する。また、図６においては、「記憶部」の一例としてＲＡＭを例示しているが、「記憶部」に対してはＲＡＭなどの揮発性メモリに限らず、ＲＯＭなどの不揮発性メモリを適用してもよく、その他、セーフティ制御に係るデータや標準制御に係るデータを記憶する記憶領域を含むものであれば、いずれの記憶媒体を適用してもよい。
【００８１】
図５および図６に示すように、制御装置１００ｂのＭＣＵ１１０ｂは、セーフティ記憶領域１１５２に対する標準コア１１６４によるアクセスが制限されている。
【００８２】
具体的には、図６に示すように、プロセッサ１１６の状態を示すモードとして、セーフティコア１１６２および標準コア１１６４のそれぞれについて特権モードとユーザモードとが設けられている。また、ＲＡＭ１１５へのアクセス設定においても、セーフティ記憶領域１１５２および標準記憶領域１１５４のそれぞれにおいて特権モードとユーザモードとが指定されている。特権モードは「第１モード」の一例であり、ユーザモードは「第２モード」の一例である。
【００８３】
セーフティコア１１６２および標準コア１１６４のそれぞれについて、ユーザモードに設定されている場合、アプリケーション１１６２ｐ，１１６４ｐにおける所定の命令が実行されたときに、特権モードに指定されている記憶領域にはアクセスが禁止されている。つまり、ユーザモードに設定されているときには、特権モードに設定されているときよりもアクセスが制限されている。
【００８４】
たとえば、セーフティコア１１６２がユーザモードに設定されている場合、アプリケーション１１６２ｐにおける所定の命令が実行されたときに、セーフティ記憶領域１１５２および標準記憶領域１１５４のそれぞれにおいてユーザモードに指定されている記憶領域についてはアクセスが許可されているのに対して、セーフティ記憶領域１１５２および標準記憶領域１１５４のそれぞれにおいて特権モードに指定されている記憶領域についてはアクセスが禁止されている。
【００８５】
また、たとえば、標準コア１１６４がユーザモードに設定されている場合、アプリケーション１１６４ｐにおける所定の命令が実行されたときに、標準記憶領域１１５４においてユーザモードに指定されている記憶領域についてはアクセスが許可されているのに対して、標準記憶領域１１５４において特権モードに指定されている記憶領域についてはアクセスが禁止されている。
【００８６】
ここで、注目すべきは、標準コア１１６４は、特権モードおよびユーザモードのいずれに設定されているかに関わらず、セーフティ記憶領域１１５２における特権モードおよびユーザモードのいずれに指定された記憶領域に対してもアクセスが制限されている点である。たとえば、標準コア１１６４のアクセス先がセーフティ記憶領域１１５２である場合、例外処理が行われることで、標準コア１１６４によるセーフティ記憶領域１１５２に対するアクセスが制限される。
【００８７】
つまり、セーフティコア１１６２がアプリケーション１１６２ｐにおける所定の命令に基づいてＲＡＭ１１５にアクセスした場合、図６に示すようにセーフティ記憶領域１１５２および標準記憶領域１１５４のいずれにもアクセス可能である一方で、標準コア１１６４がアプリケーション１１６４ｐにおける同じ所定の命令に基づいてＲＡＭ１１５にアクセスした場合、図６に示すように標準記憶領域１１５４についてはアクセス可能である一方で、セーフティ記憶領域１１５２についてはアクセス制限される。
【００８８】
このように、セーフティコア１１６２が所定の命令に基づいてアクセスした場合と異なり、標準コア１１６４が同じ所定の命令に基づいてアクセスした場合には、セーフティ制御に係るデータを記憶するセーフティ記憶領域１１５２に対する標準コア１１６４によるアクセスを制限することができる。
【００８９】
また、ＲＡＭ１１５の記憶領域に対するアクセスの許可および禁止を規定するモードが特権モード、および当該特権モードよりもアクセスが制限されているユーザモードのいずれであるかに関わらず、セーフティ制御に係るデータを記憶するセーフティ記憶領域１１５２に対する標準コア１１６４によるアクセスを制限することができる。
【００９０】
同様に、図５および図６に示すように、制御装置１００ｂのＭＣＵ１２０ｂは、セーフティ記憶領域１２５２に対する標準コア１２６４によるアクセスが制限されている。なお、図６に示すプロセッサ１２６の状態を示すモードおよびＲＡＭ１２５へのアクセス設定は、上述したプロセッサ１１６の状態を示すモードおよびＲＡＭ１１５へのアクセス設定と同じであるため、その説明を省略する。
【００９１】
セーフティコア１２６２がアプリケーション１２６２ｐにおける所定の命令に基づいてＲＡＭ１２５にアクセスした場合、図６に示すようにセーフティ記憶領域１２５２および標準記憶領域１２５４のいずれにもアクセス可能である一方で、標準コア１２６４がアプリケーション１２６４ｐにおける同じ所定の命令に基づいてＲＡＭ１２５にアクセスした場合、図６に示すように標準記憶領域１２５４についてはアクセス可能である一方で、セーフティ記憶領域１２５２についてはアクセス制限される。たとえば、標準コア１２６４のアクセス先がセーフティ記憶領域１２５２である場合、例外処理が行われることで、セーフティ記憶領域１２５２に対する標準コア１２６４によるアクセスが制限される。
【００９２】
このように、セーフティコア１２６２が所定の命令に基づいてアクセスした場合と異なり、標準コア１２６４が同じ所定の命令に基づいてアクセスした場合には、セーフティ制御に係るデータを記憶するセーフティ記憶領域１２５２に対する標準コア１２６４によるアクセスを制限することができる。
【００９３】
また、ＲＡＭ１２５の記憶領域に対するアクセスの許可および禁止を規定するモードが特権モード、および当該特権モードよりもアクセスが制限されているユーザモードのいずれであるかに関わらず、セーフティ制御に係るデータを記憶するセーフティ記憶領域１２５２に対する標準コア１２６４によるアクセスを制限することができる。
【００９４】
＜ｄ１．制御装置におけるアクセス制限方法の第３の例＞
図７は、第１実施形態に係る制御装置１００ｃにおけるアクセス制限方法の第３の例を説明するための模式図である。なお、図７に示す制御装置１００ｃのハードウェア構成例においては、図２に示す制御装置１００のハードウェア構成例と同じ構成および機能を有する部分については同じ符号を付加し、その説明を省略する。
【００９５】
図７に示すように、制御装置１００ｃのＭＣＵ１１０ｃは、プロセッサ１１６に接続された監視プロセッサ１１９を含む。監視プロセッサ１１９は、プロセッサ１１６を補助するコプロセッサであり、ＦＰＧＡ（Field Programmable Gate Array)やＡＳＩＣ（Application Specific Integrated Circuit）などで構成される。監視プロセッサ１１９は、プロセッサ１１６に含まれるセーフティコア１１６２および標準コア１１６４のそれぞれについて、ＲＡＭ１１５の記憶領域に対するアクセスを監視する。なお、監視プロセッサ１１９は、ＭＣＵ１１０ｃの中に含まれるものに限らず、ＭＣＵ１１０ｃの外側から当該ＭＣＵ１１０ｃのプロセッサ１１６を監視するものであってもよい。
【００９６】
具体的には、監視プロセッサ１１９は、セーフティコア１１６２によるセーフティ記憶領域１１５２に対するアクセスを許可し、セーフティコア１１６２による標準記憶領域１１５４に対するアクセスを許可し、標準コア１１６４による標準記憶領域１１５４に対するアクセスを許可し、標準コア１１６４によるセーフティ記憶領域１１５２に対するアクセスを禁止する。たとえば、標準コア１１６４のアクセス先がセーフティ記憶領域１１５２であると監視プロセッサ１１９によって検出された場合、例外処理が行われることで、セーフティ記憶領域１１５２に対する標準コア１１６４によるアクセスが制限される。
【００９７】
これにより、プロセッサ１１６によるセーフティ記憶領域１１５２および標準記憶領域１１５４に対するアクセスを監視する監視プロセッサ１１９によって、標準コア１１６４によるセーフティ記憶領域１１５２に対するアクセスを制限することができる。
【００９８】
同様に、図７に示すように、制御装置１００ｃのＭＣＵ１２０ｃは、プロセッサ１２６に接続された監視プロセッサ１２９を含む。監視プロセッサ１２９は、プロセッサ１２６を補助するコプロセッサであり、ＦＰＧＡやＡＳＩＣなどで構成される。監視プロセッサ１２９は、プロセッサ１２６に含まれるセーフティコア１２６２および標準コア１２６４のそれぞれについて、ＲＡＭ１２５の記憶領域に対するアクセスを監視する。なお、監視プロセッサ１２９は、ＭＣＵ１２０ｃの中に含まれるものに限らず、ＭＣＵ１２０ｃの外側から当該ＭＣＵ１２０ｃのプロセッサ１２６を監視するものであってもよい。
【００９９】
具体的には、監視プロセッサ１２９は、セーフティコア１２６２によるセーフティ記憶領域１２５２に対するアクセスを許可し、セーフティコア１２６２による標準記憶領域１２５４に対するアクセスを許可し、標準コア１２６４による標準記憶領域１２５４に対するアクセスを許可し、標準コア１２６４によるセーフティ記憶領域１２５２に対するアクセスを禁止する。たとえば、標準コア１２６４のアクセス先がセーフティ記憶領域１２５２であると監視プロセッサ１２９によって検出された場合、例外処理が行われることで、標準コア１２６４によるセーフティ記憶領域１２５２に対するアクセスが制限される。
【０１００】
これにより、プロセッサ１２６によるセーフティ記憶領域１２５２および標準記憶領域１２５４に対するアクセスを監視する監視プロセッサ１２９によって、セーフティ記憶領域１２５２に対する標準コア１２６４によるアクセスを制限することができる。
【０１０１】
［Ｃ．第２実施形態］
第２実施形態に係る制御装置２００について説明する。
【０１０２】
＜ａ２．制御装置のハードウェア構成例＞
図８は、第２実施形態に係る制御装置２００のハードウェア構成例を示す模式図である。図２に示す第１実施形態に係る制御装置１００は、複数のＭＣＵのそれぞれにセーフティコアが含まれかつ複数のＭＣＵの少なくともいずれか一方に標準コアが含まれていたが、図８に示す第２実施形態に係る制御装置２００は、単一のＭＣＵに複数のセーフティコアが含まれかつ少なくとも１つ以上の標準コアが含まれる点で、両者が異なる。
【０１０３】
具体的には、図８に示すように、制御装置２００は、１つのＭＣＵ２１０と、ＭＣＵ２１０に対応するＲＡＭ２１５とを備える。なお、ＭＣＵおよびＲＡＭは、１つに限らず、２つ以上設けられてもよい。
【０１０４】
また、制御装置２００は、ストレージ２３０と、ＵＳＢコントローラ２４０と、メモリカードインターフェイス２５０と、ローカルバスインターフェイス２６０とを備える。これらのコンポーネントは、プロセッサバス２０５を介して接続されている。
【０１０５】
ストレージ２３０、ＵＳＢコントローラ２４０、メモリカードインターフェイス２５０、およびローカルバスインターフェイス２６０のそれぞれは、図２に示すストレージ１３０、ＵＳＢコントローラ１４０、メモリカードインターフェイス１５０、およびローカルバスインターフェイス１６０のそれぞれと同様の構成を有する。なお、ストレージ２３０は、要求されるセーフティ機能に応じてユーザによって作成されたセーフティ制御に係るセーフティプログラム２３２、および制御対象に応じてユーザによって作成された標準制御に係る標準プログラム２３４など、各種のプログラムやデータが格納される。
【０１０６】
ＭＣＵ２１０は、プロセッサ２１６と、セーフティＲＯＭ２１２と、セーフティＲＯＭ２１４と、標準ＲＯＭ２２２と、標準ＲＯＭ２２４とを含む。
【０１０７】
プロセッサ２１６は、マルチコアプロセッサであり、セーフティコア２１６２と、セーフティコア２１６４と、標準コア２２６２と、標準コア２２６４とを含む。セーフティコア２１６２およびセーフティコア２１６４のそれぞれは、「第１演算部」の一例であり、セーフティ制御に係る制御演算を実行する。標準コア２２６２および標準コア２２６４のそれぞれは、「第２演算部」の一例であり、標準制御に係る制御演算を実行する。
【０１０８】
このように、単一のプロセッサ２１６内において、セーフティ制御に係るセーフティコア２１６２およびセーフティコア２１６４と、標準制御に係る標準コア２２６２および標準コア２２６４とを共存させることで、セーフティコアと標準コアとを別々のプロセッサにそれぞれ含めるよりも、装置の省スペース化および低コスト化を図ることができる。
【０１０９】
セーフティＲＯＭ２１２は、セーフティ制御に係る基本的な機能を実現するためのセーフティシステムプログラム２１２２を格納し、セーフティコア２１６２に接続されている。
【０１１０】
セーフティＲＯＭ２１４は、セーフティ制御に係る基本的な機能を実現するためのセーフティシステムプログラム２１４２を格納し、セーフティコア２１６４に接続されている。
【０１１１】
標準ＲＯＭ２２２は、標準制御に係る基本的な機能を実現するための標準システムプログラム２２２２を格納し、標準コア２２６２に接続されている。
【０１１２】
標準ＲＯＭ２２４は、標準制御に係る基本的な機能を実現するための標準システムプログラム２２４２を格納し、標準コア２２６４に接続されている。
【０１１３】
ＲＡＭ２１５は、「記憶部」の一例である。ＲＡＭ２１５の記憶領域には、セーフティ記憶領域２１５２と、標準記憶領域２２５２とが含まれる。セーフティ記憶領域２１５２は、「第１記憶領域」の一例であり、セーフティ制御を実行するためのデータが格納される。標準記憶領域２２５２は、「第２記憶領域」の一例であり、標準制御を実行するためのデータが格納される。
【０１１４】
セーフティコア２１６２は、セーフティＲＯＭ２１２に格納されたセーフティシステムプログラム２１２２を読み出し、ＲＡＭ２１５内の記憶領域に展開して実行することで、セーフティ制御を実現する。セーフティコア２１６４は、セーフティＲＯＭ２１４に格納されたセーフティシステムプログラム２１４２を読み出し、ＲＡＭ２１５内の記憶領域に展開して実行することで、セーフティ制御を実現する。同様に、標準コア２２６２は、標準ＲＯＭ２２２に格納された標準システムプログラム２２２２を読み出し、ＲＡＭ２１５内の記憶領域に展開して実行することで、標準制御を実現する。標準コア２２６４は、標準ＲＯＭ２２４に格納された標準システムプログラム２２４２を読み出し、ＲＡＭ２１５内の記憶領域に展開して実行することで、標準制御を実現する。
【０１１５】
このように、プロセッサ２１６のセーフティコア２１６２，２１６４および標準コア２２６２，２２６４は、ＲＡＭ２１５にアクセスすることでセーフティ制御や標準制御を実行するが、セーフティコア２１６２，２１６４から標準記憶領域２２５２に対してはアクセスが許可されている一方で、安全を担保する観点から、標準コア２２６２，２２６４からセーフティ記憶領域２１５２に対してはアクセスが制限されている。たとえば、制御装置２００においては、標準コア２２６２，２２６４のアクセス先がセーフティ記憶領域２１５２である場合、例外処理が行われることで、標準コア２２６２，２２６４によるセーフティ記憶領域２１５２に対するアクセスが制限される。
【０１１６】
これにより、標準コア２２６２，２２６４によるアクセスによってセーフティ記憶領域２１５２に格納されたセーフティ制御に係るデータに何らかの異常が生じることを防止することができ、安全を担保することができる。
【０１１７】
＜ｂ２．制御装置におけるアクセス制限方法の第１の例＞
図９は、第２実施形態に係る制御装置２００ａにおけるアクセス制限方法の第１の例を説明するための模式図である。なお、図９に示す制御装置２００ａのハードウェア構成例においては、図８に示す制御装置２００のハードウェア構成例と同じ構成および機能を有する部分については同じ符号を付加し、その説明を省略する。また、図９に示す第２実施形態に係る制御装置２００ａにおけるアクセス制限方法の第１の例においては、図３および図４に示す第１実施形態に係る制御装置１００ａにおけるアクセス制限方法の第１の例と同じ構成および機能を有する部分については、その説明を省略する。
【０１１８】
図９に示すように、制御装置２００ａのＭＣＵ２１０ａは、プロセッサ２１６に接続されたＭＭＵ２１７２，２１７４，２２７２，２２７４を含む。ＭＭＵ２１７２は、セーフティコア２１６２に接続され、ＭＭＵ２１７４は、セーフティコア２１６４に接続され、ＭＭＵ２２７２は、標準コア２２６２に接続され、ＭＭＵ２２７４は、標準コア２２６４に接続されている。ＭＭＵ２１７２，２１７４，２２７２，２２７４は、図３に示すＭＭＵ１１７やＭＭＵ１２７と同様に、メモリ保護機能を有しており、プロセッサ２１６内のコアが自身に割り当てられていない記憶領域にアクセスすることを防ぐ。具体的には、ＭＭＵ２２７２，２２７４においては、図４に示す変換テーブル６００が起動時に設定され、制御装置２００ａは、この変換テーブル６００を利用して標準コア２２６２，２２６４によるセーフティ記憶領域２１５２に対するアクセスを制限する。
【０１１９】
このように、ＭＭＵ２２７２，２２７４において設定される変換テーブル６００においては、セーフティ制御用の仮想アドレス範囲に対する標準コア２２６２，２２６４によるアクセスが制限される結果、仮想アドレス範囲に対応するＲＡＭ２１５におけるセーフティ制御用の物理アドレス範囲（すなわち、セーフティ記憶領域２１５２）に対する標準コア２２６２，２２６４によるアクセスが制限されている。これにより、ＲＡＭ２１５の物理アドレスに対するアクセスの許可および禁止を規定する変換テーブル６００に基づき、セーフティ制御に係るデータを記憶するセーフティ記憶領域２１５２に対する標準コア２２６２，２２６４によるアクセスを制限することができる。
【０１２０】
＜ｃ２．制御装置におけるアクセス制限方法の第２の例＞
図１０は、第２実施形態に係る制御装置２００ｂにおけるアクセス制限方法の第２の例を説明するための模式図である。なお、図１０に示す制御装置２００ｂのハードウェア構成例においては、図８に示す制御装置２００のハードウェア構成例と同じ構成および機能を有する部分については同じ符号を付加し、その説明を省略する。また、図１０に示す第２実施形態に係る制御装置２００ｂにおけるアクセス制限方法の第２の例においては、図５および図６に示す第１実施形態に係る制御装置１００ｂにおけるアクセス制限方法の第２の例と同じ構成および機能を有する部分については、その説明を省略する。また、図１０に示す例においても、図６に示す例と同様に、「記憶部」の一例としてＲＡＭを例示しているが、「記憶部」に対してはＲＡＭなどの揮発性メモリに限らず、ＲＯＭなどの不揮発性メモリを適用してもよく、その他、セーフティ制御に係るデータや標準制御に係るデータを記憶する記憶領域を含むものであれば、いずれの記憶媒体を適用してもよい。
【０１２１】
図１０に示すように、制御装置２００ｂのＭＣＵ２１０ｂは、セーフティ記憶領域２１５２に対する標準コア２２６２，２２６４によるアクセスが制限されている。
【０１２２】
具体的には、制御装置２００ｂにおいては、図６に示すように、プロセッサ２１６の状態を示すモードとして、セーフティコア２１６２，２１６４および標準コア２２６２，２２６４のそれぞれについて特権モードとユーザモードとが設けられている。また、ＲＡＭ２１５へのアクセス設定においても、セーフティ記憶領域２１５２および標準記憶領域２２５２のそれぞれにおいて特権モードとユーザモードとが指定されている。特権モードは「第１モード」の一例であり、ユーザモードは「第２モード」の一例である。
【０１２３】
セーフティコア２１６２，２１６４および標準コア２２６２，２２６４のそれぞれについて、ユーザモードに設定されている場合、アプリケーション２１６２ｐ，２１６４ｐ，２２６２ｐ，２２６４ｐにおける所定の命令が実行されたときに、特権モードに指定されている記憶領域にはアクセスが禁止されている。つまり、ユーザモードに設定されているときには、特権モードに設定されているときよりもアクセスが制限されている。
【０１２４】
また、セーフティコア２１６２，２１６４がアプリケーション２１６２ｐ，２１６４ｐにおける所定の命令に基づいてＲＡＭ２１５にアクセスした場合、図６に示すようにセーフティ記憶領域２１５２および標準記憶領域２２５２のいずれにもアクセス可能である一方で、標準コア２２６２，２２６４がアプリケーション２２６２ｐ，２２６４ｐにおける同じ所定の命令に基づいてＲＡＭ２１５にアクセスした場合、図６に示すように標準記憶領域２２５２についてはアクセス可能である一方で、セーフティ記憶領域２１５２についてはアクセス制限される。
【０１２５】
このように、セーフティコア２１６２，２１６４が所定の命令に基づいてアクセスした場合と異なり、標準コア２２６２，２２６４が同じ所定の命令に基づいてアクセスした場合には、セーフティ制御に係るデータを記憶するセーフティ記憶領域２１５２に対する標準コア２２６２，２２６４によるアクセスを制限することができる。
【０１２６】
また、ＲＡＭ２１５の記憶領域に対するアクセスの許可および禁止を規定するモードが特権モード、および当該特権モードよりもアクセスが制限されているユーザモードのいずれであるかに関わらず、セーフティ制御に係るデータを記憶するセーフティ記憶領域２１５２に対する標準コア２２６２，２２６４によるアクセスを制限することができる。
【０１２７】
＜ｄ２．制御装置におけるアクセス制限方法の第３の例＞
図１１は、第２実施形態に係る制御装置２００ｃにおけるアクセス制限方法の第３の例を説明するための模式図である。なお、図１１に示す制御装置２００ｃのハードウェア構成例においては、図８に示す制御装置２００のハードウェア構成例と同じ構成および機能を有する部分については同じ符号を付加し、その説明を省略する。また、図１１に示す第２実施形態に係る制御装置２００ｃにおけるアクセス制限方法の第３の例においては、図７に示す第１実施形態に係る制御装置１００ｃにおけるアクセス制限方法の第３の例と同じ構成および機能を有する部分については、その説明を省略する。
【０１２８】
図１１に示すように、制御装置２００ｃのＭＣＵ２１０ｃは、プロセッサ２１６に接続された監視プロセッサ２１９を含む。監視プロセッサ２１９は、プロセッサ２１６を補助するコプロセッサであり、ＦＰＧＡやＡＳＩＣなどで構成される。監視プロセッサ２１９は、プロセッサ２１６に含まれるセーフティコア２１６２，２１６４および標準コア２２６２，２２６４のそれぞれについて、ＲＡＭ２１５の記憶領域に対するアクセスを監視する。なお、監視プロセッサ２１９は、ＭＣＵ２１０ｃの中に含まれるものに限らず、ＭＣＵ２１０ｃの外側から当該ＭＣＵ２１０ｃのプロセッサ２１６を監視するものであってもよい。
【０１２９】
具体的には、監視プロセッサ２１９は、セーフティ記憶領域２１５２に対するセーフティコア２１６２，２１６４によるアクセスを許可し、標準記憶領域２２５２に対するセーフティコア２１６２，２１６４によるアクセスを許可し、標準記憶領域２２５２に対する標準コア２２６２，２２６４によるアクセスを許可し、セーフティ記憶領域２１５２に対する標準コア２２６２，２２６４によるアクセスを禁止する。たとえば、標準コア２２６２，２２６４のアクセス先がセーフティ記憶領域２１５２であると監視プロセッサ２１９によって検出された場合、例外処理が行われることで、セーフティ記憶領域２１５２に対する標準コア２２６２，２２６４によるアクセスが制限される。
【０１３０】
これにより、プロセッサ２１６によるセーフティ記憶領域２１５２および標準記憶領域２２５２に対するアクセスを監視する監視プロセッサ２１９によって、セーフティ記憶領域２１５２に対する標準コア２２６２，２２６４によるアクセスを制限することができる。
【０１３１】
［Ｄ．付記］
以上のように、本実施の形態では以下のような開示を含む。
【０１３２】
［構成１］
駆動装置（４３０）を制御する制御装置（１００，２００）であって、
前記駆動装置に関してセーフティ制御を実行する第１演算部（１０１）と、
前記駆動装置に関して標準制御を実行する第２演算部（１０２）と、
前記第１演算部および前記第２演算部のいずれからもアクセス可能であって、前記セーフティ制御に係るデータを記憶する第１記憶領域（１０３１）と、前記標準制御に係るデータを記憶する第２記憶領域（１０３２）とを含む記憶部（１０３）とを備え、
前記第１演算部は、前記第１記憶領域および前記第２記憶領域のいずれにもアクセス可能である一方で、
前記第２演算部は、前記第２記憶領域にアクセス可能であるのに対して前記第１記憶領域についてはアクセス制限されている、制御装置（１００，２００）。
【０１３３】
［構成２］
複数のマイクロコントローラユニット（ＭＣＵ）（１１０，１２０）を備え、
前記第１演算部は、前記セーフティ制御を実行するプロセッサコア（１１６２，１２６２）であり、
前記第２演算部は、前記標準制御を実行するプロセッサコア（１１６４）であり、
前記複数のマイクロコントローラユニットのそれぞれは、前記セーフティ制御を実行するプロセッサコア（１１６）を含み、
前記複数のマイクロコントローラユニットの少なくともいずれか一方は、前記標準制御を実行するプロセッサコア（１１６４，１２６４）を含む、構成１の制御装置（１００）。
【０１３４】
［構成３］
前記複数のマイクロコントローラユニットのそれぞれに含まれる前記セーフティ制御を実行するプロセッサコア間においては、相互監視が行われる、構成２の制御装置（１００）。
【０１３５】
［構成４］
マイクロコントローラユニット（ＭＣＵ）（２１０）を備え、
前記第１演算部は、前記セーフティ制御を実行するプロセッサコア（２１６２，２１６４）であり、
前記第２演算部は、前記標準制御を実行するプロセッサコア（２２６２，２２６４）であり、
前記マイクロコントローラユニットは、前記セーフティ制御を実行するプロセッサコアを複数含むとともに、前記標準制御を実行するプロセッサコアを少なくとも１つ以上含む、構成１の制御装置（２００）。
【０１３６】
［構成５］
前記記憶部のメモリアドレスに対するアクセスの許可および禁止を規定するデータテーブル（６００）を備え、
前記第１演算部は、前記データテーブルに基づき、前記第１記憶領域および前記第２記憶領域のいずれのメモリアドレスにもアクセス可能である一方で、
前記第２演算部は、前記第２記憶領域のメモリアドレスにアクセス可能であるのに対して前記第１記憶領域のメモリアドレスについてはアクセス制限されている、構成１〜構成４のいずれかの制御装置（１００ａ，２００ａ）。
【０１３７】
［構成６］
前記第１演算部は、所定の命令に基づいて、前記第１記憶領域および前記第２記憶領域のいずれにもアクセス可能である一方で、
前記第２演算部は、前記所定の命令に基づいて、前記第２記憶領域にアクセス可能であるのに対して前記第１記憶領域についてはアクセス制限されている、構成１〜構成４のいずれかの制御装置（１００ｂ，２００ｂ）。
【０１３８】
［構成７］
前記記憶部に対するアクセスの許可および禁止を規定するモードとして、第１モードと、当該第１モードよりもアクセスが制限されている第２モードとが設けられており、
前記第２演算部は、前記モードが第１モードおよび前記第２モードのいずれであるかに関わらず、前記第１記憶領域についてはアクセス制限されている、構成６の制御装置（１００ｂ，２００ｂ）。
【０１３９】
［構成８］
前記第１演算部は、前記セーフティ制御を実行するプロセッサコア（１１６２，１２６２，２１６２，２１６４）であり、
前記第２演算部は、前記標準制御を実行するプロセッサコア（１１６４，１２６４，２１６４，２２６４）であり、
前記標準制御を実行するプロセッサコアおよび前記セーフティ制御を実行するプロセッサコアを含むプロセッサ（１１６，１２６，２１６）を補助するコプロセッサとして、当該プロセッサによる前記第１記憶領域および前記第２記憶領域に対するアクセスを監視する監視プロセッサ（１１９，１２９，２１９）をさらに備え、
前記第２演算部は、前記監視プロセッサによって、前記第１記憶領域に対してアクセス制限されている、構成１〜構成４のいずれかの制御装置（１００ｃ，２００ｃ）。
【０１４０】
［Ｅ．利点］
本実施の形態に係る制御装置１００によれば、セーフティ制御を実行する第１演算部１０１と標準制御を実行する第２演算部１０２とが共存する場合であっても、第２演算部１０２は、セーフティ制御に係る第１記憶領域１０３１についてはアクセス制限されているため、標準制御を実行する第２演算部１０２によってセーフティ制御に影響を与えることがなく、安全を担保することができる。
【０１４１】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１４２】
１００，１００ａ，１００ｂ，１００ｃ，２００，２００ａ，２００ｂ，２００ｃ  制御装置、１０１  第１演算部、１０２  第２演算部、１０３  記憶部、１０５１，１０５２，２０５  プロセッサバス、１１０，１２０，１１０ａ，１２０ａ，１１０ｂ，１２０ｂ，１１０ｃ，１２０ｃ，２１０  ＭＣＵ、１１２，１２２，２１２，２１４  セーフティＲＯＭ、１１４，１２４，２２２，２２４  標準ロム、１１５，１２５，２１５  ＲＡＭ、１１６，１２６，２１６  プロセッサ、１１９，１２９，２１９  監視プロセッサ、１３０，２３０  ストレージ、１３２，２３２  セーフティプログラム、１３４，２３４  標準プログラム、１４０，２４０  ＵＳＢコントローラ、１５０，２５０  メモリカードインターフェイス、１６０，２６０  ローカルバスインターフェイス、３００  セーフティデバイス、４１０  セーフティリレー、４２０  ドライバ、４３０  駆動装置、５００  サポート装置、６００  変換テーブル、１０３１  第１記憶領域、１０３２  第２記憶領域、１０５３  ブリッジ、１１２２，１２２２，２１２２，２１４２  セーフティシステムプログラム、１１４２，１２４２，２２２２，２２４２  標準システムプログラム、１１４４  制限データ、１１５２，１２５２，２１５２  セーフティ記憶領域、１１５４，１２５４，２２５２  標準記憶領域、１１６２，１２６２，２１６２，２１６４  セーフティコア、１１６２ｐ，１１６４ｐ，１２６２ｐ，１２６４ｐ，２１６２ｐ，２１６４ｐ，２２６２ｐ，２２６４ｐ  アプリケーション、１１６４，１２６４，２２６２，２２６４  標準コア、２１７２，２１７４，２２７２，２２７４  ＭＭＵ。
【図１】
2020135046.tif 000003
【図２】
2020135046.tif 000004
【図３】
2020135046.tif 000005
【図４】
2020135046.tif 000006
【図５】
2020135046.tif 000007
【図６】
2020135046.tif 000008
【図７】
2020135046.tif 000009
【図８】
2020135046.tif 000010
【図９】
2020135046.tif 000011
【図１０】
2020135046.tif 000012
【図１１】
2020135046.tif 000013