JP2007109224A - 高可用性モードを有するハードウェア設定可能cpu - Google Patents
高可用性モードを有するハードウェア設定可能cpu Download PDFInfo
- Publication number
- JP2007109224A JP2007109224A JP2006270537A JP2006270537A JP2007109224A JP 2007109224 A JP2007109224 A JP 2007109224A JP 2006270537 A JP2006270537 A JP 2006270537A JP 2006270537 A JP2006270537 A JP 2006270537A JP 2007109224 A JP2007109224 A JP 2007109224A
- Authority
- JP
- Japan
- Prior art keywords
- mode
- microprocessor
- redundant
- instruction
- execution unit
- 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.)
- Withdrawn
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1629—Error detection by comparing the output of redundant processing systems
- G06F11/1641—Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1608—Error detection by comparing the output signals of redundant hardware
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/1675—Temporal synchronisation or re-synchronisation of redundant processing components
- G06F11/1683—Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2201/00—Indexing scheme relating to error detection, to error correction, and to monitoring
- G06F2201/845—Systems in which the redundancy can be transformed in increased performance
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Hardware Redundancy (AREA)
- Advance Control (AREA)
Abstract
【課題】高可用性モードを有するハードウェア設定可能CPUを提供する。
【解決手段】マイクロプロセッサ16はモードレジスタ38を含み、モードレジスタ38は、それに値を設定することにより、マイクロプロセッサ16内のフォールトトレランス機能を選択的にオン及びオフにするために使用される。モードレジスタ38によって、マイクロプロセッサ16は、プログラムがフォールトトレランスを必要とする場合はフォールトトレラントモードで動作し、プログラムがフォールトトレランスを必要としない場合はパフォーマンスモードで動作することができる。その結果、マイクロプロセッサ16は、コンピュータシステムを不必要に低速化することなくコンピュータシステムのフォールトトレランスを向上させることができる。
【選択図】図2
【解決手段】マイクロプロセッサ16はモードレジスタ38を含み、モードレジスタ38は、それに値を設定することにより、マイクロプロセッサ16内のフォールトトレランス機能を選択的にオン及びオフにするために使用される。モードレジスタ38によって、マイクロプロセッサ16は、プログラムがフォールトトレランスを必要とする場合はフォールトトレラントモードで動作し、プログラムがフォールトトレランスを必要としない場合はパフォーマンスモードで動作することができる。その結果、マイクロプロセッサ16は、コンピュータシステムを不必要に低速化することなくコンピュータシステムのフォールトトレランスを向上させることができる。
【選択図】図2
Description
本発明は、高可用性モードを有するハードウェア設定可能CPUに関する。
加工寸法がますます小さくなり、且つ電圧レベルが低くなっている中央処理装置(CPU)チップにますます多くのトランジスタが配置されるに従い、オンチップのフォールトトレランス機能の必要性が増大している。特に、浮動小数点演算ユニット(FPU)等、CPUの実行ユニットは、CPUの広い面積を塞ぐため、潜在的な故障メカニズムの影響を受け易い。
通常、誤りを検出し訂正するために、誤り訂正符号化(ECC)を使用することができる。ECCは、単一ビット誤り検出及び多ビット誤り検出を提供し、また単一ビット誤り訂正を提供する。しかしながら、ECCでは、特別なチップセットサポートと同様に、コンピュータシステムのBIOSユーティリティプログラムにおける設定が可能であることが必要である。さらに、FPU等のCPU実行ユニットを通してECCをインプリメントすることは困難であることが多い。
CPUによるデジタル処理にフォールトトレランスを提供する従来の1つのソリューションは、複数のCPUを含むコンピュータシステムを使用することである。たとえば、複数のCPUを完全なロックステップで動作させることによって、それら複数のCPUの計算において或るレベルのフォールトトレランスを達成することができる。すなわち、複数のCPUの各々が同じ計算を実行し、その後その結果を比較することによって誤りが発生したか否かが判断される。しかしながら、こうしたソリューションは、パフォーマンスの観点から、ハードウェアを浪費する可能性があるだけでなく、通常追加のハードウェア及びサポートインフラストラクチャを必要とし、且つより多くの電力を消費するという点で、高価であることも多い。
CPUによるデジタル処理にフォールトトレランスを提供する別の従来のソリューションは、ソフトウェア検証である。ソフトウェア検証は、同じコンピュータにおいて又は異なるコンピュータにおいてプログラム全体を複数回実行し、その結果に誤りがないか比較することによって行われる。しかしながら、このソリューションは、より長いランタイムが必要であるか又は複数のコンピュータが必要である点において高価であることが多い。
他のソリューションは、プログラムコンパイラに対して、コンパイル時に、CPUにおける冗長な実行ユニットの動作を、実行ユニットからの結果を比較し誤りがないか試験するようにスケジュールさせることによって、この問題に対処する。しかしながら、これらのソリューションは、特別なコンパイラを使用することが必要である場合が多く、したがって、異なるコンパイラでコンパイルされたコードを、特別なコンパイラで再コンパイルしなければならない場合が多い。さらに、これらのソリューションでは、コンピュータが追加のフォールトトレランスを利用することができる前にコードを再コンパイルする必要がある。これには、冗長な実行ユニットの動作をスケジュールするため且つコードを再コンパイルするため、より長いランタイムが必要であるだけでなく、特別なコンパイラ等の追加のハードウェアも必要である。
さらに、すべての場合、フォールトトレランスを必要としないプログラムにおいてさえも、上記ソリューションにおける実行ユニットの出力を比較することにより、通常、パフォーマンスが犠牲になる。これは、上記ソリューションが通常、コンピュータシステムで実行されるすべてのプログラムのすべての命令に対してフォールトトレランスを提供するためである。その結果、フォールトトレランスを必要としないプログラムが、フォールトトレランスが機能している状態で実行されているため、コンピュータシステム全体が不必要に低速化する。
本発明は、高可用性モードを有するハードウェア設定可能CPUを提供することを目的とする。
本発明の一実施の形態は、同じタイプの複数の実行ユニットと、第1の動作モードと第2の動作モードとから選択するように動作可能な第1のレジスタとを具備し、第1の動作モード中は実行ユニットのうちの少なくとも1つを冗長実行ユニットとして利用し、第2の動作モード中は実行ユニットのいずれも冗長実行ユニットとして利用しないマイクロプロセッサを提供する。
図1は、本発明の一実施形態を使用してもよいコンピュータ10の図である。コンピュータ10は、任意のタイプの汎用コンピュータ、ワークステーション又はパーソナルコンピュータであってもよく、入出力(I/O)部14、マイクロプロセッサ又はCPU16及びメモリ18を有するコンピューティング回路12を含んでもよい。I/O部14は、キーボード及び他の入力デバイス20又はこれらのいずれか(キーボード及び/又は他の入力デバイス20)、ディスプレイ及び/又は他の出力デバイス22、ハードドライブ等の1つ又は複数の固定記憶ユニット24、及び/又はCD−ROMドライブ等の着脱可能記憶ユニット26に接続される。着脱可能記憶ユニット26は、通常、ソフトウェアプログラム30及び他のデータを含むデータ記憶媒体28を読み出すことができる。
図2は、本発明の第1の実施形態による図1のマイクロプロセッサ16の一部のブロック図である。マイクロプロセッサ16はモードレジスタ38を含み、モードレジスタ38は、それに値を設定することにより、マイクロプロセッサ16内のフォールトトレランス機能を選択的にオン及びオフにするために使用される。モードレジスタ38によって、マイクロプロセッサ16は、プログラムがフォールトトレランスを必要とする場合はフォールトトレラントモードで動作し、プログラムがフォールトトレランスを必要としない場合はパフォーマンスモードで動作することができる。その結果、マイクロプロセッサ16は、コンピュータシステムを不必要に低速化することなくコンピュータシステムのフォールトトレランスを向上させることができる。これは、マイクロプロセッサを追加する、特別なコンパイラを設ける、又は実行時間が長くなるという犠牲を払うことなく達成される。
例示の目的で図2に示すコンポーネントには、命令フェッチユニット32、命令キャッシュメモリ34、命令デコード/発行36、モードレジスタ38、実行ユニット(FPU)40A及び40B、レジスタ42、コンパレータ44及び比較フラグ46が含まれる。図2のこれらのコンポーネントの構成は単なる一例としての構成であり、実際のマイクロプロセッサは、通常、図示しない他の多数の部分を有する。図2に示す構成には2つのFPU40A及び40Bがあるが、マイクロプロセッサにおいて、3つ以上のFPUを有するか又はFPU以外の実行ユニットを有する他の構成をインプリメントしてもよい。
命令キャッシュ34は、マイクロプロセッサ16が頻繁に実行している命令を格納する。同様に、データキャッシュ(図示せず)は、マイクロプロセッサ16が命令を実行するために頻繁にアクセスしているデータを格納してもよい。インプリメンテーションによっては、命令キャッシュ及びデータキャッシュを1つのメモリに結合してもよい。また、通常、マイクロプロセッサ16により、ランダムアクセスメモリ(RAM)、ディスクドライブ及び他の形態のデジタル記憶装置に対するアクセス(図示せず)も行われる。
メモリにおける命令のアドレスを、命令フェッチユニット32によって生成してもよい。たとえば、命令フェッチユニット32は、命令キャッシュ34のアドレスに格納されている命令を読み出すために、命令キャッシュ34内の開始アドレスから連続するアドレスを通して連続的にインクリメントするプログラムカウンタを含んでもよい。命令デコード/発行36は、キャッシュ34から命令を受け取り、それら命令をデコードし、且つ/又は実行させるためにFPU40A及び40Bの一方又は両方に発行する。モードレジスタ38は、マイクロプロセッサ16がいずれのモードで動作しているかを確定する。FPU40A及び40Bを、実行の結果をマイクロプロセッサ16の特定のレジスタ42に出力するように構成してもよい。さらに、FPU40A及び40Bの出力は、コンパレータ44に結合される。コンパレータ44は、その2つの入力における値を比較し、その後、入力値が同じであるか又は異なっているかを示す値を比較フラグ46に出力する。命令実行のためにオペランドを供給する回路等の他の回路は図示していない。
本発明の一実施形態によれば、図2の回路は、モードレジスタ38を利用して、マイクロプロセッサ16内のフォールトトレラント動作を選択的にオン及びオフにする。言い換えれば、モードレジスタ38は、マイクロプロセッサ16を、パフォーマンスモード(フォールトトレラント動作がオフにされている)又はフォールトトレラントモード(フォールトトレラント動作がオンにされている)のいずれかで実行するように選択的に設定する。フォールトトレラントモードを、高可用性(HA)モードと呼んでもよい。
たとえば、モードレジスタ38が第1の値(たとえば論理「0」)に設定される場合、マイクロプロセッサ16はパフォーマンスモードで動作し、そこではすべてのフォールトトレラント動作がオフにされることによりマイクロプロセッサ16の速度が最大化される。このモードでは、コンパレータ44及び比較フラグ46は非活動化され、マイクロプロセッサ16は、プログラムコンパイラ(図示せず)によってスケジュールされるようにFPU40A及び40Bの両方を利用する。命令デコード/発行36は、クロックサイクル中にFPU40Aのみに第1の命令を発行してもよく、又はクロックサイクル中にFPU40A及び40Bの両方に並行して第1の命令及び第2の命令を発行してもよい。そして、FPU40A及び40Bの出力を、コンパレータ44又は比較フラグ46を待つ必要なく廃棄(retire)してもよい。
別法として、マイクロプロセッサ16がパフォーマンスモードで動作している時、コンパレータ44及び比較フラグ46を活動化させてもよい。この場合、命令デコード/発行36は、依然として、コンパイラによってスケジュールされるようにFPU40A及び40Bの両方を利用する。しかしながら、マイクロプロセッサ16は単に、コンパレータ44からのいかなる結果も無視し、FPU40A及び40Bの出力を廃棄する前にいかなるタイプの誤り比較も実行しない。その結果、マイクロプロセッサ16の速度が低下しない。
モードレジスタ38が第2の値(たとえば、論理「1」)に設定されると、マイクロプロセッサ16はHAモードで動作し、そこでは、フォールトトレラント動作がオンになることによりマイクロプロセッサ16のフォールトトレランスが向上する。このモードでは、コンパレータ44及び比較フラグ46は活動化され、この時FPU40Bは、FPU40Aに対して並列な冗長実行ユニットとして機能する。その結果、コンパイラが、マイクロプロセッサ16によって第1の命令が実行されるようにスケジュールする場合、命令デコード/発行36は、FPU40Aと冗長FPU40Bとに第1の命令を発行する。すなわち、FPU40A及びFPU40Bの両方が同じ命令を実行する。そして、コンパレータ44は、FPU40A及び40Bの出力を比較し、それにより、出力が一致すると、コンパレータ44は、結果が正しいということを示す信号を比較フラグ46に提供し、FPUの出力は廃棄される。FPU40A及び40Bの出力が一致しない場合、コンパレータ44は、誤りがあるということを示す信号を比較フラグ46に提供する。この時点で、命令デコード/発行36からの命令を、FPUの結果が一致するまでFPU40A及び40Bによって再実行してもよい。
別法として、コンパイラが、HAモードにおいてマイクロプロセッサ16が第1の命令及び第2の命令を並列に実行するようにスケジュールする場合、命令デコード/発行36は、第1のクロックサイクル中にFPU40A及び冗長FPU40Bの両方に対して第1の命令を発行し、コンパレータ44はFPUの出力を比較する。そしてその直後に、命令デコード/発行36は、第2のクロックサイクル中にFPU40A及び冗長FPU40Bの両方に第2の命令を発行し、コンパレータ44はFPUの出力を比較する。
図3は、本発明の第2の実施形態によるマイクロプロセッサ16'の一部のブロック図である。マイクロプロセッサ16'は、図2のマイクロプロセッサ16に類似する。しかしながら、マイクロプロセッサ16'は、マイクロプロセッサ16'がHAモードで動作している時は冗長FPUとして活動化され、マイクロプロセッサ16'がパフォーマンスモードで動作している時は非活動化される、少なくとも1つの追加のFPU40Cを含む。冗長FPU40Cは、マイクロプロセッサ16'に対してのみ「既知」であり、プログラムコンパイラ(図示せず)に対しては「不可視」である。このように、FPU40Cは、マイクロプロセッサ16'が冗長計算を実行するために常に利用可能であり、コンパイラはFPU40A及び40Bに対して完全にアクセスすることができる。図2のマイクロプロセッサ16と比較したマイクロプロセッサ16'の利点は、マイクロプロセッサ16'がHAモードで動作している場合であっても、FPU40A及び40Bが単一クロックサイクル中に並列に異なる命令を実行することができることが多い、ということである。
別法として、マイクロプロセッサ16'がパフォーマンスモードで実行している時、冗長FPU40C、コンパレータ44及び比較フラグ46もまた活動化されてもよい。この場合、命令デコード/発行36は、依然としてFPU40A及び40Bとともに冗長FPU40Cを利用する。しかしながら、マイクロプロセッサ16'は、単に、コンパレータ44からのいかなる結果も無視し、FPU40A及び40Bの出力を廃棄する前にいかなるタイプの誤り比較も実行しない。その結果、マイクロプロセッサ16'の速度は低下しない。
図2及び図3を参照すると、モードレジスタ38は、マイクロプロセッサ16及び16'がパフォーマンスモードで動作するかHAモードで動作するかをモードレジスタの値に基づいて確定する。しかしながら、モードレジスタ38の値を複数の方法で設定してもよい。たとえば、オペレーティングシステム(OS)が、マイクロプロセッサ16及び16'のモードレジスタ38の値を設定してもよい。OSは、モードレジスタ38に命令単位で又はプログラム単位で値を設定する時を確定してもよい。特に、OSは、複数のプログラムの各々が実行している時、又はプログラムの組合せの各々が実行している時、マイクロプロセッサ16及び16'に対するモードレジスタ設定を指定するテーブルにアクセスすることができてもよい。その結果、OSは、マイクロプロセッサ16及び16'がパフォーマンスモード又はHAモードで動作する時を自動的に確定することができる。
別法として、モードレジスタ38の値を、ユーザ制御によって設定してもよい。ユーザが、ユーザインタフェースを介して、特定のプログラムにおいて、マイクロプロセッサ16及び16'がHAモード又はパフォーマンスモードのいずれかで動作する必要があると判断し、それに従ってユーザインタフェースを介してモードレジスタ38に値を設定してもよい。さらに、ユーザは、ユーザインタフェースを介して、特定のプログラムに対してモードレジスタ設定を指定する上述したテーブルを変更してもよい。このように、ユーザは、手動でモードレジスタ38の値を設定しOSを無視することにより、プログラムがHAモード又はパフォーマンスモードで強制的に実行されるようにすることができる。
代替の実施形態では、マイクロプロセッサ16、16'は、異なるレベルのHA動作を組み込むために、モードレジスタ38に加えて他のモードレジスタを含んでもよい。たとえば、第2のモードレジスタを使用して、すべてのデータに対し、又はマイクロプロセッサ16及び16'内のいくつかのユニットから来るデータに対し誤り訂正符号化(ECC)をインプリメントしてもよい。第3のモードレジスタを使用して、すべてのデータに対し、又はマイクロプロセッサ16及び16'内のいくつかのユニットから来るデータに対しパリティ検査を再びインプリメントしてもよい。別々のモードレジスタを使用して独立して制御可能であることのほかに、これらの異なるレベルのHA動作を、あらゆる組合せ又は組合せの構成要素においてインプリメントするように設計してもよい。
別の実施形態では、図1のコンピューティング回路12は、複数のマイクロプロセッサを含んでもよい。たとえば、2つ以上のマイクロプロセッサを有するコンピューティング回路では、それらマイクロプロセッサのうちの1つを、HAモードで動作するように設定してもよく、マイクロプロセッサのうちの別の1つを、パフォーマンスモードで動作するように設定してもよい。その結果、複数のプログラムが同時に実行しており、1つのプログラムがHAモードで実行し別のプログラムがパフォーマンスモードで実行する場合、OSは適当なマイクロプロセッサに各プログラムを送出してもよい。同様に、単一プログラムが、HAモードで実行されるHA命令と、パフォーマンスモードで実行される他の命令とを含む場合、OSは、適当なマイクロプロセッサに各タイプの命令を送出してもよい。これらの命令は異なるようにコード化されていないが、OSは、いずれの命令がいずれのマイクロプロセッサに送出される必要があるかを認識する。この場合もまた、これを、特定のモードに対するいくつかのプログラム又は命令のセットに対応するテーブルを用いて行ってもよい。複数のマイクロプロセッサを含むこの実施形態では、マイクロプロセッサを、1つはHAモードで別のものはパフォーマンスモードであるように永久的に設定してもよい、ということが留意されるべきである。マイクロプロセッサがモードレジスタで設定可能であることは必ずしも必要ではない。
さらに図2及び図3を参照すると、マイクロプロセッサ16及び16'は、組込みハードウェアコンパレータ44を使用して、実FPUの結果と冗長FPUの結果との比較を実行する。代替の実施形態では、マイクロプロセッサ16及び16'は、代りに、実FPUの命令及び冗長FPUの命令のすぐ後に続く比較命令を挿入してもよい。実FPUの結果は、比較命令が完了しいかなる誤りも通知されない状態になるまで廃棄されない。この比較命令には、コンパレータ等のいかなる追加のハードウェアも必要としないという利点があるが、マイクロプロセッサ16及び16'のパフォーマンスは低下する。
別の実施形態では、マイクロプロセッサ16及び16'は、命令フロー内の最適な位置に比較命令を挿入してもよい。この実施形態の利点は、比較命令が実FPUの命令と冗長FPUの命令とのすぐ後に続く必要はない、ということである。代りに、マイクロプロセッサ16及び16'は、比較命令を挿入する最もコストのかからない位置を確定するために複数の命令をプリフェッチすることができる。プリフェッチされた命令フロー内の位置のコストを、資源利用率、パフォーマンス及びカバレージの関数として確定してもよい。実FPUの結果は、比較命令が完了しいかなる誤りも通知されない状態になるまで廃棄されない。
別の実施形態では、マイクロプロセッサ16及び16'は、比較動作が完了する前に実FPUの結果を廃棄してもよい。これにより、FPU命令の結果がそれら命令の完了時に直ちに廃棄されるため、マイクロプロセッサ16及び16'の処理速度が向上する。比較が完了した時にいかなる誤りも検出されない場合、命令フローは通常通りに継続する。しかしながら、誤りが検出された場合、システムは既知の「よい」状態まで戻り、そこから処理を再開する。比較から誤りが検出される頻度が低いと想定すると、この実施形態は、上記2つの実施形態よりパフォーマンスの低下が少ない可能性が高い。
したがって、HAモードで動作しているマイクロプロセッサ16及び16'を利用するために、標準プログラムを書き換えるか又は再コンパイルする必要がない。HAモードにある間、マイクロプロセッサ16及び16'はハードウェアにおいてフォールトトレラント動作をインプリメントし、その結果、これらの動作はソフトウェアプログラムに対して透過的である。さらに、HAモード又はパフォーマンスモードにあるマイクロプロセッサ16及び16'の動作が設定可能であるため、同じマイクロプロセッサ及び同じプログラムを含む同じコンピュータシステムにおいてパフォーマンスを高く維持し、且つフォールトトレランスを向上させ続けることができる。
上述したことから、本明細書において本発明の特定の実施形態を例示の目的で説明したが、本発明の精神及び範囲から逸脱することなくさまざまな変更を行うことができる、ということが理解されよう。
10・・・コンピュータ
12・・・コンピューティング回路
14・・・入出力(I/O)部
16・・・マイクロプロセッサ
18・・・メモリ
20・・・入力デバイス
22・・・出力デバイス
24・・・固定記憶ユニット
26・・・着脱可能記憶ユニット
28・・・データ記憶媒体
30・・・ソフトウェアプログラム
32・・・命令フェッチユニット
34・・・命令キャッシュメモリ
36・・・命令デコード/発行
38・・・モードレジスタ
40・・・FPU
42・・・レジスタ
44・・・コンパレータ
46・・・フラグ
12・・・コンピューティング回路
14・・・入出力(I/O)部
16・・・マイクロプロセッサ
18・・・メモリ
20・・・入力デバイス
22・・・出力デバイス
24・・・固定記憶ユニット
26・・・着脱可能記憶ユニット
28・・・データ記憶媒体
30・・・ソフトウェアプログラム
32・・・命令フェッチユニット
34・・・命令キャッシュメモリ
36・・・命令デコード/発行
38・・・モードレジスタ
40・・・FPU
42・・・レジスタ
44・・・コンパレータ
46・・・フラグ
Claims (10)
- 同じタイプの複数の実行ユニット(40A、40B、40C)と、
第1の動作モードと第2の動作モードとから選択するように動作可能な第1のレジスタ(38)と
を具備し、
前記第1の動作モード中は前記実行ユニットのうちの少なくとも1つを冗長実行ユニットとして利用し、前記第2の動作モード中は前記実行ユニットのいずれも冗長実行ユニットとして利用しない
マイクロプロセッサ(16,16')。 - 前記実行ユニット(40A、40B、40C)は、
浮動小数点演算ユニット
を含む
請求項1に記載のマイクロプロセッサ。 - 前記第1の動作モード中に、実行ユニット(40A)の出力を対応する冗長実行ユニット(40B、40C)の出力と比較するように動作可能なコンパレータ(44)
をさらに具備する請求項1に記載のマイクロプロセッサ。 - 前記実行ユニット(40B、40C)のうちの1つは、前記第1の動作モード中は冗長実行ユニットとして利用され、前記第2の動作モード中はアイドル状態である
請求項1に記載のマイクロプロセッサ。 - 前記実行ユニット(40C)のうちの1つは、オペレーティングシステムによってアクセス可能ではない
請求項4に記載のマイクロプロセッサ。 - 前記第1のレジスタ(38)の値は、前記マイクロプロセッサによって実行されるオペレーティングシステムによって設定される
請求項1に記載のマイクロプロセッサ。 - 前記第1のレジスタ(38)の値は、ユーザによって設定される
請求項1に記載のマイクロプロセッサ。 - 実行ユニット(40)と、
第1の動作モードと第2の動作モードとから選択するように動作可能なレジスタ(38)と
を具備し、
前記第1の動作モード中は前記実行ユニットに冗長命令を提供し、前記第2の動作モード中は前記実行ユニットに冗長命令を提供しない
マイクロプロセッサ(16,16')。 - マイクロプロセッサ(16、16')内の同じタイプの複数の実行ユニット(40A、40B、40C)において命令を実行する方法であって、
第1の動作モードが選択されると、前記実行ユニットのうちの少なくとも1つを冗長実行ユニットとして利用することと、
第2の動作モードが選択されると、前記実行ユニットのいずれも冗長実行ユニットとして利用しないことと
を含む方法。 - マイクロプロセッサ(16、16')内の実行ユニット(40)において命令を実行する方法であって、
第1の動作モードが選択されると、前記実行ユニットに冗長命令を提供することと、
第2の動作モードが選択されると、前記実行ユニットに冗長命令を提供しないことと
を含む方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/251,019 US20070088979A1 (en) | 2005-10-14 | 2005-10-14 | Hardware configurable CPU with high availability mode |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007109224A true JP2007109224A (ja) | 2007-04-26 |
Family
ID=37421232
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006270537A Withdrawn JP2007109224A (ja) | 2005-10-14 | 2006-10-02 | 高可用性モードを有するハードウェア設定可能cpu |
Country Status (3)
Country | Link |
---|---|
US (1) | US20070088979A1 (ja) |
JP (1) | JP2007109224A (ja) |
GB (1) | GB2431258A (ja) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2869430A1 (fr) * | 2004-04-27 | 2005-10-28 | St Microelectronics Sa | Controle de l'execution d'un algorithme par un circuit integre |
WO2008127115A1 (en) * | 2007-04-17 | 2008-10-23 | Ole Hansvold | Detachable secure videoconferencing module |
EP2181389A2 (en) * | 2007-08-17 | 2010-05-05 | Nxp B.V. | Data processing with protection against soft errors |
GB2458260A (en) | 2008-02-26 | 2009-09-16 | Advanced Risc Mach Ltd | Selectively disabling error repair circuitry in an integrated circuit |
US7941698B1 (en) * | 2008-04-30 | 2011-05-10 | Hewlett-Packard Development Company, L.P. | Selective availability in processor systems |
US8051323B2 (en) * | 2010-01-21 | 2011-11-01 | Arm Limited | Auxiliary circuit structure in a split-lock dual processor system |
US8108730B2 (en) * | 2010-01-21 | 2012-01-31 | Arm Limited | Debugging a multiprocessor system that switches between a locked mode and a split mode |
US20110179255A1 (en) * | 2010-01-21 | 2011-07-21 | Arm Limited | Data processing reset operations |
KR20140134376A (ko) * | 2013-05-14 | 2014-11-24 | 한국전자통신연구원 | 오류감지가 가능한 프로세서 및 이를 이용한 프로세서 코어 오류 감지 방법 |
JP6786448B2 (ja) * | 2017-06-28 | 2020-11-18 | ルネサスエレクトロニクス株式会社 | 半導体装置 |
GB2579591B (en) | 2018-12-04 | 2022-10-26 | Imagination Tech Ltd | Buffer checker |
GB2579590B (en) | 2018-12-04 | 2021-10-13 | Imagination Tech Ltd | Workload repetition redundancy |
US11055409B2 (en) | 2019-01-06 | 2021-07-06 | Nuvoton Technology Corporation | Protected system |
US11645185B2 (en) * | 2020-09-25 | 2023-05-09 | Intel Corporation | Detection of faults in performance of micro instructions |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6640313B1 (en) * | 1999-12-21 | 2003-10-28 | Intel Corporation | Microprocessor with high-reliability operating mode |
US6625749B1 (en) * | 1999-12-21 | 2003-09-23 | Intel Corporation | Firmware mechanism for correcting soft errors |
US6615366B1 (en) * | 1999-12-21 | 2003-09-02 | Intel Corporation | Microprocessor with dual execution core operable in high reliability 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 |
DE10349581A1 (de) * | 2003-10-24 | 2005-05-25 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Umschaltung zwischen wenigstens zwei Betriebsmodi einer Prozessoreinheit |
-
2005
- 2005-10-14 US US11/251,019 patent/US20070088979A1/en not_active Abandoned
-
2006
- 2006-09-19 GB GB0618420A patent/GB2431258A/en not_active Withdrawn
- 2006-10-02 JP JP2006270537A patent/JP2007109224A/ja not_active Withdrawn
Also Published As
Publication number | Publication date |
---|---|
GB0618420D0 (en) | 2006-11-01 |
US20070088979A1 (en) | 2007-04-19 |
GB2431258A (en) | 2007-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2007109224A (ja) | 高可用性モードを有するハードウェア設定可能cpu | |
TWI681333B (zh) | 可靠度提升系統、方法和電腦可讀取媒體 | |
US7254697B2 (en) | Method and apparatus for dynamic modification of microprocessor instruction group at dispatch | |
WO2017105711A1 (en) | Security mechanisms for extreme deep sleep state | |
US8370671B2 (en) | Saving power by powering down an instruction fetch array based on capacity history of instruction buffer | |
EP4020190A1 (en) | Software visible and controllable lock-stepping with configurable logical processor granularities | |
US20180365022A1 (en) | Dynamic offlining and onlining of processor cores | |
US9317285B2 (en) | Instruction set architecture mode dependent sub-size access of register with associated status indication | |
EP3716055A1 (en) | System, apparatus and method for symbolic store address generation for data-parallel processor | |
US11106271B2 (en) | System, apparatus and method for dynamically controlling error protection features of a processor | |
US9996127B2 (en) | Method and apparatus for proactive throttling for improved power transitions in a processor core | |
US9594648B2 (en) | Controlling non-redundant execution in a redundant multithreading (RMT) processor | |
US20160283247A1 (en) | Apparatuses and methods to selectively execute a commit instruction | |
JP2005038420A (ja) | 特殊cpu命令による対象を定めたフォールトトレランス | |
US7213170B2 (en) | Opportunistic CPU functional testing with hardware compare | |
KR20170031728A (ko) | 제어 전송 인스트럭션으로의 리턴 | |
US7206969B2 (en) | Opportunistic pattern-based CPU functional testing | |
US20190205061A1 (en) | Processor, method, and system for reducing latency in accessing remote registers | |
US7200773B2 (en) | Reproducing errors via inhibit switches | |
US20050027964A1 (en) | Apparatus and method for redundant zero micro-operation removal | |
US11150979B2 (en) | Accelerating memory fault resolution by performing fast re-fetching | |
US8996923B2 (en) | Apparatus and method to obtain information regarding suppressed faults | |
US8793689B2 (en) | Redundant multithreading processor | |
WO2023108600A1 (en) | System, method and apparatus for reducing power consumption of error correction coding using compacted data blocks | |
US20230273811A1 (en) | Reducing silent data errors using a hardware micro-lockstep technique |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20100105 |