JP7084406B2 - トランザクション操作 - Google Patents

トランザクション操作 Download PDF

Info

Publication number
JP7084406B2
JP7084406B2 JP2019531266A JP2019531266A JP7084406B2 JP 7084406 B2 JP7084406 B2 JP 7084406B2 JP 2019531266 A JP2019531266 A JP 2019531266A JP 2019531266 A JP2019531266 A JP 2019531266A JP 7084406 B2 JP7084406 B2 JP 7084406B2
Authority
JP
Japan
Prior art keywords
transaction
identifier
circuit
indicator
request
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
JP2019531266A
Other languages
English (en)
Other versions
JP2020502660A (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 JP2020502660A publication Critical patent/JP2020502660A/ja
Application granted granted Critical
Publication of JP7084406B2 publication Critical patent/JP7084406B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/466Transaction processing
    • 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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/385Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
    • 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/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Bus Control (AREA)

Description

本開示は、トランザクション操作に関する。
いくつかのトランザクション操作プロトコルは、(トランザクションを開始する)イニシエータデバイスがトランザクションへの応答を待つことができるとともに、トランザクションサーバデバイスから応答が到着すると適切に応答を操作できるように、データ処理トランザクションに関連付けられた識別子を利用する。
いくつかのプロトコルでは、同じ識別子を有するイニシエータデバイスによって複数の同時トランザクションが発行されることが可能である。このようなトランザクションのセットには通常、順序付け要件が適用される。たとえば、順序付け要件は、トランザクションがトランザクション発行順序でその宛先に配信されるという要件、i)トランザクションへの応答がトランザクション発行順序でトランザクションのイニシエータに戻されるという要件、およびトランザクションがトランザクション発行順序で完了するという要件のうちの1つ以上であってもよい。
しかしながら、たとえばトランザクションのセットが複数のサーバデバイスによって操作される場合など、順序付けが潜在的に阻害され得る事例が発生する可能性がある。このような事例では、順序付け要件が阻害されるのを回避するために、いわゆる順序付け技術が使用され得る。これらの技術は、順序付け要件に対して「早く」受信または操作されるトランザクションを延期すること、および/またはこのような情報を転送するのに敵した段階までトランザクションに関する情報をバッファリングすることを含むことができる。
例示的な配置では、トランザクション操作デバイスであって、
データ処理トランザクションのトランザクション要求を操作するためのトランザクション操作回路であって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、トランザクション操作回路と、
その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータの状態を検出するための検出回路と、
を備えるトランザクション操作デバイスが提供される。
別の例示的な配置では、イニシエータデバイスであって、
データ処理トランザクションのトランザクション要求を発行するためのトランザクション発行回路であって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、トランザクション発行回路を備え、
トランザクション発行回路は、その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子にインジケータを関連付けるように構成されている、
イニシエータデバイスが提供される。
別の例示的な配置では、データ操作トランザクション要求を表すデータ信号であって、データ信号は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子と、その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータと、を備える、データ信号が提供される。
別の例示的な配置では、
データ処理トランザクションのトランザクション要求を操作するステップであって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、ステップと、
その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータの状態を検出するステップと、
を備える方法が提供される。
別の例示的な配置では、
データ処理トランザクションのトランザクション要求を発行するステップであって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、ステップと、
その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子にインジケータを関連付けるステップと、
を備える方法が提供される。
本技術のさらなるそれぞれの態様および特徴は、添付の請求項によって定義される。
本技術は、以下の添付図面に示されるようなその実施形態を参照して、単なる例示によって、さらに説明される。
データ処理装置を概略的に示す図である。 例示的なトランザクション操作状況を概略的に示す図である。 例示的なトランザクション操作状況を概略的に示す図である。 トランザクション操作回路を概略的に示す図である。 イニシエータデバイスの動作の方法を示す概略フローチャートである。 イニシエータデバイスの動作の方法を示す概略フローチャートである。 トランザクション操作回路の動作の方法を示す概略フローチャートである。 トランザクション操作回路の動作の方法を示す概略フローチャートである。 トランザクション操作回路の動作の方法を示す概略フローチャートである。 トランザクション操作回路を概略的に示す図である。 イニシエータデバイスを概略的に示す図である。 要約した方法を示す概略フローチャートである。 要約した方法を示す概略フローチャートである。
添付図面を参照して実施形態を論じる前に、以下の実施形態の説明が提供される。
例示的な実施形態は、トランザクション操作デバイスであって、
データ処理トランザクションのトランザクション要求を操作するためのトランザクション操作回路であって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、トランザクション操作回路と、
その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータの状態を検出するための検出回路と、
を備えるトランザクション操作デバイスを提供する。
例示的な配置では、識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すためにインジケータが提供される。そうでない場合には、2つ以上の同時に保留中のトランザクション要求に関連しないトランザクション識別子によって課される順序付け要件はないので、いかなる再順序付け配置も都合よく無視またはバイパスされることが可能である。
トランザクション要求操作に適用可能な順序付け要件は、処理の態様が以下からなるリストから選択された1つ以上を備えるようになり得る。
(i)トランザクションがその宛先に配信されている、
(ii)トランザクションへの応答がトランザクションのイニシエータに返されている、および
(iii)トランザクションが完了している(たとえば、そのトランザクションに関する全ての処理が実行済みである)。
例示的な配置では、(トランザクション操作デバイスの一部としての)順序付け回路は、同じ識別子を有する要求のセットを定義するデータを記憶するためのバッファ回路と、新しく受信したトランザクションに関連付けられた識別子がバッファ回路によってデータが保持されているいずれかのトランザクションの識別子と同じであるか否かを検出するための比較回路と、を備えてもよい。例では、順序付け回路は、これらのトランザクションの発行の順序にしたがって、同じ識別子を有するバッファ回路によって保持されるこれらのトランザクションを定義するデータを出力するように構成されている。
例示的な配置では、バッファ回路は、トランザクション識別子の完了確認に応答してそのトランザクション識別子に関するバッファデータを削除するように構成されてもよい。
要求識別子が同時に保留中の1つの要求のみに関連することを示すようにインジケータが設定されていることを検出回路が検出するトランザクション要求を操作するときに、トランザクション操作回路が順序付け回路をバイパスするように構成されている配置では、同時に保留中の別のトランザクションと識別子を共有しないトランザクションの場合には、再順序付けは都合よく回避され得る。同様に、少なくともいくつかのトランザクションはこれをバイパスするので、これによってあまり強力ではない(たとえばより少ない回路空間を占有する)順序付け回路を使用できるようにする。
別の例示的な実施形態は、イニシエータデバイスであって、
データ処理トランザクションのトランザクション要求を発行するためのトランザクション発行回路であって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、トランザクション発行回路を備え、
トランザクション発行回路は、その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子にインジケータを関連付けるように構成されている、
イニシエータデバイスを提供する。
例示的な配置では、その識別子を有する前のトランザクションが完了し、(たとえば)その完了がイニシエータに通知されると、トランザクション識別子は再使用され得る(そして同時に保留中の別のトランザクションにはまだ適用されないと見なされ得る)。したがって、例示的な配置では、トランザクション識別子に関する完了確認の受信に応答し、このためにインジケータは、別の要求にこのトランザクション識別子を再使用できるようにするため、そのトランザクションが同時に保留中の1つのトランザクションのみに関連することを示すように設定されている。
一意/非一意表示のみが少なくとも例示的な実施形態で必要とされるので、インジケータは1ビットインジケータであってもよい。
別の例示的な実施形態は、
上記で定義されたような1つ以上のトランザクション操作デバイスと、
上記で定義されたような1つ以上のイニシエータデバイスと、
1つ以上のイニシエータを1つ以上のトランザクション操作デバイスに接続するための相互接続回路と、
を備えるデータ処理装置を提供する。
トランザクションの操作における様々な段階で(一意識別子の場合)再順序付けを回避できるようにするために、例示的な配置では、装置は、トランザクション識別子を含む全てのトランザクションメッセージにインジケータを関連付けるように構成されている。
別の例示的な実施形態は、データ操作トランザクション要求を表すデータ信号であって、データ信号は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子と、その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータと、を備える、データ信号を提供する。
別の例示的な実施形態は、
データ処理トランザクションのトランザクション要求を操作するステップであって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、ステップと、
その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータの状態を検出するステップと、
を備える方法を提供する。
これらのステップは、並行してまたは暗黙的に実行され得ることに留意されたい。たとえば、イニシエータ内のIDのセットは、イニシエータの動作の他の詳細のために一意であることが、暗黙的に知られているかも知れない。つまり、この機能を網羅するために2つの別々にまたは連続して実施されるステップは不要である。
別の例示的な実施形態は、
データ処理トランザクションのトランザクション要求を発行するステップであって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、ステップと、
その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子にインジケータを関連付けるステップと、
を備える方法を提供する。
図面を参照すると、図1は、多数のマスターまたはトランザクション開始デバイス(もしくはイニシエータとも称される)100、110、120、130を備えるデータ処理システムを概略的に示す。イニシエータ100、110は、AXI(Advanced Extensible Interface)プロトコルにしたがって動作する。イニシエータ120、130は、CHI(Coherent Hub Interface)プロトコルにしたがって動作する。
イニシエータ100、110は相互接続部140に接続され、イニシエータ120、130はキャッシュコヒーレント相互接続部150に接続されている。
相互接続部140、150は、相互接続部160を介して、主メモリ、主メモリにアクセスするダイナミックメモリコントローラなどのような様々なスレーブノード170、180に接続されている。
図1のデータ処理装置は、いわゆるシステムオンチップ(SoC)またはネットワーク御チップ(NoC)システムとして実装されることが可能である。
動作中、イニシエータ100から130は、データ処理動作に関するいわゆるトランザクション要求を発行する。トランザクション要求の一例は、特定のメモリアドレスまたはメモリアドレスの範囲からデータを読み出す要求である。別の例は、メモリアドレスまたはメモリアドレスの範囲にデータを書き込む要求である。その他のトランザクション要求は、装置内の特定のノードに保持された特定のデータのコピーを無効化することなどの事項に関係してもよい。
イニシエータは、各トランザクションに、トランザクション識別子を関連付ける。いくつかの事例では、トランザクション識別子は「一意」であり得る。用語「一意」は、装置全体にわたる一意性を暗示するものではなく、全期間にわたる一意性を暗示するものでもない。むしろ、一意性は、その識別子を有する特定のイニシエータからの現在保留中のトランザクションが1つだけあるものとして定義される。そのため、別のイニシエータが同じ識別子を使用していたとしても、識別子が一意であることが可能であり、その識別子を有する現在保留中のトランザクションが1つだけある場合、同じイニシエータによって複数回使用されても識別子はなお一意と見なされることが可能であり、これはつまり、特定の識別子を有するトランザクションが完了してその完了がイニシエータに通知されれば、その一意な状態を損なわずに後続のトランザクションで同じ識別子が使用され得る。
イニシエータによって発行されたデータ処理トランザクションは、様々な相互接続部を介して、スレーブノード170、180のうちの1つなどの宛先に配信される。そこで、トランザクションに関する処理が実行され、適切な応答がそのトランザクションのイニシエータに送信される。トランザクションに関する処理の終わりに、完了確認がイニシエータに送信される。
CHIイニシエータ120、130は、CHIプロトコルによって、上記で定義されたような一意識別子を常に使用することになっている。
しかしながら、AXIイニシエータ100、110はいずれかの一意識別子を使用することができ、または同じ識別子を有する2つ以上のトランザクションのセットを発行することができる。このような配置は、AXIおよび様々なその他のトランザクション操作プロトコルにおいて許容される。しかしながら、識別子を共有するトランザクションのこのようなセットに適用される条件は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないことである。このような処理の態様の例は、以下からなるリストから選択された1つ以上である。
・トランザクションがその宛先(スレーブノードなど)に配信されている、
・トランザクションへの応答がイニシエータに返されている、および
・トランザクションが完了している(たとえば、そのトランザクションに関する全ての処理が実行済みであり、スレーブで処理されている。書き込みの例では、書き込みの結果が今や同じアドレスへのいずれか後続のトランザクションによって観察可能となっている)。
これらの条件のうちの2つ以上が適用され得ることは、理解されるだろう。
トランザクション識別子を共有するトランザクション要求の少なくとも部分的に順序付けされた処理の要件を踏まえて、順序付け要件が満たされることを保証するために、図1の装置内にいわゆる再順序付け配置が提供され得る。
そのため、順序付けの制約を満たすために、同じ識別子を有するトランザクションがこれらを再順序付けする可能性のある宛先に送信されるとき、いくつかの例示的な配置では、これらは延期されるか、またはシステムに1つ以上の再順序付けバッファが設けられる。このような予防措置は、プロトコルの順序付け要件を満たすため、および関連する行き詰まり状態を回避するための両方に適している。
したがって、図1は1つ以上のトランザクション操作デバイスと、1つ以上のイニシエータデバイスと、1つ以上のイニシエータを1つ以上のトランザクション操作デバイスに接続するための相互接続回路と、を備えるデータ処理装置の一例を提供する。
トランザクション操作デバイスはスレーブデバイスであってもよいことに留意されたい。しかしより一般的には、これはイニシエータの下流にあるデバイスである。そのため、相互接続部、または相互接続部の一部は、トランザクション操作デバイスであってもよい。
図2は、再順序付けが必要とされ得る状況を概略的に示す。マスターまたはイニシエータデバイス200は、トランザクション識別子を共有するトランザクションのセットを1対のスレーブデバイス210、220に送信する。言い換えると、識別子を共有するトランザクションのセットのうち、いくつかはこの例ではスレーブデバイス210によって操作され、いくつかはスレーブデバイス220によって操作される。2つのスレーブデバイスから受信した応答は、そのタイミングおよび/または順序に関して互いに独立していてもよい。そのため、順序付け要件に準拠するために、再順序付けを提供するための論理230が使用される。
論理230は、既に進行中のトランザクションに関する識別子を追跡する機能と、新しく受信したトランザクション要求をこれらの識別子と比較する機能と、いくつかの事例では、適切な順序で発行されてトランザクションに戻されるまでトランザクションの結果が一時的にバッファリングされ得るように、順序付けバッファを提供する機能と、いくつかの事例では、この例ではスレーブデバイス210、220からの応答を延期しなければならないことによって生じる行き詰まりを回避するための順序でトランザクションがスレーブデバイス210、220に転送され得る順序を再び制御するCDAS(Cyclic Dependency Avoidance Scheme)に関する回路を提供する機能と、を提供する。
このような問題が生じる別の例示的な配置は、AXI準拠のマスターまたはイニシエータ300がCHI準拠のスレーブまたはその他のドメイン310にトランザクション要求を発行する、図3に示されている。やはり、マスターデバイスと(たとえば相互接続回路の一部としての)スレーブデバイスとの間では、論理320には、上記で論じられたような、および2つのプロトコルの間のブリッジとして作用するための、論理230の機能が設けられる。
本技術の例は、その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すためのトランザクション識別子に関連付けられたインジケータを提供する。
いくつかの例では、インジケータは1ビットインジケータであってもよい(一意/非一意表示のみが必要とされるため)。インジケータは、識別子(または他のデータフィールド)を搬送するために既に使用されている同じ接続上に多重化され得るが、速度のためおよび便宜上、インジケータはいくつかの例示的な配置では、追加の接続によって担持され得る。インジケータは、単にイニシエータから再順序付け能力を有する第1の下流段に提供され得るが、例示的な配置では、これは識別子を担持する全てのトランザクションメッセージ(たとえば応答および完了確認を含む)に関連付けられている。
識別子およびインジケータの例示的なフォーマットは、以下の通り。
Figure 0007084406000001
この情報を担持するトランザクション関連メッセージは、データ操作トランザクション要求を表すデータ信号の一例を提供し、データ信号は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような識別子と、その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータと、を備える。
インジケータを提供する技術が、以下に論じられる。まず、図4は、トランザクション順序付け機能を提供する論理230、320の一例を概略的に表す。
図4を参照すると、回路400は、関連付けられたインジケータを有するトランザクション入力410(以下で説明するように、応答出力としても機能する)においてトランザクションを受信する。インジケータ検出器420として機能する検出回路は、その識別子が上記で論じられたように一意であることを受信したトランザクション要求に関連付けられたインジケータが示すか否かを検出する。トランザクション識別子が一意である場合には、再順序付けは必要ではなく、トランザクションは、バイパス経路430を介してトランザクション出力440(以下で論じられるように、応答入力としても機能する)に転送されることが可能である。
しかしながら、識別子が(インジケータによって示されるように)一意でない場合には、トランザクションの正しい順序付けを操作するために、識別子および/または再順序付けバッファ450、検出器および順序付け論理460、およびCDAS回路470を含む回路が提供される。これらのユニットの動作は、以下に詳細に論じられる。トランザクション要求は、トランザクション出力440によって出力される。
宛先デバイスによるトランザクション要求の処理に応答して、イニシエータに返されるべき応答が生成される。応答は、読み出し要求に応答して提供されるデータを含んでもよい。応答は、処理動作が実行されたことを示す完了確認を含んでもよい。
応答入力440は、インジケータ検出器445(図の明瞭さのため図4とは別に示されるが、インジケータ検出器420と同じ論理によって実装されてもよい)への受信した応答を参照する。応答が一意識別子を有するトランザクション要求に関連することをインジケータが示す場合、応答は出力410のためにバイパス経路430によって渡されることが可能である。しかしながら、応答が非一意識別子を有するトランザクション要求に関連することをインジケータが示す場合には、応答は、これらのトランザクションの(関連するイニシエータによる)発行の順序にしたがって、(例示的な配置において)同じ識別子を有するバッファ回路によって保持されるこれらのトランザクションを定義するデータを出力するように、出力される前に以下で論じられるやり方で操作するために、バッファ450、検出器/順序付け論理460、CDAS470に渡される。
したがって、図4は、同じ識別子を有する要求のセットを定義するデータを記憶するためのバッファ回路(450)と、新しく受信したトランザクションに関連付けられた識別子が、バッファ回路によってデータが保持されているいずれかのトランザクションの識別子と同じであるか否かを検出するための比較回路(460)と、を備える順序付け回路(450、460、470)の一例を提供する。トランザクション操作回路400は、要求識別子が同時に保留中の1つの要求のみに関連することを示すようにインジケータが設定されていることを検出回路が検出するトランザクション要求を操作するときに、(たとえば、バイパス経路430によって)順序付け回路をバイパスするように構成されている。
図5は、トランザクションイニシエータにおける動作を示す概略フローチャートである。
ステップ500において、イニシエータは、発行すべきトランザクションを確立し、そのトランザクションに識別子を割り当てる。
ステップ510において、イニシエータは、識別子が一意であるか否か、すなわち現在保留中のその他のトランザクションに関して識別子が使用されていないか、およびトランザクション自体が同じ識別子が再利用されなければならないトランザクションのセットのものではないことを、判断する。
これらのステップは、並行してまたは暗黙的に実行され得ることに留意されたい。たとえば、イニシエータ内のIDのセットは、イニシエータの動作の他の詳細のために一意であることが、暗黙的に知られているかも知れない。つまり、この機能を網羅するために2つの別々にまたは連続して実施されるステップは不要である。
イニシエータはトランザクションを生成し、したがって識別子が一意に使用されているか否かを認識している。たとえば、トランザクションは、イニシエータにおけるラインフィルバッファまたはその他のキャッシュメモリ領域の群との間のデータ転送を操作するためのトランザクションの群のうちの1つであってもよく、この場合、イニシエータは、トランザクションが共有識別子に割り当てられているので、識別子が複数のトランザクション要求に関して非一意に使用されていることを認識している。別の例では、イニシエータは、全て同じ識別子を有する、要求として転送すべきトランザクションのセットまたはストリームを提供する、別のドメインに接続されるかまたは関連付けられてもよい。別の例では、トランザクションは、いずれの順序でもトランザクション応答を受信するための再順序付け能力(または十分な能力)を有さず、したがって応答が既知の順序で受信されることを保証するために同じ識別子を使用するようになっていてもよい。
ステップ520において、識別子が一意であると検出された場合には、制御はステップ530に進み、そこでインジケータは一意性を示すように設定される。そうでない場合には、制御はステップ540に進み、そこでインジケータは一意性の欠如を示すように設定される。
図6は、ステップ600でイニシエータが特定の識別子に関する完了確認を受信し、ステップ610でその識別子を一意識別子として再利用できるようにする、イニシエータにおける動作を表す概略フローチャートである。これは、トランザクション識別子に関する完了確認の受信に応答するイニシエータデバイスの一例であり、このためにインジケータは、別の要求にこのトランザクション識別子を再使用できるようにするため、そのトランザクションが同時に保留中の1つのトランザクションのみに関連することを示すように設定されている。
図7は、図4の回路に関する概略フローチャートである。図7は、新しく受信したトランザクションの操作に関する(図4に描かれるように概して下向きの経路)。以下で論じられる図8および図9は、新しく受信したトランザクション応答の操作に関する(図4に描かれるように概して上向きの経路)。
ステップ700において、新しいトランザクション要求が入力410で受信される。
ステップ710において、検出器420はインジケータを調べ、ステップ720において、インジケータが一意性を示すように設定されている場合、トランザクションはバイパス経路430を経由してルーティングされ(「はい」の分岐725で表される通り)、トランザクションはステップ730において出力440によって発行される。
一意識別子が一意性を示すように設定されていない(または非一意性を示すように設定されている)場合には、制御は、バッファ450、論理460、および適切であればCDAS470によって実装される、ステップ740に進む。ステップ740において、新しく受信したトランザクション要求の識別子は、バッファ450によって保持される現在保留中のトランザクションのための識別子の追跡リストと比較される。識別子が既にリスト内に存在する場合、既にリスト内にあるこれらのトランザクションの後に受信されたことを示すために、新しく受信したトランザクションを定義するデータがリスト内の1つ以上のエントリに対して順序付けられた位置に追加される。識別子がまだリスト内にない場合には、トランザクションを定義するデータがリストに追加される。そのトランザクション識別子のための完了確認に応答してトランザクション識別子に関するバッファデータを削除するように構成されているバッファ回路の一例として、その識別子に関して完了確認が引き続き受信されるまで、リスト内のエントリは持続する。しかしながら、再順序付けバッファを使用する配置では、完了確認が受信されてバッファから送信されるまでエントリが持続し得ることに、留意されたい。これは、間違った順序で受信される可能性があり、そのため送信されるのに有効になるまで追跡されたままである必要があるからである。
リソース競合または順序付け問題がある場合には、ステップ750において、ステップ750の「いいえ」の結果としてステップ760でリソースを割り当ておよび追跡することによってトランザクションが発行の準備を整えるまで、トランザクションが延期される。次いで制御はステップ730に進み、そこでトランザクションが発行される。リソース競合がある場合には、(たとえば、先に受信された同じ識別子を有するトランザクションが完了することによって)競合が解消されるまで、トランザクション要求は延期される。延期の代替として、(バッファ450によって実装され得る)再順序付けバッファに要求が追加されることも可能である。再順序付けバッファは、単に要求を定義するデータを記憶するのではなく、要求自体を記憶する。そのため、これを提供するノードからの要求の受信および処理を延期する必要はない。要求は受け入れられ、次いで要求を転送するのに適した段階まで再順序付けバッファによって記憶されることが可能である。
図8は類似の状況に関するが、トランザクションの宛先であったスレーブまたはその他のノードから(入力440において)受信したトランザクション応答に関するものである。
ステップ810において、識別子が上記で論じられたように一意であるか否かを検出するために、インジケータフィールドが調べられる。ステップ820において、インジケータが一意である場合には(「はい」の分岐825の通り)、制御は(バイパス経路430によって)ステップ830に進み、そこで応答が発行されてイニシエータに向かって戻される。
しかしながら、ステップ820での結果が「いいえ」である場合には、制御はステップ840に進み、そこでトランザクション応答の識別子は、バッファ450によって保持される追跡リストと比較される。ステップ850において順序付け要件が満たされた場合には(たとえば、応答が他の応答に対して正しい順序で受信されたか、または(この特定の例において)応答の受信の順序に対する順序付け要件がない)、制御はステップ860に進み、そこでトランザクションによって使用されるリソースの割り当ておよびリンクが解除され、ステップ830で応答が発行される。しかしながら、ステップ850での結果が「いいえ」である場合には、制御はステップ840に戻り、順序付け要件が満たされるまで延期状態となる。つまり、(順序付け要件によって)現在の応答よりも早くイニシエータによって受信される必要がある応答が使用可能になるまで、応答が延期される。
図9は、ステップ850の「いいえ」の結果でトランザクションを延期することに対する代替案を概略的に示す。図9に示されるステップは図8のステップ850に置き換わり、図8の残りの部分は同じままである。
制御がステップ840から進むと、ステップ900において、応答は(バッファ450によって実装されてもよい)再順序付けバッファに追加される。再順序付けバッファは、単に応答を定義するデータを記憶するのではなく、応答自体を記憶する。そのため、これを提供するノードからの応答の受信および処理を延期する必要はない。応答は受け入れられ、次いで応答を転送するのに適した段階まで再順序付けバッファによって記憶されることが可能である。
ステップ910において、トランザクション応答が発行されるのに有効か否かをステップ920で判断するために、ID追跡リストが照会される。答えが「いいえ」である場合には、制御はステップ910に戻るが、答えが「はい」の場合には、制御はステップ860に進む。
図10は、データ処理トランザクションのトランザクション要求を操作するためのトランザクション操作回路1000であって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、トランザクション操作回路1000と、その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータの状態を検出するための検出回路1010と、を備えるトランザクション操作デバイスの要約した実施形態を概略的に示す。
図11は、データ処理トランザクションのトランザクション要求を発行するためのトランザクション発行回路1100であって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、トランザクション発行回路1100を備え、トランザクション発行回路は、その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子にインジケータを関連付けるように構成されている、イニシエータデバイスの要約した実施形態を概略的に示す。
図12は、
(ステップ1200において)データ処理トランザクションのトランザクション要求を操作するステップであって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、ステップと、
(ステップ1210において)その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子に関連付けられたインジケータの状態を検出するステップと、
を備える方法を示す概略フローチャートである。
これらのステップは、並行してまたは暗黙的に実行され得ることに留意されたい。たとえば、イニシエータ内のIDのセットは、イニシエータの動作の他の詳細のために一意であることが、暗黙的に知られているかも知れない。つまり、この機能を網羅するために2つの別々にまたは連続して実施されるステップは不要である。
図13は、
(ステップ1300において)データ処理トランザクションのトランザクション要求を発行するステップであって、トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、ステップと、
(ステップ1310において)その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための識別子にインジケータを関連付けるステップと、
を備える方法を示す概略フローチャートである。
後方互換性を提供するための例示的な技術として、これらの技術を実装してないAXIイニシエータ(または既存のサブシステム)がこれらの技術を使用する相互接続部またはスレーブに接続されているとき、インジケータは「一意ではない」と示すように設定(または結線)されることが可能であり、これは常に正しい順序付け挙動を与えることになる。これらの技術を使用していないAXIイニシエータまたはサブシステムが常に一意のIDを生成するという事前知識をシステムインテグレータが有する場合、インジケータは、トランザクションと一緒に来るのではなく、これらの技術を使用する相互接続部またはスレーブへの入力において「一意」に設定または結線されることが可能である。
例示的な配置では、本技術は、集積回路実装における回路面積を節約するのに貢献することができる。これは、システム設計者がマスターの特性、特に一意のIDを使用しないトランザクションにどのくらいの帯域幅を必要とするかについて何らかの知識を有する場合に該当し得る。設計ツールはこの決定を助けることができる。たとえば、設計ツールは、マスターの要件および/または一意のIDの挙動に関する入力(たとえば、モデルから、または仕様の形態として設計ツールへの直接入力)を行い、順序付け回路のより最適なサイズまたは存在を構成するためにこの情報を使用してもよい。
本出願において、「~するように構成された」という用語は、装置の要素が定義された動作を実行できる構成を有することを意味するために使用される。この文脈において、「構成」は、ハードウェアまたはソフトウェアの配置または相互接続方法を意味する。たとえば、装置は、所定の動作を提供する専用ハードウェアを有してもよく、あるいはプロセッサまたは他の処理デバイス(上記で論じられたような処理要素など)が機能を実行するようにプログラムされてもよい。「構成された」は、所定の動作を提供するために装置要素が多少なりとも変更されなければならないことを示唆するものではない。
以上、添付図面を参照して本技術の例示的な実施形態を本明細書で詳細に説明したが、本技術はこれらの厳密な実施形態に限定されるものではなく、添付の請求項によって規定される本技術の範囲および趣旨から逸脱することなく、様々な変更、追加、および修正が当業者によって実施され得ることが、理解されるべきである。たとえば、従属請求項の特徴の様々な組み合わせは、本技術の範囲から逸脱することなく、独立請求項の特徴と一緒になされ得る。

Claims (15)

  1. トランザクション操作デバイスであって、
    データ処理トランザクションのトランザクション要求を操作するためのトランザクション操作回路であって、前記トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、トランザクション操作回路と、
    その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための前記識別子に関連付けられたインジケータの状態を検出するための検出回路と、
    を備えるトランザクション操作デバイス。
  2. 前記処理の態様が、
    (i)前記トランザクションがその宛先に配信されている、
    (ii)前記トランザクションへの応答が前記トランザクションのイニシエータデバイスに返されている、および
    (iii)前記トランザクションが完了している、
    ことからなるリストから選択された1つ以上を備える、請求項1に記載のデバイス。
  3. 順序付け回路を備え、前記順序付け回路は、
    同じ識別子を有する要求のセットを定義するデータを記憶するためのバッファ回路と、
    新しく受信したトランザクションに関連付けられた前記識別子が前記バッファ回路によってデータが保持されているいずれかのトランザクションの前記識別子と同じであるか否かを検出するための比較回路と、
    を備える、請求項1に記載のデバイス。
  4. 前記順序付け回路は、これらのトランザクションの発行の順序にしたがって、同じ識別子を有する前記バッファ回路によって保持されるこれらのトランザクションを定義するデータを出力するように構成されている、請求項3に記載のデバイス。
  5. 前記バッファ回路は、トランザクション識別子の完了確認に応答してそのトランザクション識別子に関するバッファデータを削除するように構成されている、請求項3または4に記載のデバイス。
  6. 前記トランザクション操作回路は、前記識別子が同時に保留中の1つの要求のみに関連することを示すように前記インジケータが設定されていることを前記検出回路が検出するトランザクション要求を操作するときに、前記順序付け回路をバイパスするように構成されている、請求項3から5のいずれか一項に記載のデバイス。
  7. 前記インジケータは1ビットインジケータである、請求項1から6のいずれか一項に記載のデバイス。
  8. データ処理トランザクションのトランザクション要求を発行するためのトランザクション発行回路であって、前記トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、トランザクション発行回路を備え、
    前記トランザクション発行回路は、その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための前記識別子にインジケータを関連付けるように構成されている、
    イニシエータデバイス。
  9. 前記処理の態様が、
    (i)前記トランザクションがその宛先に配信されている、
    (ii)前記トランザクションへの応答が前記イニシエータデバイスに返されている、および
    (iii)前記トランザクションが完了している、
    ことからなるリストから選択された1つ以上を備える、請求項8に記載のデバイス。
  10. 前記デバイスは、トランザクション識別子に関する完了確認の受信に応答し、このために前記インジケータは、別の要求にこのトランザクション識別子を再使用できるようにするため、前記トランザクションが同時に保留中の1つのトランザクションのみに関連することを示すように設定されている、請求項8または9に記載のデバイス。
  11. 前記インジケータは1ビットインジケータである、請求項5に記載のデバイス。
  12. 各々が請求項1から4のいずれか一項に記載の1つ以上のトランザクション操作デバイスと、
    各々が請求項5から6のいずれか一項に記載の1つ以上のイニシエータデバイスと、
    前記1つ以上のイニシエータデバイスを前記1つ以上のトランザクション操作デバイスに接続するための相互接続回路と、
    を備えるデータ処理装置。
  13. 前記装置は、前記インジケータを、トランザクション識別子を含む全てのトランザクションメッセージに関連付けるように構成されている、請求項12に記載の装置。
  14. データ処理トランザクションのトランザクション要求を操作するステップであって、前記トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、ステップと、
    その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための前記識別子に関連付けられたインジケータの状態を検出するステップと、
    を備える方法。
  15. データ処理トランザクションのトランザクション要求を発行するステップであって、前記トランザクション要求は、同じ識別子を有するトランザクション要求のセットの各々のための処理の少なくとも1つの態様がそのトランザクションのセットの発行の順序で実行されなければならないような関連識別子を有する、ステップと、
    その識別子が2つ以上の同時に保留中のトランザクション要求に関連するか否かを示すための前記識別子にインジケータを関連付けるステップと、
    を備える方法。
JP2019531266A 2016-12-19 2017-12-13 トランザクション操作 Active JP7084406B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB1621638.4 2016-12-19
GB1621638.4A GB2557944B (en) 2016-12-19 2016-12-19 Transaction handling
PCT/GB2017/053725 WO2018115814A1 (en) 2016-12-19 2017-12-13 Transaction handling

Publications (2)

Publication Number Publication Date
JP2020502660A JP2020502660A (ja) 2020-01-23
JP7084406B2 true JP7084406B2 (ja) 2022-06-14

Family

ID=58284356

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019531266A Active JP7084406B2 (ja) 2016-12-19 2017-12-13 トランザクション操作

Country Status (7)

Country Link
US (1) US20190266010A1 (ja)
EP (1) EP3555753B1 (ja)
JP (1) JP7084406B2 (ja)
KR (1) KR102502304B1 (ja)
CN (1) CN110073340B (ja)
GB (1) GB2557944B (ja)
WO (1) WO2018115814A1 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11714779B2 (en) * 2020-03-25 2023-08-01 Xilinx, Inc. NoC relaxed write order scheme

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008041099A (ja) 2006-08-08 2008-02-21 Arm Ltd データ処理装置のための相互接続論理
JP2014517431A (ja) 2011-06-24 2014-07-17 エイアールエム リミテッド メモリコントローラおよびかかるメモリコントローラの動作方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6295548B1 (en) * 1999-03-12 2001-09-25 Compaq Computer Corporation Detection of an imported transaction for finding the global transaction identifier
US7170989B1 (en) * 2002-09-06 2007-01-30 Sprint Communications Company L.P. Transaction dependency manager
US7552285B2 (en) * 2006-08-30 2009-06-23 Arm Limited Line fill techniques
US8285908B2 (en) * 2010-01-24 2012-10-09 Freescale Semiconductor, Inc. Bus bridge and method for interfacing out-of-order bus and multiple ordered buses
US8866701B2 (en) * 2011-03-03 2014-10-21 Citrix Systems, Inc. Transparent user interface integration between local and remote computing environments
US8656078B2 (en) * 2011-05-09 2014-02-18 Arm Limited Transaction identifier expansion circuitry and method of operation of such circuitry
US9201829B2 (en) * 2012-09-06 2015-12-01 Apple Inc. Low power, area-efficient tracking buffer
US9141546B2 (en) * 2012-11-21 2015-09-22 Annapuma Labs Ltd. System and method for managing transactions
US20150199286A1 (en) * 2014-01-10 2015-07-16 Samsung Electronics Co., Ltd. Network interconnect with reduced congestion
GB2525237B (en) * 2014-04-17 2021-03-17 Advanced Risc Mach Ltd Reorder buffer permitting parallel processing operations with repair on ordering hazard detection within interconnect circuitry

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008041099A (ja) 2006-08-08 2008-02-21 Arm Ltd データ処理装置のための相互接続論理
JP2014517431A (ja) 2011-06-24 2014-07-17 エイアールエム リミテッド メモリコントローラおよびかかるメモリコントローラの動作方法

Also Published As

Publication number Publication date
CN110073340B (zh) 2023-06-20
WO2018115814A1 (en) 2018-06-28
EP3555753A1 (en) 2019-10-23
GB2557944B (en) 2020-02-12
GB2557944A (en) 2018-07-04
CN110073340A (zh) 2019-07-30
EP3555753B1 (en) 2022-04-13
US20190266010A1 (en) 2019-08-29
GB201621638D0 (en) 2017-02-01
KR20190097092A (ko) 2019-08-20
KR102502304B1 (ko) 2023-02-22
JP2020502660A (ja) 2020-01-23

Similar Documents

Publication Publication Date Title
US11372680B2 (en) RDMA (remote direct memory access) data transfer in a virtual environment
CN110232036B (zh) 主机系统及其方法和加速模块
CN108205510B (zh) 数据处理
JP2006309755A (ja) タグ情報を使用してコマンドバッファから廃棄されたエントリを除去するシステム及び方法
JP2006309755A5 (ja)
US10474620B2 (en) System and method for improving peripheral component interface express bus performance in an information handling system
JP7084406B2 (ja) トランザクション操作
US9104819B2 (en) Multi-master bus architecture for system-on-chip
CN106815176B (zh) 用于经由柔性寄存器访问总线传输访问请求的系统和方法
US10243758B2 (en) Apparatus and method for filtering transactions
US9858222B2 (en) Register access control among multiple devices
GB2551806A (en) Interface apparatus and method
US11256646B2 (en) Apparatus and method for handling ordered transactions
JP2002108836A (ja) プロセッサシステム
US10255103B2 (en) Transaction handling
EP1402383A2 (en) Accelerated graphics port (agp) controller supporting fast write transactions
JP5854063B2 (ja) 情報処理システム、情報処理方法、情報処理プログラム、及び情報処理装置
JP2007207176A (ja) 半導体集積回路のシミュレーション方法
JP2018081346A (ja) ストレージ装置、ストレージシステム、ストレージ制御方法、および、ストレージ制御プログラム
JP2003271535A (ja) コンピュータシステム及び書き込み処理制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211008

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220111

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: 20220510

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220602

R150 Certificate of patent or registration of utility model

Ref document number: 7084406

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150