(57)【要約】【課題】同期−非同期−同期インターフェースを介するデータ転送のためのシステムおよび方法を提供すること。【解決手段】同期および非同期データ転送間のインターフェースは、データ転送用のパイプラインを形成するために互いに結合された複数のステージを含む。複数のステージは、同期−非同期データ転送を実行する第１のステージと、非同期−非同期データ転送を実行する少なくとも１つの中間ステージと、非同期−同期データ転送を実行する最後のステージとを含む。同期クロック・パスは、タイミング信号が第１と最後のステージに与えられたときに当該ステージがオペレーションを実行することができるように、複数のステージを横切りタイミング信号を伝播させる。【選択図】図１
2004526241.tif 000002
【特許請求の範囲】
【請求項１】
同期−非同期−同期インターフェースであって、
同期−非同期データ転送を実行する第１のステージと、非同期−非同期データ転送を実行する少なくとも１つの中間のステージと、非同期−同期データ転送を実行する最後のステージとを含む、データ転送のためのパイプラインを形成するように互いに結合された複数のステージと、
タイミング信号が前記第１および最後のステージに与えられたときに当該ステージがオペレーションを実行することができるように、前記複数のステージを横切り前記タイミング信号を伝播させる同期クロック・パスと
を含む、同期−非同期−同期インターフェース。
【請求項２】
前記第１および最後のステージがローカル・クロック回路を含み、
前記ローカル・クロック回路は、前記タイミング信号と同期クロック信号のＡＮＤをとるためのＡＮＤゲートを含む、
請求項１に記載のインターフェース。
【請求項３】
前記タイミング信号は、１ビット幅同期レジスタによって伝播される、請求項２に記載のインターフェース。
【請求項４】
前記第１のステージに対応する前記ローカル・クロック回路は、前記第１のステージに結合されるプリチャージ回路をさらに含み、
前記プリチャージ回路は、ハンドシェイキング肯定応答がデータを受信していた少なくとも１つの中間のステージから受信されたときにプリチャージ・パルスを生成する、
請求項２に記載のインターフェース。
【請求項５】
前記第１のステージに対応する前記ローカル・クロック回路は、ローカル・クロック信号が変化するときに生成され、プリチャージ・パルスが変化するときにリセットされる有効データ信号をさらに含み、
前記有効データ信号は少なくとも１つの中間のステージに送られて、有効データが利用可能であることを示す、
請求項４に記載のインターフェース。
【請求項６】
前記最後のステージに対応する前記ローカル・クロック回路は、前記最後のステージに結合されるプリチャージ回路をさらに含み、
前記プリチャージ回路は、プリチャージ・パルスと、前記同期クロックの変化によって開始され、前記最後のステージのための前記ローカル・クロック信号の変化によって終了される肯定応答パルスとを生成する、
請求項２に記載のインターフェース。
【請求項７】
前記最後のステージに対応する前記ローカル・クロック回路は、前記ローカル・クロックと、前記少なくとも１つの中間のステージからの有効データ信号とがデータが無効であることを示している場合に、生成されるエラー信号をさらに含む、
請求項２に記載のインターフェース。
【請求項８】
前記少なくとも１つの中間のステージは、順方向および逆方向においてパイプライン化およびインターロックされる複数のステージを含む、
請求項１に記載のインターフェース。
【請求項９】
同期−非同期−同期データ転送の方法であって、
同期−非同期データ転送を実行する第１のステージと、非同期−非同期データ転送を実行する少なくとも１つの中間のステージと、非同期−同期データ転送を実行する最後のステージとを含む、パイプラインを形成するように互いに結合された複数のステージを提供するステップと、
データ転送を許可するためのオペレーションが実行されるときのみ、前記複数のステージの前記第１のステージと前記最後のステージのうち１つをイネーブルするステップとを含み、
前記第１および最後のステージは、前記複数のステージの各々に含まれたクロック回路によって生成されるローカル・クロック信号によってイネーブルされ、前記ローカル・クロック信号は、同期クロック信号およびタイミング信号によって生成される、
方法。
【請求項１０】
同期クロック・ゲーティング・インターフェースであって、
パイプラインを形成するように互いに結合された複数の同期ステージと、
同期クロック信号およびタイミング信号に基づき、対応するステージでローカル・クロック信号を生成する、前記複数のステージの各々に結合されたクロック回路とを含み、
前記対応するステージでオペレーションが実行されるときに、前記ローカル・クロック信号が前記対応するステージをイネーブルする、
同期クロック・ゲーティング・インターフェース。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ転送、より詳細には、同期−非同期−同期インターフェースを介してデータを転送するためのシステムおよび方法に関する。
【背景技術】
【０００２】
インターロック・パイプライン式相補型金属酸化物半導体（ＩＰＣＭＯＳ）回路および技術が、米国特許第６,１８２,２３３号に開示されている。テスト・サイトにおけるこれらのＩＰＣＭＯＳ回路の実装の結果を記載する論文は、本明細書ではＩＳＳＣＣ論文として後で参照する、ＩＳＳＣＣ  ２０００ダイジェスト・オブ・テクニカル・ペーパーズ、セッション１７、ロジックおよびシステム、論文ＷＡ１７．３、Schuster 他による、”Asynchronous Interlocked Pipelined CMOS Circuit at 3.3.-4.5 GHz”という題目で発表された論文に見られる。このＩＳＳＣＣ論文では、非同期インターロックのローカルに生成されたクロックが、０．１８ミクロン、１．５ボルトのバルクＣＭＯＳ技術において、４．５ＧＨｚ程度の周波数で浮動小数点乗算器（ＦＰＭ）の３対２のコンプレッサ・ツリーを介してパスをドライブする。２倍以上の電力削減が、これらのＩＰＣＭＯＳ技術で見込まれる。
【０００３】
上で参照した米国特許第６,１８２,２３３号では、ハンドシェイキングのための非常に小さいオーバーヘッドを有する、順方向および逆方向に非同期にインターロックするブロックについての回路と技術が開示されている。これは非常に高いパフォーマンスを可能にする。
【特許文献１】
インターロック・パイプライン式相補型金属酸化物半導体（ＩＰＣＭＯＳ）回路および技術、米国特許第６,１８２,２３３号。
【特許文献２】
Cook 他、”ASYNCHRONOUS PIPELNE CONTROL INTERFACE”、米国特許出願番号０９／７４６，６４７。
【非特許文献１】
Schuster 他、”Asynchronous Interlocked Pipelined CMOS Circuit at 3.3.-4.5 GHz”、ＩＳＳＣＣ  ２０００ダイジェスト・オブ・テクニカル・ペーパーズ、セッション１７、ロジックおよびシステム、論文ＷＡ１７．３。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
同期パイプラインは、通常、パイプラインにおいて望ましくない遅延を引き起こすことがあるクロック・スルーの問題を受けやすい。より高性能かつ低電力を達成するために、既存の同期設計の部分を非同期クロックおよび回路に置き換えることは有効であろう。しかしながら、システムの同期部分と非同期部分との間のインターフェースは実現することが難しい場合がある。
【０００５】
そのために、信頼性の有る方法かつ異なる周波数で同期動作モードから非同期動作モードに進み、次に、同期モードに戻ることを可能にするインターフェースの必要性が存在する。
【課題を解決するための手段】
【０００６】
本発明により、同期−非同期データ転送を実行する第１のステージと、非同期−非同期データ転送を実行する少なくとも１つの中間ステージと、非同期−同期データ転送を実行する最後のステージとを含む、データ転送のためのパイプラインを形成するように互いに結合された複数のステージと、タイミング信号が第１と最後のステージに与えられたとき当該ステージがオペレーションを実行することができるように、複数のステージを横切ってタイミング信号を伝播させる同期クロック・パスとを含む、同期−非同期−同期インターフェースが提供される。
【０００７】
本発明は、同期−非同期データ転送を実行する第１のステージと、非同期−非同期データ転送を実行する少なくとも１つの中間ステージと、非同期−同期データ転送を実行する最後のステージとを含む、パイプラインを形成するように互いに結合された複数のステージを提供するステップと、データ転送を許可するためのオペレーションが実行されるときだけ、複数のステージの第１のステージと最後のステージのうちの１つをイネーブルするステップとを含む同期−非同期−同期データ転送のための方法をさらに提供し、第１のステージと最後のステージは、複数のステージの各々に含まれたクロック回路によって同期クロック信号とタイミング信号で生成されたローカル・クロック信号によりイネーブルされる。
【０００８】
本発明は、パイプラインを形成するように互いに結合された複数の同期ステージと、同期クロック信号とタイミング信号に基づき対応するステージでローカル・クロック信号を生成する、複数のステージ各々に結合されたクロック回路とを含む同期クロック・ゲーティング・インターフェースをさらに提供し、対応するステージでオペレーションが実行されると、ローカル・クロック信号は対応するステージをイネーブルする。
【０００９】
次に、例示としての本発明の実施形態を添付の図面を参照しながら説明する。
【発明を実施するための最良の形態】
【００１０】
図に示した要素が、様々なハードウェア、ソフトウェア、またはこれらの組み合わせの形態で実装され得ることは理解されよう。好ましくは、これらの要素は、１つまたはそれ以上の適切にプログラムされた汎用の集積回路のハードウェアで実装され、これらはプロセッサ、メモリ、および入出力インターフェースを含むことができる。
【００１１】
同じ数字は同じあるいは類似の要素を表わしている図、最初に図１を参照すると、本発明の一実施形態による同期（ＳＹＮ）−非同期（ＡＳＹＮ）−同期（ＳＹＮ）インターフェース１０が示されている。同期タイミング・パス１１はＣＬＫＳＹＮ信号によってクロックされる１ビット幅ラッチ１２を含み、それらはｅビットとして参照される１入力を有する。これらのラッチ・ステージ１２の各々はＣＬＫＳＹＮによってクロックされるため、ｅビットがラッチ１２を介して伝播するために要する時間は、パスまたはパイプ１１におけるラッチ・ステージ１２の数とＣＬＫＳＹＮの周波数または期間の関数である。
【００１２】
”ｅ”ビット・パス１１（例えば、図１のステージ９０ａ、９０ｂ、９０ｃ）は、同期タイミング・チェーンである。機械の同期部分で処理するためにデータが非同期パスに与えられると、”１”がこのチェーンの第１のステージ（９０ａ）に導入される。このようなデータが導入されない同期サイクルでは、９０ａに入力するｅビットは０となる。図１では、所与の同期サイクルでステージ９０ａに導入されたｅビットが、１同期サイクル遅れてステージ９０ｂに伝播し、そしてステージ９０ａでの導入から正確に２同期サイクル後にステージ９０ｃに達する。このように、ｅビットは、２同期サイクルの遅延でもってタイミング・チェーンを介して伝播される。ステージ９０ｃの”１”は、機械の同期部分の中にデータを置く準備ができていることを示すので、非同期パイプライン全体を介してデータ伝播を可能にするためにｅビット・タイミング・チェーンに十分なステージを提供することが必要である。図１は、データが２同期サイクルで非同期パイプラインを介して伝播することができることを示している。
【００１３】
インターフェースの全体的なオペレーションは次のように機能する。データが機械の同期部分によって非同期部分に与えられるとき、”１”がステージ９０ａの中に置かれる。これは、２２ａのローカル・クロックＣＬＫＥ１を始動するための信号として供給される。その後、データは、非同期クロックＣＬＫＥ１、ＣＬＫＥ２、およびＣＬＫＥ３の制御のもとに２２ａ、２２ｂ、および２２ｃを介して２２ｄに伝播され、非同期クロックは、ステージのクロック・ブロック３０、３１ａ、３１ｂをリンクするＶＡＬＩＤおよびＡＣＫ信号（例えば、インターロッキング信号）によって制御される。同時に、ステージ９０ａで導入された”１”はステージ９０ｂへ伝播され、そしてステージ９０ｃへの入力に現われる。次の同期クロックで（現在は、データが機械の非同期部分へ導入されてから２同期サイクル後）、ｅビットが同期クロックをＣＬＫＥ４の中にゲートするように働き、それにより、システムの再同期を完了する。
【００１４】
これは、ある特定の関係が満足されたことを意味することに注意されたい。初めに、ｅビット・パスに提供される遅延のステージの数は、最も高いオペレーティング同期クロック周波数において、ｅビット・パスにおける全遅延が、非同期パスを介する遅延と同じになるようにすべきである。これは、同期ステージの標準的なタイミング要件（すなわち、クロック期間が、ステージのロジックを介する遅延と、ラッチ・セット・アップ、ホールド、およびクロック・スキューに対する許容値との和と同じであるという要件）に類似するタイミング要求である。非同期パイプラインが以前の同期パイプラインに代わるために使われる場合、一般に、元の同期パイプラインにおけるステージの数に対応する遅延をｅビット遅延に提供することは適切であろう。この場合、非同期パイプラインからデータを移動するのに遅延がある場合に、全てのパイプライン・データを維持するための場所を提供するように、非同期パイプラインは、元の同期パイプラインと同数のラッチ・ステージを有すべきである。
【００１５】
最後に、ステージ９０ａに導入されるｅビットはステージ２２ａで非同期クロックＣＬＫＥ１を始動するために使用され、そのクロックが順番にＣＬＫＥ２およびＣＬＫＥ３を始動し、そしてステージ９０ｃへの入力に到達する同じｅビットがＣＬＫＥ４をイネーブルするので、処理のために新しいデータが非同期パイプラインへ与えられないときは、パイプラインのクロックは自動的かつスムースにシャットダウンすることに注意されたい。
【００１６】
さらに、３つの異なったインターフェース・タイプを有するステージ２２ａ−２２ｄを含むデータ用の並列パス２０がある。初めに、ＣＬＫＳＹＮとｅビットがローカル・クロックＣＬＫＥ１を生成するためにＡＮＤがとられるとき、第１のステージ２２ａに実装される同期−非同期インターフェース２４がある。次に、非同期−非同期転送が生じる中間ステージ２２ｂ−２２ｃがある。これらの非同期−非同期インターフェースは米国特許第６，１８２，２３３、ＩＳＳＣＣ論文および２０００年１２月２１日出願の米国特許出願番号０９／７４６，６４７号に詳細に記載されている。非同期−同期インターフェース２８は、最後のステージ２２ｄに実装される。ステージ２２ｄにおいて、ｅビットが同期１ビット・ラッチ１２を介して伝播され、そしてローカル・クロックＣＬＫＥ４を生成するために同期クロックＣＬＫＳＹＮとＡＮＤがとられる。ＣＬＫＥ２およびＣＬＫＥ３がステージ２２ｂおよび２２ｃで提供される。各々のインターフェース・タイプ用の回路を以下で詳細に説明するときに、第１のステージ２２ａと最後のステージ２２ｄ間の回路における違いをカバーする。有効パス３５は、データ・パス２０のデータ転送を追跡するため、およびデータ・パス２０におけるステージ間で有効データの受信を知らせるために設けられる。
【００１７】
ラッチ１８の各々は、ローカル・クロック・イネーブル信号ＣＬＫＥ（ＣＬＫＥ１−ＣＬＫＥ４）によってイネーブルされ、前のステージからのデータ転送を実行する。これらのステージは、インターロックされている。このことは、応答（ＡＣＫ）および有効（ＶＡＬＩＤ）データ信号が生成され、隣接するステージ間を通過し、データが有効で、パイプラインの各ステージ間で受信されることを保証することを意味する。有利なことに、回路１０の非同期中間ステージは、ＩＳＳＣＣ論文に記載されているように順方向および逆方向でパイプライン化されインターロックされる。パイプライン・ステージ２２は、ロジック回路１７を含むことができる。
【００１８】
図１乃至図３を参照すると、同期−非同期の第１のステージのローカル・クロック回路３０が回路３２でｅビットとＣＬＫＳＹＮのＡＮＤ機能（ＡＮＤゲート３３）を実行し、下流の非同期ステージのための有効信号を生成し、そして図３に示すようにこの第１のステージ用のプリチャージ・クロックＣＬＫＰを生成する。グローバル同期クロックＣＬＫＳＹＮと１ビット幅ラッチ・ステージ１２に対するｅビット入力のＡＮＤが、図２の回路に示すように第１のステージでローカル・クロックＣＬＫＥ（ＣＬＫＥ１）をイネーブルする。たとえＣＬＫＳＹＮが連続的に供給されていても、ｅビットで示されるように、実行されるべきオペレーションがあるときだけＣＬＫＥ１をイネーブルすることより、かなりの電力削減が結果として生じる。
【００１９】
図２を参照すると、図１の回路３０がｅビットとＣＬＫＳＹＮを理論的に結合してイネーブル・クロック信号ＣＬＫＥを供給するためのＡＮＤゲート３３を含む。図示の実施形態では、回路３２は、ＮＦＥＴ４１、ＰＦＥＴ４３、およびインバータ４７を用いる。図３を参照すると、図１の回路３０に含まれる回路５０は、第１のステージ２２ａのローカル・プリチャージ・クロックＣＬＫＰ１を生成する。プリチャージ・クロック回路５０は、その入力として、データを受信したことおよび新しいデータを送信できることを示す下流のステージからの非同期応答信号ＡＣＫ（図１も参照）とグローバル同期クロックＣＬＫＳＹＮとを有する。ローカル・プリチャージ・クロックＣＬＫＰは、ＣＬＫＳＹＮ（およびＣＬＫＥ１）がローになった後にだけイネーブルされ、イネーブル・クロックおよびプリチャージ・クロックの両方が同時にオンになる可能性を回避する。この可能性は、特により低い周波数で、非同期に生成された応答信号ＡＣＫがローカル・プリチャージ・クロックＣＬＫＰを生成するために使用された場合にだけあり得る。
【００２０】
回路５０は、図示の実施形態では、ＮＦＥＴ４１、ＰＦＥＴ４３、ラッチ４５、およびインバータ４７を用いる。次に説明するような機能を提供するために、他の回路構成を用いることもできる。サイクルの始めでは、ＣＬＫＰＤがハイ、ノードｎ３がハイ、そしてノードｎ２がローである。応答がある場合、ハイになるパルスがＡＣＫ入力で生じる。ＡＣＫのこの変化はノードｎ３およびｎ２で取り込まれ、ノードｎ３がローになりノードＮ２がハイになる。ＣＬＫＳＹＮがすでにローになっている場合、ノードｎ１はハイになりノードｎ４をローにする。ＣＬＫＳＹＮがまだハイの場合、ノードｎ１はローになり、そしてノードｎ４はＣＬＫＳＹＮがローに変化するまでハイのままである。ノードｎ４のディスチャージは、２つのインバータ４２の遅延の後のＣＬＫＰのディスチャージ、および２つのインバータ４４の遅延の後のＣＬＫＰＤのディスチャージに続く。ＣＬＫＰＤのロー状態は、ノードｎ３をハイにプリチャージする。これは、次にノードｎ４をハイにして、それによりＣＬＫＰがハイになり、最後にＣＬＫＰＤがハイになる。この時までに非同期応答ＡＣＫパルスは、ローへ変化するための十分な時間を持ち、別のサイクルが開始できるようになる。
【００２１】
図４を参照すると、図１の回路３０は有効信号ＶＡＬＩＤを生成する有効回路６０を含み、第１のステージ２２ａのロジック１７を介する最悪の場合のパスをエミュレートする。ロジック６２は、ステージ２２ａのロジック１７の遅延特性をシミュレートする。ロジック６２は、これらの遅延シミュレーションに基づき有効信号のためのタイミングを生成する。有効回路６０を介する遅延に、隣接する非同期ハンドシェイキング・ブロック３１ａのストローブ回路（ＡＮＤゲート）３２でＣＬＫＥを生成するために要する時間を加えたものは、最後のデータ到達時間にデータ・パス２０および有効パス３５の間のトレランス変動のためのマージンを加えたものに等しい。図４に示すように、ＣＬＫＥがＶＡＬＩＤ信号を始動し、ＣＬＫＰがこの信号をリセットする。ＶＡＬＩＤ信号は、ＣＬＫＥが生成されるクロック・サイクル毎に生成される。
【００２２】
図１の中間ステージ２２ｂ−２２ｃのための非同期−非同期転送を、前述の引用文献のインターロッキング方法によって実行することができる。他の非同期−非同期転送技術を用いることもできる。図１に示したような、非同期−同期転送で必要とされる回路および概念を次に説明する。
【００２３】
再び図１を参照し、非同期−同期の最後のステージのローカル・クロック回路７０が図５−図７でより詳細に示される。ローカル・クロック回路７０は、イネーブル・クロック回路７４（図５）、プリチャージ・クロック回路７６（図６）、およびエラー回路７８（図７）を含む。
【００２４】
図５を参照すると、ＣＬＫＳＹＮがハイになりかつハイのｅビットが図１の最後のステージ２２ｄに対応する同期レジスタ１２にあるとき、イネーブル・クロックＣＬＫＥが回路７４で生成される。回路７４はラッチ４５および３つのインバータ４７を有するバッファを含み、そこから出力されるＣＬＫＥのためのドライブを提供する。
【００２５】
図５の非同期−同期イネーブル・クロック回路７４は、図２の同期−非同期イネーブル・クロック回路３２に類似する。回路３２および７４はいずれも、ｅビットと同期グローバル・クロックＣＬＫＳＹＮのＡＮＤをとる。しかしながら、イネーブル・クロック回路７４内では、ｅビットが数サイクル遅延されている。遅延のサイクル数は、１ビットのハイの同期レジスタ１２を介して、ｅビットを伝播させるために要するサイクル数である。図１に、２サイクルの遅延を示す。これは固定された遅延ではないが、同期グローバル・クロック周波数に依存することは理解されよう。サイクル数は示された実施形態では固定されているが、時間は固定されていない。これは、パイプが設計されると、周波数が変化しても、データは常にパイプの出力に固定されたサイクル数だけ遅れて現れることを意味する。
【００２６】
図６を参照すると、プリチャージ・クロックＣＬＫＰがこのステージで回路７６によって生成される。非同期−同期ステージ用のプリチャージ回路７６は、上流のステージから受信されたデータである応答信号ＡＣＫと非同期−同期ステージで必要とされるプリチャージ・クロックＣＬＫＰの両方を生成する。ＡＣＫとＣＬＫＰの両者は、ＣＬＫＳＹＮとＣＬＫＥがローに変化した後に生じるように設計される。回路はワンショットであり、ＣＬＫＳＹＮがローになってノードｎ１２をハイにすることによってトリガされる。ＣＬＫＥもローになるが、図５のＣＬＫＥ回路７４を介するパスによりＣＬＫＳＹＮから遅延される。そのため、ＣＬＫＳＹＮがローに変化するとき、ＣＬＫＥとノードｎ１１はハイであり、ノードｎ１３はローになる。ＡＣＫがハイになり、ＣＬＫＰは下がる。ＣＬＫＥが下がると、ノードｎ１１も下がり、ＡＣＫはローになり、ＣＬＫＰが立ち上がる。ＡＣＫおよびＣＬＫＰのパルス幅は、ノードｎ１２の立ち上がりとノードｎ１１の下降の間の遅延によって決定され、この遅延の大部分はＣＬＫＥ回路７４から生じる。
【００２７】
図７を参照すると、データは到達していないが、イネーブルｅビットとＣＬＫＳＹＮ、従ってＣＬＫＥがハイになるとき、エラー回路７８が活動化される。これは、タイミングにエラーがないならば、起きるべきではない。エラー回路７８への入力は、ＣＬＫＥおよび転送ステージからのデータ有効信号ＶＡＬＩＤである。正しいタイミングでは、ＣＬＫＥがハイになり、データ・パス２０のラッチ１８（図１）をイネーブルするとき、この非同期−同期ステージの入力における新しいデータは有効である。これは、ローのＶＡＬＩＤ信号によって示される。ＶＡＬＩＤがまだハイであり、ローに変化してなかった場合、ＣＬＫＥがハイになると、エラー出力信号はハイになりエラーが生じたことを示す。
【００２８】
同期−非同期−同期インタ−フェースの回路と概念を検証するために、図８に示すような回路１００が構築され、発明者によってシミュレートされた。回路１００は６つのステージ１０１−１０６を含み、それらは、図１乃至７を参照して説明した特徴を含む。ステージ１０１は、同期−非同期インターフェース（Ｓ２Ａ）を含む。このＳ２Ａステージの回路は、図２乃至４の回路を含む。ステージ１０２から１０５は、前述の引用文献に記載されている非同期−非同期インターフェース（Ａ２Ａ）を含むことができる。ステージ１０６は、非同期−同期インターフェース（Ａ２Ｓ）である。Ａ２Ｓステージ１０６の回路は、図５乃至７の回路である。
【００２９】
図９を参照すると、同期クロックＣＬＫＳＹＮ、ステージ１０１のラッチ（例えば、図１のラッチ１２を参照）用のｅビット［ｅ］−ＳＡ（同期−非同期）およびステージ１０６のラッチ（例えば、図１のラッチ１２を参照）用の［ｅ］−ＡＳ（非同期−同期）が、イネーブル・クロック、プリチャージ・クロック、およびエラー信号を生成する。ｅビットは、２．５ＧＨｚで２サイクルの遅延と共に、ステージ１０１の同期−非同期インターフェースからステージ１０６の非同期−同期インターフェースまで同期タイミング・パスを介して伝播される。”［ｅ］−ＳＡ”は同期−非同期インターフェースへ導入されるｅビットであり、”［ｅ］−ＡＳ”はｅビット遅延パスの最後のステージへの入力に現れる遅延されたｅビットであることに注意されたい。処理すべきデータが実際にあることを示すため、信号”［ｅ］−ＳＡ”だけを外部環境から供給する必要がある。
【００３０】
２つの連続するｅビットのあとに２サイクルのギャップおよび別のｅビットが続く場合の正しいオペレーションを示す。これは、同期パスにおける２サイクルの遅延である（［ｅ］−ＳＡおよび［ｅ］−ＡＳ）。図示のように、処理されるべきデータを非同期パイプラインに与える２つの連続する同期サイクルがあり、そのあとに処理するためのデータを与えない２つの連続する同期サイクルが続き、データを処理する別の同期サイクルが続く。［ｅ］−ＡＳは［ｅ］−ＳＡと同じパターンを示すが、ｅビット遅延チェーンで２同期サイクルだけ遅延されていることに注意されたい。
【００３１】
イネーブル・クロック信号ＣＬＫＥ１−ＣＬＫＥ６はそれぞれステージ１０１−１０６用である。６ステージ・パイプで測定された待ち時間は８８０ｐｓであり、２つの４００ｐｓサイクルにイネーブル・クロックを生成するための遅延を加えたものに一致する。２．０ＧＨｚの周波数を除いては同一の条件が図１０の波形において繰り返される。ここでも、同期−非同期−同期インターフェースのための正しいオペレーションが、より遅い周波数に対するいくつかの追加のマージンとともに示される。
【００３２】
図１１を参照すると、ｅビット遅延が１サイクルに減少されているが、他の条件は図１０と同じである。ｅビットにおけるこの１サイクルの遅延ではパイプの待ち時間は単一サイクルｅビット遅延より大きく、エラー信号がハイになり、タイミング・エラーが生じたことを示す。これは、エラー回路および”エラー”信号によるタイミング・エラーの検出を示す、適正でない設計を表すことに注意されたい。このテスト・ケースで導入された設計エラーは、非同期パイプラインを介する遅延よりも短い、ｅビット遅延チェーンの計画的な供給である。
【００３３】
概算では、チップ電力のおよそ７０％がクロックおよびラッチで消費される。従って、ｅビットあるいは実行すべきオペレーション、すなわち同期−非同期−同期インターフェースの図９乃至図１１の波形に示すように、スイッチング・ファクタがある場合だけ、クロックをイネーブルすることによって、かなりの電力削減になる。低電力を達成する直接的な方法は、同期システム、例えば乗算器における既存のパイプライン化されたステージを、同期−非同期インターフェースに置き換えることである。この同期−非同期パスは、従来の同期アプローチよりもかなり低い電力ですむ。これは、第一に、実行すべきオペレーションがある場合だけクロックをイネーブルするからであり、第二に、クロック・ローディングが減少するためである。減少したクロック・ローディングはインターロックされたオペレーションの結果として生じ、クロックはラッチへの入力データが有効である場合だけイネーブルされる。
【００３４】
処理すべきデータが実際にマクロあるいは機能ユニットに与えられる（同期）サイクル部分は、”マクロ・スイッチング・ファクタ”あるいはスイッチング・ファクタと呼ばれる。マクロが本明細書で説明する技術を使用して、非同期パイプラインとして実装される場合、マクロ・スイッチング・ファクタは、マクロの同期−非同期インターフェースへのｅビットが１にセットされるサイクル部分と一致することに注意されたい。これは、実際に必要とされたときだけ、ローカルに生成されたクロックを活性化するという事実により、本明細書で説明する技術を使用するシステムで用いられる電力の簡単な見積りを導く。
【００３５】
図１２を参照すると、従来の同期アプローチおよび本発明を具体化するＩＰＣＭＯＳの両方について、電力対マクロ・スイッチング・ファクタのプロットを示す（電力のおよそ７０％の消費は、クロックおよびラッチにおけると仮定する）。大部分のマクロが、およそ１０％−２０％の間のスイッチング・ファクタを有する。
【００３６】
高速および低電力を達成する別の方法を図１３および図１４の例で示す。図１３における２つの同期浮動小数点乗算器（ＦＰＭ）ＦＰＭ１およびＦＰＭ２が、図１４の単一同期−非同期−同期ＦＰＭユニット２００によって置き換えられている。要件は、この単一非同期ＦＰＭ２００が既存の同期乗算器ＦＰＭ１およびＦＰＭ２の周波数の２倍で動作することである。
【００３７】
非同期アプローチは、インターロックされてパイプライン化されたローカル・クロック生成と、データが有効である場合にだけクロックをイネーブルすることから生じる簡単なラッチ構造とから、より速い速度を達成する。説明してきた同期−非同期−同期インターフェースは、この乗算器アプリケーションに制限されるものではなく、高速かつ低電力が必要とされるところであればどこにでも使用することができる。本発明は、特に、高度にパイプライン化されたステージへの応用で有効である。
【００３８】
例えば、ＩＰＣＭＯＳを使用することにより、同期−非同期−同期インターフェースを実装するために必要とされる概念および回路を実例で説明してきた。本発明により、より高速かつ低電力を達成することができる。
【００３９】
図１５を参照すると、細分化されたクロック・ゲーティング回路３００が本発明の別の実施形態に従い例示される。図１５に示したような同期システムに、細分化クロック・ゲーティングを提供するように、前述の概念を変更することができる。ｅビットは、回路３０１においてステージ３０２毎に同期クロックＣＬＫＳＹＮとＡＮＤをとられ、ローカル・イネーブル・クロック（ＣＬＫＥ）を生成する。ｅビットは、１ビット幅レジスタ３０１を介して伝播される。ステージにｅビットがない場合（ｅ ＝ ０）、そのステージのローカル・イネーブル・クロックＣＬＫＥはないことになる。図２に示した回路に類似する回路が、回路３０１においてＡＮＤ機能を実行するために用いられる。この細分化クロック・ゲーティングは、図１６に示したように従来の同期アプローチと比較した場合、かなりの電力削減を結果として生じる。しかしながら、ＩＰＣＭＯＳの場合と比較すると、電力はより複雑なラッチの結果としておよそ２倍の大きさである。
【００４０】
上述のように、より低電力かつより高性能を達成する目的で、既存の同期設計の部分を非同期設計に置き換えられることができるようにすることは望ましい。１つの問題は、システムの同期および非同期の部分の間のインターフェースである。
【００４１】
再度、図１を参照すると、２つの並列パスが提供され、同期−非同期−同期パス２０は並列同期パス１１によって調時される。同期パス１１は、同期グローバル・クロックＣＬＫＳＹＮによってクロックされる１ビット幅ラッチを含む。このパスにおけるステージの数は、オペレーションの最大周波数での同期−非同期−同期パスの遅延のサイクルの数に一致するように選択される。ｅビット・ラッチ・ステージの各々がＣＬＫＳＹＮによってクロックされるので、ラッチを介してｅビットを伝播させるために要する時間は、パイプにおけるラッチ・ステージの数とＣＬＫＳＹＮの周波数または周期の関数である。実行すべきオペレーションがある場合にはｅビットが”１”にセットされ、対応して、オペレーションがない場合にはｅビットが”０”にセットされる。
【００４２】
ｅビットは”１”にセットされると同期−非同期ステージにイネーブル・クロックを生成し、このパスの下流にデータを移動させる。１ビット・ラッチの同期タイミング・パスを介して伝播された後の同じｅビットは、また、パイプラインの非同期−同期の最後のステージにイネーブル・クロックを生成するタイミング信号を供給する。ｅビットが”０”の場合、実行すべきオペレーションがないことを示す。この場合、”０”のｅビットが１ビット・タイミング・ラッチを介して伝播されるであろうが、同期−非同期−同期の並列パスにおいてイネーブルされるローカル・クロックはない。従って、ｅビットが”１”の場合にはローカル・クロックが活性化され、ｅビットが”０”の場合には活性化されない。
【００４３】
２つのパスのタイミングは、最後のステージのローカル・イネーブル・クロックの前に到達する、非同期パスを介して伝播されるデータを含む。グローバル・クロック・スキューおよびジッターの影響はこのアプローチでは１度だけ生じ、各ステージで生じない。１ビット幅同期ｅビット・パスは、同期クロックにより各サイクルでイネーブルされる。ところが、複数ビット幅である、同期−非同期−同期パスの各々のステージのためのローカル・クロックは実行すべきオペレーションがある場合にイネーブルされる。サイクル毎にオペレーションがない場合、かなりの電力削減が結果として生じる。さらに、非同期ＩＰＣＭＯＳパスを介する待ち時間は、従来の同期パスの待ち時間よりも少ない。これは、従来の場合と同じでなくてもよいが、ステージのロジックに整合させることができる、各ステージでのタイミングの結果である。
【００４４】
図１７を参照すると、同期−非同期リセット回路４０２は、サイクルの早期に非同期下流ストローブ回路（例えば、図１の回路３１ａ）から応答（ＡＣＫ）を取り込むが、回路４０２はＣＬＫＳＹＮがローになるまでイネーブルされない。これは、ＣＬＫＳＹＮがまだ活性状態である間に応答が生じた場合に適切なオペレーションを保証するものである。回路４０２は、図３に示した回路５０を置き換えるために含むことができる。回路４０２は、図３で説明した回路５０と同じような方法で動作する。回路４０２は、電源が入れられたときに回路の状態を初期化するパワー・オン・リセット（ＰＯＲ）信号によってイネーブルされるトランジスタ４０４を含む。ノードｎ５が、図１７でＣＬＫＰへ接続するトランジスタ４３への入力を示すために表示されている。
【００４５】
非同期回路では、ＣＬＫＥが比較的短いパルスであるため、応答がサイクルの早期に生じた場合の適切なオペレーションを保証することは問題ではない。非同期−同期インターフェースでは、ｅビットだけが、各同期サイクルでロジックを介してではなく、ラッチを介して伝播されなければならないため、ｅビットはサイクルの早期に有効となる。
【００４６】
図１８を参照すると、サイクルの早期に有効になるｅビットを、非同期−同期ステージのためのＣＬＫＥの生成における遅延を最小にするために使用することができる。図１８は、図５および図６でそれぞれに説明した、回路７４および７６の機能を組み合わせた回路５０２を示す。回路５０２は、図１７を参照して説明したようにパワー・オン・リセット（ＰＯＲ）信号を用いる。回路５０２は、入力としてｅビット、ＣＬＫＳＹＮ、ＰＯＲを用い、ＡＣＫ信号およびＣＬＫＥを出力する。回路５０２を用いることにより、サイクルの早期にｅビットの使用が行われるため、遅延は有効に減少される。
【００４７】
図１９を参照すると、同期−非同期−同期のハンドシェイキングのための図１７および図１８の概念および回路をテストするために、７ステージのパイプラインが図８のようにモデル化された。ＰＯＲ、クロック（ＣＬＫＥ１−７）、データ（ＤＡＴＡ＿ＩＮ、ＤＥＴＡ＿ＯＵＴ）、ｅビット（ステージ１および７のＥ１およびＥ７）、およびエラーについて、シミュレートされた波形を図１９に示す。ステージ１からステージ７までのｅビット遅延が、ステージの数と同じ６同期サイクルとなるように選択された。波形による例示として示したように、データはこの例ではずっと早い速度でパイプラインを介して伝播され、ｅビットが到達するのを待たなければならない。ｅビットが到達すると、ローカルに生成されたクロックは、データをパイプラインから移動させるとき逆方向に作用する。同期ｅビット・パスにおける遅延のサイクルの数を短縮することができる。
【００４８】
同期−非同期−同期インターフェースのためのシステムおよび方法の好ましい実施形態を説明してきたが、（これらは例示のために意図されたものであり、限定するものではない）、前述の教示を考慮して修正および変更が当業者によってなされ得ることに注意されたい。そのため、開示された本発明の特定の実施形態において、請求項によって示された本発明の範囲および精神に含まれる変更をなし得ることは理解されるべきである。
【図面の簡単な説明】
【００４９】
【図１】本発明の一実施例に従う同期−非同期−同期インターフェースを示す。
【図２】図１のインターフェースの同期−非同期ステージでローカル・クロックを生成するためのクロック・イネーブル回路を示す。
【図３】図１のインターフェースの同期−非同期ステージで応答信号に従い、プリチャージ・クロック・パルスを生成するためのプリチャージ・クロック回路を示す。
【図４】図１のインターフェースの同期−非同期ステージで有効信号を生成するための有効回路を示す。
【図５】図１のインターフェースの非同期−同期ステージでローカル・クロックを生成するためのクロック・イネーブル回路を示す。
【図６】図１のインターフェースの非同期−同期ステージで応答信号に従い、プリチャージ・クロック・パルスを生成するためのプリチャージ・クロック回路を示す。
【図７】図１のインターフェースの非同期−同期ステージでエラー信号を生成するためのエラー回路を示す。
【図８】６つのステージのインターフェースまたはパイプラインを示す。
【図９】２．５ＧＨｚで動作する、２サイクルｅビット遅延を有する図８のインターフェースのタイミング図である。
【図１０】２．０ＧＨｚで動作する、２サイクルｅビット遅延を有する図８のインターフェースのタイミング図である。
【図１１】２．０ＧＨｚで動作する、１サイクルｅビット遅延を有する図８のインターフェースのタイミング図であり、タイミングの不一致によるエラーを示す。
【図１２】従来の同期回路とインターロック・パイプラインＣＭＯＳを比較するための電力対スイッチング・ファクタのプロットを示す。
【図１３】２つの同期浮動小数点乗算器（ＦＰＭ）を示す。
【図１４】図１３の２つのＦＰＭを置き換える、同期−非同期−同期ＩＰＣＭＯＳ  ＦＰＭを示す。
【図１５】本発明の別の実施例に従う細分化同期クロック・ゲーティング・インターフェースを示す。
【図１６】従来の同期回路、本発明を用いるインターロック・パイプラインＣＭＯＳ回路、および本発明を用いる細分化クロック・ゲーティング（FG CLK ゲーティング）を比較するための電力対スイッチング・ファクタのプロットを示す。
【図１７】図１のインターフェースの同期−非同期ステージでリセット・クロック信号を生成するためのクロック・リセット回路を示す。
【図１８】図１のインターフェースの非同期−同期ステージで減少された遅延を提供するためにｅビットを使用するローカル・クロック回路を示す。
【図１９】図１７および図１８の回路を用いるシミュレートされたインターフェースのタイミング図である。
【図１】
2004526241.tif 000003
【図２】
2004526241.tif 000004
【図３】
2004526241.tif 000005
【図４】
2004526241.tif 000006
【図５】
2004526241.tif 000007
【図６】
2004526241.tif 000008
【図７】
2004526241.tif 000009
【図８】
2004526241.tif 000010
【図９】
2004526241.tif 000011
【図１０】
2004526241.tif 000012
【図１１】
2004526241.tif 000013
【図１２】
2004526241.tif 000014
【図１３】
2004526241.tif 000015
【図１４】
2004526241.tif 000016
【図１５】
2004526241.tif 000017
【図１６】
2004526241.tif 000018
【図１７】
2004526241.tif 000019
【図１８】
2004526241.tif 000020
【図１９】
2004526241.tif 000021
【国際公開パンフレット】
2004526241.tif 000022
2004526241.tif 000023
2004526241.tif 000024
2004526241.tif 000025
2004526241.tif 000026
2004526241.tif 000027
2004526241.tif 000028
2004526241.tif 000029
2004526241.tif 000030
2004526241.tif 000031
2004526241.tif 000032
2004526241.tif 000033
2004526241.tif 000034
2004526241.tif 000035
2004526241.tif 000036
2004526241.tif 000037
2004526241.tif 000038
2004526241.tif 000039
2004526241.tif 000040
2004526241.tif 000041
2004526241.tif 000042
2004526241.tif 000043
2004526241.tif 000044
2004526241.tif 000045
2004526241.tif 000046
2004526241.tif 000047
2004526241.tif 000048
2004526241.tif 000049
2004526241.tif 000050
2004526241.tif 000051
2004526241.tif 000052
2004526241.tif 000053
2004526241.tif 000054
2004526241.tif 000055
2004526241.tif 000056
2004526241.tif 000057
【国際公開パンフレット（コレクトバージョン）】
2004526241.tif 000058
2004526241.tif 000059
【国際調査報告】
2004526241.tif 000060
2004526241.tif 000061