(57)【要約】  非同期的に動作する回路とクロック同期して動作するサブ回路との間でデータが通信される。データ信号が、ブロッキング／非ブロッキング制御信号を伴って、非同期的に動作するサブ回路から供給される。データ信号及び制御信号が供給されているとき、リクエスト信号が非同期的に動作するサブ回路から供給される。当該データは、少なくともデータに供給される制御信号が第１の値を有する場合、リクエストに応答して格納される。リクエスト信号は、非同期的に動作するサブ回路に対するリクエスト信号に応答して、アクノリッジ信号を生成するよう構成されるハンドシェイク回路のハンドシェイク要素を介したパスを介しルーティングされる。データに与えられる制御信号が第１の値を有するとき、出力においてリクエストを伴うデータ信号をストレージ要素に格納することによりアクノリッジ信号が生成され、制御信号が第２の値を有するとき、リクエストを伴うデータを受け付けるクロック同期して動作するサブ回路のクロックサイクルを検出すると、アクノリッジ信号が生成されるように、ハンドシェイク要素を介したパスが制御信号に依存する。
2007535064.tif 000002
【特許請求の範囲】
【請求項１】
リクエスト信号を送信し、アクノリッジ信号を受信するよう構成されるハンドシェイクポートと、データ及び前記リクエスト信号を伴うブロッキング／非ブロッキング制御信号を供給するよう構成される出力ポートとを備える非同期的に動作するサブ回路と、
データ入力を備えるクロック同期して動作するサブ回路と、
前記非同期的に動作するサブ回路の出力ポートに接続される入力と、前記クロック同期して動作するサブ回路のデータ入力に接続される出力とを備えるストレージ要素と、
前記リクエスト信号に応答して前記アクノリッジ信号を生成するよう構成されるアクノリッジ回路であって、前記出力におけるリクエストを伴うデータを前記ストレージ要素に格納すると、前記アクノリッジ信号を生成する当該アクノリッジ回路のハンドシェイク要素を介した第１パスと、前記リクエストを伴うデータを受け付ける前記クロック同期して動作するサブ回路のクロックサイクルを検出すると、前記アクノリッジ信号を生成する当該アクノリッジ回路のハンドシェイク要素を介した第２パスとを有するアクノリッジ回路と、
前記リクエスト信号を伴うブロッキング／非ブロッキング制御信号の値に応じて、前記ハンドシェイクポートが前記第１パス又は前記第２パスを利用して前記アクノリッジ信号を受信するか否か制御するよう構成されるパス選択回路と、
を有することを特徴とするデータ処理回路。
【請求項２】
請求項１記載のデータ処理回路であって、
前記第２パスは、前記第１パスと共に、前記クロックサイクルを検出すると、前記第１パスからの前記アクノリッジ信号をわたすよう構成される追加的なパスを有することを特徴とするデータ処理回路。
【請求項３】
請求項２記載のデータ処理回路であって、
前記追加的なパスに接続される制御回路を有し、
前記パス選択回路は、前記ブロッキング／非ブロッキング信号が第１論理レベルを有するとき、前記アクノリッジ信号を前記第２回路パスを介しルーティングするよう構成され、
前記ストレージ要素は、前記データと共に、該データに供給される前記ブロッキング／非ブロッキング信号の値を格納するよう構成され、前記ストレージ要素は、前記格納された値を前記制御回路に供給し、前記制御回路は、前記格納された値が前記第１レベルとなるまで、前記アクノリッジ信号をわたすことを不可にするよう構成される、
ことを特徴とするデータ処理回路。
【請求項４】
請求項２記載のデータ処理回路であって、
前記非同期的に動作するサブ回路のハンドシェイクポートに接続されるパッシブポートと、前記アクノリッジ回路の第１パスに接続される連続的な第１アクティブポートと、連続的な第２アクティブポートとを備えるハンドシェイクシーケンサと、
前記ハンドシェイクシーケンサの連続的な第２ハンドシェイクポートに接続されるパッシブポートと、ルーティングポートとを備え、前記ブロッキング／非ブロッキング制御信号の値が第１論理レベルを有するとき、前記連続的な第２アクティブポートからのリクエストを無条件に承認し、前記ブロッキング／非ブロッキング制御信号の値が第１論理レベルを有するとき、前記連続的な第２アクティブポートと前記ルーティングポートを接続するよう構成される条件付きルーティング回路と、
前記ルーティングポートに接続され、前記クロックサイクルを検出すると、前記ルーティングポートからのリクエストを承認するよう構成されるポートを備えるブロッキングアクノリッジ回路と、
を有することを特徴とするデータ処理回路。
【請求項５】
請求項１記載のデータ処理回路であって、
前記ストレージ要素と前記クロック同期して動作するサブ回路のデータ入力との間に接続される更なるストレージ要素と、
前記ストレージ要素と前記更なるストレージ要素との間に接続され、前記制御入力における信号に応じて、デフォルトデータ又は前記ストレージ要素からのデータを前記更なるストレージ要素に格納するための制御入力を備えるデフォルト置換回路と、
前記非同期的に動作するサブ回路のハンドシェイクポートからのリクエストが、前記クロック同期して動作するサブ回路のクロックエッジの間に保留されているか否か検出し、保留中のリクエストが存在しないとき、前記デフォルトデータの置換をさせるため、前記デフォルト置換回路の制御入力に接続されるリクエスト検出回路と、
を有することを特徴とするデータ処理回路。
【請求項６】
請求項１記載のデータ処理回路であって、
前記クロック同期して動作するサブ回路は、アドレスラインとデータラインとを有するバスを備えるバスサブシステムを有し、
前記アドレスラインとデータラインとに接続される複数のバスユニットのすべてが、前記クロックサイクルを規定する共通のクロックの制御の下で動作可能であり、
前記非同期的に動作するサブ回路のデータ出力において生成されるデータは、アドレス情報とデータ情報を規定し、
前記ストレージ要素は、前記アドレス情報とデータ情報を前記バスに出力するため、それぞれ前記データラインとアドレスラインに接続される、
ことを特徴とするデータ処理回路。
【請求項７】
非同期的に動作する回路とクロック同期して動作するサブ回路との間でデータを通信する方法であって、
前記非同期的に動作するサブ回路からのデータ信号を、ブロッキング／非ブロッキング制御信号に付随して供給するステップと、
前記データ信号と前記制御信号とが供給されているとき、前記非同期的に動作するサブ回路からリクエスト信号を発行するステップと、
少なくとも前記データに供給される制御信号が第１の値を有する場合、前記リクエストに応答して前記データを格納するステップと、
前記リクエスト信号に応答して前記非同期的に動作するサブ回路に対するアクノリッジ信号を生成するよう構成されるハンドシェイク回路におけるハンドシェイク要素を介したパスを介し前記リクエスト信号をルーティングするステップと、
前記データに供給される制御信号が前記第１の値を有するとき、前記出力において前記データを伴う前記データ信号を前記ストレージ要素に格納すると、前記アクノリッジ信号が生成され、前記制御信号が第２の値を有するとき、前記リクエストを伴う前記データを受け付ける前記クロック同期して動作するサブ回路のクロックサイクルを検出すると、前記アクノリッジ信号が生成されるように、前記制御信号に応じて前記ハンドシェイク要素を介したパスを変更するステップと、
を有することを特徴とする方法。
【請求項８】
請求項７記載の方法であって、
前記制御信号が前記第１の値を有するとき、第１パスを使用するステップと、
前記制御信号が前記第２の値になると、前記第１パスと追加的なパス部分を有する第２パスを使用するステップと、
データを格納すると、前記追加的なパス部分に対する中間的なアクノリッジ信号を生成するステップと、
前記制御信号が前記第２の値になると、前記中間的なアクノリッジ信号を前記追加的なパス部分にわたすステップと、
前記クロックサイクルを検出すると、前記追加的なパス部分を介し前記アクノリッジ信号を前記非同期的に動作するサブ回路に転送するステップと、
を有することを特徴とする方法。
【請求項９】
ハンドシェイクポートと、データを供給する出力ポートとを備える非同期的に動作するサブ回路と、
データ入力とクロック出力とを備えるクロック同期して動作するサブ回路と、
ストレージ要素と、
前記ストレージ要素と前記出力ポートとの間に接続され、第１及び第２ハンドシェイクポートを有し、ハンドシェイクリクエストに応答して、前記ハンドシェイクリクエストが前記第１又は第２ハンドシェイクポートにおいて供給されるか否かに応じて、デフォルトデータ又は前記出力ポートからのデータを前記ストレージ要素に供給するよう構成されるデフォルト置換回路と、
前記ハンドシェイクポートと、前記デフォルト置換回路の第１及び第２パッシブポートと、前記クロック出力とに接続され、前記クロック出力から以降のクロックエッジを検出すると、前記ハンドシェイクポートにおける前記リクエストに応答して、前記第１パッシブポートにおいてメインリクエストを生成し、各クロックエッジに応答して、前記非同期的に動作するサブ回路のハンドシェイクポートからのリクエストが前記各クロックエッジの時点で保留されていないときに限って、前記第２パッシブポートにおいて１以上のデフォルトリクエストを生成するよう構成されるリクエスト生成回路と、
を有することを特徴とするデータ処理回路。
【請求項１０】
非同期的に動作するサブ回路とクロック同期して動作するサブ回路との間でデータを通信する方法であって、
前記非同期的に動作するサブ回路のハンドシェイクポートからのリクエストが、前記クロック同期して動作するサブ回路のクロックエッジの間に保留中であるか否か検出するステップと、
前記クロックエッジを受信すると、前記ハンドシェイクポートにおける前記リクエストに応答して、第１中間ハンドシェイクポートにおいてメインリクエストを生成するステップと、
前記クロックエッジに応答して、前記非同期的に動作するサブ回路のハンドシェイクポートからのリクエストが保留中でないときに限り、第２中間ハンドシェイクポートにおいてデフォルトリクエストを生成するステップと、
前記メインリクエストと前記デフォルトリクエストに応答して、それぞれデフォルトデータ又は前記非同期的に動作するサブ回路の出力ポートからのデータをストレージ要素に複製するステップと、
前記ストレージ要素からの格納されているデータを前記クロック同期して動作するサブ回路に供給するステップと、
を有することを特徴とする方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、互いに通信する同期的に動作するサブ回路と非同期的に動作するサブ回路を備える回路に関する。より詳細には、本発明は、同期的に動作する周辺回路に対してインタフェースをとる非同期的に動作するプロセッサに関する。
【背景技術】
【０００２】
サブ回路のペア間の通信のため、典型的には、ブロッキング又は非ブロッキングインタフェースが利用される。ブロッキングインタフェースは、データを生成する回路がさらなる処理に移行する前に、当該データを受け付けるまで待機しなければならないときに使用される。これは、例えば、さらなる処理の効果がデータを受信するサブ回路によってとられた以前のアクションに依存するときに利用される。非ブロッキングインタフェースが使用されるとき、データを生成するサブ回路は、他方のサブ回路を待機することなく、他方のサブ回路により利用されるストレージ要素にデータを送信すると、さらなる処理に移行する。これは、例えば、さらなる処理が、メモリへの書き込み中など、データを受信するサブ回路の以前のアクションに依存しないときに利用される。非ブロッキングインタフェースは、一般にブロッキングインタフェースより高速であるが、ブロッキングインタフェースは、一般にそれが自動的にデータを受け付けることにより非ブロッキングインタフェースを実現するのに利用可能であるため、より有用である。
【０００３】
プロセッサが共通バスを介し複数の異なるバスユニットに接続されているバス回路では、プロセッサは、好ましくは、関係するバスユニットに応じて、ブロッキング通信と非ブロッキング通信を交互に使用する選択肢を有する。例えば、設定タイマー又はコントロールレジスタブロッキング通信が利用可能であり、長期メモリにデータを書き込むとき、非ブロッキング通信が、好ましくは、処理を高速化するために利用される。ブロッキング通信は、例えば、バスへのデータの書き込み後、受信側のバスユニットにより必要とされることが知られているタイムインターバルに対応する所定のサイクル数だけプロセッサを停止することにより実現されるかもしれない。あるいは、プロセッサは、データの受付を確認する確認信号をバスユニットから受信するまで、停止するかもしれない。また、バス回路以外の他の回路では、ブロッキングと非ブロッキングの交互の通信が必要とされるかもしれない。
【０００４】
同期構成と非同期構成は、回路構成に対する基本的に異なる２つのアプローチである。同期的に（クロック同期）動作する回路では、異なるサブ回路のアクションのタイミングは、所与のサブ回路において所与のクロック期間に実行されるアクションのタイプとは独立に、すべてのサブ乖離について集中的に生成される周期的なクロックパルスにより制御される。非同期的に動作する回路では、サブ回路のアクション適切なシーケンスを保証するため、連続するアクションについて個別にサブ回路を通信するペアの間でタイミングが交渉される。典型的には、サブ回路は、このためのハンドシェイクトランザクションを交換する。ハンドシェイクトランザクションでは、第１サブ回路がアクションが続行されてもよいことを示すため、第２回路に対するリクエスト信号を生成し、第２回路が当該リクエストが受付され、第１回路が次のリクエストを準備可能であることを示すためのアクノリッジ信号を生成する。
【０００５】
大部分の市販されている回路構成は、同期的なものであるが、近年では、電力消費を低減することが可能であること、動作スピードを増大させることが可能であること、大きな回路をクロック同期することに伴う複雑さを低減することが可能であることなどの様々な理由から、非同期構成がより普及しつつある。
【０００６】
同期非同期の合成された構成もまた、より普及してきている。２つのタイプの構成を組み合わせることにより、各周辺装置について最も適した設計技術が利用可能であり、及び／又はそれは、すべてのサブ回路を再設計する必要なく、既存の同期サブ回路構成を利用することを可能にする。合成された構成の一例は、タイマー回路やメモリ回路などの１以上の同期的に動作する周辺回路を備えた非同期的に動作するプロセッサコアを利用するものである。この例では、バス状接続により複数の同期的に動作する周辺装置を接続することが通常は望ましい。
【０００７】
合成された同期非同期構成はまた、互いに同期しない異なるクロックを使用する異なるクロック同期されたサブ回路間の通信に有用であるかもしれない。この場合、ここで使用されるように、サブ回路の主要部はクロック同期された動作を有するため、非同期的に動作するサブ回路でなく、非同期的に通信するサブ回路について説明すべきである。にもかかわらず、２つのクロック同期されたサブ回路間のインタフェースは、非同期的に動作するサブ回路であるかもしれない。
【０００８】
米国特許第６，２４７，０８２号は、このタイプの通信を示し、ここでは、ドメインの１つからのリクエストである場合、フリップフロップが、１つのクロックドメインからの信号を他のクロックドメインにおいてキャプチャするのに利用される。ここでの１つの問題は、キャプチャされる必要がある信号の遷移が、キャプチャされる必要がある信号へのドメインのクロック信号のクロックエッジとほとんど一致する場合に生じるメタスタビリティ（ｍｅｔａｓｔａｂｉｌｉｔｙ）の可能性である。各々がこのクロック信号によりクロック同期されるいくつかのフリップフロップが、上記問題を低減するためカスケード配置されるかもしれない。他の解決手段は、安全なキャプチャを可能にするため、キャプチャが必要な選択されたクロックサイクルについてクロック期間を拡張することである。
【０００９】
米国特許第５，８８４，１００号は、クロックゲーティング（ｃｌｏｃｋ  ｇａｔｉｎｇ）及び同期装置の使用を記載しており、これにより、あるクロックドメイン又は他のクロックドメインからのクロック信号が、トランスファリクエストがあるクロックドメイン又は他のクロックドメインから与えられているかに応じて、メモリにわたされる。
【００１０】
より一般には、すなわち、合成された構成における完全に非同期的に動作するサブ回路とクロック同期して動作するサブ回路の結合の場合には、ハンドシェイクインタフェース回路が必要とされる。このようなインタフェース回路の実現形態もまた知られている。基本的に、このタイプのハンドシェイクインタフェース回路は、同期的に動作するサブ回路のクロックのクロックパルスを利用して、非同期的に動作するサブ回路に対しリクエストをトリガーしたり、信号に応答する。他方、このインタフェース回路は、非同期的に動作するサブ回路からのリクエスト又はアクノリッジ信号の受信後、イネーブル信号により同期的に動作するサブ回路の選択されたクロックパルスをマークするかもしれない。
【００１１】
サブ回路のニーズに応じて、ブロッキング又は非ブロッキングインタフェースが実現可能である。ブロッキングインタフェースは、データの受付が確認信号又はいくつかのクロックサイクルを待機などすることによって保証されるまで、リクエストのアクノリッジメントを遅延する。非ブロッキングインタフェースは、データが以降の利用のためにレジスタに格納されると、リクエストに応答する。
【００１２】
ブロッキングインタフェースがまた、非ブロッキング通信が必要とされるとき、データが格納されると、確認を自動生成することにより利用可能である。しかしながら、非同期的に動作するサブ回路からのデータを同期的に動作するサブ回路に書き込むためのインタフェースの場合、確認が常にクロックサイクルを要求するため、このようなインタフェースは実際の非ブロッキングインタフェースより低速となる。非ブロッキングインタフェースはより高速であるが、ブロッキングインタフェースとして動作するために、それをスイッチするための方法は知られていない。通信前にブロッキング状態と非ブロッキング状態との間でスイッチ可能なインタフェースを使用することはまた、遅延を伴う。
【００１３】
他の問題は、非同期的に動作するサブ回路からのデータが、望ましくないサイド効果なしに繰り返されるクロックサイクルにおいてクロック同期して動作するサブ回路に印加することができない場合に生じる。このようなサイド効果を防ぐため、非同期的に動作するサブ回路からのデータが存在しないクロックサイクルの間、クロック同期して動作するサブ回路にデフォルト信号を供給する必要がある。これは、１クロックサイクル後に、非同期的に動作するサブ回路からのデータを自動的に置換することにより実現されるかもしれない。しかしながら、これは、非同期的に動作するサブ回路が高いレートによりデータを供給することが可能であるとき、クロックサイクルの浪費を招く可能性がある。
【発明の開示】
【発明が解決しようとする課題】
【００１４】
本発明の一課題は、ブロッキングインタフェースと非ブロッキングインタフェースの何れとしても動作可能であって、非ブロッキングインタフェースとして動作する際にはブロッキングインタフェースより高速である非同期的に動作するサブ回路とクロック同期して動作するサブ回路との間のインタフェースを備える回路を提供することである。
【００１５】
本発明の一課題は、複数のクロック同期して動作するサブ回路が接続されるバスに接続される非同期的に動作するサブ回路を備える回路であって、非同期的に動作するサブ回路が、ブロッキング通信又は非ブロッキング通信を使用してバスとインタフェースをとるか、そして何れがブロッキング通信中より非ブロッキング通信中により高速であるか選択することが可能な回路を提供することである。
【００１６】
本発明の一課題は、デフォルトデータを供給するクロックサイクルの浪費が最小限にされる非同期的に動作するサブ回路とクロック同期して動作するサブ回路との間のインタフェースを備える回路を提供することである。
【課題を解決するための手段】
【００１７】
本発明は、請求項１記載の回路を提供する。ハンドシェイクリクエストを伴い供給される制御信号が、ブロッキング又は非ブロッキング通信が使用されるか制御するのに利用される。当該回路は、選択可能な状態の下、このリクエストに応答するため異なるパスにおいて接続可能なハンドシェイク要素を有する。当該制御信号は、パスを変更するのに使用され、これにより、リクエスト信号に応答する状態を変更することが可能となる。
【００１８】
ある実施例では、制御信号が非ブロッキング通信を選択すると、ハンドシェイク要素を介した第１パスが使用され、制御信号がブロッキング通信を選択すると、追加的なハンドシェイクパス部分が第１パスに追加される。好ましくは、制御信号は、格納前後においてハンドシェイク回路を介しパスの異なる位置において利用可能となるように格納される。
【００１９】
本発明は、同期バス回路が非同期的に動作する回路とインタフェースをとるとき特に有用である。この場合、本発明は、バスを介した利用のため、非同期的に動作するサブ回路からのアドレス及びデータ情報を供給することを可能にする。本発明により、非同期サブ回路は、ブロッキングアクセスの場合、バスアクセスを同期回路と共有するためのルールの遅延効果に従い、非ブロッキングアクセスの場合、ほとんど遅延することなく動作することが可能である。
【００２０】
他の実施例では、新たなデータが非同期サブ回路から利用可能でない場合、デフォルト信号を同期サブ回路に供給するため、デフォルト置換回路が利用される。非同期サブ回路からのデータ又はデフォルトデータが、同期サブ回路に供給するため、レジスタなどのストレージユニットにロードされる。ロード処理は、非同期サブ回路からデータをロードするための保留中のリクエストがない場合、バスサイクルに応答して条件付きに生成されるデフォルトデータをロードするためのハンドシェイク信号の制御を受ける。これは、例えば、同期サブ回路からの特定のデータアイテムが、複数サイクルにおいて同期サブ回路に影響を及ぼすことが回避されるべきである場合に有用である。当該回路は、非同期サブ回路からのデータが、１サイクル後に置換されることを保証する。デフォルトでは、害のないデフォルトデータが使用されるが、当該回路は、非同期的に動作するサブ回路からの新たなデータが利用可能である場合、デフォルトデータによる不要なサイクルが回避されることを保証する。
【発明を実施するための最良の形態】
【００２１】
図１は、非同期命令プロセッサ１０と、周辺ハンドシェイク回路１２と、非同期周辺装置１４と、非同期同期インタフェース回路１５と、クロック回路１６と、同期周辺装置１７とを有するデータ処理回路を示す。非同期プロセッサ１０は、周辺ハンドシェイク接続１１ａと、リードデータ入力１１ｂと、ライトデータ／アドレスデータ／制御データ出力１１ｃと、ブロッキング／非ブロッキング選択出力１１ｄとを有する。周辺ハンドシェイク回路１２は、非同期プロセッサ１０の周辺ハンドシェイク接続１１ａと、非同期周辺装置１４と非同期同期インタフェース回路１５とをそれぞれ接続する各接続１３とを接続する。非同期周辺装置１４は、非同期プロセッサ１０の出力１１ｃに接続されるアドレス／データ／制御入力と、非同期プロセッサ１０のデータ入力１１ｂに共通に接続される出力とを有する。２つの非同期周辺装置１４が示されているが、２より多くの又は少ない任意の個数の周辺装置が存在可能であるということが理解されるべきである。ある実施例では、非同期周辺装置１４は使用されず、この場合、周辺ハンドシェイク回路１２が省略可能であり、周辺ハンドシェイク接続１１ａが非同期同期インタフェース回路１５に直接接続されてもよい。
【００２２】
同期周辺装置１７は、クロックライン、リードデータライン及びライトデータ／アドレス／制御ラインを含む同期バス１９にパラレルに接続される。クロック回路１６は、バス１９のクロックラインに接続される出力を有する。リードデータラインは、非同期プロセッサ１０のリードデータ入力に接続される。バス１９のライトデータ／アドレス／制御ラインは、非同期同期インタフェース回路１５に接続される。周辺装置１４と１７は、例えば、タイマー回路、メモリ、ＩＯインタフェース、特殊機能処理回路（信号復号化回路など）などを有するかもしれない。
【００２３】
非同期同期インタフェース回路１５が、同期回路１９と、周辺ハンドシェイク回路１２、非同期プロセッサ１０のライトデータ／アドレス／制御データ出力及びブロッキング／非ブロッキング選択出力１１ｄからの接続を有する非同期サイドとの間に結合される。
【００２４】
動作において、非同期プロセッサ１０は、命令プログラムを実行する。プロセッサ１０が非同期であるため、何れのクロックも一般にはその動作に関与しない。プロセッサ１０のサブ回路は、それらのタイミングを調整するため、ハンドシェイク信号を交換する。命令の一部は、非同期プロセッサ１０に選択された周辺回路１４と１７にアクセスさせる。この場合、非同期プロセッサ１０は、周辺ハンドシェイク接続１１ａにおいてハンドシェイクリクエストを生成し、出力１１ｃにおいてアドレスを供給する。このアドレスは、周辺装置１４と１７の選択されたものを示すのに利用される。非同期周辺装置１４は、当該アドレスを受信し、それを自らのアドレスと比較する。一致しないことを検出した非同期周辺装置１４は、非同期プロセッサ１０からのリクエストに応答可能であることを周辺ハンドシェイク回路１２に即座に示す。アドレスが一致していることを検出した非同期周辺装置１４は、任意的にはリードデータの書き込みなど、非同期プロセッサ１０からのライトデータ及び／又は制御データに応じて周辺アクションを開始し、当該アクションが非同期プロセッサの移行を可能にするのに十分完了されると周辺ハンドシェイク回路１２に示す。周辺ハンドシェイク回路１２が、非同期プロセッサ１０からのリクエストが承認可能であるという信号をそれのすべての接続１３を介しすべてから受信すると、周辺ハンドシェイク回路１２は当該リクエストを承認する。
【００２５】
周辺ハンドシェイク回路１２は様々な方法により実現可能であり、例えば、各接続１３はハンドシェイク接続であり、周辺ハンドシェイク回路１２が「フォーク（ｆｏｒｋ）」機能を実行し、リクエストをすべての接続１３にわたし、すべての接続１３からアクノリッジメントを受け取り、アクノリッジメントがすべての周辺回路から受信されると、非同期プロセッサ１０に返されるアクノリッジメントを生成するようにしてもよい。
【００２６】
非同期同期インタフェース回路１５は、同期周辺装置１７により処理されるリクエストを処理する。基本的には、非同期同期インタフェース回路１５は、非同期プロセッサ１０からライトデータ／アドレス／制御データをキャプチャし、このキャプチャされた情報をクロック回路１８により生成されるクロックサイクルにおいてバス１９に印加する。
【００２７】
本発明によると、非同期同期インタフェース回路１５は、ブロッキングアクセスと非ブロッキングアクセスの２つのタイプのアクセスをサポートするよう構成される。ブロッキング及び非ブロッキングアクセスは、ブロッキングアクセスが非同期プロセッサ１０からのリクエストが承認される前に、より多くのアクションを伴うという点で相違する。ブロッキングアクセス中、非同期同期インタフェース回路１５は、非同期プロセッサ１０からのリクエストが承認可能であることを周辺ハンドシェイク回路１２に示す前に、選択された周辺装置１７からの確認信号を待機する。非ブロッキングアクセス中、非同期同期インタフェース回路１５は、リクエストが承認可能であることを示す前に、確認を待機する必要はない。ライトデータ／アドレス／制御情報が、非ブロッキングアクセス中にバス１９への印加のためにキャプチャされると、非同期同期インタフェース回路１５は、リクエストが承認可能であることを示す。
【００２８】
典型的には、非同期プロセッサ１０により実行される命令は、ブロッキングアクセス又は非ブロッキングアクセスが使用されるべきか示す。これは、周辺装置１７にアクセススための初期命令を実行した後、非同期プロセッサ１０が当該初期命令が周辺装置１７により実行される前に、以降の命令を実行すべきでないか否かに依存する。そうである場合、非同期プロセッサ１０は、それが初期命令により規定されるアクセスに対するリクエストを発行すると、出力１１ｄを介し「ブロッキング信号」をアサートする。待機が必要でない場合、非同期プロセッサ１０は、出力１１ｄを介し「ブロッキング信号」をアサートしない。ブロッキングアクセスは、例えば、１つの周辺装置によるライト命令が他の周辺装置によりリード命令の処理前に完了しなければならないとき、ある命令の実行前にタイマーをスタートするためデータを書き込むときなどに利用される。非ブロッキングアクセスは、例えば、即座に読まれる必要のないフラッシュメモリ周辺装置に処理を書き込むためなどに利用される。
【００２９】
図２は、ブロッキングアクセスをサポートする従来技術による非同期同期インタフェース回路１５の実現形態を概略的に示す。当該回路は、非同期回路コンポーネントに対して標準化されたシンボルを用いて示される。これらのシンボルは、リクエスト及びアクノリッジ信号が表される方法から抽出されるため、使用される。
【００３０】
周知のように、ハンドシェイク接続の異なる実現形態が存在する。本発明は、そのような実現形態の何れにも、又はそのような実現形態の組み合わせを利用した回路に印加される。例えば、このような実現形態の１つのファミリーは、２つの信号コンダクタと、第１回路コンポーネントから第２回路コンポーネントにリクエスト信号を送信するリクエストコンダクタと、第２回路コンポーネントから第１回路コンポーネントにアクノリッジ信号を送信するアクノリッジコンダクタとを利用する。４フェーズプロトコルでは、リクエスト信号とアクノリッジ信号は、それぞれリクエスト及びアクノリッジコンダクタのポテンシャル（ｐｏｔｅｎｔｉａｌ）の可変長パルスを伴い、当該パルスの長さはこれら回路間のやりとりにより決定される。リクエスト信号のパルスのフォーリングエッジは、アクノリッジ信号のパルスのライジングエッジに続き、アクノリッジ信号のフォーリングエッジは、リクエスト信号のフォーリングエッジに続く。２フェーズプロトコルでは、リクエスト及びアクノリッジは、リクエスト及びアクノリッジラインを介したポテンシャルの単一の遷移（アップ−ダウン又はダウン−アップ）により通知される。他のプロトコルは、信号レベルのいくつかの意味（ｍｅａｎｉｎｇ）を反転し、又は電圧レベルの代わりに電流レベルを利用する。さらなる他のプロトコルは、リクエストを通知するためポテンシャルを引き上げ、その後それを維持し、アクノリッジを通知するためポテンシャルを引き下げ、その後それを維持するなどによって、リクエスト信号とアクノリッジ信号の両方について１つのコンダクタを使用するようにしてもよい。
【００３１】
図２は、実際の実現形態から独立したシンボル表現を使用する。円や矩形などのシンボルが回路コンポーネントを記号化するのに利用され、直線がハンドシェイク接続をシンボル化するのに利用される。直線のスタートにおける円上の黒色のドットは、「アクティブポート」、すなわち、この円により記号化された回路コンポーネントがリクエストを生成することを示す。白色のドットは、「パッシブポート」、すなわち、この円により記号化された回路コンポーネントが、これらの信号の実際の実現形態がどのようなものであろうと、アクノリッジメントを生成することを示す。各コンポーネントの実現形態は、この円内のラベル及びプロトコルタイプにより示される機能に依存する。
【００３２】
例えば、１つのコンポーネント（“ｓｅｑ”によりラベル付けされる）は、それの白色のドットターミナルにおいてリクエストを受信すると、まず第１の黒色ドットターミナル（“１”とラベル付けされる）に対して第１ハンドシェイク（リクエストの送信＋アクノリッジの受信）を実行し、当該第１ハンドシェイクの完了後、第２の黒色ドットターミナル（“２”とラベル付けされる）に対して第２ハンドシェイクを実行するシーケンサである。第２ハンドシェイクの完了後、シーケンサは、白色のドットターミナルを介しオリジナルのリクエストを承認する。２フェーズプロトコルの場合、このコンポーネントは、単に（ａ）白色のドットターミナルのリクエストラインを第１の黒色のドットターミナルのリクエストラインと接続し、（ｂ）第１の黒色のドットターミナルのアクノリッジラインを第２の黒色のドットターミナルのリクエストラインに接続し、（ｃ）第２の黒色のドットターミナルのアクノリッジラインを白色のドットターミナルのアクノリッジラインに接続することによって実現される。４フェーズプロトコルでは、Ｍｕｌｌｅｒ  Ｃ要素が、この機能を実現するのに利用されてもよい。
【００３３】
他の例として、トランスファコンポーネント（“ｔｒｆ”によりラベル付けされる）は、それの白色のドットターミナルを介しリクエストを受信すると、それの黒色のドットターミナルに対してハンドシェイクを実行し、入力ターミナルからのデータを黒色のドットターミナルを介し供給する。黒色のドットターミナルに対するハンドシェイクを完了すると、白色のドットターミナルに対するリクエストが承認される。この回路の実現形態はまた、しばしば単にコンダクタの接続を伴う。
【００３４】
さらなる他の例として、変数ストレージコンポーネント（“ｖａｒ”とラベル付けされる）は、当該各色のドットターミナルからリクエストを受信すると、それの各色のドットターミナルからデータを格納する。この格納されたデータは、出力において出力される。この回路は、典型的には、リクエスト信号により制御されるラッチ回路を伴う。
【００３５】
さらなる例として、「エッジ」コンポーネント（“ｅｄｇｅ”とラベル付けされる）は、白色のドットターミナルとクロックターミナルを有する。エッジコンポーネントは、それの各色のドットターミナルを介しリクエストを受信し、それのエッジ入力ターミナル上で所定の指定された極性の次の信号エッジを検出すると（典型的には、ポジティブエッジなどの１つのタイプのエッジを検出すると）、アクノリッジを返す。このコンポーネントは、例えば、リクエスト信号を入力し、アクノリッジ信号を出力し、クロック信号のエッジによりクロック同期されるクロック同期するフリップフロップを使用して実現することが可能である。しかしながら、このタイプの実現形態は、相互排除要素などを利用して、クロック信号がリクエストに続くことを検出する、より複雑な実現形態により直面する可能性のあるメタスタビリティ問題を被る可能性がある。
【００３６】
図２は、データインタフェース２０とクロックインタフェース２６とを備えたブロッキング非同期同期インタフェース２０と２６を示す。このデータインタフェースは、典型的には周辺ハンドシェイク回路１２（図示せず）に接続されるか、あるいは非同期プロセッサ１０に直接接続され、ハンドシェイクターミナル２０２と非同期プロセッサ１０（図示せず）のライトデータ／アドレス／制御データ出力に接続されるデータ入力２００を有する。このデータインタフェースは、第１シーケンサ２２と、第２シーケンサ２４と、トランスファコンポーネント２８と、変数ストレージコンポーネント２９とを有する。クロックインタフェース２６は、クロック入力２０４を備えるエッジコンポーネント２６０と、入力２０８を有する確認コンポーネント２６２とを有する。
【００３７】
ハンドシェイクターミナル２０２は、エッジコンポーネント２６０のパッシブポートに連続的に接続されるそれの第１アクティブポートを有する第１シーケンサ２２のパッシブポートに接続される。第１シーケンサ２２の連続的な第２のアクティブポートは、第２シーケンサ２４のパッシブポートに接続され、当該第２シーケンサ２４は、トランスファコンポーネント２８のパッシブポートに接続されるそれの連続的な第１のアクティブポートを有する。トランスファコンポーネント２８は、変数ストレージコンポーネント２９に接続されるそれのアクティブポートを有する。第２シーケンサ２４の連続的な第２アクティブポートは、確認コンポーネント２６２のパッシブポートに接続される。
【００３８】
動作において、第１シーケンサ２２は、クロック入力２０４において次のクロック遷移により承認するエッジコンポーネント２６０に対するリクエストを生成することにより、入力２０２からのリクエストに応答する。これに応答して、第１シーケンサ２２は、リクエストを第２シーケンサ２４に送信する。その後、第２シーケンサはまず、トランスファコンポーネント２８に対するリクエストを生成し、トランスファコンポーネント２８は、これに応答して変数ストレージコンポーネント２９にデータ入力２０２からのデータを格納させ、その後に格納されたデータを出力２０６に印加する。これが行われると、トランスファコンポーネント２８は、第２シーケンサ２４の連続的な第１アクティブターミナルに当該リクエストを承認する。次に、第２シーケンサ２４は、それの連続的な第２アクティブターミナルにおけるリクエストを確認コンポーネント２６２に送信する。
【００３９】
確認コンポーネントは、それの入力２０８において確認信号を受信すると、リクエストを承認する。確認信号は、データ出力２０６を受信する回路（図示せず）がデータを処理しているため、ハンドシェイクはブロックされなくてもよいことを確認する。典型的には、この確認信号は、同期周辺装置（図示せず）からのアクノリッジ出力におけるパルスであるが、他のタイプの確認が利用されてもよく、例えば、エッジコンポーネント２６０によりアクノリッジ信号をトリガー下エッジからスタートしたクロック入力２０４におけるクロック期間のエンドに応答して自動確認が生成されてもよいし、あるいは、当該エッジ後又は確認コンポーネント２６２などに対するリクエスト後に所定の遅延により確認が生成されてもよい。
【００４０】
確認コンポーネント２６２からのアクノリッジ信号に応答して、第２シーケンサ２４は、第１シーケンサ２２に対するそれのパッシブポートにおけるリクエストを承認し、第１シーケンサ２２は、ハンドシェイクターミナル２０２からオリジナルのリクエストを承認する。確認コンポーネント２６２により確認されるように、最終的なアクノリッジ信号がデータの処理の終了を待機する必要があるという意味で、このようにしてブロッキングトランザクションが実行されたことが理解されるべきである。
【００４１】
図３は、非ブロッキングハンドシェークを処理可能な変更された回路を示す。この回路は、データインタフェース２０とクロックインタフェース２６の前方にパイプラインステージ３０を有する。パイプラインステージ３０は、トランスファコンポーネント３００と、変数ストレージコンポーネント３０２と、ジョインコンポーネント３０４と、シーケンサ３０６と、リピータコンポーネント３０８とを有する。ジョインコンポーネント３０４は、それがそれのすべてのパッシブポートにおいてリクエストを受信すると、それのアクティブポートにおいてリクエストを生成し、それのアクティブポートにおいてアクノリッジメントを受信すると、当該リクエストを承認することが可能である。再び、このコンポーネントの多くの知られている実現形態が存在する。４フェーズプロトコルの実現形態では、例えば、パッシブターミナルのリクエストラインに接続される入力と、アクティブラインのリクエストラインに接続される出力とを備えるＣ要素が使用され、アクティブポートのアクノリッジラインは、双方のパッシブポートのアクノリッジラインに接続される。リピータコンポーネント２０８は、初期的には自らのイニシアチブにおいて、そして以降においては先行するアクノリッジメントを受信するとすぐに、リクエストを生成することが可能である。再び、このコンポーネントの多くの知られている実現形態が存在する。
【００４２】
動作において、シーケンサ３０６はまず、リピータ３０８からのリクエストをジョインコンポーネントにわたし、ジョインコンポーネントは、これに応答してジョインコンポーネント３０４がハンドシェイクインタフェース２０２においてリクエストを受信するとすぐに、トランスファコンポーネント３００に対してリクエストを生成する。トランスファコンポーネント３００に対するリクエストは、入力２００からのデータを変数ストレージコンポーネント３０２に格納し、その後、ジョインコンポーネント３０４はハンドシェイクインタフェース２０２及びシーケンサ３０６に対するリクエストを承認する。その後、シーケンサ３０６は、データインタフェース２０とハンドシェイクし、その後リピータ３０８は次のハンドシェイクを生成する。
【００４３】
データが変数ストレージコンポーネント３０２に格納されたが、一般にはデータが処理されたという確認が受信される前に、ハンドシェイクインタフェース２０２からのリクエストが承認されるという意味で、このように当該回路が非ブロッキングであるということは理解されるべきである。変数ストレージコンポーネント３０２の前のデータが、ハンドシェイクインタフェース２０２におけるリクエストが到着したとき、まだ送信されていない場合、次のデータが格納される前に、前のデータが複製されるまでリクエストの承認は待機される。しかしながら、そのときでさえ、当該回路は確認を待機しない。
【００４４】
図４は、ブロッキング制御信号に応じてブロッキング又は非ブロッキング動作を提供する回路を示す。説明のため、ブロッキング制御信号は、データ入力２００上のデータの一部であると考えられる。図３のコンポーネントに加えて、図４は、ブロッキング制御回路を有する。ブロッキング制御回路４０は、第１シーケンサ４１と、第２シーケンサ４２と、パシベータ（ｐａｓｓｉｖａｔｏｒ）４３と、選択コンポーネント４４及び４５とを有する。第１シーケンサ４１は、ハンドシェイクターミナル２０２に接続されるそれのパッシブポートと、パイプラインステージ３０のジョインポートに接続されるそれの連続的に第１のアクティブポートとを備え、パイプラインステージ３０のハンドシェイクターミナルとハンドシェイクターミナル２０２との間に挿入される。第２シーケンサ４２は、データインタフェース２０の第２シーケンサ（図示せず）に接続されるそれのパッシブポートと、クロックインタフェース２６の確認コンポーネント（図示せず）に接続されるそれの連続的な第１のアクティブポートとを備え、データインタフェース２０とクロックインタフェース２６との間に挿入される。第１シーケンサ４１と第２シーケンサ４２の連続的な第２のアクティブポートが、各自の選択コンポーネント４４と４５を介しパシベータ４３のパッシブポートに接続される。選択コンポーネント４４と４５は、データからブロッキング制御信号を受信するため、それぞれデータ入力２００とデータ出力２０６に接続される制御入力を有する。
【００４５】
動作において、ブロッキング制御信号がブロッキング動作を通知すると、選択コンポーネント４４と４５は、第１シーケンサ４１と第２シーケンサ４２からリクエストをパシベータ４３にわたす。この結果、付属するデータが処理されたという確認が受信されるときに限り、ハンドシェイクインタフェース２０２からのリクエストが承認される。パイプラインステージ３０は、通常に動作し、非ブロッキング形式によりアクノリッジメントを第１シーケンサ４１に返す。しかしながら、第１シーケンサ４１がハンドシェイクターミナル２０２において承認することが可能となるまで、それはパシベータ４３が承認するまで待機しなければならない。パシベータ４３は、データインタフェース２００が確認を要求し、クロックインタフェース２６が、当該データが処理されたということを確認するときのみこれを行う。この結果、ブロッキング動作が実現される。
【００４６】
ブロッキング制御信号が非ブロッキング動作を通知すると、選択コンポーネント４４及び４５は、第１シーケンサ４１と第２シーケンサ４２から自発的にリクエストを承認する。パシベータ４３は、このケースには関与しない。この結果、ハンドシェイクインタフェース２０２からのリクエストは、パイプラインステージ３０が承認すると承認される。この結果、非ブロッキング動作が実現される。
【００４７】
選択コンポーネント４４と４５は、それぞれデータ入力２００とデータ出力２０２におけるデータのブロッキング制御信号の制御の下で動作することに留意されてもよい。これは、第１シーケンサ４１がパシベータ４３からの承認を待機し続けている間、前の非ブロッキングデータの処理を完了することを可能にし、それは、ブロッキングデータがデータ出力２０６に存在するときに限って発生しうる。
【００４８】
図５は、選択コンポーネント４４の実施例を示す。本例では、選択コンポーネントは、トランスファコンポーネント５０と、“ケース（ｃａｓｅ）”コンポーネント５２と、“実行（ｒｕｎ）”コンポーネント５４とを有する。ケースコンポーネントは、付属されるデータに応じて選択されるそれのアクティブポートの選択された１つにおいてリクエストを生成することによって、データを付属したそれのパッシブポートにおけるハンドシェイクに応答する。アクティブポートの選択された１つにおける以降のアクノリッジ信号は、パッシブポートにおけるアクノリッジをもたらす。ランコンポーネント５４は、入力されるリクエストに対してアクノリッジメントにより自発的に応答する。何れのコンポーネントも知られているものであり、様々な方法により容易に実現可能である。
【００４９】
動作において、ケースコンポーネント５２は、ブロッキング制御信号に応じて、トランスファコンポーネント５０からランコンポーネント５４又はパシベータ（図示せず）にリクエストをわたす。このリクエストがランコンポーネント５４にわたされると、それは選択コンポーネント４４において即座に承認される。リクエストがパシベータにわたされると、承認は、パシベータからの承認を待機する必要がある。
【００５０】
図に示される回路は単なる具体例として機能するということが理解されるべきである。多数の代替が可能である。例えば、複数のパイプラインステージがデータインタフェース２０の前にスタックされる。これは、前のデータが依然として保留されている場合、非ブロッキング動作においてリクエストの承認を迅速化するであろう。さらに、トランスファ、変数ストレージ、シーケンサコンポーネントなどの各ハンドシェイクコンポーネントが示されているが、実際の実現形態では、異なる接続されているコンポーネントの機能は、１つのコンポーネントに組み合わされていてもよいということが理解されるべきである。また、１つのハンドシェイクコンポーネント又はコンポーネントの組み合わせにより実行される同一の機能が異なる組み合わせにより実行可能であるため、同一の機能的効果を有するコンポーネントの多数の異なる組み合わせが可能である。他の例として、選択回路４５は、第２シーケンサ４２及びパシベータ４３との間のそれの位置から、データインタフェース２０と第２シーケンサ４２との間の位置に移動されてもよい。
【００５１】
図６は、ブロッキングインタフェース２０及び２６の他の実施例を示す。ここでは、データ入力２００からのデータが利用可能でないクロックエッジに対して、デフォルトデータの置換が実行される。図２のブロッキングインタフェース２０及び２６と比較して、本実施例の主要な変更は、クロックエッジがリクエストをアクティブに生成するのに利用され（ブロッキングインタフェースの外部のハンドシェイクインタフェースにおけるリクエストに応答せず）、外部のハンドシェイクインタフェースからのリクエストが保留されているか否かに応じて、生成されたリクエストが異なる方法によりルーティングされるということである。外部のハンドシェイクインタフェースからのリクエストが保留中であると判明する場合、クロックエッジにより生成されるリクエストは、外部データのロード処理を制御するため、外部リクエストと共に使用される。外部のハンドシェイクインタフェースからのリクエストの中で保留中のものがないと判明する場合、クロックエッジにより生成されるリクエストが、デフォルトデータのロード処理を制御するのに独立に使用される。このようにして、デフォルトデータをロードする不要なリクエストが、可能な限り回避される。
【００５２】
このためのキーとなるコンポーネントは、クロックエッジに応答してリクエストをアクティブに生成するアクティブクロックハンドシェイク回路６０と、外部のハンドシェイクインタフェース２０２からのリクエストの有無に応じてリクエストをルーティングするケースコンポーネント６７と、クロックエッジにより生成されたリクエストがルーティングされる方法に応じて、外部データ又はデフォルトデータをわたすミキサコンポーネント６３とである。
【００５３】
図６は、トランスファコンポーネント２８と変数ストレージコンポーネント２９との間のミキシングコンポーネント６３を示す。ミキシングコンポーネントは、データ入力からの実際のデータ（メインデータトランスファコンポーネント２８を介し受信される）、又はデフォルトデータソース６２からのデフォルトデータを送信する。さらに、このインタフェースは、アクティブクロックハンドシェイク回路６０と、ステータスコンポーネント６４と、ジョインコンポーネント６５と、デフォルトトランスファコンポーネント６６と、ケースコンポーネント６７と、シーケンサ６８とを有する。回路のハンドシェイク入力は、ジョインコンポーネント６５の第１パッシブポートに接続されるアクティブポートを有するステータスコンポーネント６４のパッシブポートに接続される。ジョインコンポーネント６５は、メインデータトランスファコンポーネント２８のパッシブポートに接続されるアクティブポートを有する。アクティブクロックハンドシェイク回路６０は、エッジコンポーネント２６０に接続される第１入力と、ステータスコンポーネント６４の出力に接続される第２入力とを有する。アクティブクロックハンドシェイク回路６０の出力は、ケースコンポーネント６７のパッシブポートに接続される。ケースコンポーネント６７は、１つがデフォルトデータトランスファコンポーネント６６に接続され、１つがシーケンサ６８のパッシブポートに接続される２つのアクティブポートを有する。シーケンサ６８の連続的な第１アクティブポートは、ジョインコンポーネント６５に接続され、シーケンサ６８の連続的な第２アクティブポートは、クロックインタフェース回路２６に接続される。
【００５４】
動作において、アクティブクロックハンドシェイク回路６０は、それがブロッキングインタフェースの非同期ハンドシェイク入力においてリクエストを検出したか否か示す制御値を伴って、同期回路のクロックのクロックエッジに応答してハンドシェイクリクエストを生成するよう機能する。制御値に応じて、ケースコンポーネント６７は、非同期ハンドシェイク入力において保留中のリクエストが検出されなかった場合には、上記リクエストをデフォルトトランスファコンポーネント６６にわたし、保留中のリクエストが検出された場合には、上記リクエストをシーケンサ６８にわたす。リクエストがデフォルトトランスファコンポーネント６６にわたされる場合、当該コンポーネントは、変数ストレージコンポーネント２９にミキサ６３を介しデフォルトデータレジスタ６２からのデフォルトデータを格納させるため、当該リクエストをわたす。このリクエストは、これが実行されると、アクティブクロックハンドシェイク回路６０に承認される。
【００５５】
リクエストがシーケンサ６８にわたされる場合、シーケンサはまず、ブロッキング回路の非同期ハンドシェイク入力２０２からリクエストを受信するジョインコンポーネント６５にリクエストを発行する。両方のリクエストが到着すると、ジョインコンポーネント６５は、メインデータトランスファコンポーネント２８に対してリクエストを生成し、当該メインデータトランスファコンポーネント２８は、変数ストレージコンポーネント２９にミキサ６３を介しデータ入力２０２からメインデータを格納させるため、当該リクエストをわたす。その後、ジョインコンポーネントは、非同期ハンドシェイク入力２０２及びシーケンサ６８に対して承認する。その後、シーケンサ６８は、確認を受信するため、それの連続的な第２アクティブポートにおけるリクエストをクロックインタフェースに発行する。それが受信されると、シーケンサ６８は、次のクロックエッジが処理可能となるように、アクティブクロックハンドシェイク回路６０に対して承認する。
【００５６】
図７は、サンプリングコンポーネント、リピータ、シーケンサ及びトランスファコンポーネントを備えるアクティブクロックハンドシェイク回路６０の実施例を示す。リピータはリクエストを生成するよう動作し、シーケンサはまず、クロックインタフェースのエッジコンポーネントに印加し、当該エッジコンポーネントが承認されると、トランスファコンポーネントに印加する。このようにして、エッジコンポーネントは、アクティブコンポーネントに効果的に変換され、ブロッキングインタフェースのハンドシェイク入力からのリクエストを待機する代わりに、クロックエッジに応答してリクエストが生成される。
【００５７】
トランスファコンポーネントとサンプリングコンポーネントは、ブロッキングインタフェースのハンドシェイク入力においてリクエストが保留されているか否かに応じて、制御値を抽出するためステータスコンポーネント６４と協調する。ステータスコンポーネントは、それのパッシブポート（ブロッキングインタフェースのハンドシェイク入力に接続される）からそれのアクティブポートにハンドシェイクをわたし、リクエストが保留されているか否かに関する情報を出力するコンポーネントである。簡単な実施例では、ステータスコンポーネントは、当該情報のタップ（ｔａｐ）による、アクティブポートとパッシブポートの間の単なる接続配線である。サンプリングコンポーネントは、それがリクエストを受信し、サンプリングされた値を返すとき、タップされた情報の値をサンプリングする。原則的に、これはリクエストによりクロック同期されるラッチにより実現可能であるが、実際的には、メタスタビリティ問題に対する手段を備える既知の回路が、好ましくは使用される。トランスファコンポーネントは、シーケンサからリクエストを受信し（クロックエッジの後に生成される）、当該情報をキャプチャするため、サンプリングコンポーネントにリクエストを送信し、当該リクエストが承認されると、トランスファコンポーネントは、サンプリングされた制御値と共にリクエストをケースコンポーネント６７に出力する。
【００５８】
図６のブロッキングハンドシェイクインタフェース２０及び２６が図３及び図４の回路において置換可能であり、この結果、あるクロックサイクルにおいて利用するのに利用可能な実際のデータがない場合、クロックエッジに応答してデフォルトデータを供給する非ブロッキング、制御可能ブロッキング又は非ブロッキングインタフェースが取得されることが理解されるべきである。ある意味では、このインタフェースの同期サイドもまた、当該サイドに対する動作が非同期サイドからのリクエストなく進めることが可能であるという点で、非ブロッキングになる。
【００５９】
本発明の具体的な実現形態が説明されたが、本発明がこれらの実現形態に限定されないということが理解されるべきである。重要なことは、ブロッキング又は非ブロッキングの後に承認を許可し、及び／又はクロックエッジに応答してデフォルトデータをハンドシェイクと置換するため、インタフェースの外部ターミナルにおいてデータをロードし、リクエストを承認するのに適したハンドシェイク信号を生成することであり、これらのハンドシェイクは、外部のリクエストが顕著でない場合に限り行われる。同一の機能を備えた他の回路が利用可能である。実際、図示された非同期コンポーネントの各種実現形態が可能であるが、図示された図面は異なる回路を表している。このような実現形態による回路は、非同期コンポーネントの組み合わせの機能さえ実現するかもしれない。
【図面の簡単な説明】
【００６０】
【図１】図１は、データ処理回路を示す。
【図２】図２は、ブロッキング非同期同期インタフェースを示す。
【図３】図３は、非ブロッキング非同期同期インタフェースを示す。
【図４】図４は、選択可能なブロッキングによるインタフェースを示す。
【図５】図５は、ブロッカ回路を示す。
【図６】図６は、デフォルト生成回路を示す。
【図７】図７は、アクティブクロックハンドシェイク回路の実施例を示す。
【図１】
2007535064.tif 000003
【図２】
2007535064.tif 000004
【図３】
2007535064.tif 000005
【図４】
2007535064.tif 000006
【図５】
2007535064.tif 000007
【図６】
2007535064.tif 000008
【図７】
2007535064.tif 000009
【国際調査報告】
2007535064.tif 000010
2007535064.tif 000011