(57)【要約】  ここに記載されているのは、あらかじめ設定可能なクロックで作動可能な少なくとも２つの実行ユニットを有するプロセッサユニットにおけるオペランド処理方法および装置である。ここで上記の実行ユニットは、制御信号によって駆動制御されてオペランドを処理し、また第１動作モードと第２動作モードとの間で切り換えを行うことができる。本発明の特徴は、第１動作モードでは２つの実行ユニットに同じオペランドを供給し、第２動作モードでは２つの実行ユニットに別個のオペランドを供給し、第１動作モードでは同じ制御信号によって２つの実行ユニットを駆動制御してオペランドを処理し、第２動作モードでは相異なる制御信号によって２つの実行ユニットを駆動制御してオペランドを処理することである。
2007509399.tif 000002
【特許請求の範囲】
【請求項１】
あらかじめ設定可能なクロックで作動可能な少なくとも２つの実行ユニットを有するプロセッサユニットにおけるオペランド処理方法であって、
前記実行ユニットは、制御信号によって駆動制御されてオペランドを処理し、また第１動作モードと第２動作モードとの間で切り換えを行うことができる形式の、オペランド処理方法において、
第１動作モードでは２つの実行ユニットに同じオペランドを供給し、
第２動作モードでは２つの実行ユニットに別個のオペランドを供給し、
第１動作モードでは２つの実行ユニットを同じ制御信号によって駆動制御して前記オペランドを処理し、
第２動作モードでは２つの実行ユニットを相異なる制御信号によって駆動制御して前記ペランドを処理することを特徴とする
オペランド処理方法。
【請求項２】
フルクロックであるクロックに依存して実行ユニットにオペランドを供給して実行ユニットのオペランドを処理し、
第２動作モードでは前記フルクロックよりも一層高速な第２クロックでオペランドを供給して当該オペランドを処理する、
請求項１に記載の方法。
【請求項３】
前記の第１動作モードでは、フルクロックである実行ユニットのクロックでオペランドを供給する、
請求項２に記載の方法。
【請求項４】
前記の一層高速な第２クロックを、前記のフルクロックと比較して２倍に高速なハーフクロックとして構成する、
請求項２に記載の方法。
【請求項５】
前記の２つの動作モードでオペランドを動作ユニットによって同期して処理する、
請求項１に記載の方法。
【請求項６】
前記のオペランドを第１動作モードでは同期処理し、第２動作モードでは非同期処理する、
請求項１に記載の方法。
【請求項７】
前記のオペランドまたは当該オペランドから導出したデータが一致するか否かを比較し、異なっている場合にはエラーと識別する、
請求項１に記載の方法。
【請求項８】
オペランドを処理した際に発生した状態または結果（ResultＡ，ResultＢ）が一致するか否かを比較し、異なっている場合にはエラーと識別し、ここで当該比較を都度の動作モードに依存して行う、
請求項１に記載の方法。
【請求項９】
前記の動作モードおよび前記の比較に依存し、リリース信号によって前記の状態または結果をリリースする、
請求項８に記載の方法。
【請求項１０】
前記の動作モードに依存し、リリース信号によって前記の状態または結果を、同時または順次にリリースする、
請求項９に記載の方法。
【請求項１１】
あらかじめ設定可能なクロックで作動可能な少なくとも２つの実行ユニットを有するプロセッサユニットにおけるオペランド処理装置であって、
ここでは制御装置が含まれており、
該制御装置により、制御信号によって前記実行ユニットが駆動制御されてオペランドが処理され、また第１動作モードと第２動作モードとの間で切り換えが行われる形式の、オペランド処理装置において、
前記の制御装置は、実行ユニットおよび別の供給ユニットに接続されており、
また前記の制御装置は供給ユニットと協働して、第１動作モードでは２つ実行ユニットに同じオペランドが供給され、第２動作モードでは２つの実行ユニットに別個のオペランドが供給されるようにし、
ここで前記制御装置を構成して、第１動作モードでは同じ制御信号によって２つの実行ユニットが駆動制御されて前記オペランドが処理され、また第２動作モードでは相異なる制御信号によって２つの実行ユニットが駆動制御されて前記オペランドが処理されようにしたことを特徴とする
オペランド処理装置。
【請求項１２】
前記の制御装置および供給装置を構成して、第１動作モードでは、フルクロックである実行ユニットのクロックに依存して実行ユニットにオペランドが供給され、また第２動作モードでは、フルクロックよりも一層高速な第２クロックでオペランドが供給されて処理されるようにした、
請求項１１に記載の装置。
【請求項１３】
前記の少なくとも２つの実行ユニットは演算装置（ＡＬＵＡ，ＡＬＵＢ）として構成されている、
請求項１１に記載の装置。
【請求項１４】
前記の供給ユニットおよび実行ユニットを構成して、当該の供給ユニットおよび実行ユニットが第１動作モードにおいて同期して同じクロックで動作するないしは作動されるようにした、
請求項１１に記載の装置。
【請求項１５】
前記供給ユニットをレジスタ装置として構成して、少なくとも１つのオペランドレジスタが設けられており、またオペランドレジスタおよび各実行ユニット間に少なくとも１つの中間レジスタが設けられているようにした、
請求項１１に記載の装置。
【請求項１６】
前記の供給ユニットおよび実行ユニットを構成して、当該の供給ユニットおよび実行ユニットが第２動作モードで別個のクロックで動作するか、または作動されるようにした、
請求項１１に記載の装置。
【請求項１７】
前記の供給ユニットを構成して、当該供給ユニットが第２動作モードにて実行ユニットの２倍のクロックで動作するか、または作動されるようにした、
請求項１１に記載の装置。
【請求項１８】
切換条件が識別するデコーダが設けられており、ここで該デコーダは供給ユニットと同じクロックで動作するか作動される、
請求項１１に記載の装置。
【請求項１９】
比較手段が設けられており、
該比較手段を構成して、前記のオペランドまたは当該オペランドから導出したデータが一致するか否かが比較され、異なる場合にはエラーと識別されるようにした、
請求項１１に記載の装置。
【請求項２０】
比較手段が設けられており、
該比較手段を構成して、前記のオペランドを処理した際に発生した状態または結果（ResultＡ，ResultＢ）が一致するか否かが比較され、異なる場合にはエラーと識別されるようにした、
請求項１１に記載の装置。
【請求項２１】
第１の切換手段が設けられており、
当該の第１の切換手段を構成するかないしは作動させて、当該の第１の切換手段により、供給ユニットからのオペランドが、第１または第２動作モードに依存して切り換えられて接続されるようにした、
請求項１１に記載の装置。
【請求項２２】
第２の切換手段が設けられており、
当該の第２の切換手段を構成するかないしは作動させて、当該の第２の切換手段により、前記実行ユニットが第１または第２動作モードに依存して作動されるようにした、
請求項１１に記載の装置。
【請求項２３】
あらかじめ設定可能なクロックで作動可能な少なくとも２つの実行ユニットを有し、オペランド処理装置を有するプロセッサユニットであって、
ここでは制御装置が含まれており、
該制御装置により、制御信号によって前記実行ユニットが駆動制御されてオペランドが処理され、また第１動作モードと第２動作モードとの間で切り換えが行われる形式の、オペランド処理装置を有するプロセッサユニットにおいて、
前記の制御装置は、実行ユニットおよび別の供給ユニットに接続されており、
また前記制御装置は当該供給ユニットと協働して、第１動作モードでは２つ実行ユニットに同じオペランドが供給され、第２動作モードでは２つの実行ユニットに別個のオペランドが供給されるようにし、
ここで前記制御装置を構成して、第１動作モードでは同じ制御信号によって２つの実行ユニットが駆動制御されて前記オペランドが処理され、また第２動作モードでは相異なる制御信号によって２つの実行ユニットが駆動制御されて前記オペランドが処理されようにしたことを特徴とする、
オペランド処理装置を有するプロセッサユニット。
【請求項２４】
請求項１２から２２までのいずれか１項に記載の装置を有する、
請求項２３に記載のプロセッサユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
従来の技術
本発明は、請求項１、請求項１１および請求項２３の上位概念に記載された、少なくとも２つの実行ユニットおよび少なくとも２つの動作モード間の切り換えを有するプロセッサユニットにおけるオペランド処理方法および装置と、相応するプロセッサユニットとを出発点とする。
【０００２】
少なくとも２つの組み込み実行ユニットを有する上記のようなプロセッサユニットは、デュアルコアまたはマルチコアアーキテクチャとしても知られている。このようなデュアルコアまたはマルチコアアーキテクチャは、今日の従来技術によれば主につぎのよう２つの理由から提案される。すなわち、
１つにはこのアーキテクチャによって性能向上、すなわちパフォーマンスの向上を達成することができ、これは２つの実行ユニットまたはコアを１半導体素子上の２つの計算ユニットと見なして操作することによって達成されるのである。この構成において２つの実行ユニットまたはコアは、相異なるプログラムないしはタスクを処理する。これによって性能向上を達成することが可能である。このためにこの構成は性能モードまたはパフォーマンスモードと称される。
【０００３】
スーパースカラプロセッサとしての使用に加えて、デュアルコアまたはマルチコアアーキテクチャを実現する２つの目の理由は安全性を高めることである。ここでこれは２つの実行ユニットによって同じプログラムを冗長に処理することによって行われる。２つの実行ユニットの結果は比較され、一致するか否かを比較する際にエラーを識別することができる。以下ではこの構成を安全モードまたはセーフティモードと称する。
【０００４】
上に挙げた２つの構成は一般にデュアルまたはマルチコアアーキテクチャにおいて排他的に含まれている。すなわち、少なくとも２つの実行ユニットを有する計算機は、基本的にはただ１つのモードでしか作動されないのである。つまりパフォーマンスモードか、セーフティモードのいずれかでしか作動されないのである。
【０００５】
本発明の課題は、このようなデュアルまたはマルチコアプロセッサユニットが少なくとも２つの動作モードという点において組み合わされて動作できるようにし、この際に少なくとも２つの動作モード間、すなわち殊にセーフティモードおよびパフォーマンスモードの間で最適な切り換えができるようにすることである。
【０００６】
発明の利点
一方では安全上の理由から、オペランドの冗長な処理ないしはプログラムまたはタスクの冗長な実行、すなわち、タスクプログラム、プログラム部分、コードブロックまたは個々の命令の冗長な実行も所望されるのであるが、他方ではコスト上の理由から、安全上クリティカルでない機能の実行に際して、まったく冗長なハードウェアを用意しておくことも得策ではない。このような矛盾する目標は、本発明により、プロセッサユニットにおいて少なくとも２つの動作モードの間で最適に切り換えを行うことによって解決される。
【０００７】
本発明は、あらかじめ設定可能なクロックによって作動可能な少なくとも２つの実行ユニットを有するプロセッサユニットにおけるオペランド処理方法および装置を出発点とする。これらの実行ユニットは、制御信号によって駆動制御されてオペランドを処理し、第１動作モードと第２動作モードとの間で切り換え可能であり、ここで有利には第１動作モードでは２つの実行ユニットに同じオペランドが供給され、第２動作モードでは２つの実行ユニットに別個のオペランドが供給され、第１動作モードでは２つの実行ユニットは、同じ制御信号によって駆動制御されてオペランドを処理し、第２動作モードでは２つの実行ユニットは別個の制御信号に駆動制御されてオペランドを処理する。
【０００８】
この際に有利には第１動作モードにおいて、フルクロック（Volltakt）である実行ユニットのクロックに依存して実行ユニットにオペランドが供給され、また第２動作モードにおいて、上記のフルクロックよりも一層高速な第２クロックでオペランドが供給されて処理が行われる。
【０００９】
この際に有利には２つの実行ユニットのクロックとフルクロックとを等しく選択する。１実施形態では上記の一層高速な第２クロックを、フルクロックと比較して２倍に高速なハーフクロックとして構成する。
【００１０】
有利には上記のオペランドを２つの動作モードにおいて同期して処理する。ここでは第１動作モードにおいてオペランドを同期処理して、第２動作モードでオペランドを非同期処理することも考えられる。
【００１１】
安全上の理由から、オペランドまたはオペランドから導出したデータ、例えばオペランドから形成したＥＣＣ符号が一致するか否かを比較器ないしはコンパレータによって比較し、異なっている場合にはエラーを識別することが可能である。同様にオペランドを処理した際に発生した状態、例えばＥＣＣ符号の形態の導出データ、または結果が一致するか否かを比較器によって比較することができ、異なる場合にはここでもエラーを識別する。いずれのケースにおいても比較を行う際に動作モードに依存して、このような比較を行うか否か、またはどのオペランド、データ、状態または結果を比較するかを決定することができる。
【００１２】
つぎに上記の状態または結果は、バスへの書き込みの前にリリース信号によってリリースされる。ここでこれは動作モードおよび比較結果に依存して行われて、これらの状態または結果は、同時または順次のいずれかでリリースすることができる。
【００１３】
本発明の装置ないしはこのような装置を有するプロセッサユニットは、あらかじめ設定可能なクロックで作動可能な少なくとも２つの実行ユニットの他に、制御装置、例えば切換装置を有する。ここでこの制御装置により、制御信号によって上記の実行ユニットが駆動制御されてオペランドが処理され、また第１動作モードと第２動作モードとの間で切り換えが行われる。またこの制御装置は上記の実行ユニットおよび別の供給ユニットに接続されている。この制御装置は、供給ユニットと協働して、第１動作モードでは２つ実行ユニットに同じオペランドが供給され、第２動作モードでは２つの実行ユニットに別個のオペランドが供給されるようにする。またここではこの制御装置を構成して、第１動作モードでは同じ制御信号によって２つの実行ユニットが駆動制御されて前記オペランドが処理され、また第２動作モードでは相異なる制御信号によって２つの実行ユニットが駆動制御されて前記オペランドが処理されるようにする。
【００１４】
ここでは有利には上記の制御装置および供給ユニットを構成して、第１動作モードでは、フルクロックである実行ユニットのクロックに依存して実行ユニットにオペランドが供給され、また第２動作モードでは、フルクロックよりも一層高速な第２クロックでオペランドが供給されて処理されるようにする。
【００１５】
上記の２つの実行ユニットは、単に演算装置（ＡＬＵ）として構成することができ、または完全な演算コアまたは処理ユニット（ＣＰＵ）として構成することも可能である。これにより、本発明は有利にも、少なくとも2重に実施されてオペランドを処理し、プロセッサユニットの実行ユニットであるすべてのコンポーネントに適用可能である。
【００１６】
上記の供給ユニットをレジスタ装置として構成して、少なくとも１つのオペランドレジスタが設けられ、またオペランドレジスタおよび各実行ユニット間に少なくとも１つの中間レジスタが設けられるようにする。ここでは上記の供給ユニットおよび実行ユニットを構成して、これらが第２動作モード、すなわち性能モードＬＭにおいて別個のクロックで動作するか、または作動されるようにする。例えば、供給ユニットを構成して、これが第２動作モードにおいて実行ユニットより一層高速な、例えば２倍のクロックで動作するか、または作動されるようにする。
【００１７】
ここでは有利には切換条件を識別するデコーダが設けられている。ここでこのデコーダは供給ユニットと同じクロックで動作するか作動される。
【００１８】
有利にはオプションで第１の切換手段が設けられており、これを構成ないしは駆動制御して、第１の切換手段により、上記の供給ユニットが第１または第２動作モードに依存して切り換えられるようにする。または第２の切換手段が設けられており、これを構成ないしは駆動制御して、第２の切換手段により、上記の実行ユニットが第１または第２動作モードに依存して切り換えられるようにする。
【００１９】
有利には上記の供給ユニットおよび実行ユニットを構成して、これらの供給ユニットおよび実行ユニットが第１動作モード、すなわち安全モードにおいて同じクロックで殊に同期して動作するないしは作動されるようにする。
【００２０】
他の利点および有利な実施形態は、以下の説明ないしは請求項の特徴部分に記載されている。
【００２１】
図面
以下では図面に示して図に基づいて本発明を詳しく説明する。
【００２２】
ここで図１および図２には、２重の演算装置およびオペランドレジスタ装置を有するプロセッサユニットが１つずつ示されており、ここでこのオペランドレジスタ装置は、１つずつのオペランドレジスタと１つずつの中間レジスタとを有する。
【００２３】
図３にも２重の実行ユニットを有するプロセッサユニットが示されており、またこれは図１および２とは異なるオペランドレジスタ装置とを有する。このオペランドレジスタ装置はオペランドレジスタの２つずつペアと、相応する数の中間レジスタとを有する。
【００２４】
図４には、オペランドを供給して処理する相異なるクロック、例えばハーフクロックおよびフルクロックが示されている。
【００２５】
図５にも図３と同等の２重の実行ユニットを有するプロセッサユニットが示されており、ここでは実行ユニットは１つのオペランド入力側だけを利用でき、またオペランドレジスタ装置には１つのオペランドレジスタだけが設けられている。
【００２６】
実施例の説明
図面の図１，２，３および５において、同じおよび／または機能的に同じ要素には特に断らない限り同じ参照符号が付されている。
【００２７】
直接的に本発明によるものではないプロセッサユニットのコンポーネント、例えば記憶ユニット、周辺ユニット、演算装置の図におけるコアまたはＣＰＵの残りの部分などは、見やすくするために図１および２において直接的に示していない。しかしながら本発明の枠内において２つの演算装置ＡＬＵ  ＡおよびＡＬＵ  Ｂは、ＦＰＵまたは完全なコアないしはＣＰＵ全体に相応し得るため、本発明は、完全なデュアルコアアーキテクチャにも使用可能である。このことは図３および５にさらに示されている通りである。しかしながら図１および２において有利には演算装置だけを２重にして、ＣＰＵの他のコンポーネントは別のエラー検出メカニズムによって保証する。
【００２８】
図１および２において参照符号１および２によりそれぞれ、実行ユニットである算術論理ユニット（ＡＬＵ  Arithmetic Logic Unit）または浮動小数点ユニット（ＦＰＵ  Floating Point Unit）を示す。この実施例では演算装置（ＡＬＵ）は冗長に設けられている。各ＡＬＵユニット１，２は２つの入力側および１つの出力側を有する。テスト動作において、実行のために設けられるオペランドは、バス３から直接、ＡＬＵユニット１，２の入力側に入力結合されるか、または特にこのために設けられたオペランドレジスタ８，９に前もってメモリされている。これらのオペランドレジスタ８，９はデータバス３に直接結合されている。すなわち２つのＡＬＵユニット１，２は、同じオペランドレジスタ８，９からまかなわれるのである。付加的にはバスを介して、各オペランドにすでにＥＣＣコーディングが付されているようにすることが可能であり、これらはレジスタ領域８Ａ，９Ａにメモリされる。すなわち、ＥＣＣが示されている図１および２（ならびに後で説明するように図３および５において）のすべての箇所において、ＥＣＣ符号（Error Correction Code）を使用することによってデータを保証することができる。
【００２９】
このようなエラー識別法は多様であり、基本的な前提は、エラー識別符号ないしはエラー訂正符号による、すなわちシグネチャ（Signatur）による保証である。最も簡単なケースではこのシグネチャは、ただ１つのシグネチャビット、例えば１パリティビットだけからなる。他方では上記の保証を複雑なＥＤ（Error Detection）符号、例えばベルガー（Berger）符号またはボーズ−リン（Bose-Lin）符号などにより、または複雑なＥＣＣ符号、例えばハミング符号などによって実現して、相応するビット数により、一層確実なエラー識別ができるようにすることが可能である。しかしながら符号発生器として、例えば（ハードワイヤまたはソフトウェアの）生成テーブルを使用して、アドレスの枠においてビットの所定の入力パターンに、任意長さの所望の符号パターンを対応づけることも可能である。これにより、例えば訂正機能によってデータの確実性を保証することができる。その上さらに安全上クリティカルなモードでは、すなわち安全モードＳＭでは安全上クリティカルなプログラムの冗長な処理が、２つの実行ユニットにおいて、すなわちここでは２つのＡＬＵ１および２において行われ、これによって本発明ではこれらの実行ユニットにおけるエラーが、一致するか否かを比較することによって明らかにされるのである。以下では、考えられるエラー符号化の例の間の違いは区別せず、一般的に参照符号ＥＣＣを使用する。
【００３０】
安全に関連しない、ないしは安全上クリティカルでないプログラムまたはタスクないしはプログラム部分またはコードブロックまたは命令は、性能向上のために２つの実行ユニット上で分散して計算することができ、これによってスループットひいては性能が向上する。これはいわゆる性能モードまたはパフォーマンスモードＬＭにおいて行われる。
【００３１】
各オペランドをＡＬＵユニット１，２に入力結合する際には、正しくデータ入力することを殊に重視しなければならない。例えば、同じ誤ったオペランドが２つのＡＬＵユニット１，２に入力結合される場合、ＡＬＵユニット１，２の出力側におけるエラーは識別できないのである。したがって保証しなければならないのは、ＡＬＵユニット１または２のうちの少なくとも１つが正しいデータ入力値を受け取るか、ないしは２つのＡＬＵユニット１，２が、相異なっているが、いずれも誤ったデータ入力値を受け取るようにすることである。これは、ＡＬＵユニット１，２の少なくとも１つの入力値から上記のようにチェックサム、すなわちＥＣＣ符号を形成することによって保証される。専用に設けられた比較ユニット５Ｃ，６Ｃにおいて、付加的なデータレジスタまたは中間レジスタ１０，１１から得られるＥＣＣコーディング１０Ａ，１１Ａと、元々のソースレジスタ８，９から得られるＥＣＣコーディング８Ａ，９Ａとが比較される。オプションではレジスタ１０，１１から得られる入力データと、ソースレジスタ８，９から得られる入力データとを比較することも可能である。ＥＣＣコーディングないしはオペランドにおいて違いが発生した場合、このことはエラーと解釈され、エラー信号が出力され、場合によっては表示され、また場合によって訂正される。この比較は有利にはＡＬＵユニット１，２におけるオペランドの処理中に行われるため、このような入力側でのエラー識別およびエラー訂正はほとんど性能の損失なしに行われる。比較ユニット５Ｃ，６Ｃのうちの１つによってエラーが検出される場合、この計算をつぎのサイクル内で繰り返すことができる。この際にはシャドーレジスタが使用されて、最後の計算のオペランドがつねに確保される。これによってエラーの場合にこれらのオペランドが迅速に再度利用できるようにすることが可能である。しかしながらエラーが存在しなかったことに基づいてはじめて、イネーブル信号により、中間レジスタ１０，１１が新たに書き込まれる場合には、このようなシャドーレジスタを準備しなくてもよい。エラーの場合、比較ユニット５Ｃ，６Ｃはエラー信号を供給する。これにより、中間レジスタ１０，１１には新たな書き込みが行われない。
【００３２】
ＡＬＵユニット１，２により、出力側に１つずつの結果が形成される。ＡＬＵユニット１，２によって供給される結果データおよび／またはそのＥＣＣコーディングは、結果レジスタ１２，１３，１２Ａ，１３Ａにメモリされる。これらの結果データおよび／またはそれらのコーディングは、比較ユニット１４Ｃ，２４Ｃにおいて互いに比較される。エラーがない場合にはリリース信号１６が形成される。このリリース信号１６はリリース装置１５に入力結合され、このリリース装置は、結果データをバス４に書き込むために起動される。つぎにこれらの結果データはバス４を介して引き続き処理することができる。
【００３３】
リリース信号１６はさらに、レジスタ８〜１１を再度リリースするために利用することができ、これによってつぎのオペランドをバス３から読み出して、ＡＬＵユニット１，２で処理することができる。
【００３４】
図１の装置によって結果そのものはチェックされない。ここでは単に結果データが比較ユニット１４Ｃで互いに比較されるだけである。結果データのＥＣＣコーディングのチェックは、図２の装置によってはじめて可能になり、ここでは結果データが互いに比較されると共に、それらのＥＣＣコーディングも比較ユニット２４Ｃにおいて互いに比較される。
【００３５】
図１および２に示したエラー識別装置により、すべての過渡的なエラー、持続的なエラーならびに実行時エラーも識別される。結果が相応する比較ユニットおよび／または相応する結果レジスタに到達しないか、またはあまりに遅く到達して、比較が一部の結果によって行われる場合、ＡＬＵユニット１，２内の実行時エラーが識別される。エラー識別符号およびエラー訂正符号ならびに最終結果の比較により、オペランドレジスタおよび中間レジスタ８，９，１０，１１を保証することによって、都度のエラー箇所およびエラー時点を精確に特定することができる。これによって過渡的な障害に極めて迅速に対応することができる。
【００３６】
これにより、エラーの特定のために以下のような可能性が得られる。すなわち、
比較ユニット１４Ｃまたは２４Ｃにおける結果データの比較によって違いが発生した場合、ＡＬＵユニット１，２内のエラーを推定することができる。
【００３７】
比較ユニット５Ｃ，６Ｃのうちの１つにおけるＥＣＣコーディングの比較によって違いが発生した場合、バス３ないしは前置接続されたコンポーネントから得られた信号に誤りがあることを推定することができる。
【００３８】
比較ユニット２４ＣにおけるＥＣＣコーディングの比較によって違いが発生した場合、結果のコーディングが誤りを有すると推定することができる。
【００３９】
冗長な処理およびチェックが行われる上記の安全モードＳＭと、別個のプログラム処理によって性能向上が達成される性能モードＬＭとの間を切り換えるため、制御装置（Steuerwerk）１７が使用され、これは例えば切換装置の機能を実行する。この切換装置１７によって少なくとも素子８，９および１，２が切り換えられて、一方のケースにおいて、すなわち安全モードＳＭにおいて冗長なプログラム処理、例えば同期のプログラム処理を行い、また第２動作モード、すなわち性能モードＬＭにおいて別個のプログラムないしはオペランドの並列処理を実行することができる。このためのオプションのスイッチまたはスイッチ手段を設けることができる。これらのスイッチ手段は、１つには素子８，９ないしは１，２に、または上記の切換装置ないしは制御装置１７に配置することができるか、素子８，９，１，２ないしは１７とは別個に付加的に回路に含まれる。
【００４０】
切り換えのため、例えばプログラムまたはタスクプログラムまたはプログラム部分、すなわちコードブロックまたは命令またはオペランドそのもののマーキング（Kennzeichnung）が、識別子によって行われる。この識別子によって識別できるのは、これが安全に関連するか否か、すなわち安全モードＳＭで処理しなければならない否か、または性能モードＬＭで受け入れられてよいか否かである。これは少なくとも１つのビットによって行うことができるか、または特別な命令によってそれに続くシーケンスをマーキングすることも可能である。またあらかじめ定めた所定の記憶装置アドレスにアクセスし、つぎにこのアドレスによって性能モードＬＭまたは安全モードＳＭを起動することによって切り換えを行うことも可能である。
【００４１】
この際にこれらのプログラムは、アプリケーション機能を含むことができる。すなわち例えば車両における動作の過程を制御するアプリケーション機能を含むことができる。しかしながら上記の切り換えは、マーキングがオペレーションシステムレベルで行われるプログラムについても行われる。すなわち完全なオペレーションシステムタスクの割り当てである。
【００４２】
復号化の際に切換装置としての制御装置１７が識別できるのは、後続の計算が安全関連のものであるか否か、すなわち安全モードＳＭで実行すべきであるか否かである。安全モードＳＭで実行すべきである場合、データは２つの実行ユニット１および２にわたされる。そうでない場合、すなわち性能モードＬＭで処理する場合、一方の実行ユニットは、準備されたデータを受け取り、またつぎのインストラクションも同様に安全関連のものでない場合には同時にこのインストラクションを第２の実行ユニットにもわたすことができる。これによってこれらのプログラムないしはオペランドは高いスループットで並列に処理される。
【００４３】
例えば第１のケース（ＳＭ）では、２つのユニット上で同時に処理する際、結果の計算には同じ長さの時間がかかる。したがって安全モードにおいて、同時に処理される場合、結果は同時に得られる。相応の出力側１２および１３においてこれらのデータにコーディングが付され、これらのデータおよび／またはデータのコーディングが、図１および２に示したように、ResultＡおよびResultＢにおいて比較される。これらが一致する場合、これらのデータはリリースされる。そうでない場合、要求されたエラーレスポンスのうちの１つが行われる。第２のケース、すなわち性能モード（ＬＭ）では、データが並列処理される場合、２つの演算装置の出力側におけるコンパレータまたは比較器１４Ｃないしは２４Ｃは駆動制御されず、結果ResultＡおよびResultＢは順次にレジスタバンクに再び書き戻され、順次に出力することもできる。これはスーパースカラプロセッサの場合と同じである。
【００４４】
安全モードＳＭでは並列にすなわち冗長に同じプログラムが処理されるため、切り換えが行われるのはつぎの場合だけである。すなわち性能モードＬＭにおいて、２つの分岐に対して、すなわちレジスタ８およびＡＬＵ１ならびにレジスタ９およびＡＬＵ１２に対して、例えば識別子に基づいて切り換えが行われる場合だけである。完全に同期した処理が行われる場合、すなわちプログラムが同時に処理される場合、これはいずれにせよ得られる。プログラムの同期していない処理または非同期処理が行われる場合、速い方の実行ユニットは、遅れている方の実行ユニットを待って、２つの識別子が存在するかないしは評価される場合に制御装置１７がはじめて切り換えられるようにしなければならない。このような同期性は、ブロック１２，１３および１４Ｃ，２４Ｃならびに１２Ａおよび１３Ａによって結果比較を行うため、ないしはＥＣＣ比較および結果比較のためにも、強制的に同時にすることによって、または待機することによって形成しなければならない。
【００４５】
図３には本発明の別の実施例において、２つの実行ユニットを有する回路装置が示されている。これらの実行ユニットはここではそれぞれ参照符号３００および３０１を有するコンポーネントＫ１およびＫ２として示されている。これらの２つのコンポーネントは、上の図１および図２で使用した演算装置（ＡＬＵ）とは異なり、例えば完全な計算機の核部、いわゆるコアまたはＣＰＵである。これらのコンポーネントＫ１およびＫ２も同様に２つの入力側と１つの出力側とを有する。ここでも実行のために設けられるオペランドをバス３から、これらのコンポーネントの入力側に入力結合するか、またはこのために設けられたオペランドレジスタ８および９にあらかじめメモリすることができる。オペランドレジスタ８および９ならびに相応するＥＣＣコーディングについてのさらなる説明は、図1および２の説明と同等であり、ここでも有効である。基本的には同じことが、図３においてオプションのＥＣＣ部分を有し後置接続される参照符号１１０，１１１，２１０，２１１で示されたデータレジスタと、１１０Ａ，１１１Ａ，２１０Ａ，２１１Ａにおける相応のＥＣＣコーディングとにも当てはまる。しかしながらここではさらなる実施形態として、図１および２とは異なり、中間レジスタの２つずつのペアが各コンポーネントに前置接続されている。図１および２に対してすでに説明したように、オペランド供給時すなわちデータ入力値におけるエラーはチェックサム形成（ＥＣＣ）によって監視される。エラー識別のためここでも図１および２の場合と同様に、比較すべきレジスタの数に相応して、比較ユニットまたはコンパレータ１５Ｃ，１６Ｃ，２５Ｃおよび２６Ｃが比較手段として設けられている。これによってＥＣＣコーディングないしはオペランドにおいて違いが生じた場合、このことはエラーとして解釈され、エラー信号を出力し、このエラーを記憶し、このエラーを表示し、このエラーに依存するエラー応答、例えば非常時動作の記録またはエラー訂正を開始することができる。ここでも図１および２と同様にエラーが発生した場合、つぎのクロックサイクルにおいて計算を繰り返すことができ、またここでもシャドーレジスタを使用可能である。
【００４６】
オペランド処理の結果または状態ResultＡまたはResultＢはつぎに図２と同様に比較され（ここでもＥＣＣ符号はオプションである）、エラーの有無がチェックされる。図２と同様にこのためにＥＣＣ部分１２Ａおよび１３Ａを有するレジスタ１２および１３が、ならびに比較手段として比較器ないしはコンパレータ２４Ｃが使用される。図２とは異なり、ここでは２つの結果リリースブロック１５Ａおよび１５Ｂが使用され、これらのブロックを介し、リリース信号１６によってバス４に結果がリリースされる。
【００４７】
図３では本発明によるプロセッサユニット１０２の素子が示されているが、ここでは参照符号３０２で示される制御装置の機能を詳しく説明する。この図ではわかりやすくするため、制御装置３０２において矢印によって示される出力側は詳しく図示していない。それはこの出力側により、第１の切換手段３０８〜３１５、駆動回路部３７ないしはそれに含まれている素子、オプションでオペランドレジスタ８および９、ならびに同様にオプションで中間レジスタ１１０，１１１および２１０，２１１が駆動制御されるからである。
【００４８】
またここでも制御装置３０２はある種の切換機能を有しており、これによって１つの動作モードから別の動作モードに変わる。すなわち、例えば安全モードＳＭから性能モードＬＭに、またこの逆に変わるのであり、これは例えば、各動作モードに相応して、あらかじめ設定可能な制御信号を使用することによって行われる。
【００４９】
すでに図１および２において説明したように切換条件に依存して、ひいては識別した動作モードに応じて上記の素子が相応に駆動制御される。ここで駆動制御回路部３７は、デコーダ３０３と、第２の切換手段３０４と、オプションの２つのレジスタまたはラッチ３０７および３０６とを有する。またここでも安全上の理由から、デコーダに割り当てられた領域３０３Ａおよびレジスタ３０６に割り当てられた領域３０６Ａから得られたＥＣＣコーディングを比較器３０５Ｃによって比較することができる。この駆動制御回路部３７は、またはその部分も、制御装置３０２に収容するか、ないしはこれと同等のものとすることも可能である。
【００５０】
図１および２で説明したようにマーキングまたは識別子またはあらかじめ設定可能な記憶装置アドレスを切換条件として使用する際には上記の制御装置により、後続の計算が安全に関連するか否かをデコード時に識別することができる。これが安全に関連する場合、オペランドの処理は安全モードＳＭで行われて、同じオペランド、すなわちここではOperand１およびOperand２が相応に２つの実行ユニット３００および３０１にわたされる。この際には２つの実行ユニットは同じ制御信号で駆動制御されてオペランドを処理する。実行ユニットへのオペランドの供給およびオペランドを処理するための実行ユニットのクロックはここでは互いに調整される。有利な実施形態では供給ユニット（すなわち少なくともオペランドレジスタ８および９）および実行ユニットならびにデコーダ３０３はそれぞれ同じクロック周波数で、すなわち同じクロックで動作する。例えば２つの側、すなわちオペランドレジスタ８を有する供給ユニットと実行ユニット３００とは同じクロックで、また同様にオペランドレジスタ９を有する供給ユニットと実行ユニット３０１とは同じクロックで動作する。有利な実施形態ではこれらの２つの側は同期しているため、これらのオペランドは安全モードＳＭにおいて同期して処理されて、２つの側の結果ないしは相応する処理状態ResultＡないしはResultＢはレジスタ１２ないしは１３において同時に得られるのである。
【００５１】
したがって相応する供給ユニットは、少なくとも相応するオペランドレジスタ８および９を有する。さらに供給ユニットには実施形態に応じて図１または２の少なくとも１つの中間レジスタ１０または１１、ないしは図３の１１０，１１１または２１０，２１１が考えられる。同様に供給ユニットには第１の切換手段を含むことができ、これによってクロック周波数に相応してオペランドが切り換え接続される。これらの第１の切換手段３０８，３１０，３１２，３１４は図３に示したように別個に設けるか、または相応するレジスタ（オペランドレジスタ８または９，相応する中間レジスタ１０または１１，１１０，１１１，２１０，２１１）のうちの少なくとも１つに組み込むことができる。ＥＣＣコーディングが使用されているか否かに依存して、各レジスタ区分（図１および２の１０Ａ，１１Ａまたは図３の１１０Ａ，１１１Ａ，２１０Ａ，２１１Ａ）ならびに対応するコンパレータ（図１および２の５Ｃ，６Ｃならびに図３の１５Ｃ，１６Ｃ，２５Ｃ，２６Ｃ）は、各供給ユニットのオプション部分である。ＥＣＣコーディングの枠内の第１切換手段（図３の３０９，３１１，３１３，３１５）についても同じことが当てはまる。すなわちこれらも各供給ユニットのオプション部分であり、同様に別個にまたは相応するレジスタのうちの少なくとも１つ（ＥＣＣオペランドレジスタ８Ａまたは９Ａないしは相応する中間レジスタ１０Ａまたは１１Ａ，１１０Ａ，１１１Ａ，２１０Ａ，２１１Ａ）に組み込むことができる。したがって個々の供給ユニットは、実行ユニットに至る相応の供給パスにおける各素子に相応し、ここでは図１，２，３または５のような分け方またはすべてないしは一部を１コンポーネントにまとめることも可能である。
【００５２】
安全モード、すなわち第１動作モードにおいてオペランド処理の結果または状態が同時に得られる場合、ここでもこれらには各実行ユニットの出力側において、相応する１２Ａを有するレジスタ１２および１３Ａを有するレジスタ１３に再度コーディング（ＥＣＣ）が付与され、結果ないしは処理状態ResultＡ，ResultＢおよび／またはこの結果のコーディング（ＥＣＣ）が比較される。このために比較器またはコンパレータ２４Ｃが使用される。これらが一致する場合、データはここでもリリース信号１６によってリリースされて、ユニット１５Ａおよび／または１５Ｂによってバス４に書き込まれる。このリリース信号は有利には比較器によって形成されるが、上記の制御装置によって形成することも可能である。安全モードＳＭではリリース時の結果は同じであるため、これはバス４に一度だけ書き込まれる。等しくない場合、結果はリリースされず、バスではなく、例えばエラーレジスタに書き込まれるか、またはフラグないしはエラー信号が形成されて、表示または相応のエラー応答が開始される。ここではすでに図１，２および３においてオペランドレジスタについて説明したように、例えばシャドーレジスタを使用して再書き込みすることができる。特別なケースでは安全モードＳＭにおけるオペランドをまず実行ユニットに供給し、引き続いてエラー識別符号ＥＣＣをチェックして、つぎに第２の実行ユニットに供給することができる。これらはすべて、フルクロックである同じクロック区間において行われる。
【００５３】
切換条件に相応して、オペランドの処理が、第２動作モード、すなわち性能モードＬＭにおいて行われる場合、一方の実行ユニットだけに一つまたは複数の相応のオペランドが供給される。ここではほぼ同時（同じフルクロック）に、つまりつぎのハーフクロック区間に、１つまたは複数のつぎのオペランドが（これらが同様に安全に関連しないものとして処理されるかぎり）第２の実行ユニットに供給される。ここで上記の供給ユニットは、より高速な、例えば２つの実行ユニットの２倍のクロック周波数、つまりいわゆるハーフクロックで動作する。安全上クリティカルでないこのオペランド処理では結果の比較は行われず、また都度の結果または状態は相応に、例えば交互にバス４に書き込まれる。この場合にはリリースは不要である。殊にこの第２動作モード、すなわち性能モードＬＭにおいては、２つ側、例えば２つの実行ユニットは同期しておらず、つまり非同期に動作することが考えられる。バスに書き込む際の衝突は、タイムスロット、イベント制御などの時間条件によって、または仲裁によって防止することができる。
【００５４】
図４ではＴＳ１でフルクロックが、またＴＳ２でハーフクロックが図示されている。これにより、安全モードＳＭでは各フルクロックＴＳ１においてオペランドが冗長に２つの実行ユニットに供給され、例えば同じフルクロックでこれらの実行ユニットにおいて処理される。この場合にオペランドが完全に同時に処理終了すると、結果を直ちに比較することができる。そうでない場合には遅くとも結果を比較するまでに同期化を行わなければならない。第２動作モードである性能モードＬＭでは供給ユニットはハーフクロックで動作するため、例えばＴ１において１つまたは複数の第１のオペランドは、一方の実行ユニットに供給され、Ｔ１／２において１つまたは複数のつぎのオペランドが、他方の実行ユニットに供給され、これによって最初およびつぎのオペランドがこれらの実行ユニットにおいてフルクロックサイクルで処理される。このように性能モードＬＭでは各供給ユニット、つまり例えばオペランドレジスタ８および９は、実行ユニットよりも一層高速なクロック、例えば２倍の速さで動作するのである。これらの実行ユニットに相応の制御信号を供給する第２の切換手段３０４に供給するデコーダ３０３も同様に一層高速なこのクロック、例えば２倍の速さで動作する。
【００５５】
本発明の基本的な考え方は、図１，２および３に示したように少なくとも２つのオペランド入力側を有する実行ユニットに使用可能である。つまり複数のオペランドを処理するかないしは必要とする実行ユニットにおいて使用可能であるが、図５に示したように１つのオペランド入力側だけを有する実行ユニットにも使用可能である。
【００５６】
図５には実質的にすでに図３に示したのと同じ素子が示されているが、その違いは、実行ユニット５００および５０１はただ１つのオペランド入力側しか有しないことである。これに相応してただ１つのオペランドレジスタ８だけが設けられており、また相応して中間レジスタ１１０および２１０が設けられている。同じことがエラー識別コードＥＣＣに関係する所属の素子、すなわち相応するコンパレータ１５Ｃおよび２５Ｃを有する素子１１０Ａ，２１０Ａについても当てはまる。第１の切換手段５０８および５１０は図３の切換手段３０８および３１０に相応し、また第１の切換手段５０９および５１１は切換手段３０９および３１１に相応する。ＥＣＣ素子がオプションであることはここでも有効である。第１の切換手段は別個にすることも、相応するレジスタに含めることも可能である。ここではオペランドは順次に供給され、第２動作モードである性能モードにおいてハーフクロックで交互に供給される。安全モードＳＭではオペランドはフルクロックで２つの実行ユニットに供給されて、それぞれに同じオペランドが供給され、これらの実行ユニットにおいて冗長に処理される。このような機能の枠において、駆動制御回路５７は、単に１入力オペランド方式された図３の駆動制御回路３７なのであり、また同様に制御装置５０２は、１入力オペランド方式にされ、さらにこれに伴う適合化がなされた図３の制御装置３０２なのである。
【００５７】
安全モードＳＭでは図３に説明したように、出力側において結果および／または状態が互いに比較される（オプションではＥＣＣも比較される。これはエラー識別符号化ユニットもテストしなければならない場合だけである）。有利にはこの結果から、結果を比較した後はじめてエラー識別符号ＥＣＣが形成される。これによってこのコーディングが正しい結果から形成されたことが保証される。性能モードＬＭではオペランドが２つの実行ユニットに供給された順序で、これらの実行ユニットの結果が順次にバスに供給される。このコンセプトの一貫性を最適化して、上述のすべてのＥＣＣコーディングを形成し、チェックを行い、またバスに供給することができる。ここではこの一貫性ないしは安全上の重要性についてさまざまな段階付けが可能である。
【００５８】
説明したすべての実施例は、本発明において基本的に同等であり、これに相応して任意に組み合わせたり、結合することが可能である。本発明の基本的な考え方の枠内では別の複数の実施形態が可能であるため、上記の具体的な実施形態は、制限的なものと捉えてはならない。すなわち、本発明の基本的な考え方の枠内において、個々の実施例について述べたことは一般的に別の実施例にも当てはまり、また適用可能なのである。
【図面の簡単な説明】
【００５９】
【図１】１つずつのオペランドレジスタおよび１つずつの中間レジスタを備えるオペランドレジスタ装置と、２重の演算装置とを有するプロセッサユニットの図である。
【図２】１つずつのオペランドレジスタおよび１つずつの中間レジスタを備えるオペランドレジスタ装置と、２重の演算装置とを有する別のプロセッサユニットの図である。
【図３】図１および２とは異なるオペランドレジスタ装置を有する、２重の実行ユニットを備えるプロセッサユニットの図である。
【図４】オペランドを供給して処理する相異なるクロックを示す図である。
【図５】実行ユニットには１つのオペランド入力側だけが利用でき、またオペランドレジスタ装置にただ１つのオペランドレジスタだけが設けられている、図３と同等の２重の実行ユニットを有するプロセッサユニットを示す図である。
【図１】
2007509399.tif 000003
【図２】
2007509399.tif 000004
【図３】
2007509399.tif 000005
【図４】
2007509399.tif 000006
【図５】
2007509399.tif 000007
【国際調査報告】
2007509399.tif 000008
2007509399.tif 000009
2007509399.tif 000010
2007509399.tif 000011