(57)【要約】【解決手段】  非同期領域と同期領域との間で使用するインタフェースを開示する。非同期領域は、遅延非感受性ハンドシェイクプロトコルによるデータの伝送を特徴とする。同期領域は、クロック信号の遷移によるデータの伝送を特徴とする。インタフェースは、領域間でデータトークンを転送し得るデータパスを含む。インタフェースは、クロック信号の遷移と、ハンドシェイクプロトコルの少なくとも一回の完了とに応答して、データパスを介したデータトークンの転送を可能にし得る制御回路を更に含む。
2005518018.tif 000002
【特許請求の範囲】
【請求項１】
非同期領域と同期領域との間で使用するインタフェースであって、
非同期領域が非同期ハンドシェイクプロトコルによるデータの伝送を特徴とし、同期領域がクロック信号の遷移によるデータの伝送を特徴とするインタフェースにおいて、
領域間でデータトークンを転送し得るデータパスと、
クロック信号の少なくとも一回の遷移と非同期ハンドシェイクプロトコルの少なくとも一回の完了とに応答して、データパスを介したデータトークンの転送を可能にし得る制御回路と、
を備えるインタフェース。
【請求項２】
データパスが、非同期領域から同期領域へデータトークンを転送可能であり、非同期ハンドシェイクプロトコルの少なくとも一回の完了がデータトークンに対応する、請求項１記載のインタフェース。
【請求項３】
データトークンが、複数の並列ビットを含み、非同期ハンドシェイクプロトコルの少なくとも一回の完了が、それぞれのビットに関する非同期ハンドシェイクプロトコルの完了を含む、請求項２記載のインタフェース。
【請求項４】
データパスが、
データトークンを含む複数のデータトークンを格納し得るバッファと、
同期領域との同期ハンドシェイクと全てのビットに関する非同期ハンドシェイクプロトコルの完了とに応答して制御回路によって生成される転送信号及びクロック信号の遷移に応答してデータトークンのビットをバッファから同期領域に転送し得る複数のデータパス転送ユニットと、
を備える、請求項１記載のインタフェース。
【請求項５】
バッファが、多段式非同期先入れ先出し（ＦＩＦＯ）バッファを含み、その連続した各ステージが、非同期ハンドシェイクプロトコルによりデータトークンの全てのビットを受領及び転送し得る、請求項４記載のインタフェース。
【請求項６】
各データパス転送ユニットが、クロック信号の遷移後で且つクロック信号の次の遷移前にデータトークンのそれぞれのビットを同期領域にラッチし得るラッチを備える、請求項４記載のインタフェース。
【請求項７】
データパス転送ユニットのそれぞれに転送信号を提供し得るブロードキャスト回路を更に備える、請求項４記載のインタフェース。
【請求項８】
転送信号が、トークンを含み、ブロードキャスト回路が、トークンを分配するパイプラインツリー構造を有する、請求項７記載のインタフェース。
【請求項９】
パイプラインツリー構造が、複数のミューラのＣ素子を含む、請求項８記載のインタフェース。
【請求項１０】
制御回路が、転送信号の生成を促進するパイプライン完了ステージを含む、請求項４記載のインタフェース。
【請求項１１】
それぞれのビットが、１ｏｆＮエンコーディングを使用してエンコードされ、ここでＮが１より大きいか或いは等しい、請求項３記載のインタフェース。
【請求項１２】
同期領域が、データ転送に連続データのブロックを含めることを必要とし、データパスが、更に、連続データのブロックを形成するために、非同期領域において生成されたデータトークンを蓄積可能であり、各データトークンが複数のビットを含み、
制御回路が、同期領域との同期ハンドシェイクとクロック信号の連続的遷移とに応答して、それぞれのデータトークンのそれぞれのビットでの非同期ハンドシェイクプロトコルの完了後に、データパス経由による蓄積されたデータトークンの同期領域への転送を促進し得る、請求項２記載のインタフェース。
【請求項１３】
請求項１記載のインタフェースを備える集積回路。
【請求項１４】
集積回路が、ＣＭＯＳ集積回路を含む、請求項１３記載の集積回路。
【請求項１５】
集積回路が、非同期領域及び同期領域の両方を含むシステムオンチップを含む、請求項１３記載の集積回路。
【請求項１６】
データパスが、データトークンを同期領域から非同期領域に転送可能であり、非同期ハンドシェイクプロトコルの少なくとも一回の完了が、以前に転送されたデータトークンに対応する、請求項１記載のインタフェース。
【請求項１７】
それぞれのデータトークンと以前に転送されたデータトークンとが、複数の並列ビットを含み、非同期ハンドシェイクプロトコルの少なくとも一回の完了が、以前に転送されたデータトークンのそれぞれのビットに関する非同期ハンドシェイクプロトコルの完了を含む、請求項１６記載のインタフェース。
【請求項１８】
データパスが、
以前に格納されたデータトークンを含む複数のデータトークンを格納し得るバッファと、
同期領域との同期ハンドシェイクの完了と以前に格納されたデータトークンの全てのビットに関する非同期ハンドシェイクプロトコルとに応答して制御回路によって生成された転送信号及び非同期ハンドシェイクプロトコルに従ってデータトークンのビットを同期領域からバッファに転送し得る複数のデータパス転送ユニットと、
を備える、請求項１７記載のインタフェース。
【請求項１９】
バッファが、多段式非同期先入れ先出し（ＦＩＦＯ）バッファを含み、その連続した各ステージが、非同期ハンドシェイクプロトコルにより、データトークンの全てのビットを受領及び転送し得る、請求項１８記載のインタフェース。
【請求項２０】
各データパス転送ユニットが、クロック信号の遷移時にデータトークンのそれぞれのビットをバッファに転送し得るラッチを備える、請求項１８記載のインタフェース。
【請求項２１】
データパス転送ユニットのそれぞれに転送信号を提供し得るブロードキャスト回路を更に備える、請求項１８記載のインタフェース。
【請求項２２】
転送信号が、トークンを含み、ブロードキャスト回路が、転送トークンを分配するパイプラインツリー構造を含む、請求項２１記載のインタフェース。
【請求項２３】
制御回路が、転送信号の生成を促進するパイプライン完了ステージを含む、請求項１８記載のインタフェース。
【請求項２４】
転送信号が、転送トークンを含み、
制御回路が、対応するデータトークンの非同期ハンドシェイクプロトコルの完了にそれぞれが対応する複数の転送トークンを格納し得る転送トークンバッファを更に備える、請求項２３記載のインタフェース。
【請求項２５】
それぞれのビットが、１ｏｆＮエンコーディングを使用してエンコードされ、ここでＮが１より大きいか或いは等しい、請求項１７記載のインタフェース。
【請求項２６】
同期領域が、データ転送に連続データのブロックを含めることを必要とし、
制御回路が、同期領域との同期ハンドシェイクと、クロックシグナルの連続する遷移と、非同期ハンドシェイクプロトコルにより生成されて非同期領域が複数のデータトークンを受領するのに十分なメモリを有することを示すイネーブル信号とに応答して、データパス経由による連続データのブロックとしての複数のデータトークンの非同期領域への転送を促進すべく更に機能し得る、請求項１６記載のインタフェース。
【請求項２７】
制御回路が、クロック信号の正及び負の両方の遷移時にデータトークンの転送を可能にし得る、請求項１記載のインタフェース。
【請求項２８】
制御回路が、クロック信号の正及び負の遷移の一方のみの時にデータトークンの転送を可能にし得る、請求項１記載のインタフェース。
【請求項２９】
制御回路が、同期領域との同期ハンドシェイクの完了時のみにデータトークンの転送を可能にし得る、請求項１記載のインタフェース。
【請求項３０】
データパスが、データトークンを非同期領域から同期領域へ転送可能であり、
同期ハンドシェイクが、データトークンの転送準備が整っていることを示す制御回路からの第一の信号と、同期領域でデータトークンの受領準備が整っていることを示す同期領域からの第二の信号とを含む、請求項２９記載のインタフェース。
【請求項３１】
データパスが、データトークンを同期領域から非同期領域へ転送可能であり、
同期ハンドシェイクが、データトークンを受領する準備がデータパスで整っていることを示す制御回路からの第一の信号と、同期領域でデータトークンを転送する準備が整っていることを示す同期領域からの第二の信号とを含む、請求項２９記載のインタフェース。
【請求項３２】
制御回路が、テータパスを介してデータを転送することなく非同期ハンドシェイクプロトコルと同期ハンドシェイクとの間で変換を行うことで、ゼロビットコンバータとして更に動作し得る、請求項２９記載のインタフェース。
【請求項３３】
データパスが、非同期ハンドシェイクプロトコルの完了時に、クロック信号の一期間内にデータトークンを非同期領域から同期領域へ転送し得る、請求項１記載のインタフェース。
【請求項３４】
制御回路が、同期領域からのフロー制御に関係なく、データトークンの転送を可能にし得る、請求項１記載のインタフェース。
【請求項３５】
非同期領域と同期領域との間で使用するインタフェースであって、
非同期領域が非同期ハンドシェイクプロトコルによるデータの伝送を特徴とし、同期領域がクロック信号の遷移によるデータの伝送を特徴とするインタフェースにおいて、
非同期領域で生成されて複数のビットを含むデータトークンを受領し得るデータパスと、
クロック信号の遷移と、同期領域との同期ハンドシェイクの完了と、それぞれのビットでの非同期ハンドシェイクプロトコルの完了とに応答して、データパスを介した同期領域へのデータトークンの転送を促進し得る制御回路と、
を備え、
同期領域へのデータトークンの転送が、非同期ハンドシェイクプロトコルの完了後、クロック信号の一期間内に発生するインタフェース。
【請求項３６】
請求項３５記載のインタフェースを備える集積回路。
【請求項３７】
集積回路が、ＣＭＯＳ集積回路を含む、請求項３６記載の集積回路。
【請求項３８】
集積回路が、非同期及び同期領域の両方を含むシステムオンチップを含む、請求項３６記載の集積回路。
【請求項３９】
同期領域と非同期領域との間で使用するインタフェースであって、
同期領域がクロック信号の遷移によるデータの伝送を特徴とし、非同期領域が非同期ハンドシェイクプロトコルによるデータの伝送を特徴とするインタフェースにおいて、
同期領域において生成されて複数のビットを含むデータトークンを受領し得るデータパスと、
クロック信号の遷移と、同期領域との同期ハンドシェイクの完了と、非同期ハンドシェイクプロトコルにより生成されて非同期領域でデータトークンを受領する準備が整っていることを示すイネーブル信号とに応答して、データパスを介した非同期領域へのデータトークンの転送を促進し得る制御回路と、
を備え、
同期領域へのデータトークンの転送が、イネーブルの生成後、クロック信号の一期間内に発生するインタフェース。
【請求項４０】
請求項３９記載のインタフェースを備える集積回路。
【請求項４１】
集積回路が、ＣＭＯＳ集積回路を含む、請求項４０記載の集積回路。
【請求項４２】
集積回路が、非同期及び同期領域の両方を含むシステムオンチップを含む、請求項４０記載の集積回路。
【請求項４３】
非同期領域と同期領域との間で使用するインタフェースであって、
非同期領域が遅延非感受性ハンドシェイクプロトコルによるデータの伝送を特徴とし、同期領域がクロック信号の遷移によるデータの伝送を特徴とすると共にデータ転送に連続データのブロックを含めることを必要とする、インタフェースにおいて、
連続データのブロックを形成するために非同期領域において生成されたデータトークンを蓄積し得るデータパスにして、各データトークンが複数のビットを含むデータパスと、
同期領域との同期ハンドシェイクの完了と、クロック信号の連続する遷移とに応答して、それぞれのトークンのそれぞれのビットでのハンドシェイクプロトコルの完了後に、データパスを介した同期領域への蓄積データトークンの転送を促進し得る制御回路と、
を備えるインタフェース。
【請求項４４】
請求項４３記載のインタフェースを備える集積回路。
【請求項４５】
集積回路が、ＣＭＯＳ集積回路を含む、請求項４４記載の集積回路。
【請求項４６】
集積回路が、非同期及び同期領域の両方を含むシステムオンチップを含む、請求項４４記載の集積回路。
【請求項４７】
連続データのブロックが、固定数のデータトークンを含む、請求項４３記載のインタフェース。
【請求項４８】
固定数のデータトークンをカウントするカウンタ回路を更に含む、請求項４７記載のインタフェース。
【請求項４９】
連続データのブロックが、可変数のデータトークンを含む、請求項４３記載のインタフェース。
【請求項５０】
インジケータが、ブロックの終了を示すために可変数のトークンの最後の一つに関連する、請求項４９記載のインタフェース。
【請求項５１】
情報が、ブロックに関連し、可変数を表す、請求項４９記載のインタフェース。
【請求項５２】
メッセージが、連続データの単一のブロックに対応する、請求項４３記載のインタフェース。
【請求項５３】
メッセージが、連続データの複数の連続ブロックに対応する、請求項４３記載のインタフェース。
【請求項５４】
連続ブロックをカウントするカウンタ回路を更に含む、請求項５３記載のインタフェース。
【請求項５５】
制御回路がパイプライン化される、請求項４３記載のインタフェース。
【請求項５６】
制御回路が、クロック信号の正及び負の両方の遷移に応答して、データトークンの転送を促進し得る、請求項４３記載のインタフェース。
【請求項５７】
制御回路が、クロック信号の正及び負の両方の遷移時にデータトークンの転送を可能にし得る、請求項４３記載のインタフェース。
【請求項５８】
同期領域と非同期領域との間で使用するインタフェースであって、
同期領域がクロック信号の遷移によるデータの伝送を特徴とすると共にデータ転送に連続データのブロックを含めることを必要とし、非同期領域が遅延非感受性ハンドシェイクプロトコルによるデータの伝送を特徴とするインタフェースにおいて、
同期領域において生成されたデータトークンを受領し得るデータパスと、
同期領域との同期ハンドシェイクの完了と、クロック信号の連続する遷移と、非同期ハンドシェイクプロトコルにより生成されて非同期領域が複数のデータトークンを受領するのに十分なメモリを有することを示すイネーブル信号とに応答して、データパスを介した連続データのブロックとしての複数のデータトークンの非同期領域への転送を促進し得る制御回路と、
を備えるインタフェース。
【請求項５９】
請求項５８記載のインタフェースを備える集積回路。
【請求項６０】
集積回路が、ＣＭＯＳ集積回路を含む、請求項５９記載の集積回路。
【請求項６１】
集積回路が、非同期及び同期領域の両方を含むシステムオンチップを含む、請求項５９記載の集積回路。
【請求項６２】
連続データのブロックが、固定数のデータトークンを含む、請求項５８記載のインタフェース。
【請求項６３】
固定数のデータトークンをカウントするカウンタ回路を更に含む、請求項６２記載のインタフェース。
【請求項６４】
連続データのブロックが、可変数のデータトークンを含む、請求項５８記載のインタフェース。
【請求項６５】
インジケータが、ブロックの終了を示すために可変数のトークンの最後の一つに関連する、請求項６４記載のインタフェース。
【請求項６６】
情報が、ブロックに関連し、可変数を表す、請求項６４記載のインタフェース。
【請求項６７】
メッセージが、連続データの単一のブロックに対応する、請求項５８記載のインタフェース。
【請求項６８】
メッセージが、連続データの複数の連続ブロックに対応する、請求項５８記載のインタフェース。
【請求項６９】
連続ブロックをカウントするカウンタ回路を更に含む、請求項６８記載のインタフェース。
【請求項７０】
制御回路がパイプライン化される、請求項５８記載のインタフェース。
【請求項７１】
制御回路が、クロック信号の正及び負の両方の遷移に応答して、データトークンの転送を促進し得る、請求項５８記載のインタフェース。
【請求項７２】
制御回路が、クロック信号の正及び負の両方の遷移時にデータトークンの転送を可能にし得る、請求項５８記載のインタフェース。
【請求項７３】
請求項１記載のインタフェースを表すデータ構造を格納した、少なくとも一つのコンピュータ可読媒体。
【請求項７４】
データ構造が、インタフェースのシミュレート可能な表現を含む、請求項７３記載の少なくとも一つのコンピュータ可読媒体。
【請求項７５】
シミュレート可能な表現が、ネットリストを含む、請求項７４記載の少なくとも一つのコンピュータ可読媒体。
【請求項７６】
データ構造が、インタフェースのコード記述を含む、請求項７３記載の少なくとも一つのコンピュータ可読媒体。
【請求項７７】
コード記述が、ハードウェア記述言語に対応する、請求項７６記載の少なくとも一つのコンピュータ可読媒体。
【請求項７８】
請求項１記載のインタフェースの少なくとも一部を表現する半導体処理マスクのセット。
【請求項７９】
非同期領域と同期領域との間で使用するインタフェースであって、
非同期領域において生成された第一のデータトークンを同期領域に転送し得る第一のデータパスと、
同期領域において生成された第二のデータトークンを非同期領域に転送し得る第二のデータパスと、
同期領域との同期ハンドシェイクの完了と非同期領域における非同期ハンドシェイクプロトコルの完了とを示すフロー制御信号に応答して、第一及び第二のデータパスの両方を制御し得る制御回路と、
を備えるインタフェース。
【請求項８０】
制御回路が、第一及び第二のデータパスのどちらでデータを伝送する準備が整ったかを示す第一及び第二のデータパスからの第一及び第二の完了信号に応答して、フロー制御信号を伝送する完了回路を備える、請求項７９記載のインタフェース。
【請求項８１】
完了回路によって伝送されるフロー制御信号が、非同期ハンドシェイクプロトコルに対応する、請求項８０記載のインタフェース。
【請求項８２】
完了回路によって伝送されるフロー制御信号が、同期ハンドシェイクに対応する、請求項８０記載のインタフェース。
【請求項８３】
制御回路が、第一及び第二のデータパスによりデータを伝送することを可能にするフロー制御信号に応答して、第一及び第二のイネーブル信号を生成するトリガ回路を更に備える、請求項７９記載のインタフェース。
【請求項８４】
第一及び第二のイネーブル信号のどちらが生成されたかに応答するフロー制御信号が、非同期ハンドシェイクプロトコルに対応する、請求項８３記載のインタフェース。
【請求項８５】
第一及び第二のイネーブル信号のどちらが生成されたかに応答するフロー制御信号が、同期ハンドシェイクに対応する、請求項８３記載のインタフェース。
【請求項８６】
制御回路が、同期領域に関連するクロック信号の正及び負の両方の遷移時に、第一及び第二のデータパスの両方を介したデータの転送を可能にし得る、請求項７９記載のインタフェース。
【請求項８７】
データパスが、更に、連続データの第一のブロックを形成するために第一のデータトークンを蓄積可能であり、
制御回路が、第一のデータパスを介した非同期領域への連続データの第一のブロックの転送を促進し得ると共に、第二のデータパスを介した非同期領域への第二のデータトークンを含む連続データの第二のブロックの転送を促進し得る、請求項７９記載のインタフェース。
【請求項８８】
請求項８７記載のインタフェースを備える、同期ダイナミックランダムアクセスメモリ（ＳＤＲＡＭ）コントローラ。
【請求項８９】
制御回路が、同期領域に関連するクロック信号の正及び負の両方の遷移時に第一及び第二のデータパスの両方を介したデータの転送を可能にし得る、請求項８８記載のＳＤＲＡＭコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、同期及び非同期コンポーネントを統合するシステムに関する。更に詳しくは、本発明は、非同期及び同期領域間でのデータの変換を促進する方法及び装置を提供する。
【背景技術】
【０００２】
非同期設計方法と、その結果として生じる回路及びシステムは、利用可能なデータ処理能力の経時的な単調増加を前提とするムーアの法則に対して、デジタルシステムの性能が歴史的な順守を継続し得る見込みのあるメカニズムとして現れつつある。非同期回路及びシステムが更に一般的になるにつれ、こうした回路及びシステムを、現在普及している同期設計方法により設計された回路及びシステムと統合する必要性が大きくなる。更に詳しくは、非同期及び同期領域間でデータを変換するためのペナルティの少ないインタフェースを提供する必要が生じる。
【０００３】
非同期領域から同期領域へ変換するための以前の解決策では、通常、一つまたはいくつかの非常に少数の信号のみを変換することを扱ってきた。こうした解決策の例は、人間によるスイッチまたはボタンの起動を受けて生成される非同期信号を、同期回路で利用し得る同期信号に変換することである。多くの場合、こうした非同期信号は単純に二つ以上のラッチを通じてゲートされ、これにより、オリジナルの非同期信号の同期バージョンが生成される。このアプローチでは、単純に、分解する信号における任意のメタスタビリティに対して１クロック期間（通常は、２まで）の最低限度が可能となる。
【０００４】
こうしたアプローチは、一つまたは非常に少数の信号には適し得るが、例えば、今日の多くのデジタル処理システムで利用される３２及び６４ビット幅のデータパスに代表されるような、多数の信号を同時に変換することには適していない。即ち、１ｏｆ２エンコーディングを使用してエンコードされるデータの単一ビットの変換に関連するレイテンシは、転送されるデータの妥当性を検証する必要があるという事実により、二つ以上のクロックサイクルになり得る。非同期信号がまれにしか生成されない場合、或いは一つのビットのみである場合には、こうしたレイテンシは許容し得るが、３２ビットまたは６４ビットのデータが関与する時に、メタスタビリティを排除し、妥当性を検証するのに十分な時間を与えるのは不可能である。
【０００５】
更に、特定のタイプの同期システム、例えば、ＳＤＲＡＭシステム等のメモリアーキテクチャは、非同期データが伝送される予測不可能な方法により生じ得る「待ち」状態を許容できない。即ち、こうしたシステムは、連続するデータトークンのブロックを受信または送信することを期待する。有効データが存在しないクロック遷移の発生は、不正確なデータの格納、或いは転送されるブロック全体の格納失敗を引き起こす可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
上述したことを考慮すると、許容可能なレイテンシで幅広のデータパスを扱うことが可能な、非同期及び同期システム間のインタフェースについての必要性が存在する。更に、特定のタイプの同期システムに関連する「待ち」状態の問題を緩和するインタフェースについての必要性が存在する。
【課題を解決するための手段】
【０００７】
本発明によれば、非同期領域におけるデータの伝送は、非同期ハンドシェイクプロトコルを使用して達成される、非同期及び同期領域間でのデータ変換を提供する低レイテンシ、高スループットの解決策が提供される。非同期領域から同期領域へのデータ伝送では、データパスのそれぞれのビットでの非同期領域に関連する非同期ハンドシェイクの完了によって示されるものとして、有効なデータが存在するまで、同期領域へのデータ伝送は認められない。同期領域から非同期領域へのデータ伝送では、同じく非同期ハンドシェイクを参照して生成されるイネーブルが受領されるまで、非同期領域へのデータ伝送は認められない。
【０００８】
同期領域が連続データトークンのブロックで転送されるデータを必要とする更に特定的な実施形態によれば、非同期領域から同期領域へのデータの転送は、必要な数の連続トークンの転送準備ができたことを示すイネーブルが受領されるまで認められない。イネーブルは、非同期ハンドシェイクを参照して生成される。
【０００９】
同期領域が連続トークンのブロックで転送されるデータを必要とする別の特定の実施形態によれば、同期領域から非同期領域へのデータの転送は、連続トークンのブロックを格納するのに十分なメモリを利用可能であることを示すイネーブルが受領されるまで認められない。イネーブルは、非同期ハンドシェイクを参照して生成される。
【００１０】
したがって、本発明は、非同期領域及び同期領域間で使用するインタフェースを提供する。非同期領域は、非同期ハンドシェイクプロトコルによるデータの伝送を特徴とする。同期領域は、クロック信号の遷移によるデータの伝送を特徴とする。インタフェースは、領域間でデータトークンを転送し得るデータパスを含む。インタフェースは、更に、クロック信号の遷移と、ハンドシェイクプロトコルの少なくとも一回の完了とに応答して、データパスを介したデータトークンの転送を可能にし得る制御回路を含む。
【００１１】
特定の実施形態によれば、インタフェースは、非同期領域と同期領域との間での使用のために提供され、非同期領域は、非同期ハンドシェイクプロトコルによるデータの伝送を特徴とし、同期領域は、クロック信号の遷移によるデータの伝送を特徴とする。インタフェースは、非同期領域において生成され、複数のビットを備えるデータトークンを受領し得るデータパスを含む。インタフェースは、更に、クロック信号の遷移と、それぞれのビットでのハンドシェイクプロトコルの完了とに応答して、データパスを介した同期領域へのデータトークンの転送を促進し得る制御回路を含む。
【００１２】
同期領域がデータ転送に連続データのブロックを含めることを必要とする更に特定的な実施形態によれば、データパスは、更に、連続データのブロックを形成するために、非同期領域において生成されたデータトークンを蓄積し得る。制御回路は、更に、クロック信号の遷移に応答して、それぞれのデータトークンのそれぞれのビットでのハンドシェイクプロトコルの完了後に、データパスを介した、蓄積されたデータトークンの同期領域への転送を促進し得る。
【００１３】
別の特定の実施形態によれば、インタフェースは、同期領域と非同期領域との間での使用のために提供され、同期領域は、クロック信号の遷移によるデータの伝送を特徴とし、非同期領域は、非同期ハンドシェイクプロトコルによるデータの伝送を特徴とする。インタフェースは、同期領域において生成され、複数のビットを備えるデータトークンを受領し得るデータパスを含む。インタフェースは、更に、クロック信号の遷移と、ハンドシェイクプロトコルにより生成され、非同期領域でデータトークンを受領する準備ができたことを示すイネーブル信号とに応答して、データパスを介した非同期領域へのデータトークンの転送を促進し得る制御回路を含む。
【００１４】
同期領域がデータ転送に連続データのブロックを含めることを必要とする更に特定的な実施形態によれば、制御回路は、更に、クロック信号の遷移と、ハンドシェイクプロトコルにより生成され、非同期領域が複数のデータトークンを受領するのに十分なメモリを有することを示すイネーブル信号とに応答して、データパスを介した非同期領域への、連続データのブロックとしての、複数のデータトークンの転送を促進し得る。
【００１５】
更に別の実施形態によれば、非同期領域と同期領域との間で使用するためのインタフェースが提供される。第一のデータパスは、非同期領域で生成され、複数のビットを備える第一のデータトークンを受領し得る。第二のデータパスは、同期領域で生成された第二のデータトークンを受領し得る。制御回路は、クロック信号の遷移と、それぞれのビットでのハンドシェイクプロトコルの完了と、ハンドシェイクプロトコルにより生成され、非同期領域で第二のデータトークンを受領する準備ができたことを示すイネーブル信号とに応答して、第一のデータパスを介した同期領域への第一のデータトークンの転送を促進し得る。
【００１６】
本発明の性質及び利点の更なる理解は、本明細書の残りの部分と図面とを参照することで実現し得る。
【発明を実施するための最良の形態】
【００１７】
次に、本発明を実施する上で本発明者が最良の形態と考えるものを含め、本発明の特定の実施形態を詳細に参照する。こうした特定の実施形態の例は、添付図面に例示されている。本発明は、こうした特定の実施形態に関連して説明されるが、説明する実施形態に本発明を限定する意図はないと理解される。反対に、付記する請求項によって定義される本発明の趣旨及び範囲内に含まれ得る代替、修正、及び同等物を網羅することが意図される。以下の説明では、本発明の完全な理解を提供するために、多数の特定の詳細について述べる。本発明は、こうした特定の詳細の一部または全部を備えずに実施され得る。加えて、広知の処理動作については、本発明を不必要に曖昧にしないために、詳細に説明していない。
【００１８】
なお、最初に、本発明において説明される一部の手法及び回路は、準遅延非感受性（ｑｕａｓｉ−ｄｅｌａｙ−ｉｎｓｅｎｓｉｔｉｖｅ）非同期ＶＬＳＩとして説明及び実施される。しかしながら、本発明の多くの原理及び手法は、例えば、非遅延非感受性非同期ＶＬＳＩ及び同期ＶＬＳＩといった、その他のコンテクストでも使用してよい。
【００１９】
更に、本発明の様々な実施形態は、本発明の範囲から離れることなく、広範な形で実施し得ると理解される。即ち、本明細書の非同期プロセス及び回路は、ソフトウェア（オブジェクトコードまたはマシンコード）において、コンパイルの様々な段階において、一つ以上のネットリストとして、シミュレーション言語において、ハードウェア記述言語において、半導体処理マスクのセットによって、及び部分的または完全に実現された半導体デバイスとして、（制限なく）表現し得る。当業者に理解されるような、上記のそれぞれの様々な代替も、本発明の範囲に含まれる。例えば、本明細書で説明するプロセス及び回路を設計及び製造するのに適した、様々なタイプのコンピュータ可読媒体、ソフトウェア言語（Ｖｅｒｉｌｏｇ、ＶＨＤＬ等）、シミュレート可能な表現（ＳＰＩＣＥネットリスト等）、半導体プロセス（ＣＭＯＳ、ＧａＡｓ、ＳｉＧｅ、その他等）、及びデバイスタイプ（ＦＰＧＡ等）は、本発明の範囲に含まれる。
【００２０】
本願は、更に、擬似コード言語ＣＳＰ（並行順次プロセス）を利用して、高レベルアルゴリズム及び回路動作を記述する。ＣＳＰは、通常、並列プログラミングソフトウェアプロジェクトと、遅延非感受性ＶＬＳＩとにおいて使用される。この一般的な言語及び表記法の使用は、単なる例であり、本発明の基盤となる態様は、本発明の範囲から離れることなく、広範な形で表現且つ実施し得ると理解される。ハードウェアプロセスに適用する場合、ＣＳＰは、ＣＨＰ（通信ハードウェアプロセス）として知られることがある。この言語の説明については、参照によりあらゆる目的で本明細書に全体を組み込むＡ．Ｊ．マーティン著「非同期ＶＬＳＩ回路の合成」DARPA Order number 6202, 1991を参照されたい。
【００２１】
加えて、本明細書で説明する回路の様々な態様でのＣＳＰ規格のトランジスタレベルでの実施への変換は、Ａ．Ｍ．ラインズ著「パイプライン非同期回路」Caltech Computer Science Technical Report CS-TR-95-21, Caltech, 1995において説明される手法により達成してよく、その開示内容全体は、参照によりあらゆる目的で本明細書に組み込む。しかしながら、広範な非同期設計手法のいずれかを、この目的で使用してもよいと理解するべきである。
【００２２】
本明細書で使用されるＣＳＰは、以下の構造及びシンタックスを有する。プロセスは、静的で順次的であり、チャネルを通じて他のプロセスと通信する。複数のプロセスは、共に、並列プログラムを構成する。［ａｎｄ］は、ｉｆステートメントを区切り、＊［ａｎｄ］は、ループを区切る。
【００２３】
Ｂ→Ｓのペアを、  （決定論的選択を示す）または｜（非決定論的選択を示す）によって分離されたｉｆステートメントまたはループの内部に追加することで、多数の選択を行うことが可能であり、ここでＢはブール演算式であり、Ｓはステートメントである。したがって、［Ｂ１→Ｓ１  Ｂ２→Ｓ２］は、式Ｂ１が真である場合にＳ１を実行し、或いは式Ｂ２が真である場合にＳ２を実行することを意味する。Ｂ１及びＢ２がどちらも真ではない場合、このステートメントは、一方が真となるまで待つ（ｉｆ−ｅｌｓｅ構造とは異なる）。省略表現＊［Ｓ］は、ステートメントＳを無限に繰り返すことを意味する。省略表現［Ｂ］は、ブール演算式Ｂが真になるのを待つことを意味する。ローカル変数は、整数と仮定され、ｘ：＝ｙ＋１のような整数式の値を割り当てることができる。セミコロンは、厳密な順序を有するステートメントを区切る。コンマは、必要な順序がないステートメントを区切る。疑問符及び感嘆符は、それぞれ、受領すること及び送信することを示すのに使用される。したがって＊［Ａ？ｘ；ｙ：＝ｘ＋１；Ｂ！ｙ］は、整数ｘをチャネルＡから受領し、次に整数ｙを値ｘ＋１に割り当て、次にｙをチャネルＢに送信し、その後、永遠に繰り返すことを意味する。
【００２４】
本発明の様々な特定の実施形態によれば、データのラッチングは、レジスタではなくチャネルにおいて発生する。こうしたチャネルは、送信回路から受信回路へのデータのＦＩＦＯ（先入れ先出し）転送を実施する。データ線は、センダからレシーバへ進み、イネーブル（即ち、肯定応答の逆の意味）線は、フロー制御のために逆向きに進む。こうした実施形態の特定の一つによれば、隣接回路（プロセス）間の四相ハンドシェイクが、チャネルを実施する。四相は、順に、１）センダがハイイネーブルを待ち、次に、データを有効に設定することと、２）レシーバが有効データを待ち、次に、イネーブルを低下させることと、３）センダがローイネーブルを待ち、次に、データを中立にすることと、４）レシーバが中立データを待ち、次に、イネーブルを高めることとである。なお、このハンドシェイクプロトコルの使用は、例示的な目的のものであり、そのため、本発明の範囲は、このように限定されない。
【００２５】
特定の実施形態によれば、データは、１ｏｆＮエンコーディングまたはいわゆる「ワンホットエンコーディング」を使用してエンコードされる。これは、Ｎの線によりＮ＋１の状態の一つを選択する広知の変換である。チャネルは、全ての線が非アクティブである時、中立状態となる。ｋ番目の線がアクティブであり、他の全てが非アクティブである時、チャネルは、ｋ番目の状態となる。任意の時点で二本以上の線がアクティブになるのはエラー状態である。
【００２６】
例えば、特定の実施形態において、データのエンコーディングは、デュアルレールであり、１ｏｆ２とも呼ばれる。このエンコーディングでは、二本の線（レール）を使用して、二種類の有効状態と中立状態とを表す。チャネルＸに関する線は、データに関してはＸ0、Ｘ1、イネーブルに関してはＸeと書かれる。他の実施形態によれば、更に大きな整数は、１ｏｆ３または１ｏｆ４コードのように、更に多くの線によりエンコードされる。
【００２７】
遙かに大きい数に関しては、多数の１ｏｆＮを、異なる数値的有意性と共に使用してもよい。例えば、３２ビットは、３２の１ｏｆ２コードまたは１６の１ｏｆ４により表すことができる。この場合、サブスクリプトは、各１ｏｆＮコードの有意性を示し、即ち、Ｌgrはｇ番目のビット（またはグループ）のｒ番目の線であり、Lgeは関連するイネーブルである。更に別の実施形態では、いくつかの関連チャネルを、Ｌ［ｉ］またはＶ［ｉ，ｊ］といった、１−Ｄまたは２−Ｄ配列に編成してもよい。こうした実施形態において個別の線を特定するには、記号Ｌ［ｉ］rまたはＬ［ｉ］grが使用される。
【００２８】
図１は、本発明の特定の実施形態による、非同期領域１０２から同期領域１０４へデータトークンを転送する例示的なインタフェース１００を示す簡略ブロック図である。表示の実施形態によれば、１ｏｆ２エンコーディングを使用してエンコードされた、３２ビット幅データトークン、即ちＬ［０．．３１］が仮定される。しかしながら、説明する実施形態により、任意の数のビットを有し、多数の異なる方法でエンコードされたデータトークンを、一方の領域から他方へ転送してよいと理解される。
【００２９】
３２ビット幅データパスは、上で説明した遅延非感受性ハンドシェイクプロトコルにより、非同期領域において生成されたデータトークンを受領し、あるステージから次のステージへ転送する、多段式バッファキュー１０６を含む。バッファ１０６は、八ステージを有するように、即ち、八つのデータトークンに対応できるように表示されているが、様々な実施形態に従って、このバッファの長さは変化させてもよいと理解される。各データトークンのバッファ１０６への転送が達成されると、それぞれのビットでの処理の完了が、ハンドシェイクにより、バッファ１０６の第一のステージで逆向きに信号で送られる。
【００３０】
データパスは、更に、ＤＴＵブロック１０８によって表される一つ以上の非同期−同期（Ａ２Ｓ）データパス転送ユニット（データトークンの各ビットに一つ）を含む。説明するように、ＤＴＵ１０８は、Ａ２Ｓ「ｇｏ」信号と同期領域１０４に関連するクロック信号（ＣＬＫ）に応答して、同期領域１０４への各データトークンの転送を達成する。本発明の特定の実施形態により、Ａ２Ｓ「ｇｏ」信号が生成される方法については、下で説明する。
【００３１】
トークンのそれぞれのビットがバッファ１０６への転送に成功したこと（即ち、完了したハンドシェイク）の表示に応答して、完了ブロック１１０は、完了した転送を表す１ｏｆ１転送トークンを生成する。特定の実施形態によれば、完了ブロック１１０は、パイプラインアーキテクチャを利用し、データトークンのそれぞれのビットに対する完了信号から単一の転送トークンを生成することに内在するレイテンシの影響を最小化する。こうした完了ブロックの特定の実施については、下で説明する。
【００３２】
完了ブロック１１０によって生成された転送トークンは、制御ブロック１１２に受領され、制御ブロック１１２は、有効データを転送可能であることを示す、同期領域への要求信号を生成する。同期領域からの許可信号を受領すると、クロック信号の遷移に応答して、クロックブロック１１２は、Ａ２Ｓ「ｇｏ」信号を生成し、ＤＴＵブロック１０８に対して、同期領域へ向かうバッファ１０６の終端部にその時点で存在するデータトークンの全てのビットを同時にラッチさせる。同期領域で常にデータを受け入れる準備ができている代替実施形態によれば、許可及び要求信号は省略してよく、Ａ２Ｓ「ｇｏ」信号は、転送トークンとクロック信号に応答して生成される。
【００３３】
特定の実施形態によれば、ＤＴＵ１０８内の個別のデータパス転送ユニット内でのＡ２Ｓ「ｇｏ」信号の分配は、こうした分配に内在するレイテンシの影響を最小化するパイプラインツリー構造を使用して達成される。代替実施形態によれば、Ａ２Ｓ「ｇｏ」信号は、電気的に連続する伝導体を使用して、個別のデータパス転送ユニットに分配される。
【００３４】
図２は、本発明の別の特定の実施形態による、同期領域２０２から非同期領域２０４へデータトークンを転送するインタフェース２００を例示する簡略ブロック図である。図１を参照して上で説明した実施形態と同じく、例示的な３２ビット幅データトークン、即ちＬ［０．．３１］が仮定される。同期領域において生成されたデータトークンは、複数の同期−非同期（Ｓ２Ａ）データパス転送ユニット（ＤＴＵ２０６として表示）と多段式バッファキュー２０８とを含むデータパスを介して、非同期領域に転送される。
【００３５】
バッファ２０８は、上で説明した遅延非感受性ハンドシェイクプロトコルにより、ＤＴＵ２０６から受領したデータトークンを受領し、あるステージから次のステージへ転送する。バッファ２０８は、八ステージを有するように、即ち、八つのデータトークンに対応できるように表示されているが、様々な実施形態に従って、このバッファの長さは変化させてもよいと理解される。同期領域において生成されたデータトークンは、制御ブロック２１０によって生成されたＳ２Ａ「ｇｏ」信号に応答して、ＤＴＵ２０６によりバッファ２０８へ転送される。Ｓ２Ａ「ｇｏ」信号の生成については、下で説明する。
【００３６】
バッファ２０８の終端部にあるデータトークンのそれぞれのビットをバッファ２０８から転送するのに成功したことの表示に応答して、完了ブロック２１２は、完了した転送と、少なくとも一つの追加データトークンのための余地が現在バッファ２０８に存在する事実とを表す１ｏｆ１転送トークンを生成する。特定の実施形態によれば、完了ブロック２１２は、パイプラインアーキテクチャを利用し、データトークンのそれぞれのビットに対する完了信号から単一の転送トークンを生成することに内在するレイテンシの影響を最小化する。こうした完了ブロックの特定の実施については、下で説明する。
【００３７】
完了ブロック２１２によって生成された転送トークンは、遅延非感受性ハンドシェイクプロトコルにより、（多数のトークンに対応可能な）転送トークンバッファ２１４のステージを通じて受領及び転送される。任意の時点でのトークンバッファ２１４内のトークンの数は、同期領域から転送される追加的なデータトークンのためにバッファ２０８において利用可能なスペースの数に対応する。トークンバッファ２１４の長さは、異なる実施に応じて変化させてよく、異なるバッファ長は特定のデータパス幅により適したものとなる。
【００３８】
制御ブロック２１０がバッファ２１４から転送トークンを受領し、更にデータトークンに関する同期領域からの未解決の要求が存在する時、制御ブロック２１０は、非同期領域でデータトークンを受領する準備ができていることを示す許可信号を生成する。制御ブロック２１０は、更に、ＤＴＵ２０６によるバッファ２０８の第一のステージへのデータトークンの転送を可能にするＳ２Ａ「ｇｏ」信号を生成する。特定の実施形態によれば、Ｓ２Ａ「ｇｏ」信号は、パイプラインツリー構造を使用してＤＴＵ２０６の個別のデータパス転送ユニット内で分配され、こうした分配に内在するレイテンシの影響を最小化する。代替実施形態によれば、Ｓ２Ａ「ｇｏ」信号は、単一の線等の電気的に連続する伝導体を使用して、個別のデータパス転送ユニットに分配される。
【００３９】
様々な実施形態によれば、図１及び２及び対応する説明を参照して理解されるように、「ｇｏ」信号を生成及び分配する様々な要素のパイプライン化は、低レイテンシの解決策を発生させ、これにより大きなデータトークンを非同期及び同期領域間で転送し得る。一部の実施形態によれば、３２または６４ビット等の大きなデータパスのレイテンシは、１クロック期間ほどの小ささにできる。
【００４０】
連続データのブロックにおいてデータ転送を行う必要があり、及び／または、待ち状態を許容しない、特定のタイプの同期システムでは、上記のＡ２Ｓ及びＳ２Ａインタフェースは、領域間でデータを効果的に転送するのに、それ自体では十分でない場合がある。そのため、本明細書において「バーストモード」と呼ばれる本発明の様々な特定の実施形態によれば、同期領域のデータ転送要件が満たされる状態を確保する解決策が提供される。
【００４１】
図３は、同期領域が中断のないブロックまたは連続したトークンの「バースト」でデータが転送されることを期待する本発明の特定の実施形態により、非同期領域３０２から同期領域３０４へデータトークンを転送する例示的な「バーストモード」インタフェース３００を示す簡略図である。なお、非同期という用語は特定の回路に関して使用し得るが、本発明のインタフェースの性質は、非同期側にタイミングの制約が存在することを意味し、例えば、バッファがクロックサイクル毎に一つのデータトークンを供給するのに十分な速度を有する必要があることを意味する。こうしたバッファは通常のクロックサイクルより大幅に速い速度でトークンを供給するという点において、これは全く容易な制約ではあるが、制約であることに変わりはない。
【００４２】
更に特定的な実施形態によれば、同期領域３０４は、同期メモリアーキテクチャであり、インタフェース３００は、「ライト」インタフェースである。しかしながら、本発明により設計されるバーストモードインタフェースは、図３に示す特定の実施よりも一般的に応用可能である。即ち、図３に表示する様々な実施の詳細は、他の応用のために設計されるボーストモードインタフェースにおいて、必要ではない場合、或いは他の詳細と置き換えてよい場合がある。
【００４３】
表示の実施形態によれば、１ｏｆ２エンコーディングを使用してエンコードされた３２ビット幅データトークン、即ち、Ｌ［０．．３１］が仮定される。しかしながら、説明する実施形態により、任意の数のビットを有し、多数の異なる方法でエンコードされたデータトークンを、一方の領域から他方へ転送してもよいと理解される。データトークンに関連する制御情報、例えば、ライトコマンドビットと、データが書き込まれるアドレスとは、データトークンから分離され、制御パス３０３を介して伝送される。３２ビットデータトークンは、データパス３０５を介して伝送される。
【００４４】
理解されるように。制御情報の性質は、同期領域におけるメモリアーキテクチャのタイプに依存する。同じく理解されるように、データトークンは、メモリのブロックにおいて特定のワードのみが書き込まれるダミートークンを含んでもよい。こうしたダミートークンは、バーストに含めてよく、例えば、それぞれのトークンに関連するマスクビットにより特定してもよい。
【００４５】
３２ビット幅データパスは、上で説明した遅延非感受性ハンドシェイクプロトコルにより、非同期領域において生成されたデータトークンを受領し、あるステージから次のステージへ転送する、多段式バッファキュー３０６を含む。バッファ３０６は、２４ステージを有するように、即ち、２４のデータトークンに対応できるように表示されているが、様々な実施形態に従って、このバッファの長さは変化させてもよいと理解される。各データトークンのバッファ３０６への転送が達成されると、それぞれのビットでの処理の完了が、ハンドシェイクにより、バッファ１０６の第一のステージで逆向きに信号で送られる。
【００４６】
データパスは、更に、ＤＴＵブロック３０８によって表される複数の非同期−同期（Ａ２Ｓ）データパス転送ユニット（データトークンの各ビットに一つ）を含む。説明するように、ＤＴＵ３０８は、Ａ２Ｓ「ｇｏ」信号と同期領域３０４に関連するクロック信号（ＣＬＫ）に応答して、同期領域３０４への各データトークンの転送を達成する。本発明の特定の実施形態により、Ａ２Ｓ「ｇｏ」信号が生成される方法については、下で説明する。
【００４７】
トークンのそれぞれのビットがバッファ３０６への転送に成功したこと（即ち、各ビットのための完了したハンドシェイク）の表示に応答して、完了ブロック３１０は、完了した転送を表す１ｏｆ１転送トークンを生成する。特定の実施形態によれば、完了ブロック３１０は、パイプラインアーキテクチャを利用し、データトークンのそれぞれのビットに対する完了信号から単一の転送トークンを生成することに内在するレイテンシの影響を最小化する。こうした完了ブロックの特定の実施については、下で説明する。
【００４８】
特定の実施形態によれば、バッファ３０６は、一連の非同期ステージとして実施され、そのそれぞれが、上で説明した四相非同期ハンドシェイクを使用して、介在するバッファチャネルを介して、一度に一つの３２ビットデータトークンを受信及び送信する。更になお特定的な実施形態によれば、各バッファステージは、１６のバッファ素子を並列で備え、そのそれぞれが、ハンドシェイクを使用してデータの二つのビットを受信及び送信することに責任を有する。理解されるように、本発明の範囲から離れることなく、バッファ３０６とそのバッファステージを実施し得る方法は、数多く存在する。
【００４９】
転送トークンは、バーストを送信するために十分な数のトークンがバッファに存在するかを追跡する目的で、バッファへの転送が成功した全てのデータトークンについて生成される。特定の実施形態によれば、完了ブロック３１０は、パイプラインアーキテクチャを利用し、データトークンのそれぞれのビットに対する完了信号から単一の転送トークンを生成することに内在するレイテンシの影響を最小化する。更に詳しくは、完了ブロック３１０は、バッファ３０６に送信されたデータトークンのコピーから転送トークンを生成するツリー構造として実施される。こうしたツリー構造の例は、データトークンをコピーする回路を含め、図４に表示されている。
【００５０】
各バッファ素子４０２は、非同期ハンドシェイクプロトコルを使用して、データの二つのビットを受信及び送信する。各バッファ素子は、更に、成功した転送が発生した時、例えば、イネーブルのコピーである、完了信号を生成する。この完了信号は（隣接バッファ素子の他の三つの完了信号と共に）、四つ全ての完了信号が受領された時に単一のトークンを生成する四方向トークン収集回路４０４によって受領される。このトークンは（同様の回路４０４によって生成された他の三つと共に）、ほぼ同じ形で転送トークンを生成する最終の四方向トークン収集回路４０６へ送信される。こうした実施において使用し得る例示的な四方向トークン収集回路のためのＣＳＰは、＊［＜‖ｉ：０．．３：Ｌ［ｉ］？＞；Ｒ！］によって与えられる。こうした実施において使用し得る例示的な転送バッファ素子のためのＣＳＰは、＊［Ｌ？ｘ；Ｒ！ｘ，Ｔ！］によって与えられる。
【００５１】
転送トークンは、アキュムレータブロック３１２に受領され、アキュムレータブロック３１２は、特定の数の転送トークンが蓄積され、バッファにおける少なくとも一回のデータのバーストの存在を示す時、単一の同期トークンを生成し、例えば、各データトークンがシングルワードのデータで、バーストが八ワードのデータでなければならない場合、同期トークンは、八つの転送トークンを受領する毎に生成される。
【００５２】
同期バッファ３１４は、単純に、自分の入力を自分の出力にコピーするバッファだが、制御情報によって特定されるアドレスへのライトを達成するのに十分なデータがバッファ３０６に存在することを示すアキュムレータブロック３１２からの同期トークンを受領するまで、アドレス及びライトコマンド等、制御パス３０３上の制御情報を通過させない。制御情報は、その後、上で説明したＤＴＵブロック１０８及び３０８のデータパス転送ユニットと同様の単純なバッファステージを備え得るＡ２Ｓインタフェース３１６に伝送される。代替として、Ａ２Ｓインタフェース３１６は、例えば、図１のＡ２Ｓインタフェース１００のような、より複雑なものを使用して実施してもよい。
【００５３】
特定の実施形態によれば、アキュムレータブロック３１２によって生成される同期トークンは、一部を図５に示すパイプラインツリー構造を使用して、同期バッファ３１４の個別のバッファ素子に分配される。（本質的に逆の機能を果たす）図４のツリー構造と同様に、ツリー構造５００は、単一のトークンのコピーをそれぞれのバッファ素子に分配することに内在するレイテンシの影響を最小化する。
【００５４】
図５に示すように、四方向トークンコピー回路５０２は、同期トークンを受領し、同期バッファ３１４の個別のバッファ素子５０６に分配するのに十分な数のコピーが存在するまで、複数の後続のトークンコピー回路５０４（二方向、三方向等、異なる出力数を有し得る）のそれぞれにトークンをコピーする。こうした実施において使用し得る例示的な四方向トークンコピー回路のためのＣＳＰは、＊［Ｌ？；＜‖；：０．．３：Ｒ［ｉ］！＞］によって与えられる。こうした実施において使用し得る例示的な同期バッファ素子のためのＣＳＰは、＊［Ｌ？ｘ，Ｔ？；Ｒ！ｘ］によって与えられる。
【００５５】
いかなる場合においても、ライト要求等の制御情報が同期領域に伝送されると、同期制御回路３１８によってＡ２Ｓ「ｇｏ」信号がアサートされ、連続クロック信号に応答して、ＤＴＵブロック３０８は、同期メモリアーキテクチャを特徴付けるプロトコルにより、特定のメモリ位置に書き込まれるデータトークンのバーストを転送する。バーストが完了すると、「ｇｏ」信号はデアサートされる。
【００５６】
図６は、本発明の特定の実施形態により、同期領域６０２から非同期領域６０４へデータトークンを転送する例示的な「バーストモード」インタフェース６００を示す簡略図である。表示の実施形態において、同期領域６０２は、同期メモリアーキテクチャを備え、インタフェース６００は、図３のライトインタフェースと共に使用するリードインタフェースである。他の様々な実施形態によれば、インタフェース６００に類似するＳ２Ａインタフェースは、同期領域が連続トークンのバーストにおいてデータを転送することを求められる広範なコンテクストのいずれかにおいて利用し得る。
【００５７】
図３のライトインタフェース３００と同様に、１ｏｆ２エンコーディングを使用してエンコードされた３２ビット幅データパス、即ち、Ｌ［０．．３１］が仮定される。しかしながら、説明する実施形態により、任意の数のビットを有し、多数の異なる方法でエンコードされたデータトークンを、一方の領域から他方へ転送してもよいと理解される。データパスは、ＤＴＵブロック６０６によって表される複数の同期−非同期（Ｓ２Ａ）データパス転送ユニット（データトークンの各ビットに一つ）を含む。説明するように、ＤＴＵ６０６は、Ｓ２Ａ「ｇｏ」信号と同期領域３０４に関連するクロック信号（ＣＬＫ）とに応答して、非同期領域６０４への各データトークンの転送を達成する。本発明の特定の実施形態により、Ｓ２Ａ「ｇｏ」信号が生成される方法については、下で説明する。
【００５８】
３２ビット幅データパスは、更に、上で説明した遅延非感受性ハンドシェイクプロトコルにより、データトークンを受領し、あるステージから次のステージへ転送する、多段式バッファキュー６０８を含む。バッファ６０８は、２４ステージを有するように表示されており、これは特定の実施形態において、三回の八トークンのデータバーストのためのスペースを提供するためである。しかしながら、様々な実施形態に従って、このバッファの長さは変化させてもよいと理解される。各データトークンのバッファ６０８からの転送が達成されると、それぞれのビットでの処理の完了が、ハンドシェイクにより、逆向きに信号で送られる。
【００５９】
ライトインタフェース３００と同様に、リードコマンド及びアドレス等、非同期領域６０４において生成された制御情報は、予測される連続データトークンのバーストを受け入れるのに十分な余地がバッファ６０８にできるまで、同期領域６０２に伝送されない。一実施形態によれば、バーストのサイズは、一定である。別の実施形態によれば、バーストのサイズは変化し、制御情報を参照して決定してもよい。いかなる場合においても、インタフェース６００は、同期領域から転送されるデータがどのようなサイズであっても、それに対応する十分なバッファスペースが存在する状態を確保するように構成される。
【００６０】
特定の実施形態によれば、これは、バッファ６０８からの転送に成功した全てのデータトークンに対して転送トークンを生成する完了ブロック６１０により、バッファ６０８から転送されたトークンの数を追跡することで達成される。特定の実施形態によれば、完了ブロック６１０は、パイプラインアーキテクチャを利用し、データトークンのそれぞれのビットに対する完了信号から単一の転送トークンを生成することに内在するレイテンシの影響を最小化する。更に詳しくは、完了ブロック６１０は、バッファ６０８の最終ステージに続いて非同期回路によって生成された完了信号から転送トークンを生成するツリー構造として実施してよい。代替として、完了ブロック６１０は、バッファ６０８に続く自分のバッファステージを備えてもよい。こうしたツリー構造の例は、図４を参照して上で説明している。
【００６１】
完了ブロック６１０によって生成された転送トークンは、アキュムレータブロック６１２によって受領され、アキュムレータブロック６１２は、特定の数の転送トークンが蓄積され、バッファ６０８において、少なくとも一回のデータのバーストのためのスペースが存在することを示す時、単一の同期トークンを生成し、例えば、各データトークンがシングルワードのデータで、バーストが８ワードのデータである場合、同期トークンは、八つの転送トークンを受領する毎に生成される。アキュムレータブロック６１２によって生成された同期トークンは、同期バッファ６１６への適用のためにトークンバッファ６１４に格納される。
【００６２】
トークンバッファ６１４は、一度に三つの同期トークンバッファに対応できるものとして表示されている。これは、バッファ６０８によって対応し得るデータバーストの数に対応する。しかしながら、トークンバッファ６１４は、本発明の範囲から離れることなく、バッファ６０８と共に長さを変えてもよいと理解される。トークンバッファについて選択された長さに関連する何らかのタイミングの仮定が存在するか、或いは、バッファ６０８で対応可能なバーストの数によって決定されるか。更に、インタフェースをパワーアップした時には、バッファ６０８が完全に空である事実を反映するために、トークンバッファ６１４には、同期バッファがフルに配置されると理解される。
【００６３】
同期バッファ６１６は、単純に、自分の入力を自分の出力にコピーするバッファだが、制御情報によって特定されるアドレス範囲からのデータのリードを達成するのに十分なスペースがバッファ３０６に存在することを示すトークンバッファ６１４からの同期トークンを受領するまで、アドレス範囲及びリードコマンド等、制御パス６０５上の制御情報を通過させない。制御情報は、その後、上で説明したＤＴＵブロック１０８及び３０８のデータパス転送ユニットと同様の単純なバッファステージを備え得るＡ２Ｓインタフェース６１８に伝送される。代替として、Ａ２Ｓインタフェース６１８は、例えば、図１のＡ２Ｓインタフェース１００のような、より複雑なものを使用して実施してもよい。
【００６４】
インタフェース３００を参照して上で説明したように、インタフェース６００の回路には何らかのタイミングの制約が存在する。即ち、例えば、インタフェース６００は、同期バッファ６１６がトークンバッファ６１４から同期バッファを受領するたびに、バッファ６０８内の任意のデータトークンをバッファの終端部に向けて、十分に遠くまで移動させ、同期トークンの伝送によって引き起こされるデータのバーストに対応するのに十分なスペースがバッファの先頭に存在するように構成される。特定の実施形態によれば、これは、少なくとも部分的には、バッファ６０８がトークンをステージからステージへ転送する速度により達成され得る。
【００６５】
特定の実施形態によれば、トークンバッファ６１４から伝送される各同期トークンは、図５を参照して上で説明したパイプラインツリー構造を使用して、同期バッファ６１６の個別のバッファ素子に分配される。
【００６６】
いかなる場合においても、リード要求等の制御情報が同期領域に伝送されると、同期制御回路６２０によってＡ２Ｓ「ｇｏ」信号がアサートされ、連続クロック信号に応答して、ＤＴＵブロック６０６は、同期領域６０２からのデータトークンのバーストをバッファ６０８に転送する。バーストが完了すると、「ｇｏ」信号はデアサートされる。こうした「ｇｏ」信号の生成については、更に特定的な実施形態を参照して、下で説明する。
【００６７】
次に、Ａ２Ｓ及びＳ２Ａインタフェースの更に特定的な実施について、図７以降を参照して説明する。以下の説明において、非同期チャネルは、１ｏｆＮチャネルにハンドシェイク「イネーブル」線を追加したものを指す。イネーブル線は、スーパスクリプト「ｅ」によって特定される。こうした線での通信は、上で説明した非同期四相ハンドシェイクプロトコルにより行われる。「妥当性」とは、１ｏｆＮチャネルの状態を指す。一本のレールがハイである時、そのチャネルは「有効」であると言われる。その他の場合は、「中立」または無効であると言われる。「トークン」は、システム内の一つの非同期チャネルから次のものへの有効状態の伝搬を指す抽象概念である。
【００６８】
下で説明するコンバータ設計では、フロー制御を実施するために、一対の同期ハンドシェイク信号（Ｓo及びＳiと呼ばれる）を更に使用する。図７に例示する特定の実施形態によれば、使用されるハンドシェイクプロトコルは、以下の通りである。立ち上がりクロックエッジにおいて、Ａ及びＢが共にハイである場合、レシーバは、データを読む。Ａがハイで、Ｂがローである場合、データチャネルは、未読値を含み、センダは、レシーバがＢを高めるのを待っている。Ａがローで、Ｂがハイである場合、データチャネルは「空」である。レシーバは、以前の値を全て読んでおり、次の値のための準備ができている。Ａ及びＢが共にローである場合、チャネルは空であり、レシーバは、チャネル値からの読み込みの準備ができていない。
【００６９】
様々な信号、チャネル、定数を表すために、以下の省略及び表記が使用される。ＣＬＫ−クロック、Ｔｃｌｋ−クロック期間、Ｓo−同期ハンドシェイク出力信号、Ｓi−同期ハンドシェイク入力、Ａc−ＰＣ１ｏｆ１出力チャネル、ｇｏ−トークンを転送するかを示すＤＴＵアレイに対する制御信号（同期シングルレールブロードキャストまたは１ｏｆ１四相非同期チャネルのいずれか）、ｅｎ−セル内の内部イネーブル信号（ｅｎは、自分の入力チャネルに対するイネーブルである場合と、そうではない場合とがある）。
【００７０】
下で説明するそれぞれの実施形態は、クロック（同期）ロジックとローカルハンドシェイク（非同期）ロジックとの間での高性能変換回路を実施する。非同期領域において、データの転送は、１ｏｆＮレールチャネルで、四相ローカルハンドシェイクプロトコルに従って発生する。同期領域において、データの転送は、クロック信号の遷移とのタイミング関係により発生する。二種類の通信規則を混合する任意の回路は、必然的に、システムにメタスタビリティを持ち込む。低レイテンシで高スループットの転送を維持しながら、このメタスタビリティをデータトークン転送につき単一の信号に局在化させることが、下で説明する様々な実施形態の目的となる。
【００７１】
非同期−同期（Ａ２Ｓ）及び同期−非同期（Ｓ２Ａ）コンバータ８０２及び８０４のポートインタフェースは、それぞれ、図８に例示されている。なお、以下の説明においては、全ての同期信号は、シングルレールであると仮定される。しかしながら、本発明の実施形態は、その他の同期信号変換（デュアルレールまたは差動型）に極めて容易に対応できる。
【００７２】
Ａ２Ｓインタフェース８０２の動作の簡単な説明は、次の通りである。
１．非同期トークンがＬチャネルに到着し、全てのＬ0．．．ＬM-1チャネルが有効になることで表示される。
２．ＣＬＫの次の立ち上がりエッジにおいて、Ｓiがハイであるか、或いはＳoがローである場合、転送が発生する（状態４へ進む）。そうでない場合は、
３．コンバータは、Ｓiがハイである時に立ち上がりＣＬＫ遷移まで待機する。
４．Ｌのデータ値が読み込まれる（イネーブルはローとなり、Ｌ0．．．ＬM-1データレールは中立となる）。ＣＬＫの立ち下がりエッジにおいて、この値がＲ0．．．ＲN-1においてアサートされ、Ｓoがハイにセットされる。
５．動作が状態１に戻る。次のトークンが到着するまで、各立ち上がりＣＬＫエッジにおいて、Ｓiがハイである場合には、次の立ち下がりＣＬＫ遷移においてＳoがローに設定される。
【００７３】
これは、Ａ２Ｓコンバータ８０２の内部のＬチャネルでの非ゼロスラックによる簡単な説明である。Ｌハンドシェイクとコンバータの同期転送との間の正確なタイミング関係は知られていない（但し、上に示したものより早い時点でのみ発生可能である。）。
【００７４】
Ｓ２Ａインタフェース８０４の動作について、同様の簡単な説明は次の通りである。
１．Ｒ0．．．ＲM-1チャネルが全て中立になり、コンバータは、全てのＲieイネーブルがハイになるのを待つ（トークンを受領する準備ができたことを示す）。少なくとも一つのＲieがローである限り、ＳoはＣＬＫの立ち下がり遷移においてローに設定される。
２．次のＣＬＫの立ち上がりエッジにおいて、Ｓiがハイである場合、転送が発生する（状態４へ進む）。転送が発生しても、発生しなくとも、次の立ち下がりＣＬＫエッジにおいて、Ｓoがハイにアサートされる。
３．コンバータは、Ｓiがハイである時に立ち上がりＣＬＫ遷移まで待機する。
４．Ｌ0．．．ＬN-1のデータ値がＲチャネルに書き込まれる（Ｒ0．．．ＲM-1は有効となり、イネーブルはローに遷移する）。動作が状態１に戻る。
【００７５】
下で説明するＡ２Ｓインタフェース及びＳ２Ａインタフェースは、上記の動作を実施する。加えて、説明する実施形態の特定の実施は、以下の特性を特徴とする。タイミングに関して、本発明の様々な設計では、全ての信号に最低限のタイミングの仮定を強制する。競合は、クロックに対してのみ、指定された設定と、ＣＬＫの立ち上がりエッジに相対的な保持時間とに従うと仮定される同期入力上において存在する。全てのタイミングの仮定が成り立つと仮定すると、メタスタビリティは、設計の単一のポイントのみで生じる。このメタスタビリティは、ザイツアービタにより解消される。１／２Ｔｃｌｋ（マイナスのイプシロン）により、メタスタビリティの解消が可能である。全ての同期出力は、ＣＬＫ＋に続く何らかの範囲の［ｔＯmin，ｔＯmax］の間に遷移する。
【００７６】
様々な実施形態によれば、Ｓ２Ａ及びＡ２Ｓ方向は、両方とも、クロックサイクルにつき一回の転送を持続できる。変換の最大レイテンシペナルティは、（同期−同期転送と相対的に）１クロックサイクルであり、病的な場合にのみ被る。着信Ａ２Ｓ及び発信Ｓ２Ａトークンの完了は、サイクル時間を低く保つために、パイプライン処理される。
【００７７】
様々な実施形態によれば、ＣＬＫとの最小化された同期により「オーバクロック」が可能となり、Ｔｃｌｋが最小レベルを下回った際にも、正確さが維持される（「ｎｏｐ」サイクルが同期ハンドシェイクを介して導入される）。全てのタイミング競合が満たされたと仮定すると、アービタを超えてメタスタビリティが伝搬する唯一の可能性は、正確にＣＬＫ＋に続くＴｃｌｋ／２である一回の遷移の期間中にアービタが消滅した場合である。
【００７８】
特定の実施形態によるＡ２Ｓ及びＳ２Ａコンバータ８０２及び８０４の内部の高レベル編成は、図９に表示されている。各インタフェースは、四つの高レベルコンポーネントを含む。
１．パイプライン完了（ＰＣ）９０２。このコンポーネントの目的は、着信（Ａ２Ｓ）または発信（Ｓ２Ａ）データトークンを特定し、肯定応答することである。この「完了」ロジックは、各データチャネルのＯＲ’ｄデータレールをＣ素子のツリーに供給すること、即ち、こうしたデータレールを単一の「データ有効」信号に圧縮することを含む。単一チャネルトークン以外の全てについて、この組み合わせロジックツリーでは、あまりにも多くの順方向レイテンシが持ち込まれ、高サイクルレートが持続できない。そのため、特定の実施形態によれば、着信トークンは、パイプライン式に完了され、各ステージでの中間完了信号をバッファする。
【００７９】
特定の実施形態によれば、ＰＣ９０２は、同じトークンサイズ及びタイプのＡ２Ｓ及びＳ２Ａコンバータの両方について同一である。ＰＣ９０２は、それぞれの非同期側（即ち、Ａ２Ｓの入力、Ｓ２Ａの出力）に現れる。
【００８０】
２．制御プロセス（ＣＴＲＬ）９０４及び９０６（例えば、図１０参照）。ＣＴＲＬプロセス９０４及び９０６は、（１）非同期及び同期側の両方で転送の準備ができた時にデータパスへの「ｇｏ」信号を発行することと、（２）非同期及び同期ハンドシェイク信号（Ａcd，Ａce）及び（Ｓi，Ｓo）を順序付けることと、（３）必要に応じてＣＬＫに同期することとに責任を有する。
【００８１】
Ａ２Ｓ及びＳ２Ａ設計の制御プロセス（それぞれＣＴＲＬ９０４及び９０６）は、ほぼ同一である。Ａ２Ｓ  ＣＴＲＬ９０４とＳ２Ａ  ＣＴＲＬ９０６との間の唯一の違いは、そのリセット状態であり、Ａ２Ｓ  ＣＴＲＬ９０４のＳoはローをリセットし、Ｓ２Ａ  ＣＴＲＬ９０６のＳoはハイをリセットする（前者は、同期出力チャネルの空の状態を反映し、後者は、Ｓ２Ａの非同期キャプチャバッファの空の状態を反映する）。
【００８２】
３．データパス転送ユニット（ＤＴＵ）９０８及び９１０（例えば、図１１を参照）。一般に、ＤＴＵユニットは、関連するＣＴＲＬプロセスからの転送（「ｇｏ」）信号が受領された際に、同期／非同期境界を越えてデータトークンを転送することに責任を有する。Ａ２Ｓ及びＳ２Ａデータパス転送ユニットは、大きく異なる。それぞれの詳細は、下で説明する。
【００８３】
４．データパスバッファリング９１２及び９１４。Ａ２Ｓインタフェース及びＳ２Ａインタフェースは、両方とも、ＰＣ及びデータパストランスファユニット間に非同期バッファの追加的なステージを必要とする。バッファは、転送前（Ａ２Ｓバッファ９１２）または後続の非同期回路によって消費される前（Ｓ２Ａバッファ９１４）のいずれかにデータトークンを格納する。両方のケースにおいて、これらのバッファステージに、タイミングの仮定が強制される。具体的には、バッファは、ＤＴＵユニットがトークンを消費または生成できる速度より高速でトークンを渡すことができる。別の言い方をすれば、バッファアレイは、クロック期間よりも長いクリティカルサイクルを有していない。
【００８４】
上記のＡ２Ｓインタフェース８０２の高レベルの分解を考えると、その動作についての更に詳細な説明を提供できる。最初に非同期Ｌ入力から、トークン（四相ハンドシェイクプロトコルに従ったＮの１ｏｆＭチャネルを備える）が、Ａ２Ｓコンバータ８０２に入り、即座に二つのブランチへコピーされ、一方は、パイプライン完了（ＰＣ９０２）へ、他方は、Ａ２Ｓ  ＤＴＵアレイに先行するデータパスバッファ９１２へ向かう。ＰＣ９０２は、ロジックのいくつかのステージを通じて、トークンを単一の１ｏｆ１トークンに圧縮し、ステージの数はＮ及びＭのサイズに応じて変化する。１ｏｆ１トークン（図９の「Ａc」チャネル上）は、その後、非同期トークンが到着し、変換の準備ができていることの通知として、Ａ２Ｓ  ＣＴＲＬプロセス９０４に提出される。
【００８５】
Ａ２Ｓ  ＣＴＲＬプロセス９０４は、ＣＬＫの次の立ち上がりエッジにおいて、１ｏｆ１  Ａcチャネルの状態をサンプリングする。有効データ（Ａcdアサート済み）が含まれることを確認すると、出力チャネルと同期「許可」（Ｒe）信号との状態に応じて、トークンを同期領域に転送するかどうかを判断する。Ｒチャネルが空である場合（Ｒvがロー）、或いは、許可信号がハイである場合、Ａ２Ｓ  ＣＴＲＬプロセス９０４は、要求信号（Ｒv）を高める。Ｒeもハイである場合、ＣＴＲＬ９０４は、「ｇｏ」データパス信号をＤＴＵアレイに対してアサートし、データパス転送ユニットが非同期データトークンに肯定応答するべきであり、同期Ｒdビットに対して値をラッチするべきであることを示す。この時までに、非同期トークンは、バッファ９１２を通じて伝搬され、ＤＴＵ９０８のアレイによる消費に対する準備が整うことになる。
【００８６】
一方、Ａ２Ｓ  ＣＴＲＬプロセス９０４は、トークンを転送しない場合、即ち、Ｒvがハイであり、Ｒeがローであった場合、Ａcに肯定応答せず、「ｇｏ」をアサートしない。その後、Ｒeがハイとなる（受領者がＲ上の古い同期値を受け入れたことを示す）後続のいずれかのクロックサイクルにおいて、上で説明したように非同期トークンを転送する。
【００８７】
様々な実施形態によれば、このＡ２Ｓコンバータ８０２の動作説明は、いくつかのタイミングの仮定に依存している。
１．フルスループット転送（即ち、いずれの側もストールしていない時、クロック期間毎に一回）を維持するためには、各非同期パイプラインユニットは、入力及び出力ハンドシェイクを一クロック期間に基づいて完了できる必要がある。例えば、単一ステージのＰＣは、このユニットのパイプライン処理が必要となる十分に短い時間内に、３２ビットデータパスを完了することはできない。
【００８８】
なお、特に、入力Lパス上の二つのブランチは、パイプラインがピーク動的容量（安定状態の条件）及びピーク静的容量（同期側のストール後）の両方である時、この要件を満たす必要がある。後者の条件は充足がより困難であるが、ストールさせるいくつかのローのサイクル後に、Ｒeがハイになったケースにコンバータが迅速に反応することになる場合には、必ず満たす必要がある。
【００８９】
また、Ａ２Ｓ非同期回路内でこの条件が満たされると、Ａ２Ｓコンバータへの供給を行う非同期回路に更なるタイミングの仮定を強制する必要はなくなる。Ａ２Ｓの外部において、ハンドシェイクは、予測不可能な形で任意の長時間に渡ってストールとなる可能性があり、Ａ２Ｓコンバータは、常に正確さを維持し、可能な場合は常にピークスループットでトークンを変換する。
【００９０】
２．Ａ２Ｓは、ＣＬＫの立ち上がりエッジでのＡc状態をサンプリングできる必要があり、転送することを判断した場合には、「ｇｏ」信号を全てのＡ２Ｓ＿ＤＴＵ素子にアサートする必要があり、その後、Ａ２Ｓ＿ＤＴＵ素子は、Ｌデータ値をＲdビットに対してラッチする必要があり、全ては単一のクロックサイクル内で、何らかの最高出力時間を決して超過しない。クロックと相対的なＡcのサンプリングでは、決定に到達するまでに、（メタスタビリティの解決のため）基本的に非決定論的な期間が必要となることを考えると、このタイミングの仮定は、考えられる最悪のアービトレーション時間に基づいて検証されるべきである。サンプリングが何らかのクリティカルな量（この設計においてはクロックサイクルの約半分）よりも長い時間を要した場合、コンバータは、最大出力時間に違反するリスクを冒す（或いは、更に正確には、Ａ２Ｓ  ＣＴＲＬアービトレーションロジック外部でメタステーブル状態が伝搬する）。この障害条件は破滅的なものとして扱う必要があり、こうした障害の確率を特徴付ける必要がある。ここから、入力／出力停止条件に関するいくつかの仮定を与え、ＭＴＢＦ（平均故障間隔）を決定することができる。
【００９１】
３．Ａ２Ｓコンバータは、ＣＬＫの立ち上がりエッジに続いて、あまりにも早く同期出力（Ｒv，Ｒd）を変化させてはいけない。これは、標準同期タイミング（「保持時間」）の制約である。本明細書に提示する設計は、〜ＣＬＫを全ての出力変更の条件とすることにより、これを満足させ、即ち、出力同期回路の保持時間がＴｃｌｋ／２未満である限り、障害の可能性は存在しない。この設計では、およそＴｃｌｋ／２という最悪のケースのメタスタビリティ解消時間を想定しているため、（クロックサイクル以内での計算用に出力同期回路に対して更に時間を与えるために）この最短出力時間を更に積極的に最適化する理由は存在しない。即ち、可能な最短の最大出力時間も、Ｔｃｌｋ／２より大きくなる。
【００９２】
Ｓ２Ａコンバータ８０４において、転送するトークンの到着は、同期側でのＬvのアサートによって示される。Ｓ２Ａ  ＣＴＲＬプロセス９０６は、ＣＬＫの立ち上がりエッジでの１ｏｆ１  Ａcトークンの状態をサンプリングすることで、転送を許可するかどうかを判断する。Ａcでのトークンの存在は、データパス出力バッファ９１４内の追加トークン用のスペースを示す。この場合（ＣＬＫの立ち上がりエッジにおいてＡcdが設定された時）、Ｓ２Ａ  ＣＴＲＬ９０６は、Ｌe許可線をハイに設定し、Ａcトークンに肯定応答する。Ｌe及びＬvの両方がハイになる場合、同期入力値を非同期キャプチャバッファに転送するために、ＤＴＵ９１０のアレイに対する「ｇｏ」信号がアサートされる。
【００９３】
出力非同期回路がＳ２Ａバッファ９１４に取り込まれた変換済みトークンを消費する際には、パイプライン完了（ＰＣ）９０２にコピーが送信され、新しいＡcトークンとなる。これにより、Ａcトークンの合計数は、システム内で保全され、Ｓ２Ａコンバータ８０４の固定トークン容量を表す。何らかの時点で出力非同期回路がストールした場合（バッファのドレインの停止）、バッファ９１４は一杯になり、新しいＡcトークンは生成されない。Ａ２Ｓ  ＣＴＲＬプロセス９０６は、その後、許可（Ｌe）ラインを低下させ、出力ロジックがＲから読み込みを行い、Ａcトークンを生成するまで、トークンの変換を停止する。リセット条件、正常動作、及び非同期側のストール条件の絵による表現は、それぞれ図１２Ａ乃至Ｃに例示されている。
【００９４】
Ｓ２Ａコンバータ８０４は、Ａ２Ｓコンバータ８０２を参照して上で説明したものと同じ、以下のタイミング要件の全般的な三つのカテゴリを満足させる必要がある。
１．Ｓ２Ａコンバータ内の全ての非同期パイプラインセルは、あらゆる動作条件下において、クロック期間のハンドシェイクサイクルを持続する必要がある。
【００９５】
実際には、非同期出力バッファに関する要件は、Ａ２Ｓコンバータの入力バッファよりも、Ｓ２Ａコンバータにおいて更にクリティカルとなる。Ａ２Ｓコンバータでは、入力非同期バッファリングは、フル（以前はストール）から動的条件へ遷移する時、多少「スタッタ」を起こし、最悪の場合は、不必要なセンドストール「非動作」サイクルが導入される。しかしながら、Ｓ２Ａコンバータでは、完全なレシーバストール状態のため、出力バッファが１クロックサイクルで単一のトークンを完全にドレインできない場合、Ｓ２Ａ  ＤＴＵアレイは、Ｓ２Ａ  ＣＴＲＬプロセスが可能であると判断した時に、許可トークンを転送できない場合がある。その結果、データトークンの喪失または不正なデータトークンが生じることになる。
【００９６】
２．Ｓ２Ａコンバータは、最悪のケースのメタスタビリティ解消時間であっても、入力同期回路のセットアップ時間を満足させるために、何らかの妥当な最大出力時間内に、同期出力信号（Ｌe）を設定できる必要がある。この要件は、Ｓ２Ａデータパスに対する内部のｇｏ同期制御ブロードキャストにも強制され、データパスユニットが次のクロックサイクルでトークンを転送する（または転送しない）ことを可能にするために、ｇｏの遷移は、クロックサイクルにおいて遅すぎてはいけない。
【００９７】
３．全ての同期出力（Ｌe、ｇｏ）の遷移は、クロックサイクルにおいて早すぎてはいけない。Ａ２Ｓコンバータと同様に、この要件は、〜ＣＬＫを変更の条件とすることで満たされる。
【００９８】
コンバータ設計の特定の実施形態の実施の詳細を下に記載する。回路の詳細の一部は、明確にするために省略している。これらには、全ての動的ロジックの出力ノード上のスタティサイザと、任意の実際的な実施で必要となる余分なリセット回路とが含まれる。こうした追加物は、両方とも、簡単に実施される。下で説明するユニットの仕様は、ＣＳＰで提供される。
【００９９】
パイプライン完了ユニット９０２は、入力チャネル毎に妥当性検出素子を含む。こうした回路の例は、１ｏｆ４入力を有する図１３のＰＣＳ０  １３００である。ＰＣＳ０  １３００には、深さｌｏｇ（Ｎ）のセルのツリーが続き、例は図１４のＰＣＳ１  １４００である。ＰＣＳ０  １３００は、次の単純なＣＳＰ仕様を実施する。
＊［Ｌ？ｘ；Ｒ！ｘ，Ｖ！］
特定の実施形態によれば、「Ｒ！ｘ」出力動作は、「スラックゼロ」方式で実行され、即ち、Ｌ及びＲデータレールが共に線で結ばれる。Ｌデータレールの一本がハイとなり、１ｏｆ１トークンがＶで送信される。
【０１００】
四入力ＰＣＳ１ユニット１４００は、次のＣＳＰ仕様を実施する。
＊［Ｌ［０］？，Ｌ［１］？，Ｌ［２］？，Ｌ［３］？；Ｒ！］
即ち、四つのＰＣＳ０ユニットからの１ｏｆ１入力を読み込み、その後、単一の１ｏｆ１トークンを出力する。Ｎ＝４である１ｏｆ４入力チャネル（即ち、８ビット相当のデータ）による例は、図１５に表示されている。ＰＣＳ１ユニットは、任意の大きさのデータパスを完成させるために、ツリー構造に組み合わせることができる。大きな完了ツリーは、類似する方法で構築できる。
【０１０１】
例示的なＣＴＲＬプロセスは、図１６に表示されている。Ａ２Ｓ及びＳ２Ａ制御プロセスのいずれかのＣＳＰ仕様は次の通りである。
Ｓo：＝ｓｏ：ｓｏ＿ｉｎｉｔ＿ｓｔａｔｅ
＊［［＃Ａｃ＆ＣＬＫ−＞ａ：＝１｜〜＃Ａｃ＆ＣＬＫ−＞ａ：＝０］，
［ＣＬＫ−＞ｓｉ：Ｓi］；
［〜ａ＆（ｓｉ｜〜ｓｏ）−＞ｘｓｏ：＝０［］ｅｌｓｅ  ｘｓｏ：＝１］，
［ａ＆（ｓｉ｜〜ｓｏ）−＞Ａｃ？  ［］ｅｌｓｅ−＞ｓｋｉｐ］；
ｓｏ：＝ｘｓｏ；
［〜ＣＬＫ−＞Ｓo：＝ｓｏ］］
‖
＊［ｇｏ：＝Ｓi＆Ｓo］
なお、Ａ２Ｓ  ＣＴＲＬプロセスでは「ｓｏ＿ｉｎｉｔ＿ｓｔａｔｅ」が０であり、Ｓ２Ａ  ＣＴＲＬプロセスでは１となる。
【０１０２】
「Ｓo」出力は、Ａ２Ｓコンバータにおいて、Ｒv妥当性信号にマッピングする。Ｓ２Ａコンバータにおいては、Ｌeイネーブル信号にマッピングする。同様に、Ａ２Ｓコンバータにおいて、「Ｓi」はＲe入力であり、Ｓ２Ａコンバータにおいては、Ｌvである。Ｓoのアサートは、制御プロセスにおけるトークンの存在を示すとみなすことができる。Ａ２Ｓコンバータについては、コンバータが同期回路によって消費されるデータトークンをアサートしたことを示し、Ｓ２Ａコンバータについては、コンバータがデータトークンを消費する準備ができたことを示す。
【０１０３】
各立ち上がりクロックエッジにおいて、制御プロセスは、入力非同期チャネルＡcを調査し、チャネルが読み込みを受ける準備ができている場合、内部変数「ａ」をハイに設定する。このプロセスは、更に、同期入力（Ｓi）をラッチする。Ａcが有効データである場合（ａ）、或いは、同期側で準備ができていない場合（Ｓiがロー）、ｘｓｏ（Ｓoになるもの）はハイに設定される。Ａcが有効データを有していない場合（〜ａ）、同期側は準備ができており、その後、ｘｓｏがローにセットされる。他の全ての場合において、ｘｓｏ（Ｓo）は、以前の状態のままとなる。
【０１０４】
Ａcが有効データを有しており、Ｓiがハイであるか或いはＳoがローである場合、Ａcトークンが消費される。これが起こり得るのは、Ｓoがアサートされた時（ＣＴＲＬプロセスにおけるトークンの所有権を示す）及びＳiがハイであった時（問題のクロックサイクルでのそのトークンの消費を示す）のいずれか、或いはＳoがアサートされなかった時（同期側の状態に関係なくＣＴＲＬプロセスがＡcトークンを受け入れられることを示す）である。このロジックの場合には、プロセスは、Ａce信号を低下させ、Ａcdがデアサートされるのを待ち、その後、Ａceを再びアサートする。下に提示する回路の実施においては、クロックサイクル内のＡceに応答して、Ａcdがローになることが重要であり、ＣＬＫの次の立ち上がりエッジでハイを維持した場合、制御プロセスは、トークンを複製することになる（前節で概略を述べたパイプライン完了設計は、この要件を満たす）。
【０１０５】
クロックの立ち下がりエッジでは、「ｓｏ」内部状態変数が、同期ハンドシェイク出力（Ｓo）に書き込まれる。一度ハイになると、Ｓoは、Ｓiがハイになるまで、ハイの状態を維持する。
【０１０６】
このプロセスと並行して、「ｇｏ」信号が、ＳiとＳoとの結合として、組み合わせ的に生成される。Ｓo及びＳiが両方ともハイである任意の立ち上がりクロックエッジにおいて、データパスは、アサートされた「ｇｏ」を確認し、データトークンは一方の領域から他方へ渡される。
【０１０７】
図１６の実施形態に示すように、制御プロセスの回路の実施は、五つのコンポーネントを含み、イネーブル信号の順序付けに責任を有する内部完了ロジック１６０２と、アービトレーションロジック１６０４と、Ｓi入力ラッチング回路１６０６と、Ｓo出力制御及び状態ロジック１６０８と、Ａc肯定応答ロジック１６１０とである。
【０１０８】
制御プロセスの設計の中心は、内部イネーブル信号（「ｅｎ」）であり、内部動的ロジックのセット（ｅｎハイ）及びリセット（ｅｎロー）段階をトリガする。「ｅｎ」は、厳密にはＣＬＫと同期しない。クロックサイクル毎に一度サイクルするが、「ｅｎ」は、ＣＬＫではなく、内部信号の妥当性によって順序付けされる。内部完了ロジック１７００の特定の回路の実施は、図１７に表示されている。
【０１０９】
制御プロセスのためのアービトレーションロジック回路１８００の特定の実施は、図１８に提示されている。この回路に表示されるアービタ１８０２は、例えば、ザイツアービタまたはＱＦＲ等、任意の標準的な相互排除素子にすることができる。「ａ」変数は、回路内の別の場所でのドミノプルダウンロジックステージの使用を可能にする、デュアルレール信号ペアとして実施される。こうすることで、コンバータ全体で使用される同期ＱＤＩ（準遅延非感受性）設計様式が促進される。
【０１１０】
ザイツアービタ及びＱＦＲ回路の例示的な実施については、それぞれ、Ｃ．Ｌ．サイズ「システムタイミング」第七章、Reading, Massachusetts, Addison-Wesley, 1980と、Ｃ．Ｅ．モルナ、Ｔ．Ｊ．チェニ、及びＴ．Ｐ．ファング「Ｑモジュール：内部クロック遅延非感受性モジュール」IEEE Trans. Computers, vol. 37, no.9, pp. 1005-1018, Sept. 1988を参照されたい。これらの参考文献のそれぞれの開示は、あらゆる目的で参照により本明細書に組み込むものとする。
【０１１１】
このロジックのｋｃ（オーバーライン）信号は、Ａcd入力がアービトレーションを達成（Ａg1をアサート）した後、アービトレーションロジックのクロック許可信号（Ａg0）を無効化するために使用される。これは、ＣＬＫ及びｅｎが依然としてハイである間に、Ａceが負に遷移した場合に、回路の残りの部分でＡg0に関する不具合が生じるのを防ぐために行う必要がある。
【０１１２】
ｋｃ（オーバーライン）関数をサイズアービタの変数に組み入れた、更に特化したアービトレーション回路１９００は、図１９に提示されている。この設計は、ａを生成するための余分な動的ロジックステージの必要性を排除する。しかしながら、ＣＴＲＬユニットロジックステージのどこかにおいて、より一般的な設計により「ａ1」が使用される可能性のある全ての場所で、「Ａ1及びＣＬＫ」の連続した組み合わせを代わりに含める必要がある（即ち、余分なトランジスタを必要とする）。
【０１１３】
図１８及び１９の回路は、厳密にＣＬＫが負に遷移する際にアービタ出力が消滅する場合のメタスタビリティの危険性を制限する。Ａg1が勝った場合、ＣＬＫがローに遷移する際にハイに遷移するＡg1は、ａ1（オーバーライン）（或いは、Ａg1に依存する全てのロジックステージ）において不安定な電圧を発生させることができる。Ａg0が勝った場合、ＣＬＫがローに遷移する際にハイに遷移するＡg0は、ａ0（オーバーライン）（或いは、更に特化した設計の他のロジックステージ）をＡg0が完全に引き下げる前に、Ａg0をローに戻すことができる。いずれの場合においても、メタステーブル条件は、アービタを越えて伝搬する。なお、ＣＬＫがローに遷移した後の何らかの時点でアービタが消滅する場合、メタステーブル条件は伝搬せず、ＣＬＫがローに遷移した後の何らかの時点でＡg1が勝った場合、転送は、単純に、次の立ち上がりクロックエッジまで延期され、ＣＬＫがローに遷移するまでにＡg0が勝たなかった場合、ＣＬＫ入力の撤回要求によりＡg1が勝つ。
【０１１４】
したがって、メタスタビリティによる障害モードは、ＣＬＫがローに遷移するのに要する時間に依存する。ＣＬＫの負の遷移で高速なスルーレートを確保することは、こうした基本的な危険性から回路を保護するのに役立つことになる。
【０１１５】
特定の実施形態によれば、Ｓi入力信号は、図２０に表示するエッジトリガ自己無効化シングルレール−デュアルレール回路２０００を使用して取り込まれる。ｅｎ信号は、Ｓi{0,1}入力レールをセット及びリセットし、制御プロセス全体での非同期自己順序付けロジックの使用を促進する。更に、設計は、ロジックの僅かなケースにおいて（クロック期間がＡcサイクル時間より大幅に遅い時）、プロセスが繰り返しサイクルするのを防ぐために、このラッチのＣＬＫの立ち上がりエッジとの同期関係に依存する。こうした保護は、ｅｎがローに遷移し、Ｓiがリセットした後、次のＣＬＫの立ち上がりエッジまでＳi0及びＳi1レールがローの状態を維持するという回路の特性に由来する。
【０１１６】
Ｓiv信号は、Ｓi{0,1}レールの妥当性をエンコードする。Ｓiv信号は、ｅｎの安全な遅延非感受性の順序付けを可能にするために、内部完了ロジックにおいて使用される。
【０１１７】
Ｓ0同期出力制御回路２１００の特定の実施は、図２１に表示されている。制御プロセスは以前のクロックサイクルからＳ0の値を知っている必要があるため、非同期状態素子（即ち、ＳＴＡＴＥＢＩＴ回路２１０２）が使用される。ＳＴＡＴＥＢＩＴ回路２１０２の特定の実施は、図２２に表示されている。ＳＴＡＴＥＢＩＴ回路は、ユニットの内部サイクルに渡って、Ｓo0及びＳo1信号の自動順序付けを提供する。代替設計では、同期Ｓ0信号から状態を再サンプリングするために、図２０の追加的な入力ラッチを使用してよいが、こうした設計では、ｅｎの順序付けにおけるＳoタームを完了するために追加的な回路が必要になる。
【０１１８】
図２１の相互結合型ＮＡＮＤ及び出力ラッチは、制御プロセスのｅｎ立ち上がりエッジ段階中にローでのみパルスするＳo（オーバーライン）タームの安全な同期を提供する。相互結合ＮＡＮＤは、パルスを持続的な値に変換し、出力ラッチは、ＣＬＫがハイである間にＳ0出力が遷移するのを制限する。一度にＳo0（オーバーライン）またはＳo1（オーバーライン）の一方のみがローに遷移可能であり、ＣＬＫがハイである間のみローに遷移できるため、Ｓ0は、完全に同期した形でセットされる。
【０１１９】
Ｓi入力ラッチのＳiv信号と同様に、Ｓov信号は、Ｓi状態ロジックの妥当性をエンコードする。ここで、ｘｓｏ及びｘｓｏ（オーバーライン）タームを信号のプルアップロジックに含めることで、Ｓovのアサートは、相互結合ＮＡＮＤが適切なＳo{0,1}（オーバーライン）値の取り込みに成功したことを追加的に暗示する。
【０１２０】
Ａc肯定応答ロジック回路２３００の特定の実施は、図２３に表示されている。この回路は、相対的に単純な動的ロジックステージであり、セルのＣＳＰの「ａ＆（ｓｉ｜〜ｓｏ）−＞Ａｃ？」式をエンコードする。「ａ」がセットされ（「Ａg1＆ＣＬＫ」を意味する）、Ｓi1またはＳo0がアサートされた時、ａｃｋ1（オーバーライン）レールはローに引き下げられ、これによりＡceはローになり、Ａc入力トークンに肯定応答する。
【０１２１】
ｋｃ（オーバーライン）タームは、この時までにアービタのクロック選択を無効にした状態を確保するために（Ａceの立ち下がりエッジを受けてＡcdがローになった時のＡg0の不具合の可能性を回避するために）、Ａceの順序付けに含まれる。
【０１２２】
Ｓo1タームは、Ｓi入力ラッチの節において上で説明した反復サイクリングのシナリオを防ぐために、ａｃｋ1（オーバーライン）プルダウンに重複して含まれる
【０１２３】
ａｃｋvは、Ｓiv及びＳov信号と同様に、このロジックのブロックの完了状態をエンコードする。ａｃｋ0（オーバーライン）が選択される時、ａｃｋvは、プルアップにＣＬＫを含めることで、ＣＬＫの立ち下がりエッジまで遅延され、ａｃｋ1（オーバーライン）が選択される時、ａｃｋvは、Ａceの負の遷移を追加的に完了させる。ａｃｋvは、Ａcdが撤回され（ａｃｋ1（オーバーライン）プルアップにおけるＡg1タームによって完了される）、Ａceがアサート状態に戻るまで、ローに戻らない。
【０１２４】
特定の実施形態によれば、Ａ２Ｓ及びＳ２Ａデータパス転送ユニット（図９のＤＴＵ９０８及び９１０等）は、クロック期間の様々な段階での同期「ｇｏ」入力の値に基づいてトークンを転送する単一チャネルコンバータ素子である。こうした回路内でメタスタビリティの危険性を回避するために、同期ハンドシェイク遷移において、タイミングの仮定を形成する必要がある。例えば、Ａ２Ｓ  ＤＴＵは、アサートされた「ｇｏ」を確認した時には、更に、そのクロックサイクル中にＬ入力のトークンを受領する必要がある。同様に、Ｓ２Ａ  ＤＴＵがアサートされた「ｇｏ」を受領した時、そのＲeは、ハイである必要があり、Ｒデータレールがアサートされた後でローに遷移する準備ができている必要がある。上記のように、Ａ２Ｓ及びＳ２Ａコンバータの高レベルアーキテクチャは、こうした仮定が満たされる状態を確保する。
【０１２５】
特定の実施形態によれば、Ａ２Ｓデータパス転送ユニットは、次のＣＳＰ仕様を有する。
＊［［ＣＬＫ］；［ｇｏ−＞Ｌ？［］ｅｌｓｅ−＞ｓｋｉｐ］；
＊［〜ＣＬＫ−＞［ｇｏ−＞Ｒ：＝＃Ｌ？［］ｅｌｓｅ−＞ｓｋｉｐ］
］］
【０１２６】
このプロセスは、「ｇｏ」がアサートされた全てのサイクルで、非同期Ｌ入力を同期Ｒ出力に転送する。このユニットは、ＣＬＫの立ち下がりエッジに続いて、ＣＬＫの次の立ち上がりエッジよりも十分に前である何らかの時点に、ｇｏがハイに遷移するという仮定を行い、受領者の同期ロジックのセットアップ時間の制約を満足させる。ｇｏがアサートされたサイクルでＣＬＫがハイに遷移する時、Ｌは肯定通知を受ける。
【０１２７】
単一の１ｏｆ２入力に対する例示的なＡ２Ｓデータ転送ユニット２４００の回路の実施は、図２４に表示されている。Ｒのデータビットラッチは、ＣＬＫがローで、ｇｏがハイである時、トランスペアレントになる。ｇｏがローである時、Ｒは、Ｌが到着した時に予測不可能な形で出力が遷移するのを防ぐため、ローに維持される。
【０１２８】
単一のクロック期間に回路がＬトークンに繰り返し肯定応答するのを防ぐために、Ｌeの負の遷移は、ＣＬＫの立ち上がりエッジを条件とし、Ｌeの正の遷移は、ＣＬＫの立ち下がりエッジを条件とする。
【０１２９】
このユニットでのメタスタビリティの危険性を回避するために、Ｌeの立ち下がりエッジのすぐ後にＬvがローに遷移するという仮定が行われる。即ち、Ｌは、有効状態において決してストールしてはいけない。これが満たされるのは、Ａ２Ｓ入力バッファユニットが、上で参照により本明細書に組み込んだＡ．Ｊ．マーティン著「非同期ＶＬＳＩ回路の合成」において説明されるようなＰＣＨＢまたはＰＣＦＢテンプレートに従う場合に満たされる。
【０１３０】
特定の実施形態によれば、Ｓ２Ａデータパス転送ユニットのＣＳＰ仕様は次の通りである。
＊［［ＣＬＫ］；［ｇｏ−＞Ｒ！Ｌ［］ｅｌｓｅ−＞ｓｋｉｐ］；［〜ＣＬＫ］］
【０１３１】
Ｒ出力チャネルとのハンドシェイクを除いて、このユニットは、完全に同期した性質であり、具体的には、各クロックサイクにおいて、ＣＬＫの立ち上がりエッジで、入力をサンプリングし、何らかの出力条件を評価する。この場合、ユニットは、Ｓ２Ａ制御プロセスからの「ｇｏ」制御信号がセットされているかをチェックし、セットされている場合、四相ハンドシェイクプロトコルに従った１ｏｆＮレールエンコーディングにおいて、Ｌビット（またはビット群）をＲ出力チャネルに書き込む。図２５は、Ｓ２Ａ  ＤＴＵ２５００の例示的な１ビット回路の実施を示している。この設計は、１ｏｆ４レール出力データエンコーディングにより、２ビット入力をサポートするように容易に拡張できる。
【０１３２】
特定の実施形態によれば、Ａ２Ｓコンバータは、Ｌがパイプライン完了（ＰＣ）回路にコピーされるポイントに続いて、データパス上で、バッファリングの少なくとも単一のステージを必要とする。この必要性は、主に、性能の考慮によるものであり、即ち、ＰＣがパイプラインの形で動作できるように、データパスのブランチにおいてバックアップするトークンによってボトルネックが生じないようにする必要がある。本質的に、データパスは、制御（及び完了）パスと「スラック一致」となる。
【０１３３】
ＤＴＵアレイの入力で非同期データをバッファする別の理由は、ＤＴＵ素子への入力が正しいハンドシェイク特性を有する状態を確保するためである。即ち、上記のＡ２Ｓ  ＤＴＵは、Ｌeの立ち下がりエッジ後に即座にリセットされる（中立状態に戻る）入力に依存する。これは、ＤＴＵアレイの直前にＰＣＨＢまたはＰＣＦＢバッファを有することで保証される。
【０１３４】
特定の実施形態によれば、Ｓ２Ａコンバータは、追加のバッファリングに対して更に厳密な要件を強制する。データパス出力及び出力ＰＣの間と、ＰＣのＡc完了チャネル出力上とに、いくつかのバッファステージが必要となる。Ａcチャネルバッファは、「満杯」で、即ち、データパスにおいて利用可能なスタックの量に対応するトークン数を備えて初期化する（Ｓ２Ａ制御プロセスがリセットから初期化する際の１トークンをマイナスする）。
【０１３５】
Ｓ２Ａデータパス−完了ループにおいては、全てのクロックサイクルでの転送をサポートするために、少なくとも二つのトークンが存在する必要がある。一つのトークンは、転送中にＳ２Ａ制御プロセスとＤＴＵ素子とによって消費される。ループの非同期部分は非ゼロのレイテンシを有することから、転送をパイプラインするために、そのブランチには常に第二のトークンが存在する必要がある。
【０１３６】
特定の実施形態によれば、データパス及び完了ブランチの両方は、ループ内の二つのトークンを吸収するのに十分なバッファリングを有する。データパスバッファ容量が不十分である場合、Ｓ２Ａ  ＤＴＵ出力ハンドシェイクは、Ｓ２ＡのＲ出力がストールした時にストールし、データパスにおけるメタスタビリティの危険性またはトークンの喪失を発生させる可能性がある。完了パスバッファ容量が不十分である場合、データトークンは、同期側がストールした時に出力バッファにおいてトラップされる。この場合、Ｓ２Ａコンバータは、次のトークンがコンバータによって受領されるまで、Ｒトークンを出力せず、これには任意の長さの時間量を要する場合がある。
【０１３７】
性能に関連する最後の要素は、Ｓ２Ａコンバータのループトークン（したがって、バッファリング）の要件に影響する。ＰＣを通じた順方向のレイテンシが大きすぎる時には、パイプラインをピーク容量に維持するために、追加のトークンがループ内に存在する必要がある。
【０１３８】
代替実施形態によるＡ２Ｓ及びＳ２Ａコンバータ２６０２及び２６０４の内部高レベル編成は、図２６に表示されている。各インタフェースは、四つの高レベルコンポーネントを含む。
１．パイプライン完了ステージ（ＰＣＳ）２６０６。２６０６はＰＣＳ０回路１３００において説明したデータパスコピー回路を含むように描かれているが、このコンポーネントは、以前に説明したＰＣユニットと同一である。
【０１３９】
２．制御プロセス（ＣＴＰ）２６０８及び２６１０。ＣＴＰは、（１）非同期及び同期側の両方で転送の用意ができた時に、データパスに「転送」信号を発行することと、（２）非同期及び同期ハンドシェイク信号（Ａd，Ａe）及び（Ｓi，Ｓo）を順序付けることと、（３）必要に応じてＣＬＫに同期することとに責任を有する。ＣＴＰ＿Ａ２Ｓ２６０８及びＣＴＰ＿Ｓ２Ａ２６１０は、多くの回路素子を共有し、同じポートインタフェースを有するが、同一ではない。各設計の詳細については、共通の機能に注目して、下に提示する。
【０１４０】
３．データパス転送ユニット（ＤＴＵ）２６１２及び２６１４。一般に、ＤＴＵユニットは、ＣＴＰからの「転送」（ｇｏ）トークンが受領された際に、同期／非同期境界を越えてデータトークンを転送することに責任を有する。ＤＴＵ＿Ａ２Ｓの場合、ユニットは、同期クロッキング規則で許容される時点（詳しくは、ＣＬＫの立ち下がりエッジ後、次の立ち上がりエッジ前の何らかの時点）において、同期側に対して、非同期１ｏｆＮデータトークンをラッチする。ＤＴＵ＿Ｓ２Ａの場合、ユニットは、ＣＬＫの立ち上がりエッジでの同期入力をサンプリングし、非同期チャネルで準備が整った（イネーブルがアサートされた）後、この値を非同期ワンホットトークンに変換する。
【０１４１】
パイプラインデータパスブロードキャスト（ＰＤＢ）。ＰＤＢ３０００の例示的な実施は、図２７に表示されている。このユニットは、ＰＣＳの相補的な機能を実施する。即ち、単一の「転送データ」（ｇｏd）信号をデータパス内の各ＤＴＵに分配する。この場合、Ｎの逆方向に進むイネーブル信号が、深さｌｏｇ（Ｎ）のＣ素子ツリーに供給され、最終的なｇｏe信号が生成される。完了をパイプライン化することで、ある程度の順方向レイテンシがｇｏdブロードキャストに追加されるが、ハンドシェイクサイクル時間を低く維持することが可能となる。
【０１４２】
一実施形態によれば、Ｓ２Ａコンバータ２６０４は、追加として、余分な非同期バッファリングステージ２６１８を、データパス出力及び出力ＰＣＳ間と、ＰＣＳの「Ａ」チャネル出力上（即ち、バッファ２６２０）とにおいて必要とする。これらのバッファリングステージは、読み込みの環境が整っていない場合、「Ａ」トークンによって開始された任意の転送をデータパスにおいて吸収できる状態を保証する。
【０１４３】
特定の実施形態によるコンバータ２６０２及び２６０４の例示的な実施の詳細を下に提示する。設計の一部の要素は、明確にするために省略している。これらには、全ての動的ロジックの出力ノード上のスタティサイザと、任意の実際的な実施で必要となる余分なリセット回路とが含まれる。こうした追加物は、両方とも、簡単に実施される。その他の回路の詳細（特に制御プロセスのもの）は、多数の種類のソリューションが存在し、全てが本明細書で説明する設計様式のかなり単純な応用であるため、取り上げていない。
【０１４４】
Ａ２Ｓ制御プロセス２６０８の例示的なＣＳＰ仕様は、次の通りである。
＊［［＃Ａ＆ＣＬＫ−＞ａ：＝１｜〜＃Ａ＆ＣＬＫ−＞ａ：＝０］，
［ＣＬＫ−＞ｓｉ：＝ｓ．ｉ］；
［ａ｜〜ａ＆〜ｓｉ＆ｘ−＞ｘ’：＝１［］ｅｌｓｅ−＞ｘ’：＝０］，
［ａ＆（ｓｉ｜〜ｘ）−＞ｇｏ！，Ａ？［］ｅｌｓｅ−＞ｓｋｉｐ］；
ｘ：＝ｘ’，
［〜ＣＬＫ−＞Ｓ．ｏ：＝ｘ’］］
各立ち上がりエッジにおいて、プロセスは、入力非同期チャネルＡを調査し、チャネルが読み込みを受ける準備ができている場合、内部変数「ａ」をハイに設定する。このプロセスは、更に、同期入力（Ｓi、同期側で、そのクロックサイクにおいてデータを受領する準備ができているかを示す）をラッチする。Ａが有効データである場合、或いは、同期側でデータを受領する準備ができておらず、同期データパス出力が未読値を保持する場合（「ｘ」がハイ）、「ｘ」はハイに設定される。「ｘ」変数は、次のクロックサイクルでの同期データパス出力チャネル（「ｘ」）の状態を設定する。非同期チャネルＡが有効データを含む場合（データパスに対する入力データトークンの存在を示す）及び同期側でデータを受領する準備ができているか或いは同期データパス出力チャネルが空である場合（「ｘ」がロー）、Ａが読み込まれ、「転送」トークン（ｇｏd）が、データパスに送信される。
【０１４５】
クロックの立ち下がりエッジでは、「ｘ」変数が、同期ハンドシェイク出力（Ｓo）に書き込まれる。この信号は、同期ロジックに対するデータ出力をエンコードし、ハイである場合は、新しいデータ値が線に存在している。一度ハイになると、Ｓoは、Ｓiがハイになるまで、ハイの状態を維持する。Ｓo及びＳiの両方がハイである任意の立ち上がりクロックエッジにおいて、データトークンは、Ａ２Ｓから同期側のロジックに移動する。
【０１４６】
特定の実施形態によれば、Ｓ２Ａ制御プロセス２６１０は、同期データパスチャネルの状態を格納する必要がないため、多少単純になる。
＊［［＃Ａ＆ＣＬＫ−＞ａ：＝１｜〜＃Ａ＆ＣＬＫ−＞ａ：＝０］，
［ＣＬＫ−＞ｓｉ：＝ｓ．ｉ］；
［ａ＆ｓｉ−＞Ａ？［］ｅｌｓｅ−＞ｓｋｉｐ］，
［ｘ＆ｓｉ−＞ｇｏ！［］ｅｌｓｅ−＞ｓｋｉｐ］，
ｘ：＝ａ，
［〜ＣＬＫ−＞Ｓ．ｏ：＝ａ］］
この場合、Ｓiは、データトークンを転送するための同期要求であり、Ｓoは、転送を許可し、同期側に対して、出力（Ｒ）非同期チャネルが空であることを示す。
【０１４７】
こうした制御プロセスの設計において暗黙のものは、内部イネーブル信号（「ｅｎ」）であり、内部動的ロジックのセット（ｅｎハイ）及びリセット（ｅｎロー）段階をトリガする。「ｅｎ」は、厳密にはＣＬＫと同期しない。クロックサイクル毎に一度サイクルするが（最大アービタ消滅時間によりサイクルが失われる場合を除く）、「ｅｎ」は、ＣＬＫではなく、内部信号の妥当性によって順序付けされる（図２８に例示）。
【０１４８】
上記の二種類の制御プロセス間でのいくつかの構造的類似性は、そのＣＳＰ記述から明白である。各ループの第一のライン、アービトレート型選択から、両方で同じアービトレーションロジックが使用されていることは明らかである。こうしたアービトレーションロジック３２００の特定の実施は、図２９に表示されている。様々な実施形態によれば、この回路において表示されるアービタ３２０２は、例えば、ザイツアービタまたはＱＦＲ等、任意の標準的な相互排除素子にすることができる。「ａ」変数は、回路内の別の場所でのドミノプルダウンロジックステージの使用を可能にする、デュアルレール信号ペアとして実施される。こうすることで、コンバータ全体で使用される同期準遅延非感受性設計様式が促進される。
【０１４９】
図２９の回路は、厳密にＣＬＫがローになる際にアービタ出力が消滅する場合のメタスタビリティの危険性を制限する。Ａg1が勝った場合、ＣＬＫがローになる際のＡg1の立ち上がりエッジにより、ａ1（オーバーライン）で中間状態を発生させることができる。Ａg0が勝った場合、ＣＬＫがローになる際のＡg0の立ち上がりエッジは、ａ0（オーバーライン）を完全に引き下げる前に、Ａg0をローに戻すことができる。いずれの場合においても、メタステーブル条件は、アービタを越えて伝搬する。なお、ＣＬＫがローになった後の何らかの時点でアービタが消滅する場合、メタステーブル条件は伝搬せず、ＣＬＫの立ち下がりエッジ何らかの時点でＡg1が勝った場合、転送は、単純に、次の立ち上がりクロックエッジまで延期され、ＣＬＫの立ち下がりエッジまでにＡg0が勝たなかった場合は、Ａg1が勝つ。
【０１５０】
特定の実施形態によれば、両方の制御プロセスは、更に、内部状態変数「ｘ」を共有する。Ａ２Ｓ回路は、入力の論理式である中間変数「ｘ’」に基づいて、この状態を設定し、Ｓ２Ａ回路は、アービタココンポーネント出力ｚ「ａ（オーバーライン）」から直接的に設定する（この場合、ｘ’＝ａ（オーバーライン））。
【０１５１】
特定の実施形態によれば、両方の制御プロセスは、同じ状態変数を使用して、同期出力信号Ｓ0を設定する。図３０は、例示的な結合状態ビット−同期ラッチ回路を例示している。図面に表示される「ｘｖ」信号は、その後の完了（即ち、「ｅｎ」制御）に必要な「ｘ」変数（及び続くＲＳラッチ）の妥当性をエンコードする。この動的プルダウンステージ（ｘ（オーバーライン））の組み合わせは、その後にＲＳフリップフロップが続き、更にクロックラッチが続き、
関連するｘｖ（オーバーライン）妥当性回路が追加され、出力クロックラッチの安定性を確保するためにｘ（オーバーライン）のタイミングが十分に制限される時に、都合のよい非同期−同期回路の断片を提供する。具体的には、ｘ（オーバーライン）は、ＣＬＫの立ち下がりエッジに近すぎるため、有効になれない。この条件は、ＣＴＰにおいて満たされる。
【０１５２】
特定の実施形態による設計の最後の共有コンポーネントは、制御プロセスの同期入力Ｓiの取り扱いである。信号に関する保持時間要件最小化するために、図３１に表示するエッジトリガ自己無効化シングルレール−デュアルレール（Ｓ２ＤＥ）ラッチ３４００を使用してよい。Ｓ２ＤＥラッチは、Ｓi{0,1}においてメタステーブル条件を発生させる場合がある、ｅｎの立ち上がりエッジがＣＬＫの立ち下がりエッジと決して一致しない状態を確保できる時、十分に安全な同期−非同期変換を提供する。この要件は、ｅｎの立ち上がりエッジにおいて、次のタイミング制約を定める：「ａ」が設定され得るクロックサイクルに入る最も遅い時間を仮定すると（プロセスにおける他の全ての順序づけをトリガするイベント）、ｅｎの立ち上がりエッジは、その後のサイクルでのＣＬＫの負の遷移の前に発生する必要がある。転送サイクルのＣＬＫの立ち下がりエッジ前に、ｅｎがローになり、その後ハイになるケースも、同じく禁止する必要があるが、これは、ＣＬＫの立ち下がりエッジを、ｅｎの立ち下がりエッジの条件とすることで、容易に確保できる。最も遅い「ａ」が設定され得るのは、ＣＬＫの立ち下がりエッジであるため（最大のアービタ消滅の場合）、ＣＴＰは、ｅｎサイクルを完了するのに、最大１クロックサイクルを有する。
【０１５３】
更に堅牢なラッチ設計（図３２のラッチ３５００等）は、ハンドシェイク及び追加アービタでの余分な遷移を犠牲にして、Ｓi{0,1}での任意のメタスタビリティの可能性を排除するために使用できる。こうした余分な遷移は、中央制御プロセスとＳ２ＤＥラッチ３４００との間にバッファステージ３５０２（スラック１／２）を挿入して隠すことができる。
【０１５４】
こうしたＣＴＰ＿Ａ２Ｓ  ２６０８及びＣＴＰ＿Ｓ２Ａ２６１０の特定の実施の残りの詳細は、上で参照により本明細書に組み込んだＡ．Ｊ．マーティン著「非同期ＶＬＳＩ回路の合成」において説明される準遅延非感受性設計の一般的な製造規則合成手法に従った様々な実施形態による様々な方法において実施できる。この柔軟性は、Ａ？及びｇｏ！のハンドシェイクの拡張での様々な入れ替えの可能性と、様々な遷移完了戦略とから生じる。最後に、回路を簡略化及び／または高速化するために、内部のタイミングの競合を導入してもよい。
【０１５５】
特定の実施形態によれば、Ａ２Ｓデータパス転送ユニット２６１２は、次のＣＳＰ仕様を有する：
＊［Ｌ？１，ｇｏ？；［〜ＣＬＫ］；Ｒ：＝１］
Ｌは、ＰＣＳからの非同期入力チャネルであり、「ｇｏ」は、転送が発生するべきであることを示すＣＴＰからのチャネルである。ＤＴＵ＿Ａ２Ｓは、Ｌ及びｇｏチャネルからの読み込みを行い、ＣＬＫがローになるのを待ち（既にローであり得る）、その後、データ値を同期Ｒ出力へ出力する。ＰＤＢを通じたｇｏdの順方向レイテンシが最小である限り、ＰＣＳが（上で説明した実施においてと同様に）正確にスラック一致であると仮定すると、ＣＴＰ＿Ａ２Ｓの動作は、ＣＬＫの立ち下がりエッジを囲むある程度の限られた範囲内でＬ及びｇｏチャネルが両方とも有効になることを保証する。この範囲の上端は、ＤＴＵ＿Ａ２Ｓの追加的なＲ：＝１レイテンシとＲ出力信号のセットアップ時間との原因となるものであり、タウに重要な下限を強制する。
【０１５６】
上のＣＳＰ仕様を実施する特定の回路構造は、図３３に例示されている。ｘ（オーバーライン）−Ｒラッチ及びｘｖ（オーバーライン）回路は、ＣＴＰ回路内のＳoのために使用されるものと同一である。ｘ（オーバーライン）に関するタイミング制約（ＣＬＫの立ち下がりエッジに近すぎる状態で有効にならない）は、ここで満たされる。
【０１５７】
Ｓ２Ａデータパス転送ユニット２６１４の特定の実施形態のＣＳＰ仕様は、次のようになる
＊［［〜ＣＬＫ］；［ＣＬＫ］；ｘ：＝Ｌ］‖＊［ｇｏ？；Ｒ！ｘ］
この実施は、二つの並列プロセスを含み、一方は、全ての立ち上がりクロックエッジで同期入力Ｌを取り込むもの（及びシングルレールデータ形式を１ｏｆＮレール形式に変換するもの）であり、他方は、「ｇｏ」転送トークンが受領された後、非同期出力チャネル（Ｒ）に値を書き込むものである。Ｎが４である場合、第一のプロセスは、図３４に示すＳ２Ｑサンプラ回路３７００を使用して実施できる。Ｓ２Ｑサンプラ回路３７００は、ＣＬＫの全ての立ち上がりエッジで二つの同期入力の値を取り込み、組み合わせた値を１ｏｆ４チャネル、ｘに出力する。ｘは、選択されたデータレールをアサートする前に、ＣＬＫの立ち上がりエッジに続いて、即座に、全てローの状態を通じて遷移する。４以外のＮの同様の回路は、入力組み合わせロジックを変更することで実施できる。
【０１５８】
このＤＴＵ＿Ｓ２Ａの実施における第二のプロセスは、図３５に示す回路３８００である。回路３８００は、不安定なｘ入力に対応するために修正されたＷＣＨＢステージである（上で参照により本明細書に組み込んだＡ．Ｊ．マーティン著「非同期ＶＬＳＩ回路の合成」を参照）。回路３８００は、ｘを応答されていない入力として扱い、ｇｏ及びｘが有効になると、出力Ｒを書き込む。プルダウンロジックにＲ1eを含めること（ＷＣＨＢテンプレートからの逸脱）は、ｘの次の有効段階（即ち、ＣＬＫの次の立ち上がりエッジ後の何らかの時点）の前にＲe及びＲ1eがローに遷移しない場合に、ある程度の保護を提供し、そうではない場合には、多数のＲレールのアサートが生じ得る。こうすることで、転送サイクルのＣＬＫに対する硬直性の少ない同期が強制される。
【０１５９】
ＣＬＫの立ち下がりエッジを囲むクロックサイクロの範囲内でＲ1dのローからハイへの遷移が発生し、ＣＬＫの立ち上がりエッジを除外することを、設計が保証するため、ｘiレールは、Ｒi（オーバーライン）プルアップネットワークから除外できる（ＷＣＨＢテンプレートからの別の逸脱）。ＣＬＫの立ち上がりエッジとＲ1dの立ち上がりエッジとの間の最小時間が最大のｘリセット時間より長い限り（設計のタイミングの仮定）、未応答のｘ入力は、Ｒを不安定にするという脅威を発生させない。
【０１６０】
データパスに対する「ｇｏ」チャネルブロードキャストのパイプライン化の特定の実施は、図２７に例示されている。特定の実施形態によれば、ＢＵＦ素子３００２は、１ｏｆ１チャネルＰＣＨＢバッファである。１６ノードのブロードキャストツリーに関して、四回の遷移が、ｇｏdブロードキャストの立ち上がりエッジに追加される。見返りとして、ＣＴＰのｇｏdの正の遷移は、最低限の七回ではなく三回の遷移において肯定応答され、ｇｏcの立ち上がりエッジは、最低限の七回と比較して、単一の遷移において、ｇｏdの立ち下がりエッジに続くことができる。したがって、パイプライン化は、そうでなければ設計のクリティカルサイクルとなる１０回の遷移を節約する。
【０１６１】
上で述べたように、様々な実施形態によれば、図２６のＳ２Ａコンバータ２６０４は、余分な非同期バッファリングステージ２６１８を、データパス出力及び出力ＰＣＳ間と、ＰＣＳの「Ａ」チャネル出力上（バッファ２６２０）とにおいて必要とする。こうした一実施形態において、「Ａ」チャネルバッファは、「満杯」で、即ち、データパスにおいて利用可能なスタックの量に対応するトークン数を備えて初期化する必要がある。このスラックは、ｇｏe信号がストールする前に、即ち、ｇｏdの立ち下がりエッジに続いてハイに遷移しないうちに、ＤＴＵと出力バッファとＰＣＳとが保持できるデータトークンの数によって定められる。
【０１６２】
更に特定的な実施形態によれば、データパスでの後続の転送がストールし得る時に、ＰＣＳが「Ａ」トークンを決して発行しない状態を確保するために、スラックの少なくとも一ユニット（二つのハーフバッファステージ）が、ＤＴＵとＰＣＳとの間に必要となる。具体的には、ＤＴＵのＲe（環境から直接的に暗示される）がハイでストールし得るため、ＤＴＵ出力チャネルの妥当性は、それ自体によって「Ａ」トークンが生成されるべきではない。ＤＴＵのＲeがハイでストールする場合、ＰＤＢへのｇｏeは、ローでストールする。この場合、ＣＴＰのｇｏd処理は、上のＣＴＰ＿Ｓ２Ａ仕様が想定しているように、クロックサイクル内で完了しない。
【０１６３】
様々な実施形態によれば、外部ループの順方向レイテンシ（即ち、ＣＬＫの立ち上がりエッジからＡdの立ち上がりエッジ）があまりにも大きくなる時（大きなワードサイズにより不可避）、スラックの追加ユニットを、ＤＴＵのＲチャネル及びＡチャネルに（別の初期化トークンと共に）追加できる。こうすることで、二つのクロックサイクルに渡る外部ループレイテンシが償却される。こうしたチャネルでの追加スラックの利点は、環境がフル（以前にストール）状態の最も外側にあるトークンを排出する時に被る逆方向の「ホール」伝搬レイテンシがクリティカルなサイクルとなる際に減少する。
【０１６４】
様々な実施形態によれば、上記のＡ２Ｓ及びＳ２Ａコンバータアーキテクチャは、バーストモード伝送を処理させることができる。本明細書では特定の実施を例示するためにプロトコルの特定のカテゴリの一つが使用されているが、本発明の様々な実施形態は、広範なバースト転送プロトコルをサポートすると理解される。以下の定義は、説明するバーストモードの実施を理解するのに役立つ。
【０１６５】
バースト転送：要求／許可制御ハンドシェイク毎に二つ以上のデータトークン転送を可能にする変換（Ａ２ＳまたはＳ２Ａ）。例えば、上記の実施では、Ｓi及びＳoの両方がハイである状態のクロックサイクル毎に、一つのデータトークンが転送される。対照的に、バースト転送では、Ｓi及びＳoの両方がハイである状態のクロックサイクル毎に、二つ、四つ、または任意の数のデータトークンを転送し得る。特定の実施形態によれば、下でＭＡＸ＿ＬＥＮと呼ばれる定数として、最大バーストサイズが強制される。
【０１６６】
メッセージ：データトークンのシーケンス。特定の実施形態によれば、各データトークンは、シーケンスの最後のトークンを除いて、全てのデータ段階でゼロである関連テールビットを有する。下で説明する特定の実施形態において、メッセージは、任意の長さにしてよく、コンバータは、メッセージをＭＡＸ＿ＬＥＮまでの長さのバーストに分割する。図３６は、データトークンＤ０乃至Ｄ９を含むメッセージが三つのバーストに分割されるこのような実施を例示する役割を果たすタイミング図である。
【０１６７】
パイプラインバースト転送：バースト転送の要求／許可制御が以前のバーストメッセージの転送中に発生可能であるバースト転送プロトコル。メッセージの通信前にレシーバが許可するメッセージ数は、本明細書においてセンダ−レシーバループにおける許可制御トークンの数と呼ばれる。様々な実施形態によれば、任意の数のこうしたトークンをサポートし得る。特定の実施は、ＭＡＸ＿ＧＲＡＮＴと呼ばれる定数として、こうした未解決の許可済みバーストの何らかの有限な最大数を強制する。図３７は、二つのタイミング図を含み、第一のものは、非パイプライン三ワードバースト転送の信号タイミングを例示し、第二のものは、パイプライン四ワードバースト転送の信号タイミングを例示する。
【０１６８】
バースト転送の利点は、レシーバがデータトークンの持続した受け入れを約束できることから生じるものであるため、何らかの有限な量の利用可能バッファスペースを意味し、各メッセージの長さに対する制限が確立される（ＭＡＸ＿ＬＥＮ）。様々な実施形態によれば、メッセージの長さは、（例えば、図３７に示すように）固定してよく、代替として、メッセージがＭＡＸ＿ＬＥＮまでの長さの変数を有するのを認めることができる。
【０１６９】
本発明により設計されたバーストモードコンバータの特定の実施形態は、可変長メッセージをサポートするために、メッセージテールビットを利用する。代替実施形態は、可変メッセージ長をエンコードする他のメカニズムを利用する（例えば、制御ハンドシェイク段階で送信されるまたはメッセージのヘッダワードとして帯域内に含まれるバーストカウント）。代替の実施では、メッセージサイズが固定される場合、こうしたメカニズムを排除する。
【０１７０】
バースト転送をサポートするために、図２６乃至３５を参照して上で説明したＡ２Ｓ設計は、二つの追加セルを含む。その他の点では、全般的なアーキテクチャは、上で説明したものに類似する。図３８は、こうしたバーストモードＡ２Ｓコンバータ（ＢＵＲＳＴ＿Ａ２Ｓ）４１００を示す高レベル図である。二つの新しいセルは、バースト完了ロジック（ＢＵＲＳＴ＿ＣＯＭＰＬＥＴＥ）４１０２と、バースト反復セル（ＢＵＲＳＴ＿ＲＥＰＥＡＴ）４１０４とである。
【０１７１】
一実施形態によれば、バースト完了ロジック４１０２は、次のＣＳＰ仕様を有した単純な非同期遅延非感受性ロジックユニットである。
ＢＵＲＳＴ＿ＣＯＭＰＬＥＴＥ＝
ｉ：＝０；
＊［Ａｃ？，Ｔ？ｔ；
［〜ｔ−＞ｉ：＝（ｉ＋１）％ＭＡＸ＿ＬＥＮ
［］ｔ−＞ｉ：＝０］；
［ｉ＝０−＞Ｂｃ！［］ｅｌｓｅ−＞ｓｋｉｐ
］］
このユニットは、データパスからのパイプライン完了トークン毎に入力テールトークンを読み込み、テールトークンが「１」である全ての場合に、或いは「１」のテールトークンを有していないＭＡＸ＿ＬＥＮトークンを受領した時に、１ｏｆ１「バースト完了」トークンをＢｃ出力チャネルに送信する。
【０１７２】
様々な実施形態によれば、バースト完了ロジックの実施は、ＭＡＸ＿ＬＥＮの値との関係において変化する。例えば、小さなＭＡＸ＿ＬＥＮ値（例えば、２乃至４）では、セルは、内部状態ビットを有する単一のパイプラインステージにおいて実施できる。大きな値では、セルは、「ｉ」内部変数を増分し、「ｉ」を比較及び再初期化するために、いくつかのステージに分解してよい。バースト完了ロジックの特定の回路の実施については、バーストモードＡ２Ｓコンバータの固定サイズメッセージのバリエーションに関して下で説明する。
【０１７３】
バースト反復セルは、バーストの長さに対応するいくつかのクロックサイクルに渡って、データパスへの「ｇｏ」信号パルスを延長する。様々な実施形態によれば、バースト反復セルは、次の仕様を有してよい。
ＢＵＲＳＴ＿ＲＥＰＥＡＴ＝
ｇ：＝０，ｂｃｎｔ：＝０；
＊［［ＣＬＫ］；ｘｇｏ：＝ｇｏ，ｔ：＝Ｔ；
［ｘｇｏ＆〜ｔ＆（ｂｃｎｔ！＝ＭＡＸ＿ＬＥＮ−１）−＞ｇ：＝ｇ＋１
［］〜ｘｇｏ＆ｇ＞０＆（ｔ｜（ｂｃｎｔ＝ＭＡＸ＿ＬＥＮ−１））−＞ｇ：＝ｇ−１
［］ｅｌｓｅ−＞ｓｋｉｐ
］；
［〜ｔ＆（ｘｇｏ｜ｇ＞０）−＞ｂｃｎｔ：＝（ｂｃｎｔ＋１）％ＭＡＸ＿ＬＥＮ
［］ｔ−＞ｂｃｎｔ：＝０
［］ｅｌｓｅ−＞ｓｋｉｐ
］；
［〜ＣＬＫ］；
］
‖
＊［ｂｇｏ：＝ｇｏ｜ｇ＞０］
特定の実施形態によれば、このセルは、標準的な同期設計手法を応用することで、単純な形で実施し得る。こうした実施形態によれば、セルの全ての入力及び出力は同期し、即ち、入力は、クロックの立ち上がりエッジにサンプリングされ、出力（状態変数を含む）は、入力の組み合わせ関数として表現できる（例えば、「ｇ」及び「ｃｎｔ」に関するものとして、或いは、「ｂｇｏ」に関するものとしてではなく、登録される）。
【０１７４】
一実施形態によれば、バースト反復セルは、二つのカウンタを実施し、一つは、制御プロセスによって許可された未解決バーストの数を追跡し（例えば、アクティブなバースト内で「ｇ」がアサートされるたびに増分される「ｇ」）、一つは、現在アクティブなバーストの長さを追跡する（例えば、「ｂｃｎｔ」）。この実施形態によれば、「ｇ」カウンタは、パイプラインバースト許可をサポートするのに必要であり、「ｂｃｎｔ」カウンタは、ＭＡＸ＿ＬＥＮより大きいメッセージの多数のバーストへの細分化をサポートするために必要である。様々な実施形態によれば、バースト反復セルは、こうした特徴の一方または両方を排除することで簡略化し得る。
【０１７５】
バーストモードＡ２Ｓコンバータと、上で説明した基礎Ａ２Ｓコンバータ（例えば、図９のＡ２Ｓコンバータ８０２）との別の違いは、ＬＤ及びＬＴチャネル上での内部バッファリングの量である。即ち、基礎Ａ２Ｓコンバータの特定の実施では、正確さのために単一の入力バッファのみ（即ち、静的スラック１）が必要となり、但し、性能の最適化のために、様々な実施形態において更に多くのものを使用し得る（例えば、制御−データパスブランチとのスラック一致）。対照的に、本発明の特定の実施形態によれば、バーストモードＡ２Ｓコンバータでは、（例えば、ＭＡＸ＿ＬＥＮワードの）単一のメッセージのバッファリングが、正確さのために必要となる。制御パスはメッセージ毎に一度のみ使用されるようになるため、制御パスとのスラックの一致は、あまり考慮されなくなる。
【０１７６】
一実施形態によれば、メッセージバッファには二つの要件が課せられる。
１．どのくらい満たされているかに関係なく、クロックサイクルにつき一度、トークンを受領または供給できる必要がある。
２．バッファを通じた順方向レイテンシは、制御パス乃至ＤＴＵのレイテンシより少ない必要がある。
【０１７７】
パイプラインバースト転送をサポートする代替実施形態では、追加メッセージに相当するバッファリングが追加される。一般に、事前にＮバースト転送を要求することをサポートするためには、（Ｎ＋１）＊ＭＡＸ＿ＬＥＮの量のバッファスペースが提供される。
【０１７８】
なお、バッファスラックを増やす必要がある際、面積的な意味合いと、上のタイミング制約を満たすことの難しさとにより、ＰＣＨＢ／ＰＣＦＢ／ＷＣＨＢの直線配列は、不適切な配列となり得る。そのため、こうした様々な実施形態では、このバッファリングのデュアルポートＦＩＦＯメモリの実施を利用してもよい。
【０１７９】
特定の実施形態によれば、図３８のバーストモードＡ２Ｓコンバータは、二つの非同期入力チャネルを有し、即ち、データパスＬＤチャネル（Ｎの１ｏｆＭチャネルの集合）と、ＬＴテールビット１ｏｆ２チャネルとを有する。ＬＤ上でバーストモードＡ２Ｓコンバータによって受領される各データトークンには、ＬＴ上のテールトークンが伴う。メッセージの最後のものを除く各データトークについて、ＬＴトークンは「０」となる。最後のデータトークンでは、ＬＴの値は「１」となる。テールビットは、更に、別のデータビットとして（図では「Ｒ．ｔ」と表示）、バーストモードＡ２Ｓコンバータの同期出力インタフェースに追加される。ＬＤデータワードは、バーストモードＡ２Ｓコンバータに入る際に、二つのユニット、即ち、メッセージバッファ４１０６とパイプライン完了（ＰＣ）ユニット４１０８とにコピーされる。メッセージバッファ４１０６は、データ転送ユニット（ＤＴＵ）４１１０のアレイで転送する準備が整うまで、トークンを格納する。ＰＣユニット４１０８は、ＬＤトークンを消費し、単一の１ｏｆ１Ａｃトークンをバースト完了ロジック４１０２に出力する。
【０１８０】
ＬＤデータトークンに関連するＬＴテールトークンも、これら二つのユニットにコピーされ、一方のコピーはデータと共にバッファされ、他方はバースト完了ロジック４１０２へ送信される。
【０１８１】
Ａｃ及びＬＴトークンの受領時、バースト完了ロジック４１０２は、内部バーストカウンタを増分するか（ＬＴが「０」であり、カウンタがＭＡＸ＿ＬＥＮに達していない場合）、或いはＢｃ出力チャネル上の１ｏｆ１トークンをＡ２Ｓ制御ユニット４１１２に送信する（ＬＴが「１」であるか、またはカウンタがＭＡＸ＿ＬＥＮに達している場合）。
【０１８２】
制御ユニット４１１２は、非バーストＡ２Ｓ設計において「Ａｃ」トークンを扱うのと全く同じように「Ｂｃ」トークンを扱う。即ち、制御ユニット４１１２は、ＣＬＫと同期して「Ｓo」ハンドシェイク信号をアサートし、「Ｓi」入力がアサートされるのを待つ。両方がアサートされると、制御ユニット４１１２は、出力「ｇｏ」信号をデータパスに対して単一のクロックサイクルでアサートする。バーストモードＡ２Ｓコンバータ設計において、「ｇｏ」のアサートは、非バーストＡ２Ｓ設計で許可されるシングルワードではなく、データのバースト全体（ＭＡＸ＿ＬＥＮトークンまで）を許可することを意味する。
【０１８３】
バースト反復セル４１０４は、制御ユニット４１１２からのバースト当たりの「ｇｏ」信号とデータパスからのワード当たりの「ｂｇｏ」制御との間で適切な転換を提供する。簡単に言えば、バースト反復セル４１０４は、バーストの長さに一致するサイクル数に渡って、単一サイクルの「ｇｏ」のアサートを延長する。バーストが終了する時期を知るために、バースト反復セル４１０４は、出力テールビット（即ち、Ｒ．ｔ）を見守り、メッセージがＭＡＸ＿ＬＥＮよりも長い場合（即ち、バーストを終了させ、「ｇｏ」が再アサートされた時にメッセージを後続のバーストに渡って継続する必要がある場合）、内部カウンタを維持する。パイプラインバースト転送がサポートされる実施形態において、バースト反復セル４１０４は、更に、バーストが依然として進行している間に制御ユニット４１１２からのアサート済みの「ｇｏ」を確認した時は常に、許可カウンタを増分する。
【０１８４】
上で説明したバーストプロトコルを実施するためのＡ２Ｓ設計に対する修正は、対称的な形でＳ２Ａコンバータに適用してよい。図３９は、本発明の特定の実施形態により設計されたバーストモードＳ２Ａコンバータ４２００の高レベル図である。更に特定的な実施形態によれば、バースト完了ロジック４２０２及びバースト反復セル４２０２は、上で説明したように実施してよい。
【０１８５】
バーストモードＳ２Ａコンバータ４２００は、データの追加ビットであり、その状態がＬ．ｄ上のデータシーケンスをメッセージに分割する役割を果たすと考えられるＬ．ｔテールビットを追加した状態で、基礎Ｓ２Ａコンバータ（例えば、図９のＳ２Ａコンバータ８０４）と同じ同期インタフェースを有する。非同期出力インタフェースも、出力テールビット、ＲＴ（１ｏｆ２チャネル）の追加を除き、変化しない。基礎Ｓ２Ａにおけるデータ出力チャネル「Ｒ」は、バーストモードＳ２Ａコンバータにおいて「ＲＤ」になる。
【０１８６】
Ｌ．ｅ及びＬ．ｖによって交渉される全てのバースト許可サイクルについて、ＭＡＸ＿ＬＥＮまでのデータトークンが、バーストモードＳ２ＡコンバータのＤＴＵ４２０６のアレイによって転送される。各バーストの長さに対応した多数のクロックサイクルに渡る制御ユニット４２０８の「ｇｏ」信号の延長は、バーストモードＡ２Ｓコンバータ４１００を参照して上で説明したものと同様の形で、バースト反復セル４２０４によって処理される。Ｌ．ｔビットがＭＡＸ＿ＬＥＮサイクルに渡ってローのままである場合、バースト反復セル４２０４は、バーストを終了し、追加許可制御トークンが交渉されることを求める（実施がパイプライン許可をサポートする場合、並行して発生し得る）。
【０１８７】
データバッファ４２１０においてバーストが収集される際、そのワードは「Ａｃ」１ｏｆ１トークンとして完成させ、「Ａｃ」１ｏｆ１トークンは、更に、バースト完了ロジック４２０２によって「Ｂｃ」トークンとして完成させる。「Ｂｃ」トークンは、制御ユニット４２０８に戻され、バーストに相当するバッファスペースがドレインされたことを示す。特定の実施形態によれば、バーストモードＳ２Ａコンバータ設計は、データバッファが完全に空で、データバッファ４２１０及びバースト反復セル４２０２がサポートするのと同じ数のトークンにより「Ｂｃ」チャネルが初期化された状態で初期化する。１より大きい初期「Ｂｃ」トークンの数は、パイプライン許可トークン制御ユニット４２０８が発行する数に対応する。したがって、バースト反復セル４２０４の内部「ｇ」カウンタは、この数までのカウントアップをサポートする必要がある。
【０１８８】
全てのバーストメッセージが固定長のＭＡＸ＿ＬＥＮである特定の実施形態によれば、設計にテールビットを含める必要はない。こうした実施形態において、肯定長バーストモードＡ２Ｓコンバータは、常に転送毎にＭＡＸ＿ＬＥＮトークンを送信し、受領側の同期ロジックは、メッセージが終了する時期を知るために、Ｓi及びＳoの両方がアサートされたサイクルに続いて転送されたトークンの数をカウントする。
【０１８９】
同様に、固定長バーストモードＳ２Ａコンバータへの供給を行う同期ロジックは、Ｓi及びＳoの両方がアサートされたサイクルから開始される（或いは、制御段階がパイプライン化される時に以前の転送の終了に続く）ＭＡＸ＿ＬＥＮサイクルに渡る有効データを常に提供する。非同期受領ロジックは、その後、メッセージが開始または終了する時期を知るために、受領したデータトークンをカウントする。
【０１９０】
こうした更に単純なバーストコンバータ設計のブロック図は、図４０及び４１に提示されている。特定の実施形態によれば、固定バースト完了ロジック４３０２及び４４０２は、単純に、次のように実施し得るトークンカウンタである。
ＦＩＸＥＤ＿ＢＵＲＳＴ＿ＣＯＭＰＬＥＴＥ＝
ｉ：＝０；
＊［Ａｃ？；ｉ：＝（ｉ＋１）％ＭＡＸ＿ＬＥＮ；
［ｉ＝０−＞Ｂｃ！
［］ｅｌｓｅ−＞ｓｋｉｐ
］］
コンバータブロックの残りは、図３８及び３９を参照して上で説明したように動作する。
【０１９１】
ＭＡＸ＿ＬＥＮが２に等しい時の固定バースト完了ロジックの例示的な実施は、図４２に提示されている（ＤＥＣＩＭＡＴＥ２＿１ｏｆ１）。ＭＡＸ＿ＬＥＮが２の任意の累乗（２N）である時、固定バースト完了ロジックを実施するために、ＮのＤＥＣＩＭＡＴＥ＿２＿１ｏｆ１ユニットのカスケードを使用してよい。ＭＡＸ＿ＬＥＮが２の累乗ではない時、或いは、カスケードしたＤＥＣＩＭＡＴＥ２＿１ｏｆ１ユニットを通じた順方向レイテンシが許容できないほど高くなる時には、更に一般的なカウンタ設計を使用してよい。
【０１９２】
固定長バーストモードＡ２Ｓ及びＳ２Ａコンバータ設計は、単純に、「Ｔ」テールビット入力をロジックゼロに書き込むことで、上記のバースト反復セルを使用し得る。代替として、ユニットは、その実施からテールビットロジックを取り除くことで、この応用のために簡略化し得る。
【０１９３】
特定の応用では、同期クロックの立ち下がり及び立ち上がりエッジの両方でデータトークンを転送すること、即ち、いわゆるダブルデータレート（ＤＤＲ）の応用が望ましい。応用において、クロックの立ち上がりエッジで開始されるバースト毎に偶数のデータ転送が求められる限り、上記のバーストモードＡ２Ｓコンバータ及びバーストモードＳ２Ａコンバータ（例えば、図３８乃至４１のもの）に必要な唯一の変更は、それぞれのデータパス転送ユニットに対するものである。
【０１９４】
特定の実施形態によれば、ＤＤＲバージョンのＡ２Ｓデータパス転送ユニットは、次のように仕様を定めることができる。
Ａ２Ｓ＿ＤＤＲ＿ＤＴＵ＝
ＣＬＫ：＝０；
＊［［ＣＬＫ！＝ＣＬＫ０］；
［ｇｏ−＞Ｌ？Ｒ［］ｅｌｓｅ−＞ｓｋｉｐ］，
ＣＬＫ０：＝ＣＬＫ
］
ユニットは、ＣＬＫでの遷移を待ち、「ｇｏ」がアサートされた時、非同期入力「Ｌ」乃至同期出力「Ｒ」を読み込む。
【０１９５】
同様の実施形態によれば、ＤＤＲバージョンのＳ２Ａデータパス転送ユニットは、次の仕様を有する。
Ｓ２Ａ＿ＤＤＲ＿ＤＴＵ＝
ＣＬＫ：＝０；
＊［［ＣＬＫ！＝ＣＬＫ０］；
［ｇｏ−＞Ｒ？Ｌ［］ｅｌｓｅ−＞ｓｋｉｐ］，
ＣＬＫ０：＝ＣＬＫ
］
ユニットは、ＣＬＫでの遷移を待ち、「ｇｏ」がアサートされた時、同期入力「Ｒ」乃至非同期出力チャネル「Ｒ」を読み込む。
【０１９６】
こうした変化させたＤＤＲ  ＤＴＵの回路の実施は、図４３及び４４に提示されている。なお、こうしたデータパス転送ユニットを使用してバーストモードＤＤＲ  Ａ２Ｓ及びＳ２Ａコンバータ（及びその固定長の変形）が構築される時、同期する受領側または送信側のロジックは、クロックサイクル毎に二つのトークンをカウントする。
【０１９７】
可変長バースト設計（テールビット制御を有する）を使用する時、テールビットは、同期ハンドシェイク制御信号Ｓi及びＳoと同様に、シングルデータレート信号のままとなる。各テールビット値は、そのサイクルで転送されるデータトークンのペアに適用される。
【０１９８】
図４５乃至４９を参照して次に説明する更に別の実施形態によれば、Ａ２Ｓ及びＳ２Ａ変換回路は、ＤＤＲ−ＳＤＲＡＭインタフェースを実施するのに使用される。特定の実施形態によれば、上記の回路に対する拡張により、こうした実施が可能となる。こうした拡張は、リンクされる異なるタイプの情報の変換を可能にするマスタ／スレーブコンバータシステムと、データ項目間の最小間隔に関する複雑な制約が存在する時に性能を高めることができるｎｏｐカウンタとを含む。
【０１９９】
こうした一実施形態において、ＳＤＲＡＭインタフェースは、「マスタ」Ａ２Ｓコンバータを通じて送信されたコマンドによって多数のスレーブコンバータが制御されるマスタ／スレーブ設計を使用する。基本的に、それぞれのスレーブコンバータの制御プロセスは、それぞれのための「ｇｏ」信号を生成する共有メカニズムに置き換えられる。転送されたコマンドワードに基づいて、システムは、おそらくはいくつかのクロックサイクル数の遅延後に、一つ以上のスレーブコンバータを更にトリガしてもよい。
【０２００】
ここで説明するように、マスタコンバータは、Ａ２Ｓである。しかしながら、同様のシステムは、マスタＳ２Ａコンバータにより設計し、依然として本発明の範囲内に留めることができると理解される。
【０２０１】
ＤＤＲ−ＳＤＲＡＭプロトコルは、対応するリードまたはライトコマンドの後で指定された数のクロックサイクルを開始させる連続的なバーストにおいて転送（リードまたはライト）されるデータを指定する。したがって、非同期側は、関連するリードまたはライトコマンドを発行する前に、データがライトのために利用可能な状態、或いはリードのために利用可能な空のバッファスペースを、確保する必要がある。これには、コマンド及びデータのためのコンバータをリンクすることが求められる。
【０２０２】
スレーブＡ２ＳまたはＳ２Ａコンバータは、制御プロセスを取り除いた通常のコンバータ（上で説明した任意のもの等）を備える。様々な実施形態によれば、こうした通常のコンバータは、例えば、シングルワードコンバータ（図４５等）、バーストコンバータ（図４６等）、または固定バーストコンバータ（図４７）を備えてよい。こうしたコンバータは、ダブルデータレート（ＤＤＲ）コンバータであってもよいが、そうである必要はない。
【０２０３】
制御プロセスを削除することで、スレーブコンバータには、入力信号「ｇｏ」及び出力完了チャネルＡｃが残る（上記の実施形態に関して、完了チャネルは、シングルワードコンバータについてＡｃ、バーストモードコンバータについてＢｃと呼ばれた）。こうしたチャネルは、下では簡略化のためＡｃと呼ばれる。
【０２０４】
特定の実施形態によれば、スレーブコンバータは、それ自体では同期ハンドシェイクを実行しない。代わりに、スレーブコンバータは、入力信号「ｇｏ」がアサートされる全ての立ち上がりクロックエッジで、単純にデータを転送する。スタンドアロンコンバータの制御ユニットに課せられるものと同じ条件、即ち、Ａｃでのトークンを待ち、「ｇｏ」信号のアサートの前に必要な任意の同期フロー制御を実行することは、更に大きなシステムの責任となる。スレーブＡ２Ｓコンバータにおいては、スタンドアロンＳ２Ａコンバータを参照して上で説明したように、Ａｃチャネルは、データパスのバッファリングの量と一致するトークンを備えて初期化される。
【０２０５】
例示的なマスタ／スレーブコンバータシステムの全般的な編成は、図４８に表示される。コマンドは、マスタＡ２Ｓコンバータ５１０２に送信される前に、必要なスレーブコンバータで準備ができているかをチェックする制御ブロックＭＡＳＴＥＲ＿ＣＯＭＰＬＥＴＥ５１０４を通過する。一実施形態によれば、ＭＡＳＴＥＲ＿ＣＯＭＰＬＥＴＥ５１０４は、全てのコマンドに対して、擬似コードで指定された次の動作を実行する。
Ｌ？ｃｏｍｍａｎｄ；
各スレーブコンバータＳのために、
コマンドがＳでの転送を求める場合、
Ａｃ［Ｓ］？；  ／／Ｓから完了トークンを受領
Ｒ！ｃｏｍｍａｎｄ
コマンドは、ＭＡＳＴＥＲ＿ＣＯＭＰＬＥＴＥ５１０４から現れた後、スタンドアロンＡ２Ｓコンバータ５１０２（「マスタ」コンバータ）を通過する。
【０２０６】
同期側において、ＳＬＡＶＥ＿ＴＲＩＧＧＥＲユニット５１０６は、コマンドに応じて、適切な時点で、適切なスレーブコンバータの「ｇｏ」信号を高めることに責任を有する。ＳＬＡＶＥ＿ＴＲＩＧＧＥＲ５１０６の単純なバージョンは、マスタＡ２Ｓコンバータ５１０２から出力チャネルＣを観察できる。各立ち上がりクロックエッジにおいて、Ｃが有効であり（Ｃ．ｖ及びＣ．ｅが共にハイ）、コマンドＣ．ｄがスレーブ転送を示す場合、対応するスレーブコンバータは、遅延線を通じてトリガされる。特定の実施形態において、各遅延線における遅延は、プログラム可能であり、整数のクロック期間に対応する。一般に、ＳＬＡＶＥ＿ＴＲＩＧＧＥＲ５１０６は、例えば、スレーブコンバータでの同期ハンドシェイクまたはその他の形態の同期制御を含め、より複雑にしてよい。
【０２０７】
一部の実施形態によれば、スレーブコンバータ５１０８及び５１１０は、スタンドアロンのものに比べ、より多くのデータパスバッファリングを有する。即ち、Ａｃから「ｇｏ」の相対的に小さなレイテンシを有するスタンドアロンコンバータの制御プロセスの代わりに、スレーブコンバータの制御レイテンシは、ＭＡＳＴＥＲ＿ＣＯＭＰＬＥＴＥ５１０４と、マスタＡ２Ｓ  ５１０２と、ＳＬＡＶＥ＿ＴＲＩＧＧＥＲ５１０６（関連する遅延を有する）とを通過する。そのため、スレーブコンバータのデータパスバッファリングは、この大きなレイテンシに一致して増加する。スレーブＳ２Ａコンバータ５１０８のＡｃチャネルの初期トークンの数（初期の空きバッファスペースを表す）は、これに応じて増加させてよい。
【０２０８】
様々な実施形態によれば、ＮＯＰ＿ＣＯＵＮＴＥＲは、同期ユニットであり、Ａ２Ｓコンバータを通じて送信される項目が少なくとも最小の数のクロックサイクルによって分離される状態を確保することに責任を有する。この数は、各項目により与えられ、その項目と前回のものとの間でスキップされるサイクルの最小数を指定する。
【０２０９】
ＤＤＲ−ＳＤＲＡＭプロトコルは、特定の実施に関して、全て最小限度として表現可能なコマンドのタイミングに対する多数の要件を有し、特定のコマンドが発行可能となる前に、前回のコマンド以降でスキップされる（ヌルコマンドまたはＮＯＰを発行する）少なくとも最小の数のサイクルが存在する必要がある。
【０２１０】
一実施形態によれば、必要なＮＯＰの数は、非同期側で生成し、Ａ２Ｓを通過させてよい。こうした実施によれば、利用可能なコマンドがない時に追加のＮＯＰを生成することは、同期側でのみ必要となる。このアプローチの欠点は、既に広範に分離されたコマンド間に不必要な遅延を追加し得ることである。ＮＯＰの最小数は、次のコマンドが既知となるまで分からないため、次のコマンドの前に、こうした明示的なＮＯＰをＡ２Ｓに通過させることは、十分すぎる遅延が既に経過しているとしても、余計な遅延を追加することになる。
【０２１１】
次に図４９を参照すると、ＮＯＰ＿ＣＯＵＮＴＥＲ５２０２は、Ａ２Ｓ  ５２０４の出力に取り付けられた同期ブロックである。入力及び出力は、それぞれ、同期ハンドシェイクチャネルを備える。入力チャネルは、関連する最小ＮＯＰカウントと共に項目（コマンド）を運び、出力チャネルは、必要なサイクル数で区切られた同じ項目を送信する。このユニットで可能なＣＳＰ仕様の一つは、次の通りである。
ｃｏｕｎｔ：＝ｌｃｏｕｎｔ：＝ｒｃｏｕｎｔ：＝０；
ｈａｓ＿ｌ：＝ｈａｓ＿ｒ：＝ｆａｌｓｅ；
Ｌ．ｅ：＝Ｒ．ｖ：＝ｆａｌｓｅ；
＊［［〜ＣＬＫ］；
［ｈａｓ＿ｒ＆（ｃｏｕｎｔ＞＝ｒｃｏｕｎｔ）−＞Ｒ．ｄ：＝ｒ，Ｒ．ｖ：＝ｔｒｕｅ
［］ｅｌｓｅ        −＞Ｒ．ｖ：＝ｆａｌｓｅ
］，
（Ｌ．ｅ：＝〜ｈａｓ＿ｌ）
［ＣＬＫ］；
［Ｒ．ｖ＆Ｒ．ｅ−＞ｃｏｕｎｔ：＝０，ｈａｓ＿ｒ：＝ｆａｌｓｅ
［］ｅｌｓｅ    −＞ｃｏｕｎｔ：＝ｃｏｕｎｔ＋１
］，
［Ｌ．ｖ＆Ｌ．ｅ−＞（ｌ，ｌｃｏｕｎｔ）：＝Ｌ．ｄ，ｈａｓ＿ｌ：＝ｔｒｕｅ
［］ｅｌｓｅ    −＞ｓｋｉｐ
］；
［ｈａｓ＿ｌ＆〜ｈａｓ＿ｒ−＞ｈａｓ＿ｌ：＝ｆａｌｓｅ，ｈａｓ＿ｒ：＝ｔｒｕｅ，（ｒ，ｒｃｏｕｎｔ）：＝（ｌ，ｌｃｏｕｎｔ）
［］ｅｌｓｅ    −＞ｓｋｉｐ
］；
］
このプログラムにおいて、変数「ｃｏｕｎｔ」は、Ｒでの最後の出力以降のサイクル数を保持する。ペア（ｌ，ｌｃｏｕｎｔ）は、入力データと関連する最小ＮＯＰカウントとを保持し、これは出力のために（ｒ，ｒｃｏｕｎｔ）にコピーされる。ブーリアンｈａｌ＿ｌ及びｈａｓ＿ｒは、こうしたペアのそれぞれが有効なトークンを保持する時期を示す。二つの可変ペアを有することで、ユニットは、同じくロックサイクルで入力及び出力可能になる。
【０２１２】
各立ち下がりクロックエッジにおいて、ＮＯＰ＿ＣＯＵＮＴＥＲ５２０２は、出力信号を設定する。ｒにトークンが存在し（ｈａｓ＿ｒがハイ）、最後の出力以降のサイクル数がｒｃｏｕｎｔより大きい時（ｃｏｕｎｔ＞＝ｒｃｏｕｎｔ）、ＮＯＰ＿ＣＯＵＮＴＥＲ５２０２は、値ｒを送信するためにＲ．ｄ及びＲ．ｖを設定し、その他の場合には、送信を行わない。ｌにトークンが存在しない場合（ｈａｓ＿ｌがロー）、ＮＯＰ＿ＣＯＵＮＴＥＲ５２０２は、入力を可能にするためにＬ．ｅを高める。
【０２１３】
データは、立ち上がりクロックエッジに転送される。Ｒに出力が存在する場合（Ｒ．ｖ及びＲ．ｅがハイ）、トークンは、ｒから除去され、最後の出力以降のサイクルのカウントは、０にリセットされ、その他の場合には、カウントは増分される。Ｌに入力が存在しない場合、データ及びｎｏｐカウントは、（ｌ，ｌｃｏｕｎｔ）のトークンに読み込まれる。最後に、ｌにトークンが存在するが、ｒには存在しない場合、トークンは、ｌからｒへ転送される。
【０２１４】
ＳＤＲＡＭインタフェースは、上のマスタ／スレーブ設計と併せて、ＮＯＰ＿ＣＯＵＮＴＥＲを使用する。ＮＯＰ＿ＣＯＵＮＴＥＲは、マスタコンバータに取り付けられ、残りの設計のために、マスタコンバータの一部とみなしてよい。特定の実施において、ＳＬＡＶＥ＿ＴＲＩＧＧＥＲユニットは、マスタコンバータの出力であるかのように、ＮＯＰ＿ＣＯＵＮＴＥＲの出力チャネルを観察する。これにより、スレーブコンバータのタイミングは、ＮＯＰ＿ＣＯＵＮＴＥＲから現れ、他の同期回路にとって可視であるコマンドストリームに一致した状態が維持される。
【０２１５】
以上、本発明について、その特定の実施形態を参照して詳細に図示及び説明してきたが、開示した実施形態の態様及び詳細を本発明の趣旨または範囲から逸脱することなく変更し得ることは当業者には理解されよう。例えば、本明細書では、特定の非同期設計様式に基づき、様々なインタフェースを説明した。しかしながら、様々な非同期領域タイプの任意のものは、本発明の範囲に含まれることは理解されよう。更に、本明細書で説明した回路の具体的な詳細は、単に例示的なものであり、本発明を限定するものと見做されるべきではない。正しくは、本明細書で説明した回路の基本的な機能を実現する任意の回路も、本発明の範囲に含まれる。
【０２１６】
加えて、本明細書では、様々な実施形態を参照して本発明の様々な利点、態様、及び目的を説明してきたが、本発明の範囲は、こうした利点、態様、及び目的に言及することによって限定されるべきではないことは理解されよう。正しくは、本発明の範囲は、付記した特許請求の範囲に基づき決定されるべきである。
【図面の簡単な説明】
【０２１７】
【図１】本発明の特定の実施形態により設計された非同期−同期（Ａ２Ｓ）インタフェースの簡略ブロック図である。
【図２】本発明の特定の実施形態により設計された同期−非同期（Ｓ２Ａ）インタフェースの簡略ブロック図である。
【図３】本発明の特定の実施形態により設計されたバーストモードＡ２Ｓインタフェースの簡略ブロック図である。
【図４】本発明の特定の実施形態による転送トークン生成回路の簡略ブロック図である。
【図５】本発明の特定の実施形態による転送トークン分配回路の簡略ブロック図である。
【図６】本発明の特定の実施形態により設計されたバーストモードＳ２Ａインタフェースの簡略ブロック図である。
【図７】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図８】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図９】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図１０】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図１１】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図１２】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図１３】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図１４】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図１５】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図１６】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図１７】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図１８】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図１９】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図２０】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図２１】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図２２】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図２３】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図２４】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図２５】本発明の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図２６】本発明の他の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図２７】本発明の他の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図２８】本発明の他の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図２９】本発明の他の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図３０】本発明の他の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図３１】本発明の他の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図３２】本発明の他の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図３３】本発明の他の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図３４】本発明の他の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図３５】本発明の他の様々な特定の実施形態によるＡ２Ｓインタフェース及びＳ２Ａインタフェースの具体的実施の様々なコンポーネントを例示する図である。
【図３６】本発明の特定の実施形態によるＡ２Ｓ及びＳ２Ａバーストモードインタフェースの様々な実施を例示する図である。
【図３７】本発明の特定の実施形態によるＡ２Ｓ及びＳ２Ａバーストモードインタフェースの様々な実施を例示する図である。
【図３８】本発明の特定の実施形態によるＡ２Ｓ及びＳ２Ａバーストモードインタフェースの様々な実施を例示する図である。
【図３９】本発明の特定の実施形態によるＡ２Ｓ及びＳ２Ａバーストモードインタフェースの様々な実施を例示する図である。
【図４０】本発明の特定の実施形態によるＡ２Ｓ及びＳ２Ａバーストモードインタフェースの様々な実施を例示する図である。
【図４１】本発明の特定の実施形態によるＡ２Ｓ及びＳ２Ａバーストモードインタフェースの様々な実施を例示する図である。
【図４２】本発明の特定の実施形態によるＡ２Ｓ及びＳ２Ａバーストモードインタフェースの様々な実施を例示する図である。
【図４３】本発明の特定の実施形態によるＡ２Ｓ及びＳ２Ａバーストモードインタフェースの様々な実施を例示する図である。
【図４４】本発明の特定の実施形態によるＡ２Ｓ及びＳ２Ａバーストモードインタフェースの様々な実施を例示する図である。
【図４５】本発明の他の特定の実施形態によるＡ２Ｓ及びＳ２Ａバーストモードインタフェースの様々な実施を例示する図である。
【図４６Ａ】本発明の他の特定の実施形態によるＡ２Ｓ及びＳ２Ａバーストモードインタフェースの様々な実施を例示する図である。
【図４６Ｂ】本発明の他の特定の実施形態によるＡ２Ｓ及びＳ２Ａバーストモードインタフェースの様々な実施を例示する図である。タフェースの様々な実施を例示する図である。
【図４７】本発明の他の特定の実施形態によるＡ２Ｓ及びＳ２Ａバーストモードインタフェースの様々な実施を例示する図である。
【図４７Ａ】本発明の他の特定の実施形態によるＡ２Ｓ及びＳ２Ａバーストモードインタフェースの様々な実施を例示する図である。
【図４７Ｂ】本発明の他の特定の実施形態によるＡ２Ｓ及びＳ２Ａバーストモードインタフェースの様々な実施を例示する図である。
【図４８】本発明の他の特定の実施形態によるＡ２Ｓ及びＳ２Ａバーストモードインタフェースの様々な実施を例示する図である。
【図４９】本発明の他の特定の実施形態によるＡ２Ｓ及びＳ２Ａバーストモードインタフェースの様々な実施を例示する図である。
【図１】
2005518018.tif 000003
【図２】
2005518018.tif 000004
【図３】
2005518018.tif 000005
【図４】
2005518018.tif 000006
【図５】
2005518018.tif 000007
【図６】
2005518018.tif 000008
【図７】
2005518018.tif 000009
【図８】
2005518018.tif 000010
【図９】
2005518018.tif 000011
【図１０】
2005518018.tif 000012
【図１１】
2005518018.tif 000013
【図１２】
2005518018.tif 000014
【図１３】
2005518018.tif 000015
【図１４】
2005518018.tif 000016
【図１５】
2005518018.tif 000017
【図１６】
2005518018.tif 000018
【図１７】
2005518018.tif 000019
【図１８】
2005518018.tif 000020
【図１９】
2005518018.tif 000021
【図２０】
2005518018.tif 000022
【図２１】
2005518018.tif 000023
【図２２】
2005518018.tif 000024
【図２３】
2005518018.tif 000025
【図２４】
2005518018.tif 000026
【図２５】
2005518018.tif 000027
【図２６】
2005518018.tif 000028
【図２７】
2005518018.tif 000029
【図２８】
2005518018.tif 000030
【図２９】
2005518018.tif 000031
【図３０】
2005518018.tif 000032
【図３１】
2005518018.tif 000033
【図３２】
2005518018.tif 000034
【図３３】
2005518018.tif 000035
【図３４】
2005518018.tif 000036
【図３５】
2005518018.tif 000037
【図３６】
2005518018.tif 000038
【図３７】
2005518018.tif 000039
【図３８】
2005518018.tif 000040
【図３９】
2005518018.tif 000041
【図４０】
2005518018.tif 000042
【図４１】
2005518018.tif 000043
【図４２】
2005518018.tif 000044
【図４３】
2005518018.tif 000045
【図４４】
2005518018.tif 000046
【図４５】
2005518018.tif 000047
【図４６Ａ】
2005518018.tif 000048
【図４６Ｂ】
2005518018.tif 000049
【図４７】
2005518018.tif 000050
【図４７Ａ】
2005518018.tif 000051
【図４７Ｂ】
2005518018.tif 000052
【図４８】
2005518018.tif 000053
【図４９】
2005518018.tif 000054
【手続補正書】
【提出日】平成16年10月25日(2004.10.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
非同期領域と同期領域との間で使用するインタフェースであって、
非同期領域が非同期ハンドシェイクプロトコルによるデータの伝送を特徴とし、同期領域がクロック信号の遷移によるデータの伝送を特徴とするインタフェースにおいて、
領域間でデータトークンを転送し得るデータパスと、
クロック信号の少なくとも一回の遷移と非同期ハンドシェイクプロトコルの少なくとも一回の完了とに応答して、データパスを介したデータトークンの転送を可能にし得る制御回路と、
を備えるインタフェース。
【請求項２】
データパスが、非同期領域から同期領域へデータトークンを転送可能であり、非同期ハンドシェイクプロトコルの少なくとも一回の完了がデータトークンに対応する、請求項１記載のインタフェース。
【請求項３】
データトークンが、複数の並列ビットを含み、非同期ハンドシェイクプロトコルの少なくとも一回の完了が、それぞれのビットに関する非同期ハンドシェイクプロトコルの完了を含む、請求項２記載のインタフェース。
【請求項４】
データパスが、
データトークンを含む複数のデータトークンを格納し得るバッファと、
同期領域との同期ハンドシェイクと全てのビットに関する非同期ハンドシェイクプロトコルの完了とに応答して制御回路によって生成される転送信号及びクロック信号の遷移に応答してデータトークンのビットをバッファから同期領域に転送し得る複数のデータパス転送ユニットと、
を備える、請求項１記載のインタフェース。
【請求項５】
バッファが、多段式非同期先入れ先出し（ＦＩＦＯ）バッファを含み、その連続した各ステージが、非同期ハンドシェイクプロトコルによりデータトークンの全てのビットを受領及び転送し得る、請求項４記載のインタフェース。
【請求項６】
各データパス転送ユニットが、クロック信号の遷移後で且つクロック信号の次の遷移前にデータトークンのそれぞれのビットを同期領域にラッチし得るラッチを備える、請求項４記載のインタフェース。
【請求項７】
データパス転送ユニットのそれぞれに転送信号を提供し得るブロードキャスト回路を更に備える、請求項４記載のインタフェース。
【請求項８】
転送信号が、トークンを含み、ブロードキャスト回路が、トークンを分配するパイプラインツリー構造を有する、請求項７記載のインタフェース。
【請求項９】
制御回路が、転送信号の生成を促進するパイプライン完了ステージを含む、請求項４記載のインタフェース。
【請求項１０】
同期領域が、データ転送に連続データのブロックを含めることを必要とし、データパスが、更に、連続データのブロックを形成するために、非同期領域において生成されたデータトークンを蓄積可能であり、各データトークンが複数のビットを含み、
制御回路が、同期領域との同期ハンドシェイクとクロック信号の連続的遷移とに応答して、それぞれのデータトークンのそれぞれのビットでの非同期ハンドシェイクプロトコルの完了後に、データパス経由による蓄積されたデータトークンの同期領域への転送を促進し得る、請求項２記載のインタフェース。
【請求項１１】
データパスが、データトークンを同期領域から非同期領域に転送可能であり、非同期ハンドシェイクプロトコルの少なくとも一回の完了が、以前に転送されたデータトークンに対応する、請求項１記載のインタフェース。
【請求項１２】
それぞれのデータトークンと以前に転送されたデータトークンとが、複数の並列ビットを含み、非同期ハンドシェイクプロトコルの少なくとも一回の完了が、以前に転送されたデータトークンのそれぞれのビットに関する非同期ハンドシェイクプロトコルの完了を含む、請求項１１記載のインタフェース。
【請求項１３】
データパスが、
以前に格納されたデータトークンを含む複数のデータトークンを格納し得るバッファと、
同期領域との同期ハンドシェイクの完了と以前に格納されたデータトークンの全てのビットに関する非同期ハンドシェイクプロトコルとに応答して制御回路によって生成された転送信号及び非同期ハンドシェイクプロトコルに従ってデータトークンのビットを同期領域からバッファに転送し得る複数のデータパス転送ユニットと、
を備える、請求項１２記載のインタフェース。
【請求項１４】
バッファが、多段式非同期先入れ先出し（ＦＩＦＯ）バッファを含み、その連続した各ステージが、非同期ハンドシェイクプロトコルにより、データトークンの全てのビットを受領及び転送し得る、請求項１３記載のインタフェース。
【請求項１５】
各データパス転送ユニットが、クロック信号の遷移時にデータトークンのそれぞれのビットをバッファに転送し得るラッチを備える、請求項１３記載のインタフェース。
【請求項１６】
データパス転送ユニットのそれぞれに転送信号を提供し得るブロードキャスト回路を更に備える、請求項１３記載のインタフェース。
【請求項１７】
転送信号が、トークンを含み、ブロードキャスト回路が、転送トークンを分配するパイプラインツリー構造を含む、請求項１６記載のインタフェース。
【請求項１８】
制御回路が、転送信号の生成を促進するパイプライン完了ステージを含む、請求項１３記載のインタフェース。
【請求項１９】
転送信号が、転送トークンを含み、
制御回路が、対応するデータトークンの非同期ハンドシェイクプロトコルの完了にそれぞれが対応する複数の転送トークンを格納し得る転送トークンバッファを更に備える、請求項１８記載のインタフェース。
【請求項２０】
同期領域が、データ転送に連続データのブロックを含めることを必要とし、
制御回路が、同期領域との同期ハンドシェイクと、クロックシグナルの連続する遷移と、非同期ハンドシェイクプロトコルにより生成されて非同期領域が複数のデータトークンを受領するのに十分なメモリを有することを示すイネーブル信号とに応答して、データパス経由による連続データのブロックとしての複数のデータトークンの非同期領域への転送を促進すべく更に機能し得る、請求項１１記載のインタフェース。
【請求項２１】
制御回路が、クロック信号の正及び負の両方の遷移時にデータトークンの転送を可能にし得る、請求項１記載のインタフェース。
【請求項２２】
制御回路が、クロック信号の正及び負の遷移の一方のみの時にデータトークンの転送を可能にし得る、請求項１記載のインタフェース。
【請求項２３】
制御回路が、同期領域との同期ハンドシェイクの完了時のみにデータトークンの転送を可能にし得る、請求項１記載のインタフェース。
【請求項２４】
データパスが、データトークンを非同期領域から同期領域へ転送可能であり、
同期ハンドシェイクが、データトークンの転送準備が整っていることを示す制御回路からの第一の信号と、同期領域でデータトークンの受領準備が整っていることを示す同期領域からの第二の信号とを含む、請求項２３記載のインタフェース。
【請求項２５】
データパスが、データトークンを同期領域から非同期領域へ転送可能であり、
同期ハンドシェイクが、データトークンを受領する準備がデータパスで整っていることを示す制御回路からの第一の信号と、同期領域でデータトークンを転送する準備が整っていることを示す同期領域からの第二の信号とを含む、請求項２３記載のインタフェース。
【請求項２６】
制御回路が、テータパスを介してデータを転送することなく非同期ハンドシェイクプロトコルと同期ハンドシェイクとの間で変換を行うことで、ゼロビットコンバータとして更に動作し得る、請求項２３記載のインタフェース。
【請求項２７】
データパスが、非同期ハンドシェイクプロトコルの完了時に、クロック信号の一期間内にデータトークンを非同期領域から同期領域へ転送し得る、請求項１記載のインタフェース。
【請求項２８】
制御回路が、同期領域からのフロー制御に関係なく、データトークンの転送を可能にし得る、請求項１記載のインタフェース。
【国際調査報告】
2005518018.tif 000055
2005518018.tif 000056
2005518018.tif 000057