(57)【要約】本発明は、ワーストケース要求クロックよりも低い周期を使用してディジタル計算を実行し、同時に、同じハードウェアを有する第２のシステム上で、ワーストケース想定クロックよりも大きな周期を使用して同じ計算をする。計算の出力は、エラーが生じたかどうかを決定するため比較される。２つの答えに差異が存在すれば、より速い計算がエラーでなければならず、システムは遅い方のシステムからの答えを使用する。一実施形態において、本発明は、より遅いシステムの２つのコピーを利用し、各々のコピーは、メインシステムの半分の速さで実行される。しかし、２つのコピーは、全体としてメインシステムと同じレートで結果を生成する。メインシステムは、従来のレートよりもはるかに速いレートで実行する。したがって、本発明は、ハードウェアの数が多くなるにしても、パフォーマンスを改善する。
2006508615.tif 000002
【特許請求の範囲】
【請求項１】
ディジタルシステムのパフォーマンスを向上するため入力信号および第１のクロック信号を受け取るシステムであって、
第１のクロック信号を受け取って第２のクロック信号および第３のクロック信号を生成するクロック制御論理であって、前記第２および第３のクロック信号が、第１のクロック信号の周波数の整数分割である周波数を有するクロック制御論理と、
第１のクロック信号および入力信号に応答して第１の出力信号を提供する第１のディジタル同期ネットワークと、
前記第１のディジタル同期ネットワークとほぼ同じ第２のディジタル同期ネットワークであって、前記第２のクロック信号および入力信号を受け取って第２の出力信号を提供するディジタル同期ネットワークと、
前記第１のディジタル同期ネットワークとほぼ同じ第３のディジタル同期ネットワークであって、前記第３のクロック信号および入力信号を受け取って第３の出力信号を提供するディジタル同期ネットワークと、
前記第１、第２、および第３の出力信号に応答して、前記第１の出力信号の計算で故障が生じたかどうかを決定する比較および選択論理であって、故障が生じていなければ、前記第１の出力信号を示すシステム出力信号を提供し、故障が生じていれば、前記第２の出力信号を示す前記システム出力信号を提供する比較および選択論理と、
を備えるシステム。
【発明の詳細な説明】
【関連出願の相互参照】
【０００１】
本願は、２００２年１１月２７日に出願された米国特許出願第６０／４２９，７３６号への優先権を主張し、２０００年９月２７日に出願された米国特許出願第０９／６７２，１２８号の一部継続出願である。該米国特許出願第０９／６７２，１２８号は、１９９９年９月２７日に出願された米国特許出願第６０／１５６，２１９号への優先権を主張する。これらの全ての出願は、全体を参照して組み入れる。
【発明の背景】
【０００２】
本発明は、ディジタルエレクトロニックシステムの分野に関し、特に同期ディジタルエレクトロニックシステムに関する。
【０００３】
中央処理ユニット（例えば、Ｉｎｔｅｌ  Ｐｅｎｔｉｕｍ）を含むコンピュータ、携帯電話、電子レンジ、および実際に今日製造される全てのエレクトロニックデバイスは、ディジタルハードウェアを使用して動作する。回路の最新入力の状態のみに基づいて結果を計算するディジタル回路は、組み合わせ論理構成と呼ばれる。組み合わせシステムは、多くの応用に使用可能であるが、興味深いディジタルシステムを実現するためには、システムは、その出力を、最新入力とシステム先行出力または状態との双方に基づかせなければならない。
【０００４】
何らかのメモリデバイスの中に「状態」を保持するディジタルシステムには、２つのタイプがあり、これらのシステムは、多くの場合、メモリ付きシステムと呼ばれる。１つめのタイプは非同期ディジタルシステムであって、入力がその値を変化させると直ちに状態を変化させる。非同期システムのモデル化、設計、および検証は、現代の非同期手法を使用しても、実際、極めて困難であることが見出された。ディジタルシステムの利点は、論理遅延が許す限り迅速に動作することである。
【０００５】
２つめのタイプのディジタルシステムは、同期システムであり、グローバルシステムクロックによって決定される時間でのみ（即ち、クロックと同期して）状態が変化する。例えば、１秒に５億回振動する（即ち、５００ＭＨｚ）基本オンチップ（ＣＰＵ）クロックを有するＩｎｔｅｌ  Ｐｅｎｔｉｕｍ  ＩＩＩプロセッサを考えると、プロセッサは、１つ以上のこれら発振の開始時にのみ状態を変化させる。同期アプローチは、ディジタルシステムの設計、構成、および使用を容易にする。
【０００６】
しかし、同期システムに伴う難点およびパフォーマンスの不都合は、クロックの持続時間／周期が、ワーストケース動作条件および製造公差を処理するのに十分大きくなければならないことである。この周期は、典型的には、典型的（通常の）動作および製造公差によって公称的に要求される長さの少なくとも２倍である。したがって、このようなディジタルシステムのパフォーマンスは、多くの場合、ワーストケースを除いて本来のパフォーマンスよりも半分以下である。
【０００７】
ディジタル同期システム２０は、図１で示されるブロック図モデルによって表すことができる。システム構成要素は、組み合わせ論理２２（ＣＬ）およびフリップフロップまたはラッチ（ＦＦ）２４を含む。ラッチ２４はシステムの最新／現在状態を保持する。各々のラッチは、典型的には、１ビットの情報を記憶する。知られているように、フリップフロップは、クロック信号が遷移するときにのみ、その内容または状態を変える。同じクロックが全てのラッチへ行く。組み合わせ論理２２は、クロック入力またはフィードバックループを有しない。その入力の１つにおける変化は、電気回路および光速制約のみに起因する遅延を伴って１つ以上の出力へ伝搬する。ラッチ２４は、更に伝搬遅延を有するが、クロック遷移からその出力変化への遅延のみである。
【０００８】
システム２０は、組み合わせ論理２２を使用して、その現在状態およびシステム入力の最新値からシステムの次の状態（ＮＳ）を計算することによって動作する。次に、次の状態は、クロックが遷移するときラッチ２４の中に記憶され、プロセスが反復される。システムが適正に機能するためには、クロックの関連遷移がラッチで起こる前に、計算が組み合わせ論理の中を伝搬してラッチの入力に現れなければならない。
【０００９】
論理およびラッチを介する正確な遅延が知られていれば、クロック周波数は遅延の合計の逆数へ設定され、システムはピークパフォーマンス（１秒当たりの計算で測定される）で動作する。しかし、遅延は一定ではなく、製造プロセスの相違、電源電圧の変化、動作温度および湿度の変化、および他の要因によって変動する。これらの変動の結果として、およびワーストケース（例えば温度極値）でディジタルシステムの動作を保証する必要から、クロック速度は、大部分の通常のケースで必要な値よりも低くて控えめな値へ設定される。その結果、平均的ユーザは、実際に必要なパフォーマンスよりも著しく低いパフォーマンスを経験する。
【００１０】
したがって、より高速の同期システムアーキテクチャの必要性が存在する。
【発明の概要】
【００１１】
簡潔に言うと、本発明の１つの態様によると、システムクロックの周波数は、システムエラーが検出されるまで自動的に増加され、続いて、クロックの周波数は、システムエラーを起こさない値へ自動的に少しだけ減少させられる。
【００１２】
簡潔に言うと、本発明の他の態様によると、システムクロックの周波数は、許容できない数のエラーが検出されるまで自動的に増加され、続いて、検出されたエラー数が、許容できないエラー数よりも小さくなるように、クロックの周波数が自動的に少しだけ減少させられる。
【００１３】
本発明は、ワーストケースに必要なクロック周期よりも低い周期（即ち、より高速のクロック）でディジタル計算を実行し、同時に、同一のハードウェアを有する第２のシステムで、より大きな、ワーストケースに想定されるクロック周期（即ち、より遅いクロック）で同じ計算を実行する。計算からの出力は、エラーが生じたかどうかを決定するために比較される。２つの答えの間に差異が存在すれば、より高速の計算がエラーでなければならず（即ち、誤った計算が起こった）、システムは、より遅いシステムからの答えを使用する。
【００１４】
１つの実施形態において、本発明は、より遅いシステムの２つのコピーを使用し、各々のコピーはメインシステムの半分の速さで実行される。しかし、２つのコピーは、全体としてメインシステムと同じレートで結果を生成する。メインシステムは、本発明が存在しない場合に可能であるよりも、はるかに速いレートで実行されている。したがって、本発明は、より多くのハードウェアを使用するにしても、パフォーマンス（例えば、速度）を改善する。
【００１５】
有利には、本発明は、実際の動作条件のもとで可能な最良パフォーマンスを達成するようにダイナミックに順応する。
【００１６】
他の態様において、本発明は、タイミングエラー回避（ＴＥＡｔｉｍｅ）システムを備える。このシステムは、パイプラインレジスタの間の最長パスの遅延を有する追加論理を使用して、システムクロックがあまりに速いか、またはあまりに遅いかを、サイクルベースでテストする構造を含む。遅延テスト論理の入力へ印加された信号が、マシンの最も遅いパスの時間内にテスト論理の出力に現れるならば、システムは、システムクロック速度をスピードアップする信号を提供する。あるいは、遅延テスト論理の入力へ印加された信号が、マシンの最も遅いパスよりも大きい時間にテスト論理の出力に現れるならば、システムは、システムクロック速度をスローダウンし、安全限界を差し引く信号を提供する。遅延テスト論理の特性（遅延など）は、メイン論理の特性のミラーであるから（これらは同一チップの上で相互に接近して実現される）、システムクロックは、温度および動作電圧を含むダイナミック環境条件および統計変動製造条件の双方に順応する。
【００１７】
本発明のこれら、および他の目的、特徴、および利点は、添付の図面で例示される好ましい実施形態の以下の詳細な説明から明らかとなろう。
【発明の詳細説明】
【００１８】
図２は、本発明によるディジタルシステム３０の第１の実施形態を示す。ディジタルシステム３０は、図１に示されたメインディジタル同期システム２０の２つのコピー２０ａおよび２０ｂを含み、これらコピーの各々は、メインディジタル同期システム２０の速度の半分で動作する。コピーの１つは、奇数サイクルでメインディジタル同期システム２０の結果を複製し、他のコピーは、偶数サイクルで結果を複製する。２つの半速度システム２０ａおよび２０ｂは、１つのメインシステムサイクルだけ相互に同期しないで動作される。双方の半速度システム２０ａおよび２０ｂの線３２および３４上の出力は、コンパレータ３８および４０を使用して交互のサイクルで線３６上のメインシステム出力とそれぞれ比較される。２つの出力の間（例えば、線３２および３６上の信号の間）に差異が存在すれば、エラーが検出され、選択回路４２は半速度システムからの出力信号を選択し、もちろん、より高い速度のシステム（即ち、システム２０）によってエラーが生じたと想定する。必要な訂正ごとに、１サイクルの動作が失われるが、これは誤り計算ペナルティと呼ばれる。
【００１９】
図３は、図２に示されたシステム３０のタイミング図であり、最初の３つの動作サイクル（即ち、０〜２）は、エラーが生じない場合である。個々の信号タイミングチャートの中の数字は、その時間で信号が働いているか保持している計算を示す。サイクル３の終わり５２（アスタリスク）で、線３４上の信号ＣＬ．０（半速度）と、線３６上の信号Ｑｓｙｓとの比較は、計算３のエラーを示す。したがって、システム３０は１サイクルだけ機能を停止し、次の状態は、サイクル３でＣＬ．０から取得する３となり（５４を参照）、計算３の正しいバージョンを有し、システムは正しい結果を使用して動作を再開する。サイクル３以降では、理想的な計算の数字が括弧なしに示され、実際の（遅延を有する）計算の数字が括弧で示される。
【００２０】
半速度システム２０ａおよび２０ｂは、元のワーストケースシステム速度よりも速く動作されてはならない。それは、高速メイン計算と比較する無エラー計算を確実にするためである。この解決法は、元のシステムのハードウェアの約３倍を必要とする。
【００２１】
２の因子よりも大きくパフォーマンスを増加させるため、解決法を修正することができる。因子が増加する各々の増分について（例えば、２倍から３倍への増分）、ハードウェアの他のコピーが使用されなければならない。更に、低速比較システムは、因子の増分だけ遅いクロックを使用し、例えば３倍パフォーマンス増加ケースでは、第３のクロックシステム（図示されず）は、メインシステムクロックの周波数の３分の１で動作する。因子増加の各々の増分について、誤り計算ペナルティは、１サイクルだけ増加する（例えば、３倍ケースでは、ペナルティは２サイクルである）。他のケースは同様に処理される。注意すべきは、全体的システムにおけるクロックの全てが同期されることである。
【００２２】
周波数が増加するにつれて、システムの基本的パフォーマンスは増加するが、或る時点で、増加するエラーレートから生じる誤り計算ペナルティによるパフォーマンスの低下が、基本的（クロックレート）パフォーマンスを相殺し、全体的パフォーマンスを減少させる。したがって、システム３０は、最大のパフォーマンスポイントを決定し、変化する条件に順応し、実際のシステム動作条件および構成要素の製造公差が与えられるならば、最良のパフォーマンスを決定する。システムは、制御手法を利用して、リアルタイムでシステムクロック周波数を調整する。このようなシステムの基本動作は、クロックレートの増加へ向けてバイアスされてよく、タイミングエラー検出回路のコンパレータから情報を受け取ってもよい。システムクロックは、クロック動作可能機能を有するカウンタを駆動する。エラーが検出されたとき、カウンタは動作不能にされる（パフォーマンス倍増の例示的ケースでは、これは１つのエラー当たり１サイクルである）。したがって、カウンタの全体的な絶対平均カウントレートは、システムパフォーマンスの直接的尺度であり、エラーが増加するにつれて、より速いレートではあるがカウントの頻度は少なくなる。これは本発明のパフォーマンスと同じダイナミックスである。
【００２３】
平滑化されたカウンタ出力は、システムのクロック発生器へフィードバックされ、クロック周波数を適切に調整する。平均カウンタ出力が低ければ、それは平均カウンタ出力が減少し始めるまでクロック周波数を増加し（カウンタ出力も増加する）、次に周波数が増分的に低くされて、出力が再び減少し始めるまでカウンタ出力を増加し、その時点で周波数は再びコースを逆転する。即ち、パフォーマンスの導関数（積分されたカウンタ出力）が増加する間、クロック周波数は増加し、前者が減少するとき、クロック周波数は減少し、パフォーマンスが再び増加し始めるとき、クロック周波数は再び増加する。
【００２４】
基本的ディジタル同期システム２０（図２）は複製され、２つのコピー２０ａおよび２０ｂ（図２）の出力がサイクルごとに比較される。コピー２０ａおよび２０ｂ（図２）が結果において異なるまで、クロック周波数は増加する。次に、システム３０が既知の良好な状態まで引き返して動作が再開する。
【００２５】
この手法は、２つのコピー２０ａおよび２０ｂの製造上の統計変動が与えられるならば、１つのコピーは他のコピーよりも低い頻度で故障することを想定している。双方が同時にかつ同様な仕方で故障すれば、エラーは検出されず、システム３０は誤動作する。このようなシステム内の有限エラーレートを許容できる実際的ケースが存在する。例えば、このようなＤＳＰデバイスが画像を処理しており画像の間に故障すると、可能性として全部で約１００万ピクセルの中の１ピクセルの画像のみが正しくない値を有し、気づかれることはない。
【００２６】
ミッションクリティカルな応用では、この手法は適切ではない。しかし、元のディジタルシステムのコピーを修正システムへ単純に付加し続けて、出力の全てを比較することによって、何らかの確率で機能するように手法を修正することができる。このような方法では、投票手法を使用することができる。これらのシステムは使用されてきたが（例えば、スペースシャトルで）、パフォーマンスを改善するためではなく、信頼性を向上するためであった。したがって、本発明の１つの態様に従った制御システム手法を使用して、許容されるエラーレート（許容誤差）レベルへクロックレートを増加することによって、既存のシステムのパフォーマンスを改善することができる。
【００２７】
本発明のこの実施形態は、プログラム可能ハードウェアを可変周波数クロック発生器と組み合わせて使用し、組み合わせ論理部品を提供することによってテストされた。具体的には、市販されているフィールドブログマブルゲートアレー（ＦＰＧＡ）を使用して、３２ビット加算器が構築された。３２ビット加算器への入力は、同じクロックを使用するレジスタから与えられた。更に、加算器の出力に２つのレジスタが置かれた。第１は、加算器への入力レジスタがテストデータをロードされてから１サイクル後にロードされた。第２は、入力がロードされてから２クロックサイクル後にロードされた。コンパレータは、第１および第２の出力レジスタの出力を比較し、したがって１サイクルだけ異なる時間で比較した。異なった時間での比較出力を保存（即ち、サンプリング）するため、コンパレータ出力に２つの１ビットレジスタが置かれた。したがって、本発明の主要な基本要素がモデル化された。各々の事象について、２つの乱数が加算器の入力へ同時に印加された。加算器の出力は、１クロックサイクルおよび２クロックサイクルの後にラッチされた。クロック周波数を調整し、出力レジスタの結果およびコンパレータの結果を見ることによって、加算器が正しい結果をいつ生成したか、および、より遅いシステム（即ち、結果を計算するための２倍の時間を加算器へ与える第２のレジスタ）によって正しい／正しくない動作が検出されたかを決定した。全体的システムはホストコンピュータによって駆動および検査され、ホストコンピュータは更に加算を検証した。
【００２８】
主要な実験は、エラーなし、または非常に少数の（全て許容される）エラーでシステムが動作する周波数を決定した。基本周波数としては、ワーストケース条件を想定して加算器（システムの中にあり、したがってレジスタ遅延を含む）が約３３ＭＨｚ（１秒当たり３３００万回の加算）で動作できることを示す設計ツールの結果を使用した。それは約３０ナノ秒のクロック周期に対応する。
【００２９】
実験は多数回実行された。各々のパスは、１つの動作周波数で乱数に対して２０の異なった加算を実行することを含んだ。システムは低周波数へ初期化された。クロック発振器は約３６０ＫＨｚから１２０ＭＨｚまで可変であった。ホストコンピュータは周波数を設定し、二分法を使用して、２０の加算の中でエラーなしの最高動作周波数を迅速に発見した。
【００３０】
最初の実行の後、動作周波数は約６０＋ＭＨｚへ決定された。しかし、データのいくつかの態様は、実際、より速くシステムが動作されてもよいことを示した。コンパレータも事実上あまりに遅かった。より多くの動作時間をコンパレータに許す実験が再び実行された（しかし、元の時間でクロックされる２つの出力レジスタを観察した）。動作周波数は約９５ＭＨｚへ増加した。したがって、加算器パフォーマンスの改善における約３の因子が実現された。
【００３１】
高速加算を実行する問題点は、ワーストケースで最小有意ビット（ＬＳＢ）から最大有意ビット（ＭＳＢ）へキャリーを伝搬させる必要性である。しかし、ランダムデータでワーストケースが起こることはまれである。更に、特定ビットからのキャリーの確率は約１／２であるが、多数のビットにわたってキャリーを伝搬させる確率は、ビット数と共に指数的に減少する。８〜９ビットの典型的「最大」伝搬長が推定され、これは、実験における加数および被加数（加算器入力）の２０のランダムペアで発見されたものとほとんど同じであった。したがって、３２ビットのワーストケース伝搬長（このケース）は、典型的データでは、ほとんど見られず、加算器の出力は、実際に考えられるよりも、はるかに少ない時間で事実上安定する。
【００３２】
図４は、本発明の第１の代替実施形態７０を示す。この実施形態は、ゲートおよびラッチレベルまたはレジスタレベルで実現されてもよい。図４に示されたシステムは、パフォーマンスと同じレートで増加するハードウェアコストを有する（例えば、２倍のパフォーマンス増加に対して２倍のハードウェアコストであり、電力も約２の因子だけ増加する）。この解決法は、更に、構築するのが容易であり、クリティカルパスにおける論理量（ゲート遅延）を増大させない。この解決法は、パイプラインシステムの機能レベルに応用される。図５は、図４に示された第１の代替実施形態システム７０のタイミング図を示す。
【００３３】
この実施形態を説明するため、そして全く限定の意味ではなく、システムはパイプラインになっていると想定する。パイプラインシステム（今日のプロセッサでは普通である）において、元の組み合わせ論理の作業はいくつかのセクション／ステージへ分割される。各々のステージは、計算作業の一部分を実行するが、異なった時間に実行する。知られているように、古典的なパイプラインシステムは、アセンブリラインと同じ仕方で動作する。即ち、所与の時間に多くの製品がラインの中で組み立てられているが、各々の製品は組み立てプロセスの中の異なった時点にある。単一の計算の実行はほぼ同じ時間を取るが、多くの計算が同時にプロセス中であってよく、一種の並列性が実現されてパフォーマンスが改善される。
【００３４】
図４を参照すると、システム７０は元のシステムの２つの同じコピーを含み、コンパレータを付加され、交互のシステムクロックサイクルで隣接ステージをクロッキングする。２つのコピーは、対応するステージで相補形クロックを使用する。２つの半速度クロックは、図５で示されるように、１システムクロックサイクルだけ変位している。図５を参照すると、タイミング図は、セクションＡ（図４）で、エラーが起こらないタイミング、およびＲ１の出力でエラーが検出されるシステムタイミングを示す。
【００３５】
図４を再び参照して、図示されたハードウェアはシステムの全体的パイプラインの一部分であると想定する（例えば、Ｉｎｔｅｌ  Ｐｅｎｔｉｕｍ  ＩＩマイクロプロセッサは、パイプラインの中に約１２のステージを有する）。パイプラインは、それが存在しないときよりも高速のクロックを可能にする。プライム符号（’）の付いたハードウェアは、付いていない（上部）ハードウェアのコピーである。
【００３６】
システム７０の動作は次のとおりである。全体的システムへの入力は、システムクロックレートで入って来る。注意すべきは、少なくともこのハードウェアに関する限り、フルレートで動作している実際のクロックは存在しない。入力は交互のサイクルで各々のパイプライン７２および７４へ進む。時間０で、入力は線７８上の信号ｃｌｋ．０によってラッチＲ０  ７６へラッチされる。最初の計算は、組み合わせ論理ブロックＣＬ１  ８０で起こり、線８４上の信号ｃｌｋ．１によって１システムクロック遅れた時間１にラッチＲ１  ８２へラッチされる。信号ｃｌｋ．０およびｃｌｋ．１は、全体的システムクロックのレートの半分で実行される。
【００３７】
したがって、ラッチＲ１  ８２へラッチされる組み合わせ論理ブロックＣＬ１  ８０における計算は、１システムサイクルを取る。しかし、ブロックＣＬ１  ８０は、時間２までその入力を変化させない（図５を参照）。第２サイクルの終わりに、ラッチＲ１の出力（１サイクルの計算時間）は組み合わせ論理ブロックＣＬ１の最新出力と比較される（２サイクルの計算時間、したがって正しい答えが保証される）。２つの結果、即ち低速の結果と高速の結果とが等しければ、線８８上の信号ｇｏｏｄ．１が真であり、高速計算が正しく、訂正動作を取る必要がないことを示す。時間２（図５を参照）では、組み合わせ論理ブロックＣＬ２  ９０から来る２番目の計算出力がラッチＲ２  ９２の中へラッチされる。類似の動作が、パイプラインＡの残りのステージおよびパイプラインＢで起こる。結果は、全体的システムクロックレートの半分のレートでパイプラインＡ（およびＢ）から出る。ここで、システムクロックレートは、本発明なしのシステムクロックレートの２倍の速さである。
【００３８】
しかし、２つのパイプラインが存在し、元のシステムレートの０．５＊２＊２＝２倍で結果が生成される。
【００３９】
誤った計算が起こると、図５の９４で示される下部のタイミングになる。この場合、ラッチＲ１  ８２は、組み合わせ論理ブロックＣＬ１  ８０から来るラッチされた不正確結果を有する。これは、時間２の終わりにコンパレータ８７によって検出され、コンパレータ８７は、信号ｇｏｏｄ．１が偽であることを示す信号値を線８８上に提供する。したがって、組み合わせ論理ブロックＣＬ２  ９０も不正確な答えを有し、時間２でパイプラインＡの全部について線７８上の信号ｃｌｋ．０が動作不能にされる（図５を参照）。組み合わせ論理ブロックＣＬ１  ８０は、依然として入力ＩＡ１について同じ結果を計算しており、したがって時間３（図５を参照）で、ラッチＲ１  ８２は組み合わせ論理ブロックＣＬ１  ８０からの正しい結果をラッチする。組み合わせ論理ブロックＣＬ１  ８０は、その結果を計算するための３つ以上のサイクルを有し、したがってその結果は正しい。この正しい結果は、現在、パイプラインの中にあり、正常な高スループット動作が再開する。したがって、パイプラインＡは２システムクロックサイクルの誤り計算ペナルティを受けている。全体的に、これは１サイクルのシステム誤り計算ペナルティを導くが、２つのパイプラインからの出力を整列させる必要があれば、２システムサイクルだけパイプラインＢを停止させる必要があり、したがってこの実施形態の誤り計算では、ペナルティが２サイクルであると想定される。
【００４０】
典型的な遅延が、元のシステムワーストケース遅延の３分の１であり、３の因子だけパフォーマンスを改善したいのであれば、システムの第３のコピーが必要であり、元のシステムクロックよりも３倍速く実行されているシステムクロックレートの３分の１で、３つのクロックが実行される。注意すべきは、新しいシステムを動作させるために必要な電力も、パフォーマンスの増加と比例して増加することである。誤り計算ペナルティも、比例して３つのサイクルへ増加する。
【００４１】
図２に示されたシステムに対して、図４に示されたシステムの利点は、図４の実施形態が選択論理（図２の４２を参照）を必要とせず、より速いクロックを可能にし、ステージを介する遅延を増大させないことである。
【００４２】
依然として図４を参照して、新しい計算への入力は、サイクルごとにパイプラインＡおよびパイプラインＢへ交互に入る。同様に、全体的システムからの出力は、サイクルごとにパイプラインＡおよびパイプラインＢから交互に出る。更に注意すべきは、前述したように、２つのパイプラインが独立であることである（即ち、１つのパイプの計算は、他のパイプの計算に依存しない）。
【００４３】
図６は、本発明の更に他の実施形態１００を示す。注意すべきは、図６に示された実施形態１００は２倍のパフォーマンスを実現するが、ハードウェアコストは２倍の増加よりも小さく、電力が４の因子だけ増加することである。この実施形態の大きな特徴は、図１に示された一般的ディジタルシステムモデルを介して、全てのディジタルシステムへ応用できることである。
【００４４】
図６を参照すると、この実施形態は、比例パイプのミニバージョンを作成することを前提とするが、異なった仕方でステージの組み合わせ論理を構成する。図２に示された元の組み合わせ論理ブロックＣＬは、２つの等価遅延組み合わせ論理セクションＣＬａ１０２およびＣＬｂ１０４へ分割されるものと想定する（即ち、２の因子だけパイプラインが増加する）。これによってクロック周波数を２倍にすることができ、２相クロッキングシステムを使用して、他の２の因子だけ暗黙システム周波数を増加することができる。しかし、パイプラインを通る完全パスごとに（即ち、２つの暗黙システムクロックサイクルごとに）結果を得るだけであるから、全体的パフォーマンスは２の因子だけ増加する。
【００４５】
この実施形態は、図２に示された組み合わせ論理ブロック２２を２つのブロック１０２および１０４へ分割し、各々のブロックは、パイプラインのように自分自身のステージレジスタ１０６および１０８を含むが、ステージは交互のシステムサイクルでクロックされることが異なる。システム１００は、更に、コンパレータ１１０および１１２を含む。暗黙システムクロック周波数は元の４倍である。解決法の明示（物理的に存在する）ステージクロック周波数は、元のシステムクロック周波数の２倍であり、新しい明示システムクロック周波数と同じである。
【００４６】
システム１００は、更に、エラー処理論理１２０を含み、ユニットを制御してエラーを処理する。エラー処理論理は、線１２２上に信号ＬＤＲ．ａを生成し、線１２２はレジスタＲａ１０６の同期ロード動作可能線である。レジスタＲａ１０６は、線１２２上の信号ＬＤＲ．ａが真であり、レジスタＲａのクロックが０から１へ行くときにロードされる。したがって、レジスタは、組み合わせ論理ブロックＣＬａ１０２からのエラーが存在し、論理ブロックＣＬａが結果の計算にもっと時間を必要とするときか、先行ステージが余分の遅延なしに有効結果を生成したときにロードされる。エラー処理論理の中で線１２４の上に信号ＬＤＲｂを生成する手法は同じである。
【００４７】
図７は、図５に示された実施形態のタイミング図を示す。注意すべきは、２つの半速度クロックｃｌｋ．ａおよびｃｌｋ．ｂが、１つの暗黙システムクロックサイクルだけ変位していることである。明示システムクロックは、信号ｃｌｋ．ａと同じである。上部図１２６（図７）は、エラーが起こらないときのタイミングを示し、下部図１２８は、エラーがラッチＲａ１０６（図５）の出力で検出されたときのタイミングを示す。用語「ｓ１ａ」は、状態１、部分ａ（元の状態の最初の半分）が計算されていることを示す。
【００４８】
図４で示される実施形態と同じように、図６に示されたシステムのパフォーマンスは、システムのセクション数を増加することによって増加することができる。例えば、３の因子だけパフォーマンスを増加するためには、組み合わせ論理が３つのセクションへ分割され、各々のセクションが、３相クロックの１つの明確な相によってクロックされるレジスタで終わるようにされる。
【００４９】
基本的な３２ビット加算器は、同じ全体的組み合わせ論理（組み合わせ加算器自身）および入力用の少なくとも２つの３２ビットレジスタ（全部で６４ビットのレジスタ）、並びに場合によっては、出力用の追加の３２ビットレジスタを必要とするが、パイプラインシステムでは、出力レジスタは次のステージの一部としてカウントされるかも知れない。図６の実施形態に基づく加算器は、レジスタの９２ビットおよび３つの１０または１１ビットコンパレータを使用する。おおまかに、コンパレータの１ビットは、１ビットのレジスタと同じコストであると想定すると、図６で示される実施形態の全部のハードウェアコストは１２６レジスタビットに等しい。
【００５０】
図８で示されるタイミングエラー回避システム８００は、標準論理およびアナログ要素、ディジタル／アナログ変換器（ＤＡＣ）８０４を駆動するためのアップ／ダウンカウンタ８０２を含み、ＤＡＣ８０４は、アナログ電圧を生成してＶＣＯ８０６を駆動し、ＶＣＯ８０６は線８０８上にシステムクロックの周波数を設定する。例示的システムにおいて、カウンタ８０２は、常に、高々１だけ上下に変化している。ＶＬＳＩ技術の進歩と共に、これら要素の全ては、システムと同じチップ上で実現可能である。システムクロックからカウンタ設定への明示フィードバックループが存在するので、カウンタ８０２の絶対値は重要ではなく、カウンタ８０２はタイミングチェッカー８１０からのコマンドに応答して上下できるだけでもよいことに注意されたい。
【００５１】
タイミングエラー回避システム８００は、ディジタルマシンの中でレジスタ要素間のクリティカルパスを決定することによって構成される。例えば、パイプライン方式のＣＰＵにおいて、これは、最も遅い（クロック周期決定）ステージ、およびその論理を通るクリティカル（時間的に最も長い）パスを決定し、その論理の１ビット幅バージョンを構成することを含み、１ビットバージョンの入力における論理０から１または１から０への変化は、論理の終わりまで伝搬する。この遅延テスト論理は、マシンのいずれの正規論理へも接続されない。しかし、遅延テスト論理は、公称的に、マシンを通るワーストケースパスと同じ遅延を有する。交互の１および０で遅延テスト論理８１４を駆動し、後者は線８０２上のシステムクロックで同期される。このテスト入力のロケーションは、ＣＰＵで最も遅いパイプラインステージの開始パイプラインレジスタの出力に対応する。サイクルの終わりごとに、テストデータが、システムクロック端の前にパイプラインステージの出力レジスタへ達していなければ、システムは通常よりも遅く動作しており、システムクロック周波数が増加される。しかし、テストデータが出力レジスタに達しておれば、システムクロック周波数はシステム限界に近く、したがってシステムクロック周波数は低減される。
【００５２】
メインタイミングエラー回避回路の単純性を示すため、その実現の低レベルの詳細を図９で提供する。交互の１および０は、トグル動作のために配線されたフリップフロップ９０２によって作成される。遅延テスト論理８１４は、アドレスマルチプレクサを通る１ビットスライス、ＣＰＵのレジスタファイル、データ依存性を低減するためＣＰＵでオペランド転送に使用されるバイパスマルチプレクサ、およびデータパス幅を横切るゼロ検出コンパレータを含む。
【００５３】
排他的ＯＲゲート９０６は、線９０８上の遅延信号を正規化して、トグルフリップフロップ９０２の出力とは無関係の同一極性の信号を、タイミングチェッカー８１０への線９１０上に与える。遅延テスト論理８１４の遅延は、適切な安全限界を与えるため、システムの設計時に、前述したクリティカルパスの遅延よりも少し大きくなるように調整される。これは、高品質の論理シミュレータが設計プロセスで使用されるとき、比較的簡単な手順である。例示的なＣＰＵの場合、テストプログラムを実行しているＣＰＵの上で、構造シミュレーションが実行された。このシミュレーションから、非タイミングエラー回避（ベースライン）ＣＰＵについてワーストケース動作周波数が取得され、また正規のＣＰＵ論理のタイミング制限が破られる前にシステムクロック周波数が低減されることを確実にするため、タイミングエラー回避論理のパフォーマンスがチェックされた。これはタイミングエラーの回避を確実にした。
【００５４】
図９に示されたタイミングエラー回避システムの中には、システムの故障が起こる１つの場所が存在する。それは、遅延信号がフリップフロップの中にラッチされるタイミングチェッカー８１０の開始部である。遅延信号は時間的に任意の場所に配置されることができ、線９１４上のシステムクロックと同期しないので、遅延テスト信号がタイミングチェッカー８１０にラッチされている同じ時間に、その信号が値を変化させる可能性がある。これはタイミングチェッカー８１０の出力で準安定性を生じるかも知れない。その場合、タイミングチェッカーフリップフロップの線９１６上の論理出力信号の物理的値は０でも１でもない。準安定信号は、この状態に無限に止まることができ、システム論理の残りによる値を導くことが良く知られている。
【００５５】
図１０は、前のパラグラフで提起された問題に対処するタイミングチェッカー回路８１０の実施形態を示す。タイミングチェッカー回路８１０は、２つの異なった時間に線９１０上の遅延テスト信号Ｄ１をサンプリングする。次に、単一のサイクルの間、フリップフロップＱ１  １００２またはＱ２  １００４の１つだけが準安定状態にあるかも知れない。即ち、フリップフロップ１００２および１００４の双方が、同じサイクルで準安定になることはできない。なぜなら、線９１０上の遅延テスト信号は、１つのサイクルで高々１回だけ値を変化させるからである。周波数変化増分が適切に小さく保たれるかぎり、フリップフロップＱ１  １００２およびフリップフロップＱ２  １００４を観察してアップまたはダウンのクロック周波数変化を決定する論理の出力は、準安定条件が開始してから長い時間の後にのみサンプリングされる。タイミングチェッカー論理は、準安定条件がサンプリング点を過ぎて伝搬しないことを確実にする。例えば、準安定条件の処理の例について、図１１のケース３を参照されたい。ケース１および２は、それぞれ、より典型的な周波数の増加および減少を示す。
【００５６】
図１０で示されるように、ＶＣＯからの信号は線９１８上の入力である。この信号は、線９２０上にシステムクロックを生成するため２つの直列ゲート遅延へ入力される。
【００５７】
タイミングエラー回避論理は、比較的安価である。例えば、３２ビットＣＰＵについては、遅延テスト論理のハードウェアコストは、最も遅いパイプラインステージのコストの１／３２よりも小さい。可変周波数発振器は、小さなコストを付加するだけである。
【００５８】
ＣＰＵまたは他のディジタルシステムが、同じ遅延の２つ以上のパイプラインステージを有するならば、これらの全ては、単一のステージのケースについてここで説明したように処理され、それらからの「クロック周波数減少」信号は、クロック周波数の設定に優先権を有する。
【００５９】
本発明は、いくつかの好ましい実施形態に関して図示および説明されたが、本発明の趣旨および範囲から逸脱することなく、本発明の形式および詳細に対して様々な変更、省略、および追加が行われてもよい。
【図面の簡単な説明】
【００６０】
【図１】ディジタル同期システムの機能ブロック図である。
【図２】本発明によるディジタルシステムの第１の実施形態を示す図である。
【図３】図２に示されたシステムのタイミング図である。
【図４】本発明の第１の代替実施形態を示す図である。
【図５】図４に示された第１の代替実施形態のタイミング図である。
【図６】本発明の第２の代替実施形態を示す図である。
【図７】図５に示された実施形態のタイミング図である。
【図８】タイミングエラー回避システムのブロック図である。
【図９】図８に示されたタイミングエラー回避システムの詳細ブロック図である。
【図１０】図９に示されたタイミングチェッカー回路のブロック図である。
【図１１】図１０に示された実施形態のタイミング図である。
【図１】
2006508615.tif 000003
【図２】
2006508615.tif 000004
【図３】
2006508615.tif 000005
【図４】
2006508615.tif 000006
【図５】
2006508615.tif 000007
【図６】
2006508615.tif 000008
【図７】
2006508615.tif 000009
【図８】
2006508615.tif 000010
【図９】
2006508615.tif 000011
【図１０】
2006508615.tif 000012
【図１１】
2006508615.tif 000013
【手続補正書】
【提出日】平成17年7月28日(2005.7.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クロック手段を有し、前記クロック手段が、論理動作のエラー公差を有するシステム論理の動作を同期して制御する同期ディジタルシステムを動作させる方法であって、
論理動作入力を提供するステップと、
ディジタルシステムのクロック周波数を増加し、その間に、論理動作出力のエラーについてシステム論理をモニタリングし、故障をレポートするステップと、
前記論理動作の故障を検出したとき、故障に関連づけられたクロック周波数を、故障が検出されないクロック周波数へと遅くするステップと、
前記論理動作入力について正しいことが知られる結果を、最新論理動作出力の代わりに論理動作出力として使用するステップと
を含む方法。
【請求項２】
ディジタルシステムが少なくとも２つの構造的に同じパイプラインを含み、各々のパイプラインがレジスタを有し、前記レジスタが、論理動作を継続的に受け取って論理動作を継続的に発生し、各々の前記パイプラインのためにクロック周波数を異なった位相で、しかし同一の周波数で、動作させるステップを含む、請求項１に記載の方法。
【請求項３】
ディジタルシステムが少なくとも２つの構造的に同じパイプラインを含み、各々のパイプラインがレジスタを有し、前記レジスタが、論理動作を継続的に受け取って論理動作を継続的に発生し、各々の前記パイプラインのためにクロック周波数を異なった位相で、しかし同一の周波数で、動作させるステップを含む、請求項１に記載の方法。
【請求項４】
論理動作入力および論理動作出力を有する同期ディジタルシステムであって、
論理動作のエラー公差を有するシステム論理の動作を同期して制御するクロック手段であって、第１のクロックおよび少なくとも１つの第２のクロックを含み、前記第２のクロックが前記第１のクロックと同じであるが位相外れであるクロック手段と、
前記第２のクロックに関連づけられ、論理動作出力のエラーについてシステム論理をモニタリングし、故障をレポートするコンパレータと、
前記論理動作の故障を検出したときディジタルシステムのクロック周波数を増加するクロック制御論理であって、故障を検出したとき第１のクロック、それによって第２のクロックへ遅延を加えるように動作し、遅延されたクロックから既知の良好な出力が得られるようにし、故障が検出されない周波数でクロックが動作するようにするクロック制御論理と、
を備えるシステム。
【請求項５】
タイミングエラーを回避しながらシステム論理の動作を同期して制御するクロック手段を有する同期ディジタルシステムを動作させる方法であって、
論理動作入力を追跡論理へ提供し、前記追跡論理が前記システム論理のワーストケース遅延パスを表すステップと、
ディジタルシステムのクロック周波数を増加し、その間に、論理動作出力のエラーについて追跡論理をモニタリングし、故障をレポートするステップと、
前記追跡論理動作の故障を検出したとき、故障に関連づけられたクロック周波数を、故障が検出されないクロック周波数へと遅くするステップと、
を含む方法。
【請求項６】
更に、その後で、故障が再発生するまで前記クロック周波数を増加するステップを含む、請求項５に記載の方法。
【請求項７】
追跡論理が動作安全限度を含み、故障がシステム論理で発生する前に故障が追跡論理で発生することを保証する、請求項６に記載の方法。
【請求項８】
前記追跡論理の入力が、交互の論理１および論理０を含むディジタル値のシーケンスである、請求項５に記載の方法。
【請求項９】
前記追跡論理の入力が、交互の論理１および論理０のディジタルビットストリームである、請求項８に記載の方法。
【請求項１０】
論理遷移タイミングが、単独で、あまりに速い状態への遷移、およびあまりに遅い状態への遷移を決定する、請求項５に記載の方法。
【請求項１１】
タイミングエラーを回避しながらシステム論理の動作を同期して制御するクロック手段を有する同期ディジタルシステムであって、
前記システム論理のワーストケース遅延パスを表す追跡論理と、
前記追跡論理へ論理動作入力を提供する信号入力手段と、
前記追跡論理の論理動作出力のエラーをモニタリングし、故障をレポートする追跡論理モニタと、
前記追跡論理モニタとのフィードバックループを有する周波数制御可能クロックと、
前記追跡論理モニタが前記追跡論理の中で動作の故障を検出したとき、前記クロックの周波数を、故障が検出されないクロック周波数へと遅くするサーボと、
を備えるシステム。
【請求項１２】
故障が検出されなかった後、前記クロックの周波数を増加するように前記サーボが動作する、請求項１１に記載のシステム。
【請求項１３】
前記追跡論理が、動作安全限度を生成するための時間遅延を含み、故障がシステム論理で発生する前に、故障が追跡論理で発生することを保証する、請求項１２に記載のシステム。
【請求項１４】
前記信号入力手段が、交互の論理１および論理０を含むディジタル値のシーケンスを生成するように動作する、請求項１２に記載のシステム。
【請求項１５】
前記信号入力手段が、交互の論理１および論理０のディジタルビットストリームを生成するように動作する、請求項１４に記載のシステム。
【請求項１６】
前記追跡論理モニタが、論理遷移を発生する排他的ＯＲ論理ゲートを含み、タイミングが、単独で、あまりに速い状態への遷移およびあまりに遅い状態への遷移を決定するようにする、請求項１１に記載のシステム。
【請求項１７】
追跡論理モニタが、更に、フリップフロップを含み、前記フリップフロップが前記排他的ＯＲ論理ゲートの出力に応答して周波数制御可能クロックの周波数を制御する、請求項１６に記載のシステム。
【国際調査報告】
2006508615.tif 000014