(57)【特許請求の範囲】
【請求項１】
少なくとも部分的に安全上重大なプロセスを制御または調節するマイクロプロセッサシステム（６０）であり、チップハウジングの中に組み込まれ、それぞれアドレスバスおよびデータバスを有する第１および第２の中央処理ユニット（１、２）と、この第１および第２中央処理ユニットにそれぞれ対応する第１および第２バスシステムと、前記第１バスシステム上の少なくとも１つの完全なメモリ（７）と、前記第１バスシステム上の完全なメモリ（７）のデータに紐付けられる１つ以上のテストデータ記憶装置（５）内のテストデータとを含むマイクロプロセッサシステム（６０）であって、さらに、前記テストデータ記憶装置（５）は前記完全なメモリ（７）よりも小さく、前記バスシステムは、前記２つのバスシステム間におけるデータ交換、および比較の、少なくとも一方を可能にする比較、およびドライバ構成要素の、少なくとも一方を含むマイクロプロセッサシステム（６０）において、
前記第１バスシステムは、完全なメモリ（７）からのデータをこれらのデータと協働するテストデータと比較して、不一致の場合には、訂正されたデータを生成するためにテストデータを使用して完全なメモリ（７）からのデータを訂正するための第１のハードウェアユニット（６）を有し、かつ、第２のバスシステムは、訂正されたデータをテストデータと比較して、そのテストデータが訂正されたデータと不一致であるときには、エラー信号を生成する第２のハードウェアユニット（６１）を有し、
前記１つまたは複数のテストデータ記憶装置（５）が前記第１バスシステム上に配置され、前記第２バスシステムは、前記第１バスシステム上の完全なメモリ（７）のデータのバックアップ用として用いられるテストデータ記憶装置またはメモリのいずれをも有さないことを特徴とするマイクロプロセッサシステム。
【請求項２】
前記第１バスシステム上の前記完全なメモリ（７）の少なくとも一部分が前記第１バスシステム上のテストデータ記憶装置（５）およびテストデータによってバックアップされ、かつ、前記第１バスシステムには、前記テストデータ記憶装置（５）用のテストデータを生成する前記第１のハードウェアユニット（６）が配置されることを特徴とする請求項１に記載のマイクロプロセッサシステム。
【請求項３】
前記第１バスシステム上の前記完全なメモリ（７）および前記テストデータ記憶装置（５）がそれぞれ専用のアドレスデコーダ（８、９'）を有し、このアドレスデコーダの少なくとも１つは前記第２バスシステムに接続されることを特徴とする請求項１または２に記載のマイクロプロセッサシステム。
【請求項４】
前記第１バスシステム上の前記テストデータが、前記完全なメモリ（７）の物理的なメモリブロックに、あるいは、少なくとも前記完全なメモリ（７）に直接近接して保存されることを特徴とする請求項２または３に記載のマイクロプロセッサシステム。
【請求項５】
１つ以上のコンパレータ（３）が、ハードウェアにおいて実装され、それぞれ読み取り、または書き込み操作のいずれか一方の間に、前記アドレスバス上でキューイングしているアドレス、または、前記データバス上でキューイングしているデータ、のいずれか一方を相互に比較して、前記アドレス、またはデータのいずれか一方が異なる場合には誤り信号を生成させることを特徴とする請求項１〜４のいずれか一項に記載のマイクロプロセッサシステム。
【請求項６】
読み取りサイクルにおいて、前記完全なメモリ（７）のデータを、前記コンパレータ（３）において比較する前に、まず、前記完全なメモリ（７）に関連付けられる前記テストデータ記憶装置（５）を用いて誤りチェックを行い、誤りが存在する場合には、データを訂正するか、あるいは、誤り信号を生成させることを特徴とする請求項１〜５のいずれか一項に記載のマイクロプロセッサシステム。
【請求項７】
読み取りサイクルにおいて、前記完全なメモリ（７）のデータを、前記テストデータ記憶装置内もしくはそれに近接して配置される第１のハードウェアユニット（６）によって、このデータに関連付けられるテストデータと比較し、誤りが存在する場合には、第１のハードウェアユニット（６）が前記テストデータを用いて前記データを訂正することを特徴とする請求項１〜６のいずれか一項に記載のマイクロプロセッサシステム。
【請求項８】
前記第２バスシステムの領域が、前記第１バスシステム上の前記テストデータ記憶装置（５）からのテストデータと前記第１バスシステム上の前記完全なメモリ（７）からのデータとを比較する第２のハードウェアユニット（６１）を含み、バス上の中央処理ユニットに読み込まれる２つのデータが前記第１バスシステム上の前記完全なメモリ（７）から来るものであることを特徴とする請求項１〜７のいずれか一項に記載のマイクロプロセッサシステム。
【請求項９】
前記第２の中央処理ユニット用のアドレスバス（７１）が、それを前記データバス用のアドレスバス（７２）と比較することによってバックアップされ、かつ、前記完全なメモリ（７）と、その同じメモリに局所的に近接してもしくはその同じメモリ内に配置される前記テストデータ記憶装置（５）とを含むメモリ群がただ１つのアドレスデコーダ（８）を含むことを特徴とする請求項１、２、４〜８のいずれか一項に記載のマイクロプロセッサシステム（７０）。
【請求項１０】
請求項１〜９のいずれか一項に記載のマイクロプロセッサシステムを使用する自動車のコントローラであって、自動車ブレーキのコントローラ、シャシ調整用のコントローラ、安全システム用のコントローラまたは適切な組合せコントローラ用のコントローラにおける使用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、請求項１によるマイクロプロセッサシステムと自動車のコントローラにおけるその使用とに関する。
【背景技術】
【０００２】
独国特許出願公開第１９５  ２９  ４３４  Ａ１号明細書（Ｐ７９５９）は、請求項１の前段による安全上重大な用途のためのマイクロプロセッサシステムを開示している。このマイクロプロセッサシステムは、冗長性の理由から、同じプログラムをクロック同期してかつ並列に実行する２つの同種のマイクロプロセッサコアを含む（コア冗長性）。このマイクロプロセッサシステムに関連付けられるバスシステムも同様に二重に設けられるが、メモリはコストの点から完全な対称設計にはなっていない。２つのバスシステムのいずれかが、比較的記憶容量が低いテストデータ記憶装置にテストデータのみを保存して、このテストデータが完全なメモリにおける完全なデータと明示的に関連付けられていれば、高い誤り検出率を実現し得ることが判明している。両方のコアが、それぞれ、すべてのデータを冗長形態で利用し得るように、完全なデータが、ハードウェアの生成器を用いてテストデータと連続的に比較される。ハードウェア生成器は、テストデータを生成させることができるか、あるいは、完全なデータを用いてテストデータを比較用に補足する（データ誤り訂正）ことができる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、同様に完全なメモリと、完全なメモリに保存されるオリジナルデータと関連する冗長情報を保存する比較的小サイズのテストデータ記憶装置とを含む代替的な２−コアのマイクロプロセッサシステムを規定することにある。さらに、このマイクロプロセッサシステムは、対応する２−コアのマイクロプロセッサシステムに比べて改善された誤り検出率を有するものとする。
【課題を解決するための手段】
【０００４】
本発明は、この目的を請求項１によるマイクロプロセッサシステムによって達成する。
【０００５】
本発明に基づくマイクロプロセッサシステムは、チップハウジングの中に組み込まれる２つの中央処理ユニットを含む。
【０００６】
各処理ユニットは関連する専用のバスシステム（第１および第２バス）を有するが、これは、このバスシステムが同様に冗長設計になっていることを意味する。
【０００７】
このマイクロプロセッサシステムは、また、第１バスシステムにおける完全なメモリに比べて記憶容量が小さいテストデータ記憶装置をも第１バスに備えている。テストデータ記憶装置は、第１バスシステム上のメモリのデータに紐付けられるテストデータを保存する。
【０００８】
テストデータ記憶装置は、完全なメモリのデータに紐付けられるテストデータの保存用として用いられる。テストデータを保存することは、読み取りまたは書き込み操作中に稀に生じる可能性がある典型的なデータ保存エラーを確認するのに役立つ。このような誤りは、完全なメモリを二重に設けることによっても、また、データを同一形態で二度保存することによっても検出できるが、メモリはチップの製造コストの大きな部分を構成するので、これはコストが大きい。本発明に基づくマイクロプロセッサシステムに準拠してメモリスペースの要求度を低く抑えた冗長メモリすなわちテストデータ記憶装置を用いることによっても、的確な誤り検出を効果的に実施し得ることが判明した。この目的のために、例えば、完全なメモリにおけるデータワード（データ項目）は、そのワード用のテスト情報項目またはテスト値（例えばパリティ情報、ハミング符号など）を有しており、それがテストデータ記憶装置の中に保存される。最も簡単な場合には、これは１ビット長のパリティビットとすることができる。さらに複雑なコード化技法、例えばハミング符号を用いても、誤り訂正が可能であり、多重誤りを検出できる。パリティ情報項目は、ワードごとに、および／または、完全なメモリ内の複数のデータワードを組み合わせて構成することができる（ブロックワイズのテストデータ符号化）。
【０００９】
完全なメモリの一部のみをテストデータ記憶装置によってバックアップすることが好ましい。すなわち、この場合は、誤りに対してバックアップされない完全なメモリ内のメモリ領域が存在する。このメモリ領域には、安全上重大でない重要度の低いプログラム関数を収納することができる。しかし、完全なメモリ全体をテストデータ記憶装置によってバックアップすることも可能である。
【００１０】
さらに、バスシステムは、２つのバスシステム間のデータのデータ交換および／または比較を可能にする比較および／またはドライバ構成要素を含む。
【００１１】
少なくとも第２のバスシステムには、例えばロジックゲートによって作られるそれ自体公知のハードウェアのテストデータ生成器が配置される。従って、メモリ誤りの検出に必要なテスト情報は、中央処理ユニット（ＣＰＵ）によって生成されるのではなく、ＣＰＵから物理的に分離して配置されるいわゆるハードウェアテストデータ生成器によって生成される。ハードウェアテストデータ生成器は、データ処理および／または信号処理用の作業ステップを、中央処理ユニットの支援なしに予め定められたロジックに基づいて独立に実行するような、本質的にハード配線された半導体構造とするのが好ましい。このハードウェア生成器によって実行される操作は原理的に中央処理ユニットによっても実行することが可能であるが、これは、通常、高いクロックサイクルの消費を伴う（誤り率の増大が可能になると共に）ので、遅延時間を大幅に増大させることになろう。
【００１２】
テストデータ記憶装置は、特に第２バス上の処理ユニットによって操作される独立の付加的なアドレスデコーダを有することが望ましい。
【００１３】
第２のバスシステムには、第１バス上のメモリにおけるデータのバックアップ用として用いられるテストデータ記憶装置またはメモリのいずれも実装しないことが特に望ましい。
【００１４】
完全なメモリは読み取り／書き込みメモリとするのが好ましい。しかし、読み取り専用メモリ（例えば、ＲＯＭ、Ｏｔｐ−ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭまたはフラッシュＲＯＭ）を、本発明の原理に基づいてバックアップすることも可能である。
【００１５】
独国特許出願公開第１９５  ２９  ４３４  Ａ１号明細書から知られるテストデータ記憶装置によるバックアップの方法は、現在の用途に必要な利用可能性の要求に適合するが、上記のメモリ誤りに加えて、既知のアーキテクチャが保護し得ないような追加的なタイプの誤りも存在する。例えば、アドレスバス上の誤りおよびアドレスデコーダ内の誤りを検出することは不可能である。テスト情報を生成させるためのブロックワイズのテストデータ符号化によって確かにこの追加的なタイプの誤りの検出が可能になるが、この方法は、読み取り専用メモリの用途に限定されるであろう。従って、本発明に基づいて、完全なメモリの少なくとも一部分を、同様にメモリのバス上に配置されるテストデータ記憶装置と、適切なテストデータとを用いてバックアップする。これによって、上記の追加的なタイプの誤りの検出が可能になる。
【００１６】
本発明に基づくマイクロプロセッサシステムにはアドレス誤り検出用の装置を組み込むことが望ましい。この装置は、特に、テストデータを計算する場合に、バックアップするべきデータのアドレスを含む手段を設けるように設計される。特に好ましいのは、書き込みの際に、特に、例えばチェックビットであるテストデータを、データビットのみに基づいて計算するだけではなく、バックアップされるべきデータと当該アドレスとにも基づいて計算する方法である。この方法で、アドレス指定の誤りをデータ読み取りの際に検出することができる。アドレス誤りの検出は、２つのバスシステムのそれぞれに設けることが望ましい。
【００１７】
アドレス誤り検出のための好ましい代替的手段は、マイクロプロセッサシステムの中に付加的に組み込まれる装置で、アドレス誤りを検出するための１つ以上のテストをバックグラウンドにおいて実行する装置を含む。この方式の誤り検出は、読み取り／書き込みアクセス操作の間に並列に実施されるものではない点が好都合である。その代わりに、この誤り検出手段は、特に、周期的に分離されたチェック操作の範囲内においてのみ遂行され、そのチェック操作においては、別の基本的なＣＰＵ動作が存在しない点が好ましい。本明細書に記載の代替的なアドレス誤り検出は、ソフトウェアの形態もしくはハードウェア方式の形態で実行することができる。本明細書に記載の手段は、特にＣＰＵの内部またはハードウェアステートマシンの内部において、ビルトイン型の自己テスト機能の形で具現化することができる。
【００１８】
この自己テスト機能に従って、メモリに予め定められたパターンを書き込み、続いてそれを読み取ることが望ましい。このパターンは、特に好ましくは、可能な復号誤りまたは作動エラーがデータの破損を故意にもたらすような形態にすることができる。続いて読み取りの間に、この故意に生成された誤りが検出される。
【００１９】
上記の２つの誤り検出装置に加えて、あるいはその代わりとして、メモリセルにメモリセルのアドレスが書き込まれ、その後それがチェックされるようなアドレス指定誤り検出手段を実装することが好ましい。
【００２０】
上記の方法の１つの例は、「アドレス対データ」テストとして知られているものである。このテストによれば、各メモリの位置に、以下のように、メモリ位置のアドレスの数値が書き込まれる。
アドレス        データ項目
０ｘ００        ０ｘ００
０ｘ０１        ０ｘ０１
．．．
０ｘｆｆ        ０ｘｆｆ
【００２１】
誤りが生じた場合は、１つの番号が戻って読み取られるのではなく、その代わりにもう１つが２回繰り返される。
【００２２】
本発明に従って用いられるテストデータ記憶装置は、原理的には従来型の読み取り／書き込みメモリであるが、記憶容量が完全なメモリに比べて低下している。
【００２３】
マイクロプロセッサシステムは共通のチップハウジングに統合され、好ましくはクロック同期して操作される。両方のシステムは共通の半導体材料上に配置するのが望ましい。
【００２４】
マイクロプロセッサシステムは、好ましくはそれぞれデータバス、アドレスバスおよび制御バスを含む２つのバスシステムを含む。
【００２５】
１つまたは複数の読み取り／書き込みメモリに加えて、マイクロプロセッサシステムを操作するための少なくとも１つの読み取り専用メモリも当然存在する。本発明の場合、読み取り専用メモリという用語は、特にＲＯＭ、フラッシュＲＯＭまたはＯｔｐ−ＲＯＭタイプのような少なくとも一定時間揮発しないメモリを意味するものと理解する。この場合、コアの冗長性の原理によれば、両方のバスシステムが完全なメモリまたは同一内容の読み取り専用メモリを有することが絶対的に必要であるわけではない。冗長性の概念を読み取り専用メモリにも適用することは望ましいが、この場合には、読み取り専用メモリのデータを確実にバックアップするために、的確なテスト情報用の実装がなされる。これは、特に、データの代わりに適切なテスト情報を含む第２バス上の小型の読み取り専用メモリによって実現することができる。
【００２６】
本発明に基づくマイクロプロセッサシステムにおいては、テストデータを、第１バス上において、物理的メモリ内または少なくとも完全な読み取り／書き込みメモリに直接近接して追加的に保存することが望ましい。直接近接してということは、関連するチップ構造が互いに隣接することを意味しており、これによって、データ用の必要な遅延時間を短く維持することが可能になる。
【００２７】
マイクロプロセッサシステムは、望ましくは、読み取りサイクルにおいて、完全なメモリのデータを、１つ以上のハードウェアのテストユニットによって、このデータに関連するテストデータと比較するように構成される。このハードウェアテストユニットは、特にデータメモリの領域内もしくはそれに近接して配置される。このハードウェア訂正ユニットは、誤りがあった場合にはテストデータを用いてデータを訂正する。この訂正によって、例えば、誤ビットのような簡単な誤りは容易に訂正することができるので、マイクロプロセッサシステムを遮断する必要はない。テストワードの複雑性に応じて、さらに複雑な誤りを阻止することも可能である。訂正が成功しない場合、すなわち、データにおける誤りが複雑で、テスト情報とのロジックの組合せによってもなお訂正データに誤りが含まれる場合には、このデータを、好ましくも存在する別の比較ユニットであって並列バスシステム上でキューイングしているデータを比較する比較ユニットによって見つけ出す。その結果、適切な誤り系統上に誤り信号が都合よく出力され、この誤り信号によって、特に、マイクロプロセッサシステムを停止するか、あるいは、それを他の電子装置から切り離す。例えば、電子ブレーキシステムにおいては、これによって、バルブ駆動器の誤動作を効果的に防止することができる。
【００２８】
第２バス上の処理ユニットによって操作される付加的なアドレスデコーダがあるために、テストデータ記憶装置を独立にアドレス指定することによって、アドレス誤りの検出が本発明に従って可能になる。この方式で、第２バス上のテストデータ記憶装置を有利に省略することができる。さらに、これによって、特に誤り生成回路を全く含まない第２バス上の誤り検出装置の設計を簡素化し得る結果も得られる。
【００２９】
最後に、本発明は、請求項８による本発明のマイクロプロセッサシステムの第２の実施態様にも関する。この実施態様は、請求項１によるシステムの発展形態である。
【００３０】
コアの冗長性の原理を用いるが、１つのメモリセル内に誤り検出／訂正機構しか含まない既知の誤り訂正／誤り検出マイクロプロセッサとは異なって、本発明は、メモリ全体のバックアップを可能にする。これによって、用いられる冗長性の概念が、読み取り専用メモリからデータ記憶装置にも拡大され、既存の安全要件を確保しながら製造コストをさらに低減することが可能になる。
【００３１】
さらに好ましい実施態様は、従属請求項と、添付の図面を参照してなされる例示的実施態様に関する以下の説明とに見ることができる。
【発明を実施するための最良の形態】
【００３２】
図１のマイクロコントローラは、クロック同期して作動する２つの中央処理ユニット（ＣＰＵ）１、２を含む。両方のマイクロコンピュータは同じプログラムを実行する。各ユニットは、それぞれ別個の関連アドレスおよびデータバスを有する。ＣＰＵ１には全データ記憶装置７が接続される。このマイクロプロセッサシステムは、さらに、ハードウェア要素の形態のコンパレータ３を含み、このコンパレータ３は、２つのバスシステム上でキューイングしているアドレスおよびデータを互いに連続的に比較するのに用いられる。不一致があると、誤り信号を生成させる。表示を簡単にするために、図には、入力／出力ユニット、読み取り専用メモリ等のマイクロプロセッサシステムに通常含まれる構成要素を詳細に示していない。図示されていないこれらの構成要素は、本質的に、国際公開第９９／３５５４３号パンフレットに記載される冗長コアのマイクロコントローラに基づく。
【００３３】
第１バス上のテストデータ記憶装置５は、完全なメモリ７に比べて、その記憶容量が１／８になる。テストデータ記憶装置５は、ＣＰＵ１がデータを完全なメモリ７に書き込み操作するそれぞれの間にハードウェアユニット６によって実際上同時に生成されるテストデータを保存するのに用いられる。テストデータをプログラムに関係する手段なしに生成させるので、クロックサイクルの消費を増大させることなく、書き込み操作を実行することが原理的に可能になる。
【００３４】
読み取りの際に、完全なメモリ７は、ＣＰＵ１によってアドレスデコーダ８を用いてアドレス指定される。読み取り操作の間はハードウェアユニット６がアクティブである。ハードウェアユニット６は、テストデータ生成方法（例えばハミング符号）に従ってデータをチェックしかつ場合によりそれを直ちに訂正するのに用いられる。コンパレータ３が含むバスドライバは、キューイングしているデータをＣＰＵ１およびＣＰＵ２に同時に供給するのに用いられる。
【００３５】
データとテストデータとが合致しなければ誤りが検出される。誤り検出６１は第２バス上でも行われるが、これは、場合により第１バスの領域内で訂正されるデータに関係している。このチェックは、同様に誤り信号を生成させることができるコンパレータである第２のハードウェアユニット６１において実行される。テストデータ記憶装置５は完全なメモリ７に物理的に近接して配置されるので、データを短時間で訂正することが可能であり、従って、このような訂正が所定のタイミング内でなお可能である。
【００３６】
図１の例によれば、第１バス上の全データ記憶装置である完全なメモリ７およびチェックサムメモリとしてのテストデータ記憶装置５を含むブロックには、付加的なアドレスデコーダ９'が加えられるが、このアドレスデコーダ９'は、テストデータ記憶装置５のアドレス領域にアクセスするためのアドレスであってＣＰＵ２から来るアドレスを復号化するためのものである。このため、ＣＰＵ２に関連付けられるアドレスバスとデコーダ９'との間に直接的なリンクが設けられる。アドレスデコーダ８は、ＣＰＵ１による、完全なメモリ７のアドレス領域にあるメモリアクセス操作を復号化する。読み取られたテストデータは、ハードウェアユニット６、すなわち、ブロック６を経由してハードウェアユニット６１、すなわち、ブロック６１に直接転送される。ブロック６とは対照的に、ブロック６１は、それ自体としていかなる誤り訂正装置も含んでいない。ブロック６１は、テストデータを、ドライバ段を経て第２バスに送られるデータと比較する。このために、（場合によっては訂正された）読み取りデータからチェックサムが再度形成される。このチェックサムはメモリから読み取られたテストデータと比較される。第２バス上の誤り検出の際に、テストデータ記憶装置５がＣＰＵ２によってアドレス指定される。チェックサムメモリとしてのテストデータ記憶装置５をデコーダ９'で独立にアドレス指定することによって、アドレス誤りの検出が確実に行われる。
【００３７】
図２のマイクロプロセッサシステムも、図２の例に従って、完全なメモリ７およびテストデータ記憶装置５を共通ブロックにおいて組み合わせる。ブロック６および６１における誤り検出および訂正の方法は同様に図１の原理に基づく。図２のマイクロプロセッサシステムは、特に、アドレスデコーダ９'が省略されているという点で図１のマイクロプロセッサシステムと異なる。ＣＰＵ１による正しいアドレス生成は、それをＣＰＵ２（同じコードを実行する）からのアドレス生成と比較することによってチェックされる。コンパレータ３の内部では、ＣＰＵ２のアドレスが、ＣＰＵ１によって現在参照されているアドレスと比較され、それらが合致しない場合には誤り信号を生成させる。図２の例に基づくマイクロプロセッサシステムの特別な特徴は、基本的に、ＣＰＵ２のマイクロプロセッサ領域がテストデータ記憶装置およびデータ記憶装置のいずれをも含まないという点にある。読み取りおよび書き込みの間の誤り検出のためのブロック６１のみが、ブロック６における誤り検出に対応して、ＣＰＵ２の領域内で二重化されている。
【００３８】
図２のマイクロプロセッサシステムにおいては第２アドレスデコーダを欠いているという事実は、図１の例とは異なって、冗長性に基づくアドレス誤りの検出は不可能であることを意味している。それにもかかわらずアドレス誤りの検出を実現するために、ブロック６におけるテストデータ生成の際に、書き込まれるべきメモリアドレスのアドレスが一緒に含められる。その場合、書き込みの際に、チェックビットが、メモリ７におけるメモリ位置のデータビットのみを用いて計算されるだけではなく、このメモリ位置のアドレスをも含めて計算される。アドレス指定に誤りが存在すれば、その誤りは読み取りアクセス操作の間に発見することができる。
【図面の簡単な説明】
【００３９】
【図１】個別のアドレス指定を有するデータ記憶装置およびテストメモリを備えた２−コア組み込み型マイクロコントローラの第１の例を示す。
【図２】データ記憶装置およびテストメモリを有する特に簡易設計の２−コア組み込み型マイクロコントローラの第２の例を示す。
【図１】
0005389440.tif 000002
【図２】
0005389440.tif 000003