(57)【要約】  局所同期回路モジュールは、クロック入力にカップリングされた入力及び出力を有する遅延回路を備える。その遅延回路は、クロック発振器に組み込まれた時、少なくとも記憶要素間で情報を転送するのに必要な期間と同じ長さのクロック期間を保証する遅延を提供する。ハンドシェイク回路が、局所同期回路モジュールとさらなる回路との間の情報転送を時間設定するハンドシェイク信号を生成するために備えられる。ハンドシェイク回路は、遅延回路を備え、これによりハンドシェイクトランザクション中のハンドシェイク信号の少なくとも一部が、その遅延回路を通って走行することにより時間設定され、且つ前記クロック入力に付与されて局所同期回路モジュールをクロッキングする。
2005515544.tif 000002
【特許請求の範囲】
【請求項１】
クロック入力および記憶要素を有する局所同期回路モジュールであって、前記クロック入力は、前記局所同期回路モジュール内の前記記憶要素間で転送される情報の記憶を時間設定するために用いられる局所同期回路モジュールと、
前記クロック入力にカップリングされた入力および出力を有する遅延回路であって、前記遅延回路は、クロック発振器に組み込まれた時、少なくとも前記記憶要素間で情報を転送するのに必要な期間と同じ長さのクロック期間を保証する遅延を提供する遅延回路と、
さらなる回路と、
前記記憶要素と前記さらなる回路との間の情報転送を時間設定するハンドシェイク信号を生成するハンドシェイク回路であって、前記遅延回路を備え、これによりハンドシェイクトランザクション中のハンドシェイク信号の少なくとも一部が、前記遅延回路を通って走行することにより時間設定され、且つ前記クロック入力に付与されて前記局所同期回路モジュールをクロッキングするハンドシェイク回路と、
を備えたデジタル電子回路。
【請求項２】
前記デジタル電子回路は前記局所同期回路モジュールの制御下に前記遅延回路の出力と入力との間のカップリングを別ルートで行う別ルート化回路を具備し、前記別ルート化回路は、遅延線に局所クロック発振を自主的に発生させる局所経路と、前記さらなる回路により同期されたハンドシェイク回路を通して、前記遅延線に前記ハンドシェイク信号の少なくとも一部を通過させるハンドシェイク経路との間のカップリングを別ルートで行う、請求項１に記載のデジタル電子回路。
【請求項３】
前記さらなる回路が、一時的に重複された情報交換トランザクションを使用して動作するように配置され、前記局所経路は、前記遅延回路の出力から入力への信号遷移フィードバックを不能とする不能化入力を有し、前記不能化入力は、前記さらなる回路が最後の前の情報交換トランザクションの最終部を完了するまで、フィードバックを不能とする前記さらなる回路の出力にカップリングされる、請求項２に記載のデジタル電子回路。
【請求項４】
前記最後の前の情報交換トランザクションの最終部が完了する前に、前記さらなる回路による前記局所経路を介しての前記カップリングの不能化を取消す可能化回路を具備し、前記取消しは、前記局所同期回路モジュールからの命令信号の制御の下で選ばれる、請求項３に記載のデジタル電子回路。
【請求項５】
前記さらなる回路は、それぞれハンドシェイクインタフェースを有する複数のユニットを備え、前記別ルート化回路は、前記ハンドシェイクインタフェースの選ばれた１つを介して前記カップリングを別ルートで行い、前記ハンドシェイクインタフェースの前記の選ばれた１つは、前記局所同期回路モジュールの制御の下で選ばれる、請求項２に記載のデジタル電子回路。
【請求項６】
前記さらなる回路は、前記局所同期回路モジュールにカップリングされたアドレスおよびデータインタフェースを有するメモリを備え、前記記憶要素と前記さらなる回路との間の情報転送は、アドレスとデータの転送とを含み、前記別ルート化回路は、前記局所同期回路モジュールが前記メモリにアクセスする時前記ハンドシェイク経路を通って、その後前記局所経路通って前記カップリングを行う、請求項２に記載のデジタル電子回路。
【請求項７】
前記さらなる回路は、前記局所同期回路モジュールにカップリングされたアドレスおよびデータインタフェースを有するメモリを備え、前記メモリは、データが利用可能であり同時にメモリが次のアドレスを受信する準備ができていることを示すレディー信号を生成するように配置され、前記ハンドシェイク経路は、活性状態にある時、前記レディー信号を前記メモリの要求入力に供給し、前記不能化入力は、前記レディー信号がデータ利用可能を示すまで前記局所経路を不能とするように配置される、請求項３に記載のデジタル電子回路。
【請求項８】
前記局所同期回路モジュールは、複数の局所同期回路モジュールの１つであり、各局所同期回路モジュールは、そのクロック入力にカップリングされたそれ自体のハンドシェイク回路およびそれ自体の遅延回路を有し、前記デジタル電子回路は、前記局所同期回路モジュールと前記ハンドシェイク回路との間にカップリングされたアービタおよびマルチプレクサおよび／またはデマルチプレクサを具備し、前記アービタは、前記マルチプレクサおよび／または前記デマルチプレクサを介しての前記局所同期回路モジュールからの情報交換を伴って、前記局所同期回路モジュールのうちの異なるモジュールからのハンドシェイクトランザクションが進行する順序を仲裁するものである、請求項１に記載のデジタル電子回路。
【請求項９】
前記さらなる回路は、アドレスと重複して読み出しデータを転送するメモリであり、前記デジタル電子回路は、各局所同期回路モジュール用の交換モジュールを具備し、前記交換モジュールは、メモリがあたかも他のどの局所同期回路モジュールと共有されていないように見えるように設計される、請求項８に記載のデジタル電子回路。
【請求項１０】
クロック入力および記憶要素を有する局所同期回路モジュールであって、前記クロック入力は、前記局所同期回路モジュール内の前記記憶要素間で転送される情報の記憶を時間設定する局所同期回路モジュールと、
前記クロック入力にカップリングされた入力および出力を有する遅延回路であって、前記記憶要素間での情報転送に必要な時間間隔と少なくとも同じ大きさの遅延を提供する遅延回路と、
さらなる回路を接続するコネクションと、
前記記憶要素と前記さらなる回路のコネクションとの間における情報転送を時間設定するハンドシェイク信号を生成するハンドシェイク回路であって、前記遅延回路を備え、これによりハンドシェイクトランザクション中のハンドシェイク信号の少なくとも一部が、前記遅延回路を通して走行することにより時間設定され、且つ前記クロック入力に付与されて前記局所同期回路モジュールをクロッキングするハンドシェイク回路と、
を備えたシステムコンポーネント。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、１つ以上の局所同期回路モジュールを有するデジタル電子回路に関する。
【背景技術】
【０００２】
「Ｐｒａｃｔｉｃａｌ  Ｄｅｓｉｇｎ  ｏｆ  Ｇｌｏｂａｌｌｙ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｌｏｃａｌｌｙ  Ｓｙｎｃｈｒｏｎｏｕｕｓ  Ｓｙｓｔｅｍｓ」（全体的に非同期であり局所的に同期のシステムの実用的設計）」の題名で、２０００年４月５２〜５９頁の非同期回路およびシステムにおける先端研究に関する国際シンポジウムの議事録に発表されたＪ．  Ｍｕｔｔｅｒｓｂａｃｈ、Ｔ．  ＶｉｌｌｉｇｅｒおよびＷ．  Ｆｉｃｈｔｎｅｒによる出版物から、多数の局所同期回路モジュール間で通信を行うことは公知である。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
最近の回路は、すべて異なるレジスタ間（多分一連の論理回路を介して）の内部データ移送が単一の中央クロック信号または複数の同期クロック信号によって時間設定されている同期回路である。様々な理由のため、そのような複数の同期回路モジュールを有するアーキテクチャに切り替えることが望ましく、前記同期回路モジュールの各々はそれ自身のクロック信号の制御下で動作するものであり、前記の異なる回路のクロック信号は相互に非同期である。従って、各回路モジュールは局所同期であるが、前記の異なるモジュールは相互に非同期に動作する。
【０００４】
局所同期モジュールを有するそのような回路においては、異なるモジュール間で情報を交換しなければならない時に問題が発生する。異なるモジュールのクロック信号は同期化されないため、異なるモジュールはさらなる方策なしに接続することができない。モジュールが情報を読みとるためにこの情報が一定でなければならない時、情報を出力する他のモジュールがその情報を変化させないことを保証するためには、インタフェース回路を備えることが必要である。
【０００５】
Ｍｕｔｔｅｒｓｂａｃｈ等による論文は、一時停止可能なクロックによってインタフェース回路を実現する回路を開示している。情報を第１および第２のモジュール間で交換する必要がある時、これらモジュールのクロックは一時的に停止される。クロックが停止されている間、従来の非同期ハンドシェイクが用いられて情報を転送する。この非同期ハンドシェイクは２つの信号、即ち情報が利用可能である時を示す第１モジュールから第２モジュールへの要求信号と、情報が受信された時を示す第２モジュールから第１モジュールに戻される認知信号を使用する。
【０００６】
Ｍｕｔｔｅｒｓｂａｃｈ等の一時停止可能なクロック回路は各々アービタ（相互排他素子）と反転遅延線とを備えており、この反転遅延線の出力はアービタを介してその入力にカップリングされる。この遅延線の出力からその入力へフィードバックがあると、クロックパルスが発生する。遅延線の入力信号は、クロック信号として局所同期回路に供給される。一時停止可能なクロック回路によって、クロック信号の活性部分（クロックがハイである間のクロックパルス）が常に同じ長さを有することが保証される。非活性部分（クロックがロー）は、クロックが一時停止される時、延長することができる。クロックのグリッチ（各クロック遷移間のより短い時間）が防止される。アービタによって、クロック信号が受動（ロー）である時、ハンドシェイク信号は単に交換されるだけであることが保証される。しかしながら、アービタは、準安定性の場合にそれが予測できない遅延を引き起こすという欠点を有する。準安定性は、アービタの各入力部における各遷移がほぼ同時に発生する時に起こる。この場合、これら信号の１つが通過する前に、長い時間がかかることになる。
【０００７】
Ｍｕｔｔｅｒｓｂａｃｈ等の回路は、情報を交換する各モジュール間にその情報を一時的に記憶するためのレジスタを必要とする。これは、クロックが非活性である間にハンドシェイクが実行され、そのためモジュール自体がハンドシェイク中にデータを変更あるいは受信できないからである。前記レジスタによって、回路中に回路オーバヘッドが発生し、それが回路の応答時間を遅らせる。
【０００８】
特に、本発明の目的は、局所同期回路モジュールとさらなる回路との間のデータの交換中に、局所同期回路モジュールへのクロック入力を非活性にする必要のない局所同期回路モジュールを提供することである。
【０００９】
特に、本発明の他の目的は、各モジュール間の情報交換中にレジスタを必要としない局所同期モジュールを有する回路を提供することである。
【００１０】
特に、本発明の他の目的は、準安定性の問題を受ける回路の使用を最小限にとどめる局所同期モジュールを有する回路を提供することである。
【課題を解決するための手段】
【００１１】
本発明による回路はクレーム１に記載されている。本発明によれば、発振器回路内の遅延線が各局所同期モジュール間の情報交換中に回路の活性部分を保持する。情報交換中、遅延線の出力からその入力までのカップリングは別ルートで行われ、前記遅延線は、局所同期モジュール用のクロック信号としても作動するハンドシェイク信号の生成に参画する。
【００１２】
本発明による回路の実施例おいて、遅延線の出力とその入力との間のカップリングは局所経路を通って行われ、このため局所同期回路モジュールがさらなる回路と情報を交換する必要がない限り、クロック信号は自主的に生成される。情報を交換しなければならない時、カップリングが別ルートで行われ、ハンドシェイク回路を生成する。従って、情報の交換が必要でない時、局所同期回路モジュールは、最大速度で動作可能となる。
【００１３】
さらなる実施例において、一時的に重複した情報交換トランザクションを使用し、例えば連続的に命令を送り、次の命令送信中に各命令に対する応答を返信することにより、情報交換が行われる。最後の命令が送られると、次の命令送信が行われない間に応答を受信する必要があることから、異なる動作が発生する。この実施例において、最後の命令が送られると、遅延線の出力とその入力との間のカップリングは局所経路を通って別ルートで行われるが、最後の応答が受信されるまで、その局所経路は不能となる。従って、情報交換が適切に時間設定され、新しい命令タイミングの発動が回避される。このことは、次のアドレスが付与される時に１つのアドレスのデータが返信されるメモリからのデータの読取りに有利である。この実施例によれば、データ受信のためのハンドシェイクインタフェースにより、次のメモリサイクルを開始する必要はない。
【００１４】
さらなる実施例においては、命令依存の不能状態を取消することが可能である。従って、何ら応答が必要でない場合、クロックは、応答を待つことなく直ちに最大速度で動作可能となる。例えば、メモリアクセスの場合、このようにしてクロックは、書込み動作後直ちに高速に動作でき、メモリからデータの返信が必要ある時は、読取り動作後遅延可能となる。
【００１５】
別の実施例において、複数のさらなる回路が提供され、これら回路はお互い非同期的に動作することができる。この場合のために、デマルチプレクサが提供され、これにより複数のカップリングからの選択が可能となり、遅延線の出力からその入力までをカップリングする。これらカップリングの異なるカップリングにより、さらなる各回路の異なる回路とのハンドシェイクが生成される。
【００１６】
別の実施例において、さらなる回路へのアクセスを共有する複数の局所同期回路モジュールが提供される。この場合、さらなる回路からのハンドシェイクは、局所同期回路モジュールのどのものとも交換することができる。アービタが使用され、ハンドシェイクがどの局所同期回路モジュールに到達するのかを仲裁する。従って、多数の局所同期回路モジュールが、さらなる回路へのアクセスを共有することができる。１つの実施例において、局所同期モジュールは、局所的にあるいはアービタと同期して遅延線の出力と入力との間のカップリングを別ルートで行うことができる。従って、局所同期モジュールは、メモリにアクセスする必要がない時最大速度で動作可能となり、メモリにアクセスする時そのクロック信号が最少量遅延される。さらに他の実施例においては、さらなる回路がメモリであり且つ交換モジュールが含まれ、メモリの前のアービタがあたかも非共有メモリであるかのように見えるようになる。従って、複数の局所同期回路モジュール、単一の局所同期回路モジュールは、同じメモリを共有することから最小量遅延される。１つの実施例においては、書込み動作が共有メモリからのデータ返信を待つ必要はない。
【００１７】
当然のことながら、局所同期回路モジュールは、その遅延線およびハンドシェイクインタフェースを有する集積回路内に組み込んでもよい。局所同期回路モジュールが通信を行うさらなる回路は、同じ集積回路内に含まれてもよく、あるいは局所同期回路モジュールを有する集積回路に接続可能な別の集積回路内に設けられてもよい。
【００１８】
本発明による回路の前記および他の有利な点は、添付図面を用いてさらに詳細に説明されるであろう。
【発明を実施するための最良の形態】
【００１９】
図１は、第１回路１０、第２回路１２、ハンドシェイクインタフェース回路１４および情報交換用インタフェース１６を有する回路を示す。第１回路１０は局所同期回路モジュール１００とクロック回路１０２を備えている。局所同期回路モジュール１００は、複数のレジスタ１０８および論理および／または演算回路１０９を備えている。レジスタ１０８の出力は、論理および／または演算回路１０９を介しレジスタ１０８の入力にカップリングされる。この接続により、１つ以上のレジスタ１０８の出力が直接または間接にその入力にフィードバックされるパイプラインおよび／またはループの連続的段階で各レジスタ１０８のうちの異なるレジスタを連続的に含むパイプラインが形成できる。
【００２０】
クロック回路１０２は、レジスタ１０８をクロッキングするクロック入力１０６にカップリングされる。クロック回路１０２は、反転遅延線１０４（例えば奇数の数のインバータのカスケイドとして実施）を備えている。遅延線１０４の入力はクロック入力１０６にカップリングされる。
【００２１】
局所同期回路モジュール１００からのレジスタ１０８は、情報交換用インタフェース１６を介し第２回路１２にカップリングされる（必要であれば、カップリング内に一連の論理回路を含んでよい）。第１回路１０の反転遅延線１０４の入力および出力は、ハンドシェイクインタフェースを介し第２回路１２にカップリングされる。
【００２２】
動作において、局所同期回路モジュール１００は、従来の同期回路として設計される。即ち、動作中、直接あるいは論理および／または演算回路１０９による中間処理後、レジスタ１０８からデータ出力をロードするように、複数のレジスタ１０８が共通のクロック入力１０６を介してクロッキングされる。原則的には、データがレジスタ１０８から平行に出て同レジスタ１０８に戻る多数の異なる経路が形成される。各経路には、レジスタ１０８からのデータを同レジスタ１０８に戻すため、異なる時間間隔が必要となることがある。レジスタ１０８のクロッキングが可能となるクロック期間は、どのデータでもレジスタ１０８から出て同レジスタに戻るのに要する最大時間間隔と、レジスタ１０８がデータを設定しロードするのに要する時間とに対応する最小許容期間を超えるべきである。遅延線１０４は、この最小許容継続期間に対応する遅延を発生させる。従って、遅延線１０４の入力が、その出力にカップリングされると、遅延線は、必要なクロック期間を有するクロック発振を発生させる。
【００２３】
クロック回路１０２のクロック発振を第２回路１２からのハンドシェイクと同期させるように、遅延線１０４はハンドシェイクインタフェース１４にカップリングされる。これにより、第２回路１２とのデータ交換が可能となる。反転遅延線１０４の出力における立ち上がり信号端は、データ転送用の要求Ｃｒｅｑとして扱われ且つ第２回路１２に送られる。例えば、第１回路１０から第２回路１２へのデータ転送中、転送されるデータは、レジスタ１０８によって出力され、第１回路１０と第２回路１２との間の情報交換インタフェース１６上で安定する。第２回路１２がその要求の受信を示す時（例えば、データが第２回路にロードされる時）、認識信号Ｃａｃｋが、第２回路１２から遅延線１０４の入力に送られ、遅延線１０４により遅延後にＣｒｅｑ信号が戻される。Ｃｒｅｑ信号の立ち下がりは、第１回路１０がインタフェースからデータを取り除いたことを第２回路１２に対して示している。次に、新しいデータがインタフェース１６に搭載されることを第２回路１２が示すと、認識信号Ｃａｃｋが下がり、遅延線１０４により遅延等の後Ｃｒｅｑ信号が戻される。従って、遅延線１０４は、局所同期回路１００に対するクロックとして作動し、同時に第２回路１２へのハンドシェイクインタフェースとして作動する。
【００２４】
前記メカニズムは第１回路１０から第２回路１２へのデータ転送の観点から述べられたが、前記メカニズムは第２回路１２から第１回路１０へのデータ転送にも適用されることが理解されよう。
【００２５】
図２は、マルチポートハンドシェイクインタフェース２０にカップリングされた局所同期回路１００およびクロック回路１０２を有する第１回路１０を示す。局所同期回路モジュール１００は、マルチポートハンドシェイクインタフェース２０にカップリングされたセレクト出力Ｓｅｌを有する。マルチポートハンドシェイクインタフェース２０はハンドシェイクデマルチプレクサ２２を含み、このハンドシェイクデマルチプレクサ２２は、局所同期回路モジュール１００のＳｅｌ出力にカップリングされた制御入力と、第１ポート並びに複数の第２ポート２４ａ〜ｃ、２６とを有する。第１のポートは、遅延線１０４の入力および出力にカップリングされる。多数の第２ポート２４ａ〜ｃが各ハンドシェイクインタフェース１４にカップリングされ、ハンドシェイクインタフェース１４は順次第２回路のようなハンドシェイクインタフェーシングが可能な様々なさらなる回路（図示せず）にカップリングされる。第２ポート２６のうちの１つは、お互いにカップリングされた要求出力と認識入力を有する。
【００２６】
動作において、デマルチプレクサ２２は、第２ポート２４ａ〜ｃ、２６のうちの選ばれた１つを介して遅延線１０４の出力からその入力までのカップリングを提供するように機能する。即ち、デマルチプレクサ２２は、第１ポートから第２ポート２４ａ〜ｃ、２６のうちの選ばれた１つへの信号のルートを決定する。第２ポート２４ａ〜ｃ、２６は、制御入力ｓｅｌの制御の下で選ばれる。局所同期回路１００が局所同期しない他の回路と情報交換を行う必要のない時、遅延線１０４の入力と出力との間の接続のルートが、ポートの要求出力と認識入力とを直接接続するポート２６によって決定される。従って、発振器回路１０２が、局所同期回路モジュール１００が動作可能な最大可能クロック周波数で基本的にリング発振器として発振される。
【００２７】
局所同期回路モジュール１００は、インタフェース１６を介し通信を行う必要がある時、デマルチプレクサ２２が情報を通信すべき回路（図示せず）に応じて選択された別の１つのポートを介して遅延線１０４の入力と出力との間でカップリングが行われる別のルートを決定するように指示する。この場合、遅延線１０４の出力信号は、関連ポートへのハンドシェイクインタフェース１４を介して遅延線の入力信号となる。従って、局所同期回路１００に印加されたクロック信号の期間が通常減少し、情報交換の速度に適応するようになる。
【００２８】
図３は、２つの第２ポートを有するデマルチプレクサの実施をより詳細に示す。デマルチプレクサは、第１および第２ラッチ３０、３２、第１および第２ＡＮＤゲート３４、３６、およびＯＲゲート３８を含む。プロセッサ１０の遅延線１０４のＣｒｅｑ出力は、ラッチ３０、３２のクロック入力に、且つＡＮＤゲート３４、３６の第１入力にカップリングされる。プロセッサ１０の同期モジュール１００のｓｅｌ出力は、それぞれ反転および非反転入力を介してラッチ３０、３２のデータ入力にカップリングされる。ラッチ３０、３２のデータ出力は、デマルチプレクサ１４０の第２ポートの出力（Ｒｅｑ１、Ｒｅｑ２）にカップリングされる。ラッチ３０、３２は、Ｃｒｅｑがローである時ｓｅｌ信号（またはその反転）を通過し、Ｃｒｅｑがハイである時ｓｅｌ（またはその反転）の最後の値を保持するトランスペアレントなロータイプである。第２ポートの入力Ａｃｋ１、Ａｃｋ２はＯＲゲート３８の入力にカップリングされる。ＯＲゲート３８の出力は、遅延線の入力Ｃａｃｋ、プロセッサ１０の入力Ｃｒｅｑおよび同期モジュール１００のクロック入力にカップリングされる。より多数のポートが必要な場合、対応する多数のラッチ３０、３２を設けてもよいことが理解されるであろう。前記各ラッチは各ポートの各ｓｅｌ信号をラッチするものである。各ｓｅｌ信号は、第１回路１０からのマルチラインｓｅｌ出力、例えば各ポートのラインを使用することにより得られる。
【００２９】
動作において、Ｃｒｅｑがハイである時、局所同期回路モジュールは制御信号ｓｅｌの論理レベルを変更する。その結果、一旦Ｃｒｅｑがローになると、新しいｓｅｌ値がＡＮＤゲート３４、３６に送られる。その後、ＡＮＤゲート３４、３６の一方が、対応する出力ＣＲｅｑ１、ＣＲｅｑ２にＣｒｅｑ信号を送り、他方のＡＮＤゲートがＣｒｅｑ信号を妨げ、その出力Ｃｒｅｑ１、Ｃｒｅｑ２をローに維持する。認識入力Ａｃｋ１、Ａｃｋ２のいずれかにおけるローからハイへの移行は第１ポートの認識出力Ｃａｃｋに送られる。
【００３０】
図４は、局所同期回路モジュール１００が、メモリ１２と通信するプロセッサ１０の一部である回路を示す。単一メモリ４２が示されているが、実際には、メモリ４２は、お互い同期して作動する多数のメモリを含んでもよいし、および／またはメモリ４２はキャッシュ構造を含んでもよい。図４の回路は、図２に示したような回路の具体的応用である。また、ハンドシェイクインタフェース内で特別な手段が取られることで、従来のメモリおよびプロセッサ設計の利用が可能となる。このような設計により、１クロックサイクルでメモリにアドレスが付与され、結果としてのデータがあとで返却され、一方で同時に次のアドレスがメモリに付与されるパイプラン化読み出し操作が提供される。
【００３１】
図４の回路は、メモリ４２、ハンドシェイクインタフェース４４を含む。メモリ４２は、プロセッサ１０にカップリングされたアクセス／データのデータインタフェースを有する（インタフェースのアクセス部が、アドレスと、読み出し・書き込み制御信号等の任意のさらなる信号との転送を提供する）。メモリ４２は、ハンドシェイクインタフェース４４を介してメモリ要求入力Ｍｒｅｑにフィードバックされたメモリレディー出力“Ｒｅａｄｙ”を有する。ハンドシェイクインタフェース４４は、ハンドシェイクデマルチプレクサ４４０、ミュラーＣ要素４４２、ＡＮＤゲート４４４を含む。既知のミュラーＣ要素は、その両入力信号が論理１、または低論理である場合論理１、または論理０を出力し、入力信号が異なる場合その以前の出力信号値を保持するように設計される。
【００３２】
デマルチプレクサ４４０は、プロセッサ１０の発振器の遅延回路１０４の入力Ｃａｃｋ、出力Ｃｒｅｑにカップリングされた第１ポートを有する。デマルチプレクサは、それぞれが入力（Ａａｃｋ、Ｓａｃｋ）および出力（Ｓｒｅｑ、Ｓａｃｋ）を有する第２ポートＡ（アクセスポート）、第３ポートＳ（スキップポート）を有する。デマルチプレクサ４４０は、プロセッサ１０の同期回路１００により供給された制御入力ｓｅｌを有する。
【００３３】
動作において、プロセッサ１０は２つの動作モードを有する。第１のモードはメモリ１２がアクセスされないモードであり、第２のモードはメモリ１２がアクセスされるモードである。第１のモードにおいては、同期モジュール１００が制御信号ｓｅｌを出力して、デマルチプレクサ４４０に第１ポート（Ｃｒｅｑ、Ｃａｃｋ）および第３ポートＡ（Ｓｒｅｑ、Ｓａｃｋ）をカップリングするように命令する。従って、遅延線１０４の出力Ｃｒｅｑおよび入力ＣａｃｋはＡＮＤゲート４４４を介してカップリングされる。通常、メモリ１２からのレディー信号がハイであるため、ＡＮＤゲート１４４は、単にＣｒｅｑからＣａｃｋに信号を送るだけである。その結果、ＣｒｅｑとＣａｃｋが交互に高論理、低論理となる発振が発生し、同期モジュール１００のクロック信号が生成される。遅延線１０４の遅延は、遅延線１０４、デマルチプレクサ４４０、ＡＮＤゲート４４４のカスケイドによる総遅延が、少なくとも局所同期回路モジュール１００内のレジスタ間でデータを受け渡しするのに要するどの遅延時間とも同じくらい長いクロック期間になるよう設計される。
【００３４】
局所同期回路モジュール１００が、メモル１２にアクセスしなければならない時、インタフェース回路４４に、遅延線１０４の出力Ｃｒｅｑからその入力Ｃａｃｋまでのカップリングを別ルートで行わせる。ＡＮＤゲート４４４を通過する代わり、このカップリングは、ミュラーＣ要素を通過することになる。その結果、共通の発振器回路が存在することになり、この回路によりプロセッサ１０、メモル１２の両方に１つ以上のクロックパルスが生成され、プロセッサ１０とメモリ１２との間のアドレス、データ等の情報転送時間が設定される。メモリ読み出し動作の場合、同期モジュール１００が、アドレスおよびその後のデータ交換中、ミュラーＣ要素１４２を通してこのカップリングを保つ。書込み動作では、アドレスとデータ情報の同時交換中のみ、そのカップリングを保持するだけでよい。
【００３５】
図５は、メモリアクセス中に生成された信号をより詳細に示す。まず、メモリ読み出し動作中、最初に第１モードにおいて、デマルチプレクサ４４０の第２ポートＡの出力Ａｒｅｑは低論理である。メモリアクセスの開始で、同期モジュール１００が、アクセス／データインタフェースを介しメモリ４２にアドレス（任意的にデータも）を付与し、Ｃｒｅｑがハイである時、制御信号ｓｅｌの論理レベルに同時に変化５０を生じさせる。その結果、Ｃｒｅｑがローになると、新しいｓｅｌ値がＡＮＤゲート３４、３６に送られる。その後、ｓｅｌがこの値を保持する限り、Ｓｒｅｑはローのまま維持される。
【００３６】
次のＣｒｅｑのローからハイへの遷移５２が、デマルチプレクサ１４０の出力Ａｒｅｑに送られる。“rｅａｄｙ”がハイため、このことがＭｒｅｑ、Ａａｃｋ（Ｍｒｅｑとして集合的に図示）およびＣａｃｋでローからハイへの遷移５４を導く。この遷移５４で、同期モジュール１００では次のクロックサイクルが開始され、メモリ４２に対しては、アドレス、任意的にデータも含むアクセス情報が利用可能であり、この情報を使用するメモリ操作が必要であることが示される。このクロックサイクルにおいて、同期モジュール１００はｓｅｌを再び戻して、Ｃｒｅｑデマルチプレクサ４４０の次の端でクロック発振器のフィードバック部を別ルートに変更し、それによりＣｒｅｑのその後の遷移がＡＮＤゲート４４４を介して行われる。
【００３７】
メモリ４２は、“ｒｅａｄｙ”をローにすることによりＭｒｅｑ上の立ち上がり端に応答して、プロセッサ１０からの情報を受信したことを示す。遅延回路１０４を反転して遅延を決定した後、Ｃａｃｋ上の立ち上がり端５４が、ＣｒｅｑおよびＡｒｅｑ上の立り下り端５６につながる。ＲｅａｄｙおよびＡａｃｋがローである時、ミュラーＣ要素４４２はＭＲｅｑ、ＡａｃｋおよびＣａｃｋをローにして、クロックサイクルの活性部を終了させる。Ｍｒｅｑがローになる時間は、Ａｒｅｑ（Ｃｒｅｑ）およびｒｅａｄｙのうちどちらが遅くローになるか、即ちＭＲｅｑ、ＡａｃｋおよびＣａｃｋがハイである時間間隔が遅延回路１０４によって引き起こされる遅延より長くなるかどうかに依存することが理解されるであろう。
【００３８】
Ｃａｃｋのローの値に応答して、遅延回路１０４により遅延決定後、遅延回路１０４はＣｒｅｑおよびＳｒｅｑ内でローからハイへの遷移５８を引き起こす。読み出しの際にデータが利用可能となると、メモリ４２は“ｒｅａｄｙ”においてローからハイへの遷移５９を引き起こす。通常、この遷移５９までの時間間隔は遅延回路１０４による遅延よりずっと長い。Ｓｒｅｑおよび“ｒｅａｄｙ”の両方がハイである時、ＡＮＤゲート１４４によりＳａｃｋおよびＣａｃｋがハイになる。このことは同期モジュール１００をクロッキングし、メモリ４２からデータをロードする。今や“Ｒｅａｄｙ”がハイであり且つｓｅｌがその元のレベルに戻っているので、同期モジュール１００に生成されたクロック信号の周波数は、もはやメモリ４２によって決定された遅延に依存しなくなる。従って、同期モジュール１００は、次のメモリ読み出し操作が要求されるまで、それ自体の局所クロックパルスを有する高速動作に戻る。
【００３９】
同期モジュール１００が一連の読み出し操作を実行しなければならない時、第１操作の開始時に到達したレベルでｓｅｌを変更しないように維持することができる。従って、“ｒｅａｄｙ”信号のローからハイへの遷移に応答して、次のＭｒｅｑパルスが生成される（メモリ４２がプロセッサ１０より遅いと仮定する場合）。次の各Ｍｒｅｑパルス中、前のアドレスが読み出し操作に含まれていた場合、プロセッサ１０は、前のアドレス用データを受信すると同時に、アクセス／データインタフェースに新しいアドレスを供給する。
【００４０】
最後のアドレス（または単一読み出し操作の場合唯一のアドレス）に応答して受信したデータは、デマルチプレクサ４４０が第３ポートＳを介して反転遅延線１０４の出力と入力との間の信号のルートをすでに定めている時に受信される。ＡＮＤゲート４４４がこのポートＳに取り付けられているので、遅延線１０４の出力Ｃｒｅｑからのローからハイへの遷移は、“ｒｅａｄｙ”信号がハイになった時のみに遅延線１０４の入力Ｃａｃｋに戻される。従って、第３ポートＳを介して走行する第１パルスはデータが利用可能な時のみに送られることが保証される。データが利用可能となるまで遅延を保証するために第２ポートＡは使用されないので、新たなＭｒｅｑパルスが生成されず、このためメモリ４２が次のアドレスを受信するレディー状態に維持される。当然のことながら、多重アクセス操作は、各アクセス操作のためにｓｅｌの論理レベルを前後に変化させることによっても実現可能である。
【００４１】
原則的には、書込み操作のクロックパルスは、読み出し操作と同じ様に生成できる。この場合、プロセッサ１０は、データがメモリ１２に記憶されるまで待ち、記憶が完了するまでプロセッサクロックが遅延される。しかし、実施例では、プロセッサ１０は書き込み完了まで待たず、メモリ１２がいまだデータ記憶の最中では、全速で操作を再開する。
【００４２】
図６は、この種の操作を支援する修正回路を示す。図４に示す構成要素に加え、図６の回路は、追加のＡＮＤゲート６４、読み出しフリップフロップ６２、ＯＲゲート６０を含む。追加のＡＮＤゲート６４は、プロセッサ１０とメモリ１２との間のインタフェースから、ｓｅｌ信号と読み出し・書き込み制御信号を受信する。追加ＡＮＤゲート６４の出力は、読み出しフリップフロップ６２のデータ入力にカップリングされる。読み出しフリップフロップ６２は、Ｃａｃｋの立ち上がり端によりクロッキングされる。読み出しフリップフロップ６２のデータ出力は、メモリ４２からのレディー出力とともにＯＲゲート６０にカップリングされる。ＯＲゲート６０の出力は、Ｓｒｅｑを第３ポートのＡｒｅｑに送るＡＮＤゲート４４４にカップリングされる。
【００４３】
従って、ＡＮＤゲート４４４へのレディー信号の直接カップリングが、読み出し操作がなかった場合にＡＮＤゲート４４４の入力を強化する間接カップリングに代替される。かくて、Ｓｒｅｑ上のローからハイへの遷移（Ｃｒｅｑ上のローからハイへの遷移によって引き起こされる）は、読み出し操作の場合のみ遅延される。書き込み操作の場合、メモリ４２へのアクセス後の第３ポートＳを通過する第１パルスが、第３ポートＳを通過する他のどのパルスとも同じ速さとなる。読み出し操作の場合、この第１パルスは、メモリ４２の準備ができるまで遅延される。
【００４４】
図４および６の説明は、“１つの深い”メモリパイプライン、即ちアドレス用データが、そのアドレス付与後の１サイクルでメモリから搬送されるものと仮定している。当然、もっと深いパイプライン型メモリが使用され、アクセス後により多数のサイクルでデータを搬送してもよい。この場合、パイプライン型データはメモリ４２内に維持される。プロセッサ１０が孤立的に読み出し操作を行う必要がある時、メモリ４２用の十分なサイクル数のために第２ポートＡが選ばれたまま維持して、データを生成しなければならない。同様に、前記説明は、単一サイクル期間のみにアドレスと共にデータが送られると仮定している。１つ以上の連続サイクルが使用される場合、プロセッサは、アドレス付与後にメモリ４２の多数のサイクルのために第２ポートＡが選ばれたまま維持してもよい。
【００４５】
相互に非同期で動作する多数のメモリはメモリ４２と平行して使用してもよい。この場合、プロセッサ１０による要求Ｃｒｅｑの認識は、アクセスされ且つデータを供給する必要のあるメモリにより制御してもよい。例えば、これはメモリの１つに対してマルチプレクサ４４０上のミュラーＣ要素４４２および第２ポートＡをそれぞれに応じてより多く使用することで実現することができる。この場合、追加のＡＮＤゲート６４、読み出しフリップフロップ６２およびＯＲゲート６０が各メモリに設けられている。さらなるＡＮＤゲートが設けられ、このＡＮＤゲートは全てのＯＲゲート６０から出力信号を入力するものである。前記さらなるＡＮＤゲートの出力は、ＡＮＤゲート４４４およびミュラーＣ要素の追加入力に入力され、それにより全てのＯＲゲートが、前の操作が読み出しアクセスでないか、またはアクセスメモリの準備ができているかのいずれかを示す場合のみ、立ち上がりパルスがこれらＣ要素およびＡＮＤゲートから送り出される。
【００４６】
図７は、複数のメモリ７０ａ−ｃを有する実施例を示す。プロセッサ１０は、書き込みデータ、読み出しデータに別個のポート７２、７４を有する。同様に、メモリ７０ａ−ｃも、書き込み、読み出しデータ用に別個のポートを有する。メモリ７０ａ−ｃの読み出しデータポートとプロセッサ１０の読み出しポートとの間に、読み出しデータマルチプレクサが設置される。このマルチプレクサ７６は、アクセスされたメモリからプロセッサ１０に読み出しデータを送る。マルチプレクサ７６は、例えば、異なるメモリの読み出しフリップフロップの出力により制御してもよい。これらフリップフロップが、どのメモリが前のサイクルで読み取られたかを示すからである。しかし、当然のことながら、他の多数のマルチプレクサを制御する方法を使用してもいよい。例えば、代わりに前のサイクルのｓｅｌ信号を記憶する選択レジスタを使い、マルチプレクサを制御してもよい。
【００４７】
前記回路は単に本発明による回路の例であることが理解されるであろう。例えば、本発明から逸脱することなく、回路の一部または全ての信号レベルの使用を反転してもよい。これに関連して、局所同期回路は遅延線の出力でクロッキングしてもよい。遅延線によって振動を引き起こさせるのに必要な反転はハンドシェイク回路に設けてもよい。また、本発明は、実施例で使われた特定種のハンドシェイクプロトコルに限るものでもない。例えば、より多数の、またはより少ない数のハンドシェイクラインを使う他のハンドシェイクプロトコルを使用してもよい。
【００４８】
図示のように、局所同期回路モジュール１０は、メモリでよい第２回路１２と通信する。第２回路は、非同期回路、またはそれ自体局所同期回路でよく、クロック発振器回路の制御下動作し、クロック発信器経路の遅延経路は、ハンドシェイクインタフェースを通り回路モジュール１０と別ルート化される従って、ハンドシェイク中に、共通のクロック発振器回路が形成される。
【００４９】
図８は、それぞれがそれ自体のクロック発振器回路８１ａ−ｃを有する、複数の局所同期回路モジュール８０ａ−ｃを有する回路を示す。局所同期回路モジュール８０ａ−ｃは、全て第２回路の同じポートを介して第２回路８２にアクセスする。各局所同期回路モジュールは、局所同期回路モジュール８０ａ−ｃと第２回路８２との間にそれ自体のハンドシェイクインタフェース８４ａ−ｃを有する。ハンドシェイクインタフェース８４ａ−ｃと第２回路８２との間には、アービタ回路８８が含まれる。局所同期回路モジュール８０ａ−ｃの情報交換インタフェースと第２回路８２との間には、マルチプレクサおよび／またはデマルチプレクサ８６が含まれる。マルチプレクサおよび／またはデマルチプレクサ８６は、アービタ８８により制御される。
【００５０】
動作上、局所同期モジュール８０ａ−ｃは、１つずつ第２回路８２にカップリングされる。この時、そのクロック回路内の遅延線の出力と入力との間のカップリングは、ハンドシェイクインタフェース８４ａ−ｃを介し第２回路８２と別ルートで行われ、且つハンドシェイク信号が遅延線１０４を通って流れる。
【００５１】
各局所同期モジュール８０ａ−ｃは、そのクロック回路における遅延線の出力と入力との間のカップリングを、ハンドシェイクインタフェースを介し第２回路８２と別ルートで行うようにすることができる。アービタ８８は、第２回路８２と該当の局所同期回路モジュール８０ａ−ｃのハンドシェイクインタフェース８４ａ−ｃとの間でハンドシェイク信号を受け渡す。局所同期回路モジュール８０ａ−ｃの別の１つが、先のハンドシェイクが進行中に、第２回路とのさらなるハンドシェイクを開始しようとする場合、アービタ８８は、先のハンドシェイクが完了したときのみ、第２回路８２にさらなるハンドシェイクを送る。これは、例えば、先のハンドシェイクが完了したときのみさらなるハンドシェイクの要求を認識することにより行うようにしてもよい。２つ以上の局所同期回路モジュール８０ａ−ｃが、同時に第２回路にアクセスしようとする時、アービタがこれら回路モジュール８０ａ−ｃの１つを選び、この回路モジュールのハンドシェイクをまず送る。アービタ８８は、マルチプレクサおよび／またはデマルチプレクサ８６に対し、そのハンドシェイクが送られる回路モジュール８０ａ−ｃの情報交換インタフェースに、第２回路８２の情報交換インタフェースを接続させる。非同期ハンドシェイクを送るアービタ回路自体は既知である。
【００５２】
別の実施例において、局所同期回路モジュール８０ａ−ｃの各々１つとマルチプレクサおよび／またはデマルチプレクサ８６との間に、メモリ（例えば、ラッチおよび／またはフリップ・フロップ）を設置してもよい。局所同期回路モジュール８０ａ−ｃと第２回路８２との間で交換される情報は、例えば、該当する局所同期回路モジュール８０ａ―ｃからの要求信号に応答して、ハンドシェイク中に記憶される。これは、第２回路８２が応答する前に、アービタが局所同期回路モジュール８０ａ−ｃからのハンドシェイクを認識できるため有利である。この場合、アービタ８２は、第２回路８２と別個のハンドシェイクを開始して、その別個のハンドシェイクが第２回路８２により答えられる時、メモリからの情報を交換する。
【００５３】
例えば、第２回路８２が、前アドレスの読み出しデータを出力するの同じサイクルでアドレスを入力するメモリである場合、重複情報交換においてより複雑な設計が好ましくは用いられる。
【００５４】
図９は、そのような回路で使用される交換モジュールを示す。交換モジュールは、第１レジスタ９０、第２レジスタ９２、リピータ９４、シーケンサ９６を含む。リピータ９４とシーケンサ９６は、従来の非同期回路構成要素である。基本的に、リピータ９４は、繰り返しハンドシェイクを開始し、そのハンドシェイクが終了すると、別のハンドシェイクを開始すというふうに無限に繰り返す。シーケンサ９６は、リピータ９４から要求信号を受信すると、その左側のポートでハンドシェイクを開始する。シーケンサ９６は、左側のハンドシェイクが認識されると、その右側ポートでハンドシェイクを開始する。右側のハンドシェイクが認識されると、シーケンサ９６は、リピータ９２からのハンドシェイクを認識する。
【００５５】
第１レジスタ９０は、左側ポートからの認識信号に応答して、メモリ用アドレスを記憶する。第２レジスタは、右側ポートからの認識信号に応答して、メモリからの読み出しデータを記憶する。
【００５６】
１つの実施例において、この種の交換モジュールは、一方の各局所同期モジュール９０ａ−ｃのそれぞれと他方のアービタ８８およびマルチプレクサおよび／またはデマルチプレクサ８６との間に含まれる。
【００５７】
交換モジュールにより、メモリ、マルチプレクサおよび／またはデマルチプレクサ８６、アービタ８６の組み合せが、各局所同期回路モジュール９０ａ−ｃには、まるで他の局所同期回路モジュール９０ａ−ｃに共有されないメモリであるかのように見える。交換モジュールは、局所同期回路モジュール８０ａ−ｃからの要求を認識し、第１レジスタ９０に対応するアドレスを記憶し、メモリ９２に向けハンドシェイクを開始する。次のハンドシェイクで、メモリが、そのハンドシェイクを前のハンドシェイクに応答して開始されたものと認識した時のみ、局所同期回路モジュール８０ａ−ｃが認識される。その時、前のアドレスに応答して読み取られたデータが、第２レジスタで利用可能となる。
【００５８】
従って、局所同期モジュール９０ａ−ｃ、図４および／または図６に示すそのハンドシェイクインタフェースの実施例を利用し、局所同期モジュール９０ａ−ｃは、メモリアクセスが必要でない時最大速度で動作可能となり、メモリにアクセスする時そのクロック信号が最小量遅延される。メモリが、局所同期回路モジュール８０ａ−ｃの１つ以上よりずっと速い場合、局所同期回路モジュール８０ａ−ｃは、それらが同じメモリを共有するという事実ではほとんど遅延されない。交換モジュールと局所同期回路モジュールとの間のハンドシェイクは、アービタがアクセス許可を与える前に完了することができるからである。書き込み動作は、次のハンドシェイクとのデータの返却を待つ必要はない。
【００５９】
当然、図４、図６に示すように、局所同期モジュール９０ａ−ｃ、それらのハンドシェイクインタフェースは、多数のポートを有してもよい。この場合、それぞれ多かれ少なかれ共有可能な多数のメモリが、異なるポートを介し平行に接続されてよい。よって、局所同期モジュール９０ａ−ｃ、それらのハンドシェイクインタフェースが異なるメモリにアクセスする時、クロック信号には遅延は発生しない。同様に、ポートのいくつかは、局所同期モジュール９０ａ−ｃ、それらのハンドシェイクインタフェースを相互に接続してもよい。従って、各局所同期回路モジュール９０ａ−ｃ間の通信にメモリは必要ではなく、メモリに起因する遅延は発生しない。
【図面の簡単な説明】
【００６０】
【図１】局所同期モジュールを有する回路を示す。
【図２】別ルート化回路を有する局所同期モジュールを示す。
【図３】ハンドシェイクデマルチプレクサを示す。
【図４】局所同期モジュールとメモリを示す。
【図５】情報交換中生成される信号を示す。
【図６】メモリを有する局所同期モジュールを示す。
【図７】複数のメモリを有する局所同期モジュールを示す。
【図８】共有第２回路を有する複数の回路モジュールを示す。
【図９】交換モジュールを示す。
【図１】
2005515544.tif 000003
【図２】
2005515544.tif 000004
【図３】
2005515544.tif 000005
【図４】
2005515544.tif 000006
【図５】
2005515544.tif 000007
【図６】
2005515544.tif 000008
【図７】
2005515544.tif 000009
【図８】
2005515544.tif 000010
【図９】
2005515544.tif 000011
【国際調査報告】
2005515544.tif 000012
2005515544.tif 000013