(57)【要約】  非同期的に作動されるＦＩＦＯパイプライン（１０ａ−ｄ）は、並列に機能する複数のハンドシェイクチェインを備える。逐次データ項目はそれぞれデータ項目の値に依存してチェインを選択することにより通過させられる。ＦＩＦＯパイプライン（１０ａ−ｄ）は逐次パイプラインステージを備え、各パイプラインステージは複数のハンドシェイクチェインのそれぞれの対応するハンドシェイクステージ（１２，１６）をもつ。調整回路（１５）は、ハンドシェイクチェインのうちの相互に異なるハンドシェイクチェインのハンドシェイクが互いにオーバーテイクすることを妨げる。好ましくは、４フェーズハンドシェイクプロトコルが、ステージの入力における要求ライン（ＲＥＱ１−ｉ，ＲＥＱ０−ｉ）と肯定応答ライン（ＡＣＫ１−ｉ，ＡＣＫ０−ｉ）との間にある論理ゲート（２６，２８）、並びに、論理ゲート（２６，２８）の出力に連結されたセット入力を伴うセットリセットラッチ（２０，２２）と共に使用される。ラッチは、ステージの出力で要求ラインに連結されたデータ出力と、ステージの出力の肯定応答ラインに連結されたリセット入力と、調整回路（２４）に接続された非データ出力とを有する。調整回路（２４）は、パイプラインステージ内のすべてのハンドシェイクステージの論理ゲート（２６，２８）の応答を使用不能状態にするように構成され、パイプラインステージのいずれか１台のセットリセットラッチ（２０，２２）の非データ出力はセット状態を示す。
2007518178.tif 000002
【特許請求の範囲】
【請求項１】
非同期的に作動されるＦＩＦＯパイプライン（１０ａ−ｄ）を備え、
前記ＦＩＦＯパイプライン（１０ａ−ｄ）が機能的に並列した複数のハンドシェイクチェインを備え、前記ハンドシェイクチェインのうちの選択された１個にハンドシェイクを通過させることにより逐次データ項目ごとに通過させ、前記選択された１個のハンドシェイクチェインが前記データ項目の値に依存して選択され、
前記ＦＩＦＯパイプライン（１０ａ−ｄ）が逐次パイプラインステージ（１２、１６）を備え、各パイプラインステージが、前記複数のハンドシェイクチェインのそれぞれのうちの対応するハンドシェイクステージと、相互に異なるハンドシェイクチェインの中のハンドシェイクが互いにオーバーテイクすることを妨げるためにアレンジされた調整回路（１５）とを備える、
電子回路。
【請求項２】
前記データ項目の前記値をシグナルするデータ出力（Ｄ）を有するデータソース回路（１）と、
前記ソース回路と前記ＦＩＦＯパイプライン（１０ａ−ｄ）との間に連結され、前記ハンドシェイクチェインの対応する一つずつに連結された複数の出力ハンドシェイクインターフェイス（（ＲＥＱ１＿ｉ，ＡＣＫ１＿ｉ），（ＲＥＱ０＿ｉ，ＡＣＫ０＿ｉ））、および、前記データ出力（Ｄ）に連結され、前記値の制御下で、前記値のハンドシェイクトランザクションを開始する前記出力ハンドシェイクインターフェイス（（ＲＥＱ１＿ｉ，ＡＣＫ１＿ｉ），（ＲＥＱ０＿ｉ，ＡＣＫ０＿ｉ））のうちの一つを選択するインターフェイス選択入力を有するインターフェイス回路と、
を備える、請求項１に記載の電子回路。
【請求項３】
前記データ項目の前記値を受信するデータ入力（Ｄ）をもつデータシンク回路（２）と、
前記ＦＩＦＯパイプライン（１０ａ−ｄ）と前記シンク回路（２）との間に連結され、前記ハンドシェイクチェインの対応する一つずつに連結された複数の入力ハンドシェイクインターフェイス（（ＲＥＱ１＿ｏ，ＡＣＫ１＿ｏ），（ＲＥＱ０＿ｏ，ＡＣＫ０＿ｏ））を有し、前記入力ハンドシェイクインターフェイス（（ＲＥＱ１＿ｏ，ＡＣＫ１＿ｏ），（ＲＥＱ０＿ｏ，ＡＣＫ０＿ｏ））のいずれか一つでそれぞれのハンドシェイクを受信すると前記データ信号を前記データ入力（Ｄ）へ供給するようにアレンジされ、受信された前記それぞれのハンドシェイクの送信元の前記入力ハンドシェイクインターフェイス（（ＲＥＱ１＿ｏ，ＡＣＫ１＿ｏ），（ＲＥＱ０＿ｏ，ＡＣＫ０＿ｏ））に依存して前記データ信号の値を制御する、インターフェイス回路と、
を備える、請求項１に記載の電子回路。
【請求項４】
少なくとも１段の前記ハンドシェイクステージが前記データ項目の前記値を記憶するデータ入力付きのラッチのタイミング入力に連結されない、請求項１に記載の電子回路。
【請求項５】
特定のパイプラインステージ（１０ａ−ｄ）の前記調整回路（１５）は、発信ハンドシェイク要求がいずれかの前記ハンドシェイクステージ（１２、１６）で保留中である間に、前記特定のパイプラインステージ（１０ａ−ｄ）のいずれかの前記ハンドシェイクステージで着信要求の承認を遅延させるように構成される、請求項１に記載の電子回路。
【請求項６】
各パイプラインステージ（１０ａ−ｄ）が、
それぞれが前記ハンドシェイクチェインの一つずつからの着信要求を処理する、並列した複数の入力ハンドシェイクインターフェイス（（ＲＥＱ１＿ｉ，ＡＣＫ１＿ｉ），（ＲＥＱ０＿ｉ，ＡＣＫ０＿ｉ））と、
それぞれが前記ハンドシェイクチェインの一つずつで発信要求を生成する、並列した複数の出力ハンドシェイクインターフェイス（（ＲＥＱ１＿ｏ，ＡＣＫ１＿ｏ），（ＲＥＱ０＿ｏ，ＡＣＫ０＿ｏ））と、
前記入力ハンドシェイクインターフェイス（（ＲＥＱ１＿ｉ，ＡＣＫ１＿ｉ），（ＲＥＱ０＿ｉ，ＡＣＫ０＿ｉ））および前記出力ハンドシェイクインターフェイス（（ＲＥＱ１＿ｏ，ＡＣＫ１＿ｏ），（ＲＥＱ０＿ｏ，ＡＣＫ０＿ｏ））に連結され、いずれかの前記入力ハンドシェイクインターフェイス（（ＲＥＱ１＿ｉ，ＡＣＫ１＿ｉ），（ＲＥＱ０＿ｉ，ＡＣＫ０＿ｉ））からいずれかの前記出力ハンドシェイクインターフェイス（（ＲＥＱ１＿ｏ，ＡＣＫ１＿ｏ），（ＲＥＱ０＿ｏ，ＡＣＫ０＿ｏ））への要求の伝送の完了が保留中であるかどうかを表現する前記メモリ回路（２０、２２）と、
前記メモリ回路に連結された入力、および、前記入力ハンドシェイクインターフェイス（（ＲＥＱ１＿ｉ，ＡＣＫ１＿ｉ），（ＲＥＱ０＿ｉ，ＡＣＫ０＿ｉ））に連結された出力を有し、前記メモリ回路（２０、２２）が発信ハンドシェイクは保留中であることを表現するときに、発信ハンドシェイクの承認を妨げる前記調整回路（２４）と、
を備える、請求項１に記載の電子回路。
【請求項７】
４フェーズシグナリングが前記ハンドシェイクチェインで使用され、
各ハンドシェイクステージが、
前記ハンドシェイクチェインの一つずつからの着信要求を処理する、要求ラインと肯定応答ラインの入力組み合わせ（（ＲＥＱ１＿ｉ，ＡＣＫ１＿ｉ），（ＲＥＱ０＿ｉ，ＡＣＫ０＿ｉ））と、
前記ハンドシェイクチェインの前記一つずつへの発信要求を処理する、要求ラインと肯定応答ラインの出力組み合わせ（（ＲＥＱ１＿ｏ，ＡＣＫ１＿ｏ），（ＲＥＱ０＿ｏ，ＡＣＫ０＿ｏ））と、
前記入力組み合わせの前記要求ライン（（ＲＥＱ１＿ｉ，ＲＥＱ０＿ｉ）および前記肯定応答ライン（ＡＣＫ１＿ｉ，ＡＣＫ０＿ｉ）にそれぞれ連結された第１の論理入力および論理出力を有する論理ゲート（２６、２８）と、
前記論理ゲート（２６、２８）の前記出力に連結されたセット入力、前記出力組み合わせの前記要求ライン（ＲＥＱ１＿ｏ，ＲＥＱ０＿ｏ）に連結されたデータ出力、前記出力組み合わせの前記肯定応答ライン（ＡＣＫ１＿ｏ，ＡＣＫ０＿ｏ）に連結されたリセット入力、および、前記調整回路（２４）に連結された非データ出力をもつセット−リセットラッチ（２０、２２）と、
を備え、
前記パイプラインステージのいずれか１個の前記セット−リセットラッチ（２０、２２）の前期比データ出力がセット状態を表す間に、前記調整回路（２４）が前記パイプラインステージにおけるすべてのハンドシェイクステージの前記論理ゲート（２６、２８）の応答を使用不能状態にするようアレンジされる、
請求項１に記載の電子回路。
【請求項８】
互いに反対のアクティブレベルが前記要求ライン（ＲＥＱ１＿ｉ，ＲＥＱ１＿ｏ，ＲＥＱ０＿ｉ，ＲＥＱ０＿ｏ）および前記肯定応答ライン（ＡＣＫ１＿ｉ，ＡＣＫ１＿ｏ，ＡＣＫ０＿ｉ，ＡＣＫ０＿ｏ）上でそれぞれ要求信号および肯定応答信号のため使用される、請求項７に記載の電子回路。
【請求項９】
前記複数のハンドシェイクチェインがデータ項目のバイナリ値を通過させる２個のハンドシェイクチェインにより構成される、請求項１に記載の電子回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は非同期的に作動されるＦＩＦＯパイプライン付きの電子回路に関係する。
【背景技術】
【０００２】
非同期的に作動されるＦＩＦＯバッファは、Ｍｏｎｔｅｋ  ＳｉｎｇｈとＳｔｅｖｅｎ  Ｍ．Ｎｏｗｉｃｋによる「ＭＯＵＳＥＴＲＡＰ：Ｕｌｔｒａ−Ｈｉｇｈ−Ｓｐｅｅｄ  Ｔｒａｎｓｉｔｉｏｎ−Ｓｉｇｎａｌｉｎｇ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｐｉｐｅｌｉｎｅｓ」、Ｐｒｏｃ．  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｃｏｍｐｕｔｅｒ  Ｄｅｓｉｇｎ、９−１７頁、２００１年という表題の論文に記載されている。ＭＯＵＳＥＴＲＡＰは、ハンドシェイク回路のチェインと並列にトランスペアレント／ホールドラッチのチェインを提供する。ハンドシェイク回路は、前のデータ項目が処理されるまで、新しいデータ項目がラッチ内の前のデータ項目を上書きしないことを保証する役目を果たす。各ハンドシェイクはそれぞれのラッチに対応する。各ハンドシェイク回路は上流と下流のハンドシェイク回路と共にハンドシェイクトランザクションを実行する。ハンドシェイクトランザクションは、ハンドシェイクを開始する要求信号と、要求が処理されたときの肯定応答信号とを含む。
【０００３】
ＭＯＵＳＥＴＲＡＰでは、特定のハンドシェイク回路が要求信号を受信し、要求信号を処理する準備が整ったとき、この特定のハンドシェイク回路は肯定応答信号を返信し、さらなる要求信号を保持し、下流側の次のラッチのハンドシェイク回路へ送信するためにその対応するラッチを切り替える。次のラッチのハンドシェイク回路がさらなる要求信号を承認するとき、その特定のハンドシェイク回路は次の要求信号を受信する準備が整うようになり、そのラッチをトランスペアレントにする。
【０００４】
ＭＯＵＳＥＴＲＡＰのハンドシェイク回路は、条件付きパスゲートおよび排他的ＯＲゲートを使用する。条件付きパスゲートは、ハンドシェイク回路が準備完了であるとき、着信要求を下流へ渡す。特定のハンドシェイク回路の排他的ＯＲゲートは条件付きパス回路を制御するため使用され、その結果、特定のハンドシェイク回路からの要求信号とチェイン内の次のハンドシェイク回路からの要求信号との間に差がある間にこのパス回路が着信要求信号を阻止する。よって、排他的ＯＲゲートは、着信要求がさらなる下流へ通過させられたかどうかを検出し、その場合に、条件付きパスゲートにその後の着信要求を通過させるよう命令する。
【０００５】
速度はＦＩＦＯバッファの重要な設計目標である。速度の一つの指標はサイクルタイム、すなわち、逐次データ項目が最大可能データレートで供給されるときにラッチの出力で逐次データ信号の適用の間に必要とされる時間である。ＭＯＵＳＥＴＲＡＰのようなハンドシェイクインターフェイスの場合、サイクルタイムは、ラッチのため十分なセットアップおよびホールド時間を残すように設計されなければならないハンドシェイク回路によって制御される。ハンドシェイク回路によって実現されるサイクルタイムは、逐次的な要求信号の間の最小時間に対応し、要求信号を生成する回路ループ内の回路によって決定される。
【０００６】
ＭＯＵＳＥＴＲＡＰにおいて逐次的な要求信号を生成するため、信号は特定のハンドシェイク回路の条件付きパス回路、次のハンドシェイク回路の条件付きパス回路、および、特定のハンドシェイク回路の排他的ＯＲゲートを含むループの中を移動しなければならない。このループは、特定のハンドシェイク回路の条件付きパス回路内の２個と、次のハンドシェイク回路の条件付きパス回路内の２個と、排他的ＯＲゲート内の２個の、６個の論理ゲートを含む。これらの論理ゲートの個数、および、それらのファンアウト係数はサイクルタイムを決定する。大部分の論理ゲートは２入力をドライブすべきである。しかし、論理ゲートのうちの１個（特定のハンドシェイク回路の条件付きパス回路の最後の論理ゲート）は３入力（次のハンドシェイク回路の条件付きパス回路の入力、特定のハンドシェイク回路の排他的ＯＲゲートの入力およびその直前のもの）をドライブすべきである。
【０００７】
ＭＯＵＳＥＴＲＡＰの場合、この結果として、ＭＯＵＳＥＴＲＡＰで使用されるラッチのセットアップおよびホールド時間を越える遅延が生じる。ＭＯＵＳＥＴＲＡＰはハンドシェイク回路によって実現される遅延のさらなる短縮の可能性を示唆せず、その上、このような短縮は、ラッチを作動させるため必要とされる最悪ケースの遅延と整合性が取れないならば、役に立たないであろう。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
特に、発明の目的は非同期的に作動されるＦＩＦＯパイプラインのサイクル時間を短縮することである。
【０００９】
特に、発明の目的はパイプラインのラッチの最悪ケースの遅延を補償するためにＦＩＦＯパイプラインのハンドシェイク回路のサイクル時間に制限を設けることを不必要にすることである。
【００１０】
特に、発明の目的は非同期的に作動されるＦＩＦＯパイプラインのサイクル時間を決定する回路ループ内の論理ゲートの最大ファンアウトを削減することである。
【課題を解決するための手段】
【００１１】
この発明は請求項１に記載された回路を提供する。この発明によれば、ＦＩＦＯパイプラインは、並列した（好ましくは２個の）複数のハンドシェイクチェインを含む。データ項目は、そのデータ項目の値の制御下で選択された、ハンドシェイクチェインのうちの選択された１個によるハンドシェイクの送信によって表現される。パイプラインの逐次ステージの調整回路は、異なるチェインにおけるハンドシェイク信号が互いにオーバーテイクしないことを保証する。よって、ラッチはチェインを選択するため使用されるデータを表現するために必要とされない。したがって、ハンドシェイク回路の最大可能速度は、回路設計をこれらのデータラッチの遅延に適応させることなく、データを送信するため使用される。
【００１２】
好ましくは、パイプラインは、ハンドシェイク回路からのタイミング制御下で異なる可能なデータ値を記憶するラッチのチェインをもたず、すなわち、すべてのデータはハンドシェイクチェインの選択によって通信される。これは、データラッチのための制御信号をドライブする必要性に関連付けられた遅延を回避する。しかし、この発明は、それぞれがパイプラインの一つずつのステージに対応し、たとえば、ハンドシェイクがハンドシェイクチェインのいずれか一つにおけるステージに到着するならばクロックされる、データラッチのチェインがある場合でも有利である。チェイン内の所定のデータ幅に対するデータラッチの幅は、少なくとも１ビットがハンドシェイクチェインの選択によって表現されるとき、より小さくされ得る。よって、データラッチの制御信号をドライブする必要性によって生じる遅延は短縮される。
【００１３】
パイプラインと、パイプラインのデータ項目を生成するデータソース回路との間のインターフェイスでは、インターフェイス回路は、好ましくは、データ項目のためのハンドシェイクがデータ項目の値に依存して送信されるときに中を通るハンドシェイクチェインを選択するため使用される。同様に、パイプラインと、パイプラインからのデータ項目を消費するデータシンク回路との間のインターフェイスでは、インターフェイス回路は、好ましくは、ハンドシェイクが到着するときに中を通るハンドシェイクチェインに依存してデータ信号を制御するため使用される。データソース回路および／またはデータシンク回路は、ハンドシェイクインターフェイスと付随するデータ入力／出力を備えた非同期的に作動される回路、および／または、集中クロックの制御下で非同期的に作動される回路である（ソース回路とシンク回路に対して必ずしも同じクロックではない）。
【００１４】
この発明は、ハンドシェイクがデータに依存しない形で、たとえば、交互に異なるハンドシェイクチェインに分配される、それぞれにラッチを伴う複数のハンドシェイクチェインの使用と区別される。これは、スループットレートを増加させるが、ラッチの必要性を低減しない。本発明の一実施形態では、請求項に記載された複数のチェインのうちの数個は並列に使用され、データ値が独立に分配されるスキームを伴うので、データは複数個のチェインごとにあるチェインを選択する。
【００１５】
たとえば、４フェーズプロトコル、または、２フェーズプロトコル、すなわち、（肯定応答信号用の１本と要求信号用の１本の）２本のハンドシェイクライン若しくは異なる本数のハンドシェイクラインを使用するプロトコルなどのようなどのような種類のハンドシェイクプロトコルでもハンドシェイクを交換するため使用される。実際には、ハンドシェイクチェインおよび／または種々のチェインの種々のステージで、種々のプロトコルが使用される。
【００１６】
一実施形態では、４フェーズハンドシェイクプロトコルが使用され、請求項に記載された回路が使用される。この回路は、回路ループ内の論理ゲートの最大ファンアウトを低減するので、ＦＩＦＯパイプラインのサイクルタイムは短縮される。発明のこれらの有利な態様およびその他の有利な態様は以降の図を使用して説明される。
【発明を実施するための最良の形態】
【００１７】
図１は、いくつかのステージ１０ａ−ｄが直列接続されたＦＩＦＯパイプラインによって連結されたデータソース回路１およびデータシンク回路２を示す。４ステージが一例として示されているが、いかなる個数のステージでも直列接続されることが理解される。各ステージ１０ａ−ｄは、第１のハンドシェイク回路１２と第２のハンドシェイク回路１６とを含む。ステージの第１のハンドシェイク回路は第１のハンドシェイクチェインに連結される（単一のラインがハンドシェイクカップリングとして示されているが、各ハンドシェイクカップリングは実際にはハンドシェイクシグナリングのための２本以上のラインを含むことが理解される）。ステージの第２のハンドシェイク回路は第２のハンドシェイクチェインに連結される。さらに、各ステージ１０ａ−ｄは、ステージ１０ａ−ｄの第１のハンドシェイク回路と第２のハンドシェイク回路との間に連結された調整回路１５を含む。
【００１８】
動作中に、データビットは、逐次ステージ１０ａ−ｄのペアの間のハンドシェイクシグナリングを使用して、パイプラインを介して非同期的に運ばれる。データビットの論理値（論理１と論理０）に依存して、データビットの対応するハンドシェイクが第１のチェインまたは第２のチェインのいずれかを介して渡される。調整回路１５は、第１のハンドシェイク回路１２または第２のハンドシェイク回路１６のいずれかからの前の要求がその後のステージ１０ａ−ｄによって承認されるまで、いずれかのハンドシェイク回路１２、１６におけるステージ１０ａ−ｄからの肯定応答信号を遅らせることにより、異なるチェインにおける論理１のためのハンドシェイクと論理０のためのハンドシェイクが互いにオーバーテイクしないことを保証する。
【００１９】
よく知られているように、２個の回路の間のハンドシェイクシグナリングは、一方の回路からもう一方への要求信号を送信し、もう一方の回路が次の要求信号を処理する準備が完了すると、要求信号に応答してもう一方の回路から肯定応答信号を返信する。
【００２０】
要求信号および肯定応答信号を実現する様々な形式が使用される（すべてのステージにおいて同じであるか、または、種々のステージのペアの間で異なる信号であることさえある）。４フェーズプロトコルでは、たとえば、要求信号を送信する１本と、肯定応答信号を送信する１本の２本の信号ラインが使用される。要求信号は、典型的に、要求ラインの論理レベルを立ち上げることによってシグナルされ、肯定応答信号は典型的に肯定応答ラインの論理レベルを立ち上げることによってシグナルされる。要求の肯定応答後、要求ラインの論理レベルは下げられ、その後に、肯定応答ライン上の論理レベルが下げられる。その後に続いて、インターフェイスは次のハンドシェイクの準備が完了する。
【００２１】
２フェーズハンドシェイクプロトコルでは、別の実施例として、要求信号を送信する１本と肯定応答信号を送信する１本の２本の信号ラインが使用される。要求信号は要求ラインの論理レベルを変更することにより典型的にシグナルされ、肯定応答信号は肯定応答ラインの論理レベルを変更することにより典型的にシグナルされる。その後に続いて、インターフェイスは次のハンドシェイクの準備が完了する。別のプロトコルでは、単一の信号が２本の信号ラインの代わりに使用され、要求は、論理ラベルを立ち上げ、次に、信号ライン上の電圧レベルを浮遊させることを可能にすることによってシグナルされ、肯定応答信号は、論理レベルを下げ、その後に続いて信号ライン上の電圧レベルを浮遊させることを可能にすることによってシグナルされる。
【００２２】
図２は４フェーズプロトコルを使用するステージの回路実施を示す。ステージは、論理１の着信信号をハンドシェイクする第１の入力ハンドシェイクインターフェイスＲＥＱ１＿ｉ、ＡＣＫ１＿ｉと、論理０の着信信号をハンドシェイクする第２の入力ハンドシェイクインターフェイスＲＥＱ０＿ｉ、ＡＣＫ０＿ｉと、論理１の発信信号をハンドシェイクする第１の出力ハンドシェイクインターフェイスＲＥＱ１＿ｏ、ＡＣＫ１＿ｏと、論理０の発信信号をハンドシェイクする第２の入力ハンドシェイクインターフェイスＲＥＱ０＿ｏ、ＡＣＫ０＿ｏとの４個のハンドシェイクインターフェイスを有する。ステージは、第１のラッチ２０、第２のラッチ２２、ＡＮＤ回路２４と、第１および第２の肯定応答ＮＡＮＤゲート２６、２８とを含む。
【００２３】
第１の肯定応答ＮＡＮＤゲート２６は、第１の入力ハンドシェイクインターフェイスの要求ラインＲＥＱ１＿ｉに連結された入力と、ＡＮＤ回路２４の出力に接続された入力とを有する。第１の肯定応答ＮＡＮＤゲート２６は第１の入力ハンドシェイクインターフェイスの肯定応答ラインＡＣＫ１＿ｉに連結された出力を有する。第１のラッチ２０は、セット入力およびリセット入力と、データ出力および非データ出力とを有する。第１の肯定応答ＮＡＮＤゲート２６の出力は第１のラッチ２０のセット入力に連結される。第１のラッチ２０のデータ出力は第１の出力ハンドシェイクインターフェイスの要求ラインＲＥＱ１＿ｏに連結される。第１の出力ハンドシェイクインターフェイスの肯定応答ラインＡＣＫ１＿ｏは第１のラッチ２０のリセット入力に連結される。第１のラッチ２０の非データ出力はＡＮＤ回路２４の第１の入力に連結される。
【００２４】
このステージの第２の肯定応答ＮＡＮＤゲート２８と、第２のラッチ２２と、第２の入力および出力ハンドシェイクインターフェイスＲＥＱ０＿ｉ、ＡＣＫ０＿ｉ、ＲＥＱ０＿ｏ、ＡＣＫ０＿ｏは、このステージの第１の肯定応答ＮＡＮＤゲート２８と、第１のラッチ２０と、第１の入力および出力ハンドシェイクインターフェイスＲＥＱ１＿ｉ、ＡＣＫ１＿ｉ、ＲＥＱ１＿ｏ、ＡＣＫ１＿ｏと同じように相互接続される。第２のラッチ２２の非データ出力はＡＮＤ回路２４の第２の入力に連結される。一例として、第１および第２のラッチ２０、２２は、クロスカップル型ＮＡＮＤゲート２００、２０２、２２０、２２２として実施されることが示されている。
【００２５】
図３はステージの動作を説明する信号を示す。信号トレースは、第１の入力ハンドシェイクインターフェイスの要求ラインＲＥＱ１＿ｉ、第１の入力ハンドシェイクインターフェイスの肯定応答ラインＡＣＫ１＿ｉ、第１の出力ハンドシェイクインターフェイスの要求ラインＲＥＱ１＿ｏ、第１の出力ハンドシェイクインターフェイスの肯定応答ラインＡＣＫ１＿ｏ、および、ＡＮＤ回路２４のＡＮＤ出力における信号を示す。図中、ステージの一方の入力ハンドシェイクインターフェイスだけがアクティブであることが仮定されるので、ＡＮＤ回路２４の第２の入力は論理ハイ状態である。
【００２６】
第１の入力ハンドシェイクインターフェイスの要求ラインＲＥＱ１＿ｉ上の信号の立ち上がり変化３０は、ハンドシェイクサイクルを開始する着信要求を表す。ＡＮＤ回路２４の出力で信号が論理ハイ状態であるとき、ＲＥＱ１＿ｉ上の立ち上がり変化は、第１の肯定応答ＮＡＮＤゲート２６に、第１の入力ハンドシェイクインターフェイスの肯定応答ラインＡＣＫ１＿ｉ上で立ち下がり変化３１（着信要求の承認を表現する立ち下がり変化）を生じさせる。これに応じて、前のステージは第１の入力ハンドシェイクインターフェイスの要求ラインＲＥＱ１＿ｉ上の信号を下げ、これは、次に、ＡＣＫ１＿ｉを上昇させる。
【００２７】
この第１の入力ハンドシェイクインターフェイスの肯定応答ラインＡＣＫ１＿ｉ上の立ち下がり変化はラッチ２０をセットする。ラッチ２０がセットされるとき、その非データ出力はロー状態になり、ＡＮＤ回路２４の第１の入力における信号はロー状態になる。その結果として、ＡＮＤ出力はロー状態になり、これは、（もし要求パルスの停止によって既に上昇させられていないならば）肯定応答ラインＡＣＫ１＿ｉ上の信号を高い値にもう一度上昇させることにより、肯定応答パルスを停止する。
【００２８】
ラッチ２０がセットされるとき、そのデータ出力は、第１の出力ハンドシェイクインターフェイスの要求出力ＲＥＱ１＿ｏで、発信要求を表現する立ち上がり変化３２をドライブする。後の時点で、第１の出力ハンドシェイクインターフェイスの肯定応答ラインＡＣＫ１＿ｏ上の立ち下がり変化３３は、後に続くステージ（図示されず）による発信要求の承認を表す。立ち下がり変化３３はラッチ２０をリセットし、回路をその初期状態へ戻す。
【００２９】
勿論、ラッチ２０がリセットされる前に、新しい要求信号が第１の入力ハンドシェイクインターフェイスの要求ラインＲＥＱ１＿ｉに到達することがあり得る。この場合に関係している信号は、図で示された第１の入力ハンドシェイクインターフェイスの要求ラインＲＥＱ１＿ｉ上の信号の後続の立ち上がり変化３５である。この場合、着信要求信号は、前の発信信号の肯定応答３６が受信されるまで承認されない。この肯定応答はラッチ２０をリセットし、ラッチは、着信要求が上記のごとく処理されるように、ＡＮＤ回路２４の出力をハイ状態にする。
【００３０】
ここまでは、第１の入力および出力ハンドシェイクインターフェイスにおける論理１に対するハンドシェイク信号の操作を説明した。動作中に、第１の入力および出力ハンドシェイクインターフェイスにおける論理０に対するハンドシェイク信号は、論理１に対するこれらのハンドシェイクと一時的に混合される。論理０に対するハンドシェイクの処理は論理１に対するハンドシェイクの処理に類似する。第１のラッチ２０と第２のラッチ２２のいずれかがセットされ、着信ハンドシェイクが第１または第２の入力ハンドシェイクインターフェイスＲＥＱ０＿ｉ、ＡＣＫ０＿ｉ、ＲＥＱ１＿ｉ、ＡＣＫ１＿ｉ上で受信されているが、第１または第２の出力ハンドシェイクインターフェイスＲＥＱ０＿ｏ、ＡＣＫ０＿ｏ、ＲＥＱ１＿ｏ、ＡＣＫ１＿ｏ上の対応する出力ハンドシェイクはまだ承認されていないことを表すとき、着信ハンドシェイクの肯定応答は、立ち上がり変化３５によってシグナルされた要求に対して示されるように、発信ハンドシェイクが承認されるまで遅延される。
【００３１】
肯定応答信号の立ち上がりはＡＮＤゲートによってドライブされることに注意すべきである。理論的には、したがって、肯定応答信号は対応する要求信号の立ち下がりより前に立ち上がる。しかし、肯定応答信号の立ち下がりに対する要求信号の応答は十分に高速であるためこれを妨げることが想定される。そうでなければ、要求信号が立ち下がるまで肯定応答信号の立ち上がりを遅延させるため、付加的な回路が追加される。
【００３２】
インターフェイスのサイクルタイムは、特定のステージの第１の肯定応答ＮＡＮＤゲート２６と、特定のステージの第１のラッチ２０内の第１のＮＡＮＤゲート２００と、後のステージの第１の肯定応答ＮＡＮＤゲート２６と、特定のステージの第１のラッチ２０内の第２のＮＡＮＤゲート２０２と、特定のステージのＡＮＤ回路２４とを含む第１の回路ループ内の遅延によって決定される。この回路ループは、（ＡＮＤ回路２４内の最低限の２個のゲートを考慮して）直列した６個のゲートを含む。各ゲートは、１個のゲートによってのみロードされるＡＮＤ回路２４の内部ＮＡＮＤゲートをおそらく除いて）２個の他のゲートによってロードされることに注意すべきである。よって、非常に短いサイクルタイムが実現される。
【００３３】
データソース回路１およびデータシンク回路２は、内部的にそれぞれ、（一方若しくは両方がその固有クロックによってクロックされるか、または、両方が共通クロックによってクロックされる）非同期回路または同期回路である。非同期回路は、有効なデータがデータ信号ライン上で利用可能であるときを表すために、ハンドシェイクインターフェイスと関連してデータ信号ラインを使用する。このような非同期回路からステージ１０ａ−ｄを介してデータを転送するために、変換回路が、好ましくは、非同期信号ソース１とステージ１０ａ−ｄとの間に挿入される。同様に、ステージ１０ａ−ｄを介してこのような非同期回路へデータを転送するために、変換回路が、好ましくは、ステージ１０ａ−ｄと非同期信号シンク２との間に挿入される。
【００３４】
図４ａは、ステージ１０ａと非同期ソース回路１との間で使用され、データがデータラインＤ上で利用可能であるときを表すためデータラインＤとハンドシェイクラインＲＥＱ、ＡＣＫを使用するインターフェイス回路を示す。ＲＥＱ１信号はＲＥＱおよびＤの論理積から形成され、ＲＥＱ０信号は、ＲＥＱと、Ｄの反転との論理積から形成される。返信される肯定応答は、肯定応答信号ＡＣＫ１＿ｉとＡＣＫ０＿ｉとの否定論理積から形成される。チェイン内の肯定応答信号と対照的に、非同期ソース回路へ返送される肯定応答信号は、従来の４フェーズシグナリングレベルを有し、このことは、それらが論理ハイレベル（アクティブハイ状態）で肯定応答をシグナルすることを意味する。
【００３５】
図４ｂは、ステージ１０ｄと非同期シンク回路２との間で使用され、データがデータライン上で利用可能である時を表すためデータラインＤとハンドシェイクラインＲＥＱ、ＡＣＫを使用するインターフェイス回路を示す。ＲＥＱ信号は、ＲＥＱ１＿ｏとＲＥＱ０＿ｏとの論理和から形成され、データ信号ＤはＲＥＱ１＿ｏから得られる。（好ましくは、従来のアクティブハイシグナリングを使用する）返送された肯定応答信号ＡＣＫは、ＡＣＫをデータ信号Ｄおよびその反転とそれぞれ論理的にＮＡＮＤすることによって、（アクティブローである）ＡＣＫ１＿ｏおよびＡＣＫ０＿ｏを生成するため使用される。しかし、このＮＡＮＤ演算は、図２の実施形態の場合のように、（前の要求に対する応答ではない）スプリアス肯定応答信号が許されるならば省略される。
【００３６】
勿論、信号ソース回路１および／または信号シンク回路２は、同期（集中クロック）回路でもよい。この場合、図４ａ、４ｂに示されているようなインターフェイス回路は、このような信号ソース回路１および／または信号シンク回路２へ接続するために従来の非同期−同期変換回路と共に使用される。代替案として、関連したクロックがソース側で遅延回路を介してＡＣＫ信号をＲＥＱ信号へループバックすることによって、および／または、シンク側でＲＥＱ信号をＡＣＫ信号へループバックすることによって生成される。
【００３７】
図５ａは代替案を示す。同期−非同期インターフェイス回路５０、５２のペアが同期ソース回路１を論理１および論理０のハンドシェイクインターフェイスＲＥＱ１＿ｉ、ＡＣＫ１＿ｉ、ＲＥＱ０＿ｉ、ＡＣＫ０＿ｉに接続するため使用される。本実施形態では、同期ソース回路１は、クロックＣＬＫ入力、有効出力「Ｖ」、イネーブル入力「Ｅ」、および、データ出力「Ｄ」を有する（ＦＩＦＯバッファコネクションの点では、ＶコネクションおよびＥコネクションはＶ＝ライト（ｗｒｉｔｅ）、Ｅ＝ＦＩＦＯフル（ｆｕｌｌ）とも称される）。有効出力Ｖにおける信号は、有効データの可用性をシグナルするため使用され、イネーブル入力における信号はデータを受け入れる能力をシグナルするため使用される。同期ソース回路１は、それぞれが、クロック入力ＣＬＫとの同期インターフェイスと、「有効」入力Ｖおよびイネーブル出力Ｅと、要求ラインおよび肯定応答ラインに連結された非同期インターフェイスとを有する同期−非同期インターフェイス回路５０、５２のそれぞれに連結される。同期−非同期インターフェイス回路はそれ自体で知られ、どのようなタイプのインターフェイス回路でも使用される。同期ソース回路１からの有効信号は、同期ソース回路１のデータ出力でのデータの値に依存して、第１の同期−非同期インターフェイス回路５０と第２の同期−非同期インターフェイス回路５２のいずれかに選択的にゲートされ、イネーブル回路は同期−非同期インターフェイス回路５０、５２からのイネーブル信号の論理積から形成される。
【００３８】
動作中に、データソース回路１は、利用可能なデータを有し、イネーブル信号がアサートされているならば、クロックサイクル中に有効なＶ信号を生成する。インターフェイス回路５０、５２は、Ｖ信号に応じて要求を生成し、肯定応答に応じてＥ信号を生成する。しかし、このＶ、Ｅインターフェイス以外の他のインターフェイス、たとえば、Ｅ信号がアサートされるとデータソース回路１がＶ信号を生成するインターフェイスが使用されることが理解されるべきである。ソース回路１が各クロックサイクルで新しいデータを生じ、ＦＩＦＯバッファはクロックレートでデータを転送できることが予め決定されるならば、制御インターフェイス信号ＶおよびＥの使用は省略される。
【００３９】
図５ｂは、第１および第２の非同期−同期インターフェイス回路５４、５６を使用する、データシンク回路２への類似したインターフェイスを示す。ここでは、シンク回路２は、クロックＣＬＫ入力と、データ入力Ｄと、有効入力Ｖと、イネーブル出力Ｅとを有する（ＦＩＦＯインターフェイスの場合、有効入力およびイネーブル出力は、Ｖ＝ＦＩＦＯノットエンプティ（ｎｏｔ  ｅｍｐｔｙ）、および、Ｅ＝リード（ｒｅａｄ）と称される）。非同期−同期インターフェイス回路５４、５６はそれぞれ、論理１および論理０ハンドシェイクインターフェイスＲＥＱ１＿ｏ、ＡＣＫ１＿ｏ、ＲＥＱ０＿ｏ、ＡＣＫ０＿ｏのそれぞれに連結された非同期インターフェイスを有する。非同期−同期インターフェイス回路５４、５６はそれぞれ、クロック入力ＣＬＫ、有効出力Ｖおよびイネーブル入力Ｅを伴う同期インターフェイスを有する。データシンク回路２の有効入力は、非同期−同期インターフェイス回路５４、５６の有効出力の論理和から形成され、データシンク回路２のデータ入力は、論理１に対する非同期−同期インターフェイス回路５４の有効出力から形成される。非同期−同期インターフェイス回路５４、５６のイネーブル入力はデータシンク回路２のイネーブル出力によってドライブされる。しかし、データソース回路の場合と同様に、このＶ、Ｅインターフェイス以外の他のインターフェイスを使用してもよいことが理解されるべきである。
【００４０】
理解されるように、図は１ビット幅の伝送パスを提供する回路を示す。マルチビット幅の転送パスはいくつかの形で実現される。第一に、異なるチェイン上のハンドシェイク信号が互いにオーバーテイクすることを阻止する調整回路と共に、マルチビット信号の起こり得る値のそれぞれに対して並列に対応するハンドシェイクチェインを使用することによって実現される。第二に、マルチビット信号のビットの一つずつの論理１と論理０に対するチェインのそれぞれのペアが並列に使用される。この場合、チェインのペアの間の調整は、ハンドシェイク要求が論理０および論理１に対してチェインの各ペアの１ライン上で生成されるときに限り、非同期シンク回路２へのハンドシェイク、または、同期シンク回路２への有効信号が生成されることを保証するため、シンク回路２へのインターフェイスだけで必要とされる。調整は、それぞれのチェインの間の速度の広がりが十分に小さいならば、場合によっては省略される。
【００４１】
さらに、図は、中間的な論理処理をもたない逐次ステージ１０ａ−ｄの間の直接コネクションを示す。勿論、論理処理回路は逐次ステージの間に挿入してもよい。
【００４２】
一実施形態では、このような論理処理回路は、ステージ１０ａ−ｄのハンドシェイクインターフェイスによってシグナルされたビット「ｂ」と、外部データ「ｅ」の関数ｖ＝Ｆ（ｂ，ｅ）として、１個以上の出力ビット値ｖを計算する。本実施形態では、論理処理回路は、外部回路「ｅ」の影響下で、後のステージ１０ａ−ｄのハンドシェイクインターフェイス（論理０または論理１のインターフェイス）のうち、前の段１０ａ−ｄからのハンドシェイクインターフェイスを連結する先を選択する。たとえば、論理回路は、前のステージからの論理１のハンドシェイクインターフェイスと論理０のハンドシェイクインターフェイスの両方を、後のステージの論理１のハンドシェイクインターフェイスに連結し、または、論理１のインターフェイスと論理０のインターフェイスを交換したりする。この連結は外部信号「ｅ」に依存して変えられる。
【００４３】
論理１と論理０の複数のハンドシェイクインターフェイスのペアが使用される別の実施形態では、この中間論理処理回路は、それらのペアの一つずつによって表現されたビットの論理関数を計算する。原則として、これは、後のステージ１０ａ−ｄの論理１または論理０のハンドシェイクインターフェイスのどちらに基づいて、論理１と論理０のハンドシェイクインターフェイスの複数のペアからのハンドシェイク要求の組み合わせに応答してハンドシェイクを開始すべきであるかを決定するハンドシェイク回路によって実現される。
【００４４】
好ましくは、しかし、このような中間論理処理回路は、論理１および論理０のインターフェイスからのハンドシェイクを、（たとえば、図４ａの回路を使用する）付随するハンドシェイクを伴う明示的な論理信号に変換し、変換された信号のための組み合わされたハンドシェイクだけでなく、明示的な論理信号からの論理関数を計算し、計算された論理値および組み合わされたハンドシェイクを元の論理１および論理０をそれぞれに表現するハンドシェイク信号に変換する。
【００４５】
ステージ１０ａ−ｄの単一チェインが示されているが、このようなチェインは、勿論、チェイン選択によってデータ値を符号化する複数のアンドシェイクチェインをそれぞれに伴う部分的に並列的なパイプラインを提供するために、分岐等がなされても構わないことが理解される。この場合、データ項目は、データに依存しない形で種々のパイプライン上に分配される。さらに、ハンドシェイク回路は４フェーズシグナリングに対して示されているが、論理１および論理０が当然に、２フェーズシグナリングを使用するインターフェイスのような他のタイプのハンドシェイクインターフェイスでシグナルされることもまた認められる。実際には、ステージ１０ａ−ｄの種々のペアの間のハンドシェイクインターフェイスは、タイプが異なり、場合によっては、１のためのインターフェイスと０のためのインターフェイスが異なるタイプからなる。
【００４６】
さらに、ラッチ２０、２０は、要求がいずれかの出力ハンドシェイクインターフェイス上で保留中であるかどうかを表現するために一体として機能することが理解される。別々のラッチを使用する代わりに、共通ラッチがこの目的のため使用されるか、または、ステージ１０ａの状態を表現する他のメモリが使用される。さらに、発明から逸脱することなく、すべての信号に対する論理ハイ状態およびロー状態の意味は、ＡＮＤ関数とＯＲ関数の交換を伴うならば、交換してもよいことが理解される。同様に、信号の一部の論理ハイ状態およびロー状態の意味は、発明から逸脱することなく、論理関数の変更を伴うならば、交換してもよい。
【図面の簡単な説明】
【００４７】
【図１】ＦＩＦＯパイプラインを示す図である。
【図２】ハンドシェイクステージを示す図である。
【図３】ハンドシェイクステージで使用される信号を示す図である。
【図４ａ】ＦＩＦＯパイプラインへの非同期インターフェイス回路を示す図である。
【図４ｂ】ＦＩＦＯパイプラインへの非同期インターフェイス回路を示す図である。
【図５ａ】ＦＩＦＯパイプラインへの同期インターフェイス回路を示す図である。
【図５ｂ】ＦＩＦＯパイプラインへの同期インターフェイス回路を示す図である。
【符号の説明】
【００４８】
１  データソース回路
２  データシンク回路
１０ａ〜１０ｄ  ステージ
１２  第１のハンドシェイク回路
１５  調整回路
１６  第２のハンドシェイク回路
２０  第１のラッチ
２２  第２のラッチ
５０、５２  同期−非同期インターフェイス回路
５４、５６  非同期−同期インターフェイス回路
【図１】
2007518178.tif 000003
【図２】
2007518178.tif 000004
【図３】
2007518178.tif 000005
【図４ａ】
2007518178.tif 000006
【図４ｂ】
2007518178.tif 000007
【図５ａ】
2007518178.tif 000008
【図５ｂ】
2007518178.tif 000009
【国際調査報告】
2007518178.tif 000010
2007518178.tif 000011
2007518178.tif 000012