JP4532561B2 - マルチプロセッサシステムにおける同期化のための方法および装置 - Google Patents

マルチプロセッサシステムにおける同期化のための方法および装置 Download PDF

Info

Publication number
JP4532561B2
JP4532561B2 JP2007537302A JP2007537302A JP4532561B2 JP 4532561 B2 JP4532561 B2 JP 4532561B2 JP 2007537302 A JP2007537302 A JP 2007537302A JP 2007537302 A JP2007537302 A JP 2007537302A JP 4532561 B2 JP4532561 B2 JP 4532561B2
Authority
JP
Japan
Prior art keywords
processor
synchronization
signal
switching
mode
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.)
Expired - Fee Related
Application number
JP2007537302A
Other languages
English (en)
Other versions
JP2008518309A (ja
Inventor
コトゥケ,トーマス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from DE200410051952 external-priority patent/DE102004051952A1/de
Priority claimed from DE200410051950 external-priority patent/DE102004051950A1/de
Priority claimed from DE200410051992 external-priority patent/DE102004051992A1/de
Priority claimed from DE200410051964 external-priority patent/DE102004051964A1/de
Priority claimed from DE200410051937 external-priority patent/DE102004051937A1/de
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of JP2008518309A publication Critical patent/JP2008518309A/ja
Application granted granted Critical
Publication of JP4532561B2 publication Critical patent/JP4532561B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1695Error detection or correction of the data by redundancy in hardware which are operating with time diversity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline, look ahead
    • G06F9/3885Concurrent instruction execution, e.g. pipeline, look ahead using a plurality of independent parallel functional units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Description

特に自動車分野または工業製品分野、従って例えば機械分野およびオートメーション分野のような技術的適用では、安全上重要な適用のために、マイクロプロセッサベースまたは計算機ベースの開ループ制御および閉ループ制御システム(Steuerungs- und Regelungssystem)がますます多用されている。この場合にダブル計算機システムまたはダブルプロセッサシステム(デュアルコア)は、特に車両内の例えばアンチブロッキングシステム、電子安定化プログラム(ESP)、ドライブ−バイ−ワイヤもしくはステア−バイ−ワイヤおよびブレーキ−バイ−ワイヤ等のようなX−バイ−ワイヤ−システムにおいて、または他のネットワーク化されたシステム等において、安全上重要な適用のために今日普及している計算機システムである。将来の適用において高い安全性要求を満足させるために、特に、例えば計算機システムの半導体構造の小型化に際して生じる過渡的エラーに対処するために、強力なエラー認識機構およびエラー処理機構が必要とされる。この場合にコア自体、従ってプロセッサを保護することは比較的困難である。このための一つの解決策として、前述したように、エラー検出のためにダブル計算機システムまたはデュアルコアシステムが使用される。
少なくとも2つの統合された実行ユニットを備えるこの種のプロセッサユニットは、デュアルコアアーキテクチャまたはマルチコアアーキテクチャとして知られている。この種のデュアルコアアーキテクチャまたはマルチコアアーキテクチャは、現在の技術水準によれば、主として以下の2つの理由から提案される。
第1の理由は、2つの実行ユニットまたはコアが半導体モジュール上の2つの計算ユニットとみなされて取扱われることにより、出力向上、従ってパフォーマンス向上が実現されうる点にある。この設定では、2つの実行ユニットまたはコアは、異なるプログラムもしくはタスクを処理する。これによって出力向上が実現され、従ってこの設定は、出力モードまたはパフォーマンスモードと称される。
デュアルコアアーキテクチャまたはマルチコアアーキテクチャを実現する第2の理由は、2つの実行ユニットが冗長的に同一のプログラムを処理することによる安全性向上にある。2つの実行ユニットまたはCPU、従ってコアの処理結果が比較され、一致についての比較に際してエラーが認識されうる。以下では、この設定は、安全モードまたはセーフティモードまたはエラー認識モードとも称される。
よって、現在のところ、一方で、ハードウェアエラーを認識するために冗長的に機能するダブルプロセッサシステムまたはマルチプロセッサシステムがあり(デュアルコアまたはマスター−チェッカーシステムを参照)、他方で、そのプロセッサ上で異なるデータを処理するダブルプロセッサシステムまたはマルチプロセッサシステムがある。ダブルプロセッサシステムまたはマルチプロセッサシステムにおいて、以下の発明の実施形態に従ってこれら2つの動作モードを組合せる場合には(説明の便宜上、ここではダブルプロセッサシステムについてのみ説明するが、以下の発明はマルチプロセッサシステムについても全く同様に適用可能である。)、2つのプロセッサは、パフォーマンスモードでは異なるデータを取得する必要があり、エラー認識モードでは同一のデータを取得する必要がある。
本発明の課題は、少なくとも2つのプロセッサまたはコアに指令/データをモードに応じて冗長的に、または異なるように供給し、特にパフォーマンスモードではメモリアクセス権を分割し、モード切替に際して2つのプロセッサまたはコアの同期化および/または非同期化を可能にする、ユニットおよび方法を提供することである。
今日まで、この種のユニットは、まだ知られていない。この種のユニットは、ダブルプロセッサシステムの効果的な動作を可能にするために、安全およびパフォーマンスの2つのモードで動作中に切替可能である。この場合に以下ではプロセッサについて説明するが、概念的にはコアもしくは計算ユニットも同様に含むものである。
さらに、本発明の課題は、マルチプロセッサシステムの同期化を行うことができる可能性を提供することである。今日まで、この種の方法もしくは実装は、まだ知られていない。2つのモードの一方のみを可能とするマルチプロセッサシステムは存在するが、クロック同期で動作して切替可能であり、データをクロックに従って比較することができる、マルチプロセッサシステムは存在しない。提供された方法によって、クロックに従って、かつクロックに同期して同期化が行われうるが、この種の正確な同期が要求されない適用も存在する。この場合に本方法は、「ルーズな」同期化を達成するためにも適用されうる。ルーズな同期とは、2つのプロセッサが同一の処理を実行するが、比較器によって予め設定可能な範囲内で処理の時間間隔が変動しうるような同期化である。
(実施例の説明と発明の利点)
ダブル計算機システムは、同一または異なるタスクを処理可能な2つのプロセッサを有する。ダブル計算機システムのこれら2つのプロセッサは、これらのタスクをクロック同期またはクロックオフセットで処理可能である。
出力データをクロック同期で比較する必要があるクロック同期システム内で、2つのモード間の切替を可能にするためには、2つのプロセッサが同期化可能でなければならない。すなわち、プロセッサがパフォーマンスモード(=異なるタスクを処理し、その出力データが比較されないモード)から安全モード(=2つのプロセッサが同一のタスクを処理し、その出力が各々のクロックで比較されるモード)に切替えられる場合に、2つのプロセッサはプログラムシーケンス中で同期化されなければならない。
すなわち、本発明は、切替意図が信号によって作動される方法および装置を示す。この信号は、例えば指令バスの観察によって生成可能であり(切替意図が実施されるかを確認する。)またはデコーダの制御信号であることができ(例えば他方のプロセッサでのインターラプトの作動、レジスタへの書込み、…)、それらによってプロセッサが予め設定されたプログラムアドレスにジャンプ可能である。
その他に、マルチプロセッサシステム内の各々のプロセッサに固有の識別子、従ってIDに基づいて、2つのプロセッサが異なるプログラム箇所にジャンプすることによって同期化されるようにしてもよい(プロセッサIDビットによるプロセッサ識別、条件付ジャンプ、プロセッサ毎に異なるが、同一のアドレスを有するメモリ領域からのプロセッサIDビットの読出し、内部のプロセッサレジスタへのプロセッサIDビットの格納が重要である。)。
本発明は、少なくとも2つのプロセッサを有するマルチプロセッサシステムにおける同期化のための方法および装置を開示しており、その場合に切替手段が設けられ、切替手段によって少なくとも2つの動作モードが切替可能であり、その場合に本装置は、先行するプロセッサを少なくとも第2のプロセッサと同期化させるために先行するプロセッサを停止させる停止信号によって、同期化が実施されるように形成されている。
同期化が少なくとも1つのプロセッサの切替意図の通知(Mitteilung)によって行われ(例えば、他のプロセッサでのインターラプトの作動、レジスタへの書込み、…)、通知によってプロセッサが予め設定されたプログラムアドレスにジャンプするようにしてもよい。
さらに、本発明は、少なくとも2つの計算ユニットを有するシステムにおいて、少なくとも1つのデータ源からのデータを分配するユニットを示しており、その場合に切替手段(モード切替)が備えられ、切替手段によってシステムの少なくとも2つの動作モードが切替可能であり、その場合にユニットは、データ分配および/またはデータ源(特に指令メモリ、データメモリ、キャッシュ)が動作モードに依存するように形成されている。同様に、この種のユニットを備えるシステムが示される。
この場合には、第1の動作モードが安全モードに相当し、安全モードでは2つの計算ユニットが同一のプログラムおよび/またはデータを処理し、かつ比較手段が設けられており、その比較手段が同一のプログラムの処理に際して生じる状態の一致について比較する。
本発明に基づくユニットもしくは方法は、ダブルプロセッサシステムにおいて2つのモードの実装を可能にする。
2つのプロセッサがエラー認識モード(Fモード)で機能する場合には、2つのプロセッサが同一のデータおよび/または指令を取得し、パフォーマンスモード(Pモード)で機能する場合には、各プロセッサがメモリにアクセスすることができる。そして、このユニットが、単一に備えられたメモリまたは周辺機器へのアクセスを管理する。
Fモードでは、ユニットは、プロセッサ(ここではマスター)のデータ/アドレスを引き継ぎ、メモリ、バス等のようなコンポーネントに伝達する。ここで、第2のプロセッサ(ここではスレーブ)が同じアクセスを行おうとする。データ分配ユニットは、これを第2のポートで受取るが、その照会を他のコンポーネントに伝達しない。データ分配ユニットは、マスターと同一のデータをスレーブに引き継ぎ、2つのプロセッサのデータを比較する。これらが異なっていれば、データ分配ユニット(ここではDVE)は、その旨をエラー信号によって通知する。よって、マスターのみがバス/メモリに対して作用し、スレーブが同一のデータを取得する(デュアルコアシステムの場合のような機能性)。
Pモードでは、2つのプロセッサが異なるプログラム部分を処理する。よって、メモリアクセスも異なる。よって、DVEは、プロセッサの要求を受けて、要求したプロセッサに結果の/要求されたデータを与える。2つのプロセッサが同時に同一のコンポーネントにアクセスしようとすると、一方のプロセッサは、他方が操作されるまで待機状態にされる。
2つのモードおよびそれに伴うデータ分配ユニットの異なる機能性の切替は、制御信号によって行われる。これは、2つのプロセッサの一方により、または外部で生成可能である。
ダブルプロセッサシステムが、Fモードではクロックオフセットを伴って、かつPモードではクロックオフセットなしで動作する場合には、DVEユニットは、スレーブのためのデータを然るべく遅延させ、または、エラー認識のためにスレーブの出力データと比較可能となるまでマスターの出力データを記憶する。
図1を用いて、クロックオフセットについて詳細に説明する。
図1は、第1の計算機100、特にマスター計算機と、第2の計算機101、特にスレーブ計算機とを備えるダブル計算機システムを示している。この場合にシステム全体は、予め設定可能なクロックもしくは予め設定可能なクロックサイクル(clock cycle)CLKで動作する。計算機100のクロック入力CLK1および計算機101のクロック入力CLK2を介して、システムにクロックが供給される。このダブル計算機システムでは、さらに、エラー認識のための特殊な特徴を有しており、すなわち、第1の計算機100と第2の計算機101とがタイムオフセット、特に予め設定可能なタイムオフセットもしくは予め設定可能なクロックオフセットを伴って機能する。この場合に、タイムオフセットのために任意の時間を各々に予め設定可能であり、かつクロックサイクルのオフセットに関する任意のクロックも各々に予め設定可能である。これは、クロックサイクル(clock cycle)の整数倍のオフセットであっても、または例示するように、例えば1.5クロックサイクルのオフセットであってもよく、ここでは、第1の計算機100が第2の計算機101よりも1.5クロックサイクル早く機能もしくは動作する。このオフセットによって、同一クロックエラー、いわゆるコモンモードエラーが、計算機またはプロセッサ、従ってデュアルコアシステムのコアに同様の障害を及ぼし、よって認識されないままとなることが回避可能となる。すなわち、この種の同一クロックエラーは、オフセットによってプログラムシーケンスの異なる時点で計算機に作用し、よって2つの計算機に関して異なる効果を及ぼし、それによってエラーが認識可能となる。クロックオフセットを伴わない同様のエラー効果は、場合によっては比較に際して認識不能となるが、これによって認識不能となることが回避される。タイムまたはクロックに関するオフセット(ここでは特に1.5クロックサイクル)をダブル計算機システムに導入するために、オフセットモジュール112〜115が実装される。
前述した同一クロックエラーを認識するために、このシステムは、例えば、予め設定されたタイムオフセットまたはクロックサイクルオフセット(ここでは特に1.5クロックサイクル)で機能するように設計されており、すなわち、一方の計算機、特に計算機100がコンポーネント、特に外部コンポーネント103、104に直接的に応答し、第2の計算機101がそれに対して正確に1.5クロックサイクルの遅延を伴って機能する。この場合に所望の1と半分、従って1.5クロックサイクルの遅延を発生させるために、計算機101のクロック入力CLK2に反転されたクロックが供給される。しかし、これによって、前述した計算機のアクセス、従ってそのデータもしくは指令もバスを介して前述したクロックサイクル(特にここでは1.5クロックサイクル)分だけ遅延される必要があり、そのために、前述したようなオフセットモジュールもしくは遅延モジュール112〜115が備えられている。2つの計算機またはプロセッサ100、101の他に、コンポーネント103、104が備えられており、それらは、バス線116A、116Bおよび116Cからなるバス116と、バス線117Aおよび117Bからなるバス117とを介して、2つの計算機100および101と接続されている。この場合にバス117は、指令バスであって、117Aが指令アドレスバス、117Bが指令部分(データ)バスを示している。アドレスバス117Aは、指令アドレス接続IA1(Instruction Address 1)を介して計算機100と、指令アドレス接続IA2(Instruction Address 2)を介して計算機101と各々に接続されている。指令自体は、指令部分バス117Bを介して伝達され、その指令部分バスが指令接続I1(Instruction 1)を介して計算機100と、指令接続I2(Instruction 2)を介して計算機101と接続されている。117Aおよび117Bで構成される指令バス117には、コンポーネント103、例えば指令メモリ、特に安全な指令メモリ等が中間接続されている。特に指令メモリとしてのコンポーネントも、この例ではクロックCLKで動作する。この他には、符号116でデータバスが示されており、これはデータアドレスバスまたはデータアドレス線116Aとデータバスまたはデータ線116Bとを有している。この場合に116A、従ってデータアドレス線は、データアドレス接続DA1(Data Address 1)を介して計算機100と、データアドレス接続DA2(Data Address 2)を介して計算機101と各々に接続されている。同様に、データバスまたはデータ線116Bは、データ接続DO1(Data Out 1)およびデータ接続DO2(Data Out 2)を介して計算機100および計算機101と各々に接続されている。さらに、データバス116には、データバス線116Cが含まれており、それはデータ接続DI1(Data In 1)およびデータ接続DI2(Data In 2)を介して計算機100および計算機101と各々に接続されている。線116A、116Bおよび116Cからなるデータバス116内には、コンポーネント104、例えばデータメモリ、特に安全なデータメモリ等が中間接続されている。コンポーネント104も、この例ではクロックCLKで動作する。
この場合にコンポーネント103、104は、データバスおよび/または指令バスを介してダブル計算機システムの計算機と接続されて、ダブル計算機システムのデータおよび/または指令を介してのアクセスに応じて、書込み操作および/または読取り操作に関してエラーを伴うデータおよび/または指令を入力されまたは出力しうる任意のコンポーネントを代表している。エラー回避のために、特にエラー識別子生成器105、106および107が備えられており、それらは、例えば、パリティビットのようなエラー識別子、または、例えばエラー訂正符号、従ってECC等のような他のエラー符号を生成する。この場合には、さらに、各々のエラー識別子、従って例えばパリティビットまたはECCのような他のエラー符号を検査するための適当なエラー識別子検査装置またはチェック装置108、109も備えられている。
ダブル計算機システムの冗長的な実行に関するデータおよび/または指令の比較は、図1に示すような比較器またはコンパレータ110、111で行われる。しかし、同期されていないダブルプロセッサシステムによって、もしくは同期されたダブルプロセッサシステムで同期化中のエラーによって、またはこの特殊例のように、エラー認識のために望まれるタイムオフセットもしくはクロックサイクルオフセット(特にここでは1.5クロックサイクル)によってもたらされる、タイムオフセット、特にクロックオフセットまたはクロックサイクルオフセットが計算機100と101との間に存在する場合には、このタイムオフセットまたはクロックオフセット内で、計算機、ここでは特に計算機100がコンポーネント、特に、例えばここでは特にメモリ103もしくは104のような外部コンポーネント、または他のノード(Teilnehmern)またはアクチュエータまたはセンサに関して、エラーを伴うデータおよび/または指令を書込みまたは読取る可能性がある。すなわち、計算機は、オフセットによって、予め設定された読取りアクセスの代りに、誤って書込みアクセスを実行する場合もありうる。このような場合には、もちろん、特にいずれのデータおよび/または指令がまさに誤って変更されたかという明確な指示可能性なしに、システム全体にエラーが及ぼされ、それによってリカバリー問題も生じる。
この問題を解決するために、遅延ユニット102が図示のようにデータバスの線および/または指令バスに接続される。説明の便宜上から、データバスへの接続のみが示されている。指令バスに関しても、もちろん同様に可能であって、かつ考えられる。この遅延ユニット(Verzoegerunseinheit、Delay Unit)102は、アクセス、ここでは特にメモリアクセスを、可能とされるタイムオフセットまたはクロックオフセットが補償されるように遅延させ、特に、例えば比較器110、111を介したエラー認識に際しては、例えば、少なくともダブル計算機システム内でエラー信号が生成され、従ってダブル計算機システム内でエラー認識が実行されるまでの間に亘って遅延させる。この場合には、例えば、書込み操作および読取り操作の遅延、書込み操作のみの遅延、または、余り望ましくはないが、読取り操作の遅延等のような種々の変形例が実装可能である。この場合に、エラーを伴う書込みを禁止するために、変更信号、特にエラー信号によって、遅延された書込み操作を読取り操作に変換可能である。
次に、図2を用いて、切替意図を検出する装置(IllOPDetectによって)、モード切替ユニット、Iram制御モジュールおよびDram制御モジュールで望ましくは構成される、データ分配ユニット(DVE:Datenverteilungseinheit)に関する実装例を説明する。
IllOpDetect:2つのモード間の切替が切替検出(Switch-Detect)ユニットによって認識される。このユニットは、指令バス上でキャッシュとプロセッサとの間に配置されて、指令IllOpがプロセッサにロードされるかを確認する。指令が検出されると、このイベントがモード切替(Mode Switch)ユニットに報告される。切替検出ユニットは、プロセッサの各々に個別に備えられている。切替検出ユニットは、エラー許容するように形成される必要はない。というのは、このユニットは二重化されており、よって冗長的に備えられているからである。他方で、このユニットがエラー許容するように、よって単一での実施も考えられるが、冗長的な実施の方が望ましい。
ModeSwitch:モード間の切替は、切替検出ユニットによってトリガーされる。ロックモードからスプリットモードへの切替に際して、2つの切替検出ユニットが切替を検出する。というのは、ロックモードでは、2つのプロセッサが同一のプログラムコードを処理するからである。プロセッサ1の切替検出ユニットは、この切替をプロセッサ2の切替検出ユニットより1.5クロック早く認識する。モード切替ユニットは、待機信号を用いてプロセッサ1を2クロックのみ停止させる。プロセッサ2は、1.5クロック遅れて同様に停止されるが、0.5クロックのみ停止され、よってシステムクロックに同期化される。次に、状態信号が他のコンポーネントのためにスプリットに切替えられ、2つのプロセッサはさらに機能を続ける。よって、2つのプロセッサが異なるタスクを実行するために、それらはプログラムコード中で互いに分離される必要がある。これは、スプリットモードへの切替直後にプロセッサIDに対する読取りアクセスがなされることで行われる。この読取られたプロセッサIDは、2つのプロセッサの各々に関して異なっている。目標プロセッサIDが比較されると、次に、条件付分岐指令によって、該当するプロセッサが他のプログラム箇所に分岐されうる。スプリットモードからロックモードへの切替に際しては、1つのプロセッサもしくは2つのプロセッサの一方がまず切替に気づく。このプロセッサが、切替指令を含むプログラムコードを実行する。これが、切替検出ユニットによって確認されて、それがモード切替ユニットに通知される。モード切替ユニットが、該当するプロセッサを停止させて、第2のプロセッサにインターラプトによって同期化の意図を通知する。第2のプロセッサは、インターラプトを受けて、タスクを終了させるためのソフトウェアルーチンを実行可能である。そして、このプロセッサが同様に、切替指令があるプログラム箇所に分岐する。この切替検出ユニットが、同様にモード切替の意図をモード切替ユニットに通知する。次のシステムクロックの上昇端(steigenden Systemtaktflanke)で、プロセッサ1に対する待機信号が非能動化されて、1.5クロック遅れてプロセッサ2に対する待機信号が同様に非能動化される。そして、両者は再び1.5クロックのクロックオフセットを伴って同期して機能する。
システムがロックモードにある場合には、2つの切替検出ユニットは、スプリットモードへの切替を意図していることをモード切替ユニットに通知する必要がある。切替意図が一方のユニットのみから行われると、比較ユニットによりエラーが認識される。というのは、比較ユニットは、2つのプロセッサの他方より、停止されているプロセッサとは一致しないデータをさらに供給されているからである。
2つのプロセッサがスプリットモードにあり、かつ一方がロックモードに切替わらなければ、それが外部のウォッチドッグによって認識可能である。各プロセッサに関するトリガー信号により、ウォッチドッグは、待っているプロセッサからもはや報告がなされないことに気づく。プロセッサシステムのために1つのウォッチドッグ信号のみが存在する場合には、ウォッチドッグはロックモードでのみトリガーを許可される。よって、ウォッチドッグは、モード切替が行われなかったことを認識する。モード信号は、デュアルレール信号として存在する。この場合に”10”がロックモードを、”01”がスプリットモードを表す。”00”および”11”では、エラーが発生している。
IramControl:2つのプロセッサの指令メモリへのアクセスは、Iram制御を介して制御される。Iram制御は、安全に設計される必要がある。というのは、Iram制御が単一障害点(Single Point of Failure)となるからである。Iram制御は、プロセッサの各々について、クロック同期のiram1clkresetと非同期のreadiram1との2つの状態オートマトンからなる。安全上重要なモードでは、2つのプロセッサの状態オートマトンが相互に監視し合い、パフォーマンスモードでは別々に機能する。
2つのプロセッサのキャッシュのリロードは、同期のiramclkresetと非同期のreadiramとの2つの状態オートマトンによって制御される。これら2つの状態オートマトンによって、スプリットモードでのメモリアクセスも分配される。この場合にプロセッサ1は、より高い優先順位を有する。プロセッサ1によるメインメモリへのアクセスの後に、2つのプロセッサが再びメインメモリにアクセスしようとすると、プロセッサ2がメモリアクセスの許可を割当てられる。これら2つの状態オートマトンは、プロセッサの各々について実装されている。ロックモードでは、発生したエラーを認識可能とするために、オートマトンの出力信号が比較される。
ロックモードでキャッシュ2を更新するためのデータは、Iram制御ユニット内で1.5クロック遅延される。
Sys制御のレジスタ0のビット5には、いずれのコアが問題であるかが符号化される。コア1であればビット値0であり、コア2であればビット値1である。このレジスタは、アドレス65528を伴うメモリ領域に反映されている。
コア2によるメモリアクセスに際して、まず、計算機がいずれのモードにあるかが調べられる。計算機がロックモードにあれば、そのメモリアクセスが抑制される。この信号は、安全上重要であるためコモンレール信号として存在する。
プロセッサ1のプログラムカウンタは、ロックモードでプロセッサ2のプログラムカウンタと比較可能となるように1.5クロック遅延される。
スプリットモードでは、2つのプロセッサのキャッシュは、異なるようにリロードされうる。ロックモードへの切替に際して、2つのキャッシュは互いに干渉し合わない。よって、2つのプロセッサは、互いに分離して進行され、よって比較器がエラーを通知する。これを回避するために、Iram制御内にフラグテーブルが構築されている。この中に、キャッシュ行(Cachezeile)がロックモードまたはスプリットモードのいずれで書込まれたかが登録される。ロックモードでは、キャッシュ行に該当する登録がキャッシュ行リロードに際して0に設定され、スプリットモードでは、一方のキャッシュのみによりキャッシュ行がキャッシュ更新される場合でも、1に設定される。プロセッサがロックモードでメモリアクセスを実行する場合には、このキャッシュ行がロックモードで更新されたか、すなわち2つのキャッシュ内で同一であるかが調べられる。スプリットモードでは、プロセッサは、フラグベクトルの状態にかかわらずに、常にキャッシュ行にアクセス可能である。このテーブルは、一度のみ存在すればよい。というのは、エラーに際しては、2つのプロセッサが互いに分離して進行され、よってこのエラーが比較器で確実に認識されるからである。中央のテーブルへのアクセス時間が比較的長いので、このテーブルが各キャッシュにコピーされてもよい。
DramControl:このコンポーネントでは、アドレス信号、データ信号およびメモリ制御信号のために、プロセッサの各々によりパリティが形成される。
2つのプロセッサについて、メモリを遮断するためのプロセスがある。このプロセスは、安全に実装されている必要はない。というのは、ロックモードでは、エラーを伴うメモリアクセスが比較器によって認識され、スプリットモードでは、安全上重要なアプリケーションが実行されないからである。ここでは、一方のプロセッサが他方のプロセッサのためにメモリを遮断しようとしているかが調べられる。データメモリの遮断は、メモリアドレス$FBFF$=64511へのアクセスによって行われる。この信号は、呼出しの時点でプロセッサに待機指令が印加されている場合でも、正確に1クロックの長さで印加される必要がある。データメモリアクセスを管理するための状態オートマトンは、以下の2つのメイン状態からなる。
−プロセッサ状態Lock:2つのプロセッサがロックモードで機能する。すなわち、データメモリロッキングの機能が必要とされない。プロセッサ1がメモリアクセスを調整する。
−プロセッサ状態Split:データメモリに対するアクセス競合の解決が必要であって、メモリ遮断を行う必要性がある。
スプリットモードでの状態は、さらに、アクセス競合を解決し、かつ各々の他方のプロセッサのためにデータメモリを遮断可能な以下の7つの状態に区分される。2つのプロセッサにより同時に1つのアクセスが意図される場合には、記載された順序が同時に優先順位を表している。
−Core1/_Lock:プロセッサ1がデータメモリを遮断している。この状態では、プロセッサ2がメモリにアクセスしようとすると、プロセッサ1がデータメモリを解放するまで、プロセッサ2は待機信号によって停止される。
−Core2/_Lock:前述と同じ状態で、プロセッサ2がデータメモリを遮断しており、プロセッサ1はデータメモリ操作に際して停止される。
−lock1/_wait:データメモリは、プロセッサ2と同様にプロセッサ1が自らのために予約しようとした際に、プロセッサ2によって遮断されている。よって、プロセッサ1は、次のメモリ遮断を予約する。
−nex:プロセッサ2について同様。データメモリは、プロセッサ1による遮断の試みの間に亘って遮断されている。プロセッサ2は、メモリの予約を受け付けられた。遮断を伴わない通常のメモリアクセスに際しては、ここでは、その前にプロセッサ1の順番であった場合に、プロセッサ2がプロセッサ1より前にアクセス可能である。
−プロセッサ1によるメモリアクセス:この場合にはメモリが遮断されていない。プロセッサ1は、データメモリへのアクセスを許可される。プロセッサ1は、メモリを遮断しようとする場合には、この状態で行う。
−プロセッサ2によるメモリアクセス:同クロック内でプロセッサ1はメモリにアクセスしようとせず、よってメモリはプロセッサ2のために解放されている。
−いずれのプロセッサも、データメモリにアクセスしようとしない。
DVEは、前述したように、切替意図の検出器(IllOPDetect)、モード切替ユニット、Iram制御およびDram制御から構成される。
以下では、図3を用いてモード切替機能の方法がもう一度説明される。
2つのプロセッサの切替えは、ここでは例えばプログラム内の指令IllOpによってトリガーされる。各々のプロセッサが一義的に識別可能であることが前提とされる。このために、各々のプロセッサに番号が対応づけられる。この例では、一方のコアが1であり、他方のコアが0である。これらは、プロセッサ状態レジスタ内に符号化される。
2つのプロセッサは、ここで同期化のために待機コマンドによって停止される。同様に、停止されるべきプロセッサのためのクロックを、この間に亘って停止させうる(例えば、0で停止し、1で再びクロック制御するOR結合によって)。
Switch−Detectユニット:2つのモードの間の切替が切替検出(Switch-Detect)ユニットによって認識される。このユニットは、指令バス上でキャッシュとプロセッサとの間に配置されて、指令IllOpがプロセッサにロードされるかを確認する。指令が検出されると、このイベントがモード切替(Mode-Switch)ユニットに報告される。この認識は、”コア1信号”または”コア2信号”(図2を参照)によってモード切替ユニットに報告される。切替検出ユニットは、各々のプロセッサに個別に備えられている。切替検出ユニットは、エラー許容するように形成される必要はない。というのは、このユニットは二重化されており、よって冗長的に備えられているからである。
Mode−Switchユニット:2つのモード間の切替は、切替検出(Switch-Detect)ユニットによってトリガーされる。ロックモードからスプリットモードへの切替に際して、2つの切替検出ユニットが切替を検出する。というのは、ロックモードでは2つのプロセッサが同一のプログラムコードを処理するからである。プロセッサ1の切替検出ユニットは、この切替をプロセッサ2の切替検出ユニットより1.5クロック早く認識する。モード切替ユニットは、待機信号を用いてプロセッサ1を2クロックのみ停止させる。プロセッサ2は、1.5クロック遅れて同様に停止されるが、半クロックのみ停止され、よってシステムクロックに同期化される。次に、状態信号が他のコンポーネントのためにスプリットに切替えられ、2つのプロセッサはさらに機能を続ける。よって、2つのプロセッサが異なるタスクを実行するために、それらはプログラムコード中で互いに分離して実行される必要がある。これは、スプリットモードへの切替直後にプロセッサIDに対する読取アクセスがなされることで行われる。この読取られたプロセッサIDは、2つのプロセッサの各々に関して異なっている。目標プロセッサIDが比較されると、次に、条件付分岐指令によって、該当するプロセッサが他のプログラム箇所に分岐されうる。2つのプロセッサの分離は、例えば以下のようになる。
スプリットプロセスに際してはまず、プロセッサIDが格納されている状態レジスタのアドレスがr1に書込まれる。
LDL r1,248
LDH r1,255
次に、IllOp指令による2つのプロセッサの分離
error
状態レジスタの内容をアドレスr1からr2にロードし、
LDW r2,r1
状態レジスタのビット5をテストする。このビットが“0”であればプロセッサ1、“1”であればプロセッサ2が問題となる。
BTEST r2,5
条件付ジャンプによってプロセッサ2が他のプログラム箇所に移動される。
JMPI_CT 10
スプリットモードからロックモードへの切替に際しては、一つのプロセッサもしくは2つのプロセッサの一方がまず切替に気づく。このプロセッサが、切替指令を含むプログラムコードを実行する。これが、切替検出ユニットによって確認されて、それがモード切替ユニットに通知される。モード切替ユニットが、該当するプロセッサを停止させて、第2のプロセッサにインターラプトによって同期化の意図を通知する(図2中の“メッセージ1”または“メッセージ2”)。第2のプロセッサは、インターラプトを受けて、タスクを終了させるためのソフトウェアルーチンを実行可能である。そして、このプロセッサが同様に、切替指令があるプログラム箇所に分岐する。この切替検出ユニットが、同様にモード切替の意図をモード切替ユニットに通知する。次のシステムクロックの上昇端(steigenden Systemtaktflanke)で、プロセッサ1に対する待機信号が非能動化されて、1.5クロック遅れてプロセッサ2に対する待機信号が非能動化される。そして、両者は再び1.5クロックのクロックオフセットを伴って同期して機能する。
システムがロックモードにある場合には、2つの切替検出ユニットは、スプリットモードへの切替を意図していることをモード切替ユニットに通知する必要がある。切替意図が一方のユニットのみから行われると、比較ユニットによりエラーが認識される。というのは、このユニットは、2つのプロセッサの他方より、停止されているプロセッサとは一致しないデータをさらに供給されているからである。
2つのプロセッサがスプリットモードにあり、かつ一方がロックモードに切替わらなければ、それが外部のウォッチドッグによって認識可能である。各プロセッサに関するトリガー信号により、ウォッチドッグは、待っているプロセッサからもはや報告がなされないことに気づく。プロセッサシステムのために1つのウォッチドッグ信号のみが存在する場合には、ウォッチドッグはロックモードでのみトリガーを許可される。よって、ウォッチドッグは、モード切替が行われなかったことを認識する。モード信号は、デュアルレール信号として存在する(図2中では“状態”と称される)。この場合に“10”がロックモードを、“01”がスプリットモードを表す。“00”および“11”では、エラーが発生している。
プロセッサのパイプラインの始端で切替指令が検出されるので、検出後のパイプライン段階ではジャンプが存在してはならない。これを阻止するための最も簡単な方法は、指令IllOpの前に2つのNOpを挿入することである。
本発明の要旨は、前述したように、モード切替方法の一般的な機能性(モードに従って異なるデータ分配とそれに伴う動作モードの選択)とその場合の特にプロセッサの同期化にある。
また、この他に説明した特殊な実装も、冒頭で述べた課題を解決する。
第1および第2の計算機を備えるダブル計算機システムを示している。 データ分配ユニット(DVE)に関する実装例を示している。 モード切替機能性を説明している。

Claims (37)

  1. 少なくとも2つのプロセッサを有するマルチプロセッサシステムにおける同期化のための方法であって、切替手段が設けられ、前記切替手段によって少なくとも2つの動作モードが切替可能であり、前記少なくとも2つのプロセッサは、第1の動作モードでは、同期して同一のプログラムを冗長に実行し、第2の動作モードでは、同期せずに相異なるプログラムを実行し、
    前記同期の動作モードから前記非同期の動作モードへ移行するために、前記マルチプロセッサシステム内の各プロセッサに固有の識別子(ID)に基づいて、前記少なくとも2つのプロセッサが相異なるプログラム箇所にジャンプすることによって非同期化が達成されることを特徴とする、同期化のための方法。
  2. 1以上のプロセッサにより行われうる同期化意図により同期化が作動され、前記同期化は、先行するプロセッサを少なくとも他のプロセッサに同期させるために停止させる停止信号により行われることを特徴とする、請求項1に記載の方法。
  3. 前記停止信号としてプロセッサからの待機信号が用いられることを特徴とする、請求項に記載の方法。
  4. 前記停止信号としてインターラプト信号が作動されることを特徴とする、請求項に記載の方法。
  5. 前記同期化のためにクロックサイクルのスキップによって前記プロセッサが停止されることを特徴とする、請求項に記載の方法。
  6. 前記同期化のためにクロック信号の遮断によって前記プロセッサが停止されることを特徴とする、請求項に記載の方法。
  7. 前記切替が切替意図によって表され、前記切替意図が信号によって作動されることを特徴とする、請求項1に記載の方法。
  8. 前記切替が切替意図によって表され、少なくとも2つのプロセッサにより前記切替意図が行われた場合に初めて前記切替が行われることを特徴とする、請求項1に記載の方法。
  9. 前記切替が切替意図によって作動され、前記切替意図に従って前記マルチプロセッサシステムの前記動作モードが切替えられ、前記切替意図が信号によって通知されることを特徴とする、請求項1に記載の方法。
  10. 現在の前記動作モードがモード信号によって通知されることを特徴とする、請求項1に記載の方法。
  11. 前記モード信号が符号化された信号であることを特徴とする、請求項10に記載の方法。
  12. 前記モード信号がデュアルレール信号であることを特徴とする、請求項11に記載の方法。
  13. 前記モード信号が冗長的に生成されることを特徴とする、請求項10に記載の方法。
  14. 前記モード信号が2つの状態オートマトンまたはデュアルレールロジックによって冗長的に生成されることを特徴とする、請求項13に記載の方法。
  15. 同期化意図が中央のユニットに伝達され、前記中央のユニットが前記同期化意図を少なくとも1つの他のプロセッサにさらに伝達することを特徴とする、請求項1に記載の方法。
  16. 前記同期化が切替意図の伝達によって行われ、前記伝達によって前記プロセッサが予め設定されたプログラムアドレスにジャンプすることを特徴とする、請求項1に記載の方法。
  17. 一方のプロセッサがタスクを処理した後に同一のプログラム箇所に同様に到達するまでの間に亘って他方のプロセッサが停止されることを特徴とする、請求項1に記載の方法。
  18. 少なくとも2つのプロセッサおよび前記少なくとも2つのプロセッサを同期または非同期させる手段を有するマルチプロセッサシステムにおける同期化のための装置であって、切替手段が設けられ、前記切替手段によって少なくとも2つの動作モードが切替可能であり、前記少なくとも2つのプロセッサは、第1の動作モードでは、同期して同一のプログラムを冗長に実行し、第2の動作モードでは、同期せずに相異なるプログラムを実行し、
    前記マルチプロセッサシステムは、前記同期の動作モードから前記非同期の動作モードへ移行するために、前記マルチプロセッサシステム内の各プロセッサに固有の識別子(ID)に基づいて、前記少なくとも2つのプロセッサが相異なるプログラム箇所にジャンプすることによって非同期化が達成されるように形成されていることを特徴とする、同期化のための装置。
  19. 第1の動作モードは、前記2つのプロセッサが同一のプログラムを処理する安全モードに相当し、かつ比較手段が設けられており、前記比較手段は、前記同一のプログラムの処理に際して生じる状態の一致について比較することを特徴とする、請求項18に記載の装置。
  20. 前記マルチプロセッサシステムは、先行するプロセッサを少なくとも他のプロセッサに同期させるために停止させる停止信号により同期化が行われるように形成されていることを特徴とする、請求項18に記載の装置。
  21. 前記停止信号としてプロセッサからの待機信号が用いられるように形成されていることを特徴とする、請求項20に記載の装置。
  22. 前記停止信号としてインターラプト信号が作動されるように形成されていることを特徴とする、請求項20に記載の装置。
  23. 前記同期化のためにクロックサイクルのスキップによって前記プロセッサが停止されるように形成されていることを特徴とする、請求項20に記載の装置。
  24. 前記同期化のためにクロック信号の遮断によって前記プロセッサが停止されるように形成されていることを特徴とする、請求項20に記載の装置。
  25. 現在の前記動作モードがモード信号によって通知されるように形成されていることを特徴とする、請求項18に記載の装置。
  26. 前記モード信号が符号化された信号として存在するように形成されていることを特徴とする、請求項25に記載の装置。
  27. 前記モード信号がデュアルレール信号として存在するように形成されていることを特徴とする、請求項26に記載の装置。
  28. 前記モード信号が冗長的に生成されるように形成されていることを特徴とする、請求項25に記載の装置。
  29. 前記モード信号が2つの状態オートマトンまたはデュアルレールロジックによって冗長的に生成されるように形成されていることを特徴とする、請求項28に記載の装置。
  30. 中央のユニットが設けられており、かつ、同期化意図が前記中央のユニットに伝達され、前記中央のユニットが前記同期化意図を少なくとも1つの他のプロセッサにさらに伝達するように形成されていることを特徴とする、請求項18に記載の装置。
  31. 少なくとも第2のプロセッサがタスクを処理した後に同一のプログラム箇所に到達するまでの間に亘って他方のプロセッサが停止されるように、形成されていることを特徴とする、請求項20に記載の装置。
  32. プロセッサレジスタが設けられており、かつ前記プロセッサレジスタ内に前記識別子が格納されていることを特徴とする、請求項18に記載の装置。
  33. 前記識別子が前記プロセッサの外部に格納されていることを特徴とする、請求項18に記載の装置。
  34. 前記識別子が前記プロセッサの外部の中央のユニット(DramCtrl)に格納されていることを特徴とする、請求項33に記載の装置。
  35. 前記動作モードを切替えるための前記切替手段がエラーを許容するように設けられていることを特徴とする、請求項18に記載の装置。
  36. 前記動作モードを切替えるための前記切替手段が、状態オートマトンの二重化またはデュアルレールロジックの実装によってエラーを許容するように設けられていることを特徴とする、請求項35に記載の装置。
  37. 請求項18〜36のいずれか1項に記載の装置を備えるマルチプロセッサシステム。
JP2007537302A 2004-10-25 2005-10-25 マルチプロセッサシステムにおける同期化のための方法および装置 Expired - Fee Related JP4532561B2 (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
DE200410051952 DE102004051952A1 (de) 2004-10-25 2004-10-25 Verfahren zur Datenverteilung und Datenverteilungseinheit in einem Mehrprozessorsystem
DE200410051950 DE102004051950A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Taktumschaltung bei 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
DE200410051964 DE102004051964A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Überwachung einer Speichereinheit in einem Mehrprozessorsystem
DE200410051937 DE102004051937A1 (de) 2004-10-25 2004-10-25 Verfahren und Vorrichtung zur Synchronisierung in einem Mehrprozessorsystem
PCT/EP2005/055537 WO2006045800A1 (de) 2004-10-25 2005-10-25 Verfahren und vorrichtung zur synchronisierung in einem mehrprozessorsystem

Publications (2)

Publication Number Publication Date
JP2008518309A JP2008518309A (ja) 2008-05-29
JP4532561B2 true JP4532561B2 (ja) 2010-08-25

Family

ID=35677569

Family Applications (5)

Application Number Title Priority Date Filing Date
JP2007537304A Pending JP2008518311A (ja) 2004-10-25 2005-10-25 マルチプロセッサシステムにおいてクロックを切り替えるクロック切り替え方法、クロックを切り替えるユニットおよびクロックを切り替えるユニットを有するシステム
JP2007537302A Expired - Fee Related JP4532561B2 (ja) 2004-10-25 2005-10-25 マルチプロセッサシステムにおける同期化のための方法および装置
JP2007537305A Pending JP2008518312A (ja) 2004-10-25 2005-10-25 マルチプロセッサシステムのデータおよび/または指令へのアクセスを遅延させる方法および装置
JP2007537303A Pending JP2008518310A (ja) 2004-10-25 2005-10-25 マルチプロセッサシステム内のメモリユニットを監視する方法および装置
JP2007537301A Pending JP2008518308A (ja) 2004-10-25 2005-10-25 マルチプロセッサシステム内のデータを分配するための方法およびデータ分配ユニット

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2007537304A Pending JP2008518311A (ja) 2004-10-25 2005-10-25 マルチプロセッサシステムにおいてクロックを切り替えるクロック切り替え方法、クロックを切り替えるユニットおよびクロックを切り替えるユニットを有するシステム

Family Applications After (3)

Application Number Title Priority Date Filing Date
JP2007537305A Pending JP2008518312A (ja) 2004-10-25 2005-10-25 マルチプロセッサシステムのデータおよび/または指令へのアクセスを遅延させる方法および装置
JP2007537303A Pending JP2008518310A (ja) 2004-10-25 2005-10-25 マルチプロセッサシステム内のメモリユニットを監視する方法および装置
JP2007537301A Pending JP2008518308A (ja) 2004-10-25 2005-10-25 マルチプロセッサシステム内のデータを分配するための方法およびデータ分配ユニット

Country Status (8)

Country Link
US (4) US7853819B2 (ja)
EP (5) EP1810145B1 (ja)
JP (5) JP2008518311A (ja)
KR (4) KR20070083772A (ja)
AT (2) ATE407398T1 (ja)
DE (2) DE502005005284D1 (ja)
RU (1) RU2007119316A (ja)
WO (5) WO2006045801A2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012124198A1 (ja) * 2011-03-15 2012-09-20 オムロン株式会社 制御装置およびシステムプログラムならびに記録媒体

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7882379B2 (en) * 2006-09-22 2011-02-01 Sony Computer Entertainment Inc. Power consumption reduction in a multiprocessor system
US20080244305A1 (en) * 2007-03-30 2008-10-02 Texas Instruments Deutschland, Gmbh Delayed lock-step cpu compare
DE102007063291A1 (de) * 2007-12-27 2009-07-02 Robert Bosch Gmbh Sicherheitssteuerung
JP4633134B2 (ja) * 2008-03-27 2011-02-16 ルネサスエレクトロニクス株式会社 マイクロコントローラ、制御システム及びマイクロコントローラの設計方法
US7941698B1 (en) * 2008-04-30 2011-05-10 Hewlett-Packard Development Company, L.P. Selective availability in processor systems
JP2010198131A (ja) * 2009-02-23 2010-09-09 Renesas Electronics Corp プロセッサシステム、及びプロセッサシステムの動作モード切り替え方法
US8275977B2 (en) * 2009-04-08 2012-09-25 Freescale Semiconductor, Inc. Debug signaling in a multiple processor data processing system
US8295287B2 (en) * 2010-01-27 2012-10-23 National Instruments Corporation Network traffic shaping for reducing bus jitter on a real time controller
US8954714B2 (en) * 2010-02-01 2015-02-10 Altera Corporation Processor with cycle offsets and delay lines to allow scheduling of instructions through time
US9052887B2 (en) 2010-02-16 2015-06-09 Freescale Semiconductor, Inc. Fault tolerance of data processing steps operating in either a parallel operation mode or a non-synchronous redundant operation mode
KR101664108B1 (ko) 2010-04-13 2016-10-11 삼성전자주식회사 멀티 코어의 동기화를 효율적으로 처리하기 위한 하드웨어 가속 장치 및 방법
JP5718600B2 (ja) * 2010-09-10 2015-05-13 日本電気通信システム株式会社 情報処理システム、および、情報処理方法
US8683251B2 (en) 2010-10-15 2014-03-25 International Business Machines Corporation Determining redundancy of power feeds connecting a server to a power supply
EP2701073B1 (en) 2011-04-18 2018-01-24 Fujitsu Limited Thread processing method and thread processing system
US9086977B2 (en) * 2011-04-19 2015-07-21 Freescale Semiconductor, Inc. Cache memory with dynamic lockstep support
US9842014B2 (en) 2012-11-22 2017-12-12 Nxp Usa, Inc. Data processing device, method of execution error detection and integrated circuit
US9429981B2 (en) * 2013-03-05 2016-08-30 St-Ericsson Sa CPU current ripple and OCV effect mitigation
US9823983B2 (en) 2014-09-25 2017-11-21 Nxp Usa, Inc. Electronic fault detection unit
WO2016087175A1 (de) * 2014-12-01 2016-06-09 Continental Teves Ag & Co. Ohg Rechensystem für ein kraftfahrzeugsystem
JP6516097B2 (ja) * 2015-06-11 2019-05-22 大日本印刷株式会社 演算装置、icカード、演算方法、及び演算処理プログラム
JP2019061392A (ja) 2017-09-26 2019-04-18 ルネサスエレクトロニクス株式会社 マイクロコントローラ及びマイクロコントローラの制御方法
US10642826B1 (en) 2018-08-30 2020-05-05 Gravic, Inc. Mixed-mode method for combining active/active and validation architectures utilizing a check integrity module
US11269799B2 (en) * 2019-05-03 2022-03-08 Arm Limited Cluster of processing elements having split mode and lock mode
US11899547B2 (en) * 2021-11-30 2024-02-13 Mellanox Technologies, Ltd. Transaction based fault tolerant computing system
US20230259433A1 (en) * 2022-02-11 2023-08-17 Stmicroelectronics S.R.L. Systems and methods to test an asychronous finite machine

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE1269827B (de) * 1965-09-09 1968-06-06 Siemens Ag Verfahren und Zusatzeinrichtung zur Synchronisierung von parallel arbeitenden Datenverarbeitungsanlagen
US3783250A (en) * 1972-02-25 1974-01-01 Nasa Adaptive voting computer system
US4823256A (en) * 1984-06-22 1989-04-18 American Telephone And Telegraph Company, At&T Bell Laboratories Reconfigurable dual processor system
AU616213B2 (en) * 1987-11-09 1991-10-24 Tandem Computers Incorporated Method and apparatus for synchronizing a plurality of processors
US6038584A (en) * 1989-11-17 2000-03-14 Texas Instruments Incorporated Synchronized MIMD multi-processing system and method of operation
US5226152A (en) * 1990-12-07 1993-07-06 Motorola, Inc. Functional lockstep arrangement for redundant processors
DE4104114C2 (de) * 1991-02-11 2000-06-08 Siemens Ag Redundantes Datenverarbeitungssystem
JPH05128080A (ja) * 1991-10-14 1993-05-25 Mitsubishi Electric Corp 情報処理装置
US5751932A (en) * 1992-12-17 1998-05-12 Tandem Computers Incorporated Fail-fast, fail-functional, fault-tolerant multiprocessor system
JPH07121483A (ja) * 1993-10-28 1995-05-12 Nec Eng Ltd 共有メモリアクセス制御回路
US5758132A (en) 1995-03-29 1998-05-26 Telefonaktiebolaget Lm Ericsson Clock control system and method using circuitry operating at lower clock frequency for selecting and synchronizing the switching of higher frequency clock signals
CA2178440A1 (en) * 1995-06-07 1996-12-08 Robert W. Horst Fail-fast, fail-functional, fault-tolerant multiprocessor system
JPH096733A (ja) * 1995-06-14 1997-01-10 Toshiba Corp 並列信号処理装置
JPH0973436A (ja) * 1995-09-05 1997-03-18 Mitsubishi Electric Corp 多重化計算機における動作モード切替方式
US5732209A (en) * 1995-11-29 1998-03-24 Exponential Technology, Inc. Self-testing multi-processor die with internal compare points
US5809522A (en) * 1995-12-18 1998-09-15 Advanced Micro Devices, Inc. Microprocessor system with process identification tag entries to reduce cache flushing after a context switch
FR2748136B1 (fr) * 1996-04-30 1998-07-31 Sextant Avionique Module electronique avec architecture redondante pour controle d'integrite du fonctionnement
GB2317032A (en) * 1996-09-07 1998-03-11 Motorola Gmbh Microprocessor fail-safe system
GB9704542D0 (en) * 1997-03-05 1997-04-23 Sgs Thomson Microelectronics A cache coherency mechanism
EP0978784A1 (en) * 1998-08-04 2000-02-09 Motorola, Inc. Method for coding computer programs and method for debugging coded computer programs
GB2340627B (en) * 1998-08-13 2000-10-04 Plessey Telecomm Data processing system
JP2000200255A (ja) * 1999-01-07 2000-07-18 Hitachi Ltd プロセッサ間の同期化方法及び同期回路
WO2000079405A1 (fr) * 1999-06-21 2000-12-28 Hitachi, Ltd. Processeur de donnees
US6615366B1 (en) * 1999-12-21 2003-09-02 Intel Corporation Microprocessor with dual execution core operable in high reliability mode
US6640313B1 (en) * 1999-12-21 2003-10-28 Intel Corporation Microprocessor with high-reliability operating mode
US6772368B2 (en) * 2000-12-11 2004-08-03 International Business Machines Corporation Multiprocessor with pair-wise high reliability mode, and method therefore
DE10136335B4 (de) * 2001-07-26 2007-03-22 Infineon Technologies Ag Prozessor mit mehreren Rechenwerken
US6947047B1 (en) * 2001-09-20 2005-09-20 Nvidia Corporation Method and system for programmable pipelined graphics processing with branching instructions
US20040076189A1 (en) * 2002-10-17 2004-04-22 International Business Machines Corporation Multiphase clocking method and apparatus
US7055060B2 (en) * 2002-12-19 2006-05-30 Intel Corporation On-die mechanism for high-reliability processor
JP2004234144A (ja) * 2003-01-29 2004-08-19 Hitachi Ltd プロセッサの動作比較装置および動作比較方法
US20070277023A1 (en) * 2003-06-24 2007-11-29 Reinhard Weiberle Method For Switching Over Between At Least Two Operating Modes Of A Processor Unit, As Well Corresponding Processor Unit
US7134031B2 (en) * 2003-08-04 2006-11-07 Arm Limited Performance control within a multi-processor system
DE10349581A1 (de) * 2003-10-24 2005-05-25 Robert Bosch Gmbh Verfahren und Vorrichtung zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012124198A1 (ja) * 2011-03-15 2012-09-20 オムロン株式会社 制御装置およびシステムプログラムならびに記録媒体
US10025281B2 (en) 2011-03-15 2018-07-17 Omron Corporation Control device and system program, and recording medium

Also Published As

Publication number Publication date
WO2006045801A3 (de) 2006-07-06
KR20070083772A (ko) 2007-08-24
WO2006045802A2 (de) 2006-05-04
RU2007119316A (ru) 2008-12-10
EP1807763A2 (de) 2007-07-18
EP1807763B1 (de) 2008-09-24
US20090164826A1 (en) 2009-06-25
EP1810145A1 (de) 2007-07-25
EP1820102A2 (de) 2007-08-22
WO2006045798A1 (de) 2006-05-04
US20080209251A1 (en) 2008-08-28
KR20070083771A (ko) 2007-08-24
JP2008518308A (ja) 2008-05-29
WO2006045804A1 (de) 2006-05-04
DE502005005284D1 (de) 2008-10-16
JP2008518309A (ja) 2008-05-29
US20080163035A1 (en) 2008-07-03
DE502005005490D1 (de) 2008-11-06
JP2008518312A (ja) 2008-05-29
JP2008518310A (ja) 2008-05-29
ATE407398T1 (de) 2008-09-15
EP1812861A1 (de) 2007-08-01
EP1807761A1 (de) 2007-07-18
US20080126718A1 (en) 2008-05-29
WO2006045802A3 (de) 2007-01-04
JP2008518311A (ja) 2008-05-29
ATE409327T1 (de) 2008-10-15
KR20070062579A (ko) 2007-06-15
WO2006045801A2 (de) 2006-05-04
KR20070067168A (ko) 2007-06-27
EP1810145B1 (de) 2008-09-03
WO2006045800A1 (de) 2006-05-04
US7853819B2 (en) 2010-12-14

Similar Documents

Publication Publication Date Title
JP4532561B2 (ja) マルチプロセッサシステムにおける同期化のための方法および装置
US9052887B2 (en) Fault tolerance of data processing steps operating in either a parallel operation mode or a non-synchronous redundant operation mode
JP5199088B2 (ja) 少なくとも2つの命令実行部および1つの比較ユニットを備えたコンピュータシステムを制御する方法および装置
US20090044044A1 (en) Device and method for correcting errors in a system having at least two execution units having registers
CA2549540C (en) A task management control apparatus and method
US20090044048A1 (en) Method and device for generating a signal in a computer system having a plurality of components
JP2006164277A (ja) プロセッサにおけるエラー除去装置および方法,プロセッサ
US8090983B2 (en) Method and device for performing switchover operations in a computer system having at least two execution units
KR20130119452A (ko) 오류 허용 아키텍쳐를 갖는 마이크로프로세서 시스템
US20090119540A1 (en) Device and method for performing switchover operations in a computer system having at least two execution units
US20080263340A1 (en) Method and Device for Analyzing a Signal from a Computer System Having at Least Two Execution Units
JP2022534418A (ja) エラーリカバリ方法及び装置
US20080288758A1 (en) Method and Device for Switching Over in a Computer System Having at Least Two Execution Units
KR20080067663A (ko) 프로그램 제어식 유닛과, 이 프로그램 제어식 유닛의 동작방법
CN100555233C (zh) 用于在多处理器系统中进行同步的方法和设备
US20080313384A1 (en) Method and Device for Separating the Processing of Program Code in a Computer System Having at Least Two Execution Units
US20070294559A1 (en) Method and Device for Delaying Access to Data and/or Instructions of a Multiprocessor System
US20090024908A1 (en) Method for error registration and corresponding register
JP3746957B2 (ja) 論理分割システムの制御方法
CA2619742C (en) An input/output control apparatus for performing high reliability computations
El Salloum et al. Recovery mechanisms for dual core architectures
JP2006338425A (ja) 制御装置
JPH0498326A (ja) マイクロプロセッサ
JPH0458329A (ja) 演算処理装置

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100119

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100405

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100511

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100610

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130618

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees