JP5322412B2 - データ処理装置のための相互接続論理 - Google Patents

データ処理装置のための相互接続論理 Download PDF

Info

Publication number
JP5322412B2
JP5322412B2 JP2007204889A JP2007204889A JP5322412B2 JP 5322412 B2 JP5322412 B2 JP 5322412B2 JP 2007204889 A JP2007204889 A JP 2007204889A JP 2007204889 A JP2007204889 A JP 2007204889A JP 5322412 B2 JP5322412 B2 JP 5322412B2
Authority
JP
Japan
Prior art keywords
logic
transaction
slave
identifier
master
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007204889A
Other languages
English (en)
Other versions
JP2008041099A (ja
Inventor
クローン ブルース アリステア
Original Assignee
エイアールエム リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by エイアールエム リミテッド filed Critical エイアールエム リミテッド
Publication of JP2008041099A publication Critical patent/JP2008041099A/ja
Application granted granted Critical
Publication of JP5322412B2 publication Critical patent/JP5322412B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Bus Control (AREA)
  • Computer And Data Communications (AREA)

Description

本発明はデータ処理装置のための相互接続論理に関し、特に、相互接続論理に結合されたマスタ論理ユニットとスレーブ論理ユニットの間のトランザクションをリオーダ(reorder、再注文)する制御技法に関する。
複数のマスタ論理ユニットおよびスレーブ論理ユニットを有するデータ処理装置の内部でトランザクションを遂行可能にするために、マスタ論理ユニットとスレーブ論理ユニットを結合する相互接続論理を備えることが知られている。各トランザクションは、マスタ論理ユニットからスレーブ論理ユニットへの1つのアドレス転送、およびそのマスタ論理ユニットとそのスレーブ・ユニットの間の一つまたはそれ以上のそれ以上のデータ転送からなる。1つの書込みトランザクションについてこれらのデータ転送は、マスタ論理ユニットからスレーブ論理ユニットへ通過し(いくつかの実施例において、スレーブ論理ユニットからマスタ論理ユニットへの書込み応答転送が追加される)、一方読取りトランザクションについては、これらのデータ転送はスレーブ論理ユニットからマスタ論理ユニットへ通過する。スレーブ論理ユニットからマスタ論理ユニットへの転送は、いずれも本書では応答転送と呼ぶことにする。
種々のマスタ論理ユニットおよび/スレーブ論理ユニットを結合するために、相互接続論理は複数のパスを供給する。それらの接続パスを介して、種々のパス転送が経路選択される方法は、相互接続論理内で採用されるバス・プロトコルによって異なる。1つの公知のタイプのバス・プロトコルは、ノン・スプリット(non−split)・トランザクション・プロトコルであって、英国ケンブリッジのARM社により開発されたAHBバス・プロトコルに従って、設計されたAHBバスを有するデータ処理装置で採用されているようなものである。こうしたノン・スプリット・トランザクション・プロトコルによれば、1つのトランザクションのアドレス転送と、そのトランザクションに続く1つまたはそれ以上のデータ転送との間に、固定的なタイミング関係が存在する。詳しくは、アドレスが転送されるサイクルに続くサイクルにおいて、データ転送が開始される。アドレス転送とデータ転送の間の固定的なタイミング関係のために、多数のトランザクションのデータ転送がアドレス転送と同一順序で起ることが理解できる。
相互接続論理の複雑性が増すにつれて、多数のマスタおよびスレーブ論理ユニットをサポートする必要のために、スプリット・トランザクション・プロトコルとして知られるもう1つのバス・プロトコルが開発されてきた。そうしたスプリット・トランザクション・プロトコルによれば、相互接続論理内の複数の接続パスが、アドレス転送の遂行のための少なくとも1つのアドレス・チャネル、およびデータ転送の遂行のための少なくともデータ・チャネルを備えている。そうしたスプリット・トランザクション・プロトコルの一例は、英国ケンブリッジのARM社により開発されたAXI(アドバンスト・エクステンシブル・インターフェイス)プロトコルである。このAXIプロトコルは、情報およびデータをそれで転送できる多数のチャネルを供給し、これらのチャネルは読取りトランザクションのアドレス転送を遂行するための読取りアドレス・チャネル、書込みトランザクションのアドレス転送を遂行するために書込みアドレス・チャネル、書込みトランザクションのデータ転送を遂行するための書込みデータ・チャネル、読取りトランザクションのデータ転送を遂行するための読取りデータ・チャネル、および書込みトランザクションの終りにマスタ論理ユニットへトランザクション・ステータスを返すための書込み応答チャネルを含み、そうしたトランザクション・ステータス情報は、たとえばトランザクションが成功のうちに完了したかどうかまたはエラーなどが発生したかどうかなどを示す。そうしたスプリット・トランザクション・プロトコル使用は、ノン・スプリット・トランザクション・プロトコルを使用する類似のシステムを比べてシステムの性能を向上をさせることができる。
従来は、そうしたスプリット・トランザクションを採用した場合、データ・チャネル上のデータ転送は、関連のアドレス・チャネル上で対応するアドレス転送の一時的な順序付け(ordering)に従って優先順位を定め、より早いアドレス(すなわちアドレス・チャネル上でより早く転送されたアドレス)に関連するデータが、より遅いアドレスに関連するデータよりも優先権が与えられるようになっている。
そうしたスプリット・トランザクション・プロトコルに適合する相互接続を使用する場合の特定スレーブ論理ユニットにおけるトランザクションのローカル・リオーダ(reorder)をいくらか可能にするために使用できる機能強化が、米国特許出願番号10/743,537、2003年12月23日出願、譲受人ARM株式会社に記載されているが、その全内容が参考文献として本書に組み込まれている。この特許出願の教示によれば、各アドレス転送は、トランザクションのソースを識別するソース識別子を含む。好ましくは、各マスタ論理ユニットは、それが発行するトランザクションに関連し得る複数のあり得るソース識別子を含む。これの長所は、たとえば同一プロセッサ上を走る別々のアプリケーションにより発生されるトランザクションを識別でき、それにより、処理自体が互いに独立している場合に、各アプリケーションからのトランザクションシーケンスを独立に順序づけることができることである。その時、スレーブ・デバイスは、こうしたソース識別子情報に基づいて提供しなければならない保留中のトランザクションの、いくつかのローカル・リオーダを遂行することができ、それによりたとえば、ある特定のソース識別子により発行されたトランザクションに関連する一つまたはそれ以上のデータ転送を、別の一層低い優先順位のソース識別子により発行された先行保留中のトランザクションに関連する一つまたはそれ以上のデータ転送よりも、優先させることができる。
従って、いずれか特定のトランザクションについて、いずれかの応答転送を順序付けて発行するようにスレーブ・デバイスが要求されても、もしそのスレーブ・デバイスが異なったトランザクション識別子を有する2つの保留中のトランザクションを有するならば、それは、どちらのトランザクションを第1に処理すべきか選択することができる。これにより、異なったマスタ論理ユニットに対して、または特定論理ユニット上の走る特定アプリケーションに対してさえ、異なった優先順位を与えることができるが、それは、相互接続論理内における潜在的な循環依存性デッドロック(potential cyclic dependency deadlock)を引き起こす可能性がある。特に、少なくともいくつかのマスタ論理ユニットが一つ以上のスレーブ・デバイスに対する多数の保留中のトランザクションを発行できる場合は、1つのスレーブ・デバイス(分かりやすくするためにスレーブ1と呼ぶ。)に対して、ある特定のトランザクション識別子を有するトランザクションが発行され、一方他のスレーブ・デバイス(分かりやすくするためにスレーブ2と呼ぶ)に対して、同一のトランザクション識別子を有するもう1つのトランザクションが発行される状況が起り得る。バス・プロトコルは、典型的に同一トランザクション識別子を有するトランザクションに対して、トランザクションを順序通りに処理しなければならないと要求する。しかしながら、個別のスレーブ論理ユニットは互いに連絡していないし、もしそれらのスレーブ論理ユニットが、異なったトランザクション識別子を有するトランザクションをリオーダする能力を個別に有するとしても、同一トランザクション識別子を有する後から受信したスレーブ2が、そのトランザクションを有する先行のトランザクションを受信したスレーブ1に先立って、応答転送を発行するかもしれない。この時点でスレーブ2は、そのトランザクションに関連するマスタ論理ユニットへ経路選択するために相互接続論理によりその応答転送が受信されるまで、何の動作もさらに取ることができないが、相互接続論理は、スレーブ1に対して同一トランザクション識別子とともに発行された先行して関連する単数または複数の応答転送を受信することが最初に必要なので、応答転送を受信することができない。これは、スレーブ2が応答のアサートを解除できず、また相互接続論理により応答が受け入れられるまで処理を継続することができないので、スレーブをブロックさせる。
例えばすでにスレーブ2へ発行された同一のトランザクション識別子を有するあるトランザクションよりも遅いが、しかしリオーダにより降格させられたトランザクションへの応答を出力しようとして、スレーブ1が現在ブロックされている場合、これはそれ自体でデッドロックを引き起こすのに充分である。このシナリオを、次の4つのトランザクションについての例示的なシーケンスについて説明するが、そこでマスタ1により発行される2つのトランザクションは、同一のトランザクション識別子を有し、また同様に、マスタ2により発行される2つのトランザクションは、同一のトランザクション識別子を有する。
Figure 0005322412
これによりこれらトランザクションは、下記の通り2つのスレーブによりシーケンスにされる。
Figure 0005322412
上記において、添え字「.1」は、関連のマスタからの第1トランザクションを意味し、また、「.2」は関連のマスタからの第2トランザクションを意味し、従って、たとえば、「M1.1」はマスタ1からの第1トランザクションを意味する。もしスレーブ2がその2つのトランザクションをリオーダするならば、その時は、スレーブ1とスレーブ2の両方がマスタからの第2トランザクションに関連して応答転送を発行しようとするが、これらマスタは、それらの最初のトランザクションに関連する応答転送を最初に受信することを必要とするので、それらの両方がブロックされる。
多数のスレーブ・デバイスが再び順序付けする能力を有する場合にも、デッドロックが一層起りやすくなる。
デッドロックが発生すると、相互接続論理を正常な運転状態へ回復することがしばしば非常に困難になる。従って、デッドロックが発生した時は、一般に相互接続の構成をリセットすることが必要であり、これはまた、そこへ結合された論理ユニットの運転にも典型的な衝撃を与える。したがって、これらの論理ユニットもまたリセットされて必要なデータ転送が遂行し完了できるようにすることが必要になる。したがって、デッドロックは、データ処理装置に破滅的な衝撃を与えることを理解すべきである。
デッドロック発生の尤度を削減または除去することを求めて、多数のデッドロック回避方式が開発されてきた。1つのそうした方式は「シングル・スレーブ」方式と呼ばれ、これは各マスタ論理ユニットにおいて採用される方式である。この方式によれば、マスタ論理ユニットは、個別のスレーブ論理ユニットに対して希望するだけ多くの保留トランザクションを発行でき、これらのトランザクションは同一または異なったトランザクション識別子をもつことができる。しかしながら、いずれかのトランザクション識別子について、マスタ論理ユニットは一度に1つのスレーブ論理ユニットにより保留中のトランザクション識別子を有するトランザクションをもつことのみが許される。トランザクションの完了済みになった場合にのみ、異なったスレーブ・デバイスへ発行されたトランザクションに関連して、このトランザクション識別子を再利用できる。したがって、この解決方法によれば、同時に多数のスレーブ・デバイスへ発行された同一トランザクション識別子を2つのトランザクションが有するという状況を回避できる。
「ユニークID」方式と呼ばれる代わりの方式によれば、各マスタ論理は、異なったスレーブ・ユニットへ発行されたトランザクションのために異なった識別子を使用するように常に制限されているが、ここでもこれは同一識別子を有する多数のトランザクションが異なったスレーブ論理ユニットに保留中であるという状況を防止している。
「循環順序」方式と呼ばれる第三の方式によれば、任意の順序が相互接続論理へ結合された複数のスレーブ論理ユニットへ割り当てられる。それから各マスタ論理ユニットがその所定の任意の順序において、種々のスレーブへトランザクションを送信するように制限される。従って、たとえば所定の順序がスレーブ0、スレーブ2、スレーブ1であれば、そのときは各マスタ論理ユニットはスレーブ0へ任意の数のトランザクションを発行し、続いてスレーブ2へ任意の数のトランザクションに発行し、続いてスレーブ1へ任意の数のトランザクションを発行できる。その後で、そのマスタ論理ユニットがスレーブ0へトランザクションを再び送り始め得る時よりも前に、すべての保留トランザクションが完了されていなければならない。
それら全ての技法は、デッドロックの発生の危険を削減または除去するのに効果的であるが、それら全ては、各マスタ論理ユニットがどのように振舞えるかについて重大な制約を課する。
米国特許出願番号10/953,500、2004年9月30日出願、譲受人ARM社であって、内容の全てが参考文献として本書に組み込まれているものは、デッドロック予測論理により相互接続論理を供給することを記述しており、それはマスタ論理ユニットにより各アドレス転送が発行されるときに、アドレス転送の伝播が相互接続論理をデッドロックになるようにさせるかどうかを決定して、もしそうならばアドレス転送の伝播を防止することを求める。この予測論理は、いずれか特定のアドレス転送が安全であるか、または代わりにデッドロック問題を引き起こすかどうかを決定するときに、前述のようなデッドロック防止方式に関連し得る。ここでも、デッドロックが起り得ると予測論理が予測した場合には、いくつかのアドレス転送が伝播されないように防止されるので、トランザクションを発行するときにマスタ論理ユニットの柔軟性をこの方式が制限する。さらに、そうした予測論理を備えることが必要な点において、このような方式は比較的複雑である。
上記のタイプの方式の代わりに、いくつかのバス・プロトコルにより使用されるもう1つの可能性は、デッドロック状態が起きてから回復するためのタイムアウト機構を使用することである。しかしながら、デッドロックについてのこれまでの議論から理解されるように、そうしたデッドロックはデータ処理装置の性能に重大な衝撃を与える可能性があり、デッドロックから回復するために必要なステップが重要である。従って、一般に望ましいと思われるのは、デッドロックが起きた後でそこから回復する機構に頼るよりも、むしろデッドロックの発生の防止を追及することである。
したがって、個別のマスタ論理ユニットがトランザクションを発行する方法を制約する必要なしに、上記の上述の循環依存性デッドロック問題を制御するための改良された技法が供給されることが望ましい。
第1の面から見れば、本発明はトランザクションの遂行を実行可能にするためにデータ装置内のマスタ論理ユニットとスレーブ論理ユニットを結合する相互接続論理を供給して、各トランザクションは、マスタ論理ユニットからスレーブ論理ユニットへのアドレス転送およびそのマスタ論理ユニットとスレーブ論理ユニットの間の1つまたはそれ以上のデータ転送を含み、少なくとも1つのデータ転送はスレーブ論理ユニットからマスタ論理ユニットへの応答転送であり、各トランザクションはそれに関連するトランザクション識別子を有し、前記相互接続論理は:アドレス転送を運ぶための少なくとも1つのアドレス・チャネルおよびデータ転送を運ぶための少なくとも1つのデータ・チャネルを供給するように動作可能な複数の接続パス;前記スレーブ論理ユニットの少なくとも1つのサブセットに関連するIDエイリアシング(aliasing:分身作成)論理を含み、少なくとも1つのサブセット内の各スレーブ論理ユニットは、異なるトランザクションのために、それらトランザクションのアドレス転送のスレーブ論理ユニットによる受信順序に対して順序を違えて応答転送を発行でき;少なくともトランザクションの1つのサブセットについて、前記IDエイリアシング論理に関連するトランザクションに前記スレーブ論理ユニットが影響するならば、前記IDエイリアシング論理は:(a)所定の識別子により前記トランザクションの前記トランザクション識別子を置換えて、前記所定の識別子とともにそのトランザクションの前記アドレス転送を前記スレーブ論理ユニットへ転送し;(b)所定の識別子とともに前記スレーブ論理ユニットにより発行されるいずれかの応答転送について、前記ステップ(a)で除去された前記トランザクション識別子で前記所定の識別子を置換えて、そのトランザクションに関連する前記マスタ論理ユニットへの前記相互接続論理の前記接続パス上で、その応答転送の前記経路選択(ルーティング)を可能にするように動作できる、前記相互結合論理を供給する。
本発明によれば、IDエイリアシング論理は、スレーブ論理ユニットの少なくとも1つのサブセットに関連して供給され、IDエイリアシング論理が関連する各スレーブ論理ユニットは、異なるトランザクションのための応答転送をそれらのトランザクションのアドレス転送のスレーブ論理ユニットによる受信の順序とは異なる順序で発行できる。少なくともいくつかのトランザクションについて、IDエイリアシング論理に関連するトランザクションに前記スレーブ論理が影響するならば、所定の識別子によりそのトランザクションのトランザクション識別子を置換えるように、IDエイリアシング論理が配置される。結果として、この方法でエイリアスされたトランザクション識別子を有するいずれかのトランザクションにおいて、スレーブ論理ユニットは異なったトランザクション識別子を有するトランザクションの間でのみリオーダできるので、それら異なったトランザクションをリオーダせず、これらトランザクションの各々は同一のトランザクション識別子、すなわちIDエイリアシング論理により挿入済みの所定の識別子を有する。
続いて所定の識別子とともにスレーブ論理ユニットにより応答転送が発行されると、IDエイリアシング論理が前記所定の識別子を以前に除去済みのトランザクション識別子に置換えて、それにより、相互接続論理を介して適当なマスタ論理ユニットへ、データ転送の経路選択を可能にする。
本発明のIDエイリアシング論理の使用を通じて、既存のプロトコルの上に特別な機構を課すよりも、むしろ既存のプロトコルの機能(すなわち、スレーブ論理ユニットが同一のトランザクション識別子を有する複数のトランザクションの間でリオーダできない)を利用することにより順序付けを特定のトランザクションに課することができる。従って、本発明は、最初にこの問題を作り出した規則そのもの、すなわち、異なったトランザクション識別子を有するトランザクションの間でリオーダするスレーブ論理ユニットの能力を使用することにより、循環デッドロック問題を制御する技法を提供する。
従って、本発明は、相互接続論理内のそうした循環依存性デッドロック問題に対抗するための有効な非常に単純で効果的な技法を提供する。
トランザクションは多様な形式を取りえる。1つの実施例において、トランザクションが読取りトランザクションであれば、このトランザクションに関連するスレーブ論理ユニットは、読取りトランザクションの目的データを含む1つまたはそれ以上の応答転送を発行するように動作できる。代わりに、トランザクションが書込みトランザクションであれば、このトランザクションに関連するスレーブ論理ユニットは、書込みトランザクションの終りにトランザクション状態情報を含む応答転送を発行するように動作できる。
IDエイリアシング論理は多様な方法で配置し得る。しかしながら、1つの実施例において、IDエイリアシング論理に関連するスレーブ論理ユニットへ発行された全てのトランザクションが所定の識別子に置換え済みであるわけではなく、むしろ、IDエイリアシング論理に関連の各スレーブ論理について、関連のトランザクション識別子がトランザクション識別子の記憶されたリストに一致するかどうかを、スレーブ論理ユニットに影響する各トランザクションごとに決定するためのID照合論理を、IDエイリアシング論理が含み、もし一致するならば、所定の識別子によりトランザクション識別子を置換える。そうした解決方法により、所定の識別子によるトランザクション識別子のエイリアシングを、トランザクション識別子の一定のサブセット、例えば多数のスレーブ・デバイスへアドレスを供給することを希望するマスタ論理ユニットにより発行されたトランザクション識別子へ、限定することができる。その特定の例について、多数のスレーブ・デバイスへアクセスするのに使用される特定トランザクション識別子へ、エイリアシングを限定することも可能である。これは、記憶リストにない他のトランザクション識別子をインターリーブに参加自由にし、スレーブ論理ユニットにトランザクションのスケジュールの、いくらかの任意性を許す。
1つの実施例において、各スレーブ論理ユニットごとに、IDエイリアシング論理は更に次のものをふくむ:所定の識別子により置換えられたどれかのトランザクション識別子がそこに配置されるFIFO(先入れ先出し)記憶域;そのデータ転送に関連して所定の識別子が発行されたかどうかを検出して、もしそうならば、FIFO記憶域から得られるトランザクション識別子により所定の識別子を置換えるために、スレーブ論理ユニットにより発行される各データ転送ごとに動作可能な第2の一致論理。これは、適当なマスタ論理ユニットへ各応答転送が経路を戻るときに、適当なトランザクション識別子により所定の識別子を置換えるために、効果的な機構を提供する。
いくつかのトランザクションのために多数の応答転送が存在するので、関連のトランザクションに対する最終応答転送が発行される時まで、FIFO記憶域内にあらゆるトランザクション識別子を保存する必要がある。1つの実施例において、各スレーブ論理ユニットごとに、IDエイリアシング論理は、そのスレーブ論理ユニットに影響する各トランザクションについて、そのトランザクションのためにそのスレーブ論理ユニットにより発行される最終応答転送を検出して、そうした検出のときに、FIFO記憶域の先頭の所のトランザクション識別子を、FIFO記憶域からポップするように動作する。したがって、FIFOの先頭にあるトランザクションは、そのトランザクションの最終応答転送が発行済みになるまでFIFOの先頭の所に止まり、その後に、FIFO記憶域からポップされて、次のトランザクション識別子をFIFO記憶域の先頭へ進行するのを可能にする。
上述のように、記憶リストにないいずれかのトランザクションについて、それらトランザクション識別子は、インターリーブに参加し、また、スレーブ論理ユニットによりリオーダされることができる。1つの実施例において、前記記憶リストにないトランザクションの識別子について、IDエイリアシング論理を利用しない一つまたはそれ以上のさらなるデッドロック回避を実施するときに、それらトランザクション識別子は、マスタ論理ユニットにより使用可能である。たとえば、個別のマスタ論理ユニットがトランザクションのアドレス転送を発行できる方法に制約を加える前記の先行技術の方式に、それらトランザクション識別子を関連させることができる。したがって、本発明の実施例の方式は非常にフレキシブルなものであって、単独でも使用できるし、または、一つまたはそれ以上のさらなるデッドロック回避方式と組み合わせて使用することもできる。
1つの実施例において、前記トランザクションの少なくとも1つのサブセットは、それに影響されるスレーブ論理ユニットがIDエイリアシング論理に関連する全てのトランザクションを含む。したがって、この単純化した実施例ではIDエイリアシング論理は、所定の識別子により全てのトランザクション識別子を置換えるように配置され、それにより、受け手のスレーブ論理ユニットがそれらのトランザクションのいずれをもリオーダすることができず、単にそれら全てに順序通り処理するだけである。
そうした実施例において、各スレーブ論理ユニットについて、IDエイリアシングはさらに下記のものを含む:所定の識別子により置換えられた各トランザクション識別子が記憶されるFIFO記憶域;およびスレーブ論理ユニットにより発行される各データ転送について、FIFO記憶域から得られるトランザクション識別子により所定の識別子を置換えるように動作可能な論理を含む。ここでも、前述の実施例と同様に、ある特定のトランザクションのスレーブ論理ユニットから発行される最終応答転送を検出するようにIDエイリアシングを再配置することができ、それを検出するとFIFO記憶域の先頭の所でFIFO記憶域からトランザクション識別子をポップする。
IDエイリアシング論理は、多様な方法で配置できる、しかしながら、1つの実施例において、IDエイリアシング論理は、前記スレーブ論理ユニットの前記少なくとも1つのサブセットの内の各スレーブ論理ユニットについて別々の論理ユニットを含む。したがって、これは要求された各スレーブ論理ユニットに関連の別個のIDエイリアシング論理ユニットを備えることにより、相互接続論理とそれに結合されたスレーブ論理ユニット間のインターフェイスに近接して、IDエイリアシング論理を供給することを可能にする。
IDエイリアシング論理は、スレーブ論理ユニットの1つのサブ・セットに関連し得るが、1つの実施例において相互接続論理へ接続された全てのスレーブ論理ユニットが、IDエイリアシング論理へ関連している。
IDエイリアシング論理により受信されるトランザクション識別子は、多様な形式を取り得る。しかしながら、1つの実施例において、相互接続論理はさらに次のものを含む:各マスタ論理ユニットに関連するトランザクション識別子発生論理であって、マスタ論理ユニットにより発行されるオリジナル・トランザクション識別子をマスタ識別子に組み込むことにより、各トランザクション識別子を生成して、それにより異なったマスタ論理ユニットにより発行されるトランザクションが、相互接続論理内でユニークに識別されるように動作できる。したがって、異なったマスタ論理ユニットが、同一のオリジナル・トランザクション識別子を使用したとしても、相互接続論理内を経路選択するトランザクション識別子は、オリジナル・トランザクション識別子をマスタ識別子のトランザクション識別子発生論理に組み込むことにより、依然としてユニークなものとなる。
スレーブ論理ユニットは多様な形式を取り得る。しかしながら、1つの実施例において、IDエイリアシング論理に関連するそれらスレーブ論理ユニットの内の少なくとも一つは、メモリへのアクセスを制御するのに使用されるメモリ・コントローラである。メモリ・コントローラは、スレーブ論理ユニットの1つのタイプであって、そこでは、それらスレーブ論理回路は、トランザクションをリオーダできることが一般に望ましく、したがって、本発明は実施例のIDエイリアシング技法の使用は、メモリ・コントローラに関連した使用に特に効果的な方式である。
相互接続論理内に備えられるアドレス・チャネルおよびデータ・チャネルは、多様な形式を取り得る。しかしながら、1つの実施例において、そうしたチャネルは一方向チャネルである。したがって、双方向データ・チャネルよりもむしろ別個の読取りデータ・チャネルと、別個の書込みデータ・チャネルがあり得る。
第二の面から見れば、本発明は複数のマスタ論理ユニットとスレーブ論理ユニットを備え、またトランザクションを遂行可能にするために、マスタ論理ユニットとスレーブ論理ユニットを結合する本発明の第1面に従う相互接続論理を含むデータ処理装置を提供する。
第3の面から見ると、本発明はトランザクションを遂行可能するためにデータ処理装置内のマスタ論理手段とスレーブ論理手段を結合する相互結合論理を供給して、各トランザクションは、マスタ論理手段からスレーブ論理手段へのアドレス転送、およびそのマスタ論理手段とそのスレーブ論理手段の間の一つまたはそれ以上のデータ転送を含み、少なくとも1つのデータ転送はスレーブ論理手段からマスタ論理手段への応答転送であり、各トランザクションはそれに関連するトランザクション識別子を含み、前記相互接続論理は次のものを含む:アドレス転送を運ぶための少なくとも1つのチャネル手段およびデータ転送を運ぶための少なくとも1つのデータ・チャネル手段を供給するための複数の接続パス手段;前記スレーブ論理手段の前記サブセットに関連するIDエイリアシング手段であって、前記少なくとも1つのサブセット内の各スレーブ論理手段は、異なるトランザクションに対してそれらトランザクションのアドレス転送がスレーブ論理手段により受信された順序とは異なる順序で応答転送を発行することができる前記IDエイリアシング手段;トランザクションの少なくとも1つのサブセットのそのトランザクションに影響するスレーブ論理手段がIDエイリアシング手段に関連するならば、次の事項のためにIDエイリアシング手段が使用される:(a)そのトランザクションのためのトランザクション識別子を所定の識別子で置換えて、それから、そのトランザクションのアドレス転送を所定の識別子と共にスレーブ論理手段へ転送すること;(b)所定の識別子を有するスレーブ論理手段により発行されたいずれかの応答転送について、ステップ(a)で除去されたトランザクション識別子により、所定の識別子を置換えて、そのトランザクションに関連するマスタ論理手段への相互接続論理の接続パス手段上で、その応答転送の経路選択を可能にすること。
第4の面からみれば、本発明は、トランザクションを遂行可能にするためにデータ処理装置内のマスタ論理ユニットとスレーブ論理ユニットを結合する方法を提供し、各トランザクションはマスタ論理ユニットからスレーブ論理ユニットへのアドレス転送、およびマスタ論理ユニットとスレーブ論理ユニットの間の一つまたはそれ以上のデータ転送を含み、少なくとも1つのデータ転送はスレーブ論理ユニットからマスタ論理ユニットへの応答転送であり、各トランザクションはそれに関連するトランザクション識別子を有し、この方法は、次のステップを含む:複数の接続パスを採用してアドレス転送を運ぶための少なくとも1つのアドレス・チャネルおよびデータ転送を運ぶための少なくとも1つのデータ転送を供給すること:トランザクションの少なくとも1つのサブセットについて、異なるトランザクションに対してそれらトランザクションのアドレス転送をスレーブ論理ユニットが受信した順序とは異なる順序で、応答転送を発行できる1つのスレーブ論理ユニットを巻き込むこと:(a)そうした各トランザクションのトランザクション識別子を所定の識別子に置換えて、それからそのトランザクションのアドレス転送を所定の識別子と共にスレーブ論理ユニットへ転送すること;(b)所定の識別子と共にスレーブ論理ユニットにより発行されたあらゆる応答転送について、前記ステップ(a)で除去されたトランザクション識別子により所定の識別子を置換えて、そのトランザクションに関連するマスタ論理ユニットへの接続パス上で、その応答転送の経路選択を可能にすること。
本発明の諸実施例において、データ処理装置の相互接続論理は、別々のアドレス・チャネルとデータ・チャネルを備えたスプリット・トランザクション・プロトコルを採用し、データ転送のタイミングは特定トランザクションのアドレス転送のタイミングに対して、分断されている。1つの特定実施例において、相互接続論理はAXIプロトコルに従って動作して、相互接続論理の接続パスは、5つのチャネル、すなわち読取りアドレス・チャネル、書込みアドレス・チャネル、読取りデータ・チャネル、書込みデータ・チャネルおよび書込み応答チャネルを備えている。
図1は、そうした相互接続論理を組み込んだデータ処理装置のブロック図である。図1に示すように、相互接続論理は、そこに接続されたいくつかのマスタ・デバイス、この例ではそこに接続された3つのマスタ・デバイスM0、M1、M2、すなわち80、85、90を有し、また、そこに接続されたいくつかのスレーブ・デバイス、この例ではスレーブ・デバイスS0、S1、S2、すなわち95、100、105を有する。相互接続論理10は、いくつかの接続パスを介してマスタ論理ユニットとスレーブ・ユニットを結合して、トランザクションを遂行可能にしている。各トランザクションは、アドレス・チャネル上で、マスタ論理ユニットからスレーブ論理ユニットへの1つのアドレス転送、および適当なデータ・チャネル上で、そのマスタ論理ユニットとそのスレーブ論理ユニットとの間の一つまたはそれ以上のデータ転送からなる。単純化のために、図1には個別のチャネルに別々に示してはいない。
アドレス転送を発行することにより各マスタ論理ユニットが1つのトランザクションを開始するときに、そのマスタ論理ユニットはまたアドレス転送と共にそのトランザクションを識別するためのトランザクション識別子を発行し、このトランザクション識別子は、それからトランザクションのデータ転送に関連して使用され、それによりそれらデータ転送はアドレス転送と適合させることができる。
各マスタ論理ユニット80、85、90は、トランザクションのために使用する一つまたはそれ以上のトランザクション識別子を有し、いずれか特定のマスタ論理ユニットにより使用されるトランザクション識別子は、いずれか他のマスタ論理ユニットにより使用される一つまたはそれ以上のトランザクション識別子と異なる場合も異ならない場合もあり得る。
各マスタ論理に関連して、相互接続論理10は、制御および経路選択論理20、30、40を有し、それらの各々がマルチプレクサ/デマルチプレクサ論理24、34、44を含み、これらは、適当な接続パス上でトランザクションのアドレス転送を経路選択するもので、適当なスレーブ論理ユニット95、100、105へ経路選択するアドレス転送を動作可能にして、そのスレーブ論理ユニットへの書込みデータ転送の経路選択を行い、また、そのスレーブ・ユニットから関連のマスタ・ユニットに戻る読取りデータ転送または書込み応答転送(書込みトランザクションの終りにトランザクション・ステータス情報、たとえば、トランザクションを成功のうちに完了したかどうかを識別する情報を含む書込み応答転送)の経路選択をする。
追加的に、異なるマスタからのトランザクションも相互接続論理10内でユニークに識別できるようにするために、各制御および経路選択論理20、30、40もまたID追加/除去論理ユニット22、32、42を含み、これらは関連のマスタ論理ユニットにより発行される各トランザクション識別子のために配置され、そのマスタへ応答を返す経路選択ができるマスタ番号によって、そのトランザクション識別子を拡張する。同様に、転送がマスタへ戻る経路を選択する時は、ID追加/除去論理ユニット22、32、42は、関連のマスタ論理ユニット80、85、90へ応答転送が返される以前にマスタ番号を剥奪する。適当なマスタへ戻る応答の経路を選択できることに加えて、マスタ番号によりトランザクション識別子を拡張して相互接続論理内に新形式のトランザクション識別子を生成することは、また、異なったトランザクション識別子を有するトランザクションをリオーダする能力を有するスレーブ論理ユニット95、100、105のいずれかが、異なったマスタからのトランザクションを、それらがたとえ元々は同一トランザクション識別子を持っていたとしても、リオーダできるという結果をもたらす。
相互接続論理10はまた各スレーブ・ユニット95、100、105に関連してマルチプレクサ/デマルチプレクサ論理50、60、70を含み、これらは関連スレーブ論理ユニットへアドレス転送および書込み転送の経路選択をし、また、同様に適当なマスタ論理ユニットへ向かって相互接続論理10を通じてスレーブ論理ユニットにより発行される応答転送を経路選択する。
図1の相互接続論理10は、それに接続された3つのマスタ論理ユニットと3つのスレーブ論理ユニットのみを示すが、相互接続へ接続されるマスタ論理ユニットとスレーブ論理ユニットの数を変更可能であることが理解され、また、相互接続論理10内に備えられた接続パスは、図1に図示した単純な接続パス網よりもかなり複雑さの増したものになりうることが理解されよう。
前述のように、相互接続論理10に接続されたスレーブ論理ユニットに、異なったトランザクション識別子を有する保留中のトランザクションをリオーダする能力が与えられている時は、このことが、個別のスレーブ論理ユニットからのトランザクションの処理性能の改良を導き、また、いくつかのトランザクションを他のトランザクションに優先させることも可能にする。しかしながら、そうしたフレキシビリティの1つの潜在的な副作用として、相互接続論理10内に循環依存性デッドロックが起り得る。こうした問題を軽減するために、本発明の1つの実施例の相互接続論理10は、相互接続論理10に結合された一つまたはそれ以上のスレーブ論理ユニットに関連するIDエイリアシング論理ユニット55、65、75を有する。例示のために、図1において各スレーブ論理ユニット95、100、105は、関連するIDエイリアシング論理ユニット55、65、75を有することが示されている。しかしながら、相互接続論理10へ接続された特定のスレーブ論理ユニットがトランザクションをリオーダできないならば、その時は、関連のIDエイリアシング論理ユニットの必要が何も存在しない。同様に、トランザクションをリオーダできる相互接続論理10内の特定スレーブ論理ユニットについて、個別のマスタ論理ユニットがアドレスを供給できる方法を制限する前述の方式のような代わりのデッドロック回避方式が実現するならば、関連のIDエイリアシング論理ユニットの必要は全く存在しない。しかしながら、1つの実施例において、そうしたIDエイリアシング論理ユニットは、トランザクションをリオーダできるあらゆるスレーブ論理ユニットに関連して供給される。
各IDエイリアシング論理55、65、75は、トランザクションの少なくとも1つのサブセットについて、所定の識別子で関連のトランザクション識別子を置換えて、それから、所定の識別子と共にトランザクションのアドレス転送をスレーブ論理ユニットへ転送するように配置される。この所定の識別子は、IDエイリアシング論理により受信されたいずれかのトランザクション識別子と異なる限り、あらかじめ選択されたどんな値も持ち得る。これは、たとえばIDに余計なビットを付加して、全て1の値を使用することにより達成される。
同様に、書込みトランザクションのいずれかの書込み転送において、IDエイリアシング論理ユニットは、ここでも、所定の識別子でトランザクション識別子を置換える。結果として、この方法によりエイリアスされた識別子を有するいずれかのトランザクションについて、関連のスレーブ論理ユニットがそれらトランザクションの各々に関係している限り同じ識別子を有するので、そのスレーブ論理ユニットは、それらトランザクションの間でリオーダすることができない。結果として、そうした解決方法はそれらトランザクションに関連して起るデッドロックについての潜在性を除去する順序に、それらのトランザクションを処理することをそのスレーブ論理ユニットに強制する。
所定の識別子を有するスレーブ論理ユニットによりいずれかの応答転送が発行される時は、IDエイリアシング論理ユニット55、65、75は、関連のトランザクションに関連して事前に除去済みのトランザクション識別子により所定の識別子を置換えるように配置され、それにより、そのトランザクションに関連するマスタ論理ユニットへ向けて、相互接続論理を介して、その応答転送の経路選択をすることが可能になる。
1つの実施例において、各IDエイリアシング論理ユニット55、65、75は、所定の識別子によりあらゆるトランザクション識別子を置換えるように配置される。この実施例は最も単純であって、循環依存性デットロックの発生を防止する。しかしながらこの実施例では、全ての識別子が単一の識別子が置換えられるので、複数のマスタへまたは複数のマスタから、転送をインターリーブすることが禁止される。
代わりの実施例によれば、トランザクション識別子のエイリアシングは、あり得るトランザクション識別子の一定のサブセットに限定され、たとえば複数のスレーブ・デバイスへアドレスを供給することを希望するマスタ論理ユニット発行のトランザクション識別子に限定される。そうした各マスタ論理ユニットについては、複数のスレーブ・デバイスへアクセスするのに使用される特定の識別子にエイリアシングを限定するのが有利である。これにより、他のトランザクションがインターリービングに参加するのに自由になり、それらのトランザクション・スケージュールの際に、スレーブ論理ユニットにいくらかの自由裁量を許すことになる。
図2は、そうした実施例により図1に図示した各IDエイリアシング論理ユニットの構成を示すブロック図である。図2において、図面の上部のパス200、225は、アドレス転送または書込みデータ転送に関連して発行されるいずれかのトランザクション識別子が取るパスである。一方、図2の下部にあるパス230、245は、応答転送、たとえば、読取りトランザクション読取り転送、または書込みトランザクションにおける書込み転送に関連したいずれかのトランザクション識別子が取るパスである。図2から理解されるように、パス200上でマスタからトランザクション識別子が受信されると、そのトランザクション識別子は、マルチプレクサ205への1つのインプットとして経路選択され、マルチプレクサ205はまた第2の入力として、図2において特別識別子と呼ばれる所定の識別子を受信する。その上、パス200上でマスタから受信されるトランザクション識別子は、ID一致および制御論理215へ経路選択され、ID一致および制御論理215は、エイリアシングが遂行されるトランザクション識別子を記憶したリストに、そのトランザクション識別子が一致するかどうかを決定するのに使用される。ID一致および制御論理215により遂行される処理は、図3を参照して一層詳細に後述する。一致が検出されると、ID一致および制御論理215は、マルチプレクサ205へ制御信号を発行して、マルチプレクサ205に、パス210上で受信された特別識別子をパス225へ出力させ、そして追加的にID一致および制御論理215は、パス200上で受信された元のトランザクション識別子をFIFO220へ出力する。
1つの実施例において、特別識別子によりトランザクション識別子を置換えられた各トランザクションについて、1つのエントリがFIFO220へ入力される。関連するスレーブ・デバイスが応答転送を発行すると、その転送に関連するトランザクション識別子が、マルチプレクサ235への1つの入力として、パス230上で経路選択される。マルチプレクサ235への他の入力は、FIFO220の先頭のエントリにより供給される。パス230上で受信されるトランザクション識別子はまた、エイリアスされたID一致論理240へ経路選択され、エイリアスされたID一致論理240は、そのトランザクション識別子が特別識別子であるかどうか決定して、もしそうならば、マルチプレクサ235へ制御信号を発行して、このマルチプレクサにパス245の上でFIFO220の先頭から得られるトランザクション識別子を出力させる。さもなければ、エイリアスされたID一致論理240は、マルチプレクサ235を制御して、パス230上で受信されたトランザクション識別子をパス245上に出力する。エイリアスされた一致論理240の動作については、図4を参照して一層詳細に後述する。
図3は、本発明の1つの実施例によるID一致および制御論理215の動作を示すフローチャートである。ステップ300で、アドレスおよび関連制御情報転送が、マスタ・デバイスより「n」のトランザクション識別子とともにスレーブ・デバイスへ発行され、ここでnはいずれか任意の値である。
ステップ305で、ID一致および制御論理215により維持されるリスト内の特定IDの一つにID「n」が一致するかどうかを決定する。もし一致しないならば、そのときは、処理はステップ320へ進行して、そこで、トランザクションID「n」を変化さずに出力パス225へ通すようにマルチプレクサ205がセットされ、その後にステップ325で処理が終了する。
しかしながら、ステップ305で一致が検出されれば、その時は、処理がステップ310へ進行して、そこで、マルチプレクサがセットされて、元の識別子「n」をパス210上で受信した特別な識別子で置換え、それから、さらに315で元の識別子「n」をFIFO220へプッシュする。そのあと、ステップ325で終了する。
さて、図2のエイリアスID一致論理240の動作を、図4を参照してさらに説明する。ステップ400で、スレーブ・デバイスからマスタ・デバイスへの応答転送が「x」のIDとともに発行される。そのあとステップ405で、識別子「x」が特別識別子と一致するかどうかが決定される。もし一致しないならば、その時は、ステップ425でマルチプレクサ235がセットされて、この識別子を変更せずにパス230からパス245へ渡し、その後でステップ430で処理が終了する。
しかしながら、ステップ405で一致が検出された場合は、処理はステップ410へ進行して、そこでマルチプレクサ235がセットされて、FIFO220の先頭のエントリから得られた識別子「n」により、特別識別子を置換える。そのあとステップ415で、問題の応答転送がトランザクションの最後の応答転送であるかどうかが決定される。もしそうでなければ、さらなる動作を要求されることなく、ステップ430で処理が終了する。しかしながら、この応答転送がトランザクションの最後の応答転送であるならば、そのときは処理はステップ420へ進行して、そこでFIFOの先頭にあるエントリを除去して新エントリがFIFOの先頭へ進行できるように、FIFO220がポップされる。
したがって、スレーブ・デバイスからの複数の応答転送を有するトランザクションの場合、たとえば、1つのブロック読取り処理を規定する読取りトランザクションの場合、各応答転送について、適当なマスタ論理ユニットへ相互接続論理10上で経路選択するために、同一のトランザクション識別子がFIFO220の先頭から得られ、しかし最後の応答転送に出会った時に、これはFIFOをポップさせ、FIFOからそのトランザクション識別子を除去させて、次のトランザクション識別子がFIFOからの先頭へ進行できるようにすることであることが理解されよう。その後に、この特別IDによりエイリアスされたIDを有する次のトランザクションに関連して、応答転送が発行され始める時に、マルチプレクサ235から出力するために、適当なトランザクション識別子がFIFOの先頭の所にある。
既存のプロトコルは、典型的にトランザクションの最終応答転送をマークするために何かの機構を有し、したがってエイリアスされたID一致論理240に必要な全ては、最終応答転送に関連するそうしたマーキングを検出すること、およびそうした識別の結果としてステップ420を遂行することである。前述したAXIプロトコルを考察すると、書込みトランザクションは単一の応答転送、すなわち、書込み応答転送を有するだけであり、一方読取り転送は1ないし16個の応答転送、すなわち、読取り応答転送を有し得る。この、最後の読取りデータ転送は、それが、トランザクションの最後の応答転送であることを識別するために、それに関連して表明されるRLAST信号を有する。
1つの実施例にIDにおいて、ID一致および制御論理215は静的に構成されており、したがって、とりわけ、エイリアスされるべきトランザクションIDのリストは特別識別子により置換えられるべき1つの識別子または複数の識別子の範囲によって、静的に構成されている。しかしながら、代わりの実施例において、IDおよび制御論理215は、ダイナミックにプログラムされ得る。一つの実施例によれば、IDおよび一致制御論理215に記憶された識別子のリストは、複数のスレーブによる同時トランザクションのために使用されるべき全てのマスタからの全ての識別子を包含する。
さて次の説明において、IDエイリアシング論理55、65、75を使用しない場合に、図1に示される相互接続論理内にデッドロックを導くかもしれないトランザクションシーケンスの例を説明する。
図1に示す相互接続を与えられる場合に、下記はデッドロックを引き起こすかも知れないトランザクションシーケンスの例である。
Figure 0005322412
注:
1.M0‐>S2は、「マスタM0がスレーブS2へ、トランザクションを開始するための制御情報を送信する」と解釈すべきである。
2.この例において、全てのトランザクションは、これらがマスタを離れるときに同じIDを有する。しかしながら、相互接続が発信元マスタ番号をこれらのIDへ連結するので、スレーブには、由来するマスタによって異なったIDに見える。これにより、たとえ開始に際して異なったマスタからのトランザクションが同一のIDを持っていても、スレーブがそれらのトランザクションをリオーダすることができる。
このシーケンスの後で、これらのスレーブは下記の行列のトランザクションが行列(queue)に入れられる。
Figure 0005322412
添え字は、プロトコルによって要求される様に、マスタへ応答を返さなければならない順序を示す。
トランザクションの処理をリオーダするスレーブが一つも無くて、到着する順序でそれらの応答を与えるならば、そのときは、デッドロックは存在しない:−
Figure 0005322412
しかしながら、それらスレーブの1つがトランザクションの処理をリオーダするとすれば、デッドロックが起り得る。スレーブS0がその処理をリオーダして、その行列が下記のようになる場合を考える:−
Figure 0005322412
応答のシーケンスを下記の通りである:−
Figure 0005322412
注)1.S0‐>M2は、「マスタM2に期待される第2の応答をスレーブS0が開始する」と解釈すべきである。
図1ないし図4を参照して説明した本発明の実施例は、相互接続内で連結されたIDをトランザクションをリオーダできる全てのスレーブのためのユニークなIDに置換えることにより、デッドロック状況を防止する。これは、デッドロック状況に導くスレーブ論理内のリオーダリングを防止する。
前述した「単一スレーブ」および「ユニークID」のデッドロック防止方式は、スレーブの間の順序を温存する必要性を明示的に避けるので、本発明の諸実施例の技法と自由に混合できる。
しかしながら、本発明の諸実施例の技法は、多重スレーブ・デッドロック回避方式(たとえば、前述した「循環順序」方式)と混合することは出来ないが、それは、スレーブ間の順序を温存するそれらの機構が本発明の機構と干渉するからである。
本発明の1つの実施例についての上記説明から理解されるのは、そうした諸実施例は、スプリット・トランザクション・プロトコル・システムに固有の循環依存性デッドロックを制御する新しい方法を提供することができ、詳しくは、本発明の諸実施例の技法は、第1の場所に問題を生成する規則自体を使用してこれを達成することである。特に、本発明の諸実施例の技法は、問題を形成する順序要件を使用することにより、循環依存性デッドロック問題を克服する。前述のように、デッドロック問題を制御する他の諸方法が存在するが、それらは、付加的なメカニズムにより順序付けの制約を維持しようとするので、不可避的に一層複雑で一層制限的なものになる。
特定の諸実施例を本書に説明してきたが、理解すべきは本発明がそれらに限定されるものではなく、本発明の範囲内でそれらに多くの修正と追加がなされ得ることである。たとえば、下記の従属請求項の機能の種々の組み合わせが、独立請求項機能と共に本発明の範囲から離れることなく成し得る。
添付図面に図示された諸実施例に参照して、例示の方法により本発明を詳細に説明してきた。
本発明の1つの実施例によるデータ処理装置のブロック図である。 本発明の1つの実施例により図1に示された各IDエイリアシング・ユニットの構成を示す略図である。 本発明の1つの実施例による図2のID一致および制御論理の動作を示すフローチャートである。 本発明の1つの実施例による図2のエイリアスされたID一致論理の動作を示すフローチャートである。
符号の説明
10 相互接続論理
20,30,40 制御および経路選択論理
22,32,42 ID追加/除去論理ユニット
24,34,44 マルチプレクサ/デマルチプレクサ論理
50,60,70 マルチプレクサ/デマルチプレクサ論理
55,65,75 IDエイリアシング論理
80,85,90 マスタ論理ユニット
95,100,105 スレーブ論理ユニット
200,210,225,230,245 バス
205 マルチプレクサ
215 ID一致および制御論理
220 FIFO
240 エイリアスされたID一致論理

Claims (18)

  1. トランザクションの遂行を実行可能するためにデータ処理装置内の複数のマスタ論理ユニットと複数のスレーブ論理ユニットを結合する相互接続論理であって、各トランザクションは、マスタ論理ユニットからスレーブ論理ユニットへのアドレス転送およびそのマスタ論理ユニットとスレーブ論理ユニットの間の1つまたはそれ以上のデータ転送を含み、少なくとも1つのデータ転送はスレーブ論理ユニットからマスタ論理ユニットへの応答転送であり、各トランザクションはそれに関連するトランザクション識別子を有し、前記相互接続論理は:
    アドレス転送を運ぶための少なくとも1つのアドレス・チャネルとデータ転送を運ぶための少なくとも1つのデータ・チャネルとを供給するように動作可能な複数の接続パス、;
    前記スレーブ論理ユニットの少なくとも1つのサブセットに関連するIDエイリアシング論理;
    を含み、
    前記少なくとも1つのサブセット内の各スレーブ論理ユニットは、異なるトランザクション識別子を伴う複数のトランザクションに対して、それらトランザクションのアドレス転送を受信した順序とは異なる順序で、応答転送を発行でき、
    トランザクションの少なくとも1つのサブセットについて、それらトランザクションに関係する前記スレーブ論理ユニットが前記IDエイリアシング論理に関連している場合に、前記IDエイリアシング論理は:
    (a)IDエイリアシング論理により受信されるいずれのトランザクション識別子とも異なる所定の識別子により前記トランザクションの前記トランザクション識別子を置換えて、前記所定の識別子とともにそのトランザクションの前記アドレス転送を前記スレーブ論理ユニットへ転送し;
    (b)前記所定の識別子とともに前記スレーブ論理ユニットにより発行されるいかなる応答転送についても、前記ステップ(a)で除去された前記トランザクション識別子により前記所定の識別子を置換えて、そのトランザクションに関連する前記マスタ論理ユニットへの前記相互接続論理の前記接続パス上で、その応答転送のルーティングを可能にするように動作でき、
    前記トランザクションの少なくとも1つのサブセットが同じ前記所定の識別子を有することによって、該IDエイリアシング論理に関連するスレーブ論理ユニットは、前記トランザクションの少なくとも1つのサブセットに対する応答転送を順序を変更して発行することを妨げられる、前記相互接続論理。
  2. 前記トランザクションが読取りトランザクションであれば、前記トランザクションに関連する前記スレーブ論理ユニットが、前記読取りトランザクションの対象となるデータを含む1つまたはそれ以上の応答転送を発行するように動作可能である請求項1記載の相互接続論理。
  3. 前記トランザクションが書込みトランザクションであれば、前記トランザクションに関連する前記スレーブ論理ユニットが前記書込みトランザクションの終りにトランザクション状態情報を含む1つの応答転送を発行するように動作可能な請求項1記載の相互接続論理。
  4. 前記IDエイリアシング論理に関連する各スレーブ論理ユニットに対して、前記スレーブ論理ユニットに影響する各トランザクションについて、前記関連するトランザクション識別子が記憶されたトランザクション識別子と一致するかどうかを決定して、もし一致するならば前記トランザクション識別子を前記所定の識別子に置換えるID一致論理を前記IDエイリアシング論理が含む請求項1記載の相互接続論理。
  5. 各スレーブ論理ユニットに対して前記IDエイリアシング論理は更に、
    所定の識別子により置換えられたあらゆるトランザクション識別子が置かれるFIFO記憶域と、
    前記スレーブ論理ユニットにより発行される各データ転送について、そのデータ転送に関連して所定の識別子が発行されたかどうかを検出して、発行されたならば、前記所定の識別子を前記FIFO記憶域から得られる前記トランザクション識別子に置換えるように動作可能な第2の一致論理とを有する、請求項4記載の相互接続論理。
  6. 各スレーブ論理ユニットにおいて、スレーブ論理ユニットに影響する各トランザクションについて、そのトランザクションのためにそのスレーブ論理ユニットにより発行される最終応答転送を検出して、そうした検出に際して、前記FIFO記憶域からトランザクション識別子を前記FIFO記憶域の先頭でポップするように前記IDエイリアシング論理ユニットが動作可能である請求項5記載の相互接続論理。
  7. 前記IDエイリアシング論理を使用しない1つまたはそれ以上の更なるデッドロック回避方式を実施する場合は、前記記憶されたリストにないあらゆる識別子について、マスタ論理ユニットによりそれらトランザクション識別子を利用可能である請求項4記載の相互接続論理。
  8. トランザクションに影響する前記スレーブ論理ユニットが前記IDエイリアシング論理に関連するような全てのトランザクションを、前記トランザクションの少なくとも1つのサブセットが含む請求項1記載の相互接続論理。
  9. 各スレーブ論理ユニットに対して、前記IDエイリアシング論理が更に、
    前記所定の識別子により置換えられた各トランザクション識別子が配置されるFIFO記憶域と、
    前記スレーブ論理ユニットにより発行される各データ転送について、前記所定の識別子を前記FIFO記憶域から得られる前記トランザクション識別子により置換えるように動作可能な論理とを含む請求項8記載の相互接続論理。
  10. 各スレーブ論理ユニットに対して、そのスレーブ論理ユニットに影響する各トランザクションについて、そのトランザクションのためにスレーブ論理ユニットにより発行される最終応答転送を検出して、そうした検出に際して、前記FIFO記憶域からトランザクション識別子を前記FIFO記憶域の先頭でポップするように前記IDエイリアシング論理ユニットが動作可能である請求項9記載の相互接続論理。
  11. 前記スレーブ論理ユニットの前記少なくとも1つのサブセット内の各スレーブ論理ユニット毎に1つの別々の論理ユニットを、前記IDエイリアシング論理が含む請求項1記載の相互接続論理。
  12. 前記スレーブ論理ユニットの前記少なくとも1つのサブセットが、前記複数のスレーブ論理ユニットの全てを含む請求項1記載の相互接続論理。
  13. 各マスタ論理ユニットに関連し、また前記マスタ論理ユニットにより発行されるオリジナルのトランザクション識別子をマスタ識別子に組込むことにより各トランザクション識別子を生成するように動作可能であり、それにより異なるマスタ論理ユニットにより発行される複数のトランザクションが、相互接続論理内でユニークに識別されるトランザクション識別子発生論理を更に含む請求項1記載の相互接続論理。
  14. 前記少なくとも1つのサブセット内の前記少なくとも1つのスレーブ論理ユニットが、メモリへのアクセスを制御するのに使用されるメモリ・コントローラである請求項1記載の相互接続論理。
  15. 前記少なくとも1つのアドレス・チャネルと前記少なくとも1つのデータ・チャネルが一方向チャネルである請求項1記載の相互接続論理。
  16. 複数のマスタ論理ユニットおよび複数のスレーブ論理ユニットと、
    前記マスタ論理ユニットと前記スレーブ論理ユニットを結合してトランザクションを遂行可能にする請求項1記載の相互接続論理とを含むデータ処理装置。
  17. トランザクションの遂行を実行可能にするためにデータ処理装置内の複数のマスタ論理手段と複数のスレーブ論理手段を結合する相互接続論理であって、各トランザクションは、マスタ論理手段からスレーブ論理手段へのアドレス転送およびそのマスタ論理手段とスレーブ論理手段の間の1つまたはそれ以上のデータ転送を含み、少なくとも1つのデータ転送はスレーブ論理手段からマスタ論理手段への応答転送であり、各トランザクションはそれに関連するトランザクション識別子を有し、前記相互接続論理は:
    アドレス転送を運ぶための少なくとも1つのアドレス・チャネル手段およびデータ転送を運ぶための少なくとも1つのデータ・チャネル手段とを供給する複数の接続パス手段;
    前記スレーブ論理手段の少なくとも1つのサブセットに関連するIDエイリアシング手段;
    を含み、
    前記少なくとも1つのサブセット内の各スレーブ論理手段は、異なるトランザクション識別子を伴う複数のトランザクションに対して、それらトランザクションのアドレス転送を受信した順序とは異なる順序で、応答転送を発行でき、
    トランザクションの少なくとも1つのサブセットについて、トランザクションに影響する前記スレーブ論理手段が前記IDエイリアシング手段に関連するならば、前記IDエイリアシング手段は:
    (a)IDエイリアシング手段により受信されるいずれのトランザクション識別子とも異なる所定の識別子により前記トランザクションの前記トランザクション識別子を置換えて、前記所定の識別子とともにそのトランザクションの前記アドレス転送を前記スレーブ論理手段へ転送し;
    (b)前記所定の識別子とともに前記スレーブ論理手段により発行されるいかなる応答転送についても、前記ステップ(a)で除去された前記トランザクション識別子により前記所定の識別子を置換えて、そのトランザクションに関連する前記マスタ論理手段への前記相互接続論理の前記接続パス手段上で、その応答転送のルーティングを可能にするに動作でき、
    前記トランザクションの少なくとも1つのサブセットが同じ前記所定の識別子を有することによって、該IDエイリアシング手段に関連するスレーブ論理手段は、前記トランザクションの少なくとも1つのサブセットに対する応答転送を順序を変更して発行することを妨げられる、前記相互接続論理。
  18. トランザクションの遂行を実行可能にするためにデータ処理装置内の複数のマスタ論理ユニットと複数のスレーブ論理ユニットを結合する方法であって、各トランザクションは、マスタ論理ユニットからスレーブ論理ユニットへのアドレス転送およびそのマスタ論理ユニットとスレーブ論理ユニットの間の1つまたはそれ以上のデータ転送を含み、少なくとも1つのデータ転送はスレーブ論理ユニットからマスタ論理ユニットへの応答転送であり、各トランザクションはそれに関連するトランザクション識別子を有し、
    前記データ処理装置は、アドレス転送を運ぶための少なくとも1つのアドレス・チャネルおよびデータ転送を運ぶための少なくとも1つのデータ・チャネルを供給する複数の接続パスを含み、
    前記方法は、前記スレーブ論理ユニットの少なくとも1つのサブセットに関連するIDエイリアシング論理によって実行され、
    異なるトランザクション識別子を伴う複数のトランザクションに対して、それらトランザクションの前記アドレス転送を受信した順序とは異なる順序で応答転送を発行できるスレーブ論理ユニットに影響するトランザクションの少なくとも1つのサブセットについて:
    (a)IDエイリアシング論理により受信されるいずれのトランザクション識別子とも異なる所定の識別子により前記トランザクションの前記トランザクション識別子を置換えて、前記所定の識別子とともにそのトランザクションの前記アドレス転送を前記スレーブ論理ユニットへ転送するステップと;
    (b)前記所定の識別子とともに前記スレーブ論理により発行されるいかなる応答転送についても、前記ステップ(a)で除去された前記トランザクション識別子により前記所定の識別子を置換えて、そのトランザクションに関連する前記マスタ論理ユニットへの前記接続パス上で、その応答転送のルーティングを可能にするステップと;
    を含み、
    前記トランザクションの少なくとも1つのサブセットが同じ前記所定の識別子を有することによって、該IDエイリアシング論理に関連するスレーブ論理ユニットは、前記トランザクションの少なくとも1つのサブセットに対する応答転送を順序を変更して発行することを妨げられる、前記方法。
JP2007204889A 2006-08-08 2007-08-07 データ処理装置のための相互接続論理 Active JP5322412B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GB0615734A GB2440758B (en) 2006-08-08 2006-08-08 Interconnect logic for a data processing apparatus
GB0615734.1 2006-08-08

Publications (2)

Publication Number Publication Date
JP2008041099A JP2008041099A (ja) 2008-02-21
JP5322412B2 true JP5322412B2 (ja) 2013-10-23

Family

ID=37056010

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007204889A Active JP5322412B2 (ja) 2006-08-08 2007-08-07 データ処理装置のための相互接続論理

Country Status (4)

Country Link
US (1) US7558895B2 (ja)
JP (1) JP5322412B2 (ja)
CN (1) CN101122893B (ja)
GB (1) GB2440758B (ja)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8000229B2 (en) * 2007-02-07 2011-08-16 Lightfleet Corporation All-to-all interconnect fabric generated monotonically increasing identifier
US7895381B2 (en) * 2009-02-16 2011-02-22 Himax Media Solutions, Inc. Data accessing system
GB2478795B (en) * 2010-03-19 2013-03-13 Imagination Tech Ltd Requests and data handling in a bus architecture
JP2012073851A (ja) * 2010-09-29 2012-04-12 Sony Corp バスシステムおよびそのデッドロック回避回路
GB2484483B (en) * 2010-10-12 2018-07-11 Advanced Risc Mach Ltd Communication using integrated circuit interconnect circuitry
KR101699781B1 (ko) * 2010-10-19 2017-01-26 삼성전자주식회사 시스템 온 칩 및 그것의 데이터 중재 방법
JP5664187B2 (ja) * 2010-12-06 2015-02-04 ソニー株式会社 相互接続装置、および、その制御方法
JP5659817B2 (ja) * 2011-01-21 2015-01-28 ソニー株式会社 相互接続装置
US8656078B2 (en) 2011-05-09 2014-02-18 Arm Limited Transaction identifier expansion circuitry and method of operation of such circuitry
US8861410B2 (en) 2011-10-31 2014-10-14 Qualcomm Incorporated Method and apparatus for scalable network transaction identifier for interconnects
US9069912B2 (en) * 2012-03-31 2015-06-30 Qualcomm Technologies, Inc. System and method of distributed initiator-local reorder buffers
US9348537B2 (en) * 2013-09-10 2016-05-24 Qualcomm Incorporated Ascertaining command completion in flash memories
GB2522057B (en) * 2014-01-13 2021-02-24 Advanced Risc Mach Ltd A data processing system and method for handling multiple transactions
US10061671B2 (en) * 2015-04-13 2018-08-28 Arm Limited Apparatus and methods for logic analysis to detect trigger conditions relating to data handling transactions in systems using transaction identifiers
US10255210B1 (en) * 2016-03-01 2019-04-09 Amazon Technologies, Inc. Adjusting order of execution of a target device
KR20180062807A (ko) 2016-12-01 2018-06-11 삼성전자주식회사 시스템 인터커넥트 및 이를 포함하는 시스템 온 칩
GB2557944B (en) * 2016-12-19 2020-02-12 Advanced Risc Mach Ltd Transaction handling
JP6767269B2 (ja) * 2017-01-24 2020-10-14 Necプラットフォームズ株式会社 情報処理システム、情報処理装置、周辺装置、データ転送方法、及びデータ転送プログラム
US10402349B2 (en) * 2017-02-08 2019-09-03 Arm Limited Memory controller having data access hint message for specifying the given range of one or more memory addresses
CN107894963B (zh) * 2017-11-27 2021-07-27 上海兆芯集成电路有限公司 用于系统单芯片的通信控制器与通信方法
FR3089322B1 (fr) * 2018-11-29 2020-12-18 St Microelectronics Rousset Gestion des restrictions d’accès au sein d’un système sur puce
CN113886310B (zh) * 2021-11-02 2024-08-06 上海兆芯集成电路股份有限公司 桥接模块、数据传输系统和数据传输方法
CN114265872B (zh) * 2022-02-24 2022-05-24 苏州浪潮智能科技有限公司 一种用于总线的互联装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5682485A (en) * 1994-12-01 1997-10-28 Unisys Corporation Deadlock avoidance for switched interconnect bus systems
US6412030B1 (en) * 1999-04-16 2002-06-25 Koninklijke Philips Electronics N.V. System and method to optimize read performance while accepting write data in a PCI bus architecture
US6587930B1 (en) * 1999-09-23 2003-07-01 International Business Machines Corporation Method and system for implementing remstat protocol under inclusion and non-inclusion of L1 data in L2 cache to prevent read-read deadlock
US6529979B1 (en) * 1999-11-08 2003-03-04 International Business Machines Corporation Method and apparatus for a high-speed serial communications bus protocol with positive acknowledgement
US6665730B1 (en) * 1999-12-16 2003-12-16 At&T Corp. Method and apparatus for transaction routing in a connection-oriented packet network using a non-fault-tolerant directory server
US6657632B2 (en) * 2001-01-24 2003-12-02 Hewlett-Packard Development Company, L.P. Unified memory distributed across multiple nodes in a computer graphics system
CN1174584C (zh) * 2002-08-13 2004-11-03 北京长城鼎兴网络通信技术有限公司 一种利用串行总线实现多点通信的方法
US7181556B2 (en) 2003-12-23 2007-02-20 Arm Limited Transaction request servicing mechanism
US7418625B2 (en) * 2004-09-09 2008-08-26 Broadcom Corporation Deadlock detection and recovery logic for flow control based data path design
US7219178B2 (en) 2004-09-30 2007-05-15 Arm Limited Bus deadlock avoidance

Also Published As

Publication number Publication date
CN101122893B (zh) 2012-03-21
US7558895B2 (en) 2009-07-07
JP2008041099A (ja) 2008-02-21
GB2440758B (en) 2011-03-30
CN101122893A (zh) 2008-02-13
GB2440758A (en) 2008-02-13
GB0615734D0 (en) 2006-09-20
US20080040523A1 (en) 2008-02-14

Similar Documents

Publication Publication Date Title
JP5322412B2 (ja) データ処理装置のための相互接続論理
JP4638216B2 (ja) オンチップバス
JP4808514B2 (ja) 大域的非同期ネットワークオンチップシステムにおける通信ノードアーキテクチャ
JP4808513B2 (ja) システムオンチップの大域的非同期通信アーキテクチャ
JP4405277B2 (ja) ディスク制御装置
EP1591908A1 (en) Separating transactions into different virtual channels
US20090198956A1 (en) System and Method for Data Processing Using a Low-Cost Two-Tier Full-Graph Interconnect Architecture
GB2428338A (en) Protection arrangement of a charging circuit for a battery pack
EP1449100B1 (en) A switching i/o node for connection in a multiprocessor computer system
GB2426604A (en) Interconnect logic for data processing apparatus
WO2006018753A1 (en) Integrated circuit and method for packet switching control
US20140359195A1 (en) Crossbar switch, information processing apparatus, and information processing apparatus control method
EP1675001A1 (en) Duplicate synchronization system and method of operating duplicate synchronization system
US20050015529A1 (en) Duplexing system and method using serial-parallel bus matching
US8412867B2 (en) Semiconductor integrated circuit and filter and informational delivery method using same
US10402348B2 (en) Method and system for using feedback information for selecting a routing bus for a memory transaction
JP4372110B2 (ja) データ転送回路、それを利用したマルチプロセッサシステム、及びデータ転送方法
CN115114215A (zh) 高速外围组件互连接口装置及其操作方法
JP2016038649A (ja) 並列計算機システム及び並列計算機システムの制御方法
JP2013005145A (ja) パケット転送装置及びパケット転送方法
JP6070848B2 (ja) 情報処理装置,データ転送装置,データ転送方法,および制御装置
KR100737904B1 (ko) 마스터/슬레이브 디바이스간의 인터페이스 장치 및 그 방법
JP2017187973A (ja) 並列処理装置及び通信制御方法
JP3845391B2 (ja) 並列計算機システムにおけるメモリアクセス制御方式およびその方式を実現するための演算処理装置内ネットワークユニット
JP2000267992A (ja) マルチバス制御装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090902

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120614

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120626

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120926

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130308

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130531

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20130618

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130716

R150 Certificate of patent or registration of utility model

Ref document number: 5322412

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250