(57)【要約】【課題】システムの健全性を確保しつつ、部品点数を削減してコストを低減する。【解決手段】複数のプロセッサコアを有するマルチコアプロセッサであって、データの転送を実行するデータ転送部と、異常を検出する異常検出手段とを具備し、複数のプロセッサコア各々は、外部からの１つの入力値に基づいて演算処理を実行し、お互いの演算結果を比較し、データ転送部は、各プロセッサコアの比較結果に基づいて信号を異常検出手段に出力し、異常検出手段は、データ転送部から入力される信号に基づいて異常を検出する。【選択図】図１
2015125612.tif 000002
【特許請求の範囲】
【請求項１】
複数のプロセッサコアを有するマルチコアプロセッサであって、
データの転送を実行するデータ転送部と、
異常を検出する異常検出手段とを具備し、
前記複数のプロセッサコア各々は、外部からの１つの入力値に基づいて演算処理を実行し、お互いの演算結果を比較し、
前記データ転送部は、各プロセッサコアの比較結果に基づいて信号を前記異常検出手段に出力し、
前記異常検出手段は、前記データ転送部から入力される信号に基づいて異常を検出することを特徴とするマルチコアプロセッサ。
【請求項２】
前記複数のプロセッサコアの１つは、演算結果を比較し、演算結果が一致する場合には、トリガ信号としてオンを前記データ転送部に出力し、一致しない場合には、前記トリガ信号としてオフを前記データ転送部に出力し、
前記複数のプロセッサコアの残りは、演算結果を比較し、演算結果が一致する場合には、転送用データを前記データ転送部に出力し、一致しない場合には、前記転送用データを前記データ転送部に出力せず、
前記データ転送部は、前記トリガ信号がオンかつ前記転送用データが入力された場合には、前記信号として前記転送用データを前記異常検出手段に出力し、一方、前記トリガ信号がオフあるいは前記転送用データが入力されない場合には、前記信号として前記転送用データを前記異常検出手段に出力しないことを特徴とする請求項１に記載のマルチコアプロセッサ。
【請求項３】
前記データ転送部は、ダイレクトメモリーアクセスで、データを転送することを特徴とする請求項１または２に記載のマルチコアプロセッサ。
【請求項４】
前記異常検出手段は、ウォッチドッグタイマーであることを特徴とする請求項１〜３のいずれか一項に記載のマルチコアプロセッサ。
【請求項５】
前記複数のプロセッサコアの１つは、ＦＰＵ（Floating Point Unit）であることを特徴とする請求項１〜４のいずれ一項に記載のマルチコアプロセッサ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、マルチコアプロセッサに関する。
【背景技術】
【０００２】
下記特許文献１には、複数のプロセッサと、複数のプロセッサそれぞれの演算結果の一部を格納するための複数のデータ格納手段と、複数のデータ格納手段に格納された複数のプロセッサの演算結果を比較する比較回路と、比較回路の比較結果の履歴を格納する比較履歴格納手段とを有し、演算結果の健全性を判断し、演算結果が健全で無いと判断された場合には出力を安全側に制御することによって、システムの健全性を確保するファイルセイフ制御装置が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−１１５７９５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、上記従来技術では、システムの健全性を確保するために、プロセッサの外部に比較回路が設けられているが、プロセッサとは別に比較回路が必要となるため、部品点数が増加してコスト高になるという問題が発生していた。
【０００５】
本発明は、上述した事情に鑑みてなされたものであり、システムの健全性を確保しつつ、部品点数を削減してコストを低減することを目的とする。
【課題を解決するための手段】
【０００６】
上記目的を達成するために、本発明では、第１の解決手段として、複数のプロセッサコアを有するマルチコアプロセッサであって、データの転送を実行するデータ転送部と、異常を検出する異常検出手段とを具備し、前記複数のプロセッサコア各々は、外部からの１つの入力値に基づいて演算処理を実行し、お互いの演算結果を比較し、前記データ転送部は、各プロセッサコアの比較結果に基づいて信号を前記異常検出手段に出力し、前記異常検出手段は、前記データ転送部から入力される信号に基づいて異常を検出する、という手段を採用する。
【０００７】
本発明では、第２の解決手段として、上記第１の解決手段において、前記複数のプロセッサコアの１つは、演算結果を比較し、演算結果が一致する場合には、トリガ信号としてオンを前記データ転送部に出力し、一致しない場合には、前記トリガ信号としてオフを前記データ転送部に出力し、前記複数のプロセッサコアの残りは、演算結果を比較し、演算結果が一致する場合には、転送用データを前記データ転送部に出力し、一致しない場合には、前記転送用データを前記データ転送部に出力せず、前記データ転送部は、前記トリガ信号がオンかつ前記転送用データが入力された場合には、前記信号として前記転送用データを前記異常検出手段に出力し、一方、前記トリガ信号がオフあるいは前記転送用データが入力されない場合には、前記信号として前記転送用データを前記異常検出手段に出力しない、という手段を採用する。
【０００８】
本発明では、第３の解決手段として、上記第１または第２の解決手段において、前記データ転送部は、ダイレクトメモリーアクセスで、データを転送する、という手段を採用する。
【０００９】
本発明では、第４の解決手段として、上記第１〜第３のいずれか１つの解決手段において、前記異常検出手段は、ウォッチドッグタイマーである、という手段を採用する。
【００１０】
本発明では、第５の解決手段として、上記第１〜第４のいずれか１つの解決手段において、前記複数のプロセッサコアの１つは、ＦＰＵ（Floating Point Unit）である、という手段を採用する。
【発明の効果】
【００１１】
本発明によれば、複数のプロセッサコアを有するマルチコアプロセッサであって、
データの転送を実行するデータ転送部と、異常を検出する異常検出手段とを具備し、前記複数のプロセッサコア各々は、外部からの１つの入力値に基づいて演算処理を実行し、お互いの演算結果を比較し、前記データ転送部は、各プロセッサコアの比較結果に基づいて信号を前記異常検出手段に出力し、前記異常検出手段は、前記データ転送部から入力される信号に基づいて異常を検出することによって、従来技術のように比較回路を必要としないので、システムの健全性を確保しつつ、部品点数を削減してコストを削減できる。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１実施形態に係るマルチコアプロセッサの機能ブロック図である。
【図２】本発明の第１実施形態に係るマルチコアプロセッサの動作を示すフローチャートである。
【図３】本発明の第２実施形態に係るマルチコアプロセッサの機能ブロック図である。
【図４】本発明の第２実施形態に係るマルチコアプロセッサの動作を示すフローチャートである。
【発明を実施するための形態】
【００１３】
〔第1実施形態〕
初めに第１実施形態について説明する。本第１実施形態に係るマルチコアプロセッサは、電気自動車（ＥＶ：Electric Vehicle）あるいはハイブリッド自動車（ＨＶ：Hybrid Vehicle）等の移動車両に搭載され、共に移動車両に搭載されている周辺機器Ｈを制御するものであり、図１に示すように、第１プロセッサコアＥ１、第２プロセッサコアＥ２、データ転送部Ｄ及び異常検出部Ｓを備える。
【００１４】
第１プロセッサコアＥ１は、処理を行うための論理回路や１次キャッシュ等から構成され、マルチコアプロセッサにおける処理を実行するための中核部の１つとして機能するものである。この第１プロセッサコアＥ１は、予め記憶するプログラムに従って処理を実行し、図１に示すように、演算部１ａ及び比較部１ｂを備える。
【００１５】
演算部１ａは、上述したプログラムに従って行われる処理の１つを実行するものであり、周辺機器Ｈから入力される入力値に基づいて所定の演算処理を実行する。
比較部１ｂも、上述したプログラムに従って行われる処理の１つを実行するものであり、演算部１ａによる演算結果と、後述する第２プロセッサコアＥ２の演算部２ａによる演算結果とを比較し、一致するか否か比較処理を実行する。
【００１６】
第２プロセッサコアＥ２は、処理を行うための論理回路や１次キャッシュ等から構成され、マルチコアプロセッサにおける処理を実行するための中核部の１つとして機能するものであり、例えば、ＦＰＵ（Floating Point Unit）である。この第２プロセッサコアＥ２も、予め記憶するプログラムに従って処理を実行し、図１に示すように、演算部２ａ及び比較部２ｂを備える。
【００１７】
演算部２ａは、上述したプログラムに従って行われる処理の１つを実行するものであり、周辺機器Ｈから入力される入力値に基づいて演算処理を実行する。
比較部２ｂも、上述したプログラムに従って行われる処理の１つを実行するものであり、第１プロセッサコアＥ１の演算部１ａによる演算結果と、演算部２ａによる演算結果とを比較し、一致するか否か比較処理を実行する。
本マルチコアプロセッサでは、第１プロセッサコアＥ１及び第２プロセッサコアＥ２によって処理を並列に実行することで、処理速度を向上させることができる。
【００１８】
データ転送部Ｄは、ダイレクトメモリーアクセスによってデータを転送する記憶装置であり、例えば、第１プロセッサコアＥ１や第２プロセッサコアＥ２から入力されるデータに基づいて異常検出部Ｓへのデータの転送を実行する。
【００１９】
異常検出部Ｓは、データ転送部Ｄから転送されたデータに基づいて第１プロセッサコアＥ１や第２プロセッサコアＥ２の異常を検出するものであり、例えば、ウォッチドッグタイマーである。
一方、周辺機器Ｈは、マルチコアプロセッサの外部に設けられた機器であり、移動車両に搭載される走行モータ、発電機及び昇圧回路等であり、通信バスを介してマルチコアプロセッサと信号を送受信する。
【００２０】
次に、このように構成されたマルチコアプロセッサの動作について図２を参照して説明する。
まず、第１プロセッサコアＥ１及び第２プロセッサコアＥ２は、周辺機器Ｈから１つの入力値を取得し（ステップＳ１）、演算部１ａ，２ａにおいて、周辺機器Ｈからの１つの入力値に基づいて演算処理を実行する（ステップＳ２）。
【００２１】
例えば、周辺機器Ｈが、走行モータである場合には、走行モータに設けられる回転センサによって検出される走行モータの回転子の回転位置を示す回転位置信号が、第１プロセッサコアＥ１及び第２プロセッサコアＥ２に入力される。第１プロセッサコアＥ１及び第２プロセッサコアＥ２は、周辺機器Ｈである走行モータから入力される回転位置信号に対して、上記演算処理である微分処理を実行することによって、走行モータの回転子の角速度を算出する。
【００２２】
第１プロセッサコアＥ１及び第２プロセッサコアＥ２は、上述したように演算処理を実行して算出した演算結果を、比較部１ｂ，２ｂにおいて、比較する（ステップＳ３）。つまり、第１プロセッサコアＥ１及び第２プロセッサコアＥ２は、周辺機器Ｈからの入力される１つの入力値に対して同じ演算処理を実行し、お互いに演算結果が一致するか否か比較処理を実行する。
【００２３】
そして、第１プロセッサコアＥ１は、演算結果が一致する場合には、トリガ信号としてオン（例えば「１」）をデータ転送部Ｄに出力し、一方、一致しない場合には、トリガ信号としてオフ（例えば「０」）をデータ転送部Ｄに出力する。
一方、第２プロセッサコアＥ２は、演算結果を比較し、演算結果が一致する場合には、転送用データをデータ転送部Ｄに出力し、一方、一致しない場合には、転送用データをデータ転送部Ｄに出力しない。
【００２４】
上記転送用データは、ウォッチドッグタイマーである異常検出部Ｓのタイマをクリアするための更新データである。転送用データとして、例えば、「５５→ＡＡ→５５→ＡＡ →５５→ＡＡ・・・」というように、１０ｍｓ間隔で、「５５」と「ＡＡ」とが順番に第２プロセッサコアＥ２からデータ転送部Ｄへ出力される。つまり、第１プロセッサコアＥ１によるトリガ信号の出力処理と、第２プロセッサコアＥ２による転送用データの出力処理とは、同期して、１０ｍｓ間隔で実行される。
【００２５】
一方、データ転送部Ｄは、上記トリガ信号及び転送用データに基づいて転送用データの転送を実行する（ステップＳ４）。つまり、データ転送部Ｄは、トリガ信号がオンかつ転送用データが入力された場合には、転送用データを異常検出部Ｓに出力し、一方、トリガ信号がオフあるいは転送用データが入力されない場合には、転送用データを異常検出部Ｓに出力しない。
【００２６】
一方、異常検出部Ｓは、データ転送部Ｄから転送用データが転送されると、内部のレジスタに転送用データが書き込まれ、レジスタに転送用データが書き込まれると、タイマをクリアし、一方、データ転送部Ｄから転送用データが転送されずに、タイマがオーバーフローした場合には、リセットを実行する（ステップＳ５）。
【００２７】
例えば、異常検出部Ｓは、データ転送部Ｄから転送用データとして「５５」と「ＡＡ」とが１０ｍｓ間隔で継続的に転送され間、「５５」あるいは「ＡＡ」がレジスタに書き込まれる度に、タイマをクリアして、リセットを実行しない。一方、異常検出部Ｓは、データ転送部Ｄから転送用データとして「５５」あるいは「ＡＡ」が転送されない場合には、「５５」あるいは「ＡＡ」がレジスタに書き込まれないため、タイマがオーバーフローして、リセットを実行する。このリセットによって、第１、第２プロセッサコアＥ１，Ｅ２各々は、第１プロセッサコアＥ１あるいは第２プロセッサコアＥ２に異常が発生したことを認識することができる。
【００２８】
このような本実施形態によれば、第１、第２プロセッサコアＥ１，Ｅ２各々が外部からの１つの入力値に基づいて演算処理を実行し、お互いの演算結果を比較し、また、データ転送部Ｄが、各第１、第２プロセッサコアＥ１，Ｅ２の比較結果に基づいて転送用データを異常検出部Ｓに出力し、さらに、異常検出部Ｓが、データ転送部Ｄから入力される転送用データに基づいて異常を検出した場合にはリセットを実行することによって、従来技術のように比較回路を必要としないので、システムの健全性を確保しつつ、部品点数を削減してコストを削減できる。
【００２９】
〔第２実施形態〕
次に、第２実施形態に係るマルチコアプロセッサについて説明する。
本第２実施形態に係るマルチコアプロセッサは、以下の点において、上記第１実施形態と相違する。つまり、本実施形態に係るマルチコアプロセッサは、図３に示すように、第３プロセッサコアＥ３を新たに備える点において、上記第１実施形態と相違する。これ以外の構成要素については第１実施形態と同様である。よって、第２実施形態において第１実施形態と同様の構成要素については説明を省略する。
【００３０】
第３プロセッサコアＥ３は、処理を行うための論理回路や１次キャッシュ等から構成され、マルチコアプロセッサにおける処理を実行するための中核部の１つとして機能するものである。この第３プロセッサコアＥ３は、予め記憶するプログラムに従って処理を実行し、図３に示すように、演算部３ａ及び比較部３ｂを備える。
【００３１】
演算部３ａは、上述したプログラムに従って行われる処理の１つを実行するものであり、周辺機器Ｈから入力される入力値に基づいて所定の演算処理を実行する。
比較部３ｂも、上述したプログラムに従って行われる処理の１つを実行するものであり、第１プロセッサコアＥ１の演算部１ａによる演算結果と、演算部３ａによる演算結果とを比較し、一致するか否か比較処理を実行する。
本マルチコアプロセッサでは、第１プロセッサコアＥ１、第２プロセッサコアＥ２及び第３プロセッサコアＥ３によって処理を並列に実行することで、処理速度を向上させることができる。
【００３２】
次に、このように構成されたマルチコアプロセッサの動作について図４を参照して説明する。
まず、第１プロセッサコアＥ１、第２プロセッサコアＥ２及び第３プロセッサコアＥ３は、周辺機器Ｈから１つの入力値を取得し（ステップＳ１１）、演算部１ａ，２ａ，３ａにおいて、周辺機器Ｈからの１つの入力値に基づいて演算処理を実行する（ステップＳ１２）。
【００３３】
例えば、周辺機器Ｈが、走行モータである場合には、走行モータに設けられる回転センサによって検出される走行モータの回転子の回転位置を示す回転位置信号が、第１プロセッサコアＥ１、第２プロセッサコアＥ２及び第３プロセッサコアＥ３に入力される。第１プロセッサコアＥ１、第２プロセッサコアＥ２及び第３プロセッサコアＥ３は、周辺機器Ｈである走行モータから入力される回転位置信号に対して、上記演算処理である微分処理を実行することによって、走行モータの回転子の角速度を算出する。
【００３４】
第１プロセッサコアＥ１、第２プロセッサコアＥ２及び第３プロセッサコアＥ３は、上述したように演算処理を実行して算出した演算結果を、比較部１ｂ，２ｂにおいて、比較する（ステップＳ１３）。つまり、第１プロセッサコアＥ１は、比較部１ｂにおいて、演算部１ａによる演算結果と、第２プロセッサコアＥ２の演算部２ａによる演算結果とを比較し、一致するか否か比較処理を実行する。また、第２プロセッサコアＥ２は、比較部２ｂにおいて、第１プロセッサコアＥ１の演算部１ａによる演算結果と、演算部２ａによる演算結果とを比較し、一致するか否か比較処理を実行する。さらに、第３プロセッサコアＥ３は、比較部３ｂにおいて、第１プロセッサコアＥ１の演算部１ａによる演算結果と、演算部３ａによる演算結果とを比較し、一致するか否か比較処理を実行する。
【００３５】
そして、第１プロセッサコアＥ１は、演算結果が一致する場合には、トリガ信号としてオン（例えば「１」）をデータ転送部Ｄに出力し、一方、一致しない場合には、トリガ信号としてオフ（例えば「０」）をデータ転送部Ｄに出力する。
一方、第２プロセッサコアＥ２は、演算結果を比較し、演算結果が一致する場合には、第１転送用データをデータ転送部Ｄに出力し、一方、一致しない場合には、第１転送用をデータ転送部Ｄに出力しない。
一方、第３プロセッサコアＥ３は、演算結果を比較し、演算結果が一致する場合には、第２転送用データをデータ転送部Ｄに出力し、一方、一致しない場合には、第２転送用データをデータ転送部Ｄに出力しない。
【００３６】
上記第１、第２転送用データは、ウォッチドッグタイマーである異常検出部Ｓのタイマをクリアするための更新データである。第１転送用データとして、例えば、「５５」が第２プロセッサコアＥ２からデータ転送部Ｄへ出力される。また、第２転送用データとして、例えば、「ＡＡ」が第３プロセッサコアＥ３からデータ転送部Ｄへ出力される。この第１転送用データと、第２転送用データとは、１０ｍｓ間隔で、交互に出力される。
【００３７】
つまり、第２プロセッサコアＥ２による第１転送用データの出力処理は、２０ｍｓ間隔で実行される。また、第３プロセッサコアＥ３による第２転送用データの出力処理も、２０ｍｓ間隔で実行される。その際、第２プロセッサコアＥ２による第１転送用データの出力処理と、第３プロセッサコアＥ３による第２転送用データの出力処理とが交互に実行されることで、第１転送用データと、第２転送用データとが、１０ｍｓ間隔で、交互に出力される。
なお、第１プロセッサコアＥ１によるトリガ信号の出力処理は、第２プロセッサコアＥ２による第１転送用データの出力処理と、第３プロセッサコアＥ３による第２転送用データの出力処理とに同期して、１０ｍｓ間隔で実行される。
【００３８】
一方、データ転送部Ｄは、上記トリガ信号、第１転送用データ及び第２転送用データに基づいて第１転送用データ及び第２転送用データの転送を実行する（ステップＳ１４）。つまり、データ転送部Ｄは、トリガ信号がオンかつ第１転送用データが入力された場合には、第１転送用データを異常検出部Ｓに出力し、トリガ信号がオフあるいは第１転送用データが入力されない場合には、第１転送用データを異常検出部Ｓに出力しない。また、データ転送部Ｄは、トリガ信号がオンかつ第２転送用データが入力された場合には、第２転送用データを異常検出部Ｓに出力し、トリガ信号がオフあるいは第２転送用データが入力されない場合には、第２転送用データを異常検出部Ｓに出力しない。
【００３９】
一方、異常検出部Ｓは、データ転送部Ｄから第１転送用データあるいは第２転送用データが転送されると、内部のレジスタに第１転送用データあるいは第２転送用データが書き込まれ、レジスタに第１転送用データあるいは第２転送用データが書き込まれると、タイマをクリアし、一方、データ転送部Ｄから第１転送用データあるいは第２転送用データが転送されずに、タイマがオーバーフローした場合には、リセットを実行する（ステップＳ１５）。
【００４０】
例えば、異常検出部Ｓは、データ転送部Ｄから第１転送用データとして「５５」あるいは第２転送用データとして「ＡＡ」とが１０ｍｓ間隔で継続的に転送され間、「５５」あるいは「ＡＡ」がレジスタに書き込まれる度に、タイマをクリアして、リセットを実行しない。一方、異常検出部Ｓは、データ転送部Ｄから第１転送用データとして「５５」あるいは第２転送用データとして「ＡＡ」が転送されない場合には、「５５」あるいは「ＡＡ」がレジスタに書き込まれないため、タイマがオーバーフローして、リセットを実行する。このリセットによって、第１、第２、第３プロセッサコアＥ１，Ｅ２，Ｅ３各々は、第１プロセッサコアＥ１、第２プロセッサコアＥ２あるいは第３プロセッサコアＥ３に異常が発生したことを認識することができる。
【００４１】
このような本実施形態によれば、第１、第２、第３プロセッサコアＥ１，Ｅ２，Ｅ３各々が外部からの１つの入力値に基づいて演算処理を実行し、お互いの演算結果を比較し、また、データ転送部Ｄが、各第１、第２、第３プロセッサコアＥ１，Ｅ２，Ｅ３の比較結果に基づいて第１、第２転送用データを異常検出部Ｓに出力し、さらに、異常検出部Ｓが、データ転送部Ｄから入力される第１、第２転送用データに基づいて異常を検出した場合にはリセットを実行することによって、従来技術のように比較回路を必要としないので、システムの健全性を確保しつつ、部品点数を削減してコストを削減できる。
【００４２】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されることなく、例えば以下のような変形が考えられる。
（１）上記第１、第２実施形態は、ウォッチドッグタイマーを異常検出部Ｓとして用いたが、本発明はこれに限定されない。例えば、上記第１、第２実施形態において、第２、第３プロセッサコアＥ２，Ｅ３が、上述した転送用データではなく、単純なオン/オフ信号を出力するもの、つまり、演算結果が一致する場合には、オン信号をデータ転送部Ｄに出力し、一方演算結果が一致しない場合には、オフ信号をデータ転送部Ｄに出力するものである場合、データ転送部Ｄによってオン/オフ信号が異常検出部Ｓに転送される。その場合、異常検出部Ｓは、ウォッチドッグタイマーではなく、単純なオン/オフ信号に基づいて異常を検出するものであればよい。
【００４３】
（２）上記第１、第２実施形態は、プロセッサコアを２つあるいは３つ備えるものであるが、プロセッサコアについては４つ以上であってもよい。
（３）上記第１、第２実施形態は、移動車両に搭載されたものであるが、移動車両以外に、家電製品等の電子機器に搭載されていてもよい。
【符号の説明】
【００４４】
Ｅ１…第１プロセッサコア、Ｅ２…第２プロセッサコア、Ｄ…データ転送部、Ｓ…異常検出部、１ａ…演算部、１ｂ…比較部、２ａ…演算部、２ｂ…比較部、Ｅ３…第２プロセッサコア、３ａ…演算部、３ｂ…比較部
【図１】
2015125612.tif 000003
【図２】
2015125612.tif 000004
【図３】
2015125612.tif 000005
【図４】
2015125612.tif 000006