JP2007518178A - Fifoパイプライン付きの電子回路 - Google Patents

Fifoパイプライン付きの電子回路 Download PDF

Info

Publication number
JP2007518178A
JP2007518178A JP2006548452A JP2006548452A JP2007518178A JP 2007518178 A JP2007518178 A JP 2007518178A JP 2006548452 A JP2006548452 A JP 2006548452A JP 2006548452 A JP2006548452 A JP 2006548452A JP 2007518178 A JP2007518178 A JP 2007518178A
Authority
JP
Japan
Prior art keywords
handshake
circuit
input
data
req1
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.)
Withdrawn
Application number
JP2006548452A
Other languages
English (en)
Inventor
ダニエル、ティンマーマンス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips NV
Koninklijke Philips Electronics NV
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 Koninklijke Philips NV, Koninklijke Philips Electronics NV filed Critical Koninklijke Philips NV
Publication of JP2007518178A publication Critical patent/JP2007518178A/ja
Withdrawn legal-status Critical Current

Links

Images

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/08Methods 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, the intermediate ones not being accessible for either enqueue or dequeue operations, e.g. using a shift register

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Systems (AREA)
  • Communication Control (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

非同期的に作動されるFIFOパイプライン(10a−d)は、並列に機能する複数のハンドシェイクチェインを備える。逐次データ項目はそれぞれデータ項目の値に依存してチェインを選択することにより通過させられる。FIFOパイプライン(10a−d)は逐次パイプラインステージを備え、各パイプラインステージは複数のハンドシェイクチェインのそれぞれの対応するハンドシェイクステージ(12,16)をもつ。調整回路(15)は、ハンドシェイクチェインのうちの相互に異なるハンドシェイクチェインのハンドシェイクが互いにオーバーテイクすることを妨げる。好ましくは、4フェーズハンドシェイクプロトコルが、ステージの入力における要求ライン(REQ1−i,REQ0−i)と肯定応答ライン(ACK1−i,ACK0−i)との間にある論理ゲート(26,28)、並びに、論理ゲート(26,28)の出力に連結されたセット入力を伴うセットリセットラッチ(20,22)と共に使用される。ラッチは、ステージの出力で要求ラインに連結されたデータ出力と、ステージの出力の肯定応答ラインに連結されたリセット入力と、調整回路(24)に接続された非データ出力とを有する。調整回路(24)は、パイプラインステージ内のすべてのハンドシェイクステージの論理ゲート(26,28)の応答を使用不能状態にするように構成され、パイプラインステージのいずれか1台のセットリセットラッチ(20,22)の非データ出力はセット状態を示す。

Description

本発明は非同期的に作動されるFIFOパイプライン付きの電子回路に関係する。
非同期的に作動されるFIFOバッファは、Montek SinghとSteven M.Nowickによる「MOUSETRAP:Ultra−High−Speed Transition−Signaling Asynchronous Pipelines」、Proc. International Conference on Computer Design、9−17頁、2001年という表題の論文に記載されている。MOUSETRAPは、ハンドシェイク回路のチェインと並列にトランスペアレント/ホールドラッチのチェインを提供する。ハンドシェイク回路は、前のデータ項目が処理されるまで、新しいデータ項目がラッチ内の前のデータ項目を上書きしないことを保証する役目を果たす。各ハンドシェイクはそれぞれのラッチに対応する。各ハンドシェイク回路は上流と下流のハンドシェイク回路と共にハンドシェイクトランザクションを実行する。ハンドシェイクトランザクションは、ハンドシェイクを開始する要求信号と、要求が処理されたときの肯定応答信号とを含む。
MOUSETRAPでは、特定のハンドシェイク回路が要求信号を受信し、要求信号を処理する準備が整ったとき、この特定のハンドシェイク回路は肯定応答信号を返信し、さらなる要求信号を保持し、下流側の次のラッチのハンドシェイク回路へ送信するためにその対応するラッチを切り替える。次のラッチのハンドシェイク回路がさらなる要求信号を承認するとき、その特定のハンドシェイク回路は次の要求信号を受信する準備が整うようになり、そのラッチをトランスペアレントにする。
MOUSETRAPのハンドシェイク回路は、条件付きパスゲートおよび排他的ORゲートを使用する。条件付きパスゲートは、ハンドシェイク回路が準備完了であるとき、着信要求を下流へ渡す。特定のハンドシェイク回路の排他的ORゲートは条件付きパス回路を制御するため使用され、その結果、特定のハンドシェイク回路からの要求信号とチェイン内の次のハンドシェイク回路からの要求信号との間に差がある間にこのパス回路が着信要求信号を阻止する。よって、排他的ORゲートは、着信要求がさらなる下流へ通過させられたかどうかを検出し、その場合に、条件付きパスゲートにその後の着信要求を通過させるよう命令する。
速度はFIFOバッファの重要な設計目標である。速度の一つの指標はサイクルタイム、すなわち、逐次データ項目が最大可能データレートで供給されるときにラッチの出力で逐次データ信号の適用の間に必要とされる時間である。MOUSETRAPのようなハンドシェイクインターフェイスの場合、サイクルタイムは、ラッチのため十分なセットアップおよびホールド時間を残すように設計されなければならないハンドシェイク回路によって制御される。ハンドシェイク回路によって実現されるサイクルタイムは、逐次的な要求信号の間の最小時間に対応し、要求信号を生成する回路ループ内の回路によって決定される。
MOUSETRAPにおいて逐次的な要求信号を生成するため、信号は特定のハンドシェイク回路の条件付きパス回路、次のハンドシェイク回路の条件付きパス回路、および、特定のハンドシェイク回路の排他的ORゲートを含むループの中を移動しなければならない。このループは、特定のハンドシェイク回路の条件付きパス回路内の2個と、次のハンドシェイク回路の条件付きパス回路内の2個と、排他的ORゲート内の2個の、6個の論理ゲートを含む。これらの論理ゲートの個数、および、それらのファンアウト係数はサイクルタイムを決定する。大部分の論理ゲートは2入力をドライブすべきである。しかし、論理ゲートのうちの1個(特定のハンドシェイク回路の条件付きパス回路の最後の論理ゲート)は3入力(次のハンドシェイク回路の条件付きパス回路の入力、特定のハンドシェイク回路の排他的ORゲートの入力およびその直前のもの)をドライブすべきである。
MOUSETRAPの場合、この結果として、MOUSETRAPで使用されるラッチのセットアップおよびホールド時間を越える遅延が生じる。MOUSETRAPはハンドシェイク回路によって実現される遅延のさらなる短縮の可能性を示唆せず、その上、このような短縮は、ラッチを作動させるため必要とされる最悪ケースの遅延と整合性が取れないならば、役に立たないであろう。
特に、発明の目的は非同期的に作動されるFIFOパイプラインのサイクル時間を短縮することである。
特に、発明の目的はパイプラインのラッチの最悪ケースの遅延を補償するためにFIFOパイプラインのハンドシェイク回路のサイクル時間に制限を設けることを不必要にすることである。
特に、発明の目的は非同期的に作動されるFIFOパイプラインのサイクル時間を決定する回路ループ内の論理ゲートの最大ファンアウトを削減することである。
この発明は請求項1に記載された回路を提供する。この発明によれば、FIFOパイプラインは、並列した(好ましくは2個の)複数のハンドシェイクチェインを含む。データ項目は、そのデータ項目の値の制御下で選択された、ハンドシェイクチェインのうちの選択された1個によるハンドシェイクの送信によって表現される。パイプラインの逐次ステージの調整回路は、異なるチェインにおけるハンドシェイク信号が互いにオーバーテイクしないことを保証する。よって、ラッチはチェインを選択するため使用されるデータを表現するために必要とされない。したがって、ハンドシェイク回路の最大可能速度は、回路設計をこれらのデータラッチの遅延に適応させることなく、データを送信するため使用される。
好ましくは、パイプラインは、ハンドシェイク回路からのタイミング制御下で異なる可能なデータ値を記憶するラッチのチェインをもたず、すなわち、すべてのデータはハンドシェイクチェインの選択によって通信される。これは、データラッチのための制御信号をドライブする必要性に関連付けられた遅延を回避する。しかし、この発明は、それぞれがパイプラインの一つずつのステージに対応し、たとえば、ハンドシェイクがハンドシェイクチェインのいずれか一つにおけるステージに到着するならばクロックされる、データラッチのチェインがある場合でも有利である。チェイン内の所定のデータ幅に対するデータラッチの幅は、少なくとも1ビットがハンドシェイクチェインの選択によって表現されるとき、より小さくされ得る。よって、データラッチの制御信号をドライブする必要性によって生じる遅延は短縮される。
パイプラインと、パイプラインのデータ項目を生成するデータソース回路との間のインターフェイスでは、インターフェイス回路は、好ましくは、データ項目のためのハンドシェイクがデータ項目の値に依存して送信されるときに中を通るハンドシェイクチェインを選択するため使用される。同様に、パイプラインと、パイプラインからのデータ項目を消費するデータシンク回路との間のインターフェイスでは、インターフェイス回路は、好ましくは、ハンドシェイクが到着するときに中を通るハンドシェイクチェインに依存してデータ信号を制御するため使用される。データソース回路および/またはデータシンク回路は、ハンドシェイクインターフェイスと付随するデータ入力/出力を備えた非同期的に作動される回路、および/または、集中クロックの制御下で非同期的に作動される回路である(ソース回路とシンク回路に対して必ずしも同じクロックではない)。
この発明は、ハンドシェイクがデータに依存しない形で、たとえば、交互に異なるハンドシェイクチェインに分配される、それぞれにラッチを伴う複数のハンドシェイクチェインの使用と区別される。これは、スループットレートを増加させるが、ラッチの必要性を低減しない。本発明の一実施形態では、請求項に記載された複数のチェインのうちの数個は並列に使用され、データ値が独立に分配されるスキームを伴うので、データは複数個のチェインごとにあるチェインを選択する。
たとえば、4フェーズプロトコル、または、2フェーズプロトコル、すなわち、(肯定応答信号用の1本と要求信号用の1本の)2本のハンドシェイクライン若しくは異なる本数のハンドシェイクラインを使用するプロトコルなどのようなどのような種類のハンドシェイクプロトコルでもハンドシェイクを交換するため使用される。実際には、ハンドシェイクチェインおよび/または種々のチェインの種々のステージで、種々のプロトコルが使用される。
一実施形態では、4フェーズハンドシェイクプロトコルが使用され、請求項に記載された回路が使用される。この回路は、回路ループ内の論理ゲートの最大ファンアウトを低減するので、FIFOパイプラインのサイクルタイムは短縮される。発明のこれらの有利な態様およびその他の有利な態様は以降の図を使用して説明される。
図1は、いくつかのステージ10a−dが直列接続されたFIFOパイプラインによって連結されたデータソース回路1およびデータシンク回路2を示す。4ステージが一例として示されているが、いかなる個数のステージでも直列接続されることが理解される。各ステージ10a−dは、第1のハンドシェイク回路12と第2のハンドシェイク回路16とを含む。ステージの第1のハンドシェイク回路は第1のハンドシェイクチェインに連結される(単一のラインがハンドシェイクカップリングとして示されているが、各ハンドシェイクカップリングは実際にはハンドシェイクシグナリングのための2本以上のラインを含むことが理解される)。ステージの第2のハンドシェイク回路は第2のハンドシェイクチェインに連結される。さらに、各ステージ10a−dは、ステージ10a−dの第1のハンドシェイク回路と第2のハンドシェイク回路との間に連結された調整回路15を含む。
動作中に、データビットは、逐次ステージ10a−dのペアの間のハンドシェイクシグナリングを使用して、パイプラインを介して非同期的に運ばれる。データビットの論理値(論理1と論理0)に依存して、データビットの対応するハンドシェイクが第1のチェインまたは第2のチェインのいずれかを介して渡される。調整回路15は、第1のハンドシェイク回路12または第2のハンドシェイク回路16のいずれかからの前の要求がその後のステージ10a−dによって承認されるまで、いずれかのハンドシェイク回路12、16におけるステージ10a−dからの肯定応答信号を遅らせることにより、異なるチェインにおける論理1のためのハンドシェイクと論理0のためのハンドシェイクが互いにオーバーテイクしないことを保証する。
よく知られているように、2個の回路の間のハンドシェイクシグナリングは、一方の回路からもう一方への要求信号を送信し、もう一方の回路が次の要求信号を処理する準備が完了すると、要求信号に応答してもう一方の回路から肯定応答信号を返信する。
要求信号および肯定応答信号を実現する様々な形式が使用される(すべてのステージにおいて同じであるか、または、種々のステージのペアの間で異なる信号であることさえある)。4フェーズプロトコルでは、たとえば、要求信号を送信する1本と、肯定応答信号を送信する1本の2本の信号ラインが使用される。要求信号は、典型的に、要求ラインの論理レベルを立ち上げることによってシグナルされ、肯定応答信号は典型的に肯定応答ラインの論理レベルを立ち上げることによってシグナルされる。要求の肯定応答後、要求ラインの論理レベルは下げられ、その後に、肯定応答ライン上の論理レベルが下げられる。その後に続いて、インターフェイスは次のハンドシェイクの準備が完了する。
2フェーズハンドシェイクプロトコルでは、別の実施例として、要求信号を送信する1本と肯定応答信号を送信する1本の2本の信号ラインが使用される。要求信号は要求ラインの論理レベルを変更することにより典型的にシグナルされ、肯定応答信号は肯定応答ラインの論理レベルを変更することにより典型的にシグナルされる。その後に続いて、インターフェイスは次のハンドシェイクの準備が完了する。別のプロトコルでは、単一の信号が2本の信号ラインの代わりに使用され、要求は、論理ラベルを立ち上げ、次に、信号ライン上の電圧レベルを浮遊させることを可能にすることによってシグナルされ、肯定応答信号は、論理レベルを下げ、その後に続いて信号ライン上の電圧レベルを浮遊させることを可能にすることによってシグナルされる。
図2は4フェーズプロトコルを使用するステージの回路実施を示す。ステージは、論理1の着信信号をハンドシェイクする第1の入力ハンドシェイクインターフェイスREQ1_i、ACK1_iと、論理0の着信信号をハンドシェイクする第2の入力ハンドシェイクインターフェイスREQ0_i、ACK0_iと、論理1の発信信号をハンドシェイクする第1の出力ハンドシェイクインターフェイスREQ1_o、ACK1_oと、論理0の発信信号をハンドシェイクする第2の入力ハンドシェイクインターフェイスREQ0_o、ACK0_oとの4個のハンドシェイクインターフェイスを有する。ステージは、第1のラッチ20、第2のラッチ22、AND回路24と、第1および第2の肯定応答NANDゲート26、28とを含む。
第1の肯定応答NANDゲート26は、第1の入力ハンドシェイクインターフェイスの要求ラインREQ1_iに連結された入力と、AND回路24の出力に接続された入力とを有する。第1の肯定応答NANDゲート26は第1の入力ハンドシェイクインターフェイスの肯定応答ラインACK1_iに連結された出力を有する。第1のラッチ20は、セット入力およびリセット入力と、データ出力および非データ出力とを有する。第1の肯定応答NANDゲート26の出力は第1のラッチ20のセット入力に連結される。第1のラッチ20のデータ出力は第1の出力ハンドシェイクインターフェイスの要求ラインREQ1_oに連結される。第1の出力ハンドシェイクインターフェイスの肯定応答ラインACK1_oは第1のラッチ20のリセット入力に連結される。第1のラッチ20の非データ出力はAND回路24の第1の入力に連結される。
このステージの第2の肯定応答NANDゲート28と、第2のラッチ22と、第2の入力および出力ハンドシェイクインターフェイスREQ0_i、ACK0_i、REQ0_o、ACK0_oは、このステージの第1の肯定応答NANDゲート28と、第1のラッチ20と、第1の入力および出力ハンドシェイクインターフェイスREQ1_i、ACK1_i、REQ1_o、ACK1_oと同じように相互接続される。第2のラッチ22の非データ出力はAND回路24の第2の入力に連結される。一例として、第1および第2のラッチ20、22は、クロスカップル型NANDゲート200、202、220、222として実施されることが示されている。
図3はステージの動作を説明する信号を示す。信号トレースは、第1の入力ハンドシェイクインターフェイスの要求ラインREQ1_i、第1の入力ハンドシェイクインターフェイスの肯定応答ラインACK1_i、第1の出力ハンドシェイクインターフェイスの要求ラインREQ1_o、第1の出力ハンドシェイクインターフェイスの肯定応答ラインACK1_o、および、AND回路24のAND出力における信号を示す。図中、ステージの一方の入力ハンドシェイクインターフェイスだけがアクティブであることが仮定されるので、AND回路24の第2の入力は論理ハイ状態である。
第1の入力ハンドシェイクインターフェイスの要求ラインREQ1_i上の信号の立ち上がり変化30は、ハンドシェイクサイクルを開始する着信要求を表す。AND回路24の出力で信号が論理ハイ状態であるとき、REQ1_i上の立ち上がり変化は、第1の肯定応答NANDゲート26に、第1の入力ハンドシェイクインターフェイスの肯定応答ラインACK1_i上で立ち下がり変化31(着信要求の承認を表現する立ち下がり変化)を生じさせる。これに応じて、前のステージは第1の入力ハンドシェイクインターフェイスの要求ラインREQ1_i上の信号を下げ、これは、次に、ACK1_iを上昇させる。
この第1の入力ハンドシェイクインターフェイスの肯定応答ラインACK1_i上の立ち下がり変化はラッチ20をセットする。ラッチ20がセットされるとき、その非データ出力はロー状態になり、AND回路24の第1の入力における信号はロー状態になる。その結果として、AND出力はロー状態になり、これは、(もし要求パルスの停止によって既に上昇させられていないならば)肯定応答ラインACK1_i上の信号を高い値にもう一度上昇させることにより、肯定応答パルスを停止する。
ラッチ20がセットされるとき、そのデータ出力は、第1の出力ハンドシェイクインターフェイスの要求出力REQ1_oで、発信要求を表現する立ち上がり変化32をドライブする。後の時点で、第1の出力ハンドシェイクインターフェイスの肯定応答ラインACK1_o上の立ち下がり変化33は、後に続くステージ(図示されず)による発信要求の承認を表す。立ち下がり変化33はラッチ20をリセットし、回路をその初期状態へ戻す。
勿論、ラッチ20がリセットされる前に、新しい要求信号が第1の入力ハンドシェイクインターフェイスの要求ラインREQ1_iに到達することがあり得る。この場合に関係している信号は、図で示された第1の入力ハンドシェイクインターフェイスの要求ラインREQ1_i上の信号の後続の立ち上がり変化35である。この場合、着信要求信号は、前の発信信号の肯定応答36が受信されるまで承認されない。この肯定応答はラッチ20をリセットし、ラッチは、着信要求が上記のごとく処理されるように、AND回路24の出力をハイ状態にする。
ここまでは、第1の入力および出力ハンドシェイクインターフェイスにおける論理1に対するハンドシェイク信号の操作を説明した。動作中に、第1の入力および出力ハンドシェイクインターフェイスにおける論理0に対するハンドシェイク信号は、論理1に対するこれらのハンドシェイクと一時的に混合される。論理0に対するハンドシェイクの処理は論理1に対するハンドシェイクの処理に類似する。第1のラッチ20と第2のラッチ22のいずれかがセットされ、着信ハンドシェイクが第1または第2の入力ハンドシェイクインターフェイスREQ0_i、ACK0_i、REQ1_i、ACK1_i上で受信されているが、第1または第2の出力ハンドシェイクインターフェイスREQ0_o、ACK0_o、REQ1_o、ACK1_o上の対応する出力ハンドシェイクはまだ承認されていないことを表すとき、着信ハンドシェイクの肯定応答は、立ち上がり変化35によってシグナルされた要求に対して示されるように、発信ハンドシェイクが承認されるまで遅延される。
肯定応答信号の立ち上がりはANDゲートによってドライブされることに注意すべきである。理論的には、したがって、肯定応答信号は対応する要求信号の立ち下がりより前に立ち上がる。しかし、肯定応答信号の立ち下がりに対する要求信号の応答は十分に高速であるためこれを妨げることが想定される。そうでなければ、要求信号が立ち下がるまで肯定応答信号の立ち上がりを遅延させるため、付加的な回路が追加される。
インターフェイスのサイクルタイムは、特定のステージの第1の肯定応答NANDゲート26と、特定のステージの第1のラッチ20内の第1のNANDゲート200と、後のステージの第1の肯定応答NANDゲート26と、特定のステージの第1のラッチ20内の第2のNANDゲート202と、特定のステージのAND回路24とを含む第1の回路ループ内の遅延によって決定される。この回路ループは、(AND回路24内の最低限の2個のゲートを考慮して)直列した6個のゲートを含む。各ゲートは、1個のゲートによってのみロードされるAND回路24の内部NANDゲートをおそらく除いて)2個の他のゲートによってロードされることに注意すべきである。よって、非常に短いサイクルタイムが実現される。
データソース回路1およびデータシンク回路2は、内部的にそれぞれ、(一方若しくは両方がその固有クロックによってクロックされるか、または、両方が共通クロックによってクロックされる)非同期回路または同期回路である。非同期回路は、有効なデータがデータ信号ライン上で利用可能であるときを表すために、ハンドシェイクインターフェイスと関連してデータ信号ラインを使用する。このような非同期回路からステージ10a−dを介してデータを転送するために、変換回路が、好ましくは、非同期信号ソース1とステージ10a−dとの間に挿入される。同様に、ステージ10a−dを介してこのような非同期回路へデータを転送するために、変換回路が、好ましくは、ステージ10a−dと非同期信号シンク2との間に挿入される。
図4aは、ステージ10aと非同期ソース回路1との間で使用され、データがデータラインD上で利用可能であるときを表すためデータラインDとハンドシェイクラインREQ、ACKを使用するインターフェイス回路を示す。REQ1信号はREQおよびDの論理積から形成され、REQ0信号は、REQと、Dの反転との論理積から形成される。返信される肯定応答は、肯定応答信号ACK1_iとACK0_iとの否定論理積から形成される。チェイン内の肯定応答信号と対照的に、非同期ソース回路へ返送される肯定応答信号は、従来の4フェーズシグナリングレベルを有し、このことは、それらが論理ハイレベル(アクティブハイ状態)で肯定応答をシグナルすることを意味する。
図4bは、ステージ10dと非同期シンク回路2との間で使用され、データがデータライン上で利用可能である時を表すためデータラインDとハンドシェイクラインREQ、ACKを使用するインターフェイス回路を示す。REQ信号は、REQ1_oとREQ0_oとの論理和から形成され、データ信号DはREQ1_oから得られる。(好ましくは、従来のアクティブハイシグナリングを使用する)返送された肯定応答信号ACKは、ACKをデータ信号Dおよびその反転とそれぞれ論理的にNANDすることによって、(アクティブローである)ACK1_oおよびACK0_oを生成するため使用される。しかし、このNAND演算は、図2の実施形態の場合のように、(前の要求に対する応答ではない)スプリアス肯定応答信号が許されるならば省略される。
勿論、信号ソース回路1および/または信号シンク回路2は、同期(集中クロック)回路でもよい。この場合、図4a、4bに示されているようなインターフェイス回路は、このような信号ソース回路1および/または信号シンク回路2へ接続するために従来の非同期−同期変換回路と共に使用される。代替案として、関連したクロックがソース側で遅延回路を介してACK信号をREQ信号へループバックすることによって、および/または、シンク側でREQ信号をACK信号へループバックすることによって生成される。
図5aは代替案を示す。同期−非同期インターフェイス回路50、52のペアが同期ソース回路1を論理1および論理0のハンドシェイクインターフェイスREQ1_i、ACK1_i、REQ0_i、ACK0_iに接続するため使用される。本実施形態では、同期ソース回路1は、クロックCLK入力、有効出力「V」、イネーブル入力「E」、および、データ出力「D」を有する(FIFOバッファコネクションの点では、VコネクションおよびEコネクションはV=ライト(write)、E=FIFOフル(full)とも称される)。有効出力Vにおける信号は、有効データの可用性をシグナルするため使用され、イネーブル入力における信号はデータを受け入れる能力をシグナルするため使用される。同期ソース回路1は、それぞれが、クロック入力CLKとの同期インターフェイスと、「有効」入力Vおよびイネーブル出力Eと、要求ラインおよび肯定応答ラインに連結された非同期インターフェイスとを有する同期−非同期インターフェイス回路50、52のそれぞれに連結される。同期−非同期インターフェイス回路はそれ自体で知られ、どのようなタイプのインターフェイス回路でも使用される。同期ソース回路1からの有効信号は、同期ソース回路1のデータ出力でのデータの値に依存して、第1の同期−非同期インターフェイス回路50と第2の同期−非同期インターフェイス回路52のいずれかに選択的にゲートされ、イネーブル回路は同期−非同期インターフェイス回路50、52からのイネーブル信号の論理積から形成される。
動作中に、データソース回路1は、利用可能なデータを有し、イネーブル信号がアサートされているならば、クロックサイクル中に有効なV信号を生成する。インターフェイス回路50、52は、V信号に応じて要求を生成し、肯定応答に応じてE信号を生成する。しかし、このV、Eインターフェイス以外の他のインターフェイス、たとえば、E信号がアサートされるとデータソース回路1がV信号を生成するインターフェイスが使用されることが理解されるべきである。ソース回路1が各クロックサイクルで新しいデータを生じ、FIFOバッファはクロックレートでデータを転送できることが予め決定されるならば、制御インターフェイス信号VおよびEの使用は省略される。
図5bは、第1および第2の非同期−同期インターフェイス回路54、56を使用する、データシンク回路2への類似したインターフェイスを示す。ここでは、シンク回路2は、クロックCLK入力と、データ入力Dと、有効入力Vと、イネーブル出力Eとを有する(FIFOインターフェイスの場合、有効入力およびイネーブル出力は、V=FIFOノットエンプティ(not empty)、および、E=リード(read)と称される)。非同期−同期インターフェイス回路54、56はそれぞれ、論理1および論理0ハンドシェイクインターフェイスREQ1_o、ACK1_o、REQ0_o、ACK0_oのそれぞれに連結された非同期インターフェイスを有する。非同期−同期インターフェイス回路54、56はそれぞれ、クロック入力CLK、有効出力Vおよびイネーブル入力Eを伴う同期インターフェイスを有する。データシンク回路2の有効入力は、非同期−同期インターフェイス回路54、56の有効出力の論理和から形成され、データシンク回路2のデータ入力は、論理1に対する非同期−同期インターフェイス回路54の有効出力から形成される。非同期−同期インターフェイス回路54、56のイネーブル入力はデータシンク回路2のイネーブル出力によってドライブされる。しかし、データソース回路の場合と同様に、このV、Eインターフェイス以外の他のインターフェイスを使用してもよいことが理解されるべきである。
理解されるように、図は1ビット幅の伝送パスを提供する回路を示す。マルチビット幅の転送パスはいくつかの形で実現される。第一に、異なるチェイン上のハンドシェイク信号が互いにオーバーテイクすることを阻止する調整回路と共に、マルチビット信号の起こり得る値のそれぞれに対して並列に対応するハンドシェイクチェインを使用することによって実現される。第二に、マルチビット信号のビットの一つずつの論理1と論理0に対するチェインのそれぞれのペアが並列に使用される。この場合、チェインのペアの間の調整は、ハンドシェイク要求が論理0および論理1に対してチェインの各ペアの1ライン上で生成されるときに限り、非同期シンク回路2へのハンドシェイク、または、同期シンク回路2への有効信号が生成されることを保証するため、シンク回路2へのインターフェイスだけで必要とされる。調整は、それぞれのチェインの間の速度の広がりが十分に小さいならば、場合によっては省略される。
さらに、図は、中間的な論理処理をもたない逐次ステージ10a−dの間の直接コネクションを示す。勿論、論理処理回路は逐次ステージの間に挿入してもよい。
一実施形態では、このような論理処理回路は、ステージ10a−dのハンドシェイクインターフェイスによってシグナルされたビット「b」と、外部データ「e」の関数v=F(b,e)として、1個以上の出力ビット値vを計算する。本実施形態では、論理処理回路は、外部回路「e」の影響下で、後のステージ10a−dのハンドシェイクインターフェイス(論理0または論理1のインターフェイス)のうち、前の段10a−dからのハンドシェイクインターフェイスを連結する先を選択する。たとえば、論理回路は、前のステージからの論理1のハンドシェイクインターフェイスと論理0のハンドシェイクインターフェイスの両方を、後のステージの論理1のハンドシェイクインターフェイスに連結し、または、論理1のインターフェイスと論理0のインターフェイスを交換したりする。この連結は外部信号「e」に依存して変えられる。
論理1と論理0の複数のハンドシェイクインターフェイスのペアが使用される別の実施形態では、この中間論理処理回路は、それらのペアの一つずつによって表現されたビットの論理関数を計算する。原則として、これは、後のステージ10a−dの論理1または論理0のハンドシェイクインターフェイスのどちらに基づいて、論理1と論理0のハンドシェイクインターフェイスの複数のペアからのハンドシェイク要求の組み合わせに応答してハンドシェイクを開始すべきであるかを決定するハンドシェイク回路によって実現される。
好ましくは、しかし、このような中間論理処理回路は、論理1および論理0のインターフェイスからのハンドシェイクを、(たとえば、図4aの回路を使用する)付随するハンドシェイクを伴う明示的な論理信号に変換し、変換された信号のための組み合わされたハンドシェイクだけでなく、明示的な論理信号からの論理関数を計算し、計算された論理値および組み合わされたハンドシェイクを元の論理1および論理0をそれぞれに表現するハンドシェイク信号に変換する。
ステージ10a−dの単一チェインが示されているが、このようなチェインは、勿論、チェイン選択によってデータ値を符号化する複数のアンドシェイクチェインをそれぞれに伴う部分的に並列的なパイプラインを提供するために、分岐等がなされても構わないことが理解される。この場合、データ項目は、データに依存しない形で種々のパイプライン上に分配される。さらに、ハンドシェイク回路は4フェーズシグナリングに対して示されているが、論理1および論理0が当然に、2フェーズシグナリングを使用するインターフェイスのような他のタイプのハンドシェイクインターフェイスでシグナルされることもまた認められる。実際には、ステージ10a−dの種々のペアの間のハンドシェイクインターフェイスは、タイプが異なり、場合によっては、1のためのインターフェイスと0のためのインターフェイスが異なるタイプからなる。
さらに、ラッチ20、20は、要求がいずれかの出力ハンドシェイクインターフェイス上で保留中であるかどうかを表現するために一体として機能することが理解される。別々のラッチを使用する代わりに、共通ラッチがこの目的のため使用されるか、または、ステージ10aの状態を表現する他のメモリが使用される。さらに、発明から逸脱することなく、すべての信号に対する論理ハイ状態およびロー状態の意味は、AND関数とOR関数の交換を伴うならば、交換してもよいことが理解される。同様に、信号の一部の論理ハイ状態およびロー状態の意味は、発明から逸脱することなく、論理関数の変更を伴うならば、交換してもよい。
FIFOパイプラインを示す図である。 ハンドシェイクステージを示す図である。 ハンドシェイクステージで使用される信号を示す図である。 FIFOパイプラインへの非同期インターフェイス回路を示す図である。 FIFOパイプラインへの非同期インターフェイス回路を示す図である。 FIFOパイプラインへの同期インターフェイス回路を示す図である。 FIFOパイプラインへの同期インターフェイス回路を示す図である。
符号の説明
1 データソース回路
2 データシンク回路
10a〜10d ステージ
12 第1のハンドシェイク回路
15 調整回路
16 第2のハンドシェイク回路
20 第1のラッチ
22 第2のラッチ
50、52 同期−非同期インターフェイス回路
54、56 非同期−同期インターフェイス回路

Claims (9)

  1. 非同期的に作動されるFIFOパイプライン(10a−d)を備え、
    前記FIFOパイプライン(10a−d)が機能的に並列した複数のハンドシェイクチェインを備え、前記ハンドシェイクチェインのうちの選択された1個にハンドシェイクを通過させることにより逐次データ項目ごとに通過させ、前記選択された1個のハンドシェイクチェインが前記データ項目の値に依存して選択され、
    前記FIFOパイプライン(10a−d)が逐次パイプラインステージ(12、16)を備え、各パイプラインステージが、前記複数のハンドシェイクチェインのそれぞれのうちの対応するハンドシェイクステージと、相互に異なるハンドシェイクチェインの中のハンドシェイクが互いにオーバーテイクすることを妨げるためにアレンジされた調整回路(15)とを備える、
    電子回路。
  2. 前記データ項目の前記値をシグナルするデータ出力(D)を有するデータソース回路(1)と、
    前記ソース回路と前記FIFOパイプライン(10a−d)との間に連結され、前記ハンドシェイクチェインの対応する一つずつに連結された複数の出力ハンドシェイクインターフェイス((REQ1_i,ACK1_i),(REQ0_i,ACK0_i))、および、前記データ出力(D)に連結され、前記値の制御下で、前記値のハンドシェイクトランザクションを開始する前記出力ハンドシェイクインターフェイス((REQ1_i,ACK1_i),(REQ0_i,ACK0_i))のうちの一つを選択するインターフェイス選択入力を有するインターフェイス回路と、
    を備える、請求項1に記載の電子回路。
  3. 前記データ項目の前記値を受信するデータ入力(D)をもつデータシンク回路(2)と、
    前記FIFOパイプライン(10a−d)と前記シンク回路(2)との間に連結され、前記ハンドシェイクチェインの対応する一つずつに連結された複数の入力ハンドシェイクインターフェイス((REQ1_o,ACK1_o),(REQ0_o,ACK0_o))を有し、前記入力ハンドシェイクインターフェイス((REQ1_o,ACK1_o),(REQ0_o,ACK0_o))のいずれか一つでそれぞれのハンドシェイクを受信すると前記データ信号を前記データ入力(D)へ供給するようにアレンジされ、受信された前記それぞれのハンドシェイクの送信元の前記入力ハンドシェイクインターフェイス((REQ1_o,ACK1_o),(REQ0_o,ACK0_o))に依存して前記データ信号の値を制御する、インターフェイス回路と、
    を備える、請求項1に記載の電子回路。
  4. 少なくとも1段の前記ハンドシェイクステージが前記データ項目の前記値を記憶するデータ入力付きのラッチのタイミング入力に連結されない、請求項1に記載の電子回路。
  5. 特定のパイプラインステージ(10a−d)の前記調整回路(15)は、発信ハンドシェイク要求がいずれかの前記ハンドシェイクステージ(12、16)で保留中である間に、前記特定のパイプラインステージ(10a−d)のいずれかの前記ハンドシェイクステージで着信要求の承認を遅延させるように構成される、請求項1に記載の電子回路。
  6. 各パイプラインステージ(10a−d)が、
    それぞれが前記ハンドシェイクチェインの一つずつからの着信要求を処理する、並列した複数の入力ハンドシェイクインターフェイス((REQ1_i,ACK1_i),(REQ0_i,ACK0_i))と、
    それぞれが前記ハンドシェイクチェインの一つずつで発信要求を生成する、並列した複数の出力ハンドシェイクインターフェイス((REQ1_o,ACK1_o),(REQ0_o,ACK0_o))と、
    前記入力ハンドシェイクインターフェイス((REQ1_i,ACK1_i),(REQ0_i,ACK0_i))および前記出力ハンドシェイクインターフェイス((REQ1_o,ACK1_o),(REQ0_o,ACK0_o))に連結され、いずれかの前記入力ハンドシェイクインターフェイス((REQ1_i,ACK1_i),(REQ0_i,ACK0_i))からいずれかの前記出力ハンドシェイクインターフェイス((REQ1_o,ACK1_o),(REQ0_o,ACK0_o))への要求の伝送の完了が保留中であるかどうかを表現する前記メモリ回路(20、22)と、
    前記メモリ回路に連結された入力、および、前記入力ハンドシェイクインターフェイス((REQ1_i,ACK1_i),(REQ0_i,ACK0_i))に連結された出力を有し、前記メモリ回路(20、22)が発信ハンドシェイクは保留中であることを表現するときに、発信ハンドシェイクの承認を妨げる前記調整回路(24)と、
    を備える、請求項1に記載の電子回路。
  7. 4フェーズシグナリングが前記ハンドシェイクチェインで使用され、
    各ハンドシェイクステージが、
    前記ハンドシェイクチェインの一つずつからの着信要求を処理する、要求ラインと肯定応答ラインの入力組み合わせ((REQ1_i,ACK1_i),(REQ0_i,ACK0_i))と、
    前記ハンドシェイクチェインの前記一つずつへの発信要求を処理する、要求ラインと肯定応答ラインの出力組み合わせ((REQ1_o,ACK1_o),(REQ0_o,ACK0_o))と、
    前記入力組み合わせの前記要求ライン((REQ1_i,REQ0_i)および前記肯定応答ライン(ACK1_i,ACK0_i)にそれぞれ連結された第1の論理入力および論理出力を有する論理ゲート(26、28)と、
    前記論理ゲート(26、28)の前記出力に連結されたセット入力、前記出力組み合わせの前記要求ライン(REQ1_o,REQ0_o)に連結されたデータ出力、前記出力組み合わせの前記肯定応答ライン(ACK1_o,ACK0_o)に連結されたリセット入力、および、前記調整回路(24)に連結された非データ出力をもつセット−リセットラッチ(20、22)と、
    を備え、
    前記パイプラインステージのいずれか1個の前記セット−リセットラッチ(20、22)の前期比データ出力がセット状態を表す間に、前記調整回路(24)が前記パイプラインステージにおけるすべてのハンドシェイクステージの前記論理ゲート(26、28)の応答を使用不能状態にするようアレンジされる、
    請求項1に記載の電子回路。
  8. 互いに反対のアクティブレベルが前記要求ライン(REQ1_i,REQ1_o,REQ0_i,REQ0_o)および前記肯定応答ライン(ACK1_i,ACK1_o,ACK0_i,ACK0_o)上でそれぞれ要求信号および肯定応答信号のため使用される、請求項7に記載の電子回路。
  9. 前記複数のハンドシェイクチェインがデータ項目のバイナリ値を通過させる2個のハンドシェイクチェインにより構成される、請求項1に記載の電子回路。
JP2006548452A 2004-01-13 2004-12-29 Fifoパイプライン付きの電子回路 Withdrawn JP2007518178A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP04100087 2004-01-13
PCT/IB2004/052932 WO2005069121A1 (en) 2004-01-13 2004-12-29 Electronic circuit with a fifo pipeline

Publications (1)

Publication Number Publication Date
JP2007518178A true JP2007518178A (ja) 2007-07-05

Family

ID=34778215

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006548452A Withdrawn JP2007518178A (ja) 2004-01-13 2004-12-29 Fifoパイプライン付きの電子回路

Country Status (7)

Country Link
US (1) US20070113049A1 (ja)
EP (1) EP1714209B1 (ja)
JP (1) JP2007518178A (ja)
CN (1) CN1902580A (ja)
AT (1) ATE442623T1 (ja)
DE (1) DE602004023127D1 (ja)
WO (1) WO2005069121A1 (ja)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE452371T1 (de) * 2004-04-28 2010-01-15 Koninkl Philips Electronics Nv Schaltung mit asynchroner/synchroner schnittstelle
US7971038B2 (en) * 2005-09-05 2011-06-28 Nxp B.V. Asynchronous ripple pipeline
WO2008008661A2 (en) * 2006-07-11 2008-01-17 Harman International Industries, Incorporated Interleaved hardware multithreading processor architecture and dynamic instruction and data updating architecture
US9141567B2 (en) 2006-07-11 2015-09-22 Harman International Industries, Incorporated Serial communication input output interface engine
US8074053B2 (en) 2006-07-11 2011-12-06 Harman International Industries, Incorporated Dynamic instruction and data updating architecture
US8429384B2 (en) 2006-07-11 2013-04-23 Harman International Industries, Incorporated Interleaved hardware multithreading processor architecture
WO2013020114A1 (en) * 2011-08-03 2013-02-07 Cornell University Energy-efficient pipeline circuit templates for high performance asynchronous circuits
CN102929830A (zh) * 2012-11-08 2013-02-13 浙江绍兴苏泊尔生活电器有限公司 一种软件模拟快速通信协议
CN109976704A (zh) * 2019-03-29 2019-07-05 西安电子科技大学 一种基于fpga的级联fifo模块的设计方法
CN113489482B (zh) * 2021-07-06 2023-10-20 北京中科芯蕊科技有限公司 基于Mousetrap的异步微流水线数据流控制器
CN115800992B (zh) * 2023-02-07 2023-06-02 浪潮电子信息产业股份有限公司 一种握手信号的拆分电路、方法、装置、设备及存储介质
CN116384309B (zh) * 2023-05-31 2023-08-11 华中科技大学 一种应用于低功耗芯片设计的四相锁存异步握手电路

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU8495098A (en) * 1997-07-16 1999-02-10 California Institute Of Technology Improved devices and methods for asynchronous processing
US6226698B1 (en) * 1997-11-10 2001-05-01 Sun Microsystems, Inc. Method and apparatus for dynamically calculating degrees of fullness of a synchronous FIFO
US6128678A (en) * 1998-08-28 2000-10-03 Theseus Logic, Inc. FIFO using asynchronous logic to interface between clocked logic circuits
US6867620B2 (en) * 2000-04-25 2005-03-15 The Trustees Of Columbia University In The City Of New York Circuits and methods for high-capacity asynchronous pipeline
US6850092B2 (en) * 2000-06-09 2005-02-01 The Trustees Of Columbia University Low latency FIFO circuits for mixed asynchronous and synchronous systems
US6590424B2 (en) * 2000-07-12 2003-07-08 The Trustees Of Columbia University In The City Of New York High-throughput asynchronous dynamic pipelines
US6356117B1 (en) * 2000-09-29 2002-03-12 Sun Microsystems, Inc. Asynchronously controlling data transfers within a circuit
CA2424572C (en) * 2000-10-23 2010-12-07 The Trustees Of Columbia University In The City Of New York Asynchronous pipeline with latch controllers
US20020078328A1 (en) * 2000-12-14 2002-06-20 International Business Machines Corporation Pulse-controlled micropipeline architecture
US6557161B2 (en) * 2001-06-28 2003-04-29 Sun Microsystems, Inc. Method for prototyping asynchronous circuits using synchronous devices
CN100483374C (zh) * 2003-06-16 2009-04-29 Nxp股份有限公司 包括存储器的数据处理电路及相关方法

Also Published As

Publication number Publication date
WO2005069121A1 (en) 2005-07-28
CN1902580A (zh) 2007-01-24
DE602004023127D1 (de) 2009-10-22
EP1714209A1 (en) 2006-10-25
US20070113049A1 (en) 2007-05-17
ATE442623T1 (de) 2009-09-15
EP1714209B1 (en) 2009-09-09

Similar Documents

Publication Publication Date Title
US7971038B2 (en) Asynchronous ripple pipeline
US5448715A (en) Dual clock domain interface between CPU and memory bus
US6308229B1 (en) System for facilitating interfacing between multiple non-synchronous systems utilizing an asynchronous FIFO that uses asynchronous logic
US5920899A (en) Asynchronous pipeline whose stages generate output request before latching data
KR100783687B1 (ko) 래치 제어기를 갖는 비동기 파이프라인
US7467251B2 (en) Flash memory data storage apparatus
US20070139085A1 (en) Fast buffer pointer across clock domains
US7516382B2 (en) On-chip data transmission control apparatus and method
US6522170B1 (en) Self-timed CMOS static logic circuit
US7245147B1 (en) Interface for a programmable logic device
US20020010831A1 (en) Variable length pipeline with parallel functional units
US7454538B2 (en) Latency insensitive FIFO signaling protocol
US20140247069A1 (en) Systems, pipeline stages, and computer readable media for advanced asynchronous pipeline circuits
JP3645584B2 (ja) データ転送同期装置
JP2007518178A (ja) Fifoパイプライン付きの電子回路
US9710012B2 (en) Timing optimized implementation of algorithm to reduce switching rate on high throughput wide buses
EP1396786A1 (en) Bridge circuit for use in retiming in a semiconductor integrated circuit
US6393080B1 (en) Apparatus comprising clock control circuit and device using internal clock signal synchronized to external clock signal
CN116318601A (zh) 用于高速信令互连的帧对齐恢复
JP2580325B2 (ja) デ―タ伝送方式、デ―タ出力回路およびデ―タ入力回路
JP3859885B2 (ja) 半導体記憶装置
US11005642B1 (en) Output circuit for a source device with arbitrary access time
US6430697B1 (en) Method and apparatus for reducing data return latency of a source synchronous data bus by detecting a late strobe and enabling a bypass path
US6282149B1 (en) Circuit and method for synchronized data banking
Kessels Register-communication between mutually asynchronous domains

Legal Events

Date Code Title Description
RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20070514

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071226

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20091204