(57)【要約】      （修正有）【課題】周辺回路の仕様やタスクに対するプロセッサ割り当て等、搭載される車両が要求する機能を柔軟に実現することが可能な車載マルチプロセッサシステムを提供する。【解決手段】車両に搭載され、バス１０８を介して接続された周辺回路１０３〜１０５から出力される情報に基づいて、複数のプロセッサ１０１〜１０２により実行される特定のタスクが起動する車載マルチプロセッサシステムであって、前記周辺回路１０３〜１０５と前記複数のプロセッサ１０１〜１０２との接続回路の一部又は全部を構成するＦＰＧＡ（Field  Programmable  Gate  Array）１０６と、前記ＦＰＧＡ１０６の内部構成を定義するコンフィグレーション情報を記憶した記憶手段１０７とを備え、周辺回路の出力情報に基づいて特定のタスクを起動する。【選択図】図２
2011150637.tif 000002
【特許請求の範囲】
【請求項１】
車両に搭載され、バスを介して接続された周辺回路から出力される情報に基づいて、複数のプロセッサにより実行される特定のタスクが起動する車載マルチプロセッサシステムであって、
前記周辺回路と前記複数のプロセッサとの接続回路の一部又は全部を構成するＦＰＧＡ（Field  Programmable  Gate  Array）と、
前記ＦＰＧＡの内部構成を定義するコンフィグレーション情報を記憶した記憶手段と、
を備えることを特徴とする車載マルチプロセッサシステム。
【請求項２】
前記周辺回路は、前記バスを流れるアナログ値をデジタル値に変換するＡＤコンバータを含み、
前記ＦＰＧＡは、所定周期をもって前記ＡＤコンバータにより変換されたデジタル値に基づいて、前記タスクの起動判定を行なう手段である、
請求項１に記載の車載マルチプロセッサシステム。
【請求項３】
前記コンフィグレーション情報は、前記周辺回路から出力される情報と、前記複数のプロセッサのうち前記特定のタスクを起動させるプロセッサと、の対応づけを規定する情報を含む、
請求項１又は２に記載の車載マルチプロセッサシステム。
【請求項４】
前記タスクの起動トリガとなる情報が入力されるＤＭＡ（Direct  Memory  Access）コントローラを更に備える、
請求項１ないし３のいずれか１項に記載の車載マルチプロセッサシステム。
【請求項５】
前記複数のプロセッサは、
前記バスに接続された前記ＦＰＧＡにより前記タスクの起動判定が行われる一又は複数のプロセッサと、
前記ＤＭＡコントローラを介して入力された情報に基づいて、自己で前記タスクの起動判定を行なう一又は複数のプロセッサと、
を含む、
請求項４に記載の車載マルチプロセッサシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のプロセッサによって複数のタスクを独立に実行可能なマルチプロセッサシステムに関し、特に、車両に搭載され、車載機器から入力された情報に基づいてタスクが起動する車載マルチプロセッサシステムに関する。
【背景技術】
【０００２】
従来、外部機器から入力される情報に基づいてタスクが起動するマルチプロセッサシステムにおいては、プロセッサ毎に異なるタスクを実行する構成となっている。こうしたシステムでは、タスクの起動トリガは、外部機器に接続された周辺回路の出力に起因して発生することになるが、周辺回路の種類や起動条件はシステムによって様々である。このため、周辺回路や起動条件をソフトウエアによって選択可能にし、複数のシステムに対応可能とした方式が一般的である。
【０００３】
こうしたマルチプロセッサシステムでは、各プロセッサがシステムのタスクを分散して処理可能であるため、周辺回路とプロセッサを対応づける組み合わせ数が増加してしまい、ハードウエアの最適設計が困難であった。
【０００４】
図１は、従来のマルチプロセッサシステムのシステム構成例である。係る構成は、非特許文献１を参考にしている。図中、ＩＮＴＣは割り込みコントローラであり、ＤＭＡＣはＤＭＡ（Direct  Memory  Access）コントローラである。また、アクセラレータＡ、Ｂ、Ｃは、マルチプロセッサシステムが実現しようとするシステムＡ、Ｂ、Ｃに特化した回路であり、周辺Ｉ／Ｏ（周辺回路）と２つのＣＰＵとの接続回路として機能している。
【０００５】
また、特許文献１には、複数のプロセッサを備える半導体集積回路について記載されており、この回路では、あるプロセッサと周辺モジュールに割込み制御回路が接続されており、割込み制御回路は周辺モジュールからの割込み要求を上記第２のプロセッサに転送する構成となっている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０７−０８４９６３号公報
【非特許文献】
【０００７】
【非特許文献１】ＮＥＣエレクトロニクス株式会社、ユーザーズマニュアルＶ８５０ＥＳ／Ｆｘ３、ハードウエア編、２００８年５月発行、ドキュメント番号Ｕ１７７９３ＪＪ３Ｖ１ＵＭ００
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、図１に示すように、従来のマルチプロセッサシステムでは、周辺Ｉ／Ｏと２つのＣＰＵを接続する構成は冗長なものとなっており、これに応じて割り込みコントローラやＤＭＡコントローラの入力端子が増加し、入力制御が大規模なものとなってしまう。この結果、開発費が増大してしまう。また、図中、アクセラレータＡ、Ｂ、Ｃをシステムに合わせて個別に開発すると、開発コストが増大してしまう。
【０００９】
係る課題については、特許文献１に記載の半導体集積回路においても同様である。特許文献１に記載の半導体集積回路では、周辺モジュールの仕様が変更されるのに対応するため、割込み制御回路として多くの種類のハードウエアを開発する必要が生じる。
【００１０】
そして、このような課題は、車両に搭載され、車載機器から入力された情報に基づいてタスクが起動する車載マルチプロセッサシステムにおいて、特に重要なものとなっている。
【００１１】
本発明はこのような課題を解決するためのものであり、周辺回路の仕様やタスクに対するプロセッサ割り当て等、搭載される車両が要求する機能を柔軟に実現することが可能な車載マルチプロセッサシステムを提供することを、主たる目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するための本発明の一態様は、
車両に搭載され、バスを介して接続された周辺回路から出力される情報に基づいて、複数のプロセッサにより実行される特定のタスクが起動する車載マルチプロセッサシステムであって、
前記周辺回路と前記複数のプロセッサとの接続回路の一部又は全部を構成するＦＰＧＡ（Field  Programmable  Gate  Array）と、
前記ＦＰＧＡの内部構成を定義するコンフィグレーション情報を記憶した記憶手段と、
を備えることを特徴とする車載マルチプロセッサシステムである。
【００１３】
この本発明の一態様によれば、周辺回路の仕様やタスクに対するプロセッサ割り当て等、搭載される車両が要求する機能を柔軟に実現することができる。
【００１４】
本発明の一態様において、
前記周辺回路は、前記バスを流れるアナログ値をデジタル値に変換するＡＤコンバータを含み、
前記ＦＰＧＡは、所定周期をもって前記ＡＤコンバータにより変換されたデジタル値に基づいて、前記タスクの起動判定を行なう手段であるものとしてもよい。
【００１５】
また、本発明の一態様において、
前記コンフィグレーション情報は、前記周辺回路から出力される情報と、前記複数のプロセッサのうち前記特定のタスクを起動させるプロセッサと、の対応づけを規定する情報を含むものとしてもよい。
【００１６】
また、本発明の一態様において、
前記タスクの起動トリガとなる情報が入力されるＤＭＡ（Direct  Memory  Access）コントローラを更に備えるものとしてもよい。
【００１７】
この場合、
前記複数のプロセッサは、
前記バスに接続された前記ＦＰＧＡにより前記タスクの起動判定が行われる一又は複数のプロセッサと、
前記ＤＭＡコントローラを介して入力された情報に基づいて、自己で前記タスクの起動判定を行なう一又は複数のプロセッサと、
を含むものとしてもよい。
【発明の効果】
【００１８】
本発明によれば、周辺回路の仕様やタスクに対するプロセッサ割り当て等、搭載される車両が要求する機能を柔軟に実現することが可能な車載マルチプロセッサシステムを提供することができる。
【図面の簡単な説明】
【００１９】
【図１】従来のマルチプロセッサシステムのシステム構成例である。
【図２】本発明の第１実施例に係る車載マルチプロセッサシステム１００のシステム構成例である。
【図３】第１実施例に係る車載マルチプロセッサシステム１００により実行される処理の流れの概要を示すフローチャートである。
【図４】第１実施例に係る車載マルチプロセッサシステム１００の部分構成例である。
【図５】カウンタ２０３、タイミング生成器２０４によって実行される基準タイミング生成処理フローを示す図である。
【図６】バスコントローラ２０５及び比較器２０６により実行される特定のタスクの起動判定に関する処理フローを示す図である。
【図７】ＣＰＵ１０１により実行されるタスク起動処理フローを示す図である。
【図８】図３〜図７の処理によって実現される、各構成要素の動作及び出力の変化を示すタイミングチャートである。
【図９】本発明の第２実施例に係る車載マルチプロセッサシステム２００のシステム構成例である。
【図１０】第２実施例に係る車載マルチプロセッサシステム２００の部分構成例である。
【図１１】ＤＭＡＣ３１１及びＩＮＴＣ３０９により実行される例外処理要求フローを示す図である。
【図１２】ＣＰＵ１０１により実行されるタスク起動処理フローを示す図である。
【図１３】第２実施例において実現される、各構成要素の動作及び出力の変化を示すタイミングチャートである。
【図１４】本発明の第３実施例に係る車載マルチプロセッサシステム３００のシステム構成例である。
【図１５】第３実施例に係る車載マルチプロセッサシステム２００の部分構成例である。
【図１６】バスコントローラ２０５及び比較器２０６により実行される特定のタスクの起動判定に関する処理フローを示す図である。
【図１７】ＣＰＵ５０２により実行されるタスク起動処理フローを示す図である。
【図１８】第３実施例において実現される、各構成要素の動作及び出力の変化を示すタイミングチャートである。
【発明を実施するための形態】
【００２０】
以下、本発明を実施するための形態について、添付図面を参照しながら実施例を挙げて説明する。
【実施例】
【００２１】
＜第１実施例＞
以下、図面を参照し、本発明の第１実施例に係る車載マルチプロセッサシステム１００について説明する。車載マルチプロセッサシステム１００は、車両に搭載され、種々の車載機器制御を行うためのシステムである。車載マルチプロセッサシステム１００の適用例としては、エンジン制御用コンピュータ、ブレーキ制御用コンピュータ、ステアリング制御用コンピュータ、ナビゲーション制御用コンピュータ、車両安定化制御（ＶＳＣやＶＤＩＭ等を含む）用コンピュータ等、種々のものが考えられる。
【００２２】
図２は、本発明の第１実施例に係る車載マルチプロセッサシステム１００のシステム構成例である。車載マルチプロセッサシステム１００は、主要な構成として、ＣＰＵ（Central  Processing  Unit）１０１、１０２と、周辺Ｉ／Ｏ１０３、１０４、１０５と、ＦＰＧＡ（Field  Programmable  Gate  Array）回路１０６と、接続情報用メモリ１０７と、を備える。これらの構成要素は、バス１０８にそれぞれが接続されており、更に、ＦＰＧＡ回路１０６は、ＣＰＵ１０１、１０２、周辺Ｉ／Ｏ１０３、１０４、１０５、ＦＰＧＡ回路１０６、及び接続情報用メモリ１０７に専用通信線を介して接続されている。
【００２３】
バス１０８は、例えば複数ビットの情報が伝達される多重通信線であり、接続された各機器がそれぞれ情報を参照可能となっている。バス１０８を介した機器間の通信は、例えばＡＭＢＡ（Advanced  Microcontroller  Bus  Architecture）に代表されるＬＳＩ内の接続バス仕様に基づいて行われる。また、ＣＡＮ（Controller  Area  Network）、ＬＩＮ（Local  Interconnect  Network）に代表される低速なボデー系通信プロトコル、ＭＯＳＴ（Media  Oriented  Systems  Transport）に代表されるマルチメディア系通信プロトコル、ＦｌｅｘＲａｙ等の適切な通信プロトコルを用いて行なわれてもよい。
【００２４】
また、車載マルチプロセッサシステム１００は、上記各構成要素が１チップ上に構築されると好適である。
【００２５】
ＣＰＵ１０１、１０２は、図示しないＲＯＭ等の主記憶装置に格納されたプログラムを実行し、種々の車載機器制御のための演算処理を実行する。ＣＰＵ１０１、１０２は、命令デコーダ、レジスタ、演算回路等を有するプロセッサである。
【００２６】
周辺Ｉ／Ｏ１０３、１０４、１０５は、プロセッサ以外の任意の構成を採用しうる。例えば、タイマ、ＡＤコンバータ、ポート、シリアルＩ／Ｆ、コンパレータ等が採用され得る。
【００２７】
ＦＰＧＡ回路１０６は、例えばセレクタ、ＲＡＭセル、フリップフロップ等が配列されており、接続情報用メモリ１０７に記憶されているコンフィグレーション情報に基づいてセレクタの切り替えを行うことにより、回路構成を任意に決定可能な半導体デバイスである。ＦＰＧＡ回路１０６は、主要な機能として、バス１０８を介して外部から入力されるデータによって所定の起動トリガが発生した場合に、コンフィグレーション情報により規定されたＣＰＵに対して、割り込みタスクの実行を指示する。
【００２８】
接続情報用メモリ１０７は、例えばＥＥＰＲＯＭ（Electronically  Erasable  and  Programmable  Read  Only  Memory）やＮＶ−ＲＡＭ等が用いられる。コンフィグレーション情報は、例えば車載マルチプロセッサシステム１００が車両に搭載される際に、その車両が要求する機能を車載マルチプロセッサシステム１００が実現できるように、予め設定されている。
【００２９】
図３は、第１実施例に係る車載マルチプロセッサシステム１００により実行される処理の流れの概要を示すフローチャートである。本フローは、車載マルチプロセッサシステム１００の搭載された車両システムが起動したとき（例えば、ＡＣＣオフの状態からＡＣＣオンの状態に遷移したとき）に開始される。
【００３０】
まず、初期化タスクを実行する（Ｓ１）。初期化タスクは、例えばバス１０８を介して車両制御における学習データを取得し、各ＣＰＵの内部レジスタに格納する処理等を含む。
【００３１】
そして、ＣＰＵ１０１、１０２が、それぞれ通常タスクを実行する（Ｓ２）。
【００３２】
続いて、ＣＰＵ１０１に起動要因が発生したか否かを判定し（Ｓ３）、ＣＰＵ１０１に起動要因が発生した場合は、ＣＰＵ１０１が通常タスクとは異なる特定のタスクを実行する（Ｓ４）。
【００３３】
ＣＰＵ１０１に起動要因が発生していない場合は、ＣＰＵ１０２に起動要因が発生したか否かを判定し（Ｓ５）、ＣＰＵ１０２に起動要因が発生した場合は、ＣＰＵ１０２が通常タスクとは異なる特定のタスクを実行する（Ｓ６）。
【００３４】
図４は、本実施例に係る車載マルチプロセッサシステム１００の部分構成例である。本図において、周辺Ｉ／Ｏ１０３はタイマ２０１であり、周辺Ｉ／Ｏ１０４はＡＤコンバータ２０２であるものとする。また、ＦＰＧＡ回路１０６は、カウンタ２０３、タイミング生成器２０４、バスコントローラ２０５、比較器２０６を備える構成として機能するように、コンフィグレーション情報が設定されているものとする。
【００３５】
タイマ２０１は、所定周波数のパルス信号をカウンタ２０３に出力する。カウンタ２０３、タイミング生成器２０４は、タイマ２０１のパルス信号に基づいて作動し、外部機器からバス１０８を介して入力される情報に基づいてタスク起動判定を行わせるための基準タイミング（本実施例では、具体的にはＡＤ変換開始指示信号）を生成する。
【００３６】
図５は、カウンタ２０３、タイミング生成器２０４によって実行される基準タイミング生成処理フローを示す図である。
【００３７】
まず、タイマ２０３から信号が入力されるまで待機する（Ｓ１０）。
【００３８】
タイマ２０３から信号が入力されると、カウンタ２０３のカウンタ値が１インクリメントする（Ｓ１１）。ここで、カウンタ２０３は、例えば０〜１５の整数値を取り得るインクリメントカウンタである。
【００３９】
タイミング生成器２０４は、カウンタ２０３のカウンタ値が５又は１０となる度に、ＡＤ変換開始指示信号をＡＤコンバータ２０２に出力する（Ｓ１２〜１４）。なお、カウンタ２０３のカウンタ値は、１５の状態からＳ１１においてインクリメントが行われると、オーバーフローによって０に戻る。従って、タイマ２０３及びタイミング生成器２０４は、周期的にＡＤ変換開始指示信号を出力することになる。
【００４０】
ＡＤ変換開始指示信号が入力されたＡＤコンバータ２０２は、その入力タイミングでバス１０８を流れている所定のアナログ値（例えば、外部機器である操舵角センサ等の車載センサの出力値）をデジタル値に変換してバス１０８に出力する。そして、変換が終了したタイミングでＡＤ変換終了通知信号をバスコントローラ２０５に出力する。
【００４１】
バスコントローラ２０５及び比較器２０６は、ＡＤ変換終了通知信号が入力されると、前述したバス１０８を流れている所定のアナログ値のデジタル変換値に基づいて、特定のタスクの起動判定を行う。
【００４２】
図６は、バスコントローラ２０５及び比較器２０６により実行される特定のタスクの起動判定に関する処理フローを示す図である。なお、以下では、通常タスクをタスクＢとし、特定のタスクをタスクＡとする。
【００４３】
まず、ＡＤコンバータ２０２からバスコントローラ２０５にＡＤ変換終了通知信号が入力されるまで待機する（Ｓ２０）。
【００４４】
ＡＤ変換終了通知信号が入力されると、ＡＤ変換結果をバス１０８からリード（読み込み）する（Ｓ２１）。
【００４５】
そして、ＡＤ変換結果（デジタル値）が所定範囲内の値であるか否かを判定し（Ｓ２２）、所定範囲内の値であればタスクＡの実行をＣＰＵ１０１に要求する（Ｓ２３）。
【００４６】
ＣＰＵ１０１は、図３において概説したように、タスクＡの実行要求がなされた場合には当該特定のタスクであるタスクＡを実行し、それ以外では通常のタスクであるタスクＢを実行する。
【００４７】
図７は、ＣＰＵ１０１により実行されるタスク起動処理フローを示す図である。図示するように、比較器２０６からタスクＡの実行要求がなされている場合には、タスクＡを実行し、それ以外ではタスクＢを実行する（Ｓ４０〜４２）。
【００４８】
図８は、図３〜図７の処理によって実現される、各構成要素の動作及び出力の変化を示すタイミングチャートである。
【００４９】
図示するように、タイマ２０１は、所定周波数のパルス信号をカウンタ２０３に出力する。カウンタ２０３は、タイマ２０１から信号が入力されるとカウンタ値が１ずつインクリメントし、カウンタ値が５又は１０に至る度にタイミング生成器２０４が、ＡＤ変換開始指示信号をＡＤコンバータ２０２に出力する。ＡＤコンバータ２０２は、ＡＤ変換開始指示信号の入力タイミングでバス１０８を流れている所定のアナログ値をデジタル値に変換してバス１０８に出力すると共に、変換が終了したタイミングでＡＤ変換終了通知信号をバスコントローラ２０５に出力する。
【００５０】
バス１０８には、ＡＤ変換終了通知信号が出力されたタイミングでデジタル変換値（図中、ＡＤ変換結果と表記した）が流れており、比較器２０６では、このデジタル変換値が所定範囲内である場合にタスクＡの起動要求をＣＰＵ１０１に出力する。ＣＰＵ１０１では、タスクＡの起動要求がなされている場合にはタスクＡを実行し、それ以外ではタスクＢを実行する。なお、ＣＰＵ１０１は、タスクＡを起動した後は、タスクＡが正常終了するまでの間はタスクＡの実行を継続する等してよい。
【００５１】
以上説明した本実施例の車載マルチプロセッサシステム１００によれば、周辺回路の仕様や特定のタスクの起動条件、タスク毎のＣＰＵ割り当て等、車載マルチプロセッサシステム１００が搭載される車両が要求する機能（接続関係）を、コンフィグレーション情報を適切に設定するだけで柔軟に実現することができる。
【００５２】
この結果、車両の要求する多種多様な機能に対して、個別に回路構成を開発、製造する必要がなくなり、車両の製造コストを低減することができる。また、車載マルチプロセッサシステム１００の開発時に想定していなかった機能が後日必要となった場合にも、コンフィグレーション情報を適切に変更するだけで新たな機能を実現することができ、開発期間や開発費用を低減することができる。
【００５３】
＜第２実施例＞
以下、図面を参照し、本発明の第２実施例に係る車載マルチプロセッサシステム２００について説明する。車載マルチプロセッサシステム２００は、車両に搭載され、種々の車載機器制御を行うためのシステムである。車載マルチプロセッサシステム２００の適用例としては、エンジン制御用コンピュータ、ブレーキ制御用コンピュータ、ステアリング制御用コンピュータ、ナビゲーション制御用コンピュータ、車両安定化制御（ＶＳＣやＶＤＩＭ等を含む）用コンピュータ等、種々のものが考えられる。
【００５４】
図９は、本発明の第２実施例に係る車載マルチプロセッサシステム２００のシステム構成例である。車載マルチプロセッサシステム２００は、主要な構成として、ＣＰＵ１０１、１０２と、周辺Ｉ／Ｏ３０３、３０４、３０５と、ＦＰＧＡ回路３０６と、接続情報用メモリ１０７と、ＩＮＴＣ（割り込みコントローラ）３０９、３１０と、ＤＭＡＣ（ＤＭＡコントローラ）３１１と、を備える。これらの構成要素は、ＦＰＧＡ回路３０６とＩＮＴＣ３０９、３１０を除き、バス３０８にそれぞれが接続されており、更に、ＦＰＧＡ回路３０６は、周辺Ｉ／Ｏ３０３、３０４、３０５、ＩＮＴＣ３０９、３１０、ＤＭＡＣ３１１、及び接続情報用メモリ１０７に専用通信線を介して接続されている。また、周辺Ｉ／Ｏ３０３、３０４、３０５は、ＩＮＴＣ３０９、３１０、ＤＭＡＣ３１１に専用通信線を介して接続されている。
【００５５】
バス３０８は、例えば複数ビットの情報が伝達される多重通信線であり、接続された各機器がそれぞれ情報を参照可能となっている。バス３０８を介した機器間の通信は、例えばＡＭＢＡに代表されるＬＳＩ内の接続バス仕様に基づいて行われる。また、ＣＡＮやＬＩＮに代表される低速なボデー系通信プロトコル、ＭＯＳＴに代表されるマルチメディア系通信プロトコル、ＦｌｅｘＲａｙ等の適切な通信プロトコルを用いて行なわれてもよい。
【００５６】
また、車載マルチプロセッサシステム２００は、上記各構成要素が１チップ上に構築されると好適である。
【００５７】
ＣＰＵ１０１、１０２、及び接続情報用メモリ１０７については、第１実施例と同様であり、説明を省略する。
【００５８】
周辺Ｉ／Ｏ３０３、３０４、３０５は、プロセッサ以外の任意の構成を採用しうる。例えば、タイマ、ＡＤコンバータ、ポート、シリアルＩ／Ｆ、コンパレータ等が採用され得る。
【００５９】
ＦＰＧＡ回路３０６は、例えばセレクタ、ＲＡＭセル、フリップフロップ等が配列されており、接続情報用メモリ１０７に記憶されているコンフィグレーション情報に基づいてセレクタの切り替えを行うことにより、回路構成を任意に決定可能な半導体デバイスである。ＦＰＧＡ回路３０６は、主要な機能として、周辺Ｉ／Ｏ３０３、３０４、３０５から入力される信号に基づいてタスク起動のための判定基準タイミングを生成し、ＤＭＡＣ３１１等に出力する。
【００６０】
第２実施例に係る車載マルチプロセッサシステム２００により実行される処理の流れの概要については、第１実施例と同様であるため、図３を参照することとし、詳細な説明を省略する。
【００６１】
図１０は、本実施例に係る車載マルチプロセッサシステム２００の部分構成例である。本図において、周辺Ｉ／Ｏ３０３はタイマ２０１であり、周辺Ｉ／Ｏ３０４はＡＤコンバータ２０２であるものとする。また、ＦＰＧＡ回路３０６は、カウンタ４０３、タイミング生成器４０４を備える構成として機能するように、コンフィグレーション情報が設定されているものとする。
【００６２】
タイマ２０１は、所定周波数のパルス信号をカウンタ２０３に出力する。カウンタ２０３、タイミング生成器２０４は、タイマ２０１のパルス信号に基づいて作動し、外部機器からバス３０８を介して入力される情報に基づいてタスク起動判定を行わせるための基準タイミング（本実施例では、具体的にはＡＤ変換開始指示信号）を生成する。
【００６３】
なお、カウンタ４０３、タイミング生成器４０４によって実行される基準タイミング生成処理フローについては、第１実施例と同様であるため、図５を参照することとし、詳細な説明を省略する（カウンタ２０３をカウンタ４０３に、タイミング生成器２０４をタイミング生成器４０４に読み替える）。
【００６４】
タイミング生成器２０４からＡＤ変換開始指示信号が入力されたＡＤコンバータ２０２は、その入力タイミングで、バス３０８を流れている所定のアナログ値（例えば、外部機器である操舵角センサ等の車載センサの出力値）をデジタル値に変換してバス３０８に出力する。そして、変換が終了したタイミングでＡＤ変換終了通知信号をＤＭＡＣ３１１に出力する。
【００６５】
ＤＭＡＣ３１１は、ＡＤ変換終了通知信号が入力されると、バス３０８を流れている所定のアナログ値のデジタル変換値を読み込み、ＩＮＴＣ３０９に例外処理要求を出力させる。
【００６６】
図１１は、ＤＭＡＣ３１１及びＩＮＴＣ３０９により実行される例外処理要求フローを示す図である。
【００６７】
まず、ＡＤコンバータ２０２からＤＭＡＣ３１１にＡＤ変換終了通知信号が入力されるまで待機する（Ｓ５０）。
【００６８】
ＡＤ変換終了通知信号が入力されると、ＤＭＡＣ３１１は、ＡＤ変換結果をバス１０８からリード（読み込み）する（Ｓ５１）。
【００６９】
そして、ＩＮＴＣ３０９は例外処理要求と共にＡＤ変換結果をＣＰＵ１０１に出力する（Ｓ５２）。
【００７０】
図１２は、ＣＰＵ１０１により実行されるタスク起動処理フローを示す図である。ＣＰＵ１０１は、ＩＮＴＣ３０９から例外処理要求が入力されているか否かを判定し（Ｓ６０）、ＩＮＴＣ３０９から例外処理要求が入力されていない場合にはタスクＢを実行する（Ｓ６１）。
【００７１】
一方、ＩＮＴＣ３０９から例外処理要求が入力されている場合には、ＡＤ変換結果が所定範囲内であるか否かを判定する（Ｓ６２）。変換結果が所定範囲内である場合には、タスクＡを実行する（Ｓ６３）。
【００７２】
図１３は、上記の処理によって実現される、各構成要素の動作及び出力の変化を示すタイミングチャートである。
【００７３】
図示するように、タイマ２０１は、所定周波数のパルス信号をカウンタ４０３に出力する。カウンタ４０３は、タイマ２０１から信号が入力されるとカウンタ値が１ずつインクリメントし、カウンタ値が５又は１０に至る度にタイミング生成器２０４が、ＡＤ変換開始指示信号をＡＤコンバータ２０２に出力する。ＡＤコンバータ２０２は、ＡＤ変換開始指示信号の入力タイミングでバス３０８を流れている所定のアナログ値をデジタル値に変換してバス３０８に出力すると共に、変換が終了したタイミングでＡＤ変換終了通知信号をＤＭＡＣ３１１に出力する。
【００７４】
バス３０８には、ＡＤ変換終了通知信号が出力されたタイミングでデジタル変換値（図中、ＡＤ変換結果と表記した）が流れている。ＩＮＴＣ３０９はＤＭＡＣ３１１にＡＤ変換終了通知信号が入力されると、例外処理要求をＣＰＵ１０１に出力する。ＣＰＵ１０１は、例外処理要求が入力されるとＡＤ変換結果に対する判定を行い、ＡＤ変換結果が所定範囲内である場合にタスクＡを実行し、それ以外ではタスクＢを実行する。なお、ＣＰＵ１０１は、タスクＡを起動した後は、タスクＡが正常終了するまでの間はタスクＡの実行を継続する等してよい。
【００７５】
以上説明した本実施例の車載マルチプロセッサシステム２００によれば、周辺回路の仕様や特定のタスクの起動条件、タスク毎のＣＰＵ割り当て等、車載マルチプロセッサシステム２００が搭載される車両が要求する機能（接続関係）を、コンフィグレーション情報を適切に設定するだけで柔軟に実現することができる。
【００７６】
この結果、車両の要求する多種多様な機能に対して、個別に回路構成を開発、製造する必要がなくなり、車両の製造コストを低減することができる。
【００７７】
更に、本実施例の車載マルチプロセッサシステム２００では、タスクを起動するための構成のうち、周辺Ｉ／Ｏとの関係の深い部分をＦＰＧＡ回路３０６により実現し、バスアクセスに関する部分をＤＭＡＣ３１１により実現し、例外処理の受付部分をＩＮＴＣ３０９等で実現している。この結果、ＦＰＧＡ回路３０６で実現する回路構成を、第１実施例に比して小さくすることができ、コストを低減することができる場合がある。
【００７８】
また、ＩＮＴＣやＤＭＡＣを備える従来のマルチプロセッサシステムとの互換性を高めることができるため、ソフトウエア資産を有効に再利用することができ、ソフトウエア開発費を低減することができる。
【００７９】
＜第３実施例＞
以下、図面を参照し、本発明の第２実施例に係る車載マルチプロセッサシステム３００について説明する。車載マルチプロセッサシステム３００は、車両に搭載され、種々の車載機器制御を行うためのシステムである。車載マルチプロセッサシステム３００の適用例としては、エンジン制御用コンピュータ、ブレーキ制御用コンピュータ、ステアリング制御用コンピュータ、ナビゲーション制御用コンピュータ、車両安定化制御（ＶＳＣやＶＤＩＭ等を含む）用コンピュータ等、種々のものが考えられる。
【００８０】
図１４は、本発明の第３実施例に係る車載マルチプロセッサシステム３００のシステム構成例である。車載マルチプロセッサシステム３００は、主要な構成として、ＣＰＵ１０１、５０２と、周辺Ｉ／Ｏ３０３、３０４、３０５と、ＦＰＧＡ回路５０６と、接続情報用メモリ１０７と、ＩＮＴＣ５０９と、ＤＭＡＣ５１１と、を備える。これらの構成要素は、ＩＮＴＣ５０９を除き、バス５０８にそれぞれが接続されており、更に、ＦＰＧＡ回路５０６は、周辺Ｉ／Ｏ３０３、３０４、３０５、ＣＰＵ５０２、及び接続情報用メモリ１０７に専用通信線を介して接続されている。また、周辺Ｉ／Ｏ３０３、３０４、３０５は、ＩＮＴＣ５０９、ＤＭＡＣ５１１に専用通信線を介して接続されている。
【００８１】
バス５０８は、例えば複数ビットの情報が伝達される多重通信線であり、接続された各機器がそれぞれ情報を参照可能となっている。バス５０８を介した機器間の通信は、例えばＡＭＢＡに代表されるＬＳＩ内の接続バス仕様に基づいて行われる。また、ＣＡＮやＬＩＮに代表される低速なボデー系通信プロトコル、ＭＯＳＴに代表されるマルチメディア系通信プロトコル、ＦｌｅｘＲａｙ等の適切な通信プロトコルを用いて行なわれてもよい。
【００８２】
また、車載マルチプロセッサシステム３００は、上記各構成要素が１チップ上に構築されると好適である。
【００８３】
周辺Ｉ／Ｏ３０３、３０４、３０５は、プロセッサ以外の任意の構成を採用しうる。例えば、タイマ、ＡＤコンバータ、ポート、シリアルＩ／Ｆ、コンパレータ等が採用され得る。
【００８４】
ＦＰＧＡ回路５０６は、例えばセレクタ、ＲＡＭセル、フリップフロップ等が配列されており、接続情報用メモリ１０７に記憶されているコンフィグレーション情報に基づいてセレクタの切り替えを行うことにより、回路構成を任意に決定可能な半導体デバイスである。ＦＰＧＡ回路５０６は、主要な機能として、バス５０８を介して外部から入力されるデータによって所定の起動トリガが発生した場合に、コンフィグレーション情報により規定されたＣＰＵ５０２に対して、割り込みタスクの実行を指示する。
【００８５】
第３実施例に係る車載マルチプロセッサシステム３００により実行される処理の流れの概要については、第１実施例と同様であるため、図３を参照することとし、詳細な説明を省略する（ＣＰＵ１０２をＣＰＵ５０２に読み替えるものとする）。
【００８６】
図１５は、本実施例に係る車載マルチプロセッサシステム３００の部分構成例である。本図において、周辺Ｉ／Ｏ３０３はタイマ２０１であり、周辺Ｉ／Ｏ３０４はＡＤコンバータ２０２であるものとする。また、ＦＰＧＡ回路５０６は、カウンタ２０３、タイミング生成器２０４、バスコントローラ２０５、比較器２０６を備える構成として機能するように、コンフィグレーション情報が設定されているものとする。
【００８７】
タイマ２０１は、所定周波数のパルス信号をカウンタ２０３に出力する。カウンタ２０３、タイミング生成器２０４は、タイマ２０１のパルス信号に基づいて作動し、外部機器からバス３０８を介して入力される情報に基づいてタスク起動判定を行わせるための基準タイミング（本実施例では、具体的にはＡＤ変換開始指示信号）を生成する。
【００８８】
なお、カウンタ２０３、タイミング生成器２０４によって実行される基準タイミング生成処理フローについては、第１実施例と同様であるため、図５を参照することとし、詳細な説明を省略する。
【００８９】
タイミング生成器２０４からＡＤ変換開始指示信号が入力されたＡＤコンバータ２０２は、その入力タイミングで、バス５０８を流れている所定のアナログ値（例えば、外部機器である操舵角センサ等の車載センサの出力値）をデジタル値に変換してバス５０８に出力する。そして、変換が終了したタイミングでＡＤ変換終了通知信号をバスコントローラ２０５に出力する。
【００９０】
図１６は、バスコントローラ２０５及び比較器２０６により実行される特定のタスクの起動判定に関する処理フローを示す図である。なお、以下では、通常タスクをタスクＣとし、特定のタスクをタスクＤとする。
【００９１】
まず、ＡＤコンバータ２０２からバスコントローラ２０５にＡＤ変換終了通知信号が入力されるまで待機する（Ｓ７０）。
【００９２】
ＡＤ変換終了通知信号が入力されると、ＡＤ変換結果をバス１０８からリード（読み込み）する（Ｓ７１）。
【００９３】
そして、ＡＤ変換結果（デジタル値）が所定範囲内の値であるか否かを判定し（Ｓ７２）、所定範囲内の値であればタスクＣの実行をＣＰＵ５０２に要求する（Ｓ７３）。
【００９４】
ＣＰＵ５０２は、図３において概説したように、タスクＡの実行要求がなされた場合には当該特定のタスクであるタスクＡを実行し、それ以外では通常のタスクであるタスクＢを実行する。
【００９５】
図１７は、ＣＰＵ５０２により実行されるタスク起動処理フローを示す図である。図示するように、比較器２０６からタスクＡの実行要求がなされている場合には、タスクＣを実行し、それ以外ではタスクＤを実行する（Ｓ８０〜８２）。
【００９６】
図１８は、上記の処理によって実現される、各構成要素の動作及び出力の変化を示すタイミングチャートである。
【００９７】
図示するように、タイマ２０１は、所定周波数のパルス信号をカウンタ２０３に出力する。カウンタ２０３は、タイマ２０１から信号が入力されるとカウンタ値が１ずつインクリメントし、カウンタ値が５又は１０に至る度にタイミング生成器２０４が、ＡＤ変換開始指示信号をＡＤコンバータ２０２に出力する。ＡＤコンバータ２０２は、ＡＤ変換開始指示信号の入力タイミングでバス１０８を流れている所定のアナログ値をデジタル値に変換してバス５０８に出力すると共に、変換が終了したタイミングでＡＤ変換終了通知信号をバスコントローラ２０５に出力する。
【００９８】
バス５０８には、ＡＤ変換終了通知信号が出力されたタイミングでデジタル変換値（図中、ＡＤ変換結果と表記した）が流れており、比較器２０６では、このデジタル変換値が所定範囲内である場合にタスクＣの起動要求をＣＰＵ５０２に出力する。ＣＰＵ５０２では、タスクＣの起動要求がなされている場合にはタスクＣを実行し、それ以外ではタスクＤを実行する。なお、ＣＰＵ５０２は、タスクＣを起動した後は、タスクＣが正常終了するまでの間はタスクＣの実行を継続する等してよい。
【００９９】
以上説明した本実施例の車載マルチプロセッサシステム３００によれば、周辺回路の仕様や特定のタスクの起動条件、タスク毎のＣＰＵ割り当て等、車載マルチプロセッサシステム１００が搭載される車両が要求する機能（接続関係）を、コンフィグレーション情報を適切に設定するだけで柔軟に実現することができる。
【０１００】
この結果、車両の要求する多種多様な機能に対して、個別に回路構成を開発、製造する必要がなくなり、車両の製造コストを低減することができる。また、車載マルチプロセッサシステム１００の開発時に想定していなかった機能が後日必要となった場合にも、コンフィグレーション情報を適切に変更するだけで新たな機能を実現することができ、開発期間や開発費用を低減することができる。
【０１０１】
また、本実施例の車載マルチプロセッサシステム３００のようにヘテロ構造（非対称構造）を有するマルチプロセッサでは、一部のＣＰＵに固定的なタスクをアサインする傾向が強いため、汎用的なタスク起動手段であるＩＮＴＣ等の搭載が余剰な回路搭載につながり、コストの増大を招く懸念があった。この点、本実施例の車載マルチプロセッサシステム３００では、ＩＮＴＣ等の機能をＦＰＧＡ回路５０６で置き換えることにより、ＩＮＴＣ等の搭載数を削減し、回路規模の抑制と機能のフレキシビリティを両立させることができる。
【０１０２】
以上、本発明を実施するための最良の形態について実施例を用いて説明したが、本発明はこうした実施例に何等限定されるものではなく、本発明の要旨を逸脱しない範囲内において種々の変形及び置換を加えることができる。
【０１０３】
例えば、第３実施例において、ＦＰＧＡ回路５０６はＩＮＴＣ５０９とＤＭＡＣ５１１に接続されておらず、これらに関与しない構成としたが、第２実施例のごとく、ＦＰＧＡ回路５０６がＩＮＴＣ５０９やＤＭＡＣ５１１に接続され、ＣＰＵ１０１のタスク起動に関与する構成としてもよい。
【符号の説明】
【０１０４】
１００、２００、３００  車載マルチプロセッサシステム
１０１、１０２、５０２  ＣＰＵ
１０３、１０４、１０５、３０３、３０４、３０５  周辺Ｉ／Ｏ
１０６、３０６、５０６  ＦＰＧＡ回路
１０７                  接続用メモリ
１０８、３０８、５０８  バス
２０１                  タイマ
２０２                  ＡＤコンバータ
２０３、４０３          カウンタ
２０４、４０４          タイミング生成器
２０５                  バスコントローラ
２０６                  比較器
３０９、３１０、５０９  ＩＮＴＣ
３１１、５１１          ＤＭＡＣ
【図１】
2011150637.tif 000003
【図２】
2011150637.tif 000004
【図３】
2011150637.tif 000005
【図４】
2011150637.tif 000006
【図５】
2011150637.tif 000007
【図６】
2011150637.tif 000008
【図７】
2011150637.tif 000009
【図８】
2011150637.tif 000010
【図９】
2011150637.tif 000011
【図１０】
2011150637.tif 000012
【図１１】
2011150637.tif 000013
【図１２】
2011150637.tif 000014
【図１３】
2011150637.tif 000015
【図１４】
2011150637.tif 000016
【図１５】
2011150637.tif 000017
【図１６】
2011150637.tif 000018
【図１７】
2011150637.tif 000019
【図１８】
2011150637.tif 000020