IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ オムロン株式会社の特許一覧

<>
  • 特許-制御装置 図1
  • 特許-制御装置 図2
  • 特許-制御装置 図3
  • 特許-制御装置 図4
  • 特許-制御装置 図5
  • 特許-制御装置 図6
  • 特許-制御装置 図7
  • 特許-制御装置 図8
  • 特許-制御装置 図9
  • 特許-制御装置 図10
  • 特許-制御装置 図11
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-08-01
(45)【発行日】2022-08-09
(54)【発明の名称】制御装置
(51)【国際特許分類】
   G06F 21/74 20130101AFI20220802BHJP
   G06F 12/14 20060101ALI20220802BHJP
   G05B 9/02 20060101ALI20220802BHJP
【FI】
G06F21/74
G06F12/14 510D
G05B9/02 Z
【請求項の数】 7
(21)【出願番号】P 2019023728
(22)【出願日】2019-02-13
(65)【公開番号】P2020135046
(43)【公開日】2020-08-31
【審査請求日】2020-12-15
(73)【特許権者】
【識別番号】000002945
【氏名又は名称】オムロン株式会社
(74)【代理人】
【識別番号】110001195
【氏名又は名称】弁理士法人深見特許事務所
(72)【発明者】
【氏名】八木 大介
(72)【発明者】
【氏名】小林 雄作
【審査官】岸野 徹
(56)【参考文献】
【文献】特開2014-048849(JP,A)
【文献】特開2011-257889(JP,A)
【文献】特開2017-204286(JP,A)
【文献】特開2018-067047(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/74
G06F 12/14
G05B 9/02
(57)【特許請求の範囲】
【請求項1】
駆動装置を制御する制御装置であって、
前記駆動装置に関してセーフティ制御を実行する第1演算部と、
前記駆動装置に関して標準制御を実行する第2演算部と、
前記第1演算部および前記第2演算部のいずれからもアクセス可能であって、前記セーフティ制御に係るデータを記憶する第1記憶領域と、前記標準制御に係るデータを記憶する第2記憶領域とを含む記憶部とを備え、
前記第1記憶領域および前記第2記憶領域の各々に対するアクセスを規定するモードとして、第1モードと第2モードとがあり、
前記第1記憶領域は、前記第1モードに対応する第1モード第1記憶領域と、前記第2モードに対応する第2モード第1記憶領域とを含み、
前記第2記憶領域は、前記第1モードに対応する第1モード第2記憶領域と、前記第2モードに対応する第2モード第2記憶領域とを含み、
前記第1演算部は、
前記第1モード第1記憶領域について、前記第1モードおよび前記第2モードのいずれであるかに応じてアクセスが許可または禁止され、
前記第2モード第1記憶領域について、前記第1モードおよび前記第2モードのいずれであってもアクセスが許可され、
前記第1モード第2記憶領域について、前記第1モードおよび前記第2モードのいずれであるかに応じてアクセスが許可または禁止され、
前記第2モード第2記憶領域について、前記第1モードおよび前記第2モードのいずれであってもアクセスが許可され、
前記第2演算部は、
前記第1モード第1記憶領域について、前記第1モードおよび前記第2モードのいずれであってもアクセスが禁止され、
前記第2モード第1記憶領域について、前記第1モードおよび前記第2モードのいずれであってもアクセスが禁止され、
前記第1モード第2記憶領域について、前記第1モードおよび前記第2モードのいずれであるかに応じてアクセスが許可または禁止され、
前記第2モード第2記憶領域について、前記第1モードおよび前記第2モードのいずれであってもアクセスが許可される、制御装置。
【請求項2】
複数のマイクロコントローラユニット(MCU)を備え、
前記第1演算部は、前記セーフティ制御を実行するプロセッサコアであり、
前記第2演算部は、前記標準制御を実行するプロセッサコアであり、
前記複数のマイクロコントローラユニットのそれぞれは、前記セーフティ制御を実行するプロセッサコアを含み、
前記複数のマイクロコントローラユニットの少なくともいずれか一方は、前記標準制御を実行するプロセッサコアを含む、請求項1に記載の制御装置。
【請求項3】
前記複数のマイクロコントローラユニットのそれぞれに含まれる前記セーフティ制御を実行するプロセッサコア間においては、相互監視が行われる、請求項2に記載の制御装置。
【請求項4】
マイクロコントローラユニット(MCU)を備え、
前記第1演算部は、前記セーフティ制御を実行するプロセッサコアであり、
前記第2演算部は、前記標準制御を実行するプロセッサコアであり、
前記マイクロコントローラユニットは、前記セーフティ制御を実行するプロセッサコアを複数含むとともに、前記標準制御を実行するプロセッサコアを少なくとも1つ以上含む、請求項1に記載の制御装置。
【請求項5】
前記記憶部のメモリアドレスに対するアクセスの許可および禁止を規定するデータテーブルを備え、
前記第1演算部は、前記データテーブルに基づき、前記第1記憶領域および前記第2記憶領域のいずれのメモリアドレスにもアクセス可能である一方で、
前記第2演算部は、前記第2記憶領域のメモリアドレスにアクセス可能であるのに対して前記第1記憶領域のメモリアドレスについてはアクセス制限されている、請求項1~請求項4のいずれか1項に記載の制御装置。
【請求項6】
前記第1演算部は、所定の命令に基づいて、前記第1記憶領域および前記第2記憶領域のいずれにもアクセス可能である一方で、
前記第2演算部は、前記所定の命令に基づいて、前記第2記憶領域にアクセス可能であるのに対して前記第1記憶領域についてはアクセス制限されている、請求項1~請求項4のいずれか1項に記載の制御装置。
【請求項7】
前記第1演算部は、前記セーフティ制御を実行するプロセッサコアであり、
前記第2演算部は、前記標準制御を実行するプロセッサコアであり、
前記標準制御を実行するプロセッサコアおよび前記セーフティ制御を実行するプロセッサコアを含むプロセッサを補助するコプロセッサとして、当該プロセッサによる前記第1記憶領域および前記第2記憶領域に対するアクセスを監視する監視プロセッサをさらに備え、
前記第2演算部は、前記監視プロセッサによって、前記第1記憶領域に対してアクセス制限されている、請求項1~請求項4のいずれか1項に記載の制御装置。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、制御装置に関し、より特定的には駆動装置を制御する制御装置に関する。
【背景技術】
【0002】
近年、様々な生産現場において、設備や機械を安全に使用するために、駆動装置に関して標準的な制御を行う演算部の他に、安全を担保する観点から駆動装置に関してセーフティな制御を行う演算部を備える制御装置が知られている。
【0003】
たとえば、国際公開第2015/145562号(特許文献1)においては、駆動装置に関する駆動制御を行う駆動CPU(Central Processing Unit)と、駆動装置に関する安全制御を行う安全CPUとの両方を備えるコントローラが開示されている。また、特許文献1においては、駆動CPUと安全CPUとをデュアルコアプロセッサで実現してもよいことも開示されている。
【先行技術文献】
【特許文献】
【0004】
【文献】国際公開第2015/145562号
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に開示されたコントローラのように、駆動CPUと安全CPUとをデュアルコアプロセッサで実現することができれば、装置の省スペース化および低コスト化を図ることが可能である。しかしながら、標準制御を行う演算部と、セーフティ制御を行う演算部とが共存した場合、特にセーフティ制御によって用いられるデータを保護する観点から安全を担保するための工夫が必要となるが、特許文献1に記載のコントローラにおいては何ら考慮されていなかった。
【0006】
本発明は、上述したような課題を解決することを一つの目的とし、標準制御を行う演算部とセーフティ制御を行う演算部とが共存する場合であっても安全を担保することができる制御装置を提供する。
【課題を解決するための手段】
【0007】
本開示の一例に従えば、駆動装置を制御する制御装置が提供される。制御装置は、駆動装置に関してセーフティ制御を実行する第1演算部と、駆動装置に関して標準制御を実行する第2演算部と、第1演算部および第2演算部のいずれからもアクセス可能であって、セーフティ制御に係るデータを記憶する第1記憶領域と、標準制御に係るデータを記憶する第2記憶領域とを含む記憶部とを備える。第1演算部は、第1記憶領域および第2記憶領域のいずれにもアクセス可能である一方で、第2演算部は、第2記憶領域にアクセス可能であるのに対して第1記憶領域についてはアクセス制限されている。
【0008】
この開示によれば、セーフティ制御を実行する第1演算部と標準制御を実行する第2演算部とが共存する場合であっても、第2演算部は、セーフティ制御に係るデータを記憶する第1記憶領域についてはアクセス制限されているため、標準制御を実行する第2演算部によってセーフティ制御に影響を与えることがなく、安全を担保することができる。
【0009】
上述の開示において、制御装置は、複数のマイクロコントローラユニット(MCU)を備える。第1演算部は、セーフティ制御を実行するプロセッサコアであり、第2演算部は、標準制御を実行するプロセッサコアである。複数のマイクロコントローラユニットのそれぞれは、セーフティ制御を実行するプロセッサコアを含み、複数のマイクロコントローラユニットの少なくともいずれか一方は、標準制御を実行するプロセッサコアを含む。
【0010】
この開示によれば、単一のマイクロコントローラユニット内にセーフティ制御を実行するプロセッサコアと標準制御を実行するプロセッサコアとを共存させることで、装置の省スペース化および低コスト化を図ることができる。
【0011】
上述の開示において、複数のマイクロコントローラユニットのそれぞれに含まれるセーフティ制御を実行するプロセッサコア間においては、相互監視が行われる。
【0012】
この開示によれば、セーフティ制御を実行する複数のプロセッサコア間において相互監視が行われることで、より安全を担保することができる。
【0013】
上述の開示において、制御装置は、マイクロコントローラユニット(MCU)を備える。第1演算部は、セーフティ制御を実行するプロセッサコアであり、第2演算部は、標準制御を実行するプロセッサコアである。マイクロコントローラユニットは、セーフティ制御を実行するプロセッサコアを複数含むとともに、標準制御を実行するプロセッサコアを少なくとも1つ以上含む。
【0014】
この開示によれば、単一のマイクロコントローラユニット内にセーフティ制御を実行するプロセッサコアと標準制御を実行するプロセッサコアとを共存させることで、装置の省スペース化および低コスト化を図ることができる。
【0015】
上述の開示において、制御装置は、記憶部のメモリアドレスに対するアクセスの許可および禁止を規定するデータテーブルを備える。第1演算部は、データテーブルに基づき、第1記憶領域および第2記憶領域のいずれのメモリアドレスにもアクセス可能である一方で、第2演算部は、第2記憶領域のメモリアドレスにアクセス可能であるのに対して第1記憶領域のメモリアドレスについてはアクセス制限されている。
【0016】
この開示によれば、記憶部のメモリアドレスに対するアクセスの許可および禁止を規定するデータテーブルに基づき、セーフティ制御に係るデータを記憶する第1記憶領域に対する第2演算部によるアクセスを制限することができる。
【0017】
上述の開示において、第1演算部は、所定の命令に基づいて、第1記憶領域および第2記憶領域のいずれにもアクセス可能である一方で、第2演算部は、所定の命令に基づいて、第2記憶領域にアクセス可能であるのに対して第1記憶領域についてはアクセス制限されている。
【0018】
この開示によれば、第1演算部が所定の命令に基づいてアクセスした場合と異なり、第2演算部が所定の命令に基づいてアクセスした場合には、セーフティ制御に係るデータを記憶する第1記憶領域に対する第2演算部によるアクセスを制限することができる。
【0019】
上述の開示において、記憶部に対するアクセスの許可および禁止を規定するモードとして、第1モードと、当該第1モードよりもアクセスが制限されている第2モードとが設けられている。第2演算部は、モードが第1モードおよび第2モードのいずれであるかに関わらず、第1記憶領域についてはアクセス制限されている。
【0020】
この開示によれば、記憶部に対するアクセスの許可および禁止を規定するモードが第1モード、および当該第1モードよりもアクセスが制限されている第2モードのいずれであるかに関わらず、セーフティ制御に係るデータを記憶する第1記憶領域に対するアクセスを制限することができる。
【0021】
上述の開示において、第1演算部は、セーフティ制御を実行するプロセッサコアであり、第2演算部は、標準制御を実行するプロセッサコアである。制御装置は、標準制御を実行するプロセッサコアおよびセーフティ制御を実行するプロセッサコアを含むプロセッサを補助するコプロセッサとして、当該プロセッサによる第1記憶領域および第2記憶領域に対するアクセスを監視する監視プロセッサをさらに備える。第2演算部は、監視プロセッサによって、第1記憶領域に対してアクセス制限されている。
【0022】
この開示によれば、第1演算部および第2演算部を含むプロセッサによる第1記憶領域および第2記憶領域に対するアクセスを監視する監視プロセッサによって、セーフティ制御に係るデータを記憶する第1記憶領域に対する第2演算部によるアクセスを制限することができる。
【図面の簡単な説明】
【0023】
図1】本実施の形態に係る制御装置の適用例を示す模式図である。
図2】第1実施形態に係る制御装置のハードウェア構成例を示す模式図である。
図3】第1実施形態に係る制御装置におけるアクセス制限方法の第1の例を説明するための模式図である。
図4】第1実施形態に係る制御装置におけるアクセス制限方法の第1の例を説明するための模式図である。
図5】第1実施形態に係る制御装置におけるアクセス制限方法の第2の例を説明するための模式図である。
図6】第1実施形態に係る制御装置におけるアクセス制限方法の第2の例を説明するための模式図である。
図7】第1実施形態に係る制御装置におけるアクセス制限方法の第3の例を説明するための模式図である。
図8】第2実施形態に係る制御装置のハードウェア構成例を示す模式図である。
図9】第2実施形態に係る制御装置におけるアクセス制限方法の第1の例を説明するための模式図である。
図10】第2実施形態に係る制御装置におけるアクセス制限方法の第2の例を説明するための模式図である。
図11】第2実施形態に係る制御装置におけるアクセス制限方法の第3の例を説明するための模式図である。
【発明を実施するための形態】
【0024】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
【0025】
[A.適用例]
本発明が適用される場面の一例について説明する。
【0026】
図1は、本実施の形態に係る制御装置100の適用例を示す模式図である。本実施の形態に係る制御システム1は、たとえば、IEC 61508などに規定されたセーフティ機能を提供する。制御システム1は、主に、制御装置100と、セーフティデバイス300と、駆動装置430とを備える。
【0027】
制御装置100は、典型的には、プログラマブルコントローラ(Programmable Logic Controller:PLC)などで構成され、制御対象から取得された入力データに関して予め定められたユーザプログラムを実行し、ユーザプログラムの実行によって算出される出力データに応じて制御対象に指令を与える。図1に示す例では、制御対象には、駆動装置430と、駆動装置430を駆動するドライバ420とが含まれる。
【0028】
たとえば、制御装置100は、所定の駆動条件が成立したときに、駆動装置430を制御するための標準指令をドライバ420に出力することで、駆動装置430を駆動させたり停止させたりする。また、制御装置100は、駆動装置430からのフィードバック信号などに基づいて、駆動装置430の位置や速度などを制御する。なお、駆動装置430は、ドライバ420によって駆動するサーボモータを想定するが、サーボモータに限らず、他の種類の駆動装置であってもよい。本実施の形態においては、このような制御装置100による駆動装置430およびドライバ420に対する制御を「標準制御」とも称する。
【0029】
制御装置100は、上述した標準制御に加えて、制御システム1における作業者の安全を担保するための制御を行う。
【0030】
たとえば、制御装置100は、セーフティデバイス300(非常停止スイッチ、セーフティドアスイッチ、セーフティライトカーテンなど)からのセーフティ入力を受け付けたときに、セーフティ指令をセーフティリレー410に出力する。セーフティリレー410は、ドライバ420に対する電力供給ライン上に配置されており、制御装置100からのセーフティ指令に基づいて、電力供給を遮断するための制御を行う。これにより、ドライバ420に対する電力供給が遮断されるため、駆動装置430が停止する。このような制御装置100によるセーフティリレー410を介した駆動装置430およびドライバ420に対する制御を「セーフティ制御」とも称する。なお、制御装置100は、セーフティ制御として、駆動装置430に対する電力を調整することで、駆動装置430の位置や速度などを制御してもよい。
【0031】
制御装置100が実行する標準制御およびセーフティ制御のそれぞれに係るユーザプログラムは、制御装置100と通信可能に接続されたサポート装置500から制御装置100に提供される。
【0032】
制御装置100は、駆動装置430に関して上述したセーフティ制御を実行する第1演算部101と、駆動装置430に関して上述した標準制御を実行する第2演算部102とを備える。さらに、制御装置100は、第1演算部101および第2演算部102のいずれからもアクセス可能であって、セーフティ制御に係るデータを記憶する第1記憶領域1031と、標準制御に係るデータを記憶する第2記憶領域1032とを含む記憶部103を備える。
【0033】
「第1演算部」および「第2演算部」は、所定のプロセッサに含まれるプロセッサコアであってもよいし、プロセッサあるいはCPUそのものであってもよい。また、「第1演算部」および「第2演算部」は、その両方が単一のプロセッサに含まれるプロセッサコアであってもよいし、複数のプロセッサのそれぞれに含まれるプロセッサコアであってもよい。
【0034】
本明細書において、「標準制御」および「セーフティ制御」の用語を対比的に用いる。「標準制御」は、予め定められた要求仕様に沿って、駆動装置430などの制御対象を制御するための処理の総称である。一方、「セーフティ制御」は、制御システム1における設備や機械などによって人の安全が脅かされることを防止するための処理を総称する。「セーフティ制御」は、IEC 61508などに規定されたセーフティ機能を実現するための要件を満たすように設計される。
【0035】
このように構成された制御装置100において、第1演算部101は、セーフティ制御に係るデータを記憶する第1記憶領域1031、および標準制御に係るデータを記憶する第2記憶領域1032のいずれにもアクセス可能であり、これらの記憶領域にアクセスすることで、セーフティ制御を実行する。
【0036】
ここで、上述したように、セーフティ制御はIEC 61508などに規定されており、制御装置100のメーカ側で予めセーフティ制御に係るプログラムやデータが設計されている。このため、標準制御に係るプログラムやデータに基づき、第2演算部102によって第1記憶領域1031にアクセスされてしまうと、安全を担保することができないおそれがある。そこで、本実施の形態に係る制御装置100においては、第2演算部102は、標準制御に係るデータを記憶する第2記憶領域1032についてはアクセス可能であるのに対して、セーフティ制御に係るデータを記憶する第1記憶領域1031についてはアクセス制限されている。たとえば、制御装置100においては、第2演算部102のアクセス先が第1記憶領域1031である場合、例外処理が行われることで、第2演算部102による第1記憶領域1031に対するアクセスが制限される。
【0037】
これにより、セーフティ制御を実行する第1演算部101と標準制御を実行する第2演算部102とが共存する場合であっても、第2演算部102は、セーフティ制御に係るデータを記憶する第1記憶領域1031についてはアクセス制限されているため、標準制御を実行する第2演算部102によって第1記憶領域1031に格納されたセーフティ制御に係るデータに影響を与えることがなく、安全を担保すことができる。
【0038】
[B.第1実施形態]
第1実施形態に係る制御装置100について説明する。
【0039】
<a1.制御装置のハードウェア構成例>
図2は、第1実施形態に係る制御装置100のハードウェア構成例を示す模式図である。図2に示すように、制御装置100は、複数のマイクロコントローラユニット(Microcontroller Unit:MCU)と、当該複数のMCUのそれぞれに対応する複数のRAM(Random access memory)とを備える。本実施の形態においては、制御装置100は、MCU110およびMCU120と、MCU110に対応するRAM115と、MCU120に対応するRAM125とを備える。なお、MCUおよびRAMは、2つに限らず、3つ以上設けられてもよい。
【0040】
また、制御装置100は、ストレージ130と、USBコントローラ140と、メモリカードインターフェイス150と、ローカルバスインターフェイス160とを備える。これらのコンポーネントは、ブリッジ1053を介してプロセッサバス1051,1052に接続されている。MCU110は、プロセッサバス1051に接続され、MCU120は、プロセッサバス1052に接続されている。
【0041】
ストレージ130は、要求されるセーフティ機能に応じてユーザによって作成されたセーフティ制御に係るセーフティプログラム132、および制御対象に応じてユーザによって作成された標準制御に係る標準プログラム134など、各種のプログラムやデータを格納する。
【0042】
USBコントローラ140は、USB接続を介して、サポート装置500などとの間でデータを遣り取りする。
【0043】
メモリカードインターフェイス150は、受け付けたメモリカードに対してデータを書き込み、メモリカードから各種データ(ログやトレースデータなど)を読み出すように構成されている。
【0044】
ローカルバスインターフェイス160は、ローカルバスを介して、制御装置100に接続されたセーフティリレー410、ドライバ420、およびセーフティデバイス300などの任意のデバイスとの間でデータを遣り取りする。
【0045】
MCU110は、プロセッサ116と、セーフティROM(Read Only Memory)112と、標準ROM114とを含む。
【0046】
プロセッサ116は、マルチコアプロセッサであり、セーフティコア1162と、標準コア1164とを含む。セーフティコア1162は、「第1演算部」の一例であり、セーフティ制御に係る制御演算を実行する。標準コア1164は、「第2演算部」の一例であり、標準制御に係る制御演算を実行する。このように、単一のプロセッサ116内において、セーフティ制御に係るセーフティコア1162と、標準制御に係る標準コア1164とを共存させることで、装置の省スペース化および低コスト化を図ることができる。
【0047】
セーフティROM112は、セーフティ制御に係る基本的な機能を実現するためのセーフティシステムプログラム1122を格納し、セーフティコア1162に接続されている。
【0048】
標準ROM114は、標準制御に係る基本的な機能を実現するための標準システムプログラム1142を格納し、標準コア1164に接続されている。
【0049】
MCU120は、プロセッサ126と、セーフティROM122と、標準ROM124とを含む。
【0050】
プロセッサ126は、マルチコアプロセッサであり、セーフティコア1262と、標準コア1264とを含む。セーフティコア1262は、「第1演算部」の一例であり、セーフティ制御に係る制御演算を実行する。標準コア1264は、「第2演算部」の一例であり、標準制御に係る制御演算を実行する。
【0051】
このように、単一のプロセッサ126内において、セーフティ制御に係るセーフティコア1262と、標準制御に係る標準コア1264とを共存させることで、セーフティコアと標準コアとを別々のプロセッサにそれぞれ含めるよりも、装置の省スペース化および低コスト化を図ることができる。
【0052】
セーフティROM122は、セーフティ制御に係る基本的な機能を実現するためのセーフティシステムプログラム1222を格納し、セーフティコア1262に接続されている。
【0053】
標準ROM124は、標準制御に係る基本的な機能を実現するための標準システムプログラム1242を格納し、標準コア1264に接続されている。
【0054】
プロセッサ116と、プロセッサ126との間においては、クロスコミュニケーションによってその動作や状態が相互に監視されるように制御装置100が構成されている。これより、プロセッサ116およびプロセッサ126のうちのいずれかに異常が生じた場合でも、その異常が検出される。
【0055】
たとえば、プロセッサ116およびプロセッサ126のそれぞれは、プログラムを並列的に実行する。また、プロセッサ116およびプロセッサ126のそれぞれは、図示しないウォッチドッグタイマを有している。プロセッサ116は、自身が有するウォッチドッグタイマを定期的にリセットし、プロセッサ126も、自身が有するウォッチドッグタイマを定期的にリセットする。プロセッサ116は、プロセッサ126によってウォッチドッグタイマが定期的にリセットされているかを監視し、プロセッサ126は、プロセッサ116によってウォッチドッグタイマが定期的にリセットされているかを監視することで、プロセッサ間で異常の有無を相互監視するようになっている。
【0056】
また、たとえば、プロセッサ116およびプロセッサ126のそれぞれは、プログラムを並列的に実行する際に、そのプログラムの実行に係る制御演算の計算結果を相互に確認し合うことで、プロセッサ間で異常の有無を相互監視するようになっている。すなわち、一方のプロセッサに何らかの異常が生じて制御演算の計算結果が不正確となると、他方のプロセッサにおける制御演算の計算結果と一致しなくなるため、他方のプロセッサは、計算結果が一致しないことを検出することで、一方のプロセッサに異常が生じたことを検出することができる。
【0057】
このように、セーフティ制御を実行する複数のセーフティコア1162およびセーフティコア1262間において相互監視が行われることで、より安全を担保することができる。
【0058】
制御装置100は、異常が生じたプロセッサについては、電力供給を遮断するなどの処理を行うことで、異常が生じた状態でセーフティ制御が実行されることを防止する。このように、独立して設けられた複数のプロセッサ116,126は、動作や状態を相互に監視することで、異常の発生を検出することができる。特に、セーフティコア1162,1262は、安全を担保するためのセーフティ制御を実行するものであるため、相互に監視することで、より安全レベルを高めることができる。
【0059】
RAM115は、「記憶部」の一例である。RAM115の記憶領域には、セーフティ記憶領域1152と、標準記憶領域1154とが含まれる。セーフティ記憶領域1152は、「第1記憶領域」の一例であり、セーフティ制御を実行するためのデータを格納する。標準記憶領域1154は、「第2記憶領域」の一例であり、標準制御を実行するためのデータを格納する。
【0060】
プロセッサ116のセーフティコア1162は、セーフティROM112に格納されたセーフティシステムプログラム1122を読み出し、RAM115内の記憶領域に展開して実行することで、セーフティ制御を実現する。同様に、プロセッサ116の標準コア1164は、標準ROM114に格納された標準システムプログラム1142を読み出し、RAM115内の記憶領域に展開して実行することで、標準制御を実現する。
【0061】
このように、プロセッサ116のセーフティコア1162および標準コア1164は、RAM115にアクセスすることでセーフティ制御や標準制御を実行するが、セーフティコア1162から標準記憶領域1154に対してはアクセスが許可されている一方で、安全を担保する観点から、標準コア1164からセーフティ記憶領域1152に対してはアクセスが制限されている。たとえば、制御装置100においては、標準コア1164のアクセス先がセーフティ記憶領域1152である場合、例外処理が行われることで、標準コア1164によるセーフティ記憶領域1152に対するアクセスが制限される。
【0062】
これにより、標準コア1164によるアクセスによってセーフティ記憶領域1152に格納されたセーフティ制御に係るデータに何らかの異常が生じることを防止することができ、安全を担保することができる。
【0063】
RAM125は、「記憶部」の一例である。RAM125の記憶領域には、セーフティ記憶領域1252と、標準記憶領域1254とが含まれる。セーフティ記憶領域1252は、「第1記憶領域」の一例であり、セーフティ制御を実行するためのデータが格納される。標準記憶領域1254は、「第2記憶領域」の一例であり、標準制御を実行するためのデータが格納される。
【0064】
プロセッサ126のセーフティコア1262は、セーフティROM122に格納されたセーフティシステムプログラム1222を読み出し、RAM125内の記憶領域に展開して実行することで、セーフティ制御を実現する。同様に、プロセッサ126の標準コア1264は、標準ROM124に格納された標準システムプログラム1242を読み出し、RAM125内の記憶領域に展開して実行することで、標準制御を実現する。
【0065】
このように、プロセッサ126のセーフティコア1262および標準コア1264は、RAM125にアクセスすることでセーフティ制御や標準制御を実行するが、セーフティコア1262から標準記憶領域1254に対してはアクセスが許可されている一方で、安全を担保する観点から、標準コア1264からセーフティ記憶領域1252に対してはアクセスが制限されている。たとえば、制御装置100においては、標準コア1264のアクセス先がセーフティ記憶領域1252である場合、例外処理が行われることで、標準コア1264によるセーフティ記憶領域1252に対するアクセスが制限される。
【0066】
これにより、標準コア1264によるアクセスによってセーフティ記憶領域1252に格納されたセーフティ制御に係るデータに何らかの異常が生じることを防止することができ、安全を担保することができる。
【0067】
<b1.制御装置におけるアクセス制限方法の第1の例>
図3および図4は、第1実施形態に係る制御装置100aにおけるアクセス制限方法の第1の例を説明するための模式図である。なお、図3に示す制御装置100aのハードウェア構成例においては、図2に示す制御装置100のハードウェア構成例と同じ構成および機能を有する部分については同じ符号を付加し、その説明を省略する。
【0068】
図3に示すように、制御装置100aのMCU110aは、プロセッサ116に接続されたMMU(Memory Management Unit)117を含む。MMU117は、メモリ保護機能を有しており、プロセッサ116内のコアが自身に割り当てられていない記憶領域にアクセスすることを防ぐ。具体的には、MMU117においては、図4に示す変換テーブル600が起動時に設定され、制御装置100aは、この変換テーブル600を利用して標準コア1164によるセーフティ記憶領域1152に対するアクセスを制限する。
【0069】
たとえば、標準ROM114には、標準コア1164によるセーフティ記憶領域1152に対するアクセスを制限するための制限データ1144が含まれる。MCU110aの起動時において、この制限データ1144がMMU117に設定されることで、標準コア1164に対応する変換テーブル600が構築される。なお、図示は省略するが、セーフティROM112においても変換テーブル600を構築するためのデータが格納されており、当該データがMCU110aの起動時にMMU117に設定されることで、セーフティコア1162に対応する変換テーブル600が構築される。
【0070】
変換テーブル600は、「データテーブル」の一例であり、図4に示すように、セーフティコア1162および標準コア1164のいずれの種別であるかを特定するための属性情報と、RAM115の物理アドレスに変換される仮想アドレスとを含む。
【0071】
たとえば、RAM115の物理アドレスは、システム用の物理アドレス範囲1(たとえば、0000~3FFF)と、セーフティ制御用の物理アドレス範囲2(たとえば、4000~4FFF)と、標準制御用の物理アドレス範囲3(たとえば、5000~5FFF)と、セーフティ制御用の物理アドレス範囲4(たとえば、6000~6FFF)と、標準制御用の物理アドレス範囲5(たとえば、7000~7FFF)とに分割されている。セーフティ制御用の物理アドレス範囲2および物理アドレス範囲4は、セーフティ記憶領域1152に対応するアドレス範囲である。標準制御用の物理アドレス範囲3および物理アドレス範囲5は、標準記憶領域1154に対応するアドレス範囲である。
【0072】
変換テーブル600の仮想アドレスは、システム分のアドレス範囲を除いており、セーフティ制御用の仮想アドレス範囲1(たとえば、0000~0FFF)と、標準制御用の仮想アドレス範囲2(たとえば、1000~1FFF)と、セーフティ制御用の仮想アドレス範囲3(たとえば、2000~2FFF)と、標準制御用の仮想アドレス範囲4(たとえば、3000~3FFF)とに分割されている。仮想アドレス範囲1は物理アドレス範囲2に、仮想アドレス範囲2は物理アドレス範囲3に、仮想アドレス範囲3は物理アドレス範囲4に、仮想アドレス範囲4は物理アドレス範囲5に、それぞれ変換可能である。
【0073】
セーフティコア1162および標準コア1164のそれぞれは、変換テーブル600に割り当てられた仮想アドレスにアクセスすることで、RAM115の物理アドレスにアクセスすることができる。
【0074】
ここで、仮想アドレスは、セーフティコア1162および標準コア1164のそれぞれについて、アクセスの許可または禁止が設定されている。たとえば、セーフティコア1162は、セーフティ制御用の仮想アドレス範囲1および仮想アドレス範囲3に限らず、標準制御用の仮想アドレス範囲2についてもアクセスが許可されている。一方、標準コア1164は、標準制御用の仮想アドレス範囲2および仮想アドレス範囲4についてはアクセスが許可されているのに対して、セーフティ制御用の仮想アドレス範囲1および仮想アドレス範囲3についてはアクセスが禁止(制限)されている。
【0075】
このように、MMU117において設定される変換テーブル600においては、標準コア1164によるセーフティ制御用の仮想アドレス範囲1および仮想アドレス範囲3に対するアクセスが制限されるため、仮想アドレス範囲1および仮想アドレス範囲3に対応するRAM115におけるセーフティ制御用の物理アドレス範囲2および物理アドレス範囲4(すなわち、セーフティ記憶領域1152)に対する標準コア1164によるアクセスも制限される。これにより、RAM115の物理アドレスに対するアクセスの許可および禁止を規定する変換テーブル600に基づき、セーフティ制御に係るデータを記憶するセーフティ記憶領域1152に対する標準コア1164によるアクセスを制限することができる。
【0076】
同様に、制御装置100aのMCU120aは、プロセッサ126に接続されたMMU127を含む。MMU127は、MMU117と同様に、メモリ保護機能を有しており、プロセッサ126内のコアが自身に割り当てられていない記憶領域にアクセスすることを防ぐ。具体的には、MMU127においては、MMU117と同様に、図4に示す変換テーブル600が起動時に設定され、制御装置100aは、この変換テーブル600を利用して標準コア1264によるセーフティ記憶領域1252に対するアクセスを制限する。なお、MMU127の変換テーブル600は、MMU117の変換テーブル600と同様の構成および機能を有するため、その説明を省略する。
【0077】
このように、MMU127において設定される変換テーブル600においては、セーフティ制御用の仮想アドレス範囲1および仮想アドレス範囲3に対する標準コア1264によるアクセスが制限されるため、仮想アドレス範囲1および仮想アドレス範囲3に対応するRAM125におけるセーフティ制御用の物理アドレス範囲2および物理アドレス範囲4(すなわち、セーフティ記憶領域1252)に対する標準コア1264によるアクセスが制限されている。これにより、RAM125の物理アドレスに対するアクセスの許可および禁止を規定する変換テーブル600に基づき、セーフティ制御に係るデータを記憶するセーフティ記憶領域1252に対する標準コア1264によるアクセスを制限することができる。
【0078】
なお、図3および図4に示すアクセス制限方法の第1の例においては、セーフティコアと標準コアとで共通の変換テーブル600を用い、属性情報に基づきアクセスの許可または禁止を設定していたが、セーフティコア用の変換テーブル600と標準コア用の変換テーブル600とを設けてもよい。
【0079】
また、図3および図4に示すアクセス制限方法の第1の例においては、MMUを採用したが、MMUと同様にメモリ保護機能を有するMPU(Memory Protection Unit)を採用してもよい。なお、MPUにおいては、仮想アドレスから物理アドレスへの変換を行わないため、物理アドレスに対応するアドレス範囲ごとに、セーフティコアおよび標準コアのそれぞれについて、アクセスの許可または禁止を設定すればよい。
【0080】
<c1.制御装置におけるアクセス制限方法の第2の例>
図5および図6は、第1実施形態に係る制御装置100bにおけるアクセス制限方法の第2の例を説明するための模式図である。なお、図5に示す制御装置100bのハードウェア構成例においては、図2に示す制御装置100のハードウェア構成例と同じ構成および機能を有する部分については同じ符号を付加し、その説明を省略する。また、図6においては、「記憶部」の一例としてRAMを例示しているが、「記憶部」に対してはRAMなどの揮発性メモリに限らず、ROMなどの不揮発性メモリを適用してもよく、その他、セーフティ制御に係るデータや標準制御に係るデータを記憶する記憶領域を含むものであれば、いずれの記憶媒体を適用してもよい。
【0081】
図5および図6に示すように、制御装置100bのMCU110bは、セーフティ記憶領域1152に対する標準コア1164によるアクセスが制限されている。
【0082】
具体的には、図6に示すように、プロセッサ116の状態を示すモードとして、セーフティコア1162および標準コア1164のそれぞれについて特権モードとユーザモードとが設けられている。また、RAM115へのアクセス設定においても、セーフティ記憶領域1152および標準記憶領域1154のそれぞれにおいて特権モードとユーザモードとが指定されている。特権モードは「第1モード」の一例であり、ユーザモードは「第2モード」の一例である。
【0083】
セーフティコア1162および標準コア1164のそれぞれについて、ユーザモードに設定されている場合、アプリケーション1162p,1164pにおける所定の命令が実行されたときに、特権モードに指定されている記憶領域にはアクセスが禁止されている。つまり、ユーザモードに設定されているときには、特権モードに設定されているときよりもアクセスが制限されている。
【0084】
たとえば、セーフティコア1162がユーザモードに設定されている場合、アプリケーション1162pにおける所定の命令が実行されたときに、セーフティ記憶領域1152および標準記憶領域1154のそれぞれにおいてユーザモードに指定されている記憶領域についてはアクセスが許可されているのに対して、セーフティ記憶領域1152および標準記憶領域1154のそれぞれにおいて特権モードに指定されている記憶領域についてはアクセスが禁止されている。
【0085】
また、たとえば、標準コア1164がユーザモードに設定されている場合、アプリケーション1164pにおける所定の命令が実行されたときに、標準記憶領域1154においてユーザモードに指定されている記憶領域についてはアクセスが許可されているのに対して、標準記憶領域1154において特権モードに指定されている記憶領域についてはアクセスが禁止されている。
【0086】
ここで、注目すべきは、標準コア1164は、特権モードおよびユーザモードのいずれに設定されているかに関わらず、セーフティ記憶領域1152における特権モードおよびユーザモードのいずれに指定された記憶領域に対してもアクセスが制限されている点である。たとえば、標準コア1164のアクセス先がセーフティ記憶領域1152である場合、例外処理が行われることで、標準コア1164によるセーフティ記憶領域1152に対するアクセスが制限される。
【0087】
つまり、セーフティコア1162がアプリケーション1162pにおける所定の命令に基づいてRAM115にアクセスした場合、図6に示すようにセーフティ記憶領域1152および標準記憶領域1154のいずれにもアクセス可能である一方で、標準コア1164がアプリケーション1164pにおける同じ所定の命令に基づいてRAM115にアクセスした場合、図6に示すように標準記憶領域1154についてはアクセス可能である一方で、セーフティ記憶領域1152についてはアクセス制限される。
【0088】
このように、セーフティコア1162が所定の命令に基づいてアクセスした場合と異なり、標準コア1164が同じ所定の命令に基づいてアクセスした場合には、セーフティ制御に係るデータを記憶するセーフティ記憶領域1152に対する標準コア1164によるアクセスを制限することができる。
【0089】
また、RAM115の記憶領域に対するアクセスの許可および禁止を規定するモードが特権モード、および当該特権モードよりもアクセスが制限されているユーザモードのいずれであるかに関わらず、セーフティ制御に係るデータを記憶するセーフティ記憶領域1152に対する標準コア1164によるアクセスを制限することができる。
【0090】
同様に、図5および図6に示すように、制御装置100bのMCU120bは、セーフティ記憶領域1252に対する標準コア1264によるアクセスが制限されている。なお、図6に示すプロセッサ126の状態を示すモードおよびRAM125へのアクセス設定は、上述したプロセッサ116の状態を示すモードおよびRAM115へのアクセス設定と同じであるため、その説明を省略する。
【0091】
セーフティコア1262がアプリケーション1262pにおける所定の命令に基づいてRAM125にアクセスした場合、図6に示すようにセーフティ記憶領域1252および標準記憶領域1254のいずれにもアクセス可能である一方で、標準コア1264がアプリケーション1264pにおける同じ所定の命令に基づいてRAM125にアクセスした場合、図6に示すように標準記憶領域1254についてはアクセス可能である一方で、セーフティ記憶領域1252についてはアクセス制限される。たとえば、標準コア1264のアクセス先がセーフティ記憶領域1252である場合、例外処理が行われることで、セーフティ記憶領域1252に対する標準コア1264によるアクセスが制限される。
【0092】
このように、セーフティコア1262が所定の命令に基づいてアクセスした場合と異なり、標準コア1264が同じ所定の命令に基づいてアクセスした場合には、セーフティ制御に係るデータを記憶するセーフティ記憶領域1252に対する標準コア1264によるアクセスを制限することができる。
【0093】
また、RAM125の記憶領域に対するアクセスの許可および禁止を規定するモードが特権モード、および当該特権モードよりもアクセスが制限されているユーザモードのいずれであるかに関わらず、セーフティ制御に係るデータを記憶するセーフティ記憶領域1252に対する標準コア1264によるアクセスを制限することができる。
【0094】
<d1.制御装置におけるアクセス制限方法の第3の例>
図7は、第1実施形態に係る制御装置100cにおけるアクセス制限方法の第3の例を説明するための模式図である。なお、図7に示す制御装置100cのハードウェア構成例においては、図2に示す制御装置100のハードウェア構成例と同じ構成および機能を有する部分については同じ符号を付加し、その説明を省略する。
【0095】
図7に示すように、制御装置100cのMCU110cは、プロセッサ116に接続された監視プロセッサ119を含む。監視プロセッサ119は、プロセッサ116を補助するコプロセッサであり、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)などで構成される。監視プロセッサ119は、プロセッサ116に含まれるセーフティコア1162および標準コア1164のそれぞれについて、RAM115の記憶領域に対するアクセスを監視する。なお、監視プロセッサ119は、MCU110cの中に含まれるものに限らず、MCU110cの外側から当該MCU110cのプロセッサ116を監視するものであってもよい。
【0096】
具体的には、監視プロセッサ119は、セーフティコア1162によるセーフティ記憶領域1152に対するアクセスを許可し、セーフティコア1162による標準記憶領域1154に対するアクセスを許可し、標準コア1164による標準記憶領域1154に対するアクセスを許可し、標準コア1164によるセーフティ記憶領域1152に対するアクセスを禁止する。たとえば、標準コア1164のアクセス先がセーフティ記憶領域1152であると監視プロセッサ119によって検出された場合、例外処理が行われることで、セーフティ記憶領域1152に対する標準コア1164によるアクセスが制限される。
【0097】
これにより、プロセッサ116によるセーフティ記憶領域1152および標準記憶領域1154に対するアクセスを監視する監視プロセッサ119によって、標準コア1164によるセーフティ記憶領域1152に対するアクセスを制限することができる。
【0098】
同様に、図7に示すように、制御装置100cのMCU120cは、プロセッサ126に接続された監視プロセッサ129を含む。監視プロセッサ129は、プロセッサ126を補助するコプロセッサであり、FPGAやASICなどで構成される。監視プロセッサ129は、プロセッサ126に含まれるセーフティコア1262および標準コア1264のそれぞれについて、RAM125の記憶領域に対するアクセスを監視する。なお、監視プロセッサ129は、MCU120cの中に含まれるものに限らず、MCU120cの外側から当該MCU120cのプロセッサ126を監視するものであってもよい。
【0099】
具体的には、監視プロセッサ129は、セーフティコア1262によるセーフティ記憶領域1252に対するアクセスを許可し、セーフティコア1262による標準記憶領域1254に対するアクセスを許可し、標準コア1264による標準記憶領域1254に対するアクセスを許可し、標準コア1264によるセーフティ記憶領域1252に対するアクセスを禁止する。たとえば、標準コア1264のアクセス先がセーフティ記憶領域1252であると監視プロセッサ129によって検出された場合、例外処理が行われることで、標準コア1264によるセーフティ記憶領域1252に対するアクセスが制限される。
【0100】
これにより、プロセッサ126によるセーフティ記憶領域1252および標準記憶領域1254に対するアクセスを監視する監視プロセッサ129によって、セーフティ記憶領域1252に対する標準コア1264によるアクセスを制限することができる。
【0101】
[C.第2実施形態]
第2実施形態に係る制御装置200について説明する。
【0102】
<a2.制御装置のハードウェア構成例>
図8は、第2実施形態に係る制御装置200のハードウェア構成例を示す模式図である。図2に示す第1実施形態に係る制御装置100は、複数のMCUのそれぞれにセーフティコアが含まれかつ複数のMCUの少なくともいずれか一方に標準コアが含まれていたが、図8に示す第2実施形態に係る制御装置200は、単一のMCUに複数のセーフティコアが含まれかつ少なくとも1つ以上の標準コアが含まれる点で、両者が異なる。
【0103】
具体的には、図8に示すように、制御装置200は、1つのMCU210と、MCU210に対応するRAM215とを備える。なお、MCUおよびRAMは、1つに限らず、2つ以上設けられてもよい。
【0104】
また、制御装置200は、ストレージ230と、USBコントローラ240と、メモリカードインターフェイス250と、ローカルバスインターフェイス260とを備える。これらのコンポーネントは、プロセッサバス205を介して接続されている。
【0105】
ストレージ230、USBコントローラ240、メモリカードインターフェイス250、およびローカルバスインターフェイス260のそれぞれは、図2に示すストレージ130、USBコントローラ140、メモリカードインターフェイス150、およびローカルバスインターフェイス160のそれぞれと同様の構成を有する。なお、ストレージ230は、要求されるセーフティ機能に応じてユーザによって作成されたセーフティ制御に係るセーフティプログラム232、および制御対象に応じてユーザによって作成された標準制御に係る標準プログラム234など、各種のプログラムやデータが格納される。
【0106】
MCU210は、プロセッサ216と、セーフティROM212と、セーフティROM214と、標準ROM222と、標準ROM224とを含む。
【0107】
プロセッサ216は、マルチコアプロセッサであり、セーフティコア2162と、セーフティコア2164と、標準コア2262と、標準コア2264とを含む。セーフティコア2162およびセーフティコア2164のそれぞれは、「第1演算部」の一例であり、セーフティ制御に係る制御演算を実行する。標準コア2262および標準コア2264のそれぞれは、「第2演算部」の一例であり、標準制御に係る制御演算を実行する。
【0108】
このように、単一のプロセッサ216内において、セーフティ制御に係るセーフティコア2162およびセーフティコア2164と、標準制御に係る標準コア2262および標準コア2264とを共存させることで、セーフティコアと標準コアとを別々のプロセッサにそれぞれ含めるよりも、装置の省スペース化および低コスト化を図ることができる。
【0109】
セーフティROM212は、セーフティ制御に係る基本的な機能を実現するためのセーフティシステムプログラム2122を格納し、セーフティコア2162に接続されている。
【0110】
セーフティROM214は、セーフティ制御に係る基本的な機能を実現するためのセーフティシステムプログラム2142を格納し、セーフティコア2164に接続されている。
【0111】
標準ROM222は、標準制御に係る基本的な機能を実現するための標準システムプログラム2222を格納し、標準コア2262に接続されている。
【0112】
標準ROM224は、標準制御に係る基本的な機能を実現するための標準システムプログラム2242を格納し、標準コア2264に接続されている。
【0113】
RAM215は、「記憶部」の一例である。RAM215の記憶領域には、セーフティ記憶領域2152と、標準記憶領域2252とが含まれる。セーフティ記憶領域2152は、「第1記憶領域」の一例であり、セーフティ制御を実行するためのデータが格納される。標準記憶領域2252は、「第2記憶領域」の一例であり、標準制御を実行するためのデータが格納される。
【0114】
セーフティコア2162は、セーフティROM212に格納されたセーフティシステムプログラム2122を読み出し、RAM215内の記憶領域に展開して実行することで、セーフティ制御を実現する。セーフティコア2164は、セーフティROM214に格納されたセーフティシステムプログラム2142を読み出し、RAM215内の記憶領域に展開して実行することで、セーフティ制御を実現する。同様に、標準コア2262は、標準ROM222に格納された標準システムプログラム2222を読み出し、RAM215内の記憶領域に展開して実行することで、標準制御を実現する。標準コア2264は、標準ROM224に格納された標準システムプログラム2242を読み出し、RAM215内の記憶領域に展開して実行することで、標準制御を実現する。
【0115】
このように、プロセッサ216のセーフティコア2162,2164および標準コア2262,2264は、RAM215にアクセスすることでセーフティ制御や標準制御を実行するが、セーフティコア2162,2164から標準記憶領域2252に対してはアクセスが許可されている一方で、安全を担保する観点から、標準コア2262,2264からセーフティ記憶領域2152に対してはアクセスが制限されている。たとえば、制御装置200においては、標準コア2262,2264のアクセス先がセーフティ記憶領域2152である場合、例外処理が行われることで、標準コア2262,2264によるセーフティ記憶領域2152に対するアクセスが制限される。
【0116】
これにより、標準コア2262,2264によるアクセスによってセーフティ記憶領域2152に格納されたセーフティ制御に係るデータに何らかの異常が生じることを防止することができ、安全を担保することができる。
【0117】
<b2.制御装置におけるアクセス制限方法の第1の例>
図9は、第2実施形態に係る制御装置200aにおけるアクセス制限方法の第1の例を説明するための模式図である。なお、図9に示す制御装置200aのハードウェア構成例においては、図8に示す制御装置200のハードウェア構成例と同じ構成および機能を有する部分については同じ符号を付加し、その説明を省略する。また、図9に示す第2実施形態に係る制御装置200aにおけるアクセス制限方法の第1の例においては、図3および図4に示す第1実施形態に係る制御装置100aにおけるアクセス制限方法の第1の例と同じ構成および機能を有する部分については、その説明を省略する。
【0118】
図9に示すように、制御装置200aのMCU210aは、プロセッサ216に接続されたMMU2172,2174,2272,2274を含む。MMU2172は、セーフティコア2162に接続され、MMU2174は、セーフティコア2164に接続され、MMU2272は、標準コア2262に接続され、MMU2274は、標準コア2264に接続されている。MMU2172,2174,2272,2274は、図3に示すMMU117やMMU127と同様に、メモリ保護機能を有しており、プロセッサ216内のコアが自身に割り当てられていない記憶領域にアクセスすることを防ぐ。具体的には、MMU2272,2274においては、図4に示す変換テーブル600が起動時に設定され、制御装置200aは、この変換テーブル600を利用して標準コア2262,2264によるセーフティ記憶領域2152に対するアクセスを制限する。
【0119】
このように、MMU2272,2274において設定される変換テーブル600においては、セーフティ制御用の仮想アドレス範囲に対する標準コア2262,2264によるアクセスが制限される結果、仮想アドレス範囲に対応するRAM215におけるセーフティ制御用の物理アドレス範囲(すなわち、セーフティ記憶領域2152)に対する標準コア2262,2264によるアクセスが制限されている。これにより、RAM215の物理アドレスに対するアクセスの許可および禁止を規定する変換テーブル600に基づき、セーフティ制御に係るデータを記憶するセーフティ記憶領域2152に対する標準コア2262,2264によるアクセスを制限することができる。
【0120】
<c2.制御装置におけるアクセス制限方法の第2の例>
図10は、第2実施形態に係る制御装置200bにおけるアクセス制限方法の第2の例を説明するための模式図である。なお、図10に示す制御装置200bのハードウェア構成例においては、図8に示す制御装置200のハードウェア構成例と同じ構成および機能を有する部分については同じ符号を付加し、その説明を省略する。また、図10に示す第2実施形態に係る制御装置200bにおけるアクセス制限方法の第2の例においては、図5および図6に示す第1実施形態に係る制御装置100bにおけるアクセス制限方法の第2の例と同じ構成および機能を有する部分については、その説明を省略する。また、図10に示す例においても、図6に示す例と同様に、「記憶部」の一例としてRAMを例示しているが、「記憶部」に対してはRAMなどの揮発性メモリに限らず、ROMなどの不揮発性メモリを適用してもよく、その他、セーフティ制御に係るデータや標準制御に係るデータを記憶する記憶領域を含むものであれば、いずれの記憶媒体を適用してもよい。
【0121】
図10に示すように、制御装置200bのMCU210bは、セーフティ記憶領域2152に対する標準コア2262,2264によるアクセスが制限されている。
【0122】
具体的には、制御装置200bにおいては、図6に示すように、プロセッサ216の状態を示すモードとして、セーフティコア2162,2164および標準コア2262,2264のそれぞれについて特権モードとユーザモードとが設けられている。また、RAM215へのアクセス設定においても、セーフティ記憶領域2152および標準記憶領域2252のそれぞれにおいて特権モードとユーザモードとが指定されている。特権モードは「第1モード」の一例であり、ユーザモードは「第2モード」の一例である。
【0123】
セーフティコア2162,2164および標準コア2262,2264のそれぞれについて、ユーザモードに設定されている場合、アプリケーション2162p,2164p,2262p,2264pにおける所定の命令が実行されたときに、特権モードに指定されている記憶領域にはアクセスが禁止されている。つまり、ユーザモードに設定されているときには、特権モードに設定されているときよりもアクセスが制限されている。
【0124】
また、セーフティコア2162,2164がアプリケーション2162p,2164pにおける所定の命令に基づいてRAM215にアクセスした場合、図6に示すようにセーフティ記憶領域2152および標準記憶領域2252のいずれにもアクセス可能である一方で、標準コア2262,2264がアプリケーション2262p,2264pにおける同じ所定の命令に基づいてRAM215にアクセスした場合、図6に示すように標準記憶領域2252についてはアクセス可能である一方で、セーフティ記憶領域2152についてはアクセス制限される。
【0125】
このように、セーフティコア2162,2164が所定の命令に基づいてアクセスした場合と異なり、標準コア2262,2264が同じ所定の命令に基づいてアクセスした場合には、セーフティ制御に係るデータを記憶するセーフティ記憶領域2152に対する標準コア2262,2264によるアクセスを制限することができる。
【0126】
また、RAM215の記憶領域に対するアクセスの許可および禁止を規定するモードが特権モード、および当該特権モードよりもアクセスが制限されているユーザモードのいずれであるかに関わらず、セーフティ制御に係るデータを記憶するセーフティ記憶領域2152に対する標準コア2262,2264によるアクセスを制限することができる。
【0127】
<d2.制御装置におけるアクセス制限方法の第3の例>
図11は、第2実施形態に係る制御装置200cにおけるアクセス制限方法の第3の例を説明するための模式図である。なお、図11に示す制御装置200cのハードウェア構成例においては、図8に示す制御装置200のハードウェア構成例と同じ構成および機能を有する部分については同じ符号を付加し、その説明を省略する。また、図11に示す第2実施形態に係る制御装置200cにおけるアクセス制限方法の第3の例においては、図7に示す第1実施形態に係る制御装置100cにおけるアクセス制限方法の第3の例と同じ構成および機能を有する部分については、その説明を省略する。
【0128】
図11に示すように、制御装置200cのMCU210cは、プロセッサ216に接続された監視プロセッサ219を含む。監視プロセッサ219は、プロセッサ216を補助するコプロセッサであり、FPGAやASICなどで構成される。監視プロセッサ219は、プロセッサ216に含まれるセーフティコア2162,2164および標準コア2262,2264のそれぞれについて、RAM215の記憶領域に対するアクセスを監視する。なお、監視プロセッサ219は、MCU210cの中に含まれるものに限らず、MCU210cの外側から当該MCU210cのプロセッサ216を監視するものであってもよい。
【0129】
具体的には、監視プロセッサ219は、セーフティ記憶領域2152に対するセーフティコア2162,2164によるアクセスを許可し、標準記憶領域2252に対するセーフティコア2162,2164によるアクセスを許可し、標準記憶領域2252に対する標準コア2262,2264によるアクセスを許可し、セーフティ記憶領域2152に対する標準コア2262,2264によるアクセスを禁止する。たとえば、標準コア2262,2264のアクセス先がセーフティ記憶領域2152であると監視プロセッサ219によって検出された場合、例外処理が行われることで、セーフティ記憶領域2152に対する標準コア2262,2264によるアクセスが制限される。
【0130】
これにより、プロセッサ216によるセーフティ記憶領域2152および標準記憶領域2252に対するアクセスを監視する監視プロセッサ219によって、セーフティ記憶領域2152に対する標準コア2262,2264によるアクセスを制限することができる。
【0131】
[D.付記]
以上のように、本実施の形態では以下のような開示を含む。
【0132】
[構成1]
駆動装置(430)を制御する制御装置(100,200)であって、
前記駆動装置に関してセーフティ制御を実行する第1演算部(101)と、
前記駆動装置に関して標準制御を実行する第2演算部(102)と、
前記第1演算部および前記第2演算部のいずれからもアクセス可能であって、前記セーフティ制御に係るデータを記憶する第1記憶領域(1031)と、前記標準制御に係るデータを記憶する第2記憶領域(1032)とを含む記憶部(103)とを備え、
前記第1演算部は、前記第1記憶領域および前記第2記憶領域のいずれにもアクセス可能である一方で、
前記第2演算部は、前記第2記憶領域にアクセス可能であるのに対して前記第1記憶領域についてはアクセス制限されている、制御装置(100,200)。
【0133】
[構成2]
複数のマイクロコントローラユニット(MCU)(110,120)を備え、
前記第1演算部は、前記セーフティ制御を実行するプロセッサコア(1162,1262)であり、
前記第2演算部は、前記標準制御を実行するプロセッサコア(1164)であり、
前記複数のマイクロコントローラユニットのそれぞれは、前記セーフティ制御を実行するプロセッサコア(116)を含み、
前記複数のマイクロコントローラユニットの少なくともいずれか一方は、前記標準制御を実行するプロセッサコア(1164,1264)を含む、構成1の制御装置(100)。
【0134】
[構成3]
前記複数のマイクロコントローラユニットのそれぞれに含まれる前記セーフティ制御を実行するプロセッサコア間においては、相互監視が行われる、構成2の制御装置(100)。
【0135】
[構成4]
マイクロコントローラユニット(MCU)(210)を備え、
前記第1演算部は、前記セーフティ制御を実行するプロセッサコア(2162,2164)であり、
前記第2演算部は、前記標準制御を実行するプロセッサコア(2262,2264)であり、
前記マイクロコントローラユニットは、前記セーフティ制御を実行するプロセッサコアを複数含むとともに、前記標準制御を実行するプロセッサコアを少なくとも1つ以上含む、構成1の制御装置(200)。
【0136】
[構成5]
前記記憶部のメモリアドレスに対するアクセスの許可および禁止を規定するデータテーブル(600)を備え、
前記第1演算部は、前記データテーブルに基づき、前記第1記憶領域および前記第2記憶領域のいずれのメモリアドレスにもアクセス可能である一方で、
前記第2演算部は、前記第2記憶領域のメモリアドレスにアクセス可能であるのに対して前記第1記憶領域のメモリアドレスについてはアクセス制限されている、構成1~構成4のいずれかの制御装置(100a,200a)。
【0137】
[構成6]
前記第1演算部は、所定の命令に基づいて、前記第1記憶領域および前記第2記憶領域のいずれにもアクセス可能である一方で、
前記第2演算部は、前記所定の命令に基づいて、前記第2記憶領域にアクセス可能であるのに対して前記第1記憶領域についてはアクセス制限されている、構成1~構成4のいずれかの制御装置(100b,200b)。
【0138】
[構成7]
前記記憶部に対するアクセスの許可および禁止を規定するモードとして、第1モードと、当該第1モードよりもアクセスが制限されている第2モードとが設けられており、
前記第2演算部は、前記モードが第1モードおよび前記第2モードのいずれであるかに関わらず、前記第1記憶領域についてはアクセス制限されている、構成6の制御装置(100b,200b)。
【0139】
[構成8]
前記第1演算部は、前記セーフティ制御を実行するプロセッサコア(1162,1262,2162,2164)であり、
前記第2演算部は、前記標準制御を実行するプロセッサコア(1164,1264,2164,2264)であり、
前記標準制御を実行するプロセッサコアおよび前記セーフティ制御を実行するプロセッサコアを含むプロセッサ(116,126,216)を補助するコプロセッサとして、当該プロセッサによる前記第1記憶領域および前記第2記憶領域に対するアクセスを監視する監視プロセッサ(119,129,219)をさらに備え、
前記第2演算部は、前記監視プロセッサによって、前記第1記憶領域に対してアクセス制限されている、構成1~構成4のいずれかの制御装置(100c,200c)。
【0140】
[E.利点]
本実施の形態に係る制御装置100によれば、セーフティ制御を実行する第1演算部101と標準制御を実行する第2演算部102とが共存する場合であっても、第2演算部102は、セーフティ制御に係る第1記憶領域1031についてはアクセス制限されているため、標準制御を実行する第2演算部102によってセーフティ制御に影響を与えることがなく、安全を担保することができる。
【0141】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【0142】
100,100a,100b,100c,200,200a,200b,200c 制御装置、101 第1演算部、102 第2演算部、103 記憶部、1051,1052,205 プロセッサバス、110,120,110a,120a,110b,120b,110c,120c,210 MCU、112,122,212,214 セーフティROM、114,124,222,224 標準ロム、115,125,215 RAM、116,126,216 プロセッサ、119,129,219 監視プロセッサ、130,230 ストレージ、132,232 セーフティプログラム、134,234 標準プログラム、140,240 USBコントローラ、150,250 メモリカードインターフェイス、160,260 ローカルバスインターフェイス、300 セーフティデバイス、410 セーフティリレー、420 ドライバ、430 駆動装置、500 サポート装置、600 変換テーブル、1031 第1記憶領域、1032 第2記憶領域、1053 ブリッジ、1122,1222,2122,2142 セーフティシステムプログラム、1142,1242,2222,2242 標準システムプログラム、1144 制限データ、1152,1252,2152 セーフティ記憶領域、1154,1254,2252 標準記憶領域、1162,1262,2162,2164 セーフティコア、1162p,1164p,1262p,1264p,2162p,2164p,2262p,2264p アプリケーション、1164,1264,2262,2264 標準コア、2172,2174,2272,2274 MMU。
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11