JP4317212B2 - 集積回路の処理段における系統的及び確率的誤り検出及び復旧 - Google Patents

集積回路の処理段における系統的及び確率的誤り検出及び復旧 Download PDF

Info

Publication number
JP4317212B2
JP4317212B2 JP2006505976A JP2006505976A JP4317212B2 JP 4317212 B2 JP4317212 B2 JP 4317212B2 JP 2006505976 A JP2006505976 A JP 2006505976A JP 2006505976 A JP2006505976 A JP 2006505976A JP 4317212 B2 JP4317212 B2 JP 4317212B2
Authority
JP
Japan
Prior art keywords
processing
error
value
delay
integrated circuit
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 - Lifetime
Application number
JP2006505976A
Other languages
English (en)
Other versions
JP2006520954A (ja
Inventor
トッド・マイケル・オースティン
デイヴィッド・セオドア・ブラアウー
トレヴァー・ニジェル・マッジ
クリスティアン・フラウトナー
Original Assignee
アーム・リミテッド
ユニバーシティ・オブ・ミシガン
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 US10/392,382 external-priority patent/US7278080B2/en
Application filed by アーム・リミテッド, ユニバーシティ・オブ・ミシガン filed Critical アーム・リミテッド
Publication of JP2006520954A publication Critical patent/JP2006520954A/ja
Application granted granted Critical
Publication of JP4317212B2 publication Critical patent/JP4317212B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • 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/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
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0721Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
    • 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/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • G06F11/167Error detection by comparing the memory output
    • 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 or look ahead
    • G06F9/3861Recovery, e.g. branch miss-prediction, exception handling
    • 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 or look ahead
    • G06F9/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking
    • 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/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • G06F11/104Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error using arithmetic codes, i.e. codes which are preserved during operation, e.g. modulo 9 or 11 check
    • 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/1608Error detection by comparing the output signals of redundant 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/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Software Systems (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Detection And Correction Of Errors (AREA)
  • Advance Control (AREA)
  • Hardware Redundancy (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、集積回路の分野に関する。特に、本発明は、確率的誤りと系統的誤りとの双方を含む誤りの検出並びに集積回路の処理段におけるこのような誤りの復旧に関する。
周知のように、一連の直列接続の処理段(例えば、パイプライン回路)から形成されていると見なし得る集積回路が提供されている。各段間には、ラッチ又はセンス増幅器等、1つ又は複数の信号値が記憶される信号取り込み要素がある。各処理段の処理論理回路は、前の処理段又は任意の処理段から受信された入力値に応答して、関連する出力ラッチに記憶される出力信号値を生成する。処理論理回路がその処理動作の完了に要する時間は、集積回路が動作し得る速さを決定する。全段の処理論理回路が、短時間にその処理動作を完了し得る場合、信号値は、出力ラッチを迅速に進み、その結果、高速処理が可能になる。システムは、最も遅い処理論理回路が、入力信号を受信して適切な出力信号を生成するというその処理動作を行い得るよりも速く段間で信号を送ることはできない。これによってシステムの最高性能が制限される。
ある状況下では、できるだけ速くデータを処理することが望まれ、従って、処理段は、最も遅い処理段が追い付けなくなるまで、できるだけ速い速さでそれらの処理動作を進めるように駆動される。他の状況下では、集積回路の消費電力が、処理速度より重要であり、また、最も遅い処理段がもう追い付けないほど消費電力が減少するように、集積回路の動作電圧が低減される。最も遅い処理段が追い付けないこれら双方の状況は、処理誤り(例えば、系統的誤り)を引き起こす。
処理誤りの発生を回避する1つの方法は、異なる集積回路間の最悪の製造ばらつき、動作環境条件、処理される信号のデータ依存性等を考慮した許容範囲により許容し得る最小値よりも小さいことが分かっている周波数を有する処理クロックで集積回路を駆動することである。電圧レベルについては、全処理段が、最悪の製造ばらつき、環境条件、データ依存性等を考慮して、確実に追い付けるように、最小電圧レベルを充分に超える電圧レベルで集積回路を動作するのが普通である。従来の解決策は、最悪の状況を考慮して、最大動作周波数及び最小動作電圧を制限するのに慎重であることが分かる。
プロセッサが、周波数が高過ぎる又は動作電圧が低過ぎる状態で動作する場合、追い付き得る最も遅い処理段から生じる系統的な処理誤りの他に、集積回路は、シングルイベントアップセット(SEU)として知られる確率的誤りも受ける。SEUは、宇宙線又はデバイスの陽子等、イオン化粒子によって誘発される確率的誤り(ビットフリップ)である。状態の変化は、過渡的すなわちパルス状であり、このため、デバイスのリセット又は書換えによって、その後、通常動作になる。誤り修正符号を用いて確率的誤りを検出し修正することが知られている。しかしながら、このような誤り修正手法は、誤り検出及び修正に要する処理時間の結果、必然的に遅延が生じる。この処理遅延は、雑音が多い通信チャネル等の環境では当然であり、この場合、誤り率は高いが、処理済受信データの誤りを所定の誤り率の範囲内に抑制することが重要である。対照的に、一般的にできるだけ速くデータを処理することが望ましい集積回路の場合、誤り修正回路が招く遅延及び付随する性能へのマイナスの影響によりデータ処理動作のクリティカルパスの誤り修正を導入することは望ましくない。
1つの側面から見ると、本発明は、データ処理を行うための集積回路を提供し、前記集積回路には、
複数の処理段であって、少なくとも1つの処理段からの処理段出力信号が、後続処理段に処理段入力信号として供給され、前記少なくとも1つの処理段には、少なくとも1つの符号化入力値に処理動作を行って処理論理回路出力信号を生成するように動作可能な処理論理回路が含まれ、前記符号化入力値は、誤り修正符号が適用された入力値である前記複数の処理段と、
無遅延取り込み時間に前記処理論理回路出力信号の無遅延値を取り込むように動作可能な無遅延信号取り込み要素であって、前記無遅延値は、前記無遅延取り込み時間に続き、前記処理段出力信号として前記後続処理段に供給される前記無遅延信号取り込み要素と、
前記無遅延取り込み時間よりも遅い遅延取り込み時間に前記処理論理回路出力信号の遅延値を取り込むように動作可能な遅延信号取り込み要素と、
前記処理論理回路出力信号の前記遅延値における確率的誤りの発生を検出するように、また、前記検出された確率的誤りが、前記誤り修正符号を用いて修正可能か決定するように、更に、誤りチェック済遅延値を生成するように又は前記検出された確率的誤りが修正不可能であることを示すように動作可能な誤り修正論理回路と、
前記無遅延値を前記誤りチェック済遅延値と比較して、前記無遅延取り込み時間に続く時間に前記処理論理回路出力信号における変化を検出するように動作可能な比較器であって、前記変化は、系統的誤りであって、それによって前記処理論理回路が前記無遅延取り込み時間に前記処理動作を終了しなかった前記系統的誤りを示すか、又は、前記無遅延値の確率的誤りを示す前記比較器と、
前記比較器が前記処理論理回路出力信号の前記変化を検出する時動作可能な誤り修復論理回路であって、後続処理段の前記誤りチェック済遅延値によって前記無遅延値を置き換えることによって、又は、前記検出された確率的誤りが修正可能でないことを前記誤り修正論理回路が示す場合、前記処理動作及び後続処理段の処理動作の反復を始めることによって、誤り修復動作を行い前記無遅延値の使用を抑制するように動作可能な前記誤り修復論理回路と、が含まれる。
本手法は、処理段自体の動作を直接監視して、それらが機能しなくなる限界条件を求め得ると認識している。実際に機能不良が生じた場合、これらの機能不良は、全体的に誤動作が生じないように修正し得る。本解決策における機能不良点の直接的観測と比較して、従来の解決策の過度に慎重な性能限界マージンを避けることによって達成される利点は、機能不良が生じた時システムを復旧する際の追加時間や消費電力を補って余りある。クリティカルパスがそれらのタイミング要件を満たせないように、このような処理誤りを故意に生じさせることは、この技術分野では、極めて反直観的であり、この場合、全てのクリティカルパスが常にそれらのタイミング要件を確実に満たすには、相当な労力を通常要する。
更に、本発明は、遅延値の確率的誤りが、データ処理動作のクリティカルパスから離して配置された誤り修正論理回路によって検出し修正し得ると認識する。従って、系統的処理誤りが比較器によって検出されない場合、誤り修正論理回路は、速い計算の進行に悪影響を与えない。しかしながら、処理誤りが実際には比較器によって検出される場合、確実に計算を進めるために誤り修復論理回路によって利用可能な遅延値は、確率的誤りチェックをする上で信頼できる値であり、適宜、確率的誤り修正が行われている。遅延信号値の経路に誤り修正論理回路があるのにもかかわらず、処理誤りが比較器によって検出される場合、誤り修復動作を行う必要があるため、処理に遅延が生じる。従って、故意に誘発された系統的処理誤りの修復を可能にする遅延信号取り込み要素を備えることと、遅延信号値の確率的誤りを修正するために誤り修正符号化を適用することとの間には、驚くべき相乗効果がある。誤り修正論理回路は、計算の進行を大幅に遅延させることなく、確率的誤りを検出し修正することによって遅延値の信頼性を改善する利点を提供する。
処理論理回路によって行われる処理動作が、例えば、処理動作が、重要なオペランドによる乗算演算又は除算演算である場合、出力信号の値に対して変化する入力信号の値になる重要な処理動作であり得ると認識する。しかしながら、1つの好適な構成によれば、処理論理回路によって行われる処理動作は、前記処理動作に誤りが生じない場合、処理論理回路出力信号が、処理段入力値に実質的に等しい動作である。
例えば、第1の好適な構成によれば、通常、入力値が変化しないデータ処理動作は、メモリ回路によって行われる読み込み又は書き込み動作であり得る。他の好適な構成によれば、少なくとも1つの処理段が、レジスタによって実行され、また、前記処理動作は、読み込み、書き込み、又は移動動作である。出力信号値が入力信号値に等しい更なる他の好適な構成によれば、少なくとも1つの処理段が、マルチプレクサによって実行され、また、処理動作は、多重化動作である。
本手法が、同期及び非同期データ処理回路の双方に適用可能な場合、本発明は、複数の処理段が、同期パイプライン内のそれぞれのパイプライン段である同期データ処理回路に適合する。
様々な異なる誤り修正符合を用いて、入力値、例えば、線形ブロック符号、畳み込み符号、又はターボ符号を誤り修正符号化し得ることを認識されたい。しかしながら、出力値が、処理論理回路の入力値に実質的に等しい構成の場合、入力値が、ハミング符号を用いて誤り修正符号化され、また、誤り修復論理回路が、前記ハミング符号を用いて、前記修正及び前記検出を行うことが好ましい。ハミング符号は、容易に実現でき、また、通常SEU等から生じる単一ビット誤りを検出し修正するのに適している。
幾つかの好適な構成は、読み込み/書き込み動作及びデータ移動動作等、値保存処理動作を含むが、他の好適な構成では、処理論理回路によって行われる処理動作は、前記処理動作に誤りが生じない場合でさえ、処理論理回路出力信号が前記処理段入力値と異なり得る値変更動作である。従って、本手法は、加算器、乗算器、及びシフタ等、処理論理回路要素への応用に適している。
処理動作が値変更処理動作である構成では、AN符号、剰余符号、逆剰余符号、又は剰余数符号の内の1つを含む算術符号を用いて、入力値が符号化される誤り修正であることが好ましい。このような算術符号は、算術演算子を含む処理動作の確率的誤りの検出及び修正を容易にする。
認識されたいことは、比較器だけに依拠して系統的誤りの存在を検出し得ることである。しかしながら、好適な構成では、集積回路は、無遅延値の準安定性を検出するように動作可能な、また、準安定であることが分かった場合、誤り修復論理回路にトリガをかけて無遅延値の使用を抑制するように動作可能な準安定性検出器を含む。
比較器を介して系統的誤りの発生を検出すると、これを修正又は補償し得る様々な異なる方法がある。1つの好適な種類の実施形態では、誤り復旧論理回路は、処理段出力信号として無遅延値を誤りチェック済遅延値で置き換えるように動作可能である。誤りチェック済遅延値サンプルから得られた修正値による既知の不完全な処理段出力信号の置き換えは、非常に好適であるが、これは、たとえ誤りが生じて補償が必要であっても、そのことが、データ処理動作を確実に進める役割を果たすためである。
好適な構成は、誤り修復論理回路が、無遅延値の代わりに、遅延値を無遅延ラッチに強制的に記憶させるように動作するものである。
本手法が、同期及び非同期データ処理回路の双方に適用可能な場合、本発明は、処理段内の処理動作が無遅延クロック信号によって駆動される同期データ処理回路に適合する。
処理段が無遅延クロック信号によって駆動されるシステムについては、誤り修復論理回路は、このことを利用して、無遅延クロック信号をゲート制御することによって誤りからの復旧を容易にし、後続処理段が、誤った無遅延値の入力から復旧し、そして、その代わり正しい誤りチェック済遅延値を用いるのに充分な時間を提供し得る。
無遅延クロック信号を用いる実施形態については、取り込み時間は、無遅延クロック信号及び無遅延クロック信号から導き出された遅延クロック信号の所定の位相点から導き出し得る。無遅延取り込みと遅延取り込みとの間の遅延は、これらの2つのクロック信号間の位相シフトによって定義し得る。
系統的誤りの検出及び復旧は、様々な異なる状況において用い得るが、このような誤りの検出に依存して、集積回路の動作パラメータの動的な制御が望まれる状況に特に適している。反直観的には、本手法を用いて動作パラメータを制御し、ゼロでない系統的誤り率を目標率として維持した状態でシステムが動作し得るが、これは、このことが、速さ又は消費電力のいずれかの観点で、更に、系統的及び確率的誤りの双方の発生から復旧するのに必要な対策も考慮して、全体的な性能の改善に対応し得るためである。
変化し得る動作パラメータには、特に、動作電圧、動作周波数、(閾値レベルを制御する)集積回路本体バイアス電圧、及び温度が含まれる。
遅延ラッチに取り込まれるデータが常に正確であることを保証するために、任意の段の処理論理回路における最大遅延の上限は、非動作点で、任意段の処理論理回路の遅延が、クロック期間プラス遅延取り込みが遅延される量の合計を超え得るものである。任意の処理遅延における下限として、短経路に沿って伝達される次のデータが遅延取り込み値を不適切に破損しないことを保証するように、任意の段の処理論理回路は、遅延取り込みが無遅延取り込みに続く時間をその時間だけ越える処理時間を有すべきであるという要件がある。このことは、必要に応じて、1つ又は複数の遅延要素を短経路に埋め込むことによって保証し得る。
本手法は、一般的なデジタル処理回路等、幅広い様々な異なる種類の集積回路に適用可能であるが、特に、処理段が、データプロセッサ又はマイクロプロセッサの一部であるシステムに適している。
動作パラメータを制御するための制御アルゴリズムの使用を容易にするために、好適な実施形態には、無遅延値と比較される遅延値の変化に対応する誤り検出の計数値を記憶するように動作可能な誤りカウンタ回路が含まれる。この誤りカウンタは、ソフトウェアでアクセスして、動作パラメータの制御を実行し得る。
上述した遅延信号取り込み要素及び無遅延信号取り込み要素は、幅広い様々な異なる形態を有し得ることを認識されたい。特に、これらは、フリップフロップ、Dタイプラッチ、順次素子、メモリセル、レジスタ要素、センスアンプ、それらの組合せ、及び信号値を記憶し得る幅広い様々な他の記憶デバイスの形態での実施形態を含むと考え得る。
他の側面から見ると、本発明は、データ処理を行うための集積回路を制御する方法を提供し、前記方法には、
複数の処理段の内の少なくとも1つの処理段から処理段出力信号を後続処理段へ処理段入力信号として供給する段階であって、前記少なくとも1つの処理段は、処理論理回路による処理動作を少なくとも1つの符号化された入力値に行い、処理論理回路出力信号を生成するように動作し、前記符号化された入力値は、誤り修正符号が適用された入力値である前記供給する段階と、
無遅延取り込み時間に前記処理論理回路出力信号の無遅延値を取り込む段階であって、前記無遅延値は、前記無遅延取り込み時間に続く前記処理段出力信号として前記後続処理段に供給される前記取り込み段階と、
前記無遅延取り込み時間よりも遅い遅延取り込み時間に前記処理論理回路出力信号の遅延値を取り込む段階と、
誤り修正論理回路を用いて、前記処理論理回路出力信号の前記遅延値における確率的誤りの発生を検出して、前記検出された確率的誤りが前記誤り修正符号を用いて修正可能かどうか決定し、また、誤りチェック済遅延値を生成するか又は前記検出された確率的誤りが修正可能でないことを示す段階と、
前記無遅延値を前記誤りチェック済遅延値と比較する段階であって、前記無遅延取り込み時間に続く時間に前記処理論理回路出力信号の変化を検出し、前記変化は、系統的誤りによって、前記処理論理回路が、前記無遅延取り込み時間に前記処理動作を終了していない系統的誤りを示すか又は前記無遅延値の確率的誤りを示す前記比較する段階と、
前記変化が検出されると、誤り修復論理回路を用いて誤り修復動作を行い、後続処理段の前記誤りチェック済遅延値で前記無遅延値を置き換えることによって、又は、前記検出された確率的誤りが修正可能でないことを前記誤り修正論理回路が示す場合、前記処理動作及び後続処理段の処理動作の反復を始めることによって、前記無遅延値の使用を抑制する段階と、
が含まれる。
本発明の実施形態について、一例としてのみ、添付図面を参照して説明する。
図1は、集積回路の一部を示し、集積回路は、イギリス、ケンブリッジのARM社製ARMプロセッサコア等、プロセッサコア内の同期パイプラインの一部であり得る。同期パイプラインは、複数の同様な処理段から形成される。第1段は、比較器6及び遅延ラッチ8と共にフリップフロップの形態で無遅延ラッチ4が続く処理論理回路2を含む。本明細書に用いる用語ラッチは、トリガ、クロック、及び他の要件に拘らず単一の値を記憶するように動作可能な任意の回路要素を含む。後続処理段は、同様に形成される。無遅延クロック信号10は、全ての処理段中の処理論理回路及び無遅延ラッチ4を駆動し同期パイプラインの一部として同期して動作させる。遅延クロック信号12は、それぞれの処理段の遅延ラッチ8に供給される。遅延クロック信号12は、無遅延クロック信号10の位相シフト版である。位相シフト度は、無遅延ラッチ4による処理論理回路2の出力の取り込みと、遅延ラッチ8によって行われる後の時間での処理論理回路2の出力の取り込みとの間の遅延期間を制御する。処理論理回路2が、既存の無遅延クロック信号周波数、集積回路に供給される動作電圧、基板バイアス電圧、温度等が与えられ限界内で動作する場合、処理論理回路2は、無遅延ラッチ4がその値を取り込むためにトリガがかけられる時までに、その処理動作を終了する。この結果、遅延ラッチ8が処理論理回路2の出力を遅れて取り込む場合、これは、無遅延ラッチ4内に取り込まれた値と同じ値を有する。従って、比較器6は、遅延期間中に生じる変化がないことを検出し、誤り復旧動作には、トリガがかけられない。逆に、無遅延ラッチ4がその値を取り込む時までに処理論理回路2がその処理動作を完了しない集積回路の動作パラメータである場合、遅延ラッチ8は、異なる値を取り込み、これが比較器6によって検出されることによって、誤り復旧動作が強制的に行われる。誤り復旧動作は、その取り込みに続く期間中に後続処理段に供給されていた無遅延ラッチ4の出力を、遅延ラッチ8内に記憶された遅延値と置き換え得ることが分かる。この遅延値は、更に、無遅延ラッチ4内に強制的に記憶され、そこに記憶された以前誤って取り込まれた値を置き換え得る。
準安定検出器7は、無遅延ラッチ4の出力の準安定性(即ち、明確に定義された論理回路状態にないこと)を検出する役割を果たす。このような準安定性が検出された場合、これは誤りと見なされ、遅延ラッチ6の値が代わりに用いられる。
誤りを検出すると、パイプライン全体が、追加の遅延期間、無遅延クロック信号10をゲート制御することによってストールし、後続処理段の処理論理回路が、それに供給される修正された入力信号値に適切に応答するのに充分な時間を与え得る。他の選択肢として、上流の処理段は、対向流アーキテクチャを用いる標準パイプライン処理手法に基づき、後続処理段がパイプラインへのバブル挿入動作を継続可能な状態でストールし得る(図2のバブル及びフラッシュラッチ参照)。他の選択肢は、処理パイプライン全体をリセットし、再開された各段及び処理の無遅延ラッチに遅延ラッチ値を強制的に入れ得ることである。試行した再計算よりもむしろ誤った値の代わりに遅延ラッチ値を再使用すると、たとえ誤りが生じたとしても処理動作が確実に進む。
処理段内の処理論理回路が要する処理時間と、無遅延取り込み時間と遅延取り込み時間との間の時間と、の間の関係に関する制約がある。特に、取り込まれる遅延値が、新しいデータが短い遅延処理段から出力されることによって確実に破壊されないように、任意の処理段の最低処理時間は、遅延より小さくあってはならない。追加の遅延要素を短い遅延処理段に埋め込んで、それらが確実にこの最小処理時間を下回らないようにする必要があり得る。他の極端な場合、任意の動作パラメータに対する任意の動作点で生じ得る処理段内の処理論理回路の最大処理遅延が、通常の無遅延動作クロック期間の合計以下であり、また、遅延値ラッチに取り込まれる遅延値が確実に安定し正しいように、遅延値以下であることを保証する必要がある。
システムを制御して消費電力及び動作を調整し得る数多くの他の選択的な方法がある。1つの構成によれば、比較器6による等しくない検出の数をカウントするために誤りカウンタ回路(図示せず)を設ける。この検出され復旧された誤りの計数値は、ハードウェア実装又はソフトウェア実装のアルゴリズムのいずれかを用いて、動作パラメータを制御するために用い得る。カウンタは、ソフトウェアによって読み込み可能である。最適な総合性能は、最大速度又は最低消費電力の観点に拘らず、ゼロでないレベルの誤りを維持するパラメータで集積回路を故意に動作することによって達成し得る。このような環境での不用意な動作パラメータの動作による利益は、誤りから復旧する必要性がもたらす代償を上回る。
他の選択的な構成によれば、ハードウェアカウンタが、動作監視モジュールとして設けられ、有用な作業及び誤り復旧作業を追跡するように動作可能である。特に、カウンタは、実行される処理動作を進めるために用いられる有用な命令の数をカウントし、また、誤り復旧を行うために実行される命令及びバブルの数をカウントする。ソフトウェアは、ハードウェアカウンタを読み取るように動作可能なであり、また、計数値を用いて、誤り復旧のオーバーヘッドと、ゼロでない誤り率で集積回路を動作することによって達成される消費電力の低減に対するシステム動作へのその影響と、のバランスを適切に取るように動作可能である。
図2は、本手法に用いる回路を概略的に示す回路ブロック図である。図2の上部は、各処理段に設けられた回路要素、即ち、無遅延ラッチ4、遅延ラッチ8、及び比較器6を示す。準安定検出器7は、無遅延ラッチ4の出力の準安定性を検出する役割を果たし、また、これによって誤り信号の生成にトリガがかかる。このような複数段からの誤り信号は、ORゲート100のそれぞれの入力部に供給され、ここで、誤りが任意のプロセッサ段で検出される場合、大域誤り信号が生成される。図示したように、大域誤り信号は、フラッシュ及びバブル挿入信号にトリガをかけるために用い得る。回路102は、誤り信号自体が準安定であるかどうか検出する。誤り信号は、より高い電圧の基準となる正歪ラッチ及びより低い電圧の基準となる負歪ラッチでラッチされる。これら2つがそれらのラッチされた値に一致しない場合、このことは、誤り信号が準安定であったこと、また、パニック信号がプルされることを示す。誤り信号をラッチすることによって、また、それがサンプリングされる前に全クロックサイクルの間、待機すること(即ち、2つの連続ラッチ)によって、パニック信号が準安定になる確率は、無視できる。パニック信号がプルされる場合、遅延ラッチからの復元値が、誤り信号の準安定性により破壊し得ることは重要である。この場合、命令も無効になり、先に進まない。従って、パイプラインをそろえて、命令を再起動しクロック周波数を下げて、誤り信号が同じ命令の再試行時準安定でないことを保証する(そうでない場合、再試行の無限ループを引き起こし得る)。
図3は、無遅延ラッチ、遅延ラッチ、比較器、及び誤り復旧回路の少なくとも一部を詳細に示した回路である。無遅延ラッチ4は、2つのラッチ14,16によって提供されるフリップフロップの形態であることが分かる。遅延ラッチ8は、単一フィードバック要素の形態である。XORゲート18は、比較器としての役割を果たす。誤り信号20は、図3の回路から発生し、前述したように誤りカウンタ回路に、又は他の動作パラメータ調整回路もしくはシステムに供給し得る。誤り信号20は、遅延ラッチ8内に記憶された遅延値を強制的に無遅延ラッチ4のラッチ14内に記憶させるマルチプレクサ22を切り換える役割を果たす。準安定検出回路24は、無遅延ラッチ4内の準安定性の発生を検出する役割を果たし、また、これを用いて誤り信号にトリガをかけると、この誤り信号によって、誤準安定値が遅延ラッチ8内に記憶された遅延値で置き換えられる。
図4A及び4Bは、図1、2、及び3の回路の動作を概略的に示すフロー図である。
ステップ26では、段iの処理論理回路は、時間Tiでその出力信号を生成する。ステップ28では、これが、無遅延ラッチによって取り込まれ、無遅延値を形成する。ステップ30では、この値に基づき処理を始める後続処理段i+1に無遅延ラッチからの無遅延値が伝わり始める。この処理が、誤っていることがあり、誤りが検出された場合、復旧する必要がある。
ステップ32によって、処理論理回路は、更なる期間、遅延時間の間、処理を続け、時間Ti+dで出力信号を生成する。この出力信号は、ステップ34で遅延ラッチにラッチされる。遅延ラッチ及び無遅延ラッチ内の値は、ステップ36で比較される。それらが等しい場合、誤りは発生せず、ステップ37で通常の処理が続く。それらが等しくない場合、このことは、無遅延ラッチがその値を取り込んで、その値を後続処理段i+1に供給し始めた時、処理論理回路が、その処理動作を時間Tiで完了していなかったことを示す。従って、誤り状態が生じ、修正が必要になる。ステップ38で、この修正は、段iに続くパイプライン段中にパイプラインバブルを送ることによって始まる。ステップ40で、段i+1の前の段は、全てストールする。これには、誤りが生じた段iを含む。ステップ42で、段i+1は、その入力として遅延ラッチ値を用いてその動作を再実行する。ステップ44で、集積回路の動作パラメータは、必要に応じて修正し得る。例えば、一例として、動作周波数が低くなり、動作電圧が大きくなり、本体バイアス電圧が大きくなる。そして、処理は、ステップ46に続く。
不充分な数の誤りが検出された場合、回路及びアルゴリズムを制御する動作パラメータは、消費電力を低減したりゼロでない誤り率を起こしたりするように、動作パラメータを故意に調整し得る。
図5は、アレイ状のメモリセル102を含むメモリ100を示す。この例では、1つの列のメモリセルだけを示すが、当業者には既知なように、このようなメモリセルアレイは、通常、数千個のメモリセルを含む大規模な二次元アレイである。通常のメモリ動作に基づき、復号器104は、アクセスされるメモリアドレスを受信する役割と、ワード線106の1つを起動するようにこのメモリアドレスを復号化する役割を果たす。ワード線は、その線のメモリセル102をそれぞれのビット線対108に接続する役割を果たす。関連するメモリセル102内に記憶されたビット値に依存して、このことによって、それに現在接続されたビット線108の電気的変化(例えば、電圧及び/又は電流の流れ)が誘発され、その変化は、センス増幅器110が感知する。センス増幅器110の出力は、最初、無遅延ラッチ112内に記憶され、その後、遅延された時間に、遅延ラッチ114内に記憶される。無遅延ラッチ112内に記憶された無遅延値は、マルチプレクサ116を介して後続の処理回路118に直接伝えられ、その後、遅延値は、遅延ラッチ114に記憶される。遅延値が遅延ラッチ114内に取り込まれている場合、比較器120は、無遅延値と遅延値を比較する役割を果たす。これらが等しくない場合、遅延値は、マルチプレクサ116によって切り換えられ、関連する特定のビットに対するメモリ100からの出力値となる。抑制信号も比較器120から後続の処理回路118に発せられ、現時点で置き換えられた誤無遅延値に基づき、その後続の処理回路118によって処理を抑制する。この例におけるこの抑制は、後続の処理回路118に供給されるクロック信号CLKを制御する形態を取って、関連するクロックサイクルを延ばし、また、遅延値が、関連する処理回路を伝わって、その後続の処理回路の出力のラッチに達する機会を有する時まで、その後続の処理回路によって新しい結果のラッチを遅らせる。
センス増幅器110及び無遅延ラッチ112は、高速読み込み機構の一部を形成することが分かる。センス増幅器110及び遅延ラッチ114は、低速読み込み機構の一部を形成する。ほとんどの場合、無遅延ラッチ112内にラッチされる高速読み込み結果は、正しく、修正動作は、必要ない。稀に、高速読み込み結果は、遅延ラッチ114内にラッチされる低速読み込み結果とは異なり、この環境では、低速読み込み結果は、正しいと見なされ、抑制されている高速読み込み結果に基づく処理で高速読み込み結果を置き換える役割を果たす。誤った高速読み込み結果を修正する比較的稀な必要性に関連する代償は、その限界条件近くでメモリ100を動作することによって達成される(速さ、低電圧動作、低消費エネルギー及び/又は他の動作パラメータの観点での)性能向上によって補償されるものを超える。
図6は、図5の回路の一部における変形例を示す。この変形例では、2つのセンス増幅器110’、110’’を設ける。これらの異なるセンス増幅器110’、110’’は、異なる動作速度を有するように形成され、一方の110’は、比較的速くて信頼性が低く、他方の110’’は、比較的遅くて信頼性が高い。これらの異なる特性は、センス増幅器110’、110’’のパラメータ、例えば、トランジスタ寸法、ドーピングレベル、利得等の構造パラメータを変えることによって達成し得る。比較器120’は、2つの出力を比較する役割を果たす。高速センス増幅器110’からの出力は、通常、利用可能な低速センス増幅器110’’の出力より前にマルチプレクサ116’を介して送出される。低速センス増幅器110’’の出力が利用可能であり、また、これが高速センス増幅器110’の出力に等しくないことを比較器120が検出する場合、マルチプレクサ116’を制御して出力値を切り換えて、低速センス増幅器110’’によって生成されたものになる。また比較器120は、抑制信号の生成にトリガをかけて、誤った高速読み込み結果に基づく下流処理を抑制する。
図7は、図5の回路の動作を示すフロー図である。ステップ122で、アドレスが復号化され、それぞれのメモリセルは、ワード線によって伝えられる信号を用いて、それらの隣接ビット線に接続される。ステップ124で、選択されたメモリセル内に記憶されたビット値及びそれらの補数は、ビット線対上に送られる。これによって、ビット線内に電流が生じ、ビット線に電圧変化が生じる。センス増幅器110は、検出された電流及び/又は電圧レベル変化に反応する。
ステップ126で、高速データ読み込み機構は、その時、メモリセルから出力されている値をサンプリングする。ステップ128で、この高速読み込みデータ値は、それが正しいという仮定の下に、後続の処理回路に伝えられ、更に処理される。ステップ130で、低速データ読み込み機構は、低速読み込みデータ値をサンプリングする。ステップ132は、高速読み込み値と低速読み込み値を比較する。これらが同じ場合、通常の処理が、ステップ134で続く。しかしながら、サンプリングされた値が異なる場合、ステップ136は、高速読み込み値が伝えられた後続の回路に抑制信号を発する役割を果たし、また、修正処理が行われるように、これらの後続の回路に高速読み込み値の代わりに低速読み込み値を発する役割も果たす。
図8は、パイプラインバス140内における本手法の使用法を示す。パイプラインバス140は、バスに沿って伝えられるデータ値を記憶する役割を果たす多数のラッチ142を含む。このようなパイプラインバス140の一例として、イギリス、ケンブリッジのARM社の設計によるAXIバスが知られている。この構成では、パイプラインバス140に沿って伝えられるデータ値の行き先は、デジタル信号処理回路144である。このデジタル信号処理(DSP)回路144は、それ自体、前述した無遅延ラッチ処理及び遅延ラッチ処理手法を実装していない。他の選択的な構成では、パイプラインバスに沿って伝えられるデータ値の行き先は、DSP回路以外のデバイス、例えば、それ自体遅延及び無遅延ラッチ手法を実装していない標準ARMプロセッサ核であってよい。
各無遅延ラッチ142に関係するのは、それぞれの遅延ラッチ146である。これらの遅延ラッチ146は、それらが対応する無遅延ラッチ142によってサンプリングされラッチされた時よりも遅い時間にバス上の信号値をサンプリングする役割を果たす。従って、バスに沿って伝えられるデータ値の遅延によって、理由が何であれ(例えば、使用動作電圧が低過ぎる、クロック速度が大き過ぎる、隣接データ値からの結合の影響等)、無遅延ラッチ142及び遅延ラッチ146内に記憶される値の間に差が生じる可能性がある。パイプラインバス140上の最終段は、無遅延値と遅延値を比較する比較器147を含むように示す。これらが等しくない場合、遅延値を用いて無遅延値を置き換え、また、無遅延値に基づく処理が抑制され、修正が効果を表す(バスクロックサイクルを延長し得る)。これらの比較器及び多重化回路要素は、パイプラインバス140に沿って、各ラッチ段に設けるが、図8を分かり易くするために省略したことを認識されたい。
DSP回路144は、それ自体、その関連する修正の可能性で無遅延及び遅延ラッチ機構を支持しないため、DSP回路144に供給されるデータ値が、任意の必要な修正を受けていることが重要である。この理由により、追加のバッファリングラッチ段148が、パイプラインバス140の端部に設けられ、そのラッチ及び付加されたDSP回路144に供給されるデータ値に必要なあらゆる修正を行った後、そのデータ値がDSP回路144の作用を受けることができる。バッファリングラッチ148は、DSP回路144に充分近くに配置し得るため、利用可能な伝達時間が不充分である等の問題は全くなく、バッファリングラッチ148からDSP回路144に伝えられるデータ値に誤りを生じることはない。
それぞれの無遅延ラッチ142間のバス接続は、単にデータをそのまま伝える処理論理回路の形態であると見なし得ることを認識されたい。このように、図8のパイプラインバス実施形態と前述した実施形態(例えば、図1)との間の同等性は、当業者には明らかであろう。
図9は、図8の動作を示すフロー図である。段階150で、無遅延信号がバスラインから取り込まれる。次に段階152で、無遅延値は、次のバスパイプライン段に伝えられる。段階154で、対応する遅延ラッチ146は、遅延バス信号を取り込む。段階156で、比較器147は、遅延値を無遅延値と比較する。これらが等しい場合、通常の処理が段階158で続く。2つの比較値が等しくない場合、段階160は、バスクロックを遅延し、また、図8に示したマルチプレクサを用いて、無遅延値を遅延値と置き換える役割を果たす。
図10は、本手法を用いる更なる実施形態例を示す。この実施形態例では、プロセッサ核内の命令レジスタからの命令は、命令ラッチ162内にラッチされる。命令は、この命令ラッチ162からマイクロ符号化ROMを含む復号器164に伝えられ、適切な集まりのプロセッサ制御信号を生成する役割を果たす。プロセッサ制御信号は、無遅延制御信号ラッチ166に記憶され、また、命令ラッチ162内にラッチされる命令に基づきプロセッサ核が行う処理を制御するために引き続き用いられる。また復号器164から出力される制御信号は、それらが無遅延制御信号ラッチ166内にラッチされた後、遅延制御信号ラッチ168内にラッチされる。そして、遅延制御信号値及び無遅延制御信号値を比較し得る。これらが等しくない場合、このことは、修正動作が必要であることを示す。抑制動作は、このような差異の検出によってトリガがかけられ、また、不適切なラッチ制御信号値に基づく後続の処理を中止する役割を果たす。ある状況下では、唯一の効果的な復旧選択肢が、全体的なプロセッサのリセットであることがある。これが許容可能のこともある。他の状況下では、制御信号の誤りは、さほど厳しくない抑制や復旧機構が可能であるようなものであり得る。一例として、特定の誤制御信号が、例えば、多重サイクルプログラム命令の場合、作用を受けていないことがあり、この場合、処理動作の中には、多重サイクル命令の全体的な実行において遅くまで開始しないものがある。この例は、乗算部が幾つかのクロックサイクルを要した後、最終的な累算が行われる積和演算である。累算に関連する制御信号に誤りがあり、また、実際、累算が必要でなく、単に乗算だけである場合、加算器が累算演算をしようとする前に、累算器に印加される制御信号を修正することによって累算を抑制することが可能である。
図11は、図10の回路動作の一例を示す。ステップ170で、積和制御信号は、復号器164(マイクロ符号化ROM)から読み込まれる。ステップ172で、この積和制御信号は、無遅延制御信号ラッチ166内にラッチされ、プロセッサ核内の様々な処理要素に出力される。ステップ174で、乗算オペランドが、レジスタファイルから読み込まれ、乗算演算が始まる。ステップ176で、命令復号器164が出力した制御信号が、遅延制御信号ラッチ168によって再サンプリングされる。ステップ178で、無遅延制御信号と遅延制御信号を比較する。これらが等しい場合、通常の処理がステップ180で続く。しかしながら、これらが等しくない場合、処理は、ステップ182に進み、ここで、乗算演算が既に完了したかどうか決定する。乗算演算が完了している場合、誤った累算演算が開始することになり、復旧のための最良の選択は、ステップ184で、システムを全体的にリセットすることである。しかしながら、乗算動作が依然として進行中の場合、命令ラッチ162内に記憶されたプログラム命令によって元々意図されたように、ステップ186を用いて加算器をリセットし、累算演算を取り消して、所望の乗算演算出力結果をステップ188で生成し得る。
図12は、図1に示した回路の変形例を示す。この実施形態では、遅延ラッチ190は、スタンバイ/スリープ動作モード(低消費電力モード)中に用いるデータ保持(バルーン)ラッチの追加機能を提供する。通常処理動作中の遅延ラッチ190の機能は、前述した通りである。しかしながら、スリープ制御装置192は、低消費電力動作モードに入り始めるように機能する場合、無遅延クロック及び遅延クロックを停止し、遅延ラッチ190が、それらそれぞれの無遅延ラッチに対応するデータ値を全て記憶しつつある状態になる。この時点で、無遅延ラッチ及び関連する処理回路への電圧供給が取り除かれ、それらは、停止して、それらの状態を失う。しかしながら、無遅延ラッチ190に供給される電圧は、それらが、関連する処理回路の状態を保持する役割を果たすように維持される。システムが、低消費電力モードから抜け出る場合、処理論理回路及び無遅延ラッチは、再度起動され、比較器は、無遅延ラッチ及び遅延ラッチ190の値の差異を検出すると、関連する遅延ラッチ190内に保持された正しい値で無遅延ラッチ内の誤値を置き換えるトリガをかける。遅延ラッチ190は、それらの無遅延相当物よりも厳しいタイミング要件を受けないため、動作速度は遅くなるが低消費電力モード中の低消費電力に適する(例えば、閾値電圧が高いとスイッチングが遅くなるが、漏れ電流が減少する)ことを認識されたい。このように、通常処理中に用いられる誤り修正遅延ラッチは、データ保持ラッチとして低消費電力モード中に再使用することによって、関連する回路の全ゲート数を低減する利点を提供し得る。
図13は、図12の回路動作を概略的に示すフロー図である。ステップ194で、集積回路は、その通常動作処理モードにある。ステップ196で、処理論理回路段は、無遅延時間に出力信号を生成する。ステップ198で、無遅延ラッチは、その出力信号を取り込む。ステップ200で、無遅延ラッチ内の無遅延信号は、次の処理段に伝えられる。ステップ202で、遅延された時間に、処理段からの出力が生成され、遅延ラッチによる取り込みに利用可能である。ステップ204で、集積回路は、トリガをかけられ低消費電力を採用し、速度制御装置192は、遅延ラッチ190への電力を維持しつつ、処理回路の停止を始める役割を果たす。ステップ206で、遅延ラッチ190は、遅延信号値を取り込む。ステップ206での遅延ラッチによる遅延信号値の取り込みが、ステップ204で低電力モードへの切り換え前に起こってもよい。ステップ208で、無遅延ラッチは、停止され、その記憶された値が失われる。集積回路は、長時間この状態に留まり得る。望ましい場合、ステップ210は、スリープ制御装置192にトリガをかけて低消費電力モードを終了し、動作モードに戻る。ステップ212で、電力が無遅延ラッチ及び関連する処理論理回路に対して復旧され、遅延ラッチ190内の遅延データ値を用いてパイプライン段を必要に応じて再配置し、システムを低消費電力モードに入る前のその状態に復旧する。
図14は、誤り修正制御及び遅延ラッチが適用されている複数の処理段を概略的に示す。処理段は、プロセッサ核内の同期パイプラインの一部、通信バスの一部、又はメモリシステムの一部であり得る集積回路の一部を形成する。第1処理段には、データ通信用チャネル又は処理論理回路1014のいずれかと、無遅延ラッチ1016と、遅延ラッチ1018と、遅延ラッチ及び無遅延ラッチの出力を比較し、制御信号をマルチプレクサ1020に出力し、遅延信号値又は無遅延信号値が後続処理段又はチャネル1016へ入力として供給されるかどうか決定する比較器1024と、が含まれる。チャネル/論理回路1014及び無遅延ラッチ1016は、無遅延クロック信号によって駆動され、一方、遅延ラッチ1019は、無遅延クロック信号の位相シフト版である遅延クロック信号によって駆動される。
比較器1024が、無遅延信号値と遅延信号値との間の差異を検出する場合、このことは、要素1014が処理論理回路を表す場合、いずれかの処理動作が、無遅延取り込み時間に終了していなかったか、又は、要素1014がデータチャネルを表す場合、前のパイプライン段からの信号が、現在の段にまだ達していなかったことを示す。このような差異が実際に検出された場合、遅延ラッチ1018に記憶された値は、より信頼できるデータ値の方であるが、このことは、処理動作が完了した可能性がより高い場合、あるいは、前の段からのデータがデータチャネルを介して到達した可能性がより高い場合、それが後で取り込まれたためである。遅延ラッチからの結果を次の処理段1030に供給することによって、また、後続処理段での無遅延値の使用を抑制することによって、計算は確実に前に進み得る。しかしながら、遅延ラッチ1018に記憶された遅延信号値の信頼性は、シングルイベントアップセットが遅延値に生じた場合又は遅延値を破壊した場合、損なわれることがある。シングルイベントアップセットは、実効的にパルスであるため、無遅延ラッチが見逃すが遅延ラッチが拾い上げることが良くある。このようなシングルイベントアップセットによって、比較器は、シングルイベントアップセットの直接の結果として遅延値と無遅延値との間の差異を検出し、そして、後続処理段に破壊された遅延値を伝える。無遅延値を破壊するシングルイベントアップセットは、それが、結果的に、誤無遅延値の使用を抑制し、また、後続の段に遅延値を伝えるため、問題ではない。
図14の構成は、誤り検出モジュール1026と、誤り修正モジュール1028と、誤り検出モジュール1026によって制御され、遅延ラッチから比較器1024に遅延値を直接供給したり、あるいは、他の選択肢として、誤り修正モジュール1028によって出力される誤り修正値を供給したりするマルチプレクサ1022とを設けて、データの完全性のクロスチェックを行うことによって、破壊された遅延値が計算を通り抜ける可能性を低減する。チャネル/論理回路ユニット1014の上流では、8ビットのデータペイロードが、誤り修正符号化され、4つの冗長ビットがデータペイロードに付加され12ビット信号を形成する。12ビット信号は、チャネル/論理回路ユニット1014を介して伝わり、その値は、無遅延ラッチ1016及び遅延ラッチ1018の双方によって取り込まれる。しかしながら、遅延ラッチ1018から出た信号の遅延値は、誤り検出モジュール1026へ入力としても供給され、誤り検出モジュール1026は、遅延値に影響を及ぼす何らかの誤りが生じたかどうか12ビット誤り修正符号化信号から決定する。他の選択的な構成では、更にラッチを提供して誤り検出モジュール1018に信号値を供給し得るが、誤り検出モジュール1018は、遅延ラッチ1018よりも僅かに遅れて信号値を取り込む。誤りチェックは、遅延値が取り込まれるのと同時に、又は、僅かに遅れて取り込まれる値に対して行い、無遅延値の取り込みと遅延値の取り込みとの間に生じたあらゆる確率的誤りを確実に検出しなければならない。
所定の誤り修正符号は、所定数の誤りを検出でき、また、所定数の誤りを修正できる。従って、誤り検出モジュール1026が、何らかの誤りが生じているかどうか検出し、そうである場合、誤りの数は、それら全てが修正可能な程充分少ない。修正可能な誤りが検出された場合、信号値は、誤り修正モジュール1028に供給され、ここで、誤りは、誤り修正符号を用いて修正され、また、修正済遅延値は、比較器1024に供給される。修正済遅延値が無遅延値と異なることが比較器1024によって決定された場合、無遅延値の更なる伝達が、後続処理段において抑制されるように、また、演算が、代わりに修正済遅延値を用いて行われるように誤り復旧手順が呼び出される。他方、比較器1024が、修正済遅延値が遅延値と同じであると判断した場合、計算を進めるための2つの選択的な可能性がある。まず、同様に、誤り復旧機構を呼び出して、無遅延値を後続処理段で抑制し、修正済遅延値で置き換え得る。他の選択肢として、無遅延値が、(無遅延値と修正済遅延値の等価性によって立証したように)修正されていると判断されるため、誤り復旧機構を(遅延値の誤り検出にかかわらず)抑制することで、無遅延値が後続処理段を進み続け得る。しかしながら、修正不可能な誤りが、誤り検出モジュール1026によって遅延値に検出される場合、制御信号を供給して、破壊された遅延値の使用を抑制する。この場合、計算は前に進めない。適用される誤り修正符号化の種類は、チャネル/処理論理回路1014の性質により異なる。
処理論理回路は、値通過又は値変更のいずれかに分類し得る。値通過処理論理回路の例は、メモリ、レジスタ、及びマルチプレクサである。値変更処理論理回路要素の例は、加算器、乗算器、及びシフタである。値変更処理論理回路要素の場合の誤り検出及び修正は、値通過処理論理回路要素の場合より複雑である。これは、誤りが生じていない場合でさえ、論理回路段1014が出力する値は、入力12ビット信号1013と異なる可能性があるからである。
図15は、誤りが生じない場合、単に入力から出力までデータ値をそのまま伝えるチャネルを通過するデータの誤り修正を概略的に示す図である。このような値通過処理論理回路の場合、誤り修正及び検出用のハミング符号等の線形ブロック符号を用いると便利である。線形ブロック符号は、通常、符号語の形成を含むが、この場合、元のデータペイロードビットは、符号語にそのまま残るが、幾つかのパリティビット(又は冗長ビット)が付加される。ハミング符号は、単純な単一ビット誤り修正符号であり、(N、K)符号の場合、Nは、符号語のビット総数であり、Kは、符号化されるデータビット数である。誤りの存在と位置は、多数のパリティチェックを出力符号語に行うことによって検出される。ハミング符号は、N−Kパリティビットを含み、それらは、各々、データの異なる組合せのビットから計算される。ハミング符号は、1つの誤りを修正したり、あるいは、2つの誤りを検出したりできる。必要なパリティビット(又は冗長ビット)の数は、pがパリティビット数、N=K+pの場合、ハミング規則K+p+1≦2によって与えられる。
図15に示したように、チャネルへの入力は、8個のデータビットと4個のパリティ即ち冗長ビットを含む12ビット符号語である。パリティチェックは、誤り検出/修正モジュール1116がチャネル1114からの出力に対して行う。12ビット符号語のいずれかの単一ビット誤りは、誤り検出/修正モジュール1116による符号語の出力よりも前に検出され修正される。検出された誤りが修正不可能である場合、誤り検出/修正モジュール1116は、信号を出力して、そうであることを示す。簡単ではあるが、ハミング符号等の符号について、値通過処理論理回路に用いるために図11に関して説明したが、畳込み符号等の他の誤り修正符号を他の選択肢として用い得ることを認識されたい。
図16は、加算器、乗算器、又はシフタ等の値変更論理回路要素に対してどのように誤り修正が行われるかを概略的に示す図である。値変更処理論理回路の場合、AN符号、剰余符号、逆剰余符号、又は剰余数符号等の算術符号を用いて、処理論理回路の出力の確率的誤りを検出し修正し得る。
算術符号は、算術演算子をチェックするために用い得る。ここで、[×]は、チェックされる演算子を表し、次の関係を満足しなければならない。
符号(X[×]Y)=符号X[×]符号Y
AN符号は、データ語への定数係数の乗算を含む算術符号であり、例えば、3N符号を用いて、次の比較を行うことによって加算演算の正当性をチェックし得る。
3N(X)+3N(Y)?=3N(X+Y)
3X+3Y?=3(X+Y)
算術符号の種類の更なる例は、剰余符号であり、ここで、剰余(定数で割った余り)は、チェックビットとしてデータビットに付加され、例えば、3R符号は、モジュロ(MOD)3演算を含み、以下のチェックが、適用される。
XMOD3+YMOD3=(X+Y)MOD3
X=14及びY=7の数値例を考えると、
14MOD3=2(符号語111010、最後の2ビットは剰余)、
7MOD3=1(符号語011101)、
X+Y=21(10101)
及び、21MOD3=0、
剰余MOD3の合計=(2+1)MOD3=0=(X+Y)の剰余
図16は、図10のチャネル/論理回路ユニット1014の加算演算をチェックするための7R算術符号の使用法を概略的に示す。チェックされる加算演算は、X+Yであり、ここで、X及びYは、8ビットデータ語である。各データ語は、それぞれ値XMOD7及びYMOD7を有する4チェックビットである。XMOD7及びYMOD7は、第1加算器1210にオペランドとして供給され、この加算器の出力は、値(XMOD7+YMOD7)MOD7を求めてその結果を比較器1250に第1入力として供給する論理回路に供給される。第2加算器1230は、加算(X+Y)を行い、その結果を論理回路ユニット1240に供給する。論理回路ユニット1240は、(X+Y)MOD7を計算し、その結果を比較器1250に第2入力として供給する。比較器が、2つの入力値の間の何らかの差異を検出する場合、誤りが生じている。
図17は、遅延ラッチ値の誤り修正制御が含まれる図14の回路における動作を概略的に示すフローチャートである。段階1310で、12ビット誤り修正符号化信号値が、チャネル/論理回路ユニット1014に入力される。次に、段階1320で、無遅延ラッチ1016は、時間Tiでチャネル/論理回路ユニット1014からの出力を取り込み、取り込まれた値は、段階1330で、後続の処理論理回路段I+1に転送される。段階1340で、遅延ラッチ1018は、時間Ti+dで出力信号を取り込む。段階1350で、誤り検出論理回路は、時間Ti+(d+δ)で、チャネル/論理回路ユニット1014から出力を取り込む。δの好適な構成では、δがゼロであり、遅延値自体によって出力される値が実際に誤りチェックされるが、他の選択肢として、出力は、遅延ラッチがTi+dで出力信号を取り込んだ少し後に取り込み得る。誤り検出回路に供給するための値の取り込みは、遅延値のあらゆる確率的誤りを確実に検出するように適切にタイミングが図られる。段階1360で、誤り検出モジュール1026は、冗長ビットを用いて、遅延出力信号に誤りがあるかどうか決定する。誤りが検出された場合、誤りが段階1370で修正可能かどうか決定するが、このことは、いくつのビットが影響を受けたかに依存する。例えば、ハミング符号は、単一ビット誤りしか修正できない。誤りが修正可能であると段階1370で決定された場合、処理は、段階1390に進み、そこで、誤りが修正され、修正済遅延値が、マルチプレクサ1022で選択され、比較器1024に供給される。しかしながら、検出された誤りが修正不可能であると段階1370で判断された場合、制御信号が生成されて、修正不可能誤りが生じたことを示す。この場合、信頼できる計算を進めることができない。段階1392で、比較器1024は、誤りチェック済遅延値が、無遅延値に等しいかどうか判断し、そうである場合、計算が進み続ける。そうでない場合、処理は、図4Bに関して説明した、無遅延値の抑制を含む一連のステップに進み、後続処理段の遅延値による置き換えが実行される。
図18は、処理段間の相対的なタイミングを動的に調整するための本手法の使用法を示す。パイプライン処理環境では、処理段が、それぞれの動作を完了するためにかかる時間は異なり得ることが知られている。理想的には、処理段は全て、同じ時間がかかるように、また、それらそれぞれの時間が、周辺状態が変化するにつれて同じ様に変化するようにバランスが取られる。しかしながら、このことは、実用的でないことが多く、また、1つの動作電圧又は温度でバランスが取られた処理段の集合は、他の動作電圧又は温度ではバランスが取れないことがある。更に、製造のばらつき及び他の特性によって、処理段のタイミング間にかなりの差が生じ、このことで、それらの間の設計バランスが台無しになる。これらの場合、クロック周波数及び他の動作パラメータは、処理段が全ての条件下で動作するのに充分な程密接にバランスが取れるように、最悪のシナリオに対して選択される。
本手法によって、より選択的で実に動的な方法を取り入れることが可能になる。パイプライン処理回路2000は、無遅延ラッチが取り込む信号値の誤り発生の検出に用い得る遅延ラッチ2002を含む。これら誤りの発生は、主経路内のそれぞれのラッチ、即ち、無遅延ラッチに供給されるクロック信号の相対位相を調整する役割を果たすクロック位相制御回路204にフィードバックされる。このように、調整がなされることによって、時間が、1つの処理段から効果的に流用され、また、他の処理段に割り当てられる。このことは、基本クロック信号が伝達される遅延線内の選択可能な位置から、それぞれの無遅延ラッチが用いるクロック信号を引き出すことによって達成し得る。
示した例、ラッチLとラッチLとの間の処理論理回路は、後続段の処理論理回路よりも動作が遅い。従って、無遅延ラッチLに供給されるクロック信号は、(立ち上がり端のラッチ取り込みを仮定して)そのクロック信号の立ち上がり端を遅らせ、これによって、遅い処理論理回路の利用可能な時間を延ばすように位相シフトし得る。これがラッチLを除く他の段要素と同じ基本クロック信号で動作すると仮定すると、このことによって、後続処理段内の処理論理回路の利用可能な時間が減少する。
処理段間のこのタイミングバランスは、遅延ラッチを用いて検出される動作の誤りからのフィードバックを用いて、回路の進行中の動作時、動的に行うことができる。他の選択肢として、均衡化は、製造試験段階時、又は、集積回路の“最高起動(Golden_boot)”時、一回限りの動作として行い得る。図18に示した遅延ラッチは、処理段間のタイミング均衡化の目的で用いられ、また、その後、例えば、図1に関して上述したように動作パラメータの制御や誤り修正に用い得る。このように、遅延ラッチの装備は、更に、相対的なクロックタイミングの制御にも用いられる。
図19は、グローバルクロックゲート制御に基づくパイプライン誤り復旧に対する簡単な取り組み方法を示す。いずれかの段が誤りを検出する場合、パイプライン全体が、1サイクルの間、次のグローバルクロック端をゲート制御することによってストールされる。追加のクロック期間によって、各段は、入力として遅延ラッチを用いてその結果を再計算し得る。その結果、前に転送されたあらゆる誤値は、遅延ラッチからの正しい値で置き換えられる。全ての段が、遅延ラッチ入力でそれらの結果を再評価するため、任意の数の誤りが、一回のサイクルで許容され、前に進むことが保証される。全ての段が、各サイクルで誤りを生成する場合、パイプラインは、通常の速さの半分で動作し続ける。
誤パイプライン結果は、比較器によって検証される前に、アーキテクチャ化された状態に書き込まれないことが重要である。遅延値の検証は、追加的な2つのサイクル(即ち、1つは誤り検出、1つはパニック検出)を要するため、最終遅延ラッチとライトバック(WB)段との間に2つの非推論段がなければならない。我々の設計では、データキャッシュへのメモリアクセスは、非推論的であり、従って、安定化用のSTと称する1つの追加段だけが、ライトバック(WB)の前に必要である。ST段は、追加的なレベルのレジスタバイパスを導入する。記憶命令は、非推論的に実行しなければならないため、パイプラインのWB段で行われる。
図19は、パイプラインのEX段で機能不良になる命令に対するパイプライン復旧のパイプラインタイミング図を示す。最初の機能不良段の計算は、4番目のサイクルに生じているが、MEM段が、EX段から送られた誤値を用いて誤った結果を計算した後でのみ生じている。誤りが検出された後、グローバルクロックストールが、6番目のサイクルで生じ、レザー・シャドウ(Razor_shadow)ラッチの正しいEX結果が、MEM段によって評価される。7番目のサイクルでは、パイプラインの通常動作が再開する。
積極的にクロック制御される設計では、プロセッササイクルタイムに大きく影響を与えることなくグローバルクロックゲート制御を実現することは可能でないことがある。この結果、対向流パイプライン化手法に基づく完全にパイプライン化された誤り復旧機構が、実現されている。図20に示した方法は、パイプライン復旧を数サイクル延ばすという代価を払って、無視し得るタイミング制約を基線パイプライン設計に課す。無遅延値誤りが検出される場合、2つの特定の対策を講じなければならない。まず、機能不良無遅延ラッチに続く誤った段計算を、無効にしなければならない。この対策は、バブル信号を用いて達成されるが、これは、パイプラインスロットが空であることを次の及びそれ以降の段に示す。次に、フラッシュ列が、機能不良段の段IDをアサートすることによってトリガがかけられる。次のサイクルで、遅延ラッチデータからの正しい値が、パイプラインに再度入力され、誤った命令は、その正しい入力で継続し得る。更に、対向流パイプラインがあることによって、フラッシュ列が、命令の反対方向に機能不良段のIDを伝達し始める。有効なフラッシュ列が訪れる各段では、対応するパイプライン段及び直前の段が、バブルで置き換えられる。(主パイプラインの2倍の相対速度を考慮して、2つの段を無効にしければならない。)フラッシュIDが、パイプラインの出発点に到達した場合、フラッシュ制御論理回路は、誤った命令に続く命令でパイプラインを再起動する。複数の段が、同じサイクルで誤りに遭遇する場合、全て復旧を始めるが、ライトバック(WB)に最も近い無遅延誤りだけが完了する。以前復旧したものは、後のものによってフラッシュされる。対向流パイプラインは、前進パイプラインと同じ長さになり得ず、例えば、対向流パイプラインのフラッシュ列は、2パイプライン段深さであり、前進パイプラインは、12段深さであり得ることを留意されたい。
図20は、EX段で機能不良になる命令に対するパイプライン復旧のパイプラインタイミング図を示す。重要な例と同様に、最初の機能不良段の計算が、4番目のサイクルで生じ、その場合、次の命令が、パイプラインのEX段で誤った結果を計算する。この誤りが、5番目のサイクルで検出され、バブルがMEM段から伝達され、また、フラッシュ列が始まる。EX、ID、及びIF段の命令は、それぞれ6番目、7番目、及び8番目のサイクルでフラッシュされる。最後に、パイプラインは、サイクル9の誤った命令の後再起動され、その後、通常のパイプライン動作が再開する。
上述した図2の説明から、回路102が誤り信号の準安定性を検出した場合、パニック信号がアサートされることを思い起こされたい。この場合、(次の命令よりむしろ)現在の命令が、再実行されるべきである。このようなパニック信号がアサートされる場合、全てのパイプライン状態が、フラッシュされ、また、パイプラインは、最少の命令書き戻しの後直ちに再起動される。パニック状況によって、前に確実に進めることが複雑になるが、これは、その状況を検出する際の遅延により、正しい結果を遅延ラッチに重ね書きできるためである。従って、パニックに遭遇した後、電源電圧が、既知の安全な動作レベルにリセットされ、パイプラインが再起動される。一旦再調整されると、誤った命令は、この命令の完了後まで復帰が禁止される限り、誤りなく完了する。
パイプライン復旧制御の主要件は、それが最悪の動作条件(例えば、低電圧、高温、及び大きい処理変動)下でさえも機能不良にならないことである。この要件は、最悪な場合の臨界値以下の電圧で誤り復旧回路のタイミングを検証する保守的な設計方法によって満たされる。
図21は、逐次走査連鎖ラッチとしての遅延ラッチ2100の再使用法を概略的に示す。これは、必要に応じて、逐次走査データ値を遅延ラッチに書き込んだり、遅延ラッチから連続的に読み込んだりさせる走査イネーブル信号によって制御されるマルチプレクサ2102を設けることによって実現される。更に、遅延ラッチ値で無遅延ラッチ値を置き換えさせる通常の機構を利用して、逐次走査連鎖値を動作経路に挿入し得る。
本手法が適用される複数の処理段を概略的に示す図。 本手法で用いる回路を概略的に示す回路ブロック図。 無遅延ラッチ及び遅延ラッチを関連する比較器及び誤り復旧論理回路と共に概略的に示す回路図。 図1の回路の動作を概略的に示すフロー図。 図1の回路の動作を概略的に示すフロー図。 高速読み込み機構及び低速読み込み機構を含むメモリ回路を概略的に示す図。 図5の回路の一部に対する他の選択的な回路構成を示す図。 図5のメモリ回路の動作を概略的に示すフロー図。 バス段間に無遅延ラッチ及び遅延ラッチを含むパイプラインバスを示す図。 図8のパイプラインバスの動作を概略的に示すフロー図。 無遅延ラッチ&出力及び遅延ラッチ&出力の双方を受けるマイクロプロセッサ制御用制御信号の生成を概略的に示す図。 図10の回路における動作の一例を概略的に示すフロー図。 無遅延ラッチ及び遅延ラッチを含み、低電力動作中、遅延ラッチがデータ保持ラッチとして再使用される処理パイプラインを示す図。 図12の回路の動作を概略的に示すフロー図。 誤り修正及び遅延ラッチが適用される複数の処理段を概略的に示す図。 誤りが生じない場合、入力から出力へそのまま値を単に伝えるチャネルを通過するデータの誤り修正を概略的に示す図。 加算器、乗算器、又はシフタ等の値変更論理回路要素に対して、如何に誤り修正が行われるかを概略的に示す図。 図14の回路の動作を概略的に示すフローチャートである。 遅延及び無遅延ラッチを用いて処理パイプライン内のクロック信号の相対位相を如何に制御し得るかを概略的に示す図。 誤りからの復旧の際、ストール及びバブル挿入のそれぞれの使用法を概略的に示す図。 誤りからの復旧の際、ストール及びバブル挿入のそれぞれの使用法を概略的に示す図。 遅延ラッチが逐次走査連鎖ラッチとして再使用される処理段間で用いる無遅延及び遅延ラッチを示す図。
符号の説明
10・・・無遅延クロック信号、12・・・遅延クロック信号

Claims (54)

  1. データ処理を行うための集積回路において、
    複数の処理段であって、少なくとも1つの処理段からの処理段出力信号が、後続処理段に処理段入力信号として供給され、前記少なくとも1つの処理段には、少なくとも1つの符号化入力値に処理動作を行って処理論理回路出力信号を生成するように動作可能な処理論理回路が含まれ、前記符号化入力値は、誤り修正符号が適用された入力値である前記複数の処理段と、
    無遅延取り込み時間に前記処理論理回路出力信号の無遅延値を取り込むように動作可能な無遅延信号取り込み要素であって、前記無遅延値は、前記無遅延取り込み時間に続き、前記処理段出力信号として前記後続処理段に供給される前記無遅延信号取り込み要素と、
    前記無遅延取り込み時間よりも遅い遅延取り込み時間に前記処理論理回路出力信号の遅延値を取り込むように動作可能な遅延信号取り込み要素と、
    前記処理論理回路出力信号の前記遅延値における確率的誤りの発生を検出するように、また、前記検出された確率的誤りが、前記誤り修正符号を用いて修正可能か決定するように、更に、誤りチェック済遅延値を生成するように又は前記検出された確率的誤りが修正不可能であることを示すように動作可能な誤り修正論理回路と、
    前記無遅延値を前記誤りチェック済遅延値と比較して、前記無遅延取り込み時間に続く時間に前記処理論理回路出力信号における変化を検出するように動作可能な比較器であって、前記変化は、系統的誤りであって、それによって前記処理論理回路が前記無遅延取り込み時間に前記処理動作を終了しなかった前記系統的誤りを示すか、又は、前記無遅延値の確率的誤りを示す前記比較器と、
    前記比較器が前記処理論理回路出力信号の前記変化を検出する時動作可能な誤り修復論理回路であって、後続処理段の前記誤りチェック済遅延値によって前記無遅延値を置き換えることによって、又は、前記検出された確率的誤りが修正可能でないことを前記誤り修正論理回路が示す場合、前記処理動作及び後続処理段の処理動作の反復を始めることによって、誤り修復動作を行い前記無遅延値の使用を抑制するように動作可能な前記誤り修復論理回路と、
    が含まれる集積回路。
  2. 請求項1に記載の集積回路であって、
    前記誤り修復論理回路は、前記誤り修正論理回路が、前記遅延値に修正可能な確率的誤りを検出した場合、また、前記比較器が、前記無遅延値と前記誤りチェック済遅延値との間に差異がないことを検出した場合、前記無遅延値を前記誤りチェック済遅延値で置き換えることによって、前記無遅延値の使用を抑制するように動作可能である集積回路。
  3. 請求項1または2に記載の集積回路であって、
    前記処理論理回路によって行われる前記処理動作は、前記処理動作に誤りが生じない場合、前記処理論理回路出力信号が、前記処理段入力値に等しい動作である集積回路。
  4. 請求項3に記載の集積回路であって、
    前記少なくとも1つの処理段は、メモリ回路によって実行され、前記処理動作は、読み込み又は書き込み動作である集積回路。
  5. 請求項3に記載の集積回路であって、
    少なくとも1つの処理段は、レジスタによって実行され、前記処理動作は、読み込み、書き込み、又は移動動作である集積回路。
  6. 請求項3に記載の集積回路であって、
    前記少なくとも1つの処理段が、マルチプレクサによって実行され、前記処理動作は、多重化動作である集積回路。
  7. 請求項1乃至6のいずれか1つに記載の集積回路であって、
    前記複数の処理段は、同期パイプライン内のそれぞれのパイプライン段である集積回路。
  8. 請求項3乃至7のいずれか1つに記載の集積回路であって、
    前記入力値は、ハミング符号を用いて誤り修正符号化され、また、前記誤り修復論理回路は、前記ハミング符号を用いて、前記修正及び前記検出を行う集積回路。
  9. 請求項1乃至8のいずれか1つに記載の集積回路であって、
    前記処理論理回路によって行われる前記処理動作は、前記処理動作に誤りが生じない場合でさえ、前記処理論理回路出力信号が前記処理段入力値と異なり得る値変更動作である集積回路。
  10. 請求項9に記載の集積回路であって、
    前記処理論理回路は、加算器、乗算器、又はシフタの内の1つである集積回路。
  11. 請求項8に記載の集積回路であって、
    前記入力値は、AN符号、剰余符号、逆剰余符号、又は剰余数符号の内の1つを含む算術符号を用いて、誤り修正符号化される集積回路。
  12. 請求項1乃至11のいずれか1つに記載の集積回路であって、
    前記無遅延値の準安定性を検出するように動作可能な、また、準安定であることが分かった場合、前記誤り修復論理回路にトリガをかけて前記無遅延値の使用を抑制するように動作可能な準安定性検出器が含まれる集積回路。
  13. 請求項1乃至12のいずれか1つに記載の集積回路であって、
    前記比較器が前記変化を検出すると、前記誤り修復論理回路は、前記処理段出力信号として前記無遅延値を前記誤りチェック済遅延値で置き換えるように動作可能である集積回路。
  14. 請求項13に記載の集積回路であって、
    前記誤りチェック済遅延値を前記後続処理段に供給すると、処理動作が強制的に先に進む集積回路。
  15. 請求項1乃至14のいずれか1つに記載の集積回路であって、
    前記比較器が前記変化を検出すると、前記誤り修復論理回路は、前記無遅延値の代わりに、前記誤りチェック済遅延値を前記無遅延信号取り込み要素に強制的に記憶させるように動作可能である集積回路。
  16. 請求項1乃至15のいずれか1つに記載の集積回路であって、
    前記少なくとも1つの処理段及び前記後続処理段内の処理動作が、無遅延クロック信号によって駆動される集積回路。
  17. 請求項16に記載の集積回路であって、
    前記比較器が前記変化を検出すると、前記誤り修復論理回路は、前記無遅延クロック信号をゲート制御して、前記後続処理段が前記無遅延値の入力から復旧するのに充分な時間を提供し、そして、その代わり前記誤りチェック済遅延値を用いるように動作可能である集積回路。
  18. 請求項16に記載の集積回路であって、
    前記無遅延取り込み時間は、前記無遅延クロック信号の所定の位相点から導き出され、前記無遅延クロック信号の位相遅延版は、遅延クロック信号として用いられ、前記遅延取り込み時間は、前記遅延クロック信号の所定の位相点から導き出される集積回路。
  19. 請求項1乃至18のいずれか1つに記載の集積回路であって、
    前記集積回路の1つ又は複数の動作パラメータは、前記変化に対応する前記系統的誤りの検出に依存して制御される集積回路。
  20. 請求項19に記載の集積回路であって、
    前記1つ又は複数の動作パラメータは、ゼロでない系統的誤り率が維持されるレベルを有するように制御される集積回路。
  21. 請求項19または20に記載の集積回路であって、前記1つ又は複数の動作パラメータには、
    動作電圧、
    動作周波数、
    集積回路本体バイアス電圧、
    温度
    の内の少なくとも1つが含まれる集積回路。
  22. 請求項1乃至21のいずれか1つに記載の集積回路であって、
    前記処理動作にかかる最小処理時間は、前記誤りチェック済遅延値が、異なる入力値に行われる処理動作によって影響されないように、前記無遅延取り込み時間から前記遅延取り込み時間を分離する時間より長い集積回路。
  23. 請求項22に記載の集積回路であって、
    前記処理論理回路は、前記最小処理時間を越えることを保証する1つ又は複数の遅延要素を含む集積回路。
  24. 請求項1乃至23のいずれか1つに記載の集積回路であって、
    前記処理動作にかかる最大処理時間は、前記処理論理回路が前記遅延取り込み時間までに前記処理動作を終えているように、前記無遅延取り込み時間から前記遅延取り込み時間を分離する時間と無遅延取り込み時間の間の時間との合計より短い集積回路。
  25. 請求項1乃至24のいずれか1つに記載の集積回路であって、前記処理段は、データプロセッサの一部である集積回路。
  26. 請求項1乃至25のいずれか1つに記載の集積回路であって、
    前記変化に対応する誤り検出の計数値を記憶するように動作可能な誤りカウンタ回路が含まれる集積回路。
  27. 請求項26に記載の集積回路であって、
    前記計数値は、ソフトウェアで読み取り得る集積回路。
  28. データ処理を行うための集積回路を制御する方法であって、
    複数の処理段の内の少なくとも1つの処理段から処理段出力信号を後続処理段へ処理段入力信号として供給する段階であって、前記少なくとも1つの処理段は、処理論理回路による処理動作を少なくとも1つの符号化された入力値に行い、処理論理回路出力信号を生成するように動作し、前記符号化された入力値は、誤り修正符号が適用された入力値である前記供給する段階と、
    無遅延取り込み時間に前記処理論理回路出力信号の無遅延値を取り込む段階であって、前記無遅延値は、前記無遅延取り込み時間に続く前記処理段出力信号として前記後続処理段に供給される前記取り込み段階と、
    前記無遅延取り込み時間よりも遅い遅延取り込み時間に前記処理論理回路出力信号の遅延値を取り込む段階と、
    誤り修正論理回路を用いて、前記処理論理回路出力信号の前記遅延値における確率的誤りの発生を検出して、前記検出された確率的誤りが前記誤り修正符号を用いて修正可能かどうか決定し、また、誤りチェック済遅延値を生成するか又は前記検出された確率的誤りが修正可能でないことを示す段階と、
    前記無遅延値を前記誤りチェック済遅延値と比較する段階であって、前記無遅延取り込み時間に続く時間に前記処理論理回路出力信号の変化を検出し、前記変化は、系統的誤りによって、前記処理論理回路が、前記無遅延取り込み時間に前記処理動作を終了していない系統的誤りを示すか又は前記無遅延値の確率的誤りを示す前記比較する段階と、
    前記変化が検出されると、誤り修復論理回路を用いて誤り修復動作を行い、後続処理段の前記誤りチェック済遅延値で前記無遅延値を置き換えることによって、又は、前記検出された確率的誤りが修正可能でないことを前記誤り修正論理回路が示す場合、前記処理動作及び後続処理段の処理動作の反復を始めることによって、前記無遅延値の使用を抑制する段階と、
    が含まれる方法。
  29. 請求項28に記載の方法であって、
    前記誤り修復論理回路は、前記誤り修正論理回路が、前記遅延値に修正可能な確率的誤りを検出した場合、また、前記比較器が、前記無遅延値と前記誤りチェック済遅延値との間に差異がないことを検出した場合、前記無遅延値を前記誤りチェック済遅延値で置き換えることによって、前記無遅延値の使用を抑制するように動作可能である方法。
  30. 請求項28または29に記載の方法であって、
    前記処理論理回路によって行われる前記処理動作は、前記処理動作に誤りが生じない場合、前記処理論理回路出力信号が、前記処理段入力値に等しい動作である方法。
  31. 請求項30に記載の方法であって、
    前記少なくとも1つの処理段は、メモリ回路によって実行され、前記処理動作は、読み込み又は書き込み動作である方法。
  32. 請求項30に記載の方法であって、
    少なくとも1つの処理段が、レジスタによって実行され、前記処理動作は、読み込み、書き込み、又は移動動作である方法。
  33. 請求項30に記載の方法であって、
    前記少なくとも1つの処理段は、マルチプレクサによって実行され、前記処理動作は、多重化動作である方法。
  34. 請求項28乃至33のいずれか1つに記載の方法であって、
    前記複数の処理段は、同期パイプライン内のそれぞれのパイプライン段である方法。
  35. 請求項30乃至34のいずれか1つに記載の方法であって、
    前記入力値は、ハミング符号を用いて誤り修正符号化され、また、前記誤り修復論理回路は、前記ハミング符号を用いて、前記修正及び前記検出を行う方法。
  36. 請求項28乃至35のいずれか1つに記載の方法であって、
    前記処理論理回路によって行われる前記処理動作は、前記処理動作に誤りが生じない場合でさえ、前記処理論理回路出力信号が前記処理段入力値と異なり得る値変更動作である方法。
  37. 請求項36に記載の方法であって、
    前記処理論理回路は、加算器、乗算器、又はシフタの内の1つである方法。
  38. 請求項36に記載の方法であって、
    前記入力値は、AN符号、剰余符号、逆剰余符号、又は剰余数符号の内の1つを含む算術符号を用いて、誤り修正符号化される方法。
  39. 請求項28乃至38のいずれか1つに記載の方法であって、
    前記無遅延値の準安定性の検出と、準安定であることが分かった場合、前記誤り修復論理回路にトリガをかけて前記無遅延値の使用を抑制する段階と、が含まれる方法。
  40. 請求項28乃至39のいずれか1つに記載の方法であって、
    前記比較器が前記変化を検出すると、前記誤り修復論理回路は、前記処理段出力信号として前記無遅延値を前記誤りチェック済遅延値で置き換えるように動作可能である方法。
  41. 請求項28乃至40のいずれか1つに記載の方法であって、
    前記誤りチェック済遅延値を前記後続処理段に供給すると、処理動作が強制的に先に進む方法。
  42. 請求項28乃至41のいずれか1つに記載の方法であって、
    前記比較器が前記変化を検出すると、前記誤り修復論理回路は、前記無遅延値の代わりに、前記誤りチェック済遅延値を前記無遅延信号取り込み要素に強制的に記憶させるように動作可能である方法。
  43. 請求項28乃至42のいずれか1つに記載の方法であって、
    前記少なくとも1つの処理段及び前記後続処理段内の処理動作が、無遅延クロック信号によって駆動される方法。
  44. 請求項43に記載の方法であって、
    前記比較器が前記変化を検出すると、前記誤り修復論理回路は、前記無遅延クロック信号をゲート制御して、前記後続処理段が前記無遅延値の入力から復旧するのに充分な時間を提供し、そして、その代わり前記誤りチェック済遅延値を用いるように動作可能である方法。
  45. 請求項43または44に記載の方法であって、
    前記無遅延取り込み時間は、前記無遅延クロック信号の所定の位相点から導き出され、前記無遅延クロック信号の位相遅延版は、遅延クロック信号として用いられ、前記遅延取り込み時間は、前記遅延クロック信号の所定の位相点から導き出される方法。
  46. 請求項28乃至45のいずれか1つに記載の方法であって、
    前記集積回路の1つ又は複数の動作パラメータは、前記変化に対応する前記系統的誤りの検出に依存して制御される方法。
  47. 請求項46に記載の方法であって、
    前記1つ又は複数の動作パラメータは、ゼロでない系統的誤り率が維持されるレベルを有するように制御される方法。
  48. 請求項46または47に記載の方法であって、前記1つ又は複数の動作パラメータには、
    動作電圧、
    動作周波数、
    集積回路本体バイアス電圧、
    温度
    の内の少なくとも1つが含まれる方法。
  49. 請求項28乃至48のいずれか1つに記載の方法であって、
    前記処理動作にかかる最小処理時間は、前記誤りチェック済遅延値が、異なる入力値に行われる処理動作によって影響されないように、前記無遅延取り込み時間から前記遅延取り込み時間を分離する時間より長い方法。
  50. 請求項49に記載の方法であって、
    前記処理論理回路は、前記最小処理時間を越えることを保証する1つ又は複数の遅延要素を含む方法。
  51. 請求項28乃至50のいずれか1つに記載の方法であって、
    前記処理動作にかかる最大処理時間は、前記処理論理回路が前記遅延取り込み時間までに前記処理動作を終えているように、前記無遅延取り込み時間から前記遅延取り込み時間を分離する時間と無遅延取り込み時間の間の時間との合計より短い方法。
  52. 請求項28乃至51のいずれか1つに記載の方法であって、前記処理段は、データプロセッサの一部である方法。
  53. 請求項28乃至52のいずれか1つに記載の方法であって、
    前記変化に対応する誤り検出の計数値を記憶するように動作可能な誤りカウンタ回路が含まれる方法。
  54. 請求項53に記載の方法であって、
    前記計数値は、ソフトウェアで読み取り得る方法。
JP2006505976A 2003-03-20 2004-03-17 集積回路の処理段における系統的及び確率的誤り検出及び復旧 Expired - Lifetime JP4317212B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US10/392,382 US7278080B2 (en) 2003-03-20 2003-03-20 Error detection and recovery within processing stages of an integrated circuit
US10/779,805 US7162661B2 (en) 2003-03-20 2004-02-18 Systematic and random error detection and recovery within processing stages of an integrated circuit
PCT/GB2004/001143 WO2004084070A1 (en) 2003-03-20 2004-03-17 Systematic and random error detection and recovery within processing stages of an integrated circuit

Publications (2)

Publication Number Publication Date
JP2006520954A JP2006520954A (ja) 2006-09-14
JP4317212B2 true JP4317212B2 (ja) 2009-08-19

Family

ID=33032648

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006505976A Expired - Lifetime JP4317212B2 (ja) 2003-03-20 2004-03-17 集積回路の処理段における系統的及び確率的誤り検出及び復旧

Country Status (7)

Country Link
US (2) US7337356B2 (ja)
EP (1) EP1604281B1 (ja)
JP (1) JP4317212B2 (ja)
KR (1) KR100981999B1 (ja)
DE (1) DE602004001869T2 (ja)
RU (1) RU2005129270A (ja)
WO (1) WO2004084070A1 (ja)

Families Citing this family (83)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7278080B2 (en) * 2003-03-20 2007-10-02 Arm Limited Error detection and recovery within processing stages of an integrated circuit
US8650470B2 (en) * 2003-03-20 2014-02-11 Arm Limited Error recovery within integrated circuit
US8185812B2 (en) * 2003-03-20 2012-05-22 Arm Limited Single event upset error detection within an integrated circuit
DE102004010783A1 (de) * 2004-03-05 2005-09-29 Infineon Technologies Ag Verfahren und Schaltungsanordnung zum Testen elektrischer Bausteine
KR100582391B1 (ko) * 2004-04-08 2006-05-22 주식회사 하이닉스반도체 반도체 소자에서의 지연 요소의 지연 검출 장치 및 방법
FR2869430A1 (fr) * 2004-04-27 2005-10-28 St Microelectronics Sa Controle de l'execution d'un algorithme par un circuit integre
US7701240B2 (en) * 2005-03-04 2010-04-20 Arm Limited Integrated circuit with error correction mechanisms to offset narrow tolerancing
US7958430B1 (en) * 2005-06-20 2011-06-07 Cypress Semiconductor Corporation Flash memory device and method
US20070050606A1 (en) * 2005-08-29 2007-03-01 Searete Llc, A Limited Liability Corporation Of The State Of Delaware Runtime-based optimization profile
US7653834B2 (en) * 2005-08-29 2010-01-26 Searete, Llc Power sparing synchronous apparatus
US8181004B2 (en) 2005-08-29 2012-05-15 The Invention Science Fund I, Llc Selecting a resource management policy for a resource available to a processor
US8214191B2 (en) 2005-08-29 2012-07-03 The Invention Science Fund I, Llc Cross-architecture execution optimization
US7725693B2 (en) * 2005-08-29 2010-05-25 Searete, Llc Execution optimization using a processor resource management policy saved in an association with an instruction group
US7739524B2 (en) * 2005-08-29 2010-06-15 The Invention Science Fund I, Inc Power consumption management
US7779213B2 (en) * 2005-08-29 2010-08-17 The Invention Science Fund I, Inc Optimization of instruction group execution through hardware resource management policies
US7627739B2 (en) * 2005-08-29 2009-12-01 Searete, Llc Optimization of a hardware resource shared by a multiprocessor
US7877584B2 (en) * 2005-08-29 2011-01-25 The Invention Science Fund I, Llc Predictive processor resource management
US8516300B2 (en) 2005-08-29 2013-08-20 The Invention Science Fund I, Llc Multi-votage synchronous systems
US8255745B2 (en) 2005-08-29 2012-08-28 The Invention Science Fund I, Llc Hardware-error tolerant computing
US7607042B2 (en) * 2005-08-29 2009-10-20 Searete, Llc Adjusting a processor operating parameter based on a performance criterion
US7647487B2 (en) * 2005-08-29 2010-01-12 Searete, Llc Instruction-associated processor resource optimization
US7774558B2 (en) 2005-08-29 2010-08-10 The Invention Science Fund I, Inc Multiprocessor resource optimization
US8209524B2 (en) 2005-08-29 2012-06-26 The Invention Science Fund I, Llc Cross-architecture optimization
DE102005049232A1 (de) * 2005-10-14 2007-04-26 Infineon Technologies Ag Integrierter Schaltkreis und Verfahren zum Betreiben eines integrierten Schaltkreises
WO2007048859A1 (es) * 2005-10-26 2007-05-03 Intel Corporation Arquitectura en racimo que percibe las variaciones
US20070150115A1 (en) * 2005-12-27 2007-06-28 Micron Technology, Inc. Operation and design of integrated circuits at constrained temperature ranges in accordance with bit error rates
JP5129450B2 (ja) * 2006-01-16 2013-01-30 ルネサスエレクトロニクス株式会社 情報処理装置
JP2007195076A (ja) * 2006-01-20 2007-08-02 Nec Corp 無線通信システムとその送信電力制御方法および装置
FR2897175A1 (fr) * 2006-02-09 2007-08-10 Atmel Corp Appareil et procede pour la detection, et la recuperation depuis, un acces inapproprie au bus dans le domaine technique des circuits microcontroleurs
US7805642B1 (en) * 2006-02-17 2010-09-28 Aquantia Corporation Low power iterative decoder using input data pipelining and voltage scaling
JP5173216B2 (ja) * 2006-04-18 2013-04-03 パナソニック株式会社 半導体集積回路システム、半導体集積回路、オペレーティングシステム及び半導体集積回路の制御方法
WO2008000858A1 (es) 2006-06-30 2008-01-03 Intel Corporation Estimación de la potencia de fugas
US8381009B2 (en) * 2006-08-03 2013-02-19 Freescale Semiconductor, Inc. Device and method for power management
EP2060924B1 (en) * 2006-08-24 2013-10-23 NEC Corporation Failure predicting circuit and method, and semiconductor integrated circuit
US8020038B2 (en) * 2006-09-28 2011-09-13 Hewlett-Packard Development Company, L.P. System and method for adjusting operating points of a processor based on detected processor errors
GB0619949D0 (en) * 2006-10-09 2006-11-15 Advanced Risc Mach Ltd Integrated circuit
US8412981B2 (en) * 2006-12-29 2013-04-02 Intel Corporation Core sparing on multi-core platforms
US7908516B2 (en) 2007-03-27 2011-03-15 Microchip Technology Incorporated Low power mode fault recovery method, system and apparatus
FR2917202B1 (fr) * 2007-06-06 2009-08-21 Peugeot Citroen Automobiles Sa Dispositif de controle de valeurs de parametre(s) par analyse de fiabilite, et calculateur correspondant.
US7788546B2 (en) * 2007-09-17 2010-08-31 Advanced Micro Devices, Inc. Method and system for identifying communication errors resulting from reset skew
GB2453759B8 (en) * 2007-10-17 2011-12-21 Advanced Risc Mach Ltd Integrated circuit using speculative execution
KR101531502B1 (ko) * 2007-12-11 2015-06-26 엘지전자 주식회사 오류제어방법
KR101490249B1 (ko) * 2007-12-11 2015-02-05 엘지전자 주식회사 연판정을 이용한 통신방법 및 장치
KR101467788B1 (ko) * 2007-12-11 2014-12-03 엘지전자 주식회사 랜덤 선형 부호화를 이용하는 통신방법 및 장치
GB2458260A (en) 2008-02-26 2009-09-16 Advanced Risc Mach Ltd Selectively disabling error repair circuitry in an integrated circuit
US8171386B2 (en) * 2008-03-27 2012-05-01 Arm Limited Single event upset error detection within sequential storage circuitry of an integrated circuit
US7795920B2 (en) * 2008-03-31 2010-09-14 Kabushiki Kaisha Toshiba Semiconductor integrated circuit
US7945811B2 (en) * 2008-05-12 2011-05-17 Arm Limited Low power, high reliability specific compound functional units
US9189014B2 (en) 2008-09-26 2015-11-17 Intel Corporation Sequential circuit with error detection
US8301970B2 (en) * 2008-09-26 2012-10-30 Intel Corporation Sequential circuit with error detection
US8161367B2 (en) * 2008-10-07 2012-04-17 Arm Limited Correction of single event upset error within sequential storage circuitry of an integrated circuit
US7900114B2 (en) 2009-02-27 2011-03-01 Infineon Technologies Ag Error detection in an integrated circuit
US8041992B2 (en) * 2009-05-11 2011-10-18 Technology Currents Llc Input compensated and/or overcompensated computing
US9378077B2 (en) * 2009-08-07 2016-06-28 Stmicroelectronics S.R.L. System for detecting operating errors in integrated circuits
US8914672B2 (en) * 2009-12-28 2014-12-16 Intel Corporation General purpose hardware to replace faulty core components that may also provide additional processor functionality
EP2360553B1 (en) * 2010-02-12 2017-08-23 Intel Deutschland GmbH Circuitry system and method for connecting synchronous clock domains of the circuitry system
US20130086444A1 (en) * 2010-03-05 2013-04-04 Bao Liu Error detection code enhanced self-timed/asynchronous nanoelectronic circuits
US7977965B1 (en) * 2010-03-12 2011-07-12 International Business Machines Corporation Soft error detection for latches
US8555124B2 (en) * 2010-06-07 2013-10-08 Arm Limited Apparatus and method for detecting an approaching error condition
WO2012007643A1 (en) * 2010-07-16 2012-01-19 Aalto University Foundation Sequential circuit with current mode error detection
US8615687B2 (en) 2010-07-23 2013-12-24 Arm Limited Data processing system and method for regulating a voltage supply to functional circuitry of the data processing system
US8639987B2 (en) 2011-02-18 2014-01-28 Arm Limited Data processing apparatus and method using monitoring circuitry to control operating parameters
US8493120B2 (en) 2011-03-10 2013-07-23 Arm Limited Storage circuitry and method with increased resilience to single event upsets
ITTO20110485A1 (it) * 2011-06-03 2012-12-04 Torino Politecnico Method and circuit for solving metastability conditions and recovering signal errors in digitalintegrated circuits
EP2798640B1 (en) 2011-12-28 2019-10-23 Intel Corporation Resilient register file circuit for dynamic variation tolerance and method of operating the same
WO2014032610A1 (zh) * 2012-09-03 2014-03-06 东南大学 一种面向cpu流水线的错误恢复电路
US9903916B2 (en) * 2012-09-27 2018-02-27 Nxp Usa, Inc. Scan test system with a test interface having a clock control unit for stretching a power shift cycle
US9780787B2 (en) 2013-03-28 2017-10-03 Korea Advanced Institute Of Science And Technology Self-reparable digital device for multiple faults based on biological attractor concepts
US9009545B2 (en) * 2013-06-14 2015-04-14 International Business Machines Corporation Pulsed-latch based razor with 1-cycle error recovery scheme
TWI553484B (zh) 2014-04-01 2016-10-11 Nat Univ Chung Cheng 前瞻臆測處理裝置及其處理方法
GB2525864B (en) 2014-05-06 2021-04-07 Advanced Risc Mach Ltd Clock frequency reduction for an electronic device
US9672008B2 (en) 2014-11-24 2017-06-06 Nvidia Corporation Pausible bisynchronous FIFO
US9244123B1 (en) 2014-11-25 2016-01-26 Freescale Semiconductor, Inc. Synchronous circuit, method of designing a synchronous circuit, and method of validating a synchronous circuit
TWI554042B (zh) 2014-12-08 2016-10-11 財團法人工業技術研究院 訊號比較裝置及其控制方法
DE102015122907B4 (de) * 2015-12-29 2019-07-04 Infineon Technologies Ag Speichereinrichtung und Verfahren zum Betreiben einer Speichereinrichtung
EP3513293A4 (en) * 2016-09-16 2020-05-20 University Of Southern California SYSTEMS AND METHODS FOR REDUCING ERRORS IN COMBINATIVE LOGIC
KR102030461B1 (ko) * 2017-11-23 2019-10-10 현대오트론 주식회사 복수의 프로세서 오류 감지 시스템 및 그 방법
US10936774B1 (en) * 2018-02-15 2021-03-02 Real Intent, Inc. Methods for identifying integrated circuit failures caused by reset-domain interactions
US11022649B2 (en) * 2018-11-30 2021-06-01 Arm Limited Stabilised failure estimate in circuits
US10747601B2 (en) * 2018-11-30 2020-08-18 Arm Limited Failure estimation in circuits
JP2020145356A (ja) * 2019-03-07 2020-09-10 株式会社東芝 集積回路装置
KR20210058566A (ko) 2019-11-14 2021-05-24 삼성전자주식회사 전자 시스템, 그것의 결함 검출 방법, 시스템 온 칩 및 버스 시스템
US11630730B1 (en) * 2021-10-29 2023-04-18 Zoox, Inc. Data processing pipeline error recovery

Family Cites Families (66)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3905023A (en) 1973-08-15 1975-09-09 Burroughs Corp Large scale multi-level information processing system employing improved failsaft techniques
US3893070A (en) * 1974-01-07 1975-07-01 Ibm Error correction and detection circuit with modular coding unit
SU809350A1 (ru) 1979-05-31 1981-02-28 Московский Ордена Трудовогокрасного Знамени Текстильныйинститут Запоминающее устройство
US4339657A (en) * 1980-02-06 1982-07-13 International Business Machines Corporation Error logging for automatic apparatus
JPS6020398A (ja) 1983-07-14 1985-02-01 Nec Corp メモリ装置
FR2571566B1 (fr) * 1984-10-09 1987-01-23 Labo Electronique Physique Dispositif de reception de donnees numeriques comportant un dispositif de recuperation adaptative de rythme
US4633465A (en) 1985-03-27 1986-12-30 At&T Bell Laboratories Eye violation detectors
JPS6224498A (ja) 1985-07-24 1987-02-02 Nippon Telegr & Teleph Corp <Ntt> メモリ読出し方式
US4756005A (en) * 1986-05-27 1988-07-05 American Telephone And Telegraph Company At&T Bell Laboratories Digital signal regenerator arranged for fault location
US5043990A (en) * 1987-12-04 1991-08-27 Hitachi, Ltd. Semiconductor integrated circuit device
GB2213684A (en) 1987-12-11 1989-08-16 Philips Electronic Associated Data demodulator baud clock phase locking
US4994993A (en) * 1988-10-26 1991-02-19 Advanced Micro Devices, Inc. System for detecting and correcting errors generated by arithmetic logic units
US4975930A (en) 1988-11-02 1990-12-04 Digital Equipment Corporation Digital phase locked loop
US4926374A (en) * 1988-11-23 1990-05-15 International Business Machines Corporation Residue checking apparatus for detecting errors in add, subtract, multiply, divide and square root operations
JPH03142629A (ja) 1989-10-30 1991-06-18 Toshiba Corp マイクロコントローラ
US5291496A (en) * 1990-10-18 1994-03-01 The United States Of America As Represented By The United States Department Of Energy Fault-tolerant corrector/detector chip for high-speed data processing
US5321705A (en) * 1990-11-21 1994-06-14 Motorola, Inc. Error detection system
US5203003A (en) 1991-03-28 1993-04-13 Echelon Corporation Computer architecture for conserving power by using shared resources and method for suspending processor execution in pipeline
US5313625A (en) 1991-07-30 1994-05-17 Honeywell Inc. Fault recoverable computer system
US5276690A (en) * 1992-01-30 1994-01-04 Intel Corporation Apparatus utilizing dual compare logic for self checking of functional redundancy check (FRC) logic
US5402273A (en) 1992-10-01 1995-03-28 Conner Peripherals, Inc. Circuit for determining window margin for data transitions in a streaming data device
US5408200A (en) 1992-12-18 1995-04-18 Storage Technology Corporation Intelligent phase detector
US5376894A (en) 1992-12-31 1994-12-27 Pacific Communication Sciences, Inc. Phase estimation and synchronization using a PSK demodulator
JPH06216655A (ja) * 1993-01-13 1994-08-05 Nec Corp 復調回路
US5400370A (en) 1993-02-24 1995-03-21 Advanced Micro Devices Inc. All digital high speed algorithmic data recovery method and apparatus using locally generated compensated broad band time rulers and data edge position averaging
DE69332333T2 (de) * 1993-10-12 2003-05-15 Alcatel, Paris Synchronisierungsschaltung
EP0653708B1 (en) * 1993-10-15 2000-08-16 Hitachi, Ltd. Logic circuit having error detection function, redundant resource management method, and fault tolerant system using it
US5504859A (en) * 1993-11-09 1996-04-02 International Business Machines Corporation Data processor with enhanced error recovery
US5553232A (en) 1994-06-13 1996-09-03 Bull Hn Informations Systems Inc. Automated safestore stack generation and move in a fault tolerant central processor
JPH0863365A (ja) * 1994-08-23 1996-03-08 Fujitsu Ltd データ処理装置
US5463351A (en) 1994-09-29 1995-10-31 Motorola, Inc. Nested digital phase lock loop
US5734585A (en) 1994-11-07 1998-03-31 Norand Corporation Method and apparatus for sequencing power delivery in mixed supply computer systems
US5615263A (en) * 1995-01-06 1997-03-25 Vlsi Technology, Inc. Dual purpose security architecture with protected internal operating system
US5737369A (en) * 1996-02-28 1998-04-07 Motorola, Inc. Apparatus and method for recovering data in the presence of error transients
US5870446A (en) * 1996-03-11 1999-02-09 Adtran, Inc. Mechanism for automatically adjusting the phase of a transmission strobe clock signal to correct for misalignment of transmission clock and data signals
JP3669796B2 (ja) * 1996-12-03 2005-07-13 富士通株式会社 ディジタルpll回路
FR2759796B1 (fr) * 1997-02-19 2001-12-07 Bull Sa Dispositif et procede de detection d'erreurs sur un circuit integre comportant un port parallele serie
US6114880A (en) * 1997-03-14 2000-09-05 Philips Semiconductor Vlsi, Inc. Dynamic over frequency detection and protection circuitry
JP3494849B2 (ja) 1997-05-29 2004-02-09 富士通株式会社 半導体記憶装置のデータ読み出し方法、半導体記憶装置及び半導体記憶装置の制御装置
CN1202530C (zh) 1998-04-01 2005-05-18 三菱电机株式会社 在低电源电压下高速动作的静态型半导体存储装置
US6222660B1 (en) * 1998-06-09 2001-04-24 Tektronix, Inc. Adaptive power supply for avalanche photodiode
US6247151B1 (en) 1998-06-30 2001-06-12 Intel Corporation Method and apparatus for verifying that data stored in a memory has not been corrupted
US6167526A (en) 1998-12-29 2000-12-26 Adaptec, Inc. Method and apparatus for synchronizing a decoder circuit with a phase-encoded data signal in a data storage device
US6977910B1 (en) * 1998-12-31 2005-12-20 Texas Instruments Incorporated Power control with space time transmit diversity
JP2000228094A (ja) 1999-02-04 2000-08-15 Toshiba Corp 不揮発性半導体記憶装置
FR2790887B1 (fr) * 1999-03-09 2003-01-03 Univ Joseph Fourier Circuit logique protege contre des perturbations transitoires
US6523201B1 (en) * 1999-05-04 2003-02-25 Eliza A. De Michele Sleep support system
JP3975245B2 (ja) 1999-12-16 2007-09-12 株式会社ルネサステクノロジ 記録再生装置および半導体メモリ
US6834367B2 (en) * 1999-12-22 2004-12-21 International Business Machines Corporation Built-in self test system and method for high speed clock and data recovery circuit
AU2278601A (en) 1999-12-23 2001-07-03 General Instrument Corporation Dual-mode processor
JP2001255356A (ja) * 2000-03-08 2001-09-21 Matsushita Electric Ind Co Ltd 半導体集積回路のテストパターン生成方法及びテスト方法
JP3450814B2 (ja) 2000-09-26 2003-09-29 松下電器産業株式会社 情報処理装置
FR2815197B1 (fr) * 2000-10-06 2003-01-03 St Microelectronics Sa Circuit asynchrone pour la detection et la correction de l'erreur induite et procede de mise en oeuvre
US6958627B2 (en) 2000-10-23 2005-10-25 Trustees Of Columbia University In The City Of New York Asynchronous pipeline with latch controllers
US6693985B2 (en) * 2000-10-27 2004-02-17 Silicon Image Clock and data recovery method and apparatus
GB0026614D0 (en) * 2000-10-31 2000-12-13 Lsi Logic Europ Ltd A method and apparatus for estimation of error in data recovery schemes
US6772388B2 (en) * 2000-12-06 2004-08-03 Motorola, Inc Apparatus and method for providing optimal adaptive forward error correction in data communications
JP4526194B2 (ja) * 2001-01-11 2010-08-18 ルネサスエレクトロニクス株式会社 オーバーサンプリングクロックリカバリ方法及び回路
US7116744B2 (en) * 2001-03-29 2006-10-03 Fujitsu Limited Clock recovery circuit and receiver circuit for improving the error rate of signal reproduction
JP4054550B2 (ja) * 2001-06-29 2008-02-27 株式会社エヌ・ティ・ティ・ドコモ 送信電力制御方法及び装置
US6952123B2 (en) * 2002-03-22 2005-10-04 Rambus Inc. System with dual rail regulated locked loop
US6741110B2 (en) * 2002-05-28 2004-05-25 Lsi Logic Corporation Method and/or circuit for generating precision programmable multiple phase angle clocks
US7142623B2 (en) * 2002-05-31 2006-11-28 International Business Machines Corporation On-chip system and method for measuring jitter tolerance of a clock and data recovery circuit
US7085993B2 (en) * 2002-07-29 2006-08-01 International Business Machine Corporation System and method for correcting timing signals in integrated circuits
US20040199786A1 (en) * 2002-12-02 2004-10-07 Walmsley Simon Robert Randomisation of the location of secret information on each of a series of integrated circuits
US7278080B2 (en) 2003-03-20 2007-10-02 Arm Limited Error detection and recovery within processing stages of an integrated circuit

Also Published As

Publication number Publication date
US7320091B2 (en) 2008-01-15
DE602004001869T2 (de) 2007-05-03
RU2005129270A (ru) 2006-05-27
EP1604281B1 (en) 2006-08-09
JP2006520954A (ja) 2006-09-14
WO2004084070A1 (en) 2004-09-30
US20050022094A1 (en) 2005-01-27
KR100981999B1 (ko) 2010-09-13
EP1604281A1 (en) 2005-12-14
US7337356B2 (en) 2008-02-26
KR20050117559A (ko) 2005-12-14
DE602004001869D1 (de) 2006-09-21
US20050246613A1 (en) 2005-11-03

Similar Documents

Publication Publication Date Title
JP4317212B2 (ja) 集積回路の処理段における系統的及び確率的誤り検出及び復旧
US7162661B2 (en) Systematic and random error detection and recovery within processing stages of an integrated circuit
US9448875B2 (en) Error recovery within integrated circuit
US7260001B2 (en) Memory system having fast and slow data reading mechanisms
US7072229B2 (en) Memory system having fast and slow data reading mechanisms
JP4335253B2 (ja) 集積回路内におけるデータ保持ラッチ提供

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090123

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090224

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090330

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: 20090421

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: 20090521

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4317212

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120529

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130529

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

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

Free format text: PAYMENT UNTIL: 20130529

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term