(57)【要約】本発明は，マイクロプロセッサ（３０）を規定通りの機能について検査する方法に関するものであって，その場合にマイクロプロセッサは各々複数のトランジスタを備えた複数のゲートを有しており，同方法においてマイクロプロセッサ（３０）上のコンピュータプログラム（３）の規定通りの実行の間にセルフテスト（７）がサイクリックに実施され，かつセルフテスト（７）の範囲内でマイクロプロセッサ（３０）のゲートが規定通りの機能について検査される。マイクロプロセッサ（３０）を規定通りの機能について，マイクロプロセッサ（３０）が規定通り駆動された場合に初めて発生するエラーも早期に検出することができるように，検査するため，かつ開ループ制御あるいは閉ループ制御アルゴリズムのためのモデルの使用をできるだけ省くために，マイクロプロセッサ（３０）の少なくとも，その状態がマイクロプロセッサ（３）上のコンピュータプログラム（３）の規定通りの実行に作用を有するゲートが，セルフテスト（７）のランの間に検査されることが，提案される。【特許請求の範囲】
【請求項１】
マイクロプロセッサ（３０）またはマイクロコントローラの計算機コア（３６）を規定通りの機能について検査する方法であって，その場合に前記計算機コア（３６）は，各々複数のトランジスタを備えた複数のゲートを有しており，前記マイクロプロセッサ（３０）または前記マイクロコントローラ上でコンピュータプログラム（３）の規定通りの実行の間にセルフテスト（７）がサイクリックに実行され，かつ前記セルフテスト（７）の範囲内において前記計算機コア（３６）の前記ゲートが規定通りの機能について検査される，前記方法において，
前記計算機コア（３６）の少なくともその状態が，前記マイクロプロセッサ（３０）または前記マイクロコントローラ上のコンピュータプログラム（３）の規定通りの実行に作用を有するゲートが，前記セルフテスト（７）のランの間に検査される，
ことを特徴とするマイクロプロセッサまたはマイクロコントローラの計算機コアを検査する方法。
【請求項２】
前記セルフテスト（７）は，
−前記計算機コア（３６）のためのセルフテスト（７）のパターンが形成され（１１）；
−前記計算機コア（３６）の前記セルフテスト（７）のパターンによってランの間に検査されないゲートの状態が，前記マイクロプロセッサ（３０）または前記マイクロコントローラ上の前記コンピュータプログラム（３）の規定通りの実行に作用を有するかが検査され；
−前記計算機コアの，前記セルフテスト（７）のパターンによってランの間に検査されない少なくとも１つのゲートが，前記マイクロプロセッサ（３０）または前記マイクロコントローラ上のコンピュータプログラムの規定通りの実行に作用を有する場合には，前記セルフテスト（７）のパターンが，付加的に前記計算機コア（３６）の前記セルフテスト（７）のパターンによって検査されておらず，かつその状態が前記マイクロプロセッサ（３０）または前記マイクロコントローラ上のコンピュータプログラムの規定通りの実行に作用を有するゲートが検査されるように，拡張されることによって，完成されたセルフテスト（７）が形成され；かつ，
−前記計算機コア（３６）の前記セルフテスト（７）のパターンによってランの間に検査されないゲートの状態が前記マイクロプロセッサ（３０）または前記マイクロコントローラ上のコンピュータプログラム（３）の規定通りの実行に作用を有していない場合に，セルフテスト（７）のパターンが完成したセルフテスト（７）として利用される（２０），
ことによって，形成される，
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記計算機コア（３６）の前記セルフテストのパターンによってランの間に検査されないゲートの状態が，前記マイクロプロセッサ（３０）または前記マイクロコントローラ上の前記コンピュータプログラム（３）の規定通りの実行に作用を有するかを検査する（１４）前に，計算機コア３６）のどのゲートが前記セルフテストのパターンによってランの間に検査されないか，が求められる，
ことを特徴とする請求項２に記載の方法。
【請求項４】
前記計算機コア（３６）のどのゲートがセルフテスト（７）のパターンによってランの間に検査されないか，を求めること（１１）は，エミュレータ上で実施され，前記エミュレータ上に計算機コア（３６）のゲート構造が少なくとも部分的にコピーされている，
ことを特徴とする請求項３に記載の方法。
【請求項５】
前記計算機コア（３６）の前記セルフテスト（７）のパターンによってランの間に検査されないゲートの状態が，前記マイクロプロセッサ（３０）または前記マイクロコントローラ上の前記コンピュータプログラム（３）の規定通りの実行に作用を有するかを調べること（１４）は，エミュレータ上で実施され，前記エミュレータ上に前記計算機コア（３６）のゲート構造が少なくとも部分的にコピーされている，
ことを特徴とする請求項２，３あるいは４項のうちいずれか１項に記載の方法。
【請求項６】
マイクロプロセッサ（３０）またはマイクロコントローラの計算機コア（３６）を規定通りの機能について検査するためのセルフテスト（７）であって，その場合に前記計算機コア（３６）は，各々複数のトランジスタを備えた複数のゲートを有しており，前記セルフテスト（７）は前記マイクロプロセッサ（３０）または前記マイクロコントローラ上のコンピュータプログラム（３）の規定通りの実行の間にサイクリックなランにおいて実施可能であって，かつ前記計算機コア（３６）のゲートを規定通りの機能について検査する，前記セルフテストにおいて，
前記セルフテスト（７）は，ランの間に，前記計算機コア（３６）の少なくとも，その状態が前記マイクロプロセッサ（３０）または前記マイクロコントローラ上の前記コンピュータプログラム（３）の規定通りの実行に作用を有するゲートを検査する，
ことを特徴とする計算機コアを検査するセルフテスト。
【請求項７】
各々複数のトランジスタを備えた複数のゲートを有する計算機コア（３６）と，前記計算機コア（３６）を規定通りの機能について検査するセルフテスト（７）とを有するマイクロプロセッサ（３０）またはマイクロコントローラであって，その場合に前記セルフテスト（７）は，前記マイクロプロセッサ（３０）または前記マイクロコントローラ上のコンピュータプログラム（３）の規定通りの実行の間にサイクリックなランにおいて実施可能であって，かつ前記計算機コア（３６）のゲートを規定通りの機能について検査する，前記マイクロプロセッサまたは前記マイクロコントローラにおいて，
前記セルフテスト（７）は，ランの間に，前記計算機コア（３６）の少なくとも，その状態が前記マイクロプロセッサ（３０）または前記マイクロコントローラ上の前記コンピュータプログラム（３）の規定通りの実行に作用を有するゲートを検査する，
ことを特徴とするマイクロプロセッサまたはマイクロコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，マイクロプロセッサまたはマイクロコントローラの計算機コアを規定通りの機能について検査する方法に関する。計算機コアは，各々複数のトランジスタを備えた複数のゲートを有している。この方法において，マイクロプロセッサまたはマイクロコントローラ上でコンピュータプログラムの規定に従った実行の間セルフテストがサイクリックに行われる。セルフテストの範囲内で，計算機コアのゲートが規定通りの機能について検査される。
【０００２】
本発明は，さらに，マイクロプロセッサまたはマイクロコントローラの計算機コアを規定通りの機能について検査するためのセルフテストに関する。計算機コアは，各々複数のトランジスタを備えた複数のゲートを有している。セルフテストは，マイクロプロセッサまたはマイクロコントローラ上でコンピュータプログラムの規定通りの実行の間に，サイクリックなランにおいて実施することができる。その場合に，セルフテストは，計算機コアのゲートを規定通りの機能について検査する。
【０００３】
そして，本発明は，各々複数のトランジスタを備えた複数のゲートを有する計算機コアを備えたマイクロプロセッサまたはマイクロコントローラに関する。計算機コア上で，計算機コアを規定通りの機能について検査するセルフテストを実施することができる。セルフテストは，マイクロプロセッサまたはマイクロコントローラ上でコンピュータプログラムを規定通り実行する間に，サイクリックなランにおいて実施することができる。その場合にセルフテストは，計算機コアのゲートを規定通りの機能について検査する。
【背景技術】
【０００４】
計算機コアのセルフテストは，ビルトインセルフテスト（Ｂｕｉｌｔ−Ｉｎ−Ｓｅｌｆ−Ｔｅｓｔ／ＢＩＳＴ）と称される。種々のセルフテスト方法が，例えばＤＥ４３０５２８８Ａ１とベール，Ｅ他の論文「フェイルストップコントローラＡＥ１１」（Ｂｏｅｈｌ，Ｅ．ｅｔ  ａｌ．，“Ｔｈｅ  Ｆａｉｌ−Ｓｔｏｐ  Ｃｏｎｔｒｏｌｌｅｒ  ＡＥ１１”，  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｓｔ  Ｃｏｎｆｅｒｅｎｃｅ，  Ｐａｐｅｒ  ２４．１，  ｐ．５６７−５７７，  ０−７８０３−４２０９−７／７９，  １９９７  ＩＥＥＥ）から知られている。これらの文献を，はっきりと参照する。
【０００５】
「マイクロプロセッサまたはマイクロコントローラ上のコンピュータプログラムの規定通りの実行」というのは，例えば制御装置のマイクロプロセッサまたはマイクロコントローラ上で制御プログラムが実行されることであって，その制御プログラムによってマイクロプロセッサあるいはマイクロコントローラはそもそも初めて，その制御機能を満たすことができるようにされる。マイクロプロセッサまたはマイクロコントローラの計算機コアは，中央演算ユニット（ＣＰＵ）またはコアと称される。
【０００６】
車両制御装置の領域からは，制御装置の規定通りの駆動の間に制御装置の計算機コアの機能を検査するために，同一の計算能力を有する２つの計算機を設けることが知られている。これは，冗長な計算機コンセプトとも称される。２つの計算機上で，開ループ制御アルゴリズムあるいは閉ループ制御アルゴリズムが実行される。２つの計算機の開ループ制御アルゴリズムあるいは閉ループ制御アルゴリズムの結果が，常に互いに比較される。結果が互いに意味のあるようにずれている場合には，２つの計算機の一方におけるエラーと仮定されて，エラーのある開ループ制御あるいは閉ループ制御を防止するために，システム全体がオフにされる。
【０００７】
しかし，制御装置のマイクロプロセッサまたはマイクロコントローラの計算機コアの規定通りの機能を検査する，従来技術から知られているこの方法においては，制御装置を規定通り駆動した場合に，即ち，開ループ制御プログラムあるいは閉ループ制御プログラムを処理した場合に初めて発生するエラーが，開ループ制御機能あるいは閉ループ制御機能が特に重要である時点において，制御装置のオフをもたらす，という欠点がある。例えば車両のための安定性制御の場合に，車両がまさに横滑りしようとする場合に，制御がアクティブになる。このような状況において，制御装置の計算機コアのエラーが検出されて，制御装置がオフにされて，それによって制御が非作動にされた場合には，それが車両の横滑りまでに至る危険な状況をもたらす可能性がある。
【０００８】
これらの欠点に対処するために，例えばＤＥ１９５００１８８Ａ１から知られた，いわゆるダイバーシティ計算機コンセプトが開発されており，その計算機コンセプトにおいては，第１の計算機，いわゆるアルゴリズム計算機は，第２の計算機，いわゆるモニタ計算機よりも能力が大きい。アルゴリズム計算機上では，本来の開ループ制御あるいは閉ループ制御アルゴリズムとさらにコントロール計算が実行される。コントロール計算は，開ループ制御あるいは閉ループ制御アルゴリズムと同じマイクロプロセッサまたはマイクロコントローラ上で実施されるが，異なるタイムスライスにおいて実施される。コントロール計算を呼び出すたびに，計算機コアの所定領域，即ち所定のゲートが規定通りの機能について検査される。コントロール計算によって，アルゴリズム計算機の計算機コアのエラーは，それが規定通り駆動されない場合，即ち開ループ制御あるいは閉ループ制御プログラムが処理されない場合にも，認識することができる。コントロール計算は，一種のセルフテストと称することができる。
【０００９】
モニタ計算機上では，同じコントロール計算が実行される。コントロール計算の結果が互いに比較されて，結果が互いに意味のあるように異なっている場合に，アルゴリズム計算機の計算機コア内のエラーが仮定されて，エラーのある開ループ制御あるいは閉ループ制御を防止するために，このアルゴリズム計算機がオフにされる。コントロール計算によって，アルゴリズム計算機の計算機コアの全てのゲートの８０％〜８５％までのテストカバーを得ることができる。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
アルゴリズム計算機の計算機コアのゲートの，残りの１５％〜２０％は，相変わらず，モニタ計算機上の開ループ制御あるいは閉ループ制御アルゴリズムのモデリングおよびモデリングした結果とアルゴリズム計算機の実際の結果との比較を用いて規定通りの機能について検査しなければならない。従って，計算機コアのゲートのこの１５％〜２０％については，相変わらず上述した問題，即ち，エラーが場合によってはアルゴリズムを規定通り駆動した場合に初めて，即ち，例えば開ループ制御あるいは閉ループ制御プログラムを処理した場合に初めて発生して，認識できる，ということが生じる。さらに，モニタ計算機内の開ループ制御あるいは閉ループ制御のモデリングは，本来の開ループ制御あるいは閉ループ制御アルゴリズムが変化した場合には，モデルも変更しなければならないことをもたらす。従って，常に，一方では本来の開ループ制御あるいは閉ループ制御アルゴリズムを，他方ではモデルを展開するために，常に２つのグループの開発者がそれに従事する。これは，著しい人的およびコスト的消費を意味している。
【００１１】
本発明の課題は，マイクロプロセッサまたはマイクロコントローラの計算機コアを，上述した欠点が回避されるように，規定通りの機能について検査することである。特に，機能検査は，マイクロプロセッサまたはマイクロコントローラが規定通りに駆動された場合に初めて発生するようなエラーも早期に検出することができるようにし，また開ループ制御あるいは閉ループ制御のためのモデルの使用もできるだけ回避しようとしている。
【課題を解決するための手段】
【００１２】
この課題を解決するために，冒頭で挙げた種類の方法に基づいて，計算機コアの少なくとも，その状態がマイクロプロセッサまたはマイクロコントローラ上のコンピュータプログラムの規定通りの実行に作用を有するゲートが，セルフテストのランの間に検査されることが，提案される。
【００１３】
本発明によれば，計算機コア内に，その状態がマイクロプロセッサまたはマイクロコントローラ上のコンピュータプログラムの規定通りの実行に作用しない，幾つかのゲートがあることが認識された。従って，これらのゲートのエラー，例えば縮退０（Ｓｔｕｃｋ  ａｔ  ０）または縮退１（Ｓｔｕｃｋ  ａｔ  １）は，コンピュータプログラムの実行とそれに伴ってマイクロプロセッサまたはマイクロコントローラの規定通りの機能に何ら作用しない。さらに，マイクロプロセッサの規定通りの機能を保証することができるようにするために，これらのゲートをセルフテストによって検査する必要がないことが認識された。
【００１４】
本発明にとって，重要なことは，まず，セルフテストに含まれない全てのゲートを求めて，こられのゲートの状態が重要ではないこと，即ちマイクロプロセッサまたはマイクロコントローラ上の所定のコンピュータプログラムの規定通りの実行に何ら作用を持たないことを証明することである。本発明によれば，計算機コアの全てのゲートの完全なテストカバーは得られないが，重要なゲートは全て検査される。セルフテストによってカバーされないゲートを検査するための，例えば開ループ制御あるいは閉ループ制御アルゴリズムによる，コンピュータプログラムのモデリングは，本発明においては省略することができる。というのは，これらのゲートはいずれにせよ，コンピュータプログラムの規定通りの実行に何ら作用を持たないからである。
【００１５】
本発明の好ましい展開によれば，セルフテストが，
−計算機コアのためのセルフテストのパターンが形成され；
−計算機コアの，セルフテストのパターンによってランの間に検査されないゲートの状態が，マイクロプロセッサまたはマイクロコントローラ上のコンピュータプログラムの規定通りの実行に作用を有するか，が検査され；
−計算機コアの，セルフテストのパターンによってランの間に検査されない，少なくとも１つのゲートの状態が，マイクロプロセッサまたはマイクロコントローラ上のコンピュータプログラムの規定通りの実行に作用を有している場合には，セルフテストのパターンが，付加的に計算機コアの少なくとも，セルフテストのパターンによって検査されておらず，かつその状態がマイクロプロセッサまたはマイクロコントローラ上のコンピュータプログラムの規定通りの実行に作用を有しているゲートが検査されるように，拡張されることによって，完成されたセルフテストが形成され；かつ，
−計算機コアの，セルフテストのパターンによってランの間に検査されないゲートの状態が，マイクロプロセッサまたはマイクロコントローラ上のコンピュータプログラムの規定通りの実行に何ら作用を持たない場合には，セルフテストのパターンが完成したセルフテストとして利用される，
ことよって形成されることが提案される。
【００１６】
本発明の好ましい実施形態によれば，計算機コアの，セルフテストのパターンによってランの間に検査されないゲートの状態が，マイクロプロセッサまたはマイクロコントローラ上のコンピュータプログラムの規定通りの実行に作用を有するか，を検査する前に，計算機コアのどのゲートがセルフテストのパターンによってランの間に検査されないか，を求めることが，提案される。
【００１７】
好ましくは，計算機コアのどのゲートがセルフテストのパターンによってランの間に検査されないかを求めることは，エミュレータ上で実施され，そのエミュレータ上に計算機コアのゲート構造が少なくとも部分的にコピーされている。
【００１８】
好ましくは，計算機コアの，セルフテストのパターンによってランの間に検査されないゲートの状態が，マイクロプロセッサまたはマイクロコントローラ上のコンピュータプログラムの規定通りの実行に作用を有するかを検査することは，エミュレータ上で実施され，そのエミュレータ上には計算機コアのゲート構造が少なくとも部分的にコピーされている。
【００１９】
本発明の課題の他の解決として，冒頭で挙げた種類のセルフテストに基づいて，セルフテストがランの間計算機コアの少なくとも，その状態がマイクロプロセッサまたはマイクロコントローラ上のコンピュータプログラムの規定通りの実行に作用を有するゲートを検査することが提案される。
【００２０】
本発明の課題のさらに他の解決として，冒頭で挙げた種類のマイクロプロセッサまたはマイクロコントローラに基づいて，マイクロプロセッサまたはマイクロコントローラ上に含まれているセルフテストは，ランの間に計算機コアの少なくとも，その状態がマイクロプロセッサまたはマイクロコントローラ上のコンピュータプログラムの規定通りの実行に作用を有するゲートを検査することが，提案される。
【発明の効果】
【００２１】
本発明によれば，計算機コア内に，その状態がマイクロプロセッサまたはマイクロコントローラ上のコンピュータプログラムの規定通りの実行に作用しない，幾つかのゲートがあることが認識された。従って，これらのゲートのエラー，例えば縮退０（Ｓｔｕｃｋ  ａｔ  ０）または縮退１（Ｓｔｕｃｋ  ａｔ  １）は，コンピュータプログラムの実行とそれに伴ってマイクロプロセッサまたはマイクロコントローラの規定通りの機能に何ら作用しない。さらに，マイクロプロセッサの規定通りの機能を保証することができるようにするために，これらのゲートをセルフテストによって検査する必要がないことが認識された。
【発明を実施するための最良の形態】
【００２２】
本発明の他の特徴，利用可能性および利点は，図面に示す本発明の実施例についての，以下の説明から明らかにされる。その場合に全ての記載あるいは図示されている特徴は，それ自体または任意の組合わせにおいて，特許請求の範囲におけるその要約またはその帰属に関係なく，かつ明細書あるいは図面におけるその表現あるいは表示に関係なく，本発明の対象を形成する。
【００２３】
図４には，本発明に基づくマイクロプロセッサが，その全体を参照符号３０で示されている。好適なデータ伝送接続３５を介してマイクロプロセッサ３０はメインメモリ３１および入／出力ユニット３２と接続されている。メインメモリ３１は，計算量とコンピュータプログラムを記憶するために用いられる。入／出力ユニット３２を介して，データが周辺機器から読み込まれ，かつ周辺機器へ出力される。
【００２４】
マイクロプロセッサ３０は，計算機コア３６を有しており，その計算機コアは中央演算装置（ＣＰＵ）またはコアとも称される。マイクロプロセッサ３０は，制御装置３３と演算装置３４を有している。制御装置３３は，プロセッサ３０の内部のシーケンス制御およびメインメモリ３１と入／出力ユニット３２の駆動を司る。制御装置は，メインメモリ３１からコンピュータプログラムの指令の読出しを行わせ，それを解釈し，その実施を制御する。処理すべきオペランドが，メインメモリ３１から読み出され，あるいは入／出力ユニット３２を介して演算装置３４へ入力されて，結果がメインメモリ３１へ書き込まれ，あるいは入／出力ユニット３２を介して出力される。その場合に演算装置３４は，オペランドと結果の中間記憶を司り，これらのオペランドにより論理的および算術的演算を実施する。
【００２５】
外部のメインメモリ３１の他に，マイクロプロセッサ３０自体幾つかのメモリスペースを有している。その幾つかは，プロセッサ３０の内部の特殊なシーケンスのために設けられており，マシンあるいはアッセンブラプログラミングのためには直接提供されない。他は，メインメモリ３１のメモリセルのようにはっきりと選択することができ，従ってプログラマにとって「見ることができる」。
【００２６】
計算機コア３６の回路は，主として複数のトランジスタ（図示せず）から構築されている。複数のトランジスタを，ゲートにまとめることができる。ゲートの出力は，ノードと称される。ノードは，各時点で一義的な動態を有する計算機コアの回路の点として記述することができる。計算機コアは，例えば，各々約１０〜１００のトランジスタを有する約１００，０００のゲートを有している。
【００２７】
本発明に基づく方法をその上で同様に実施することのできる，マイクロコントローラは，ベール，Ｅ他の論文「フェイルストップコントローラＡＥ１１」（Ｂｏｅｈｌ，Ｅ．ｅｔ  ａｌ．，“Ｔｈｅ  Ｆａｉｌ−Ｓｔｏｐ  Ｃｏｎｔｒｏｌｌｅｒ  ＡＥ１１”，  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｔｅｓｔ  Ｃｏｎｆｅｒｅｎｃｅ，  Ｐａｐｅｒ  ２４．１，  ｐ．５６７−５７７，  ０−７８０３−４２０９−７／７９，  １９９７  ＩＥＥＥ）から知られている。この印刷物を，明確に参照する。
【００２８】
図２には，例えばＤＥ１９５００１８８Ａ１から知られているような，ダイバーシティ計算機コンセプトが示されている。この公報を，明確に参照する。この計算機コンセプトは，車両制御装置のマイクロコントローラ３０の計算機コア３６を規定通りの機能について検査するための，従来技術から知られた方法を実施するために用いられる。
【００２９】
ダイバーシティ計算機コンセプトにおいては，２つの計算機が設けられている。第１の計算機，いわゆるアルゴリズム計算機１は，第２の計算機，いわゆるモニタ計算機２よりも能力が大きい。アルゴリズム計算機１上では，本来の開ループ制御あるいは閉ループ制御アルゴリズム３を有するコンピュータプログラムが実行される。さらに，アルゴリズム計算機１上で，コントロール計算（ＣＲ）４が実施される。コントロール計算４において，制限された範囲においてマイクロプロセッサ３０によってテストプログラムが処理されて，出力信号が出力ユニット３２を介して取り出されて評価される。コンピュータプログラムの一部としてソフトウェア的に実装されているコントロール計算４は，アルゴリズム計算機１によって，本来の開ループ制御あるいは閉ループ制御アルゴリズム３の実施に対して並列にタイムスライス内でオンラインで処理される。タイムスライス内でコントロール計算４を呼び出すたびに，計算機コア３６の所定領域，即ち所定のゲートが規定通りの機能について検査される。コントロール計算４の完全なランのために，このコントロール計算は複数のタイムスライス内で呼び出される。コントロール計算のランの後に，計算機コア３６の全てのゲートが検査されているわけではない。通常，コントロール計算において，アルゴリズム計算機１の計算機コア３６の全てのゲートの約８０％〜８５％までのテストカバーが達成される。
【００３０】
モニタ計算機２上では，同様にコントロール計算（ＣＲ）４が実施される。その場合にモデル計算機２の計算機コア３６のゲートの規定通りの機能が検査される。アルゴリズム計算機１上で実施されたコントロール計算４とモデル計算機２上で実施されたコントロール計算４の結果が，互いに比較される。結果が互いに意味のあるようにずれている場合には，アルゴリズム計算機１の計算機コア３６内のエラーが仮定されて，エラーのある開ループ制御あるいは閉ループ制御を防止するために，このアルゴリズム計算機がオフにされる。
【００３１】
コントロール計算によって，アルゴリズム計算機１の計算機コア３６のエラーは，この計算機コアが規定通りに駆動されない場合，即ち開ループ制御あるいは閉ループ制御プログラムが処理されない場合にも，検出することができる。コントロール計算は，ある種のセルフテストと称することができる。
【００３２】
アルゴリズム計算機１の計算機コア３６のゲートの，コントロール計算に含まれない，残り１５％〜２０％は，モニタ計算機２上でのコンピュータプログラムの，即ち開ループ制御あるいは閉ループ制御アルゴリズムのモデリングおよびモニタ計算機２のモデリングされた結果とアルゴリズム計算機１の実際の結果との比較を用いて，規定通りの機能について検査しなければならない。モニタ計算機３上で，モデル６内に開ループ制御あるいは閉ループ制御アルゴリズム３がコピーされる。本来の開ループ制御あるいは閉ループ制御アルゴリズム３とモデリングされた開ループ制御あるいは閉ループ制御アルゴリズム６の結果が，互いに比較される。結果が互いに意味のあるようにずれている場合には，アルゴリズム計算機１の計算機コア３６内のエラーが仮定されて，このアルゴリズム計算機がオフにされる。このようにしてコントロール計算によってカバーされない，マイクロプロセッサ３０のゲートをエラーについて検査することができる。アルゴリズム計算機１のマイクロプロセッサ３０のゲートのこの１５％〜２０％については，当然ながら，エラーは，必要に応じて，マイクロプロセッサ３０が規定通り駆動された場合に，即ち開ループ制御あるいは閉ループ制御プログラムが処理された場合に初めて発生し，かつ認識することができる，という問題がある。さらに，モニタ計算機２内の開ループ制御あるいは閉ループ制御アルゴリズムのモデリング６は，開ループ制御あるいは閉ループ制御アルゴリズム３が変化した場合には，モデル６も変更しなければならないことをもたらす。
【００３３】
従って，本発明によれば，図１に示すダイバーシティ計算機コンセプトが提案され，その計算機コンセプトにおいては，既知のコントロール計算が完全なセルフテスト７，８，いわゆるビルトインセルフテスト（ＢＩＳＴ）に拡張されている。ＢＩＳＴ７のベースとして，半導体メーカーによって計算機コア３６の製造の途中で使用されるテストベクトルを利用することができる。ＢＩＳＴ７においては，テストプログラムはアルゴリズム計算機１によって処理されて，生成された結果（シグネチャ）が出力信号としてマイクロプロセッサ３０の出力において取り出されて，評価される。
【００３４】
テスト結果を評価するために，このテスト結果はシリアルのデータインターフェイスを介してモニタ計算機２へ提供される。そこでアルゴリズム計算機１のＢＩＳＴ７とモニタ計算機２のＢＩＳＴ８のテスト結果が，互いに比較される。エラーが検出された場合には，供給電圧が次にオンにされるまで，アルゴリズム計算機１の安全遮断（ハードウェアリセット）が実施される。別体のモニタ計算機２の代わりに，第２の独立した計算機コンポーネントをアルゴリズム計算機１と共にＡＳＩＣ（Ａｐｐｌｉｃａｉｔｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ；利用固有回路）として共通のハードウェアモジュール上に集積することもできる。
【００３５】
マイクロプロセッサ３０上で実行されるコンピュータプログラムの一部としてソフトウェア的に実装されたＢＩＳＴ７は，アルゴリズム計算機１によって，本来の開ループ制御あるいは閉ループ制御アルゴリズム３の実施に対して並列にタイムスライス内でオンラインで処理される。タイムスライス内でＢＩＳＴ７が呼び出されるたびに，計算機コア３６の所定領域，即ち所定のゲートが規定通りの機能について検査される。ＢＩＳＴ７のランのために，ＢＩＳＴは複数回呼び出されなければならない。ＢＩＳＴのランは，約数ミリ秒（例えば３ｍｓ）かかる。ＢＩＳＴのラン後に，アルゴリズム計算機１の計算機コアの全てのゲートの約９０％〜９５％のテストカバーが達成される。
【００３６】
ＢＩＳＴに含まれない，ゲートの残りの５％〜１０％については，シミュレーションによって，これらのゲートの状態がマイクロプロセッサ３０上で所定のコンピュータプログラムの，特に開ループ制御あるいは閉ループ制御アルゴリズムの規定通りの実行に作用を持たないことを証明することができる。従って，ゲートのこの５％〜１０％までの規定通りの機能を保証するために，−従来技術の場合のように−コンピュータプログラムのモデル６を使用する必要はない。本発明に基づく方法によって，マイクロプロセッサ３０の機能のアプリケーションに依存しない検査および同時に計算機コア３６の全ての重要なゲートの完全な検査を得ることができる。
【００３７】
本発明に基づく方法を実現するためには，まず，アルゴリズム計算機１の計算機コア３６のどのゲートがＢＩＳＴ７によって規定通りの機能について検査されるか，あるいははそのゲートがＢＩＳＴ７によって検出されないかが求められなければならない。その場合に，ＢＩＳＴ７によって検出されないゲートについては，マイクロプロセッサ３０上で実行される所定のコンピュータプログラムについて，このゲートの状態がコンピュータプログラムの規定通りの実行に作用を有するかを求めなければならない。
【００３８】
両者は，シミュレーション計算機，いわゆるシリコンエミュレータによって求めることができる。シミュレーション計算機上で，計算機コア３６のゲート構造がプログラミング可能なゲート回路（ＦＰＧＡ；Ｆｉｅｌｄ  Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙｓ）内にコピーされる。シミュレーション計算機は，計算機コア３６のメーカーから出されて，計算機コア３６の動態を記述するネットワークリストを用いてプログラミングされる。ゲート回路は，計算機，特にワークステーションから制御され，かつ操作される，エミュレーションボックス内にある。エミュレーションボックスとワークステーションが，シミュレーション計算機を形成する。
【００３９】
ＢＩＳＴの有効性は，エラーシミュレーション方法によって証明される。シミュレーションは，パーセンテージで表した変量として，エラーカバーの度合いのための指数を提供する。エラーシミュレーションにおいて，指令テストのために，指令テストプログラムがシミュレーション計算機上でアルゴリズム計算機１の計算機コア３６のエラーのないモデルとエラーのあるモデルによって駆動される。指令テストプログラムが偏差を確認した場合に，エラーが認識される。全ての指令テストプログラム全体が計算機コア３６のＢＩＳＴ７を形成する。ＢＩＳＴによって発見されない各個別エラーは，他の実行において，次のステップ内で実施すべきエラーエミュレーションのインプット変数である。
【００４０】
エラーエミュレーションは，コンピュータプログラムの規定通りの実行に対するゲートの状態の作用を求めるために，シミュレーション計算機のゲートモデル上で実施される。エラーエミュレータがアルゴリズム計算機１の周辺機器と協働するという事実に基づいて，ＢＩＳＴによって発見されないエラーの，システム全体に及ぼす作用を定めることができる。
【００４１】
エラーシミュレーションとエラーエミュレーションの範囲内で，アルゴリズム計算機１の計算機コア３６の，一方ではＢＩＳＴによって検出されず，他方ではコンピュータプログラムの規定通りの実行に作用を有するゲートが発見された場合には，ＢＩＳＴをそれに応じて拡張し，または変更することができるので，このゲートもＢＩＳＴによって検出される。従ってＢＩＳＴ７は，反復プロセスにおいて，全部の危機的な残留エラーが認識され，従ってシステム安全性が保証されるように拡張される。
【００４２】
図３には，本発明に基づく方法のフローチャートが示されている。方法は，機能ブロック１０で開始される。機能ブロック１１においては，アルゴリズム計算機１の計算機コア３６のためのＢＩＳＴのパターンが形成される。このパターンは，後にマイクロプロセッサ３０上で実行すべきコンピュータプログラム（例えば，開ループ制御あるいは閉ループ制御アルゴリズムを有する）に関係なく形成することができる。しかし，また，ＢＩＳＴのパターンにおいて，後にマイクロプロセッサ３０上で実行すべきコンピュータプログラムを既に考慮することも考えられる。パターンの形成は，通常，計算機コア３６のメーカーにおいて行われる。
【００４３】
機能ブロック１２においては，ＢＩＳＴのパターンのためのパターンの有効性を求めるため，即ちパターンのどのゲートが検査されないか，を検出するために，エラーシミュレーションが実施される。その後，機能ブロック１３において，エラーエミュレーションが実施される。エラーシミュレーションとエラーエミュレーションは，両者とも，マイクロプロセッサ３０上で実行されるコンピュータプログラムのメーカーにおいてシミュレーション計算機内で実施される。エラーエミュレーションにおいては，各々，ＢＩＳＴのパターンによってランの間に検査されないゲートについて，ゲートの状態がマイクロプロセッサ３０上のコンピュータプログラムの規定通りの実行に作用を有するかが求められる。そうである場合には，判断ブロック１４から機能ブロック１５へ分岐して，そこで実際のゲートの名称がエラーメモリに格納される。しかし，実際に考察されたゲートの状態がコンピュータプログラムの実行に作用を有していない場合には，他の判断ブロック１６へ分岐して，そこで，ＢＩＳＴのパターンによって検出されない全てのゲートが検査されたかが調べられる。そうでない場合には，機能ブロック１７へ分岐して，そこで次のゲートが実際のゲートとして選択される。判断ブロック１６へは，機能ブロック１５からも分岐が行われる。
【００４４】
ＢＩＳＴのパターンによって検出されない全てのゲートが検査された場合には，機能ブロック１８へ分岐して，そこでエラーメモリが読み出される。判断ブロック１９において，エラーメモリが空であるかが検査される。そうである場合には，機能ブロック２０へ分岐して，そこでＢＩＳＴの実際のパターンが完成したＢＩＳＴ７として利用される。その後機能ブロック２１において，本発明に基づく方法が終了する。
【００４５】
しかし，ＢＩＳＴのパターンによってランの間に検査されなかった，計算機コア３６の少なくとも１つのゲートの状態が，マイクロプロセッサ３０上のコンピュータプログラムの規定通りの実行に作用を有する場合（エラーメモリは空ではない），判断ブロック１９から機能ブロック１１へ分岐して，そこでエラーメモリの内容を考慮しながら再度ＢＩＳＴのパターンが形成される。
【００４６】
この再帰的方法は，判断ブロック１９内の条件（エラーメモリは空か？）が満たされるまでの間実行される。従って，本発明によれば，再帰的な方法で各々のコンピュータプログラムにとって最適なＢＩＳＴが求められる。
【図面の簡単な説明】
【００４７】
【図１】マイクロプロセッサを規定通りの機能について検査する，本発明に基づく方法を実現するためのダイバーシティ計算機コンセプトを示している。
【図２】マイクロプロセッサを規定通りの機能について検査する，従来技術から知られた方法を実現するためのダイバーシティ計算機コンセプトを示している。
【図３】本発明に基づく方法のフローチャートである。
【図４】本発明に基づくマイクロプロセッサを示している。
【図１】
2005505078.tif 000002
【図２】
2005505078.tif 000003
【図３】
2005505078.tif 000004
【図４】
2005505078.tif 000005
【国際公開パンフレット】
2005505078.tif 000006
2005505078.tif 000007
2005505078.tif 000008
2005505078.tif 000009
2005505078.tif 000010
2005505078.tif 000011
2005505078.tif 000012
2005505078.tif 000013
2005505078.tif 000014
2005505078.tif 000015
2005505078.tif 000016
2005505078.tif 000017
2005505078.tif 000018
2005505078.tif 000019
2005505078.tif 000020
2005505078.tif 000021
2005505078.tif 000022
2005505078.tif 000023
2005505078.tif 000024
2005505078.tif 000025
2005505078.tif 000026
2005505078.tif 000027
2005505078.tif 000028
2005505078.tif 000029
2005505078.tif 000030
2005505078.tif 000031
2005505078.tif 000032
【国際公開パンフレット（コレクトバージョン）】
2005505078.tif 000033
【国際調査報告】
2005505078.tif 000034
2005505078.tif 000035
2005505078.tif 000036
2005505078.tif 000037