"第1クロック信号によって制御される送り側サブシステムから、第2クロック信号によって制御される受け側サブシステムへのデータ項目の伝送を調和させる回路において、前記データ項目の伝送が前記送り側サブシステムと前記受け側サブシステムとの間の遅延を受け、該回路が、前記送り側サブシステムに取り付けられ、プットデータバスにおける前記データ項目を転送し、第1動作プロトコルを有するリレー局の第1チェーンと、前記受け側サブシステムに取り付けられ、ゲットデータバスにおける前記データ項目を受け、第2動作プロトコルを有するリレー局の第2チェーンと、前記第1クロック信号および第2クロック信号を受け、前記データ項目を前記リレー局の第1チェーンから前記リレー局の第2チェーンへ、前記リレー局の第1チェーンの動作プロトコルと前記リレー局の第2チェーンのプロトコルとにしたがって伝送する混合クロックリレー局と、を含み、前記混合クロックリレー局は、セルのアレイと、前記セルのアレイにおける予め決められた数より少ない連続的なセルが空状態である場合に示される前記第1クロック信号と同期したフル信号を供給するフル検出器と、フル信号が示されない場合、前記第1クロック信号の各々のクロックサイクルにおいてデータ項目をエンキューすることができるように構成されたプットコントローラと、予め決められた数より少ない連続的なセルがフル状態である場合に示される前記第2クロック信号と同期した空制御信号を供給する空検出器と、前記混合クロック局に接続された前記リレー局の第2チェーンのリレー局から停止信号を受けるように構成され、前記空信号が示されず、前記停止信号が示されない場合、前記第2クロック信号の各々のクロックサイクルにおいてデータ項目のデキューができるように構成されたゲットコントローラとを具えることを特徴とする回路。非同期送り側サブシステムからクロック信号によって制御された同期受け側サブシステムへのデータ項目の伝送を調和させる回路において、前記データ項目の伝送が、前記送り側サブシステムと受け側サブシステムとの間の遅延を受け、該回路が、前記送り側サブシステムに取り付けられ、プットデータバスにおけるデータ項目を転送し、非同期動作プロトコルを有するリレー局の第1チェーンと、前記受け側サブシステムに取り付けられ、ゲットデータバスにおけるデータ項目を受け、同期動作プロトコルを有するリレー局の第2チェーンと、前記クロック信号を受け、前記データ項目を前記リレー局の第1チェーンから前記リレー局の第2チェーンへ、前記リレー局の第1チェーンの非同期プロトコルと前記リレー局の第2チェーンの同期プロトコルとにしたがって伝送する混合クロックリレー局とを具え、前記混合クロックリレー局が、セルのアレイと、予め決められた数より少ない連続的なセルがフル状態である場合に示される、前記第2クロック信号と同期した空制御信号を発生する空検出器と、該混合クロックリレー局に接続された前記リレー局の第2チェーンのリレー局から停止信号を受けるように構成され、前記空信号が示されず、前記停止信号が示されない場合、前記第2クロック信号の各々のクロックサイクルにおいて、データ項目のデキューを可能にするように構成されたゲットコントローラとを具えることを特徴とする回路。クロック信号によって制御される同期送り側サブシステムから非同期受け側サブシステムへのデータ項目の伝送を調和させる回路において、前記データ項目の伝送が前記送り側サブシステムと前記受け側サブシステムとの間の遅延を受け、該回路が、前記送り側サブシステムに取り付けられ、前記データ項目をプットデータバスに伝送し、同期動作プロトコルを有し、有効信号を供給するリレー局の第1チェーンと、前記受け側サブシステムに取り付けられ、ゲットデータバスにおいて前記データ項目を受け、非同期動作プロトコルを有するリレー局の第2チェーンと、前記クロック信号を受け、前記データ項目を前記リレー局の第1チェーンから前記リレー局の第2チェーンへ、前記リレー局の第1チェーンの同期動作プロトコルと前記リレー局の第2チェーンの非同期動作プロトコルとにしたがって伝送するリレー局とを具え、前記リレー局が、セルのアレイと、前記セルのアレイにおける予め決められた数より少ない連続的なセルが空状態である場合に示される前記第1クロック信号と同期したフル信号を発生するフル検出器と、フル信号が示されず、前記有効信号が示される場合、前記第1クロック信号の各々のクロックサイクルにおいてデータ項目のエンキューを可能にするように構成されたプットコントローラとを具えることを特徴とする回路。本発明の目的は、少ない待ち時間と高いスループットを有するFIFO回路を提供することである。本発明の他の目的は、混合された同期/非同期環境において有用なFIFO回路を提供することである。本発明のさらに他の目的は、長い遅延および混合された同期/非同期環境との接続におけるリレー局として使用することができるFIFO回路を提供することである。本発明の依然として他の目的は、特定の動作プロトコル、すなわち、同期または非同期における使用に対して構成され、他の構成要素と関連して、これらの他の構成要素の動作プロトコルにかかわらず使用することができるFIFO回路構成要素を提供することである。本発明のこれらおよび他の目的は、ここにおける開示に関して明らかになり、第1動作プロトコルの下で動作する送り側サブシステムと、第2動作プロトコルの下で動作する受け側サブシステムとの間のデータ項目の伝送を調和させるFIFO回路によって成し遂げられる。プットインタフェースを、前記第1動作プロトコルに従って動作するように構成し、このプットインタフェースは、前記送り側サブシステムからのデータ項目を伝送するプットデータバスと、前記送り側サブシステムからのデータ項目を受けると共に前記プットデータバスからのデータ項目をエンキューするプットデータ要求入力部とを具える。ゲットインタフェースを、第2時間領域に従って動作するように構成し、このゲットインタフェースは、前記データ項目を前記受け側サブシステムに伝送するゲットデータバスと、前記受け側サブシステムからのゲット要求を受け、前記ゲットデータバスへのデータ項目をデキューするゲットデータ要求入力部とを具える。セルのアレイを設ける。各セルは、前記データ項目を前記プットデータバスから受けると共に前記データ項目を前記ゲットデータバスに伝送するように構成されたレジスタと、該セルの状態の指示を与える状態コントローラと、前記第1動作プロトコルにしたがって動作するように構成されたプット構成要素と、前記第2動作プロトコルにしたがって動作するように構成されたゲット構成要素とを有する。前記プット構成要素は、プットトークンを第1隣接セルから受け、前記プットデータバスから受けたデータ項目を前記レジスタに前記プット要求と該セルの状態とに基づいてラッチし、前記プットトークンを第2隣接セルに渡す。前記ゲット構成要素は、前記ゲットトークンを第1隣接セルから受け、前記レジスタからのデータ項目を前記ゲットデータバスに前記ゲット要求とゲットトークンと前記セルの状態とに応じてデキューし、前記ゲットトークンを第2隣接セルに渡す。本発明によれば、上述した目的は満たされ、少ない待ち時間および高いスループットを有するFIFO回路に対する当該技術分野における必要性と、混合された同期/非同期環境における動作可能性とは実質上満たされる。本発明の他の特徴と、その特性と、種々の利点とは、添付した図面と、説明的な実施形態の以下の詳細な説明とから明らかになるであろう。本発明によるFIFO回路は、2つのサブシステム、すなわち、データ項目を発生する送り側サブシステムと、データ項目を消費する受け側サブシステムとの間を仲介する。FIFO回路は、同様のセルの環状バッファとして実現され、この環状バッファにおいて、各セルは共通データバスにおける2つのサブシステムと通信する。セルの入力および出力動作は、リングの周囲の2つのトークン、すなわち、データをエンキューする1つと、データをデキューする1つとによって命令される。データ項目は、これらがエンキューされるとリングを回って動かず、したがって、少ない待ち時間に関する機会を与え、データ項目がエンキューされると、すぐ後にデキューすることができる。各々のFIFO回路を、後述するように多数の異なったシステムにおける他のモジュラ構成要素と共に使用することができるモジュラ構成要素に分割する。インタフェース、すなわちFIFO回路の部分の組を一緒に結合し、後述する送り側端および受け側端双方における所望のタイミング仮定を満たす完全なFIFO回路を得ることができる。ここで使用するように、時間領域は、前記サブシステムが同期であるか非同期であるかに関係する。本発明によれば、各FIFO回路は、2つのインタフェース、すなわち、環境と協働するように設計されたFIFO回路の部分を有する。第1に、前記プットインタフェースを、前記送り側サブシステムと通信する前記FIFO回路の一部とする。同期プットインタフェースを図1において示し、非同期プットインタフェースを図3において示す。第2に、前記ゲットインタフェースを、前記受け側サブシステムと通信する前記FIFO回路の一部とする。図2は同期ゲットインタフェースを示し、図4は非同期ゲットインタフェースを示す。環境と調和するFIFO回路を、前記送り側サブシステムおよび受け側サブシステムが同期、同期および非同期、または、非同期であっても、示された条件に適切に対応するプットインタフェースおよびゲットインタフェースを取り付けることによって組み立てることができる。図1-2は、本発明による2つの同期インタフェースを示す。図1において示す同期プットインタフェース10を、送り側クロック信号12CLK_putによって制御する。同期プットインタフェース10に対する2つの入力、前記送り側による要求を通信し、データをエンキューするプット要求信号14req_putと、データ項目に関するバスである送り側データバス16data_putとが存在する。グローバルフル信号18fullを、前記FIFO回路がいっぱいである場合にのみ示し、そうでない場合、示さない。図2は、同期ゲットインタフェース20を示し、これを受け側クロック信号22CLK_getによって制御する。データ項目をデキューする前記受け側からの単一の制御入力信号は、ゲット要求信号24req_getである。データを、受け側データバス26data_getに置く。グローバル空信号28emptyを、前記FIFO回路が空の場合にのみ示す。有効データ信号30valid_getは、データ項目が有効であることを示す。図3-4に示す非同期インタフェースは、クロック信号と同期しない。図3は、同期プットインタフェース10の入力部図1と実際的に同様の2個の入力部を有する非同期プットインタフェース40を示す。第1に、送り側による要求を通信し、データをエンキューするプット要求信号44put_reqを供給し、グローバル空信号28emptyを、前記FIFOが空の場合にのみ示す。有効データ信号30valid_getは、データ項目が有効であることを示す。図4に示す非同期ゲットインタフェース50は、ゲット要求信号54get_reqおよび出力データバス58get_dataを有する。前記同期対応部と異なり、このインタフェースは、データ有効性信号またはグローバル空信号を持たない。非同期ゲットインタフェース50はゲット承認信号55get_ackを供給し、この信号は前記ゲット動作が完了したことを示す。図1、2、3および4の各々のモジュラインタフェース10、20、40および50を、本発明によって取り付け、異なった環境間でデータを伝送することができるFIFO回路を形成することができる。例えば、同期送り側サブシステムと同期受け側サブシステムとの間を調和させるFIFO回路を、好適実施形態FIFO回路100に関して後述するような同期-同期FIFO回路とここでは呼ぶFIFO回路を形成するために、同期プットインタフェース10および同期ゲットインタフェース20を使用することによって形成することができる。同様に、好適実施形態FIFO回路200に関してより詳細に後述する非同期-同期FIFOと呼ばれる、非同期送り側サブシステムと同期受け側サブシステムとの間を調和させるFIFO回路は、非同期プットインタフェース40を同期ゲットインタフェース20と共に取り入れる。同様に、同期-非同期FIFOと呼ばれる、同期送り側サブシステムと非同期受け側サブシステムとの間を調和させるために、好適実施形態FIFO回路300に関して後述するように、同期プットインタフェース10および非同期ゲットインタフェース50を使用することができる。図6、8および10の各々のFIFO回路100、200および300は、実際的に同様であり、ここに示す違いを有する。例えば、各々のFIFO回路100、200および300は、共通データバスにおける前記プットおよびゲットインタフェースと通信する同一のセルの環状アレイを有する。各動作の制御ロジックは、前記セルに分配され、これら2つのインタフェース間の協働を可能にする。データは、前記セルのアレイにおいて不動である。したがって、データ項目がエンキューされると、動かず、その場において簡単にデキューされる。いつでも、FIFO回路100、200および300において2つのトークン、すなわちプットトークンおよびゲットトークンが存在する。FIFO回路100、200および300の入力および出力動作を、これらのトークンによって制御する。前記プットトークンを使用し、データ項目のエンキューを可能にし、前記ゲットトークンを使用し、データ項目のデキューを可能にする。前記プットトークンを有するセルを、前記キューの尾とみなしてもよく、前記ゲットトークンを有するセルを、前記キューの頭とみなしてもよい。通常動作において、前記プットトークンは、代表的に、前記ゲットトークンより先にある。セルがトークンをデータ動作に使用されると、前記トークンは、それぞれの動作が完了した後、次のセルに渡される。このトークンの動きを、詳細に後述するように、インタフェース要求と、前記FIFO回路の状態、すなわち、空であるか満たされているかとの双方によって制御する。FIFO回路100、200および300のアーキテクチャに共通のいくつかの利点が存在する。データは前記セル間で入力から出力に渡されないため、前記FIFO回路は、少ない待ち時間の可能性を有する。したがって、データ項目がエンキューされるとすぐ、デキューも可能になる。第2に、前記FIFO回路は、低電力の可能性も提供し、データ項目はFIFO回路にある間、不動である。最後に、これらのアーキテクチャは高度にスケーラブルであり、すなわち、前記FIFO回路の能力と前記データ項目の幅とを、きわめて少ない設計変更によって変えることができる。第1好適実施形態によるFIFO回路100を図5および6に示す。FIFO回路100を、前記送り側サブシステムが同期であり、前記受け側サブシステムも同期である場合、使用することができる。したがって、前記モジュラ同期プットインタフェース10を、図5に示すようなモジュラ同期ゲットインタフェース20と共に使用する。前記送り側サブシステムは送り側クロック信号12CLK_putにおいて動作し、前記受け側サブシステムは受け側クロック信号22CLK_getにおいて動作する。図6に示すように、FIFO回路100を、同一セル170a、170b、170cおよび170dの環状アレイによって構成し、このFIFO回路は、2つの外部インタフェース、すなわち、送り側データバス16における同期プットインタフェース10data_putおよび受け側データバス26における同期ゲットインタフェース20data_getによって通信する。同期インタフェース10および20は、2つの追加の構成要素の形式、すなわち、1FIFO回路100の現在の状態、すなわち、空であるか満たされているかを決定する検出器と、2データ動作の要求を前記セルアレイに条件付で渡す外部コントローラとを有する。当該技術分野において既知のように、同期インタフェースにおけるデータ動作はクロック周期内で完了し、すなわち、したがって、前記環境は明白な受け取り信号を必要としない。しかしながら、FIFO回路100がいっぱいにまたは空になる場合、前記環境に前記プットゲットインタフェースにおける通信を中止させる必要があるかもしれない。検出器およびコントローラは、FIFO回路100において動作し、例外の場合を検出し、それが前記データ動作を行うのに安全でない場合、個々のインタフェースを停止する。図6に示すように、フル検出器72および空検出器74は、すべてのセル170a、170b、170cおよび170dの状態を監視し、FIFO回路100の全体的な状態、すなわち、いっぱいであるか空であるかを計算する。フル検出器72の出力をプットインタフェース10に渡してもよく、空検出器74の出力をゲットインタフェース20に渡してもよい。プットコントローラ176およびゲットコントローラ178は、FIFO回路100に対するデータ動作要求をフィルタ処理する。このようにして、プットコントローラ176は、通常は、前記送り側サブシステムからのプット要求を渡すが、前記FIFO回路がいっぱいの場合、これらを無効にする。同様に、ゲットコントローラ178は、通常は、前記受け側サブシステムからのゲット要求を送るが、FIFO回路100が空の場合、これらをブロックする。検出器72および74と、外部コントローラ176および178と、空およびいっぱいの規定とを、より詳細に後述する。第2の好適実施形態によるFIFO回路200を図7および8に示す。FIFO回路200を、前記送り側サブシステムが非同期で前記受け側サブシステムが同期である場合に使用することができる。したがって、図7に示すように、モジュラ非同期プットインタフェース40をモジュラ同期ゲットインタフェース20と共に使用する。前記送り側サブシステムは非同期に動作し、前記受け側サブシステムは受け側クロック信号22CLK_getにおいて動作する。図8に示すように、FIFO回路200を同一のセル270a、270b、270cおよび270dの環状アレイによって構成し、このFIFO回路200は2つの外部インタフェース、すなわち、共通データバスである送り側データバス46data_putおよび受け側データバス16get_dataにおける非同期プットインタフェース40および同期ゲットインタフェース20と通信する。図6に関して上述したような同期ゲットインタフェース20は、空検出器74およびゲットコントローラ278を含む。ゲットコントローラ278は、代表的に、前記受け側サブシステムからのゲット要求を渡すが、FIFO回路200が空の場合、これらのような要求を無効にする。同期インタフェースとは異なり、非同期プットインタフェース40のような非同期インタフェースは、フルまたは空検出器、または外部コントローラを含まない。非同期インタフェースはクロック信号において動作しないため、いっぱいまたは空のような例外をあげ、データ動作を一時的に停止する必要はない。したがって、非同期インタフェースを有するFIFO回路がいっぱいまたは空になる場合、前記プットまたはゲット承認を、前記データ動作を行うのが安全になるまで、無期限に保留することができる。FIFO回路200の場合において、プット承認信号45put_ackを、FIFO回路200がいっぱいである場合、保留し、前記プット動作を行うのが安全である場合、伝送する。図9および10は、第3の好適実施形態によるFIFO回路300を示す。FIFO回路300を、前記送り側サブシステムが同期であり、前記受け側サブシステムが非同期である場合、使用することができる。同期プットインタフェース10を、図9に示すように非同期ゲットインタフェース50と共に使用する。前記送り側サブシステムは送り側クロック信号12CLK_putにおいて動作し、前記受け側サブシステムは非同期に動作する。図10に示すように、FIFO回路300は、同一のセル370a、370b、370cおよび370dの環状アレイを含み、このFIFO回路300は、2つの外部インタフェースである同期プットインタフェース10および非同期ゲットインタフェース50と、共通データバスである送り側データバス16data_putおよび受け側データバス56get_dataにおいて通信する。図6に関して上述した同期プットインタフェース10は、フル検出器72およびプットコントローラ376を含む。FIFO回路300は、空検出器を持たず、代わりに、ゲット承認信号55get_ackを、FIFO回路300が空の場合、保留し、前記ゲット動作を行うのが安全である場合、伝送する。図1に関して上述した同期プットプロトコルを図11に示す。同期プットインタフェース10は、プット動作を、プット要求信号14put_reqおよびデータ項目をプットデータバス16data_putにおいて受けた場合、送り側クロック信号12CLK_putの立ち上がりエッジの直後に開始する。前記FIFO回路がいっぱいになった場合、図11に示すようにグローバルフル信号18fullを次のクロックサイクルの前に示し、同期プットインタフェース10をどのような他の動作からも防ぐ。図12は、図2に関して上述した同期ゲットプロトコルを示す。同期ゲット動作は、受け側クロック信号22CLK_getの立ち上がりエッジの直後に示されるゲット要求信号24req_getによって可能になる。クロック周期の終了によって、データ項目をゲットデータバス28data_getにおいてその有効信号30valid_getと共に置く。前記FIFO回路がこのクロック周期中に空になる場合、グローバル空信号28emptyも次のクロック周期の立ち上がりエッジの直後に示し、同期ゲットインタフェース20を前記FIFO回路が空でなくなるまで停止する。ゲット要求24req_getに続いて、有効信号30valid_getおよびグローバル空信号28emptyは、3つの結果、すなわち、aデータ項目をデキューしてもよく、他のデータ項目を利用可能であるすなわち、valid_get=1,empty=0;bデータ項目をデキューしてもよく、FIFO回路が空になったすなわち、valid_get=1,empty=1;またはc前記FIFO回路が空であり、データ項目をデキューできないvalid_get=0,empty=1を示すことができる。前記非同期プットおよびゲットプロトコルを図13および14に示す。前記非同期インタフェースがクロックを持たないため、これらは、当該技術分野において既知のように、4相束データ形式の通信を使用する束データ通信におけるさらなる詳細は、S.ファーバー、非同期設計、サブミクロンエレクトロニクスの会報、461-492ページ、1997年;I.サザーランド、マイクロパイプライン、ACMの発表、326、720-738ページ、1989年6月と、H.ヴァンガゲルドンク他、非同期低電力805C51マイクロコントローラ、非同期回路およびシステムにおける専門研究における国際シンポジウム議事録とにおいて記載されており、これらは、これらの全体における参照によってここに含まれる。データ項目は、データ動作が要求される前に前記データバスにおいて安定した値を持たなければならない。図13に示すように、前記送り側は、プット動作を、データ項目を送り側データバス46put_dataに置き、要求を前記FIFO回路に発し、この要求をプット要求信号44put_reqを示すことによってエンキューすることによって開始する。前記エンキュー動作の完了を、プット承認信号45put_ackを示すことによって示す。前記2つの制御線を、実際的に、最初にプット要求44put_req、次にプット承認45put_ackを遊び状態にリセットする。同様に、非同期ゲット動作を図14に示す。このゲット動作を、ゲット要求信号54get_reqを示し、データ項目をゲットデータバス56get_dataにおいてデキューすることによって行う。この動作の完了に応じて、ゲット承認信号55get_ackを示す。その後、ゲット要求信号54get_reqを示すのを止め、次にゲット承認信号55get_ackも示すのを止める。同期サブシステムおよび非同期サブシステムによって正確に動作するFIFO回路100、200および300を構成するために、各々のセルは、前記送り側または受け側環境と調和するように選択された4つの別個の交換可能な構成部品、すなわち、1前記プット動作を行い、前記送り側環境、すなわち同期または非同期によって動作するように構成されたプット構成要素と、2前記ゲット動作を行い、前記受け側環境、すなわち同期または非同期によって動作するように構成されたゲット構成要素と、3前記セルがデータ項目を有するかどうかの表示を与え、前記送り側環境および受け側環境の双方によって動作するように構成されたデータ有効性DVコントローラと、4前記送り側環境および受け側環境の双方によって動作するように構成されたレジスタとから成る構成を有する。したがって、セル170a-dおよび370a-dにおけるプット構成要素は、これらが同期送り側環境によって動作するように構成されているため、実際的に同じである。セル170a-dおよび270a-dにおけるゲット構成要素は、これらが同期受け側環境によって動作するように構成されているため、実際的に同じである。セル270a-dのプット構成要素を非同期送り側環境によって動作するように構成し、セル370a-dのゲット構成要素を非同期送り側環境によって動作するように構成する。前記データ有効性コントローラの目的は、セルがいっぱいである場合およびセルが空である場合と、セルが有効データを有する場合とを示すことである。各々のセルにおけるレジスタを2つの部分、前記プット構成要素書き込みポートに属するものと、前記ゲット構成要素読み出しポートに属するものとに分割する。前記プット構成要素、ゲット構成要素、データ有効性コントローラおよびレジスタを互いに取り付け、完全なセルを得る。非同期送り側および同期受け側と関連して使用することができるFIFO回路100を、図5および6と関連して同じセル170a、170b、170cおよび170dのアレイと共に上述した。FIFO回路100のセル170aのような典型的な個々のセルを図15および16に示す。セル170aに関する以下の説明は、セル170b、170cおよび170dにも適合する。各々のセル170aは、4つのインタフェース、1同期プットインタフェース171と、2同期ゲットインタフェースと、3前記セルのアレイの右側セルとのインタフェースと、4前記セルのアレイの右側セルとのインタフェースとを有する。同期プットインタフェース171において、セル170aは、共通プットデータバス16data_putにおいてデータを受ける。プット動作を、プットコントローラ76図6参照の出力であるプットイネーブル信号80en_putによって行うことができる。プット要求信号14req_putは、データ有効性本実施形態においては常に示されるを示す。プット要求信号14req_putのセル170aへの伝送を図6から省略しており、図を複雑にするのを避けている。セル170aはフル検出器72と、セル170aが空の時に示される空ビット182e_iによって通信する。典型的なセル170aの状態を、非同期SRラッチ180のようなデータ有効性DVコントローラによって示す。同期ゲットインタフェース172図15において、セル170aは、共通ゲットデータバス26data_getにおいてデータを、本実施形態においては常に示されるその有効性信号184valid_iと共に出力する。図6に示すように、有効性信号184valid_iをFIFO回路100において使用せず、後述するいくつかの実施形態において使用する。同期ゲットインタフェース172を、ゲットコントローラ78図6参照の出力であるゲットイネーブル信号186en_getによって有効にする。セル170aは空検出器74と、セル170aがいっぱいである場合に示されるフルビット188af_iによって通信する。右のセルとのインタフェース173において、各々のセル170a-dは、プットトークン入力190ptok_inにおいてトークンを受け、右のセルからゲットトークン入力196ptok_outを受ける。左のセルとのインタフェース174において、各々のセル170は、プットトークン出力194ptok_outにおいてトークンを渡し、ゲットトークン出力196gtok_outを左のセルに渡す。第1実施形態によるセル170aを図16にも示す。セル170aの動作を、セル170aによるプット動作と次のゲット動作とを追跡することによって説明することができる。最初に、セル170aは、空状態すなわち、e_i=1およびf_i=0においてなんのトークンもなく開始する。セル170aは、プットトークン190ptok_in=1において送り側クロック信号12CLK_putの立ち上がりエッジにおいて右のセルからプットトークを受けるのを待ち、前記送り側がプットデータバス16data_putにおいて有効データ項目を置くのを待つ。有効データ項目をすべてのセルに、プットコントローラ176図6参照の出力であるプットイネーブル信号180en_put=1によって示す。有効データがあり、セルがプットトークンすなわち、AND181を得ている場合、セル170aは、3つの動作、すなわち、1レジスタ191REGを有効にし、前記データ項目およびプット要求信号14req_putをラッチする、2セル170aが有効データ項目を有することを示すf_i=1を非同期にセットする、3左上エッジトリガD型フリップフロップETDFF193を有効en_put=1にし、前記プットトークンを左のセルにプットトークン出力194ptok_outにおいて渡す、を行う。送り側クロック信号12CLK_putの次のクロックサイクルの立ち上がりエッジにおいて、前記データ項目および有効性ビットを最終的にラッチし、前記プットトークンを左のセルに渡す。セル170aによるデータのデキューは、実際的に同じやり方で進み、違いをここに示した。セル170aは、ゲットトークンをゲットトークン入力192gtok_in=1において右のセルから受けるのを待つ。これが起こった場合、セル170は、有効ビット183v_i、すなわち、ラッチされたプット要求信号14req_putの有効バス184valid_iにおける放送を許可する。前記ゲットトークンがゲットトークン入力192gtok_in=1において受信され、前記受け側がデータ項目をゲットイネーブル信号186en_get=1によって要求した場合、セル170aは、前記データ項目を共通ゲットデータバス26data_getにおいて置くことを非同期に許可し、セル170が空であることを示すe_i=1を非同期にセットする。示されたゲットイネーブル信号186en_getの到着は、左下エッジトリガD型フリップフロップETDFF195が前記ゲットトークンをゲットトークン出力196gtok_outにおいて渡すことを可能にする。次のクロックサイクルの開始において、前記ゲットトークンは次に左のセルに渡される。FIFO回路100、200および300の各々は、少なくとも1つの同期インタフェースを有することができる。したがって、前記FIFO回路動作は同期しなければならない。混合クロックFIFO回路は、高度な同時動作を有し、すなわち、いつでも前記FIFO回路の状態、すなわち空かいっぱいかをプットインタフェース10および/またはゲットインタフェース20によって変更することができ、プットインタフェース10およびゲットインタフェース20の各々を異なったクロックの下ですなわち非同期に動作させることができる。同時に、各々のインタフェースは、FIFO回路の状態をそれ自身のクロックの下で読み出す。グローバルフル信号18full図6および10を前記プットインタフェースによって読み出し、グローバル空信号28empty図6および8を前記ゲットインタフェースによって読み出す。したがって、調和しない読み出しを避けるために、同期装置を前記2つのグローバル信号、フル信号18fullおよび空信号28emptyの双方に加えている。各々の同期装置は、対応するグローバル信号を適切なクロックに調節する。好例の本実施形態において、1対の同期化ラッチを使用するが、頑健性を増すために、3つ以上のラッチを使用してもよいことを注意する。図17、18および19に示すように、同期装置をフル検出器72および空検出器74の出力部に加え、送り側クロック信号12CLK_putおよび受け側クロック信号22CLK_getによって各々制御する。ここに記載した同期装置は、遅延の追加のクロックサイクルを前記FIFO回路の現在の状態の読み出しに追加する。したがって、前記FIFO回路の瞬時の状態を単に示す簡単なフル検出器および空検出器は、失敗、すなわちオーバフローまたはアンダフローを結果として生じるかもしれない。例えば、1対の同期ラッチを使用するFIFO回路がいっぱいになった場合、前記送り側インタフェースは2クロックサイクル後に止まる。次のクロックサイクルにおいて、前記送り側は、新たなデータ項目を置き、読み出されていないデータ項目を効率的に上書きする。逆に、前記FIFO回路が空になった場合、前記受け側インタフェースは、2クロックサイクル後にとまり、次のクロックサイクルにおいて、前記受け側は空のセルを読み出すかもしれない。本発明による解決法は、グローバルフル信号18fullおよびグローバル空信号28emptyの規定および実施を変更し、FIFO回路を、予め決められた数より少ないセルが空である場合、いっぱいとみなす。第1の好適実施形態によれば、前記FIFO回路を、すべてのセルが空でないか、1個のセルが空である場合、いっぱいとみなす。したがって、空のセルが2つより少ない場合、前記FIFO回路をいっぱいと宣言し、前記送り側サブシステムは、2クロックサイクル後に止まる前に、最終データ項目を安全に置くことができ、新たな返事のない要求を発することができる。図11-12に関して説明したプロトコルは変化しない。唯一の影響は、ときには前記2つのシステムはnプレースFIFO回路をn-1プレースFIFOとみなすことができることである。図17に示すフル検出器72は、上述したいっぱいの規定を実施する。FIFO回路100は、予め決められた数より少ない連続的なセルが空である場合、いっぱいと宣言する。図17に示すように、連続的なセルに関する空ビット182e_i、すなわち、e_0およびe_1と、e_1およびe_2と、e_2およびe_3;e_3およびe_0とを評価し、これらの連続的なセルの対のいずれもが空でないとわかった場合、FIFO回路100がいっぱいであると宣言する。ラッチ171および173の対を加え、グローバルフル信号18fullを送り側クロック信号12CLK_putと同期させている。空の同様な規定は、FIFO回路100における予め決められた数より少ないセルがいっぱいである場合に適合する。この好適実施形態において、2つより少ないデータ項目がある場合、前記FIFO回路が空であると宣言することができる。これらの状況の下で、前記受け側サブシステムは、2クロックサイクル後に止まる前に、最後のデータ項目を除去することができ、新たな返事のない要求を発することができる。しかしながら、上述したような空の早い検出は、FIFO回路100デッドロックさせてしまうかもしれない。ほとんど空ne規定前記FIFO回路におけるゼロまたは1データ項目の欠点は、FIFO回路100を、1つデータ項目を含んでいるにもかかわらず空と宣言するが、要求する受け側が依然として止まることである。既知の空の代わりの規定は、真の空oeであり、これは、前記回路において何かデータ項目があるか否かの指示である。真の空信号oeは代表的に同期化によって遅延するため、前記真の空信号の欠点は、アンダフローを生じるかもしれないことである。本発明による解決法は、バイモデル空検出器74を使用することであるこの構成要素を以下により詳細に説明する図18-19に示す。前記バイモデル検出器は、ほとんど空ne状態と真の空oe状態との双方を決定する。これら2つの空信号を次に前記受け側によって同期化し、グローバル空信号28emptyに結合する。しかしながら、前記ほとんど空検出は、通常は真の空oeより先行するであろう。前記バイモデル空検出器は、前記受け側からの最新のゲット要求の発生に部分的に基づいてグローバル空信号28emptyを宣言する。少なくとも1クロックサイクルの間に最新のゲット要求がなかった場合、真の空信号oeが優勢になる。これは、FIFO回路100において1つデータ項目がある場合、重要になる。ほとんど空信号neは、前記FIFO回路が空であることを示し、真の空信号oeは、前記FIFO回路が空でないことを示す。この状況において、ゲットインタフェース20は、前記データ項目を受けなければならず、真の空信号oeを使用してFIFO状態、すなわち空でないことを示し、主張しない。しかしながら、前記ゲットインタフェースがちょうどデータ項目を除去した場合、真の空信号oeに関する同期化遅延が引き起こす前記FIFOのアンダフローを防ぐために、ほとんど空信号neを使用し、前記状態、すなわち空を示さなければならない。他のシナリオによれば、前記FIFO回路は、少なくとも1サイクルの間からになってもよく、すなわち、グローバル空信号28emptyを主張してもよい。次のクロックサイクル中、空信号oeが優勢になる。第1の好適実施形態によれば、バイモデル空検出器74を2つの検出器、ほとんど空検出器120図18および真の空検出器130図19によって実現する。前記2つの信号を結合し、図19に関して後述するようにグローバル空信号28emptyを発生する。図18に示すほとんど空検出器120は、上述したフル検出器72と同様であり、セルの連続する対のフルビット188f_i、すなわち、f_0およびf_1と、f_1およびf_2と、f_2およびf_3と、f_3およびf_0とを評価する。個々のデータ項目を有するセルの2つの連続する対が見つからない場合、信号121empty_pにおいてFIFO回路100が空であると宣言する。ラッチの対124および126を使用し、ほとんど空信号122neをゲットクロック信号22CLK_getに同期化する。図19に示す真の空検出器130は、前記FIFO回路の真の空oe状態を決定する。この規定によれば、データ項目がない場合、FIFO回路100は空であり、この場合において、真の空信号132oeを示す。したがって、真の空検出器130は、各々のフルビット88f_iを評価し、なにかデータ項目が存在するか否かを決定する。真の空信号132oeは同期化によって遅延し、これはアンダフローを引き起こすかもしれない。この状況を防ぐために、真の空信号132oeを、各々のゲット動作後、ニュートラルなFIFO回路空値に同期的にセットする。これを、第2ラッチ136の前にゲットイネーブル信号186en_getとの第1ラッチ134によるクロック供給された後に、出力信号138をOR演算することによって実現する。各々のゲット動作後に真の空信号をセットする結果として、真の空信号oeは、前記FIFO回路においてデータ項目がないことを示す必要がない。特に、2つ以上データ項目が存在し、ゲットイネーブル信号186en_getを示す場合、真の空検出器130は真の空信号132oeを出力する。ポテンシャルデッドロック問題を、本発明により、ほとんど空信号122および真の空信号132の組み合わせによって解決する。大部分の場合において、ほとんど空検出器120および真の空検出器130は同じ結果を発生し、すなわち、ほとんど空信号122neおよび真の空信号132oeは同じである。FIFO回路100がいくつかのデータ項目を有し、ゲットイネーブル信号186en_getが、ラッチ134がクロック供給する時とラッチ136がクロック供給する時との間に示されない場合、真の空信号132oeおよびほとんど空信号122neの双方はFIFO回路100が空でないことを示し、すなわち、双方の信号を示さない。同様に、FIFO回路100がデータ項目を含まない場合、真の空信号132oeおよびほとんど空信号122neの双方は前記FIFO回路が空であることを示し、すなわち、双方の信号を示す。FIFO回路100が正確に1個のデータ項目を含む場合、異なった状況が起こり、すなわち、前述の期間中、ゲットイネーブル信号186en_getの主張がない場合、ほとんど空信号122は前記FIFO回路が空ne=1であることを示し、真の空信号132は前記FIFO回路が空でないoe=0ことを示す。この状況は、前記ゲットインタフェースが前記FIFOにおける次から最後のデータ項目の除去を許可した後に起こりうる。この次のステップは、他のゲット要求があるか否かに依存し、1現在のクロックサイクルにおいて他のゲット要求がある場合、この要求を満たし、ほとんど空検出器120が前記FIFOの空を宣言しすなわち、ほとんど空信号neを示し、前記ゲットインタフェースを次のクロックサイクルにおいて止める。2ゲット要求がない場合、真の空検出器130が次のクロックサイクルにおいて優勢になり、前記FIFOが空でないことを宣言しすなわち、真の空信号oeを示さず、次のゲット要求を満足させる。最後のデータ項目をデキューするときはいつも、ほとんど空信号neが再びすぐに優勢になり、前記ゲットインタフェースを時間どおりに止める。この時点において、さらなるゲット要求が満たされず、ほとんど空信号neを再び使用し、FIFO100の状態を示す。プットコントローラ176を図20に示す。プットコントローラ176は、前記FIFO回路100におけるプット動作およびプットトークンの移動を可能または不可能にする。図20に示すように、これらの動作を、data_putにおいて有効なデータ項目がある、すなわち、プット要求信号18req_putが示され、前記FIFO回路がいっぱいでない、すなわち、グローバルフル信号18fullが示されていない場合にのみ可能にする。上述したシナリオにおいて、前記FIFO回路は少なくとも1サイクルの間空になり、ゲット要求信号24req_getが前記受け側によって形成されたか否かにかかわらず、ゲットイネーブル信号196en_getを示さない。このような場合において、真の空信号18oeを次のクロックサイクルにおいてリセットせず、優勢にさせない。この場合において、前記FIFOが一度空になったら、1つのデータ項目を前記プットインタフェースによってエンキューする場合、真の空信号oeは優勢のままであり、結局oeは示されず、グローバル空信号28emptyは示されず、ゲットインタフェース20は前記データ項目を移動することができ、したがって、デッドロックを回避する。図21に示すゲットコントローラ178は、FIFO回路100におけるゲット動作およびゲットトークンの移動を可能にまたは不可能にする。ゲットイネーブル信号186en_getを、前記受け側からの要求があり、すなわち、ゲット要求信号24req_getが示され、ほとんど空検出器120および真の空検出器130の少なくとも一方が、FIFO回路100が空でないことを示す場合にのみ示される。第2実施形態によるFIFO回路200図7および8および第3実施形態によるFIFO回路300図9および10の各々は、1つの非同期インタフェースおよび1つの同期インタフェースを有する。図7-8に関して上述したように、FIFO回路200は、非同期プットインタフェースおよび同期ゲットインタフェースを有し、図9-10に関して上述したFIFO回路300は、同期プットインタフェースおよび非同期ゲットインタフェースを有する。したがって、各々のFIFO回路200および300は、上述したFIFO100からの多少の同期構成要素を利用する。より特に、同期プットインタフェース10をFIFO回路300におけるプットインタフェースとして使用する。同様に、FIFO回路100における同期ゲットインタフェース20をFIFO回路200においてもゲットインタフェースとして使用する。上述したように、各々のセルは4つの別個の部分、すなわち、プット構成要素と、ゲット構成要素と、データ有効性DVコントローラと、レジスタとを有する。セル270a-dおよび370a-dの各々は、データ有効性コントローラの一変形、すなわち、データ有効性コントローラ280およびデータ有効性コントローラ380を各々使用する。セル170a図16において、前記データ有効性コントローラは単純であったSRラッチ180。しかしながら、同期構成要素および非同期構成要素の双方を有するFIFO200および300に関して、動作はより複雑になる。これらの設計は、同じセルへの読み出し動作および書き込み動作間のさらなる同時発生を可能にする。したがって、前記データ有効性コントローラは、後述するように増加した同時発生性を可能にしなければならない。第2実施形態によるFIFO回路、すなわち、非同期-同期FIFO回路200のインタフェースを、図7に関して上述した。これらを、非同期プットインタフェース40図3および同期ゲットインタフェース20図2を使用することによって得る。これらのインタフェースにおけるFIFO回路プロトコルを図12-13に関して説明し、FIFO回路200のアーキテクチャを図7-8に示した。特に図8の参照と共に、FIFO回路200は、上述した多数の構成要素、すなわち、ゲットコントローラ278、空検出器74および同期セル構成要素のようなインタフェース構成要素を使用する。セル270a-dにおける残りの構成要素、すなわち、非同期プット構成要素およびデータ有効性コントローラを、図22-23の参照と共にここに説明する。図23に示すセル270aの同期部分は、FIFO回路100図6にけるセル170a図16の対応する構成要素と同様である。セル270aの非同期部分をいくつかのブロックに分解する。前記プット構成部分は、プットトークン取得ブロック293OPTおよびC要素295を具える。プットトークン取得ブロック293OPTは、個々のプットトークンを右インタフェースからプットトークン入力290welにおいて得る。これを、図24において示すようなバーストモード機械として実現するバーストモード機械は、T.チェルセア他、トークンリングを使用する少待ち時間非同期FIFO、IEEEASYNCH’00シンポジウム、210-220においてもより詳細に記載されており、この文献は、その全体における参照によってここに含まれる。図24のバーストモード仕様400において示したように、プットトークン取得ブロック293は、右のセルを監視し、プット動作に関して待機する。完全なトークン通過を右のセルによって示し、この完全なトークン通過は、最初にプットトークン入力290welをステップ402においてセットし、次にプットトークン入力290welをステップ404においてリセットする。この動作が起こった後、前記プットトークンは現在のセルにあり、すなわち、プットトークン信号297ptokをセットするステップ404。プットトークン信号297ptokがセットされた場合、他のプット動作を行うことができる。一度プット動作が開始したら、ステップ406において、プットトークン信号297ptokをリセットし、プットトークン出力294weをセットする。前記プット動作が終了した場合、プットトークン出力294weをリセットし、前記プットトークンを次のセルに送り、サイクルが再開する。プットトークン取得ブロック293OPTの第1好適実施形態を図25aに示す。プットトークン取得ブロック293’OPTの第2好適実施形態を図25bに示す。前記プット動作を図26に示すC要素295によって制御する。当該技術分野において既知のように、C要素295は、すべてのその入力が1である場合その出力が1であり、すべてのその入力が0になる場合出力が0になる。非同期C要素において、入力のいくつか‘’をマークしたは、該素子の出力を1にセットすることにおいてのみ関係し、これらの値は他の出力変化と無関係である。非同期プット動作に関するセル270a図23の動作は以下のように進む。最初に、セル270aは空状態e_i=1およびf_i=0において開始し、前記プットトークンもゲットトークンも存在しない。プットトークン入力290welにおける1対の変化後、前記プットトークンはこのセルにあるptok=1。この環境がプット要求信号44put_req=1におけるプット動作をリセットし、前記セルが空e_i=1である場合、プットトークン出力294weをセットする。このイベントは、いくつかの動作を並列に生じさせ、前記セルの状態はデータ有効性コントローラ280DV_asによっていっぱいに変化しすなわち、フルビット288af_iを示し、すなわち、レジスタ291REGはデータをラッチすることができ、セル270aは前記プットトークンを左のセルに送ることと、OPTをリセットすることptok=0との双方を開始する。プット要求信号44put_reqが示されない場合、プットトークン出力294weも示されない。このイベントは、前記プットトークンを左のセルに送ることを完了する。ここで、セル270aを、レジスタ291REGにおけるデータをデキューした後に他のプット動作を開始するように準備する。セル270aにおける同期ゲット動作は、データ項目が該セルに存在した後に開始する。一度フルビット288af_iがセットされたら、空検出器74図8はFIFO回路200の状態を空でないとして計算し、ゲット要求24req_getをゲットイネーブル信号86en_getにおいて渡す。セル270aが前記ゲットトークンを有する場合、レジスタ291REGの内容をゲットデータバス26data_getにおいて出力し、受け側クロック信号22CLK_getの次の立ち上がりエッジにおいて、前記ゲットトークンを次のセルに渡す。同時に、前記セルの状態をデータ有効性コントローラ280DV_asによって空に変化させる。前記セルが前記ゲットトークンを有する場合gtok=1、前記セルの有効性ビットを、ゲット要求における信号86en_getにかかわらず、有効性データバス284valid_iにおいて放送することに注意されたい。これは、有効性バス284valid_iにおける信号が常にある値に駆動されることを保証する。図27に示すように、データ有効性コントローラ280DV_asは、前記セルがデータ項目を含むことを示し、すなわち、前記プット動作およびゲット動作を制御する。入力としてプットトークン出力294weを受け入れ、このプットトークン出力294はプット動作が起こったことを合図し、入力として読み出しイネーブル信号299reを受け入れ、この読み出しイネーブル信号299はゲット動作が起こったことを合図する。データ有効性コントローラ280DV_asの出力は、セル270aが空であることを示す本実施形態においては最初にのみ使用される空ビット282ae_iと、セル270aがいっぱいであることを示す本実施形態においては前記空検出器において使用されるフルビット288af_iである。データ有効性コントローラ280DV_asに関するプロトコルを、ペトリネット410として図28に示すペトリネットは、同時動作を説明するのに一般的に使用される既知のグラフィカル表現である。これは、ラベル付けされたイベントの変化と、黒点によって示されたトークンを格納する場所とから成る。変化は、入ってくる弧のすべてがトークンを有する場合に始まり、これらのトークンをその出て行く弧のすべてに渡すペトリネットに関するさらなる詳細は、タダオムラタ、ペトリネット:性質、解析および用途、IEEE、774、1989年4月の会報と、L.Y.ロゼンブランおよびA.V.ヤコレブ、信号グラフ:自己時間決定から時間決定されたものへ、イタリア、トリノ、時間決定されたペトリネットにおける国際ワークショップの会報、199-207ページと、タム-アンチュー、VLSIを設計するモデルにおける非同期ディジタル回路、インテグレーション、VLSIジャーナル、42:99-113、1986年6月とにおいて考察されており、これらの文献はこれらの全体における参照によってここに含まれる。一度プット動作が開始したら、データ有効性コントローラ280DV_asは、ステップ412において、空ビット282ae_i=0をリセットし、フルビット288af_i=1をセットし、したがって、前記セルがいっぱいであることを宣言し、ゲット動作を可能にする。ステップ414においてゲット動作が開始したre後、ステップ415において、CLK_getクロックサイクルの最中に前記セルをいっぱいでないfi=0と非同期に宣言する。前記ゲット動作がステップ416においてCLK_getの次の立ち上がりエッジにおいて終了した場合、ステップ417において、データ有効性コントローラ280DV_asはセル270aを空ei=1にセットする。プットトークン出力294weをステップ418においてリセットし、前記動作を再開することができる。この非同期動作は、前記プットトークンの通過を遅延させ、プット動作によるデータ不正を防ぎ、ゲット動作は依然として起こる。第3の好適実施形態によるFIFO回路、すなわち、同期-非同期FIFO回路300図9および10をここにより詳細に説明する。FIFO回路300のインタフェースを図9に関して上述した。これらを、非同期プットインタフェース10図1参照および非同期ゲットインタフェース50図4参照を取り付けることによって得る。これらのインタフェースにおけるFIFO回路プロトコルを図11および14の参照と共に説明し、FIFO回路300のアーキテクチャを図9-10に示した。図10の参照と共に、FIFO回路300は、上述した多数の構成要素、すなわち、プットコントローラ376、フル検出器72および同期セル構成要素のようなインタフェース構成要素を使用する。セル370aにおける残りの構成要素、例えば、非同期ゲット構成要素およびデータ有効性コントローラDV_saを、図29-30の参照と共にここに説明する。好例のセル370aのインタフェースを図29に示す。セル370a、370b、370cおよび370dの各々は同様である。セル370aは4つのインタフェース、すなわち、1同期プットインタフェース371と、2非同期ゲットインタフェース372と、3トークンを得るための右すなわち前のセルとのインタフェース373と、4トークンを渡すための左すなわち次のセルとのインタフェース374とにおいて通信する。前記同期プットインタフェースにおいて、セル370aは共通プットデータバス16data_putにおけるデータを受ける。プット動作をプットイネーブル信号80en_putによって行うことができ、この信号はプットコントローラ76図10参照の出力である。プット要求信号14req_putは、データ有効性本実施形態においては常に示されるを示す。セル370aはフル検出器72図10と空ビット82e_iによって通信し、このビットは、セル370aが空の場合、ハイを示す。プット動作を、送り側クロック信号12CLK_putによって管理する。各々のセル370a-dは、非同期ゲットインタフェース372と通信し、データをゲットデータバス56get_dataにおいて伝送し、ゲット動作に関するグローバル要求54get_reqを受け、各々のセル370aは、前記デキュー動作の終わりを55get_ackにおいて示す。非同期ゲットインタフェース50は有効データのみを通す図4参照ため、前記有効ビットをセル370aの非同期ゲットインタフェースにおいて使用しない。各々のセルは、前記プットトークンをプットトークン入力90ptok_inにおいて受け、前記ゲットトークンをゲットトークン入力392relにおいて受け、前記プットトークンをプットトークン出力94ptok_outにおいて渡し、前記ゲットトークンをゲットトークン出力369reにおいて渡す。セル370aの同期部分は、FIFO回路100図16参照の対応する構成要素と同様である。図30を参照し、セル370aの非同期部分は、いくつかのブロック、例えば、ゲットトークン取得ブロック393OGTおよび非同期C要素395に分解する。ゲットトークン取得ブロック393OGTは、個々のゲットトークンを右のインタフェースからゲットトークン入力392relにおいて得る。ゲットトークン取得ブロック393OGTを、図31aに示すようなバーストモード非同期状態機械として実現する。ゲットトークン取得ブロック393’OGTの他の好例の実現を、図31bに示す。バーストモード仕様420を図32に示す。ゲットトークン取得ブロック393OGTは、右のセルを監視し、ゲット動作を待機する。右のセルは完全なトークン通過を、最初にステップ422においてゲットトークン入力392rel図30をセットし、次にステップ424においてゲットトークン入力392relをリセットすることによって示す。これらの動作が完了するとき、前記ゲットトークンは現在のセルにあり、すなわち、ゲットトークン信号39gtokを図32においてセットするステップ424。ゲットトークン出力396re図30をステップ426において、非対称C素子395図30によって制御されるようにセットする。前記セルがいっぱいであり、前記ゲットトークンを有し、前記受け側がデータ項目を要求する場合、前記ゲット動作を開始する。デキューが完了したら、前記受け側との通信を、前記要求をリセットし、次に前記承認をリセットすることによって終了する。ゲットトークン出力366reを、現在のセルのゲットトークン信号397gtokとともにステップ427においてリセットする。セル370aは、プット動作をセル170aと同じように行う。前記セルがプットイネーブル信号80en_putにおいて許可され、プットトークンptok_in=1を有する場合、レジスタ391REGはデータと、前記有効性ビットとして使用されるプット要求14req_putとをエンキューすることができる。並行して、データ有効性コントローラ380DV_saは、セル370がいっぱいであることを宣言する。送り側クロック12CLK_putのクロックサイクルの開始時に、データを前記レジスタ中にラッチし、前記ゲットトークンを次のセルに渡す。前記ゲット動作を以下のように行う。最初に、セル370aは、ゲットトークン無しで開始するgtok=0。ゲットトークン取得ブロック393OGTは、ゲットトークン入力392relにおけるアップおよびダウン変化に関して待機し、一度これらが生じたら、ゲットトークンは該セルにありgtok=1、レジスタ391REGの出力をゲットデータバス56get_dataにおいて駆動する。前記ラッチされた有効性ビットを、前記非同期ゲットインタフェースによって使用しない。セル370aは、前記受け側サブシステムまたは環境がデータ項目を要求し、ゲット要求信号54を示すget_req=1のを待つ。これが生じた場合、セル370aは、該セルがデータ項目を含む、すなわち、フルビット388aが示されたf_i=1場合にのみこれを承認する。これら3つの条件すなわち、gtok=1、get_req=1およびf_i=1が満たされた場合、ゲットトークン出力396reをセットし、すなわちこのイベントは前記環境に対するデータ動作を承認し、ゲットトークンブロック393OGTのリセットを開始し、データ有効性コントローラ380DV_saにおけるセルの状態のリセットを開始し、前記ゲットトークンを次のセルに送るのを開始する。前記ゲットインタフェースの動作サイクルは、ゲット要求信号54get_reqを示さなくなることによって完了し、これによりゲットトークン出力396reは示されなくなり、ゲットトークン出力396reの立ち上がりエッジにおいて開始したすべての動作が完了する。データ有効性コントローラ380DV_saは、前記セル画いっぱいまたは空である場合を示し、これを図34において示す。データ有効性コントローラ380DV_saに関するプロトコルを、図35においてペトリネット430として示す。通常の空状態において、空ビット382aを示しe_i=1、フルビット388示さないf_i=0。プット動作が開始した場合、データ有効性コントローラ380DA_saは、ステップ431において空ビット382e_iを同時にリセットし、ステップ432においてフルビット388f_iをセットしすなわち、セル370aの状態はいっぱいになる、したがってゲット動作が可能になる。前記プット動作の終了、すなわち、書き込みイネーブル信号394weを示さなくなることステップ433を、ゲット動作と同時に行うことができる。ゲット動作を、reにおける下降変化が生じた後、ゲットトークン出力396reにおける1対の変化ステップ434および435によって合図し、前記セルの状態はステップ436および437において空に変化しe_i=1およびf_i=0、通常の動作を再開することができる。ここに記載したいくつかの追加の実施形態は、上述したFIFO回路100、200および300と実際的に同様であるが、送り側および受け側間のリレー局として動作するように変更した。図36に示すように、システム450は、きわめて長いワイヤ456および458によって接続された、送り側サブシステム452および受け側サブシステム454のような2つのサブシステムを含んでもよい。この構成に関して、サブシステム452および454間で移動する信号は、移動に数クロックサイクル掛かってもよく、遅延ペナルティを導入してもよい。図37に示すように、変更したシステム460は、リレー局462a、462b、462cおよび462dを導入し、同じクロックの下で動作しなければならないサブシステム464およびサブシステム466間の接続遅延ペナルティを軽減する。リレー局462a、462b、462cおよび462dの導入は、前記長いワイヤを、1つ以上のクロックサイクル遅延に各々が対応する切片468および470に分解する。一連のリレー局は、FIFO回路と同様に、あるシステムから他のシステムにパケットを送ることによって動作する。当該技術分野において既知のリレー局462bのような単一クロックリレー局の実現を図38に与える。通常は、左のリレー局からのパケットを右のリレー局に渡す。図37において、パケットを代表的にリレー局462aからリレー局462bに渡す。右のリレー局、すなわちリレー局462bは、前記リレー局を左のすなわちリレー局462aに止めることによって、データフローにおける反圧力をかける能力を有する。図38に示すように、好例のリレー局462bをリレー局462aとリレー局462c図37参照との間に配置する。図38を参照し、リレー局462bは2つのレジスタ、すなわち、通常動作において使用される主レジスタ472MRと、停止したとき余分のパケットを格納するのに使用される補助レジスタ474ARとを有する。混合クロックサイクルFIFO回路100とは異なり、前記リレー局は、フル信号および空信号を含まず、プット要求およびゲット要求も含まない。代わりに、通常動作において、データをクロックサイクルごとに渡す。データ通過は通常は連続であるため、有効データおよび無効データの双方が伝送され、有効データがエンキューされないときは常に向こうデータが渡される。したがって、有効ビットをプットデータバスおよびゲットデータバスの双方に付け、各々のデータベースにおけるデータパケットを形成する。図37-38の参照と共に、リレー局462a、462cおよび462dと実際的に同様のリレー局462bは以下のように動作する。通常動作において、すべてのクロックサイクルの開始において、左のリレー局462aからパケット入力信号468packetInにおいて受けたデータパケットを複製し、次に、パケット出力信号470packetOutにおいて右のリレー局462cに送る。パケットは、データバスにおけるデータ項目と、前記パケットにおけるデータの有効性を示す有効ビットとから成る。受け側システム466がデータの受信を止めたい場合、stopIn476を示す。次のクロックエッジにおいて、リレー局462bはstopOut478を示し、次のパケットを補助レジスタ474にラッチする。この時点において、前記セルは停止する。リレー局462bが停止しない場合、リレー局462bは、前記パケットを最初に主レジスタ472MRから右のリレー局462cに送り、その後、補助レジスタ474ARから前記パケットを送る。図39を参照し、FIFO回路500は、混合クロックリレー局として動作する。FIFO回路500は、FIFO回路100図5および6に示すと実際的に同様であり、違いをここに示す。前記リレー局を有するFIFO回路500のインタフェースを図39に示す。FIFO回路500を、図37に示すように前記一連のリレー局において配置し、FIFO回路500は、リレー局462aおよび462bを含むような左リレー局チェーンと、リレー局462cおよび462dを含むような右リレー局チェーンとの間をインタフェースする。1つのクロックの下で動作する図37に示すシステム460と異なり、各々のリレー局チェーンは異なったクロックの下で動作してもよく、例えば、リレー局チェーン462a/462bは第1クロック領域502の下で動作し、リレー局チェーン462c/462dは第2クロック領域504の下で動作する。上述したFIFO回路100とは異なり、FIFO回路500は、常に有効データ項目を左のプットインタフェースから右のゲットインタフェース508に渡す。FIFO回路500に関するプロトコルにおいて、いずれのインタフェースにもアクティブな要求は存在しない。代わりに、ゲットインタフェース508およびプットインタフェース506を、データ項目の連続フローをアクティブに停止または遮断するように構成する。前記フローを停止するために、リレー局462cはstopIn476を示す。同様に、FIFO回路500は、パケット入力信号468packetInにおいてプットインタフェース506からのデータ項目を常にエンキューする。したがって、FIFO回路100と異なり、プット要求信号514req_putを単独で使用してデータ有効性を示し、プット要求信号514を制御信号ではなくパケット入力信号468packetInの一部として処理する。いっぱいになった場合、FIFO回路500はプットインタフェース506を、グローバルフル信号18fullであるstopOut512を示すことによって停止する。したがって、単一クロックリレー局システム460と異なり、例えStopIn476がゲットインタフェース508において示されなかったとしても、混合クロックFIFO回路リレー局500はプットインタフェース506において停止することができ、StopOut478を示すことができる。FIFO回路500はFIFO回路100と同様であり、ここに示すようないくつかの変更がある。図40の参照と共に、実際的にはフル検出器72を図17-19に関して上述したように実現し、セル570a、570b、570cおよび570dにおいて空ビット582a、582b、582cおよび582de_iの数を決定する。前記FIFO回路リレー局は通常はデータをすべてのクロックサイクルにおいて送り、デッドロックが生じないようにするため、FIFO回路100のバイモデル空検出器74図18-19参照は必要ない。代わりに、空検出器574は、図18において示したほとんど空検出器120と実際的に同様である。図20-21に関して上述したFIFO回路100のプットコントローラ176およびゲットコントローラ178を、FIFO回路500において変更する。FIFO回路100において、プットコントローラ176は、プット要求信号14req_putを受ける場合、有効データ項目のエンキューを可能にする。FIFO回路500のプットコントローラ576は、単に有効データ項目を通過させる。プットコントローラ576は、FIFO回路500がいっぱいにならない限り、データ項目を連続的にエンキューする。したがって、プットコントローラ576を、この好適実施形態において、グローバルフル信号fullにおけるインバータとして実現する図41参照。デキューを要求次第行ったFIFO回路100のゲットコントローラ178と異なり、ゲットコントローラ578は、データ項目の連続的なデキューを可能にする。図42に示すように、デキューを、FIFO回路500が空になる場合上述したようにほとんど空信号122neが示されるか、前記ゲットインタフェースが、もはやデータ項目を、stopIn476を示すことによって受け入れることができない場合にのみ中断する。有効データおよび無効データの双方を渡してもよいため、ゲットコントローラ678は有効ビット584valid_iも使用し、有効性信号30valid_getを計算する。図43、44、45、47、48および49を参照し、FIFO回路600および700は、各々混合非同期-同期インタフェースおよび同期-非同期インタフェースと共に動作するように構成されたリレー局として動作する2つの追加の実施形態である。FIFO回路600および700は、2つの重大な設計の挑戦、混合された非同期/同期環境間の調和の能力と、長い相互接続遅延とに同時に取り組む。非同期送り側490と同期受け側466との間のリレー局による通信の基本的なアーキテクチャを図43に示す。前記非同期領域は、データパケットをあるいは、ここにより詳細に考察する非同期リレー局ARS494aおよび494bのチェーンを経てFIFO回路600に送る。前記パケットを、次に、前記非同期領域に伝送し、同期リレー局462aおよび462bのチェーンを経て受け側466へ送る。原則として、前記非同期インタフェースにおける通信を、任意に頑健に行うことができ、リレー局が非同期領域出力における必要はない。2つの非同期データ符号化形式、二重レールバンドルデータおよび単一レールバンドルデータが当該技術分野において既知である。単一レールバンドルデータは、S.ファーバー、非同期設計、1997年、サブミクロンエレクトロニクスの会報、461-492ページにおいてより詳細に記載されており、この文献はその全体における参照によってここに含まれる。1対のワイヤにおいて各々のデータビットの値および有効性の双方を符号化する二重レール形式は、ワイヤ遅延に関して任意に頑健でありしかし、重大なオーバヘッドを有する、ARSのチェーンを必要としない。前記単一レールバンドルデータ形式は、前記データそれ自身と制御ワイヤとの間のタイミング仮定を有し、したがって、ARSのチェーンは、ステージ間のワイヤの長さを制限し、ホップを短くすることが望ましいかもしれない。最終的に、性能の問題に関して、ARSが必要なくても、これらはスループットを上げるのに望ましいかもしれない。ARSのチェーンを、マイクロパイプラインとして一般に知られる非同期FIFO回路を使用することによって直接実現することができるマイクロパイプラインについてのさらなる詳細は、I.サザーランド、マイクロパイプライン、ACMの情報工学、326、720-738ページ、1989年と、M.シング他、ネズミ捕り:超高速変化合図非同期パイプライン、ACMTAU-00ワークショップ、2000年とに記載されており、これらの双方は、これらの全体における参照によってここに含まれる。前記同期データパケットと異なり、前記非同期データパケットは有効性ビットを必要としない。むしろ、有効データパケットの存在を制御要求ワイヤにおいて合図し、ARSは受信データパケット間で無期限に待つことができる。したがって、標準のマイクロパイプラインは、所望のARS動作を実現する。図44および45において示すFIFO回路600は、非同期領域602と同期領域604との間で動作する。非同期インタフェース640は、上述したFIFO回路200における非同期インタフェース40と同様であり、同じ通信プロトコルをサポートする。このインタフェースは、前記マイクロパイプラインインタフェースと正確に調和する。同様に、同期インタフェース620は、FIFO回路500における個々の同期ゲットインタフェース508と同様であり、同じ通信プロトコルをサポートする。図45を参照し、アーキテクチャレベルにおいて、FIFO回路600は、図8に示すFIFO回路200と同様である。セル670a、670b、670cおよび670dは、セル270a、270b、270cおよび270dと実際的に同様である。ゲットコントローラ678は、ゲットコントローラ178と実際的に同様であるゲットコントローラ278と、上述するように異なる。空検出器674は、FIFO回路500における空検出器574と実際的に同様であり、図18に示すほとんど空検出器120に対応する。FIFO回路600は以下のように動作する。データ項目がその非同期インタフェース640において存在する場合は常に、FIFO回路600はこれをエンキューする。同期インタフェース620において、FIFO回路600は、空になるか、右のリレー局によって停止されない限り、クロックサイクルごとにデータ項目を出力する。したがって、FIFO回路500と異なり、データパケットは、FIFO回路600が停止する場合にのみ無効になる。ゲットインタフェース620は、FIFO回路600が空であるか、右から停止された場合、停止する。しかしながら、FIFO回路600は無効データパケットをエンキューしないため、右のインタフェースは、FIFO回路600が停止しない限り、有効データパケットのみを受ける。ゲットコントローラ678の実現を図46に示す。ゲットコントローラ678は、右から停止されない場合stopIn=0で、前記リレー局が空でない場合ne=0、ゲット動作を可能にするen_get=1。これは、FIFO回路100のゲットコントローラ178と同じように動作する。右に送られたパケットは、前記リレー局が停止されるか、空である場合、無効である。したがって、前記非同期インタフェースから受けたすべてのパケットは有効であり、したがって、別個の有効性ビットは必要なく、代わりに、ゲットイネーブル信号686en_getを有効性信号30valid_getとして使用する。同期送り側464と非同期受け側492との間のリレー局による通信の基本アーキテクチャを図47に示す。前記同期領域は、データパケットを、同期リレー局462aおよび462bのチェーンを経てFIFO回路800に送る。前記パケットを、次に、非同期受け側292へ、好適には前記非同期領域におけるARS494aおよび494bのチェーンを経て伝送する。FIFO回路700のインタフェースを図48に示す。非同期インタフェース750は、図9に示すFIFO回路500の非同期インタフェース50と実際的に同様であり、同じ通信プロトコルをサポートする。同様に、図48に示す同期インタフェース710は、FIFO回路300の同期インタフェース10と実際的に同様であり、同じ通信プロトコルをサポートする。図49に示すFIFO回路700のセル770a、770b、770cおよび770dは、図10に示すFIFO回路のセルセル370a、370b、370cおよび370dと実際的に同様である。FIFO回路700とFIFO回路300との間の唯一の重大な違いは、各々のFIFO回路のプットコントローラである。通常動作中、FIFO回路700は、データパケットを前記同期インタフェースから非同期インタフェースに伝送する。右における前記非同期リレー局は、FIFO回路700がデータを供給する時は常にデータパケットをエンキューする。しかしながら、前記同期インタフェースにおいて、すべての非同期データパケットは有効でなければならないので、FIFO回路700はフィルタとして動作する。入ってくる同期パケットの有効性ビット14valid_putを使用し、これらをフィルタ処理する。より特に、前記パケットが有効である場合、FIFO回路700を、このパケットをエンキューするように構成し、そうでなければ、このパケットを破棄するように構成する。FIFO回路700は、有効データパケットのみをエンキューし、FIFO回路700がいっぱいの場合、前記プットインタフェースを停止する。上述したFIFO回路500は、受けたすべてのデータパケットをエンキューし、もういっぱいのセルがない場合、停止する。これと相違して、FIFO回路700は、以下の条件、1該FIFOがいっぱい、および/または2無効データパケットを受けた場合、という条件の下で停止する。プットコントローラ776の好例の実現を、図50において与える。プットコントローラ776は、前記リレー局がいっぱいでなくfull=0、入ってくるデータパケットが有効であるvalid_put=1場合にのみ、プット動作を可能にするen_put=1。プットコントローラ776の実現は、プットコントローラ176と同様であるが、req_putのような明示的なプット要求信号の役割を、すべてのパケットに付随する暗示的な有効ビット14valid_putによって得た。例種々のFIFO回路設計の性能を評価するために、好例のFIFO回路100、200、300、500、600および700の各々をシミュレートした。各々のFIFO回路を、市販のツールと学術的なツールの双方を使用してシミュレートした。前記設計を、ライブラリおよびカスタム回路の双方を使用して構築し、ケイデンスHSPICEを使用してシミュレートした。バーストモードコントローラを、ミニマリストミニマリストは、R.フーラー他ミニマリスト:バーストモード非同期マシーンの組み立て、検証および試験可能性に関する環境、CUCS-020-99、1999年においてより詳細に説明されており、この文献は、その全体における参照によってここに含まれるを使用して組み立て、前記ペトリネットコントローラを、ペトリフィペトリフィは、J.コータデラ他、ペトリフィ:非同期コントローラの同時仕様および組み立てを操作するツール、IEICE情報およびシステムにおける処理、Vol.E80-D、ナンバー3、315-325ページ、1997年3月においてより詳細に説明されており、この文献は、その全体における参照によってここに含まれるを使用して組み立てた。前記FIFO回路設計を、0.6μHPCMOS技術において、3.3Vおよび300Kにおいてシミュレートした。以下は、前記制御バスおよびデータグローバルバスのモデル化における特別な考察である。制御バスput_req/en_putおよびget_req/en_reqを、適切なバッファリングによって挿入した。承認信号put_ackおよびget_ackを、個々の承認を1つのグローバル承認に合併するORゲートのツリーとして構成する。get_dataおよびdata_getのモデル化において、前記バスにおける各々のビットをトライステートバッファによって駆動する。前記環境によって寄与された負荷と、前記FIFO回路内の長いワイヤによって寄与された負荷の双方をモデル化する。前記モデルは、前記環境が2つのインバータによって負荷に寄与し、各々のワイヤが1セルあたり2つのインバータのキャパシタンスおおよそ、1ワイヤあたり2nインバータによって寄与するという仮定を形成する。2つの測定基準、呼び出し時間およびスループットを各設計に関してシミュレートした。呼び出し時間は、空のFIFO回路において、プットインタフェースにおけるデータの入力から、ゲットインタフェースにおける出力においてこのデータが存在するまでの遅延である。スループットを、プットまたはゲット動作中のサイクルタイムの逆として規定する。スループットおよび呼び出し時間を、異なったFIFO回路容量およびデータ項目幅に関して計算した。前記FIFO回路の容量を、4、8または16セルに設定した。これらのFIFO回路の各々に関して、データ項目幅を8または16ビットのいずれかに設定した。最高スループットの結果を表1および2において与える。同期インタフェースに関して、スループットを、該インタフェースにクロック供給することができる最高クロック周波数として表す。前記非同期インタフェースはクロックを持たないため、スループットを100万動作/秒該インタフェースが1秒において行うことができるデータ動作数において与える。前記スループットの結果は、前記FIFO回路設計と矛盾しない。前記同期ゲットインタフェースは、空検出器74の複雑さのため、前記同期プットインタフェースより遅い。また、リレー局同期プットインタフェースは、これらにおけるプット検出器の単純さのため、これらのFIFO回路の対応物よりもいくぶん速い。同期側において、前記ゲットインタフェースは、前記レジスタの出力が前記データバスに9おいて早く可能になるため、たいがいは前記プットインタフェースより速くなる傾向がある。空のFIFO回路による呼び出し時間を、8ビットデータ項目を有する設計に関してのみ示す表3。呼び出し時間に関する実験構成は以下の通りであり、空のFIFO回路において、前記ゲットインタフェースはデータ項目を要求する。任意の時間後において、前記プットインタフェースはデータ項目を置く。前記呼び出し時間を、前記プットデータバスが有効データを有する瞬時と、前記ゲットインタフェースが前記データ項目を受け、これを使用することができる瞬時との間の経過時間として計算する。同期受け側を有するFIFO回路に関する呼び出し時間は、ユニークに規定されない。呼び出し時間は、データ項目がセルにおいて安全にエンキューされる瞬時と共に変化する。データ項目が前記プットインタフェースによってCLK_getの立ち上がりエッジの直後にエンキューされた場合、呼び出し時間は長くなる表3における最長列。前記データ項目が、前記空検出器が計算を開始する前に右からエンキューされた場合、呼び出し時間は短くなる最短列。しかしながら、非同期受け側は、前記データ項目をそのキューイング直後につかむことができ、したがって、呼び出し時間はユニークに規定されない。より興味深いことには、前記非同期受け側は同期化を必要としないため、非同期領域との通信に関する呼び出しをきわめてより高速に行うことができる。前記スループットおよび呼び出し時間の結果は、バスを基礎とする設計に関してかなり良好である。スループットは、非同期インタフェースより同期インタフェースに関して高速になる傾向がある。空のFIFO回路による呼び出し時間は、前記受信器が非同期である場合、より短くなる。上記は本発明の原理の説明的なものにすぎず、種々の変形を、当業者によって、本発明の範囲および精神から逸脱することなく行うことができることは理解されるであろう。"