(57)【特許請求の範囲】
【請求項１】
通信を開始するイニシエータユニットと、ターゲットユニットとの間でデータを通信する方法であって、前記イニシエータユニットは、通信を開始するように、通信スレッド識別子を有する通信スレッドに関する要求を示し、前記ターゲットユニットは、
―  前記イニシエータユニットが前記要求を保持するべきであることを示す情報を供給するオプションと、
―  前記イニシエータユニットの前記要求が受理されたことを示す情報を供給するオプションと、
―  前記イニシエータユニットの前記要求が拒絶されたことを示す情報を供給するオプションと、
を有する方法。
【請求項２】
前記イニシエータユニットは、該イニシエータユニットが前記要求を示している通信スレッドに対する通信スレッド識別子を示し、前記イニシエータユニットは、前記要求が拒絶された場合、他の通信スレッドに関する通信を開始しようと試みる、請求項１に記載の方法。
【請求項３】
前記ターゲットユニットは、第１信号及び第２信号を供給し、
前記第１信号の第１状態は、前記要求が保持されるべきであることを示し、
前記第１信号の第２状態は、前記第２信号が有効であることを示し、
前記第２信号の第１状態は、前記イニシエータユニットの前記要求が受理されたことを示し、
前記第２信号の第２状態は、前記イニシエータユニットが前記要求を破棄すべきことを示す、請求項１に記載の方法。
【請求項４】
データ生成ユニットが前記イニシエータユニットとして機能する、請求項１に記載の方法。
【請求項５】
データ消費ユニットが前記イニシエータユニットとして機能する、請求項１に記載の方法。
【請求項６】
第１の機能ユニット及び第２の機能ユニットを有する処理システムであって、前記第１の機能ユニットは、前記機能ユニット間で信号を交換する機能を使用して、前記第２の機能ユニットとの通信を開始することができ、前記信号は、通信の開始を要求することを示す前記第１の機能ユニットによる信号と、
―  イニシエータユニットが前記要求を保持しなければならないことを示すオプションと、
―  前記イニシエータユニットの前記要求が受理されたことを示すオプションと、
―  前記イニシエータユニットの前記要求が拒絶されたことを示すオプションと、
を有する信号とを含む、処理システム。
【請求項７】
前記第１の機能ユニットは、該第１の機能ユニットが前記要求を示す通信スレッドに対する通信スレッド識別子を示し、前記第１の機能ユニットは、前記要求が拒絶された場合、他の通信スレッドに関する通信を開始しようとする、請求項６に記載の処理システム。
【請求項８】
前記第１の機能ユニット及び前記第２の機能ユニットはネットワークの一部を形成している、請求項６又は７に記載の処理システム。
【請求項９】
通信を開始するイニシエータユニットと、ターゲットユニットとの間でデータを通信する方法であって、
前記イニシエータユニットは、通信を開始するように、通信スレッド識別子を有する通信スレッドに関する要求を示し、
前記ターゲットユニットは、前記要求が受理されるか又は拒絶されるかを決定し、
前記ターゲットユニットは、前記イニシエータユニットが前記要求を保持すべきかを決定し、
前記ターゲットユニットは、前記イニシエータユニットに、
前記要求が前記イニシエータユニットによって保持されるべきであることを示す情報を供給するオプションと、
前記イニシエータユニットの前記要求が前記ターゲットユニットによって受理されたことを示す情報を供給するオプションと、
前記イニシエータユニットの前記要求が前記ターゲットユニットによって拒絶されたことを示す情報を供給するオプションと、
を有し、
前記データは、前記情報に従って、前記ターゲットユニットから前記イニシエータユニットへ送信され、
前記情報は、第１信号及び第２信号によって提供され、前記第１信号は前記ターゲットユニットがレディかを示し、前記第２信号は前記ターゲットユニットが前記要求を受理するか又は拒絶するかを示し、前記第２信号は、前記第１信号が前記ターゲットユニットはレディではないことを示す場合、前記ターゲットユニットが前記要求を拒絶することを示す値に保持される、方法。
【請求項１０】
第１の機能ユニット及び第２の機能ユニットを有する処理システムであって、前記第１の機能ユニットは、前記機能ユニット間で信号を交換する機能を使用して、前記第２の機能ユニットとの通信を開始することができ、前記信号は、
通信の開始を要求することを示す前記第１の機能ユニットによる要求信号と、
前記第２の機能ユニットによる情報であって、
前記第１の機能ユニットが前記要求を保持しなければならないことを示すオプションと、
前記要求が前記第２の機能ユニットにより受理されたことを示すオプションと、
前記要求が前記第２の機能ユニットにより拒絶されたことを示すオプションと、
を有する情報とを含み、
前記第２の機能ユニットは、前記要求が当該第２の機能ユニットにより受理されるか又は拒絶されるかを決定し、
前記第２の機能ユニットは、前記第１の機能ユニットが前記要求を保持すべきかを決定し、
データは、前記情報に従って、前記第２の機能ユニットから前記第１の機能ユニットへ送信され、
前記情報は、第１信号及び第２信号によって提供され、前記第１信号は前記第２の機能ユニットがレディかを示し、前記第２信号は前記第２の機能ユニットが前記要求を受理するか又は拒絶するかを示し、前記第２信号は、前記第１信号が前記第２の機能ユニットはレディではないことを示す場合、前記第２の機能ユニットが前記要求を拒絶することを示す値に保持される、システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、処理システムに関する。
【０００２】
本発明は、更に、データを通信する方法に関する。
【背景技術】
【０００３】
ＶＣＩ及びＯＣＰのようなモデム・オン・チップの相互接続プロトコルは、複数の関連のないトランザクションが、独立に発生することを可能にする通信スレッド識別子を導入している。各通信スレッド上で、全てのトランザクションは順序化される（即ち、要求はスレーブに供給され、応答は該スレーブによって発行され、応答は、前記要求がマスターによって発行されるのと同じ順序でマスターに供給される）。異なる通信スレッドによるトランザクションは、いかなる順序化の制約も有さない。このことは、関連のない通信が、互いに独立に処理されるのを可能にする。
【０００４】
これらのプロトコルは、トランザクションが、要求及び応答に分割される分割プロトコルと規定されている。ソース機能ユニットから通信経路内の前記第１中間機能ユニットまでの要求の伝送が完了した後、前記ソース機能ユニットは前記宛先機能ユニットからの前記要求に対する応答を待つ必要なく、次の伝送に進むことができる。前記宛先機能ユニット又は何らかの中間機能ユニットは、応答を与える必要がある場合、別個のアービトレーション手順を開始する。分割バスプロトコルは、（例えば、これはパイプライン化されているので）スレーブにおける応答生成に時間が掛かる場合、又は（ネットワークにおいてよく見られるように）前記マスターから前記スレーブへの要求の供給に時間が掛かる場合、より効率的である。更に、前記分割プロトコルによって、パイプライン化が可能になり、即ちマスターが複数の未処理の要求（即ち、応答を待っている要求）を有することが可能になる。前記同じ通信スレッド内の全てのトランザクションは、順序化される。このことは、要求は、これらの応答のための前記要求がマスターによって発行されたのと同じ順序で、前記スレーブによって実行され、応答は、これらの応答に対する要求がマスターによって発行されたのと同じ順序で供給されることを意味する。異なる通信スレッドによるトランザクションは、いかなる順序化の制約も有さない。
【０００５】
米国特許第６，１８２，１８３号公報は、前記ソース機能ユニットから前記宛先機能ユニットまでの通信経路において、２つの後続する機能ユニット間でメッセージを交換するためのリンクレベルプロトコルを提供している。既知のプロトコルによれば、マスター機能ユニットは、命令（Ｃｍｄ）、アドレス（Ａｄｄｒ）又はデータ（ＤａｔａＲｅｑ）のような情報を生成すると同時に、前記情報が属するスレッドの識別子（ＲｅｑＴｈｒｅａｄＩＤ）を供給する。同様に、前記スレーブ機能ユニットは、情報（ＤａｔａＲｅｓｐ）を供給することができ、前記情報が属する通信スレッドを、識別子ＲｅｓｐＴｈｒｅａｄＩＤによって示すことができる。
【０００６】
機能ユニットとは、データストリーム内に含まれているいかなるユニットでも良く、例えば、ＣＰＵ、ＤＳＰ若しくはＶＬＩＷのようなデータに演算を施すユニット、メモリのようなデータを記憶するユニット、又はルータ若しくはインターフェースのようなデータを転送するユニットである。
【０００７】
結局、以下の表記が使用される。イニシエータ機能ユニット又はイニシエータは、ターゲット機能ユニットと称される他の機能ユニットとリンクレベルのトランザクションを開始する機能ユニットである。リンクレベルにおけるＯＳＩ定義によれば、データのパケットは、ビットに符号化及び複合化される。これは、伝送プロトコルの知識及び管理を与え、物理層、フロー制御及びフレーム同期化におけるエラーを取り扱う。ソース機能ユニットは、ネットワークレベルにおいてメッセージ（例えば、宛先機能ユニットと称される他の機能ユニットへのデータ又は命令）を送信する機能ユニットとして表される。ＯＳＩ定義によれば、ネットワーク層が、切り替え及び転送技術を提供し、ノードからノードへデータを伝送する仮想回路と称される論理経路を作成する。転送及び送信は、アドレッシング、インターネットワーキング、エラーの取り扱い、輻輳制御及びパケットの系列化と同様に、この層の機能である。機能ユニットは、状況に依存して、ソース機能ユニット又は宛先機能ユニットとして動作することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明の目的は、既知のプロトコルを改良することにある。これと共に、添付請求項１に規定されている方法及び添付請求項６に規定されている処理システムが提供される。
【課題を解決するための手段】
【０００９】
本発明によれば、特定のスレッドに関するアクションを実行するように、イニシエータ機能ユニットからの要求を受信するターゲット機能ユニットは、前記イニシエータ機能ユニットに：
１．イニシエータユニット（ＩＮＩＴ）は、前記要求を保持しなければならないこと、
２．イニシエータユニット（ＩＮＩＴ）の前記要求が受理されたこと、及び
３．イニシエータユニット（ＩＮＩＴ）の前記要求が拒絶されたこと、
を信号で示すオプション有している。
【００１０】
前記ターゲット機能ユニットがオプション３によって前記要求を拒絶する場合、前記イニシエータは、他の又は同一の通信スレッドに対する新しい要求を発行することが可能になる。これが受理された場合、データ伝送が行われることができる（さもなければ、前記データ伝送は遅延されていたであろう）。このように、全体的なスループットが改善される。
【００１１】
本発明は、以下の理由のために、プロセッサネットワーク内のアプリケーションに特に適している。システム・オン・シリコンは、絶え間なく増加している新しいフィーチャの実施及び既存の機能の改善の必要性のために、複雑性が連続的に増していることを示している。このことは、構成要素が集積回路上に組み込まれることができる集積度を向上することによって、可能にされている。同時に、回路が動作されるクロック速度も増加される傾向にある。向上された集積度の構成要素と組み合わされる高いクロック速度は、同じクロックドメイン内で同期して動作することができる領域を減少してきた。このことは、モジュールの取り組み方の必要性を生じた。前記のような取り組み方によれば、前記処理システムは、複数の相対的に独立な、複雑なモジュールを有する。従来型の処理システムにおいて、前記モジュールは、通常、互いにバスを介して通信する。しかしながら、モジュールの数が増加するほど、通信のこの仕方は、以下の理由のために、もはや実用的ではない。一方で、多数のモジュールは、非常に高いバスの負荷を形成する。他方で、前記バスは、１つのデバイスだけがデータを該バスに送信することができるようにするので、通信のボトルネックを形成する。通信ネットワークは、部分的に接続された複数の機能ユニットを有する。機能ユニットからのメッセージは、該機能ユニットによって１つ以上の他の機能ユニットに再指向される。２つの直接的に接続された機能ユニット間で、複数のソースから生じ、複数の宛先に向かう、異なる通信スレッドに関するメッセージが、伝送されることができる。本発明の方法及び処理システムによれば、前記ターゲット機能ユニットは、前記イニシエータ機能ユニットに、あるスレッドに関する要求が、しばらくの間取り扱われることができないことを通知するための効率的な仕方を有している。このことは、前記イニシエータ機能ユニットが、他の通信スレッドを選択することを可能にする（さもなければ、前記イニシエータ機能ユニットに関するデータ伝送は、無用に遅延されていたであろう）。
【００１２】
ソース機能ユニットによって送信されるメッセージは、命令又はパケット状のデータを含むことができる。前記メッセージは、該メッセージが宛先機能ユニットに到達するまで、１つ以上の中間機能ユニットを介して転送される。前記宛先機能ユニットは、自身の番において、前記ソース機能ユニットにメッセージを送信することもできる。
【発明を実施するための最良の形態】
【００１３】
本発明のこれら及び他の見地は、添付図面を参照して詳細に記載される。
【００１４】
図１は、複数の機能ユニットを接続しているネットワークを有するデータ処理システムを模式的に示している。前記処理システムは、データと該データに関する通信スレッドの識別子とを、分割プロトコルに従って、ソース機能ユニットＳＦＵから宛先機能ユニットＤＦＵまでの１つ以上の中間ユニットＩＦＵ1、…、ＩＦＵ５を介する通信経路（矢印で示されている）に沿って伝送する。前記データを通信スレッド識別子と共に伝送することにより、互いに異なる通信スレッド識別子を有する複数の関連のないトランザクションが、独立に発生することができる。
【００１５】
図２は、従来技術によるネットワーク内の２つの機能ユニットを結合する典型的な仕方を示している。ここで、データ生成機能ユニットＰＦＵは、信号ＴＩＤを活性化させることによって、データ消費機能ユニットＣＦＵに要求を発行する。この信号は、自身がデータを転送しようとしている通信スレッドを示している。転送されるべきデータは、接続ＤＡＴＡにおいて提案される。示された前記通信スレッド及び関連する前記データの有効性は、更なる信号ＶＡＬＩＤによって示されている。前記データ消費機能ユニットは、自身が前記要求を取り扱うとすぐに、このことを信号ＡＣＣＥＰＴＣによって示す。前記データ生成機能ユニットがこの信号を受信するまで、他の伝送は、前記２つの機能ユニットの間で行われることができない。しかしながら、例えば、前記データ消費機能ユニットＣＦＵが、前記スレッドに対して残されているバッファスペースを有していない場合、データ生成機能ユニットＰＦＵの要求は、データ消費機能ユニットＣＦＵによって時間内に取り扱われることができない。このことは、全ての他の通信スレッドに関するこれらの機能ユニット間のデータ伝送も遅延される結果を有する。示されている当該実施例において、前記イニシエータは、特定の通信スレッドに関してデータを送信することができるのみであると仮定する。前記イニシエータは、ＴＩＤ信号によってこれを示すことができる。実際に、前記イニシエータは、複数の命令（例えば、書き込み、読み出し及び条件付書き込み等）を発行することができるものであってもよい。１つ以上の命令信号が、前記イニシエータがこれをするように付加されることができ、又は代替的には、前記命令は他の接続（例えば、ＴＩＤ信号によって使用されている接続）を介して時間多重化され、送信されることができる。単に命令を送信することも可能である。
【００１６】
図３は、本発明によるネットワークの第１実施例における、相互に結合されている第１及び第２機能ユニットを示している。データ伝送は、図２を参照して示されているのと同じ仕方で開始される、即ちデータ生成機能ユニットＰＦＵは、信号ＴＩＤによって通信スレッドを示すことにより、データ消費機能ユニットＣＦＵに要求を発行する。転送されるべきデータは、接続ＤＡＴＡにおいて提案される。示されている通信スレッド及び関連する前記データの有効性は、他の信号ＶＡＬＩＤによって示されている。しかしながら、図２に示されている状況とは対照的に、ターゲット機能ユニット（ここでは、前記データ消費機能ユニット）は、
１．イニシエータ機能ユニットＩＮＩＴに、該イニシエータ機能ユニットは要求を保持しなければならないことを示すオプションと、
２．イニシエータ機能ユニットＩＮＴの要求が受理されたことを示すオプションと、
３．イニシエータ機能ユニットＩＮＩＴの要求が拒絶されたことを示すオプションと、
を有している。
【００１７】
実際に、前記ターゲット機能ユニットは、前記要求を解読し、該要求がこの瞬間に取り扱われることができるか否かを決定するのに、時間を必要とする。この時間の間、前記ターゲット機能ユニットはオプション１に従って指示を供給する。このことは、前記ターゲット機能ユニットに信号ＴＩＤ、ＤＡＴＡ及びＶＡＬＩＤを保持させる。前記ターゲット機能ユニットが前記要求を解釈し、該要求を取り扱うことができると直ちに、前記ターゲット機能ユニットは、オプション２に従って示す。しかしながら、前記ターゲット機能ユニットが、例えば、バッファのオーバーフローが前記通信スレッドに関して生じているために、前記要求がこの時間において取り扱われることができないと決定した場合、前記ターゲット機能ユニットはオプション３に従って信号で示す。このことは、前記イニシエータが前記通信スレッドに対する要求を撤回し、他の通信スレッドに対するトランザクションを開始することを可能にする（さもなければ、前記イニシエータは、先行の要求が取り扱われることができるまで、待たなければならなかったであろう）。このようにして、当該処理システム内の全体的な通信が改善される。
【００１８】
図３の実施例において、１つの付加的な信号が、リンクレベルのデータ交換が進行される又は遅延されることを符号化する。ただ１つの付加的な信号によって、単に進行／遅延のフィードバックが実現可能である。このことは、なぜトランザクションが通信スレッド上で進行することができないのか（空／満杯のバッファ、及び通信スレッド上のデータを期待していない処理がＣＰＵ上で走らされている等のような、複数の原因があり得る場合）、又はトランザクションが通信スレッド上でどれくらい長く進行されることができるか（例えば、少なくともＮ個のトランザクションを通信スレッド上で進行させるのに十分なバッファリング／データがある場合）に関するより入念なフィードバックを符号化することによって一般化されることができる。
【００１９】
特定の通信スレッドに関する要求は、命令、アドレス及び／又は他のデータの送信に関する要求を含むこともできることに留意されたい。代替的には、前記要求は、命令、アドレス及び／又は他のデータの受信に関する要求を含むこともできる。
【００２０】
図４は、本発明によるネットワークの第２実施例における、相互に結合されている第１及び第２機能ユニットを示している。ここで、図３に示されている実施例とは対照的に、データ消費機能ユニットＣＦＵはイニシエータＩＮＩＴの役割をしている。
【００２１】
イニシエータＩＮＩＴとしてのデータ消費機能ユニットＣＦＵは、通信スレッドを信号ＴＩＤで示すことによって、前記ターゲット、即ちここではデータ生成機能ユニットＰＦＵに要求を発行する。示された前記通信スレッド及び関連するデータの有効性は、信号ＶＡＬＩＤによって示される。図３に示した実施例におけるように、前記ターゲット機能ユニットは、
１．イニシエータユニットＩＮＩＴに、該イニシエータユニットは前記要求を保持しなければならないことを示すオプションと、
２．イニシエータユニットＩＮＩＴの前記要求が受理されたことを示すオプションと、
３．イニシエータユニットＩＮＩＴの前記要求が拒絶されたことを示すオプションと、
を有している。
【００２２】
前記要求が取り扱われることができるかどうかを決定するのに必要な時間の間、前記ターゲット機能ユニットは、オプション１に従って応答する。前記ターゲット機能ユニットは、自身が前記要求を短期間で取り扱うことができると決定した場合、オプション２に従って指示子を供給する。しかしながら、前記ターゲット機能ユニットは、例えば、必要とされているデータが直ちに利用可能になると期待されないために、前記要求を短期間で取り扱うことを不可能であると決定した場合、前記ターゲット機能ユニットはオプション３に従って応答する。このことは、やはり、前記イニシエータが前記通信スレッドに対する前記要求を撤回し、他の通信スレッドに対するトランザクションを開始することを可能にする（さもなければ、前記イニシエータは、先行の要求が取り扱われることができるまで、待機しなければならなかったであろう）。このようにして、当該処理システム内の全体的な通信が改善される。
【００２３】
上述の３つのオプションによる指示子は、以下のように、信号ＲＥＡＤＹ及びＡＣＣＥＰＴＰを使用することによって供給されることができる。
【表１】
0004842804.tif 000002
【００２４】
前記ターゲット機能ユニットがレディでない（ＲＥＡＤＹ＝０によって示される）限り、図３に示されている実施例における信号ＡＣＣＥＰＴＰ又は図４の実施例におけるＡＣＣＥＰＴＣの値は、関連がない。しかしながら、好ましくは、信号ＡＣＣＥＰＴＰ又はＡＣＣＥＰＴＣは、拒絶及び受理の間で決定をする準備ができていない限り、拒絶を示す値に保持される。これにより、信号ＲＥＡＤＹを受け取るための入力を有さなくても、前記ターゲット機能ユニットを従来技術のイニシエータ機能ユニットに接続することが可能になる。このようにして、従来型の前記イニシエータ機能ユニットは、正常に動作することができ、即ち、前記要求を評価するターゲット機能ユニットによって待機が行われるかどうかにかかわらず、示された通信スレッドＴＩＤと関連づけられている要求が受理されるまで（又は前記ターゲット機能ユニットは前記瞬間において前記要求を供給することができないので）待機する。明瞭さのために、論理信号の値１及び０は、例えば、レディ若しくはレディでない、又は受理若しくは受理されていないかのように、それぞれ肯定及び否定の結果を示すのに使用された。しかしながら、これらの値が逆の仕方で使用されることもできることは、明らかである。多くの他の代替的なものが、前記の表に記載されているオプションの１つに従って指示子を供給することが可能である。例えば、信号ＲＥＡＤＹ及びＡＣＣＥＰＴＣ、ＡＣＣＥＰＴＰを、１つの物理接続に沿って連続的に供給することによって、指示子を供給することが可能である。
【００２５】
本発明の保護範囲は、本明細書に記載された実施例に限定されるものではないことを特筆する。情報（例えば、通信スレッドに対するデータ、及び通信スレッドに関する情報）は、いくつかの仕方（例えば、直列、並列又は組み合わせの仕方）で、当該処理ユニット間で交換されることができることに留意されたい。
【００２６】
本発明の保護範囲は、添付請求項における符号によって制限されるものでもない。「有する」という語は、請求項に記載されていない他の部分を排除するものではない。単数形の構成要素は、複数のこのような構成要素を排除するものではない。本発明の一部を形成している手段は、専用ハードウェアの形態、又はプログラムされた汎用プロセッサの形態の両方において実施されることができる。本発明は、各新しいフィーチャ又はフィーチャの組み合わせにある。
【図面の簡単な説明】
【００２７】
【図１】ネットワーク内で結合されている複数の機能ユニットを有する処理システムを示している。
【図２】従来技術によるネットワーク内の２つの機能ユニットを結合する典型的な仕方を示している。
【図３】本発明の第１の実施例における互いに結合された第１及び第２機能ユニットを示している。
【図４】本発明の第２の実施例における互いに結合された第１及び第２機能ユニットを示している。
【図１】
0004842804.tif 000003
【図２】
0004842804.tif 000004
【図３】
0004842804.tif 000005
【図４】
0004842804.tif 000006