少なくとも2つの処理ユニットを有する計算機システムにおける駆動モードの切り替え方法、及び駆動モード切り替え装置
【課題】処理ユニットが非同期である場合に同期化することが可能な計算機システムにおける駆動モードの切り替え方法、及びその装置を提供すること。
【解決手段】少なくとも2つの処理ユニットを有し、前記少なくとも2つの処理ユニットが出力した情報を比較し、前記少なくとも2つの処理ユニットの駆動モードを切り替える手段を有する計算機システムにおける駆動モードの切り替え方法であって、比較モードに相当する第1の駆動モードと、パフォーマンスモードに相当する第2の駆動モードとが含まれる少なくとも2つの駆動モードのうち、前記比較モードで情報が比較され、前記少なくとも2つの処理ユニットが非同期である場合に、少なくとも1つの前記処理ユニットのインターラプト入力に同期化信号が印加されることを特徴とする、計算機システムにおける駆動モードの切り替え方法が提供される。
【解決手段】少なくとも2つの処理ユニットを有し、前記少なくとも2つの処理ユニットが出力した情報を比較し、前記少なくとも2つの処理ユニットの駆動モードを切り替える手段を有する計算機システムにおける駆動モードの切り替え方法であって、比較モードに相当する第1の駆動モードと、パフォーマンスモードに相当する第2の駆動モードとが含まれる少なくとも2つの駆動モードのうち、前記比較モードで情報が比較され、前記少なくとも2つの処理ユニットが非同期である場合に、少なくとも1つの前記処理ユニットのインターラプト入力に同期化信号が印加されることを特徴とする、計算機システムにおける駆動モードの切り替え方法が提供される。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、少なくとも2つの処理ユニットを有する計算機システムにおける駆動モードの切り替え方法、及び駆動モード切り替え装置に関する。
【背景技術】
【0002】
比較モードにおいてエラーを認識する方法が、Wo01/46806A1に記載されている。その方法によると、データは、2つの処理ユニット(ALU)を有する装置内で並列に処理されて比較される。そのとき、エラー(ソフトウェアエラー、過渡的エラー)が発生すると、2つのALUは、エラーデータを除去し、新たに冗長な処理(部分的に繰り返された処理)を行うことができるようになるまで、互いに独立して働くことができる。これは、2つのALUが互いに同期して駆動し、かつ、出力される結果がクロックに同期して正しく比較できることを前提としている。
【0003】
従来より、冗長に処理を実行してエラー認識をするための比較モードと、より高い演算パワーの能力を得るためのパフォーマンスモードと、の間で駆動モードを切り替えることが可能な駆動モードの切り替え方法が知られている。この方法によると、複数の処理ユニットは、比較モードにおいて相互に同期されていることが前提とされている。そのため、各処理ユニットの出力結果をメモリに書き込む際、結果データを互いに比較可能にするために2つの処理ユニットが停止可能であり、かつ、クロックが正しく同期して働くことが必要とされる。その結果、ハードウェアの処理を介入する必要が生じるため、これを低減又は解消するための種々の解決方法が提案されている。
【0004】
例えば、下記の特許文献1(EP0969373A2)を参照すると、冗長に働く複数の処理ユニット又はこれを備える装置から出力される結果の比較を、例えば、複数の処理ユニットが互いに非同期で駆動する場合(つまり、同クロックではない場合)、或いは、未知のクロックオフセットをもって働く場合でも保証するための方法が開示されている。
【0005】
航空機産業の技術に鑑みると、標準的な複数の計算機を使用し、その出力を多数決によって処理する方法が用いられる。つまり、安全上重要なアクションを作動させるための方法として投票システムが知られている。また、インター処理ユニットとインターコントロールユニット通信とを互いに組み合わせ、高度の冗長性を有し、エラーが1つだけの場合に限らず、エラーが複数の場合であっても、システムが作業能力を維持することが可能なFMEシステムが知られている。このシステムは、宇宙飛行に利用するためにDASAによって開発された(例えば、下記の非特許文献1を参照)。このシステムは、ビザンチンエラー(即ち、すべてのコンポーネントが等しい情報を得るのではなく、陰謀を含む「故意に」異なる誤った情報が種々のコンポーネントに分配される性質の悪いエラー)も許容することができる。
【0006】
しかし、この種のシステムは、製造に掛かる手間とコストが非常に高いため、経済的な理由から極めて僅かな個数しか製造されず、特にクリティカルなシステムにだけ適用される。一方で、多数のシステムを製造することが可能であり、かつ、切り替え可能性を有するシステムは知られていない。
【0007】
【特許文献1】欧州特許出願公開第0969373号明細書
【特許文献2】国際公開第01/46806号パンフレット
【非特許文献1】Urban et al, “A survivable avionics system for space applications” ,Int. Symposium of Fault−tolerant Computing, FTCS−28(1998), pp.372−381
【発明の開示】
【発明が解決しようとする課題】
【0008】
そこで、本発明が解決しようとする課題は、少なくとも2つの処理ユニットに関する駆動モードを切り替えることを可能にし、各処理ユニットのハードウェア的な構造に介入することが不要であり、かつ、その目的のために付加的な信号を必要としない切り替え手段、及び比較手段を提供することにある。
【0009】
また、比較モードにおいて、各処理ユニットから出力されるデジタル、又はアナログの信号を相互に比較することが可能であることが好ましい。さらに、各処理ユニットが各々のクロック信号で駆動され、相互に非同期で駆動する場合でも、その比較処理が可能であることが好ましい。そして、ハードウェアの介入をせずに同期化することを可能にする手段及び方法を提供することも課題である。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明のある観点によれば、好ましくは、少なくとも2つの処理ユニット、切り替え手段及び比較手段を有する計算機システムにおいて切り替える方法が使用され、その場合に少なくとも2つの駆動モードの間で切り替えられ、第1の駆動モードが比較モードに、第2の駆動モードがパフォーマンスモードに相当し、その場合に比較モードにおいて情報が比較される、この方法は、比較モードにおいて少なくとも2つの処理ユニットが非同期である場合に、処理ユニットの少なくとも1つのもののインターラプト入力に同期化信号が印加されることを特徴としている。
【0011】
好ましくは、同期化信号が、遅延信号、特にウェイト信号である、方法が使用される。好ましくは、同期化信号によって少なくとも1つの処理ユニットが、もはや情報を処理しないように促される、方法が使用される。好ましくは、少なくとも1つの処理ユニットが予め定めることのできる時間の間、もはや情報を処理しないように促される、方法が使用される。
【0012】
好ましくは、同期化信号が少なくとも1つのインターラプト信号に対して、高い優先順位を有している、方法が使用される。好ましくは、同期化信号がすべてのインターラプト信号に対して、最高の優先順位を有している、方法が使用される。好ましくは、同期化信号によって少なくとも1つの処理ユニットが、インターラプトルーチンを処理するように促される、方法が使用される。
【0013】
好ましくは、少なくとも1つのバッファメモリが設けられており、比較モードにおいて比較すべき情報の少なくとも1つが、同期化信号に依存する時間の間バッファメモリに一時記憶される、方法が使用される。
【0014】
好ましくは、情報の少なくとも1つが一時記憶される期間から、非同期情報、特にタイムエラーを求めることができる、方法が使用される。好ましくは、バッファメモリにおいて、バッファメモリ内に幾つの情報があるか、を表示する、メモリの充填状態を求めることができる、方法が使用される。
【0015】
好ましくは、時間検出手段、特に計数素子が設けられており、その場合に時間値が求められて、それが予め定めることのできる最大の時間値と比較されることによって、タイムエラーが求められる、方法が使用される。好ましくは、求められた充填状態が、予め定めることのできる最大の充填状態と比較されることによって、非同期情報が求められる、方法が使用される。
【0016】
好ましくは、次の出力データが比較されるべきである、という設定が、比較手段によって行われる、方法が使用される。好ましくは、比較されるべきデータに識別子が対応づけられ、その識別子によって比較が作動される、方法が使用される。
【0017】
また、上記課題を解決するために、本発明の別の観点によれば、好ましくは、少なくとも2つの処理ユニットを有する計算機システムにおいて切り替える装置が使用され、その場合に装置が切り替え手段と比較手段とを有しており、少なくとも2つの駆動モードの間で切り替えられ、第1の駆動モードが比較モードに、第2の駆動モードがパフォーマンスモードに相当し、その場合に比較モードにおいて情報が比較される、この装置は、比較モードにおいて少なくとも2つの処理ユニットが非同期である場合に、処理ユニットの少なくとも1つのもののインターラプト入力に同期化信号が印加されるように形成されていることを特徴としている。
【0018】
好ましくは、比較手段と切り替え手段が構造的に、処理ユニットに対して外部に設けられている、装置が使用される。好ましくは、少なくとも1つのバッファメモリが設けられている、装置が使用される。好ましくは、バッファメモリがFIFOメモリである、装置が使用される。
【0019】
好ましくは、各処理ユニットにバッファメモリが対応づけられている、装置が使用される。好ましくは、各処理ユニットにバッファメモリ、特にFIFOメモリが対応づけられている、装置が使用される。
【0020】
好ましくは、情報の少なくとも1つが一時記憶される、予め定めることのできる期間及び/又は求めることのできる期間から、非同期情報、特にタイムエラーを求めるように形成された手段、特に計数素子が設けられている、装置が使用される。好ましくは、バッファメモリにおいて、バッファメモリ内に幾つの情報があるか、を表示する、メモリの充填状態を求めるように形成された手段が設けられている、装置が使用される。
【0021】
好ましくは、手段が、求められた充填状態が予め定めることのできる最大の充填状態と比較されることによって、非同期情報を求めるように形成されている、装置が使用される。好ましくは、非同期情報に従って同期化情報を発生させるように形成された、同期化手段が設けられている、装置が使用される。好ましくは、非同期情報を処理するように形成された、監視手段が設けられている、装置が使用される。
【0022】
好ましくは、監視手段が、計算機システムに対して外部の監視手段、特にウォッチドッグである、装置が使用される。他の利点と好ましい形態が、請求項の特徴と明細書から明らかにされる。
【発明の効果】
【0023】
以上説明したように本発明によれば、少なくとも2つの処理ユニットに関する駆動モードを切り替えることを可能にする。そのために、各処理ユニットのハードウェア的な構造に介入することが不要であり、かつ、その目的のために付加的な信号を必要としない。
【発明を実施するための最良の形態】
【0024】
以下では、実行ユニット、又は処理ユニットのことをプロセッサ、コア、中央処理装置(CPU)、FPU(Floating Point Unit)、DPS(Digitaler Signalprozessor)、コプロセッサ、又はALU(Arithmetic logical Unit)と称することがある。
【0025】
以下では、2つ以上の処理ユニットを有するシステムが考察される。原則的に、安全上重要なシステム内で各処理ユニットに分散して可能な限り多くの課題を与えることにより、処理能力を向上させる必要がある場合にこの種のリソースを使用する可能性がある。一方、複数の処理ユニットに同一の課題を与えて、結果が等しくない場合にエラーとし、そのエラーを認識することによって安全性を高めるべく、リソースの幾つかを互いに冗長に使用することもできる。
【0026】
幾つの処理ユニットがあるかに応じて複数の駆動モードを考えることができる。2つの処理ユニットを有するシステム(2システム)においては、上述したように「比較」と「パフォーマンス」の2つのモードを実現することが可能である。3つの処理ユニットを有するシステム(3システム)においては、3つの処理ユニットすべてが並列に作業する純粋なパフォーマンスモード、及び3つの処理ユニットすべてが冗長に計算し、かつ、その結果が比較される純粋な比較モードの他、3−2投票モードも実現される。この3−2投票モードとは、3つすべての処理ユニットが冗長に同じ計算を実行し、その出力結果を多数決するのである。さらに、これらの駆動モードの要素がミックスされた駆動モードも実現可能である。例えば、2つの処理ユニットが互いに冗長に計算した結果を比較し、第3の処理ユニットは、他の課題を並列に処理する駆動モードも可能である。4以上の処理ユニットを有するシステムにおいては、さらに他の組合わせを有する駆動モードが考えられる。
【0027】
しかし、ここで解決すべき課題は、システムに含まれる複数の処理ユニットに対し、(例えば、同期化のために)各処理ユニットの既存の構造へ介入することなしに、駆動において可変に使用することを可能にすることである。例えば、各処理ユニットが専用のクロックで駆動可能であり、比較処理のために実行する同じ課題の処理を互いに非同期で処理できるようにすることである。
【0028】
その課題の解決手段は、普遍的で広く使用できる構成により形成された手段(例えば、IP)により実現される。その手段は、事前に処理ユニットをオフにすることなしに、任意の時点で駆動モード(例えば、比較モード、パフォーマンスモード、又は投票モード)の切り替えを可能にし、互いに非同期のデータフローの比較、又は投票を管理することができる。また、その手段は、チップにより形成され、又は少なくとも1つの処理ユニットと共にチップ上に集積して形成されうる。さらに、そのチップが1片のシリコンから形成されてもよいが、別々のモジュールから形成されることも可能である。
【0029】
また、異なる処理ユニット間の同期を保証するために、個々の処理ユニットが継続的に進行させるプログラム処理を阻止する信号(又は一時停止させる信号)が必要である。そのため、通常、ウェイト(WAIT)信号が利用される。なお、ウェイト信号を使用しない場合でも、その実行ユニットは、インターラプトを介して同期させることもできる。そのため、同期化信号(例えば、図2の信号M140)は、ウェイト入力へ案内されずにインターラプトへ印加される。なお、同期のためのインターラプトは、ノーマルな作業方法を中断するため、ノーマルな作業方法に関する処理プログラムに対し、そして、他のインターラプトに対して、十分に高い優先順位を有する必要がある。
【0030】
そのため、付属のインターラプトルーチンは、中断されたプログラム内へ再びジャンプバックする前に、所定の数のNOP(データへの作用なしの空指令)を実施し、それによって処理プログラムのそれ以降の処理を遅延させる。場合によっては、ノーマルなプログラム処理をインターラプトによって損なわないようにするために、インターラプトルーチン内で最初と最後にさらに通常のメモリ操作が行われなければならない。
【0031】
このプロセスは、同期化が形成される(例えば、他の処理ユニットが予測される比較データを供給する)までの期間、続行される。しかし、この方法を用いると、正確なクロック同期性と他の処理ユニットに対する同位相性とが条件付きでしか保証されない。従って、同期化のためにインターラプト信号を利用する場合には、比較すべきデータを、それが比較される前に、所定の記憶手段(UVE)内に中間記憶することが推奨される。
【0032】
本実施形態の利点は、経済的に提供可能な任意の標準構造を有するハードウェア資源を使用できることである。というのは、付加的な信号を必要とせず(ハードウェア構造への介入なし)、例えば、これらのコンポーネントの直接アクターの駆動に使用される任意の出力信号を監視することができるからである。この方法は、従来技術に基づく比較処理によっては直接検査することができなかったDACやPWMのような変換器構造の検査も、含んでいる。
【0033】
個々の課題、又はSWタスクのために検査が必要とされない限りにおいて、様々なタスクが種々の処理ユニットに分配されることで、パフォーマンスモードへの切り替えも可能である。
【0034】
他の利点は、比較モード、又は投票モードにおいて、すべてのデータを比較する必要がないことである。比較、又は投票すべきデータのみが切り替えユニット内、又は比較ユニット内で互いに同期される。データの選択は、切り替え及び比較ユニットの所望の応答によって可変(プログラミング可能)であり、任意の処理ユニットアーキテクチャ及び適用に適合させることができる。それによって様々なμC(マイクロコントローラ)又はソフトウェア部分の使用も、容易に可能である。というのは、有意義な方法で比較することのできる結果のみが、実際にも比較されるからである。
【0035】
さらに、それによってメモリ(例えば、外部のメモリ)へのアクセス、又は、外部のI/Oモジュールの駆動を監視することができる。内部の信号は、ソフトウェア制御される切り替えモジュールへの付加的な出力を介して、外部のデータ及び/又はアドレスバス上で検査することができる。
【0036】
例えば、比較操作のためのすべての制御信号は、プログラミング可能な切り替え及び投票ユニット内で生成され、比較もそこで行われることが好ましい。出力が互いに比較される処理ユニット(例えば、プロセッサ)は、ソフトウェアエラーを検出するために、同一のプログラム、二重化されたプログラム(これが付加的に、メモリアクセスの際のエラーの認識を可能にする)、又は多様化されたプログラムを利用することができる。その場合、処理ユニットによって準備されたすべての信号を互いに比較する必要はなく、識別子(アドレス信号、又は制御信号)を用いて比較のための所定の信号を形成すること、又は形成しないことも可能である。この識別子は、切り替え及び比較ユニット内で評価され、それに応じて比較処理が制御される。
【0037】
別体に設けられたタイマーは、予め定めることのできるリミット(所定の制限時間)にわたって時間行動における偏差を監視する。切り替え及び比較ユニットの一部又は全部のモジュールは、チップ上、共通のボード上に集積することが可能であり、又は空間的に別々に収容することもできる。後者の場合、データと制御信号は適当なバスシステムを介して互いに交換される。そのとき、レジスタには、バスシステムを介してデータが書き込まれ、その中に格納されたデータ、アドレス信号、及び制御信号の一部又は全部を用いてプロセスを制御する。
【0038】
図1には、2つの処理ユニットと信号B10及び信号B11とを組み合わせて適用することが可能な本実施形態に係る切り替えユニットB01の基本構造が示されている。処理ユニットB10及びB11から出力されるデータ信号、制御信号及びアドレス信号B20及びB21が含まれる種々の出力信号を示す矢印が切り替えユニットB01に接続されている。さらに、少なくとも1つの同期化信号、及び2つの出力信号B40及びB41が存在し、それらが比較ユニットの1つと接続(入力)されている。
【0039】
切り替えユニットは、少なくとも1つの制御レジスタB15を有している。また、その制御レジスタは、比較ユニットのモードを切り替えるためのバイナリ信号(ビット)B16を保持するために少なくとも1つのメモリ素子を有している。バイナリ信号B16は、少なくとも2つの値0及び1をとることが可能であり、比較ユニットから出力される信号B20又はB21に応じて、又は切り替えユニットの内部プロセスに応じて、セット又はリセットされうる。
【0040】
バイナリ信号B16が第1の値にセットされている場合、切り替えユニットは、比較モードで駆動する。比較モードにおいて、データの有効性と、データの比較処理を通知する信号B20及びB21により構成される制御信号及び/又はアドレス信号に関する所定の比較条件とが満たされている限り、信号B20により構成される全ての到着信号は、信号B21により構成されるデータ信号と比較される。
【0041】
上記の比較条件が2つの信号B20及びB21において同時に満たされている場合、これらの信号により構成されるデータが互いに比較され、等しくない場合には、エラー信号B17がセットされる。信号B20及びB21に関する比較条件が満たされている場合には、該当する同期化信号B40又はB41がセットされる。この信号は、該当する処理ユニットB10又はB11内で実行される処理を停止するように制御し、それまで互いに比較できなかった該当する信号がさらに接続されることを阻止する。信号B40又はB41は、それぞれ他方の処理ユニットB21又はB20の該当する比較条件が満たされるまでの期間、セットされ続ける。この場合、比較処理が実施され、それに応じた同期化信号がリセット(再設定)される。
【0042】
上記のように、比較すべきデータが2つの処理ユニットから同時に準備されない場合において比較を保証するために、該当する同期化信号B40又はB41がリセットされるまで(例えば、該当する値に維持することが必要とされるか、又は最初に準備されたデータを切り替えユニット内に比較まで)該当する処理ユニットから出力されたデータと比較条件とを記憶しておかなければならない。
【0043】
ある処理ユニットは、どの処理ユニットが最初にデータを準備するかに応じて、他の処理ユニットが該当する比較データを準備するまで、そのプログラム又はプロセスの更なる処理を待たなければならない。
【0044】
図1に示すように、本実施形態に係る切り替えユニットは、一つの付属の処理ユニットが他の処理ユニットよりも早く比較データを準備しないことが常に保証される場合、信号B40又はB41の1つを省くことができる。
【0045】
バイナリ記号ビットB16が第2の値にセットされている場合、同期化信号B20及びB21、及びエラー信号B17は、常にインアクティブであって、例えば、値0にセットされている。2つの処理ユニットは、比較を行うことなく互いに独立して処理を進める。
【0046】
本実施形態に係るシステム内の重要なコンポーネントは「比較器」である。そこで、図1Aに、この比較器の構成について簡単な形式で示した。比較コンポーネントM500は、2つの入力信号M510及びM511を受け取ることができる。その後、同コンポーネントは、これらの信号の同一性について、ビット単位の同一性を比較することができる。不同一性(不一致)が検出された場合、エラー信号M530がアクティブ化(例えば、出力)されて、信号M520は非アクティブ化される(例えば、出力されない)。
【0047】
2つの入力信号が同一の場合、入力信号M510又はM511の値が出力信号M520へ与えられる。このとき、エラー信号M530は非アクティブであり、すなわち「グッド」状態を知らせることができる。当業者であれば、この基本構成を有するシステムから多数の拡張された実施形態が考えられるであろう。例えば、コンポーネントM500を所謂TSC(Totally Self Checking)コンポーネントとして形成することができる。この場合、エラー信号M530は、少なくとも2本の導線(所謂「デュアルレール」)を通じて外部にガイドされる。この信号を受けることで、内部のデザイン及びエラー発見機構、又は比較コンポーネントが検出可能なエラーの場合が認識され、出力信号が正しいか、又は認識可能な範囲で不正であることが保証される。本実施形態に係るシステムにおいて、こうしたTSCを適用可能な比較器を使用することも可能である。
【0048】
本実施形態の別のクラスは、2つの入力M510及びM511(又は図1Cに示すM610及びM611)がどの程度の同期性を持たなければならないか(つまり、同期性の程度)を区別することができることに特徴を有する。例えば、クロック単位の同期性を有することを特徴とする。このとき、データの比較がクロック単位で実施される。別の例として、入力信号間の位相オフセットが固定されている場合、例えば、該当する信号を整数のクロック周期、又は半分のクロック周期だけ遅延させるための同期遅延素子が使用される。この種の位相オフセットは、コモンコーズエラー(つまり、同時に複数の処理ユニットに作用する可能性のあるエラー)を回避するために有用である。
【0049】
そこで、図1Cに示すように、コンポーネントM500を改良して、入力信号M610又はM611の早い方の入力信号を位相オフセット分だけ遅延させるコンポーネントM640(遅延素子)が挿入されている。つまり、図1Cは、図1Aの構成に新たな構成を導入して改良したものである。この遅延素子は、比較モードにおいて使用されるように、比較器内に収容されている。この遅延素子に対し、その代りに、或いは、それに加えて、同様の非同期性を許容可能にするため、入力チェーン内に中間バッファを設けることができる。この中間バッファは、例えば、FIFOメモリにより設計される。この種のバッファが存在する場合、バッファの最大深度まで非同期性を許容することができる。また、バッファがオーバーフローした場合にエラー信号が出力されるように構成することができる。
【0050】
さらに、図1A又は図1Cに示す比較器内で、どのように信号M520(又は信号M620)が生成されるか、に応じて区別することができる。例えば、入力信号M510又はM511(又は、信号M610又はM611)を出力へ与え、スイッチによって接続を中断可能にすることができる。この構成の利点は、パフォーマンスモードと、可能な種々の比較モードとの間を切り替える手段に、同一のスイッチを使用することができることである。別の例として、信号を、比較器内部の中間バッファから生成することもできる。
【0051】
本実施形態の更に別のクラスは、比較器に対して入力される複数の入力信号が存在するか、及びこの入力に対して比較器がどのように反応するか、に応じて出力を異にすることができる。例えば、入力が3つの場合、多数決、3つ全部の比較、又は2つの信号だけの比較を行うモードを選択可能にすることができる。また、入力が4つ以上の場合、それに応じて多くの変形例が考えられる。この変形例は、システム全体が有する種々の駆動モードに対応して決定される。
【0052】
図1Bに、切り替え及び比較ユニットの一例が示されている。n個の考慮すべき実行ユニットから、nの信号N140、…、N14nが切り替え及び比較コンポーネントN100へ入力される。このコンポーネントは、これらの入力信号から、n個の出力信号N160、…、N16nを生成することができる。簡単な例として、「純粋なパフォーマンスモード」の場合、すべての信号N14i(i=1、…、n)が対応する出力信号N16i(i=1、…、n)へガイドされる。一方、「純粋な比較モード」の場合、すべての信号N140、…、N14nが1つの出力信号N16j(1≦j≦n)にガイドされる。
【0053】
さらに、図1Bには、切り替え可能な駆動モードの決定方法が示されている。つまり、図1Bに示すコンポーネントには、切り替え論理の論理コンポーネントN110が含まれている。論理コンポーネントは、切り替え論理専用のコンポーネントとして構成される必要はなく、そのコンポーネントが有する一つの機能として、その機能が存在すればよい。そのコンポーネントは、まず、幾つの出力信号が存在するか(つまり、出力信号数)を定める。さらに、切り替え論理コンポーネントN110は、どの入力信号が、どの出力信号に対応(又は、寄与)するかを定める。このとき、1つの入力信号が、正確に1つの出力信号に寄与することも可能である。数学的な表現を用いると、切り替え論理コンポーネントは、集合{N140、…、N14n}の要素と集合{N160、…、N16n}の要素とを対応付ける機能を有している。
【0054】
さらに、処理論理コンポーネントN120は、出力信号N16i(i=1、…、n)の各々について、どのような形式で入力信号と出力信号とが対応付けられるか、を定める。このコンポーネントは、上記の切り替え論理コンポーネントと同様に、専用のコンポーネントとして構成される必要はない。つまり、システム内で上述した機能が実現されていればよい。説明の便宜上、例えば、普遍性を損なうことなしに、出力信号N160が入力信号N141、…、N14mによって生成されるものと仮定する。m=1である場合、これは単純に信号のスルー接続に相当し、m=2である場合、入力信号N141及びN142が比較される。この比較処理は、同期又は非同期で実施することが可能である。また、その比較処理は、ビット単位、又は有意のbit値で、或いは許容帯域で実施することが可能である。
【0055】
m≧3の場合には、複数の可能性が生じる。
【0056】
第1の可能性は、すべての入力信号N141、…、N143を比較し、少なくとも2つの異なる値が存在する場合にエラーが検出され、そのエラーが選択的に通知されるというものである。
【0057】
第2の可能性は、mに応じてkを選択(k>m/2)することである。これは、比較器を使用することによって実現される機能である。少なくとも1つの信号が一致しないと認識された場合に、エラー信号を生成することができる。また、3つの信号すべてが異なる場合に、異なるエラー信号を生成することができる。
【0058】
第3の可能性は、入力信号の値をアルゴリズムへ供給することである。例えば、平均値、中央値の算出、又はエラーを許容するためのアルゴリズム(FTA;フォルト・トレラント・アリゴリズム)が使用される。この種のFTAは、入力値の極値を捨て去って、残りの値に対してある種の平均処理を行うアルゴリズムに基づいている。この平均処理は、残りの値の全量に対して、又はHWにおいて容易に形成される部分量に対して実行することができる。そのとき、入力値を実際に比較することは必ずしも必要ではない。例えば、平均値を形成する過程において、加算と割り算とを実行すれば済む。また、FTM(フォルト・トレラント・ミッドポイント・アリゴリズム)、FTA、又は中央値は、部分的なソートを必要とする。極値が十分に大きい場合は、選択的にエラー信号を出力することができる。
【0059】
上述したこれら種々の可能性について、複数の信号を1つの信号に処理する操作のことを比較操作と呼ぶことにする。
【0060】
従って、処理論理コンポーネントの課題は、各出力信号について(また、それに伴って各入力信号についても)比較操作の正確な形態を定めることである。切り替え論理コンポーネントN110の機能(すなわち上述した機能)と処理論理コンポーネントの機能(すなわち出力信号当たり、又は機能値当たりの比較操作による決定機能)とに関して得られる情報の組合わせがモード情報であり、モード情報に基づいて駆動モードを決定する。この情報は、通常、多値であって、1つの論理ビットを介して表示可能であるだけではない。すべての論理的に考えられるモードが、与えられた実装内で有意義ではなく、好ましくは許容されるモードの数が制限される。つまり、実行ユニットが2つの場合(比較モードのみが存在する場合)、全情報を1つの論理ビットに凝縮することができる。
【0061】
パフォーマンスモードから比較モードへの切り替えの際に、パフォーマンスモードにおいて、対応する異なる出力へ入力信号をコピーしていた実行ユニットを、比較モードにおいて、同じ出力へ入力信号をコピーするように切り替えることによって実現される。
【0062】
上記の機能は、実行ユニットの部分システムによって実現される。パフォーマンスモードにおいて、部分システム内で考慮される全ての入力信号N14iが直接関連する出力信号N16iへと接続される。一方、比較モードにおいて、全ての入力信号N14iが1つの出力へコピーされる。代替的に、この種の切り替えをペアリングを変更することによって実現することもできる。これは、本実施形態において、許されるモードの集合をこのように制限することができるにも関わらず、例えば、パフォーマンスモードと比較モードとを対象にすることができないことによって表される。しかし、常に、パフォーマンスモードから比較モード(及びその逆)への切り替えについて対象にすることができる。
【0063】
これらのモード間で、ソフトウェアを介して制御されて、動的に駆動を切り替えることができる。その場合に、モードの切り替えは、特殊な切り替え機能、特殊なインストラクションシーケンス、明確に特徴づけられたインストラクションの実施を介して、又はマルチプロセッサシステムの実行ユニットの少なくとも1つによる所定のアドレスへのアクセスによって実現される。
【0064】
図2には、本実施形態に係る切り替え及び比較ユニットM100が示されている。より詳細には、2プロセッサシステム、又は2μCシステム(つまり、2処理ユニットシステム)が示されている。但し、同システムにおいては、選択的に、信号の一部を省くこともできる。このシステムは、主に、2つの処理ユニット(M110、M111)と切り替え及び比較ユニットM100とから構成される。各処理ユニットから、データ信号(M120、M121)とアドレス/制御信号(M130、M131)とが切り替え及び比較ユニットに入力される。各処理ユニットは、選択的に、切り替え及び比較ユニットからデータ信号(M150、M151)と制御信号(M140、M141)を返す。切り替え及び比較ユニットM100は、データ信号(M160、M161)とステータス情報M169とを出力する。例えば、切り替え及び比較ユニットM100は、データ信号(M170、M171)及び制御信号M179等の信号を受信し、それらの信号を処理ユニットへガイドすることもできる。
【0065】
なお、データ信号M170及びM171、及び制御信号M179を介して、選択的に、処理ユニットに関係なく切り替え及び比較ユニットM100の駆動モードが調節されるように制御することもできる。同様に、プロセッサ(処理ユニット)は、切り替え及び比較ユニットM100内に出力する(例えば、データバスを介して出力する)データ信号M120及びM121と、アドレス及び制御信号M130及びM131(例えば、ライト)を介して駆動モードを調節することができる。例えば、パフォーマンスモード(比較なし)、又は比較モード(例えば、データ信号M120及びM121、及び/又は、周辺ユニットから入力されるデータ信号M170及びM171の比較処理を含む)。パフォーマンスモードにおいて、データ出力M120及びM121は、例えば、制御信号と組み合わされ、データ出力M160及びM161へガイドされる。逆に、入力されるデータ信号M170及びM171は、データ信号M150及びM151へガイドされる。
【0066】
比較モードにおいて、出力が比較される。例えば、エラーのない場合だけデータ信号M160及びM161へガイドされる。その場合、選択的に2つの出力が利用されるか、又は2つのうちの一方のみが利用される。同様に、処理ユニットへガイドされる入力されたデータ信号M170、M171の検査も可能である。比較モードにおいて、信号の比較にエラーがある場合、エラー信号が生成される。例えば、エラー信号は、ダブルレール信号を用いて、エラーなく外部へ通知される(例えば、ステータス情報M169の構成部分)。ステータス情報M169は、駆動モード、又は実行ユニットが出力する信号の時間的なオフセットに関する情報を含むことができる。
【0067】
予め定めることのできる(プログラミング可能な)タイムインターバル内で処理ユニットの比較データが準備されない場合、エラー信号がアクティブ化される。エラーの場合には、出力されるデータ信号M160及びM161を遮断(フェイルサイレンス動作;fail silent holds back)することができる。これは、デジタル信号についても、アナログ信号についても同様である。しかし、この出力制御ステップは、後からエラーを発見する可能性を考慮して、処理ユニットを遅延させない(中間記憶させない)ように、出力されるデータ信号M120及びM121を出力することもできる。この処理は、安全上、重要なシステムにおいて、エラー許容時間を超えるまで、すなわち(慣性的に)システムがエラーに反応して取り返しがつかなくなる前の補正の可能性がある間において許容される。
【0068】
所定の記憶手段(UVE)へガイドされない出力信号M180及びM181と、処理ユニットの内部の信号も、少なくとも、その計算された値に関して、この値を比較のために出力されるデータ信号M120及びM121として出力することにより比較することができる。同様な処理を、切り替え及び比較ユニットM100を介さずに入力される入力信号M190及びM191によって実現することが可能である。
【0069】
切り替え及び比較ユニットM100を監視するために、選択された一部のデータ信号、又は全てのデータ信号M160及びM161について、それらをデータ信号M170及びM171、又は入力信号M190及びM191を介して読み直すことが可能である。従って、比較モードにおいて、切り替え及び比較ユニットM100から出力される信号からエラーが検出されることを保証することができる。(オア結合において)切り替え及び比較ユニットM100、処理ユニットM110及びM111がアクセスする適切な遮断パスによって、システム全体のフェイルサイレンス動作を実現することができる。
【0070】
図3は、図2に示した切り替え及び比較ユニットM100の可能な実装をより詳細に示した説明図である。切り替え及び比較ユニットM100は、駆動モード(パフォーマンス又は比較)を表す少なくとも1つのビットを有するコントロールレジスタM200と、比較モードにおけるエラー状態を表す少なくとも1つのビットを有するステータスレジスタM220を有している。ウェイト信号、及びインターラプト信号が、それぞれ2つの処理ユニットに対し、コントロールレジスタ内の他のビットによって制御される。その場合、例えば、同期目的が、駆動モード切り替えの準備のためなのか、又はエラー処理のためなのかによって、種々のインターラプトの間で区別される。
【0071】
選択的に、例えば、内部又は外部のウォッチドッグを駆動するために処理ユニットの間で最大に許容される時間差(クロック周期の数)を有するコントロールレジスタM240と、時間差値(この時間差値は、例えば、データレジスタのオーバーフローを阻止するために、最も高速のプロセッサがウェイト信号又はインターラプト信号を用いて時々停止又は遅延されなければならないときに用いられる値である。)を有するコントロールレジスタM241とを含み、他のコントロールレジスタも設けられる。
【0072】
ステータスレジスタM220内には、エラービットの他に、処理ユニット間のクロックオフセットが現在どのくらい大きいかという情報も記憶される。そのため、例えば、アドレス/制御信号のように、所定のアドレス領域を介して特徴的なデータ信号が最初に準備された場合は、常に、少なくとも1つのタイマーM230が処理ユニットによって始動される。さらに、該当するデータ信号が第2の処理ユニットによって準備された場合、常に、タイマーの値がステータスレジスタへ転送される。タイマーは、例えば、プログラムシーケンスが異なっても、WCET(Worst Cace Execution Time)に従って保証され、すべての処理ユニットがデータを供給しなければならないように調節される。タイマーが予め定められた値を上回った場合にエラー信号が出力される。
【0073】
処理ユニットから出力されるデータ信号M120及びM121は、切り替え及び比較ユニットM100内で、特に比較モードのために、それがデジタルのデータであって、クロックが正しく準備できない限りにおいて、バッファメモリM250及びM251内に記憶される。このバッファメモリは、FIFOメモリとして形成することができる。このバッファメモリが1(レジスタ)の深度しか持たない場合、データ損失を回避するために、例えば、ウェイト信号によって、比較が行われるまで他の信号の出力が遅延される。
【0074】
さらに、バッファメモリM250及びM251、ダイレクト入力されるデータ信号M120及びM121、又はデータ信号M170及びM171のデジタルデータを比較する比較ユニットM210が設けられている。この比較ユニットは、例えば、バッファメモリM250及びM251内でシリアルデータを受信し、パラレルデータに変換することができる。その後、比較ユニットM210内で比較される場合、シリアルのデジタルデータ(例えば、PMW信号)も互いに比較することができる。同様に、非同期のデジタル入力信号であるデータ信号M170及びM171を付加的なメモリユニットM270及びM271を介して同期させることができる。
【0075】
入力されるデータ信号M120及びM121の場合と同様にFIFO内に一時バッファされる。パフォーマンスモードと比較モードとの間の切り替えは、コントロールレジスタ内のモードビットのセット又はリセットによって行われる。例えば、2つの処理ユニット内に、それに応じたインターラプトがもたらされる。比較自体は、準備されたデータ信号M120及びM121と、それに属するアドレス/制御信号M130及びM131によって促される。その場合、データ信号M120とアドレス/制御信号M130と、又はデータ信号M121とアドレス/制御信号M131と、からなる所定の信号が対応付けられたデータの比較を行うべきか否かを表す識別子として機能する。
【0076】
これが、図1の単純な切り替えに対する他の実施形態である。ここでは、例えば、比較モードへ移行する場合にインターラプトルーチンを用いて種々の前準備が行われ、それによって2つの処理ユニットのために同一の初期条件が設定される。処理ユニットがその用意ができている場合に、その処理ユニットによってプロセッサ固有のレディビットがコントロールレジスタ内にセットされて、処理ユニットは、他の処理ユニットが準備完了をレディビットによって知らせるまで(図6のコントロールレジスタの説明も参照)、待機状態に留まる。
【0077】
この比較ユニット内で、同様にアナログデータをそれに適した特殊なアナログ比較ユニットM211(analog compare unit)内で互いに比較することができる。これは、アナログ信号の出力が互いに十分に同期して行われるか、又はアナログ比較ユニット内に実装されているADCによってデジタル化されたデータが記憶される(図12〜図14も参照)ことを前提としている。
【0078】
同期化は、比較ユニットのデジタル出力(データ信号、アドレス/制御信号)が上述したように互いに比較されて、早すぎる処理ユニットを待たせることによって達成することができる。この目的のために、アナログ信号のソースとして処理ユニット内で処理されるデジタル信号も(これらの信号は外部では必要とされないかもしれないが)、出力されるデータ信号M120及びM121を介して切り替え/比較ユニットM100へ入力されうる。アナログ信号の比較に加えて、この冗長な比較を実行することは、計算システム内のエラーを早い時期に予め認識することができるため、処理ユニットの同期化をさらに容易にすることを可能にする。
【0079】
アナログ信号の比較は、処理ユニットのDAC(Digital to Analog Converter)に対する付加的なエラー認識を実現することができる。DCSLアーキテクチャの他の構造において、この種の可能性は与えられていない。周辺ユニットから入力されるアナログ信号についても比較が可能である。特に、それが同じシステムパラメータの冗長なセンサ信号である場合、付加的な同期化措置は必要とされず、場合によっては、センサ信号の有効性を表示する信号のみが必要とされる。アナログ信号について、さらに比較処理の詳細を示す。
【0080】
図4は、少なくとも(n+1)個の処理ユニットを有するマルチプロセッサシステムを示している。その場合、これらのコンポーネントの各々は、ここでも複数の部分処理ユニット(適当な付加コンポーネントを備えた、CPU、ALU、又はDPS)から形成されうる。これらの処理ユニットの信号は、図2に示す2システムにおいて説明されたのと実質的に同一であり、切り替え及び比較ユニットと結合されている。
【0081】
従って、図4における全ての信号とコンポーネントは、図2の対応するコンポーネント及び信号と実質的に同一の意味を有している。切り替え及び比較ユニットM300は、マルチプロセッサシステム内で、パフォーマンスモード(全ての処理ユニットが異なるタスクを処理する)、種々の比較モード(2つ又はそれより多い処理ユニットのデータが比較され、ずれている場合(不一致の場合)にエラーが通知される)、及び種々の投票モード(異なるように設定可能なアルゴリズムに従って偏差がある場合に多数決(つまり、一致する結果が多いものを正しいとする方法))の間で区別することができる。その場合、各処理ユニットについて、それがどのモードで動作しているか、及び他のどの処理ユニットと協働しているか、を別々に決定することができる。
【0082】
次に、図6に示すコントロールレジスタについて説明し、切り替えがどのようにして正確に行われるかについて詳細に述べる。
【0083】
図5は、(n+1)の処理ユニットを有するマルチプロセッサシステムのための切り替えユニットの可能な実施形態を示している。各処理ユニットについて、切り替え及び比較モジュールの制御ユニット内に少なくとも1つのコントロールレジスタM44i(i=1、…、n)が設けられている。さらに、図6は、コントロールレジスタのセットについて説明するための説明図が示されている。ここで、コントロールレジスタM44iは、それぞれコントロールレジスタCiに対応する。
【0084】
コントロールレジスタについては種々の実施形態が考えられる。適当なビットコンビネーションを介して、エラー認識パターンを使用すべきか、エラー許容パターンを使用すべきか、を記述することができる。それぞれ切り替え及び比較ユニットM300に掛ける手間とコストに応じて、さらに、どのタイプのエラー許容パターン(3から2、中央値、4から2、4から3、FTA、FTM…)を使用するか、も示すことができる。さらに、どの出力をスルー接続するか、も構成可能に形成することができる。どのコンポーネントがどのデータについて、このコンフィグレーションに影響を与えることができるか、に基づいて実施形態を形成することもできる。
【0085】
関与する処理ユニットの出力信号が、切り替えユニット内で互いに比較される。信号は、必ずしもクロックに対して正しく処理される必要はないが、データの一時記憶が必要である。その場合に、種々の処理ユニットから切り替え及び比較ユニットに大きい時間差をもって与えられるデータを、切り替え及び比較ユニット内で比較することもできる。中間メモリ(例えば、FIFOメモリとして形成;First In−First Out、あるいは他のバッファ形態)を使用することによって、他の処理ユニットがデータを準備できていない間、1つの処理ユニットから複数のデータを受信することもできる。
【0086】
その場合、2つの処理ユニットの同期性の尺度が、FIFOメモリの充填状態である。所定の充填状態を上回った場合、処理の進み方が遅い処理ユニットを待機するため、処理が最も進んでいる処理ユニットが、ウェイト信号、又は適当なインターラプトルーチンに応じて停止される。その場合、監視を処理ユニットに提供可能なすべての外部の信号にも広げるべきである。それは、アナログ信号又はPWM信号も含む。そのために切り替え及び比較ユニット内に、この種の信号の比較を許す構造が設けられる。付加的に、比較すべきデータ間の最大の時間偏差を予め定めておき、少なくとも1つのタイマーによって監視することが可能である。
【0087】
例えば、2つ以上の処理ユニットが共通の切り替え及び比較ユニットによって互いに接続される場合、これら処理ユニットの各々のために、又は全処理ユニットのために、コントロールレジスタが必要である。このコントロールレジスタの特徴的な形態が、図6に示されている。
【0088】
それぞれ、コントロールレジスタCxの下方の(n+1)番目に位置するビットB500xからB50nxまでが、(n+1)番目のプロセッサ又は処理ユニットに対応付けられている。コントロールレジスタCxのビットB514xは、比較又は投票とパラレル作業との間での切り替え、つまり、図1に示すバイナリ信号B16の値に対応する。ビットB513xは、該当する処理ユニットが比較の準備ができているか否か(Ready)を表示する。また、ビットB512xは、同期化信号(ウェイト又はインタラプト;WAIT又はINTERRUPT)を制御する。そして、ビットB511xは、該当する処理ユニットxをインターラプトによって比較の準備をさせるために利用することができる。同様に、ビットB5110xは、処理ユニットをパラレルモードへ戻すためのインターラプトを制御する。
【0089】
コントロールレジスタCkのビットB50ikとビットB50kkとが1にセットされている場合(0≦i、k≦n)、この実施形態において、処理ユニットiの出力が処理ユニットkの出力と比較されるべきことを意味している。さらに、ビットB50jkも1に等しい場合、i、j及びkの間で投票が行われ、投票結果がUVEの出力kに出力される(0≦i、j、k≦n)。そのため、各グループの処理ユニットについて、図5の説明で例示されているように、投票又は過半数比較の特徴的な種類を定めることができる。例えば、UVEの出力kに投票結果を出力させようとする場合、比較すべき、又は投票すべき処理ユニットi(コントロールレジスタCk内)に対応する全てのビットB50ikがセットされなければならない。他の出力へのパラレルな出力も可能である。
【0090】
コントロールレジスタi(0≦i≦n)のB50iiが1の場合は、比較ユニットの出力iがアクティブになるべきことを意味している。全てのコントロールレジスタCiが該当するメモリ箇所のビットB50ii(i=0、1、…、n)内でだけ1である場合、全ての処理ユニットは、任意の異なるプログラムと専用の出力信号とを有するパフォーマンスモードで駆動する。すべての下方(n+1)番目に位置するビットB50ikが1に等しい場合(i=0、1、…、n)、さらに、ビットB514kがセットされている場合、すべての処理ユニットの出力信号が多数決(投票)によって選択されて、UVEの出力kへ出力される。なお、n=1である場合には比較のみが行われる。
【0091】
以下の説明では、複数の処理ユニットを有するシステム内で比較/投票へ移行する場合のシーケンスの例について説明する。
【0092】
比較又は投票をアクティブ化するために、コントロールレジスタCi内にビットB514iがセットされる。このビットは、処理ユニット自体によっても、或いは、所定のシステム状態、時間条件、又は他の条件(例えば、所定のメモリ領域へのアクセス、エラー、又は非蓋然性等)に応じて、切り替え及び比較ユニットからセットすることもできる。
【0093】
ビットB514iと共に、ビットB50iiとビットB50kiとがセットされる場合、UVEによって自動的にビットB511iとビットB511kとがセットされ、それによって処理ユニットiとk内でインターラプトが作動される。このインターラプトに応じて、処理ユニットが所定のプログラム部分へジャンプし、比較モードへ移行するための所定の初期化ステップが実施される。その後、切り替え及び比較ユニットへ応答(Ready信号)が出力される。
【0094】
Ready信号は、処理ユニットの各々に対応するコントロールレジスタCi内のインターラプトビットB511iの自動的なリセットを実現すると同時に、ウェイトビットB512iのセットを実現する。関与する処理ユニットのすべてのウェイトビットがセットされている場合、それらが切り替え及び比較ユニットによって同時にリセットされる。その後、処理ユニットが、監視すべきプログラム部分の処理を開始する。ある実施形態において、セットされたビットB514iを有するコントロールレジスタCiへの書込みが、ロック(HW、又はSW)によって阻止される。この方法を適用すると、処理の間、比較器のコンフィグレーションが変更できない効果をもたらす。
【0095】
コントロールレジスタCi内の変更は、ビットB514iのリセット後に初めて可能になる。このリセットは、ノーマルモード(パラレルな作業方法)へ移行するために、すべての関与する処理ユニットのコントロールレジスタ内にビットB510xをセットすることによって、該当する処理ユニット内にインターラプトをもたらす。
【0096】
全てのコントロールレジスタが有する相互の一貫性は、ユーザー設定に応じて監視され、エラーの場合は、ステータス情報に含まれるエラー信号が生成される。例えば、1つの処理ユニットが、複数の独立した比較又は投票プロセスのために使用されてはならないのである。なぜなら、同期化が保証されないからである。しかし、データ信号が出力されず、等しくない場合には、エラー信号を発生させるためだけに複数の処理ユニットを比較することも考えられる。
【0097】
他の実施形態においては、比較又は投票に関与する処理ユニットのうち、複数又は全てのコントロールレジスタ内の入力が同様に実行され、これらの処理ユニットの該当するビットは、例えば、出力を制御する専用のビットiを除いて、同種にセットされる。
【0098】
図7には、中央の投票のための投票ユニットQ100が示されている。投票は、適切なハードウェアによっても、ソフトウェア的に実施することもできる。そのために投票アルゴリズム(例えば、ビットが正しい投票)が前もって定められる。その場合、投票ユニットQ100には、複数の信号Q110、Q111、及びQ112が入力され、これらの信号から、投票(例えばn個の信号からm個の信号を選択)を実施した結果得られる出力信号Q120が形成される。
【0099】
比較する際、エラーが発生した場合に、該当するコントロールレジスタ内にエラービットがセットされる。また、投票の際、該当する処理ユニットのデータは無視される。なお、単純な比較においては、出力が遮断される。
【0100】
プログラミングされた時間の経過前に間に合うように準備されなかった全てのデータは、エラーと同様に処理される。エラービットのリセットは、システムによって行われ、場合によっては該当する処理ユニットの再統合を可能にする。
【0101】
図8に示すように、処理ユニット及び/又は投票者が空間的に集中して配置されていない場合、適切なバスシステムと組み合わせて分散した投票も可能である。図8において、分散した投票ユニットQ200は、制御ユニットQ210によって管理される。投票ユニットは、バスシステムQ221及びQ222を介して結合されており、これらのバスシステムを介してデータを入手し、それをまたバスシステムへ出力する。
【0102】
アクティブな出力ビットを有するコントロールレジスタ内の比較又は投票ビットのリセットは、関与する処理ユニット内にインターラプトをもたらし、それら処理ユニットがパラレルな作業方法に戻される。その場合、各処理ユニットは、別々に管理され、異なるジャンプインアドレスを有することができる。その場合、プログラム処理は、同一のプログラムメモリから行うことができる。しかし、アクセスは別々であって、通常異なるアドレスで行われる。パラレルなモードに比較して、安全上の重要な部分が少ない限りにおいて、二重化された安全部分を有する専用のプログラムメモリの方が複雑さが少ないか否かが判断される。データメモリも、パフォーマンスモードにおいて共通に利用することができる。その場合、アクセスは、例えば、AHB/ABPバスを用いて順次行われる。
【0103】
特徴的な構成として、さらに、エラービットがシステムによって評価されなければならないことについて述べる。エラー場合、安全な遮断を保証するために、安全上の重要な信号は、適切な形式で冗長に実現されなければならない(例えば2から1コード)。
【0104】
図1、図2、図3、図4、及び図5に示すUVEにおいて、処理ユニットが、互いに一定の位相関係にある同一又は互いに導き出されたクロックで働くものと仮定されていた。また、処理ユニットのために、位相関係が変化する異なる発振器、及びジェネレータのクロックが使用される場合、そして、それらがクロックドメインを代える場合には、それらが発生する信号を同期させなければならない。そこで、図9に示すような同期化装置M800が利用される。特に、デジタルデータを安全に格納し、かつ、比較するためには、同期化装置M800が必要であり、それは、信号フロー内の任意の箇所に設けることが可能である。
【0105】
一方、これはデータを準備した処理ユニットのクロックM830に基づいてデータM820を格納することを保証する。その場合、格納されたデータを読み取るためには、データM840を処理したクロックが利用される。この種の同期化装置M800は、複数のデータを格納することができるようにするために、FIFOメモリにより形成することができる(図9を参照)。例えば、データの同期化だけでは十分ではなく、データの準備信号も受信クロックによって同期化される。
【0106】
そのため、図10に示すように、要請信号M850とクィット信号M880とにより、引渡しを保証するハンドシェークインターフェイスが必要である。この種のインターフェイスは、あるクロックドメインから他のクロックドメインへのデータの安全な伝送を保証するため、クロックドメインが変化する場合に常に必要とされる。例えば、書込みの際に、データM820が領域Q305から、クロックM830で同期化装置(レジスタセル)M800へ同期して提供される。なお、書込みを要請する要請信号M850はデータの準備を表示する。
【0107】
この書込みを要請する要請信号は、領域Q305からクロックM860でメモリ素子M801へ引き渡され、それが同期化された信号M870として、データの準備を表示する。それに続いて、クロックM860の次のアクティブなクロック端で、同期化されたデータM840が引き渡され、確認信号(又はクィット信号)M880が返信される。この確認信号は、他のメモリ素子M801内でクロックM830によって信号M890に同期され、それによってデータの準備が終了する。その後、新しいデータを該当するレジスタ内へ書き込むことができる。これらのインターフェイスの特徴的な部分は、クィット信号を待機する必要なしに、付加的なコード化によって高速に働くことができる点にある。
【0108】
なお、メモリ素子M800は、FIFOメモリ(First−In,First−Out)として形成されている。
【0109】
図11〜図14は、アナログ信号を比較するための回路を示す。この回路は、比較すべきアナログ信号を供給する処理ユニットが相互に、比較が有意義であるように、同期化されていることを前提としている。同期化は、図1に示した対応する信号B40と信号B41とによって達成することができる。
【0110】
図11は、差動増幅を示している。この素子を用いて、2つの電圧を互いに比較することができる。
【0111】
その場合、演算増幅器B100は、その負の入力B101に信号B141が接続(つまり、入力)され、その信号は、値Rinを有する抵抗B110を介して入力信号B111と接続されており、その入力信号に電圧値V1が印加されている。正の入力B102は、信号B142と接続されており、その信号が値Rinを有する抵抗B120を介して入力信号B121と接続されており、その入力に電圧値V2が印加されている。この演算増幅器の出力B103が出力信号B190と接続されており、その出力信号は、電圧値Voutを有する。信号B190は、値Rfを有する抵抗B140を介して信号B141と接続されており、信号B142は、値Rfを有する抵抗B130を介して信号B131と接続されており、その信号は、アナログ基準点Vagndの電圧値を有している。出力電圧は、上記の電圧及び抵抗値を用いて、以下の式に従って計算することができる。
【0112】
【数1】
【0113】
差動増幅器は、通常のCMOSの場合と同様に、正の駆動電圧で駆動される場合、アナロググラウンドVagndとして、駆動電圧とデジタルグラウンドの間の電圧、つまり、通常平均の電位が選択される。2つのアナログ入力電圧V1とV2とが僅かしか異なっていない場合、出力電圧Voutは、アナロググラウンドに対して僅かな差Vdiffのみを有する(正又は負)。
【0114】
図12又は図13に示すように、2つの比較器を用いると、出力電圧がVagnd+Vdiffの上にあるか、或いはVagnd−Vdiffの下にあるか、さらには、アナログ基準点にあるかが調べられる。その場合、図12では、入力信号B221が値R1を有する抵抗B150を介して信号B242と接続されており、その信号が演算増幅器B200の正の入力B202と接続されている。さらに、信号B242が値R2を有する抵抗B160を介して信号B231と接続されており、その信号がデジタル基準電位Vdgndとして利用される。演算増幅器の負の入力B201は、入力信号211と接続されており、それが基準電圧Vrefの電圧値を有する。演算増幅器B200の出力B203は、出力信号B290と接続されており、それが電圧値Vobenを有する。
【0115】
図13を参照すると、上記と同様に、入力信号B321が、値R3を有する抵抗B170を介して信号B342と接続されており、その信号が、演算増幅器B300の負の入力B301と接続されている。この信号B342は、さらに、値R4を有する抵抗B180を介して信号B331に接続されており、その信号もデジタルの基準電位Vdgndを有する。演算増幅器B300の正の入力B302は、入力信号B311と接続されており、その信号が基準電圧Vrefの電圧値を有する。演算増幅器B300の出力B303は、出力信号B390と接続されており、それが電圧値Vuntenを有する。
【0116】
これは、抵抗B150、B160、B170、及びB180の抵抗値R1、R2、R3及びR4が、信号B211と信号B311とに印加される固定の基準電圧Vrefに対して、以下のような関係にあることにより達成される。
【0117】
【数2】
【0118】
その場合、V2maxは、信号B121におけるV2の最大許容電圧値であり、V1minは、信号B111におけるV1の最小許容電圧値である。基準電圧源は、外部から提供することが可能であり、また、内部で実現されるバンドギャップ(温度補償され、かつ駆動電圧に依存しない基準電圧)によって実現することができる。式(4)に示す最大で許容される差Vdiffは、最大の正の偏差V2maxと付属の最大の負の偏差V1minとにより定められる。すなわち、(V2max−V1min)が、互いに比較されるべき冗長なアナログ信号の最大許容電圧偏差である。
【0119】
2つの信号B290又はB390における電圧値の一方(Voben又はVunten)が正である場合、アナログ信号に許容される、より大きい偏差が存在する。従って、このアナログ信号を供給するプロセッサが同期されている限りにおいて、エラーが存在し、そのエラーは記憶されなければならず、場合によっては出力信号のオフをもたらす。同期性は、例えば、該当する処理ユニットのコントロールレジスタ内でレディ信号がアクティブであり、又は該当するアナログ信号の所定の状態と、それに伴って比較される値とを識別できることを示す所定のデジタル信号がUVEへ送信された場合に与えられている。
【0120】
図14には、エラーを記憶する回路が示されている。この回路において、2つの入力信号B390とB290とがNOR回路B410(後段のインバータを有する論理的OR回路)を介して出力信号B411に結合される。この出力信号B411は、NOR素子B420内で入力信号B421と出力信号B421とに結合される。この出力信号B421がOR回路B430内で入力信号B401と出力信号B431とに結合される。この出力信号がメモリ素子(Dフリップフロップ)B400に対する入力信号として用いられる。このメモリ素子B400の出力信号B401は、値1でエラーを表示する。
【0121】
メモリ素子(Dフリップフロップ)B400は、信号B390又は信号B290における2つの電圧値Vunten又はVobenの一方が正であり、デジタルの信号として値highを有し、信号B421がアクティブでなく、かつ、リセットのための信号B402が印加されていない場合、クロックB403で1を記憶する。エラーは、信号リセットが少なくとも一度アクティブになるまで記憶される。注意すべきことは、図11〜図13に示す回路を設計する場合に、抵抗を互いにマッチングさせることである。すなわち、RfとRin、R1とR2、及びR3とR3の抵抗比ができるだけ製造誤差に関係なく一定になるように設計する必要がある。信号B421を用いると、回路がアクティブになるべきか、あるいは、比較を行うべきではないか、処理ユニットの同期化が行われるべきか、を制御することができる。信号B402は、その前のエラーをリセットし、新しい比較を可能にする。
【0122】
図15は、ADCを示している。このADCは、例えば、変換速度、精度、精細度、故障耐性、線形性、及び周波数スペクトルのような、それぞれすでにある要請に応じて、種々の既知の変換方法を用いて実現することができる。例えば、逐次的な近似の原理を選択することが可能であり、そこではアナログ信号がデジタルアナログ変換器(DAC)から生成された信号と比較器を用いて比較される。その場合、DACのデジタルの入力ビットが系統的にMSB(Most Significant Bit;最上位のビット)からLSB(Least Significant Bit;最下位のビット)まで、試験的にhighにセットされ、DACのアナログ出力信号がアナログ入力信号(変換すべき信号)よりも高い値を有する場合にリセットされる。
【0123】
DACは、LSBからMSBまで、そのデジタルビットに応じて、抵抗又は容量を重み付け1、2、4、8、16、…をもって、次に高いビットのセットが常にその前の2倍の大きさの作用をアナログ値に与えるように制御する。全てのビットが試験的にセットされ、或いは、再びリセットされた後、デジタルワードの値は、アナログ入力信号のデジタルの表現に対応する。より高い速度要請のため、連続的なデータフローにおいて、連続的にアナログ信号を処理し、シリアルのデジタル信号を出力する変換器を使用することもできる。その場合、そのデジタル信号は、そのアナログデータフローをシリアルのビット列によって近似される。ここでは、デジタルワードは、シフトレジスタに記憶されているビット列によって表現される。
【0124】
しかし、この種の変換器は、一定の値を処理することはできないため、変換期間内でアナログ信号が常に変化することを前提としている。
【0125】
より低い速度要請のためには、例えば入力電圧又は入力電流を用いてそれに応じた、積分器へ接続されるコンデンサの一定の充電又は放電をもたらす、計数原理に基づく変換器も利用することができる。そのため、必要な時間が測定され、基準電圧源、又はそれに対応する基準電圧を用いて同じコンデンサ(積分器)を放電又は充電させるために必要とされる時間に対する比(つまり、1/必要な時間)が導出される。この単位時間当たりのクロックが測定され、必要とされるクロック数がアナログ入力値のための尺度となる。この種の方法は、例えば、デュアルスロープ方法(dual slope)と呼ばれ、同方法において、第1の側面(slope)がアナログ値に応じた放電によって定められ、第2の側面が基準値に応じた再充電によって定められる(http://www.exstrom.com/journal/adc/dsadc.htmlを参照されたい)。
【0126】
図15に示すADCB600は、アナログ信号を準備したプロセッサの出力信号であるトリガー信号B602と、選択的に識別子B603によって制御される。また、その識別子は、複数のアナログ信号の区別を可能にするため、準備されたアナログ信号の種類に関する情報を与える。トリガー信号B602に応じて、変換されたアナログ値が、メモリ領域B640が有するレジスタB610へデジタル値として引き渡される。それと共に、メモリ領域B620内に格納される識別子B603、及びメモリ領域B630内に格納される付加的な信号B604(1であると、アナログ値と識別)がレジスタB610に引き渡される。メモリ領域B640は、複数の値が格納され、最初に格納された値が最初に出力されるべき場合、好ましくはFIFO(First−In, First−Out)としても実現することができる。
【0127】
メモリ領域B640は、デジタル値のためにも、デジタル変換されたアナログ値のためにも利用される。その場合、全てのデジタル値は、A=1を有するデジタル化されたアナログ値から区別するため、メモリ領域B630に示すように、MSBの箇所において1ビットA=0だけ補足される(例えば、図16及び図17を参照)。トリガー信号B602も識別子B603も、例えば、プロセッサiのデジタル出力データOiの構成部分である。図16は、格納されるデジタル化されたアナログ値の部分が、メモリ領域にどのように格納されるか、を説明するための説明図である。ここで、B710は、デジタル化されたアナログ値自体である。また、B720は、付属の識別子である。そして、B730は、アナログビットである。例えば、B730には1が格納される。図17は、同じメモリ領域に格納されるデジタル値の変形例を示した。
【0128】
B810内には、デジタル値自体が記憶され、B820にはそれに対して選択的に、そもそもデジタル値を比較すべきか、について情報を与える識別子、あるはまた比較のための他の条件を格納することができる。B830内には、それがデジタル値であることを特徴づけるために、値0が格納されている。
【0129】
ここでは、一時記憶されているデジタル及びアナログ信号を比較するために、格納の順序とAビット(B730又はB830)、及び識別子B720又はB820が、変換されたデジタル値B710又はデジタル値B810と組み合わせて調べられる。例えば、異なるビット幅によって、アナログ信号とデジタル信号とを別々のメモリ(例えば、2つのFIFO)に収容することも可能である。その場合、比較は、事象制御されて行われる。つまり、プロセッサの値がUVEへ伝送された場合、常に、他の関与するプロセッサがこの種の値をすでに準備しているか否かが調べられる。
【0130】
否定の場合、値が該当するFIFO又はメモリに格納されるが、他の場合、直接比較が実施される。ここでもFIFOをメモリとして用いることができる。比較は、例えば、関与するFIFOが空でない場合、常に終了される。関与するプロセッサ、又は処理ユニットが2つ以上の場合に、投票によって、全ての信号が分配を許されるか(fail silent verhalten)、又はエラー信号によってのみ、エラー状態が知らされるかが求められる。
【図面の簡単な説明】
【0131】
【図1】本発明の一実施形態に係る2つの処理ユニットのための切り替え及び比較ユニットの基本機能を説明するための説明図である。
【図1A】同実施形態に係る比較器を説明する説明図である。
【図1B】同実施形態に係る切り替え及び比較ユニットのを説明する説明図である。
【図1C】同実施形態に係る比較器の他の構成を説明する説明図である。
【図2】同実施形態に係る2つの処理ユニットのための切り替え及び比較ユニットの詳細な表示を説明する説明図である。
【図3】同実施形態に係る2つの処理ユニットのための切り替え及び比較ユニットの実現可能な構成について説明する説明図である。
【図4】同実施形態に係る2つより多い処理ユニットのための切り替え及び比較ユニットをさらに詳細に説明する説明図である。
【図5】同実施形態に係る2つより多い処理ユニットのための切り替え及び比較ユニットの実現可能な構成を説明する説明図である。
【図6】同実施形態に係るコントロールレジスタの構成例を示す説明図である。
【図7】同実施形態に係る中央の投票のための投票ユニットを示す説明図である。
【図8】同実施形態に係る分散投票のための投票ユニットを示す説明図である。
【図9】同実施形態に係る同期化素子を示す説明図である。
【図10】同実施形態に係るハンドシェークインターフェイスを示す説明図である。
【図11】同実施形態に係る差動増幅器を示す説明図である。
【図12】同実施形態に係る正の電圧差のための比較器を示す説明図である。
【図13】同実施形態に係る負の電圧差のための比較器を示す説明図である。
【図14】同実施形態に係るエラーを記憶する回路を示す説明図である。
【図15】同実施形態に係る出力レジスタを有するアナログ−デジタルコンバータを示す説明図である。
【図16】同実施形態に係る識別子とアナログビットを有するデジタル変換されたアナログ値を説明するための説明図である。
【図17】同実施形態に係るデジタルビットを有するデジタルワードとしてのデジタル値を説明するための説明図である。
【技術分野】
【0001】
本発明は、少なくとも2つの処理ユニットを有する計算機システムにおける駆動モードの切り替え方法、及び駆動モード切り替え装置に関する。
【背景技術】
【0002】
比較モードにおいてエラーを認識する方法が、Wo01/46806A1に記載されている。その方法によると、データは、2つの処理ユニット(ALU)を有する装置内で並列に処理されて比較される。そのとき、エラー(ソフトウェアエラー、過渡的エラー)が発生すると、2つのALUは、エラーデータを除去し、新たに冗長な処理(部分的に繰り返された処理)を行うことができるようになるまで、互いに独立して働くことができる。これは、2つのALUが互いに同期して駆動し、かつ、出力される結果がクロックに同期して正しく比較できることを前提としている。
【0003】
従来より、冗長に処理を実行してエラー認識をするための比較モードと、より高い演算パワーの能力を得るためのパフォーマンスモードと、の間で駆動モードを切り替えることが可能な駆動モードの切り替え方法が知られている。この方法によると、複数の処理ユニットは、比較モードにおいて相互に同期されていることが前提とされている。そのため、各処理ユニットの出力結果をメモリに書き込む際、結果データを互いに比較可能にするために2つの処理ユニットが停止可能であり、かつ、クロックが正しく同期して働くことが必要とされる。その結果、ハードウェアの処理を介入する必要が生じるため、これを低減又は解消するための種々の解決方法が提案されている。
【0004】
例えば、下記の特許文献1(EP0969373A2)を参照すると、冗長に働く複数の処理ユニット又はこれを備える装置から出力される結果の比較を、例えば、複数の処理ユニットが互いに非同期で駆動する場合(つまり、同クロックではない場合)、或いは、未知のクロックオフセットをもって働く場合でも保証するための方法が開示されている。
【0005】
航空機産業の技術に鑑みると、標準的な複数の計算機を使用し、その出力を多数決によって処理する方法が用いられる。つまり、安全上重要なアクションを作動させるための方法として投票システムが知られている。また、インター処理ユニットとインターコントロールユニット通信とを互いに組み合わせ、高度の冗長性を有し、エラーが1つだけの場合に限らず、エラーが複数の場合であっても、システムが作業能力を維持することが可能なFMEシステムが知られている。このシステムは、宇宙飛行に利用するためにDASAによって開発された(例えば、下記の非特許文献1を参照)。このシステムは、ビザンチンエラー(即ち、すべてのコンポーネントが等しい情報を得るのではなく、陰謀を含む「故意に」異なる誤った情報が種々のコンポーネントに分配される性質の悪いエラー)も許容することができる。
【0006】
しかし、この種のシステムは、製造に掛かる手間とコストが非常に高いため、経済的な理由から極めて僅かな個数しか製造されず、特にクリティカルなシステムにだけ適用される。一方で、多数のシステムを製造することが可能であり、かつ、切り替え可能性を有するシステムは知られていない。
【0007】
【特許文献1】欧州特許出願公開第0969373号明細書
【特許文献2】国際公開第01/46806号パンフレット
【非特許文献1】Urban et al, “A survivable avionics system for space applications” ,Int. Symposium of Fault−tolerant Computing, FTCS−28(1998), pp.372−381
【発明の開示】
【発明が解決しようとする課題】
【0008】
そこで、本発明が解決しようとする課題は、少なくとも2つの処理ユニットに関する駆動モードを切り替えることを可能にし、各処理ユニットのハードウェア的な構造に介入することが不要であり、かつ、その目的のために付加的な信号を必要としない切り替え手段、及び比較手段を提供することにある。
【0009】
また、比較モードにおいて、各処理ユニットから出力されるデジタル、又はアナログの信号を相互に比較することが可能であることが好ましい。さらに、各処理ユニットが各々のクロック信号で駆動され、相互に非同期で駆動する場合でも、その比較処理が可能であることが好ましい。そして、ハードウェアの介入をせずに同期化することを可能にする手段及び方法を提供することも課題である。
【課題を解決するための手段】
【0010】
上記課題を解決するために、本発明のある観点によれば、好ましくは、少なくとも2つの処理ユニット、切り替え手段及び比較手段を有する計算機システムにおいて切り替える方法が使用され、その場合に少なくとも2つの駆動モードの間で切り替えられ、第1の駆動モードが比較モードに、第2の駆動モードがパフォーマンスモードに相当し、その場合に比較モードにおいて情報が比較される、この方法は、比較モードにおいて少なくとも2つの処理ユニットが非同期である場合に、処理ユニットの少なくとも1つのもののインターラプト入力に同期化信号が印加されることを特徴としている。
【0011】
好ましくは、同期化信号が、遅延信号、特にウェイト信号である、方法が使用される。好ましくは、同期化信号によって少なくとも1つの処理ユニットが、もはや情報を処理しないように促される、方法が使用される。好ましくは、少なくとも1つの処理ユニットが予め定めることのできる時間の間、もはや情報を処理しないように促される、方法が使用される。
【0012】
好ましくは、同期化信号が少なくとも1つのインターラプト信号に対して、高い優先順位を有している、方法が使用される。好ましくは、同期化信号がすべてのインターラプト信号に対して、最高の優先順位を有している、方法が使用される。好ましくは、同期化信号によって少なくとも1つの処理ユニットが、インターラプトルーチンを処理するように促される、方法が使用される。
【0013】
好ましくは、少なくとも1つのバッファメモリが設けられており、比較モードにおいて比較すべき情報の少なくとも1つが、同期化信号に依存する時間の間バッファメモリに一時記憶される、方法が使用される。
【0014】
好ましくは、情報の少なくとも1つが一時記憶される期間から、非同期情報、特にタイムエラーを求めることができる、方法が使用される。好ましくは、バッファメモリにおいて、バッファメモリ内に幾つの情報があるか、を表示する、メモリの充填状態を求めることができる、方法が使用される。
【0015】
好ましくは、時間検出手段、特に計数素子が設けられており、その場合に時間値が求められて、それが予め定めることのできる最大の時間値と比較されることによって、タイムエラーが求められる、方法が使用される。好ましくは、求められた充填状態が、予め定めることのできる最大の充填状態と比較されることによって、非同期情報が求められる、方法が使用される。
【0016】
好ましくは、次の出力データが比較されるべきである、という設定が、比較手段によって行われる、方法が使用される。好ましくは、比較されるべきデータに識別子が対応づけられ、その識別子によって比較が作動される、方法が使用される。
【0017】
また、上記課題を解決するために、本発明の別の観点によれば、好ましくは、少なくとも2つの処理ユニットを有する計算機システムにおいて切り替える装置が使用され、その場合に装置が切り替え手段と比較手段とを有しており、少なくとも2つの駆動モードの間で切り替えられ、第1の駆動モードが比較モードに、第2の駆動モードがパフォーマンスモードに相当し、その場合に比較モードにおいて情報が比較される、この装置は、比較モードにおいて少なくとも2つの処理ユニットが非同期である場合に、処理ユニットの少なくとも1つのもののインターラプト入力に同期化信号が印加されるように形成されていることを特徴としている。
【0018】
好ましくは、比較手段と切り替え手段が構造的に、処理ユニットに対して外部に設けられている、装置が使用される。好ましくは、少なくとも1つのバッファメモリが設けられている、装置が使用される。好ましくは、バッファメモリがFIFOメモリである、装置が使用される。
【0019】
好ましくは、各処理ユニットにバッファメモリが対応づけられている、装置が使用される。好ましくは、各処理ユニットにバッファメモリ、特にFIFOメモリが対応づけられている、装置が使用される。
【0020】
好ましくは、情報の少なくとも1つが一時記憶される、予め定めることのできる期間及び/又は求めることのできる期間から、非同期情報、特にタイムエラーを求めるように形成された手段、特に計数素子が設けられている、装置が使用される。好ましくは、バッファメモリにおいて、バッファメモリ内に幾つの情報があるか、を表示する、メモリの充填状態を求めるように形成された手段が設けられている、装置が使用される。
【0021】
好ましくは、手段が、求められた充填状態が予め定めることのできる最大の充填状態と比較されることによって、非同期情報を求めるように形成されている、装置が使用される。好ましくは、非同期情報に従って同期化情報を発生させるように形成された、同期化手段が設けられている、装置が使用される。好ましくは、非同期情報を処理するように形成された、監視手段が設けられている、装置が使用される。
【0022】
好ましくは、監視手段が、計算機システムに対して外部の監視手段、特にウォッチドッグである、装置が使用される。他の利点と好ましい形態が、請求項の特徴と明細書から明らかにされる。
【発明の効果】
【0023】
以上説明したように本発明によれば、少なくとも2つの処理ユニットに関する駆動モードを切り替えることを可能にする。そのために、各処理ユニットのハードウェア的な構造に介入することが不要であり、かつ、その目的のために付加的な信号を必要としない。
【発明を実施するための最良の形態】
【0024】
以下では、実行ユニット、又は処理ユニットのことをプロセッサ、コア、中央処理装置(CPU)、FPU(Floating Point Unit)、DPS(Digitaler Signalprozessor)、コプロセッサ、又はALU(Arithmetic logical Unit)と称することがある。
【0025】
以下では、2つ以上の処理ユニットを有するシステムが考察される。原則的に、安全上重要なシステム内で各処理ユニットに分散して可能な限り多くの課題を与えることにより、処理能力を向上させる必要がある場合にこの種のリソースを使用する可能性がある。一方、複数の処理ユニットに同一の課題を与えて、結果が等しくない場合にエラーとし、そのエラーを認識することによって安全性を高めるべく、リソースの幾つかを互いに冗長に使用することもできる。
【0026】
幾つの処理ユニットがあるかに応じて複数の駆動モードを考えることができる。2つの処理ユニットを有するシステム(2システム)においては、上述したように「比較」と「パフォーマンス」の2つのモードを実現することが可能である。3つの処理ユニットを有するシステム(3システム)においては、3つの処理ユニットすべてが並列に作業する純粋なパフォーマンスモード、及び3つの処理ユニットすべてが冗長に計算し、かつ、その結果が比較される純粋な比較モードの他、3−2投票モードも実現される。この3−2投票モードとは、3つすべての処理ユニットが冗長に同じ計算を実行し、その出力結果を多数決するのである。さらに、これらの駆動モードの要素がミックスされた駆動モードも実現可能である。例えば、2つの処理ユニットが互いに冗長に計算した結果を比較し、第3の処理ユニットは、他の課題を並列に処理する駆動モードも可能である。4以上の処理ユニットを有するシステムにおいては、さらに他の組合わせを有する駆動モードが考えられる。
【0027】
しかし、ここで解決すべき課題は、システムに含まれる複数の処理ユニットに対し、(例えば、同期化のために)各処理ユニットの既存の構造へ介入することなしに、駆動において可変に使用することを可能にすることである。例えば、各処理ユニットが専用のクロックで駆動可能であり、比較処理のために実行する同じ課題の処理を互いに非同期で処理できるようにすることである。
【0028】
その課題の解決手段は、普遍的で広く使用できる構成により形成された手段(例えば、IP)により実現される。その手段は、事前に処理ユニットをオフにすることなしに、任意の時点で駆動モード(例えば、比較モード、パフォーマンスモード、又は投票モード)の切り替えを可能にし、互いに非同期のデータフローの比較、又は投票を管理することができる。また、その手段は、チップにより形成され、又は少なくとも1つの処理ユニットと共にチップ上に集積して形成されうる。さらに、そのチップが1片のシリコンから形成されてもよいが、別々のモジュールから形成されることも可能である。
【0029】
また、異なる処理ユニット間の同期を保証するために、個々の処理ユニットが継続的に進行させるプログラム処理を阻止する信号(又は一時停止させる信号)が必要である。そのため、通常、ウェイト(WAIT)信号が利用される。なお、ウェイト信号を使用しない場合でも、その実行ユニットは、インターラプトを介して同期させることもできる。そのため、同期化信号(例えば、図2の信号M140)は、ウェイト入力へ案内されずにインターラプトへ印加される。なお、同期のためのインターラプトは、ノーマルな作業方法を中断するため、ノーマルな作業方法に関する処理プログラムに対し、そして、他のインターラプトに対して、十分に高い優先順位を有する必要がある。
【0030】
そのため、付属のインターラプトルーチンは、中断されたプログラム内へ再びジャンプバックする前に、所定の数のNOP(データへの作用なしの空指令)を実施し、それによって処理プログラムのそれ以降の処理を遅延させる。場合によっては、ノーマルなプログラム処理をインターラプトによって損なわないようにするために、インターラプトルーチン内で最初と最後にさらに通常のメモリ操作が行われなければならない。
【0031】
このプロセスは、同期化が形成される(例えば、他の処理ユニットが予測される比較データを供給する)までの期間、続行される。しかし、この方法を用いると、正確なクロック同期性と他の処理ユニットに対する同位相性とが条件付きでしか保証されない。従って、同期化のためにインターラプト信号を利用する場合には、比較すべきデータを、それが比較される前に、所定の記憶手段(UVE)内に中間記憶することが推奨される。
【0032】
本実施形態の利点は、経済的に提供可能な任意の標準構造を有するハードウェア資源を使用できることである。というのは、付加的な信号を必要とせず(ハードウェア構造への介入なし)、例えば、これらのコンポーネントの直接アクターの駆動に使用される任意の出力信号を監視することができるからである。この方法は、従来技術に基づく比較処理によっては直接検査することができなかったDACやPWMのような変換器構造の検査も、含んでいる。
【0033】
個々の課題、又はSWタスクのために検査が必要とされない限りにおいて、様々なタスクが種々の処理ユニットに分配されることで、パフォーマンスモードへの切り替えも可能である。
【0034】
他の利点は、比較モード、又は投票モードにおいて、すべてのデータを比較する必要がないことである。比較、又は投票すべきデータのみが切り替えユニット内、又は比較ユニット内で互いに同期される。データの選択は、切り替え及び比較ユニットの所望の応答によって可変(プログラミング可能)であり、任意の処理ユニットアーキテクチャ及び適用に適合させることができる。それによって様々なμC(マイクロコントローラ)又はソフトウェア部分の使用も、容易に可能である。というのは、有意義な方法で比較することのできる結果のみが、実際にも比較されるからである。
【0035】
さらに、それによってメモリ(例えば、外部のメモリ)へのアクセス、又は、外部のI/Oモジュールの駆動を監視することができる。内部の信号は、ソフトウェア制御される切り替えモジュールへの付加的な出力を介して、外部のデータ及び/又はアドレスバス上で検査することができる。
【0036】
例えば、比較操作のためのすべての制御信号は、プログラミング可能な切り替え及び投票ユニット内で生成され、比較もそこで行われることが好ましい。出力が互いに比較される処理ユニット(例えば、プロセッサ)は、ソフトウェアエラーを検出するために、同一のプログラム、二重化されたプログラム(これが付加的に、メモリアクセスの際のエラーの認識を可能にする)、又は多様化されたプログラムを利用することができる。その場合、処理ユニットによって準備されたすべての信号を互いに比較する必要はなく、識別子(アドレス信号、又は制御信号)を用いて比較のための所定の信号を形成すること、又は形成しないことも可能である。この識別子は、切り替え及び比較ユニット内で評価され、それに応じて比較処理が制御される。
【0037】
別体に設けられたタイマーは、予め定めることのできるリミット(所定の制限時間)にわたって時間行動における偏差を監視する。切り替え及び比較ユニットの一部又は全部のモジュールは、チップ上、共通のボード上に集積することが可能であり、又は空間的に別々に収容することもできる。後者の場合、データと制御信号は適当なバスシステムを介して互いに交換される。そのとき、レジスタには、バスシステムを介してデータが書き込まれ、その中に格納されたデータ、アドレス信号、及び制御信号の一部又は全部を用いてプロセスを制御する。
【0038】
図1には、2つの処理ユニットと信号B10及び信号B11とを組み合わせて適用することが可能な本実施形態に係る切り替えユニットB01の基本構造が示されている。処理ユニットB10及びB11から出力されるデータ信号、制御信号及びアドレス信号B20及びB21が含まれる種々の出力信号を示す矢印が切り替えユニットB01に接続されている。さらに、少なくとも1つの同期化信号、及び2つの出力信号B40及びB41が存在し、それらが比較ユニットの1つと接続(入力)されている。
【0039】
切り替えユニットは、少なくとも1つの制御レジスタB15を有している。また、その制御レジスタは、比較ユニットのモードを切り替えるためのバイナリ信号(ビット)B16を保持するために少なくとも1つのメモリ素子を有している。バイナリ信号B16は、少なくとも2つの値0及び1をとることが可能であり、比較ユニットから出力される信号B20又はB21に応じて、又は切り替えユニットの内部プロセスに応じて、セット又はリセットされうる。
【0040】
バイナリ信号B16が第1の値にセットされている場合、切り替えユニットは、比較モードで駆動する。比較モードにおいて、データの有効性と、データの比較処理を通知する信号B20及びB21により構成される制御信号及び/又はアドレス信号に関する所定の比較条件とが満たされている限り、信号B20により構成される全ての到着信号は、信号B21により構成されるデータ信号と比較される。
【0041】
上記の比較条件が2つの信号B20及びB21において同時に満たされている場合、これらの信号により構成されるデータが互いに比較され、等しくない場合には、エラー信号B17がセットされる。信号B20及びB21に関する比較条件が満たされている場合には、該当する同期化信号B40又はB41がセットされる。この信号は、該当する処理ユニットB10又はB11内で実行される処理を停止するように制御し、それまで互いに比較できなかった該当する信号がさらに接続されることを阻止する。信号B40又はB41は、それぞれ他方の処理ユニットB21又はB20の該当する比較条件が満たされるまでの期間、セットされ続ける。この場合、比較処理が実施され、それに応じた同期化信号がリセット(再設定)される。
【0042】
上記のように、比較すべきデータが2つの処理ユニットから同時に準備されない場合において比較を保証するために、該当する同期化信号B40又はB41がリセットされるまで(例えば、該当する値に維持することが必要とされるか、又は最初に準備されたデータを切り替えユニット内に比較まで)該当する処理ユニットから出力されたデータと比較条件とを記憶しておかなければならない。
【0043】
ある処理ユニットは、どの処理ユニットが最初にデータを準備するかに応じて、他の処理ユニットが該当する比較データを準備するまで、そのプログラム又はプロセスの更なる処理を待たなければならない。
【0044】
図1に示すように、本実施形態に係る切り替えユニットは、一つの付属の処理ユニットが他の処理ユニットよりも早く比較データを準備しないことが常に保証される場合、信号B40又はB41の1つを省くことができる。
【0045】
バイナリ記号ビットB16が第2の値にセットされている場合、同期化信号B20及びB21、及びエラー信号B17は、常にインアクティブであって、例えば、値0にセットされている。2つの処理ユニットは、比較を行うことなく互いに独立して処理を進める。
【0046】
本実施形態に係るシステム内の重要なコンポーネントは「比較器」である。そこで、図1Aに、この比較器の構成について簡単な形式で示した。比較コンポーネントM500は、2つの入力信号M510及びM511を受け取ることができる。その後、同コンポーネントは、これらの信号の同一性について、ビット単位の同一性を比較することができる。不同一性(不一致)が検出された場合、エラー信号M530がアクティブ化(例えば、出力)されて、信号M520は非アクティブ化される(例えば、出力されない)。
【0047】
2つの入力信号が同一の場合、入力信号M510又はM511の値が出力信号M520へ与えられる。このとき、エラー信号M530は非アクティブであり、すなわち「グッド」状態を知らせることができる。当業者であれば、この基本構成を有するシステムから多数の拡張された実施形態が考えられるであろう。例えば、コンポーネントM500を所謂TSC(Totally Self Checking)コンポーネントとして形成することができる。この場合、エラー信号M530は、少なくとも2本の導線(所謂「デュアルレール」)を通じて外部にガイドされる。この信号を受けることで、内部のデザイン及びエラー発見機構、又は比較コンポーネントが検出可能なエラーの場合が認識され、出力信号が正しいか、又は認識可能な範囲で不正であることが保証される。本実施形態に係るシステムにおいて、こうしたTSCを適用可能な比較器を使用することも可能である。
【0048】
本実施形態の別のクラスは、2つの入力M510及びM511(又は図1Cに示すM610及びM611)がどの程度の同期性を持たなければならないか(つまり、同期性の程度)を区別することができることに特徴を有する。例えば、クロック単位の同期性を有することを特徴とする。このとき、データの比較がクロック単位で実施される。別の例として、入力信号間の位相オフセットが固定されている場合、例えば、該当する信号を整数のクロック周期、又は半分のクロック周期だけ遅延させるための同期遅延素子が使用される。この種の位相オフセットは、コモンコーズエラー(つまり、同時に複数の処理ユニットに作用する可能性のあるエラー)を回避するために有用である。
【0049】
そこで、図1Cに示すように、コンポーネントM500を改良して、入力信号M610又はM611の早い方の入力信号を位相オフセット分だけ遅延させるコンポーネントM640(遅延素子)が挿入されている。つまり、図1Cは、図1Aの構成に新たな構成を導入して改良したものである。この遅延素子は、比較モードにおいて使用されるように、比較器内に収容されている。この遅延素子に対し、その代りに、或いは、それに加えて、同様の非同期性を許容可能にするため、入力チェーン内に中間バッファを設けることができる。この中間バッファは、例えば、FIFOメモリにより設計される。この種のバッファが存在する場合、バッファの最大深度まで非同期性を許容することができる。また、バッファがオーバーフローした場合にエラー信号が出力されるように構成することができる。
【0050】
さらに、図1A又は図1Cに示す比較器内で、どのように信号M520(又は信号M620)が生成されるか、に応じて区別することができる。例えば、入力信号M510又はM511(又は、信号M610又はM611)を出力へ与え、スイッチによって接続を中断可能にすることができる。この構成の利点は、パフォーマンスモードと、可能な種々の比較モードとの間を切り替える手段に、同一のスイッチを使用することができることである。別の例として、信号を、比較器内部の中間バッファから生成することもできる。
【0051】
本実施形態の更に別のクラスは、比較器に対して入力される複数の入力信号が存在するか、及びこの入力に対して比較器がどのように反応するか、に応じて出力を異にすることができる。例えば、入力が3つの場合、多数決、3つ全部の比較、又は2つの信号だけの比較を行うモードを選択可能にすることができる。また、入力が4つ以上の場合、それに応じて多くの変形例が考えられる。この変形例は、システム全体が有する種々の駆動モードに対応して決定される。
【0052】
図1Bに、切り替え及び比較ユニットの一例が示されている。n個の考慮すべき実行ユニットから、nの信号N140、…、N14nが切り替え及び比較コンポーネントN100へ入力される。このコンポーネントは、これらの入力信号から、n個の出力信号N160、…、N16nを生成することができる。簡単な例として、「純粋なパフォーマンスモード」の場合、すべての信号N14i(i=1、…、n)が対応する出力信号N16i(i=1、…、n)へガイドされる。一方、「純粋な比較モード」の場合、すべての信号N140、…、N14nが1つの出力信号N16j(1≦j≦n)にガイドされる。
【0053】
さらに、図1Bには、切り替え可能な駆動モードの決定方法が示されている。つまり、図1Bに示すコンポーネントには、切り替え論理の論理コンポーネントN110が含まれている。論理コンポーネントは、切り替え論理専用のコンポーネントとして構成される必要はなく、そのコンポーネントが有する一つの機能として、その機能が存在すればよい。そのコンポーネントは、まず、幾つの出力信号が存在するか(つまり、出力信号数)を定める。さらに、切り替え論理コンポーネントN110は、どの入力信号が、どの出力信号に対応(又は、寄与)するかを定める。このとき、1つの入力信号が、正確に1つの出力信号に寄与することも可能である。数学的な表現を用いると、切り替え論理コンポーネントは、集合{N140、…、N14n}の要素と集合{N160、…、N16n}の要素とを対応付ける機能を有している。
【0054】
さらに、処理論理コンポーネントN120は、出力信号N16i(i=1、…、n)の各々について、どのような形式で入力信号と出力信号とが対応付けられるか、を定める。このコンポーネントは、上記の切り替え論理コンポーネントと同様に、専用のコンポーネントとして構成される必要はない。つまり、システム内で上述した機能が実現されていればよい。説明の便宜上、例えば、普遍性を損なうことなしに、出力信号N160が入力信号N141、…、N14mによって生成されるものと仮定する。m=1である場合、これは単純に信号のスルー接続に相当し、m=2である場合、入力信号N141及びN142が比較される。この比較処理は、同期又は非同期で実施することが可能である。また、その比較処理は、ビット単位、又は有意のbit値で、或いは許容帯域で実施することが可能である。
【0055】
m≧3の場合には、複数の可能性が生じる。
【0056】
第1の可能性は、すべての入力信号N141、…、N143を比較し、少なくとも2つの異なる値が存在する場合にエラーが検出され、そのエラーが選択的に通知されるというものである。
【0057】
第2の可能性は、mに応じてkを選択(k>m/2)することである。これは、比較器を使用することによって実現される機能である。少なくとも1つの信号が一致しないと認識された場合に、エラー信号を生成することができる。また、3つの信号すべてが異なる場合に、異なるエラー信号を生成することができる。
【0058】
第3の可能性は、入力信号の値をアルゴリズムへ供給することである。例えば、平均値、中央値の算出、又はエラーを許容するためのアルゴリズム(FTA;フォルト・トレラント・アリゴリズム)が使用される。この種のFTAは、入力値の極値を捨て去って、残りの値に対してある種の平均処理を行うアルゴリズムに基づいている。この平均処理は、残りの値の全量に対して、又はHWにおいて容易に形成される部分量に対して実行することができる。そのとき、入力値を実際に比較することは必ずしも必要ではない。例えば、平均値を形成する過程において、加算と割り算とを実行すれば済む。また、FTM(フォルト・トレラント・ミッドポイント・アリゴリズム)、FTA、又は中央値は、部分的なソートを必要とする。極値が十分に大きい場合は、選択的にエラー信号を出力することができる。
【0059】
上述したこれら種々の可能性について、複数の信号を1つの信号に処理する操作のことを比較操作と呼ぶことにする。
【0060】
従って、処理論理コンポーネントの課題は、各出力信号について(また、それに伴って各入力信号についても)比較操作の正確な形態を定めることである。切り替え論理コンポーネントN110の機能(すなわち上述した機能)と処理論理コンポーネントの機能(すなわち出力信号当たり、又は機能値当たりの比較操作による決定機能)とに関して得られる情報の組合わせがモード情報であり、モード情報に基づいて駆動モードを決定する。この情報は、通常、多値であって、1つの論理ビットを介して表示可能であるだけではない。すべての論理的に考えられるモードが、与えられた実装内で有意義ではなく、好ましくは許容されるモードの数が制限される。つまり、実行ユニットが2つの場合(比較モードのみが存在する場合)、全情報を1つの論理ビットに凝縮することができる。
【0061】
パフォーマンスモードから比較モードへの切り替えの際に、パフォーマンスモードにおいて、対応する異なる出力へ入力信号をコピーしていた実行ユニットを、比較モードにおいて、同じ出力へ入力信号をコピーするように切り替えることによって実現される。
【0062】
上記の機能は、実行ユニットの部分システムによって実現される。パフォーマンスモードにおいて、部分システム内で考慮される全ての入力信号N14iが直接関連する出力信号N16iへと接続される。一方、比較モードにおいて、全ての入力信号N14iが1つの出力へコピーされる。代替的に、この種の切り替えをペアリングを変更することによって実現することもできる。これは、本実施形態において、許されるモードの集合をこのように制限することができるにも関わらず、例えば、パフォーマンスモードと比較モードとを対象にすることができないことによって表される。しかし、常に、パフォーマンスモードから比較モード(及びその逆)への切り替えについて対象にすることができる。
【0063】
これらのモード間で、ソフトウェアを介して制御されて、動的に駆動を切り替えることができる。その場合に、モードの切り替えは、特殊な切り替え機能、特殊なインストラクションシーケンス、明確に特徴づけられたインストラクションの実施を介して、又はマルチプロセッサシステムの実行ユニットの少なくとも1つによる所定のアドレスへのアクセスによって実現される。
【0064】
図2には、本実施形態に係る切り替え及び比較ユニットM100が示されている。より詳細には、2プロセッサシステム、又は2μCシステム(つまり、2処理ユニットシステム)が示されている。但し、同システムにおいては、選択的に、信号の一部を省くこともできる。このシステムは、主に、2つの処理ユニット(M110、M111)と切り替え及び比較ユニットM100とから構成される。各処理ユニットから、データ信号(M120、M121)とアドレス/制御信号(M130、M131)とが切り替え及び比較ユニットに入力される。各処理ユニットは、選択的に、切り替え及び比較ユニットからデータ信号(M150、M151)と制御信号(M140、M141)を返す。切り替え及び比較ユニットM100は、データ信号(M160、M161)とステータス情報M169とを出力する。例えば、切り替え及び比較ユニットM100は、データ信号(M170、M171)及び制御信号M179等の信号を受信し、それらの信号を処理ユニットへガイドすることもできる。
【0065】
なお、データ信号M170及びM171、及び制御信号M179を介して、選択的に、処理ユニットに関係なく切り替え及び比較ユニットM100の駆動モードが調節されるように制御することもできる。同様に、プロセッサ(処理ユニット)は、切り替え及び比較ユニットM100内に出力する(例えば、データバスを介して出力する)データ信号M120及びM121と、アドレス及び制御信号M130及びM131(例えば、ライト)を介して駆動モードを調節することができる。例えば、パフォーマンスモード(比較なし)、又は比較モード(例えば、データ信号M120及びM121、及び/又は、周辺ユニットから入力されるデータ信号M170及びM171の比較処理を含む)。パフォーマンスモードにおいて、データ出力M120及びM121は、例えば、制御信号と組み合わされ、データ出力M160及びM161へガイドされる。逆に、入力されるデータ信号M170及びM171は、データ信号M150及びM151へガイドされる。
【0066】
比較モードにおいて、出力が比較される。例えば、エラーのない場合だけデータ信号M160及びM161へガイドされる。その場合、選択的に2つの出力が利用されるか、又は2つのうちの一方のみが利用される。同様に、処理ユニットへガイドされる入力されたデータ信号M170、M171の検査も可能である。比較モードにおいて、信号の比較にエラーがある場合、エラー信号が生成される。例えば、エラー信号は、ダブルレール信号を用いて、エラーなく外部へ通知される(例えば、ステータス情報M169の構成部分)。ステータス情報M169は、駆動モード、又は実行ユニットが出力する信号の時間的なオフセットに関する情報を含むことができる。
【0067】
予め定めることのできる(プログラミング可能な)タイムインターバル内で処理ユニットの比較データが準備されない場合、エラー信号がアクティブ化される。エラーの場合には、出力されるデータ信号M160及びM161を遮断(フェイルサイレンス動作;fail silent holds back)することができる。これは、デジタル信号についても、アナログ信号についても同様である。しかし、この出力制御ステップは、後からエラーを発見する可能性を考慮して、処理ユニットを遅延させない(中間記憶させない)ように、出力されるデータ信号M120及びM121を出力することもできる。この処理は、安全上、重要なシステムにおいて、エラー許容時間を超えるまで、すなわち(慣性的に)システムがエラーに反応して取り返しがつかなくなる前の補正の可能性がある間において許容される。
【0068】
所定の記憶手段(UVE)へガイドされない出力信号M180及びM181と、処理ユニットの内部の信号も、少なくとも、その計算された値に関して、この値を比較のために出力されるデータ信号M120及びM121として出力することにより比較することができる。同様な処理を、切り替え及び比較ユニットM100を介さずに入力される入力信号M190及びM191によって実現することが可能である。
【0069】
切り替え及び比較ユニットM100を監視するために、選択された一部のデータ信号、又は全てのデータ信号M160及びM161について、それらをデータ信号M170及びM171、又は入力信号M190及びM191を介して読み直すことが可能である。従って、比較モードにおいて、切り替え及び比較ユニットM100から出力される信号からエラーが検出されることを保証することができる。(オア結合において)切り替え及び比較ユニットM100、処理ユニットM110及びM111がアクセスする適切な遮断パスによって、システム全体のフェイルサイレンス動作を実現することができる。
【0070】
図3は、図2に示した切り替え及び比較ユニットM100の可能な実装をより詳細に示した説明図である。切り替え及び比較ユニットM100は、駆動モード(パフォーマンス又は比較)を表す少なくとも1つのビットを有するコントロールレジスタM200と、比較モードにおけるエラー状態を表す少なくとも1つのビットを有するステータスレジスタM220を有している。ウェイト信号、及びインターラプト信号が、それぞれ2つの処理ユニットに対し、コントロールレジスタ内の他のビットによって制御される。その場合、例えば、同期目的が、駆動モード切り替えの準備のためなのか、又はエラー処理のためなのかによって、種々のインターラプトの間で区別される。
【0071】
選択的に、例えば、内部又は外部のウォッチドッグを駆動するために処理ユニットの間で最大に許容される時間差(クロック周期の数)を有するコントロールレジスタM240と、時間差値(この時間差値は、例えば、データレジスタのオーバーフローを阻止するために、最も高速のプロセッサがウェイト信号又はインターラプト信号を用いて時々停止又は遅延されなければならないときに用いられる値である。)を有するコントロールレジスタM241とを含み、他のコントロールレジスタも設けられる。
【0072】
ステータスレジスタM220内には、エラービットの他に、処理ユニット間のクロックオフセットが現在どのくらい大きいかという情報も記憶される。そのため、例えば、アドレス/制御信号のように、所定のアドレス領域を介して特徴的なデータ信号が最初に準備された場合は、常に、少なくとも1つのタイマーM230が処理ユニットによって始動される。さらに、該当するデータ信号が第2の処理ユニットによって準備された場合、常に、タイマーの値がステータスレジスタへ転送される。タイマーは、例えば、プログラムシーケンスが異なっても、WCET(Worst Cace Execution Time)に従って保証され、すべての処理ユニットがデータを供給しなければならないように調節される。タイマーが予め定められた値を上回った場合にエラー信号が出力される。
【0073】
処理ユニットから出力されるデータ信号M120及びM121は、切り替え及び比較ユニットM100内で、特に比較モードのために、それがデジタルのデータであって、クロックが正しく準備できない限りにおいて、バッファメモリM250及びM251内に記憶される。このバッファメモリは、FIFOメモリとして形成することができる。このバッファメモリが1(レジスタ)の深度しか持たない場合、データ損失を回避するために、例えば、ウェイト信号によって、比較が行われるまで他の信号の出力が遅延される。
【0074】
さらに、バッファメモリM250及びM251、ダイレクト入力されるデータ信号M120及びM121、又はデータ信号M170及びM171のデジタルデータを比較する比較ユニットM210が設けられている。この比較ユニットは、例えば、バッファメモリM250及びM251内でシリアルデータを受信し、パラレルデータに変換することができる。その後、比較ユニットM210内で比較される場合、シリアルのデジタルデータ(例えば、PMW信号)も互いに比較することができる。同様に、非同期のデジタル入力信号であるデータ信号M170及びM171を付加的なメモリユニットM270及びM271を介して同期させることができる。
【0075】
入力されるデータ信号M120及びM121の場合と同様にFIFO内に一時バッファされる。パフォーマンスモードと比較モードとの間の切り替えは、コントロールレジスタ内のモードビットのセット又はリセットによって行われる。例えば、2つの処理ユニット内に、それに応じたインターラプトがもたらされる。比較自体は、準備されたデータ信号M120及びM121と、それに属するアドレス/制御信号M130及びM131によって促される。その場合、データ信号M120とアドレス/制御信号M130と、又はデータ信号M121とアドレス/制御信号M131と、からなる所定の信号が対応付けられたデータの比較を行うべきか否かを表す識別子として機能する。
【0076】
これが、図1の単純な切り替えに対する他の実施形態である。ここでは、例えば、比較モードへ移行する場合にインターラプトルーチンを用いて種々の前準備が行われ、それによって2つの処理ユニットのために同一の初期条件が設定される。処理ユニットがその用意ができている場合に、その処理ユニットによってプロセッサ固有のレディビットがコントロールレジスタ内にセットされて、処理ユニットは、他の処理ユニットが準備完了をレディビットによって知らせるまで(図6のコントロールレジスタの説明も参照)、待機状態に留まる。
【0077】
この比較ユニット内で、同様にアナログデータをそれに適した特殊なアナログ比較ユニットM211(analog compare unit)内で互いに比較することができる。これは、アナログ信号の出力が互いに十分に同期して行われるか、又はアナログ比較ユニット内に実装されているADCによってデジタル化されたデータが記憶される(図12〜図14も参照)ことを前提としている。
【0078】
同期化は、比較ユニットのデジタル出力(データ信号、アドレス/制御信号)が上述したように互いに比較されて、早すぎる処理ユニットを待たせることによって達成することができる。この目的のために、アナログ信号のソースとして処理ユニット内で処理されるデジタル信号も(これらの信号は外部では必要とされないかもしれないが)、出力されるデータ信号M120及びM121を介して切り替え/比較ユニットM100へ入力されうる。アナログ信号の比較に加えて、この冗長な比較を実行することは、計算システム内のエラーを早い時期に予め認識することができるため、処理ユニットの同期化をさらに容易にすることを可能にする。
【0079】
アナログ信号の比較は、処理ユニットのDAC(Digital to Analog Converter)に対する付加的なエラー認識を実現することができる。DCSLアーキテクチャの他の構造において、この種の可能性は与えられていない。周辺ユニットから入力されるアナログ信号についても比較が可能である。特に、それが同じシステムパラメータの冗長なセンサ信号である場合、付加的な同期化措置は必要とされず、場合によっては、センサ信号の有効性を表示する信号のみが必要とされる。アナログ信号について、さらに比較処理の詳細を示す。
【0080】
図4は、少なくとも(n+1)個の処理ユニットを有するマルチプロセッサシステムを示している。その場合、これらのコンポーネントの各々は、ここでも複数の部分処理ユニット(適当な付加コンポーネントを備えた、CPU、ALU、又はDPS)から形成されうる。これらの処理ユニットの信号は、図2に示す2システムにおいて説明されたのと実質的に同一であり、切り替え及び比較ユニットと結合されている。
【0081】
従って、図4における全ての信号とコンポーネントは、図2の対応するコンポーネント及び信号と実質的に同一の意味を有している。切り替え及び比較ユニットM300は、マルチプロセッサシステム内で、パフォーマンスモード(全ての処理ユニットが異なるタスクを処理する)、種々の比較モード(2つ又はそれより多い処理ユニットのデータが比較され、ずれている場合(不一致の場合)にエラーが通知される)、及び種々の投票モード(異なるように設定可能なアルゴリズムに従って偏差がある場合に多数決(つまり、一致する結果が多いものを正しいとする方法))の間で区別することができる。その場合、各処理ユニットについて、それがどのモードで動作しているか、及び他のどの処理ユニットと協働しているか、を別々に決定することができる。
【0082】
次に、図6に示すコントロールレジスタについて説明し、切り替えがどのようにして正確に行われるかについて詳細に述べる。
【0083】
図5は、(n+1)の処理ユニットを有するマルチプロセッサシステムのための切り替えユニットの可能な実施形態を示している。各処理ユニットについて、切り替え及び比較モジュールの制御ユニット内に少なくとも1つのコントロールレジスタM44i(i=1、…、n)が設けられている。さらに、図6は、コントロールレジスタのセットについて説明するための説明図が示されている。ここで、コントロールレジスタM44iは、それぞれコントロールレジスタCiに対応する。
【0084】
コントロールレジスタについては種々の実施形態が考えられる。適当なビットコンビネーションを介して、エラー認識パターンを使用すべきか、エラー許容パターンを使用すべきか、を記述することができる。それぞれ切り替え及び比較ユニットM300に掛ける手間とコストに応じて、さらに、どのタイプのエラー許容パターン(3から2、中央値、4から2、4から3、FTA、FTM…)を使用するか、も示すことができる。さらに、どの出力をスルー接続するか、も構成可能に形成することができる。どのコンポーネントがどのデータについて、このコンフィグレーションに影響を与えることができるか、に基づいて実施形態を形成することもできる。
【0085】
関与する処理ユニットの出力信号が、切り替えユニット内で互いに比較される。信号は、必ずしもクロックに対して正しく処理される必要はないが、データの一時記憶が必要である。その場合に、種々の処理ユニットから切り替え及び比較ユニットに大きい時間差をもって与えられるデータを、切り替え及び比較ユニット内で比較することもできる。中間メモリ(例えば、FIFOメモリとして形成;First In−First Out、あるいは他のバッファ形態)を使用することによって、他の処理ユニットがデータを準備できていない間、1つの処理ユニットから複数のデータを受信することもできる。
【0086】
その場合、2つの処理ユニットの同期性の尺度が、FIFOメモリの充填状態である。所定の充填状態を上回った場合、処理の進み方が遅い処理ユニットを待機するため、処理が最も進んでいる処理ユニットが、ウェイト信号、又は適当なインターラプトルーチンに応じて停止される。その場合、監視を処理ユニットに提供可能なすべての外部の信号にも広げるべきである。それは、アナログ信号又はPWM信号も含む。そのために切り替え及び比較ユニット内に、この種の信号の比較を許す構造が設けられる。付加的に、比較すべきデータ間の最大の時間偏差を予め定めておき、少なくとも1つのタイマーによって監視することが可能である。
【0087】
例えば、2つ以上の処理ユニットが共通の切り替え及び比較ユニットによって互いに接続される場合、これら処理ユニットの各々のために、又は全処理ユニットのために、コントロールレジスタが必要である。このコントロールレジスタの特徴的な形態が、図6に示されている。
【0088】
それぞれ、コントロールレジスタCxの下方の(n+1)番目に位置するビットB500xからB50nxまでが、(n+1)番目のプロセッサ又は処理ユニットに対応付けられている。コントロールレジスタCxのビットB514xは、比較又は投票とパラレル作業との間での切り替え、つまり、図1に示すバイナリ信号B16の値に対応する。ビットB513xは、該当する処理ユニットが比較の準備ができているか否か(Ready)を表示する。また、ビットB512xは、同期化信号(ウェイト又はインタラプト;WAIT又はINTERRUPT)を制御する。そして、ビットB511xは、該当する処理ユニットxをインターラプトによって比較の準備をさせるために利用することができる。同様に、ビットB5110xは、処理ユニットをパラレルモードへ戻すためのインターラプトを制御する。
【0089】
コントロールレジスタCkのビットB50ikとビットB50kkとが1にセットされている場合(0≦i、k≦n)、この実施形態において、処理ユニットiの出力が処理ユニットkの出力と比較されるべきことを意味している。さらに、ビットB50jkも1に等しい場合、i、j及びkの間で投票が行われ、投票結果がUVEの出力kに出力される(0≦i、j、k≦n)。そのため、各グループの処理ユニットについて、図5の説明で例示されているように、投票又は過半数比較の特徴的な種類を定めることができる。例えば、UVEの出力kに投票結果を出力させようとする場合、比較すべき、又は投票すべき処理ユニットi(コントロールレジスタCk内)に対応する全てのビットB50ikがセットされなければならない。他の出力へのパラレルな出力も可能である。
【0090】
コントロールレジスタi(0≦i≦n)のB50iiが1の場合は、比較ユニットの出力iがアクティブになるべきことを意味している。全てのコントロールレジスタCiが該当するメモリ箇所のビットB50ii(i=0、1、…、n)内でだけ1である場合、全ての処理ユニットは、任意の異なるプログラムと専用の出力信号とを有するパフォーマンスモードで駆動する。すべての下方(n+1)番目に位置するビットB50ikが1に等しい場合(i=0、1、…、n)、さらに、ビットB514kがセットされている場合、すべての処理ユニットの出力信号が多数決(投票)によって選択されて、UVEの出力kへ出力される。なお、n=1である場合には比較のみが行われる。
【0091】
以下の説明では、複数の処理ユニットを有するシステム内で比較/投票へ移行する場合のシーケンスの例について説明する。
【0092】
比較又は投票をアクティブ化するために、コントロールレジスタCi内にビットB514iがセットされる。このビットは、処理ユニット自体によっても、或いは、所定のシステム状態、時間条件、又は他の条件(例えば、所定のメモリ領域へのアクセス、エラー、又は非蓋然性等)に応じて、切り替え及び比較ユニットからセットすることもできる。
【0093】
ビットB514iと共に、ビットB50iiとビットB50kiとがセットされる場合、UVEによって自動的にビットB511iとビットB511kとがセットされ、それによって処理ユニットiとk内でインターラプトが作動される。このインターラプトに応じて、処理ユニットが所定のプログラム部分へジャンプし、比較モードへ移行するための所定の初期化ステップが実施される。その後、切り替え及び比較ユニットへ応答(Ready信号)が出力される。
【0094】
Ready信号は、処理ユニットの各々に対応するコントロールレジスタCi内のインターラプトビットB511iの自動的なリセットを実現すると同時に、ウェイトビットB512iのセットを実現する。関与する処理ユニットのすべてのウェイトビットがセットされている場合、それらが切り替え及び比較ユニットによって同時にリセットされる。その後、処理ユニットが、監視すべきプログラム部分の処理を開始する。ある実施形態において、セットされたビットB514iを有するコントロールレジスタCiへの書込みが、ロック(HW、又はSW)によって阻止される。この方法を適用すると、処理の間、比較器のコンフィグレーションが変更できない効果をもたらす。
【0095】
コントロールレジスタCi内の変更は、ビットB514iのリセット後に初めて可能になる。このリセットは、ノーマルモード(パラレルな作業方法)へ移行するために、すべての関与する処理ユニットのコントロールレジスタ内にビットB510xをセットすることによって、該当する処理ユニット内にインターラプトをもたらす。
【0096】
全てのコントロールレジスタが有する相互の一貫性は、ユーザー設定に応じて監視され、エラーの場合は、ステータス情報に含まれるエラー信号が生成される。例えば、1つの処理ユニットが、複数の独立した比較又は投票プロセスのために使用されてはならないのである。なぜなら、同期化が保証されないからである。しかし、データ信号が出力されず、等しくない場合には、エラー信号を発生させるためだけに複数の処理ユニットを比較することも考えられる。
【0097】
他の実施形態においては、比較又は投票に関与する処理ユニットのうち、複数又は全てのコントロールレジスタ内の入力が同様に実行され、これらの処理ユニットの該当するビットは、例えば、出力を制御する専用のビットiを除いて、同種にセットされる。
【0098】
図7には、中央の投票のための投票ユニットQ100が示されている。投票は、適切なハードウェアによっても、ソフトウェア的に実施することもできる。そのために投票アルゴリズム(例えば、ビットが正しい投票)が前もって定められる。その場合、投票ユニットQ100には、複数の信号Q110、Q111、及びQ112が入力され、これらの信号から、投票(例えばn個の信号からm個の信号を選択)を実施した結果得られる出力信号Q120が形成される。
【0099】
比較する際、エラーが発生した場合に、該当するコントロールレジスタ内にエラービットがセットされる。また、投票の際、該当する処理ユニットのデータは無視される。なお、単純な比較においては、出力が遮断される。
【0100】
プログラミングされた時間の経過前に間に合うように準備されなかった全てのデータは、エラーと同様に処理される。エラービットのリセットは、システムによって行われ、場合によっては該当する処理ユニットの再統合を可能にする。
【0101】
図8に示すように、処理ユニット及び/又は投票者が空間的に集中して配置されていない場合、適切なバスシステムと組み合わせて分散した投票も可能である。図8において、分散した投票ユニットQ200は、制御ユニットQ210によって管理される。投票ユニットは、バスシステムQ221及びQ222を介して結合されており、これらのバスシステムを介してデータを入手し、それをまたバスシステムへ出力する。
【0102】
アクティブな出力ビットを有するコントロールレジスタ内の比較又は投票ビットのリセットは、関与する処理ユニット内にインターラプトをもたらし、それら処理ユニットがパラレルな作業方法に戻される。その場合、各処理ユニットは、別々に管理され、異なるジャンプインアドレスを有することができる。その場合、プログラム処理は、同一のプログラムメモリから行うことができる。しかし、アクセスは別々であって、通常異なるアドレスで行われる。パラレルなモードに比較して、安全上の重要な部分が少ない限りにおいて、二重化された安全部分を有する専用のプログラムメモリの方が複雑さが少ないか否かが判断される。データメモリも、パフォーマンスモードにおいて共通に利用することができる。その場合、アクセスは、例えば、AHB/ABPバスを用いて順次行われる。
【0103】
特徴的な構成として、さらに、エラービットがシステムによって評価されなければならないことについて述べる。エラー場合、安全な遮断を保証するために、安全上の重要な信号は、適切な形式で冗長に実現されなければならない(例えば2から1コード)。
【0104】
図1、図2、図3、図4、及び図5に示すUVEにおいて、処理ユニットが、互いに一定の位相関係にある同一又は互いに導き出されたクロックで働くものと仮定されていた。また、処理ユニットのために、位相関係が変化する異なる発振器、及びジェネレータのクロックが使用される場合、そして、それらがクロックドメインを代える場合には、それらが発生する信号を同期させなければならない。そこで、図9に示すような同期化装置M800が利用される。特に、デジタルデータを安全に格納し、かつ、比較するためには、同期化装置M800が必要であり、それは、信号フロー内の任意の箇所に設けることが可能である。
【0105】
一方、これはデータを準備した処理ユニットのクロックM830に基づいてデータM820を格納することを保証する。その場合、格納されたデータを読み取るためには、データM840を処理したクロックが利用される。この種の同期化装置M800は、複数のデータを格納することができるようにするために、FIFOメモリにより形成することができる(図9を参照)。例えば、データの同期化だけでは十分ではなく、データの準備信号も受信クロックによって同期化される。
【0106】
そのため、図10に示すように、要請信号M850とクィット信号M880とにより、引渡しを保証するハンドシェークインターフェイスが必要である。この種のインターフェイスは、あるクロックドメインから他のクロックドメインへのデータの安全な伝送を保証するため、クロックドメインが変化する場合に常に必要とされる。例えば、書込みの際に、データM820が領域Q305から、クロックM830で同期化装置(レジスタセル)M800へ同期して提供される。なお、書込みを要請する要請信号M850はデータの準備を表示する。
【0107】
この書込みを要請する要請信号は、領域Q305からクロックM860でメモリ素子M801へ引き渡され、それが同期化された信号M870として、データの準備を表示する。それに続いて、クロックM860の次のアクティブなクロック端で、同期化されたデータM840が引き渡され、確認信号(又はクィット信号)M880が返信される。この確認信号は、他のメモリ素子M801内でクロックM830によって信号M890に同期され、それによってデータの準備が終了する。その後、新しいデータを該当するレジスタ内へ書き込むことができる。これらのインターフェイスの特徴的な部分は、クィット信号を待機する必要なしに、付加的なコード化によって高速に働くことができる点にある。
【0108】
なお、メモリ素子M800は、FIFOメモリ(First−In,First−Out)として形成されている。
【0109】
図11〜図14は、アナログ信号を比較するための回路を示す。この回路は、比較すべきアナログ信号を供給する処理ユニットが相互に、比較が有意義であるように、同期化されていることを前提としている。同期化は、図1に示した対応する信号B40と信号B41とによって達成することができる。
【0110】
図11は、差動増幅を示している。この素子を用いて、2つの電圧を互いに比較することができる。
【0111】
その場合、演算増幅器B100は、その負の入力B101に信号B141が接続(つまり、入力)され、その信号は、値Rinを有する抵抗B110を介して入力信号B111と接続されており、その入力信号に電圧値V1が印加されている。正の入力B102は、信号B142と接続されており、その信号が値Rinを有する抵抗B120を介して入力信号B121と接続されており、その入力に電圧値V2が印加されている。この演算増幅器の出力B103が出力信号B190と接続されており、その出力信号は、電圧値Voutを有する。信号B190は、値Rfを有する抵抗B140を介して信号B141と接続されており、信号B142は、値Rfを有する抵抗B130を介して信号B131と接続されており、その信号は、アナログ基準点Vagndの電圧値を有している。出力電圧は、上記の電圧及び抵抗値を用いて、以下の式に従って計算することができる。
【0112】
【数1】
【0113】
差動増幅器は、通常のCMOSの場合と同様に、正の駆動電圧で駆動される場合、アナロググラウンドVagndとして、駆動電圧とデジタルグラウンドの間の電圧、つまり、通常平均の電位が選択される。2つのアナログ入力電圧V1とV2とが僅かしか異なっていない場合、出力電圧Voutは、アナロググラウンドに対して僅かな差Vdiffのみを有する(正又は負)。
【0114】
図12又は図13に示すように、2つの比較器を用いると、出力電圧がVagnd+Vdiffの上にあるか、或いはVagnd−Vdiffの下にあるか、さらには、アナログ基準点にあるかが調べられる。その場合、図12では、入力信号B221が値R1を有する抵抗B150を介して信号B242と接続されており、その信号が演算増幅器B200の正の入力B202と接続されている。さらに、信号B242が値R2を有する抵抗B160を介して信号B231と接続されており、その信号がデジタル基準電位Vdgndとして利用される。演算増幅器の負の入力B201は、入力信号211と接続されており、それが基準電圧Vrefの電圧値を有する。演算増幅器B200の出力B203は、出力信号B290と接続されており、それが電圧値Vobenを有する。
【0115】
図13を参照すると、上記と同様に、入力信号B321が、値R3を有する抵抗B170を介して信号B342と接続されており、その信号が、演算増幅器B300の負の入力B301と接続されている。この信号B342は、さらに、値R4を有する抵抗B180を介して信号B331に接続されており、その信号もデジタルの基準電位Vdgndを有する。演算増幅器B300の正の入力B302は、入力信号B311と接続されており、その信号が基準電圧Vrefの電圧値を有する。演算増幅器B300の出力B303は、出力信号B390と接続されており、それが電圧値Vuntenを有する。
【0116】
これは、抵抗B150、B160、B170、及びB180の抵抗値R1、R2、R3及びR4が、信号B211と信号B311とに印加される固定の基準電圧Vrefに対して、以下のような関係にあることにより達成される。
【0117】
【数2】
【0118】
その場合、V2maxは、信号B121におけるV2の最大許容電圧値であり、V1minは、信号B111におけるV1の最小許容電圧値である。基準電圧源は、外部から提供することが可能であり、また、内部で実現されるバンドギャップ(温度補償され、かつ駆動電圧に依存しない基準電圧)によって実現することができる。式(4)に示す最大で許容される差Vdiffは、最大の正の偏差V2maxと付属の最大の負の偏差V1minとにより定められる。すなわち、(V2max−V1min)が、互いに比較されるべき冗長なアナログ信号の最大許容電圧偏差である。
【0119】
2つの信号B290又はB390における電圧値の一方(Voben又はVunten)が正である場合、アナログ信号に許容される、より大きい偏差が存在する。従って、このアナログ信号を供給するプロセッサが同期されている限りにおいて、エラーが存在し、そのエラーは記憶されなければならず、場合によっては出力信号のオフをもたらす。同期性は、例えば、該当する処理ユニットのコントロールレジスタ内でレディ信号がアクティブであり、又は該当するアナログ信号の所定の状態と、それに伴って比較される値とを識別できることを示す所定のデジタル信号がUVEへ送信された場合に与えられている。
【0120】
図14には、エラーを記憶する回路が示されている。この回路において、2つの入力信号B390とB290とがNOR回路B410(後段のインバータを有する論理的OR回路)を介して出力信号B411に結合される。この出力信号B411は、NOR素子B420内で入力信号B421と出力信号B421とに結合される。この出力信号B421がOR回路B430内で入力信号B401と出力信号B431とに結合される。この出力信号がメモリ素子(Dフリップフロップ)B400に対する入力信号として用いられる。このメモリ素子B400の出力信号B401は、値1でエラーを表示する。
【0121】
メモリ素子(Dフリップフロップ)B400は、信号B390又は信号B290における2つの電圧値Vunten又はVobenの一方が正であり、デジタルの信号として値highを有し、信号B421がアクティブでなく、かつ、リセットのための信号B402が印加されていない場合、クロックB403で1を記憶する。エラーは、信号リセットが少なくとも一度アクティブになるまで記憶される。注意すべきことは、図11〜図13に示す回路を設計する場合に、抵抗を互いにマッチングさせることである。すなわち、RfとRin、R1とR2、及びR3とR3の抵抗比ができるだけ製造誤差に関係なく一定になるように設計する必要がある。信号B421を用いると、回路がアクティブになるべきか、あるいは、比較を行うべきではないか、処理ユニットの同期化が行われるべきか、を制御することができる。信号B402は、その前のエラーをリセットし、新しい比較を可能にする。
【0122】
図15は、ADCを示している。このADCは、例えば、変換速度、精度、精細度、故障耐性、線形性、及び周波数スペクトルのような、それぞれすでにある要請に応じて、種々の既知の変換方法を用いて実現することができる。例えば、逐次的な近似の原理を選択することが可能であり、そこではアナログ信号がデジタルアナログ変換器(DAC)から生成された信号と比較器を用いて比較される。その場合、DACのデジタルの入力ビットが系統的にMSB(Most Significant Bit;最上位のビット)からLSB(Least Significant Bit;最下位のビット)まで、試験的にhighにセットされ、DACのアナログ出力信号がアナログ入力信号(変換すべき信号)よりも高い値を有する場合にリセットされる。
【0123】
DACは、LSBからMSBまで、そのデジタルビットに応じて、抵抗又は容量を重み付け1、2、4、8、16、…をもって、次に高いビットのセットが常にその前の2倍の大きさの作用をアナログ値に与えるように制御する。全てのビットが試験的にセットされ、或いは、再びリセットされた後、デジタルワードの値は、アナログ入力信号のデジタルの表現に対応する。より高い速度要請のため、連続的なデータフローにおいて、連続的にアナログ信号を処理し、シリアルのデジタル信号を出力する変換器を使用することもできる。その場合、そのデジタル信号は、そのアナログデータフローをシリアルのビット列によって近似される。ここでは、デジタルワードは、シフトレジスタに記憶されているビット列によって表現される。
【0124】
しかし、この種の変換器は、一定の値を処理することはできないため、変換期間内でアナログ信号が常に変化することを前提としている。
【0125】
より低い速度要請のためには、例えば入力電圧又は入力電流を用いてそれに応じた、積分器へ接続されるコンデンサの一定の充電又は放電をもたらす、計数原理に基づく変換器も利用することができる。そのため、必要な時間が測定され、基準電圧源、又はそれに対応する基準電圧を用いて同じコンデンサ(積分器)を放電又は充電させるために必要とされる時間に対する比(つまり、1/必要な時間)が導出される。この単位時間当たりのクロックが測定され、必要とされるクロック数がアナログ入力値のための尺度となる。この種の方法は、例えば、デュアルスロープ方法(dual slope)と呼ばれ、同方法において、第1の側面(slope)がアナログ値に応じた放電によって定められ、第2の側面が基準値に応じた再充電によって定められる(http://www.exstrom.com/journal/adc/dsadc.htmlを参照されたい)。
【0126】
図15に示すADCB600は、アナログ信号を準備したプロセッサの出力信号であるトリガー信号B602と、選択的に識別子B603によって制御される。また、その識別子は、複数のアナログ信号の区別を可能にするため、準備されたアナログ信号の種類に関する情報を与える。トリガー信号B602に応じて、変換されたアナログ値が、メモリ領域B640が有するレジスタB610へデジタル値として引き渡される。それと共に、メモリ領域B620内に格納される識別子B603、及びメモリ領域B630内に格納される付加的な信号B604(1であると、アナログ値と識別)がレジスタB610に引き渡される。メモリ領域B640は、複数の値が格納され、最初に格納された値が最初に出力されるべき場合、好ましくはFIFO(First−In, First−Out)としても実現することができる。
【0127】
メモリ領域B640は、デジタル値のためにも、デジタル変換されたアナログ値のためにも利用される。その場合、全てのデジタル値は、A=1を有するデジタル化されたアナログ値から区別するため、メモリ領域B630に示すように、MSBの箇所において1ビットA=0だけ補足される(例えば、図16及び図17を参照)。トリガー信号B602も識別子B603も、例えば、プロセッサiのデジタル出力データOiの構成部分である。図16は、格納されるデジタル化されたアナログ値の部分が、メモリ領域にどのように格納されるか、を説明するための説明図である。ここで、B710は、デジタル化されたアナログ値自体である。また、B720は、付属の識別子である。そして、B730は、アナログビットである。例えば、B730には1が格納される。図17は、同じメモリ領域に格納されるデジタル値の変形例を示した。
【0128】
B810内には、デジタル値自体が記憶され、B820にはそれに対して選択的に、そもそもデジタル値を比較すべきか、について情報を与える識別子、あるはまた比較のための他の条件を格納することができる。B830内には、それがデジタル値であることを特徴づけるために、値0が格納されている。
【0129】
ここでは、一時記憶されているデジタル及びアナログ信号を比較するために、格納の順序とAビット(B730又はB830)、及び識別子B720又はB820が、変換されたデジタル値B710又はデジタル値B810と組み合わせて調べられる。例えば、異なるビット幅によって、アナログ信号とデジタル信号とを別々のメモリ(例えば、2つのFIFO)に収容することも可能である。その場合、比較は、事象制御されて行われる。つまり、プロセッサの値がUVEへ伝送された場合、常に、他の関与するプロセッサがこの種の値をすでに準備しているか否かが調べられる。
【0130】
否定の場合、値が該当するFIFO又はメモリに格納されるが、他の場合、直接比較が実施される。ここでもFIFOをメモリとして用いることができる。比較は、例えば、関与するFIFOが空でない場合、常に終了される。関与するプロセッサ、又は処理ユニットが2つ以上の場合に、投票によって、全ての信号が分配を許されるか(fail silent verhalten)、又はエラー信号によってのみ、エラー状態が知らされるかが求められる。
【図面の簡単な説明】
【0131】
【図1】本発明の一実施形態に係る2つの処理ユニットのための切り替え及び比較ユニットの基本機能を説明するための説明図である。
【図1A】同実施形態に係る比較器を説明する説明図である。
【図1B】同実施形態に係る切り替え及び比較ユニットのを説明する説明図である。
【図1C】同実施形態に係る比較器の他の構成を説明する説明図である。
【図2】同実施形態に係る2つの処理ユニットのための切り替え及び比較ユニットの詳細な表示を説明する説明図である。
【図3】同実施形態に係る2つの処理ユニットのための切り替え及び比較ユニットの実現可能な構成について説明する説明図である。
【図4】同実施形態に係る2つより多い処理ユニットのための切り替え及び比較ユニットをさらに詳細に説明する説明図である。
【図5】同実施形態に係る2つより多い処理ユニットのための切り替え及び比較ユニットの実現可能な構成を説明する説明図である。
【図6】同実施形態に係るコントロールレジスタの構成例を示す説明図である。
【図7】同実施形態に係る中央の投票のための投票ユニットを示す説明図である。
【図8】同実施形態に係る分散投票のための投票ユニットを示す説明図である。
【図9】同実施形態に係る同期化素子を示す説明図である。
【図10】同実施形態に係るハンドシェークインターフェイスを示す説明図である。
【図11】同実施形態に係る差動増幅器を示す説明図である。
【図12】同実施形態に係る正の電圧差のための比較器を示す説明図である。
【図13】同実施形態に係る負の電圧差のための比較器を示す説明図である。
【図14】同実施形態に係るエラーを記憶する回路を示す説明図である。
【図15】同実施形態に係る出力レジスタを有するアナログ−デジタルコンバータを示す説明図である。
【図16】同実施形態に係る識別子とアナログビットを有するデジタル変換されたアナログ値を説明するための説明図である。
【図17】同実施形態に係るデジタルビットを有するデジタルワードとしてのデジタル値を説明するための説明図である。
【特許請求の範囲】
【請求項1】
少なくとも2つの処理ユニットを有し、前記少なくとも2つの処理ユニットが出力した情報を比較し、前記少なくとも2つの処理ユニットの駆動モードを切り替える手段を有する計算機システムにおける駆動モードの切り替え方法であって、
比較モードに相当する第1の駆動モードと、パフォーマンスモードに相当する第2の駆動モードとが含まれる少なくとも2つの駆動モードのうち、前記比較モードで情報が比較され、前記少なくとも2つの処理ユニットが非同期である場合に、少なくとも1つの前記処理ユニットのインターラプト入力に同期化信号が印加されることを特徴とする、計算機システムにおける駆動モードの切り替え方法。
【請求項2】
前記同期化信号は遅延信号、又はウェイト信号であることを特徴とする、請求項1に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項3】
前記同期化信号に応じて、前記少なくとも1つの処理ユニットが情報を処理しないように制御されることを特徴とする、請求項1又は2に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項4】
前記同期化信号に応じて、前記少なくとも1つの処理ユニットが、所定の時間の間、情報を処理しないように制御されることを特徴とする、請求項3に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項5】
前記同期化信号は、少なくとも1つのインターラプト信号に対して高い優先順位を有することを特徴とする、請求項1に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項6】
前記同期化信号は、すべてのインターラプト信号に対して最高の優先順位を有することを特徴とする、請求項1に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項7】
前記同期化信号に応じて、前記少なくとも1つの処理ユニットがインターラプトルーチンを処理するように制御されることを特徴とする、請求項1又は2に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項8】
前記計算機システムには少なくとも1つのバッファメモリが設けられており、前記比較モードで情報が比較される場合に比較すべき情報の少なくとも1つが前記同期化信号が印加される時間の間、前記バッファメモリに一時記憶されることを特徴とする、請求項1に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項9】
前記情報の少なくとも1つが一時記憶される時間に基づき、非同期情報としてタイムエラーが求められることを特徴とする、請求項8に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項10】
前記バッファメモリ内にいくつの情報があるかが表示されるために、前記バッファメモリの充填状態が求められることを特徴とする、請求項8に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項11】
前記計算機システムには時間検出手段として計数素子が設けられており、前記時間検出手段により時間値が求められ、前記時間値が所定の最大の時間値と比較され、比較された結果から前記タイムエラーが求められることを特徴とする、請求項9に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項12】
前記充填状態と所定の最大の充填状態とが比較され、その比較の結果に基づいて前記非同期情報が求められることを特徴とする、請求項10に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項13】
次に出力されるデータを比較対象に設定する処理が比較信号に応じて実行されることを特徴とする、請求項1に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項14】
比較すべきデータに識別子が対応付けられ、前記識別子に基づいて比較動作が実行されることを特徴とする、請求項1に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項15】
少なくとも2つの処理ユニットを有する計算機システムの駆動モード切り替え装置であって、
比較モードに相当する第1の駆動モードと、パフォーマンスモードに相当する第2の駆動モードとが含まれる少なくとも2つの駆動モードの間で前記駆動モードを切り替える切り替え手段と、
前記比較モードの場合に前記少なくとも2つの処理ユニットから得られる情報を比較する比較手段と、
を備え、
前記比較モードで少なくとも2つの前記処理ユニットが非同期である場合に、少なくとも1つの前記処理ユニットのインターラプト入力に同期化信号が印加されることを特徴とする、計算機システムの駆動モード切り替え装置。
【請求項16】
前記比較手段と前記切り替え手段とは、構造的に前記処理ユニットの外部に設けられていることを特徴とする、請求項15に記載の計算機システムの駆動モード切り替え装置。
【請求項17】
少なくとも1つのバッファメモリが設けられていることを特徴とする、請求項15に記載の計算機システムの駆動モード切り替え装置。
【請求項18】
前記バッファメモリは、FIFOメモリであることを特徴とする、請求項17に記載の計算機システムの駆動モード切り替え装置。
【請求項19】
各前記処理ユニットに対して前記バッファメモリが対応付けられていることを特徴とする、請求項15に記載の計算機システムの駆動モード切り替え装置。
【請求項20】
各前記処理ユニットに対して前記バッファメモリとしてFIFOメモリが対応付けられていることを特徴とする、請求項15に記載の計算機システムの駆動モード切り替え装置。
【請求項21】
前記情報の少なくとも1つが一時記憶される所定の時間及び/又は求められる時間に基づき、非同期情報としてタイムエラーを求める手段である計数素子をさらに備えることを特徴とする、請求項15に記載の計算機システムの駆動モード切り替え装置。
【請求項22】
バッファメモリ内にいくつの情報があるかを表示するために、前記バッファメモリの充填状態を求める手段をさらに備えることを特徴とする請求項15に記載の計算機システムの駆動モード切り替え装置。
【請求項23】
前記充填状態を求める手段は、求められた前記充填状態と所定の最大の充填状態とを比較して非同期情報を求めることを特徴とする、請求項22に記載の計算機システムの駆動モード切り替え装置。
【請求項24】
前記非同期情報に応じて前記同期化情報を発生させる同期化手段をさらに備えることを特徴とする、請求項21又は23に記載の計算機システムの駆動モード切り替え装置。
【請求項25】
前記非同期情報を処理する監視手段をさらに備えることを特徴とする、請求項21又は23に記載の計算機システムの駆動モード切り替え装置。
【請求項26】
前記監視手段は、前記計算機システムに対して外部に設けられた監視手段であるウォッチドッグであることを特徴とする、請求項25に記載の計算機システムの駆動モード切り替え装置。
【請求項1】
少なくとも2つの処理ユニットを有し、前記少なくとも2つの処理ユニットが出力した情報を比較し、前記少なくとも2つの処理ユニットの駆動モードを切り替える手段を有する計算機システムにおける駆動モードの切り替え方法であって、
比較モードに相当する第1の駆動モードと、パフォーマンスモードに相当する第2の駆動モードとが含まれる少なくとも2つの駆動モードのうち、前記比較モードで情報が比較され、前記少なくとも2つの処理ユニットが非同期である場合に、少なくとも1つの前記処理ユニットのインターラプト入力に同期化信号が印加されることを特徴とする、計算機システムにおける駆動モードの切り替え方法。
【請求項2】
前記同期化信号は遅延信号、又はウェイト信号であることを特徴とする、請求項1に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項3】
前記同期化信号に応じて、前記少なくとも1つの処理ユニットが情報を処理しないように制御されることを特徴とする、請求項1又は2に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項4】
前記同期化信号に応じて、前記少なくとも1つの処理ユニットが、所定の時間の間、情報を処理しないように制御されることを特徴とする、請求項3に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項5】
前記同期化信号は、少なくとも1つのインターラプト信号に対して高い優先順位を有することを特徴とする、請求項1に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項6】
前記同期化信号は、すべてのインターラプト信号に対して最高の優先順位を有することを特徴とする、請求項1に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項7】
前記同期化信号に応じて、前記少なくとも1つの処理ユニットがインターラプトルーチンを処理するように制御されることを特徴とする、請求項1又は2に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項8】
前記計算機システムには少なくとも1つのバッファメモリが設けられており、前記比較モードで情報が比較される場合に比較すべき情報の少なくとも1つが前記同期化信号が印加される時間の間、前記バッファメモリに一時記憶されることを特徴とする、請求項1に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項9】
前記情報の少なくとも1つが一時記憶される時間に基づき、非同期情報としてタイムエラーが求められることを特徴とする、請求項8に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項10】
前記バッファメモリ内にいくつの情報があるかが表示されるために、前記バッファメモリの充填状態が求められることを特徴とする、請求項8に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項11】
前記計算機システムには時間検出手段として計数素子が設けられており、前記時間検出手段により時間値が求められ、前記時間値が所定の最大の時間値と比較され、比較された結果から前記タイムエラーが求められることを特徴とする、請求項9に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項12】
前記充填状態と所定の最大の充填状態とが比較され、その比較の結果に基づいて前記非同期情報が求められることを特徴とする、請求項10に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項13】
次に出力されるデータを比較対象に設定する処理が比較信号に応じて実行されることを特徴とする、請求項1に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項14】
比較すべきデータに識別子が対応付けられ、前記識別子に基づいて比較動作が実行されることを特徴とする、請求項1に記載の計算機システムにおける駆動モードの切り替え方法。
【請求項15】
少なくとも2つの処理ユニットを有する計算機システムの駆動モード切り替え装置であって、
比較モードに相当する第1の駆動モードと、パフォーマンスモードに相当する第2の駆動モードとが含まれる少なくとも2つの駆動モードの間で前記駆動モードを切り替える切り替え手段と、
前記比較モードの場合に前記少なくとも2つの処理ユニットから得られる情報を比較する比較手段と、
を備え、
前記比較モードで少なくとも2つの前記処理ユニットが非同期である場合に、少なくとも1つの前記処理ユニットのインターラプト入力に同期化信号が印加されることを特徴とする、計算機システムの駆動モード切り替え装置。
【請求項16】
前記比較手段と前記切り替え手段とは、構造的に前記処理ユニットの外部に設けられていることを特徴とする、請求項15に記載の計算機システムの駆動モード切り替え装置。
【請求項17】
少なくとも1つのバッファメモリが設けられていることを特徴とする、請求項15に記載の計算機システムの駆動モード切り替え装置。
【請求項18】
前記バッファメモリは、FIFOメモリであることを特徴とする、請求項17に記載の計算機システムの駆動モード切り替え装置。
【請求項19】
各前記処理ユニットに対して前記バッファメモリが対応付けられていることを特徴とする、請求項15に記載の計算機システムの駆動モード切り替え装置。
【請求項20】
各前記処理ユニットに対して前記バッファメモリとしてFIFOメモリが対応付けられていることを特徴とする、請求項15に記載の計算機システムの駆動モード切り替え装置。
【請求項21】
前記情報の少なくとも1つが一時記憶される所定の時間及び/又は求められる時間に基づき、非同期情報としてタイムエラーを求める手段である計数素子をさらに備えることを特徴とする、請求項15に記載の計算機システムの駆動モード切り替え装置。
【請求項22】
バッファメモリ内にいくつの情報があるかを表示するために、前記バッファメモリの充填状態を求める手段をさらに備えることを特徴とする請求項15に記載の計算機システムの駆動モード切り替え装置。
【請求項23】
前記充填状態を求める手段は、求められた前記充填状態と所定の最大の充填状態とを比較して非同期情報を求めることを特徴とする、請求項22に記載の計算機システムの駆動モード切り替え装置。
【請求項24】
前記非同期情報に応じて前記同期化情報を発生させる同期化手段をさらに備えることを特徴とする、請求項21又は23に記載の計算機システムの駆動モード切り替え装置。
【請求項25】
前記非同期情報を処理する監視手段をさらに備えることを特徴とする、請求項21又は23に記載の計算機システムの駆動モード切り替え装置。
【請求項26】
前記監視手段は、前記計算機システムに対して外部に設けられた監視手段であるウォッチドッグであることを特徴とする、請求項25に記載の計算機システムの駆動モード切り替え装置。
【図1】
【図1a】
【図1b】
【図1c】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図1a】
【図1b】
【図1c】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【公表番号】特表2008−518305(P2008−518305A)
【公表日】平成20年5月29日(2008.5.29)
【国際特許分類】
【出願番号】特願2007−537297(P2007−537297)
【出願日】平成17年10月25日(2005.10.25)
【国際出願番号】PCT/EP2005/055514
【国際公開番号】WO2006/045786
【国際公開日】平成18年5月4日(2006.5.4)
【出願人】(501125231)ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング (329)
【Fターム(参考)】
【公表日】平成20年5月29日(2008.5.29)
【国際特許分類】
【出願日】平成17年10月25日(2005.10.25)
【国際出願番号】PCT/EP2005/055514
【国際公開番号】WO2006/045786
【国際公開日】平成18年5月4日(2006.5.4)
【出願人】(501125231)ローベルト ボッシュ ゲゼルシャフト ミット ベシュレンクテル ハフツング (329)
【Fターム(参考)】
[ Back to top ]