(57)【特許請求の範囲】
【請求項１】
少なくとも２つのプロセッサコア（２、３）を有する演算ユニット（１）においてプロセッサコアを検査する方法であって、前記プロセッサコア（２、３）は内部接続システム（７）を介して互いに接続され、２つのプロセッサコア（２、３）は機械の動作シーケンスに寄与する、前記方法において、
第１のプロセッサコア（３）に対する検査が実施される間に、同時に第２のプロセッサコア（２）内で前記機械の前記動作シーケンスを実施するためのプログラムが実行され、前記検査のために、
前記第１のプロセッサコアのスキャンチェーンが、前記第１のプロセッサコアの内部のフリップフロップがシフトレジスタに接続されることによって形成され、
前記第２のプロセッサコアによって、メモリ（６）からテストデータがロードされ、
前記第１のプロセッサコア（３）の前記スキャンチェーンがアクセス可能であることによって、前記第２のプロセッサコア（２）により前記第１のプロセッサコア（３）がテストモードに切り替えられ、
前記第１のプロセッサコア（３）のための前記検査結果を提供するために、前記第２のプロセッサコア（２）を用いて、前記第１のプロセッサコア（３）の前記スキャンチェーンによって前記テストデータが読み出され、
前記第２のプロセッサコア（２）によって、前記第１のプロセッサコア（３）のために獲得された前記検査結果の妥当性が検査される、ことを特徴とする、方法。
【請求項２】
１つのプロセッサから他のプロセッサコアに対して検査問合せが行なわれ、前記検査問合せに２つのプロセッサコア（２、３）が同意した後に、第１のプロセッサコア（３）はテストモードに置かれ、第２のプロセッサコア（２）は、第１のプロセッサコア（３）にテストデータを与え、前記検査の終了後に前記第１のプロセッサコア（３）の前記検査結果の正確性を検査することを特徴とする、請求項１に記載の方法。
【請求項３】
前記検査問合せが周期的に行なわれることを特徴とする、請求項２に記載の方法。
【請求項４】
前記プロセッサコア（２）は、前記検査問合せへの２つのプロセッサコア（２、３）の前記同意を最初に確定する検査を起動することを特徴とする、請求項２に記載の方法。
【請求項５】
前記プロセッサコア（２）は、所定の時点に前記検査問合せに対する前記プロセッサコア（２、３）の前記応答を評価する検査を起動することを特徴とする、請求項２に記載の方法。
【請求項６】
前記テストデータが、前記プロセッサコア（２、３）を備える前記演算ユニット（１）の内部メモリ（６）から読み出されることを特徴とする、請求項１に記載の方法。
【請求項７】
前記テストデータが、前記機械の他の制御装置から読み出されることを特徴とする、請求項１に記載の方法。
【請求項８】
前記テストデータは、検査を実施するために変化することを特徴とする、請求項１に記載の方法。
【請求項９】
前記第１のプロセッサコア（３）上での前記検査の間に、前記機械の前記動作シーケンスのために必要な前記プログラムのシーケンスの少なくとも一部が、前記第２のプロセッサコア（２）によって実行されることを特徴とする、請求項１に記載の方法。
【請求項１０】
前記第１のプロセッサコア（３）上での前記検査の間に前記第１のプロセッサコア（３）に対して宛てられる、前記機械の前記動作シーケンスからの命令シーケンスが前記メモリに格納されることを特徴とする、請求項１に記載の方法。
【請求項１１】
前記検査は、前記プロセッサコア（３）の所定のタイムスロットにおいて実施されることを特徴とする、請求項１に記載の方法。
【請求項１２】
前記タイムスロットは、時間駆動型プロセッサコア（３）において、前記プロセッサコア（３）のアイドル段階に設定されることを特徴とする、請求項１１に記載の方法。
【請求項１３】
前記検査は、所定のイベントに続いて実施されることを特徴とする、請求項１に記載の方法。
【請求項１４】
少なくとも２つのプロセッサコア（２、３）を有する演算ユニット（１）においてプロセッサコアを検査する方法であって、前記プロセッサコア（２、３）は内部接続システム（７）を介して互いに接続され、２つのプロセッサコア（２、３）は車両の走行動作に寄与する、前記方法において、
第１のプロセッサコア（３）に対する検査が実施される間に、同時に第２のプロセッサコア（２）内で前記車両の前記走行動作を実施するためのプログラムが実行され、前記検査のために、
前記第１のプロセッサコアのスキャンチェーンが、前記第１のプロセッサコアの内部のフリップフロップがシフトレジスタに接続されることによって形成され、
前記第２のプロセッサコアによって、メモリ（６）からテストデータがロードされ、
前記第１のプロセッサコア（３）の前記スキャンチェーンがアクセス可能であることによって、前記第２のプロセッサコア（２）により前記第１のプロセッサコア（３）がテストモードに切り替えられ、
前記第１のプロセッサコア（３）のための前記検査結果を提供するために、前記第２のプロセッサコア（２）を用いて、前記第１のプロセッサコア（３）の前記スキャンチェーンによって前記テストデータが読み出され、
前記第２のプロセッサコア（２）によって、前記第１のプロセッサコア（３）のために獲得された前記検査結果の妥当性が検査される、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、少なくとも２つのプロセッサコアを有する演算ユニットにおいてプロセッサコアを検査する方法であって、プロセッサコアは内部接続システムを介して互いに接続され、２つのプロセッサコアは機械の動作シーケンスに寄与する、上記方法と、本方法を実施するための装置に関する。
【背景技術】
【０００２】
集積回路は、適切に動作するかについて、半導体製造業者において予め検査される。このことは特に、安全性の理由からその機能性について検査する必要があるプロセッサコアの場合にも該当する。このことは、半導体製造業者において、半導体チップ上にマイクロプロセッサを製造した後に、制御装置にプロセッサコアが未だに組み込まれていない、未組立の状態で行なわれる。
【０００３】
独国特許出願公開第２００６  ０１４  ２６７号明細書において、少なくとも制御装置に組み込まれた演算ユニットを検査する方法が公知であり、当該方法においては、テストデータが、制御装置インタフェースによって、第１の演算ユニットを検査するためにロードされ、続いて、ロードされた第１のテストデータが、第２の演算ユニットのメモリユニットに格納される。その後、第１の演算ユニットが、第２の演算ユニットによって、第１のテストデータが利用されるテストモードに切り替えられる。第１の演算ユニットの検査結果データは、第２の演算ユニットによって妥当性が検査される。
しかしながら、この検査によっては、特定のエラー検出度しか保証されない。なぜならば、このような検査は、短時間しか演算ユニットを妨げてはならないからである。演算ユニットは、検査の後再び即時に制限なく利用される必要があるため、利用可能なテストパターン、及び、エラーカバレージも限定される。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明には、最小限の時間消費で高いエラーカバレージが達成される、プロセッサコアを検査する方法及び装置を提示するという課題がある。
【課題を解決するための手段】
【０００５】
プロセッサコアを検査するための本発明に係る方法は、テストカバレージが向上し、より長く中断されずに検査が行なわれるという利点を有し、これにより、より良好なテストパターンが利用されうる。従って、ハードウェアエラーが確実に排除されうる。機械の動作シーケンスの間で、１のプロセッサコアが検査される間に、他のプロセッサコアが、その通常のプログラムシーケンスを実行することによって、実時間システムにおいて検査を利用することが可能である。動作シーケンスを制御するソフトウェアは、検査の間変わらず動作可能であり、テストパターンの生成のためにも利用されうるので、非常に多様なテストパターンが利用可能である。
【０００６】
好適に、１のプロセッサコア内で検査が進行する間に、同時に他のプロセッサコア内で、機械の動作シーケンスを実施するためのプログラムが実行される。このように、機械が検査の間にその機能性を維持しうるので、動作シーケンスのみならず、機械が駆動する間の安全性も絶え間なく保証される。
【０００７】
一発展形態において、２つのプロセッサコアに検査を導入するために、検査問合せが出力され、その後、当該検査問合せに２つプロセッサコアが同意した後で、第１のプロセッサコアはテストモードに置かれ、第２のプロセッサコアは、第１のプロセッサコアにテストデータを与え、検査の終了後に、第１のプロセッサコアの検査結果の正確性が検査される。検査問合せによって、機械の機能性が妨害されていない時点に、検査が動作シーケンスに加えられることが保証される。このような検査問合せは、２つのプロセッサコアが同時に条件に同意する必要があることによって、簡単に実現される。
【０００８】
検査問合せが、周期的なシステムにおいて同様に周期的に行なわれる場合、データが未だに送信され又は受信されない（ｏｆｆｌｉｎｅ、オフライン）場合に、検査のために都合のいい時点を決定することが可能である。
【０００９】
好適に、プロセッサコアは、検査問合せへの２つのプロセッサコアの同意を最初に確定する検査を起動する。代替的に、プロセッサコアは、所定の時点に検査問合せに対するプロセッサコアの応答を評価する検査を起動する。この場合に、プロセッサコアは常に、所定の時点に、検査問合せへのプロセッサコアの同意を検査し、これにより、検査が同意の後に実際に即時に実施されることが保証される。
【００１０】
本発明の一発展形態において、検査の実施のために、最初に、メモリから第１のテストデータがロードされる。続いて、第１のプロセッサコアのスキャンチェーンがアクセス可能であることによって、第２のプロセッサコアにより第１のプロセッサコアがテストモードに切り替えられる。その後、第１のテストデータが、第１のプロセッサコアのスキャンチェーンによって、第２のプロセッサコアを用いて読み出され、これにより、第１のプロセッサコアのための検査結果が提供される。第２のプロセッサコアは、第１のプロセッサコアのために獲得された検査結果の妥当性を検査する。スキャンチェーンは、プロセッサコアの内部のフリップフロップ（Ｆｌｉｐ−Ｆｌｏｐ）がシフトレジスタに接続されることによって形成される。この簡単な方法に基づいて、駆動中の機械のプロセッサコアを検査する際にも、半導体製造業者が演算ユニットの製造時の製造条件の下で利用するようなテストパターンを利用することが可能である。従って、新しいテストパターンを作成することは、一般に行なわなくてもよい。テストパターンとして、駆動中の演算ユニットの高いテストカバレージを可能とする、スタックアット（Ｓｔｕｃｋ−ａｔ）テストパターンと、パスディレイ（Ｐａｔｈ  Ｄｅｌａｙ）テストパターンとが利用されうる。
【００１１】
一実施形態において、第１のテストデータが、プロセッサコアを備える演算ユニットの内部メモリから読み出される。従って、追加的なメモリユニットは無くてもよい。
【００１２】
しかしながら、テストデータが、機械の他の制御装置から読み出されるという可能性もある。この場合にも、テストデータの格納のために既存メモリを利用し、追加的なメモリ無しで済ますという利点が利用される。
【００１３】
好適に、テストデータは検査を実施するために変化し、これにより、様々なテストデータの利用によって、様々なハードウェア構成要素が適切に動作するかについて検査されうる。この場合に、パターンの数の、ハードウェアに基づく制限はない。従って、同じハードウェアによる、利用されるパターンの数は、ソフトウェアの構成によって調整可能である。周期的又は少なくとも所定の間隔で実施される検査の場合、各実施の際に様々なテストパターンを利用することが出来る。
【００１４】
本発明の一発展形態において、第１のプロセッサコア上での検査の進行の間に、検査されるプロセッサコアの、機械の動作シーケンスのために必要なプログラムシーケンスの少なくとも一部が、他のプロセッサコアによって実行される。これにより、その中断が機械の動作シーケンスにおける障害に繋がるであろう重要なプログラム部分が、迅速に実行されることが保証される。検査される第１のプロセッサコアは、検査の間はプログラムシーケンスのために利用されないが、機械の利用者、又は駆動中のアプリケーションは、機械の処理フローにおける違いに気付かない。
【００１５】
その実行が、機能及び／又は安全性の面で機械に緊急に関係しないプログラム部分の場合、第１のプロセッサコア上での検査の進行中に第１のプロセッサコアに対して宛てられる、機械の動作シーケンスからの命令シーケンスが格納され、プロセッサコアが検査後に通常の動作を再開して初めて実行される。
【００１６】
更なる別の実施形態において、検査は、プロセッサコアの所定のタイムスロットにおいて実行される。検査が実施される適切なタイムスロットを選択することによって、再構成コストや、加工されていないソフトウェアの加工のための時間消費も、これらのことは対応するプロセッサコア上でのソフトウェアの通常のフローの障害に多少なりとも該当するのだが、最小限に抑えられる。
【００１７】
このことは、タイムスロットが、時間駆動型プロセッサコアにおいて、プロセッサコアのアイドル段階に設定される場合に、特に簡単に行なわれうる。従って、アクティブ又はパッシブな検査のために特に静的なタイムスロットが利用されうる。
【００１８】
プロセッサコア内の時間駆動型のプログラムシーケンスにおいては、検査は、所定のイベントに続いて実施される。その際、あるイベントの後の次のイベントが時間的に比較的離れているという事実が利用され、従って、このような時点の後での検査の呼び出しは有効である。
【００１９】
本発明の他の発展形態において、少なくとも２つのプロセッサコアを有する演算ユニットにおいてプロセッサコアを検査する方法であって、プロセッサコアは内部接続システムを介して互いに接続され、２つのプロセッサコアは車両の走行動作に寄与する、方法において、１のプロセッサコア内で検査が進行されている間に、同時に他のプロセッサコア内で車両の走行動作を実施するためのプログラムが実行される。
【００２０】
このことは、利用されるハードウェアの検査は、車両の走行動作において障害が発生することなく、実時間条件の下のみならず、自動車の限界条件の下でも実施されうるという利点を有する。従って、検査は特に、車両における安全性に関わる要請を満たす。プロセッサコアを有する演算ユニットを備える制御装置の工場での検査は、もはや必要ではなく又は簡略化されうる。なぜならば、エラーの原因が既に走行動作中に検出され、示されるからである。
【００２１】
一実施形態において、車両の走行動作の間に、１のプロセッサコアは他のプロセッサコアを検査する。この時点に検査されるプロセッサコアが、走行動作のプログラムシーケンスのために利用されない間に、他のプロセッサコアが、車両に関連するプログラムシーケンスを引き継ぐ。これにより、車両の利用者は、検査シーケンスに気付かない。
【００２２】
本発明の更なる発展形態において、少なくとも２つのプロセッサコアを有する演算ユニットにおいてプロセッサコアを検査するための装置であって、プロセッサコアは内部接続システムを介して互いに接続され、２つのプロセッサコアは車両の走行動作に寄与する、上記装置において、手段が設けられ、上記手段によって、１のプロセッサコア内での検査が実施される間に、同時に他のプロセッサコア内で車両の走行動作を実施するためのプログラムが実行される。
【発明の効果】
【００２３】
本装置は、稼働中の制御装置を使用する間の検査を許容し、検査の間に、車両の走行動作が維持される。この検査の場合、最小のコストで高いエラーカバレージが達成される。
【図面の簡単な説明】
【００２４】
本発明は、数多くの実施形態を許容する。そのうちの１つが、図面に記載された図を用いて詳細に解説される。
【図１】車両の制御装置内の演算ユニットの原理を示す図である。
【図２】本発明に係る方法の実施形態の概略的なフローチャートを示す。
【発明を実施するための形態】
【００２５】
図１には、車両の制御装置内で利用されるような演算ユニット１が示されている。演算ユニット１は、本ケースでは２つのプロセッサコア２及び３を有するが、必要な場合にはより多くのプロセッサコアを有しうる。さらに、ＲＡＭ４と、ＲＯＭ５と、フラッシュメモリ６とが演算ユニット１内に備えられる。プロセッサコア２及び３、並びに、ＲＡＭ４、ＲＯＭ５及びフラッシュメモリ６は、内部接続システム、例えばバスを介して互いに通信する。
【００２６】
図２から明らかであるように、ステップ２０１において、制御装置が車両の走行動作の間稼動する。プロセッサコア２は、ここでは、車両の電気制御式安定性制御プログラム（ＥＳＰ：ｅｌｅｋｔｒｏｎｉｓｃｈｅｓ  Ｓｔａｂｉｌｉｔａｅｔｓｐｒｏｇｒａｍｍ）のプログラムシーケンスに対して責任を負い、プロセッサコア３は、エンジン制御の燃料噴射のプログラムシーケンスを担当する。
【００２７】
プロセッサコア２、３が正しく機能しているかどうかを走行動作中に確認するために、ステップ２０２において、ソフトウェアを介して、この時点でプロセッサコア２、３のうちの１つの検査が可能であるかを確認するために、１のプロセッサ２から他のプロセッサ３へと検査問合せが行なわれる。その際、どのプロセッサコア２、３が検査されるか、さらに、どのプロセッサコア２、３が対応して、検査の間に、検査されるプロセッサコア２、３のタスクを引き継ぐのかということが提案される。このためには、複数の可能性がある。よって、カウンタ、ＲＡＭ素子、又は特殊レジスタが、２つのプロセッサコア２、３が同時に条件に同意するかどうかを確認するために利用されうる。
【００２８】
ステップ２０３において、プロセッサコア２、３によって、現在の走行状況において検査を実施しうるかどうか、問合せの判定が行なわれる。可能な基準は、例えば回転数に依存した、要求される演算能力から明らかとなりうる。第１のプロセッサコア２が、例えば、エンジン回転数を検査するとする。エンジン回転数が、３０００回転／分の回転数を上回る場合に、プロセッサコア２は検査への同意を拒否する。エンジン出力が３０００回転／分の回転数を下回る場合には、プロセッサコア２は検査に同意する。
【００２９】
更なる別の可能な基準は、割り込みの確率である。このことは、例えば噴射に依存する。この場合に、プロセッサコアは、最後の燃料噴射の時点がいつであったかを検査する。このような噴射がつい今しがた行なわれた場合には、プロセッサコアは検査に同意する。なぜならば、次の噴射は、時間的にまだ比較的離れているからである。しかしながら、最後の噴射が一定の時間前のことである場合に、プロセッサコアは、検査への同意を拒否する。なぜならば、間もなく再び噴射があることを見込む必要があるからである。解説から分かるように、プロセッサコア２、３が検査問合せに同意するか、さらに、プロセッサコア２、３のうちどれが検査されるのかは、現在の動作シーケンスに依存する。同意のための基準は、ソフトウェアに実装される必要があり、適用に依存する。
【００３０】
ステップ２０４において、検査がいつ実施されるのかが決定される。このステップは、双方の同意の後に即時に検査が実施されない場合でも明示的な形態で必要である。従って、例えば、言及したカウンタ、ＲＡＭ素子、又は特殊レジスタを、この実施される時点を定めるために利用することが出来る。
【００３１】
時間駆動型の、典型的に周期的なシステムにおいて、すでにオフライン（ｏｆｆｌｉｎｅ）で、いつ又はどのタイムスロットで、対応する検査が実施されるかを決定することが出来る。その場合に、駆動中には、次のこのような時点を識別するというタスクのみ発生する。
【００３２】
好適に、このようなシステムにおいて、ステップ２０２からの問合せが、検査が引き続いて即時に実施されうる時点に行なわれる。
【００３３】
イベント駆動型システムでは、良い時点は、特定のイベントの直後である。例えば、このことは、次の処理されるべきイベントが十分に先のことであることがシステム知から予測されうる場合に、該当する。
【００３４】
時間決定（ステップ２０４）は常に駆動中に、即ち、オンライン（ｏｎｌｉｎｅ）で行なわれる。その際、条件が既にプログラミングされる時点で分析される場合に非常に有利であり、駆動中には、可能な限り簡単なルーチンを実行すればよい。
【００３５】
引き続いて、ステップ２０５において、検査するコアとしてステップ２０２で提案されたプロセッサコア２、３によって、検査が開始される。この場合、プロセッサコア３に例えば検査を起動する割り込みについて通知するのは、プロセッサコア２である。
【００３６】
検査を実施するために、テストデータが最初に、演算ユニット１のフラッシュメモリ６又はＲＯＭメモリ５からロードされる。その際、様々なテストパターンが利用されうる。新しいテストパターンを作成することは場合によっては、半導体製造で公知のスタックアットテストパターンと、パスディレイテストパターンが利用される場合には行なわなくてもよい。スタックアットテストにおいては、レジスタ内容が変更される静的な検査が関わっている。パスディレイテストパターンは、レジスタのシフト時間が変更される動的な検査である。シフト時間が短すぎる場合には、レジスタ内容のシフトが行なわれず、このことはエラー検出に繋がる。
【００３７】
テストデータの呼び出し後に、プロセッサコア３は、プロセッサコア３のスキャンチェーンがアクセス可能なテストモードに切り替えられる。その後、テストパターンの第１のテストデータが、プロセッサコア３のスキャンチェーンによって、好適にプロセッサコア２によって読み出され、これにより、プロセッサコア３のための検査結果が提供される（ステップ２０６）。代替的に、テストパターンは、そのために設けられた特別なハードウェアユニットによっても、プロセッサコアのスキャンチェーンによって読み出される。
【００３８】
検査の間に、検査されるプロセッサコア３のためのタスクが到着した場合には、ステップ２０７において、タスクの緊急度が検査される。例えばエンジン制御における予期せぬ噴射のように、このタスクが迅速に実行される必要がある場合には、割り込みがプロセッサコア２へと転送され、プロセッサコア２は、この割り込みを再構成の後に実行する。現在のタスクが、タイムクリティカルなタスクに関わらない場合には、このタスクは、プロセッサコア３が検査後に再び通常のプログラムシーケンスを開始し、これによって実行されるまで、好適に駆動システムを介してＲＡＭメモリ４に一時格納される。
【００３９】
検査が終了すると、例えば、プロセッサコア２は、プロセッサコア３のために獲得された検査結果の妥当性を検査し、場合によってはエラー信号の出力を促す（ステップ２０８）。代替的に、検査は、プロセッサコア２に割り当てられた特別なハードウェアユニットによっても遂行されうる。
【００４０】
本発明に係る方法は、２つのプロセッサコアを備える演算ユニットのみに限定されず、対応して、より多くのプロセッサコアを備える演算ユニットにおいても実行されうる。
【図１】
0005647129.tif 000002
【図２】
0005647129.tif 000003