JP2006520955A - 集積回路内におけるデータ保持ラッチ提供 - Google Patents

集積回路内におけるデータ保持ラッチ提供 Download PDF

Info

Publication number
JP2006520955A
JP2006520955A JP2006505977A JP2006505977A JP2006520955A JP 2006520955 A JP2006520955 A JP 2006520955A JP 2006505977 A JP2006505977 A JP 2006505977A JP 2006505977 A JP2006505977 A JP 2006505977A JP 2006520955 A JP2006520955 A JP 2006520955A
Authority
JP
Japan
Prior art keywords
delay
processing
latch
delayed
value
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.)
Granted
Application number
JP2006505977A
Other languages
English (en)
Other versions
JP4335253B2 (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 JP2006520955A publication Critical patent/JP2006520955A/ja
Application granted granted Critical
Publication of JP4335253B2 publication Critical patent/JP4335253B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/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
    • 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
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3237Power saving characterised by the action undertaken by disabling clock generation or distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2281Timing of a read operation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Logic Circuits (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Advance Control (AREA)
  • Pulse Circuits (AREA)
  • Power Sources (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

集積回路が提供され、処理段階の少なくとも1つが、処理論理出力信号を生成するために、少なくとも1つの処理段階入力値に対して処理動作を実施するように動作可能である処理論理を有する複数の処理段階と、前記集積回路が前記処理動作を実施する動作モードと、前記集積回路が信号値を保持するが、前記処理動作を実施しない待機モードとの間で切り替えるために、前記集積回路を制御するように動作可能である低電力モード制御装置とを備え、前記処理段階の前記少なくとも1つが、非遅延捕獲時間において前記処理論理出力信号の非遅延値を捕獲するように動作可能である非遅延ラッチと、遅延捕獲時間において前記処理論理出力信号の遅延値を捕獲するように前記動作モード中に動作可能である遅延ラッチであって、前記遅延捕獲時間が、前記非遅延捕獲時間より後であり、前記非遅延値が、前記遅延捕獲時間より前に、処理段階入力値として後続処理段階に渡され、前記非遅延値と前記遅延値との相違が、前記処理動作が前記非遅延捕獲時間において完了していないことを示す、遅延ラッチとを有し、前記非遅延ラッチがパワーダウンされ、かつ前記非遅延値を失う間、前記遅延ラッチが、前記遅延値を保持するように前記待機モード中に動作可能であり、前記遅延ラッチが、より低い静止電力消費を有するように形成される。

Description

本発明は、データ処理システムの分野に関する。より具体的には、本発明は、集積回路が処理動作を実施しない待機モードにおいて集積回路の状態を保持するために使用されるデータ保持ラッチを有する集積回路の分野に関する。
動作の低電力待機モードにおいて状態データを保持するために、集積回路内においてデータ保持ラッチ(バルーンラッチと呼ばれることがある)を提供することが既知である。これらのデータ保持ラッチは、動作の低電力待機モードタイプによく適した電気特性を有するように形成することができ、例えば、データ保持ラッチは、低い漏れ電流損失をもたらす高閾値電圧を有することができる。そのような低電力特性は、通常、データ処理中に高速で切り替えなければならない動作回路において使用されるのに適していない。しかし、データ保持ラッチは、高速で動作する必要がなく、したがって、低電力消費を考慮して工作することができる。待機モードに入るとき、状態データは、通常、動作ラッチからデータ保持ラッチに移送され、次いで、動作ラッチは、パワーダウンされる。待機モードを出る際に、データ保持ラッチに保持されている記憶データ値は、データ保持ラッチから動作ラッチに強制的に戻され、処理動作が再開される。これにより、データを損失せずに、迅速に待機モードに入り、かつ待機モードから出ることを提供されることが有利である。
このようにしてデータ保持ラッチを使用することに関連する問題は、データを損失せずに処理動作を停止および再開することができる十分な状態を保持するために、多数のデータ保持ラッチが集積回路上において提供されることが通常必要であることである。そのような多数のデータ保持ラッチによって消費される回路領域は、不利なオーバーヘッドである。
速度および/またはエネルギー消費の観点において、より良好な性能を達成するために、集積回路内の動作ラッチは、動作ラッチを同じ信号値であるが、わずかに後の時間において捕獲するように作用する遅延ラッチと関連付けられるべきである。次いで、2つの捕獲値を比較して、遅延捕獲値が以前の捕獲値と異なる場合、補正行為が行われることが可能である。そのような構成により、回路は、速度および/または電圧などの限定レベルにより接近して動作されることが可能になる。そのような構成は、エラーからの回復に関連するペナルティは、集積回路の動作限界により接近して実行される際に達成される利点によって凌駕されるものを超えるということを認識して、有限エラー率が維持されるように、通常、動作パラメータを制御する。
本発明の一態様の観点から、
複数の処理状態であって、前記処理状態の少なくとも1つが、処理論理出力信号を生成するために、少なくとも1つの処理状態入力値に対して処理動作を実施するように動作可能な処理論理を有する、複数の処理状態と、
前記集積回路が前記処理動作を実施する動作モードと、前記集積回路が、信号値を保持するが、前記処理動作を実施しない待機モードとの間において切り替えるために、前記集積回路を制御するように動作可能である低電力モード制御装置とを備える集積回路が提供され、
前記処理状態の前記少なくとも1つが、
非遅延捕獲時間において前記処理論理出力信号の非遅延値を捕獲するように動作可能である非遅延ラッチと、
遅延捕獲時間において前記処理論理出力信号の遅延値を捕獲するように前記動作モード中に動作可能である遅延ラッチであって、前記遅延捕獲時間が、前記非遅延捕獲時間より後であり、前記非遅延値が、前記遅延捕獲時間より前に処理状態入力値として後続処理状態に渡され、前記非遅延値と前記遅延値との相違が、前記非遅延捕獲時間において前記処理動作が完了していないことを示す、遅延ラッチとを有し、
前記遅延ラッチが、前記非遅延ラッチがパワーダウンされ、かつ前記非遅延値を損失しやすい間、前記遅延値を保持するように前記待機モード中に動作可能であり、
前記遅延ラッチが、より低い静止電力消費を有するように形成される。
本発明は、上述された技術により提供される遅延ラッチが、待機モードにおいてデータ保持ラッチとして有利に再使用されることが可能であることを認識する。遅延ラッチは、非遅延ラッチと同程度に動作が迅速である必要はないが、その理由は、遅延ラッチの機能は、より後の時間で信号値を捕獲することであり、したがって、より少ない速度制約で動作することができるからである。したがって、遅延ラッチは、望ましいより低い電力消費特性のデータ保持ラッチを有し、かつ遅延ラッチとしての役割を依然として果たすように形成されることが可能である。上記の技術によるデータ保持ラッチと遅延ラッチの提供の間には、驚くべき相乗効果があり、これにより、ラッチの2重使用によってゲートカウント/回路領域を有利に低減することが可能になり、一方、そのようなラッチがどちらかの役割を実施する能力について妥協する必要が大きく回避される。
遅延ラッチは、より低い電力消費を有するように形成され、これは、回路の動作速度全体を損なわずに達成することができることが理解されるであろうが、多くの実施形態において、遅延ラッチの動作速度の低減は、より低い電力消費を促進するために、実施されることが好ましい妥協である。
好ましい実施形態において待機モードに続いて処理を再開するとき、遅延ラッチ内に記憶されている遅延値は、処理段階入力値として後続の処理段階に渡される。いくつかの実施形態では、遅延値は、処理が再開されるとき、非遅延ラッチにも供給される。
欠陥許容タイプの動作を提供する非遅延ラッチおよび遅延ラッチの行為は、非遅延値と遅延値とを比較するように動作可能であるコンパレータ、および捕獲値が同じではないことを比較が示す場合、非遅延値の使用を抑制するように動作可能であるエラー修復論理の行為によって提供されることが好都合である。
遅延値は、処理状態出力において非遅延値の代用として使用されることが好ましい。これは、エラーが生じるときでさえ、処理動作を経た順方向進行を保証するように作用する。
システムは、非遅延値の準安定性を検出して、準安定であると判明する場合、非遅延値の使用を抑制するためにエラー修復論理をトリガするように動作可能である準安定性検出器をさらに含むことが有利である。
遅延値は、コンパレータが非遅延値においてエラーを検出するとき、非遅延値の代わりに非遅延ラッチに強制されることが随意選択で可能である。この機構は、処理動作を再開する前に、待機モード中に遅延ラッチ内に保持されている値を非遅延ラッチに再び戻すために使用されることも可能である。
遅延ラッチおよび非遅延ラッチは、遅延時間を提供するために、制御された位相差を有するそれぞれのクロック信号によって駆動されることが好ましい。
処理段階は、同期パイプライン内のそれぞれのパイプライン段階とすることが可能であり、本技術は、そのような動作によく適していることが理解されるであろう。また、処理段階は、処理動作自体を実施しないことが可能であり、処理状態が、信号値が沿って進行しなければならないパイプラインバスのラッチ間における簡単な接続/バス接続に対応することが可能であることも理解されるであろう。さらに、ラッチという用語は、特定のタイミングおよびトリガの必要性に関係なく、データ値を記憶する任意の回路要素を包含するように、広範に解釈されるべきであることが理解されるであろう。
遅延ラッチとそのパイプライン段階との間の相互作用を簡略化するために、そのパイプライン段階の処理動作にかかる最短処理時間は、遅延値が、非遅延値をもたらしたものとは異なる入力値に対して実施される処理動作によって影響されないように、遅延捕獲時間を非遅延捕獲時間から分離する時間より長いことが好ましい。
適切な遅延を達成するために、処理論理は、処理段階内の最短処理時間を適切に超えることを保証するように、1つまたは複数の遅延要素を含むことが望ましい可能性がある。
本技術は、様々な異なる状況において使用することができるが、データプロセッサの一部として使用されるのに特によく適している。
非遅延ラッチおよび遅延ラッチによって対処されるエラー率は、有限非ゼロレベルに対応するように制御されることが望ましく、それにより、エラーからの回復に関連するオーバーヘッドと、極限界により接近して動作することができることによる性能利得との間に、均衡が成立する。エラー率は、エラーカウント回路で監視されることが可能であることが望ましく、エラーカウント回路は、回路動作の制御、およびエラー率に影響を与えるパラメータの制御に使用されるソフトウェアによって読み取られることが可能である。
代替の好ましい実施形態は、集積回路のパラメータを制御するためにエラーカウント回路に依拠するのではなく、処理動作の進行において実施されるある量の有用な作業、およびエラー回復動作を実施するために使用されるある量の作業を含めて、作業量を監視するように動作可能である性能監視モジュールを備える。集積回路のパラメータは、これらの作業量に応じて制御される。好ましい構成では、集積回路のパラメータは、動作電圧、動作周波数、集積回路本体バイアス電圧、および温度の少なくとも1つを含む。他の態様の観点から、本発明は、複数の処理段階を有する集積回路を動作する方法を提供する。前記処理段階の少なくとも1つは、処理論理出力信号を生成するために、少なくとも1つの処理段階入力値に関する処理動作を実施するように動作可能である処理論理を有する。前記方法は、
前記集積回路が前記処理動作を実施する動作モードと、前記集積回路が信号値を保持するが、前記処理動作を実施しない待機モードとの間において切り替えるように、前記集積回路を制御するステップと、
前記処理段階の前記少なくとも1つ内において、
非遅延捕獲時間において前記処理論理出力信号の非遅延値を非遅延ラッチにおいて捕獲し、前記動作モード中、遅延捕獲時間において前記処理論理出力信号の遅延値を遅延ラッチにおいて捕獲し、前記遅延捕獲時間が、前記非遅延捕獲時間より後であり、前記非遅延値が、前記遅延捕獲時間より前に、処理段階入力値として後続の処理段階に渡され、前記非遅延値と前記遅延値との差が、前記処理動作が前記非遅延捕獲時間において完了していないことを示すステップと、
前記待機モード中、前記非遅延ラッチがパワーダウンされ、かつ前記非遅延値を損失しやすい間、前記遅延値を前記遅延ラッチ内に保持するステップと、
前記遅延ラッチが、前記非遅延ラッチより低い電力消費を有するように形成されるステップとを含む。
本発明の実施形態が、添付の図面を参照して、例示としてのみ、ここで記述される。
図1は、ARMリミテッド(ARM Limited)[英国ケンブリッジ在]によって生産されるARMプロセッサコアなど、プロセッサコア内における同期パイプラインの一部とすることが可能である集積回路の一部を示す。同期パイプラインは、複数の同様の処理段階で形成される。第1段階は、処理論理2を備え、これに、コンパレータ6および遅延ラッチ8と共に、フリップフロップの形態の非遅延ラッチ4が続く。本明細書において使用されるラッチという用語は、トリガ、クロック、および他の要件に関係なく、信号値を記憶するように動作可能である任意の回路要素を包含する。その後の処理段階は、同様に形成される。非遅延クロック信号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のバブルおよびフラッシュラッチを参照されたい)。他の代替は、処理パイプライン全体がリセットされることが可能であり、遅延ラッチ値が、各段階の非遅延ラッチ内に強制され、処理が再開される。試行された再計算ではなく、誤り値の代わりに遅延ラッチ値を再使用することにより、エラーが生じた場合でも、順方向進行が、処理動作にわたって行われることが保証される。
処理段階内の処理論理によってかかる処理時間と、非遅延捕獲時間と遅延捕獲時間の間の遅延との関係に関して、制約が存在する。具体的には、任意の処理段階の最短処理時間は、捕獲された遅延値が、短い遅延処理段階から出力されている新データによって汚染されないことを保証するために、遅延より短くあるべきではない。短い遅延処理段階がこの最短処理時間より短くならないことを保証するために、短い遅延処理段階に余分な遅延要素を埋め込むことが必要である可能性がある。他の極限において、遅延値ラッチにおいて捕獲される遅延値が、安定で適切であることが保証されるように、任意の動作パラメータの任意の動作点において生じることがある処理段階内における処理論理の最大処理遅延が、通常の非遅延動作クロック期間と遅延値との合計より大きくないことが保証されることが必要である。
システムが、電力消費および性能を調節するように制御されることが可能であるいくつかの代替方式が存在する。一構成によれば、エラーカウンタ回路(図示せず)が、コンパレータ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を示す。この例では、メモリセルの単一行が示されているが、当業者には明らかであるように、そのようなメモリセルアレイは、通常、数千のメモリセルを含む大規模な2次元アレイである。通常のメモリ動作によれば、デコーダ104が、アクセスされるメモリアドレスを受け取り、ワード線106の1つを活動化するためにこのメモリアドレスを復号するように作用する。ワード線は、その線のメモリセル102をそれぞれのビット線対108に結合するように作用する。該当するメモリセル102内に記憶されているビット値に応じて、これは、ワード線に現在結合されているビット線108において電気的変化(例えば、電圧および/または電流の変化)を誘起し、変化は、感知増幅器110によって感知される。感知増幅器110の出力は、非遅延ラッチ112内において第1時間に記憶され、その後、遅延ラッチ114内において遅延時間に記憶される。非遅延ラッチ112内に記憶されている非遅延値は、マルチプレクサ116を介して他の処理回路118に直接渡され、その後、遅延値は、遅延ラッチ114内に記憶される。遅延値が遅延ラッチ114内において捕獲されるとき、コンパレータ120が、非遅延値と遅延値とを比較するように作用する。これらが等しくない場合、遅延値は、該当する特定のビットについてメモリ100からの出力値であるように、マルチプレクサ116によって切り替えられる。抑制信号も、現在は置き換えられている誤り非遅延値に基づいて、他の処理回路118による処理を抑制するために、コンパレータ120から他の処理回路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"の出力が利用可能となり、コンパレータ120が、これが迅速感知増幅器110'の出力と等しくないことを検出するとき、出力値を緩慢感知増幅器110"によって生成される値に切り替えるように、マルチプレクサ116'を制御する。コンパレータ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は、信号値がサンプリングされ、遅延ラッチ146が対応する非遅延ラッチ142によってラッチされたときより後の時間において、バス上において信号値をサンプリングするように作用する。したがって、どんな理由であっても(例えば、過度に低い動作電圧が使用されている、クロック速度が過度に高い、隣接データ値からの結合効果など)、バスに沿って渡されているデータ値の遅延の結果、非遅延ラッチ142および遅延ラッチ146内に記憶されている値間に差が生じる可能性がある。パイプラインバス140上の最終段階は、非遅延値と遅延値とを比較するコンパレータ147を含むように示されている。これらが等しくない場合、遅延値は、非遅延値と置き換わるように使用され、非遅延値に基づく処理は、訂正を実施することができるように(バスクロックサイクルが伸張されることが可能である)抑制される。これらのコンパレータおよび多重化回路要素は、パイプラインバス140に沿ってラッチ段階のそれぞれにおいて提供されるが、これらは、明瞭化のために図8から省略されていることが理解されるであろう。
DSP回路144は、関連する訂正可能性で非遅延および遅延ラッチ機構をそれ自体は支持しないので、DSP回路144に供給されるデータ値は、あらゆる必要な訂正の影響を受けていることが重要である。この理由で、追加のバッファリングラッチ段階148が、パイプラインバス140の端部において提供され、それにより、データ値がDSP回路144によって作用される前に、そのラッチおよび添付DSP回路144に供給されているデータ値に必要とされるあらゆる訂正を実施することができる。バッファリングラッチ148は、バッファリングラッチ148からDSP回路144に渡されているデータ値においてエラーを生じさせる不十分な利用可能なプログラム時間などの問題がないように、DPS回路144に十分に近接して配置することができる。
それぞれの非遅延ラッチ142間のバス接続は、変更されないデータを単に渡す処理論理の形態であるとみなすことができることが理解されるであろう。このようにして、図8のパイプラインバスの実施形態と以前に議論された実施形態(例えば図1)との同等性が、当業者には明らかになるであろう。
図9は、図8の動作を示す流れ図である。段階150において、非遅延信号値が、バス線から捕獲される。ステップ152において、非遅延値は、次のバスパイプライン段階に渡される。ステップ154において、対応する遅延ラッチ146は、遅延バス信号を捕獲する。ステップ156において、コンパレータ147は、遅延値を非遅延値と比較する。これらが等しい場合、通常の処理が、ステップ158において続行される。2つの比較値が等しくない場合、ステップ160は、図8に示されるマルチプレクサを使用して、バスクロックを遅延させ、非遅延値を遅延値と置き換えるように作用する。
図10は、本技術を使用する他の例示的な実施形態を示す。この例示的な実施形態では、プロセッサコア内の命令レジスタからの命令が、命令ラッチ162内においてラッチされる。この命令ラッチ162から、命令は、デコーダ164に渡される。デコーダは、非遅延制御信号ラッチ166に記憶されるプロセッサ制御信号の適切な収集、および命令ラッチ162内にラッチされている命令に従ってプロセッサコアによって実施される処理を制御するためのその後の使用を生成するように作用する。デコーダ164から出力される制御信号も、それらが非遅延制御信号ラッチ166内においてラッチされたより後の時間において、遅延制御信号ラッチ168内にラおいてッチされる。次いで、遅延制御信号値および非遅延制御信号値を比較することができる。これらが等しくない場合、これは、訂正行為が必要であることを示す。抑制動作が、そのような相違の検出によってトリガされ、不適切なラッチ制御信号値に基づいてその後の処理を停止するように作用する。いくつかの環境では、有効な回復選択肢のみが、プロセッサを全体としてリセットするとすることが可能である。これは、許容可能であるとすることが可能である。他の状況では、制御信号におけるエラーは、より劇的でない抑制および回復機構が可能であるようにすることが可能である。例として、例えばいくつかの処理動作が複数サイクル命令の実行全体の後半になるまで開始されない複数サイクルプログラム命令の場合、特定の誤り制御信号は、依然として作用されていないことが可能である。この一例が、乗算累積動作であり、最終累積が行われる前に、乗算部分がいくつかのクロックサイクルを必要とする。累積に関連する制御信号にエラーがあり、実際には累積ではなく、単に純粋な乗算が必要である場合、アダーが累積動作を実施するように要求する前に、アキュムレータに加えられている制御信号を訂正することによって、累積を抑制することが可能である。
図11は、図10の回路の動作の一例を示す。ステップ170において、乗算累積制御信号が、デコーダ164(マイクロコードROM)から読み取られる。ステップ172において、この乗算累積制御信号は、非遅延制御信号ラッチ166内においてラッチされ、プロセッサコア内の様々な処理要素に出力される。ステップ174において、乗算オペランドは、レジスタファイルから読み取られ、乗算演算が開始される。ステップ176において、命令デコーダ164から出力される制御信号は、遅延制御信号ラッチ168によって再サンプリングされる。ステップ178において、非遅延制御信号と遅延制御信号とは比較される。これらが等しい場合、通常の処理が、ステップ180において続行される。しかし、これらが等しくない場合、処理は、ステップ182に進み、乗算演算がすでに完了しているかに関して判定が行われる。乗算演算が完了している場合、誤り累積動作が開始され、最適回復選択肢が、ステップ184においてシステムを全体としてリセットする。しかし、乗算演算が依然として進行中の場合、ステップ186は、命令ラッチ162内に記憶されているプログラム命令によって当初意図されたように、アダーをリセットし、累積動作を消去するために使用することができ、望ましい乗算演算出力結果が、ステップ188において生成される。
図12は、図1に示される回路の修正を示す。この実施形態では、遅延ラッチ190は、待機/スリープ動作モード(低電力消費モード)中に使用されるデータ保持(バルーン)ラッチの追加の機能を果たす。通常処理動作中の遅延ラッチ190の機能は、以前に記述された通りである。しかし、スリープ制御装置192が、低電力消費動作モードへのエントリを開始するように作用するとき、遅延ラッチ190が、それぞれの非遅延ラッチに対応するデータ値をすべて記憶するように、非遅延クロックおよび遅延クロックを停止する。この時点において、非遅延ラッチおよび関連する処理回路への電圧供給は、非遅延ラッチおよび関連する処理回路がパワーダウンされて、その状態を失うように、除去される。しかし、非遅延ラッチ190に供給される電圧は、ラッチ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、コンパレータ1024を備える。コンパレータ1024は、遅延ラッチの出力と非遅延ラッチとの出力を比較して、制御信号をマルチプレクサ1020に出力し、マルチプレクサ1020は、遅延信号値または非遅延信号値がその後の処理段階またはチャネル1016に入力として供給されるかを判定する。チャネル/論理1014および非遅延ラッチ1016は、非遅延クロック信号によって駆動され、一方、遅延ラッチ1018は、非遅延クロック信号の位相シフトバージョンである遅延クロック信号によって駆動される。
コンパレータ1024が、非遅延信号値と遅延信号値との相違を検出する場合、これは、要素1014が処理論理を表す場合、処理動作が非遅延捕獲時間において完了していない、または要素1014がデータチャネルを表す場合、先行パイプライン段階からの信号が、現行段階にまだ到達していないことを示す。そのような相違が実際に検出される事象では、遅延ラッチ1018に記憶されている値は、より信頼性のあるデータであるが、その理由は、処理動作が完了している可能性がより高いとき、または先行段階からのデータがデータチャネルを介して到達した可能性がより高いときより後に捕獲されたからである。遅延ラッチからの結果を次の処理段階1030に供給し、その後の処理段階において非遅延値の使用を抑制することによって、計算の順方向進行を保証することができる。しかし、遅延ラッチ1018に記憶されている遅延信号値の信頼性は、単一事象アプセット(upset)が生じて、遅延値を汚染した事象では、損なわれることがある。単一事象アプセットは、実際にはパルスであり、したがって、非遅延ラッチによっては見逃されるが、遅延ラッチによってはピックアップされる可能性がある。そのような単一事象アプセットの結果、コンパレータは、遅延値と非遅延値との相違を単一事象アプセットの直接結果として検出し、次いで、そのような単一事象アプセットは、汚染遅延値をその後の処理段階に伝播させる。非遅延値を汚染する単一事象アプセットは、問題ではないが、その理由は、誤り非遅延値の使用を抑制し、遅延値をその後の段階に伝播させることになるからである。
図14の構成は、エラー検出モジュール1026、エラー訂正モジュール1028、およびマルチプレクサ1022を準備することによりデータの完全性のクロスチェックを提供することによって、汚染遅延値が計算により進行する可能性を低減する。マルチプレクサ1022は、遅延ラッチからの遅延値を直接コンパレータ1024に供給するように、または代替として、エラー訂正モジュール1028によって出力されたエラー訂正値を供給するように、エラー訂正モジュール1026によって制御される。チャネル/論理ユニット1014の上流において、8ビットのデータペイロードがエラー訂正符号化され、4つの冗長ビットが、12ビット信号を形成するように、データペイロードに追加される。12ビット信号は、チャネル/論理ユニット1014を通過し、その値は、非遅延ラッチ1016および遅延ラッチ1018の両方によって捕獲される。しかし、遅延ラッチ1018から導出される信号の遅延値も、入力としてエラー検出モジュール1026に供給され、エラー検出モジュール1026は、12ビットエラー訂正符号化信号から、遅延値に影響を与えるエラーが生じたかを判定する。代替構成では、信号値をエラー検出モジュール1026に供給するために、他のラッチを提供することができ、エラー検出モジュール1018は、遅延ラッチ1018よりわずかに後の時間において、信号値を捕獲する。エラー検査は、非遅延値の捕獲と遅延値の捕獲との間に生じたあらゆる無作為エラーが検出されることを保証するために、遅延値が捕獲されるのと同じ時間、またはわずかに後に捕獲された値に対して実施されなければならない。
所与のエラー訂正コードが、所定の数のエラーを検出して、所与の数のエラーを訂正することができる。したがって、エラー検出モジュール1026は、エラーが生じたかを検出し、そうである場合、エラーがすべて訂正可能であるように、エラーの数が十分に小さいかを検出する。訂正可能エラーが検出される場合、信号値は、エラー訂正モジュール1028に供給され、そこで、エラーは、エラー訂正コードを使用して訂正され、訂正済み遅延値は、コンパレータ1024に供給される。コンパレータ1024によって、訂正済み遅延値が非遅延値と異なると判定される場合、エラー回復手続きが呼び出され、非遅延値の他の伝播は、その後の処理段階において抑制され、動作は、訂正済み遅延値を代わりに使用して実施される。一方、コンパレータ1024が、訂正済み遅延値が遅延値と同じであると判定する場合、計算の進行には2つの代替可能性がある。第1は、同じであるにもかかわらず、非遅延値がその後の処理段階において抑制され、訂正済み遅延値によって置き換えられるように、エラー回復機構を呼び出すことができる。代替として、非遅延値は、適切であると判定されているので(非遅延値および訂正済み遅延値の同等性によって明らかであるように)、エラー回復機構を抑制することができ(遅延値におけるエラーの検出にもかかわらず)、それにより、非遅延値がその後の処理段階にわたって進行し続けることが可能になる。しかし、訂正不可能なエラーが、エラー検出モジュール1026によって遅延値において検出される場合、訂正済み遅延値の使用を抑制するために、制御信号が供給される。この場合、計算の順方向進行を達成することはできない。適用されるエラー訂正符号化のタイプは、チャネル/処理論理1014の性質により異なる。
処理論理は、値通過または値変更として分類することができる。値通過である処理論理の例は、メモリ、レジスタ、およびマルチプレクサである。値変更処理論理要素の例は、アダー、乗算器、およびシフタである。値変更処理論理要素のエラー検出および訂正は、値通過処理論理要素についてより複雑であるが、その理由は、エラーが生じないときでも、論理段階1014によって出力される値は、入力12ビット信号1013とは異なる可能性が高いからである。
図15は、エラーが生じない場合、データ値を変更せずに入力から出力に単に渡すチャネルを通過するデータのエラー訂正を概略的に示す。そのような値通過処理論理の場合、エラー訂正および検出についてハミングコードなどの線形ブロックコードを使用することが好都合である。線形ブロックコードは、通常、当初のデータペイロードビットが、コードワードにおいて変更されないままであるが、いくつかのパリティビット(または冗長ビット)が追加されるコードワードを形成することを含む。ハミングコードは、簡単な単一ビットエラー訂正コードであり、(N,K)について、Nは、コードワードのビットの総数、Kは、符号化されるデータビットの数である。エラーの存在および位置は、出力コードワードに対していくつかのパリティチェックを実施することによって検出される。ハミングコードは、N-Kパリティビットを備え、そのそれぞれは、データにおけるビットの異なる組合せから計算される。ハミングコードは、1つエラーを訂正する、または2つのエラーを検出することができる。パリティビット(または必要とされる冗長ビット)の数は、pをパリティビット数およびN=K+pとして、ハミング規則K+p+1≦2pによって与えられる。
図15に示されるように、チャネルへの入力は、8データビットおよび4つのパリティまたは冗長ビットを備える12ビットコードワードである。パリティチェックが、チャネル1114からの出力に対して、エラー検出/訂正モジュール1116によって実施される。エラー検出/訂正モジュール1116によってコードワードを出力する前に、12ビットコードワードの任意の単一ビットエラーが、検出および訂正される。検出エラーが訂正不可能である場合、エラー検出/訂正モジュール1116は、これがその場合であることを示す信号を出力する。ハミングコードなどの簡単なコードが、値通過処理論理と共に使用されるように図11に関して記述されたが、たたみ込みコードなどの他のエラー訂正コードを代替として使用することができることが理解されるであろう。
図16は、エラー訂正がアダー、乗算器、またはシフタなどの値変更論理要素について実施される様子を概略的に示す。値変更処理論理の場合、ANコード、剰余コード、反転剰余コード、または剰余数コードなどの算術コードを使用して、処理論理の出力において無作為エラーを検出および訂正することが可能である。
算術コードは、算術オペレータを検査するために使用することができる。
Figure 2006520955
が、検査されるオペレータを表す場合、以下の関係が満足されなければならない。
Figure 2006520955
ANコードは、データワードに一定ファクタを乗算することを含む算術コードである。例えば、3Nコードを使用して、以下の比較を実施することによって加算演算の有効性を検査することができる。
3N(X)+3N(Y)?=3N(X+Y)
3X+3Y?=3(X+Y)
算術コードのクラスの他の例が、剰余コードであり、剰余(定数による除算の残り)が、検査ビットとしてデータビットに加算される。例えば、3Rコードは、モジュロ(MOD)3演算を含み、以下の検査が適用される。
X MOD3+Y MOD3?=(X+Y)MOD3
X=14およびY=7の数値例を考慮する。
14MOD3=2(コードワード111010、最後の2ビットが剰余である)
7MOD3=1(コードワード11101)
X+Y=21(10101)
および21MOD3=0
剰余の合計MOD3=(2+1)MOD3=0=(X+Y)の剰余
図16は、図10のチャネル/論理ユニット1014における加算演算を検査するための7R算術コードの使用を概略的に示す。検査される加算演算は、X+Yであり、XおよびYは、8ビットデータワードである。各データワードは、値X MOD7およびY MOD7をそれぞれ有する4つの検査ビットを有する。X MOD7およびY MOD7は、第1アダー1210のオペランドとして供給され、このアダーの出力は、値(X MOD7+Y MOD7)MOD7を決定して、結果を第1入力としてコンパレータ1250に供給する論理に供給される。第2アダー1230が、加算(X+Y)を実施して、論理ユニット1240に結果を供給し、論理ユニット1240は、(X+Y)MOD7を計算して、その結果を第2入力としてコンパレータ1250に供給する。コンパレータが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を含み、遅延ラッチ2002は、非遅延ラッチによって捕獲されている信号値におけるエラーの出現を検出するために使用することができる。これらのエラーの出現は、クロック位相制御回路2004に再び供給され、クロック位相制御回路204は、主要経路内のそれぞれのラッチ、すなわち非遅延ラッチに供給されているクロック信号の相対位相を調節するように作用する。このようにして、調節が行われ、それにより、時間が、1つの処理段階から有効に借用されて、他の処理段階に割り付けられる。これは、基本クロック信号が沿って伝播する遅延線内の選択可能な位置から、それぞれの非遅延ラッチによって使用されているクロック信号をタッピングすることによって達成されることが可能である。
示される例では、ラッチLAとラッチLBとの間の処理論理は、その後の段階の処理論理より動作が緩慢である。したがって、非遅延ラッチLBに供給されているクロック信号は、そのクロック信号の上昇縁を遅延させ(上昇縁ラッチの捕獲を想定する)、それにより、緩慢処理論理に利用可能な時間を延長するように位相シフトすることができる。これは、ラッチLBを除く他の段階要素と同じ基本クロック信号について動作していると想定すれば、これにより、その後の処理段階内の処理論理に利用可能な時間が低減される。
処理段階間のこのタイミング均衡は、遅延ラッチを使用して検出された動作のエラーからのフィードバックを使用して、回路の進行動作中に動的に実施することができる。代替として、均衡は、製造試験段階中または集積回路の「ゴールデンブート」中に、オンオフ動作として実施することができる。図18に示される遅延ラッチは、処理段階間のタイミング均衡のために使用され、その後、例えば図1に関して上記で議論されたように、動作パラメータおよびエラー訂正の制御のために使用することができる。このようにして、遅延ラッチの提供は、相対クロックタイミングを制御するためにもさらに使用される。
図19は、グローバルクロックゲート制御に基づいてエラー回復をパイプライン化する簡単な手法を示す。あらゆる段階がエラーを検出する事象では、全パイプラインは、次のグローバルクロック縁をゲート制御することによって、1サイクルの間、機能停止される。追加のクロック期間により、各段階は、遅延ラッチを入力として使用して、結果を再計算することが可能になる。その結果、任意の以前に進められたエラント(errant)値が、遅延ラッチからの訂正値で置き換えられる。すべての段階が、遅延ラッチ入力で結果を再評価するので、単一サイクルにおいて任意の数のエラーを許容することができ、順方向進行が保証される。すべての段階が各サイクルにおいてエラーを生成する場合、パイプラインは実行を続行するが、通常速度の1/2においてである。
エラントパイプラインの結果は、コンパレータによって確認される前は、アーキテクチャ状態に書き込まれないことが重要である。遅延値の確認は2つの追加のサイクル(すなわち、エラー検出についての1つ、およびパニック検出についての1つ)を必要とするので、最終遅延ラッチ段階とライトバック(WB)段階との間に、2つの非投機(non-speculative)段階が存在しなければならない。我々の設計では、データキャッシュへのメモリアクセスは、非投機的であり、したがって、安定化のためのSTとラベル付けされた唯一の追加の段階が、ライトバック(WB)の前に必要とされる。ST段階は、レジスタバイパスの追加レベルを導入する。記憶命令は、非投機的に実行されなければならないので、パイプラインのWB段階において実施される。
図19は、パイプラインのEX段階において失敗する命令について、パイプライン回復のパイプラインタイミング図を与える。第1失敗段階計算は、第4サイクルにおいてであるが、MEM段階がEX段階から送られたエラントを使用して不適切な結果を計算した後でのみ、行われる。エラーが検出された後、グローバルクロックの機能停止が、第6サイクルにおいて行われ、レーザシャドーラッチの適切なEX結果がMEM段階によって評価されることが可能になる。第7サイクルにおいて、通常のパイプライン動作が再開される。
積極(aggressively)クロック設計では、プロセッサのサイクル時間に著しく影響を与えずに、グローバルクロックゲート制御を実施することは可能ではない可能性がある。その結果、対向流れパイプライン化技術に基づく完全パイプラインエラー回復機構が、実施されてきた。図20に示される手法は、数サイクルにわたるパイプライン回復の延長を代償として、ベースラインパイプライン設計に対して無視可能なタイミング制約を課す。非遅延値エラーが検出されるとき、2つの特定の行為が取られなければならない。第1に、失敗非遅延ラッチに続くエラント段階計算が、無効にされなければならない。この行為は、次およびその後の段階に対してパイプラインスロットが空であることを示すバブル信号を使用して達成される。第2に、フラッシュ列が、失敗段階の段階IDをアサートすることによってトリガされる。後続サイクルにおいて、遅延ラッチデータからの適切な値が、パイプラインに再び注入され、エラント命令が、その適切な入力で続行されることが可能になる。さらに、対向流れパイプラインが存在し、それにより、フラッシュ列は、命令の反対方向において失敗段階のIDの伝播を開始する。活動フラッシュ列によって訪問される各段階において、対応するパイプライン段階および1つの直前段階は、バブルで置き換えられる。(2つの段階は、主要パイプラインの2倍相対速度を相殺するように、無効にされなければならない。)フラッシュIDがパイプラインの開始に到達するとき、フラッシュ制御論理は、エラント命令に続く命令においてパイプラインを再開する。複数段階が同じサイクルにおいてエラーを経験する事象では、すべてが回復を開始するが、ライトバック(WB)に最も近い非遅延エラーのみが完了する。以前の回復は、後の回復によってフラッシュされる。対向流れパイプラインは、順送りパイプラインと同じ長さではないことが可能であり、例えば、対向流れパイプラインのフラッシュ列が2つのパイプライン段階の深さとすることができ、一方、順送りパイプラインが、12段階の深さとすることが可能であることに留意されたい。
図20は、EX段階において失敗する命令について、パイプライン回復のパイプラインタイミング図を示す。先行例と同様に、第1失敗段階計算は、第2命令がパイプラインのEX段階において不適切な結果を計算するとき、第4サイクルにおいて行われる。このエラーは、第5サイクルにおいて検出され、これにより、バブルが、MEM段階から伝播され、フラッシュ列が開始される。EX、ID、およびIF段階の命令は、それぞれ、第6、第7、および第8サイクルにおいてフラッシュされる。最後に、パイプラインは、第9サイクルのエラント命令の後に再開され、その後、通常のパイプライン動作が再開される。
上記の図2の記述から、回路102がエラー信号において準安定性を検出する事象では、パニック信号がアサートされることを思い出されたい。この場合、現行命令(次の命令ではなく)は、再実行されるべきである。そのようなパニック信号がアサートされるとき、すべてのパイプライン状態はフラッシュされ、パイプラインは、最小命令ライトバックの直後に再開される。パニック状況は、順送り進行の保証を複雑にするが、その理由は、状況の検出が遅延されることにより、適切な結果が、遅延ラッチにおいて上書きされることになる可能性があるからである。その結果、パニックの経験後、供給電圧は、既知の安全動作レベルにリセットされ、パイプラインは再開される。再調整された後、エラント命令は、この命令が完了する後まで戻ることが禁止される限り、エラーを有さずに完了されるはずである。
パイプライン回復制御の枢要な用件は、最悪動作条件下においても失敗しないことである(例えば、低電圧、高温、および高度なプロセスのばらつき)。この要件は、最悪の場合の臨界未満電圧においてエラー回復回路のタイミングを確認する保守的な設計手法により満たされる。
図21は、直列走査鎖ラッチとしての遅延ラッチ2100の再使用を概略的に示す。これは、走査可能信号によって制御されるマルチプレクサ2102を提供することによって達成され、走査可能信号により、必要に応じて、直列走査データ値が遅延ラッチに書き込まれる、または遅延ラッチから順次読み取られることが可能になる。さらに、遅延ラッチ値が非遅延ラッチ値に置き換わることを可能にする通常の機構は、直列走査鎖値が動作経路に挿入されることを可能にするために採用される。
本技術が適用される複数の処理段階を示す概略図である。 本技術において使用される回路を概略的に示す回路ブロック図である。 関連するコンパレータおよびエラー回復論理と共に、非遅延ラッチおよび遅延ラッチを共に概略的に示す回路図である。 図1の回路の動作を概略的に示す流れ図である。 図1の回路の動作を概略的に示す流れ図である。 迅速な読取り機構および緩慢な読取り機構を含むメモリ回路を示す概略図である。 図5の回路の一部について代替回路構成を示す図である。 図5のメモリ回路の動作を概略的に示す流れ図である。 非遅延ラッチおよび遅延ラッチをバス段階間に含むパイプラインバスを示す図である。 図8のパイプラインバスの動作を概略的に示す流れ図である。 非遅延ラッチおよび出力、ならびに遅延ラッチおよび出力の両方の影響を受けるマイクロプロセッサを制御する制御信号の生成を概略的に示す図である。 図10の回路の動作の一例を概略的に示す流れ図である。 遅延ラッチが、より低い動作電力中にデータ保持ラッチとして再使用される、非遅延ラッチおよび遅延ラッチを含む処理パイプラインを示す図である。 図12の回路の動作を概略的に示す流れ図である。 エラー訂正および遅延ラッチが適用された複数の処理段階を概略的に示す図である。 エラーが生じない場合、データ値を入力から出力まで変更せずに単に渡すチャネルを通過するデータのエラー訂正を概略的に示す図である。 エラー訂正が、アダー、乗算器、またはシフタなどの値変更論理要素について実施される様子を概略的に示す図である。 図14の回路の動作を概略的に示すフローチャートである。 処理パイプライン内においてクロック信号の相対位相を制御するために、遅延ラッチおよび非遅延ラッチを使用することができる様子を概略的に示す図である。 エラーからの回復において機能停止の使用を概略的に示す図である。 エラーからの回復においてバブル挿入の使用を概略的に示す図である。 遅延ラッチが直列走査鎖ラッチとして再使用される、処理段階間において使用される非遅延ラッチおよび遅延ラッチを示す図である。
符号の説明
2 処理論理
4 非遅延ラッチ
6 コンパレータ
7 準安定性検出器
8 遅延ラッチ
10 非遅延クロック信号
12 遅延クロック信号
14 16 ラッチ
18 XORゲート
20 エラー信号
22 マルチプレクサ
24 準安定性検出回路
100 ORゲート メモリ
102 メモリセル
106 ワード線
108 ビット線対
110 110' 110" 感知増幅器
112 非遅延ラッチ
114 遅延ラッチ
116 116' マルチプレクサ
118 処理回路
120 120' コンパレータ
140 パイプラインバス
142 非遅延ラッチ
144 デジタル信号処理回路
146 遅延ラッチ
147 コンパレータ
148 バッファリングラッチ段階
162 命令ラッチ
164 命令デコーダ
166 非遅延制御信号ラッチ
168 遅延制御信号ラッチ
190 遅延ラッチ
192 スリープ制御装置
1013 12ビット信号
1014 チャネル/論理ユニット
1016 非遅延ラッチ
1018 遅延ラッチ
1020 マルチプレクサ
1022 マルチプレクサ
1024 コンパレータ
1026 エラー検出モジュール
1028 エラー訂正モジュール
1030 処理段階
1114 チャネル
1116 エラー検出/訂正モジュール
2000 パイプライン処理回路
2002 遅延ラッチ
2004 クロック位相制御回路

Claims (48)

  1. 処理段階の少なくとも1つが、処理論理出力信号を生成するために、少なくとも1つの処理状態入力値に対して処理動作を実施するように動作可能である処理論理を有する複数の処理段階と、
    集積回路が前記処理動作を実施する動作モードと、集積回路が信号値を保持するが、前記処理動作を実施しない待機モードとを切り替えるために、集積回路を制御するように動作可能である低電力モード制御装置とを備え、
    前記処理段階の前記少なくとも1つが、
    非遅延捕獲時間において前記処理論理出力信号の非遅延値を捕獲するように動作可能である非遅延ラッチと、
    遅延捕獲時間において前記処理論理出力信号の遅延値を捕獲するように、前記動作モード中に動作可能である遅延ラッチであって、前記遅延捕獲時間が、前記非遅延捕獲時間より後であり、前記非遅延値が、前記遅延捕獲時間の前に、後続処理段階に処理段階入力値として渡され、前記非遅延値と前記遅延値との相違が、前記処理動作が前記非遅延捕獲時間において完了していないことを示す、遅延ラッチとを有し、
    前記非遅延ラッチが、パワーダウンされ、かつ前記非遅延値を失いやすい間、前記遅延ラッチが、前記遅延値を保持するように前記待機モード中に動作可能であり、
    前記遅延ラッチが、より低い静止電力消費を有するように形成されることを特徴とする集積回路。
  2. 前記遅延ラッチが、前記非遅延ラッチより遅い動作速度を有することを特徴とする請求項1に記載の集積回路。
  3. 前記待機モードから前記動作モードに切り替える際に、前記遅延ラッチ内に記憶されている前記遅延値が、前記処理状態入力値として前記後続処理段階に渡されることを特徴とする請求項1または2に記載の集積回路。
  4. 前記遅延値が、前記待機モードから前記動作モードに切り替える際に、前記遅延ラッチへの前記非遅延ラッチにコピーされることを特徴とする請求項3に記載の集積回路。
  5. 前記処理段階の前記最後の少なくとも1つが、
    前記処理論理が前記非遅延捕獲時間において前記処理動作を終了していないことを示す変化を、前記非遅延捕獲時間に続く前記処理論理出力信号において検出するために、前記非遅延値と前記遅延値とを比較するように動作可能なコンパレータと、
    前記コンパレータが前記変化を検出するとき、前記後続処理段階によって前記非遅延値の使用を抑制するエラー回復動作を実施するように動作可能であるエラー修復論理とを有することを特徴とする請求項1から4のうちのいずれか一項に記載の集積回路。
  6. 前記非遅延値の準安定性を検出し、準安定であると判明する場合、前記非遅延値の使用を抑制するために前記エラー修復論理をトリガするように動作可能である準安定性検出器を備えることを特徴とする請求項1から5のうちのいずれか一項に記載の集積回路。
  7. 前記コンパレータが、前記変化を検出し、前記エラー修復論理が、前記処理段階出力信号として、前記非遅延値を前記遅延値と置き換えるように動作可能であることを特徴とする請求項1から6のうちのいずれか一項に記載の集積回路。
  8. 前記後続処理段階への前記遅延値の供給が、処理動作にわたって順送り進行を強制することを特徴とする請求項7に記載の集積回路。
  9. 前記コンパレータが、前記変化を検出するとき、前記エラー修復論理が、前記非遅延値の代わりに、前記遅延値が前記非遅延ラッチに記憶されるように強制するように動作可能であることを特徴とする請求項1から8のうちのいずれか一項に記載の集積回路。
  10. 前記処理段階および前記構造処理段階内の処理動作が、非遅延クロック信号によって駆動されることを特徴とする請求項1から9のうちのいずれか一項に記載の集積回路。
  11. 前記コンパレータが前記変化を検出するとき、前記後続処理段階が、前記非遅延値の入力から回復して、前記遅延値を使用する時間を提供するために、前記エラー回復論理が、前記非遅延クロック信号をゲート制御するように動作可能であることを特徴とする請求項10に記載の集積回路。
  12. 前記非遅延捕獲時間が、前記非遅延クロック信号の所定の位相点から導出され、前記非遅延クロック信号の位相遅延バージョンが、遅延クロック信号として使用され、前記遅延捕獲時間が、前記遅延クロック信号の所定の位相点から導出されることを特徴とする請求項11に記載の集積回路。
  13. 前記複数の処理段階が、同期パイプライン内のそれぞれのパイプライン段階であることを特徴とする請求項1から12のうちのいずれか一項に記載の集積回路。
  14. 前記遅延値が異なる入力値に対して実施される処理動作によって影響を受けないように、前記処理動作にかかる最短処理時間が、前記非遅延捕獲時間から前記遅延捕獲時間を分離する時間より長いことを特徴とする請求項1から13のうちのいずれか一項に記載の集積回路。
  15. 前記処理論理が、前記最短処理時間を超えることを保証するために、1つまたは複数の遅延要素を含むことを特徴とする請求項14に記載の集積回路。
  16. 前記処理論理が前記遅延捕獲時間までに前記処理動作を完了するように、前記処理動作に取られる最長処理時間が、前記非遅延捕獲時間から前記遅延捕獲時間を分離する時間と、非遅延捕獲時間の間の時間との合計より短いことを特徴とする請求項1から15のうちのいずれか一項に記載の集積回路。
  17. 前記処理段階が、データプロセッサの一部であることを特徴とする請求項1から16のうちのいずれか一項に記載の集積回路。
  18. 前記変化に対応するエラーの検出のカウントを記憶するように動作可能であるエラーカウンタ回路を備えることを特徴とする請求項5、請求項1から4および6から17のうちのいずれか一項に記載の集積回路。
  19. 前記カウントが、ソフトウェアによって読み取られることが可能であることを特徴とする請求項18に記載の集積回路。
  20. 前記処理動作の進行において実施されるある量の有用な作業、および前記エラー回復動作を実施するために使用されるある量の作業を含む作業量を監視するように動作可能である性能監視モジュールを備えることを特徴とする請求項1から19のうちのいずれか一項に記載の集積回路。
  21. 1つまたは複数の動作パラメータが、前記作業量に応じて制御されることを特徴とする請求項20に記載の集積回路。
  22. 前記1つまたは複数の動作パラメータが、
    動作電圧と、
    動作周波数と、
    集積回路本体バイアス電圧と、
    温度とのうちの少なくとも1つを含むことを特徴とする請求項21に記載の集積回路。
  23. 前記遅延ラッチが、直列走査鎖内において直列走査鎖ラッチとしても作用することを特徴とする請求項1から22のうちのいずれか一項に記載の集積回路。
  24. 前記遅延ラッチが、直列走査鎖内において直列走査鎖ラッチとしても作用し、前記直列走査鎖ラッチに順次走査される信号値が、前記エラー修復論理を使用する診断動作中に前記非遅延ラッチ内に強制されることを特徴とする請求項1から23のうちのいずれか一項に記載の集積回路。
  25. 複数の処理段階を有する集積回路を動作し、前記処理段階の少なくとも1つが、処理論理出力信号を生成するために、少なくとも1つの処理段階入力値に対して処理動作を実施するように動作可能である処理論理を有する方法であって、
    前記集積回路が前記処理動作を実施する動作モードと、前記集積回路が、信号値を保持するが、前記処理動作を実施しない待機モードとの間において切り替えるように、前記集積回路を制御するステップと、
    前記処理段階の前記少なくとも1つ内において、
    非遅延捕獲時間において前記処理論理出力信号の非遅延値を非遅延ラッチにおいて捕獲し、
    前記動作モード中、遅延捕獲時間において前記処理論理出力信号の遅延値を遅延ラッチにおいて捕獲し、前記遅延捕獲時間が、前記非遅延捕獲時間より後であり、前記非遅延値が、前記遅延捕獲時間の前に後続処理段階に処理段階入力値として渡され、前記非遅延値と前記遅延値との相違が、前記処理動作が前記非遅延捕獲時間において完了していないことを示すステップと、
    前記非遅延ラッチがパワーダウンされ、かつ前記非遅延値の損失を受けやすい間、前記待機モード中、前記遅延ラッチ内において前記遅延値を保持するステップと、
    前記遅延ラッチが、前記非遅延ラッチより低い静止電力消費を有するように形成されるステップとを含むことを特徴とする方法。
  26. 前記非遅延ラッチが、前記非遅延ラッチより遅い動作速度を有することを特徴とする請求項25に記載の方法。
  27. 前記待機モードから前記動作モードに切り替える際に、前記遅延ラッチ内に記憶されている前記遅延値が、前記処理段階入力値として前記後続処理段階に渡されることを特徴とする請求項25または26に記載の方法。
  28. 前記遅延値が、前記待機モードから前記動作モードに切り替える際に、前記非遅延ラッチにコピーされることを特徴とする請求項27に記載の方法。
  29. 前記処理段階の前記最後の少なくとも1つ内において、前記処理論理が前記非遅延捕獲時間において前記処理動作を終了していないことを示す前記非遅延捕獲時間に続く前記処理論理出力信号の変化を検出するために、前記非遅延値と前記遅延値とを比較するステップと、
    前記変化を検出する際に、前記後続処理段階による前記非遅延値の使用を抑制するエラー回復動作を実施するステップとを備えることを特徴とする請求項25から28のうちのいずれか一項に記載の方法。
  30. 前記非遅延値において準安定性を検出するステップと、準安定であると判明する場合、前記非遅延値の使用の抑制をトリガするステップとを備えることを特徴とする請求項25から29のうちのいずれか一項に記載の方法。
  31. 前記変化を検出する際に、前記処理段階出力信号として前記非遅延値を前記遅延値と置き換えることを特徴とする請求項25から30のうちのいずれか一項に記載の方法。
  32. 前記遅延値を前記後続処理段階に供給することが、処理動作にわたって順送り進行を強制することを特徴とする請求項31に記載の方法。
  33. 前記変化を検出する際に、前記遅延値が、前記非遅延値の代わりに前記非遅延ラッチに記憶されることを強制することを特徴とする請求項25から32のうちのいずれか一項に記載の方法。
  34. 前記処理段階および前記後続処理段階内の処理動作が、非遅延クロック信号によって駆動されることを特徴とする請求項25から33のうちのいずれか一項に記載の方法。
  35. 前記変化を検出する際に、前記後続処理段階が、前記非遅延値の入力から回復して、前記遅延値を代わりに使用する時間を提供するように、前記非遅延クロック信号をゲート制御することを特徴とする請求項34に記載の方法。
  36. 前記非遅延捕獲時間が、前記非遅延クロック信号の所定の位相点から導出され、前記非遅延クロック信号の位相遅延バージョンが、遅延クロック信号として使用され、前記遅延捕獲時間が、前記遅延クロック信号の所定の位相点から導出されることを特徴とする請求項35に記載の方法。
  37. 前記複数の処理段階が、同期パイプライン内のそれぞれのパイプライン段階であることを特徴とする請求項25から36のうちのいずれか一項に記載の方法。
  38. 前記遅延値が、異なる入力値に対して実施される処理動作によって影響されないように、前記処理動作にかかる最短処理時間が、前記遅延捕獲時間を前記非遅延捕獲時間から分離する時間より長いことを特徴とする請求項25から37のうちのいずれか一項に記載の方法。
  39. 前記処理論理が、前記最短処理時間を超えることを保証するために、1つまたは複数の遅延要素を含むことを特徴とする請求項38に記載の方法。
  40. 前記処理論理が、前記遅延捕獲時間までに前記処理動作を完了するように、前記処理動作にかかる最長処理時間が、前記非遅延捕獲時間から前記遅延捕獲時間を分離する時間と、非遅延捕獲時間の間の時間との合計より短いことを特徴とする請求項25から39のうちのいずれか一項に記載の方法。
  41. 前記処理段階が、データプロセッサの一部であることを特徴とする請求項25から40のうちのいずれか一項に記載の方法。
  42. 前記変化に対応するエラーの検出のカウントを記憶するステップを備えることを特徴とする請求項25から41のうちのいずれか一項に記載の方法。
  43. 前記カウントが、ソフトウェアによって読み取られることが可能であることを特徴とする請求項42に記載の方法。
  44. 前記処理動作の処理において実施されるある量の有用な作業、および前記エラー回復動作を実施するために使用されるある量の作業を含む作業量を監視するステップを備えることを特徴とする請求項25から43のうちのいずれか一項に記載の方法。
  45. 1つまたは複数の動作パラメータが、前記作業量に応じて制御されることを特徴とする請求項44に記載の方法。
  46. 前記1つまたは複数の動作パラメータが、
    動作電圧と、
    動作周波数と、
    集積回路本体バイアス電圧と、
    温度とのうちの少なくとも1つを含むことを特徴とする請求項45に記載の方法。
  47. 前記遅延ラッチが、直列走査鎖内において直列走査鎖ラッチとしても作用することを特徴とする請求項25から46のうちのいずれか一項に記載の方法。
  48. 前記遅延ラッチが、直列走査鎖内において直列走査鎖ラッチとしても作用し、前記走査鎖ラッチに順次操作される信号値が、前記エラー修復論理を使用する診断動作中に、前記非遅延ラッチ内に強制されることを特徴とする請求項25から47のうちのいずれか一項に記載の方法。
JP2006505977A 2003-03-20 2004-03-17 集積回路内におけるデータ保持ラッチ提供 Expired - Lifetime JP4335253B2 (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,817 US7310755B2 (en) 2003-03-20 2004-02-18 Data retention latch provision within integrated circuits
PCT/GB2004/001147 WO2004084053A1 (en) 2003-03-20 2004-03-17 Data retention latch provision within integrated circuits

Publications (2)

Publication Number Publication Date
JP2006520955A true JP2006520955A (ja) 2006-09-14
JP4335253B2 JP4335253B2 (ja) 2009-09-30

Family

ID=33032650

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006505977A Expired - Lifetime JP4335253B2 (ja) 2003-03-20 2004-03-17 集積回路内におけるデータ保持ラッチ提供

Country Status (6)

Country Link
EP (1) EP1604265B1 (ja)
JP (1) JP4335253B2 (ja)
KR (1) KR100994188B1 (ja)
DE (1) DE602004001228T2 (ja)
RU (1) RU2005129257A (ja)
WO (1) WO2004084053A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090448A (ja) * 2009-10-21 2011-05-06 Renesas Electronics Corp 半導体集積回路
KR101570112B1 (ko) 2014-10-02 2015-11-19 전자부품연구원 Sr 래치의 준안정성 탐지 및 보정 회로

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005022875B4 (de) * 2005-05-18 2007-05-31 Infineon Technologies Ag Schaltung und Verfahren zur Steuerung des Leistungsverbrauchs in integrierten Schaltungen
US8327173B2 (en) * 2007-12-17 2012-12-04 Nvidia Corporation Integrated circuit device core power down independent of peripheral device operation
US8321824B2 (en) 2009-04-30 2012-11-27 Synopsys, Inc. Multiple-power-domain static timing analysis
US9063734B2 (en) * 2012-09-07 2015-06-23 Atmel Corporation Microcontroller input/output connector state retention in low-power modes
US10348302B1 (en) * 2018-05-31 2019-07-09 Bae Systems Information And Electronic Systems Integration Inc. Radiation-hardened latch circuit

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011090448A (ja) * 2009-10-21 2011-05-06 Renesas Electronics Corp 半導体集積回路
KR101570112B1 (ko) 2014-10-02 2015-11-19 전자부품연구원 Sr 래치의 준안정성 탐지 및 보정 회로

Also Published As

Publication number Publication date
EP1604265B1 (en) 2006-06-14
DE602004001228T2 (de) 2007-05-03
DE602004001228D1 (de) 2006-07-27
JP4335253B2 (ja) 2009-09-30
KR100994188B1 (ko) 2010-11-12
RU2005129257A (ru) 2006-01-27
EP1604265A1 (en) 2005-12-14
WO2004084053A1 (en) 2004-09-30
KR20050118184A (ko) 2005-12-15
WO2004084053A8 (en) 2005-07-28

Similar Documents

Publication Publication Date Title
US7310755B2 (en) Data retention latch provision within integrated circuits
JP4317212B2 (ja) 集積回路の処理段における系統的及び確率的誤り検出及び復旧
US10579463B2 (en) Error recovery within integrated circuit
US8060814B2 (en) Error recovery within processing stages of an 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
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080328

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080408

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080708

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090421

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090428

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

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

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

Free format text: PAYMENT UNTIL: 20120703

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4335253

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20120703

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130703

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term