(57)【要約】  マルチコアマイコンにおけるコア間通信において、異なる（安全水準レベル低からレベル高）機能安全の安全水準レベル（ＡＳＩＬ）間の安全要求を満たしつつ処理負荷を最小限に抑えることが出来るだけでなく、ユーザのタイミングでコア間通信によるデータの授受を可能とする車載制御装置を提供する。  複数のコア２，３の間のデータ通信を、コアのレジスタ１１のデータをハードウェア機能（ＤＭＡ等）によりコア間の共有メモリ７の安全水準レベルが設定された領域８に書き込む書込み手段により行い、前記コア２，３は、それぞれ機能安全レベルが異なるように車載制御装置を構成する。
2017056725.tif 000002
【特許請求の範囲】
【請求項１】
複数のコアの間のデータ通信を、コアのレジスタのデータをハードウェア機能によりコア間の共有メモリの安全水準レベルが設定された領域に書き込む書込み手段により行い、
前記コアは、それぞれ機能安全レベルが異なる車載制御装置。
【請求項２】
請求項１に記載の車載制御装置であって、
第１のコアにはＡＳＩＬの機能、
第２のコアにはＱＭの機能が割り当てられている車載制御装置。
【請求項３】
請求項２に記載の車載制御装置であって、
前記書込み手段は、前記第２のコアから前記第１のコアへ通信をする際、当該第２のコアから前記共有メモリのＡＳＩＬ領域に前記ハードウェア機能を用いてデータを書き込む車載制御装置。
【請求項４】
請求項１乃至３のいずれかに記載の車載制御装置であって、
前記ハードウェア機能がＤｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓである車載制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車載制御装置に関するものである。
【背景技術】
【０００２】
近年、車載制御（機能）における技術的、機能的要求は高度かつ複雑化している。自動車業界では、機能安全（ＩＳＯ２６２６２）が策定され、車載制御装置においても対応が必須となっている。機能安全には機能に応じて守るべき基準を示した安全水準レベル（ＡＳＩＬ）を設け、実装する機能にはＡＳＩＬに応じた処理が必要となる（ＡＳＩＬは最も低い安全水準のＱＭ（Quality Management）から最も高い安全水準のＡＳＩＬ  Ｄまでの５段階で定義されている）。その為、マイコンは機能だけでなくＡＳＩＬにも対応する必要があるため、さらに実行する処理が増えるという現状がある。【０００３】
そのような中、マイコンは、増え続ける処理に対応する為、コア（処理の実行部）のマルチコア化（複数化）がなされ、マイコンの処理能力の向上および処理負荷の分散が図られ、高機能化が進んでいる。【０００４】
しかし、マルチコアマイコンは各コアが独自で動作（処理）を実行しているため、情報（データ）の共有が必要な時、各コアで実行した情報（データ）をどこかのコアに纏める必要がある。コアに情報を纏めるには各コア間で通信（以降、コア間通信）を行う必要があるが、このコア間通信は使い方（制御方法）によっては、従来のシングルコアのマイコンより処理能力が落ちてしまう可能性がある。【０００５】
例えば、１つのコアが通信を実施したくても、一方のコアが処理中の場合、通信を実行することが出来ず処理が待たされてしまう可能性がある。【０００６】
この結果、一方のコアの処理が待たされることによって、結果的に全体的に処理の遅延が発生してしまい処理能力が低下することにつながる可能性がある。【０００７】
あわせて、安全水準レベルを満足する為には、扱う情報（データ）の健全性も保障する必要がある。【０００８】
このようにマルチコアマイコンで、ＡＳＩＬを満たしつつ複数のコアに処理を分散したとしても、コア間通信の制御をどのように実装するかで処理能力が大きく変わってしまう可能性がある為、ＡＳＩＬおよびコア間通信をどう実装するかが大きな技術課題となっている。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２０１４−１９３６９０号公報
【特許文献２】特開２０１２−１２８７８８号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
そのような中、特許文献１では、マイコン内（１つのコア）で異なるＡＳＩＬレベルの処理が共存する場合の技術について記載している。【００１１】
例えば、ＱＭ（Quality Management）レベル（安全要求事項無し）とＡＳＩＬ  Ｄレベル（安全要求レベル最高位）のソフトウェアをマイコン内に混在させるため、パーティショニング技術を用い各々の領域のアクセスを監視することで、安全性を確保する技術が提供されている。【００１２】
しかしながら、上記特許文献１の技術では、マルチコアマイコンにおける複数のコアが独立して動作している状況および各コア間の通信については考慮されていない為、この技術ではコア間通信時のマイコンの処理負荷の増加（処理効率の低下）という課題がある。【００１３】
また、特許文献２では、マルチコアマイコン内のコア間通信の技術について記載している。【００１４】
しかしながら、上記特許文献２の技術では、機能安全の安全水準レベル（ＡＳＩＬ）を満たす場合の技術について提供が無い為、低いＡＳＩＬレベルから高いＡＳＩＬレベル等コア間通信時の安全性の確保という課題がある。【００１５】
また、車載制御用のＯＳとしてＡＵＴＯＳＡＲ  ＯＳがある。【００１６】
このＡＵＴＯＳＡＲ  ＯＳには、異なるＡＳＩＬレベルのコア間のコア間通信の機能としてＩＯＣ（Inter-OS-Application Communicator）が提供されている。【００１７】
しかし、本機能は各コアに搭載したＯＳによって制御されるため、ＯＳの処理による処理時間のオーバッドやＯＳが実行中の処理が遅延した時にはコア間通信処理の開始が遅れてしまうなど、処理負荷の増加やユーザが想定したタイミングでコア間通信が出来ない課題がある。【００１８】
そこで、本発明の目的は、マルチコアマイコンにおけるコア間通信において、異なる（安全水準レベル低からレベル高）機能安全の安全水準レベル（ＡＳＩＬ）間の安全要求を満たしつつ処理負荷を最小限に抑えることが出来るだけでなく、ユーザのタイミングでコア間通信によるデータの授受を可能とする技術を提供する事である。
【課題を解決するための手段】
【００１９】
上記目的は、特許請求の範囲に記載の発明により達成することが出来る。
【発明の効果】
【００２０】
本発明によれば、マルチコアマイコンにおけるコア間通信において、異なる（安全水準レベル低からレベル高）機能安全の安全水準レベル（ＡＳＩＬ）間の安全要求を満たしつつ処理負荷を最小限に抑えることが出来るだけでなく、ユーザのタイミングでコア間通信によるデータの授受をすることが出来る。
【図面の簡単な説明】
【００２１】
【図１】本実施例によるマルチコアマイコンのコア構成図
【図２】本実施例による異なるＡＳＩＬレベルのコア間通信の構成図
【図３】本実施例を使用した場合のコア間通信の処理例構成図
【図４】本実施例を使用したコア間通信の処理フロー図
【発明を実施するための形態】
【００２２】
以下、本発明の実施例を、図面を用いて説明する。
【００２３】
なお、以下の実施例では、ＱＭを“安全要求無し”、ＡＳＩＬを“安全要求有り”として扱う。
【実施例１】
【００２４】
本実施例によるマルチコアＭＣＵ（Micro Control Unit）１の構成について図１を用いて説明する。【００２５】
図１はマルチコアＭＣＵ１の構成を示している。マルチコアＭＣＵ１には安全水準レベルがＡＳＩＬの処理を実行する第一コア２と安全水準レベルがＱＭの処理を実行する第二コア３が搭載されている。内部メモリ４は、第一コア用内部メモリ５と第二コア用内部メモリ６、各コアが共通で使用することが出来る共有メモリ７で構成されている。【００２６】
なお、本実施例ではコアは２つとしているが、２つ以上のコアで構成しても良い。また、各コアの安全水準レベルをＡＳＩＬ、ＱＭとしているが、コア内の処理で異なる安全水準レベルの処理を定義しても構わない。【００２７】
なお、本実施例では、ＲＯＭ、ＲＡＭを区別せず、メモリに統一して説明する。【００２８】
次に図２を用いて各コア間（異なる安全水準レベル）のデータの管理方法について説明する。コア間のデータの授受には共有メモリ７を使用する。ただ、共有メモリをそのまま使用すると、異なる安全水準レベルのデータを混在して扱うことになるため安全要求を満たすことが出来ない可能性がある。【００２９】
そこで、共有メモリには、各コアの安全水準レベルに応じたメモリ領域を用意する。ＡＳＩＬ処理用のＡＳＩＬ領域８とＱＭ処理用のＱＭ領域９を定義する。ただし、領域を定義しただけでは、ＱＭ処理がＡＳＩＬ領域８にアクセス出来てしまうので、ＭＰＵ（Memory Protection Unit）１０の機能を利用して、定義したメモリ領域に対してアクセス制限を設定する。【００３０】
このように、ＭＰＵ１０によるアクセス制限を設定することで、各メモリ領域の安全要求を満たすことが可能となる。【００３１】
なお、本実施例ではマルチコアＭＣＵ１内の内部メモリを使用してコア間のデータ管理方法を説明したが、内部メモリに限定する物ではない。また、各コア間のデータの授受には共有メモリを使用したが、共通のメモリに限定したものではなく、各コア専用の外部メモリなどの記憶媒体を設けてもよい。【００３２】
次に図３を用いて、低い安全水準レベルのコアから高い安全水準レベルのコアへのデータの授受の方法（本実施例ではＱＭからＡＳＩＬ）について説明する。【００３３】
なお、本実施例で扱うデータとは、ソフトウェアの処理で作成したデータではなく、ＡＤ変換やＣＡＮ通信などのレジスタ値や通信バッファ（第二コア処理用レジスタ・通信バッファ１１）に格納されたソフトウェア処理で作成されない値をデータとして扱う。【００３４】
第二コア３で処理するデータを第一コア２に送信する場合、通常はソフトウェアの処理で共有メモリ７のＱＭ領域９へコピーする。しかし、本技術では、第二コア３のデータをステップＳ１でＤＭＡ（Direct Memory Access）などのハードウェアの通信（転送）機能を使用して直接、共有メモリ７のＡＳＩＬ領域８へコピーする。こうすることで、転送先の安全水準レベルより低いコアのソフトウェアを使用せずに、安全に安全水準レベルが高いメモリ領域へコピーすることが出来る。【００３５】
本実施例ではＤＭＡを用いてデータの転送を行ったが、直接、レジスタやバッファなの領域から転送できる手段、すなわちユーザのソフトウェアを介さずに転送出来る方法であれば何でも良い。【００３６】
その後、第一コア２はステップＳ２で自身が管理するメモリ領域であるＡＳＩＬ領域８へアクセスしデータを取得することが出来る。【００３７】
次に図４を用いて図３の構成で処理を実施した場合の処理フローについて記載する。【００３８】
ステップＳ３で第二コア３でのＡＤ変換やＣＡＮ通信など処理が実施され、ステップＳ４でレジスタや通信バッファにＡＤ変換やＣＡＮ通信などの結果（処理）の値が格納される。【００３９】
レジスタや通信バッファに格納された値をステップＳ５のＤＭＡ転送を用いて値を転送し、ステップＳ６で内部メモリ内の共有メモリ領域にあるＡＳＩＬ領域に直接格納（Ｗｒｉｔｅ）する。ステップＳ６で内部メモリ内の共有メモリ領域にあるＡＳＩＬ領域に格納された値をステップＳ７で第一コア２に値をＲｅａｄする。ステップＳ８ではＳ７でＲｅａｄした値を第一コア２の処理実行で使用する内部メモリに格納し、ステップＳ９で、第一コア２での処理を実行し処理を終了する。【００４０】
もし、この技術を用いず、転送先の安全水準レベルが低いソフトウェアの処理でコア間のデータの授受を行った場合、安全水準レベルが高いコアは安全水準レベルが低い処理で行ったデータの安全性を確認や監視または両方を実施しなければならない為、処理負荷の増加や任意のタイミングでデータの授受が出来ないなどの可能性がある。【００４１】
このように、データ転送元が転送先の安全水準レベルよりも低いコアから高いコア間でデータの授受を行うとき、安全水準レベルが低いコアのソフトウェアを使用せず安全水準レベルが高いコアのデータ領域にハードウェアの機能を用いてコピーすることで安全かつ高速にデータの授受を実現することが出来る。【００４２】
また、ソフトウェアの処理を介してデータの転送を行わないので、ＯＳなどの影響を受けずにデータの授受を行うことが出来る。【００４３】
なお、本実施例で説明した図１のマルチコアＭＣＵ１の構成は、あくまで一例であり、コアの数やメモリ構成、機能などを限定するものではない。【００４４】
また、図２、図３、図４で示した、構成や処理内容はあくまで処理の一例に過ぎず、データの転送手段や格納場所等、本実施例の内容を満たすことが出来れば手段や構成を限定するものではない。
【符号の説明】
【００４５】
１  …  マルチコアＭＣＵ
２  …  第一コア
３  …  第二コア
４  …  内部メモリ
５  …  第一コア用内部メモリ
６  …  第二コア用内部メモリ
７  …  共有メモリ
８  …  ＡＳＩＬ領域
９  …  ＱＭ領域
１０  …  ＭＰＵ
１１  …  第二コア処理用レジスタ・通信バッファ
【図１】
2017056725.tif 000003
【図２】
2017056725.tif 000004
【図３】
2017056725.tif 000005
【図４】
2017056725.tif 000006
【国際調査報告】
2017056725.tif 000007
2017056725.tif 000008
2017056725.tif 000009
2017056725.tif 000010