(57)【要約】【課題】データのリアルタイム性を担保し、より信頼性が高いマルチコア通信システムを提供することである。【解決手段】第一のコアが第一のデータを書き込み可能であり、第二のコアが前記第一のコアによって書き込まれた前記第一のデータを読み込み可能なグローバルメモリ部と、前記グローバルメモリ部に対する、前記第一のコアによる前記第一のデータの書き込みと前記第二のコアによる前記第一のデータの読み込みとにおけるリアルタイム性異常を検出するリアルタイム性異常検出部と、前記リアルタイム性異常検出部によって前記リアルタイム性異常を検出した場合に、フェイルセーフ制御を実行するフェイルセーフ部と、を備えたことを特徴とする。【選択図】図１
2020003923.tif 000002
【特許請求の範囲】
【請求項１】
複数のコアを有し、前記複数のコアの間で通信を行うマルチコア通信システムであって、
前記複数のコアは、第一のコアを含み、
前記複数のコアは、第二のコアを含み、
前記第一のコアが第一のデータを書き込み可能であり、前記第二のコアが前記第一のコアによって書き込まれた前記第一のデータを読み込み可能なグローバルメモリ部と、
前記グローバルメモリ部に対する、前記第一のコアによる前記第一のデータの書き込みと前記第二のコアによる前記第一のデータの読み込みとにおけるリアルタイム性異常を検出するリアルタイム性異常検出部と、
前記リアルタイム性異常検出部によって前記リアルタイム性異常を検出した場合に、フェイルセーフ制御を実行するフェイルセーフ部と、
を備えたことを特徴とするマルチコア通信システム。
【請求項２】
請求項１に記載のマルチコア通信システムであって、
前記リアルタイム性異常検出部は、
前記第一のコアが前記グローバルメモリ部に前記第一のデータを書き込んだ時間である第一の時間と、前記第二のコアが前記グローバルメモリ部から前記第一のデータを読み込んだ時間である第二の時間と、を記録するタイムスタンプ部と、
前記タイムスタンプ部に記録された前記第一の時間と前記第二の時間との時間差を算出する時間差算出部と、
前記時間差算出部によって算出した時間差が、所定の時間差よりも長い場合に、前記リアルタイム性異常を検出する時間差比較部と、
を有する、
ことを特徴とするマルチコア通信システム。
【請求項３】
請求項２に記載のマルチコア通信システムであって、
前記タイムスタンプ部は、前記複数のコアの動作クロックの周波数よりも高い周波数を用いて、前記第一の時間および前記第二の時間を記録する、
ことを特徴とするマルチコア通信システム。
【請求項４】
請求項１から３のいずれか一項に記載のマルチコア通信システムであって、
前記複数のコアのそれぞれについて、前記グローバルメモリ部に対するデータの書き込み及び読み込みのそれぞれを可とするか不可とするかを制御するアクセス許可部を、
さらに備えた、
ことを特徴とするマルチコア通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のコアを備え、コア間の通信を行うマルチコア通信システムに関する。
【背景技術】
【０００２】
従来、複数のコアすなわちマルチコアを備え、コア間の通信を行うマルチコア通信システムが知られている。複数のコアを備えたマイクロコンピュータでは、一般にそのコア間で通信を行う必要がある。以下、マイクロコンピュータを「マイコン」と略称する。コア間で通信を行う場合、複数のコアからアクセス可能な共有メモリを設け、この共有メモリを介して通信データのやり取りを行うことや、特表２００５−５３４０９４号公報に開示されているように、２つのプロセッサ間で通信するための通信チャネルを用いることが一般に行われている。
【０００３】
特表２００５−５３４０９４号公報に開示されている構成では、データを送信するコアは通信チャネルを介して他のコアの記憶領域にアクセスし、データを受信するコアは、対応する記憶領域へアクセスし、記憶されたデータを読み込むことでコア間通信を行う。この場合、送信側のコアがデータを書き込んでいる間や、受信側のコアがデータを読み込んでいる間に、他のコアが別の処理を実行することが可能であることからデータ転送を効率良く行うことができる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特表２００５−５３４０９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし、特表２００５−５３４０９４号公報に開示されている構成では、効率的な通信が可能である一方で、通信するデータのリアルタイム性を考慮していない。そのため、送信するコアの負荷が高く、送信処理に大きな遅延（Ｄｅｌａｙ）が発生する場合、受信するコアがそれを知らずに古い受信データを使用してしまい、制御が崩れる虞が生じる。
【０００６】
本発明はこのような課題を解決するためになされたものであり、データのリアルタイム性を担保し、より信頼性が高いマルチコア通信システムを提供することを主たる目的とする。
【課題を解決するための手段】
【０００７】
上記した課題を解決するために本発明は、複数のコアを有し、前記複数のコアの間で通信を行うマルチコア通信システムであって、前記複数のコアは、第一のコアを含み、前記複数のコアは、第二のコアを含み、前記第一のコアが第一のデータを書き込み可能であり、前記第二のコアが前記第一のコアによって書き込まれた前記第一のデータを読み込み可能なグローバルメモリ部と、前記グローバルメモリ部に対する、前記第一のコアによる前記第一のデータの書き込みと前記第二のコアによる前記第一のデータの読み込みとにおけるリアルタイム性異常を検出するリアルタイム性異常検出部と、前記リアルタイム性異常検出部によって前記リアルタイム性異常を検出した場合に、フェイルセーフ制御を実行するフェイルセーフ部と、を備えたことを特徴とする。
【発明の効果】
【０００８】
本発明によれば、データのリアルタイム性を担保し、より信頼性が高いマルチコア通信システムを提供することができる。
【０００９】
上記した以外の本発明の課題、構成、作用及び効果は、以下の実施例の説明により明らかにされる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第１の実施形態によるマルチコア通信手段の基本構成図である。
【図２】本発明の第１実施形態によるコア間通信の一例である。
【図３】本発明の第１実施形態によるアクセス管理部５１の動作を示すフローチャート一例である。
【図４】本発明の第３の実施形態によるマルチコア通信手段の基本構成図である。
【発明を実施するための形態】
【００１１】
以下、図面を用いて本発明の実施形態を詳細に説明する。
【００１２】
（第１実施形態）
（構成の説明）
まず、本発明の第１実施形態によるマルチコア通信システムの構成について、図面を用いて説明する。図１は本発明の第１実施形態によるマルチコア通信システムの基本構成図である。
【００１３】
本実施形態のマルチコア通信システムは、コア２０と、コア２１と、コア２０専用のメモリであるメモリ３０と、コア２１専用のメモリであるメモリ３１と、フェイルセーフ部４０と、グローバルメモリ管理部５０と、アクセス管理部５１と、タイムスタンプ記録部５２と、アクセス権限記録部５３と、クロック部６０と、グローバルメモリ部７０と、を備える。
【００１４】
コア２０及びコア２１のそれぞれは、ＰＣ（プログラムカウンタ）、命令バッファ、ＩＦＵ（Ｉｎｓｔｒｕｃｔｉｏｎ  Ｆｅｔｃｈ  Ｕｎｉｔ）、Ｄｅｃｏｄｅｒ、Ｒｅｇｉｓｔｅｒ  Ｆｅｔｃｈ、Ｒｅｇｉｓｔｅｒ、Ｓｈｉｆｔｅｒ、ＡＬＵ、ＭＵＬ及びＦＰＵ等の演算回路等を有する。これらが１クロック毎に命令実行段階の各ステージを実行することでいわゆるパイプライン制御が実現されている。
【００１５】
メモリ３０は、コア２０が実行するプログラムを保存するＲＯＭとプログラム実行時一時データを保存するＲＡＭにより構成される。
【００１６】
メモリ３１は、コア２１が実行するプログラムを保存するＲＯＭとプログラム実行時一時データを保存するＲＡＭにより構成される。
【００１７】
グローバルメモリ部７０は、コア２０及びコア２１の両方が共通でアクセスできる（実行時一時データを保存する）ＲＡＭにより構成される。これにより、コア２０とコア２１との間で、すなわちコア間でデータのやり取りができ、データを通信することができる。コア間通信の一例を図２に示す。図２では、コア２１がグローバルメモリ部７０にデータを書き込んで、書き込まれたデータをコア２０がグローバルメモリ部７０から読み込む。
【００１８】
フェイルセーフ部４０は、異常と通知される場合、安全状態に遷移する制御を行う。例えば、車両の制御に用いられるマルチコア通信システムの場合、車両走行中に刻々と変化する状況に応じた制御を行う必要があるが、リアルタイム性を逸した古いデータに基づいた制御行ってしまうと、現在実施すべき制御と異なる制御を行ってしまう虞がある。そこで、本実施形態によれば、アクセス管理部５１により異常と通知された場合、フェイルセーフ部４０は、リセットを実施して安全状態に遷移する。また、例えば、コア２０によってグローバルメモリ部７０からデータを読み込んだ際に異常と通知された場合、フェイルセーフ部４０は、グローバルメモリ部７０から読み込んだデータ（異常値）に代えて、予め定めた代替値（正常値）を、コア２０に提供することもできる。
【００１９】
クロック部６０は、タイムスタンプ情報を提供する。クロック部６０は、コア２０及びコア２１の動作周波数よりも高い周波数のクロックを提供できることが望ましい。クロック部６０としては、例えば、マイコンに内蔵する周波数が高いタイマを使用することができる。クロック部６０としては、コア２０及びコア２１の動作周波数のクロックを逓倍して周波数を高めて使用してもよい。
【００２０】
グローバルメモリ管理部５０は、アクセス管理部５１と、タイムスタンプ記録部５２と、アクセス権限記録部５３と、を有して構成される。タイムスタンプ記録部５２は、クロック部６０によって提供されるタイミング情報に基づき、コア２０とコア２１がグローバルメモリ部７０に或るデータをアクセス（書き込み、読み込み）するタイムスタンプを記録する。タイムスタンプは、例えば、電源投入からの経過時間である。タイムスタンプ記録部５２が記録するデータの一例を表１に示す。
【００２１】
【表１】
2020003923.tif 000003
【００２２】
表１では、通信データＡ〜Ｄに対して、コア２１が書き込みを実施し、コア２０が読み込みを実施した場合について示している。タイムスタンプ記録部５２により、コア２１の書き込みタイムスタンプ及びコア２０の読み込みタイムスタンプが記録される。また、タイムスタンプ記録部５２により、タイムスタンプ間隔期待値が記録される。タイムスタンプ間隔期待値は、読み込みタイムスタンプと書き込みタイムスタンプとの時間差の閾値である。詳しくは、図３を参照して後述するが、読み込みタイムスタンプと書き込みタイムスタンプとの時間差の実測値が、タイムスタンプ間隔期待値よりも大きい場合、フェイルセーフ制御を行う。タイムスタンプ間隔期待値は、設計段階で設定する値でもいい。
【００２３】
アクセス権限記録部５３は、コア２０、コア２１及びそのほかのコアの、グローバルメモリ部７０へのアクセス権限を記録する。アクセス権限記録部５３が記録するアクセス権限の一例を表２に示す。
【００２４】
【表２】
2020003923.tif 000004
【００２５】
表２では、通信データＡ、Ｂ、Ｃ及びＤに対して、コア２０及びコア２１ともにアクセス可である。また、通信データＥに対して、コア２０及びコア２１ともにアクセス不可であり、コア２０及びコア２１以外のそのほかのコア（本構成図に表示していない）からアクセス可である。
【００２６】
アクセス管理部５１は、アクセス権限記録部５３に記録されているアクセス権限に基づき、コア２０及びコア２１のそれぞれからグローバルメモリ部７０へのアクセスを許可、又は却下することができる。また、タイムスタンプ記録部５２に記録するアクセスタイムスタンプに基づき、コア間の通信データにリアルタイム性異常かどうかを判断することができる。リアルタイム性異常だと判断する場合、フェイルセーフ部４０に通知することができる。例えば、読み込みタイムスタンプと書き込みスタンプとの差を計算して、計算した結果をタイムスタンプ間隔期待値と比較して、タイムスタンプ間隔期待値より大きい場合、リアルタイム性異常だと判断する。
【００２７】
すなわち、本発明は、通信データの更新タイムスタンプを監視することで、データのリアルタイム性を担保し、より信頼性が高いマルチコア通信システムを提供することができる。
【００２８】
（動作の説明）
続いて、本発明の第１実施形態によるマルチコア通信システムの動作について説明する。図３は、本発明の第１実施形態によるアクセス管理部５１の動作を示すフローチャートである。
【００２９】
まず、アクセス管理部５１は、アクセス権限記録部５３に記録されているアクセス権限に基づき、今回のコアのグローバルメモリ部７０へのアクセス権限をチェックする（ステップＳ１）。アクセス権限がない場合、何もせずに終了する。
【００３０】
他方、今回のコアのアクセス権限がある場合には、アクセス管理部５１がグローバルメモリ部７０に対して、データの書き込みを実施するかどうかを確認する（ステップＳ２）。データの書き込みを実施する場合、対象データの書き込み処理を実施させ、クロック部６０より提供されるタイミング情報を利用して、書き込みタイムスタンプをタイムスタンプ記録部５２に記録して（ステップＳ３）、終了する。
【００３１】
他方、データの書き込みではない場合、アクセス管理部５１がグローバルメモリ部７０に対して、データの読み込みを実施するかどうかを確認する（ステップＳ４）。データの読み込みではない場合、終了する。
【００３２】
他方、データ読み込みを実施する場合、対象データの読み込み処理を実施させ、クロック部６０より提供されるタイミング情報を利用して、読み込みタイムスタンプをタイムスタンプ記録部５２に記録する（ステップＳ５）。また、タイムスタンプ記録部５２に記録された読み込みタイムスタンプと書き込みタイムスタンプの差を計算する（ステップＳ６）。その後、ステップＳ６で計算した差（計算値すなわち実測値）を、タイムスタンプ間隔期待値と比較して、計算値が期待値より大きいかどうかを確認する（ステップＳ７）。計算値がタイムスタンプ間隔期待値より小さい場合、何もせずに終了する。他方、計算値がタイムスタンプ間隔期待値より大きい場合、フェイルセーフ部４０に通知（ステップＳ８）して終了する。
【００３３】
（第２実施形態）
なお、上述の第１実施形態では、コア２０及びコア２１の二つのコアを有する構成を例に挙げたが、本発明は、二つのコアに限られるものではなく、三つ以上のコアを有する構成であってもよい。本発明の第２実施形態では、三つ以上のコアを有する。この第２実施形態の場合、図１に示したタイムスタンプ記録部５２が三つ以上のコアのアクセスタイムスタンプを記録する。また、アクセス権限記録部５３が三つ以上のコアがグローバルメモリ部７０へのアクセス権限を記録する。
【００３４】
（第３実施形態）
なお、上述の第１実施形態では、グローバルメモリ管理部５０が、アクセス管理部５１、アクセス権限記録部５３及びタイムスタンプ記録部５２を有する構成としたが、本発明は、これらをまとめない構成であってもよい。また、複数のコアごとに、アクセス管理部及びアクセス権限管理部を設けてもよい。本発明の第３実施形態では、この構成について説明する。図４は本発明の第３実施形態によるマルチコア通信システムの基本構成図である。図４において、図１に示した第１実施形態と同一部分には同一符号を付して説明を省略し、異なる部分について説明する。
【００３５】
本実施形態では、図４に示すように、コア２０に対して、コア２０アクセス管理部８０とコア２０アクセス権限記録部９０を設け、コア２０アクセス権限記録部９０は、コア２０のグローバルメモリ部７１へのアクセス権限を記録する。コア２０アクセス管理部８０は、コア２０アクセス権限記録部９０に記録するアクセス権限に基づき、コア２０からグローバルメモリ部７１へのアクセスを許可、又は却下することができる。
【００３６】
また、コア２０アクセス管理部８０は、グローバルメモリ部７１の一部であるタイムスタンプ記録部５２に記録するアクセスタイムスタンプに基づき、コア間の通信データにリアルタイム性異常かどうかを判断することができる。異常だと判断する場合、フェイルセーフ部４０に通知することができる。
【００３７】
また、本実施形態では、図４に示すように、コア２１に対して、コア２１アクセス管理部８１とコア２１アクセス権限記録部９１を設け、コア２１アクセス権限記録部９１は、コア２１のグローバルメモリ部７１へのアクセス権限を記録する。コア２１アクセス管理部８１は、コア２１アクセス権限記録部９１に記録するアクセス権限に基づき、コア２１からグローバルメモリ部７１へのアクセスを許可、又は却下することができる。
【００３８】
また、コア２１アクセス管理部８１は、グローバルメモリ部７１の一部であるタイムスタンプ記録部５２に記録するアクセスタイムスタンプに基づき、コア間の通信データにリアルタイム性異常かどうかを判断することができる。異常だと判断する場合、フェイルセーフ部４０に通知することができる。
【００３９】
なお、以上説明した各構成は、ソフトウェアで構成してもよいし、ハードウェアで構成してもよい。
【００４０】
以上説明した本発明は、以下の構成を有する。
（構成１）
複数のコア（コア２０、コア２１）を有し、前記複数のコアの間で通信を行うマルチコア通信システムであって、
前記複数のコアは、第一のコア（コア２０）を含み、
前記複数のコアは、第二のコア（コア２１）を含み、
前記第一のコアが第一のデータを書き込み可能であり、前記第二のコアが前記第一のコアによって書き込まれた前記第一のデータを読み込み可能なグローバルメモリ部（グローバルメモリ部７０）と、
前記グローバルメモリ部に対する、前記第一のコアによる前記第一のデータの書き込みと前記第二のコアによる前記第一のデータの読み込みとにおけるリアルタイム性異常を検出するリアルタイム性異常検出部（図１のグローバルメモリ管理部５０、又は、図４のタイムスタンプ記録部５２、コア２０アクセス管理部８０及びコア２１アクセス管理部８１）と、
前記リアルタイム性異常検出部によって前記リアルタイム性異常を検出した場合に、フェイルセーフ制御を実行するフェイルセーフ部（フェイルセーフ部４０）と、
を備えたことを特徴とするマルチコア通信システム。
【００４１】
この構成によれば、データのリアルタイム性を担保し、より信頼性が高いマルチコア通信システムを提供することができる。
【００４２】
また、以上説明した本発明は、以下の構成を有する。
（構成２）
構成１に記載のマルチコア通信システムであって、
前記リアルタイム性異常検出部は、
前記第一のコアが前記グローバルメモリ部に前記第一のデータを書き込んだ時間である第一の時間と、前記第二のコアが前記グローバルメモリ部から前記第一のデータを読み込んだ時間である第二の時間と、を記録するタイムスタンプ部（図１のタイムスタンプ記録部５２、又は、図４のタイムスタンプ記録部５２）と、
前記タイムスタンプ部に記録された前記第一の時間と前記第二の時間との時間差を算出する時間差算出部（図１のアクセス管理部５１、又は、図４のコア２０アクセス管理部８０及びコア２１アクセス管理部８１）と、
前記時間差算出部によって算出した時間差が、所定の時間差よりも長い場合に、前記リアルタイム性異常を検出する時間差比較部（図１のアクセス管理部５１、又は、図４のコア２０アクセス管理部８０及びコア２１アクセス管理部８１）と、
を有する、
ことを特徴とするマルチコア通信システム。
【００４３】
この構成によれば、書き込みのタイムスタンプと読み込みのタイムスタンプとの差を見るという簡単な構成で、リアルタイム性異常を検出することができ、コストを低減することができる。
【００４４】
また、以上説明した本発明は、以下の構成を有する。
（構成３）
構成２に記載のマルチコア通信システムであって、
前記タイムスタンプ部は、前記複数のコアの動作クロックの周波数よりも高い周波数（クロック部６０による周波数）を用いて、前記第一の時間および前記第二の時間を記録する、
ことを特徴とするマルチコア通信システム。
【００４５】
この構成によれば、書き込みタイミングや読み込みタイミングを逸することなくタイムスタンプを記録することができる。
【００４６】
また、以上説明した本発明は、以下の構成を有する。
（構成４）
構成１から３のいずれか一項に記載のマルチコア通信システムであって、
前記複数のコアのそれぞれについて、前記グローバルメモリ部に対するデータの書き込み及び読み込みのそれぞれを可とするか不可とするかを制御するアクセス許可部（図１のアクセス権限記録部５３及びアクセス管理部５１、又は、図４のコア２０アクセス権限記録部９０、コア２１アクセス権限記録部９１、コア２０アクセス管理部８０及びコア２１アクセス管理部８１）を、
さらに備えた、
ことを特徴とするマルチコア通信システム。
【００４７】
この構成によれば、コアごとのアクセスの許可、不許可を簡単な構成で管理することができ、コストを低減することができる。
【００４８】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【符号の説明】
【００４９】
１０…マルチコア通信手段、２０…コア２０、２１…コア２１、３０…メモリ、３１…メモリ、４０…フェイルセーフ部、５０…グローバルメモリ管理部、５１…アクセス管理部、５２…タイムスタンプ記録部、５３…アクセス権限記録部、６０…クロック部、７０…グローバルメモリ部。
【図１】
2020003923.tif 000005
【図２】
2020003923.tif 000006
【図３】
2020003923.tif 000007
【図４】
2020003923.tif 000008