(57)【特許請求の範囲】
【請求項１】
車両のための制御装置（１０）であって、
‐前記制御装置（１０）は、少なくとも２つのプロセッサコア（１１０、１２０、１３０）と、大域的メモリ（３００）と、を備え、
‐各プロセッサコア（１１０、１２０、１３０）は各々局所的メモリ（１１２）を備え、各プロセッサコアは、自身の固有の局所的メモリにのみアクセスするよう構成され、及び、残りの前記プロセッサコアの前記局所的メモリにも、前記大域的メモリ（３００）にもアクセスしないよう構成され、
調整ユニット（２００）は、
‐前記調整ユニット（２００）のところに存在する、各プロセッサコア（１１０、１２０、１３０）が特定のタスクを実行し又はプロセスを処理するスケジュールに従って、前記制御装置（１０）の前記大域的メモリ（３００）からデータを読み込んで、個々の前記プロセッサコア（１１０、１２０、１３０）の前記局所的メモリ（１１２）へと書き込むよう構成され、及び
‐前記調整ユニット（２００）のところに存在する前記スケジュールに従って、前記個々のプロセッサコア（１１０、１２０、１３０）の前記局所的メモリ（１１２）からデータを読み込んで、前記大域的メモリ（３００）、及び／又は、前記残りのプロセッサコアの前記局所的メモリへと書き込むよう構成される、制御装置（１０）。
【請求項２】
前記調整ユニット（２００）は、特定の用途向けに、及び／又は、時間駆動により、前記データの読み出し／及び書き込みを実行するよう構成される、請求項１に記載の制御装置（１０）。
【請求項３】
前記調整ユニット（２００）は、実行すべきタスクのプログラムコード、及び／又は、実行すべきタスクのために必要な入力データを、前記大域的メモリ（３００）から読み込み、データとして前記プロセッサコア（１１０、１２０、１３０）の前記局所的メモリ（１１２）へと書き込むよう構成される、請求項１又は２に記載の制御装置（１０）。
【請求項４】
前記調整ユニット（２００）は、プロセッサコア（１１０）がタスクの実行後に自身の局所的メモリ（１１２）に格納する出力データを、当該局所的メモリ（１１２）から読み込み、データとして前記大域的メモリ（３００）に書き込み、及び／又は、データとして前記残りのプロセッサコア（１２０、１３０）のうちの１つの前記局所的メモリに書き込むよう構成される、請求項１〜３のいずれか１項に記載の制御装置（１０）。
【請求項５】
前記調整ユニット（２００）は、個々のプロセッサコア（１１０、１２０、１３０）に、実行すべきタスクを割り当て、及び／又は、個々のプロセッサコア（１１０、１２０、１３０）に、特定のタスクを実行するように命令するよう構成される、請求項１〜４のいずれか１項に記載の制御装置（１０）。
【請求項６】
前記調整ユニット（２００）は、複数のプロセッサコア（１１０、１２０、１３０）に、特定のタスクを実行するように命令し、当該複数のプロセッサコア（１１０、１２０、１３０）の個々の出力データを互いに比較するよう構成され、及び／又は、前記調整ユニットは、１つのプロセッサコアに、特定のタスクを複数回実行するように命令し、当該１つのプロセッサコアによる前記複数回の実行により得られた個々の出力データを互いに比較するよう構成される、請求項１〜５のいずれか１項に記載の制御装置（１０）。
【請求項７】
前記調整ユニット（２００）は、前記個々のプロセッサコア（１１０、１２０、１３０）を駆動し、その駆動過程において、前記個々のプロセッサコア（１１０、１２０、１３０）を休止させ、リセットし、停止させ、検査し、節電モードに置き、前記個々のプロセッサコア（１１０、１２０、１３０）で割り込みを起動し、及び／又は、前記個々のプロセッサコア（１１０、１２０、１３０）のクロック周波数を変更するよう構成される、請求項１〜６のいずれか１項に記載の制御装置（１０）。
【請求項８】
前記プロセッサコア（１１０、１２０、１３０）の前記個々の局所的メモリ（１１２）は各々異なるメモリバンク（１１２ａ、１１２ｂ、１１２ｃ、１１２ｄ）に分けられ、前記調整ユニット（２００）は、各前記プロセッサコア（１１０）のどのメモリバンク（１１２ａ、１１２ｂ、１１２ｃ、１１２ｄ）にアクセスが許されるのかを制御するよう構成される、請求項１〜７のいずれか１項に記載の制御装置（１０）。
【請求項９】
前記調整ユニット（２００）は、プロセッサコアの一部として構成され、又は、別体のハードウェア要素として構成される、請求項１〜８のいずれか１項に記載の制御装置（１０）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、車両のための制御装置に関する。
【背景技術】
【０００２】
車両の最近の制御装置は、大抵マルチコア（Ｍｕｌｔｉｃｏｒｅ）プロセッサを有する。マルチコアプロセッサは、複数の（少なくとも２つの）プロセッサコア（コア、Ｃｏｒｅ）を含む。プロセッサコア又はコアは、タスク、プログラム、演算命令等を実行するための本来の電子計算機に当たる演算論理ユニット（ＡＬＵ）を備える。プロセッサコアは、局所的メモリをさらに有する。このような局所的メモリは、特に、１つ以上のレジスタから成るレジスタセットとして構成される。制御装置は、大局的メモリをさらに備える。この大域的メモリは、例えば、フラッシュ（Ｆｌａｓｈ）メモリ、ＮＯＲ型フラッシュメモリ、又は、ＲＡＭメモリを含む。例えばセンサのような周辺モジュールも、この大域的メモリに入れられる。
【０００３】
車両の制御装置では、個々のプロセッサコアによってプロセスが永続的に実行される。タスク又はプロセスを実行するために、プロセッサコアは、特に、対応するプログラムコードと、場合により、入力データと、を必要とする。このようなプログラムコードは、例えば、大域的メモリのフラッシュメモリ及び／又はＮＯＲ型メモリに格納されうる。入力データは、例えば、周辺モジュールに収集された測定データであり、例えばエンジンスピード、温度、圧力等である。
【０００４】
タスク又はプロセスを実行しうるために、プロセッサコアは最初に、対応するデータを、特にプログラムコード及び必要な入力データを、自身の局所的メモリにロードする。なぜならば、プロセッサコアは、大域的メモリへのアクセス時間よりも明らかに短い（かつ予測可能な）アクセス時間で、自身の局所的メモリにアクセス出来るからである。プロセッサコアは、大抵１クロック以内に自身の局所的メモリにアクセス出来るが、大域的メモリへのアクセスには大抵３〜１０クロックの時間が必要である。
【０００５】
制御装置、及び、制御装置で実行されるプロセスは、例えばＩＳＯ規格「ＩＳＯ２６２６２」に記載された特定の安全性要件を満たさなければならない。特に、制御装置は、実時間処理が可能でなければならない。即ち、所定の最大実行時間内にプロセスの実行に成功することを保証する必要がある。しかしながら、この実行時間は、局所的メモリによって決定的に定められる。
どのプログラムコードが以前に実行されたか、又は、例えば、割り込みが発生しているかに従って、多かれ少なかれ適切なデータが局所的メモリに存在する。従って、最大実行時間を決定することは困難であり、それ故に、大きな安全マージン（Ｓｉｃｈｅｒｈｅｉｔｓａｕｆｓｃｈｌａｇ）が必要である。従って、この組み込まれた「リスクバッファ（Ｓｉｃｈｅｒｈｅｉｔｓｐｕｆｆｅｒ）」により、各プロセッサコアの利用可能な演算能力が下がる。
【０００６】
２つのプロセッサコアが同じリソースへと、特に大域的メモリへと同時にアクセスする場合にはアクセスの衝突が起こる可能性がある。このようなアクセスの衝突はめったに起きず、マルチコアプロセッサの平均的な演算能力はほとんど下がらない。しかしながら、実時間性能を保証しうるために、このアクセスの衝突は、最大実行時間の間（最悪の場合）考慮される必要がある。しかしながら、このことは、非常に困難であることが多く又は全く可能ではない。その代りに、安全マージンがさらに上がる可能性があり、このことが利用可能な演算能力に悪影響を及ぼす。
【発明の概要】
【発明が解決しようとする課題】
【０００７】
従って、マルチコアプロセッサを備えた、車両のための改善された制御装置を提供することが望まれる。特に、簡単なやり方で、制御装置の実時間性能が保証され、利用可能な演算能力が上げられるべきである。
【課題を解決するための手段】
【０００８】
本発明によれば、請求項１の特徴を備えた車両のための制御装置が提案される。有利な構成は、従属請求項及び以下の明細書の発明の主題である。
【０００９】
制御装置は、少なくとも１つのマルチコアプロセッサ、又は、少なくとも２つのシングルコア（Ｓｉｎｇｌｅｃｏｒｅ）プロセッサ若しくはマルチコアプロセッサを備える。従って、制御装置は、少なくとも２つのプロセッサコアを備える。本発明によれば、各プロセッサコアは、自身の固有の局所的メモリにのみアクセスすることが可能である。従来のプロセッサとは異なって、個々のプロセッサコアは、残りのプロセッサコアの局所的メモリにも、大域的メモリにもアクセスすることが出来ない。
【００１０】
その代わりに、本発明によれば、調整ユニットのみが、各個々のプロセッサコアの局所的メモリにも、大域的メモリにもアクセスすることが可能である。その際に調整ユニットは、制御装置の大域的メモリからデータを読み込むこと、及び、個々のプロセッサコアの局所的メモリへとデータを書き込むことが可能である。その一方で、調整ユニットは、個々のプロセッサコアの局所的メモリからデータを読み込むことも、制御装置の大域的メモリ、及び／又は、残りのプロセッサコアの局所的メモリへとデータを書き込むことも可能である。
【発明の効果】
【００１１】
各プロセッサコアは、自身の固有の局所的メモリにのみアクセスすることが可能である。従来の制御装置と異なって、個々のプロセッサコアはもはや、大域的メモリ、又は、残りのプロセッサコアの局所的メモリにアクセスすることが可能ではない。本発明によれば、調整ユニットが、個々のプロセッサコアの局所的メモリと大域的メモリとの間のデータ交換、及び、個々のプロセッサの局所的メモリ間でのデータ交換を担当又は調整する。従って、様々なプロセッサコアが大域的メモリに同時にアクセスし、又は、大域的メモリの同じデータに同時にアクセスすることを防止することが可能である。
【００１２】
さらに、プロセッサコアはもはやデータの転送及び交換に対応する必要がないため、個々のプロセッサコアの負荷が軽減される。従来の制御装置のプロセッサコアがデータ交換のために要した時間及び演算能力を節約し、プロセッサコアの本来の機能のために利用することが可能である。データ交換は、特に調整ユニットのみを介して、個々のプロセッサコアに依存せずに行われる。従って特に、通信又はデータ交換と、タスク又はプロセスの実行と、の分離が実現される。従って、対応するプロセッサコアにデータ交換又はメモリ転送を実行するよう命令する特別なプログラミングを行わなくてもよい。これにより特に、個々のプロセッサコアで処理又は実行されるソフトウェア又はプログラムコードを簡略化することが可能である。従って特に、プロセッサコアでのタスク又はプロセスの実行のために要する実行時間が短縮される。従って、プロセッサコアの演算能力が上げられる。
【００１３】
制御装置の大域的メモリは、例えば、フラッシュ（Ｆｌａｓｈ）メモリ又はＲＡＭメモリとして構成されうる。プロセッサコアの局所的メモリも各々、特に、フラッシュメモリ、ＮＯＲ型フラッシュメモリ、又は、ＲＡＭメモリとして構成されうる。大域的メモリは、周辺モジュールも含みうる。このような周辺モジュールは特に、センサ、アクチュエータ、アナログデジタル変換器、ＰＷＭ生成器、及び／又は、タイミングジェネレータである。このような周辺モジュールは特に、プロセッサコアが特にその機能又はタスクを実行するために要するデータを提供する。従って、「大域的メモリ」という概念には、このような周辺モジュールも含まれる。
【００１４】
プロセッサコアは各々が様々に構成されてもよい。例えば、プロセッサコアは、性能が様々なユニバーサルコア（Ｕｎｉｖｅｒｓａｌ−Ｃｏｒｅ）（１６、３２、６４ビット、浮動小数点（Ｆｌｏａｔ）ユニット付き、又は浮動小数点ユニット無し、等）として、又は、特別なコア（ＤＳＰ、画像処理、ＦＦＴ、パターン認識等）として構成されうる。
【００１５】
本発明によって、データが局所的メモリに存在するため、プロセッサコアが常に非常に速くデータにアクセス出来るということが可能となる。このアクセスは、キャッシュへのアクセスに匹敵する。非埋込式システム（例えばＰＣ）では、局所的メモリの代わりに、キャッシュが利用されることが多い。これに対して、局所的メモリは大抵、埋込式システムの制御装置及びそのマルチコアプロセッサで利用される。キャッシュには、各任意のソフトウェアによるデータアクセスを加速させ、その際にソフトウェアを特別に適合させる必要がないという利点がある。キャッシュの欠点は、キャッシュの内容が予測出来ず、これにより、プロセッサコアによるデータへのアクセス時間が予測出来ないということである。即ち、データが既にキャッシュに存在する場合には（キャッシュヒット、ｃａｃｈｅ  ｈｉｔ）、このデータへのアクセスが非常に速くなりうる。しかしながら、このデータを最初にキャッシュにロードする必要がある場合には（キャッシュミス、ｃａｃｈｅ  ｍｉｓｓ）、より長い時間が掛かる可能性がある。従って、従来の制御装置では、アクセス時間を予測出来ることを優先してキャッシュの使用を諦めることが多かった。しかしながら、調整ユニットによって、（キャッシュと同じような）速いデータアクセスを可能にすることが出来る。その際に調整ユニットは、大域的メモリ及び局所的メモリのための対応するアドレス信号及び制御信号を、特に同時に生成する。従って、データが直接的に居所的メモリから大域的メモリへと流れ、その反対に、大域的メモリから局所的メモリへと流れる。このことは特に（キャッシュコントローラに類似した）調整ユニットが特にメモリ間で転送することにより可能となる。
【００１６】
従って、本発明によって、大域的メモリと局所的メモリとの間（又は、局所的メモリと大域的メモリとの間）でデータが遥かに高速に交換されうる。なぜならば、データが（キャッシュの場合のように）直接的に、一時格納されることなく、転送されるからである。このデータ転送は、特に、プロセッサコアの（比較的）短いデータワード長（通常３２ビット）では行われず、特に、キャッシュ又はキャッシュコントローラの長いデータワード長（通常６４〜２５６ビット）により行われる。これにより、１桁までデータ転送を加速させることが可能である。
【００１７】
さらに、本発明によって、通常キャッシュに伴う欠点を克服することが可能である。制御装置内に調整ユニットを実現することは、キャッシュを実装するよりも基本的にコストが低くて安価である。所謂キャッシュミス（全キャッシュが無駄に検索され、即ち、対応するデータがキャッシュには存在しない）の際に初めてキャッシュがデータをロードし、キャッシュの時間挙動の予測が非常に困難であるのに対して、調整ユニットは、効率良くかつ先を読んで、大局的メモリ又は局所的メモリにデータをロードする。調整ユニットによって、時間挙動を予測することが遥かに容易であり、制御装置又はマルチコアプロセッサの実時間性能が保証されうる。
【００１８】
従って、各プロセッサコアは、キャッシュにアクセスするのと同じ速さ又は近似的に同じ速さで、自身の局所的メモリにアクセスすることが可能である。さらに、従来の制御装置で大域的なＲＡＭメモリ及びフラッシュメモリにアクセスした際に発生しうる待ち時間が回避される。アクセスの衝突、及び、これに伴う待ち時間も同様に回避される。従って、（特に、分けられたリソースへの、即ち、大域的メモリへの同時アクセスによる）予測不可能な遅延が回避される。従って、タスク又はプロセス又はソフトウェアの最大実行時間が正確に決定されうる。当該タスク又はプロセス又はソフトウェアを実行するために、個々のプロセッサコアの全計算能力を利用することが可能である。さらに、特定の実行時間を保証し、実時間性能を保証することが可能である。さらに、保証された実行時間を短縮することが可能である。安全マージンも回避される。
【００１９】
各プロセッサコアは自身の固有の局所的メモリにのみアクセスすることが可能であるため、個々のプロセッサコアは（完全に）カプセル化されている。これにより、個々のプロセッサコアは、残りのシステム又は残りのプロセッサコアを妨害しえない。従って、ＩＳＯ２６２６２に従って要求される更なる別の安全性要件、即ち「無干渉」（Ｆｒｅｅｄｏｍ  ｏｆ  Ｉｎｔｅｒｆｅｒｅｎｃｅ）を満たすことが可能である。従って、ソフトウェア要素が互いに妨害し合わず、又は、（１のプロセッサコアでの）タスクの実行が（他のプロセッサコアでの）他のタスクの実行を妨害しないことが保証される。調整ユニットによって、このような「無干渉」がコンセプト通りに与えられる。
【００２０】
特に、調整ユニットは、データ変換又はデータ変換を実行する。特に、調整ユニットは、データをリトルエンディアン（Ｌｉｔｔｌｅ  Ｅｎｄｉａｎ）形式で読み込み、ビックエンディアン（Ｂｉｇ  Ｅｎｄｉａｎ）形式で書き込むことが可能である（その反対に、データをビックエンディアン形式で読み込み、リトルエンディアン形式で書き込むことも可能である）。さらに特に、調整ユニットは、浮動小数点値（ｄｏｕｂｌｅ型、ｆｌｏａｔ型）としてデータを読み込み、整数値（ｉｎｔｅｇｅｒ）としてデータを書き込むことが可能である（その反対に、整数値としてデータを読み込み、浮動小数点値としてデータを書き込むことが可能である）。その際にデータ変換は、調整ユニット内で、データ転送（即ち、データの読み出し及び書き込み）のパラメータとして、又は特別なデータ転送オペレーションとして実現されうる。
【００２１】
調整ユニットは、特に制御装置の通信インフラを介して、制御装置の大域的メモリにアクセスすることが可能である。特に、調整ユニットは、別々のバス又は連結されたバスを介して大域的メモリにアクセスする。さらに、調整ユニットは、特に簡素なバスを介して、プロセッサコアの局所的メモリにアクセスする。その際に特に、クロスバー（Ｃｒｏｓｓｂａｒ）又はマトリクススイッチは必要ではない。このバスは特に大きなスループットを有する。調整ユニットによって、データが特に大きなブロックで常に一方向に伝送されるため、バスは、特に長い待ち時間を有してもよい。これにより、実装が著しく簡素化される。安全性要件を満たし、データ伝送及びデータ格納の際の誤りを調整ユニットによって検出し、場合により修正するために、上記のバス、及び、大域的メモリ及び／又は局所的メモリを、特に誤り訂正方法によって、特に誤り訂正コード（ＥＣＣ：Ｅｒｒｏｒ  Ｃｏｒｒｅｃｔｉｎｇ  Ｃｏｄｅ）を用いて保全することが可能である。
【００２２】
好適に、データの読み出し及び書き込みは、調整ユニットによって特定の用途向けに、特に特定のスケジュールに従って行われる。その際に、それに従って個々のプロセッサコアが特定のタスクを実行し又はプロセスを処理する特定のスケジュールが、調整ユニットには分かっている。このスケジュールによって調整ユニットには、どの時点にどのプロセッサコアがどのデータを必要とするのかが、即ち、どの時点にどのデータが各プロセッサコアの局所的メモリに書き込まれていなければならないのかが分かる。その一方で、これにより、どの時点にどのプロセッサコアがデータを提供するのか、即ち、どの時点に各プロセッサコアの局所的メモリからデータを読み込むことが可能なのかが調整ユニットには分かる。このスケジューリングのために特に、特定のタスク又は特定のプロセスの周期が考慮される。この周期は、タスク又はプロセスがプロセッサコアによって実行される間の期間である。従って、この周期は、個々のタスク又はプロセスの実行時点を記述する。しかしながら、タスク又はプロセスは、必ずしも固定の周期で実行されなくてもよい。代替的に、タスク又はプロセスの、時間的に予測可能な更なる別の実行についても、調整ユニットが分かっていてもよい。
【００２３】
従って、調整ユニットは、好適に時間駆動により（ｚｅｉｔｇｅｔｒｉｅｂｅｎ）、さらに特に、個々のタスク又は個々のプロセスの周期又は実行時点に応じて、データの読み出し及び書き込みを実行する。従って、調整ユニットは、個々のプロセッサコアに依存せずに、データの読み出し及び書き込みを実行する。例えば、調整ユニットは、規則的な時間間隔で、特定のタスク又はプロセスの既知の周期的な実行の前に、大域的メモリのデータをプロセッサコアの局所的メモリに書き込むことが可能である。時間的に駆動されたデータ読み出し及び書き込みが、実行されるタスク及びプロセスの周期と一致するように、調整ユニットとプロセッサコアは、特に共通の時間ベースを有する。この共通の時間ベースは、例えば、共通のクロック（ｃｌｏｃｋ）を介して、又は適切な同期化の仕組みを介して実現されうる。しかしながら、調整ユニットが、固有のサイクルを有することも可能である。
【００２４】
好適な構成において、調整ユニットは、実行すべきタスクのプログラムコード、及び／又は、実行すべきタスクのために必要な入力データを、大域的メモリから読み込む。調整ユニットは、上記読み込まれたプログラムコード又は上記読み込まれた入力データを、データとしてプロセッサコアの局所的メモリに書き込む。その際、１つのタスクは１つのソフトウェアである。タスクを実行又は処理するためには入力データが必要である。入力データは特に、周辺モジュール、特にセンサが収集した測定値であり、例えばエンジンスピード、温度、及び／又は、圧力である。
【００２５】
従来の制御装置とは異なって、プロセッサコアは、対応するタスクを自身が実行すべき場合には、プログラムコード及び入力データを、自発的に大域的メモリから自身の局所的メモリにロードする必要がない。その代わりにプロセッサコアには、対応するプログラムコード／入力データが、外部から調整ユニットによって供給される。
【００２６】
その際に、調整ユニットは、プログラムコードをブロック単位で局所的メモリに書き込むことが可能であり、又は、さらに、複数のタスクのプログラムコードを同時に書き込むことが可能である。特に、調整ユニットは、対応するプロセッサコアにより実行される次のタスクのためのプログラムコードを、対応する局所的メモリに書き込むことが可能である。例えば、どのプロセッサがどのタスクを実行すべきかが常に変更される場合には、調整ユニットは、永続的な入力データも、局所的メモリに散発的に書き込むことが可能である。
【００２７】
代替的に、実行されるタスクのプログラムコードが、プロセッサコアの局所的メモリに既に格納されていてもよい。例えば、このプログラムコードは、制御装置の初期化過程の間に局所的メモリに書き込まれてもよい。先行するタスク実行に由来するプログラムコードが、局所的メモリに格納されているということも可能である。その際に、プログラムコードが、プロセッサコアの局所的なフラッシュメモリ又は（不揮発性の）ＲＡＭメモリに格納されているということも可能である。この場合、調整ユニットは、大域的メモリから新たにプログラムコードを読み込んで局所的メモリに書き込む必要はなく、上記タスクを実行するようプロセッサコアに命令するだけでよい。
【００２８】
対応するプログラムコードがプロセッサコアの局所的メモリに既に格納されている場合には、調整ユニットは、入力データのみを局所的メモリに格納することが可能である。その際に調整ユニットは、例えば、制御装置の大域的なフラッシュメモリ又は大域的なＲＡＭメモリから、又は、直接的に個々の周辺モジュールから、特に個々のセンサから入力データを読み込むことが可能である。
【００２９】
更なる別の好適な構成において、調整ユニットは、プロセッサコアがタスクの実行後に自身の局所的メモリに格納する出力データを、当該局所的メモリから読み込む。調整ユニットは、この読み込んだ出力データを、データとして大域的メモリに書き込み、及び／又は、データとして残りのプロセッサコアのうちの１つの局所的メモリに書き込む。タスクの実行によって、プロセッサコアは、対応する出力データを決定する。出力データは、例えば、噴射時間、及び／又は、噴射量でありうる。
【００３０】
プロセッサコアの出力データは、さらに、他のプロセッサコアの入力データとしても用いられ、又は、他のプロセッサコアによって更に処理されうる。この場合に、調整ユニットは、この出力データを対応するプロセッサコアの局所的メモリに書き込む。
【００３１】
従来の制御装置とは異なって、個々のプロセッサコアは、タスクの実行中又はタスクの実行後に、大域的メモリ又は他のプロセッサコアの局所的メモリに出力データを自発的には書き込まない。さらに従来の制御装置とは異なって、制御信号の形態による駆動信号によって、周辺モジュール、例えばアクチュエータを直接的に駆動することがプロセッサコアには許されていない。その代わりに、対応する出力データが外部から調整ユニットによって取り出される。
【００３２】
調整ユニットは、プロセッサコアがタスクの実行に成功し次第、又は、タスクが未だ実行されている間にも既に（出力データは既に局所メモリに書き込まれている）、出力データを読み込むことが可能である。調整ユニットは、例えば複数のタスクの出力データも、当該複数のタスクが実行された後で、ブロック単位で読み込むことが可能である。複数回実行されたタスクの出力データのブロック単位での読み込みも考えられる。
【００３３】
プロセッサコアによるタスクの実行の終了は、例えば、時間の経過により推定又は予測されうる。プロセッサコアは、例えば割り込みを用いて、又は自身の局所的メモリでの時点（Ｄａｔｕｍ）の設定によって、タスクの実行の終了を調整ユニットにもシグナリングすることが可能である。
【００３４】
出力データは、周辺モジュールを駆動するために、特に駆動信号であってもよく、又は、周辺モジュールをどのように駆動すべきかについての情報を含んでもよい。この場合に、調整ユニットは、上記駆動信号に対応して周辺モジュールを制御する。
【００３５】
好適に調整ユニットは、個々のプロセッサコアに、実行すべきタスクを割り当て、及び／又は、個々のプロセッサコアに、特定のタスクを実行するように命令する。従って、調整ユニットは、特に、どのタスクがどのプロセッサコアによって実行されるのかを調整する。特に、調整ユニットは、上記のスケジュールに従って個々のタスクを調整する。その際に、調整ユニットは、特に個々のプロセッサコアに、対応するタスクの対応する開始アドレスを報知する。さらに特に、調整ユニットは、いつ個々のプロセッサコアが個々のタスクの実行を開始するべきかを、個々のプロセッサコアにシグナリングする。このことは例えば、対応するプロセッサコアへの割り込みによって、又はプロセッサコアでのタイミングジェネレータの設定によって実現されうる。調整ユニットは、現在のタスクの実行に成功した直後に新しいタスクを開始するように、対応するプロセッサコアに命令することも可能である。
【００３６】
特に、調整ユニットは、様々なソースからのタスク又は対応するソフトウェア要素が様々なプロセッサコアで実行されるように、個々のプロセッサコアに実行すべきタスクを割り当てる。その際に、調整ユニットが入力データを正しく各プロセッサコアの局所的メモリに格納し、かつ出力データを適切に読み込めるように、ソフトウェア要素ごとに、対応する入力データ及び出力データが指定される。調整ユニットは、特に、個々のタスク又はソフトウェア要素の実行時間に関する知識を有する。ソフトウェア要素は、目的に適ったプログラム言語において、任意のツールチェーンを利用して生成されうる。ソフトウェア要素は、特に、完成したプログラムコード又はオブジェクトコードとして存在する。このプログラムコードは再配置可能（特定のメモリアドレスに調整可能）である必要はない。なぜならば、各プロセッサコアは、自身の固有の局所的メモリを有し、従って自身の固有のアドレス空間を有するからである。
【００３７】
調整ユニットは、データを迅速に変換することが可能であるため、データは特に様々にコード化されうる。従って、浮動小数点（Ｆｌｏａｔ）を利用する最新のソフトウェア要素は特に、整数を利用するより古いソフトウェア要素と共に協働しうる。その際に、調整ユニットは、必要なデータ変換を実行し、従って、個々のデータの「翻訳」を具象的に（ａｎｓｃｈａｕｌｉｃｈ）実行する。従って、様々にコード化されたソフトウェア要素をより最新の構造に移行し、かつ、より最新のプログラム言語及びツールチェーンを利用することが可能である。代替的に、有利に、様々な構造を継続的に並行して利用してもよい。
【００３８】
好適に、調整ユニットは、複数のプロセッサコアに、特定のタスクを実行するよう命令する。続いて、調整ユニットは、上記複数のプロセッサコアの個々の出力データを互いに比較する。代替的又は追加的に、調整ユニットは、１つのプロセッサコアに、特定のタスクを複数回実行するよう命令する。この場合にも、調整ユニットは、１つのプロセッサコアによる複数回の実行により得られた個々の出力データを互いに比較する。調整ユニットは、多数決によっても上記出力データを互いに比較することが可能である。タスクの上記冗長的な実行は、特に安全性要件が高い際には有利である。
【００３９】
好適に、調整ユニットは、個々のプロセッサコアを駆動する。その駆動過程において、調整ユニットは、個々のプロセッサコアを休止させ、リセットし、停止させ、検査し、節電モードに置き、及び／又は、個々のプロセッサコアのクロック周波数を変更することが可能である。従って、調整ユニットは、各プロセッサコアを目的に合わせて制御することが可能であり、その際に、残りのプロセッサコアに影響を与え又は当該プロセッサコアを妨害することはない。特に、調整ユニットは、定期的な時間間隔で個々のプロセッサコアを検査することが可能である。場合によっては破損している「疑わしい」プロセッサコアは、調整ユニットによって停止させることが可能である。この場合には、調整ユニットは、上記停止されたプロセッサコアに割り当てられたタスクを、他のプロセッサコアに割り当てることが可能である。特に、上記タスクは、空いているリザーブ（Ｒｅｓｅｒｖｅ）プロセッサコアに割り当てられ、このリザーブプロセッサコアによって実行されうる。調整ユニットはさらに、停止させたプロセッサコアでセルフテスト（ＢＩＳＴ）を実行させることが出来る。
【００４０】
好適に、調整ユニットは、個々のプロセッサコアで、１つの割り込み又は様々な割り込みを起動することが可能である。これにより、例えば、遅延又はメモリアクセスエラーが、調整ユニットによって表示されうる。割り込みは、スケジューリングのためにも利用することが可能である。即ち、プロセッサコアの局所的メモリへのデータの書き込みが終了し次第、調整ユニットは、割り込みによって、対応するタスクを実行するようにプロセッサコアに命令することが可能である。データ転送、即ちデータの読み出し及び書き込みには、特に、最大時間がクロック単位で割り当てられる。データ転送がこの時間内に終了しない場合には、調整ユニットは、対応するプロセッサコアで割り込みを起動する。さらに、データ転送オペレーションには、特に、最小時間がクロック単位で割り当てられる。データ転送が上記最小時間よりも短い時間内に終了しない場合には、残りのクロックは待機させられる。さらに、調整ユニットは、特にモジュロ（Ｍｏｄｕｌｏ）待機オペレーションを可能にする。これにより、例えばデータ転送の時間が可変的である際に、特定の周期に同期化される。調整ユニットはさらに、絶対時間待機オペレーションも含み、これにより特定数のクロックは待機させられる。
【００４１】
好適に、プロセッサコアの個々の局所的メモリは各々異なるメモリバンクに分けられる。調整ユニットは、各プロセッサコアがどのメモリバンクにアクセスが許されるのかを制御し、設定し、又は調整する。従って調整ユニットは、或るプロセッサコアのメモリバンクであって、当該プロセッサコアにアクセスが許されないメモリバンクに常時アクセスすることが可能であり、その際に、当該プロセッサコアの実行時間に影響を与えることはない。従って、プロセッサコアの実行時間は予測可能である。プロセッサコアが、自身にアクセスが許されるメモリバンクで作業しタスクを実行する間に、調整ユニットは、残りのメモリバンクで既に次のタスクを準備し、特に、対応するプロセッサコアが次に実行すべきタスクのプログラムコード及び／又は入力データを、既に上記残りのメモリバンクに格納することが可能である。従って、コストが掛かるデュアルポートＲＡＭは必要ではない。特に、各プロセッサコアは少なくとも４つのメモリバンクを有する。しかしながら、メモリバンクの数及び大きさは、個々のプロセッサコアの適応分野に従って、個々のプロセッサコアごとに様々に選択されてもよい。
【００４２】
本発明の好適な構成において、調整ユニットは、プロセッサコアの一部として構成される。その際に特に、複数のプロセッサコアは各々が調整ユニットを有しうる。さらに特に、各プロセッサコアは、固有の個別の調整ユニットを有する。この個々の調整ユニットは各々、各対応付けられたプロセッサコアによるデータの読み出し及び書き込みを調整する。個々の調整ユニットは互いに接続されており、複数の調整ユニットが同時に同じデータにアクセスすることが防止されるように互いに調整可能であり、従ってアクセスの衝突を防止することが可能である。
【００４３】
代替的又は追加的に、調整ユニットは、好適に別体の構成要素又はハードウェア要素として構成される。特に、調整ユニットは、コントローラとして、又は、固有のプロセッサコアとして構成されうる。コントローラとしての構成は、特に、マスタ及びスレーブを備えるバスシステムにおいて構想される。その際には、複数の上記調整ユニットが存在してもよい。このような調整ユニットによって、特に、最高データ読込速度、最高データ書込速度、最高の安全性、及び最高の利便性が保証される。
【００４４】
ハードウェア構成要素として構成されたこのような調整ユニットは、特に、データを読み込み及び書き込むためのマスタ（Ｍａｓｔｅｒ）ポートを有し、さらに、特に固有の局所的メモリを有する。さらに調整ユニットは、特に、個々のプロセッサコアへの１つ以上の（マスタ）インタフェースであって、特にプロセッサコアごとに１つ以上のスレーブ（Ｓｌａｖｅ）ポートを備えた上記（マスタ）インタフェースを有する。特に、調整ユニットは、調整ユニットの起動以降クロック数を記録するカウンタも有しうる。
【００４５】
さらに、調整ユニットは特に、目的に適ったロジック部又は論理ユニット、即ち特に演算論理ユニット（ＡＬＵ）を有する。このロジック部によって、調整ユニットは、目的に適ったプログラムを実行することが可能である。「調整ユニット」という概念には、特に、上記プログラム、又は一般に、対応するハードウェア要素で実行されるソフトウェアも含まれるものとする。従って、「調整ユニット」という概念には、対応するハードウェアウェア要素と、対応する実行されるソフトウェアと、が含まれる。
【００４６】
その際に、上記プログラムは、調整ユニットの局所的メモリに格納されている。代替的に、上記プログラムは、制御装置の大域的メモリ又はプロセッサコアの局所的メモリに格納されうる。上記プログラムは、特に調整ユニットによって連続的に実行される。上記プログラムは、特に、調整ユニットの設定のために役立つ。
【００４７】
プロセッサコアと同様に、調整ユニットはクロックにより動作する。クロックごとに、調整ユニットは、特にオペレーションを実行することが可能であり、又はスリープ状態にあることが可能である。クロックは、プロセッサのクロックであってもよいが、通信媒体のクロックのように、プロセッサのクロックに対して同期していなくてもよい。調整ユニットのプログラムは、特に、任意の順番によるデータ転送オペレーションと、待機オペレーションと、ジャンプオペレーションと、からのリストであってもよい。データ転送オペレーションは、特に、データが読み出される読出アドレスと、データが書き込まれるメモリアドレスと、を含む。さらに、データ転送オペレーションは、転送すべきデータワードの数と、データの再コード化のための任意の命令と、を含む。待機オペレーションは特に、調整ユニットが何クロックの間スリープ状態にあるべきかを示す数値を含む。特別な値（例えばゼロ）は、特に「通知があるまでスリープせよ」を意味する。ジャンプオペレーションは、特に、調整ユニットが次に実行すべきオペレーションがどこに存在するのかを示すメモリアドレスを含む。
【００４８】
本発明の更なる別の利点及び構成は以下の明細書の記載及び添付の図面から明らかとなろう。
【００４９】
先に挙げた特徴及び以下で解説する特徴は、各示される組み合わせにおいてのみならず他の組み合わせにおいても、又は単独でも、本発明の範囲を逸脱することなく利用されうると理解されたい。
【００５０】
本発明が図面の実施例によって概略的に示され、以下では図面を参照して詳細に解説される。
【図面の簡単な説明】
【００５１】
【図１】車両のための本発明に係る制御装置の好適な構成を概略的に示す。
【発明を実施するための形態】
【００５２】
図１には、車両のための本発明に係る制御装置の好適な構成が概略的に示され、符号１０で示されている。
【００５３】
制御装置１０は、マルチコアプロセッサ１００を備える。マルチコアプロセッサ１００は、本例では、３つのプロセッサコア１１０、１２０、及び１３０を備える。プロセッサコアの構成が、以下では、プロセッサコア１１０を例に解説される。残りのプロセッサコア１２０及び１３０は、特にプロセッサコア１１０と同じように構成される。
【００５４】
プロセッサコア１１０は、論理演算ユニット（ＡＬＵ）１１１と、局所的メモリ１１２と、を有する。局所的メモリ１１２は、特に、局所的なフラッシュメモリ又はＲＡＭメモリとして構成されうる。特に、局所的メモリ１１２は、メモリバンク１１２ａ〜１１２ｄに分けられる。
【００５５】
制御装置１０はさらに、大域的メモリ３００を有する。この大域的メモリは、フラッシュメモリ３１０と、ＲＡＭメモリ３２０と、周辺部３３０と、を含みうる。この周辺部３３０は、周辺モジュール３３１〜３３４を含み、この周辺モジュール３３１〜３３４は、例えばセンサ、アクチュエータ、アナログデジタル変換器、ＰＷＭ生成器、又はタイミングジェネレータとして構成されうる。
【００５６】
各プロセッサコア１１０、１２０、及び１３０は、自身の固有の局所的メモリにアクセスすることが可能であり、他のプロセッサコアの局所的メモリにも、大域的メモリ３００にもアクセスすることが出来ない。従って、例えば、プロセッサコア１１０は、自身の固有の局所的メモリ１１２にのみアクセスし、この局所的メモリ１１２のみからデータを読み出し、又は、この局所メモリ１１２のみにデータを書き込むことが可能である。プロセッサコア１１０は、残りのプロセッサコア１２０及び１３０の局所的メモリにも、大域的メモリ３００にもアクセスすることが出来ない。
【００５７】
制御装置１０は、調整ユニット２００をさらに有する。この調整ユニットは特に、対応するソフトウェアが実行される別体のハードウェア要素として構成される。調整ユニット２００は、バス２１０又は２２０を介して、マルチコアプロセッサ１００のプロセッサコア１１０、１２０、及び１３０、並びに、大域的メモリ３００とネットワーク接続されている。
【００５８】
調整ユニット２００は、個々のプロセッサコア１１０、１２０、１３０に、様々なタスクを実行するよう命令する。その際に、調整ユニット２００は最初に、大域的メモリ３００のフラッシュメモリ３１０又はＲＡＭメモリ３２０から対応するプログラムコードを読み込み、このデータを、タスクを実行するプロセッサコアの局所的メモリに書き込む。本例では、調整ユニット２００は、プロセッサコア１１０の局所的メモリ１１２にプログラムコードを書き込む。
【００５９】
その際に、調整ユニット２００は、局所的メモリ１１２の特定のメモリバンクに、例えばメモリバンク１１２ａにプログラムコードを書き込む。さらに、調整ユニット２００は、プロセッサコア１１０がタスク実行のために必要とする入力データを読み込む。例えば、この入力データは、周辺部３３０のセンサ３３１が収集した測定値である。調整ユニット２００は、この測定値を読み込み、データとして、プロセッサコア１１０の局所的メモリ１１２のメモリバンク１１２ｂに格納する。その際に調整ユニット２００は、場合によっては、読み出されたデータと書き込むべきデータとの間で変換を行う。
【００６０】
この後で、調整ユニット２００は、特に割り込みを用いて、プロセッサコア１１０にタスクを実行するように命令する。プロセッサコア１１０のＡＬＵ１１１は、メモリバンク１１２ｂに格納された入力データを用いて、メモリバンク１１２ａに格納されたプログラムコードを実行する。その際に、出力データが生成され、プロセッサコア１１０はこの出力データを、例えば同様にメモリバンク１１２ｂに格納する。
【００６１】
調整ユニット２００は、この出力データをメモリバンク１１２ｂから読み込み、この出力データを、例えばデータとして、大域的メモリ３００のフラッシュメモリ３１０又はＲＡＭメモリ３２０に格納する。
【図１】
0006321807.tif 000002