JP2004510216A - 混合された非同期および同期システム用少待ち時間fifo回路 - Google Patents

混合された非同期および同期システム用少待ち時間fifo回路 Download PDF

Info

Publication number
JP2004510216A
JP2004510216A JP2002502575A JP2002502575A JP2004510216A JP 2004510216 A JP2004510216 A JP 2004510216A JP 2002502575 A JP2002502575 A JP 2002502575A JP 2002502575 A JP2002502575 A JP 2002502575A JP 2004510216 A JP2004510216 A JP 2004510216A
Authority
JP
Japan
Prior art keywords
cell
signal
token
fifo circuit
request
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.)
Granted
Application number
JP2002502575A
Other languages
English (en)
Other versions
JP4849763B2 (ja
Inventor
ティベリウ チェルシー
スティーヴン エム ナウィック
Original Assignee
ザ トラスティーズ オブ コロンビア ユニヴァーシティ イン ザ シティ オブ ニューヨーク
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 ザ トラスティーズ オブ コロンビア ユニヴァーシティ イン ザ シティ オブ ニューヨーク filed Critical ザ トラスティーズ オブ コロンビア ユニヴァーシティ イン ザ シティ オブ ニューヨーク
Publication of JP2004510216A publication Critical patent/JP2004510216A/ja
Application granted granted Critical
Publication of JP4849763B2 publication Critical patent/JP4849763B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Communication Control (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Systems (AREA)
  • Time-Division Multiplex Systems (AREA)

Abstract

FIFO設計は、異なった時間領域において動作する送り側サブシステムと受け側サブシステムとを調和させる。前記送り側サブシステムおよび受け側サブシステムは、同期であっても非同期であってもよい。本FIFO回路は、送り側時間領域にしたがって動作するように構成されたプットインタフェースと、受け側時間領域にしたがって動作するように構成されたゲットインタフェースとを含む。本FIFO回路は、レジスタと、セルの状態を示す状態コントローラとを有するセルのアレイを含む。各々のセルは、プットトークン通過回路およびプットコントローラ回路を含む、前記送り側時間領域にしたがって動作するように構成されたプット構成要素部分も有する。各々のセルは、ゲットトークン通過回路およびゲットコントローラ回路を含む、前記受け側時間領域にしたがって動作するように構成されたゲット構成要素部分を有する。混合リレー局設計は、異なった時間領域において動作する、送り側と受け側との間の待ち時間が長い送り側サブシステムと受け側サブシステムとを調和させる。

Description

【0001】
関連出願への相互参照
本願は、全体的な参照によってここに含まれる2000年6月9日に出願された“混合クロックシステム用少待ち時間FIFO”という表題の米国仮特許出願番号60/210642に対して優先権を請求する。
【0002】
発明の背景
発明の分野
本発明は、FIFO回路に関し、より特には、異なった速度において差動するサブシステムを調和させ、きわめて長い相互接続遅延を有するサブシステム間を調和させる、少待ち時間FIFO設計に関する。
【0003】
関連技術の背景
VLSIにおける傾向は、多くのクロック領域を含む“チップ上システム”の方にますます向かっている。興味深い問題は、これらの領域を強固に調和させることである。いくつかの適切な解決法、特に、確実な少ない待ち時間の通信を提供する解決法がある。
【0004】
チップ上システムの設計において、2つの基本的な挑戦がある。第1の挑戦は、異なったタイミング仮定の下で動作するシステムに関する。これらのタイミング仮定は、異なったクロック速度と、同期および非同期環境の双方とを含む。第2の挑戦は、システム間の通信における長い遅延を有する設計に関する。
【0005】
多数のFIFO回路および構成要素が、サブシステム間のタイミングずれを処理するために開発された。いくつかの設計は、単一クロックシステムを処理することに限定される。これらのアプローチは、クロックスキュー、ドリフトおよびジッタを処理するために提案された(R.コル他、“多同期システムに関する適応性同期”、1998年10月、コンピュータ設計におけるIEEE国際会議(ICCD’98)、188〜189ページと、M.グリーンストリート、“STARIチップの実装”、1995年、コンピュータ設計におけるIEEE国際会議(ICCD)会報、38〜43ページ)。長い相互接続遅延を処理するために、“待ち時間無感応プロトコル”が提案されたが(L.キャロニ他、“構成待ち時間無感応設計による補正に関する方法論”、ICCAD、1999年)、これらの解決法は、単一クロック領域に限定される。
【0006】
混合タイミング領域を処理するいくつかの設計も提案されている。設計アプローチの1つのカテゴリは、データ項目および/または制御信号を、受け側によって、そのクロックと調和させることなく同期することを試みる。特に、セイゾビックは、非同期環境を同期環境と“同期化FIFO”によって強固に調和させる。(J.セイゾビック、“パイプライン同期化”、1994年11月、非同期回路およびシステムにおける高度な研究における国際シンポジウム会報、87〜96ページ)。しかしながら、この設計の待ち時間は、FIFO段の数に比例し、その実装は、高価な同期装置を含む。さらに、彼の設計は、送り側がデータ項目を一定のレートで発生することを必要とする。
【0007】
他の設計は、混合クロックシステムの強固な調和を、受け側のクロックを一時的に変更することによって達成する。同期化失敗を、受け側の局所クロックを休止または引き伸ばすことによって回避する。各々の通信する同期システムを非同期ロジックで包み、このロジックは、他のシステムと通信し、クロックを調節する。このアプローチは、局所システムのクロックを変化させ、再始動するこれらに待ち時間ペナルティを導入することができる。
【0008】
ジェリージェックス他の米国特許第5598113号明細書は、混合クロックFIFO回路を記載している。しかしながら、この米国特許明細書におけるFIFO回路は、同期化の実現において重大なより大きいオーバヘッドを有する。例えば、この設計は、セルごとに2つの同期装置を有する。
【0009】
したがって、少ない待ち時間と高いスループットを有し、混合された同期/非同期環境において動作することができるFIFO回路に対する必要性が当該技術分野において存在する。
【0010】
発明の要約
本発明の目的は、少ない待ち時間と高いスループットを有するFIFO回路を提供することである。
【0011】
本発明の他の目的は、混合された同期/非同期環境において有用なFIFO回路を提供することである。
【0012】
本発明のさらに他の目的は、長い遅延および混合された同期/非同期環境との接続におけるリレー局として使用することができるFIFO回路を提供することである。
【0013】
本発明の依然として他の目的は、特定の動作プロトコル、すなわち、同期または非同期における使用に対して構成され、他の構成要素と関連して、これらの他の構成要素の動作プロトコルにかかわらず使用することができるFIFO回路構成要素を提供することである。
【0014】
本発明のこれらおよび他の目的は、ここにおける開示に関して明らかになり、第1動作プロトコルの下で動作する送り側サブシステムと、第2動作プロトコルの下で動作する受け側サブシステムとの間のデータ項目の伝送を調和させるFIFO回路によって成し遂げられる。
【0015】
プットインタフェースを、前記第1動作プロトコルに従って動作するように構成し、このプットインタフェースは、前記送り側サブシステムからのデータ項目を伝送するプットデータバスと、前記送り側サブシステムからのデータ項目を受けると共に前記プットデータバスからのデータ項目をエンキューするプットデータ要求入力部とを具える。ゲットインタフェースを、第2時間領域に従って動作するように構成し、このゲットインタフェースは、前記データ項目を前記受け側サブシステムに伝送するゲットデータバスと、前記受け側サブシステムからのゲット要求を受け、前記ゲットデータバスへのデータ項目をデキューするゲットデータ要求入力部とを具える。
【0016】
セルのアレイを設ける。各セルは、前記データ項目を前記プットデータバスから受けると共に前記データ項目を前記ゲットデータバスに伝送するように構成されたレジスタと、該セルの状態の指示を与える状態コントローラと、前記第1動作プロトコルにしたがって動作するように構成されたプット構成要素と、前記第2動作プロトコルにしたがって動作するように構成されたゲット構成要素とを有する。
【0017】
前記プット構成要素は、プットトークンを第1隣接セルから受け、前記プットデータバスから受けたデータ項目を前記レジスタに前記プット要求と該セルの状態とに基づいてラッチし、前記プットトークンを第2隣接セルに渡す。前記ゲット構成要素は、前記ゲットトークンを第1隣接セルから受け、前記レジスタからのデータ項目を前記ゲットデータバスに前記ゲット要求とゲットトークンと前記セルの状態とに応じてデキューし、前記ゲットトークンを第2隣接セルに渡す。
【0018】
本発明によれば、上述した目的は満たされ、少ない待ち時間および高いスループットを有するFIFO回路に対する当該技術分野における必要性と、混合された同期/非同期環境における動作可能性とは実質上満たされる。本発明の他の特徴と、その特性と、種々の利点とは、添付した図面と、説明的な実施形態の以下の詳細な説明とから明らかになるであろう。
【0019】
好適実施形態の詳細な説明
本発明によるFIFO回路は、2つのサブシステム、すなわち、データ項目を発生する送り側サブシステムと、データ項目を消費する受け側サブシステムとの間を仲介する。FIFO回路は、同様のセルの環状バッファとして実現され、この環状バッファにおいて、各セルは共通データバスにおける2つのサブシステムと通信する。セルの入力および出力動作は、リングの周囲の2つのトークン、すなわち、データをエンキューする1つと、データをデキューする1つとによって命令される。データ項目は、これらがエンキューされるとリングを回って動かず、したがって、少ない待ち時間に関する機会を与え、データ項目がエンキューされると、すぐ後にデキューすることができる。
【0020】
各々のFIFO回路を、後述するように多数の異なったシステムにおける他のモジュラ構成要素と共に使用することができるモジュラ構成要素に分割する。インタフェース、すなわちFIFO回路の部分の組を一緒に結合し、後述する送り側端および受け側端双方における所望のタイミング仮定を満たす完全なFIFO回路を得ることができる。ここで使用するように、“時間領域”は、前記サブシステムが同期であるか非同期であるかに関係する。
【0021】
本発明によれば、各FIFO回路は、2つのインタフェース、すなわち、環境と協働するように設計されたFIFO回路の部分を有する。第1に、前記プットインタフェースを、前記送り側サブシステムと通信する前記FIFO回路の一部とする。同期プットインタフェースを図1において示し、非同期プットインタフェースを図3において示す。第2に、前記ゲットインタフェースを、前記受け側サブシステムと通信する前記FIFO回路の一部とする。図2は同期ゲットインタフェースを示し、図4は非同期ゲットインタフェースを示す。環境と調和するFIFO回路を、前記送り側サブシステムおよび受け側サブシステムが同期、同期および非同期、または、非同期であっても、示された条件に適切に対応するプットインタフェースおよびゲットインタフェースを取り付けることによって組み立てることができる。
【0022】
図1−2は、本発明による2つの同期インタフェースを示す。図1において示す同期プットインタフェース10を、送り側クロック信号12(CLK_put)によって制御する。同期プットインタフェース10に対する2つの入力、前記送り側による要求を通信し、データをエンキューするプット要求信号14(req_put)と、データ項目に関するバスである送り側データバス16(data_put)とが存在する。グローバルフル信号18(full)を、前記FIFO回路がいっぱいである場合にのみ示し、そうでない場合、示さない。
【0023】
図2は、同期ゲットインタフェース20を示し、これを受け側クロック信号22(CLK_get)によって制御する。データ項目をデキューする前記受け側からの単一の制御入力信号は、ゲット要求信号24(req_get)である。データを、受け側データバス26(data_get)に置く。グローバル空信号28(empty)を、前記FIFO回路が空の場合にのみ示す。有効データ信号30(valid_get)は、データ項目が有効であることを示す。
【0024】
図3−4に示す非同期インタフェースは、クロック信号と同期しない。図3は、同期プットインタフェース10の入力部(図1)と実際的に同様の2個の入力部を有する非同期プットインタフェース40を示す。第1に、送り側による要求を通信し、データをエンキューするプット要求信号44(put_req)を供給し、グローバル空信号28(empty)を、前記FIFOが空の場合にのみ示す。有効データ信号30(valid_get)は、データ項目が有効であることを示す。
【0025】
図4に示す非同期ゲットインタフェース50は、ゲット要求信号54(get_req)および出力データバス58(get_data)を有する。前記同期対応部と異なり、このインタフェースは、データ有効性信号またはグローバル空信号を持たない。非同期ゲットインタフェース50はゲット承認信号55(get_ack)を供給し、この信号は前記ゲット動作が完了したことを示す。
【0026】
図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を使用することができる。
【0027】
図6、8および10の各々のFIFO回路100、200および300は、実際的に同様であり、ここに示す違いを有する。例えば、各々のFIFO回路100、200および300は、共通データバスにおける前記プットおよびゲットインタフェースと通信する同一のセルの環状アレイを有する。各動作の制御ロジックは、前記セルに分配され、これら2つのインタフェース間の協働を可能にする。データは、前記セルのアレイにおいて不動である。したがって、データ項目がエンキューされると、動かず、その場において簡単にデキューされる。
【0028】
いつでも、FIFO回路100、200および300において2つのトークン、すなわちプットトークンおよびゲットトークンが存在する。FIFO回路100、200および300の入力および出力動作を、これらのトークンによって制御する。前記プットトークンを使用し、データ項目のエンキューを可能にし、前記ゲットトークンを使用し、データ項目のデキューを可能にする。前記プットトークンを有するセルを、前記キューの“尾”とみなしてもよく、前記ゲットトークンを有するセルを、前記キューの“頭”とみなしてもよい。通常動作において、前記プットトークンは、代表的に、前記ゲットトークンより先にある。セルがトークンをデータ動作に使用されると、前記トークンは、それぞれの動作が完了した後、次のセルに渡される。このトークンの動きを、詳細に後述するように、インタフェース要求と、前記FIFO回路の状態、すなわち、空であるか満たされているかとの双方によって制御する。
【0029】
FIFO回路100、200および300のアーキテクチャに共通のいくつかの利点が存在する。データは前記セル間で入力から出力に渡されないため、前記FIFO回路は、少ない待ち時間の可能性を有する。したがって、データ項目がエンキューされるとすぐ、デキューも可能になる。第2に、前記FIFO回路は、低電力の可能性も提供し、データ項目はFIFO回路にある間、不動である。最後に、これらのアーキテクチャは高度にスケーラブルであり、すなわち、前記FIFO回路の能力と前記データ項目の幅とを、きわめて少ない設計変更によって変えることができる。
【0030】
第1好適実施形態によるFIFO回路100を図5および6に示す。FIFO回路100を、前記送り側サブシステムが同期であり、前記受け側サブシステムも同期である場合、使用することができる。したがって、前記モジュラ同期プットインタフェース10を、図5に示すようなモジュラ同期ゲットインタフェース20と共に使用する。前記送り側サブシステムは送り側クロック信号12(CLK_put)において動作し、前記受け側サブシステムは受け側クロック信号22(CLK_get)において動作する。
【0031】
図6に示すように、FIFO回路100を、同一セル170a、170b、170cおよび170dの環状アレイによって構成し、このFIFO回路は、2つの外部インタフェース、すなわち、送り側データバス16における同期プットインタフェース10(data_put)および受け側データバス26における同期ゲットインタフェース20(data_get)によって通信する。
【0032】
同期インタフェース10および20は、2つの追加の構成要素の形式、すなわち、(1)FIFO回路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と、“空”および“いっぱい”の規定とを、より詳細に後述する。
【0033】
第2の好適実施形態によるFIFO回路200を図7および8に示す。FIFO回路200を、前記送り側サブシステムが非同期で前記受け側サブシステムが同期である場合に使用することができる。したがって、図7に示すように、モジュラ非同期プットインタフェース40をモジュラ同期ゲットインタフェース20と共に使用する。前記送り側サブシステムは非同期に動作し、前記受け側サブシステムは受け側クロック信号22(CLK_get)において動作する。
【0034】
図8に示すように、FIFO回路200を同一のセル270a、270b、270cおよび270dの環状アレイによって構成し、このFIFO回路200は2つの外部インタフェース、すなわち、共通データバスである送り側データバス46(data_put)および受け側データバス16(get_data)における非同期プットインタフェース40および同期ゲットインタフェース20と通信する。
【0035】
図6に関して上述したような同期ゲットインタフェース20は、空検出器74およびゲットコントローラ278を含む。ゲットコントローラ278は、代表的に、前記受け側サブシステムからのゲット要求を渡すが、FIFO回路200が空の場合、これらのような要求を無効にする。同期インタフェースとは異なり、非同期プットインタフェース40のような非同期インタフェースは、フルまたは空検出器、または外部コントローラを含まない。非同期インタフェースはクロック信号において動作しないため、“いっぱい”または“空”のような例外をあげ、データ動作を一時的に停止する必要はない。したがって、非同期インタフェースを有するFIFO回路がいっぱい(または空)になる場合、前記プット(またはゲット)承認を、前記データ動作を行うのが安全になるまで、無期限に保留することができる。FIFO回路200の場合において、プット承認信号45(put_ack)を、FIFO回路200がいっぱいである場合、保留し、前記プット動作を行うのが安全である場合、伝送する。
【0036】
図9および10は、第3の好適実施形態によるFIFO回路300を示す。FIFO回路300を、前記送り側サブシステムが同期であり、前記受け側サブシステムが非同期である場合、使用することができる。同期プットインタフェース10を、図9に示すように非同期ゲットインタフェース50と共に使用する。前記送り側サブシステムは送り側クロック信号12(CLK_put)において動作し、前記受け側サブシステムは非同期に動作する。
【0037】
図10に示すように、FIFO回路300は、同一のセル370a、370b、370cおよび370dの環状アレイを含み、このFIFO回路300は、2つの外部インタフェースである同期プットインタフェース10および非同期ゲットインタフェース50と、共通データバスである送り側データバス16(data_put)および受け側データバス56(get_data)において通信する。
【0038】
図6に関して上述した同期プットインタフェース10は、フル検出器72およびプットコントローラ376を含む。FIFO回路300は、空検出器を持たず、代わりに、ゲット承認信号55(get_ack)を、FIFO回路300が空の場合、保留し、前記ゲット動作を行うのが安全である場合、伝送する。
【0039】
図1に関して上述した同期プットプロトコルを図11に示す。同期プットインタフェース10は、プット動作を、プット要求信号14(put_req)およびデータ項目をプットデータバス16(data_put)において受けた場合、送り側クロック信号12(CLK_put)の立ち上がりエッジの直後に開始する。前記FIFO回路がいっぱいになった場合、図11に示すようにグローバルフル信号18(full)を次のクロックサイクルの前に示し、同期プットインタフェース10をどのような他の動作からも防ぐ。
【0040】
図12は、図2に関して上述した同期ゲットプロトコルを示す。同期ゲット動作は、受け側クロック信号22(CLK_get)の立ち上がりエッジの直後に示されるゲット要求信号24(req_get)によって可能になる。クロック周期の終了によって、データ項目をゲットデータバス28(data_get)においてその有効信号30(valid_get)と共に置く。前記FIFO回路がこのクロック周期中に空になる場合、グローバル空信号28(empty)も次のクロック周期の立ち上がりエッジの直後に示し、同期ゲットインタフェース20を前記FIFO回路が空でなくなるまで停止する。ゲット要求24(req_get)に続いて、有効信号30(valid_get)およびグローバル空信号28(empty)は、3つの結果、すなわち、(a)データ項目をデキューしてもよく、他のデータ項目を利用可能である(すなわち、valid_get=1,empty=0);(b)データ項目をデキューしてもよく、FIFO回路が空になった(すなわち、valid_get=1,empty=1);または(c)前記FIFO回路が空であり、データ項目をデキューできない(valid_get=0,empty=1)を示すことができる。
【0041】
前記非同期プットおよびゲットプロトコルを図13および14に示す。前記非同期インタフェースがクロックを持たないため、これらは、当該技術分野において既知のように、4相束データ形式の通信を使用する(束データ通信におけるさらなる詳細は、S.ファーバー、“非同期設計”、サブミクロンエレクトロニクスの会報、461−492ページ、1997年;I.サザーランド、“マイクロパイプライン”、ACMの発表、32(6)、720−738ページ、1989年6月と、H.ヴァン ガゲルドンク他、“非同期低電力805C51マイクロコントローラ”、非同期回路およびシステムにおける専門研究における国際シンポジウム議事録とにおいて記載されており、これらは、これらの全体における参照によってここに含まれる)。データ項目は、データ動作が要求される前に前記データバスにおいて安定した値を持たなければならない。
【0042】
図13に示すように、前記送り側は、プット動作を、データ項目を送り側データバス46(put_data)に置き、要求を前記FIFO回路に発し、この要求をプット要求信号44(put_req)を示すことによってエンキューすることによって開始する。前記エンキュー動作の完了を、プット承認信号45(put_ack)を示すことによって示す。前記2つの制御線を、実際的に、最初にプット要求44(put_req)、次にプット承認45(put_ack)を遊び状態にリセットする。
【0043】
同様に、非同期ゲット動作を図14に示す。このゲット動作を、ゲット要求信号54(get_req)を示し、データ項目をゲットデータバス56(get_data)においてデキューすることによって行う。この動作の完了に応じて、ゲット承認信号55(get_ack)を示す。その後、ゲット要求信号54(get_req)を示すのを止め、次にゲット承認信号55(get_ack)も示すのを止める。
【0044】
同期サブシステムおよび非同期サブシステムによって正確に動作するFIFO回路100、200および300を構成するために、各々のセルは、前記送り側または受け側環境と調和するように選択された4つの別個の交換可能な構成部品、すなわち、(1)前記プット動作を行い、前記送り側環境、すなわち同期または非同期によって動作するように構成されたプット構成要素と、(2)前記ゲット動作を行い、前記受け側環境、すなわち同期または非同期によって動作するように構成されたゲット構成要素と、(3)前記セルがデータ項目を有するかどうかの表示を与え、前記送り側環境および受け側環境の双方によって動作するように構成されたデータ有効性(DV)コントローラと、(4)前記送り側環境および受け側環境の双方によって動作するように構成されたレジスタとから成る構成を有する。したがって、セル170a−dおよび370a−dにおけるプット構成要素は、これらが同期送り側環境によって動作するように構成されているため、実際的に同じである。セル170a−dおよび270a−dにおけるゲット構成要素は、これらが同期受け側環境によって動作するように構成されているため、実際的に同じである。セル270a−dのプット構成要素を非同期送り側環境によって動作するように構成し、セル370a−dのゲット構成要素を非同期送り側環境によって動作するように構成する。
【0045】
前記データ有効性コントローラの目的は、セルがいっぱいである場合およびセルが空である場合と、セルが有効データを有する場合とを示すことである。各々のセルにおけるレジスタを2つの部分、前記プット構成要素(書き込みポート)に属するものと、前記ゲット構成要素(読み出しポート)に属するものとに分割する。前記プット構成要素、ゲット構成要素、データ有効性コントローラおよびレジスタを互いに取り付け、完全なセルを得る。
【0046】
非同期送り側および同期受け側と関連して使用することができる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は、共通プットデータバス16(data_put)においてデータを受ける。プット動作を、プットコントローラ76(図6参照)の出力であるプットイネーブル信号80(en_put)によって行うことができる。プット要求信号14(req_put)は、データ有効性(本実施形態においては常に示される)を示す。プット要求信号14(req_put)のセル170aへの伝送を図6から省略しており、図を複雑にするのを避けている。セル170aはフル検出器72と、セル170aが空の時に示される空ビット182(e_i)によって通信する。典型的なセル170aの状態を、非同期SRラッチ180のようなデータ有効性(DV)コントローラによって示す。同期ゲットインタフェース172(図15)において、セル170aは、共通ゲットデータバス26(data_get)においてデータを、本実施形態においては常に示されるその有効性信号184(valid_i)と共に出力する。図6に示すように、有効性信号184(valid_i)をFIFO回路100において使用せず、後述するいくつかの実施形態において使用する。同期ゲットインタフェース172を、ゲットコントローラ78(図6参照)の出力であるゲットイネーブル信号186(en_get)によって有効にする。セル170aは空検出器74と、セル170aがいっぱいである場合に示されるフルビット188a(f_i)によって通信する。右のセルとのインタフェース173において、各々のセル170a−dは、プットトークン入力190(ptok_in)においてトークンを受け、右のセルからゲットトークン入力196(ptok_out)を受ける。左のセルとのインタフェース174において、各々のセル170は、プットトークン出力194(ptok_out)においてトークンを渡し、ゲットトークン出力196(gtok_out)を左のセルに渡す。
【0047】
第1実施形態によるセル170aを図16にも示す。セル170aの動作を、セル170aによるプット動作と次のゲット動作とを追跡することによって説明することができる。最初に、セル170aは、空状態(すなわち、e_i=1およびf_i=0)においてなんのトークンもなく開始する。セル170aは、プットトークン190(ptok_in=1)において送り側クロック信号12(CLK_put)の立ち上がりエッジにおいて右のセルからプットトークを受けるのを待ち、前記送り側がプットデータバス16(data_put)において有効データ項目を置くのを待つ。有効データ項目をすべてのセルに、プットコントローラ176(図6参照)の出力であるプットイネーブル信号180(en_put=1)によって示す。
【0048】
有効データがあり、セルがプットトークン(すなわち、AND181)を得ている場合、セル170aは、3つの動作、すなわち、(1)レジスタ191(REG)を有効にし、前記データ項目およびプット要求信号14(req_put)をラッチする、(2)セル170aが有効データ項目を有することを示す(f_i=1を非同期にセットする)、(3)左上エッジトリガD型フリップフロップETDFF193を有効(en_put=1)にし、前記プットトークンを左のセルにプットトークン出力194ptok_outにおいて渡す、を行う。送り側クロック信号12(CLK_put)の次のクロックサイクルの立ち上がりエッジにおいて、前記データ項目および有効性ビットを最終的にラッチし、前記プットトークンを左のセルに渡す。
【0049】
セル170aによるデータのデキューは、実際的に同じやり方で進み、違いをここに示した。セル170aは、ゲットトークンをゲットトークン入力192(gtok_in=1)において右のセルから受けるのを待つ。これが起こった場合、セル170は、有効ビット183(v_i)、すなわち、ラッチされたプット要求信号14(req_put)の有効バス184(valid_i)における放送を許可する。前記ゲットトークンがゲットトークン入力192(gtok_in=1)において受信され、前記受け側がデータ項目をゲットイネーブル信号186(en_get=1)によって要求した場合、セル170aは、前記データ項目を共通ゲットデータバス26(data_get)において置くことを非同期に許可し、セル170が空であることを示す(e_i=1を非同期にセットする)。示されたゲットイネーブル信号186(en_get)の到着は、左下エッジトリガD型フリップフロップETDFF195が前記ゲットトークンをゲットトークン出力196(gtok_out)において渡すことを可能にする。次のクロックサイクルの開始において、前記ゲットトークンは次に左のセルに渡される。
【0050】
FIFO回路100、200および300の各々は、少なくとも1つの同期インタフェースを有することができる。したがって、前記FIFO回路動作は同期しなければならない。混合クロックFIFO回路は、高度な同時動作を有し、すなわち、いつでも前記FIFO回路の状態、すなわち空かいっぱいかをプットインタフェース10および/またはゲットインタフェース20によって変更することができ、プットインタフェース10およびゲットインタフェース20の各々を異なったクロックの下ですなわち非同期に動作させることができる。同時に、各々のインタフェースは、FIFO回路の状態をそれ自身のクロックの下で“読み出す”。グローバルフル信号18(full)(図6および10)を前記プットインタフェースによって読み出し、グローバル空信号28(empty)(図6および8)を前記ゲットインタフェースによって読み出す。したがって、調和しない読み出しを避けるために、同期装置を前記2つのグローバル信号、フル信号18(full)および空信号28(empty)の双方に加えている。各々の同期装置は、対応するグローバル信号を適切なクロックに調節する。好例の本実施形態において、1対の同期化ラッチを使用するが、頑健性を増すために、3つ以上のラッチを使用してもよいことを注意する。図17、18および19に示すように、同期装置をフル検出器72および空検出器74の出力部に加え、送り側クロック信号12(CLK_put)および受け側クロック信号22(CLK_get)によって各々制御する。
【0051】
ここに記載した同期装置は、遅延の追加のクロックサイクルを前記FIFO回路の現在の状態の読み出しに追加する。したがって、前記FIFO回路の瞬時の状態を単に示す簡単なフル検出器および空検出器は、失敗、すなわちオーバフローまたはアンダフローを結果として生じるかもしれない。例えば、1対の同期ラッチを使用するFIFO回路がいっぱいになった場合、前記送り側インタフェースは2クロックサイクル後に止まる。次のクロックサイクルにおいて、前記送り側は、新たなデータ項目を置き、読み出されていないデータ項目を効率的に上書きする。逆に、前記FIFO回路が空になった場合、前記受け側インタフェースは、2クロックサイクル後にとまり、次のクロックサイクルにおいて、前記受け側は空のセルを読み出すかもしれない。
【0052】
本発明による解決法は、グローバルフル信号18(full)およびグローバル空信号28(empty)の規定および実施を変更し、FIFO回路を、予め決められた数より少ないセルが空である場合、“いっぱい”とみなす。第1の好適実施形態によれば、前記FIFO回路を、すべてのセルが空でないか、1個のセルが空である場合、いっぱいとみなす。したがって、空のセルが2つより少ない場合、前記FIFO回路をいっぱいと宣言し、前記送り側サブシステムは、2クロックサイクル後に止まる前に、最終データ項目を安全に置くことができ、新たな返事のない要求を発することができる。図11−12に関して説明したプロトコルは変化しない。唯一の影響は、ときには前記2つのシステムはnプレースFIFO回路をn−1プレースFIFOとみなすことができることである。
【0053】
図17に示すフル検出器72は、上述した“いっぱい”の規定を実施する。FIFO回路100は、予め決められた数より少ない連続的なセルが空である場合、いっぱいと宣言する。図17に示すように、連続的なセルに関する空ビット182(e_i)、すなわち、e_0およびe_1と、e_1およびe_2と、e_2およびe_3;e_3およびe_0とを評価し、これらの連続的なセルの対のいずれもが空でないとわかった場合、FIFO回路100がいっぱいであると宣言する。ラッチ171および173の対を加え、グローバルフル信号18(full)を送り側クロック信号12(CLK_put)と同期させている。
【0054】
“空”の同様な規定は、FIFO回路100における予め決められた数より少ないセルがいっぱいである場合に適合する。この好適実施形態において、2つより少ないデータ項目がある場合、前記FIFO回路が空であると宣言することができる。これらの状況の下で、前記受け側サブシステムは、2クロックサイクル後に止まる前に、最後のデータ項目を除去することができ、新たな返事のない要求を発することができる。しかしながら、上述したような空の早い検出は、FIFO回路100デッドロックさせてしまうかもしれない。“ほとんど空”(ne)規定(前記FIFO回路におけるゼロまたは1データ項目)の欠点は、FIFO回路100を、1つデータ項目を含んでいるにもかかわらず空と宣言するが、要求する受け側が依然として止まることである。
【0055】
既知の空の代わりの規定は、“真の空”(oe)であり、これは、前記回路において何かデータ項目があるか否かの指示である。真の空信号(oe)は代表的に同期化によって遅延するため、前記真の空信号の欠点は、アンダフローを生じるかもしれないことである。
【0056】
本発明による解決法は、バイモデル空検出器74を使用することである(この構成要素を以下により詳細に説明する図18−19に示す)。前記バイモデル検出器は、“ほとんど空”(ne)状態と“真の空”(oe)状態との双方を決定する。これら2つの空信号を次に前記受け側によって同期化し、グローバル空信号28(empty)に結合する。しかしながら、前記ほとんど空検出は、通常は真の空(oe)より先行するであろう。
【0057】
前記バイモデル空検出器は、前記受け側からの最新のゲット要求の発生に部分的に基づいてグローバル空信号28(empty)を宣言する。少なくとも1クロックサイクルの間に最新のゲット要求がなかった場合、真の空信号(oe)が優勢になる。これは、FIFO回路100において1つデータ項目がある場合、重要になる。ほとんど空信号(ne)は、前記FIFO回路が空であることを示し、真の空信号(oe)は、前記FIFO回路が空でないことを示す。この状況において、ゲットインタフェース20は、前記データ項目を受けなければならず、真の空信号(oe)を使用してFIFO状態、すなわち“空でない”ことを示し、主張しない。しかしながら、前記ゲットインタフェースがちょうどデータ項目を除去した場合、真の空信号(oe)に関する同期化遅延が引き起こす前記FIFOのアンダフローを防ぐために、ほとんど空信号(ne)を使用し、前記状態、すなわち“空”を示さなければならない。
【0058】
他のシナリオによれば、前記FIFO回路は、少なくとも1サイクルの間からになってもよく、すなわち、グローバル空信号28(empty)を主張してもよい。次のクロックサイクル中、空信号(oe)が優勢になる。
【0059】
第1の好適実施形態によれば、バイモデル空検出器74を2つの検出器、ほとんど空検出器120(図18)および真の空検出器130(図19)によって実現する。前記2つの信号を結合し、図19に関して後述するようにグローバル空信号28(empty)を発生する。図18に示すほとんど空検出器120は、上述したフル検出器72と同様であり、セルの連続する対のフルビット188(f_i)、すなわち、f_0およびf_1と、f_1およびf_2と、f_2およびf_3と、f_3およびf_0とを評価する。個々のデータ項目を有するセルの2つの連続する対が見つからない場合、信号121(empty_p)においてFIFO回路100が空であると宣言する。ラッチの対124および126を使用し、ほとんど空信号122(ne)をゲットクロック信号22(CLK_get)に同期化する。
【0060】
図19に示す真の空検出器130は、前記FIFO回路の“真の空”(oe)状態を決定する。この規定によれば、データ項目がない場合、FIFO回路100は空であり、この場合において、真の空信号132(oe)を示す。したがって、真の空検出器130は、各々のフルビット88(f_i)を評価し、なにかデータ項目が存在するか否かを決定する。真の空信号132(oe)は同期化によって遅延し、これはアンダフローを引き起こすかもしれない。この状況を防ぐために、真の空信号132(oe)を、各々のゲット動作後、ニュートラルな“FIFO回路空”値に同期的にセットする。これを、第2ラッチ136の前にゲットイネーブル信号186(en_get)との第1ラッチ134によるクロック供給された後に、出力信号138をOR演算することによって実現する。各々のゲット動作後に“真の空”信号をセットする結果として、“真の空”信号(oe)は、前記FIFO回路においてデータ項目がないことを示す必要がない。特に、2つ以上データ項目が存在し、ゲットイネーブル信号186(en_get)を示す場合、真の空検出器130は真の空信号132(oe)を出力する。
【0061】
ポテンシャルデッドロック問題を、本発明により、ほとんど空信号122および真の空信号132の組み合わせによって解決する。大部分の場合において、ほとんど空検出器120および真の空検出器130は同じ結果を発生し、すなわち、ほとんど空信号122(ne)および真の空信号132(oe)は同じである。FIFO回路100がいくつかのデータ項目を有し、ゲットイネーブル信号186(en_get)が、ラッチ134がクロック供給する時とラッチ136がクロック供給する時との間に示されない場合、真の空信号132(oe)およびほとんど空信号122(ne)の双方はFIFO回路100が空でないことを示し、すなわち、双方の信号を示さない。同様に、FIFO回路100がデータ項目を含まない場合、真の空信号132(oe)およびほとんど空信号122(ne)の双方は前記FIFO回路が空であることを示し、すなわち、双方の信号を示す。
【0062】
FIFO回路100が正確に1個のデータ項目を含む場合、異なった状況が起こり、すなわち、前述の期間中、ゲットイネーブル信号186(en_get)の主張がない場合、ほとんど空信号122は前記FIFO回路が“空”(ne=1)であることを示し、真の空信号132は前記FIFO回路が“空でない”(oe=0)ことを示す。この状況は、前記ゲットインタフェースが前記FIFOにおける次から最後のデータ項目の除去を許可した後に起こりうる。この次のステップは、他のゲット要求があるか否かに依存し、(1)現在のクロックサイクルにおいて他のゲット要求がある場合、この要求を満たし、ほとんど空検出器120が前記FIFOの空を宣言し(すなわち、ほとんど空信号(ne)を示し)、前記ゲットインタフェースを次のクロックサイクルにおいて止める。(2)ゲット要求がない場合、真の空検出器130が次のクロックサイクルにおいて優勢になり、前記FIFOが空でないことを宣言し(すなわち、真の空信号(oe)を示さず)、次のゲット要求を満足させる。最後のデータ項目をデキューするときはいつも、ほとんど空信号(ne)が再びすぐに優勢になり、前記ゲットインタフェースを時間どおりに止める。この時点において、さらなるゲット要求が満たされず、ほとんど空信号(ne)を再び使用し、FIFO100の状態を示す。
【0063】
プットコントローラ176を図20に示す。プットコントローラ176は、前記FIFO回路100におけるプット動作およびプットトークンの移動を可能または不可能にする。図20に示すように、これらの動作を、data_putにおいて有効なデータ項目がある、すなわち、プット要求信号18(req_put)が示され、前記FIFO回路がいっぱいでない、すなわち、グローバルフル信号18(full)が示されていない場合にのみ可能にする。上述したシナリオにおいて、前記FIFO回路は少なくとも1サイクルの間空になり、ゲット要求信号24(req_get)が前記受け側によって形成されたか否かにかかわらず、ゲットイネーブル信号196(en_get)を示さない。このような場合において、真の空信号18(oe)を次のクロックサイクルにおいてリセットせず、優勢にさせない。この場合において、前記FIFOが一度空になったら、1つのデータ項目を前記プットインタフェースによってエンキューする場合、真の空信号(oe)は優勢のままであり、結局oeは示されず、グローバル空信号28(empty)は示されず、ゲットインタフェース20は前記データ項目を移動することができ、したがって、デッドロックを回避する。
【0064】
図21に示すゲットコントローラ178は、FIFO回路100におけるゲット動作およびゲットトークンの移動を可能にまたは不可能にする。ゲットイネーブル信号186(en_get)を、前記受け側からの要求があり、すなわち、ゲット要求信号24(req_get)が示され、ほとんど空検出器120および真の空検出器130の少なくとも一方が、FIFO回路100が空でないことを示す場合にのみ示される。
【0065】
第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においてもゲットインタフェースとして使用する。
【0066】
上述したように、各々のセルは4つの別個の部分、すなわち、プット構成要素と、ゲット構成要素と、データ有効性(DV)コントローラと、レジスタとを有する。セル270a−dおよび370a−dの各々は、データ有効性コントローラの一変形、すなわち、データ有効性コントローラ280およびデータ有効性コントローラ380を各々使用する。セル170a(図16)において、前記データ有効性コントローラは単純であった(SRラッチ180)。しかしながら、同期構成要素および非同期構成要素の双方を有するFIFO200および300に関して、動作はより複雑になる。これらの設計は、同じセルへの読み出し動作および書き込み動作間のさらなる同時発生を可能にする。したがって、前記データ有効性コントローラは、後述するように増加した同時発生性を可能にしなければならない。
【0067】
第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の参照と共にここに説明する。
【0068】
図23に示すセル270aの同期部分は、FIFO回路100(図6)にけるセル170a(図16)の対応する構成要素と同様である。セル270aの非同期部分をいくつかのブロックに分解する。前記プット構成部分は、プットトークン取得ブロック293(OPT)およびC要素295を具える。プットトークン取得ブロック293(OPT)は、個々のプットトークンを右インタフェースからプットトークン入力290(wel)において得る。これを、図24において示すようなバーストモード機械として実現する(バーストモード機械は、T.チェルセア他、“トークンリングを使用する少待ち時間非同期FIFO”、IEEE ASYNCH’00シンポジウム、210−220においてもより詳細に記載されており、この文献は、その全体における参照によってここに含まれる)。図24のバーストモード仕様400において示したように、プットトークン取得ブロック293は、右のセルを監視し、プット動作に関して待機する。完全なトークン通過を右のセルによって示し、この完全なトークン通過は、最初にプットトークン入力290(wel)をステップ402においてセットし、次にプットトークン入力290(wel)をステップ404においてリセットする。この動作が起こった後、前記プットトークンは現在のセルにあり、すなわち、プットトークン信号297(ptok)をセットする(ステップ404)。プットトークン信号297(ptok)がセットされた場合、他のプット動作を行うことができる。一度プット動作が開始したら、ステップ406において、プットトークン信号297(ptok)をリセットし、プットトークン出力294(we)をセットする。前記プット動作が終了した場合、プットトークン出力294(we)をリセットし、前記プットトークンを次のセルに送り、サイクルが再開する。プットトークン取得ブロック293(OPT)の第1好適実施形態を図25(a)に示す。プットトークン取得ブロック293’(OPT)の第2好適実施形態を図25(b)に示す。
【0069】
前記プット動作を図26に示すC要素295によって制御する。当該技術分野において既知のように、C要素295は、すべてのその入力が1である場合その出力が1であり、すべてのその入力が0になる場合出力が0になる。非同期C要素において、入力のいくつか(‘+’をマークした)は、該素子の出力を1にセットすることにおいてのみ関係し、これらの値は他の出力変化と無関係である。
【0070】
非同期プット動作に関するセル270a(図23)の動作は以下のように進む。最初に、セル270aは空状態(e_i=1およびf_i=0)において開始し、前記プットトークンもゲットトークンも存在しない。プットトークン入力290(wel)における1対の変化後、前記プットトークンはこのセルにある(ptok=1)。この環境がプット要求信号44(put_req=1)におけるプット動作をリセットし、前記セルが空(e_i=1)である場合、プットトークン出力294(we)をセットする。このイベントは、いくつかの動作を並列に生じさせ、前記セルの状態はデータ有効性コントローラ280(DV_as)によっていっぱいに変化し(すなわち、フルビット288a(f_i)を示し)、すなわち、レジスタ291(REG)はデータをラッチすることができ、セル270aは前記プットトークンを左のセルに送ることと、OPTをリセットすること(ptok=0)との双方を開始する。プット要求信号44(put_req)が示されない場合、プットトークン出力294(we)も示されない。このイベントは、前記プットトークンを左のセルに送ることを完了する。ここで、セル270aを、レジスタ291(REG)におけるデータをデキューした後に他のプット動作を開始するように準備する。
【0071】
セル270aにおける同期ゲット動作は、データ項目が該セルに存在した後に開始する。一度フルビット288a(f_i)がセットされたら、空検出器74(図8)はFIFO回路200の状態を“空でない”として計算し、ゲット要求24(req_get)をゲットイネーブル信号86(en_get)において渡す。セル270aが前記ゲットトークンを有する場合、レジスタ291(REG)の内容をゲットデータバス26(data_get)において出力し、受け側クロック信号22(CLK_get)の次の立ち上がりエッジにおいて、前記ゲットトークンを次のセルに渡す。同時に、前記セルの状態をデータ有効性コントローラ280(DV_as)によって“空”に変化させる。前記セルが前記ゲットトークンを有する場合(gtok=1)、前記セルの有効性ビットを、ゲット要求における信号86(en_get)にかかわらず、有効性データバス284(valid_i)において放送することに注意されたい。これは、有効性バス284(valid_i)における信号が常にある値に駆動されることを保証する。
【0072】
図27に示すように、データ有効性コントローラ280(DV_as)は、前記セルがデータ項目を含むことを示し、すなわち、前記プット動作およびゲット動作を制御する。入力としてプットトークン出力294(we)を受け入れ、このプットトークン出力294はプット動作が起こったことを合図し、入力として読み出しイネーブル信号299(re)を受け入れ、この読み出しイネーブル信号299はゲット動作が起こったことを合図する。データ有効性コントローラ280(DV_as)の出力は、セル270aが空であることを示す(本実施形態においては最初にのみ使用される)空ビット282a(e_i)と、セル270aがいっぱいであることを示す(本実施形態においては前記空検出器において使用される)フルビット288a(f_i)である。
【0073】
データ有効性コントローラ280(DV_as)に関するプロトコルを、ペトリネット410として図28に示す(ペトリネットは、同時動作を説明するのに一般的に使用される既知のグラフィカル表現である)。これは、ラベル付けされたイベントの変化と、黒点によって示されたトークンを格納する場所とから成る。変化は、入ってくる弧のすべてがトークンを有する場合に始まり、これらのトークンをその出て行く弧のすべてに渡す(ペトリネットに関するさらなる詳細は、タダオムラタ、“ペトリネット:性質、解析および用途”、IEEE、77(4)、1989年4月の会報と、L.Y.ロゼンブランおよびA.V.ヤコレブ、“信号グラフ:自己時間決定から時間決定されたものへ”、イタリア、トリノ、時間決定されたペトリネットにおける国際ワークショップの会報、199−207ページと、タム−アンチュー、“VLSIを設計するモデルにおける非同期ディジタル回路”、インテグレーション、VLSIジャーナル、4(2):99−113、1986年6月とにおいて考察されており、これらの文献はこれらの全体における参照によってここに含まれる)。一度プット動作が開始したら、データ有効性コントローラ280(DV_as)は、ステップ412において、空ビット282a(e_i=0)をリセットし、フルビット288a(f_i=1)をセットし、したがって、前記セルがいっぱいであることを宣言し、ゲット動作を可能にする。ステップ414においてゲット動作が開始した(re+)後、ステップ415において、CLK_getクロックサイクルの最中に前記セルを“いっぱいでない”(f=0)と非同期に宣言する。前記ゲット動作がステップ416において(CLK_getの次の立ち上がりエッジにおいて)終了した場合、ステップ417において、データ有効性コントローラ280(DV_as)はセル270aを“空”(e=1)にセットする。プットトークン出力294(we)をステップ418においてリセットし、前記動作を再開することができる。この非同期動作は、前記プットトークンの通過を遅延させ、プット動作によるデータ不正を防ぎ、ゲット動作は依然として起こる。
【0074】
第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の参照と共にここに説明する。
【0075】
好例のセル370aのインタフェースを図29に示す。(セル370a、370b、370cおよび370dの各々は同様である。)セル370aは4つのインタフェース、すなわち、(1)同期プットインタフェース371と、(2)非同期ゲットインタフェース372と、(3)トークンを得るための右(すなわち前)のセルとのインタフェース373と、(4)トークンを渡すための左(すなわち次)のセルとのインタフェース374とにおいて通信する。前記同期プットインタフェースにおいて、セル370aは共通プットデータバス16(data_put)におけるデータを受ける。プット動作をプットイネーブル信号80(en_put)によって行うことができ、この信号はプットコントローラ76(図10参照)の出力である。プット要求信号14(req_put)は、データ有効性(本実施形態においては常に示される)を示す。セル370aはフル検出器72(図10)と空ビット82(e_i)によって通信し、このビットは、セル370aが空の場合、ハイを示す。プット動作を、送り側クロック信号12(CLK_put)によって管理する。各々のセル370a−dは、非同期ゲットインタフェース372と通信し、データをゲットデータバス56(get_data)において伝送し、ゲット動作に関するグローバル要求54(get_req)を受け、各々のセル370aは、前記デキュー動作の終わりを55(get_ack)において示す。非同期ゲットインタフェース50は有効データのみを通す(図4参照)ため、前記有効ビットをセル370aの非同期ゲットインタフェースにおいて使用しない。各々のセルは、前記プットトークンをプットトークン入力90(ptok_in)において受け、前記ゲットトークンをゲットトークン入力392(rel)において受け、前記プットトークンをプットトークン出力94(ptok_out)において渡し、前記ゲットトークンをゲットトークン出力369(re)において渡す。
【0076】
セル370aの同期部分は、FIFO回路100(図16参照)の対応する構成要素と同様である。図30を参照し、セル370aの非同期部分は、いくつかのブロック、例えば、ゲットトークン取得ブロック393(OGT)および非同期C要素395に分解する。ゲットトークン取得ブロック393(OGT)は、個々のゲットトークンを右のインタフェースからゲットトークン入力392(rel)において得る。ゲットトークン取得ブロック393(OGT)を、図31(a)に示すようなバーストモード非同期状態機械として実現する。ゲットトークン取得ブロック393’(OGT)の他の好例の実現を、図31(b)に示す。バーストモード仕様420を図32に示す。ゲットトークン取得ブロック393(OGT)は、右のセルを監視し、ゲット動作を待機する。右のセルは完全なトークン通過を、最初にステップ422においてゲットトークン入力392(rel)(図30)をセットし、次にステップ424においてゲットトークン入力392(rel)をリセットすることによって示す。これらの動作が完了するとき、前記ゲットトークンは現在のセルにあり、すなわち、ゲットトークン信号39(gtok)を図32においてセットする(ステップ424)。ゲットトークン出力396(re)(図30)をステップ426において、非対称C素子395(図30)によって制御されるようにセットする。前記セルがいっぱいであり、前記ゲットトークンを有し、前記受け側がデータ項目を要求する場合、前記ゲット動作を開始する。デキューが完了したら、前記受け側との通信を、前記要求をリセットし、次に前記承認をリセットすることによって終了する。ゲットトークン出力366(re)を、現在のセルのゲットトークン信号397(gtok)とともにステップ427においてリセットする。
【0077】
セル370aは、プット動作をセル170aと同じように行う。前記セルがプットイネーブル信号80(en_put)において許可され、プットトークンptok_in=1を有する場合、レジスタ391(REG)はデータと、前記有効性ビットとして使用されるプット要求14(req_put)とをエンキューすることができる。並行して、データ有効性コントローラ380(DV_sa)は、セル370がいっぱいであることを宣言する。送り側クロック12(CLK_put)のクロックサイクルの開始時に、データを前記レジスタ中にラッチし、前記ゲットトークンを次のセルに渡す。
【0078】
前記ゲット動作を以下のように行う。最初に、セル370aは、ゲットトークン無しで開始する(gtok=0)。ゲットトークン取得ブロック393(OGT)は、ゲットトークン入力392(rel)におけるアップおよびダウン変化に関して待機し、一度これらが生じたら、ゲットトークンは該セルにあり(gtok=1)、レジスタ391(REG)の出力をゲットデータバス56(get_data)において駆動する。前記ラッチされた有効性ビットを、前記非同期ゲットインタフェースによって使用しない。セル370aは、前記受け側サブシステム(または環境)がデータ項目を要求し、ゲット要求信号54を示す(get_req=1)のを待つ。これが生じた場合、セル370aは、該セルがデータ項目を含む、すなわち、フルビット388aが示された(f_i=1)場合にのみこれを承認する。これら3つの条件(すなわち、gtok=1、get_req=1およびf_i=1)が満たされた場合、ゲットトークン出力396(re)をセットし、すなわちこのイベントは前記環境に対するデータ動作を承認し、ゲットトークンブロック393(OGT)のリセットを開始し、データ有効性コントローラ380(DV_sa)におけるセルの状態のリセットを開始し、前記ゲットトークンを次のセルに送るのを開始する。前記ゲットインタフェースの動作サイクルは、ゲット要求信号54(get_req)を示さなくなることによって完了し、これによりゲットトークン出力396(re)は示されなくなり、ゲットトークン出力396(re)の立ち上がりエッジにおいて開始したすべての動作が完了する。
【0079】
データ有効性コントローラ380(DV_sa)は、前記セル画いっぱいまたは空である場合を示し、これを図34において示す。データ有効性コントローラ380(DV_sa)に関するプロトコルを、図35においてペトリネット430として示す。通常の空状態において、空ビット382aを示し(e_i=1)、フルビット388示さない(f_i=0)。プット動作が開始した場合、データ有効性コントローラ380(DA_sa)は、ステップ431において空ビット382(e_i)を同時にリセットし、ステップ432においてフルビット388(f_i)をセットし(すなわち、セル370aの状態は“いっぱい”になる)、したがってゲット動作が可能になる。前記プット動作の終了、すなわち、書き込みイネーブル信号394(we)を示さなくなること(ステップ433)を、ゲット動作と同時に行うことができる。ゲット動作を、reにおける下降変化が生じた後、ゲットトークン出力396(re)における1対の変化(ステップ434および435)によって合図し、前記セルの状態はステップ436および437において“空”に変化し(e_i=1およびf_i=0)、通常の動作を再開することができる。
【0080】
ここに記載したいくつかの追加の実施形態は、上述した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回路と同様に、あるシステムから他のシステムにパケットを送ることによって動作する。
【0081】
当該技術分野において既知のリレー局462bのような単一クロックリレー局の実現を図38に与える。通常は、左のリレー局からのパケットを右のリレー局に渡す。図37において、パケットを代表的にリレー局462aからリレー局462bに渡す。右のリレー局、すなわちリレー局462bは、前記リレー局を左のすなわちリレー局462aに止めることによって、データフローにおける反圧力をかける能力を有する。図38に示すように、好例のリレー局462bをリレー局462aとリレー局462c(図37参照)との間に配置する。図38を参照し、リレー局462bは2つのレジスタ、すなわち、通常動作において使用される主レジスタ472(MR)と、停止したとき余分のパケットを格納するのに使用される補助レジスタ474(AR)とを有する。混合クロックサイクルFIFO回路100とは異なり、前記リレー局は、フル信号および空信号を含まず、プット要求およびゲット要求も含まない。代わりに、通常動作において、データをクロックサイクルごとに渡す。データ通過は通常は連続であるため、有効データおよび無効データの双方が伝送され、有効データがエンキューされないときは常に向こうデータが渡される。したがって、有効ビットをプットデータバスおよびゲットデータバスの双方に付け、各々のデータベースにおけるデータパケットを形成する。
【0082】
図37−38の参照と共に、(リレー局462a、462cおよび462dと実際的に同様の)リレー局462bは以下のように動作する。通常動作において、すべてのクロックサイクルの開始において、左のリレー局462aからパケット入力信号468(packetIn)において受けたデータパケットを複製し、次に、パケット出力信号470(packetOut)において右のリレー局462cに送る。パケットは、データバスにおけるデータ項目と、前記パケットにおけるデータの有効性を示す有効ビットとから成る。受け側システム466がデータの受信を止めたい場合、stopIn476を示す。次のクロックエッジにおいて、リレー局462bはstopOut478を示し、次のパケットを補助レジスタ474にラッチする。この時点において、前記セルは停止する。リレー局462bが停止しない場合、リレー局462bは、前記パケットを最初に主レジスタ472(MR)から右のリレー局462cに送り、その後、補助レジスタ474(AR)から前記パケットを送る。
【0083】
図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の下で動作する。
【0084】
上述したFIFO回路100とは異なり、FIFO回路500は、常に有効データ項目を左のプットインタフェースから右のゲットインタフェース508に渡す。FIFO回路500に関するプロトコルにおいて、いずれのインタフェースにもアクティブな要求は存在しない。代わりに、ゲットインタフェース508およびプットインタフェース506を、データ項目の連続フローをアクティブに停止または遮断するように構成する。前記フローを停止するために、リレー局462cはstopIn476を示す。同様に、FIFO回路500は、パケット入力信号468(packetIn)においてプットインタフェース506からのデータ項目を常にエンキューする。したがって、FIFO回路100と異なり、プット要求信号514(req_put)を単独で使用してデータ有効性を示し、プット要求信号514を制御信号ではなくパケット入力信号468(packetIn)の一部として処理する。いっぱいになった場合、FIFO回路500はプットインタフェース506を、グローバルフル信号18(full)であるstopOut512を示すことによって停止する。したがって、単一クロックリレー局システム460と異なり、例えStopIn476がゲットインタフェース508において示されなかったとしても、混合クロックFIFO回路リレー局500はプットインタフェース506において停止することができ、StopOut478を示すことができる。
【0085】
FIFO回路500はFIFO回路100と同様であり、ここに示すようないくつかの変更がある。図40の参照と共に、実際的にはフル検出器72を図17−19に関して上述したように実現し、セル570a、570b、570cおよび570dにおいて空ビット582a、582b、582cおよび582d(e_i)の数を決定する。前記FIFO回路リレー局は通常はデータをすべてのクロックサイクルにおいて送り、デッドロックが生じないようにするため、FIFO回路100のバイモデル空検出器74(図18−19参照)は必要ない。代わりに、空検出器574は、図18において示したほとんど空検出器120と実際的に同様である。図20−21に関して上述したFIFO回路100のプットコントローラ176およびゲットコントローラ178を、FIFO回路500において変更する。FIFO回路100において、プットコントローラ176は、プット要求信号14(req_put)を受ける場合、有効データ項目のエンキューを可能にする。FIFO回路500のプットコントローラ576は、単に有効データ項目を通過させる。プットコントローラ576は、FIFO回路500がいっぱいにならない限り、データ項目を連続的にエンキューする。したがって、プットコントローラ576を、この好適実施形態において、グローバルフル信号(full)におけるインバータとして実現する(図41参照)。デキューを要求次第行ったFIFO回路100のゲットコントローラ178と異なり、ゲットコントローラ578は、データ項目の連続的なデキューを可能にする。図42に示すように、デキューを、FIFO回路500が空になる場合(上述したようにほとんど空信号122(ne)が示される)か、前記ゲットインタフェースが、もはやデータ項目を、stopIn476を示すことによって受け入れることができない場合にのみ中断する。有効データおよび無効データの双方を渡してもよいため、ゲットコントローラ678は有効ビット584(valid_i)も使用し、有効性信号30(valid_get)を計算する。
【0086】
図43、44、45、47、48および49を参照し、FIFO回路600および700は、各々混合非同期−同期インタフェースおよび同期−非同期インタフェースと共に動作するように構成されたリレー局として動作する2つの追加の実施形態である。FIFO回路600および700は、2つの重大な設計の挑戦、混合された非同期/同期環境間の調和の能力と、長い相互接続遅延とに同時に取り組む。
【0087】
非同期送り側490と同期受け側466との間のリレー局による通信の基本的なアーキテクチャを図43に示す。前記非同期領域は、データパケットを(あるいは、ここにより詳細に考察する非同期リレー局(ARS)494aおよび494bのチェーンを経て)FIFO回路600に送る。前記パケットを、次に、前記非同期領域に伝送し、同期リレー局462aおよび462bのチェーンを経て受け側466へ送る。
【0088】
原則として、前記非同期インタフェースにおける通信を、任意に頑健に行うことができ、リレー局が非同期領域出力における必要はない。2つの非同期データ符号化形式、二重レールバンドルデータおよび単一レールバンドルデータが当該技術分野において既知である。(単一レールバンドルデータは、S.ファーバー、“非同期設計”、1997年、サブミクロンエレクトロニクスの会報、461−492ページにおいてより詳細に記載されており、この文献はその全体における参照によってここに含まれる。)1対のワイヤにおいて各々のデータビットの値および有効性の双方を符号化する二重レール形式は、ワイヤ遅延に関して任意に頑健であり(しかし、重大なオーバヘッドを有する)、ARSのチェーンを必要としない。前記単一レールバンドルデータ形式は、前記データそれ自身と制御ワイヤとの間のタイミング仮定を有し、したがって、ARSのチェーンは、ステージ間のワイヤの長さを制限し、ホップを短くすることが望ましいかもしれない。最終的に、性能の問題に関して、ARSが必要なくても、これらはスループットを上げるのに望ましいかもしれない。ARSのチェーンを、マイクロパイプラインとして一般に知られる非同期FIFO回路を使用することによって直接実現することができる(マイクロパイプラインについてのさらなる詳細は、I.サザーランド、“マイクロパイプライン”、ACMの情報工学、32(6)、720−738ページ、1989年と、M.シング他、ネズミ捕り:超高速変化合図非同期パイプライン”、ACM TAU−00ワークショップ、2000年とに記載されており、これらの双方は、これらの全体における参照によってここに含まれる)。
【0089】
前記同期データパケットと異なり、前記非同期データパケットは有効性ビットを必要としない。むしろ、有効データパケットの存在を制御要求ワイヤにおいて合図し、ARSは受信データパケット間で無期限に待つことができる。したがって、標準のマイクロパイプラインは、所望のARS動作を実現する。
【0090】
図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に対応する。
【0091】
FIFO回路600は以下のように動作する。データ項目がその非同期インタフェース640において存在する場合は常に、FIFO回路600はこれをエンキューする。同期インタフェース620において、FIFO回路600は、空になるか、右のリレー局によって停止されない限り、クロックサイクルごとにデータ項目を出力する。したがって、FIFO回路500と異なり、データパケットは、FIFO回路600が停止する場合にのみ無効になる。ゲットインタフェース620は、FIFO回路600が空であるか、右から停止された場合、停止する。しかしながら、FIFO回路600は無効データパケットをエンキューしないため、右のインタフェースは、FIFO回路600が停止しない限り、有効データパケットのみを受ける。
【0092】
ゲットコントローラ678の実現を図46に示す。ゲットコントローラ678は、右から停止されない場合(stopIn=0)で、前記リレー局が空でない場合(ne=0)、ゲット動作を可能にする(en_get=1)。これは、FIFO回路100のゲットコントローラ178と同じように動作する。右に送られたパケットは、前記リレー局が停止されるか、空である場合、無効である。したがって、前記非同期インタフェースから受けたすべてのパケットは有効であり、したがって、別個の有効性ビットは必要なく、代わりに、ゲットイネーブル信号686(en_get)を有効性信号30(valid_get)として使用する。
【0093】
同期送り側464と非同期受け側492との間のリレー局による通信の基本アーキテクチャを図47に示す。前記同期領域は、データパケットを、同期リレー局462aおよび462bのチェーンを経てFIFO回路800に送る。前記パケットを、次に、非同期受け側292へ、好適には前記非同期領域におけるARS494aおよび494bのチェーンを経て伝送する。
【0094】
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回路のプットコントローラである。
【0095】
通常動作中、FIFO回路700は、データパケットを前記同期インタフェースから非同期インタフェースに伝送する。右における前記非同期リレー局は、FIFO回路700がデータを供給する時は常にデータパケットをエンキューする。しかしながら、前記同期インタフェースにおいて、すべての非同期データパケットは有効でなければならないので、FIFO回路700はフィルタとして動作する。入ってくる同期パケットの有効性ビット14(valid_put)を使用し、これらをフィルタ処理する。より特に、前記パケットが有効である場合、FIFO回路700を、このパケットをエンキューするように構成し、そうでなければ、このパケットを破棄するように構成する。FIFO回路700は、有効データパケットのみをエンキューし、FIFO回路700がいっぱいの場合、前記プットインタフェースを停止する。上述したFIFO回路500は、受けたすべてのデータパケットをエンキューし、もういっぱいのセルがない場合、停止する。これと相違して、FIFO回路700は、以下の条件、(1)該FIFOがいっぱい、および/または(2)無効データパケットを受けた場合、という条件の下で停止する。
【0096】
プットコントローラ776の好例の実現を、図50において与える。プットコントローラ776は、前記リレー局がいっぱいでなく(full=0)、入ってくるデータパケットが有効である(valid_put=1)場合にのみ、プット動作を可能にする(en_put=1)。プットコントローラ776の実現は、プットコントローラ176と同様であるが、(req_putのような)明示的なプット要求信号の役割を、すべてのパケットに付随する暗示的な有効ビット14(valid_put)によって得た。
【0097】

種々の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μHP CMOS技術において、3.3Vおよび300Kにおいてシミュレートした。
【0098】
以下は、前記制御バスおよびデータグローバルバスのモデル化における特別な考察である。制御バスput_req/en_putおよびget_req/en_reqを、適切なバッファリングによって挿入した。承認信号put_ackおよびget_ackを、個々の承認を1つのグローバル承認に合併するORゲートのツリーとして構成する。get_dataおよびdata_getのモデル化において、前記バスにおける各々のビットをトライステートバッファによって駆動する。前記環境によって寄与された負荷と、前記FIFO回路内の長いワイヤによって寄与された負荷の双方をモデル化する。前記モデルは、前記環境が2つのインバータによって負荷に寄与し、各々のワイヤが1セルあたり2つのインバータのキャパシタンス(おおよそ、1ワイヤあたり2nインバータ)によって寄与するという仮定を形成する。
【0099】
2つの測定基準、呼び出し時間およびスループットを各設計に関してシミュレートした。呼び出し時間は、空のFIFO回路において、プットインタフェースにおけるデータの入力から、ゲットインタフェースにおける出力においてこのデータが存在するまでの遅延である。スループットを、プットまたはゲット動作中のサイクルタイムの逆として規定する。スループットおよび呼び出し時間を、異なったFIFO回路容量およびデータ項目幅に関して計算した。前記FIFO回路の容量を、4、8または16セルに設定した。これらのFIFO回路の各々に関して、データ項目幅を8または16ビットのいずれかに設定した。
【0100】
最高スループットの結果を表1および2において与える。同期インタフェースに関して、スループットを、該インタフェースにクロック供給することができる最高クロック周波数として表す。前記非同期インタフェースはクロックを持たないため、スループットを100万動作/秒(該インタフェースが1秒において行うことができるデータ動作数)において与える。
【0101】
【表1】
Figure 2004510216
【0102】
【表2】
Figure 2004510216
【0103】
前記スループットの結果は、前記FIFO回路設計と矛盾しない。前記同期ゲットインタフェースは、空検出器74の複雑さのため、前記同期プットインタフェースより遅い。また、リレー局同期プットインタフェースは、これらにおけるプット検出器の単純さのため、これらのFIFO回路の対応物よりもいくぶん速い。同期側において、前記ゲットインタフェースは、前記レジスタの出力が前記データバスに9おいて早く可能になるため、たいがいは前記プットインタフェースより速くなる傾向がある。
【0104】
空のFIFO回路による呼び出し時間を、8ビットデータ項目を有する設計に関してのみ示す(表3)。
【0105】
【表3】
Figure 2004510216
呼び出し時間に関する実験構成は以下の通りであり、空のFIFO回路において、前記ゲットインタフェースはデータ項目を要求する。任意の時間後において、前記プットインタフェースはデータ項目を置く。前記呼び出し時間を、前記プットデータバスが有効データを有する瞬時と、前記ゲットインタフェースが前記データ項目を受け、これを使用することができる瞬時との間の経過時間として計算する。
【0106】
同期受け側を有するFIFO回路に関する呼び出し時間は、ユニークに規定されない。呼び出し時間は、データ項目がセルにおいて安全にエンキューされる瞬時と共に変化する。データ項目が前記プットインタフェースによってCLK_getの立ち上がりエッジの直後にエンキューされた場合、呼び出し時間は長くなる(表3における「最長」列)。前記データ項目が、前記空検出器が計算を開始する前に右からエンキューされた場合、呼び出し時間は短くなる(「最短」列)。しかしながら、非同期受け側は、前記データ項目をそのキューイング直後につかむことができ、したがって、呼び出し時間はユニークに規定されない。より興味深いことには、前記非同期受け側は同期化を必要としないため、非同期領域との通信に関する呼び出しをきわめてより高速に行うことができる。
【0107】
前記スループットおよび呼び出し時間の結果は、バスを基礎とする設計に関してかなり良好である。スループットは、非同期インタフェースより同期インタフェースに関して高速になる傾向がある。空のFIFO回路による呼び出し時間は、前記受信器が非同期である場合、より短くなる。
【0108】
上記は本発明の原理の説明的なものにすぎず、種々の変形を、当業者によって、本発明の範囲および精神から逸脱することなく行うことができることは理解されるであろう。
【図面の簡単な説明】
【図1】本発明による同期プットインタフェースの図式的な図である。
【図2】本発明による同期ゲットインタフェースの図式的な図である。
【図3】本発明による非同期プットインタフェースの図式的な図である。
【図4】本発明による非同期ゲットインタフェースの図式的な図である。
【図5】本発明の第1実施形態による好例のFIFO回路の図式的なブロック図である。
【図6】図5に示すFIFO回路のより詳細な図式的なブロック図である。
【図7】本発明の第2実施形態による好例のFIFO回路の図式的なブロック図である。
【図8】図7に示すFIFO回路のより詳細な図式的なブロック図である。
【図9】本発明の第3実施形態による好例のFIFO回路の図式的なブロック図である。
【図10】図9に示すFIFO回路のより詳細な図式的なブロック図である。
【図11】本発明による同期プットプロトコルに関して用いられる好例の信号の時間プロットである。
【図12】本発明による同期ゲットプロトコルに関して用いられる好例の信号の時間プロットである。
【図13】本発明による非同期プットプロトコルに関して用いられる好例の信号の時間プロットである。
【図14】本発明による非同期ゲットプロトコルに関して用いられる好例の信号の時間プロットである。
【図15】本発明による図5および6のFIFO回路の一部を示す拡大した図式的ブロック図である。
【図16】本発明による図15に示すFIFO回路の一部のより詳細な図式的なブロック図である。
【図17】本発明による図5および6に示すFIFO回路のフル検出器の図式的なブロック図である。
【図18】本発明による図5および6に示すFIFO回路の第1空検出器の図式的なブロック図である。
【図19】本発明による図5および6に示すFIFO回路の第2空検出器の図式的なブロック図である。
【図20】本発明による図5および6に示すFIFO回路の他の部分の図式的なブロック図である。
【図21】本発明による図5および6に示すFIFO回路のさらに他の部分の図式的なブロック図である。
【図22】本発明による図7および8のFIFO回路の一部を示す拡大した図式的なブロック図である。
【図23】本発明による図22に示すFIFO回路の一部のより詳細な図式的なブロック図である。
【図24】本発明による図23に示すFIFO回路の一部のバーストモード詳述である。
【図25】aは本発明による図23に示すFIFO回路の一部のより詳細な図式的なブロック図であり、bは本発明による図23に示すFIFO回路の他の実施形態のより詳細な図式的なブロック図である。
【図26】本発明による図23に示すFIFO回路の他の部分のより詳細な図式的なブロック図である。
【図27】本発明による図23に示すFIFO回路の依然として他の部分のより詳細な図式的なブロック図である。
【図28】本発明による図23に示すFIFO回路の一部のペトリネット詳述である。
【図29】本発明による図9および10のFIFO回路の一部を示す拡大した図式的なブロック図である。
【図30】本発明による図29に示すFIFO回路の部分のより詳細な図式的なブロック図である。
【図31】aは本発明による図30に示すFIFO回路の一部のより詳細な図式的なブロック図であり、bは本発明による図30に示すFIFO回路の一部の他の実施形態のより詳細な図式的なブロック図である。
【図32】本発明による図30に示すFIFO回路の一部の他の実施形態のより詳細な図式的なブロック図である。
【図33】本発明による図30に示すFIFO回路の一部のさらに他の実施形態のより詳細な図式的なブロック図である。
【図34】本発明による図30に示すFIFO回路の一部の依然として他の実施形態のより詳細な図式的なブロック図である。
【図35】本発明による図30に示すFIFO回路の一部のペトリネット詳述である。
【図36】先行技術システムの図式的なブロック図である。
【図37】リレー局を含む先行技術システムの図式的なブロック図である。
【図38】先行技術リレー局の図式的なブロック図である。
【図39】本発明によるFIFO回路リレー局を示す図式的なブロック図である。
【図40】本発明による図39に示すFIFO回路リレー局を示すより詳細な図式的なブロック図である。
【図41】本発明による図40に示すFIFO回路リレー局の一部の詳細な図式的なブロック図である。
【図42】本発明による図40に示すFIFO回路リレー局の他の部分の詳細な図式的なブロック図である。
【図43】本発明による他のFIFO回路リレー局を示す図式的なブロック図である。
【図44】本発明による図43のFIFO回路リレー局を示すより詳細な図式的なブロック図である。
【図45】本発明による図44に示すFIFO回路リレー局を示すより詳細な図式的なブロック図である。
【図46】本発明による図45に示すFIFO回路リレー局の一部の詳細な図式的なブロック図である。
【図47】本発明による依然として他のFIFO回路リレー局を示す図式的なブロック図である。
【図48】本発明による図47のFIFO回路リレー局を示すより詳細な図式的なブロック図である。
【図49】本発明による図48に示すFIFO回路リレー局を示すより詳細な図式的なブロック図である。
【図50】本発明による図49に示すFIFO回路リレー局の一部の詳細な図式的なブロック図である。

Claims (38)

  1. 第1時間領域の下で動作する送り側サブシステムと第2時間領域の下で動作する受け側サブシステムとの間のデータ項目の伝送を調和させるFIFO回路において、前記第1時間領域および第2時間領域が異なり、これらの時間領域の少なくとも一方がクロック信号にしたがって動作し、該FIFO回路が、
    データ項目を前記送り側サブシステムから伝送するプットデータバスと、プット要求を前記送り側サブシステムから受け、前記データ項目を前記プットデータバスからエンキューするプットデータ要求入力部とを具え、前記第1時間領域にしたがって動作するように構成されたプットインタフェースと、
    前記データ項目を前記受け側サブシステムに伝送するゲットデータバスと、ゲット要求を前記送り側サブシステムから受け、前記データ項目を前記ゲットデータバスにデキューするゲットデータ要求入力部とを具え、前記第2時間領域にしたがって動作するように構成されたゲットインタフェースと、
    セルのアレイとを具え、各々のセルが、
    前記データ項目を前記プットデータバスから受け、前記データ項目を前記ゲットデータバスに伝送するように構成されたレジスタと、
    該セルの状態の指示を与える状態コントローラと、
    前記第1時間領域にしたがって動作し、プットトークンを第1隣接セルから受け、前記プットデータバスから受けたデータ項目を、前記プット要求と、前記プットトークンと、該セルの状態とに基づいて前記レジスタにラッチし、前記プットトークンを第2隣接セルに渡すように構成されたプット構成要素と、
    前記第2時間領域にしたがって動作し、前記ゲットトークンを前記第1隣接セルから受け、前記レジスタからのデータ項目を、前記ゲット要求と、前記ゲットトークンと、該セルの状態とに基づいて前記ゲットデータバスにデキューし、前記ゲットトークンを前記第2隣接セルに渡すように構成されたゲット構成要素とを具えることを特徴とするFIFO回路。
  2. 請求項1に記載のFIFO回路において、前記プットインタフェースが第1クロック信号と同期してこれによって制御され、前記プットインタフェースが、さらに、
    前記セルのアレイにおける予め決まられた数の連続的なセルより少ないセルが空状態である場合に示される、前記第1クロック信号と同期したグローバルフル信号を発生するフル検出器と、
    前記グローバルフル信号が示されない場合、前記セルのアレイにおける各々のアレイのプット構成要素に前記プット要求を伝えるように構成されたプットコントローラとを具えることを特徴とするFIFO回路。
  3. 請求項2に記載のFIFO回路において、前記セルのアレイの各々のセルのプット構成要素が、さらに、
    前記プット要求によって前記プットトークンを前記第2隣接セルに渡すことができる同期ラッチと、
    前記プット要求およびプットトークンに応じて前記セルの空状態を示さない指示を与えるように前記状態コントローラに合図するように構成された回路とを具えることを特徴とするFIFO回路。
  4. 請求項2に記載のFIFO回路において、前記レジスタが、前記プット要求によって、前記データを受けることができることを特徴とするFIFO回路。
  5. 請求項2に記載のFIFO回路において、前記ゲットインタフェースが第2クロック信号に同期してこれによって制御され、前記ゲットインタフェースが、
    前記セルのアレイにおける予め決められた数より少ない連続的なセルがフル状態である場合に示される、前記第2クロック信号と同期した第1グローバル空信号を発生する第1空検出器と、
    第2グローバル空信号を発生する第2空検出器であって、前記セルのアレイにおけるどのセルもフル状態でない場合に示される第1中間信号を発生する回路と、前記第1中間信号を前記第2クロック信号と同期させる第1および第2ラッチと、第2中間信号を前記第1ラッチと第2ラッチとの間の前記第1中間信号と結合する結合素子とを具え、前記第2グローバル空信号を、前記第2中間信号が示されない場合、前記第1中間信号とし、前記第2グローバル空信号を、前記第2中間信号が示される場合、前記第2中間信号とする、第2空検出器と、
    前記第1グローバル空信号および第2グローバル空信号の一方が示されない場合、前記セルのアレイにおける各々のセルのゲット構成要素に前記ゲット要求を伝えるように構成されたゲットコントローラとを具えることを特徴とするFIFO回路。
  6. 請求項5に記載のFIFO回路において、前記セルのアレイにおける各々のセルのゲット構成要素が、さらに、
    前記ゲット要求によって前記ゲットトークンを前記第2隣接セルに渡すことができる同期ラッチと、
    前記ゲット要求およびゲットトークンに応じて前記セルのフル状態を示さない指示を与えるように前記状態コントローラに合図するように構成された回路とを具えることを特徴とするFIFO回路。
  7. 請求項5に記載のFIFO回路において、前記レジスタが、前記ゲット要求およびゲットトークによって、前記データ項目を前記ゲットデータバスに伝送できることを特徴とするFIFO回路。
  8. 請求項2に記載のFIFO回路において、前記ゲットインタフェースが非同期であり、前記セルのアレイにおける各々のセルのゲット構成要素が、前記第1隣接セルのレジスタから前記ゲットデータバスへ前記データ項目をデキューすることを表す前記第1隣接セルからの信号に応じて、前記セルのアレイにおける個々のセルにおける前記ゲットトークンを受けるように構成されたゲットトークン通過回路を具えることを特徴とするFIFO回路。
  9. 請求項8に記載のFIFO回路において、前記レジスタが、前記ゲットトークンによって、前記データ項目を前記ゲットデータバスにデキューすることができることを特徴とするFIFO回路。
  10. 請求項9に記載のFIFO回路において、前記ゲットインタフェースが、さらに、ゲット承認信号を具え、前記ゲット構成要素がさらに、前記ゲットトークンと、前記ゲット要求と、前記セルのフル状態とによって、前記セルの状態をリセットし、前記ゲット承認信号を示すように前記状態コントローラに合図することができるゲット制御回路を具えることを特徴とするFIFO回路。
  11. 請求項10に記載のFIFO回路において、前記ゲット制御回路が、前記ゲット要求が示されないことによって、前記ゲットトークンを前記第2隣接セルに渡せないことを特徴とするFIFO回路。
  12. 請求項1に記載のFIFO回路において、前記プットインタフェースが非同期であり、前記セルのアレイにおける各々のセルのプット構成要素が、前記プットデータバスから前記第1隣接セルのレジスタへのデータ項目をラッチすることを示す前記第1隣接セルからの信号に応じて、前記セルのアレイにおける個々のセル中への前記プットトークンを受けるように構成されたプットトークン通貨回路を具えることを特徴とするFIFO回路。
  13. 請求項12に記載のFIFO回路において、前記プットインタフェースが、さらに、プット承認信号を供給し、前記プット構成要素が、さらに、前記プットトークンと、前記プット要求と、前記セルの空状態とによって、前記セルの状態のリセットの指示を与え、前記プット承認信号を示すことを前記状態コントローラに合図することができるプット制御回路を具えることを特徴とするFIFO回路。
  14. 請求項12に記載のFIFO回路において、前記プット制御回路が、前記プット要求が示されないことによって、前記プットトークンを前記第2隣接セルに渡せないことを特徴とするFIFO回路。
  15. 請求項12に記載のFIFO回路において、前記第2時間領域が第2クロック信号と同期してこれによって制御され、前記ゲットインタフェースが、さらに、
    前記セルのアレイにおける予め決められた数より少ない連続的なセルがフル状態である場合に示される、前記第2クロック信号と同期した第1グローバル空信号を発生する第1空検出器と、
    第2グローバル空信号を発生する第2空検出器であって、前記セルのアレイにおけるどのセルもフル状態でない場合に示される第1中間信号を発生する回路と、前記第1中間信号を前記第2クロック信号と同期させる第1および第2ラッチと、第2中間信号を前記第1ラッチと第2ラッチとの間の前記第1中間信号と結合する結合素子とを具え、前記第2グローバル空信号を、前記第2中間信号が示されない場合、前記第1中間信号とし、前記第2グローバル空信号を、前記第2中間信号が示される場合、前記第2中間信号とする、第2空検出器と、
    前記第1グローバル空信号および第2グローバル空信号の一方が示されない場合、前記セルのアレイにおける各々のセルのゲット構成要素に前記ゲット要求を伝えるように構成されたゲットコントローラとを具えることを特徴とするFIFO回路。
  16. 請求項15に記載のFIFO回路において、前記セルのアレイにおける各々のセルのゲット構成要素が、さらに、
    前記ゲット要求によって前記ゲットトークンを前記第2隣接セルに渡すことができる同期ラッチと、
    前記ゲット要求およびゲットトークンに応じて前記セルの空状態の指示を与えるように前記状態コントローラに合図するように構成された回路とを具えることを特徴とするFIFO回路。
  17. 請求項16に記載のFIFO回路において、前記レジスタが、前記ゲット要求およびゲットトークによって、前記データ項目を前記ゲットデータバスに伝送できることを特徴とするFIFO回路。
  18. 第1クロック信号によって制御される送り側サブシステムから、第2クロック信号によって制御される受け側サブシステムへのデータ項目の伝送を調和させるFIFO回路において、前記データ項目の伝送が前記送り側サブシステムと前記受け側サブシステムとの間の遅延を受け、該FIFO回路が、
    前記送り側サブシステムに取り付けられ、プットデータバスにおけるデータ項目を受け、第1動作プロトコルを有するリレー局の第1チェーンと、
    前記受け側サブシステムに取り付けられ、ゲットデータバスにおけるデータ項目を受け、第2動作プロトコルを有するリレー局の第2チェーンと、
    前記第1クロック信号および第2クロック信号を受け、前記データ項目を前記リレー局の第1チェーンから前記リレー局の第2チェーンへ、前記リレー局の第1チェーンの動作プロトコルと前記リレー局の第2チェーンのプロトコルとにしたがって伝送する混合クロックリレー局と、
    セルのアレイと、
    前記セルのアレイにおける予め決められた数より少ない連続的なセルが空状態である場合に示される前記第1クロック信号と同期したフル信号を供給するフル検出器と、
    フル信号が示されない場合、前記第1クロック信号の各々のクロックサイクルにおいてデータ項目をエンキューすることができるように構成されたプットコントローラと、
    予め決められた数より少ない連続的なセルがフル状態である場合に示される前記第2クロック信号と同期した空制御信号を供給する空検出器と、
    前記混合クロック局に接続された前記リレー局の第2チェーンのリレー局から停止信号を受けるように構成され、前記空信号が示されず、前記停止信号が示されない場合、前記第2クロック信号の各々のクロックサイクルにおいてデータ項目のデキューができるように構成されたゲットコントローラとを具えることを特徴とするFIFO回路。
  19. 請求項18に記載のFIFO回路において、前記セルのアレイにおける各々のセルが、
    前記データ項目を前記プットデータバスから受け、前記データ項目を前記ゲットデータバスへ伝送するように構成されたレジスタと、
    該セルの状態の指示を与える状態コントローラと、
    前記第1動作プロトコルにしたがって動作し、プットトークンを第1隣接セルから受け、前記プットデータバスから受けたデータ項目を、前記プット要求と、前記プットトークンと、該セルの状態とに基づいて前記レジスタにラッチし、前記プットトークンを第2隣接セルに渡すように構成されたプット構成要素と、
    前記第2動作プロトコルにしたがって動作し、ゲットトークンを前記第1隣接セルから受け、前記データ項目を前記レジスタから前記ゲットデータバスに、前記ゲット要求と、前記ゲットトークンと、該セルの状態とに基づいてデキューし、前記ゲットトークンを前記第2隣接セルに渡すように構成されたゲット構成要素とを具えることを特徴とするFIFO回路。
  20. 請求項19に記載のFIFO回路において、前記リレー局の第1チェーンのリレー局がプット要求を供給し、前記セルのアレイにおける各々のセルのプット構成要素が、さらに、
    前記プット要求によって、前記プットトークンを前記第2隣接セルに渡すことができる同期ラッチと、
    前記セルの空状態を示さないことの指示を、前記プット要求およびプットトークンに応じて与えることを前記状態コントローラに合図するように構成された回路とを具えることを特徴とするFIFO回路。
  21. 請求項20に記載のFIFO回路において、前記レジスタが、前記プット要求およびプットトークンによって、前記データ項目を受けることができることを特徴とするFIFO回路。
  22. 請求項21に記載のFIFO回路において、前記リレー局の第2チェーンのリレー局がゲット要求を供給し、前記セルのアレイにおける各々のセルのゲット構成要素が、さらに、
    前記ゲット要求によって、前記ゲットトークンを前記第2隣接セルに渡すことができる同期ラッチと、
    前記セルのフル状態を示さないことの指示を、前記ゲット要求およびゲットトークンに応じて与えることを前記状態コントローラに合図するように構成された回路とを具えることを特徴とするFIFO回路。
  23. 請求項22に記載のFIFO回路において、前記レジスタが、前記ゲット要求およびゲットトークンによって、前記データ項目を前記ゲットデータバスに伝送することができことを特徴とするFIFO回路。
  24. 非同期送り側サブシステムからクロック信号によって制御された同期受け側サブシステムへのデータ項目の伝送を調和させるFIFO回路において、前記データ項目の伝送が、前記送り側サブシステムと受け側サブシステムとの間の遅延を受け、該FIFO回路が、
    前記送り側サブシステムに取り付けられ、プットデータバスにおけるデータ項目を受け、非同期動作プロトコルを有するリレー局の第1チェーンと、
    前記受け側サブシステムに取り付けられ、ゲットデータバスにおけるデータ項目を受け、同期動作プロトコルを有するリレー局の第2チェーンと、
    前記クロック信号を受け、前記データ項目を前記リレー局の第1チェーンから前記リレー局の第2チェーンへ、前記リレー局の第1チェーンの非同期プロトコルと前記リレー局の第2チェーンの同期プロトコルとにしたがって伝送する混合クロックリレー局とを具え、前記混合クロックリレー局が、
    セルのアレイと、
    予め決められた数より少ない連続的なセルがフル状態である場合に示される、前記第2クロック信号と同期した空制御信号を発生する空検出器と、
    該混合クロックリレー局に接続された前記リレー局の第2チェーンのリレー局から停止信号を受けるように構成され、前記空信号が示されず、前記停止信号が示されない場合、前記第2クロック信号の各々のクロックサイクルにおいて、データ項目のデキューを可能にするように構成されたゲットコントローラとを具えることを特徴とするFIFO回路。
  25. 請求項24に記載のFIFO回路において、前記セルのアレイにおける各々のセルが、
    前記データ項目を前記プットデータバスから受け、前記データ項目を前記ゲットデータバスに伝送するように構成されたレジスタと、
    前記セルの状態の指示を与える状態コントローラと、
    前記非同期動作プロトコルにしたがって動作し、プットトークンを第1隣接セルから受け、前記プットデータバスから受けたデータ項目を、前記プット要求と、前記プットトークンと、該セルの状態とに基づいて前記レジスタにラッチし、前記プットトークンを第2隣接セルに渡すように構成されたプット構成要素と、
    前記同期動作プロトコルにしたがって動作し、ゲットトークンを前記第1隣接セルから受け、前記データ項目を前記レジスタから前記ゲットデータバスへ、前記ゲット要求と、前記ゲットトークンと、該セルの状態とに基づいてデキューし、前記ゲットトークンを前記第2隣接セルへ渡すように構成されたゲット構成要素とを具えることを特徴とするFIFO回路。
  26. 請求項25に記載のFIFO回路において、前記セルのアレイにおける各々のセルのプット構成要素が、前記セルのアレイにおける個々のセル中への前記プットトークンを、前記プットデータバスから前記第1隣接セルのレジスタへのデータ項目のラッチを示す前記第1隣接セルからの信号に応じて受けるように構成されたプットトークン通過回路を具えることを特徴とするFIFO回路。
  27. 請求項26に記載のFIFO回路において、前記リレー局の第1チェーンのリレー局がプット要求を供給し、前記プットインタフェースがさらにプット承認信号を供給し、前記プット構成要素が、さらに、前記プットトークンと、前記プット要求と、前記セルの空状態とによって、前記セルの状態のリセットの指示を与えることと、前記プット承認信号を示すこととを前記状態コントローラに合図することができることを特徴とするFIFO回路。
  28. 請求項26に記載のFIFO回路において、前記プット制御回路が、前記プット要求を示さないことによって、前記プットトークンを前記第2隣接セルに渡すことができないことを特徴とするFIFO回路。
  29. 請求項28に記載のFIFO回路において、前記リレー局の第2チェーンのリレー局がゲット要求を供給し、前記セルのアレイにおける各々のセルのゲット構成要素が、
    前記ゲット要求によって、前記ゲットトークンを前記第2隣接セルに渡すことができる同期ラッチと、
    前記ゲット要求およびゲットトークンに応じて前記セルの空状態の指示を与えることを前記状態コントローラに合図するように構成された回路とを具えることを特徴とするFIFO回路。
  30. 請求項29に記載のFIFO回路において、前記レジスタが、前記ゲット要求およびゲットトークンによって、前記データ項目を前記ゲットデータバスに伝送することができることを特徴とするFIFO回路。
  31. クロック信号によって制御される同期送り側サブシステムから非同期受け側サブシステムへのデータ項目の伝送を調和させるFIFO回路において、前記データ項目の伝送が前記送り側サブシステムと前記受け側サブシステムとの間の遅延を受け、該FIFO回路が、
    前記送り側サブシステムに取り付けられ、前記データ項目をプットデータバスに伝送し、同期動作プロトコルを有し、有効信号を供給するリレー局の第1チェーンと、
    前記受け側サブシステムに取り付けられ、ゲットデータバスにおいて前記データ項目を受け、非同期動作プロトコルを有するリレー局の第2チェーンと、
    前記クロック信号を受け、前記データ項目を前記リレー局の第1チェーンから前記リレー局の第2チェーンへ、前記リレー局の第1チェーンの同期動作プロトコルと前記リレー局の第2チェーンの非同期動作プロトコルとにしたがって伝送するリレー局とを具え、前記リレー局が、
    セルのアレイと、
    前記セルのアレイにおける予め決められた数より少ない連続的なセルが空状態である場合に示される前記第1クロック信号と同期したフル信号を発生するフル検出器と、
    フル信号が示されず、前記有効信号が示される場合、前記第1クロック信号の各々のクロックサイクルにおいてデータ項目のエンキューを可能にするように構成されたプットコントローラとを具えることを特徴とするFIFO回路。
  32. 請求項31に記載のFIFO回路において、前記セルのアレイにおける各々のセルが、
    前記データ項目を前記プットデータバスから受け、前記データ項目を前記ゲットデータバスに伝送するように構成されたレジスタと、
    前記セルの状態の指示を与える状態コントローラと、
    前記非同期動作プロトコルにしたがって動作し、プットトークンを第1隣接セルから受け、前記プットデータバスから受けたデータ項目を、前記プット要求と、前記プットトークンと、該セルの状態とに基づいて前記レジスタにラッチし、前記プットトークンを第2隣接セルに渡すように構成されたプット構成要素と、
    前記同期動作プロトコルにしたがって動作し、ゲットトークンを前記第1隣接セルから受け、前記データ項目を前記レジスタから前記ゲットデータバスへ、前記ゲット要求と、前記ゲットトークンと、該セルの状態とに基づいてデキューし、前記ゲットトークンを前記第2隣接セルへ渡すように構成されたゲット構成要素とを具えることを特徴とするFIFO回路。
  33. 請求項32に記載のFIFO回路において、前記リレー局の第1チェーンのリレー局がプット要求を供給し、前記セルのアレイにおける各々のセルのプット構成要素が、
    前記プット要求によって、前記プットトークンを前記第2隣接セルに渡すことができる同期ラッチと、
    前記プット要求およびプットトークンに応じて前記セルの空状態の指示を与えるように前記状態コントローラに合図するように構成された回路とを具えることを特徴とするFIFO回路。
  34. 請求項33に記載のFIFO回路において、前記レジスタが、前記プット要求によって、前記データ項目を受けることができることを特徴とするFIFO回路。
  35. 請求項34に記載のFIFO回路において、前記セルのアレイにおける各々乗せるのゲット構成要素が、前記第1隣接セルのレジスタから前記ゲットデータバスへの前記データ項目のデキューの指示する前記第1隣接セルからの信号に応じて、前記セルのアレイにおける個々のセルにおける前記ゲットトークンを受けるように構成されたことを特徴とするFIFO回路。
  36. 請求項35に記載のFIFO回路において、前記レジスタが、前記ゲットトークンによって、前記データ項目を前記ゲットデータバスへデキューすることができることを特徴とするFIFO回路。
  37. 請求項36に記載のFIFO回路において、前記リレー局の第2チェーンのリレー局がゲット要求を供給し、前記ゲットインタフェースがさらにゲット承認信号を具え、前記ゲット構成要素がさらに、前記ゲットトークンと、前記ゲット要求と、前記セルのフル状態とによって、前記セルの状態のリセットの指示を与えることと、前記ゲット承認信号を示すこととを前記状態コントローラに合図することができるゲット制御回路を具えることを特徴とするFIFO回路。
  38. 請求項37に記載のFIFO回路において、前記ゲット制御回路が、前記ゲット要求が示されないことによって、前記ゲットトークンを前記第2隣接セルに渡すことができないことを特徴とするFIFO回路。
JP2002502575A 2000-06-09 2001-06-08 混合された非同期および同期システム用少待ち時間fifo回路 Expired - Fee Related JP4849763B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US21064200P 2000-06-09 2000-06-09
US60/210,642 2000-06-09
PCT/US2001/018667 WO2001095089A2 (en) 2000-06-09 2001-06-08 Low latency fifo circuits for mixed asynchronous and synchronous systems

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2011141050A Division JP5379826B2 (ja) 2000-06-09 2011-06-24 混合された非同期および同期システム用少待ち時間fifo回路

Publications (2)

Publication Number Publication Date
JP2004510216A true JP2004510216A (ja) 2004-04-02
JP4849763B2 JP4849763B2 (ja) 2012-01-11

Family

ID=22783678

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2002502575A Expired - Fee Related JP4849763B2 (ja) 2000-06-09 2001-06-08 混合された非同期および同期システム用少待ち時間fifo回路
JP2011141050A Expired - Fee Related JP5379826B2 (ja) 2000-06-09 2011-06-24 混合された非同期および同期システム用少待ち時間fifo回路

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2011141050A Expired - Fee Related JP5379826B2 (ja) 2000-06-09 2011-06-24 混合された非同期および同期システム用少待ち時間fifo回路

Country Status (9)

Country Link
EP (1) EP1374032B1 (ja)
JP (2) JP4849763B2 (ja)
KR (1) KR100761430B1 (ja)
CN (1) CN100429616C (ja)
AT (1) ATE370448T1 (ja)
AU (1) AU2001266808A1 (ja)
CA (1) CA2412438A1 (ja)
DE (1) DE60130039T2 (ja)
WO (1) WO2001095089A2 (ja)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100729319B1 (ko) 2000-04-25 2007-06-15 더 트러스티스 오브 컬럼비아 유니버시티 인 더 시티 오브 뉴욕 고용량 비동기 파이프라인 처리를 위한 회로 및 방법
AU2001257403A1 (en) 2000-04-26 2001-11-07 The Trustees Of Columbia University In The City Of New York A low latency fifo circuit for mixed clock systems
AU2001292980A1 (en) 2000-10-23 2002-05-06 The Trustees Of Columbia University In The City Of New York Asynchronous pipeline with latch controllers
KR20020094129A (ko) * 2001-06-11 2002-12-18 이문기 데이터 전송을 위한 토큰링 방식의 데이터 전송 시스템
WO2004066142A2 (en) 2003-01-24 2004-08-05 Koninklijke Philips Electronics N.V. Pipeline synchronisation device and method
CN100463443C (zh) * 2005-07-01 2009-02-18 中兴通讯股份有限公司 一种异步fifo实现系统及实现方法
FR2890766B1 (fr) * 2005-09-12 2007-11-30 Arteris Sa Systeme et procede de communication asynchrone sur circuit, entre des sous-circuits synchrones
FR2899413B1 (fr) 2006-03-31 2008-08-08 Arteris Sa Systeme de commutation de message
FR2900017B1 (fr) 2006-04-12 2008-10-31 Arteris Sa Systeme d'interconnexions de blocs fonctionnels externes sur puce muni d'un unique protocole parametrable de communication
FR2902957B1 (fr) 2006-06-23 2008-09-12 Arteris Sa Systeme et procede de gestions de messages transmis dans un reseau d'interconnexions
US7913007B2 (en) 2007-09-27 2011-03-22 The University Of North Carolina Systems, methods, and computer readable media for preemption in asynchronous systems using anti-tokens
WO2010039312A2 (en) 2008-06-27 2010-04-08 The University Of North Carolina At Chapel Hill Systems, pipeline stages, and computer readable media for advanced asynchronous pipeline circuits
CN102053815B (zh) * 2009-11-05 2012-10-31 上海华虹集成电路有限责任公司 同步fifo电路系统
CA2782414C (en) 2009-12-14 2021-08-03 Ab Initio Technology Llc Specifying user interface elements
CN101739500B (zh) * 2010-02-10 2012-06-06 龙芯中科技术有限公司 一种多时钟数字系统及其时钟确定装置和方法
WO2015192062A1 (en) 2014-06-12 2015-12-17 The University Of North Carolina At Chapel Hill Camera sensor with event token based image capture and reconstruction
CN104298634B (zh) * 2014-09-24 2017-06-30 四川九洲电器集团有限责任公司 基于fpga和dsp的数据传输系统
US9703526B2 (en) * 2015-03-12 2017-07-11 Altera Corporation Self-stuffing multi-clock FIFO requiring no synchronizers
US11423083B2 (en) 2017-10-27 2022-08-23 Ab Initio Technology Llc Transforming a specification into a persistent computer program
CN108268238A (zh) * 2018-01-24 2018-07-10 深圳市风云实业有限公司 数据处理方法、装置、计算机存储介质及fifo设备
CN111274171B (zh) * 2018-12-04 2022-02-11 珠海格力电器股份有限公司 一种数据传输装置及方法
CN110825344A (zh) * 2019-11-12 2020-02-21 天津飞腾信息技术有限公司 一种异步数据传输方法和结构

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS587932A (ja) * 1981-07-08 1983-01-17 Kyosan Electric Mfg Co Ltd カウンタ回路
JPH03141092A (ja) * 1989-10-25 1991-06-17 Hitachi Ltd 半導体メモリ
EP0606600A1 (en) * 1993-01-11 1994-07-20 Hewlett-Packard Company Improved single and multistage stage FIFO designs for data transfer synchronizers
JPH0877125A (ja) * 1994-09-09 1996-03-22 Hitachi Ltd 非同期データの同期化転送方式
JPH09180434A (ja) * 1995-12-27 1997-07-11 Canon Inc データ処理装置
JPH10315548A (ja) * 1997-05-21 1998-12-02 Canon Inc データ処理装置および方法ならびに、印刷装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55127637A (en) * 1979-03-24 1980-10-02 Nec Corp Data transfer buffer circuit
JPS63167949A (ja) * 1986-12-30 1988-07-12 Fanuc Ltd デ−タ転送システム
JP2577926B2 (ja) * 1987-02-20 1997-02-05 日本テキサス・インスツルメンツ株式会社 画像データの書き込み及び読み出し方法
JPH0277936A (ja) * 1988-09-14 1990-03-19 Meidensha Corp Fifoバッファメモリの制御方式
JP2597040B2 (ja) * 1990-09-12 1997-04-02 シャープ株式会社 Fifoメモリ装置
JP2703668B2 (ja) * 1991-03-18 1998-01-26 株式会社日立製作所 データ転送制御装置および磁気ディスク制御装置
JPH05197520A (ja) * 1992-01-22 1993-08-06 Japan Radio Co Ltd Fifoメモリ
JPH065220U (ja) * 1992-06-17 1994-01-21 横河電機株式会社 遅延回路
JPH0798979A (ja) * 1993-09-29 1995-04-11 Toshiba Corp 半導体記憶装置
JP3712471B2 (ja) * 1995-07-07 2005-11-02 サン・マイクロシステムズ・インコーポレイテッド コンピュータシステム及び第1の回路と第2の回路との間でデータを転送するインタフェース回路
JPH11175310A (ja) * 1997-12-09 1999-07-02 Toshiba Tec Corp FiFoメモリ制御回路
US6208703B1 (en) * 1998-05-15 2001-03-27 Hewlett Packard Company First-in-first-out synchronizer
US6128678A (en) * 1998-08-28 2000-10-03 Theseus Logic, Inc. FIFO using asynchronous logic to interface between clocked logic circuits

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS587932A (ja) * 1981-07-08 1983-01-17 Kyosan Electric Mfg Co Ltd カウンタ回路
JPH03141092A (ja) * 1989-10-25 1991-06-17 Hitachi Ltd 半導体メモリ
EP0606600A1 (en) * 1993-01-11 1994-07-20 Hewlett-Packard Company Improved single and multistage stage FIFO designs for data transfer synchronizers
JPH0877125A (ja) * 1994-09-09 1996-03-22 Hitachi Ltd 非同期データの同期化転送方式
JPH09180434A (ja) * 1995-12-27 1997-07-11 Canon Inc データ処理装置
JPH10315548A (ja) * 1997-05-21 1998-12-02 Canon Inc データ処理装置および方法ならびに、印刷装置

Also Published As

Publication number Publication date
DE60130039T2 (de) 2008-05-15
KR100761430B1 (ko) 2007-09-27
CN1478226A (zh) 2004-02-25
KR20030066333A (ko) 2003-08-09
EP1374032B1 (en) 2007-08-15
AU2001266808A1 (en) 2001-12-17
CA2412438A1 (en) 2001-12-13
CN100429616C (zh) 2008-10-29
JP4849763B2 (ja) 2012-01-11
WO2001095089A3 (en) 2003-10-16
WO2001095089A2 (en) 2001-12-13
EP1374032A2 (en) 2004-01-02
ATE370448T1 (de) 2007-09-15
JP5379826B2 (ja) 2013-12-25
DE60130039D1 (de) 2007-09-27
JP2011227919A (ja) 2011-11-10

Similar Documents

Publication Publication Date Title
JP5379826B2 (ja) 混合された非同期および同期システム用少待ち時間fifo回路
Chelcea et al. Robust interfaces for mixed-timing systems
Chelcea et al. Robust interfaces for mixed-timing systems with application to latency-insensitive protocols
US6850092B2 (en) Low latency FIFO circuits for mixed asynchronous and synchronous systems
EP0834134B1 (en) Delay reduction in transfer of buffered data between two mutually asynchronous buses
Chelcea et al. A low-latency FIFO for mixed-clock systems
TW386193B (en) Circuits, system, and methods for processing multiple data streams
TWI298888B (en) Pseudo-synchronization of the transportation of data across asynchronous clock domains
JP4520742B2 (ja) 非同期及び同期領域間の変換を促進する手法
US20040128413A1 (en) Low latency fifo circuits for mixed asynchronous and synchronous systems
EP1124179A1 (en) An apparatus for signal synchronization between two clock domains
US7352836B1 (en) System and method of cross-clock domain rate matching
US7197582B2 (en) Low latency FIFO circuit for mixed clock systems
JPH06259225A (ja) データ転送同期装置
JP2003157228A (ja) データ転送回路
JP2001159970A (ja) 装置間結合装置
US6282149B1 (en) Circuit and method for synchronized data banking
JP2000172636A (ja) リアルタイムデータ転送系の非同期系データ転送制御装置および方法
US6961861B2 (en) Globally clocked interfaces having reduced data path length
Abdelhadi et al. Two-phase asynchronous to synchronous interfaces for an open-source bundled-data flow
US7076680B1 (en) Method and apparatus for providing skew compensation using a self-timed source-synchronous network
JP3790158B2 (ja) Fifo回路
JP4730051B2 (ja) 半導体ディジタル回路、fifoバッファ回路及びそれらに用いるデータ受け渡し方法
JPH11224180A (ja) インターフェース回路
JPH04121892A (ja) バッファメモリ制御方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20080423

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110114

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110125

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110425

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110506

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110525

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110601

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110624

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: 20111004

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: 20111018

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20141028

Year of fee payment: 3

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