(57)【要約】【課題】データ処理装置内のマスタ論理ユニットおよびスレーブ論理ユニットを結合してトランザクションを実施できるようにする相互接続論理を得る。【解決手段】各トランザクションはマスタ論理ユニットからスレーブ論理ユニットへのアドレス転送および両者間の１つ以上のデータ転送を含む。相互接続論理はアドレス転送を運ぶアドレスチャネルとデータ転送を運ぶデータチャネルを提供する複数の接続パスを含み、トランザクションを実施できるようにするためにアドレスチャネルとデータチャネルを制御するのに制御論理が使用される。制御論理は多数のアドレス転送間の調停を行うアドレスアービタ論理と、多数のデータ転送間の調停を行うデータアービタ論理を含む。データアービタはアドレスアービタから独立して作動可能であり複数のトランザクションがその対応するアドレス転送に関してアウト・オブ・オーダで生じ得るようにする。【選択図】図３
2006331426.tif 000002
【特許請求の範囲】
【請求項１】
データ処理装置内のマスタ論理ユニットとスレーブ論理ユニットを結合してトランザクションを実施できるようにする相互接続論理であって、各トランザクションはマスタ論理ユニットからスレーブ論理ユニットへのアドレス転送およびそのマスタ論理ユニットとそのスレーブ論理ユニット間の１つ以上のデータ転送を含み、相互接続論理は、
アドレス転送を運ぶための少なくとも１つのアドレスチャネル、前記スレーブ論理ユニットから前記マスタ論理ユニットへのリードトランザクションのデータ転送を運ぶための少なくとも１つのリードデータチャネル、および前記マスタ論理ユニットから前記スレーブ論理ユニットへのライトトランザクションのデータ転送を運ぶための少なくとも１つのライトデータチャネルを提供するように作動可能な複数の接続パスと、
トランザクションを実施できるようにするために前記少なくとも１つのアドレスチャネル、前記少なくとも１つのリードデータチャネルおよび前記少なくとも１つのライトデータチャネルの使用を制御するように作動可能な制御論理と、を含み、
制御論理は、
関連するアドレスチャネルに対しての使用を求める複数のアドレス転送間の調停を行うように作動可能なアドレスアービタ論理と、
関連するリードデータチャネルに対しての使用を求める複数のデータ転送間の調停を行うように作動可能なリードデータアービタ論理と、
関連するライトデータチャネルに対しての使用を求める複数のデータ転送間の調停を行うように作動可能なライトデータアービタ論理と、を含み、
リードデータアービタ論理およびライトデータアービタ論理の各々がアドレスアービタ論理とは独立して作動可能であり、複数のトランザクションの１つ以上のデータ転送がこれら複数のトランザクションの対応するアドレス転送に関してアウト・オブ・オーダで生じ得る、相互接続論理。
【請求項２】
請求項１に記載の相互接続論理であって、制御論理は、さらに、
アドレス転送から引き出された状態情報を格納するように作動可能な状態論理を含み、
リードデータアービタ論理およびライトデータアービタ論理の各々が、関連するデータチャネルの使用を求める複数のデータ転送のいずれが正当な調停目標であるかを決定するために独立して状態情報を参照するように作動可能であり、
リードデータアービタ論理およびライトデータアービタ論理の各々が、複数の正当な調停目標が存在する時に、調停ポリシーを適用して正当な調停目標であるデータ転送の１つに関連するデータチャネルへのアクセスを許可するように独立して作動可能である、相互接続論理。
【請求項３】
請求項２に記載の相互接続論理であって、
各リードトランザクションにはリードトランザクションのソースを識別するソース識別子が関連付けられており、
制御論理は、さらに、各リードトランザクションに対してそのリードトランザクションのアドレス転送からそのリードトランザクションに対する目標スレーブ論理ユニットを決定するように作動可能なアドレスデコーダを含み、
状態論理は各保留リードトランザクションに対する状態情報を格納するように作動可能であり、各保留リードトランザクションに対する状態情報はソース識別子の表示およびその保留リードトランザクションに対する目標スレーブ論理ユニットを含む、相互接続論理。
【請求項４】
請求項３に記載の相互接続論理であって、リードデータアービタ論理により適用される調停ポリシーは関連するリードトランザクションのソース識別子および／または目標スレーブ論理ユニットに基づいて正当な調停目標であるデータ転送を順位付けするように作動可能である相互接続論理。
【請求項５】
請求項２に記載の相互接続論理であって、
各ライトトランザクションには当該ライトトランザクションを開始するマスタ論理ユニットを識別するマスタ識別子が関連付けられており、状態論理は各保留ライトトランザクションに対する状態情報を格納するように作動可能であり、各保留ライトトランザクションに対する状態情報は少なくともマスタ識別子の表示を含む相互接続論理。
【請求項６】
請求項５に記載の相互接続論理であって、
制御論理は、さらに、各ライトトランザクションに対してそのライトトランザクションのアドレス転送からそのライトトランザクションに対する目標スレーブ論理ユニットを決定するように作動可能なアドレスデコーダを含み、各保留ライトトランザクションに対する状態情報は、さらに、そのライトトランザクションに対する目標スレーブ論理ユニットの表示を含む、相互接続論理。
【請求項７】
請求項６に記載の相互接続論理であって、ライトデータアービタ論理により適用される調停ポリシーは関連するライトトランザクションのマスタ識別子および／または目標スレーブ論理ユニットに基づいて正当な調停目標であるデータ転送を順位付けするように作動可能である相互接続論理。
【請求項８】
請求項７に記載の相互接続論理であって、各ライトトランザクションにはライトトランザクションのソースを識別するソース識別子が関連付けられており、ライトデータアービタ論理により適用される調停ポリシーは関連するライトトランザクションのマスタ識別子および／または目標スレーブ論理ユニットおよび／またはソース識別子に基づいて正当な調停目標であるデータ転送を順位付けするように作動可能である相互接続論理。
【請求項９】
請求項１に記載の相互接続論理であって、複数の接続パスは単一層相互接続構造を形成し、リードデータチャネルに対して単一リードデータアービタ論理が設けられる相互接続論理。
【請求項１０】
請求項９に記載の相互接続論理であって、ライトデータチャネルに対して単一ライトデータアービタ論理が設けられる相互接続論理。
【請求項１１】
請求項１に記載の相互接続論理であって、複数の接続パスは多層相互接続構造を形成し、リードデータチャネルに接続された各マスタ論理ユニットに対して個別のリードデータアービタ論理が設けられる相互接続論理。
【請求項１２】
請求項１１に記載の相互接続論理であって、ライトデータチャネルに接続された各スレーブ論理ユニットに対して個別のライトデータアービタ論理が設けられる相互接続論理。
【請求項１３】
請求項１に記載の相互接続論理であって、さらに、各ライトトランザクションに対して、スレーブ論理ユニットからそのライトトランザクション内に含まれるマスタ論理ユニットへトランザクション状態情報を運ぶように作動可能であるライト応答チャネルを含む相互接続論理。
【請求項１４】
複数のマスタ論理ユニットおよびスレーブ論理ユニットと、
マスタ論理ユニットおよびスレーブ論理ユニットを結合してトランザクションを実施できるようにする請求項１に記載の相互接続論理と、
を含むデータ処理装置。
【請求項１５】
データ処理装置内のマスタ論理手段とスレーブ論理手段を結合してトランザクションを実施できるようにする相互接続論理であって、各トランザクションはマスタ論理手段からスレーブ論理手段へのアドレス転送およびそのマスタ論理手段とそのスレーブ論理手段間の１つ以上のデータ転送を含み、相互接続論理は、
アドレス転送を運ぶための少なくとも１つのアドレスチャネル手段、前記スレーブ論理手段から前記マスタ論理手段へのリードトランザクションのデータ転送を運ぶための少なくとも１つのリードデータチャネル手段、および前記マスタ論理手段から前記スレーブ論理手段へのライトトランザクションのデータ転送を運ぶための少なくとも１つのライトデータチャネル手段を提供する複数の接続パス手段と、
トランザクションを実施できるようにするために前記少なくとも１つのアドレスチャネル手段、前記少なくとも１つのリードデータチャネル手段および前記少なくとも１つのライトデータチャネル手段の使用を制御する制御手段と、を含み、
制御手段は、
関連するアドレスチャネル手段に対して当該関連するアドレスチャネル手段の使用を求める複数のアドレス転送間の調停を行うアドレスアービタ手段と、
関連するリードデータチャネル手段に対して当該関連するリードデータチャネル手段の使用を求める複数のデータ転送間の調停を行うリードデータアービタ手段と、
関連するライトデータチャネル手段に対して当該関連するライトデータチャネル手段の使用を求める複数のデータ転送間の調停を行うライトデータアービタ手段と、を含み、
リードデータアービタ手段およびライトデータアービタ手段の各々がアドレスアービタ手段とは独立して作動可能であり、複数のトランザクションの１つ以上のデータ転送がこれら複数のトランザクションの対応するアドレス転送に関してアウト・オブ・オーダで生じ得る、相互接続論理。
【請求項１６】
データ処理装置内のマスタ論理ユニットとスレーブ論理ユニットを結合してトランザクションを実施できるようにする方法であって、各トランザクションはマスタ論理ユニットからスレーブ論理ユニットへのアドレス転送およびそのマスタ論理ユニットとそのスレーブ論理ユニット間の１つ以上のデータ転送を含み、前記方法は、
（ａ）．アドレス転送を運ぶための少なくとも１つのアドレスチャネル、前記スレーブ論理ユニットから前記マスタ論理ユニットへのリードトランザクションのデータ転送を運ぶための少なくとも１つのリードデータチャネル、および前記マスタ論理ユニットから前記スレーブ論理ユニットへのライトトランザクションのデータ転送を運ぶための少なくとも１つのライトデータチャネルを提供する複数の接続パスを利用するステップと、
（ｂ）．（ｉ）関連するアドレスチャネルに対して当該関連するアドレスチャネルの使用を求める複数のアドレス転送間の調停をアドレスアービタ論理にさせるステップと、
（ｉｉ）関連するリードデータチャネルに対して当該関連するリードデータチャネルの使用を求める複数のデータ転送間の調停をリードデータアービタ論理にさせるステップと、
（ｉｉｉ）関連するライトデータチャネルに対して当該関連するライトデータチャネルの使用を求める複数のデータ転送間の調停をライトデータアービタ論理にさせるステップと、
（ｉｖ）リードデータアービタ論理およびライトデータアービタ論理の各々をアドレスアービタ論理とは独立して作動させ、複数のトランザクションの１つ以上のデータ転送がこれら複数のトランザクションの対応するアドレス転送に関してアウト・オブ・オーダで生じ得るようにするステップと、
によりトランザクションを実施できるようにするために前記少なくとも１つのアドレスチャネル、前記少なくとも１つのリードデータチャネルおよび前記少なくとも１つのライトデータチャネルの使用を制御するステップと、を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ処理装置用相互接続論理に関し、特に、相互接続論理に結合されたマスタ論理ユニットおよびスレーブ論理ユニット間でトランザクションを実施する技術に関する。
【背景技術】
【０００２】
複数のマスタ論理ユニットおよびスレーブ論理ユニットを有するデータ処理装置内に、マスタ論理ユニットおよびスレーブ論理ユニットを結合してトランザクションを実施できるようにする相互接続論理を設けることが知られている。各トランザクションはマスタ論理ユニットからスレーブ論理ユニットへのアドレス転送、およびそのマスタ論理ユニットとそのスレーブ論理ユニット間の１つ以上のデータ転送からなっている。ライトトランザクションに対してこれらのデータ転送はマスタ論理ユニットからスレーブ論理ユニットへ通過し（ある実施例では、さらにスレーブ論理ユニットからマスタ論理ユニットへのライト応答転送がある）、リードトランザクションに対してこれらのデータ転送はスレーブ論理ユニットからマスタ論理ユニットへ通過する。
【０００３】
相互接続論理はさまざまなマスタ論理ユニットおよびスレーブ論理ユニットを結合する複数の接続パスを提供する。さまざまな転送がこれらの接続パスを介して送られる方法は相互接続論理内で利用されるバスプロトコルによって決まる。一つの既知タイプのバスプロトコルは英国、キャンブリッジのＡＲＭ社で開発されたＡＨＢバスプロトコルに従って設計されたＡＨＢバスを有するデータ処理装置内で利用されるような非スプリットトランザクションプロトコルである。このような非スプリットトランザクションプロトコルに従って、トランザクションのアドレス転送とそのトランザクションの後続する１つ以上の後続データ転送との間には固定タイミング関係がある。特に、データ転送はアドレスが転送されるサイクルに続くサイクル内で開始する。このような設計内で、特定の接続パスの使用を求める複数のアドレス転送間の調停を行うアドレスアービタを設けることが知られている。アドレス転送およびデータ転送間の固定タイミング関係により、複数のトランザクションのデータ転送は調停されたアドレス転送と同じ順序で生じることがお判りであろう。
【０００４】
多数のマスタおよびスレーブ論理ユニットの相互接続をサポートする必要性から、相互接続論理の複雑さが増してきているため、スプリットトランザクションプロトコルとして知られるもう１つのタイプのバスプロトコルが開発されてきている。このようなスプリットトランザクションプロトコルに従って、相互接続論理内の複数の接続パスがアドレス転送を運ぶ少なくとも１つのアドレスチャネルおよびデータ転送を運ぶ少なくとも１つのデータチャネルを提供する。このようなスプリットトランザクションプロトコルの例は英国、キャンブリッジのＡＲＭ社で開発されたＡＸＩ（Ａｄｖａｎｃｅｄ  ｅＸｔｅｎｓｉｂｌｅ  Ｉｎｔｅｒｆａｃｅ）プロトコルである。ＡＸＩプロトコルは情報およびデータを転送できるいくつかのチャネルを提供し、これらのチャネルはリードトランザクションのアドレス転送を運ぶリードアドレスチャネル、ライトトランザクションのアドレス転送を運ぶライトアドレスチャネル、ライトトランザクションのデータ転送を運ぶライトデータチャネル、リードトランザクションのデータ転送を運ぶリードデータチャネル、およびライトトランザクションの終りにトランザクション状態情報をマスタ論理ユニットへ戻すライト応答チャネルを含み、このようなトランザクション状態情報は、たとえば、トランザクションが成功裡に完了したか、あるいはエラーが生じたか、等を示す。このようなスプリットトランザクションプロトコルを使用すれば非スプリットトランザクションプロトコルを使用する同様なシステムに較べてシステムの性能を高めることができる。
【０００５】
従来、このようなスプリットトランザクションプロトコルを採用する時は、データチャネルを介したデータ転送は関連するアドレスチャネルを介した対応するアドレス転送の時間的順序付けに従った優先順位とされ、より先のアドレス（すなわち、アドレスチャネルを介してより先に転送されたアドレス）に関連するデータには後のアドレスに関連するデータよりも高い優先順位が与えられる。この方法はアドレスおよびデータがしっかり結合される非スプリットトランザクションプロトコルにおいて生じる状況を厳密にモデル化し、相互接続論理に結合された各マスタおよびスレーブ論理ユニットに対してバランスのとれたサービスが得られる。しかしながら、このような方法は相互接続論理を効率的に活用はせず、特定のトランザクションのデータ転送が行われるのを待機する間にマスタ装置はしばしばストールしてしまう。
【０００６】
このようなスプリットトランザクションプロトコルに従った相互接続論理を使用する時に特定のスレーブ論理ユニットにおいてトランザクションのある局所的な再順序付けを許すのに使用できる改善策がＡＲＭ社が譲受人である２００３年１２月２３日付出願の米国特許出願第１０／７４３，５３７号に記載されている。この特許出願の教示に従って、各アドレス転送はトランザクションのソース（ｓｏｕｒｃｅ）を識別するソース識別子を含んでいる。好ましくは、各マスタ論理ユニットはそれが発行するトランザクションと関連付けることができる複数の可能なソース識別子を有する。これは、たとえば、同じプロセッサ上で実行している異なるアプリケーションにより発生されたトランザクションを区別して、プロセス自体が互いに独立している場合に各アプリケーションからのトランザクションシーケンスを独立に順序付けできるという利点がある。次に、スレーブ装置はこのようなソース識別子情報に基づいてサービスしなければならない保留トランザクションのある局所的な再順序付けを行うことができ、たとえば、特定のソース識別子が発行されたトランザクションに関連する１つ以上のデータ転送には異なる優先順位の低いソース識別子が発行されたより早期の保留トランザクションに関連する１つ以上のデータ転送よりも高い優先順位を与えることができる。
【０００７】
しかしながら、このような方法により特定の周辺スレーブ装置におけるある局所的な再順序付けが可能とはなるが、相互接続論理を最も効率的には利用しないという問題点が残り、マスタ論理ユニットがストールして特定のトランザクションのデータ転送の完了を保留する状況をまだ生じることがある。
【０００８】
ｎｅｔｗｏｒｋ−ｏｎ−ｃｈｉｐ設計の関連性の無い技術分野において、ネットワーク内の特定のノードが優先順位の概念に基づいてリードデータパケットを再順序付けできるようにすることが知られている。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
データ処理装置の相互接続論理内のトランザクションを処理するための改良された技術を提供して、スプリットトランザクションプロトコルが使用される状況において相互接続論理のリソースの使用をより効率的にすることが望ましい。
【課題を解決するための手段】
【００１０】
第１の側面から見て、本発明はデータ処理装置内のマスタ論理ユニットおよびスレーブ論理ユニットを結合してトランザクションを実施できるようにする相互接続論理を提供し、各トランザクションはマスタ論理ユニットからスレーブ論理ユニットへのアドレス転送およびそのマスタ論理ユニットとそのスレーブ論理ユニット間の１つ以上のデータ転送を含み、相互接続論理はアドレス転送を運ぶ少なくとも１つのアドレスチャネル、前記スレーブ論理ユニットから前記マスタ論理ユニットへリードトランザクションのデータ転送を運ぶ少なくとも１つのリードデータチャネル、および前記マスタ論理ユニットから前記スレーブ論理ユニットへライトリードトランザクションのデータ転送を運ぶ少なくとも１つのライトデータチャネルを提供するように作動可能な複数の接続パスと、トランザクションを実施できるようにするために少なくとも１つのアドレスチャネル、少なくとも１つのリードデータチャネルおよび少なくとも１つのライトデータチャネルの使用を制御するように作動可能な制御論理とを含み、制御論理は関連するアドレスチャネルに対してその使用を求める複数のアドレス転送間の調停を行うように作動可能なアドレスアービタ論理と、関連するリードデータチャネルに対してその使用を求める複数のデータ転送間の調停を行うように作動可能なリードデータアービタ論理と、関連するライトデータチャネルに対してその使用を求める複数のデータ転送間の調停を行うように作動可能なライトデータアービタ論理とを含み、リードデータアービタ論理およびライトデータアービタ論理の各々がアドレスアービタ論理とは独立して作動可能であり、複数のトランザクションの１つ以上のデータ転送がこれら複数のトランザクションの対応するアドレス転送に関してアウト・オブ・オーダ（ｏｕｔ  ｏｆ  ｏｒｄｅｒ）で生じ得るようにされる。
【００１１】
本発明に従って、相互接続論理の接続パスにより提供される少なくとも１つのアドレスチャネル、少なくとも１つのリードデータチャネルおよび少なくとも１つのライトデータチャネルの使用を制御するのに使用される制御論理はアドレスアービタ論理、リードデータアービタ論理およびライトデータアービタ論理を含んでいる。各データアービタ論理は関連するデータチャネルの使用を求めるデータ転送間を調停している時に、複数のトランザクションのデータ転送がそれらの対応するアドレス転送に関してアウト・オブ・オーダで生じることができるようにアドレスアービタ論理とは独立して作動可能である。したがって、本発明により相互接続論理内のシステムレベルにおいて独立したデータ調停を適用して相互接続論理のリソースを効率的に使用することができる。特に、このような方法を使用して特定のスレーブ論理ユニットまたはマスタ論理ユニットのレーテンシを低減し、スループットを増加することができる。
【００１２】
したがって、このような方法を使用して特定のレーテンシまたは帯域幅要求条件を有するデバイスの優先順位を他よりも高くして、システムレベルにおけるサービス品質（ＱｏＳ）保証を促進するのを助けることができる。これは特定のレーテンシおよび帯域幅要求条件を有する周辺装置を有するシステム・オン・チップ（Ｓｙｓｔｅｍ  ｏｎ  Ｃｈｉｐ（ＳｏＣ））設計の重要な要求条件となってきている。また、有効なＱｏＳ保証を適用することにより相互接続リソースをより効率的に使用することができ、相互接続論理の電力およびレイアウトオーバヘッドが低減される。
【００１３】
各データアービタ論理は多様な方法で動作するようにすることができる。しかしながら、一実施例では、制御論理は、さらに、アドレス転送から引き出される状態情報を格納するように作動可能な状態論理を含み、リードデータアービタ論理およびライトデータアービタ論理の各々が関連するデータチャネルの使用を求める複数のデータ転送のいずれが正当な調停目標であるかを決定するために状態情報を参照するように独立して作動可能であり、リードデータアービタ論理およびライト各リードデータアービタ論理の各々が複数の正当な調停目標の存在の元で調停ポリシーを適用して正当な調停目標であるデータ転送の一つに関連するデータチャネルへのアクセスを許可するように独立して作動可能である。
【００１４】
状態情報を使用して、どのデータ転送に関連するデータチャネルへのアクセスを許可するかをデータアービタ論理が決定している時に、使用される特定のバスプロトコルに適用できる特定の順序付け制約が守られることを保証することができる。したがって、たとえば、バスプロトコルは同じソース識別子を有するアドレスからのリードデータをアドレスが発行されたのと同じ順序で戻さなければならない制約を識別することができる。このような例では、状態論理により格納された状態情報はこの制約が守られることをデータアービタ論理が保証するのに十分な情報を提供し、したがって、データアービタ論理は関連するデータチャネルの使用を求める複数のデータ転送のいずれが正当な調停目標（すなわち、このような順序付け制約に違反せずに選択できるデータ転送）であるかを決定することができる。次に、各データアービタ論理は調停ポリシーを適用して正当な調停目標であるデータ転送の一つに関連するデータチャネルへのアクセスを許可することができる。
【００１５】
一実施例では、データアービタ論理はデータチャネルへのアクセスを要求するソースにしか許可しない。別の実施例では、データアービタ論理はソースがデータを要求しかつデスティネーション（ｄｅｓｔｉｎａｔｉｏｎ）が受信準備を完了している時しかデータチャネルへのアクセスを許可しない。
【００１６】
特定の一実施例では、各リードトランザクションはそのリードトランザクションソースを識別するソース識別子と関連付けられており、制御論理は、さらに、各リードトランザクションに対してそのアドレス転送からそのリードトランザクションに対する目標スレーブ論理ユニットを決定するように作動可能なアドレスデコーダを含み、状態論理は各保留リードトランザクションに対する状態情報を格納するように作動可能であり、各保留リードトランザクションに対する状態情報はソース識別子およびその保留リードトランザクションに対する目標スレーブ論理ユニットを含んでいる。
【００１７】
ソース識別子はトランザクションを開始する責任のある特定のマスタ論理ユニットを単に識別することができ、あるいは／さらに、マスタデバイスがトランザクション開始時に使用できる複数の可能なＩＤ値を有する状況においてソース識別のより細い粒度レベルを提供することができる。
【００１８】
リードデータアービタ論理により適用される調停ポリシーは多様な形をとることができる。一実施例では、調停ポリシーは関連するリードトランザクションのソース識別子および／または目標スレーブ論理ユニットに基づいて正当な調停目標であるデータ転送に優先順位を与えるように作動可能である。
【００１９】
任意特定の調停ポリシーに対して、固定優先順位、ラウンドロビン、またはレーテンシタイマ方式、等の多くの異なる調停方式を実際のデータ調停に適用することができる。したがって、例として、データ処理装置が３つのスレーブデバイスＳ１，Ｓ２およびＳ３を有し、調停ポリシーが目標スレーブ論理ユニットに基づいてデータ転送の優先順位付けを行っておれば、スレーブ論理ユニットＳ１はスレーブ論理ユニットＳ２よりも優先順位が高くスレーブ論理ユニットＳ２はスレーブ論理ユニットＳ３よりも優先順位が高くなるような固定優先順位調停方式を採用することができる。あるいは、ラウンドロビン調停方式を使用して、スレーブデバイスＳ１に関連するトランザクションのデータ転送へデータチャネルが割当てられたら、スレーブ論理ユニットＳ２には次のデータチャネル割当てに対する優先順位が与えられ、次の割当てに対するスレーブ論理ユニットＳ３が続き、次の割当てに対して再度スレーブ論理ユニットＳ１が続くようにすることができる。もう１つの実施例として、レーテンシタイマ方式を使用して特定のスレーブ論理ユニットに関連するタイマが予め定められた値に達したら、そのスレーブ論理ユニットの優先順位を高めるようにすることができる。
【００２０】
相互接続論理は多様な形をとることができる。一実施例では、複数の接続パスが単一層相互接続構造を形成し、単一リードデータアービタ論理がリードデータチャネルに対して提供される。しかしながら、別の実施例では、複数の接続パスは多層相互接続構造を形成し、別のリードデータアービタ論理がリードデータチャネルに接続された各マスタ論理ユニットに対して提供される。
【００２１】
一実施例では、少なくとも１つのデータチャネルは、各ライトトランザクションに対して、スレーブ論理ユニットからそのライトトランザクション内に含まれるマスタ論理ユニットへのトランザクション状態情報を運ぶように作動可能なライト応答チャネルを含んでいる。特定の一実施例では、このようなライト応答チャネルはスレーブ論理ユニットからマスタ論理ユニットへデータを運ぶ１つ以上のリードデータチャネルの他に提供される。関連するリードデータチャネルの使用を求める多数のデータ転送間でどのようにリードデータアービタ論理が調停を行うかを記述する時に検討したのと同じ規準を、スレーブ論理ユニットからマスタ論理ユニットへ転送されるトランザクション状態情報の複数のインスタンス間で調停を行う時のライト応答チャネルに関連するデータ調停論理にも適用することができる。
【００２２】
特定の一実施例では、各ライトトランザクションはそれを開始するマスタ論理ユニットを識別するマスタ識別子と関連付けられており、状態論理は各保留ライトトランザクションに対する状態情報を格納するように作動可能であり、各保留ライトトランザクションに対する状態情報は少なくともマスタ識別子の表示を含んでいる。
【００２３】
一実施例では、制御論理は、さらに、各ライトトランザクションに対してそのライトトランザクションのアドレス転送からそのライトトランザクションに対する目標スレーブ論理ユニットを決定するように作動可能なアドレスデコーダを含み、各保留ライトトランザクションに対する状態情報は、さらに、その保留ライトトランザクションに対する目標スレーブ論理ユニットの表示を含んでいる。特定の一実施例では、この付加状態情報は単一層相互接続構造を有する相互接続論理に対する状態論理内に格納される。
【００２４】
一実施例では、ライトデータアービタ論理により適用される調停ポリシーは関連するライトトランザクションのマスタ識別子および／または目標スレーブ論理ユニットに基づいて正当な調停目標であるデータ転送に優先順位を与えるように作動可能である。特に、単一層相互接続構造に対しては、優先順位付けに一方または両方の側面を使用することができ、多層相互接続構造に対しては、優先順位付けにマスタ識別子を使用することができるが目標スレーブ論理ユニットは使用されない。
【００２５】
一実施例では、各ライトトランザクションがそのソースを識別するソース識別子と関連付けられており、調停ポリシーは関連するライトトランザクションのマスタ識別子および／または目標スレーブ論理ユニットおよび／またはソース識別子に基づいて正当な調停目標であるデータ転送に優先順位を与えるように作動可能である。ここでも、リードトランザクションの前記検討と同様に、固定優先順位、ラウンドロビンまたはレーテンシタイマ方式等のいくつかの異なる調停方式を使用することができる。
【００２６】
一実施例では、複数の接続パスが単一層相互接続構造を形成し、ライトデータチャネルに対して単一ライトデータアービタ論理が提供される。別の実施例では、複数の接続パスが多層相互接続構造を形成し、ライトデータチャネルに結合された各スレーブ論理ユニットに対して個別のライトデータアービタ論理が提供される。
【００２７】
第２の側面から見て、本発明は複数のマスタ論理ユニットおよびスレーブ論理ユニットと、本発明の第１の側面に従ってマスタ論理ユニットおよびスレーブ論理ユニットを結合してトランザクションを実施できるようにする相互接続論理とを含むデータ処理装置を提供する。
【００２８】
第３の側面から見て、本発明はデータ処理装置内のマスタ論理手段およびスレーブ論理手段を結合してトランザクションを実施できるようにする相互接続論理を提供し、各トランザクションはマスタ論理手段からスレーブ論理手段へのアドレス転送およびそのマスタ論理手段とそのスレーブ論理手段間の１つ以上のデータ転送を含み相互接続論理はアドレス転送を運ぶための少なくとも１つのアドレスチャネル手段前記スレーブ論理手段から前記マスタ論理手段へリードトランザクションのデータ転送を運ぶための少なくとも１つのリードデータチャネル手段および前記マスタ論理手段から前記スレーブ論理手段へライトトランザクションのデータ転送を運ぶための少なくとも１つのライトデータチャネル手段を提供する複数の接続パス手段と、トランザクションを実施できるようにするため少なくとも１つのアドレスチャネル手段、少なくとも１つのリードデータチャネル手段および少なくとも１つのライトデータチャネル手段の使用を制御する制御手段とを含み、制御手段は関連するアドレスチャネル手段に対してその使用を求める複数のアドレス転送間の調停を行うアドレスアービタ手段と、関連するリードデータチャネル手段に対してその使用を求める複数のデータ転送間の調停を行うリードデータアービタ手段と、関連するライトデータチャネル手段に対してその使用を求める複数のデータ転送間の調停を行うライトデータアービタ手段とを含み、リードデータアービタ手段およびライトデータアービタ手段の各々がアドレスアービタ手段とは独立して作動可能であり複数のトランザクションの１つ以上のデータ転送がこれら複数のトランザクションの対応するアドレス転送に関してアウト・オブ・オーダで生じ得るようにされる。
【００２９】
第４の側面から見て、本発明はデータ処理装置内のマスタ論理ユニットおよびスレーブ論理ユニットを結合してトランザクションを実施できるようにする方法を提供し、各トランザクションはマスタ論理ユニットからスレーブ論理ユニットへのアドレス転送およびそのマスタ論理ユニットとそのスレーブ論理ユニット間の１つ以上のデータ転送を含み、前記方法は（ａ）．複数の接続パスを利用してアドレス転送を運ぶ少なくとも１つのアドレスチャネル、前記スレーブ論理ユニットから前記マスタ論理ユニットへリードトランザクションのデータ転送を運ぶ少なくとも１つのリードデータチャネル、および前記マスタ論理ユニットから前記スレーブ論理ユニットへライトトランザクションのデータ転送を運ぶ少なくとも１つのライトデータチャネルを提供するステップと、（ｂ）．（ｉ）関連するアドレスチャネル手段に対してそれの使用を求める複数のアドレス転送間の調停をアドレスアービタ論理に行わせ、（ｉｉ）関連するリードデータチャネルに対してそれの使用を求める複数のデータ転送間の調停をリードデータアービタ論理に行わせ、（ｉｉｉ）関連するライトデータチャネルに対してそれの使用を求める複数のデータ転送間の調停をライトデータアービタ論理に行わせ、（ｉｖ）リードデータアービタ論理およびライトデータアービタ論理の各々をアドレスアービタ論理とは独立して動作させて複数のトランザクションの１つ以上のデータ転送がこれら複数のトランザクションの対応するアドレス転送に関してアウト・オブ・オーダで生じ得るようにするステップにより、トランザクションを実施できるようにするために少なくとも１つのアドレスチャネル、少なくとも１つのリードデータチャネルおよび少なくとも１つのライトデータチャネルの使用を制御するステップと、を含んでいる。
【実施例】
【００３０】
単なる例として、添付図に例示する実施例について本発明をさらに説明する。本発明の実施例において、データ処理装置の相互接続論理は別々のアドレスチャネルおよびデータチャネルが設けられるスプリットトランザクションプロトコルを利用し、データ転送のタイミングは特定のトランザクションのアドレス転送タイミングに関して非干渉化される。特定の一実施例では、相互接続論理はＡＸＩプロトコルに従って動作し、相互接続論理の接続パスは５チャネル、すなわち、リードアドレスチャネル、ライトアドレスチャネル、リードデータチャネル、ライトデータチャネルおよびライト応答チャネルを提供する。
【００３１】
本発明の一実施例では、相互接続論理は単一層相互接続構造を有する。図１はこのような単一層相互接続のリードアドレスチャネルを略示するブロック図である。この例では、２つのマスタ論理ユニット４０，５０および２つのスレーブ論理ユニット６０，７０が単一層相互接続のチャネル１０に結合されている。チャネル１０内で、アービタ２５はマスタ論理ユニット４０，５０により発行される複数のリードアドレス転送間の調停を行うようマルチプレクサ１５を制御するのに使用される。同様に、任意特定のリードアドレス転送を適切な目標スレーブ論理ユニット６０，７０へ送るようデマルチプレクサ２０を制御するためにデコーダ３０が設けられる。
【００３２】
ライトアドレスチャネルおよびライトデータチャネルは図１に示すリードアドレスチャネルと同様な構造とされる。リードデータチャネルおよびライト応答チャネルも同様な構造とされるが、これら２つのチャネルに対して転送はスレーブ論理ユニットからマスタ論理ユニットへ生じるため、これら２つの場合マスタ論理ユニット４０，５０およびスレーブ論理ユニット６０，７０の位置は逆になる。
【００３３】
本発明の代替実施例では、相互接続論理は多層相互接続構造を有する。図２は本発明の一実施例に従ったこのような多層相互接続構造のリードアドレスチャネル内に設けられたコンポーネントを略示している。ここでも、２つのマスタ論理ユニット４０，５０および２つのスレーブ論理ユニット６０，７０がリードアドレスチャネル１００に接続されている。各デマルチプレクサ１０５，１１５を制御して目標スレーブ論理ユニットに依存するチャネル１００を介したリードアドレス転送のルーティングを制御するように、各マスタ論理ユニット４０，５０に関連してデコーダ１２５，１４０が設けられる。さらに、各マルチプレクサ１１０，１２０を制御して特定のスレーブ論理ユニットへ向けられた複数のリードアドレス転送間の調停を行うために、各スレーブ論理ユニット６０，７０に関連してアービタ１３０，１５０が設けられる。図１の例と同様に、多層相互接続構造に対するライトアドレスチャネルおよびライトデータチャネルは図２のリードアドレスチャネル１００に対して示すものと同様な構造とされ、リードデータチャネルおよびライト応答チャネルも同様な構造とされるがマスタ論理ユニット４０，５０およびスレーブ論理ユニット６０，７０の位置が逆になる。
【００３４】
典型的なデータ処理装置には、しばしば３つ以上のマスタ論理ユニットおよび３つ以上のスレーブ論理ユニットがあり、そのため各チャネル内でパスおよび関連する論理は対応して増加することがお判りであろう。したがって、図１および２は任意特定の実施例に設けられる実際のパスを図示するものではなく略図と見なすべきである。
【００３５】
図３は相互接続論理が単一層相互接続構造を有する本発明の一実施例に従った相互接続論理のリードアドレスチャネルおよびリードデータチャネルの両方に関連して設けられる制御論理を例示する図である。したがって、相互接続ブロック２７０はリードアドレスチャネル、リードデータチャネルおよび関連する制御論理を形成するのに使用される相互接続論理のこれらの部分を示す。図３に示すように、マルチプレクサ２１０は２つの異なるマスタ論理ユニットからリードアドレス転送２００，２０５を受信するようにされ、アドレスアービタ論理２１５はマルチプレクサ２１０を制御してアドレスチャネルの使用を求める複数のアドレス転送間の調停を行うように使用される。
【００３６】
各アドレス転送はマルチプレクサ２１０からデマルチプレクサ２２０へ送られ、図１について前記したように、アドレスデコーダ２２５からの出力により制御される。特に、アドレスデコーダ２２５はアドレス転送内に含まれるアドレスを受信し、どのスレーブ論理ユニットがアドレス転送に対する目標スレーブ論理ユニットであるかをそこから決定するようにされる。次に、アドレスデコーダ２２５はデマルチプレクサ２２０にスレーブ番号を出力し、アドレス転送をスレーブ１リードアドレス２２２またはスレーブ２リードアドレス２２４として適切なパスを介して要求した目標スレーブ論理ユニットへ出力させることができる。
【００３７】
このスレーブ番号情報はアドレス転送内のＩＤ信号に応じて制御されるデマルチプレクサ２３０にも入力される。このＩＤ値はアドレス転送のソースを識別し、前記したように、マスタ論理ユニットが単一ＩＤ値しか使用しないようにされておれば特定のマスタ論理ユニットしか識別しないか、あるいはマスタ論理ユニットが多数のＩＤ値を使用するようにされておれば特定のマスタ内のトランザクションの実際のソースをより細い粒度で識別することができる。
【００３８】
状態論理２３５が設けられ、それはその中にスレーブ番号情報が格納されるＩＤ値毎先入れ先出し（ＦＩＦＯ）バッファとされるものと概念的に考えることができる。したがって、デマルチプレクサ２３０により受信されるＩＤ値に基づいて、デマルチプレクサ２３０はアドレスデコーダ２２５から受信したスレーブ番号を状態論理２３５の適切なＦＩＦＯ内へ送る。このスレーブ情報は関連するトランザクションが完了するまで状態論理２３５内に保持される。実際上、状態論理はＩＤ値毎に１つの複数のＦＩＦＯとして作られる必要はなく、複数のエントリが同じＩＤ値を有する場合どのエントリがアドレスチャネルを介した最も早いアドレス転送出力に関連するかを決定できるようにＩＤ内の時間的順序付けが保存される単一ランダムアクセス記憶リソースとしてインプリメントすることができる。
【００３９】
次に、リードデータチャネルについて考えると、スレーブデバイス（図３の例ではスレーブ１リードデータ２４２またはスレーブ２リードデータ２４４）からの任意のデータ転送出力がマルチプレクサ２４５により受信され、それはデータアービタ２４０により制御される。データアービタ２４０はデータチャネルにアクセスするためのデータ転送の１つを選択するために状態論理２３５を参照するようにされている。第１に、データアービタは複数の正当な調停目標があるかを確認するために状態論理２３５を参照する。同じＩＤ値を有するアドレスに対するリードデータはアドレスが発行されたのと同じ順序で戻さなければならないという制約をＡＸＩプロトコルが指定し、したがって、任意の時点において特定のＩＤに対して１つの正当な調停目標しかない。しかしながら、複数のＦＩＦＯがその中にスレーブ番号を格納しておれば、データアービタに複数の正当な調停目標が提示される。
【００４０】
したがって、状態論理２３５により識別された１つの正当な調停目標しかない場合、データアービタ２４０によりマルチプレクサ２４５はその正当な調停目標に関連するデータ転送を出力する。しかしながら、複数の正当な調停目標があれば、データアービタ論理はデータチャネルへのアクセスを許可されるデータ転送の１つを決定するために調停ポリシーを適用する。特に、本発明の一実施例では、データアービタ２４０はマスタ、スレーブ、ＩＤ値、またはそれらの任意の組合せに基づいて複数の正当な調停目標間の優先順位付けを行うことができる。マスタおよびスレーブベースの調停により特定のレーテンシまたは帯域幅要求条件を有する周辺装置は他よりも高い優先順位とすることができ、ＱｏＳ保証の促進を助ける。ＩＤ値調停によりマスタはそのリードストリームのいずれが他よりも高い優先順位を有するかをそれらが異なるスレーブに対するものである時に制御することができる。さらに、固定優先順位、ラウンドロビンまたはレーテンシタイマ方式等の多くの異なる調停方式を選択された調停ポリシーに適用することができる。
【００４１】
調停ポリシーを適用した結果、データアービタ２４０によりマルチプレクサ２４５はリードデータチャネルを介して入力データ転送の１つを出力し、このデータ転送はトランザクションのソース（すなわち、どのマスタがリードトランザクションを発行したか）、したがって、データ転送に対するデスティネーションを識別するＩＤ値を含んでいる。
【００４２】
デマルチプレクサ２５０はマルチプレクサ２４５により出力されたデータ転送を受信するようにされており、データ転送に関連してＩＤ値出力を受信するＩＤデコーダ２５５により制御される。さらに、図３に示すように、ＩＤデコーダ２５５は発行された各リードアドレスに対するマスタ番号および関連するＩＤ値をアドレスチャネルから受信するようにされており、次に、ＩＤデコーダがルックアップテーブルにログする。次に、リードデータが向けられるマスタデバイスに対するマスタ番号を検索するために、ＩＤデコーダはリードデータチャネルから受信したＩＤ値をテーブル内へのルックアップ値として使用する。したがって、次に、データ転送は適切なマスタデバイスにマスタ１リードデータ２６０またはマスタ２リードデータ２６５として送られる。
【００４３】
図３の例では、２つのマスタ論理ユニット、２つのスレーブ論理ユニット、および３つの可能なＩＤ値があるものと仮定されている。しかしながら、他の実施例では、図３のデータアービタ２４０について記述したのと同じデータ調停技術を利用しながら異なる数のマスタ論理ユニット、スレーブ論理ユニットおよびＩＤ値を提供できることがお判りであろう。
【００４４】
さらに、図３について記述したデータ調停ポリシーはＡＸＩプロトコルに従って提供されるライト応答チャネル等の任意他のリターンパスで実施される調停にも同等に適用される。この場合、図３のリードデータは特定のライトトランザクションが完了している時にライトトランザクションが成功裡に完了しているかどうかの表示を関連するマスタ論理ユニットに与えるために各スレーブ論理ユニットにより出力されるトランザクション状態情報を実際上含んでいる。
【００４５】
図４はライトデータチャネルの調停を行うために本発明の一実施例に従って単一層相互接続論理内に設けられるコンポーネントを示すブロック図である。図３について前記したリードアドレスチャネルと同様に、図４の相互接続ブロック３８０内に設けられたライトアドレスチャネルはアドレスアービタ３１５により制御されるマルチプレクサ３１０を含み、それはマスタ１ライトアドレス転送３００およびマスタ２ライトアドレス転送３０５を受信することができる。アドレスチャネル上への各アドレス転送出力はデマルチプレクサ３２０へ送られ、それはアドレスからライトトランザクションに対する目標スレーブ論理ユニットを決定し、その目標スレーブ論理ユニットを示すスレーブ番号を出力するようにされたアドレスデコーダ３２５により制御される。スレーブ番号はデマルチプレクサ３２０を制御してライトアドレス転送がスレーブ１ライトアドレス３２２またはスレーブ２ライトアドレス３２４として要求したスレーブ論理ユニットへ送られるようにし、さらに、スレーブ番号がＩＤデコーダ３６０およびデマルチプレクサ３３０に送られる。
【００４６】
さらに、アドレスアービタ３１５はライトアドレスチャネルへのアクセスを許可されているマスタ論理ユニットの表示をデマルチプレクサ３３０へ発行するようにされ、この表示はマスタ番号の形をとる。
【００４７】
そのデータチャネルに関して調停を実施する時にライトデータチャネルのデータアービタ論理３４０にアクセスできる状態情報を格納するための状態論理３３５が設けられる。特に、状態論理３３５はスレーブ番号毎の記憶装置を含むものと概念的に考えることができ、デマルチプレクサ３３０はアドレスデコーダ３２５から受信したスレーブ番号に基づいてアドレスアービタ３１５から受信したマスタ番号をそのスレーブ番号に関連する記憶装置内へ出力するようにされる。
【００４８】
スレーブデバイスはそれらが受信するライトデータの順序付けに関して異なる能力を有することができ、これは各スレーブデバイスに関連するライトインターリーブ深度値（ｉｎｔｅｒｌｅａｖｅ  ｄｅｐｔｈ  ｖａｌｕｅ）により指定される。与えられた例において、スレーブデバイス１は１のライトインターリーブ深度を有するものとし、そのスレーブデバイスは関連するライトアドレス転送と同じ順序でしかライトデータ転送を受け入れられないことを意味する。したがって、スレーブデバイス１に関連する状態論理３３５内の記憶装置はその中に格納されたマスタ番号に関してＦＩＦＯとして動作すると考えられる。
【００４９】
しかしながら、スレーブデバイス２は２のライトインターリーブ深度を有し、２つのライトデータ転送に対してスレーブデバイスは関連する２つのライトアドレス転送についてアウト・オブ・オーダでデータを受け入れられることを意味する。したがって、スレーブデバイス２に関連する状態論理３３５内の記憶装置はＦＩＦＯスタイルキューとして作用すると考えられるが、出力はキューのヘッドにおける２つのエントリの一方により与えられる。
【００５０】
次に、ライトデータチャネルについて考えると、マルチプレクサ３５５はマスタ１ライトデータ転送３４５とマスタ２ライトデータ転送３５０の両方を受信するようにされている。図３におけるリードデータアービタ２４０の前記検討と同様に、図４のライトデータアービタ３４０は複数の正当な調停目標があるかどうかを確認するために状態論理３３５を参照する。
【００５１】
スレーブデバイス１に関連する１のライトインターリーブ深度が与えられると、スレーブデバイス１に関連する状態論理３３５の記憶装置はいつでも１つまでの正当な調停目標しか識別できない。しかしながら、スレーブデバイス２に関連する２のライトインターリーブ深度が与えられると、スレーブデバイス２に関連する状態論理３３５の記憶装置はいつでも２つまでの正当な調停目標を識別することができる。明らかに、スレーブデバイス２に関連する記憶装置のヘッドにおける２つのエントリの両方が同じマスタ番号を含む場合には、識別される２つの正当な調停目標は同じである。
【００５２】
単一の正当な調停目標しかない場合、データアービタ３４０はマルチプレクサ３５５を制御してライトデータチャネル上に適切なデータ転送を出力するようにされる。しかしながら、複数の正当な調停目標が存在する時は、データアービタは調停ポリシーを適用してライトデータチャネルへのアクセスを許可されるライトデータ転送の１つを決定する。適用される調停ポリシーは多様な形をとることができる。しかしながら、一実施例では、データアービタ３４０はマスタまたはスレーブ番号、あるいは両方の組合せに基づいて優先順位付けすることができる。さらに、ライトデータＩＤ（ＷＩＤ）がデータアービタ３４０に送られる場合には、データアービタ３４０もソースＩＤに基づいて優先順位付けすることができる。
【００５３】
ライトデータアービタ３４０により実施される調停の結果、ライトデータ転送の１つがライトデータチャネル上へ出力され、デマルチプレクサ３７５により受信される。デマルチプレクサはＩＤデコーダ３６０からの出力により制御され、制御信号としてライトトランザクションのソースを識別するライトデータチャネル上に出力されたＩＤ値を受信する。図４に示すように、ＩＤデコーダ３６０はアドレスチャネルからスレーブ番号および発行された各ライトアドレスに対する関連するＩＤ値を受信するようにされており、次に、ＩＤデコーダはそれをルックアップテーブルにログする。次に、ライトデータが向けられるスレーブデバイスに対するスレーブ番号を検索するために、ＩＤデコーダ３６０はライトデータチャネルから受信したＩＤ値をテーブルへのルックアップ値として使用する。次に、このスレーブ番号はデマルチプレクサ３７５へ出力されライトデータ転送はスレーブ１ライトデータ３６５またはスレーブ２ライトデータ３７０として適切なスレーブ論理ユニットへ送られる。
【００５４】
図３と同様に、図４の例は２つのマスタ論理ユニットおよび２つのスレーブ論理ユニットを仮定しているが、ここでも異なる実施例において異なる数のマスタ論理ユニットおよびスレーブ論理ユニットを使用しながらライトデータアービタ３４０について記述したのと同じデータ調停原理を利用することができる。
【００５５】
図５は本発明の一実施例に従った多層相互接続のリードアドレスチャネルおよびリードデータチャネルに関連して設けられる制御論理を略示するブロック図である。この例の目的に対して、２つのマスタ論理ユニット、２つのスレーブ論理ユニット、および３つの可能なＩＤ値があるものと仮定する。しかしながら、別の実施例では、異なる数のマスタ論理ユニット、スレーブ論理ユニットおよびＩＤ値を使用できることがお判りであろう。さらに、図５は第１のマスタ論理ユニットおよび第１のスレーブ論理ユニットに関連して設けられる制御論理の詳細しか例示していない。同様な論理を第２のマスタ論理ユニット４０５および第２のスレーブ論理ユニット４２５に関連して設けることもできる。
【００５６】
第１のマスタデバイスにより発行されるリードアドレス転送４００について考えると、このリードアドレス転送はリードアドレスが接続パス４４５を介してスレーブ１リードアドレス４１０としての第１のスレーブデバイスへまたは第２のスレーブデバイス４１５へ転送されるようにアドレスデコーダ４３０により制御される。デマルチプレクサ４２５により受信される。アドレスデコーダはリードアドレスからスレーブ番号を決定し、そのスレーブ番号を使用してデマルチプレクサ４２５を制御する。このスレーブ番号はデマルチプレクサ４３５にも入力され、それはリードアドレス転送に関連するＩＤ値に応じて制御される。図３の前記検討と同様に、これによりスレーブ番号は状態論理４４０の関連するＦＩＦＯ内に格納され、それはＩＤ値毎のＦＩＦＯを概念的に提供する。
【００５７】
第１のスレーブデバイスはそれに関連するマルチプレクサ４５０を相互接続ブロック４２０内に有し、第１のマスタデバイスおよび第２のマスタデバイス４０５の両方からリードアドレス転送を受信する。次に、アドレスアービタ４５５は第１のスレーブデバイスへ発行されることを求める複数のアドレス転送間の調停を行い、その調停に応じてマルチプレクサ４５０を制御する。
【００５８】
次に、リードデータチャネルについて考えると、第１のスレーブデバイスから出力されるリードデータ４１２は、そのデータ転送に関連するＩＤ値を受信するＩＤデコーダ４６０により制御される対応するデマルチプレクサ４６５により受信される。ＩＤデコーダ４６０は図３のＩＤデコーダ２５５と同様に動作し、ＩＤ値はリードデータが向けられるマスタデバイスを指定するマスタ番号を識別するためにＩＤデコーダにより維持されるルックアップテーブルへのインデクスとして使用される。したがって、ＩＤ値に応じて、データデコーダ４６０によりデータ転送はデータ接続パス４７０を介して第１のマスタデバイスまたは第２のマスタデバイス４０５に出力される。
【００５９】
第１のマスタデバイスに関連して、第１のスレーブデバイスまたは第２のスレーブデバイス４１５からのデータ転送を受信するためにマルチプレクサ４８０が設けられ、このマルチプレクサ４８０はデータアービタ４７５により制御される。データアービタ４７５は図３のデータアービタ２４０と同様に動作する。しかしながら、各マスタ論理ユニットに対して別個のデータアービタ４７５があるため、データアービタ４７５はスレーブまたはＩＤ値、または両方の組合せに基づいて複数の正当な調停目標間の優先順位付けを行うが、任意のこのような調停においてマスタ識別子を使用しない。実施したデータ調停の結果、マスタデバイス１へリードデータ４０２として出力するためにデータが選択される。
【００６０】
図６は本発明の一実施例に従って多層相互接続内に設けられライトアドレスチャネルおよびライトデータチャネルの両方に対する制御論理を提供する論理を例示するブロック図である。図５と同様に、図６は２つのマスタ論理ユニットおよび２つのスレーブ論理ユニットがあるものと仮定しているが、異なる実施例では、やはり異なる数のマスタ論理ユニットおよびスレーブ論理ユニットを使用することができる。さらに、図５と同様に、図６は第１のマスタ論理ユニットおよび第１のスレーブ論理ユニットに関連して設けられる制御論理しか例示しておらず、同様な論理は第２のマスタ論理ユニット４０５および第２のスレーブ論理ユニット４１５に関連して設けることもできる。
【００６１】
第１のマスタ論理ユニットがライトアドレス転送４０１を出力する時、これはアドレスデコーダ５０５により制御される、相互接続ブロック４２１のデマルチプレクサ５００により受信され、アドレスデコーダ５０５はライトアドレス転送のアドレスからデスティネーションスレーブ番号を決定し、それに従ってデマルチプレクサ５００を制御してライトアドレス転送が接続パス５２０を介してスレーブ論理ユニット１またはスレーブ論理ユニット２  ４１５へ適切なものとして送られることを保証する。スレーブ番号もＩＤデコーダ５４５へ入力として送られ、それはライトアドレスチャネルからのＩＤ値も受信し両方の値をログする。
【００６２】
第１のスレーブ論理ユニットに関連するマルチプレクサ５２５は第１のマスタ論理ユニットおよび第２のマスタ論理ユニット４０５の両方からライトアドレス転送を受信し、スレーブ１ライトアドレス４１１を出力する。アドレスアービタ５３０は第１のスレーブ論理ユニットへのアクセスを求める複数のライトアドレス転送間の調停を行い、かつマルチプレクサ５２５を制御するようにされている。また、アドレスアービタ５３０はそれが実施する調停に応じてデマルチプレクサ５３５にマスタ番号を出力し、デマルチプレクサ５３５はマルチプレクサ５２５から出力されたＩＤ値に応じて制御されてマスタ番号が状態論理５４０の記憶装置内に格納されるようにする。
【００６３】
次に、ライトデータチャネルについて考えると、ＩＤデコーダ５４５は図４について前記したＩＤデコーダ３６０と同様に動作し、デマルチプレクサ５５０により受信されたライトデータ転送４０３はライトデータ接続５５５を介して第１のスレーブ論理ユニットまたは第２のスレーブ論理ユニット４１５へ適切なものとして送られる。
【００６４】
同様に、ライトデータアービタ５６０およびマルチプレクサ５６５は図４について前記したライトデータアービタ３４０およびマルチプレクサ３５５と同様に動作し、データアービタ５６０は第１のスレーブ論理ユニットに向けられた複数のライトデータ転送間の調停を行ってマルチプレクサ５６５がスレーブ１ライトデータ４１３を出力するようにすることができる。スレーブデバイス１は１よりも大きいライトインターリーブ深度を有する事実により、データアービタ５６０には複数の正当な調停目標しか提供されないことに注目願いたい。
【００６５】
図４のデータアービタ３４０はマスタまたはスレーブ（ＩＤ値がデータアービタへ送られる場合はＩＤ値）に基づいて概念的に優先順位付けができるが、図６の例においてライトデータアービタ５６０には特定のスレーブ論理ユニットが関連付けられ、このケースにおいてライトデータアービタ５６０により適用される調停ポリシーはマスタ（ＩＤ値がデータアービタへ送られる場合はＩＤ値）に基づいて優先順位付けを行うことができるが、優先順位付けにおいていかなるスレーブ識別情報も使用しない。
【００６６】
本発明の前記実施例において、データアービタにより適用される調停ポリシーおよび調停方式はスタティックに構成したり、実行時にダイナミックにプログラムされるように構成できることがお判りであろう。
【００６７】
本発明の実施例の前記データ調停技術はシステムレベルでＱｏＳ保証を提供するのに有用である。前記したように、これは特定のレーテンシおよび帯域幅要求条件の周辺装置を有するシステム・オン・チップ（ＳｏＣ）設計の重要な要求条件になってきている。有効なＱｏＳ保証を適用することにより相互接続リソースをより効率的に使用することもでき、それにより相互接続論理の電力およびレイアウトオーバヘッドが低減される。
【００６８】
本発明の実施例のデータ調停技術が有用となる例として、たとえば、ダイナミックメモリコントローラ（ＤＭＣ）からのリードデータを他の周辺装置からのそれよりも高い優先順位とする（すなわち、スレーブ識別子に基づいた優先順位付け）、ＬＣＤコントローラの最大レーテンシ要求条件を満たすためにＬＣＤコントローラへ向けたデータに優先順位を与える（すなわち、マスタ識別子に基づいた優先順位付け）、キャッシュミスから生じるデータを命令プリフェッチに関連するデータよりも高い優先順位とする（すなわち、ＩＤ値に基づいた優先順位付け）、等が含まれる。
【００６９】
マスタ、スレーブまたはＩＤ値に基づいた調停判断を行うのに使用される情報はスプリットトランザクションプロトコル、たとえば、前記した特定の実施例におけるＡＸＩプロトコルの順序付け制約を満たすために既に相互接続論理内に既に存在しているため、本発明の実施例に対して記述した技術をインプリメントするのは比較的簡単である。
【００７０】
特定の実施例について記述してきたが、本発明はそれに限定はされず発明の範囲内で多くの修正および追加を行うことができる。たとえば、発明の範囲を逸脱することなく従属項の特徴を独立項の特徴とさまざまに組み合わせることができる。
【図面の簡単な説明】
【００７１】
【図１】単一層相互接続構造のチャネルを示すブロック図である。
【図２】多層相互接続構造のチャネルを示す図である。
【図３】本発明の一実施例に従って単一層相互接続構造内に設けられリードデータ調停を実施できるようにするコンポーネントを示す図である。
【図４】本発明の一実施例に従って単一層相互接続構造内に設けられライトデータ調停を実施できるようにするコンポーネントを示す図である。
【図５】本発明の一実施例に従って多層相互接続構造内に設けられリードデータ調停を実施できるようにするコンポーネントを示す図である。
【図６】本発明の一実施例に従って多層相互接続構造内に設けられライトデータ調停を実施できるようにするコンポーネントを示す図である。
【符号の説明】
【００７２】
１０  チャネル
１５，１１０，１２０，２１０，２４５，３１０，３３５，４５０，４８０，５２５，５６５  マルチプレクサ
２０，１０５，１１５，２２０，２３０，２５０，３２０，３３０，３７５，４２５，４３５，４６５，５００，５３５，５５０  デマルチプレクサ
２５，１３０，１５０  アービタ
３０，１２５，１４０  デコーダ
４０，５０  マスタ論理ユニット
６０，７０  スレーブ論理ユニット
１００  リードアドレスチャネル
２００，２０５，４００  リードアドレス転送
２１５，３１５，５３０  アドレスアービタ
２２２，４１０  スレーブ１リードアドレス
２２４  スレーブ２リードアドレス
２２５，３２５，４３０，５０５  アドレスデコーダ
２３５，３３５，４４０，５４０  状態論理
２４０，３４０，４７５，５６０  データアービタ
２４２  スレーブ１リードデータ
２４４  スレーブ２リードデータ
２５５，３６０，４６０，５４５  ＩＤデコーダ
２６０  マスタ１リードデータ
２６５  マスタ２リードデータ  
２７０，３８０，４２０，４２１  相互接続ブロック
３００  マスタ１ライトアドレス転送
３０５  マスタ２ライトアドレス転送
３２２，４１１  スレーブ１ライトアドレス
３２４  スレーブ２ライトアドレス
３４５  マスタ１ライトデータ転送
３５０  マスタ２ライトデータ転送
３６５，４１３  スレーブ１ライトデータ
３７０  スレーブ２ライトデータ
４０１  ライトアドレス転送
４０２，４１２  リードデータ
４０３  ライトデータ転送
４０５  第２マスタ論理ユニット
４１５  第２スレーブ論理ユニット
４４５，４７０，５２０  接続パス
５５５  データ接続
【図１】
2006331426.tif 000003
【図２】
2006331426.tif 000004
【図３】
2006331426.tif 000005
【図４】
2006331426.tif 000006
【図５】
2006331426.tif 000007
【図６】
2006331426.tif 000008