JP4279874B2 - 高速及び低速のデータ読取り機構を有するメモリ・システム - Google Patents

高速及び低速のデータ読取り機構を有するメモリ・システム Download PDF

Info

Publication number
JP4279874B2
JP4279874B2 JP2006505973A JP2006505973A JP4279874B2 JP 4279874 B2 JP4279874 B2 JP 4279874B2 JP 2006505973 A JP2006505973 A JP 2006505973A JP 2006505973 A JP2006505973 A JP 2006505973A JP 4279874 B2 JP4279874 B2 JP 4279874B2
Authority
JP
Japan
Prior art keywords
memory
read
delay
result
reading
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
JP2006505973A
Other languages
English (en)
Other versions
JP2006520953A (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 JP2006520953A publication Critical patent/JP2006520953A/ja
Application granted granted Critical
Publication of JP4279874B2 publication Critical patent/JP4279874B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • 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/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1405Saving, restoring, recovering or retrying at machine instruction level
    • G06F11/141Saving, restoring, recovering or retrying at machine instruction level for bus or memory accesses
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50012Marginal testing, e.g. race, voltage or current testing of timing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1039Read-write modes for single port memories, i.e. having either a random port or a serial port using pipelining techniques, i.e. using latches between functional memory parts, e.g. row/column decoders, I/O buffers, sense amplifiers
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1015Read-write modes for single port memories, i.e. having either a random port or a serial port
    • G11C7/1045Read-write mode select circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/04Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Dram (AREA)

Description

本発明は、データ処理システムの分野に関する。特に、本発明は、データ処理システム内のデータを記憶するためのメモリに関する。
メモリ・レベルの階層を有するメモリをデータ処理システム内に提供することが知られている。メモリ・システムは、代表的には、局部キャッシュ・メモリから始まって、主ソリッド・ステート・メモリ及びおそらくはハード・ディスク・ドライブのような不揮発性永久記憶装置を通して外方に拡張されるように形成され得る。メモリに対する重要な性能特性は、該メモリが読取られ得る速度である。データ値がメモリから一層迅速に読取られ得る程、代表的に達成され得るデータ処理の最大割合も高くなる(メモリ読取り速度以外の要因も処理速度を制限し得る)。メモリ・システムの設計は、通常、速度と、容量、電力消費、価格、複雑さ等のような他のパラメータとの間のバランスに関連する。
メモリ・システムの文脈において、達成され得る読み取り性能には或る程度の製造変動または状態により引き起される変動もある。一例として、集積回路メモリが製造される過程での製造変動は、他の点では同一のメモリ集積回路同志を比較した場合に達成され得る最大読取り速度が異なることとなる。また、達成され得る最大読取り性能が、システムの物理的または論理的な状態に依存して、例えば、周囲温度に依存して変化し得るということも起こり得る。
正しい動作を確実にするために、メモリ・システムの設計者は、通常、当のメモリ・システムと関連する、製造変動や環境状態等に関する最悪の場合の仮定の組が与えられた場合にも、正しい読取り値がメモリから取り出されているであろうことを確実にするよう選択された時間で、メモリ・システムからの読取り値をサンプリングするようメモリ・システムを動作させる。メモリ・システムの設計者は、最も低速と思われる読取り速度を計算し、メモリがどの速度で動作されるべきかを決定する際に、これに或る安全マージンを加える。この方法は、正しい動作及びデータの完全性を確実にするということに関しては安全であるが、達成され得るデータ処理性能を相当に制限し得る。
一層特定の例として、低電力消費モードでメモリを動作させることが望ましいかも知れない。このモードにおいては、読取り性能は、対応の高電力消費モードにおけるよりも低くなり、例えば、メモリ集積回路は、低電圧で動作する場合よりも高電圧で動作する場合の方が一層迅速に読取られ得る。これらの環境において、正しい動作及びデータの完全性を確実にするために、システムの設計者は、通常、当の特定のメモリで最終的に達成可能であるかも知れないよりも低くメモリ読取り性能を推定するか、及び/または処理性能の所望のレベルを達成するために実際必要であるかも知れないよりも高い電力消費状態で動作させるかのいずれかを強いられる。
1つの側面から見ると、本発明は、データを記憶するためのメモリであって、
さらなる処理のために該メモリから出力される高速読取り結果を発生するために、該メモリからのデータ値を読取るよう動作可能の高速データ読取り機構と、
さらなる処理のために前記高速読取り結果が出力されてしまった後に得られる低速読取り結果を発生するために、前記メモリからの前記データ値を読取るよう動作可能の低速データ読取り機構であって、前記データ値を読取る際に、前記高速データ読取り機構よりも誤りを起こす傾向が低い前記低速データ読取り機構と、
前記高速読取り結果が前記低速読取り結果と異なっているかどうかを検出するために、前記高速読取り結果と前記低速読取り結果とを比較するよう動作可能の比較器と、
前記高速読取り結果が前記低速読取り結果と異なっているということを前記比較器が検出した場合に、前記高速読取り結果を用いた前記さらなる処理を抑制し、前記高速読取り結果の代わりに前記低速読取り結果を出力して、前記低速読取り結果に基づいて前記さらなる処理を再スタートするよう動作可能の誤り修復論理回路と、
を備えたメモリを提供する。
本発明は、メモリが、1つ以上の読取り機構で動作され得るということを認識している。比較的精力的なセットの性能(動作)推定を用いる高速読取り機構が提供され得る。この高速読取り機構は、性能推定があまりにも精力的であるので、例えば、読取りタイミングが高速すぎるかもしくは動作電圧が低すぎるので、時折、メモリからデータを誤って読取るであろう。しかしながら、本手法のメモリには、もっと遅い時刻にメモリからデータ値を読取るが、該データ値を読取る際に、高速データ読取り機構に比較して、エラーもしくは誤りを一層受けにくい低速データ読取り機構も設けられる。高速データ読取り機構に関連した精力的な性能推定から受ける利点のために、高速読取り結果は、得られるや否や、低速読取り結果が得られる前に、さらなる処理のためにメモリから通される。低速読取り結果が得られるようになると、低速読取り結果は高速読取り結果と比較され、差異が検出されたならば、次に、誤り修復論理回路は、高速読取り結果を用いたさらなる処理を抑制するよう動作して、その代わりに低速読取り結果を出力する。低速読取り結果は正しいデータ値であると仮定されており、高速読取り結果と関連した正しくない処理の代わりに用いられる。高速読取り結果を用いて既に開始されていたさらなる処理の抑制が相当の時間の不利益を招きそうであるとしても、この抑制を生じさせる必要性が充分にすくないならば、性能(それが、処理速度について測定されようが、達成される動作電圧の低さについて測定されようが、またはその他について測定されようが)における全体的な増加がもたらされるであろう。
上述の高速及び低速データ読取り機構の技術は、広範な異なったメモリ、例えば、ディスク・ドライブ、において用いられ得るが、特に、1つまたは2つ以上のビット・ラインを介して読取られるメモリ・セルのアレイを代表的には含むソリッド・ステート集積回路メモリに良く適しているということが理解されるであろう。
かかる集積回路メモリの文脈において、高速データ読取り機構は、低速データ読取り機構が第2の遅い時刻においてビット・ラインをサンプリングすることと比較して、読取り動作が開始された後の第1の遅延時刻においてビット・ラインをサンプリングするために動作可能であるよう配列され得る。集積回路メモリが読取られるビット・ラインは、それらビット・ラインが、問題のデータ値を示す適切な値に駆動されるべき関連のメモリ・セルに結合された後、限定された時間量を取る。必要とされるレベルを採用するためにビット・ラインによって必要とされるこの時間は、製造許容誤差、動作電圧、動作温度、メモリ内に保持される隣接データ値、等のような種々の異なった要因によって変わり得る。高速データ読取り機構は、正しい値が正常である時に早期にビット・ラインをサンプリングするが、必ずしも常に存在しない。低速データ読取り機構は、正しいデータ値が多かれ少なかれ得られることが確かである後の時にビット・ラインをサンプリングする。早期の及び後の読取り値の間で差が生じるならば、次に、早期に読取られた値の使用が抑制されて、代わりに後の読取り値が用いられる。
幾つかのメモリが単一のビット・ラインを用い得るけれども、本発明は、メモリ・セルが一対のビット・ラインを介して読取る実施形態で、特に、1つまたは2つ以上の電流または電圧を感知する差動感知(センス)増幅器が該一対のビット・ラインからの信号値を読取るよう動作可能である場合の実施形態に、特に良く適している。
高速及び低速読取り機構は、互いに完全に独立していて良いが、これらが少なくとも幾つかの共通回路素子を共用する場合には、例えば、一例として、サンプリング時間を制御するために高速トリガ信号及び低速トリガ信号を有する同じサンプリング・ハードウェアを用いることが可能である場合には、回路面積や電力消費等を有利に減らすことができる。
誤り修復論理回路は、種々の異なった方法で動作しうるが、一般的には、高速読取り結果がさらなる処理のために通されてしまった回路に抑制信号を発するように動作可能である。これらの回路は、次に、それらの個々の動作に適切であるように、種々の異なった方法で正しくない値に基づく処理を抑制するように、受信された抑制信号に基づいて動作する。
実質的にゼロの誤り率を生成するよう高速読取り機構を配列することが可能であるかも知れないが、本発明の好適な実施形態は、高速読取り結果における有限のゼロでない誤り率を維持するよう、メモリの1つまたは2つ以上の性能制御パラメータを制御する。この方法における有限のゼロでない値である目標の誤り率は、メモリ・システムの文脈において大いに反直感的であり、該メモリ・システムにおいて、それは通常、実質的にゼロでない誤り率が維持される必要な性能特性である。
ゼロでない誤り率を維持するために変えられ得る1つまたは2つ以上の性能制御パラメータは、動作電圧、動作周波数、本体バイアス電圧及び温度の1つまたは2つ以上を含む。上述の1つまたは2つ以上に追加してもしくはそれらの代わりに、他の性能制御パラメータが変えられ得ることが理解されるであろう。また、性能は、製造変動によっても制御され得るが、これは、動的に調整可能なパラメータではない。
もう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]は、チェックされる演算子を表し、次の関係を満足しなければならない。
符号(X[X]Y)=符号X[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の回路の動作を概略的に示すフローチャートである。 遅延及び無遅延ラッチを用いて処理パイプライン内のクロック信号の相対位相を如何に制御し得るかを概略的に示す図。 誤りからの復旧の際、ストール及びバブル挿入のそれぞれの使用法を概略的に示す図。 誤りからの復旧の際、ストール及びバブル挿入のそれぞれの使用法を概略的に示す図。 遅延ラッチが逐次走査連鎖ラッチとして再使用される処理段間で用いる無遅延及び遅延ラッチを示す図。
符号の説明
100 メモリ
102 メモリ・セル
104 復号器(デコーダ)
106 ワード線
108 ビット線
110 センス増幅器(感知増幅器)
110’ 高速センス増幅器(高速感知増幅器)
110” 低速センス増幅器(低速感知増幅器)
112 無遅延ラッチ
114 遅延ラッチ
116、116’ マルチプレクサ
118 後続の処理回路
120、120’ 比較器


Claims (18)

  1. データを記憶するためのメモリであって、
    さらなる処理のために該メモリから出力される高速読取り結果を発生するために、該メモリからのデータ値を読取るよう動作可能の高速データ読取り機構と、
    さらなる処理のために前記高速読取り結果が出力されてしまった後に得られる低速読取り結果を発生するために、前記メモリからの前記データ値を読取るよう動作可能の低速データ読取り機構であって、前記データ値を読取る際に、前記高速データ読取り機構よりも誤りを起こす傾向が低い前記低速データ読取り機構と、
    前記高速読取り結果が前記低速読取り結果と異なっているかどうかを検出するために、前記高速読取り結果と前記低速読取り結果とを比較するよう動作可能の比較器と、
    前記高速読取り結果が前記低速読取り結果と異なっているということを前記比較器が検出した場合に、前記高速読取り結果を用いた前記さらなる処理を抑制し、前記高速読取り結果の代わりに前記低速読取り結果を出力して、前記低速読取り結果に基づいて前記さらなる処理を再スタートするよう動作可能の誤り修復論理回路と、
    を備えたメモリ。
  2. メモリ・セルのアレイを含み、該メモリ・セルのアレイ内の或るメモリ・セルに記憶されたデータ値が1つまたは2つ以上のビット・ラインを介して読取られる請求項1に記載のメモリ。
  3. 前記高速データ読取り機構は、前記メモリ・セルが前記1つまたは2つ以上のビット・ラインに結合された後の第1の遅延間隔の時点で前記1つまたは2つ以上のビット・ラインをサンプリングするよう動作可能であり、前記低速データ読取り機構は、前記メモリ・セルが前記1つまたは2つ以上のビット・ラインに結合された後の第2の遅延間隔の時点で前記1つまたは2つ以上のビット・ラインをサンプリングするよう動作可能であり、前記第2の遅延間隔は、前記第1の遅延間隔よりも大きい請求項2に記載のメモリ。
  4. 前記メモリ・セルは、一対のビット・ラインを介して読取られる請求項2または3に記載のメモリ。
  5. 1つまたは2つ以上の差動感知増幅器が前記一対のビット・ラインからの信号値を読取るよう動作可能である請求項4に記載のメモリ。
  6. 前記高速読取り機構及び前記低速読取り機構は、少なくとも幾つかの共通回路素子を共用する請求項1乃至5のいずれかに記載のメモリ。
  7. 前記誤り修復論理回路は、前記高速読取り結果がさらなる処理のために通されてしまった回路に抑制信号を発することによって、前記さらなる処理を抑制するよう動作可能である請求項1乃至6のいずれかに記載のメモリ。
  8. 前記メモリの1つまたは2つ以上の性能制御パラメータが、前記高速読取り結果におけるゼロでない誤り率を維持するよう制御される請求項1乃至7のいずれかに記載のメモリ。
  9. 前記1つまたは2つ以上の性能制御パラメータは、
    動作電圧;
    動作周波数;
    本体バイアス電圧;及び
    温度;
    の1つまたは2つ以上を含む請求項8に記載のメモリ。
  10. メモリからの記憶されたデータを読取る方法であって、
    さらなる処理のために前記メモリから出力される高速読取り結果を発生するために、高速データ読取り機構で前記メモリからデータ値を読取る段階と、
    さらなる処理のために前記高速読取り結果が出力されてしまった後に得られる低速読取り結果を発生するために、前記データ値を読取る際に前記高速データ読取り機構よりも誤りを起こす傾向が低い低速データ読取り機構で前記メモリから前記データ値を読取る段階と、
    前記高速読取り結果が前記低速読取り結果と異なっているかどうかを検出するために、前記高速読取り結果と前記低速読取り結果とを比較する段階と、
    前記高速読取り結果が前記低速読取り結果と異なっている場合には、前記高速読取り結果を用いた前記さらなる処理を抑制し、前記高速読取り結果の代わりに前記低速読取り結果を出力して、前記低速読取り結果に基づいて前記さらなる処理を再スタートする段階と、
    を含む方法。
  11. 前記メモリは、メモリ・セルのアレイを含み、該メモリ・セルのアレイ内の或るメモリ・セルに記憶されたデータ値が1つまたは2つ以上のビット・ラインを介して読取られる請求項10に記載の方法。
  12. 前記高速データ読取り機構は、前記メモリ・セルが前記1つまたは2つ以上のビット・ラインに結合された後の第1の遅延間隔の時点で前記1つまたは2つ以上のビット・ラインをサンプリングするよう動作可能であり、前記低速データ読取り機構は、前記メモリ・セルが前記1つまたは2つ以上のビット・ラインに結合された後の第2の遅延間隔の時点で前記1つまたは2つ以上のビット・ラインをサンプリングするよう動作可能であり、前記第2の遅延間隔は、前記第1の遅延間隔よりも大きい請求項11に記載の方法。
  13. 前記メモリ・セルは、一対のビット・ラインを介して読取られる請求項11または12に記載の方法。
  14. 1つまたは2つ以上の差動感知増幅器が前記一対のビット・ラインからの信号値を読取るよう動作可能である請求項13に記載の方法。
  15. 前記高速読取り機構及び前記低速読取り機構は、少なくとも幾つかの共通回路素子を共用する請求項10乃至14のいずれかに記載の方法。
  16. 前記さらなる処理を抑制することは、前記高速読取り結果がさらなる処理のために通されてしまった回路に抑制信号を発することによって行われる請求項10乃至15のいずれかに記載の方法。
  17. 前記メモリの1つまたは2つ以上の性能制御パラメータが、前記高速読取り結果におけるゼロでない誤り率を維持するよう制御される請求項10乃至16のいずれかに記載の方法。
  18. 前記1つまたは2つ以上の性能制御パラメータは、
    動作電圧;
    動作周波数;
    本体バイアス電圧;及び
    温度;
    の1つまたは2つ以上を含む請求項17に記載の方法。
JP2006505973A 2003-03-20 2004-03-17 高速及び低速のデータ読取り機構を有するメモリ・システム Expired - Lifetime JP4279874B2 (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,809 US6944067B2 (en) 2003-03-20 2004-02-18 Memory system having fast and slow data reading mechanisms
PCT/GB2004/001137 WO2004084233A1 (en) 2003-03-20 2004-03-17 Momory system having fast and slow data reading mechanisms

Publications (2)

Publication Number Publication Date
JP2006520953A JP2006520953A (ja) 2006-09-14
JP4279874B2 true JP4279874B2 (ja) 2009-06-17

Family

ID=33032649

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006505973A Expired - Lifetime JP4279874B2 (ja) 2003-03-20 2004-03-17 高速及び低速のデータ読取り機構を有するメモリ・システム

Country Status (7)

Country Link
US (1) US7072229B2 (ja)
EP (1) EP1604371B1 (ja)
JP (1) JP4279874B2 (ja)
KR (1) KR100955285B1 (ja)
DE (1) DE602004001679T2 (ja)
RU (1) RU2005129281A (ja)
WO (1) WO2004084233A1 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100582391B1 (ko) * 2004-04-08 2006-05-22 주식회사 하이닉스반도체 반도체 소자에서의 지연 요소의 지연 검출 장치 및 방법
US20070266296A1 (en) * 2006-05-15 2007-11-15 Conley Kevin M Nonvolatile Memory with Convolutional Coding
US7840875B2 (en) * 2006-05-15 2010-11-23 Sandisk Corporation Convolutional coding methods for nonvolatile memory
TWI397822B (zh) * 2006-11-13 2013-06-01 Via Tech Inc 串列週邊介面控制裝置及串列週邊介面系統以及串列週邊介面裝置之判斷方法
US9280419B2 (en) * 2013-12-16 2016-03-08 International Business Machines Corporation Dynamic adjustment of data protection schemes in flash storage systems based on temperature, power off duration and flash age
US10565048B2 (en) * 2017-12-01 2020-02-18 Arista Networks, Inc. Logic buffer for hitless single event upset handling
KR20210058566A (ko) * 2019-11-14 2021-05-24 삼성전자주식회사 전자 시스템, 그것의 결함 검출 방법, 시스템 온 칩 및 버스 시스템
KR102702035B1 (ko) * 2019-11-21 2024-09-03 주식회사 메타씨앤아이 메모리 장치
US11967360B2 (en) * 2021-09-22 2024-04-23 Arm Limited Dynamically adjustable pipeline for memory access

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US618861A (en) * 1899-02-07 Process of and apparatus for manufacturing sheet-glass
SU809350A1 (ru) * 1979-05-31 1981-02-28 Московский Ордена Трудовогокрасного Знамени Текстильныйинститут Запоминающее устройство
JPS6020398A (ja) * 1983-07-14 1985-02-01 Nec Corp メモリ装置
JPS6224498A (ja) * 1985-07-24 1987-02-02 Nippon Telegr & Teleph Corp <Ntt> メモリ読出し方式
US4994993A (en) 1988-10-26 1991-02-19 Advanced Micro Devices, Inc. System for detecting and correcting errors generated by arithmetic logic units
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 マイクロコントローラ
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
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
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
JP3494849B2 (ja) * 1997-05-29 2004-02-09 富士通株式会社 半導体記憶装置のデータ読み出し方法、半導体記憶装置及び半導体記憶装置の制御装置
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
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
CA2395645A1 (en) 1999-12-23 2001-06-28 General Instrument Corporation Dual-mode processor
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

Also Published As

Publication number Publication date
DE602004001679D1 (de) 2006-09-07
US20060018171A1 (en) 2006-01-26
WO2004084233A1 (en) 2004-09-30
RU2005129281A (ru) 2006-01-27
DE602004001679T2 (de) 2007-08-02
EP1604371A1 (en) 2005-12-14
US7072229B2 (en) 2006-07-04
JP2006520953A (ja) 2006-09-14
EP1604371B1 (en) 2006-07-26
KR20060009236A (ko) 2006-01-31
KR100955285B1 (ko) 2010-04-30

Similar Documents

Publication Publication Date Title
JP4317212B2 (ja) 集積回路の処理段における系統的及び確率的誤り検出及び復旧
US6944067B2 (en) Memory system having fast and slow data reading mechanisms
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: 20081021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081104

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090123

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

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

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

Free format text: PAYMENT UNTIL: 20120319

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4279874

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

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130319

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

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20140319

Year of fee payment: 5

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