JP2008518296A - 少なくとも2つの実行ユニットを備えるコンピュータシステムで切換をする方法及び装置 - Google Patents
少なくとも2つの実行ユニットを備えるコンピュータシステムで切換をする方法及び装置 Download PDFInfo
- Publication number
- JP2008518296A JP2008518296A JP2007537288A JP2007537288A JP2008518296A JP 2008518296 A JP2008518296 A JP 2008518296A JP 2007537288 A JP2007537288 A JP 2007537288A JP 2007537288 A JP2007537288 A JP 2007537288A JP 2008518296 A JP2008518296 A JP 2008518296A
- Authority
- JP
- Japan
- Prior art keywords
- mode
- switching
- comparison
- unit
- execution
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 52
- 238000012545 processing Methods 0.000 description 20
- 230000007704 transition Effects 0.000 description 18
- 230000000873 masking effect Effects 0.000 description 14
- 239000000872 buffer Substances 0.000 description 10
- 230000006399 behavior Effects 0.000 description 8
- 238000003860 storage Methods 0.000 description 8
- 238000004364 calculation method Methods 0.000 description 7
- 230000009977 dual effect Effects 0.000 description 7
- 230000002093 peripheral effect Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000001360 synchronised effect Effects 0.000 description 6
- 230000009471 action Effects 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000010363 phase shift Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000001960 triggered effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000007935 neutral effect Effects 0.000 description 4
- 241000761456 Nops Species 0.000 description 3
- 230000018109 developmental process Effects 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 108010020615 nociceptin receptor Proteins 0.000 description 3
- 238000012935 Averaging Methods 0.000 description 2
- JJWKPURADFRFRB-UHFFFAOYSA-N carbonyl sulfide Chemical compound O=C=S JJWKPURADFRFRB-UHFFFAOYSA-N 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002245 particle Substances 0.000 description 2
- 239000013589 supplement Substances 0.000 description 2
- 230000002123 temporal effect Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 230000007257 malfunction Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1654—Error detection by comparing the output of redundant processing systems where the output of only one of the redundant processing components can drive the attached hardware, e.g. memory or I/O
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
- G06F9/30189—Instruction operation extension or modification according to execution mode, e.g. mode flag
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1695—Error detection or correction of the data by redundancy in hardware which are operating with time diversity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/845—Systems in which the redundancy can be transformed in increased performance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Hardware Redundancy (AREA)
- Multi Processors (AREA)
Abstract
少なくとも2つの実行ユニットを備えるコンピュータシステムで切換をする方法および装置であって、少なくとも2つの動作モードの間で切換が行われ、第1の動作モードは比較モードに相当するとともに第2の状態動作モードはパフォーマンスモードに相当しているものにおいて、各実行ユニットをコンピュータシステムの内部バスと接続可能であり、パフォーマンスモードでは少なくとも2つの実行ユニットが内部バスと接続され、パフォーマンスモードから比較モードへの切換時には少なくとも1つの実行ユニットが、切換器により制御されるスイッチによって内部バスから切り離されることを特徴とする。
【選択図】図15
【選択図】図15
Description
α粒子や宇宙線によって引き起こされる過渡的なエラーは、集積半導体回路にとって大きな問題になりつつある。構造幅の減少、電圧の低下、及び高いクロック周波数のために、α粒子や宇宙線によって引き起こされる電圧ピークが、集積回路の論理値を狂わせる確率が高くなる。その結果、誤った計算結果が生じる可能性がある。従って、特に自動車などの安全性関連のシステムでは、そのようなエラーを確実に検知しなければならない。電子装置の誤機能を確実に検知しなければならない、例えば自動車のABSコントロールシステムなどの安全性関連のシステムでは、このようなシステムの相応の制御装置において、エラー認識をするための冗長性が利用されるのが普通である。例えば公知のABSシステムでは、それぞれ一式のマイクロコントローラが二重に構成されており、全てのABS機能が冗長的に計算されて、互いに一致しているかどうか検査される。結果に矛盾が生じると、ABSシステムの動作がオフになる。
マイクロコントローラの主要なコンポーネントは、第1に、コアの記憶装置モジュール(例えばRAM,ROM、キャッシュ)、入力/出力インターフェース、いわゆる周辺装置(例えばA/D変換器、CANインターフェース)で構成されている。記憶素子は検査コード(パリティまたはECC)で効率的に監視することができ、周辺装置はしばしばアプリケーション固有のやり方で、センサ信号経路またはアクチュエータ信号経路の一部として監視されるので、今後の冗長性への取り組みは、マイクロコントローラのコアの単独での二重化に関して進められる。
このように2つのコアが統合されたマイクロコントローラは、デュアルコアアーキテクチャとも呼ばれている。両方のコアは同じプログラムセグメントを冗長的に、かつクロック同期された状態で実行し(ロックステップモジュール)、両方のコアの結果が比較されて、一致しているかどうかの比較の際に誤りが発見される。このようなデュアルコアシステムのコンフィギュレーションは、比較モードと呼ぶことができる。
デュアルコアアーキテクチャは、さらに別の用途では性能向上のために利用されており、すなわちパフォーマンス向上のために利用されている。両方のコアが異なるプログラム、異なるプログラムセグメント、異なるコマンドを実行し、それによって性能向上を実現することができるので、このようなデュアルコアシステムのコンフィギュレーションは、パフォーマンスモードと呼ぶことができる。このようなシステムは対称型マルチプロセッサシステム(SMP)とも呼ばれる。
こうしたシステムの1つの拡張形は、特別なアドレスへのアクセスと、専用化されたハードウェア装置とによって、これら両方の方式をソフトウェアで切り換えることにある。比較モードの時には、コアの出力信号が相互に比較される。パフォーマンスモードの時には、両方のコアが対称型マルチプロセッサシステム(SMP)として作動し、異なるプログラム、異なるプログラムセグメント、又は異なるコマンドを実行する。
このようなシステムでは、それぞれのモード間の切換時に、バスアクセス手段をコーディネートしながら一緒に切り換えることが問題となる。したがって本発明の課題は、モード切換時にバスアクセス手段をコーディネートしながら一緒に切り換えることを可能にする方法および手段を提供することである。
少なくとも2つの実行ユニットを備えるコンピュータシステムで切換をする方法であって、少なくとも2つの動作モードの間で切換が行われ、第1の動作モードは比較モードに相当するとともに第2の動作モードはパフォーマンスモードに相当している方法において、各実行ユニットをコンピュータシステムの内部バスと接続可能であり、パフォーマンスモードでは少なくとも2つの実行ユニットが内部バスと接続され、パフォーマンスモードから比較モードへの切換時には少なくとも1つの実行ユニットが、切換器により制御されるスイッチによって内部バスから切り離されることを特徴とする方法を適用するのが好ましい。
さらに比較器が設けられており、比較モードでは比較器が有効になる方法を適用するのが好ましい。
さらに比較器が設けられており、パフォーマンスモードでは比較器が無効になる方法を適用するのが好ましい。
前記データを比較して一致していないときはエラー信号を出力する比較器が設けられており、前記エラー信号はパフォーマンスモードではマスキングされる方法を適用するのが好ましい。
比較モードのとき各々のデータが比較される少なくとも2つの実行ユニットが、当該モードのときに内部バスの論理実行ユニットとして取り扱われる方法を適用するのが好ましい。
比較モードのとき少なくとも1つの実行ユニットが内部バスから切り離され、切り離されていない少なくとも1つの実行ユニットの入力データが二重化され、切り離されている少なくとも1つの実行ユニットに当該データが供給される方法を適用するのが好ましい。
比較モードのとき1つの実行ユニットを除いて実行ユニットがすべて内部バスから切り離され、切り離されていない実行ユニットの入力データが二重化され、切り離されているすべての実行ユニットに当該データが供給される方法を適用するのが好ましい。
少なくとも2つの実行ユニットを備えるコンピュータシステムで切換をする装置であって、少なくとも2つの動作モードの間で切換をする切換器が設けられており、第1の動作モードは比較モードに相当するとともに第2の動作モードはパフォーマンスモードに相当している装置において、各実行ユニットをコンピュータシステムの内部バスと接続可能であり、パフォーマンスモードでは各実行ユニットが内部バスと接続されており、比較モードでは1つの実行ユニットだけが内部バスと接続されており、少なくとも2つ目の実行ユニットは切換器により制御されるスイッチによって内部バスから切り離されることを特徴とする装置を適用するのが好ましい。
さらに、パフォーマンスモードのとき無効になる比較器が設けられている装置を適用するのが好ましい。
さらに、比較モードのとき有効になる比較器が設けられている装置を適用するのが好ましい。
切換器と比較器が1つのコンポーネントで切換・比較ユニットとしてまとめられている装置を適用するのが好ましい。
その他の利点および有利な実施形態は、特許請求の範囲ならびに発明の詳細な説明の構成要件から明らかである。
以下においては、プロセッサ、コア、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が示されている。
上に説明した事項の1つの実施形態では、図2に示すように、切換ユニットG50と比較ユニットG20を共通の切換・比較ユニット(UVE)G70にまとめることができる。その場合、この共通のコンポーネントG70は個々のコンポーネントG50、G20の役割を担うことになる。図15、図16、図17、図18、及び図19にはUVEG70の変形例が示されている。
図3に示す別の実施形態では、切換希望認識部G40、比較器G20、及び切換ユニットG50を、共通のコンポーネントG80にまとめることができる。図面には示さないさらに別の実施形態では、切換希望認識部G40と比較器G20が共通のコンポーネントにまとめられてもよい。切換希望認識部40を切換器G50とともに共通のコンポーネントにまとめることも、同様に考えられる。
以後の説明では、別段の記載がない限り、切換希望認識部G40と、組み合わされた切換・比較ユニットG70とが設けられていることを前提とする。
実行ユニットを2つを超えて用いる場合も含めた、一般的な切換・比較コンポーネントの事例が図20に示されている。考慮に入れるべきn個の実行ユニットから、n個の信号N140、...、N14nが切換・比較コンポーネントN100へ送られる。切換・比較コンポーネントはこれらの入力信号から、最大でn個の出力信号N160、...、N16nを生成することができる。最も単純なケースである「純粋なパフォーマンスモード」では、全ての信号N14iが、対応する出力信号N16iへと導かれる。これと逆の境界事例である「純粋な比較モード」では、全ての信号N140、...、N14nが、それぞれの出力信号N16iのうちのちょうど1つだけに導かれる。
この図面を参照すると、考えられるさまざまなモードを、どのようにして成立させることができるかを説明することができる。そのために、この図面には切換論理部N110の論理コンポーネントが含まれている。これらのコンポーネントは、独自のコンポーネントとして設けられている必要はない。決定的に重要なのは、ここで説明する機能がシステムで具体化されていることである。切換論理部N110は、まず、どれだけの数の出力信号が存在しているかを判定する。その次に切換論理部は、どの入力信号がどの出力信号に寄与しているかを判定する。この時、1つの入力信号がちょうど1つの出力信号に寄与することができる。つまり数学的な形で別に表現すれば、集合{N140、...、N14n}の各要素に、集合{N160、...、N16n}の1つの要素が割り当てられる関数が、切換論理部によって定義される。
そして処理論理部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は、入力値の極値を排除して、残りの値で一種の平均化を行うことに依拠している。この平均化は残りの値の集合全体で行うことができ、又は特に、HWで容易に形成することができる部分集合で行うことができる。この場合、数値を実際に比較することは必ずしも必要ではない。例えば平均値形成の場合には加算と除算をするだけでよく、FTM、FTA、又は中央値には一部の選別が必要である。場合により十分に大きい極値がある時は、任意選択で、エラー信号を出力することができる。
複数の信号を1つの信号に処理する上に挙げたこれら種々の選択肢を、便宜上、比較演算と呼ぶことにする。
つまり処理論理部の役割は、各々の出力信号について(及び、これに伴って付属する入力信号についても)、比較演算の厳密な形態を定めることにある。切換論理部N110の情報(すなわち前述した関数)と処理論理部の情報(すなわち出力信号ごとの、すなわち関数値ごとの比較演算の決定)とを組み合わせたものがモード情報であり、このモード情報がモードを決定する。この情報は一般的なケースでは当然ながら多価であり、つまり1つの論理ビットだけで表すことはできない。理論上考えられる全てのモードが、所与の具体化形態において有意義なわけではなく、許容されるモードの数を制限しておくのが好ましい。ただ1つの比較モードしか存在しないただ2つの実行ユニットの場合には、全ての情報をただ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」として定義される。そしてこのマクロが、現時点でのモードに依存して、他のモードへの切換を惹起する。システムに2つを超えるモードが存在している場合には、この方法を適用するために、このようなコンビネーションがさらに多く存在していなければならず、その場合、1つのモードごとに1つのコンビネーションを切換認識のために利用できるのが好ましい。
本発明では、コマンドセットで定義されていないビットコンビネーションによって、切換希望がコーディングされる。このビットコンビネーションは、実行ユニットG210a、G210bの内部で通常の仕方で処理されてはならない。この理由により、相応のビットコンビネーションを認識し、以後の処理のためにこれをニュートラルなビットコンビネーションと置き換える、追加のパイプライン段階(REPLACE段階)G230a、G230bが提案される。そのために、「NOP」(No Operation)コマンドを利用するのが好ましい。NOPコマンドは、命令ポインタを除き、実行ユニットの内部状態を変更しないという特徴がある。この時REPLACE段階G230a、G230bは、通常第1の段階であるFETCH段階G220a、G220bよりも後、かつ、ここでは1つのユニットにまとめられている、アセンブラで定義されていないビットコンビネーションのための残りのパイプライン段階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へ送られる。1つの有利な実施形態では、ブロック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をそれぞれ有している。この信号は、切換・比較ユニットH260によって、最初に切換コマンドを認識し、それによって信号H250aないしH250bを活動化させるパイプラインユニットH215a又はH215bに対して、生成される。実行ユニットH210a、H210bの両方のパイプラインユニットH215a、H215bが切換コマンドを認識し、ソフトウェア又はその他のハードウェア措置によってそれぞれの内部状態が同期化された時に初めて、この信号H280a、H280bが再び取り消される。比較モードからパフォーマンスモードへの切換時には、同期化が必要ないので、H280a、H280bは不要である。
ここで説明している提案の前提条件となるのは、各々の実行ユニットが自らの個別番号又はユニットIDを確認することができるようにするユニット(IDユニットと呼ぶ)又は方法である。2つの実行ユニットを備えるシステムの場合、例えば一方の実行ユニットは自らについて番号0を確認し、他方の実行ユニットは番号1を確認することができる。2つを超える実行ユニットを備えるシステムでも、これに準じた番号が付与ないし確認される。このIDは比較モードとパフォーマンスモードを区別するのではなく、実行ユニットに一義的に名称をつけるものである。IDユニットはそれぞれの実行ユニットに含まれていてよく、例えばプロセッサ状態レジスタのビット又はビットコンビネーションとして、又は独自のレジスタとして、又は単数のビットとして、又は問い合わせに応じて相応のIDを供給する、実行ユニットの外部のユニットとして実装される。
実行ユニットが切換希望に従ってパフォーマンスモードへの切換を実行した後、比較ユニットはもはや有効ではなくなっているが、実行ユニットは依然として同一のコマンドを実行し続ける。その理由は、次のステップで実行ユニットが作動する、ないしは現在作動しているプログラムの個所を表示する命令ポインタは、切換による影響を受けることがないからである。実行ユニットが引き続いて種々のSWモジュールを実行できるようにするためには、それぞれの実行ユニットのプログラム進行が分割されなくてはならない。従って実際には、本発明では独立したコマンド、プログラムセグメント、又はプログラムが処理されるので、それぞれの命令ポインタは、パフォーマンスモードの時に異なる値を有しているのが通常である。プログラムフローの分割は、ここで説明している提案では、それぞれの実行ユニット番号の確認によって行われる。実行ユニットがどの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で処理が続行される。番号との照合に代えて、確認された実行ユニット番号を分岐表へのインデックスとして直接利用することもできる。
3つを超える実行ユニットを備えるマルチプロセッサシステムについても、以上の説明に準じて、同じ方法を適用することができる。
パフォーマンスモードから比較モードへ切り換える時は、複数の事柄に配慮しなければならない。パフォーマンスモードから比較モードへの切換時には、実行ユニットの内部状態が切換後に同種になることを保証しなければならない。そうしないと、異なるスタート状態が異なる出力につながった場合、比較モードで、場合によりエラーが認識されることになる。このことは、ハードウェア、ソフトウェア、ファームウェア、又はこれら3つ全ての組み合わせによって行うことができる。そのための前提条件は、比較モードへの切換後に、全ての実行ユニットが同一又は同種のコマンド、プログラム、又はプログラムセグメントを実行することである。以下において、同一のコマンドが処理されてビットごとの正確な比較が行われるという特徴を比較モードが備えている場合に適用可能な同期化方法についてする。
図9には、パフォーマンスモードから比較モードへの切換時に実行ユニットを同期化する方法が、フローチャートとして示されている。ステップG600で、特に全ての割込みが禁止される。このことが重要なのは、割込みコントローラが比較モードのために相応に再プログラミングされなければならないという理由からだけではない。ソフトウェアによっても、実行ユニットの内部状態が調整されるのが望ましい。逆に、比較モードへの切換をするための準備中に割込みが惹起されると、さらに多くのコストをかけない限り、調整が不可能になる。
ステップG610:両方の実行ユニットが別々のキャッシュを有している時は、比較モードになった時に、一方の実行ユニットを表すアドレスにキャッシュヒットが生じ、他方の実行ユニットについてキャッシュミスが生じるのを防ぐために、キャッシュの内容も切換前に調整されなくてはならない。これがキャッシュハードウェアによって自動的に行われない時は、例えば全てのキャッシュラインを無効としてマーキングすることにより、このような調整を行う。そのキャッシュ(又は複数のキャッシュ)が完全に無効になるまで待機しなければならない。必要な場合には、プログラムコードの待機ループによってこのことを確保する。これはその他の手段で実現することもでき、決定的に重要なのは、このステップの後にどのキャッシュも同じ状態になっていることである。
ステップG620では、パフォーマンスモードに由来する実行ユニットの活動が切換後に行われないようにするために、実行ユニットの書込みバッファが空にされる。
ステップG630では、それぞれの実行ユニットのパイプライン段階の状態が同期化される。そのために、例えば適当な数のNOP(No Operation)コマンドを、切換シーケンス/切換コマンドの前に実行する。NOPコマンドの数はパイプライン段階の数に準じて決め、すなわち、そのつどのアーキテクチャに依存して決める。どのようなコマンドがNOPコマンドとして適しているかも、同じくアーキテクチャ依存的である。実行ユニットが命令キャッシュを有している時は、そのコマンドシーケンスがキャッシュラインの境界に沿って配列されることを保証する(アライメント)。命令キャッシュは、これらのNOPが実行される前に無効としてマーキングされているので、これらのNOPが最初にキャッシュにロードされなくてはならない。キャッシュライン境界にあるこのコマンドシーケンスが開始されると、記憶装置(例えばRAM/ROM/フラッシュ)からキャッシュへのデータ転送が完了してから、切換のコマンドが行われる。このコマンドシーケンスも、NOPの必要数を決める時に考慮しなければならない。
ステップG640では、比較モードへ切り換えるためのコマンドステップが実際に遂行される。
ステップG650では、各々の実行ユニットのそのつどのレジスタファイルの内容が調整される。そのために、切換の前又は後でレジスタに同一の内容をロードする。その際に重要なのは、レジスタの内容が外部へ転送され、それによって比較ユニットにより比較されるまでに、切換後に各実行ユニットのレジスタの内容が同一になっていることである。
ステップG660では、相互接続されているどの実行ユニットでも外部の割込み信号が同じ割込みを惹起するように、割込みコントローラが再プログラミングされる。
ステップG670では割込みが再びリリースされる。
比較モードへの切換がいつ行われるべきなのかがプログラム進行から一義的に明らかでない時は、切換が意図されていることを関与する実行ユニットに知らせなくてはならない。そのために、それぞれの実行ユニットに帰属する割込みコントローラで、例えばSWなどにより割込みが開始されるのが好ましい。そして割込み処理が、上に説明した相互接続のためのシーケンスの実行を指令する。
図10には、パフォーマンスと比較モード(およびその逆)の切換を表現するステートマシンが示されている。「パワーオン」あるいはリセット(ソフトウェアまたはハードウェア)によって惹起されるシステムの起動時に、移行線G800を経由してシステムが状態G700へと移される。一般に、リセットを惹起することができる未定義の事象後のシステムは、常に状態G700から動作を開始する。リセットを惹起することができる事象の例としては、外部の信号、電圧供給のトラブル、動作の継続を有意義でなくしてしまう内部のエラー事象などがある。このように、切換・比較ユニットG70の状態G700、およびパフォーマンスモードで作業が行われるマルチプロセッサシステムG60の状態G700は、システムのデフォルト状態である。普通ならば未定義の状態が成立することになるはずの一切のケースで、デフォルト状態G700が成立する。このような状態G700のデフォルト位置は、ハードウェア措置によって保証される。例えばシステム状態ないし切換・比較ユニットG60の状態は、レジスタ、レジスタ内部のビット、レジスタ内部のビットコンビネーション、またはフリップフロップによってコーディングされていてよい。
そうすれば、ハードウェアにより、リセットまたはパワーオンの後に必ず状態G700が成立することが保証される。このことは、例えばリセット信号ないし「パワーオン」信号が、フリップフロップまたはレジスタのリセット入力部もしくはセット入力部に送られることによって保証される。
状態G700では、システムはパフォーマンスモードで作動する。従って実行ユニットG10a、G10bは異なるコマンド、異なるプログラム、又は異なるプログラムセグメントを処理する。切換は、例えば実行ユニットG10a、G10bが、特別な切換コマンドを実行することによって認識することができる。その他の方法としては、特別なメモリアドレスへのアクセス、内部信号、あるいは外部信号による認識がある。切換希望が存在していない限り、マルチプロセッサシステムG60及びこれに伴う切換・比較ユニットG70は、状態G700のまま保持される。以下において切換希望とは、この特別なシステムで切換希望が識別表示されるのと同様に識別表示された切換条件の認識を意味している。
状態G700での保持は、移行線G810で図示されている。実行ユニットG10aにより切換希望が認識されると、切換・比較ユニットG70は移行線820を介して状態G710へと移行する。すなわち状態G710は、実行ユニットG10aが切換希望を認識し、実行ユニットG10bが同じく切換希望を認識するのを待機している状態を表している。実行ユニットG10bが切換希望を認識しなかった時は、切換・比較ユニットG70は状態G710のまま保持され、その様子は移行線G830で図示されている。
状態G710の時に実行ユニットG10bも同じく切換希望を認識すると、移行G840が行われる。それにより、切換・比較ユニットG70は状態G730になる。この状態は、両方の実行ユニットG10a、G10bが切換希望を認識した時の状況を表している。状態G730では、2つの実行ユニットG10a、G10bが互いに同期化される同期化方法が実施され、引き続いて比較モードで動作を行う。この工程中、切換・比較ユニットG70は状態G730のまま保持され、その様子は移行線G890で図示されている。
状態G700の時、最初に実行ユニットG10によって切換希望が認識された場合には、移行線G860を介して状態G720への切換が行われる。すなわち状態G720は、実行ユニットG10bが切換希望を認識し、実行ユニットG10aが同じく切換希望を認識するのを待機している状態を表している。実行ユニットG10aが切換希望を認識しなかった時は、切換・比較ユニットG70は状態G720のまま保持され、その様子は移行線G870で図示されている。状態G720の時に実行ユニットG10aも同じく切換希望を認識すると、移行G880が行われる。それにより、切換・比較ユニットは状態G730になる。状態G700の時に両方の実行ユニットG10a、G10bが同時に切換希望を認識した場合には、ただちに状態G730への移行が行われる。このケースは移行線G850である。
切換・比較ユニット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が開始される。
切換希望が認識されない限り、マルチプロセッサシステムG60は比較モードのままに保持され、その様子は移行線G910で図示されている。状態740の時に切換希望が認識されると、切換・比較ユニットは移行線G920を介して状態G700へと移される。すでに説明したとおり、状態G700ではシステムはパフォーマンスモードで作動する。そして、状態G740から状態G700へ移行する時のプログラムフローの分割は、上述したのと同じ方法で実施することができる。
図11には、2つの実行ユニットG410a、G410bならびに2つの割込みコントローラG420a、G420b、及びその内部に含まれる割込みマスキングレジスタG430a、G430bと、さまざまな割込みソース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は切換・比較ユニットG460のなかに配置されるが、切換希望認識部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である。比較器が最も単純な形態で図13に図示されている。この比較コンポーネントM500は、2つの入力信号M510及びM511を受けとることができ、これらの信号が同じかどうかを比較し、ここで説明しているコンテキストで言えば、特にビットごとに同じかどうかを比較する。同じである場合には、入力信号M510、M511の値が出力信号M520へ送られ、エラー信号M530は有効にならず、すなわち「良好」の状態を通知する。信号が同じでないことを比較コンポーネントが検知すると、エラー信号M530が有効になる。その後、任意選択で、信号M520を無効にすることができる。このことは、エラーが相応のシステムから外へ出ないという利点がある(「故障封じ込め」)。すなわち、実行ユニットの外部にある他のコンポーネントが、潜在的にエラーを含んだ信号による被害を受けることがない。ただし、信号M520を無効にする必要のないシステムも存在している。それは、例えばシステムレベルではフェールサイレンスしか求められていない場合に当てはまる。その場合には、例えばエラー信号を外部へ送ることができる。
この基本システムを前提としたうえで、数多くの実施形態が考えられる。まず最初に、コンポーネントM500をいわゆるTSCコンポーネント(totally self checking)として製作することができる。この場合、エラー信号M530は少なくとも2本の回線(「デュアルレール」)で外部へと送られ、内部の設計・エラー発見対策により、比較コンポーネントの考えられる各々のエラー発生事例でこの信号が正しい状態で存在するか、又は、明らかに正しくない状態で存在することが保証される。この時デュアルレール信号は2本の回線を介してバイナリー信号を提供し、エラーのない場合に両方の回線が互いに反転されるように提供するのが好ましい。本発明のシステムを適用する時の有利な1つの変形例は、このようなTSC比較器を使用することである。
2番目の種類の実施形態は、両方のパルスM510、M511(ないしM610、M611)がどの程度の同期性を有していなくてはならないかという点で、上記と区別することができる。考えられる1つの実施形態は、クロック単位での同期性を特徴としており、すなわち、データの比較を1つのクロックで行うことができる。
それぞれのインプットの間に一定の位相ずれがある時に、相応の信号を例えば半整数又は整数のクロック周期だけ遅延させる同期遅延素子を使用することによって、若干の変更が得られる。このような位相ずれは、共通原因故障、すなわち複数の処理ユニットが同時に同種の影響を受ける可能性がある故障原因を回避するために有用である。
そこで図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つ又はそれ以上のインプットがある場合には、これに対応する数の実施形態が考えられる。可能な実施形態の詳細な説明は、図20の説明の部分に含まれている。
実施形態の厳密な選択は、システム全体のさまざまな動作モードと組み合わせて行うのが好ましい。すなわち、複数の異なるパフォーマンスモード又は比較モードがある時には、これらを比較器の対応するモードと組み合わせるのが好ましい。
本発明のいくつかの部位では、比較器又はより一般的な投票素子/処理素子/分類素子を、無効化もしくは受動化することが必要又は有利である(以下においては便宜上常に比較器と呼ぶ)。そのためには数多くの方法がある。第1に、比較器が有効化又は無効化される信号を比較器に送ることができる。そのために、これを実行することができる追加のロジックが比較器に挿入される。さらに別の方法は、比較されるべきデータを比較器に供給しないことである。3番目の方法は、比較器のエラー信号をシステムレベルで無視することにある。さらには、エラー信号そのものを遮断することもできる。どの方法にも共通しているのは、潜在的に比較される2つ又はそれ以上のデータが異なっていても、それがシステム内部で何の役割も演じないことである。これが該当する時、比較器は受動的又は無効であるとみなされる。
以下においては、比較器と接続された切換器の実装、すなわち切換・比較ユニットG70の実装について考察する。このような実装は、これらが実行ユニットG10a、G10bとともに1つのチップ内部で製作されている場合に特に好都合である。
比較器及び切換器の各コンポーネントをまとめることにより、チップ内部に実装した時に、非常に小さいハードウェアオーバーヘッドしか生じない。従って実装の1つの有利な変形例は、両方の部品を1つのコンポーネントにまとめることである。このことは、少なくとも入力信号(アウトプット実行ユニット1、アウトプット実行ユニット2)と、少なくとも出力信号(アウトプット1、アウトプット2)と、論理アウトプット信号「アウトプット全体」(これは物理的にアウトプット1又はアウトプット2と一致していてよい)と、比較器とを備えるコンポーネントである。このコンポーネントはモードを切り換える能力を有しており、パフォーマンスモードのときには全ての信号を通過させ、比較モードのときには複数の信号を比較して、場合により通過させる。さらに、別の入力信号及び出力信号を追加すると好ましい。すなわち、検知されたエラーを通知するためのエラー信号、このコンポーネントで成立しているモードを通知するためのモード信号、及びコンポーネントに出入りする制御信号である。
1つの有利な実施例では、パフォーマンスモードのとき、2つ又はそれ以上の実行ユニットがマスタとしてプロセッサ内部のバスに接続される。比較ユニットは無効化されるか、又は、各実行ユニットの挙動が異なっている場合に、考えられる比較モードのうちの1つで生成されるエラー信号がマスキングされる。このことは、切換・比較ユニットがソフトウェアにとって透明であることを意味している。着目される比較モードでは、比較されるべき物理的な実行ユニットが論理的な実行ユニットとしてバスで処理され、すなわちマスタだけがバスに現れる。比較器のエラー信号は有効化される。そのために切換・比較ユニットは、1つを除く全ての実行ユニットをスイッチによってプロセッサ内部のバスから切り離し、この1つの論理的な実行ユニットの入力を複製して、比較モードに関与する全ての実行ユニットにこれらの入力を提供する。バスへ書込みをする時は、それぞれの出力が比較ユニットで比較され、同じであれば、これらのデータが既存の1つのアクセス部を介してバスへ書き込まれる。
図15と図16には、有利なコンポーネントM700(切換・比較ユニット、G70に相当)の原理的な挙動が説明されている。便宜上、この図面は2つの実行ユニットについてのみ描かれている。図15は比較モード、図16はパフォーマンスモードにおける各コンポーネントの状態をそれぞれ示している。これらのモードにおける異なるスイッチ位置は、制御部M760によってM700で具体化される。両方の実行ユニット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がある。これらの信号は本図では図示されていない。本発明のコンポーネントM800には、このコンポーネントのモードを設定するモードロジックM810がある。パフォーマンスモードでは、モードロジックがスイッチM831を閉じ、比較モードではこれを開く。さらにモードロジックは比較器M820にモード信号を送る。この具体化形態では比較器は常に比較を行うが、スイッチM830を制御するために、比較の結果とモード信号とを利用する。パフォーマンスモードでは、スイッチが常に閉じており、比較モードでは、エラーが発生していないときは常に閉じている。当然ながら、いったんエラーが確認された場合にも、相応のリセットが行われるまでスイッチを引き続き開いた状態に保つことができる。
図18には、切換・比較ユニットのさらに別の実施形態が示されている。この代替案は、さらに多くのスイッチを備えているものの、その代わりに、パフォーマンスモードのときに比較器を無効にするので、いっそう簡単に非同期性を取り扱うことができる。さらに、実行ユニットの両方の信号M940、M941が存在している。これらの信号は、この図面でもやはり図示されていない。本発明のコンポーネントM900には、このコンポーネントのモードを設定するモードロジックM910がある。パフォーマンスモードでは、モードロジックがスイッチM931を閉じ、スイッチM932、M933を開く。それにより、このモードでは比較コンポーネントM920にデータが供給されない。このことは、非同期が生じた場合にいっそう長いバッファ時間を可能にし、ないしは、1つの具体化形態ではいっそう小さいバッファ深度を可能にする。パフォーマンスモードでは、スイッチM930は常に閉じている。比較モードでは、コンポーネントM910はスイッチM932、M933を閉じて、スイッチM931の開放によるバスへの直接的なアクセスを遮断する。任意選択で、モードロジックM910は比較器M920にモードを通知することができる。比較モードでは、エラーが発生していない場合にはスイッチM930が閉じている。エラー発生時には、比較コンポーネントM920が、スイッチM930の開放によってバスへの信号M940の転送を遮断する。
上に説明した各図面では、モード又はエラー信号を外部に送り出すことが、コストを要することなく可能である。さらには、特に内部のモード状態を生起するために、さらに別の信号をコンポーネントに送ることが問題なく可能である。
つまり要約して言えば、このコンポーネントの有利な具体化形態は、出力信号をバス(例えばアドレス/データバス)に書き込むことができる複数の処理ユニットが存在することを特徴としている。重要なのは、実行ユニットの出力信号のうち少なくとも2つをコンポーネントが処理することができ(例えば比較し、あるいは場合により投票もしくは分類することができ)、コンポーネントが少なくとも1つのスイッチに介入することができ、このスイッチによって、少なくとも1つの直接的なバスアクセスが遮断されることである。このことは、実行ユニットがコンピュータのCPUである場合に特に有用である。さらに、介入可能なスイッチの状態が、計算ユニットの動作モードを特徴づけるのが好ましい。
コンポーネントがアドレス・データバスに信号を送ることができると、システム特性、特に可能な比較モードを特にうまく具体化することができる。これは、1つの実行ユニットの1つの出力信号の導通であるのが好ましい。別案として、このことは、異なる実行ユニットの異なる出力信号の処理の結果として行うこともできる。
例えばすでに図17、図18の各図面に関する説明で明らかとなっているように、システムにおいて、および(コンポーネントへの分割状態に応じて)各コンポーネントのうちの1つにおいて、モード情報を識別することができる。このモード情報は、具体化形態によっては、明らかに部分コンポーネントに存在することさえできる。1つの有利な具体化形態では、この信号をコンポーネントから導出して、システムの他の部分に提供することができる。
一般的なケースでは、本発明に基づく挙動を図21を参照して説明することができる。信号及びコンポーネントN100、N110、N120、N130、N140、N141、N142、N143、N14n、N160、N161、N162、N163、N16nは、図20と同じ意味を有している。これに加えて、モード信号N150及びエラー信号N170が本図には図示されている。任意選択のエラー信号は、エラー信号を集めるエラー回路ロジックN130によって生起されるものであり、個々のエラー信号を直接転送したものか、又はそこに含まれるエラー情報を束ねたものである。モード信号N150は任意選択であるが、このコンポーネント外部でのモード信号の利用は多くの個所で有利であり得る。切換ロジックN110の情報(すなわち図20の説明で述べた機能)と、処理ロジックの情報(すなわち出力信号ごとの、つまり関数値ごとの比較演算の決定)とを組み合わせたのがモード情報であり、モード情報がモードを決定する。この情報は、一般的なケースでは当然ながら多価であり、つまり1つの論理ビットだけで表すことはできない。理論上考えられる全てのモードが所与の具体化形態で有意義なわけではなく、許容されるモードの数を制限しておくのが好ましい。そしてモード信号は、関連するモード情報を外部へと運び出す。HWの具体化形態は、外部で目に見えるモード信号をコンフィギュレーションできるように構成されているのが好ましい。処理ロジックと切換ロジックをコンフィギュレーション可能に構成することも、同じく好ましい。これらのコンフィギュレーションが相互に調整されていると好ましい。別案として、モード信号の変更だけを外部に知らせるか、もしくは、モード信号の変更を補足的に外部に知らせることもできる。このことは、特にデュアル式のコンフィギュレーションで利点を有している。
このモード信号は防護されるのが好ましい。デュアルシステムでの1つの具体化形態が、一例として図17に示す具体化形態をベースとしたうえで、図19に示されている。ここでは、信号M850が切換・比較ユニットから導出される。デュアルシステムでは、この情報は論理的に1つのビットで表すことができる。そして、特にデュアルレール信号によって防護を行うことができる。一般的なケースでは、任意選択で反転された二重化によっても、同じく防護を行うことができる。別案として、特に内部で本質安全性をもって生起される、又はCRC(巡回冗長検査)もしくはECC(誤り訂正符合)を使用する、パリティを生起することもできる。
モード信号は、コンポーネントの外部で利用することができる。第1に、オペレーティングシステムの自己監視のためにモード信号を利用することができる。オペレーティングシステムは、SWの視点から見て切換の責任を負っており、システムがどのモードになっているかを常に知っているべきであり、また、そのモードにシステムを移すべきである。従ってこの信号のチェックを、防護のために利用することができる。このことは、まず第1に直接的に行うことができる。あるいは別案の方法は、タイマー又はその他の「独立した」ユニットを介して、オペレーティングシステムへの問い合わせの妥当性をこの信号で判断することである。
一般に、この信号は任意選択で、μC(あるいはより一般的な計算ユニット)の他のデータシンクで利用することもできる。例えばMPU(メモリ保護ユニット)は、特定の(特定の実行ユニットからの)メモリアクセスを特定のモードでしか許容しないようにプログラミングされていてよい。このとき、MPUとは、例えば特定のプログラム部分について特定のアドレス空間へのアクセスを禁止することによって、データ/アドレスバスへ許容されたアクセスだけが行われることを保証することができるユニットである。モード信号をMPUへ送り込み、このMPUを相応にコンフィギュレーション及びプログラミングし、このコンフィギュレーションデータとモード信号を評価することで、追加的な防護を行うことができる。モード信号がすでに監視のための十分な情報となっている場合、状況によっては、このことがプログラミングを簡素化する場合さえある。そうすれば、μCを初期化する時間に準静的なプログラミングをするだけで足りる。周辺装置ユニットについても同様のことが当てはまる。その場合にも、相応の周辺素子へのアクセスが特定のモードでしか許容されないアプリケーションが存在している。モード信号を周辺素子へ送り込み、周辺素子を相応にコンフィギュレーション及びプログラミングし、このコンフィギュレーションデータとモード信号を評価することで、追加的な防護を行うことができる。モード信号がすでにチェックのための十分な情報となっている場合、状況によっては、このことがプログラミングを簡素化する場合さえある。そうすれば、μCを初期化する時間に準静的なプログラミングをするだけで足りる。同様に、この信号の評価を割込みコントローラでも利用することができる。その場合、このような監視は安全性コンセプトの土台もしくは主要な構成要素をなすことができる。適当な実施とSWの構造化によって、着目されるアプリケーションにおける故障の種類全体の安全性コンセプトを、このモード信号可能を基礎として構成することができる。このことは、特にモード信号が適当な形態で、上に説明したように本質安全性を備えている場合に好ましい。さらにこの場合、着目するコンポーネントが、モード信号と自分自身へのアクセスとの間に不一致を検知した場合にエラー信号を送信する手段、又は遮断経路を操作する手段を有していると好ましい。
さらに別の重要な利用目的は、計算ユニットの外部でモード信号を評価することである。1つの直接的な用途は、減分式のウォッチドッグで評価をすることにある。このような「ウォッチドッグ」は、マイクロプロセッサによって整数の値にセットすることができる少なくとも1つの(カウンタ)レジスタで構成されている。このようなレジスタがセットされた後、「ウォッチドッグ」がレジスタの値を定まった周期で自動的に減分していく。レジスタの値がゼロになると、又はオーバーフローが発生すると、「ウォッチドッグ」がエラー信号を生成する。エラー信号が生成されないようにするには、マイクロプロセッサがレジスタの値を適時に再びリセットしなければならない。それにより、マイクロプロセッサがソフトウェアを正しく実行しているかどうかを、(一定の限度内で)チェックすることができる。マイクロプロセッサがソフトウェアを正しく実行しなくなると、この場合には「ウォッチドッグ」も正しく操作されておらず、そのために「ウォッチドッグ」によってエラー信号が生成される。ハードウェアとデータ構造の完全性を、比較モードの時に高い信頼度でチェックすることができるが、そのためには、マイクロプロセッサが規則的に比較モードへ再び復帰することが保証されていなければならない。従って、ここで説明している「ウォッチドッグ」の役割は、定義された期間内に最早ウォッチドッグがリセットされなかったときにエラー信号を生成するだけでなく、定義された期間内にマイクロプロセッサが最早定義された比較モードへ復帰しなかったときにも、エラー信号を生成することにある。例えば、モード信号が、定義された計算ユニットの比較モードを表示した時にだけ、「ウォッチドッグ」をリセットすることができる。それにより、計算ユニットが規則的にこのモードへ復帰することが保証される。この代替又は補足として、マイクロプロセッサで特定の割込みが惹起された時に初めて、「ウォッチドッグ」のレジスタの値が減分される。そのためには、μCの外部割込み信号がウォッチドッグにも結合されなくてはならない。ウォッチドッグには、μCのどの割込みが定義された比較モードに切り換わるかが記憶されている。このような割込みがかけられると、ウォッチドッグはただちに「巻き戻され」、正しいモード信号の存在によってリセットされる。
ごく一般的に、特に安全性コンセプトに適用する場合には、μC外部のソースでモード信号を評価するのが有用である。本発明で説明しているようなコンピュータでの、ソフトウェアの正しい進行の確保に関して重要な点は、許容されるさまざまなモード間での正しい切換である。まず切換能力そのものがチェックされ、さらに、正しい切換がチェックされるのが望ましい。上に説明したように、特別なモードが規則的に成立するかどうかに注目することもできる。モード信号そのものが本質安全性を備える構成となっている場合には、常にこのような方法が特に好ましい。
1つの可能性は、モード信号をASIC又はその他のμCへ送ることにある。このようなASIC又はその他のμCは、タイマーと単純なロジックを介して、少なくとも次のような事項をこの信号を用いてチェックすることができる:
計算ユニットは十分な頻度で(例えば遅くとも1000μsごと)1つ又は複数の定義されたモードに変わっているか?
何らかのモードへ切り換わる時、特定の信号が常に出力されているか?
計算ユニットは規則的に1つのモードから他のモードになっているか?
各モードの順序の特定の単純なパターンが有効になっているか?
一般的な時間的パターンが有効になっているか(例えばモード1では平均<70%、モード2では<50%)。
場合により追加の信号の利用によって補足される、モード信号の論理的、時間的な特性の何らかの組み合わせ。
図22には、上記の範囲をさらに超える提案の基本コンフィギュレーションが説明されている。このようなパートナーASIC又はパートナーμCと、本発明を備えている着目する計算ユニットとの間で、特別な照会応答サイクルが行われる。N300は、このようなモード信号を出力することができる計算ユニットである。これは、例えば複数の実行ユニットと、このモード信号を生起することができる別のコンポーネントとを備えるμCであってよい。この別のコンポーネントは、例えば図19又は図21に示すように具体化されていてよい。N300は、この信号N310をパートナー(例えば他の計算ユニット、他のμC又はASIC)N300へ送る。パートナーは、信号N320によってN300に照会を行うことができ、N300は、N321によってこれに応答しなければならない。このような照会は計算タスクであってよく、その正しい結果が、N321を介して、定義された時間インターバル内にN300から供給される。N330はN300に関わりなく、この結果の正しさを検査する。この結果は例えばN330に保存されるか、又はN330は結果を自ら算出することができる。正しくない値が検知されると、エラーが生じているものと認識される。ここで提案される照会応答通信の特別な点は、応答と並行してモード信号が観察されることである。照会は、N300による応答のために、この特定のモードを成立させなくてはならないように行うのが好ましい。それにより、全てのモード切換に機能性があり、プログラム進行のなかで意図されているモード切換が実行されていることを、高い信頼度でチェックすることができる。これは特にシステムが初期化される時、あるいは動作中にでも、安全性コンセプトの主要な要素としての役目を果たすことができる。
この理念のさらに別の用途は、アクチュエータ制御部でモード信号を評価することにある。今日、自動車分野の多くの用途では、いわゆるインテリジェントアクチュエータが用いられる傾向がある。これは、アクチュエータ調節コマンドを受信し、そしてこの調節コマンドが遂行されるようにアクチュエータを制御するのに十分な、最低限の範囲の電子装置を備えているアクチュエータである。
この基本的理念が図23に示されている。本発明を備えている計算ユニットN400が、接続部N420を介して、(インテリジェント)アクチュエータ又はアクチュエータ制御部N430に調節コマンドを送る。これと並行して計算ユニットは、接続部N410を介して、モード信号をこのアクチュエータに送る。アクチュエータN430は、モード信号を参照して、制御が許容されているかどうかを検査し、任意選択で、信号N440を通じてエラー状態を送り返す。制御にエラーが含まれている時は、システム内部でクリティカルでないフェールサイレンス状態をとる。
Claims (11)
- 少なくとも2つの実行ユニットを備えるコンピュータシステムで切換をする方法であって、
少なくとも2つの動作モードの間で切換が行われ、
第1の動作モードは比較モードに相当するとともに、
第2の動作モードはパフォーマンスモードに相当している方法において、
各実行ユニットをコンピュータシステムの内部バスと接続可能であり、
パフォーマンスモードでは少なくとも2つの実行ユニットが内部バスと接続され、
パフォーマンスモードから比較モードへの切換時には少なくとも1つの実行ユニットが、切換器により制御されるスイッチによって内部バスから切り離されることを特徴とする方法。 - さらに比較器が設けられており、比較モードでは比較器が有効になることを特徴とする、請求項1に記載の方法。
- さらに比較器が設けられており、パフォーマンスモードでは比較器が無効になることを特徴とする、請求項1に記載の方法。
- 前記データを比較して一致していないときは、エラー信号を出力する比較器が設けられており、前記エラー信号はパフォーマンスモードではマスキングされることを特徴とする、請求項1に記載の方法。
- 比較モードのとき、各々のデータが比較される少なくとも2つの実行ユニットが、当該モードのときに内部バスの論理実行ユニットとして取り扱われることを特徴とする、請求項1に記載の方法。
- 比較モードのとき、少なくとも1つの実行ユニットが内部バスから切り離され、切り離されていない少なくとも1つの実行ユニットの入力データが二重化され、切り離されている少なくとも1つの実行ユニットに当該データが供給されることを特徴とする、請求項1に記載の方法。
- 比較モードのとき、1つの実行ユニットを除いて実行ユニットがすべて内部バスから切り離され、切り離されていない実行ユニットの入力データが二重化され、切り離されているすべての実行ユニットに当該データが供給されることを特徴とする、請求項1に記載の方法。
- 少なくとも2つの実行ユニットを備えるコンピュータシステムで切換をする装置であって、少なくとも2つの動作モードの間で切換をする切換器が設けられており、第1の動作モードは比較モードに相当するとともに、第2の動作モードはパフォーマンスモードに相当している装置において、
各実行ユニットをコンピュータシステムの内部バスと接続可能であり、パフォーマンスモードでは各実行ユニットが内部バスと接続されており、比較モードでは1つの実行ユニットだけが内部バスと接続されており、少なくとも2つ目の実行ユニットは切換器により制御されるスイッチによって内部バスから切り離されることを特徴とする装置。 - さらに、パフォーマンスモードのとき、無効になる比較器が設けられていることを特徴とする、請求項8に記載の装置。
- さらに、比較モードのとき、有効になる比較器が設けられていることを特徴とする、請求項8に記載の装置。
- 切換器と比較器が1つのコンポーネントで切換・比較ユニットとしてまとめられていることを特徴とする、請求項9または10に記載の装置。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
DE200410051950 DE102004051950A1 (de) | 2004-10-25 | 2004-10-25 | Verfahren und Vorrichtung zur Taktumschaltung bei einem Mehrprozessorsystem |
DE200410051952 DE102004051952A1 (de) | 2004-10-25 | 2004-10-25 | Verfahren zur Datenverteilung und Datenverteilungseinheit in einem Mehrprozessorsystem |
DE200410051964 DE102004051964A1 (de) | 2004-10-25 | 2004-10-25 | Verfahren und Vorrichtung zur Überwachung einer Speichereinheit in einem Mehrprozessorsystem |
DE200410051992 DE102004051992A1 (de) | 2004-10-25 | 2004-10-25 | Verfahren und Vorrichtung zur Verzögerung von Zugriffen auf Daten und/oder Befehle eines Mehrprozessorsystems |
DE200410051937 DE102004051937A1 (de) | 2004-10-25 | 2004-10-25 | Verfahren und Vorrichtung zur Synchronisierung in einem Mehrprozessorsystem |
DE200510037229 DE102005037229A1 (de) | 2005-08-08 | 2005-08-08 | Verfahren und Vorrichtung zur Umschaltung bei einem Rechnersystem mit wenigstens zwei Ausführungseinheiten |
PCT/EP2005/055495 WO2006045773A2 (de) | 2004-10-25 | 2005-10-25 | Vorrichtung und verfahren zur modusumschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2008518296A true JP2008518296A (ja) | 2008-05-29 |
Family
ID=36046411
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007537288A Pending JP2008518296A (ja) | 2004-10-25 | 2005-10-25 | 少なくとも2つの実行ユニットを備えるコンピュータシステムで切換をする方法及び装置 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20070255875A1 (ja) |
EP (1) | EP1807764A2 (ja) |
JP (1) | JP2008518296A (ja) |
KR (1) | KR20070083760A (ja) |
RU (1) | RU2007119317A (ja) |
WO (1) | WO2006045773A2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010126012A (ja) * | 2008-11-28 | 2010-06-10 | Hitachi Automotive Systems Ltd | 車両制御用マルチコアシステムまたは内燃機関の制御装置 |
JP2015510468A (ja) * | 2012-01-27 | 2015-04-09 | シーメンス アクチエンゲゼルシヤフトSiemens A | 殊に車両内の、高い可用性を有する、少なくとも2つのデータ処理ユニットの作動方法および機械の作動装置 |
US9891981B2 (en) | 2012-06-25 | 2018-02-13 | Fujitsu Limited | Information processing apparatus and switch failure detection method |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006045781A2 (de) * | 2004-10-25 | 2006-05-04 | Robert Bosch Gmbh | Verfahren und vorrichtung zur umschaltung bei einem rechnersystem mit wenigstens zwei ausführungseinheiten |
DE102005037230A1 (de) * | 2005-08-08 | 2007-02-15 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Überwachung von Funktionen eines Rechnersystems |
DE102006048169A1 (de) * | 2006-10-10 | 2008-04-17 | Robert Bosch Gmbh | Verfahren zur Überwachung einer Funktionsfähigkeit einer Steuerung |
CN101580073B (zh) * | 2008-05-12 | 2012-01-25 | 卡斯柯信号有限公司 | 计算机联锁***码位级冗余方法 |
US8375250B2 (en) * | 2009-03-04 | 2013-02-12 | Infineon Technologies Ag | System and method for testing a module |
DE102011086530A1 (de) * | 2010-11-19 | 2012-05-24 | Continental Teves Ag & Co. Ohg | Mikroprozessorsystem mit fehlertoleranter Architektur |
JP5796311B2 (ja) | 2011-03-15 | 2015-10-21 | オムロン株式会社 | 制御装置およびシステムプログラム |
JP6693400B2 (ja) * | 2016-12-06 | 2020-05-13 | 株式会社デンソー | 車両用制御システム |
US10635831B1 (en) * | 2018-01-06 | 2020-04-28 | Ralph Crittenden Moore | Method to achieve better security using a memory protection unit |
Family Cites Families (12)
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 |
US4049957A (en) * | 1971-06-23 | 1977-09-20 | Hitachi, Ltd. | Dual computer system |
US4029952A (en) * | 1973-11-06 | 1977-06-14 | Westinghouse Electric Corporation | Electric power plant having a multiple computer system for redundant control of turbine and steam generator operation |
US5428769A (en) * | 1992-03-31 | 1995-06-27 | The Dow Chemical Company | Process control interface system having triply redundant remote field units |
US5544077A (en) * | 1994-01-19 | 1996-08-06 | International Business Machines Corporation | High availability data processing system and method using finite state machines |
US5537583A (en) * | 1994-10-11 | 1996-07-16 | The Boeing Company | Method and apparatus for a fault tolerant clock with dynamic reconfiguration |
AU1793999A (en) * | 1997-12-11 | 1999-06-28 | Telefonaktiebolaget Lm Ericsson (Publ) | Redundancy termination for dynamic fault isolation |
DE19815263C2 (de) * | 1998-04-04 | 2002-03-28 | Astrium Gmbh | Vorrichtung zur fehlertoleranten Ausführung von Programmen |
US6550017B1 (en) * | 1999-06-29 | 2003-04-15 | Sun Microsystems, Inc. | System and method of monitoring a distributed fault tolerant computer system |
US6615366B1 (en) * | 1999-12-21 | 2003-09-02 | Intel Corporation | Microprocessor with dual execution core operable in high reliability mode |
US6550018B1 (en) * | 2000-02-18 | 2003-04-15 | The University Of Akron | Hybrid multiple redundant computer system |
US6772368B2 (en) * | 2000-12-11 | 2004-08-03 | International Business Machines Corporation | Multiprocessor with pair-wise high reliability mode, and method therefore |
-
2005
- 2005-10-25 WO PCT/EP2005/055495 patent/WO2006045773A2/de active Application Filing
- 2005-10-25 KR KR1020077009145A patent/KR20070083760A/ko not_active Application Discontinuation
- 2005-10-25 RU RU2007119317/09A patent/RU2007119317A/ru not_active Application Discontinuation
- 2005-10-25 JP JP2007537288A patent/JP2008518296A/ja active Pending
- 2005-10-25 US US11/666,409 patent/US20070255875A1/en not_active Abandoned
- 2005-10-25 EP EP05803464A patent/EP1807764A2/de not_active Ceased
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010126012A (ja) * | 2008-11-28 | 2010-06-10 | Hitachi Automotive Systems Ltd | 車両制御用マルチコアシステムまたは内燃機関の制御装置 |
JP4709268B2 (ja) * | 2008-11-28 | 2011-06-22 | 日立オートモティブシステムズ株式会社 | 車両制御用マルチコアシステムまたは内燃機関の制御装置 |
US8417990B2 (en) | 2008-11-28 | 2013-04-09 | Hitachi Automotive Systems, Ltd. | Multi-core processing system for vehicle control or an internal combustion engine controller |
JP2015510468A (ja) * | 2012-01-27 | 2015-04-09 | シーメンス アクチエンゲゼルシヤフトSiemens A | 殊に車両内の、高い可用性を有する、少なくとも2つのデータ処理ユニットの作動方法および機械の作動装置 |
US9891688B2 (en) | 2012-01-27 | 2018-02-13 | Siemens Aktiengesellschaft | Method for operating at least two data processing units with high availability, in particular in a vehicle, and device for operating a machine |
US9891981B2 (en) | 2012-06-25 | 2018-02-13 | Fujitsu Limited | Information processing apparatus and switch failure detection method |
Also Published As
Publication number | Publication date |
---|---|
WO2006045773A3 (de) | 2006-06-29 |
WO2006045773A2 (de) | 2006-05-04 |
KR20070083760A (ko) | 2007-08-24 |
RU2007119317A (ru) | 2008-12-10 |
EP1807764A2 (de) | 2007-07-18 |
US20070255875A1 (en) | 2007-11-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2008518296A (ja) | 少なくとも2つの実行ユニットを備えるコンピュータシステムで切換をする方法及び装置 | |
JP5053854B2 (ja) | 少なくとも2つの実施ユニットを有する計算機システムにおける切替え方法および装置 | |
KR100994039B1 (ko) | 복수의 컴포넌트를 구비한 컴퓨터 시스템에서 신호를생성하기 위한 방법 및 장치 | |
JP2008518339A (ja) | 少なくとも2つの実施ユニットを有する計算機において切り替える装置および方法 | |
CN100520730C (zh) | 在具有至少两个执行单元的计算机***中对程序代码的执行进行分离的方法和设备 | |
JP5199088B2 (ja) | 少なくとも2つの命令実行部および1つの比較ユニットを備えたコンピュータシステムを制御する方法および装置 | |
JP2008518297A (ja) | 少なくとも2つの実行ユニットを有する計算機システムで切替を行うための装置および方法 | |
JP2008518299A (ja) | 少なくとも2つの実行ユニットを有する計算機システムの信号を評価するための方法および装置 | |
JP2000040073A (ja) | マルチプロセッサ・コンピュ―タ・システムのためのi/o処理 | |
JP2000040076A (ja) | 多重コンピュ―タ・プロセスの制御 | |
JP2008518300A (ja) | 少なくとも2つの実行ユニットを備えるコンピュータシステムにおけるプログラムコードの処理分割方法および装置 | |
JP2008518301A (ja) | 少なくとも2つの実行ユニットを有する計算機システムで切替を行うための方法および装置 | |
JP5341928B2 (ja) | 時間的に分離した冗長プロセッサの実行を使用しての周辺機器への読み書き | |
US20080313384A1 (en) | Method and Device for Separating the Processing of Program Code in a Computer System Having at Least Two Execution Units | |
JP2008518340A (ja) | 少なくとも2つの実施ユニットを有する計算機システムにおいて切り替える方法および装置 | |
CN101048746A (zh) | 用于评价具有至少两个执行单元的计算机***的信号的方法和设备 | |
JP2009505179A (ja) | 少なくとも2つの実行ユニットを有する計算機システムにおいてレジスタのマーキングによってスタート状態を定める方法および装置 | |
RU2384877C2 (ru) | Способ и устройство для генерирования сигнала в вычислительной системе, включающей в себя несколько компонентов | |
JP2009506408A (ja) | 複数の実行ユニットを有する計算機システム内のプロセスを分析する方法および装置 | |
JP2009505187A (ja) | 少なくとも2つの命令実行部を備えたコンピュータシステムにおいてレジスタセットの切り替えにより初期状態を設定する方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20090428 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20091208 |