JP4520742B2 - 非同期及び同期領域間の変換を促進する手法 - Google Patents

非同期及び同期領域間の変換を促進する手法 Download PDF

Info

Publication number
JP4520742B2
JP4520742B2 JP2003568541A JP2003568541A JP4520742B2 JP 4520742 B2 JP4520742 B2 JP 4520742B2 JP 2003568541 A JP2003568541 A JP 2003568541A JP 2003568541 A JP2003568541 A JP 2003568541A JP 4520742 B2 JP4520742 B2 JP 4520742B2
Authority
JP
Japan
Prior art keywords
data
asynchronous
token
transfer
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2003568541A
Other languages
English (en)
Other versions
JP2005518018A5 (ja
JP2005518018A (ja
Inventor
デイビス・マイケル・アイ.
ラインズ・アンドリュー
サウスワース・ロバート
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fulcrum Microsystems Inc
Original Assignee
Fulcrum Microsystems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fulcrum Microsystems Inc filed Critical Fulcrum Microsystems Inc
Publication of JP2005518018A publication Critical patent/JP2005518018A/ja
Publication of JP2005518018A5 publication Critical patent/JP2005518018A5/ja
Application granted granted Critical
Publication of JP4520742B2 publication Critical patent/JP4520742B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/405Coupling between buses using bus bridges where the bridge performs a synchronising function
    • G06F13/4059Coupling between buses using bus bridges where the bridge performs a synchronising function where the synchronisation uses buffers, e.g. for speed matching between buses

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Pharmaceuticals Containing Other Organic And Inorganic Compounds (AREA)

Description

本発明は、同期及び非同期コンポーネントを統合するシステムに関する。更に詳しくは、本発明は、非同期及び同期領域間でのデータの変換を促進する方法及び装置を提供する。
非同期設計方法と、その結果として生じる回路及びシステムは、利用可能なデータ処理能力の経時的な単調増加を前提とするムーアの法則に対して、デジタルシステムの性能が歴史的な順守を継続し得る見込みのあるメカニズムとして現れつつある。非同期回路及びシステムが更に一般的になるにつれ、こうした回路及びシステムを、現在普及している同期設計方法により設計された回路及びシステムと統合する必要性が大きくなる。更に詳しくは、非同期及び同期領域間でデータを変換するためのペナルティの少ないインタフェースを提供する必要が生じる。
非同期領域から同期領域へ変換するための以前の解決策では、通常、一つまたはいくつかの非常に少数の信号のみを変換することを扱ってきた。こうした解決策の例は、人間によるスイッチまたはボタンの起動を受けて生成される非同期信号を、同期回路で利用し得る同期信号に変換することである。多くの場合、こうした非同期信号は単純に二つ以上のラッチを通じてゲートされ、これにより、オリジナルの非同期信号の同期バージョンが生成される。このアプローチでは、単純に、分解する信号における任意のメタスタビリティに対して1クロック期間(通常は、2まで)の最低限度が可能となる。
こうしたアプローチは、一つまたは非常に少数の信号には適し得るが、例えば、今日の多くのデジタル処理システムで利用される32及び64ビット幅のデータパスに代表されるような、多数の信号を同時に変換することには適していない。即ち、1of2エンコーディングを使用してエンコードされるデータの単一ビットの変換に関連するレイテンシは、転送されるデータの妥当性を検証する必要があるという事実により、二つ以上のクロックサイクルになり得る。非同期信号がまれにしか生成されない場合、或いは一つのビットのみである場合には、こうしたレイテンシは許容し得るが、32ビットまたは64ビットのデータが関与する時に、メタスタビリティを排除し、妥当性を検証するのに十分な時間を与えるのは不可能である。
更に、特定のタイプの同期システム、例えば、SDRAMシステム等のメモリアーキテクチャは、非同期データが伝送される予測不可能な方法により生じ得る「待ち」状態を許容できない。即ち、こうしたシステムは、連続するデータトークンのブロックを受信または送信することを期待する。有効データが存在しないクロック遷移の発生は、不正確なデータの格納、或いは転送されるブロック全体の格納失敗を引き起こす可能性がある。
上述したことを考慮すると、許容可能なレイテンシで幅広のデータパスを扱うことが可能な、非同期及び同期システム間のインタフェースについての必要性が存在する。更に、特定のタイプの同期システムに関連する「待ち」状態の問題を緩和するインタフェースについての必要性が存在する。
本発明によれば、非同期領域におけるデータの伝送は、非同期ハンドシェイクプロトコルを使用して達成される、非同期及び同期領域間でのデータ変換を提供する低レイテンシ、高スループットの解決策が提供される。非同期領域から同期領域へのデータ伝送では、データパスのそれぞれのビットでの非同期領域に関連する非同期ハンドシェイクの完了によって示されるものとして、有効なデータが存在するまで、同期領域へのデータ伝送は認められない。同期領域から非同期領域へのデータ伝送では、同じく非同期ハンドシェイクを参照して生成されるイネーブルが受領されるまで、非同期領域へのデータ伝送は認められない。
同期領域が連続データトークンのブロックで転送されるデータを必要とする更に特定的な実施形態によれば、非同期領域から同期領域へのデータの転送は、必要な数の連続トークンの転送準備ができたことを示すイネーブルが受領されるまで認められない。イネーブルは、非同期ハンドシェイクを参照して生成される。
同期領域が連続トークンのブロックで転送されるデータを必要とする別の特定の実施形態によれば、同期領域から非同期領域へのデータの転送は、連続トークンのブロックを格納するのに十分なメモリを利用可能であることを示すイネーブルが受領されるまで認められない。イネーブルは、非同期ハンドシェイクを参照して生成される。
したがって、本発明は、非同期領域及び同期領域間で使用するインタフェースを提供する。非同期領域は、非同期ハンドシェイクプロトコルによるデータの伝送を特徴とする。同期領域は、クロック信号の遷移によるデータの伝送を特徴とする。インタフェースは、領域間でデータトークンを転送し得るデータパスを含む。インタフェースは、更に、クロック信号の遷移と、ハンドシェイクプロトコルの少なくとも一回の完了とに応答して、データパスを介したデータトークンの転送を可能にし得る制御回路を含む。
特定の実施形態によれば、インタフェースは、非同期領域と同期領域との間での使用のために提供され、非同期領域は、非同期ハンドシェイクプロトコルによるデータの伝送を特徴とし、同期領域は、クロック信号の遷移によるデータの伝送を特徴とする。インタフェースは、非同期領域において生成され、複数のビットを備えるデータトークンを受領し得るデータパスを含む。インタフェースは、更に、クロック信号の遷移と、それぞれのビットでのハンドシェイクプロトコルの完了とに応答して、データパスを介した同期領域へのデータトークンの転送を促進し得る制御回路を含む。
同期領域がデータ転送に連続データのブロックを含めることを必要とする更に特定的な実施形態によれば、データパスは、更に、連続データのブロックを形成するために、非同期領域において生成されたデータトークンを蓄積し得る。制御回路は、更に、クロック信号の遷移に応答して、それぞれのデータトークンのそれぞれのビットでのハンドシェイクプロトコルの完了後に、データパスを介した、蓄積されたデータトークンの同期領域への転送を促進し得る。
別の特定の実施形態によれば、インタフェースは、同期領域と非同期領域との間での使用のために提供され、同期領域は、クロック信号の遷移によるデータの伝送を特徴とし、非同期領域は、非同期ハンドシェイクプロトコルによるデータの伝送を特徴とする。インタフェースは、同期領域において生成され、複数のビットを備えるデータトークンを受領し得るデータパスを含む。インタフェースは、更に、クロック信号の遷移と、ハンドシェイクプロトコルにより生成され、非同期領域でデータトークンを受領する準備ができたことを示すイネーブル信号とに応答して、データパスを介した非同期領域へのデータトークンの転送を促進し得る制御回路を含む。
同期領域がデータ転送に連続データのブロックを含めることを必要とする更に特定的な実施形態によれば、制御回路は、更に、クロック信号の遷移と、ハンドシェイクプロトコルにより生成され、非同期領域が複数のデータトークンを受領するのに十分なメモリを有することを示すイネーブル信号とに応答して、データパスを介した非同期領域への、連続データのブロックとしての、複数のデータトークンの転送を促進し得る。
更に別の実施形態によれば、非同期領域と同期領域との間で使用するためのインタフェースが提供される。第一のデータパスは、非同期領域で生成され、複数のビットを備える第一のデータトークンを受領し得る。第二のデータパスは、同期領域で生成された第二のデータトークンを受領し得る。制御回路は、クロック信号の遷移と、それぞれのビットでのハンドシェイクプロトコルの完了と、ハンドシェイクプロトコルにより生成され、非同期領域で第二のデータトークンを受領する準備ができたことを示すイネーブル信号とに応答して、第一のデータパスを介した同期領域への第一のデータトークンの転送を促進し得る。
本発明の性質及び利点の更なる理解は、本明細書の残りの部分と図面とを参照することで実現し得る。
次に、本発明を実施する上で本発明者が最良の形態と考えるものを含め、本発明の特定の実施形態を詳細に参照する。こうした特定の実施形態の例は、添付図面に例示されている。本発明は、こうした特定の実施形態に関連して説明されるが、説明する実施形態に本発明を限定する意図はないと理解される。反対に、付記する請求項によって定義される本発明の趣旨及び範囲内に含まれ得る代替、修正、及び同等物を網羅することが意図される。以下の説明では、本発明の完全な理解を提供するために、多数の特定の詳細について述べる。本発明は、こうした特定の詳細の一部または全部を備えずに実施され得る。加えて、広知の処理動作については、本発明を不必要に曖昧にしないために、詳細に説明していない。
なお、最初に、本発明において説明される一部の手法及び回路は、準遅延非感受性(quasi−delay−insensitive)非同期VLSIとして説明及び実施される。しかしながら、本発明の多くの原理及び手法は、例えば、非遅延非感受性非同期VLSI及び同期VLSIといった、その他のコンテクストでも使用してよい。
更に、本発明の様々な実施形態は、本発明の範囲から離れることなく、広範な形で実施し得ると理解される。即ち、本明細書の非同期プロセス及び回路は、ソフトウェア(オブジェクトコードまたはマシンコード)において、コンパイルの様々な段階において、一つ以上のネットリストとして、シミュレーション言語において、ハードウェア記述言語において、半導体処理マスクのセットによって、及び部分的または完全に実現された半導体デバイスとして、(制限なく)表現し得る。当業者に理解されるような、上記のそれぞれの様々な代替も、本発明の範囲に含まれる。例えば、本明細書で説明するプロセス及び回路を設計及び製造するのに適した、様々なタイプのコンピュータ可読媒体、ソフトウェア言語(Verilog、VHDL等)、シミュレート可能な表現(SPICEネットリスト等)、半導体プロセス(CMOS、GaAs、SiGe、その他等)、及びデバイスタイプ(FPGA等)は、本発明の範囲に含まれる。
本願は、更に、擬似コード言語CSP(並行順次プロセス)を利用して、高レベルアルゴリズム及び回路動作を記述する。CSPは、通常、並列プログラミングソフトウェアプロジェクトと、遅延非感受性VLSIとにおいて使用される。この一般的な言語及び表記法の使用は、単なる例であり、本発明の基盤となる態様は、本発明の範囲から離れることなく、広範な形で表現且つ実施し得ると理解される。ハードウェアプロセスに適用する場合、CSPは、CHP(通信ハードウェアプロセス)として知られることがある。この言語の説明については、参照によりあらゆる目的で本明細書に全体を組み込むA.J.マーティン著「非同期VLSI回路の合成」DARPA Order number 6202, 1991を参照されたい。
加えて、本明細書で説明する回路の様々な態様でのCSP規格のトランジスタレベルでの実施への変換は、A.M.ラインズ著「パイプライン非同期回路」Caltech Computer Science Technical Report CS-TR-95-21, Caltech, 1995において説明される手法により達成してよく、その開示内容全体は、参照によりあらゆる目的で本明細書に組み込む。しかしながら、広範な非同期設計手法のいずれかを、この目的で使用してもよいと理解するべきである。
本明細書で使用されるCSPは、以下の構造及びシンタックスを有する。プロセスは、静的で順次的であり、チャネルを通じて他のプロセスと通信する。複数のプロセスは、共に、並列プログラムを構成する。[and]は、ifステートメントを区切り、*[and]は、ループを区切る。
B→Sのペアを、 (決定論的選択を示す)または|(非決定論的選択を示す)によって分離されたifステートメントまたはループの内部に追加することで、多数の選択を行うことが可能であり、ここでBはブール演算式であり、Sはステートメントである。したがって、[B1→S1 B2→S2]は、式B1が真である場合にS1を実行し、或いは式B2が真である場合にS2を実行することを意味する。B1及びB2がどちらも真ではない場合、このステートメントは、一方が真となるまで待つ(if−else構造とは異なる)。省略表現*[S]は、ステートメントSを無限に繰り返すことを意味する。省略表現[B]は、ブール演算式Bが真になるのを待つことを意味する。ローカル変数は、整数と仮定され、x:=y+1のような整数式の値を割り当てることができる。セミコロンは、厳密な順序を有するステートメントを区切る。コンマは、必要な順序がないステートメントを区切る。疑問符及び感嘆符は、それぞれ、受領すること及び送信することを示すのに使用される。したがって*[A?x;y:=x+1;B!y]は、整数xをチャネルAから受領し、次に整数yを値x+1に割り当て、次にyをチャネルBに送信し、その後、永遠に繰り返すことを意味する。
本発明の様々な特定の実施形態によれば、データのラッチングは、レジスタではなくチャネルにおいて発生する。こうしたチャネルは、送信回路から受信回路へのデータのFIFO(先入れ先出し)転送を実施する。データ線は、センダからレシーバへ進み、イネーブル(即ち、肯定応答の逆の意味)線は、フロー制御のために逆向きに進む。こうした実施形態の特定の一つによれば、隣接回路(プロセス)間の四相ハンドシェイクが、チャネルを実施する。四相は、順に、1)センダがハイイネーブルを待ち、次に、データを有効に設定することと、2)レシーバが有効データを待ち、次に、イネーブルを低下させることと、3)センダがローイネーブルを待ち、次に、データを中立にすることと、4)レシーバが中立データを待ち、次に、イネーブルを高めることとである。なお、このハンドシェイクプロトコルの使用は、例示的な目的のものであり、そのため、本発明の範囲は、このように限定されない。
特定の実施形態によれば、データは、1ofNエンコーディングまたはいわゆる「ワンホットエンコーディング」を使用してエンコードされる。これは、Nの線によりN+1の状態の一つを選択する広知の変換である。チャネルは、全ての線が非アクティブである時、中立状態となる。k番目の線がアクティブであり、他の全てが非アクティブである時、チャネルは、k番目の状態となる。任意の時点で二本以上の線がアクティブになるのはエラー状態である。
例えば、特定の実施形態において、データのエンコーディングは、デュアルレールであり、1of2とも呼ばれる。このエンコーディングでは、二本の線(レール)を使用して、二種類の有効状態と中立状態とを表す。チャネルXに関する線は、データに関してはX0、X1、イネーブルに関してはXeと書かれる。他の実施形態によれば、更に大きな整数は、1of3または1of4コードのように、更に多くの線によりエンコードされる。
遙かに大きい数に関しては、多数の1ofNを、異なる数値的有意性と共に使用してもよい。例えば、32ビットは、32の1of2コードまたは16の1of4により表すことができる。この場合、サブスクリプトは、各1ofNコードの有意性を示し、即ち、Lgrはg番目のビット(またはグループ)のr番目の線であり、Lg eは関連するイネーブルである。更に別の実施形態では、いくつかの関連チャネルを、L[i]またはV[i,j]といった、1−Dまたは2−D配列に編成してもよい。こうした実施形態において個別の線を特定するには、記号L[i]rまたはL[i]grが使用される。
図1は、本発明の特定の実施形態による、非同期領域102から同期領域104へデータトークンを転送する例示的なインタフェース100を示す簡略ブロック図である。表示の実施形態によれば、1of2エンコーディングを使用してエンコードされた、32ビット幅データトークン、即ちL[0..31]が仮定される。しかしながら、説明する実施形態により、任意の数のビットを有し、多数の異なる方法でエンコードされたデータトークンを、一方の領域から他方へ転送してよいと理解される。
32ビット幅データパスは、上で説明した遅延非感受性ハンドシェイクプロトコルにより、非同期領域において生成されたデータトークンを受領し、あるステージから次のステージへ転送する、多段式バッファキュー106を含む。バッファ106は、八ステージを有するように、即ち、八つのデータトークンに対応できるように表示されているが、様々な実施形態に従って、このバッファの長さは変化させてもよいと理解される。各データトークンのバッファ106への転送が達成されると、それぞれのビットでの処理の完了が、ハンドシェイクにより、バッファ106の第一のステージで逆向きに信号で送られる。
データパスは、更に、DTUブロック108によって表される一つ以上の非同期−同期(A2S)データパス転送ユニット(データトークンの各ビットに一つ)を含む。説明するように、DTU108は、A2S「go」信号と同期領域104に関連するクロック信号(CLK)に応答して、同期領域104への各データトークンの転送を達成する。本発明の特定の実施形態により、A2S「go」信号が生成される方法については、下で説明する。
トークンのそれぞれのビットがバッファ106への転送に成功したこと(即ち、完了したハンドシェイク)の表示に応答して、完了ブロック110は、完了した転送を表す1of1転送トークンを生成する。特定の実施形態によれば、完了ブロック110は、パイプラインアーキテクチャを利用し、データトークンのそれぞれのビットに対する完了信号から単一の転送トークンを生成することに内在するレイテンシの影響を最小化する。こうした完了ブロックの特定の実施については、下で説明する。
完了ブロック110によって生成された転送トークンは、制御ブロック112に受領され、制御ブロック112は、有効データを転送可能であることを示す、同期領域への要求信号を生成する。同期領域からの許可信号を受領すると、クロック信号の遷移に応答して、クロックブロック112は、A2S「go」信号を生成し、DTUブロック108に対して、同期領域へ向かうバッファ106の終端部にその時点で存在するデータトークンの全てのビットを同時にラッチさせる。同期領域で常にデータを受け入れる準備ができている代替実施形態によれば、許可及び要求信号は省略してよく、A2S「go」信号は、転送トークンとクロック信号に応答して生成される。
特定の実施形態によれば、DTU108内の個別のデータパス転送ユニット内でのA2S「go」信号の分配は、こうした分配に内在するレイテンシの影響を最小化するパイプラインツリー構造を使用して達成される。代替実施形態によれば、A2S「go」信号は、電気的に連続する伝導体を使用して、個別のデータパス転送ユニットに分配される。
図2は、本発明の別の特定の実施形態による、同期領域202から非同期領域204へデータトークンを転送するインタフェース200を例示する簡略ブロック図である。図1を参照して上で説明した実施形態と同じく、例示的な32ビット幅データトークン、即ちL[0..31]が仮定される。同期領域において生成されたデータトークンは、複数の同期−非同期(S2A)データパス転送ユニット(DTU206として表示)と多段式バッファキュー208とを含むデータパスを介して、非同期領域に転送される。
バッファ208は、上で説明した遅延非感受性ハンドシェイクプロトコルにより、DTU206から受領したデータトークンを受領し、あるステージから次のステージへ転送する。バッファ208は、八ステージを有するように、即ち、八つのデータトークンに対応できるように表示されているが、様々な実施形態に従って、このバッファの長さは変化させてもよいと理解される。同期領域において生成されたデータトークンは、制御ブロック210によって生成されたS2A「go」信号に応答して、DTU206によりバッファ208へ転送される。S2A「go」信号の生成については、下で説明する。
バッファ208の終端部にあるデータトークンのそれぞれのビットをバッファ208から転送するのに成功したことの表示に応答して、完了ブロック212は、完了した転送と、少なくとも一つの追加データトークンのための余地が現在バッファ208に存在する事実とを表す1of1転送トークンを生成する。特定の実施形態によれば、完了ブロック212は、パイプラインアーキテクチャを利用し、データトークンのそれぞれのビットに対する完了信号から単一の転送トークンを生成することに内在するレイテンシの影響を最小化する。こうした完了ブロックの特定の実施については、下で説明する。
完了ブロック212によって生成された転送トークンは、遅延非感受性ハンドシェイクプロトコルにより、(多数のトークンに対応可能な)転送トークンバッファ214のステージを通じて受領及び転送される。任意の時点でのトークンバッファ214内のトークンの数は、同期領域から転送される追加的なデータトークンのためにバッファ208において利用可能なスペースの数に対応する。トークンバッファ214の長さは、異なる実施に応じて変化させてよく、異なるバッファ長は特定のデータパス幅により適したものとなる。
制御ブロック210がバッファ214から転送トークンを受領し、更にデータトークンに関する同期領域からの未解決の要求が存在する時、制御ブロック210は、非同期領域でデータトークンを受領する準備ができていることを示す許可信号を生成する。制御ブロック210は、更に、DTU206によるバッファ208の第一のステージへのデータトークンの転送を可能にするS2A「go」信号を生成する。特定の実施形態によれば、S2A「go」信号は、パイプラインツリー構造を使用してDTU206の個別のデータパス転送ユニット内で分配され、こうした分配に内在するレイテンシの影響を最小化する。代替実施形態によれば、S2A「go」信号は、単一の線等の電気的に連続する伝導体を使用して、個別のデータパス転送ユニットに分配される。
様々な実施形態によれば、図1及び2及び対応する説明を参照して理解されるように、「go」信号を生成及び分配する様々な要素のパイプライン化は、低レイテンシの解決策を発生させ、これにより大きなデータトークンを非同期及び同期領域間で転送し得る。一部の実施形態によれば、32または64ビット等の大きなデータパスのレイテンシは、1クロック期間ほどの小ささにできる。
連続データのブロックにおいてデータ転送を行う必要があり、及び/または、待ち状態を許容しない、特定のタイプの同期システムでは、上記のA2S及びS2Aインタフェースは、領域間でデータを効果的に転送するのに、それ自体では十分でない場合がある。そのため、本明細書において「バーストモード」と呼ばれる本発明の様々な特定の実施形態によれば、同期領域のデータ転送要件が満たされる状態を確保する解決策が提供される。
図3は、同期領域が中断のないブロックまたは連続したトークンの「バースト」でデータが転送されることを期待する本発明の特定の実施形態により、非同期領域302から同期領域304へデータトークンを転送する例示的な「バーストモード」インタフェース300を示す簡略図である。なお、非同期という用語は特定の回路に関して使用し得るが、本発明のインタフェースの性質は、非同期側にタイミングの制約が存在することを意味し、例えば、バッファがクロックサイクル毎に一つのデータトークンを供給するのに十分な速度を有する必要があることを意味する。こうしたバッファは通常のクロックサイクルより大幅に速い速度でトークンを供給するという点において、これは全く容易な制約ではあるが、制約であることに変わりはない。
更に特定的な実施形態によれば、同期領域304は、同期メモリアーキテクチャであり、インタフェース300は、「ライト」インタフェースである。しかしながら、本発明により設計されるバーストモードインタフェースは、図3に示す特定の実施よりも一般的に応用可能である。即ち、図3に表示する様々な実施の詳細は、他の応用のために設計されるボーストモードインタフェースにおいて、必要ではない場合、或いは他の詳細と置き換えてよい場合がある。
表示の実施形態によれば、1of2エンコーディングを使用してエンコードされた32ビット幅データトークン、即ち、L[0..31]が仮定される。しかしながら、説明する実施形態により、任意の数のビットを有し、多数の異なる方法でエンコードされたデータトークンを、一方の領域から他方へ転送してもよいと理解される。データトークンに関連する制御情報、例えば、ライトコマンドビットと、データが書き込まれるアドレスとは、データトークンから分離され、制御パス303を介して伝送される。32ビットデータトークンは、データパス305を介して伝送される。
理解されるように。制御情報の性質は、同期領域におけるメモリアーキテクチャのタイプに依存する。同じく理解されるように、データトークンは、メモリのブロックにおいて特定のワードのみが書き込まれるダミートークンを含んでもよい。こうしたダミートークンは、バーストに含めてよく、例えば、それぞれのトークンに関連するマスクビットにより特定してもよい。
32ビット幅データパスは、上で説明した遅延非感受性ハンドシェイクプロトコルにより、非同期領域において生成されたデータトークンを受領し、あるステージから次のステージへ転送する、多段式バッファキュー306を含む。バッファ306は、24ステージを有するように、即ち、24のデータトークンに対応できるように表示されているが、様々な実施形態に従って、このバッファの長さは変化させてもよいと理解される。各データトークンのバッファ306への転送が達成されると、それぞれのビットでの処理の完了が、ハンドシェイクにより、バッファ106の第一のステージで逆向きに信号で送られる。
データパスは、更に、DTUブロック308によって表される複数の非同期−同期(A2S)データパス転送ユニット(データトークンの各ビットに一つ)を含む。説明するように、DTU308は、A2S「go」信号と同期領域304に関連するクロック信号(CLK)に応答して、同期領域304への各データトークンの転送を達成する。本発明の特定の実施形態により、A2S「go」信号が生成される方法については、下で説明する。
トークンのそれぞれのビットがバッファ306への転送に成功したこと(即ち、各ビットのための完了したハンドシェイク)の表示に応答して、完了ブロック310は、完了した転送を表す1of1転送トークンを生成する。特定の実施形態によれば、完了ブロック310は、パイプラインアーキテクチャを利用し、データトークンのそれぞれのビットに対する完了信号から単一の転送トークンを生成することに内在するレイテンシの影響を最小化する。こうした完了ブロックの特定の実施については、下で説明する。
特定の実施形態によれば、バッファ306は、一連の非同期ステージとして実施され、そのそれぞれが、上で説明した四相非同期ハンドシェイクを使用して、介在するバッファチャネルを介して、一度に一つの32ビットデータトークンを受信及び送信する。更になお特定的な実施形態によれば、各バッファステージは、16のバッファ素子を並列で備え、そのそれぞれが、ハンドシェイクを使用してデータの二つのビットを受信及び送信することに責任を有する。理解されるように、本発明の範囲から離れることなく、バッファ306とそのバッファステージを実施し得る方法は、数多く存在する。
転送トークンは、バーストを送信するために十分な数のトークンがバッファに存在するかを追跡する目的で、バッファへの転送が成功した全てのデータトークンについて生成される。特定の実施形態によれば、完了ブロック310は、パイプラインアーキテクチャを利用し、データトークンのそれぞれのビットに対する完了信号から単一の転送トークンを生成することに内在するレイテンシの影響を最小化する。更に詳しくは、完了ブロック310は、バッファ306に送信されたデータトークンのコピーから転送トークンを生成するツリー構造として実施される。こうしたツリー構造の例は、データトークンをコピーする回路を含め、図4に表示されている。
各バッファ素子402は、非同期ハンドシェイクプロトコルを使用して、データの二つのビットを受信及び送信する。各バッファ素子は、更に、成功した転送が発生した時、例えば、イネーブルのコピーである、完了信号を生成する。この完了信号は(隣接バッファ素子の他の三つの完了信号と共に)、四つ全ての完了信号が受領された時に単一のトークンを生成する四方向トークン収集回路404によって受領される。このトークンは(同様の回路404によって生成された他の三つと共に)、ほぼ同じ形で転送トークンを生成する最終の四方向トークン収集回路406へ送信される。こうした実施において使用し得る例示的な四方向トークン収集回路のためのCSPは、*[<‖i:0..3:L[i]?>;R!]によって与えられる。こうした実施において使用し得る例示的な転送バッファ素子のためのCSPは、*[L?x;R!x,T!]によって与えられる。
転送トークンは、アキュムレータブロック312に受領され、アキュムレータブロック312は、特定の数の転送トークンが蓄積され、バッファにおける少なくとも一回のデータのバーストの存在を示す時、単一の同期トークンを生成し、例えば、各データトークンがシングルワードのデータで、バーストが八ワードのデータでなければならない場合、同期トークンは、八つの転送トークンを受領する毎に生成される。
同期バッファ314は、単純に、自分の入力を自分の出力にコピーするバッファだが、制御情報によって特定されるアドレスへのライトを達成するのに十分なデータがバッファ306に存在することを示すアキュムレータブロック312からの同期トークンを受領するまで、アドレス及びライトコマンド等、制御パス303上の制御情報を通過させない。制御情報は、その後、上で説明したDTUブロック108及び308のデータパス転送ユニットと同様の単純なバッファステージを備え得るA2Sインタフェース316に伝送される。代替として、A2Sインタフェース316は、例えば、図1のA2Sインタフェース100のような、より複雑なものを使用して実施してもよい。
特定の実施形態によれば、アキュムレータブロック312によって生成される同期トークンは、一部を図5に示すパイプラインツリー構造を使用して、同期バッファ314の個別のバッファ素子に分配される。(本質的に逆の機能を果たす)図4のツリー構造と同様に、ツリー構造500は、単一のトークンのコピーをそれぞれのバッファ素子に分配することに内在するレイテンシの影響を最小化する。
図5に示すように、四方向トークンコピー回路502は、同期トークンを受領し、同期バッファ314の個別のバッファ素子506に分配するのに十分な数のコピーが存在するまで、複数の後続のトークンコピー回路504(二方向、三方向等、異なる出力数を有し得る)のそれぞれにトークンをコピーする。こうした実施において使用し得る例示的な四方向トークンコピー回路のためのCSPは、*[L?;<‖;:0..3:R[i]!>]によって与えられる。こうした実施において使用し得る例示的な同期バッファ素子のためのCSPは、*[L?x,T?;R!x]によって与えられる。
いかなる場合においても、ライト要求等の制御情報が同期領域に伝送されると、同期制御回路318によってA2S「go」信号がアサートされ、連続クロック信号に応答して、DTUブロック308は、同期メモリアーキテクチャを特徴付けるプロトコルにより、特定のメモリ位置に書き込まれるデータトークンのバーストを転送する。バーストが完了すると、「go」信号はデアサートされる。
図6は、本発明の特定の実施形態により、同期領域602から非同期領域604へデータトークンを転送する例示的な「バーストモード」インタフェース600を示す簡略図である。表示の実施形態において、同期領域602は、同期メモリアーキテクチャを備え、インタフェース600は、図3のライトインタフェースと共に使用するリードインタフェースである。他の様々な実施形態によれば、インタフェース600に類似するS2Aインタフェースは、同期領域が連続トークンのバーストにおいてデータを転送することを求められる広範なコンテクストのいずれかにおいて利用し得る。
図3のライトインタフェース300と同様に、1of2エンコーディングを使用してエンコードされた32ビット幅データパス、即ち、L[0..31]が仮定される。しかしながら、説明する実施形態により、任意の数のビットを有し、多数の異なる方法でエンコードされたデータトークンを、一方の領域から他方へ転送してもよいと理解される。データパスは、DTUブロック606によって表される複数の同期−非同期(S2A)データパス転送ユニット(データトークンの各ビットに一つ)を含む。説明するように、DTU606は、S2A「go」信号と同期領域304に関連するクロック信号(CLK)とに応答して、非同期領域604への各データトークンの転送を達成する。本発明の特定の実施形態により、S2A「go」信号が生成される方法については、下で説明する。
32ビット幅データパスは、更に、上で説明した遅延非感受性ハンドシェイクプロトコルにより、データトークンを受領し、あるステージから次のステージへ転送する、多段式バッファキュー608を含む。バッファ608は、24ステージを有するように表示されており、これは特定の実施形態において、三回の八トークンのデータバーストのためのスペースを提供するためである。しかしながら、様々な実施形態に従って、このバッファの長さは変化させてもよいと理解される。各データトークンのバッファ608からの転送が達成されると、それぞれのビットでの処理の完了が、ハンドシェイクにより、逆向きに信号で送られる。
ライトインタフェース300と同様に、リードコマンド及びアドレス等、非同期領域604において生成された制御情報は、予測される連続データトークンのバーストを受け入れるのに十分な余地がバッファ608にできるまで、同期領域602に伝送されない。一実施形態によれば、バーストのサイズは、一定である。別の実施形態によれば、バーストのサイズは変化し、制御情報を参照して決定してもよい。いかなる場合においても、インタフェース600は、同期領域から転送されるデータがどのようなサイズであっても、それに対応する十分なバッファスペースが存在する状態を確保するように構成される。
特定の実施形態によれば、これは、バッファ608からの転送に成功した全てのデータトークンに対して転送トークンを生成する完了ブロック610により、バッファ608から転送されたトークンの数を追跡することで達成される。特定の実施形態によれば、完了ブロック610は、パイプラインアーキテクチャを利用し、データトークンのそれぞれのビットに対する完了信号から単一の転送トークンを生成することに内在するレイテンシの影響を最小化する。更に詳しくは、完了ブロック610は、バッファ608の最終ステージに続いて非同期回路によって生成された完了信号から転送トークンを生成するツリー構造として実施してよい。代替として、完了ブロック610は、バッファ608に続く自分のバッファステージを備えてもよい。こうしたツリー構造の例は、図4を参照して上で説明している。
完了ブロック610によって生成された転送トークンは、アキュムレータブロック612によって受領され、アキュムレータブロック612は、特定の数の転送トークンが蓄積され、バッファ608において、少なくとも一回のデータのバーストのためのスペースが存在することを示す時、単一の同期トークンを生成し、例えば、各データトークンがシングルワードのデータで、バーストが8ワードのデータである場合、同期トークンは、八つの転送トークンを受領する毎に生成される。アキュムレータブロック612によって生成された同期トークンは、同期バッファ616への適用のためにトークンバッファ614に格納される。
トークンバッファ614は、一度に三つの同期トークンバッファに対応できるものとして表示されている。これは、バッファ608によって対応し得るデータバーストの数に対応する。しかしながら、トークンバッファ614は、本発明の範囲から離れることなく、バッファ608と共に長さを変えてもよいと理解される。トークンバッファについて選択された長さに関連する何らかのタイミングの仮定が存在するか、或いは、バッファ608で対応可能なバーストの数によって決定されるか。更に、インタフェースをパワーアップした時には、バッファ608が完全に空である事実を反映するために、トークンバッファ614には、同期バッファがフルに配置されると理解される。
同期バッファ616は、単純に、自分の入力を自分の出力にコピーするバッファだが、制御情報によって特定されるアドレス範囲からのデータのリードを達成するのに十分なスペースがバッファ306に存在することを示すトークンバッファ614からの同期トークンを受領するまで、アドレス範囲及びリードコマンド等、制御パス605上の制御情報を通過させない。制御情報は、その後、上で説明したDTUブロック108及び308のデータパス転送ユニットと同様の単純なバッファステージを備え得るA2Sインタフェース618に伝送される。代替として、A2Sインタフェース618は、例えば、図1のA2Sインタフェース100のような、より複雑なものを使用して実施してもよい。
インタフェース300を参照して上で説明したように、インタフェース600の回路には何らかのタイミングの制約が存在する。即ち、例えば、インタフェース600は、同期バッファ616がトークンバッファ614から同期バッファを受領するたびに、バッファ608内の任意のデータトークンをバッファの終端部に向けて、十分に遠くまで移動させ、同期トークンの伝送によって引き起こされるデータのバーストに対応するのに十分なスペースがバッファの先頭に存在するように構成される。特定の実施形態によれば、これは、少なくとも部分的には、バッファ608がトークンをステージからステージへ転送する速度により達成され得る。
特定の実施形態によれば、トークンバッファ614から伝送される各同期トークンは、図5を参照して上で説明したパイプラインツリー構造を使用して、同期バッファ616の個別のバッファ素子に分配される。
いかなる場合においても、リード要求等の制御情報が同期領域に伝送されると、同期制御回路620によってA2S「go」信号がアサートされ、連続クロック信号に応答して、DTUブロック606は、同期領域602からのデータトークンのバーストをバッファ608に転送する。バーストが完了すると、「go」信号はデアサートされる。こうした「go」信号の生成については、更に特定的な実施形態を参照して、下で説明する。
次に、A2S及びS2Aインタフェースの更に特定的な実施について、図7以降を参照して説明する。以下の説明において、非同期チャネルは、1ofNチャネルにハンドシェイク「イネーブル」線を追加したものを指す。イネーブル線は、スーパスクリプト「e」によって特定される。こうした線での通信は、上で説明した非同期四相ハンドシェイクプロトコルにより行われる。「妥当性」とは、1ofNチャネルの状態を指す。一本のレールがハイである時、そのチャネルは「有効」であると言われる。その他の場合は、「中立」または無効であると言われる。「トークン」は、システム内の一つの非同期チャネルから次のものへの有効状態の伝搬を指す抽象概念である。
下で説明するコンバータ設計では、フロー制御を実施するために、一対の同期ハンドシェイク信号(So及びSiと呼ばれる)を更に使用する。図7に例示する特定の実施形態によれば、使用されるハンドシェイクプロトコルは、以下の通りである。立ち上がりクロックエッジにおいて、A及びBが共にハイである場合、レシーバは、データを読む。Aがハイで、Bがローである場合、データチャネルは、未読値を含み、センダは、レシーバがBを高めるのを待っている。Aがローで、Bがハイである場合、データチャネルは「空」である。レシーバは、以前の値を全て読んでおり、次の値のための準備ができている。A及びBが共にローである場合、チャネルは空であり、レシーバは、チャネル値からの読み込みの準備ができていない。
様々な信号、チャネル、定数を表すために、以下の省略及び表記が使用される。CLK−クロック、Tclk−クロック期間、So−同期ハンドシェイク出力信号、Si−同期ハンドシェイク入力、Ac−PC1of1出力チャネル、go−トークンを転送するかを示すDTUアレイに対する制御信号(同期シングルレールブロードキャストまたは1of1四相非同期チャネルのいずれか)、en−セル内の内部イネーブル信号(enは、自分の入力チャネルに対するイネーブルである場合と、そうではない場合とがある)。
下で説明するそれぞれの実施形態は、クロック(同期)ロジックとローカルハンドシェイク(非同期)ロジックとの間での高性能変換回路を実施する。非同期領域において、データの転送は、1ofNレールチャネルで、四相ローカルハンドシェイクプロトコルに従って発生する。同期領域において、データの転送は、クロック信号の遷移とのタイミング関係により発生する。二種類の通信規則を混合する任意の回路は、必然的に、システムにメタスタビリティを持ち込む。低レイテンシで高スループットの転送を維持しながら、このメタスタビリティをデータトークン転送につき単一の信号に局在化させることが、下で説明する様々な実施形態の目的となる。
非同期−同期(A2S)及び同期−非同期(S2A)コンバータ802及び804のポートインタフェースは、それぞれ、図8に例示されている。なお、以下の説明においては、全ての同期信号は、シングルレールであると仮定される。しかしながら、本発明の実施形態は、その他の同期信号変換(デュアルレールまたは差動型)に極めて容易に対応できる。
A2Sインタフェース802の動作の簡単な説明は、次の通りである。
1.非同期トークンがLチャネルに到着し、全てのL0...LM-1チャネルが有効になることで表示される。
2.CLKの次の立ち上がりエッジにおいて、Siがハイであるか、或いはSoがローである場合、転送が発生する(状態4へ進む)。そうでない場合は、
3.コンバータは、Siがハイである時に立ち上がりCLK遷移まで待機する。
4.Lのデータ値が読み込まれる(イネーブルはローとなり、L0...LM-1データレールは中立となる)。CLKの立ち下がりエッジにおいて、この値がR0...RN-1においてアサートされ、Soがハイにセットされる。
5.動作が状態1に戻る。次のトークンが到着するまで、各立ち上がりCLKエッジにおいて、Siがハイである場合には、次の立ち下がりCLK遷移においてSoがローに設定される。
これは、A2Sコンバータ802の内部のLチャネルでの非ゼロスラックによる簡単な説明である。Lハンドシェイクとコンバータの同期転送との間の正確なタイミング関係は知られていない(但し、上に示したものより早い時点でのみ発生可能である。)。
S2Aインタフェース804の動作について、同様の簡単な説明は次の通りである。
1.R0...RM-1チャネルが全て中立になり、コンバータは、全てのRieイネーブルがハイになるのを待つ(トークンを受領する準備ができたことを示す)。少なくとも一つのRieがローである限り、SoはCLKの立ち下がり遷移においてローに設定される。
2.次のCLKの立ち上がりエッジにおいて、Siがハイである場合、転送が発生する(状態4へ進む)。転送が発生しても、発生しなくとも、次の立ち下がりCLKエッジにおいて、Soがハイにアサートされる。
3.コンバータは、Siがハイである時に立ち上がりCLK遷移まで待機する。
4.L0...LN-1のデータ値がRチャネルに書き込まれる(R0...RM-1は有効となり、イネーブルはローに遷移する)。動作が状態1に戻る。
下で説明するA2Sインタフェース及びS2Aインタフェースは、上記の動作を実施する。加えて、説明する実施形態の特定の実施は、以下の特性を特徴とする。タイミングに関して、本発明の様々な設計では、全ての信号に最低限のタイミングの仮定を強制する。競合は、クロックに対してのみ、指定された設定と、CLKの立ち上がりエッジに相対的な保持時間とに従うと仮定される同期入力上において存在する。全てのタイミングの仮定が成り立つと仮定すると、メタスタビリティは、設計の単一のポイントのみで生じる。このメタスタビリティは、ザイツアービタにより解消される。1/2Tclk(マイナスのイプシロン)により、メタスタビリティの解消が可能である。全ての同期出力は、CLK+に続く何らかの範囲の[tOmin,tOmax]の間に遷移する。
様々な実施形態によれば、S2A及びA2S方向は、両方とも、クロックサイクルにつき一回の転送を持続できる。変換の最大レイテンシペナルティは、(同期−同期転送と相対的に)1クロックサイクルであり、病的な場合にのみ被る。着信A2S及び発信S2Aトークンの完了は、サイクル時間を低く保つために、パイプライン処理される。
様々な実施形態によれば、CLKとの最小化された同期により「オーバクロック」が可能となり、Tclkが最小レベルを下回った際にも、正確さが維持される(「nop」サイクルが同期ハンドシェイクを介して導入される)。全てのタイミング競合が満たされたと仮定すると、アービタを超えてメタスタビリティが伝搬する唯一の可能性は、正確にCLK+に続くTclk/2である一回の遷移の期間中にアービタが消滅した場合である。
特定の実施形態によるA2S及びS2Aコンバータ802及び804の内部の高レベル編成は、図9に表示されている。各インタフェースは、四つの高レベルコンポーネントを含む。
1.パイプライン完了(PC)902。このコンポーネントの目的は、着信(A2S)または発信(S2A)データトークンを特定し、肯定応答することである。この「完了」ロジックは、各データチャネルのOR’dデータレールをC素子のツリーに供給すること、即ち、こうしたデータレールを単一の「データ有効」信号に圧縮することを含む。単一チャネルトークン以外の全てについて、この組み合わせロジックツリーでは、あまりにも多くの順方向レイテンシが持ち込まれ、高サイクルレートが持続できない。そのため、特定の実施形態によれば、着信トークンは、パイプライン式に完了され、各ステージでの中間完了信号をバッファする。
特定の実施形態によれば、PC902は、同じトークンサイズ及びタイプのA2S及びS2Aコンバータの両方について同一である。PC902は、それぞれの非同期側(即ち、A2Sの入力、S2Aの出力)に現れる。
2.制御プロセス(CTRL)904及び906(例えば、図10参照)。CTRLプロセス904及び906は、(1)非同期及び同期側の両方で転送の準備ができた時にデータパスへの「go」信号を発行することと、(2)非同期及び同期ハンドシェイク信号(Ac d,Ac e)及び(Si,So)を順序付けることと、(3)必要に応じてCLKに同期することとに責任を有する。
A2S及びS2A設計の制御プロセス(それぞれCTRL904及び906)は、ほぼ同一である。A2S CTRL904とS2A CTRL906との間の唯一の違いは、そのリセット状態であり、A2S CTRL904のSoはローをリセットし、S2A CTRL906のSoはハイをリセットする(前者は、同期出力チャネルの空の状態を反映し、後者は、S2Aの非同期キャプチャバッファの空の状態を反映する)。
3.データパス転送ユニット(DTU)908及び910(例えば、図11を参照)。一般に、DTUユニットは、関連するCTRLプロセスからの転送(「go」)信号が受領された際に、同期/非同期境界を越えてデータトークンを転送することに責任を有する。A2S及びS2Aデータパス転送ユニットは、大きく異なる。それぞれの詳細は、下で説明する。
4.データパスバッファリング912及び914。A2Sインタフェース及びS2Aインタフェースは、両方とも、PC及びデータパストランスファユニット間に非同期バッファの追加的なステージを必要とする。バッファは、転送前(A2Sバッファ912)または後続の非同期回路によって消費される前(S2Aバッファ914)のいずれかにデータトークンを格納する。両方のケースにおいて、これらのバッファステージに、タイミングの仮定が強制される。具体的には、バッファは、DTUユニットがトークンを消費または生成できる速度より高速でトークンを渡すことができる。別の言い方をすれば、バッファアレイは、クロック期間よりも長いクリティカルサイクルを有していない。
上記のA2Sインタフェース802の高レベルの分解を考えると、その動作についての更に詳細な説明を提供できる。最初に非同期L入力から、トークン(四相ハンドシェイクプロトコルに従ったNの1ofMチャネルを備える)が、A2Sコンバータ802に入り、即座に二つのブランチへコピーされ、一方は、パイプライン完了(PC902)へ、他方は、A2S DTUアレイに先行するデータパスバッファ912へ向かう。PC902は、ロジックのいくつかのステージを通じて、トークンを単一の1of1トークンに圧縮し、ステージの数はN及びMのサイズに応じて変化する。1of1トークン(図9の「Ac」チャネル上)は、その後、非同期トークンが到着し、変換の準備ができていることの通知として、A2S CTRLプロセス904に提出される。
A2S CTRLプロセス904は、CLKの次の立ち上がりエッジにおいて、1of1 Acチャネルの状態をサンプリングする。有効データ(Ac dアサート済み)が含まれることを確認すると、出力チャネルと同期「許可」(Re)信号との状態に応じて、トークンを同期領域に転送するかどうかを判断する。Rチャネルが空である場合(Rvがロー)、或いは、許可信号がハイである場合、A2S CTRLプロセス904は、要求信号(Rv)を高める。Reもハイである場合、CTRL904は、「go」データパス信号をDTUアレイに対してアサートし、データパス転送ユニットが非同期データトークンに肯定応答するべきであり、同期Rdビットに対して値をラッチするべきであることを示す。この時までに、非同期トークンは、バッファ912を通じて伝搬され、DTU908のアレイによる消費に対する準備が整うことになる。
一方、A2S CTRLプロセス904は、トークンを転送しない場合、即ち、Rvがハイであり、Reがローであった場合、Acに肯定応答せず、「go」をアサートしない。その後、Reがハイとなる(受領者がR上の古い同期値を受け入れたことを示す)後続のいずれかのクロックサイクルにおいて、上で説明したように非同期トークンを転送する。
様々な実施形態によれば、このA2Sコンバータ802の動作説明は、いくつかのタイミングの仮定に依存している。
1.フルスループット転送(即ち、いずれの側もストールしていない時、クロック期間毎に一回)を維持するためには、各非同期パイプラインユニットは、入力及び出力ハンドシェイクを一クロック期間に基づいて完了できる必要がある。例えば、単一ステージのPCは、このユニットのパイプライン処理が必要となる十分に短い時間内に、32ビットデータパスを完了することはできない。
なお、特に、入力Lパス上の二つのブランチは、パイプラインがピーク動的容量(安定状態の条件)及びピーク静的容量(同期側のストール後)の両方である時、この要件を満たす必要がある。後者の条件は充足がより困難であるが、ストールさせるいくつかのローのサイクル後に、Reがハイになったケースにコンバータが迅速に反応することになる場合には、必ず満たす必要がある。
また、A2S非同期回路内でこの条件が満たされると、A2Sコンバータへの供給を行う非同期回路に更なるタイミングの仮定を強制する必要はなくなる。A2Sの外部において、ハンドシェイクは、予測不可能な形で任意の長時間に渡ってストールとなる可能性があり、A2Sコンバータは、常に正確さを維持し、可能な場合は常にピークスループットでトークンを変換する。
2.A2Sは、CLKの立ち上がりエッジでのAc状態をサンプリングできる必要があり、転送することを判断した場合には、「go」信号を全てのA2S_DTU素子にアサートする必要があり、その後、A2S_DTU素子は、Lデータ値をRdビットに対してラッチする必要があり、全ては単一のクロックサイクル内で、何らかの最高出力時間を決して超過しない。クロックと相対的なAcのサンプリングでは、決定に到達するまでに、(メタスタビリティの解決のため)基本的に非決定論的な期間が必要となることを考えると、このタイミングの仮定は、考えられる最悪のアービトレーション時間に基づいて検証されるべきである。サンプリングが何らかのクリティカルな量(この設計においてはクロックサイクルの約半分)よりも長い時間を要した場合、コンバータは、最大出力時間に違反するリスクを冒す(或いは、更に正確には、A2S CTRLアービトレーションロジック外部でメタステーブル状態が伝搬する)。この障害条件は破滅的なものとして扱う必要があり、こうした障害の確率を特徴付ける必要がある。ここから、入力/出力停止条件に関するいくつかの仮定を与え、MTBF(平均故障間隔)を決定することができる。
3.A2Sコンバータは、CLKの立ち上がりエッジに続いて、あまりにも早く同期出力(Rv,Rd)を変化させてはいけない。これは、標準同期タイミング(「保持時間」)の制約である。本明細書に提示する設計は、〜CLKを全ての出力変更の条件とすることにより、これを満足させ、即ち、出力同期回路の保持時間がTclk/2未満である限り、障害の可能性は存在しない。この設計では、およそTclk/2という最悪のケースのメタスタビリティ解消時間を想定しているため、(クロックサイクル以内での計算用に出力同期回路に対して更に時間を与えるために)この最短出力時間を更に積極的に最適化する理由は存在しない。即ち、可能な最短の最大出力時間も、Tclk/2より大きくなる。
S2Aコンバータ804において、転送するトークンの到着は、同期側でのLvのアサートによって示される。S2A CTRLプロセス906は、CLKの立ち上がりエッジでの1of1 Acトークンの状態をサンプリングすることで、転送を許可するかどうかを判断する。Acでのトークンの存在は、データパス出力バッファ914内の追加トークン用のスペースを示す。この場合(CLKの立ち上がりエッジにおいてAcdが設定された時)、S2A CTRL906は、Le許可線をハイに設定し、Acトークンに肯定応答する。Le及びLvの両方がハイになる場合、同期入力値を非同期キャプチャバッファに転送するために、DTU910のアレイに対する「go」信号がアサートされる。
出力非同期回路がS2Aバッファ914に取り込まれた変換済みトークンを消費する際には、パイプライン完了(PC)902にコピーが送信され、新しいAcトークンとなる。これにより、Acトークンの合計数は、システム内で保全され、S2Aコンバータ804の固定トークン容量を表す。何らかの時点で出力非同期回路がストールした場合(バッファのドレインの停止)、バッファ914は一杯になり、新しいAcトークンは生成されない。A2S CTRLプロセス906は、その後、許可(Le)ラインを低下させ、出力ロジックがRから読み込みを行い、Acトークンを生成するまで、トークンの変換を停止する。リセット条件、正常動作、及び非同期側のストール条件の絵による表現は、それぞれ図12A乃至Cに例示されている。
S2Aコンバータ804は、A2Sコンバータ802を参照して上で説明したものと同じ、以下のタイミング要件の全般的な三つのカテゴリを満足させる必要がある。
1.S2Aコンバータ内の全ての非同期パイプラインセルは、あらゆる動作条件下において、クロック期間のハンドシェイクサイクルを持続する必要がある。
実際には、非同期出力バッファに関する要件は、A2Sコンバータの入力バッファよりも、S2Aコンバータにおいて更にクリティカルとなる。A2Sコンバータでは、入力非同期バッファリングは、フル(以前はストール)から動的条件へ遷移する時、多少「スタッタ」を起こし、最悪の場合は、不必要なセンドストール「非動作」サイクルが導入される。しかしながら、S2Aコンバータでは、完全なレシーバストール状態のため、出力バッファが1クロックサイクルで単一のトークンを完全にドレインできない場合、S2A DTUアレイは、S2A CTRLプロセスが可能であると判断した時に、許可トークンを転送できない場合がある。その結果、データトークンの喪失または不正なデータトークンが生じることになる。
2.S2Aコンバータは、最悪のケースのメタスタビリティ解消時間であっても、入力同期回路のセットアップ時間を満足させるために、何らかの妥当な最大出力時間内に、同期出力信号(Le)を設定できる必要がある。この要件は、S2Aデータパスに対する内部のgo同期制御ブロードキャストにも強制され、データパスユニットが次のクロックサイクルでトークンを転送する(または転送しない)ことを可能にするために、goの遷移は、クロックサイクルにおいて遅すぎてはいけない。
3.全ての同期出力(Le、go)の遷移は、クロックサイクルにおいて早すぎてはいけない。A2Sコンバータと同様に、この要件は、〜CLKを変更の条件とすることで満たされる。
コンバータ設計の特定の実施形態の実施の詳細を下に記載する。回路の詳細の一部は、明確にするために省略している。これらには、全ての動的ロジックの出力ノード上のスタティサイザと、任意の実際的な実施で必要となる余分なリセット回路とが含まれる。こうした追加物は、両方とも、簡単に実施される。下で説明するユニットの仕様は、CSPで提供される。
パイプライン完了ユニット902は、入力チャネル毎に妥当性検出素子を含む。こうした回路の例は、1of4入力を有する図13のPCS0 1300である。PCS0 1300には、深さlog(N)のセルのツリーが続き、例は図14のPCS1 1400である。PCS0 1300は、次の単純なCSP仕様を実施する。
*[L?x;R!x,V!]
特定の実施形態によれば、「R!x」出力動作は、「スラックゼロ」方式で実行され、即ち、L及びRデータレールが共に線で結ばれる。Lデータレールの一本がハイとなり、1of1トークンがVで送信される。
四入力PCS1ユニット1400は、次のCSP仕様を実施する。
*[L[0]?,L[1]?,L[2]?,L[3]?;R!]
即ち、四つのPCS0ユニットからの1of1入力を読み込み、その後、単一の1of1トークンを出力する。N=4である1of4入力チャネル(即ち、8ビット相当のデータ)による例は、図15に表示されている。PCS1ユニットは、任意の大きさのデータパスを完成させるために、ツリー構造に組み合わせることができる。大きな完了ツリーは、類似する方法で構築できる。
例示的なCTRLプロセスは、図16に表示されている。A2S及びS2A制御プロセスのいずれかのCSP仕様は次の通りである。
o:=so:so_init_state
*[[#Ac&CLK−>a:=1|〜#Ac&CLK−>a:=0],
[CLK−>si:Si];
[〜a&(si|〜so)−>xso:=0[]else xso:=1],
[a&(si|〜so)−>Ac? []else−>skip];
so:=xso;
[〜CLK−>So:=so]]

*[go:=Si&So
なお、A2S CTRLプロセスでは「so_init_state」が0であり、S2A CTRLプロセスでは1となる。
「So」出力は、A2Sコンバータにおいて、Rv妥当性信号にマッピングする。S2Aコンバータにおいては、Leイネーブル信号にマッピングする。同様に、A2Sコンバータにおいて、「Si」はRe入力であり、S2Aコンバータにおいては、Lvである。Soのアサートは、制御プロセスにおけるトークンの存在を示すとみなすことができる。A2Sコンバータについては、コンバータが同期回路によって消費されるデータトークンをアサートしたことを示し、S2Aコンバータについては、コンバータがデータトークンを消費する準備ができたことを示す。
各立ち上がりクロックエッジにおいて、制御プロセスは、入力非同期チャネルAcを調査し、チャネルが読み込みを受ける準備ができている場合、内部変数「a」をハイに設定する。このプロセスは、更に、同期入力(Si)をラッチする。Acが有効データである場合(a)、或いは、同期側で準備ができていない場合(Siがロー)、xso(Soになるもの)はハイに設定される。Acが有効データを有していない場合(〜a)、同期側は準備ができており、その後、xsoがローにセットされる。他の全ての場合において、xso(So)は、以前の状態のままとなる。
cが有効データを有しており、Siがハイであるか或いはSoがローである場合、Acトークンが消費される。これが起こり得るのは、Soがアサートされた時(CTRLプロセスにおけるトークンの所有権を示す)及びSiがハイであった時(問題のクロックサイクルでのそのトークンの消費を示す)のいずれか、或いはSoがアサートされなかった時(同期側の状態に関係なくCTRLプロセスがAcトークンを受け入れられることを示す)である。このロジックの場合には、プロセスは、Ac e信号を低下させ、Acdがデアサートされるのを待ち、その後、Ac eを再びアサートする。下に提示する回路の実施においては、クロックサイクル内のAc eに応答して、Ac dがローになることが重要であり、CLKの次の立ち上がりエッジでハイを維持した場合、制御プロセスは、トークンを複製することになる(前節で概略を述べたパイプライン完了設計は、この要件を満たす)。
クロックの立ち下がりエッジでは、「so」内部状態変数が、同期ハンドシェイク出力(So)に書き込まれる。一度ハイになると、Soは、Siがハイになるまで、ハイの状態を維持する。
このプロセスと並行して、「go」信号が、SiとSoとの結合として、組み合わせ的に生成される。So及びSiが両方ともハイである任意の立ち上がりクロックエッジにおいて、データパスは、アサートされた「go」を確認し、データトークンは一方の領域から他方へ渡される。
図16の実施形態に示すように、制御プロセスの回路の実施は、五つのコンポーネントを含み、イネーブル信号の順序付けに責任を有する内部完了ロジック1602と、アービトレーションロジック1604と、Si入力ラッチング回路1606と、So出力制御及び状態ロジック1608と、Ac肯定応答ロジック1610とである。
制御プロセスの設計の中心は、内部イネーブル信号(「en」)であり、内部動的ロジックのセット(enハイ)及びリセット(enロー)段階をトリガする。「en」は、厳密にはCLKと同期しない。クロックサイクル毎に一度サイクルするが、「en」は、CLKではなく、内部信号の妥当性によって順序付けされる。内部完了ロジック1700の特定の回路の実施は、図17に表示されている。
制御プロセスのためのアービトレーションロジック回路1800の特定の実施は、図18に提示されている。この回路に表示されるアービタ1802は、例えば、ザイツアービタまたはQFR等、任意の標準的な相互排除素子にすることができる。「a」変数は、回路内の別の場所でのドミノプルダウンロジックステージの使用を可能にする、デュアルレール信号ペアとして実施される。こうすることで、コンバータ全体で使用される同期QDI(準遅延非感受性)設計様式が促進される。
ザイツアービタ及びQFR回路の例示的な実施については、それぞれ、C.L.サイズ「システムタイミング」第七章、Reading, Massachusetts, Addison-Wesley, 1980と、C.E.モルナ、T.J.チェニ、及びT.P.ファング「Qモジュール:内部クロック遅延非感受性モジュール」IEEE Trans. Computers, vol. 37, no.9, pp. 1005-1018, Sept. 1988を参照されたい。これらの参考文献のそれぞれの開示は、あらゆる目的で参照により本明細書に組み込むものとする。
このロジックのkc(オーバーライン)信号は、Acd入力がアービトレーションを達成(Ag 1をアサート)した後、アービトレーションロジックのクロック許可信号(Ag 0)を無効化するために使用される。これは、CLK及びenが依然としてハイである間に、Ac eが負に遷移した場合に、回路の残りの部分でAg 0に関する不具合が生じるのを防ぐために行う必要がある。
kc(オーバーライン)関数をサイズアービタの変数に組み入れた、更に特化したアービトレーション回路1900は、図19に提示されている。この設計は、aを生成するための余分な動的ロジックステージの必要性を排除する。しかしながら、CTRLユニットロジックステージのどこかにおいて、より一般的な設計により「a1」が使用される可能性のある全ての場所で、「A1及びCLK」の連続した組み合わせを代わりに含める必要がある(即ち、余分なトランジスタを必要とする)。
図18及び19の回路は、厳密にCLKが負に遷移する際にアービタ出力が消滅する場合のメタスタビリティの危険性を制限する。Ag 1が勝った場合、CLKがローに遷移する際にハイに遷移するAg 1は、a1(オーバーライン)(或いは、Ag 1に依存する全てのロジックステージ)において不安定な電圧を発生させることができる。Ag 0が勝った場合、CLKがローに遷移する際にハイに遷移するAg 0は、a0(オーバーライン)(或いは、更に特化した設計の他のロジックステージ)をAg 0が完全に引き下げる前に、Ag 0をローに戻すことができる。いずれの場合においても、メタステーブル条件は、アービタを越えて伝搬する。なお、CLKがローに遷移した後の何らかの時点でアービタが消滅する場合、メタステーブル条件は伝搬せず、CLKがローに遷移した後の何らかの時点でAg 1が勝った場合、転送は、単純に、次の立ち上がりクロックエッジまで延期され、CLKがローに遷移するまでにAg 0が勝たなかった場合、CLK入力の撤回要求によりAg 1が勝つ。
したがって、メタスタビリティによる障害モードは、CLKがローに遷移するのに要する時間に依存する。CLKの負の遷移で高速なスルーレートを確保することは、こうした基本的な危険性から回路を保護するのに役立つことになる。
特定の実施形態によれば、Si入力信号は、図20に表示するエッジトリガ自己無効化シングルレール−デュアルレール回路2000を使用して取り込まれる。en信号は、Si {0,1}入力レールをセット及びリセットし、制御プロセス全体での非同期自己順序付けロジックの使用を促進する。更に、設計は、ロジックの僅かなケースにおいて(クロック期間がAcサイクル時間より大幅に遅い時)、プロセスが繰り返しサイクルするのを防ぐために、このラッチのCLKの立ち上がりエッジとの同期関係に依存する。こうした保護は、enがローに遷移し、Siがリセットした後、次のCLKの立ち上がりエッジまでSi 0及びSi 1レールがローの状態を維持するという回路の特性に由来する。
i v信号は、Si {0,1}レールの妥当性をエンコードする。Si v信号は、enの安全な遅延非感受性の順序付けを可能にするために、内部完了ロジックにおいて使用される。
0同期出力制御回路2100の特定の実施は、図21に表示されている。制御プロセスは以前のクロックサイクルからS0の値を知っている必要があるため、非同期状態素子(即ち、STATEBIT回路2102)が使用される。STATEBIT回路2102の特定の実施は、図22に表示されている。STATEBIT回路は、ユニットの内部サイクルに渡って、So 0及びSo 1信号の自動順序付けを提供する。代替設計では、同期S0信号から状態を再サンプリングするために、図20の追加的な入力ラッチを使用してよいが、こうした設計では、enの順序付けにおけるSoタームを完了するために追加的な回路が必要になる。
図21の相互結合型NAND及び出力ラッチは、制御プロセスのen立ち上がりエッジ段階中にローでのみパルスするSo(オーバーライン)タームの安全な同期を提供する。相互結合NANDは、パルスを持続的な値に変換し、出力ラッチは、CLKがハイである間にS0出力が遷移するのを制限する。一度にSo 0(オーバーライン)またはSo 1(オーバーライン)の一方のみがローに遷移可能であり、CLKがハイである間のみローに遷移できるため、S0は、完全に同期した形でセットされる。
i入力ラッチのSi v信号と同様に、So v信号は、Si状態ロジックの妥当性をエンコードする。ここで、xso及びxso(オーバーライン)タームを信号のプルアップロジックに含めることで、So vのアサートは、相互結合NANDが適切なSo {0,1}(オーバーライン)値の取り込みに成功したことを追加的に暗示する。
c肯定応答ロジック回路2300の特定の実施は、図23に表示されている。この回路は、相対的に単純な動的ロジックステージであり、セルのCSPの「a&(si|〜so)−>Ac?」式をエンコードする。「a」がセットされ(「Ag 1&CLK」を意味する)、Si 1またはSo 0がアサートされた時、ack1(オーバーライン)レールはローに引き下げられ、これによりAc eはローになり、Ac入力トークンに肯定応答する。
kc(オーバーライン)タームは、この時までにアービタのクロック選択を無効にした状態を確保するために(Ac eの立ち下がりエッジを受けてAc dがローになった時のAg 0の不具合の可能性を回避するために)、Ac eの順序付けに含まれる。
o 1タームは、Si入力ラッチの節において上で説明した反復サイクリングのシナリオを防ぐために、ack1(オーバーライン)プルダウンに重複して含まれる
ackvは、Si v及びSo v信号と同様に、このロジックのブロックの完了状態をエンコードする。ack0(オーバーライン)が選択される時、ackvは、プルアップにCLKを含めることで、CLKの立ち下がりエッジまで遅延され、ack1(オーバーライン)が選択される時、ackvは、Ac eの負の遷移を追加的に完了させる。ackvは、Ac dが撤回され(ack1(オーバーライン)プルアップにおけるAg 1タームによって完了される)、Ac eがアサート状態に戻るまで、ローに戻らない。
特定の実施形態によれば、A2S及びS2Aデータパス転送ユニット(図9のDTU908及び910等)は、クロック期間の様々な段階での同期「go」入力の値に基づいてトークンを転送する単一チャネルコンバータ素子である。こうした回路内でメタスタビリティの危険性を回避するために、同期ハンドシェイク遷移において、タイミングの仮定を形成する必要がある。例えば、A2S DTUは、アサートされた「go」を確認した時には、更に、そのクロックサイクル中にL入力のトークンを受領する必要がある。同様に、S2A DTUがアサートされた「go」を受領した時、そのReは、ハイである必要があり、Rデータレールがアサートされた後でローに遷移する準備ができている必要がある。上記のように、A2S及びS2Aコンバータの高レベルアーキテクチャは、こうした仮定が満たされる状態を確保する。
特定の実施形態によれば、A2Sデータパス転送ユニットは、次のCSP仕様を有する。
*[[CLK];[go−>L?[]else−>skip];
*[〜CLK−>[go−>R:=#L?[]else−>skip]
]]
このプロセスは、「go」がアサートされた全てのサイクルで、非同期L入力を同期R出力に転送する。このユニットは、CLKの立ち下がりエッジに続いて、CLKの次の立ち上がりエッジよりも十分に前である何らかの時点に、goがハイに遷移するという仮定を行い、受領者の同期ロジックのセットアップ時間の制約を満足させる。goがアサートされたサイクルでCLKがハイに遷移する時、Lは肯定通知を受ける。
単一の1of2入力に対する例示的なA2Sデータ転送ユニット2400の回路の実施は、図24に表示されている。Rのデータビットラッチは、CLKがローで、goがハイである時、トランスペアレントになる。goがローである時、Rは、Lが到着した時に予測不可能な形で出力が遷移するのを防ぐため、ローに維持される。
単一のクロック期間に回路がLトークンに繰り返し肯定応答するのを防ぐために、Leの負の遷移は、CLKの立ち上がりエッジを条件とし、Leの正の遷移は、CLKの立ち下がりエッジを条件とする。
このユニットでのメタスタビリティの危険性を回避するために、Leの立ち下がりエッジのすぐ後にLvがローに遷移するという仮定が行われる。即ち、Lは、有効状態において決してストールしてはいけない。これが満たされるのは、A2S入力バッファユニットが、上で参照により本明細書に組み込んだA.J.マーティン著「非同期VLSI回路の合成」において説明されるようなPCHBまたはPCFBテンプレートに従う場合に満たされる。
特定の実施形態によれば、S2Aデータパス転送ユニットのCSP仕様は次の通りである。
*[[CLK];[go−>R!L[]else−>skip];[〜CLK]]
R出力チャネルとのハンドシェイクを除いて、このユニットは、完全に同期した性質であり、具体的には、各クロックサイクにおいて、CLKの立ち上がりエッジで、入力をサンプリングし、何らかの出力条件を評価する。この場合、ユニットは、S2A制御プロセスからの「go」制御信号がセットされているかをチェックし、セットされている場合、四相ハンドシェイクプロトコルに従った1ofNレールエンコーディングにおいて、Lビット(またはビット群)をR出力チャネルに書き込む。図25は、S2A DTU2500の例示的な1ビット回路の実施を示している。この設計は、1of4レール出力データエンコーディングにより、2ビット入力をサポートするように容易に拡張できる。
特定の実施形態によれば、A2Sコンバータは、Lがパイプライン完了(PC)回路にコピーされるポイントに続いて、データパス上で、バッファリングの少なくとも単一のステージを必要とする。この必要性は、主に、性能の考慮によるものであり、即ち、PCがパイプラインの形で動作できるように、データパスのブランチにおいてバックアップするトークンによってボトルネックが生じないようにする必要がある。本質的に、データパスは、制御(及び完了)パスと「スラック一致」となる。
DTUアレイの入力で非同期データをバッファする別の理由は、DTU素子への入力が正しいハンドシェイク特性を有する状態を確保するためである。即ち、上記のA2S DTUは、Leの立ち下がりエッジ後に即座にリセットされる(中立状態に戻る)入力に依存する。これは、DTUアレイの直前にPCHBまたはPCFBバッファを有することで保証される。
特定の実施形態によれば、S2Aコンバータは、追加のバッファリングに対して更に厳密な要件を強制する。データパス出力及び出力PCの間と、PCのAc完了チャネル出力上とに、いくつかのバッファステージが必要となる。Acチャネルバッファは、「満杯」で、即ち、データパスにおいて利用可能なスタックの量に対応するトークン数を備えて初期化する(S2A制御プロセスがリセットから初期化する際の1トークンをマイナスする)。
S2Aデータパス−完了ループにおいては、全てのクロックサイクルでの転送をサポートするために、少なくとも二つのトークンが存在する必要がある。一つのトークンは、転送中にS2A制御プロセスとDTU素子とによって消費される。ループの非同期部分は非ゼロのレイテンシを有することから、転送をパイプラインするために、そのブランチには常に第二のトークンが存在する必要がある。
特定の実施形態によれば、データパス及び完了ブランチの両方は、ループ内の二つのトークンを吸収するのに十分なバッファリングを有する。データパスバッファ容量が不十分である場合、S2A DTU出力ハンドシェイクは、S2AのR出力がストールした時にストールし、データパスにおけるメタスタビリティの危険性またはトークンの喪失を発生させる可能性がある。完了パスバッファ容量が不十分である場合、データトークンは、同期側がストールした時に出力バッファにおいてトラップされる。この場合、S2Aコンバータは、次のトークンがコンバータによって受領されるまで、Rトークンを出力せず、これには任意の長さの時間量を要する場合がある。
性能に関連する最後の要素は、S2Aコンバータのループトークン(したがって、バッファリング)の要件に影響する。PCを通じた順方向のレイテンシが大きすぎる時には、パイプラインをピーク容量に維持するために、追加のトークンがループ内に存在する必要がある。
代替実施形態によるA2S及びS2Aコンバータ2602及び2604の内部高レベル編成は、図26に表示されている。各インタフェースは、四つの高レベルコンポーネントを含む。
1.パイプライン完了ステージ(PCS)2606。2606はPCS0回路1300において説明したデータパスコピー回路を含むように描かれているが、このコンポーネントは、以前に説明したPCユニットと同一である。
2.制御プロセス(CTP)2608及び2610。CTPは、(1)非同期及び同期側の両方で転送の用意ができた時に、データパスに「転送」信号を発行することと、(2)非同期及び同期ハンドシェイク信号(Ad,Ae)及び(Si,So)を順序付けることと、(3)必要に応じてCLKに同期することとに責任を有する。CTP_A2S2608及びCTP_S2A2610は、多くの回路素子を共有し、同じポートインタフェースを有するが、同一ではない。各設計の詳細については、共通の機能に注目して、下に提示する。
3.データパス転送ユニット(DTU)2612及び2614。一般に、DTUユニットは、CTPからの「転送」(go)トークンが受領された際に、同期/非同期境界を越えてデータトークンを転送することに責任を有する。DTU_A2Sの場合、ユニットは、同期クロッキング規則で許容される時点(詳しくは、CLKの立ち下がりエッジ後、次の立ち上がりエッジ前の何らかの時点)において、同期側に対して、非同期1ofNデータトークンをラッチする。DTU_S2Aの場合、ユニットは、CLKの立ち上がりエッジでの同期入力をサンプリングし、非同期チャネルで準備が整った(イネーブルがアサートされた)後、この値を非同期ワンホットトークンに変換する。
パイプラインデータパスブロードキャスト(PDB)。PDB3000の例示的な実施は、図27に表示されている。このユニットは、PCSの相補的な機能を実施する。即ち、単一の「転送データ」(god)信号をデータパス内の各DTUに分配する。この場合、Nの逆方向に進むイネーブル信号が、深さlog(N)のC素子ツリーに供給され、最終的なgoe信号が生成される。完了をパイプライン化することで、ある程度の順方向レイテンシがgodブロードキャストに追加されるが、ハンドシェイクサイクル時間を低く維持することが可能となる。
一実施形態によれば、S2Aコンバータ2604は、追加として、余分な非同期バッファリングステージ2618を、データパス出力及び出力PCS間と、PCSの「A」チャネル出力上(即ち、バッファ2620)とにおいて必要とする。これらのバッファリングステージは、読み込みの環境が整っていない場合、「A」トークンによって開始された任意の転送をデータパスにおいて吸収できる状態を保証する。
特定の実施形態によるコンバータ2602及び2604の例示的な実施の詳細を下に提示する。設計の一部の要素は、明確にするために省略している。これらには、全ての動的ロジックの出力ノード上のスタティサイザと、任意の実際的な実施で必要となる余分なリセット回路とが含まれる。こうした追加物は、両方とも、簡単に実施される。その他の回路の詳細(特に制御プロセスのもの)は、多数の種類のソリューションが存在し、全てが本明細書で説明する設計様式のかなり単純な応用であるため、取り上げていない。
A2S制御プロセス2608の例示的なCSP仕様は、次の通りである。
*[[#A&CLK−>a:=1|〜#A&CLK−>a:=0],
[CLK−>si:=s.i];
[a|〜a&〜si&x−>x’:=1[]else−>x’:=0],
[a&(si|〜x)−>go!,A?[]else−>skip];
x:=x’,
[〜CLK−>S.o:=x’]]
各立ち上がりエッジにおいて、プロセスは、入力非同期チャネルAを調査し、チャネルが読み込みを受ける準備ができている場合、内部変数「a」をハイに設定する。このプロセスは、更に、同期入力(Si、同期側で、そのクロックサイクにおいてデータを受領する準備ができているかを示す)をラッチする。Aが有効データである場合、或いは、同期側でデータを受領する準備ができておらず、同期データパス出力が未読値を保持する場合(「x」がハイ)、「x」はハイに設定される。「x」変数は、次のクロックサイクルでの同期データパス出力チャネル(「x」)の状態を設定する。非同期チャネルAが有効データを含む場合(データパスに対する入力データトークンの存在を示す)及び同期側でデータを受領する準備ができているか或いは同期データパス出力チャネルが空である場合(「x」がロー)、Aが読み込まれ、「転送」トークン(god)が、データパスに送信される。
クロックの立ち下がりエッジでは、「x」変数が、同期ハンドシェイク出力(So)に書き込まれる。この信号は、同期ロジックに対するデータ出力をエンコードし、ハイである場合は、新しいデータ値が線に存在している。一度ハイになると、Soは、Siがハイになるまで、ハイの状態を維持する。So及びSiの両方がハイである任意の立ち上がりクロックエッジにおいて、データトークンは、A2Sから同期側のロジックに移動する。
特定の実施形態によれば、S2A制御プロセス2610は、同期データパスチャネルの状態を格納する必要がないため、多少単純になる。
*[[#A&CLK−>a:=1|〜#A&CLK−>a:=0],
[CLK−>si:=s.i];
[a&si−>A?[]else−>skip],
[x&si−>go![]else−>skip],
x:=a,
[〜CLK−>S.o:=a]]
この場合、Siは、データトークンを転送するための同期要求であり、Soは、転送を許可し、同期側に対して、出力(R)非同期チャネルが空であることを示す。
こうした制御プロセスの設計において暗黙のものは、内部イネーブル信号(「en」)であり、内部動的ロジックのセット(enハイ)及びリセット(enロー)段階をトリガする。「en」は、厳密にはCLKと同期しない。クロックサイクル毎に一度サイクルするが(最大アービタ消滅時間によりサイクルが失われる場合を除く)、「en」は、CLKではなく、内部信号の妥当性によって順序付けされる(図28に例示)。
上記の二種類の制御プロセス間でのいくつかの構造的類似性は、そのCSP記述から明白である。各ループの第一のライン、アービトレート型選択から、両方で同じアービトレーションロジックが使用されていることは明らかである。こうしたアービトレーションロジック3200の特定の実施は、図29に表示されている。様々な実施形態によれば、この回路において表示されるアービタ3202は、例えば、ザイツアービタまたはQFR等、任意の標準的な相互排除素子にすることができる。「a」変数は、回路内の別の場所でのドミノプルダウンロジックステージの使用を可能にする、デュアルレール信号ペアとして実施される。こうすることで、コンバータ全体で使用される同期準遅延非感受性設計様式が促進される。
図29の回路は、厳密にCLKがローになる際にアービタ出力が消滅する場合のメタスタビリティの危険性を制限する。Ag 1が勝った場合、CLKがローになる際のAg 1の立ち上がりエッジにより、a1(オーバーライン)で中間状態を発生させることができる。Ag 0が勝った場合、CLKがローになる際のAg 0の立ち上がりエッジは、a0(オーバーライン)を完全に引き下げる前に、Ag 0をローに戻すことができる。いずれの場合においても、メタステーブル条件は、アービタを越えて伝搬する。なお、CLKがローになった後の何らかの時点でアービタが消滅する場合、メタステーブル条件は伝搬せず、CLKの立ち下がりエッジ何らかの時点でAg 1が勝った場合、転送は、単純に、次の立ち上がりクロックエッジまで延期され、CLKの立ち下がりエッジまでにAg 0が勝たなかった場合は、Ag 1が勝つ。
特定の実施形態によれば、両方の制御プロセスは、更に、内部状態変数「x」を共有する。A2S回路は、入力の論理式である中間変数「x’」に基づいて、この状態を設定し、S2A回路は、アービタココンポーネント出力z「a(オーバーライン)」から直接的に設定する(この場合、x’=a(オーバーライン))。
特定の実施形態によれば、両方の制御プロセスは、同じ状態変数を使用して、同期出力信号S0を設定する。図30は、例示的な結合状態ビット−同期ラッチ回路を例示している。図面に表示される「xv」信号は、その後の完了(即ち、「en」制御)に必要な「x」変数(及び続くRSラッチ)の妥当性をエンコードする。この動的プルダウンステージ(x(オーバーライン))の組み合わせは、その後にRSフリップフロップが続き、更にクロックラッチが続き、
関連するxv(オーバーライン)妥当性回路が追加され、出力クロックラッチの安定性を確保するためにx(オーバーライン)のタイミングが十分に制限される時に、都合のよい非同期−同期回路の断片を提供する。具体的には、x(オーバーライン)は、CLKの立ち下がりエッジに近すぎるため、有効になれない。この条件は、CTPにおいて満たされる。
特定の実施形態による設計の最後の共有コンポーネントは、制御プロセスの同期入力Siの取り扱いである。信号に関する保持時間要件最小化するために、図31に表示するエッジトリガ自己無効化シングルレール−デュアルレール(S2DE)ラッチ3400を使用してよい。S2DEラッチは、Si {0,1}においてメタステーブル条件を発生させる場合がある、enの立ち上がりエッジがCLKの立ち下がりエッジと決して一致しない状態を確保できる時、十分に安全な同期−非同期変換を提供する。この要件は、enの立ち上がりエッジにおいて、次のタイミング制約を定める:「a」が設定され得るクロックサイクルに入る最も遅い時間を仮定すると(プロセスにおける他の全ての順序づけをトリガするイベント)、enの立ち上がりエッジは、その後のサイクルでのCLKの負の遷移の前に発生する必要がある。転送サイクルのCLKの立ち下がりエッジ前に、enがローになり、その後ハイになるケースも、同じく禁止する必要があるが、これは、CLKの立ち下がりエッジを、enの立ち下がりエッジの条件とすることで、容易に確保できる。最も遅い「a」が設定され得るのは、CLKの立ち下がりエッジであるため(最大のアービタ消滅の場合)、CTPは、enサイクルを完了するのに、最大1クロックサイクルを有する。
更に堅牢なラッチ設計(図32のラッチ3500等)は、ハンドシェイク及び追加アービタでの余分な遷移を犠牲にして、Si {0,1}での任意のメタスタビリティの可能性を排除するために使用できる。こうした余分な遷移は、中央制御プロセスとS2DEラッチ3400との間にバッファステージ3502(スラック1/2)を挿入して隠すことができる。
こうしたCTP_A2S 2608及びCTP_S2A2610の特定の実施の残りの詳細は、上で参照により本明細書に組み込んだA.J.マーティン著「非同期VLSI回路の合成」において説明される準遅延非感受性設計の一般的な製造規則合成手法に従った様々な実施形態による様々な方法において実施できる。この柔軟性は、A?及びgo!のハンドシェイクの拡張での様々な入れ替えの可能性と、様々な遷移完了戦略とから生じる。最後に、回路を簡略化及び/または高速化するために、内部のタイミングの競合を導入してもよい。
特定の実施形態によれば、A2Sデータパス転送ユニット2612は、次のCSP仕様を有する:
*[L?1,go?;[〜CLK];R:=1]
Lは、PCSからの非同期入力チャネルであり、「go」は、転送が発生するべきであることを示すCTPからのチャネルである。DTU_A2Sは、L及びgoチャネルからの読み込みを行い、CLKがローになるのを待ち(既にローであり得る)、その後、データ値を同期R出力へ出力する。PDBを通じたgodの順方向レイテンシが最小である限り、PCSが(上で説明した実施においてと同様に)正確にスラック一致であると仮定すると、CTP_A2Sの動作は、CLKの立ち下がりエッジを囲むある程度の限られた範囲内でL及びgoチャネルが両方とも有効になることを保証する。この範囲の上端は、DTU_A2Sの追加的なR:=1レイテンシとR出力信号のセットアップ時間との原因となるものであり、タウに重要な下限を強制する。
上のCSP仕様を実施する特定の回路構造は、図33に例示されている。x(オーバーライン)−Rラッチ及びxv(オーバーライン)回路は、CTP回路内のSoのために使用されるものと同一である。x(オーバーライン)に関するタイミング制約(CLKの立ち下がりエッジに近すぎる状態で有効にならない)は、ここで満たされる。
S2Aデータパス転送ユニット2614の特定の実施形態のCSP仕様は、次のようになる
*[[〜CLK];[CLK];x:=L]‖*[go?;R!x]
この実施は、二つの並列プロセスを含み、一方は、全ての立ち上がりクロックエッジで同期入力Lを取り込むもの(及びシングルレールデータ形式を1ofNレール形式に変換するもの)であり、他方は、「go」転送トークンが受領された後、非同期出力チャネル(R)に値を書き込むものである。Nが4である場合、第一のプロセスは、図34に示すS2Qサンプラ回路3700を使用して実施できる。S2Qサンプラ回路3700は、CLKの全ての立ち上がりエッジで二つの同期入力の値を取り込み、組み合わせた値を1of4チャネル、xに出力する。xは、選択されたデータレールをアサートする前に、CLKの立ち上がりエッジに続いて、即座に、全てローの状態を通じて遷移する。4以外のNの同様の回路は、入力組み合わせロジックを変更することで実施できる。
このDTU_S2Aの実施における第二のプロセスは、図35に示す回路3800である。回路3800は、不安定なx入力に対応するために修正されたWCHBステージである(上で参照により本明細書に組み込んだA.J.マーティン著「非同期VLSI回路の合成」を参照)。回路3800は、xを応答されていない入力として扱い、go及びxが有効になると、出力Rを書き込む。プルダウンロジックにR1 eを含めること(WCHBテンプレートからの逸脱)は、xの次の有効段階(即ち、CLKの次の立ち上がりエッジ後の何らかの時点)の前にRe及びR1 eがローに遷移しない場合に、ある程度の保護を提供し、そうではない場合には、多数のRレールのアサートが生じ得る。こうすることで、転送サイクルのCLKに対する硬直性の少ない同期が強制される。
CLKの立ち下がりエッジを囲むクロックサイクロの範囲内でR1 dのローからハイへの遷移が発生し、CLKの立ち上がりエッジを除外することを、設計が保証するため、xiレールは、Ri(オーバーライン)プルアップネットワークから除外できる(WCHBテンプレートからの別の逸脱)。CLKの立ち上がりエッジとR1 dの立ち上がりエッジとの間の最小時間が最大のxリセット時間より長い限り(設計のタイミングの仮定)、未応答のx入力は、Rを不安定にするという脅威を発生させない。
データパスに対する「go」チャネルブロードキャストのパイプライン化の特定の実施は、図27に例示されている。特定の実施形態によれば、BUF素子3002は、1of1チャネルPCHBバッファである。16ノードのブロードキャストツリーに関して、四回の遷移が、godブロードキャストの立ち上がりエッジに追加される。見返りとして、CTPのgodの正の遷移は、最低限の七回ではなく三回の遷移において肯定応答され、gocの立ち上がりエッジは、最低限の七回と比較して、単一の遷移において、godの立ち下がりエッジに続くことができる。したがって、パイプライン化は、そうでなければ設計のクリティカルサイクルとなる10回の遷移を節約する。
上で述べたように、様々な実施形態によれば、図26のS2Aコンバータ2604は、余分な非同期バッファリングステージ2618を、データパス出力及び出力PCS間と、PCSの「A」チャネル出力上(バッファ2620)とにおいて必要とする。こうした一実施形態において、「A」チャネルバッファは、「満杯」で、即ち、データパスにおいて利用可能なスタックの量に対応するトークン数を備えて初期化する必要がある。このスラックは、goe信号がストールする前に、即ち、godの立ち下がりエッジに続いてハイに遷移しないうちに、DTUと出力バッファとPCSとが保持できるデータトークンの数によって定められる。
更に特定的な実施形態によれば、データパスでの後続の転送がストールし得る時に、PCSが「A」トークンを決して発行しない状態を確保するために、スラックの少なくとも一ユニット(二つのハーフバッファステージ)が、DTUとPCSとの間に必要となる。具体的には、DTUのRe(環境から直接的に暗示される)がハイでストールし得るため、DTU出力チャネルの妥当性は、それ自体によって「A」トークンが生成されるべきではない。DTUのReがハイでストールする場合、PDBへのgoeは、ローでストールする。この場合、CTPのgod処理は、上のCTP_S2A仕様が想定しているように、クロックサイクル内で完了しない。
様々な実施形態によれば、外部ループの順方向レイテンシ(即ち、CLKの立ち上がりエッジからAdの立ち上がりエッジ)があまりにも大きくなる時(大きなワードサイズにより不可避)、スラックの追加ユニットを、DTUのRチャネル及びAチャネルに(別の初期化トークンと共に)追加できる。こうすることで、二つのクロックサイクルに渡る外部ループレイテンシが償却される。こうしたチャネルでの追加スラックの利点は、環境がフル(以前にストール)状態の最も外側にあるトークンを排出する時に被る逆方向の「ホール」伝搬レイテンシがクリティカルなサイクルとなる際に減少する。
様々な実施形態によれば、上記のA2S及びS2Aコンバータアーキテクチャは、バーストモード伝送を処理させることができる。本明細書では特定の実施を例示するためにプロトコルの特定のカテゴリの一つが使用されているが、本発明の様々な実施形態は、広範なバースト転送プロトコルをサポートすると理解される。以下の定義は、説明するバーストモードの実施を理解するのに役立つ。
バースト転送:要求/許可制御ハンドシェイク毎に二つ以上のデータトークン転送を可能にする変換(A2SまたはS2A)。例えば、上記の実施では、Si及びSoの両方がハイである状態のクロックサイクル毎に、一つのデータトークンが転送される。対照的に、バースト転送では、Si及びSoの両方がハイである状態のクロックサイクル毎に、二つ、四つ、または任意の数のデータトークンを転送し得る。特定の実施形態によれば、下でMAX_LENと呼ばれる定数として、最大バーストサイズが強制される。
メッセージ:データトークンのシーケンス。特定の実施形態によれば、各データトークンは、シーケンスの最後のトークンを除いて、全てのデータ段階でゼロである関連テールビットを有する。下で説明する特定の実施形態において、メッセージは、任意の長さにしてよく、コンバータは、メッセージをMAX_LENまでの長さのバーストに分割する。図36は、データトークンD0乃至D9を含むメッセージが三つのバーストに分割されるこのような実施を例示する役割を果たすタイミング図である。
パイプラインバースト転送:バースト転送の要求/許可制御が以前のバーストメッセージの転送中に発生可能であるバースト転送プロトコル。メッセージの通信前にレシーバが許可するメッセージ数は、本明細書においてセンダ−レシーバループにおける許可制御トークンの数と呼ばれる。様々な実施形態によれば、任意の数のこうしたトークンをサポートし得る。特定の実施は、MAX_GRANTと呼ばれる定数として、こうした未解決の許可済みバーストの何らかの有限な最大数を強制する。図37は、二つのタイミング図を含み、第一のものは、非パイプライン三ワードバースト転送の信号タイミングを例示し、第二のものは、パイプライン四ワードバースト転送の信号タイミングを例示する。
バースト転送の利点は、レシーバがデータトークンの持続した受け入れを約束できることから生じるものであるため、何らかの有限な量の利用可能バッファスペースを意味し、各メッセージの長さに対する制限が確立される(MAX_LEN)。様々な実施形態によれば、メッセージの長さは、(例えば、図37に示すように)固定してよく、代替として、メッセージがMAX_LENまでの長さの変数を有するのを認めることができる。
本発明により設計されたバーストモードコンバータの特定の実施形態は、可変長メッセージをサポートするために、メッセージテールビットを利用する。代替実施形態は、可変メッセージ長をエンコードする他のメカニズムを利用する(例えば、制御ハンドシェイク段階で送信されるまたはメッセージのヘッダワードとして帯域内に含まれるバーストカウント)。代替の実施では、メッセージサイズが固定される場合、こうしたメカニズムを排除する。
バースト転送をサポートするために、図26乃至35を参照して上で説明したA2S設計は、二つの追加セルを含む。その他の点では、全般的なアーキテクチャは、上で説明したものに類似する。図38は、こうしたバーストモードA2Sコンバータ(BURST_A2S)4100を示す高レベル図である。二つの新しいセルは、バースト完了ロジック(BURST_COMPLETE)4102と、バースト反復セル(BURST_REPEAT)4104とである。
一実施形態によれば、バースト完了ロジック4102は、次のCSP仕様を有した単純な非同期遅延非感受性ロジックユニットである。
BURST_COMPLETE=
i:=0;
*[Ac?,T?t;
[〜t−>i:=(i+1)%MAX_LEN
[]t−>i:=0];
[i=0−>Bc![]else−>skip
]]
このユニットは、データパスからのパイプライン完了トークン毎に入力テールトークンを読み込み、テールトークンが「1」である全ての場合に、或いは「1」のテールトークンを有していないMAX_LENトークンを受領した時に、1of1「バースト完了」トークンをBc出力チャネルに送信する。
様々な実施形態によれば、バースト完了ロジックの実施は、MAX_LENの値との関係において変化する。例えば、小さなMAX_LEN値(例えば、2乃至4)では、セルは、内部状態ビットを有する単一のパイプラインステージにおいて実施できる。大きな値では、セルは、「i」内部変数を増分し、「i」を比較及び再初期化するために、いくつかのステージに分解してよい。バースト完了ロジックの特定の回路の実施については、バーストモードA2Sコンバータの固定サイズメッセージのバリエーションに関して下で説明する。
バースト反復セルは、バーストの長さに対応するいくつかのクロックサイクルに渡って、データパスへの「go」信号パルスを延長する。様々な実施形態によれば、バースト反復セルは、次の仕様を有してよい。
BURST_REPEAT=
g:=0,bcnt:=0;
*[[CLK];xgo:=go,t:=T;
[xgo&〜t&(bcnt!=MAX_LEN−1)−>g:=g+1
[]〜xgo&g>0&(t|(bcnt=MAX_LEN−1))−>g:=g−1
[]else−>skip
];
[〜t&(xgo|g>0)−>bcnt:=(bcnt+1)%MAX_LEN
[]t−>bcnt:=0
[]else−>skip
];
[〜CLK];


*[bgo:=go|g>0]
特定の実施形態によれば、このセルは、標準的な同期設計手法を応用することで、単純な形で実施し得る。こうした実施形態によれば、セルの全ての入力及び出力は同期し、即ち、入力は、クロックの立ち上がりエッジにサンプリングされ、出力(状態変数を含む)は、入力の組み合わせ関数として表現できる(例えば、「g」及び「cnt」に関するものとして、或いは、「bgo」に関するものとしてではなく、登録される)。
一実施形態によれば、バースト反復セルは、二つのカウンタを実施し、一つは、制御プロセスによって許可された未解決バーストの数を追跡し(例えば、アクティブなバースト内で「g」がアサートされるたびに増分される「g」)、一つは、現在アクティブなバーストの長さを追跡する(例えば、「bcnt」)。この実施形態によれば、「g」カウンタは、パイプラインバースト許可をサポートするのに必要であり、「bcnt」カウンタは、MAX_LENより大きいメッセージの多数のバーストへの細分化をサポートするために必要である。様々な実施形態によれば、バースト反復セルは、こうした特徴の一方または両方を排除することで簡略化し得る。
バーストモードA2Sコンバータと、上で説明した基礎A2Sコンバータ(例えば、図9のA2Sコンバータ802)との別の違いは、LD及びLTチャネル上での内部バッファリングの量である。即ち、基礎A2Sコンバータの特定の実施では、正確さのために単一の入力バッファのみ(即ち、静的スラック1)が必要となり、但し、性能の最適化のために、様々な実施形態において更に多くのものを使用し得る(例えば、制御−データパスブランチとのスラック一致)。対照的に、本発明の特定の実施形態によれば、バーストモードA2Sコンバータでは、(例えば、MAX_LENワードの)単一のメッセージのバッファリングが、正確さのために必要となる。制御パスはメッセージ毎に一度のみ使用されるようになるため、制御パスとのスラックの一致は、あまり考慮されなくなる。
一実施形態によれば、メッセージバッファには二つの要件が課せられる。
1.どのくらい満たされているかに関係なく、クロックサイクルにつき一度、トークンを受領または供給できる必要がある。
2.バッファを通じた順方向レイテンシは、制御パス乃至DTUのレイテンシより少ない必要がある。
パイプラインバースト転送をサポートする代替実施形態では、追加メッセージに相当するバッファリングが追加される。一般に、事前にNバースト転送を要求することをサポートするためには、(N+1)*MAX_LENの量のバッファスペースが提供される。
なお、バッファスラックを増やす必要がある際、面積的な意味合いと、上のタイミング制約を満たすことの難しさとにより、PCHB/PCFB/WCHBの直線配列は、不適切な配列となり得る。そのため、こうした様々な実施形態では、このバッファリングのデュアルポートFIFOメモリの実施を利用してもよい。
特定の実施形態によれば、図38のバーストモードA2Sコンバータは、二つの非同期入力チャネルを有し、即ち、データパスLDチャネル(Nの1ofMチャネルの集合)と、LTテールビット1of2チャネルとを有する。LD上でバーストモードA2Sコンバータによって受領される各データトークンには、LT上のテールトークンが伴う。メッセージの最後のものを除く各データトークについて、LTトークンは「0」となる。最後のデータトークンでは、LTの値は「1」となる。テールビットは、更に、別のデータビットとして(図では「R.t」と表示)、バーストモードA2Sコンバータの同期出力インタフェースに追加される。LDデータワードは、バーストモードA2Sコンバータに入る際に、二つのユニット、即ち、メッセージバッファ4106とパイプライン完了(PC)ユニット4108とにコピーされる。メッセージバッファ4106は、データ転送ユニット(DTU)4110のアレイで転送する準備が整うまで、トークンを格納する。PCユニット4108は、LDトークンを消費し、単一の1of1Acトークンをバースト完了ロジック4102に出力する。
LDデータトークンに関連するLTテールトークンも、これら二つのユニットにコピーされ、一方のコピーはデータと共にバッファされ、他方はバースト完了ロジック4102へ送信される。
Ac及びLTトークンの受領時、バースト完了ロジック4102は、内部バーストカウンタを増分するか(LTが「0」であり、カウンタがMAX_LENに達していない場合)、或いはBc出力チャネル上の1of1トークンをA2S制御ユニット4112に送信する(LTが「1」であるか、またはカウンタがMAX_LENに達している場合)。
制御ユニット4112は、非バーストA2S設計において「Ac」トークンを扱うのと全く同じように「Bc」トークンを扱う。即ち、制御ユニット4112は、CLKと同期して「So」ハンドシェイク信号をアサートし、「Si」入力がアサートされるのを待つ。両方がアサートされると、制御ユニット4112は、出力「go」信号をデータパスに対して単一のクロックサイクルでアサートする。バーストモードA2Sコンバータ設計において、「go」のアサートは、非バーストA2S設計で許可されるシングルワードではなく、データのバースト全体(MAX_LENトークンまで)を許可することを意味する。
バースト反復セル4104は、制御ユニット4112からのバースト当たりの「go」信号とデータパスからのワード当たりの「bgo」制御との間で適切な転換を提供する。簡単に言えば、バースト反復セル4104は、バーストの長さに一致するサイクル数に渡って、単一サイクルの「go」のアサートを延長する。バーストが終了する時期を知るために、バースト反復セル4104は、出力テールビット(即ち、R.t)を見守り、メッセージがMAX_LENよりも長い場合(即ち、バーストを終了させ、「go」が再アサートされた時にメッセージを後続のバーストに渡って継続する必要がある場合)、内部カウンタを維持する。パイプラインバースト転送がサポートされる実施形態において、バースト反復セル4104は、更に、バーストが依然として進行している間に制御ユニット4112からのアサート済みの「go」を確認した時は常に、許可カウンタを増分する。
上で説明したバーストプロトコルを実施するためのA2S設計に対する修正は、対称的な形でS2Aコンバータに適用してよい。図39は、本発明の特定の実施形態により設計されたバーストモードS2Aコンバータ4200の高レベル図である。更に特定的な実施形態によれば、バースト完了ロジック4202及びバースト反復セル4202は、上で説明したように実施してよい。
バーストモードS2Aコンバータ4200は、データの追加ビットであり、その状態がL.d上のデータシーケンスをメッセージに分割する役割を果たすと考えられるL.tテールビットを追加した状態で、基礎S2Aコンバータ(例えば、図9のS2Aコンバータ804)と同じ同期インタフェースを有する。非同期出力インタフェースも、出力テールビット、RT(1of2チャネル)の追加を除き、変化しない。基礎S2Aにおけるデータ出力チャネル「R」は、バーストモードS2Aコンバータにおいて「RD」になる。
L.e及びL.vによって交渉される全てのバースト許可サイクルについて、MAX_LENまでのデータトークンが、バーストモードS2AコンバータのDTU4206のアレイによって転送される。各バーストの長さに対応した多数のクロックサイクルに渡る制御ユニット4208の「go」信号の延長は、バーストモードA2Sコンバータ4100を参照して上で説明したものと同様の形で、バースト反復セル4204によって処理される。L.tビットがMAX_LENサイクルに渡ってローのままである場合、バースト反復セル4204は、バーストを終了し、追加許可制御トークンが交渉されることを求める(実施がパイプライン許可をサポートする場合、並行して発生し得る)。
データバッファ4210においてバーストが収集される際、そのワードは「Ac」1of1トークンとして完成させ、「Ac」1of1トークンは、更に、バースト完了ロジック4202によって「Bc」トークンとして完成させる。「Bc」トークンは、制御ユニット4208に戻され、バーストに相当するバッファスペースがドレインされたことを示す。特定の実施形態によれば、バーストモードS2Aコンバータ設計は、データバッファが完全に空で、データバッファ4210及びバースト反復セル4202がサポートするのと同じ数のトークンにより「Bc」チャネルが初期化された状態で初期化する。1より大きい初期「Bc」トークンの数は、パイプライン許可トークン制御ユニット4208が発行する数に対応する。したがって、バースト反復セル4204の内部「g」カウンタは、この数までのカウントアップをサポートする必要がある。
全てのバーストメッセージが固定長のMAX_LENである特定の実施形態によれば、設計にテールビットを含める必要はない。こうした実施形態において、肯定長バーストモードA2Sコンバータは、常に転送毎にMAX_LENトークンを送信し、受領側の同期ロジックは、メッセージが終了する時期を知るために、Si及びSoの両方がアサートされたサイクルに続いて転送されたトークンの数をカウントする。
同様に、固定長バーストモードS2Aコンバータへの供給を行う同期ロジックは、Si及びSoの両方がアサートされたサイクルから開始される(或いは、制御段階がパイプライン化される時に以前の転送の終了に続く)MAX_LENサイクルに渡る有効データを常に提供する。非同期受領ロジックは、その後、メッセージが開始または終了する時期を知るために、受領したデータトークンをカウントする。
こうした更に単純なバーストコンバータ設計のブロック図は、図40及び41に提示されている。特定の実施形態によれば、固定バースト完了ロジック4302及び4402は、単純に、次のように実施し得るトークンカウンタである。
FIXED_BURST_COMPLETE=
i:=0;
*[Ac?;i:=(i+1)%MAX_LEN;
[i=0−>Bc!
[]else−>skip
]]
コンバータブロックの残りは、図38及び39を参照して上で説明したように動作する。
MAX_LENが2に等しい時の固定バースト完了ロジックの例示的な実施は、図42に提示されている(DECIMATE2_1of1)。MAX_LENが2の任意の累乗(2N)である時、固定バースト完了ロジックを実施するために、NのDECIMATE_2_1of1ユニットのカスケードを使用してよい。MAX_LENが2の累乗ではない時、或いは、カスケードしたDECIMATE2_1of1ユニットを通じた順方向レイテンシが許容できないほど高くなる時には、更に一般的なカウンタ設計を使用してよい。
固定長バーストモードA2S及びS2Aコンバータ設計は、単純に、「T」テールビット入力をロジックゼロに書き込むことで、上記のバースト反復セルを使用し得る。代替として、ユニットは、その実施からテールビットロジックを取り除くことで、この応用のために簡略化し得る。
特定の応用では、同期クロックの立ち下がり及び立ち上がりエッジの両方でデータトークンを転送すること、即ち、いわゆるダブルデータレート(DDR)の応用が望ましい。応用において、クロックの立ち上がりエッジで開始されるバースト毎に偶数のデータ転送が求められる限り、上記のバーストモードA2Sコンバータ及びバーストモードS2Aコンバータ(例えば、図38乃至41のもの)に必要な唯一の変更は、それぞれのデータパス転送ユニットに対するものである。
特定の実施形態によれば、DDRバージョンのA2Sデータパス転送ユニットは、次のように仕様を定めることができる。
A2S_DDR_DTU=
CLK:=0;
*[[CLK!=CLK0];
[go−>L?R[]else−>skip],
CLK0:=CLK

ユニットは、CLKでの遷移を待ち、「go」がアサートされた時、非同期入力「L」乃至同期出力「R」を読み込む。
同様の実施形態によれば、DDRバージョンのS2Aデータパス転送ユニットは、次の仕様を有する。
S2A_DDR_DTU=
CLK:=0;
*[[CLK!=CLK0];
[go−>R?L[]else−>skip],
CLK0:=CLK

ユニットは、CLKでの遷移を待ち、「go」がアサートされた時、同期入力「R」乃至非同期出力チャネル「R」を読み込む。
こうした変化させたDDR DTUの回路の実施は、図43及び44に提示されている。なお、こうしたデータパス転送ユニットを使用してバーストモードDDR A2S及びS2Aコンバータ(及びその固定長の変形)が構築される時、同期する受領側または送信側のロジックは、クロックサイクル毎に二つのトークンをカウントする。
可変長バースト設計(テールビット制御を有する)を使用する時、テールビットは、同期ハンドシェイク制御信号Si及びSoと同様に、シングルデータレート信号のままとなる。各テールビット値は、そのサイクルで転送されるデータトークンのペアに適用される。
図45乃至49を参照して次に説明する更に別の実施形態によれば、A2S及びS2A変換回路は、DDR−SDRAMインタフェースを実施するのに使用される。特定の実施形態によれば、上記の回路に対する拡張により、こうした実施が可能となる。こうした拡張は、リンクされる異なるタイプの情報の変換を可能にするマスタ/スレーブコンバータシステムと、データ項目間の最小間隔に関する複雑な制約が存在する時に性能を高めることができるnopカウンタとを含む。
こうした一実施形態において、SDRAMインタフェースは、「マスタ」A2Sコンバータを通じて送信されたコマンドによって多数のスレーブコンバータが制御されるマスタ/スレーブ設計を使用する。基本的に、それぞれのスレーブコンバータの制御プロセスは、それぞれのための「go」信号を生成する共有メカニズムに置き換えられる。転送されたコマンドワードに基づいて、システムは、おそらくはいくつかのクロックサイクル数の遅延後に、一つ以上のスレーブコンバータを更にトリガしてもよい。
ここで説明するように、マスタコンバータは、A2Sである。しかしながら、同様のシステムは、マスタS2Aコンバータにより設計し、依然として本発明の範囲内に留めることができると理解される。
DDR−SDRAMプロトコルは、対応するリードまたはライトコマンドの後で指定された数のクロックサイクルを開始させる連続的なバーストにおいて転送(リードまたはライト)されるデータを指定する。したがって、非同期側は、関連するリードまたはライトコマンドを発行する前に、データがライトのために利用可能な状態、或いはリードのために利用可能な空のバッファスペースを、確保する必要がある。これには、コマンド及びデータのためのコンバータをリンクすることが求められる。
スレーブA2SまたはS2Aコンバータは、制御プロセスを取り除いた通常のコンバータ(上で説明した任意のもの等)を備える。様々な実施形態によれば、こうした通常のコンバータは、例えば、シングルワードコンバータ(図45等)、バーストコンバータ(図46等)、または固定バーストコンバータ(図47)を備えてよい。こうしたコンバータは、ダブルデータレート(DDR)コンバータであってもよいが、そうである必要はない。
制御プロセスを削除することで、スレーブコンバータには、入力信号「go」及び出力完了チャネルAcが残る(上記の実施形態に関して、完了チャネルは、シングルワードコンバータについてAc、バーストモードコンバータについてBcと呼ばれた)。こうしたチャネルは、下では簡略化のためAcと呼ばれる。
特定の実施形態によれば、スレーブコンバータは、それ自体では同期ハンドシェイクを実行しない。代わりに、スレーブコンバータは、入力信号「go」がアサートされる全ての立ち上がりクロックエッジで、単純にデータを転送する。スタンドアロンコンバータの制御ユニットに課せられるものと同じ条件、即ち、Acでのトークンを待ち、「go」信号のアサートの前に必要な任意の同期フロー制御を実行することは、更に大きなシステムの責任となる。スレーブA2Sコンバータにおいては、スタンドアロンS2Aコンバータを参照して上で説明したように、Acチャネルは、データパスのバッファリングの量と一致するトークンを備えて初期化される。
例示的なマスタ/スレーブコンバータシステムの全般的な編成は、図48に表示される。コマンドは、マスタA2Sコンバータ5102に送信される前に、必要なスレーブコンバータで準備ができているかをチェックする制御ブロックMASTER_COMPLETE5104を通過する。一実施形態によれば、MASTER_COMPLETE5104は、全てのコマンドに対して、擬似コードで指定された次の動作を実行する。
L?command;
各スレーブコンバータSのために、
コマンドがSでの転送を求める場合、
Ac[S]?; //Sから完了トークンを受領
R!command
コマンドは、MASTER_COMPLETE5104から現れた後、スタンドアロンA2Sコンバータ5102(「マスタ」コンバータ)を通過する。
同期側において、SLAVE_TRIGGERユニット5106は、コマンドに応じて、適切な時点で、適切なスレーブコンバータの「go」信号を高めることに責任を有する。SLAVE_TRIGGER5106の単純なバージョンは、マスタA2Sコンバータ5102から出力チャネルCを観察できる。各立ち上がりクロックエッジにおいて、Cが有効であり(C.v及びC.eが共にハイ)、コマンドC.dがスレーブ転送を示す場合、対応するスレーブコンバータは、遅延線を通じてトリガされる。特定の実施形態において、各遅延線における遅延は、プログラム可能であり、整数のクロック期間に対応する。一般に、SLAVE_TRIGGER5106は、例えば、スレーブコンバータでの同期ハンドシェイクまたはその他の形態の同期制御を含め、より複雑にしてよい。
一部の実施形態によれば、スレーブコンバータ5108及び5110は、スタンドアロンのものに比べ、より多くのデータパスバッファリングを有する。即ち、Acから「go」の相対的に小さなレイテンシを有するスタンドアロンコンバータの制御プロセスの代わりに、スレーブコンバータの制御レイテンシは、MASTER_COMPLETE5104と、マスタA2S 5102と、SLAVE_TRIGGER5106(関連する遅延を有する)とを通過する。そのため、スレーブコンバータのデータパスバッファリングは、この大きなレイテンシに一致して増加する。スレーブS2Aコンバータ5108のAcチャネルの初期トークンの数(初期の空きバッファスペースを表す)は、これに応じて増加させてよい。
様々な実施形態によれば、NOP_COUNTERは、同期ユニットであり、A2Sコンバータを通じて送信される項目が少なくとも最小の数のクロックサイクルによって分離される状態を確保することに責任を有する。この数は、各項目により与えられ、その項目と前回のものとの間でスキップされるサイクルの最小数を指定する。
DDR−SDRAMプロトコルは、特定の実施に関して、全て最小限度として表現可能なコマンドのタイミングに対する多数の要件を有し、特定のコマンドが発行可能となる前に、前回のコマンド以降でスキップされる(ヌルコマンドまたはNOPを発行する)少なくとも最小の数のサイクルが存在する必要がある。
一実施形態によれば、必要なNOPの数は、非同期側で生成し、A2Sを通過させてよい。こうした実施によれば、利用可能なコマンドがない時に追加のNOPを生成することは、同期側でのみ必要となる。このアプローチの欠点は、既に広範に分離されたコマンド間に不必要な遅延を追加し得ることである。NOPの最小数は、次のコマンドが既知となるまで分からないため、次のコマンドの前に、こうした明示的なNOPをA2Sに通過させることは、十分すぎる遅延が既に経過しているとしても、余計な遅延を追加することになる。
次に図49を参照すると、NOP_COUNTER5202は、A2S 5204の出力に取り付けられた同期ブロックである。入力及び出力は、それぞれ、同期ハンドシェイクチャネルを備える。入力チャネルは、関連する最小NOPカウントと共に項目(コマンド)を運び、出力チャネルは、必要なサイクル数で区切られた同じ項目を送信する。このユニットで可能なCSP仕様の一つは、次の通りである。
count:=lcount:=rcount:=0;
has_l:=has_r:=false;
L.e:=R.v:=false;
*[[〜CLK];
[has_r&(count>=rcount)−>R.d:=r,R.v:=true
[]else −>R.v:=false
],
(L.e:=〜has_l)
[CLK];
[R.v&R.e−>count:=0,has_r:=false
[]else −>count:=count+1
],
[L.v&L.e−>(l,lcount):=L.d,has_l:=true
[]else −>skip
];
[has_l&〜has_r−>has_l:=false,has_r:=true,(r,rcount):=(l,lcount)
[]else −>skip
];

このプログラムにおいて、変数「count」は、Rでの最後の出力以降のサイクル数を保持する。ペア(l,lcount)は、入力データと関連する最小NOPカウントとを保持し、これは出力のために(r,rcount)にコピーされる。ブーリアンhal_l及びhas_rは、こうしたペアのそれぞれが有効なトークンを保持する時期を示す。二つの可変ペアを有することで、ユニットは、同じくロックサイクルで入力及び出力可能になる。
各立ち下がりクロックエッジにおいて、NOP_COUNTER5202は、出力信号を設定する。rにトークンが存在し(has_rがハイ)、最後の出力以降のサイクル数がrcountより大きい時(count>=rcount)、NOP_COUNTER5202は、値rを送信するためにR.d及びR.vを設定し、その他の場合には、送信を行わない。lにトークンが存在しない場合(has_lがロー)、NOP_COUNTER5202は、入力を可能にするためにL.eを高める。
データは、立ち上がりクロックエッジに転送される。Rに出力が存在する場合(R.v及びR.eがハイ)、トークンは、rから除去され、最後の出力以降のサイクルのカウントは、0にリセットされ、その他の場合には、カウントは増分される。Lに入力が存在しない場合、データ及びnopカウントは、(l,lcount)のトークンに読み込まれる。最後に、lにトークンが存在するが、rには存在しない場合、トークンは、lからrへ転送される。
SDRAMインタフェースは、上のマスタ/スレーブ設計と併せて、NOP_COUNTERを使用する。NOP_COUNTERは、マスタコンバータに取り付けられ、残りの設計のために、マスタコンバータの一部とみなしてよい。特定の実施において、SLAVE_TRIGGERユニットは、マスタコンバータの出力であるかのように、NOP_COUNTERの出力チャネルを観察する。これにより、スレーブコンバータのタイミングは、NOP_COUNTERから現れ、他の同期回路にとって可視であるコマンドストリームに一致した状態が維持される。
以上、本発明について、その特定の実施形態を参照して詳細に図示及び説明してきたが、開示した実施形態の態様及び詳細を本発明の趣旨または範囲から逸脱することなく変更し得ることは当業者には理解されよう。例えば、本明細書では、特定の非同期設計様式に基づき、様々なインタフェースを説明した。しかしながら、様々な非同期領域タイプの任意のものは、本発明の範囲に含まれることは理解されよう。更に、本明細書で説明した回路の具体的な詳細は、単に例示的なものであり、本発明を限定するものと見做されるべきではない。正しくは、本明細書で説明した回路の基本的な機能を実現する任意の回路も、本発明の範囲に含まれる。
加えて、本明細書では、様々な実施形態を参照して本発明の様々な利点、態様、及び目的を説明してきたが、本発明の範囲は、こうした利点、態様、及び目的に言及することによって限定されるべきではないことは理解されよう。正しくは、本発明の範囲は、付記した特許請求の範囲に基づき決定されるべきである。
本発明の特定の実施形態により設計された非同期−同期(A2S)インタフェースの簡略ブロック図である。 本発明の特定の実施形態により設計された同期−非同期(S2A)インタフェースの簡略ブロック図である。 本発明の特定の実施形態により設計されたバーストモードA2Sインタフェースの簡略ブロック図である。 本発明の特定の実施形態による転送トークン生成回路の簡略ブロック図である。 本発明の特定の実施形態による転送トークン分配回路の簡略ブロック図である。 本発明の特定の実施形態により設計されたバーストモードS2Aインタフェースの簡略ブロック図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の他の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の他の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の他の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の他の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の他の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の他の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の他の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の他の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の他の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の他の様々な特定の実施形態によるA2Sインタフェース及びS2Aインタフェースの具体的実施の様々なコンポーネントを例示する図である。 本発明の特定の実施形態によるA2S及びS2Aバーストモードインタフェースの様々な実施を例示する図である。 本発明の特定の実施形態によるA2S及びS2Aバーストモードインタフェースの様々な実施を例示する図である。 本発明の特定の実施形態によるA2S及びS2Aバーストモードインタフェースの様々な実施を例示する図である。 本発明の特定の実施形態によるA2S及びS2Aバーストモードインタフェースの様々な実施を例示する図である。 本発明の特定の実施形態によるA2S及びS2Aバーストモードインタフェースの様々な実施を例示する図である。 本発明の特定の実施形態によるA2S及びS2Aバーストモードインタフェースの様々な実施を例示する図である。 本発明の特定の実施形態によるA2S及びS2Aバーストモードインタフェースの様々な実施を例示する図である。 本発明の特定の実施形態によるA2S及びS2Aバーストモードインタフェースの様々な実施を例示する図である。 本発明の特定の実施形態によるA2S及びS2Aバーストモードインタフェースの様々な実施を例示する図である。 本発明の他の特定の実施形態によるA2S及びS2Aバーストモードインタフェースの様々な実施を例示する図である。 本発明の他の特定の実施形態によるA2S及びS2Aバーストモードインタフェースの様々な実施を例示する図である。 本発明の他の特定の実施形態によるA2S及びS2Aバーストモードインタフェースの様々な実施を例示する図である。タフェースの様々な実施を例示する図である。 本発明の他の特定の実施形態によるA2S及びS2Aバーストモードインタフェースの様々な実施を例示する図である。 本発明の他の特定の実施形態によるA2S及びS2Aバーストモードインタフェースの様々な実施を例示する図である。 本発明の他の特定の実施形態によるA2S及びS2Aバーストモードインタフェースの様々な実施を例示する図である。 本発明の他の特定の実施形態によるA2S及びS2Aバーストモードインタフェースの様々な実施を例示する図である。 本発明の他の特定の実施形態によるA2S及びS2Aバーストモードインタフェースの様々な実施を例示する図である。

Claims (27)

  1. 非同期領域と同期領域との間で使用するインタフェースであって、
    非同期領域が非同期ハンドシェイクプロトコルによるデータの伝送を特徴とし、同期領域がクロック信号の遷移によるデータの伝送を特徴とするインタフェースにおいて、
    領域間でデータトークンを転送し得るデータパスと、
    前記データパスと接続され、データトークンを複数格納し得るバッファと、
    クロック信号の少なくとも一回の遷移と非同期ハンドシェイクプロトコルに基づくハンドシェイクの少なくとも一回の完了とに応答して、前記データパスを介した前記データトークンの転送を可能にし得る制御回路と、を備え
    前記制御回路は、前記非同期ハンドシェイクプロトコルに基づくハンドシェイクの完了によって生成される、前記データトークンが前記非同期領域から前記同期領域に転送可能であることを示す転送トークンの生成およびクロック信号に応答して、前記データトークンを前記非同期領域から前記同期領域へと転送する、
    インタフェース。
  2. 前記データトークンが、複数の並列ビットを含み、前記非同期ハンドシェイクプロトコルに基づくハンドシェイクの少なくとも一回の完了が、前記データトークンのそれぞれのビットに関する、前記非同期ハンドシェイクプロトコルに基づくハンドシェイクの完了を含む、請求項記載のインタフェース。
  3. 前記データパスは、
    転送信号及び前記クロック信号の遷移に応答して、前記データトークンの各ビットを前記バッファから前記同期領域に転送し得る複数のデータパス転送ユニットと、
    を備え、
    前記転送信号は、前記制御回路によって、前記同期領域との同期ハンドシェイクと、前記転送トークンと、に応答して、生成される、請求項1記載のインタフェース。
  4. 前記バッファが、連続して配置された複数のステージを有する多段式非同期先入れ先出し(FIFO)バッファを含み、前記FIFOバッファの各ステージが、前記非同期ハンドシェイクプロトコルにより、前記データトークンの各ビットを受領及び転送し得る、請求項記載のインタフェース。
  5. 前記各データパス転送ユニットが、前記クロック信号の或る遷移後で且つ前記クロック信号の次の遷移前に、前記データトークンのそれぞれのビットを前記同期領域にラッチし得るラッチを備える、請求項記載のインタフェース。
  6. 前記データパス転送ユニットのそれぞれに前記転送信号を提供し得るブロードキャスト回路を更に備える、請求項記載のインタフェース。
  7. 記ブロードキャスト回路が、前記転送信号を分配する複数のパイプライン回路構成を備えるツリー構造を有する、請求項記載のインタフェース。
  8. 前記制御回路は、前記転送信号を生成するためにパイプライン完了ブロックを用いる、請求項記載のインタフェース。
  9. 前記同期領域が、データ転送に連続データのブロックを含めることを必要とし、前記データパスが、更に、前記連続データのブロックを形成するために、前記非同期領域において生成されたデータトークンを前記バッファに蓄積可能であり、各データトークンが複数のビットを含み、
    前記制御回路が、前記同期領域との同期ハンドシェイクと前記クロック信号の連続的遷移とに応答して、それぞれのデータトークンのそれぞれのビットでの前記非同期ハンドシェイクプロトコルに基づくハンドシェイクの完了後に、前記データパス経由による蓄積された前記データトークンの前記同期領域への転送を生じさせ得る、請求項記載のインタフェース。
  10. 同期領域と同期領域との間で使用するインタフェースであって、
    非同期領域が非同期ハンドシェイクプロトコルによるデータの伝送を特徴とし、同期領域がクロック信号の遷移によるデータの伝送を特徴とするインタフェースにおいて、
    領域間でデータトークンを転送し得るデータパスと、
    前記データパスと接続され、データトークンを複数格納し得るバッファと、
    クロック信号の少なくとも一回の遷移と非同期ハンドシェイクプロトコルに基づくハンドシェイクの少なくとも一回の完了とに応答して、前記データパスを介した前記データトークンの転送を可能にし得る制御回路と、を備え、
    前記非同期ハンドシェイクプロトコルに基づくハンドシェイクの完了によって生成される、前記データトークンよりも前に第2のデータトークンの前記同期領域から前記非同期領域への転送が成功したことを示す転送トークンの生成に応答して、前記データトークンを前記同期領域から前記非同期領域へと転送する、
    インタフェース。
  11. 前記データトークンと前記第2のデータトークンのそれぞれが、複数の並列ビットを含み、前記非同期ハンドシェイクプロトコルに基づくハンドシェイクの少なくとも一回の完了が、前記第2のデータトークンのそれぞれのビットに関する、前記非同期ハンドシェイクプロトコルに基づくハンドシェイクの完了を含む、請求項10記載のインタフェース。
  12. 前記データパスは、
    前記第2のデータトークンを含む複数のデータトークンを格納し得るバッファと、 転送信号及び前記非同期ハンドシェイクプロトコルに従って前記データトークンのビットを前記同期領域から前記バッファに転送し得る複数のデータパス転送ユニットと、
    を備え
    前記転送信号は、前記制御回路によって、前記同期領域との同期ハンドシェイクの完了と、前記転送トークンとに応答して、生成される、請求項11記載のインタフェース。
  13. 前記バッファが、連続して配置された複数のステージを有する多段式非同期先入れ先出し(FIFO)バッファを含み、前記FIFOバッファの各ステージが、前記非同期ハンドシェイクプロトコルにより、前記データトークンの各ビットを受領及び転送し得る、請求項12記載のインタフェース。
  14. 前記各データパス転送ユニットが、前記クロック信号の遷移時に、前記データトークンのそれぞれのビットを前記バッファに転送し得るラッチを備える、請求項12記載のインタフェース。
  15. 前記データパス転送ユニットのそれぞれに前記転送信号を提供し得るブロードキャスト回路を更に備える、請求項12記載のインタフェース。
  16. 記ブロードキャスト回路が、前記転送信号を分配する複数のパイプライン回路構成を備えるツリー構造を含む、請求項15記載のインタフェース。
  17. 前記制御回路が、前記転送信号を生成するためにパイプライン完了ブロックを用いる、請求項12記載のインタフェース。
  18. 記制御回路が、前記非同期領域におけるデータトークンについての前記非同期ハンドシェイクプロトコルに基づくハンドシェイクの完了にそれぞれが対応する複数の前記転送トークンを格納し得る転送トークンバッファを更に備える、請求項17記載のインタフェース。
  19. 前記同期領域が、データ転送に連続データのブロックを含めることを必要とし、
    前記制御回路が、前記同期領域との同期ハンドシェイクと、前記クロック信号の連続する遷移と、前記非同期ハンドシェイクプロトコルにより生成されて前記非同期領域が複数のデータトークンを受領するのに十分なメモリを有することを示すイネーブル信号とに応答して、前記データパス経由による連続データのブロックとしての複数のデータトークンの前記非同期領域への転送を生じさせるべく更に機能し得る、請求項10記載のインタフェース。
  20. 前記制御回路が、前記クロック信号の正及び負の両方の遷移時に前記データトークンの転送を可能にし得る、請求項1または10記載のインタフェース。
  21. 前記制御回路が、前記クロック信号の正及び負の遷移の一方のみの時に前記データトークンの転送を可能にし得る、請求項1または10記載のインタフェース。
  22. 前記制御回路が、前記クロック信号の少なくとも一回の遷移と前記非同期ハンドシェイクプロトコルに基づくハンドシェイクの少なくとも一回の完了とに応答して、なおかつ、前記同期領域との同期ハンドシェイクの完了時のみに前記データトークンの転送を可能にし得る、請求項1または10記載のインタフェース。
  23. 前記データパスが、前記データトークンを前記非同期領域から前記同期領域へ転送可能であり、
    前記同期ハンドシェイクが、前記データトークンの転送準備が整っていることを示す前記制御回路からの第一の信号と、前記同期領域で前記データトークンの受領準備が整っていることを示す前記同期領域からの第二の信号とを含む、請求項22記載のインタフェース。
  24. 前記データパスが、前記データトークンを前記同期領域から前記非同期領域へ転送可能であり、
    前記同期ハンドシェイクが、前記データトークンを受領する準備が前記データパスで整っていることを示す前記制御回路からの第一の信号と、前記同期領域で前記データトークンを転送する準備が整っていることを示す前記同期領域からの第二の信号とを含む、請求項22記載のインタフェース。
  25. 前記制御回路が、非動作サイクルを導入し得る、請求項22記載のインタフェース。
  26. 前記データパスが、前記非同期ハンドシェイクプロトコルに基づくハンドシェイクの完了時に、前記クロック信号の一期間内に前記データトークンを前記非同期領域から前記同期領域へ転送し得る、請求項1または10記載のインタフェース。
  27. 前記制御回路が、前記クロック信号の少なくとも一回の遷移および前記非同期ハンドシェイクプロトコルに基づくハンドシェイクの少なくとも一回の完了とに応答して、しかしながら、前記同期領域からの追加のフロー制御に関係なく、前記データトークンの転送を可能にし得る、請求項1または10記載のインタフェース。
JP2003568541A 2002-02-12 2003-02-11 非同期及び同期領域間の変換を促進する手法 Expired - Fee Related JP4520742B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US35720102P 2002-02-12 2002-02-12
US10/212,574 US6950959B2 (en) 2002-02-12 2002-08-01 Techniques for facilitating conversion between asynchronous and synchronous domains
PCT/US2003/004344 WO2003069485A2 (en) 2002-02-12 2003-02-11 Techniques for facilitating conversion between asynchronous and synchronous domains

Publications (3)

Publication Number Publication Date
JP2005518018A JP2005518018A (ja) 2005-06-16
JP2005518018A5 JP2005518018A5 (ja) 2005-12-22
JP4520742B2 true JP4520742B2 (ja) 2010-08-11

Family

ID=27737078

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003568541A Expired - Fee Related JP4520742B2 (ja) 2002-02-12 2003-02-11 非同期及び同期領域間の変換を促進する手法

Country Status (7)

Country Link
US (2) US6950959B2 (ja)
EP (1) EP1474748B1 (ja)
JP (1) JP4520742B2 (ja)
AT (1) ATE401607T1 (ja)
AU (1) AU2003215211A1 (ja)
DE (1) DE60322185D1 (ja)
WO (1) WO2003069485A2 (ja)

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1647474A (zh) * 2002-04-17 2005-07-27 皇家飞利浦电子股份有限公司 数据通信总线
US7324564B2 (en) * 2003-02-20 2008-01-29 Sun Microsystems, Inc. Transmitting odd-sized packets over a double data rate link
JP2004326222A (ja) * 2003-04-22 2004-11-18 Renesas Technology Corp データ処理システム
US7275171B2 (en) * 2003-05-22 2007-09-25 Rambus Inc. Method and apparatus for programmable sampling clock edge selection
EP1647030B1 (en) * 2003-07-14 2009-12-16 Fulcrum Microsystems Inc. Asynchronous static random access memory
JP3852437B2 (ja) * 2003-11-19 2006-11-29 セイコーエプソン株式会社 同期・非同期インターフェース回路及び電子機器
US20050177660A1 (en) * 2004-02-05 2005-08-11 Rajesh Mamidwar Method and system for merged rate-smoothing buffer with burst buffer
WO2005088889A1 (en) * 2004-03-01 2005-09-22 Koninklijke Philips Electronics N.V. Circuit comprising mutually asynchronous circuit modules
ATE452371T1 (de) * 2004-04-28 2010-01-15 Koninkl Philips Electronics Nv Schaltung mit asynchroner/synchroner schnittstelle
US8055821B2 (en) * 2004-11-17 2011-11-08 International Business Machines Corporation Apparatus, system, and method for converting a synchronous interface into an asynchronous interface
US7584449B2 (en) * 2004-11-22 2009-09-01 Fulcrum Microsystems, Inc. Logic synthesis of multi-level domino asynchronous pipelines
US7543172B2 (en) * 2004-12-21 2009-06-02 Rambus Inc. Strobe masking in a signaling system having multiple clock domains
US7814280B2 (en) * 2005-01-12 2010-10-12 Fulcrum Microsystems Inc. Shared-memory switch fabric architecture
JP4786354B2 (ja) * 2006-01-27 2011-10-05 株式会社日立製作所 iSCSI通信制御方法とそれを用いた記憶システム
US7668186B1 (en) * 2006-03-07 2010-02-23 Xilinx, Inc. Token ecosystem for buffer management
US7610567B2 (en) * 2006-04-27 2009-10-27 Achronix Semiconductor Corporation Systems and methods for performing automated conversion of representations of synchronous circuit designs to and from representations of asynchronous circuit designs
WO2007139928A2 (en) * 2006-05-24 2007-12-06 The Trustees Of Columbia University In The City Of New York Methods, media, and means for forming asynchronous logic networks
JP5354427B2 (ja) 2006-06-28 2013-11-27 アクロニクス セミコンダクター コーポレイション 集積回路のための再構成可能論理ファブリックおよび再構成可能論理ファブリックを構成するためのシステムおよび方法
US7916718B2 (en) * 2007-04-19 2011-03-29 Fulcrum Microsystems, Inc. Flow and congestion control in switch architectures for multi-hop, memory efficient fabrics
JP5030698B2 (ja) * 2007-07-24 2012-09-19 株式会社リコー 半導体装置及びノイズ低減方法
US7701255B2 (en) * 2007-11-06 2010-04-20 Elastix Corporation Variability-aware scheme for asynchronous circuit initialization
TWI407744B (zh) * 2008-02-04 2013-09-01 Realtek Semiconductor Corp 網路信號處理裝置
JP5017153B2 (ja) * 2008-03-14 2012-09-05 富士通株式会社 非同期同期通信網の変換装置、データ変換方法、データ変換プログラム、及び通信システム
WO2009155370A1 (en) * 2008-06-18 2009-12-23 University Of Southern California Multi-level domino, bundled data, and mixed templates
US8370557B2 (en) * 2008-12-19 2013-02-05 Intel Corporation Pseudo dual-port SRAM and a shared memory switch using multiple memory banks and a sideband memory
US8074193B2 (en) * 2009-03-11 2011-12-06 Institute of Computer Science (ICS) of the Foundation for Research & Technology Hellas-Foundation for Research and Technology Hellas (FORTH) Apparatus and method for mixed single-rail and dual-rail combinational logic with completion detection
US8161435B2 (en) 2009-07-20 2012-04-17 Achronix Semiconductor Corporation Reset mechanism conversion
US8301933B2 (en) * 2009-09-14 2012-10-30 Achronix Semiconductor Corporation Multi-clock asynchronous logic circuits
US7900078B1 (en) * 2009-09-14 2011-03-01 Achronix Semiconductor Corporation Asynchronous conversion circuitry apparatus, systems, and methods
EP2466478B1 (en) * 2010-12-20 2013-11-27 STMicroelectronics (Grenoble 2) SAS Communication system, and corresponding integrated circuit and method
EP2466479B1 (en) * 2010-12-20 2013-11-27 STMicroelectronics (Grenoble 2) SAS Interface system, and corresponding integrated circuit and method
US8599982B2 (en) 2010-12-20 2013-12-03 Stmicroelectronics S.R.L. Interface system, and corresponding integrated circuit and method
FR2978315B1 (fr) * 2011-07-20 2013-09-13 Thales Sa Reseau de transmission d'informations et noeud de reseau correspondant
ITTO20120289A1 (it) * 2012-04-02 2013-10-03 St Microelectronics Srl Circuito per comunicazioni asincrone, sistema e procedimento relativi
GB2513529A (en) * 2012-11-15 2014-11-05 Ibm System and method of low latency data tranfer between clock domains operated in various synchronization modes
US9520180B1 (en) 2014-03-11 2016-12-13 Hypres, Inc. System and method for cryogenic hybrid technology computing and memory
US9558309B2 (en) * 2014-05-09 2017-01-31 University Of Southern California Timing violation resilient asynchronous template
US9843339B1 (en) * 2016-08-26 2017-12-12 Hrl Laboratories, Llc Asynchronous pulse domain to synchronous digital domain converter
WO2020008229A1 (en) * 2018-07-03 2020-01-09 Dolphin Integration Circuit and method for protecting asynchronous circuits
CN113407467B (zh) * 2021-07-19 2023-05-30 北京中科芯蕊科技有限公司 一种基于Mousetrap的同步异步转换接口及装置

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4773066A (en) * 1986-04-15 1988-09-20 The Mitre Corporation Synchronized multiple access apparatus and method for a local area network
US4849751A (en) * 1987-06-08 1989-07-18 American Telephone And Telegraph Company, At&T Bell Laboratories CMOS Integrated circuit digital crossbar switching arrangement
US4954983A (en) * 1987-10-13 1990-09-04 Tektronix, Inc. Data driver for multiple mode buffered processor-peripheral data transfer with selective return of data to processor
US5452231A (en) * 1988-10-05 1995-09-19 Quickturn Design Systems, Inc. Hierarchically connected reconfigurable logic assembly
US5752070A (en) * 1990-03-19 1998-05-12 California Institute Of Technology Asynchronous processors
US5418930A (en) * 1991-09-05 1995-05-23 International Business Machines Corporation Circuit for interfacing asynchronous to synchronous communications
JPH0581192A (ja) * 1991-09-18 1993-04-02 Fujitsu Ltd バスアービトレーシヨン方式
JPH0784948A (ja) * 1993-09-20 1995-03-31 Hitachi Ltd インターフェース装置
JPH0784947A (ja) * 1993-09-20 1995-03-31 Hitachi Ltd インターフェース装置
JPH07249001A (ja) * 1994-03-14 1995-09-26 Hitachi Ltd インターフェース装置
US5586273A (en) * 1994-08-18 1996-12-17 International Business Machines Corporation HDLC asynchronous to synchronous converter
US5659684A (en) * 1995-02-03 1997-08-19 Isdn Systems Corporation Methods and apparatus for interconnecting personal computers (PCs) and local area networks (LANs) using packet protocols transmitted over a digital data service (DDS)
US5949791A (en) * 1996-03-19 1999-09-07 Lucent Technologies Inc. Method and apparatus for converting synchronous narrowband signals into broadband asynchronous transfer mode signals in an integrated telecommunications network
US5802055A (en) * 1996-04-22 1998-09-01 Apple Computer, Inc. Method and apparatus for dynamic buffer allocation in a bus bridge for pipelined reads
GB2313524A (en) * 1996-05-24 1997-11-26 Ibm Providing communications links in a computer network
US6065082A (en) * 1996-08-06 2000-05-16 International Business Machines Corporation HDLC asynchronous to synchronous converter
US5892764A (en) * 1996-09-16 1999-04-06 Sphere Communications Inc. ATM LAN telephone system
US6219711B1 (en) * 1997-05-13 2001-04-17 Micron Electronics, Inc. Synchronous communication interface
JP3791139B2 (ja) * 1997-07-30 2006-06-28 株式会社デンソー 車両用制御装置
JP3488812B2 (ja) * 1997-08-28 2004-01-19 シャープ株式会社 データ伝送路
US6038656A (en) * 1997-09-12 2000-03-14 California Institute Of Technology Pipelined completion for asynchronous communication
US6246733B1 (en) * 1998-05-20 2001-06-12 International Business Machines Corporation Synchronous interface for asynchronous data detection channels
US6279065B1 (en) * 1998-06-03 2001-08-21 Compaq Computer Corporation Computer system with improved memory access
JP2000172636A (ja) * 1998-12-08 2000-06-23 Canon Inc リアルタイムデータ転送系の非同期系データ転送制御装置および方法
US6301630B1 (en) * 1998-12-10 2001-10-09 International Business Machines Corporation Interrupt response in a multiple set buffer pool bus bridge
US6374307B1 (en) * 1999-02-12 2002-04-16 Steve A. Ristau Non-intrusive DWDM billing system
TW507418B (en) * 1999-02-26 2002-10-21 Via Tech Inc Synchronization element for converting asynchronous pulse signal into synchronous pulse signal
US6230228B1 (en) * 1999-04-01 2001-05-08 Intel Corporation Efficient bridge architecture for handling multiple write transactions simultaneously
JP3663351B2 (ja) * 2000-02-28 2005-06-22 シャープ株式会社 自己同期システムとクロック同期システムとのインタフェース装置
US7006498B2 (en) * 2000-08-09 2006-02-28 International Business Machines Corporation System for transmitting local area network (LAN) data frames through an asynchronous transfer mode (ATM) crossbar switch

Also Published As

Publication number Publication date
WO2003069485A3 (en) 2004-04-01
WO2003069485A2 (en) 2003-08-21
US20030165158A1 (en) 2003-09-04
US6950959B2 (en) 2005-09-27
DE60322185D1 (de) 2008-08-28
AU2003215211A8 (en) 2003-09-04
ATE401607T1 (de) 2008-08-15
JP2005518018A (ja) 2005-06-16
EP1474748B1 (en) 2008-07-16
US20030159078A1 (en) 2003-08-21
US6961863B2 (en) 2005-11-01
EP1474748A2 (en) 2004-11-10
AU2003215211A1 (en) 2003-09-04

Similar Documents

Publication Publication Date Title
JP4520742B2 (ja) 非同期及び同期領域間の変換を促進する手法
EP1590835B1 (en) Asynchronous system-on-a-chip interconnect
Mullins et al. Demystifying data-driven and pausible clocking schemes
US6850092B2 (en) Low latency FIFO circuits for mixed asynchronous and synchronous systems
Chelcea et al. Robust interfaces for mixed-timing systems with application to latency-insensitive protocols
EP1124179B1 (en) An apparatus for signal synchronization between two clock domains
US7925803B2 (en) Method and systems for mesochronous communications in multiple clock domains and corresponding computer program product
US10355851B2 (en) Methods and systems for synchronization between multiple clock domains
KR100761430B1 (ko) 혼합형 비동기 및 동기 시스템을 위한 낮은 대기시간fifo 회로
JP2002523857A (ja) 非同期型論理を用いたfifo
EP1468372B1 (en) Asynchronous crossbar with deterministic or arbitrated control
EP0826179A1 (en) Source synchronous clocked data link
US7197582B2 (en) Low latency FIFO circuit for mixed clock systems
US20040128413A1 (en) Low latency fifo circuits for mixed asynchronous and synchronous systems
US8760324B1 (en) Synchronous multi-clock protocol converter
Liljeberg et al. Asynchronous interface for locally clocked modules in ULSI systems
Verbitskyv et al. A four-stage mesochronous synchronizer with back-pressure and buffering for short and long range communications
Dobkin et al. Zero latency synchronizers using four and two phase protocols

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20080909

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081209

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090306

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090313

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090604

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20091117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100316

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100316

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20100412

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100427

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100521

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

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4520742

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

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

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees