JP2008518299A - 少なくとも2つの実行ユニットを有する計算機システムの信号を評価するための方法および装置 - Google Patents

少なくとも2つの実行ユニットを有する計算機システムの信号を評価するための方法および装置 Download PDF

Info

Publication number
JP2008518299A
JP2008518299A JP2007537291A JP2007537291A JP2008518299A JP 2008518299 A JP2008518299 A JP 2008518299A JP 2007537291 A JP2007537291 A JP 2007537291A JP 2007537291 A JP2007537291 A JP 2007537291A JP 2008518299 A JP2008518299 A JP 2008518299A
Authority
JP
Japan
Prior art keywords
mode
mode signal
signal
switching
change
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007537291A
Other languages
English (en)
Inventor
ヴァイベルレ、ラインハルト
ミュラー、ベルント
コラーニ、ヨルク
グメーリッヒ、ライナー
ベール、エーベルハルト
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from DE200410051992 external-priority patent/DE102004051992A1/de
Priority claimed from DE102004051950A external-priority patent/DE102004051950A1/de
Priority claimed from DE200410051964 external-priority patent/DE102004051964A1/de
Priority claimed from DE102004051952A external-priority patent/DE102004051952A1/de
Priority claimed from DE200410051937 external-priority patent/DE102004051937A1/de
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of JP2008518299A publication Critical patent/JP2008518299A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

少なくとも2つの実行ユニットを有する計算機システムの信号を評価するための方法および装置であって、計算機システムでは、少なくとも2つの動作モードの間で切替が行われ、第1および第2の動作モードが比較モードおよびパフォーマンスモードに各々に相当する、本方法および装置によれば、計算機システムでは、現時点で存在する動作モードを表すモード信号およびモード信号の変化の少なくともいずれかが生成され、かつ、モード信号の変化およびモード信号自体の少なくともいずれかが評価のために計算機システムの外部に提供されることを特徴とする。
【選択図】図21

Description

α粒子や宇宙線によって引き起こされる過渡的なエラーが集積半導体回路にとって問題となりつつある。構造幅の減少、電圧の低下および高いクロック周波数に起因して、α粒子や宇宙線によって引き起こされる電圧ピークが集積回路の論理値を狂わせる確率を高める。この結果として、誤った計算結果が生じうる。よって、特に車両等の安全性関連のシステムでは、この種のエラーが確実に検出されなければならない。電子回路の誤機能が確実に検出されなければならない、例えば車両のABS制御システム等に冗長性が利用される。例えば公知のABSシステムでは、各々に完全なマイクロコントローラが二重化されており、全てのABS機能が冗長的に計算されて互いの一致が検査される。結果に矛盾が生じれば、ABSシステムが停止される。
マイクロコントローラの主要なコンポーネントは、第1に、記憶モジュール(例えば、RAM、ROM、キャッシュ)、コア、入出力インターフェース、およびいわゆる周辺装置(例えば、A/D変換器、CANインターフェース)である。記憶素子が検査コード(パリティまたはECC)により効率的に監視され、周辺装置が適用に固有の方法によりセンサ信号経路またはアクチュエータ信号経路の一部として監視されるので、今後の冗長性の取組みは、マイクロコントローラのコア独自の二重化に関する。
2つの統合されたコアを備えた、この種のマイクロコントローラは、デュアルコアアーキテクチャとしても知られている。両方のコアが同一のプログラムセグメントを冗長的かつクロック同期で実行し(ロックステップモード)、両方のコアの結果が比較され、一致の比較に際して誤りが発見される。このようなデュアルコアシステムの設定は、比較モードとしても称される。
デュアルコアアーキテクチャは、他の適用では性能向上のために、すなわちパフォーマンス向上のために利用されている。両方のコアが異なるプログラム、異なるプログラムセグメント、異なるコマンドを実行することによって性能向上が実現されるので、このようなデュアルコアシステムの設定は、パフォーマンスモードとしても称される。この種のシステムは、対称型マルチプロセッサシステム(SMP)とも称される。
この種のシステムの発展型は、特別なアドレスへのアクセスおよび専用化されたハードウェア装置を用いて、ソフトウェアにより両方のモードの間を切替ることにある。比較モードでは、コアの出力信号が互いに比較される。パフォーマンスモードでは、両方のコアが対称型マルチプロセッサシステム(SMP)として動作し、異なるプログラム、異なるプログラムセグメントまたは異なるコマンドを実行する。
この種の計算機システムが用いられる車両システムでは、適用の安全性を確保するために、モードが検査されなければならない。よって、本発明の課題は、この種のモード情報の評価を可能にするための方法および手段を提供することである。
本発明のある観点によれば、少なくとも2つの実行ユニットを有する計算機システムの信号を評価するための方法であって、計算機システムでは少なくとも2つの動作モードの間で切替が行われ、第1および第2の動作モードが比較モードおよびパフォーマンスモードの各々に相当する方法が提供される。そして、本方法によれば、計算機システムでは、現時点で存在する(gerade vorliegenden)動作モードを表すモード信号およびモード信号の変化の少なくともいずれかが生成され、かつ、モード信号の変化およびモード信号自体の少なくともいずれかが評価のために計算機システムの外部に提供される。
モード信号およびモード信号の変化の少なくともいずれかが計算機システムの外部のコンポーネント内で評価されるようにしてもよい。
モード信号およびモード信号の変化の少なくともいずれかが安全性コンポーネント、特にウォッチドッグ内で評価されるようにしてもよい。
モード信号およびモード信号の変化の少なくともいずれかが処理ユニット、特に第2の計算機システム内で評価されるようにしてもよい。
モード信号およびモード信号の変化の少なくともいずれかに応じて、予め設定可能な操作が予め設定可能な動作モード内でのみ許可されるように、評価が行われるようにしてもよい。
モード信号およびモード信号の変化の少なくともいずれかに応じて、外部のコンポーネントの予め設定可能な機能(Funktionalitaet)が予め設定可能な動作モード内でのみ許可されるように、評価が行われるようにしてもよい。
外部のコンポーネントが比較モードへの切替を監視するようにしてもよい。
モード信号およびモード信号の変化の少なくともいずれかを用いて、外部のコンポーネントが予め設定可能な動作モード内でのみ駆動されることが監視されるようにしてもよい。
モード信号およびモード信号の変化の少なくともいずれかを用いて、いずれの切替信号、特に割込み信号によって動作モードの切替が行われるかを表示する情報を外部のコンポーネントが有することが監視されるようにしてもよい。
モード信号およびモード信号の変化の少なくともいずれかを用いて、外部のコンポーネントが予め設定可能な動作モード内でのみ駆動されることが監視されるようにしてもよい。
モード信号およびモード信号の変化の少なくともいずれかを用いて、いずれの切替信号、特に割込み信号によって動作モードの切替が行われるかを表示する情報を外部のコンポーネントが有することが監視されるようにしてもよい。
評価として、照会−応答通信(Frage-Antwort-Kommunikation)が行われるように、エラー認識が実施されるようにしてもよい。
評価として、モード信号およびモード信号の変化の少なくともいずれかが予め設定可能な情報と比較されて相違または一致の場合にエラーが認識されるように、エラー認識が実施されるようにしてもよい。
評価として、モード信号およびモード信号の変化の少なくともいずれかに応じて形成される情報が予め設定可能な情報と比較されて相違または一致の場合にエラーが認識されるように、エラー認識が実施されるようにしてもよい。
モード信号およびモード信号の変化の少なくともいずれかを用いて、動作モードの切替が計算機システムの外部のコンポーネントによって監視されるようにしてもよい。
少なくとも1つの付加情報によって、モード信号およびモード信号の変化の少なくともいずれかが安全性を確保されるようにしてもよい。
モード信号およびモード信号の変化の少なくともいずれかが少なくとも二重化されることによって、モード信号およびモード信号の変化の少なくともいずれかが安全性を確保されるようにしてもよい。
モード信号およびモード信号の変化の少なくともいずれかがデュアルレール信号として安全性を確保されるようにしてもよい。
互いに切替可能な2つより多い動作モードが設けられているようにしてもよい。
動作モードの各々を表すために設定可能な(konfigurierbares)動作モード識別子が設けられているようにしてもよい。
動作モードの各々を表すために設定可能な(konfigurierbares)ポインタ変数が設けられているようにしてもよい。
モード信号およびモード信号の変化の少なくともいずれかに基づいてエラー認識が実施され、その場合にエラー認識の枠内で少なくとも1つのエラー信号が生成されるようにしてもよい。
外部のコンポーネント内でカウンタが用いられるようにしてもよい。
モード信号がモード信号によって2つより多いモードを表示可能なように多値であるようにしてもよい。
また、本発明の他の観点によれば、少なくとも2つの実行ユニットを有する計算機システムの信号を評価するための装置であって、計算機システムでは少なくとも2つの動作モードの間で切替が行われ、第1および第2の動作モードが比較モードおよびパフォーマンスモードの各々に相当する装置が提供される。そして、本装置によれば、計算機システムには、現時点で存在する(gerade vorliegenden)動作モードを表すモード信号およびモード信号の変化の少なくともいずれかを生成するように形成された手段が設けられ、かつ、モード信号の変化およびモード信号自体の少なくともいずれかが評価のために計算機システムの外部に提供される。
モード信号およびモード信号の変化の少なくともいずれかを評価する、計算機システムの外部のコンポーネントが設けられているようにしてもよい。
外部のコンポーネントが安全性コンポーネント、特にウォッチドッグであるようにしてもよい。
ウォッチドッグが減分式(dekrementierenden)のウォッチドッグであるようにしてもよい。
外部のコンポーネントがアクチュエータまたはアクチュエータ駆動のためのコンポーネントであるようにしてもよい。
モード信号によって2つより多いモードが表示可能であるように、モード信号が生成されるようにしてもよい。
その他の利点および有利な実施形態は、特許請求の範囲および発明の詳細な説明の構成により明らかにされる。
以下では、プロセッサ、コア、CPUのみならず、FPU(浮動小数点演算ユニット)、DSP(デジタル信号プロセッサ)、コプロセッサまたはALU(算術論理演算ユニット)等も実行ユニットと称される。
図1には、2つの実行ユニットG10a、G10b、比較ユニットG20、切替ユニットG50、および切替意図を認識するためのユニットG40を備えるマルチプロセッサシステムG60が示される。
本発明は、少なくとも2つの実行ユニットG10a、G10b、比較ユニットG20、切替ユニットG50、および切替意図認識ユニットG40を備える、図1、図2、図3に示すマルチプロセッサシステムG60に関する。切替ユニットG50は、少なくとも2つのシステムインターフェースG30a、G30bに対する少なくとも2つの出力を有する。これらのインターフェースを介して、レジスタ、メモリ、または例えばデジタル出力部、D/A変換器、通信コントローラ等の周辺装置が制御される。このマルチプロセッサシステムは、比較モード(VM)およびパフォーマンスモード(PM)の少なくとも2つの動作モードで作動される。
パフォーマンスモードでは、異なる実行ユニットで、異なるコマンド、異なるプログラムセグメントまたは異なるプログラムが並列に実行される。この動作モードでは比較ユニットG20が無効となる。この動作モードでは、切替ユニットG50は、各々の実行ユニットG10a、G10bがシステムインターフェースG30a、G30bに接続されるように設定される。この場合には実行ユニットG10aがシステムインターフェースG30aに接続され、実行ユニットG10bがシステムインターフェースG30bに接続される。
比較モードでは、両方の実行ユニットG10a、G10bで、同一または同種のコマンド、プログラムセグメントまたはプログラムが処理される。コマンドがクロック同期で処理されることが望ましいが、非同期での処理または定義されたクロックオフセットでの処理も考えられる。実行ユニットG10a、G10bの出力信号が比較ユニットG20で比較される。比較結果が異なる際には、エラーが認識され、相応の措置が講じられる。この措置は、エラー信号の作動、エラー処理の開始、スイッチの操作または、それらの措置と他の措置との組合せであるようにしてもよい。切替ユニットG50は、1つの変形例では、1つの信号のみがシステムインターフェースG30a、G30bに接続されるように設定されている。他の設定では、切替ユニットは、比較された同一の信号がシステムインターフェースG30a、G30bに送信されるようにのみ作用する。
切替意図認識部G40は、現在の有効モードに関わらずに、他のモードへの切替意図を検出する。
図2には、2つの実行ユニットG10a、G10b、比較ユニットG20と切替ユニットG50とからなる組合された比較・切替ユニットG70、および切替意図認識ユニットG40を備えるマルチプロセッサシステムG60が示される。
前述した一実施形態では、図2に示すように、切替ユニットG50および比較ユニットG20が共通の切替・比較ユニット(UVE)G70に統合される。この場合には共通のコンポーネントG70が各々のコンポーネントG50、G20の役割を担う。図15〜図19にはUVEG70の変形実施例が示される。
図3に示すような他の実施形態では、切替意図認識ユニットG40、比較ユニットG20および切替ユニットG50が共通のコンポーネントG80に統合されうる。図示されていない他の実施形態では、切替意図認識ユニットG40および比較器G20が共通のコンポーネントに統合されうる。切替意図認識部40を切替器G50とともに共通のコンポーネントに統合することも同様に考えられる。
以後の説明では、特段の記載がない限り、切替意図認識部G40および組合された切替・比較ユニットG70が設けられることが前提とされる。
3つ以上の実行ユニットの使用も含む、一般的な切替・比較コンポーネントの事例が図20に示される。考慮されるnの実行ユニットからnの信号N140、...、N14nが切替・比較コンポーネントN100に送信される。切替・比較コンポーネントN100は、これらの入力信号からnまでの出力信号N160、...、N16nを生成できる。最も単純な事例である「純粋なパフォーマンスモード」では、全ての信号N14iが対応する出力信号N16iに伝達される。逆の境界事例である「純粋な比較モード」では、全ての信号N140、...、N14nが出力信号N16iのいずれか1つのみに伝達される。
図20には、考慮されうる様々なモードがどのように生じうるかが示される。このために、図20には切替論理部N110の論理コンポーネントが含まれる。このコンポーネントは、独自のコンポーネントとして設けられる必要はない。説明される機能がシステム内で実現されていることが重要である。切替論理部N110は、まず、存在する出力信号の数を判定する。切替論理部N110は、次に、いずれの入力信号がいずれの出力信号に寄与するかを判定する。この場合には1つの入力信号が1つの出力信号にのみ寄与しうる。すなわち、数学的な形式で表現すれば、集合{N140、...、N14n}の各要素に集合{N160、...、N16n}の1つの要素が対応付けられる関数が切替論理部N110によって定義される。
そして、処理論理部N120は、各々の出力N16iについて、これらの出力信号に入力がどのような形で寄与するかを定める。このコンポーネントも、独自のコンポーネントとして存在しなくてもよい。やはり、説明される機能がシステム内で実現されていることが重要である。様々な変形の可能性の一例を説明するために、一般性を限定することなく、信号N141、...、N14mによって出力N160が生成されるものと仮定する。これは、m=1の場合には信号の単純な通過(スルー接続)に相当し、m=2の場合には、例えば図13、図14で説明される比較器のように、信号N141、N142が比較される。この比較は、同期または非同期で実行され、ビット単位または有意なビットのみ、あるいは許容幅を用いて実行されるようにしてもよい。
m>=3の場合には、さらに多くの可能性がある。
第1の可能性は、全ての信号を比較し、少なくとも2つの異なる値が存在する際にエラーを検出することであり、選択的にエラーが通知される。
第2の可能性は、mからkの選択を行うことである(k>m/2)。この選択は、比較器の使用によって実現されうる。選択的に、信号の1つが異なると認識された場合には、エラー信号が生成されうる。3つの信号の全てが異なる場合には、異なるエラー信号が生成されうる。
第3の可能性は、これらの値をアルゴリズムに供給することである。これは、例えば、平均値の生成、中央値の生成、またはフォールトトレラントアルゴリズム(FTA)の使用を意味する。この種のFTAは、入力値の極値を除外し、残りの値で一種の平均化を行うことに基づくものである。平均化は、残りの値の集合全体について、または特に、ハードウェアで容易に生成される部分集合について行われうる。この場合には数値を実際に比較することは必ずしも必要とされない。平均値の生成に際しては、例えば加算および除算のみが必要となり、FTM、FTAまたは中央値の生成に際しては、部分的なソーティング(Sortierung)が必要となる。場合により非常に大きな極値が存在する際には、選択的にエラー信号が出力されうる。
複数の信号を1つの信号に処理する前述の様々な可能性は、便宜上、比較演算と称される。
すなわち、処理論理部の役割は、各々の出力信号について(および付属する入力信号についても)、比較演算の形態を定めることにある。切替論理部N110の情報(すなわち前述した関数)と処理論理部の情報(すなわち、出力信号毎、すなわち関数値毎の比較演算の決定)との組合せがモード情報であり、モード情報がモードを決定する。この情報は、一般的には当然ながら多値であり、すなわち1つの論理ビットのみでは表現できない。所与の実装では、理論上考えられる全てのモードが有意義であるということにはならず、許容されるモードの数が制限されることが望ましい。2つの実行ユニットの場合(比較モードが1つのみ存在する)場合には、全ての情報が1つの論理ビットに集約されうる。
パフォーマンスモードから比較モードへの切替は、一般的な場合には、パフォーマンスモードでは異なる出力に割当てられる実行ユニットが、比較モードでは同一の出力に割当てられるという特徴がある。このことは、パフォーマンスモードでは部分システム内で考慮される全ての入力信号N14iが対応する出力信号N16iに直接伝達される一方で、比較モードでは全てが1つの出力に割当てられるような、複数の実行ユニットのための部分システムの存在によって実現されることが望ましい。代替的に、組合せが変更されることによって、この種の切替が実現されるようにしてもよい。このことは、一般的な場合には、1つのパフォーマンスモードや1つの比較モードという表現が用いられないが、本発明の所与の特徴内では、許容されるモードの集合が制約されるので、そのような表現を用いて説明できる。しかし、パフォーマンスモードから比較モードへ(および逆方向)の切替という表現は、常に用いられうる。
これらのモードの間では、ソフトウェアを介して制御されて動作中に切替が動的に行われうる。この場合に切替は、特別な切替命令、特別な命令シーケンス、明示的に指定された命令の実行によって作動され、または、マルチプロセッサシステムの少なくとも1つの実行ユニットによる特定のアドレスへのアクセスによって作動される。
エラー回路論理部N130は、例えば比較器により生成されるエラー信号を収集し、選択的に、出力N16iを例えばスイッチを介して遮断することによって受動的に切替えられる。
しかし、以下の例では、大抵の事例で殆どのコンセプトがより単純に説明されうる2つの実行ユニットの場合に注目する。
モード間の切替は様々な方法でコード化されうる。可能性のある1つの方法では、切替意図認識ユニットG40により検出される特別な切替コマンドが利用される。切替をコード化するための可能性のある他の方法は、同じく切替意図認識ユニットG40が検出する特別なメモリ領域へのアクセスによって定義される。さらに他の方法は、切替を通知する外部信号を切替意図認識ユニットG40で評価する。以下では、プロセッサの既存のコマンドセットで使用されていないビットコンビネーションが利用される方法が説明される。この方法の特別な利点は、既存の開発環境(アセンブラ、コンパイラ、リンカー、デバッガ)が引続き使用されうる点にある。
図4には、2つの実行ユニットG210a、G210bおよび切替・比較ユニットG260を備えるマルチプロセッサシステムG200が示される。比較モードとパフォーマンスモード(および逆方向)との切替のために、少なくとも2つの実行ユニットG210a、G210bのアセンブラで定義されていないビットコンビネーションが利用される。この意味での定義されていないビットコンビネーションまたは未定義のビットコンビネーションとは、コマンドセットの記述中で未定義または不正として指定されている全てのビットコンビネーションであると解される。これらは、例えば、不正オペランド、不正命令、不正操作等である。未定義ビットコンビネーションの一般的な識別性としては、正常な実行ユニットがこの種のビットコンビネーションを実行した際にエラー信号を生成すること、または定義されていない挙動を示すことが挙げられる。すなわち、これらのビットコンビネーションは、通常のプログラムのセマンティクスを表現するために必要とされない。
よって、ソフトウェア開発のためには、シングルプロセッサシステム用として存在するような従来の開発環境が利用されうる。このことは、例えば、前述で定義された意味に相当する未定義ビットコンビネーションをコード中の適当な個所に挿入するマクロ“SWITCH MODE TO PM”およびマクロ“SWITCH MODE TO VM”が定義されることによって実現されうる。
この場合、これらのコンビネーションの使用が一般的な“SWITCH”マクロとして定義される。この場合にはマクロは、現在のモードに応じて他のモードへの切替を引き起こす。システムに3つ以上のモードが存在する場合には、これらの方法の適用のために、この種のコンビネーションがより多く存在しなければならず、その場合には切替認識のためにモード毎に1つのコンビネーションが利用されうることが望ましい。
本発明によれば、コマンドセットで定義されていないビットコンビネーションによって切替意図がコード化される。このビットコンビネーションは、実行ユニットG210a、G210bの内部で通常の方法で処理されることを許されない。この理由から、該当するビットコンビネーションを認識し、後続の処理のために中立的なビットコンビネーションに置換する、追加のパイプラインステップ(REPLACEステップ)G230a、G230bが提案される。このために、“NOP”(No Operation)コマンドが利用されることが望ましい。NOPコマンドは、命令ポインタを除けば、実行ユニットの内部状態を変更しないという特徴がある。この場合にはREPLACEステップG230a、G230bは、通常では第1のステップとなるFETCHステップG220a、G220bの後ろで、かつ、G240a、G240bに統合される残りのパイプラインステップの前に挿入される。
本発明によれば、ここで図示されるパイプラインユニットG215a、G215b中の特別なパイプラインステップG230a、G230bとしての切替意図認識ユニットG40の実装は、切替のための該当するビットコンビネーションが認識された場合には、追加の信号G250a、G250bを生成し、その信号が処理モードの切替が行われることを他の切替・比較ユニットG260に通知する。
REPステップG230a、G230bは、実行ユニットG210a、G210bのパイプラインユニットG215a、G215b中で、FETG220a、G220bと残りのパイプラインステップG240a、G240bとの間に配置されることが望ましい。この場合にはREPステップG230a、G230bが該当するビットコンビネーションを認識し、NOPコマンドを残りのステップG240a、G240bに伝達する。同時に、各々の信号G250aまたはG250bが有効化される。他の全ての場合にはREPステップG230a、G230bが中立的に振るまい、すなわち、他の全てのコマンドが変更されずに、残りのステップG240a、G240bに伝達される。
図5には、特別なパイプラインステップG230a、G230bの内部で、特別な未定義のビットコンビネーションをNOPまたは他の中立的なビットコンビネーションに置換する方法がフローチャートで示される。FETCHステップG300では、コマンドすなわちビットコンビネーションがメモリから読出される。次にブロックG310では、読出されたビットコンビネーションが、切替をコード化するための特別な未定義のビットコンビネーションに該当するかが区別される。該当しない場合には、次のステップG320で、ビットコンビネーションが変更されずに、後続の処理のために残りのパイプラインステップG340に伝達される。切替をコード化するための特別なビットコンビネーションがステップG310で認識された場合には、ステップG330で、ビットコンビネーションがNOPビットコンビネーションによって置換され、後続の処理のためにパイプラインステップG340に伝達される。望ましいある実施形態では、ブロックG310、G320、G330は、本発明によるREPLACEステップG230a、G230bの機能を表しており、その場合には他の機能をさらに含むようにしてもよい。
図6には、2つの実行ユニットH210a、H210bおよび切替・比較ユニットH260を備えるマルチプロセッサシステムH200が示される。コンポーネントH220a、H220b、H240a、H240bは、G220a、G220b、G240a、G240bと同一の意味を有する。ここでは特別なパイプラインステップH230a、H230bによって説明される、切替意図認識ユニットG40の代替的な実施形態では、パイプラインステップは、切替を通知する信号H250a、H250b以外に、さらに他の信号を含む。これによって、パフォーマンスモードから比較モードへの切替に際して、実行ユニットH210a、H210bが同期化されうるように、実行ユニットH210a、H210bのパイプラインユニットH215a、H215bは、処理を停止させることができる信号入力H280a、H280bを各々に有する。この信号は、切替コマンドを認識して信号H250aもしくはH250bを有効化させるパイプラインユニットH215aまたはH215bに対して、切替・比較ユニットH260によって生成される。実行ユニットH210a、H210bの両方のパイプラインユニットH215a、H215bが切替コマンドを認識し、ソフトウェア措置または他のハードウェア措置によって内部状態が同期化された場合に初めて、信号H280a、H280bが再び取消される。比較モードからパフォーマンスモードへの切替に際しては、同期化が必要とされないので、信号H280a、H280bは不要である。
ここで説明する提案には、各々の実行ユニットが自らの識別番号またはユニットIDを確認できるユニット(IDユニットと称する。)または方法が前提条件となる。2つの実行ユニットを備えるシステムでは、例えば一方の実行ユニットが自らの番号0を確認し、他方の実行ユニットが番号1を確認できる。3つ以上の実行ユニットを備えるシステムでも、対応する番号が付与もしくは確認される。このIDは、比較モードとパフォーマンスモードとの間を区別するのではなく、実行ユニットに一義的な識別子をつけるものである。IDユニットは、各々の実行ユニットに含まれるようにしてもよく、例えばプロセッサ状態レジスタ内のビットまたはビットコンビネーションとして、または独自のレジスタとして、または単一のビットとして、または照会に応じて該当するIDを供給する、実行ユニットの外部のユニットとして実装される。
実行ユニットが切替意図に従ってパフォーマンスモードへの切替を実行した後には、比較ユニットがもはや有効化されていない一方で、実行ユニットが依然として同一のコマンドを実行し続ける。これは、次のステップで実行ユニットが処理する、もしくは現在処理している、プログラムの箇所を表す命令ポインタが切替により影響されないためである。よって、実行ユニットが引続き種々のソフトウェアモジュールを実行できるように、各々の実行ユニットのプログラムの進行が分離されなくてはならない。よって、本発明により独立したコマンド、プログラムセグメントまたはプログラムが処理されるので、実際のところパフォーマンスモードでは、各々の命令ポインタが異なる値を有するのが通常である。プログラムフローの分離は、ここで説明される提案では、各々の実行ユニット番号の確認によって行われる。実行ユニットが有するIDに応じて、実行ユニットが所定のソフトウェアモジュールを実行する。よって、各々の実行ユニットが識別番号またはIDを有するので、関与する実行ユニットのプログラムフローが確実に分離されうる。
図7には、2つの実行ユニットを備えるマルチプロセッサシステムで比較モードからパフォーマンスモードへの切替に際して、ユニットIDを用いてプログラムフローを分離可能な方法がフローチャートで示される。比較モードからパフォーマンスモードへの切替G500が実行された後には、ユニットIDまたは実行ユニット番号の照会G510が両方の実行ユニットによって行われる。本発明によれば、この場合には実行ユニット0に実行ユニット番号0が付与され、実行ユニット1に実行ユニット番号1が付与される。G510では、確認された実行ユニット番号と番号0との照合が行われる。照合が一致する場合には、ステップG520で、照合に成功した実行ユニットが実行ユニット0のコードで進行する。照合に成功しなかった実行ユニットは、G530で番号1との照合を続ける。この照合が成功した場合には、G540で実行ユニット1のコードで進行する。この照合も成功しなかった場合には、当該実行ユニットについて、0および1以外の実行ユニット番号が確認されたことになる。これはエラーの発生を意味しており、G550で処理が続けられる。
図8には、3つの実行ユニットについて可能性のある方法が説明される。比較モードからパフォーマンスモードへの切替H500が実行された後には、ユニットIDまたは実行ユニット番号の照会H510が各々の実行ユニットによって行われる。本発明によれば、この場合には例えば、実行ユニット0に実行ユニット番号0が付与され、実行ユニット1に実行ユニット番号1が付与され、実行ユニット2に実行ユニット番号2が付与される。H510では、確認された実行ユニット番号と番号0との照合が行われる。照合が一致する場合には、ステップH520で、照合に成功した実行ユニットが実行ユニット0のコードで進行する。照合に成功しなかった実行ユニットは、H530で番号1との照合を続ける。照合に成功した実行ユニットは、H540で実行ユニット1のコードで進行する。照合に成功しなかった実行ユニットは、H535で番号2との照合を続ける。照合に成功した実行ユニットは、H536で実行ユニット2のコードで進行する。この照合も成功しなかった場合には、当該実行ユニットについて、0,1および2以外の実行ユニット番号が確認されたことになる。これはエラーの発生を意味しており、H550で処理が続けられる。番号との照合の代わりに、確認された実行ユニット番号が分岐テーブルのインデックスとして直接的に利用されるようにしてもよい。
4つ以上の実行ユニットを備えるマルチプロセッサシステムについても、前述の説明と同様の方法が適用されうる。
パフォーマンスモードから比較モードに切替る場合には、複数の事項が配慮されなければならない。パフォーマンスモードから比較モードへの切替に際しては、実行ユニットの内部状態が切替後に同質となることが保証されなければならない。さもなければ、異なる起動状態が異なる出力をもたらす場合には、比較モードで場合によってはエラーが認識されることになる。このことは、ハードウェア、ソフトウェア、ファームウェアまたはそれらの全ての組合せによって行われうる。このためには、比較モードへの切替後に、全ての実行ユニットが同一または同質のコマンド、プログラムまたはプログラムセグメントを実行することが前提条件となる。以下では、比較モードで同一のコマンドが処理されてビット単位の比較が行われる場合に適用可能な同期化方法が説明される。
図9には、パフォーマンスモードから比較モードへの切替に際して実行ユニットを同期化する方法がフローチャートで示される。ステップG600では、特に全ての割込みが阻止される。このことは、割込みコントローラが比較モードに対応するように再プログラミングされなければならないという理由のみから重要であるわけではない。ソフトウェアによっても、実行ユニットの内部状態が一致されなければならない。逆に、比較モードへの切替が準備されている最中に割込みが作動した場合には、もはや容易に一致させることは困難となる。
ステップG610:両方の実行ユニットが異なるキャッシュを有する場合には、比較モードに際して、あるアドレスに対して、一方の実行ユニットについてキャッシュヒットが生じ、他方の実行ユニットについてキャッシュミスが生じることを防ぐために、キャッシュの内容も切替前に一致されなければならない。これがキャッシュハードウェアによって自立的に行われない場合には、例えば全てのキャッシュラインを無効としてマーキングすることにより調整が行われる。1つまたは複数のキャッシュが完全に無効となるまで待機しなければならない。このことは、必要に応じて、プログラムコードの待機ループによって保証される。このことは、他の手段によっても実現可能であるが、このステップの後にいずれのキャッシュも同一の状態となっていることが重要である。
ステップG620では、パフォーマンスモードに起因する実行ユニットの活動が切替後に行われないようにするために、実行ユニットの書込みバッファが空にされる。
ステップG630では、各々の実行ユニットのパイプラインステップの状態が同期化される。このために、例えば適当な数のNOP(No Operation)コマンドが切替シーケンス/切替コマンドの前に実行される。NOPコマンドの数は、パイプラインステップの数に応じて決定し、よって、そのつどのアーキテクチャに依存する。NOPコマンドとして適切なコマンドも、同様にアーキテクチャに依存する。実行ユニットが命令キャッシュを有する場合には、コマンドシーケンスがキャッシュラインの境界に配列される(アライメント)ことが保証される必要がある。NOPの実行前に命令キャッシュが無効としてマーキングされているので、NOPが最初にキャッシュにロードされなければならない。コマンドシーケンスがキャッシュライン境界で開始されると、切替のコマンドが行われる前に、メモリ(例えば、RAM/ROM/フラッシュメモリ)からキャッシュへのデータ転送が完了する。このことも、NOPの必要数を決定する際に考慮されなければならない。
ステップG640では、比較モードへの切替のためのコマンドステップが実際に実行される。
ステップG650では、各々の実行ユニットのそのつどのレジスタファイルの内容が一致される。このために、切替の前または後でレジスタに同一の内容がロードされる。この際には切替後に、レジスタの内容が外部に転送されて比較ユニットにより比較される前に、各々の実行ユニットのレジスタの内容が同一になっていることが重要となる。
ステップG660では、割込みコントローラが再プログラミングされるので、相互接続されている全ての実行ユニットで外部の割込み信号が同一の割込みを作動させる。
ステップG670では、割込みが再び許可される。
比較モードへの切替が行われるタイミングがプログラムの進行から一義的にされない場合には、関与する実行ユニットが切替の意図について通知されなければならない。このために、各々の実行ユニットに帰属する割込みコントローラでは、例えばソフトウェア等により割込みが開始されることが望ましい。そして、割込み処理は、相互接続のための前述したシーケンスの実行を促す。
図10には、パフォーマンスモードと比較モード(および逆方向)との間の切替を表す状態オートマトンが示される。「パワーオン」またはリセット(ソフトウェアまたはハードウェア)によって引き起こされるシステムの起動に際して、移行線G800を介して状態G700にシステムが移行される。一般に、リセットを作動させうる未定義の事象の後には、常にシステムが状態G700から動作を開始する。リセットを作動させうる事象の例としては、外部の信号、電圧供給の障害、処理の継続がもはや有意義とされない内部のエラー事象等がある。パフォーマンスモードで動作する、切替・比較ユニットG70およびマルチプロセッサシステムG60の状態G700は、よってシステムのデフォルト状態となる。前述したように、デフォルト状態でなければ未定義の状態が想定される全ての場合で、デフォルト状態G700が想定される。この場合には状態G700のデフォルト位置がハードウェア措置によって保証される。例えばシステム状態もしくは切替・比較ユニットG60の状態は、レジスタ、レジスタ内部のビット、レジスタ内部のビットコンビネーションまたはフリップフロップによってコード化されうる。
そして、リセットまたはパワーオンの後に必ず状態G700が想定されることがハードウェアにより保証される。このことは、例えばリセット信号もしくは「パワーオン」信号がフリップフロップまたはレジスタのリセット入力もしくはセット入力に伝達されることによって保証される。
状態G700では、システムがパフォーマンスモードで動作する。よって、実行ユニットG10a、G10bは、異なるコマンド、異なるプログラムまたは異なるプログラムセグメントを処理する。切替意図は、例えば実行ユニットG10a、G10bが特別な切替コマンドを実行することによって認識されうる。他の可能性は、特別なメモリアドレスへのアクセス、内部信号または外部信号により認識することである。切替意図が存在しない限り、マルチプロセッサシステムG60および切替・比較ユニットG70が状態G700で維持される。以下では、切替意図とは、特別なシステム内で切替意図がどのように特徴付けられるかを特徴付ける切替条件の認識を意味する。
状態G700の維持が移行線G810で示される。実行ユニットG10aにより切替意図が認識されると、移行線820を介して状態G710に切替・比較ユニットG70が移行する。すなわち、状態G710は、実行ユニットG10aが切替意図を認識し、実行ユニットG10bにより同様に切替意図が認識されるまで待機している状態を示す。実行ユニットG10bが切替意図を認識しない場合には、移行線G830で示されるように、切替・比較ユニットG70が状態G710で維持される。
状態G710で実行ユニットG10bも同様に切替意図を認識した場合には、移行G840が行われる。これにより、切替・比較ユニットG70が状態G730となる。この状態は、両方の実行ユニットG10a、G10bが切替意図を認識した場合の状態を示す。状態G730では、2つの実行ユニットG10a、G10bが互いに同期化される同期化方法が実施され、引続いて比較モードで動作が行われる。この工程では、移行線G890で示されるように、切替・比較ユニットG70が状態G730で維持される。
状態G700で最初に実行ユニットG10bにより切替意図が認識された場合には、移行線G860を介して状態G720への切替が行われる。すなわち、状態G720は、実行ユニットG10bが切替意図を認識し、実行ユニットG10aにより同様に切替意図が認識されるまで待機している状態を示す。実行ユニットG10aが切替意図を認識しない場合には、移行線G870で示されるように、切替・比較ユニットG70が状態G720で維持される。状態G720で実行ユニットG10aも同様に切替意図を認識した場合には、移行G880が行われる。これにより、切替・比較ユニットG70が状態G730となる。
状態G700で両方の実行ユニットG10a、G10bが同時に切替意図を認識した場合には、移行線G850で示されるように、直ちに状態G730への移行が行われる。
切替・比較ユニットG70が状態G730にある場合には、両方の実行ユニットG10a、G10bが切替意図をすでに認識している。この状態で実行ユニットG10a、G10bの内部状態が同期化され、同期化工程の終了後に比較モードで動作しうる。同期化作業の終了と同時に、移行G900が行われる。この移行は同期化の終了を表している。状態G740では、実行ユニットG10a、G10bが比較モードで動作する。同期化作業の終了は、実行ユニットG10a、G10b自体により通知されうる。このことは、両方の実行ユニットG10a、G10bが比較モードで動作する準備にあることを通知した場合に、移行G900が行われることを意味する。設定された所定の時間の経過後に終了が通知されるようにしてもよい。このことは、状態G730を維持する期間が切替・比較ユニットG70で一定にコード化されていることを意味する。この期間は、両方の実行ユニットG10a、G10bが確実に同期化作業を完了しているように設定される。そして、この期間の経過後に移行G900が開始される。他の変形形態では、切替・比較ユニットG70は、実行ユニットG10a、G10bの状態を監視しており、両方の実行ユニットG10a、G10bが同期化作業を終えた場合を自ら認識できる。そして、この認識の後に移行G900が開始される。
切替意図が認識されない限り、移行線G910で示されるように、マルチプロセッサシステムG60が比較モードで維持される。状態740で切替意図が認識された場合には、移行線G920を介して状態G700に切替・比較ユニットが移行される。すでに説明したように、状態G700ではシステムがパフォーマンスモードで動作する。そして、状態G740から状態G700への移行に際するプログラムフローの分離は、前述と同様の方法で実施されうる。
図11には、2つの実行ユニットG410a、G410b、割込みマスキングレジスタG430a、G430bを内部に含む2つの割込みコントローラG420a、G420b、および様々な割込みソースG440a〜G440nを備えるマルチプロセッサシステムG400が示される。さらに、特別な割込みマスキングレジスタG460を備える切替・比較ユニットG450が示される。
各々の実行ユニットG410a、G410bは、パフォーマンスモードで同時に2つの割込みを処理できるように、各々に独自の割込みコントローラG420a、G420bを有することが望ましい。このことは、割込み処理がシステムパフォーマンス上のボトルネックとなるシステムの場合であれば、特に望ましい。この場合には割込みソースG440a〜G440nが両方の割込みコントローラG420a、G420bに各々に同等に接続されることが望ましい。このような接続形式によれば、他の措置なしに、両方の実行ユニットG410a、G410bで同等な割込みが作動される。パフォーマンスモードでは、割込みコントローラG420a、G420bは、該当する割込みソースG440a〜G440nが適用に応じて異なる実行ユニットG410a、G410bに分配されるようにプログラミングされる。このことは、割込みマスキングレジスタG430a、G430bの適切なプログラミングにより行われる。マスキングレジスタは、各々の割込みソースG440a〜G440nについてレジスタ内の1ビットを用意している。このビットがオンに設定されている場合には割込みが阻止され、すなわち、接続されている実行ユニットG410a、G410bに伝達されない。パフォーマンスモードでは、所与の割込みソースG440a〜G440nが1つの実行ユニットG410aまたはG410bで処理されることが望ましい。このことは、少なくともいくつかの割込みソースで該当することが望ましい。これにより、割込みネスティング(割込み処理が2番目の割込みによって中断される)または割込み待ち(最初の割込み処理が終わるまで、2番目の割込みの処理が延期される)を行うことなく、複数の割込みソースG440a〜G440nが同時に処理されうる。
比較モードでは、割込みコントローラG420a、G420bが全ての実行ユニットG410a、G410bで同一の割込みを同時に作動させることが保証されなければならない。さもなければ、比較モードに応じてエラーが認識されることになる。このことは、パフォーマンスモードから比較モードへの切替に際する同期化段階で、割込みマスキングレジスタG430a、G430bが同一であることが保証されなければならないことを意味する。この同期化は、図9のステップG660で説明される。この同期化は、両方の割込みマスキングレジスタG430a、G430bを相応に等しい値でプログラミングすることによって、ソフトウェアにより実行されうる。切替工程の迅速化のために、特別なレジスタG460を利用することが提案される。1つの実施形態では、レジスタG460は、切替・比較ユニットG450中に配置されるが、切替意図認識部G40、組合された切替意図認識部、比較器、切替ユニットG80、ならびにそれらの組合せの全てに含まれるようにしてもよい。このレジスタがこれら3つのコンポーネント以外の他の適当な箇所に配置されることも同様に考えられる。レジスタG460は、比較モードで有効にされる割込みマスキングを含む。切替・比較ユニットG450は、パフォーマンスモードから比較モードへの切替のための信号を切替意図認識部G40から取得する。ステップG600で割込みが阻止可能になると、割込みコントローラG420a、G420bの割込みマスキングレジスタG430a、G430bが再プログラミングされる。このことは、切替信号が受信され、割込みコントローラG420a、G420bが阻止された後に、ハードウェアで切替・比較ユニットG450により他の同期化ステップと並列に実行される。比較モードで割込みマスキングレジスタG430a、G430bが個々に再プログラミングされるのではなく、常に中枢のレジスタG460が再プログラミングされることが望ましい。そして、これらがハードウェアで同期化されて、両方の割込みマスキングレジスタG430a、G430bに伝達される。ここで割込みマスキングレジスタについて説明される方法は、割込みコントローラ内に配置されている全ての割込み状態レジスタにも同様に転用されうる。もちろん、レジスタG460の代わりに、割込みマスキングレジスタG430a、G430bに可能な限り迅速に転送を行うことができる、他の記憶媒体を使用することも考えられる。
図12には、2つの実行ユニットG1010a、G1010b、切替・比較ユニットG1020、および3つの異なるレジスタセットG1040a、G1040b、G1050を含む割込みコントローラG1030を備えるマルチプロセッサシステムG1000が提案される。前述した解決方法の代替案として、図12に示すような特別な割込みコントローラG1030が提案される。この割込みコントローラは、本例では2つの実行ユニットG1010a、G1010bと、比較モードとパフォーマンスモードとの間を切替できる切替・比較ユニットG1020とを備えるマルチプロセッサシステムG1000で使用される。
この場合にはパフォーマンスモードでは、レジスタセットG1040a、G1040bが使用される。この場合には割込みコントローラG1030は、2つの割込みコントローラG420a、G420bと同様に動作する。この挙動が図11に図示されて説明される。この場合にはレジスタセットG1040aが実行ユニットG1010aに割当てられ、レジスタセットG1040bが実行ユニットG1010bに割当てられる。割込みソースG1060a〜G1060nは、マスキングにより実行ユニットG1010a、G1010bに適切に分配される。パフォーマンスモードから比較モードへの切替に際しては、切替・比較ユニットG1020が信号G1070を生成する。この信号は、比較モードに切替えられること、もしくはシステムがこの時点から比較モードで動作することを、割込みコントローラG1030に通知する。その後、割込みコントローラG1030がレジスタセットG1050を使用する。これにより、両方の実行ユニットG1010a、G1010bで同一の割込み信号が発生することが保証される。切替・比較ユニットG1020が再び信号G1070を介して割込みコントローラG1030に通知する、比較モードからパフォーマンスモードへの切替により、レジスタセットG1040a、G1040bに再び切替えられる。これにより、パフォーマンスモードではレジスタセットG1040a、G1040bへの書込みのみが許容され、比較モードのために留保されているレジスタセットG1050への書込みがハードウェアにより禁止されることによって、該当するレジスタセットの保護が実現可能となるという利点がある。逆方向でも同様のことが可能であり、比較モードではレジスタセットG1050への書込みのみが許容され、レジスタセットG1040a、G1040bへの書込みが禁止される。
図13には、比較器M500、G20の最も単純な形態が示される。パフォーマンスモードと比較モードとの間での切替を伴う少なくとも2つの実行ユニットG10a、G10bを備えるマルチプロセッサシステムG60の主要なコンポーネントは、比較器M500である。比較器M500が最も単純な形態で図13に示される。比較コンポーネントM500は、2つの入力信号M510およびM511を受信することができ、それらの信号が同一であるかを比較し、ここで説明する文脈では、特にビット単位に同一性が比較される。同一である場合には、入力信号M510、M511の値が出力信号M520に伝達され、エラー信号M530が有効化されず、すなわち「良好」の状態を通知する。比較コンポーネントが信号の相違を検出した場合には、エラー信号M530が有効化される。そして、信号M520は、選択的に無効化されうる。このことは、エラーが当該システムから外に出ないという利点を有する(「エラー封込め」)。すなわち、実行ユニットの外部に存在する他のコンポーネントは、潜在的にエラーを含む信号によって被害を及ぼされない。しかし、信号M520が無効にされる必要のないシステムも存在する。これは、例えばシステムレベルではフェールサイレンスのみが求められる場合に該当する。この場合には、例えばエラー信号が外部に送信されうる。
この基本システムを前提として、数多くの実施形態が考えられる。まず、コンポーネントM500がいわゆるTSC(Totally Self Checking)コンポーネントとして形成されうる。この場合にはエラー信号M530が少なくとも2本の回線(「デュアルレール」)を介して外部に伝達され、内部の設計およびエラー発見措置によって、比較コンポーネントの可能性のある各々のエラー発生事例で、この信号が適切な状態で存在するか、または明らかに不適切な状態で存在することが保証される。この場合にはデュアルレール信号は、2本の回線を介してバイナリ信号を供給し、エラーのない場合には両方の回線が互いに反転されることが望ましい。本発明によるシステムの適用の望ましい変形例は、この種のTSC比較器を使用することである。
他の種類の実施形態は、両方の入力M510、M511(もしくはM610、M611)が有していなければならない同期性の程度において、前述の実施形態と区別されうる。可能性のある1つの実施形態は、クロック単位の同期性により特徴付けられており、すなわち、データの比較が1つのクロック内で実行されうる。
各々のインプットの間に一定の位相オフセットがある場合には、該当する信号を例えば非整数分(halbzahlige)または整数分のクロック周期で遅延させる同期遅延素子を使用することによって、若干の変更が得られる。この種の位相オフセットは、共通原因のエラー(Common Cause Fehler)、すなわち複数の処理ユニットに同時に同質の影響が及ぼされうるエラーの原因を回避するために有益である。
図14は、さらに別の実施形態を示す。コンポーネントおよび信号M600、M610、M611、M620、M630は、図13の対応するコンポーネントおよび信号M500、M510、M511、M520、M530と同一の意味を有する。そして、図14では、これらのコンポーネントに加えて、時間的により早いインプットを位相オフセット分遅延させるコンポーネントM640が追加される。この遅延素子は、比較モードでのみ使用されるために、比較器に格納されることが望ましい。
代替的または付加的に、純粋なクロックオフセットまたは位相オフセットとして現れないような非同期性も、同様に許容されうるように、中間バッファM650、M651が入力系統に配置されうる。中間バッファは、望ましくはFIFOメモリ(先入れ先出し)として配置されることが望ましい。この種のメモリは、入力部および出力部を有しており、複数のメモリワードを記憶できる。入力されたメモリワードは、新たなメモリワードの到着により格納位置をずらされ、最後の位置(バッファの深度)の後に「メモリから外に」出される。この種のバッファが設けられている場合には、バッファの最大の深度まで非同期性が許容されうる。この場合には、バッファがオーバーフローした場合にもエラー信号が出力されなければならない。
さらに、信号M520(またはM620)が比較器の内部で生成される方法に応じて実施形態が区別されうる。1つの望ましい実施形態は、インプット信号M510、M511(もしくはM610、M611)を出力に送信し、スイッチによって接続を遮断可能にすることである。本実施形態の特別な利点は、パフォーマンスモードと可能性のある様々な比較モードとの間での切替のために、同一のスイッチが利用されうることにある。代替的に、比較器内部の中間メモリから信号が生成されるようにしてもよい。
最後の種類の実施形態は、比較器に存在するインプットの数および比較器による応答の方法において、前述の実施形態と区別されうる。3つのインプットに際しては、多数決投票、3つの信号全ての比較または2つの信号のみの比較が行われうる。4つまたは4つ以上のインプットに際しては、対応する多くの実施形態が考えられる。可能な実施形態の詳細な説明は、図20の説明に含まれる。
実施形態の選択は、システム全体の様々な動作モードと組合せて行うことが望ましい。すなわち、複数の異なるパフォーマンスモードまたは比較モードがある場合には、それらが比較器の対応するモードと組合せられることが望ましい。
本発明のいくつかの箇所では、比較器またはより一般的な投票要素/処理要素/ソーティング要素を無効化または受動化することが必要または有利である(以下では便宜上、常に比較器と称する。)。このためには多くの可能性が存在する。第1に、比較器を有効化または無効化する信号が比較器に送信されうる。このために、これを実行しうる追加の論理部が比較器に追加される。第2の可能性は、比較されるべきデータを比較器に供給しないことである。第3の可能性は、比較器のエラー信号をシステムレベルで無視することである。さらに、エラー信号自体が遮断されうる。全ての可能性は、潜在的に比較される2つ以上のデータの相違がシステムに何らの影響も及ぼさないという点で共通する。これに該当する場合には、比較器が受動的または無効とみなされる。
以下では、比較器に接続された切替器の実施形態、すなわち切替・比較ユニットG70の実装が考察される。本実装は、切替・比較ユニットG70が実行ユニットG10a、G10bとともに1つのチップの内部に作製される場合に特に望ましい。
比較器および切替器の各コンポーネントの統合によって、チップ内部への実装に際して、非常に小さなハードウェアオーバーヘッドのみが生じる。よって、1つの有利な実装の変形例は、両方の部品を1つのコンポーネントに統合することである。これは、少なくとも入力信号(実行ユニット1アウトプット、実行ユニット2アウトプット)、少なくとも出力信号(アウトプット1、アウトプット2)、論理的なアウトプット信号「アウトプット全体」(物理的にアウトプット1またはアウトプット2と一致しうる。)および比較器を備えるコンポーネントである。このコンポーネントは、モード切替の能力を有しており、パフォーマンスモードでは全ての信号を通過させ、比較モードでは複数の信号を比較し、場合によっていずれかの信号を通過させる。さらに、他の入力信号および出力信号もまた望ましい。すなわち、検出されたエラーを通知するためのエラー信号、コンポーネントの現在のモードを通知するためのモード信号、およびコンポーネントから/に出力/入力される制御信号である。
1つの有利な実施例では、パフォーマンスモードに際して、2つ以上の実行ユニットがマスタとしてプロセッサ内部のバスに接続される。比較ユニットが無効化されており、考えられる比較モードのいずれかで各々の実行ユニットの挙動が異なる場合に生成されるエラー信号はマスキングされる。このことは、切替・比較ユニットがソフトウェアにとって透過的であることを意味する。着目される比較モードでは、比較されるべき物理的な実行ユニットが論理的な実行ユニットとしてバスで処理され、すなわち、マスタのみがバスに現れる。比較器のエラー信号は有効化されている。このために、切替・比較ユニットは、1つを除く全ての実行ユニットをスイッチを介してプロセッサ内部のバスから分離し、その1つの論理的な実行ユニットの入力を複製し、その入力を比較モードに関与する全ての実行ユニットに提供する。バスへの書込みに際しては、これらの出力が比較ユニットで比較され、これらの出力が一致すれば、既存のアクセス部を介してバスに書込まれる。
図15および図16には、望ましいコンポーネントM700(切替・比較ユニット、G70に相当)の原則的な挙動が説明される。便宜上、図15および図16は、2つの実行ユニットについてのみ示されている。この場合、図15が比較モード、図16がパフォーマンスモードでのコンポーネントの状態を各々に示す。これらのモードでの異なるスイッチ位置は、M700の制御部M760によって実現される。両方の実行ユニットM730、M731は、当初、図16に示すように、パフォーマンスモードでスイッチM750およびM751が閉じられている場合に、データ・アドレスバスM710に書込みすることができる。場合により生じる書込みコンフリクトは、バスプロトコルを介して、または不図示の他のコンポーネントによって解消されることが前提とされる。比較モードでは、少なくとも論理的な観点からすれば、他の挙動となる。図15に示すようにスイッチM750、M751が開かれており、よって直接的なアクセス可能性が遮断されている。そして、図16と対照的に図15では、スイッチM752、M753が閉じられている。実行ユニットM730、M731の信号M740、M741は、比較コンポーネントM720に伝達される。比較コンポーネントは、少なくとも図13に示すように構成されているが、図14で説明されるような拡張部をも含みうる。ただし、比較コンポーネントM720のエラー信号または他の信号の表示は、図15および図16では省略されている。両方の信号が一致する場合にはスイッチM754が閉じられ、一致する両方の信号の一方がアドレス/データバスM710に伝達される。すなわち、このためには、切替・比較ユニットM700がスイッチM750〜M754に介入できることが必要となる。そのつどのスイッチ位置は、モードおよびエラー認識に依存する。スイッチM754が常に閉じられており、適切なシステム応答がエラー信号によって生起されるという変形例も、前述の場合に含まれる。
図17には、切替・比較ユニットの変形例が示される。2つの実行ユニットG10a、G10bのみを備える単純なシステムの場合と同様に、切替・比較ユニットの実装には多くの変形例がある。比較器でバッファが使用されない場合に特に望ましい他の変形例が図17に示される。図15および図16と同様に、実行ユニットの信号M840、M841が存在するが、実行ユニットは図17に示されていない。本発明によるコンポーネントM800には、コンポーネントのモードを設定するモード論理部M810が存在する。モード論理部は、パフォーマンスモードでスイッチM831を閉じ、比較モードでスイッチM831を開く。さらに、モード論理部は、比較器M820にモード信号を送信する。本実装では、比較器が常に比較するが、スイッチM830を制御するために、比較の結果およびモード信号を利用する。スイッチM830は、パフォーマンスモードでは常に閉じられ、比較モードではエラーが発生していない場合には常に閉じられている。もちろん、一度エラーが確認された場合には、相応のリセットが行われるまでは、スイッチが引続き開かれた状態で維持されうる。
図18には、切替・比較ユニットのさらに他の実施形態が示される。この代替案は、多くのスイッチをさらに備えるが、その代わりに、パフォーマンスモードで比較器を無効にするので、より簡単に非同期性を取扱いうる。さらに、実行ユニットの両方の信号M940、M941が存在するが、実行ユニットは図18にも示されていない。本発明によるコンポーネントM900には、コンポーネントのモードを設定するモード論理部M910が存在する。パフォーマンスモードでは、モード論理部がスイッチM931を閉じ、スイッチM932、M933を開く。これにより、このモードでは比較コンポーネントM920にデータが供給されない。このことは、非同期に際して、より長いバッファ時間を許容し、もしくは、1つの実装では、より小さなバッファ深度を許容する。パフォーマンスモードでは、スイッチM930が常に閉じられている。比較モードでは、コンポーネントM910は、スイッチM932、M933を閉じ、スイッチM931の開放によってバスへの直接的なアクセスを遮断する。選択的に、モード論理部M910は比較器M920にモードを通知しうる。比較モードでは、エラーが発生していない場合にはスイッチM930が閉じられている。エラー発生時には、比較コンポーネントM920は、スイッチM930の開放によってバスへの信号M940の伝達を遮断する。
前述の図面では、モード信号またはエラー信号を外部に出力することが容易に可能となる。さらに、特に内部のモード状態を生成するために、コンポーネントにさらなる信号を出力することが問題なく可能となる。
要約すれば、このコンポーネントの有利な実装は、出力信号をバス(例えばアドレス/データバス)に書込可能な複数の処理ユニットが存在することによって特徴付けられる。コンポーネントが実行ユニットの出力信号の少なくとも2つを処理可能であり(例えば、比較または場合により投票もしくはソーティングする。)、コンポーネントが少なくとも1つのスイッチに介入可能であり、そのスイッチによって少なくとも1つの直接的なバスアクセスが遮断可能であることが重要となる。このことは、実行ユニットが計算ユニットのコアである場合に特に有益となる。さらに、介入可能なスイッチの状態が計算ユニットの動作モードを特徴づけることが望ましい。
コンポーネントがアドレス・データバスに信号を出力できる場合には、システム特性、特に可能性のある比較モードが特に良好に実現される。これは、1つの実行ユニットの1つの出力信号の伝達(スルー接続)であることが望ましい。代替的に、これは、異なる実行ユニットの異なる出力信号の処理から生じるようにしてもよい。
例えば図17、図18に関する説明ですでに明らかにされたように、システムでは、および(コンポーネントへの分配に応じて)各々のコンポーネントでは、モード情報が識別されうる。モード情報は、実装に応じて、部分コンポーネント内に明らかに存在しうる。1つの望ましい実装では、この信号がコンポーネントから導出され、システムの他の部分に供給されうる。
一般的な事例では、本発明に基づく挙動が図21により説明されうる。信号およびコンポーネントN100、N110、N120、N130、N140、N141、N142、N143、N14n、N160、N161、N162、N163、N16nは、図20と同一の意味を有する。図21には、さらに、モード信号N150およびエラー信号N170が示される。選択的なエラー信号は、エラー信号を収集するエラー回路論理部N130により生成され、個々のエラー信号が直接的に伝達されるか、またはそれに含まれるエラー情報が束ねられる。モード信号N150は選択的なものであるが、コンポーネント外部でのモード信号の利用が多くの場合に有利となりうる。切替論理部N110の情報(すなわち図20で説明された関数)と処理論理部の情報(すなわち、出力信号毎、すなわち関数値毎の比較演算の決定)との組合せがモード情報であり、モード情報がモードを決定する。この情報は、一般的には当然ながら多値であり、すなわち1つの論理ビットのみで表現できない。所与の実装では、理論上考えられる全てのモードが有意義であることにはならず、許容されるモードの数が制限されることが望ましい。そして、モード信号は、関連するモード情報を外部に伝達する。ハードウェアの実装は、外部で明白なモード信号が設定可能となるように構成されることが望ましい。処理論理部および切替論理部を設定可能に形成することも、同様に望ましい。これらの設定が相互に調整されていることが望ましい。代替的に、モード信号の変化のみを外部に伝達するようにしてもよく、または、モード信号の変化を付加的に外部に伝達するようにしてもよい。このことは、特にデュアルシステムの設定で利点を有する。
モード信号の安全性が確保されることが望ましい。図17に示す実装に基づいて、デュアルシステムでの1つの実装が図19に示される。ここでは、信号M850が切替・比較ユニットから導出される。デュアルシステムでは、この情報が論理的に1つのビットを介して表現されうる。そして、特にデュアルレール信号を介して安全性が確保されうる。一般的な事例では、選択的に反転された二重化を介して、同様に安全性が確保されるようにしてもよい。代替的に、特に内部で自己安全性をもって形成されるパリティ、CRC(巡回冗長検査)またはECC(誤り訂正符合)を用いるようにしてもよい。
モード信号は、コンポーネントの外部で利用されうる。第1に、モード信号は、オペレーティングシステムの自己監視のために利用されうる。オペレーティングシステムは、ソフトウェアの観点から切替に責任を負っているので、システムのモードまたは、そのモードにシステムが移行することを常に認識しておくべきである。よって、この信号のチェックが安全性の確保のために利用されうる。このことは、第1に直接的に行われうる。代替的な可能性は、タイマーまたは他の「独立した」ユニットを介して、オペレーティングシステムへの照会の妥当性をこの信号により判断するようにしてもよい。
一般に、この信号は、選択的にマイクロコントローラ(またはより一般的な計算ユニット)の他のデータ深度(Datensenken)で利用されるようにしてもよい。例えばMPU(メモリ保護ユニット)が特定の(特定の実行ユニットからの)メモリアクセスを特定のモードでのみ許容するようにプログラミングされうる。この場合にMPUは、例えば、特定のプログラム部分について特定のアドレス空間へのアクセスを禁止することによって、データ/アドレスバスへの許容されたアクセスのみが実行されることを保証しうるユニットである。モード信号をMPUに出力し、MPUを適切に設定およびプログラミングし、設定データおよびモード信号を評価することで、追加的な安全性の確保が行われうる。モード信号がすでに検査のための十分な情報となっている場合には、このことが状況によってプログラミングを簡略化する。そして、マイクロコントローラのリセット時には、準静的なプログラミングのみで十分となる。このことは周辺装置ユニットについても該当する。この場合にも、該当する周辺素子へのアクセスが特定のモードでのみ許容される適用が存在する。モード信号を周辺素子に出力し、周辺素子を適切に設定およびプログラミングし、設定データおよびモード信号を評価することで、追加的な安全性の確保が行われうる。モード信号がすでに検査のための十分な情報となっている場合には、このことが状況によってプログラミングを簡略化する。そして、マイクロコントローラのリセット時には準静的なプログラミングのみで十分となる。同様に、この信号の評価が割込みコントローラでも利用されうる。そして、この種の監視は、安全性コンセプトの基礎または主要な構成部分となりうる。適切な実施およびソフトウェア構造化によって、着目される適用における全てのエラー種類についての安全性コンセプトが、このモード信号を基礎として構成されうる。このことは、モード信号が前述したように適切な形態で自己安全性を備えている場合に特に望ましい。そして、この場合には着目するコンポーネントが、モード信号と自分自身へのアクセスとの間に不一致を検出した場合に、エラー信号を送信する可能性または遮断経路を作動させる可能性を有していることが望ましい。
さらなる重要な利用目的は、計算ユニットの外部でモード信号を評価することである。1つの直接的な適用は、減分式のウォッチドッグでの評価にある。この種の「ウォッチドッグ」は、マイクロプロセッサによって整数値に設定されうる少なくとも1つの(カウンタ)レジスタで構成される。レジスタの設定後、「ウォッチドッグ」がレジスタの値を所定の周期で自立的に減分する。レジスタの値がゼロになる、またはオーバーフローが発生すると、「ウォッチドッグ」がエラー信号を生成する。エラー信号が生成されないようにするには、マイクロプロセッサがレジスタの値を適時に再びリセットしなければならない。これにより、マイクロプロセッサがソフトウェアを適切に実行しているかが(一定の範囲で)検査されうる。マイクロプロセッサがソフトウェアを適切に実行しなくなると、その場合には「ウォッチドッグ」も適切に作動されないので、「ウォッチドッグ」によりエラー信号が生成されたとみなされる。ハードウェアとデータ構造の統合性が比較モードで高い信頼性で検査されうるが、そのためには、マイクロプロセッサが規則的に比較モードに復帰することが保証されていなければならない。よって、ここで説明する「ウォッチドッグ」の役割は、定義された期間内にウォッチドッグがリセットされなかった場合にエラー信号を生成することのみならず、定義された期間内にマイクロプロセッサが定義された比較モードに復帰しなかった場合にもエラー信号を生成することにある。例えば、モード信号が計算ユニットの定義された比較モードを表す場合にのみ、「ウォッチドッグ」がリセットされうる。これにより、計算ユニットが規則的にこのモードに復帰することが保証される。代替的または付加的に、マイクロプロセッサで特定の割込みが作動された場合に初めて、「ウォッチドッグ」のレジスタの値が減分される。このためには、マイクロコントローラの外部割込み信号がウォッチドッグにも結合されていなければならない。ウォッチドッグには、定義された比較モードにマイクロコントローラを切替えた割込みが記憶される。この種の割込みが作動すれば、ウォッチドッグは、速やかに「設定され(aufgezogen)」、適切なモード信号の存在によってリセットされる。
ごく一般的に、特に安全性コンセプトへの適用では、マイクロコントローラ外部のソースでモード信号を評価することが有益となる。本発明で説明されるような、コンピュータ上でのソフトウェアの適切な進行の確保に関しては、許容される様々なモード間での適切な切替が重要となる。まず、切替能力自体が検査され、さらに、適切な切替が検査されることが望ましい。前述したように、特別なモードが規則的に想定されるかという点が注目されるようにしてもよい。特にモード信号自体が自己安全性を備える場合には、この種の方法が常に望ましい。
1つの可能性は、モード信号をASICまたは他のマイクロコントローラに伝達することである。この種のASICまたは他のマイクロコントローラは、タイマーおよび単純な論理部を介して、この信号を用いて少なくとも次のような点を検査できる。
・計算ユニットが十分な頻度で(例えば遅くとも1000μs毎)1つ以上の定義されたモードに切替わるか?
・いずれかのモードへの切替に際して、特定の信号が常に出力されるか?
・計算ユニットが規則的にあるモードから他のモードになるか?
・各モードの順序の特定の単純パターンが有効であるか?
・一般的な時間的パターンが有効であるか?(例えば、モード1で平均<70%、モード2で<50%)。
・場合により付加的な信号の利用によって補足される、モード信号の論理的、時間的な特性の何らかの組合せ。
図22には、前述の範囲を超える提案の基本設定が説明される。この種のパートナーASICまたはパートナーマイクロコントローラと、本発明により着目する計算ユニットとの間では、特別な照会−応答サイクルが実行される。N300は、この種のモード信号を出力可能な計算ユニットである。これは、例えば、複数の実行ユニットと、この種のモード信号を生成可能な他のコンポーネントとを備えるマイクロコントローラでありうる。ここで、他のコンポーネントは、例えば図19または図21に示すように実現されうる。N300は、この信号N310をパートナー(例えば、他の計算ユニット、他のマイクロコントローラまたはASIC)N330に送信する。パートナーは、信号N320を介してN300に照会を行うことができ、N300は、N321を介して応答する。この種の照会は、計算タスクでありえて、その適切な結果がN321を介して定義された時間インターバル内にN300から供給される。N330は、N300に依存せずに、この結果の適切さを検査しうる。例えば、この結果がN330に記憶されるか、または、この結果をN330自体が算出しうる。不適切な値の検出に際しては、エラーが認識される。提案される照会−応答通信の特徴は、応答と並列してモード信号が観察される点にある。N300による応答のために、この特定のモードが成立されなければならないように、照会を行うことが望ましい。これにより、全てのモード切替が機能性を有すること、およびプログラム進行の中で意図されているモード切替が実行されることが高い信頼性で検査されうる。このことは、特にシステムのリセットまたは動作中に際しても、安全性コンセプトの主要な要素として利用されうる。
この理念のさらなる適用は、アクチュエータ駆動部でのモード信号の評価にある。昨今、自動車分野の多くの適用では、いわゆるインテリジェントアクチュエータが用いられる傾向にある。これは、アクチュエータ調節コマンドを受信し、調節コマンドが実行されるようにアクチュエータを駆動するための最低限の電子装置を備えるアクチュエータである。
この基本的理念が図23に示される。本発明に基づく計算ユニットN400は、接続部N420を介して(インテリジェント)アクチュエータまたはアクチュエータ駆動部N430に調節コマンドを送信する。並列して計算ユニットは、接続部N410を介してアクチュエータにモード信号を送信する。アクチュエータ駆動部N430は、モード信号を参照して、駆動が許容されているかを検査し、選択的に信号N440を介してエラーステータスを返送する。エラーを伴う駆動では、クリティカルとならないフェールサイレンス状態がシステム内で成立する。
2つの実行ユニットG10a、G10b、比較ユニットG20、切替ユニットG50、および切替意図認識ユニットG40を備えるマルチプロセッサシステムG60を示す図である。 2つの実行ユニットG10a、G10b、比較ユニットG20および切替ユニットG50からなる組合された比較・切替ユニットG70、および切替意図認識ユニットG40を備えるマルチプロセッサシステムG60を示す図である。 2つの実行ユニットG10a、G10b、比較ユニットG20および切替ユニットG50および切替意図認識ユニットG40からなる組合された切替意図・比較・切替ユニットG80を備えるマルチプロセッサシステムG60を示す図である。 2つの実行ユニットG210a、G210bおよび切替・比較ユニットG260を備えるマルチプロセッサシステムG200を示す図である。 特別なパイプラインステップG230a、G230bの内部で、特別な未定義のビットコンビネーションをNOPまたは他の中立的なビットコンビネーションに置換する方法を示すフローチャートである。 2つの実行ユニットH210a、H210bおよび切替・比較ユニットH260を備えるマルチプロセッサシステムH200を示す図である。 2つの実行ユニットを備えるマルチプロセッサシステムで比較モードからパフォーマンスモードへの切替に際して、ユニットIDを用いてプログラムフローを分離可能な方法を示すフローチャートである。 3つの実行ユニットを備えるマルチプロセッサシステムで比較モードからパフォーマンスモードへの切替に際して、ユニットIDを用いてプログラムフローを分離可能な可能性のある方法を示す図である。 パフォーマンスモードから比較モードへの切替に際して実行ユニットを同期化する方法を示すフローチャートである。 パフォーマンスと比較モードとの間の切替を表す状態オートマトンを示す図である。 2つの実行ユニット、割込みマスキングレジスタG430a、G430bを内部に含む2つの割込みコントローラG420a、G420b、および様々な割込みソースG440a〜G440nを備えるマルチプロセッサシステムG400を示す図である。 2つの実行ユニット、切替・比較ユニット、および3つの異なるレジスタセットを含む割込みコントローラを備えるマルチプロセッサシステムを示す図である。 比較器の最も単純な形態を示す図である。 位相オフセットを補正するためのユニットを備える比較器を示す図である。 望ましいコンポーネント(切替・比較ユニット)の比較モード時の原則的な挙動を説明する図である。 望ましいコンポーネント(切替・比較ユニット)のパフォーマンスモード時の原則的な挙動を説明する図である。 切替・比較ユニットの1つの実施形態を示す図である。 切替・比較ユニットの他の実施形態を示す図である。 モード信号を生成する切替・比較ユニットを示す図である。 切替・比較ユニットの一般的な構成を示す図である。 モード信号およびエラー信号を生成する切替・比較ユニットの一般的な構成を示す図である。 外部ユニットとの間での照会−応答通信を示す図である。 インテリジェントアクチュエータとの間での通信を示す図である。

Claims (30)

  1. 少なくとも2つの実行ユニットを有する計算機システムの信号を評価するための方法であって、前記計算機システムでは少なくとも2つの動作モードの間で切替が行われ、第1および第2の動作モードが比較モードおよびパフォーマンスモードの各々に相当する、前記方法において、
    前記計算機システムでは、現時点で存在する前記動作モードを表すモード信号および前記モード信号の変化の少なくともいずれかが生成され、かつ、前記モード信号の変化および前記モード信号自体の少なくともいずれかが評価のために前記計算機システムの外部に提供されることを特徴とする、計算機システムの信号を評価するための方法。
  2. 前記モード信号および前記モード信号の変化の少なくともいずれかが前記計算機システムの外部のコンポーネント内で評価されることを特徴とする、請求項1に記載の方法。
  3. 前記モード信号および前記モード信号の変化の少なくともいずれかが安全性コンポーネント、特にウォッチドッグ内で評価されることを特徴とする、請求項2に記載の方法。
  4. 前記モード信号および前記モード信号の変化の少なくともいずれかが処理ユニット、特に第2の計算機システム内で評価されることを特徴とする、請求項2に記載の方法。
  5. 前記モード信号および前記モード信号の変化の少なくともいずれかに応じて、予め設定可能な操作が予め設定可能な動作モード内でのみ許可されるように、評価が行われることを特徴とする、請求項1に記載の方法。
  6. 前記モード信号および前記モード信号の変化の少なくともいずれかに応じて、前記外部のコンポーネントの予め設定可能な機能が予め設定可能な動作モード内でのみ許可されるように、評価が行われることを特徴とする、請求項2に記載の方法。
  7. 前記外部のコンポーネントが前記比較モードへの切替を監視することを特徴とする、請求項2に記載の方法。
  8. 前記モード信号および前記モード信号の変化の少なくともいずれかを用いて、前記外部のコンポーネントが予め設定可能な動作モード内でのみ駆動することが監視されることを特徴とする、請求項2に記載の方法。
  9. 前記モード信号および前記モード信号の変化の少なくともいずれかを用いて、いずれの切替信号、特に割込み信号によって前記動作モードの切替が行われるかを表示する情報を前記外部のコンポーネントが有することが監視されることを特徴とする、請求項2に記載の方法。
  10. 前記モード信号および前記モード信号の変化の少なくともいずれかを用いて、前記外部のコンポーネントが予め設定可能な動作モード内でのみ駆動することが監視されることを特徴とする、請求項2に記載の方法。
  11. 前記モード信号および前記モード信号の変化の少なくともいずれかを用いて、いずれの切替信号、特に割込み信号によって前記動作モードの切替が行われるかを表示する情報を前記外部のコンポーネントが有することが監視されることを特徴とする、請求項2に記載の方法。
  12. 前記評価として、照会−応答通信が行われるように、エラー認識が実施されることを特徴とする、請求項1に記載の方法。
  13. 前記評価として、前記モード信号および前記モード信号の変化の少なくともいずれかが予め設定可能な情報と比較されて相違または一致の場合にエラーが認識されるように、エラー認識が実施されることを特徴とする、請求項1に記載の方法。
  14. 前記評価として、前記モード信号および前記モード信号の変化の少なくともいずれかに応じて形成される情報が予め設定可能な情報と比較されて相違または一致の場合にエラーが認識されるように、エラー認識が実施されることを特徴とする、請求項1に記載の方法。
  15. 前記モード信号および前記モード信号の変化の少なくともいずれかを用いて、前記動作モードの切替が計算機システムの外部のコンポーネントによって監視されることを特徴とする、請求項1に記載の方法。
  16. 少なくとも1つの付加情報によって、前記モード信号および前記モード信号の変化の少なくともいずれかが安全性を確保されることを特徴とする、請求項1に記載の方法。
  17. 前記モード信号および前記モード信号の変化の少なくともいずれかが少なくとも二重化されることによって、前記モード信号および前記モード信号の変化の少なくともいずれかが安全性を確保されることを特徴とする、請求項1に記載の方法。
  18. 前記モード信号および前記モード信号の変化の少なくともいずれかがデュアルレール信号として安全性を確保されることを特徴とする、請求項1に記載の方法。
  19. 互いに切替可能な2つより多い動作モードが設けられていることを特徴とする、請求項1に記載の方法。
  20. 前記動作モードの各々を表すために設定可能な動作モード識別子が設けられていることを特徴とする、請求項1または19に記載の方法。
  21. 前記動作モードの各々を表すために設定可能なポインタ変数が設けられていることを特徴とする、請求項1または19に記載の方法。
  22. 前記モード信号および前記モード信号の変化の少なくともいずれかに基づいてエラー認識が実施され、前記エラー認識の枠内で少なくとも1つのエラー信号が生成されることを特徴とする、請求項1に記載の方法。
  23. 前記外部のコンポーネント内でカウンタが用いられることを特徴とする、請求項2、3、4、6、7、8、9、10、11に記載の方法。
  24. 前記モード信号が前記モード信号によって2つより多いモードを表示可能なように多値であることを特徴とする、請求項1〜23のいずれか1項に記載の方法。
  25. 少なくとも2つの実行ユニットを有する計算機システムの信号を評価するための装置であって、前記計算機システムでは少なくとも2つの動作モードの間で切替が行われ、第1および第2の動作モードが比較モードおよびパフォーマンスモードの各々に相当する、前記装置において、
    前記計算機システムには、現時点で存在する前記動作モードを表すモード信号および前記モード信号の変化の少なくともいずれかを生成するように形成された手段が設けられ、かつ、前記モード信号の変化および前記モード信号自体の少なくともいずれかが評価のために前記計算機システムの外部に提供されることを特徴とする、計算機システムの信号を評価するための装置。
  26. 前記モード信号および前記モード信号の変化の少なくともいずれかを評価する、前記計算機システムの外部のコンポーネントが設けられていることを特徴とする、請求項25に記載の装置。
  27. 前記外部のコンポーネントが安全性コンポーネント、特にウォッチドッグであることを特徴とする、請求項25に記載の装置。
  28. 前記ウォッチドッグが減分式のウォッチドッグであることを特徴とする、請求項27に記載の装置。
  29. 前記外部のコンポーネントがアクチュエータまたはアクチュエータ駆動のためのコンポーネントであることを特徴とする、請求項25に記載の装置。
  30. 前記モード信号によって2つより多いモードが表示可能であるように、前記モード信号が生成されることを特徴とする、請求項25に記載の装置。
JP2007537291A 2004-10-25 2005-10-25 少なくとも2つの実行ユニットを有する計算機システムの信号を評価するための方法および装置 Pending JP2008518299A (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
DE200410051992 DE102004051992A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Mehrprozessorsystems
DE102004051950A DE102004051950A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Taktumschaltung bei einem Mehrprozessorsystem
DE200410051964 DE102004051964A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Überwachung einer Speichereinheit in einem Mehrprozessorsystem
DE102004051952A DE102004051952A1 (de) 2004-10-25 2004-10-25 Verfahren zur Datenverteilung und Datenverteilungseinheit in einem Mehrprozessorsystem
DE200410051937 DE102004051937A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Synchronisierung in einem Mehrprozessorsystem
DE102005037222A DE102005037222A1 (de) 2004-10-25 2005-08-08 Verfahren und Vorrichtung zur Auswertung eines Signals eines Rechnersystems mit wenigstens zwei Ausführungseinheiten
PCT/EP2005/055504 WO2006045778A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur auswertung eines signals eines rechnersystems mit wenigstens zwei ausführungseinheiten

Publications (1)

Publication Number Publication Date
JP2008518299A true JP2008518299A (ja) 2008-05-29

Family

ID=35985207

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007537291A Pending JP2008518299A (ja) 2004-10-25 2005-10-25 少なくとも2つの実行ユニットを有する計算機システムの信号を評価するための方法および装置

Country Status (9)

Country Link
US (1) US20080263340A1 (ja)
EP (1) EP1812856B1 (ja)
JP (1) JP2008518299A (ja)
KR (1) KR20070062577A (ja)
AT (1) ATE407399T1 (ja)
DE (2) DE102005037222A1 (ja)
ES (1) ES2311238T3 (ja)
PL (1) PL1812856T3 (ja)
WO (1) WO2006045778A1 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009086938A (ja) * 2007-09-28 2009-04-23 Hitachi Ltd 高安全制御装置
JP2010117813A (ja) * 2008-11-12 2010-05-27 Nec Electronics Corp デバッグシステム、デバッグ方法、デバッグ制御方法及びデバッグ制御プログラム
JP2012523616A (ja) * 2009-04-08 2012-10-04 フリースケール セミコンダクター インコーポレイテッド マルチプロセッサデータ処理システムにおけるデバッグシグナリング

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080288758A1 (en) * 2004-10-25 2008-11-20 Robert Bosch Gmbh Method and Device for Switching Over in a Computer System Having at Least Two Execution Units
DE102006050715A1 (de) * 2006-10-10 2008-04-17 Robert Bosch Gmbh Verfahren und System zum Erzeugen eines gültigen Signals
DE102006048169A1 (de) 2006-10-10 2008-04-17 Robert Bosch Gmbh Verfahren zur Überwachung einer Funktionsfähigkeit einer Steuerung
JP5796311B2 (ja) 2011-03-15 2015-10-21 オムロン株式会社 制御装置およびシステムプログラム
KR102013582B1 (ko) 2012-09-07 2019-08-23 삼성전자 주식회사 혼합 모드 프로그램의 소스 코드 오류 위치 검출 장치 및 방법
DE102015216086A1 (de) * 2015-08-24 2017-03-02 Robert Bosch Gmbh Verfahren und Vorrichtung zum Überwachen eines Zustandes einer elektronischen Schaltungseinheit eines Fahrzeugs
US9547483B1 (en) * 2015-11-06 2017-01-17 International Business Machines Corporation Feedback directed optimized compiling of optimized executable code

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5026345B1 (ja) * 1970-09-30 1975-08-30
JPS5028309B1 (ja) * 1970-11-20 1975-09-13
JPS6231441A (ja) * 1985-05-10 1987-02-10 タンデム コンピユ−タ−ズ インコ−ポレ−テツド 高レベル自己検査式知能i/oコントロ−ラ
JPS63159946A (ja) * 1986-12-16 1988-07-02 アドバンスト・マイクロ・ディバイシズ・インコーポレーテッド 並列テストインターフェイスおよびそのテスト方法
JPH08161187A (ja) * 1994-12-09 1996-06-21 Mitsubishi Electric Corp 計算機制御方式
US6269478B1 (en) * 1997-07-22 2001-07-31 Siemens Aktiengesellschaft Monitoring method for recognizing endless loops and blocked processes in a computer system using task state comparisons
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3864670A (en) * 1970-09-30 1975-02-04 Yokogawa Electric Works Ltd Dual computer system with signal exchange system
US3783250A (en) * 1972-02-25 1974-01-01 Nasa Adaptive voting computer system
JPS58221453A (ja) * 1982-06-17 1983-12-23 Toshiba Corp 多重系情報処理装置
CA1320276C (en) * 1987-09-04 1993-07-13 William F. Bruckert Dual rail processors with error checking on i/o reads
GB8729901D0 (en) * 1987-12-22 1988-02-03 Lucas Ind Plc Dual computer cross-checking system
DE19511842A1 (de) * 1995-03-31 1996-10-02 Teves Gmbh Alfred Verfahren und Schaltungsanordnung zur Überwachung einer Datenverarbeitungsschaltung
US5796935A (en) * 1995-07-20 1998-08-18 Raytheon Company Voting node for a distributed control system
JPH1063544A (ja) * 1996-08-20 1998-03-06 Toshiba Corp タイムアウト監視方式
US6928583B2 (en) * 2001-04-11 2005-08-09 Stratus Technologies Bermuda Ltd. Apparatus and method for two computing elements in a fault-tolerant server to execute instructions in lockstep
US7155721B2 (en) * 2002-06-28 2006-12-26 Hewlett-Packard Development Company, L.P. Method and apparatus for communicating information between lock stepped processors
US7003691B2 (en) * 2002-06-28 2006-02-21 Hewlett-Packard Development Company, L.P. Method and apparatus for seeding differences in lock-stepped processors
US7085959B2 (en) * 2002-07-03 2006-08-01 Hewlett-Packard Development Company, L.P. Method and apparatus for recovery from loss of lock step
US7237144B2 (en) * 2004-04-06 2007-06-26 Hewlett-Packard Development Company, L.P. Off-chip lockstep checking
US7502958B2 (en) * 2004-10-25 2009-03-10 Hewlett-Packard Development Company, L.P. System and method for providing firmware recoverable lockstep protection

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5026345B1 (ja) * 1970-09-30 1975-08-30
JPS5028309B1 (ja) * 1970-11-20 1975-09-13
JPS6231441A (ja) * 1985-05-10 1987-02-10 タンデム コンピユ−タ−ズ インコ−ポレ−テツド 高レベル自己検査式知能i/oコントロ−ラ
JPS63159946A (ja) * 1986-12-16 1988-07-02 アドバンスト・マイクロ・ディバイシズ・インコーポレーテッド 並列テストインターフェイスおよびそのテスト方法
JPH08161187A (ja) * 1994-12-09 1996-06-21 Mitsubishi Electric Corp 計算機制御方式
US6269478B1 (en) * 1997-07-22 2001-07-31 Siemens Aktiengesellschaft Monitoring method for recognizing endless loops and blocked processes in a computer system using task state comparisons
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009086938A (ja) * 2007-09-28 2009-04-23 Hitachi Ltd 高安全制御装置
JP2010117813A (ja) * 2008-11-12 2010-05-27 Nec Electronics Corp デバッグシステム、デバッグ方法、デバッグ制御方法及びデバッグ制御プログラム
JP2012523616A (ja) * 2009-04-08 2012-10-04 フリースケール セミコンダクター インコーポレイテッド マルチプロセッサデータ処理システムにおけるデバッグシグナリング

Also Published As

Publication number Publication date
ES2311238T3 (es) 2009-02-01
DE102005037222A1 (de) 2007-02-15
EP1812856B1 (de) 2008-09-03
US20080263340A1 (en) 2008-10-23
DE502005005285D1 (de) 2008-10-16
PL1812856T3 (pl) 2009-02-27
WO2006045778A1 (de) 2006-05-04
EP1812856A1 (de) 2007-08-01
KR20070062577A (ko) 2007-06-15
ATE407399T1 (de) 2008-09-15

Similar Documents

Publication Publication Date Title
JP2008518298A (ja) 複数のコンポーネントを有する計算機システムで信号を生成するための方法および装置
JP5053854B2 (ja) 少なくとも2つの実施ユニットを有する計算機システムにおける切替え方法および装置
JP2008518339A (ja) 少なくとも2つの実施ユニットを有する計算機において切り替える装置および方法
JP2008518299A (ja) 少なくとも2つの実行ユニットを有する計算機システムの信号を評価するための方法および装置
JP2008518297A (ja) 少なくとも2つの実行ユニットを有する計算機システムで切替を行うための装置および方法
JP2008518296A (ja) 少なくとも2つの実行ユニットを備えるコンピュータシステムで切換をする方法及び装置
CN100520730C (zh) 在具有至少两个执行单元的计算机系统中对程序代码的执行进行分离的方法和设备
JP5199088B2 (ja) 少なくとも2つの命令実行部および1つの比較ユニットを備えたコンピュータシステムを制御する方法および装置
JP2008518301A (ja) 少なくとも2つの実行ユニットを有する計算機システムで切替を行うための方法および装置
JP2008518300A (ja) 少なくとも2つの実行ユニットを備えるコンピュータシステムにおけるプログラムコードの処理分割方法および装置
JP4443569B2 (ja) プロセッサユニットにおけるオペランド処理方法および装置
US20080313384A1 (en) Method and Device for Separating the Processing of Program Code in a Computer System Having at Least Two Execution Units
KR20070083776A (ko) 적어도 하나의 외부 신호에 의한 멀티 프로세서 시스템의작동 모드 사이의 스위칭을 위한 방법 및 장치
US20110208948A1 (en) Reading to and writing from peripherals with temporally separated redundant processor execution
JP2008518340A (ja) 少なくとも2つの実施ユニットを有する計算機システムにおいて切り替える方法および装置
CN101048746A (zh) 用于评价具有至少两个执行单元的计算机系统的信号的方法和设备
US9842014B2 (en) Data processing device, method of execution error detection and integrated circuit
RU2384877C2 (ru) Способ и устройство для генерирования сигнала в вычислительной системе, включающей в себя несколько компонентов
JP2009506408A (ja) 複数の実行ユニットを有する計算機システム内のプロセスを分析する方法および装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20091020

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100316