JP2013077287A - 発信元デバイスから受信デバイスに対して発行されるトランザクション要求のための動的リソース割り当て - Google Patents

発信元デバイスから受信デバイスに対して発行されるトランザクション要求のための動的リソース割り当て Download PDF

Info

Publication number
JP2013077287A
JP2013077287A JP2012154568A JP2012154568A JP2013077287A JP 2013077287 A JP2013077287 A JP 2013077287A JP 2012154568 A JP2012154568 A JP 2012154568A JP 2012154568 A JP2012154568 A JP 2012154568A JP 2013077287 A JP2013077287 A JP 2013077287A
Authority
JP
Japan
Prior art keywords
credit
receiving
transaction request
receiving device
accepted
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.)
Granted
Application number
JP2012154568A
Other languages
English (en)
Other versions
JP6025428B2 (ja
Inventor
Kumar Mannava Phanindra
クマール マンナヴァ ファニンドラ
Jalal Jamshed
ジャラル ジャムシェッド
Guru Prasadh Ramamoorthy
グル プラサダ ラマモーアシー
Alan Filippo Michael
アラン フィリッポ マイケル
James Mathewson Bruce
ジェイムズ マシューソン ブルース
Timothy Charles Mace
チャールズ メイス ティモシー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ARM Ltd
Original Assignee
ARM Ltd
Advanced Risc Machines Ltd
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 ARM Ltd, Advanced Risc Machines Ltd filed Critical ARM Ltd
Publication of JP2013077287A publication Critical patent/JP2013077287A/ja
Application granted granted Critical
Publication of JP6025428B2 publication Critical patent/JP6025428B2/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/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
    • 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
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Information Transfer Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】発信元デバイスによって受信デバイスへ発行されるトランザクション要求のための動的リソース割り当てを実現する。
【解決手段】受信デバイスは、トランザクション要求のために利用可能なバッファ記憶がある場合にトランザクション要求を受諾する。利用可能な記憶空間がない場合、確認応答信号生成器が、要求が受信デバイスによって受信されたが受諾されていないことを示す拒絶確認応答信号を生成し、出力する。クレジット生成器は、バッファ内に少なくとも1つの利用可能な記憶位置を予約することができ、受信デバイスによって受諾されなかったトランザクション要求のうちの1つを送信した発信元デバイスに対してクレジット許諾を生成することができる。クレジット許諾は、発信元デバイスからのその後のトランザクション要求が受信デバイスによって受諾されるように、発信元デバイスに、少なくとも1つの予約済み記憶位置があることを示す。
【選択図】図1

Description

本発明の技術分野は、データ処理システムに関し、具体的には、いくつかの受信デバイスに対してトランザクション要求を発行するいくつかの発信元デバイスを有するシステム、およびこれらのトランザクション要求を実行するための受信デバイス内のリソースの割り当てに関する。
複数の受信デバイスにアクセスする複数の発信元デバイスのためのリソース割り当て、例えば、分散型の共有メモリは、各種類のトランザクション要求の前進を確実にするために、注意深く管理される必要がある。これは、先行技術のシステムにおいて、様々な手法で行われてきたが、一般的に、暗黙的または明示的なリソース割り当ての使用によるものである。
暗黙的なリソース割り当ては、受信デバイスから送信され、トランザクション要求が受諾されたかどうかを発信元デバイスに示す、確認応答信号を使用して行われてきた。受諾されなかった場合は、発信元デバイスが、今回は受諾されることを期待してトランザクション要求を後で再発行する。
これの不利点は、継続的に試みて、成功しない可能性があるために、各トランザクション要求の待機時間の限度を設定することが困難なことである。さらに、継続的な試みは、時間、動力、およびそれに関連する帯域幅のオーバーヘッドを有する。
代替的なシステムは、例えば起動の際に、各発信元デバイスが、受信デバイスとのトランザクションのために一定数のクレジットを与えられ、クレジットが使用される際、それを使用したトランザクション要求が完了すると、新しいものが発行されるものである。これの欠点は、システムがより大きくなるにつれて、全ての発信元に各受信者のためのクレジットを提供するために、受信者上の保留トランザクションを記憶するためのバッファがますます大きくなる必要があることである。
トランザクション要求の記憶に効果的な使用がなされ、個々のトランザクション要求の待機時間が短く保たれるような方法で、動的にリソースを割り当てることができれば、望ましいことになる。
本発明の第1の態様は、少なくとも1つの相互接続を介して、複数の発信元デバイスからトランザクション要求を受信するための受信デバイスであって、前記受信デバイスは、前記少なくとも1つの相互接続から前記トランザクション要求を受信し、そこに要求および信号を発行するための、少なくとも1つのポートと、要求が前記受信デバイスによって受信されたが受諾されていないことを示す拒絶確認応答信号を生成および出力するように構成される、確認応答信号生成器と、前記受信デバイスによる実行の前に受諾され、かつ保留されているトランザクション要求を記憶するためのバッファと、クレジット生成器であって、前記クレジット生成器は、前記バッファ内に少なくとも1つの利用可能な記憶位置を予約し、前記受信デバイスによって受諾されなかった前記トランザクション要求のうちの1つを送信した発信元デバイスに対するクレジット許諾を生成するように、構成され、前記クレジット許諾は、少なくとも1つの予約済み記憶位置があることを前記発信元デバイスに示し、前記発信元デバイスからのその後のトランザクション要求が、前記受信デバイスによって受諾されるようにする、クレジット生成器と、を備える、受信デバイスを提供する。
本発明は、受信デバイス上のトランザクション要求記憶を低く保ち、トランザクション要求を記憶する空間を有しない受信デバイスによって継続的に拒否される可能性のある、いくつかのトランザクション要求の待機時間を過度に増やすことなく、面積オーバーヘッドを減少させることに関連する、矛盾する問題を認識する。保留トランザクション要求のための記憶位置が利用可能になると記憶位置を予約し、トランザクション要求が拒否された発信元にクレジット許諾を伝送する、受信デバイスを提供することによって、この問題に対処する。発信元デバイスは、次に、このトランザクション要求を再発行することができ、それが受諾されることを保証することが可能である。
このようにして、受信デバイス自体が、どの発信元デバイスが拒否された保留トランザクション要求を有するかの知識を有し、受信デバイスのバッファ内の記憶位置が利用可能になると、それらをまず予約し、選択されたものにクレジットを伝送することができ、これによって、クレジット許諾を受信している発信元デバイスによってのみ使用することができる。このようにして、発信元デバイスは、クレジット許諾に応じて送信されたトランザクション要求が、受諾されることを確実にすることができる。これは、比較的単純だが効果的な受信デバイスのリソース割り当て手法を提供し、それは、ある時点でトランザクション要求が受諾されることを確実にしながら、依然として受信デバイス内に大きなバッファを必要ともしない。
いくつかの実施形態において、前記受信デバイスは、前記トランザクション要求を伝送する前記発信元によって受信されるクレジット許諾が使用されていることを示すインジケータを含むトランザクション要求を受諾し、前記少なくとも1つの予約済みの記憶位置の内の1つに、前記トランザクション要求を記憶するように、構成される。
受信デバイスは、トランザクション要求が、いつクレジット許諾を受信した発信元デバイスによって送信されるかを、これを示すトランザクション要求と関連するインジケータによって判定することができる。このようなトランザクション要求に応じて、受信デバイスは、利用可能な予約済み記憶位置があることを認識しながらトランザクション要求を受諾することができ、このようにして、クレジット許諾インジケータを有するトランザクション要求は、常に受信デバイスによって受諾される。クレジット許諾についての情報がトランザクション要求とともに伝送されるため、受信デバイスは、以前に受諾されていないトランザクション要求に関する情報を記憶する必要がなく、これは、受信デバイスの記憶要件を減少させる。
いくつかの実施形態において、前記クレジット生成器は、予約済みの利用可能な記憶位置の数のカウントを記憶するためのカウンタを備え、前記クレジット生成器は、前記記憶位置のうちの1つが利用可能になったことの判定に応じて前記カウント値をインクリメントし、受信されたクレジット許諾が使用されていることを示すインジケータを含むトランザクション要求の受信に応じて前記カウント値をデクリメントするように、構成される。
拒否されたトランザクション要求のためのクレジット許諾を発行する場合、関連するクレジット許諾インジケータを有するトランザクション要求が受信される際、それが受諾されることを保証することできるように、バッファ内の記憶位置が予約される。特定のトランザクション要求のために特定の記憶位置を予約するのではなく、クレジット生成器は、それらに関連するクレジット許諾を有するトランザクション要求のために予約されているバッファ内の記憶位置の数を示すカウント値を単純にインクリメントする。このようにして、単純にカウント値を記憶することによって、クレジット生成器は、いくつの記憶位置がクレジット許諾を有するトランザクション要求のために予約されているか、およびいくつの記憶位置が他のトランザクション要求のために利用可能であるか、を認識する。この点においては、トランザクション要求がバッファ内に記憶される際にデクリメントし、トランザクション要求がバッファから排除される際にインクリメントする、空きの記憶位置をカウントするさらなるカウンタを有することによって、後者を判定してもよい。
いくつかの実施形態において、前記クレジット生成器は、前記複数の発信元デバイスに対応する複数のカウンタであって、それぞれが前記受信デバイスによって受諾されていない前記各複数の発信元デバイスから受信された保留トランザクション要求の数を示すカウント値を記憶するための、複数のカウンタをさらに備え、前記クレジット生成器は、前記受信デバイスが前記対応する発信元デバイスからの前記トランザクション要求のうちの少なくともいくつかを受信して、受諾しないことに応じて、前記カウンタのうちの1つをインクリメントし、受信されたクレジット許諾が使用されていることを示すインジケータを含むトランザクション要求を、前記対応する発信元デバイスから受信することに応じて、前記カウンタのうちの1つをデクリメントするように構成される。
前述のように、受信デバイスは、受諾されていない個々のトランザクション要求の詳細を記憶する必要はない。いくつかの実施形態において、それは、発信元デバイスの数に対応する数のカウンタを有し、これらが、受信デバイスが各発信元デバイスから受信し、受諾しなかったトランザクション要求の数を示すカウント値を記憶する。この情報を記憶することは、どの発信元デバイスが、保留であり、かつ受信デバイスから拒否された多数のトランザクション要求を有するかを、受信デバイスが認識することを可能にする。次に、どの発信元デバイスに対してクレジット許諾を発行するかを選択する際に、この情報を使用することができる。再度、この情報は、面積効率のよい方法で記憶される。
いくつかの実施形態において、前記クレジット生成器は、前記受信デバイスによって受信され、受諾されない前記トランザクション要求の全てに応じて、前記カウンタのうちの1つをインクリメントするように構成される。一方で他の実施形態においては、前記クレジット生成器は、前記受信デバイスによって受信され、受諾されず、かつクレジット許諾インジケータを含む前記トランザクション要求に応じてのみ、前記カウンタのうちの1つをインクリメントするように構成される。
受信デバイスによって受諾されない各トランザクション要求に対して、受信デバイスは、それが拒否されていることを示す、カウンタをインクリメントし、後にその発信元デバイスにクレジット許諾を伝送してもよい。この場合、トランザクション要求の最初の拒否後、発信元デバイスは、クレジット許諾が受信されるまでトランザクション要求を再度発行しない。あるいは、クレジット許諾を待つ前に、トランザクション要求が一定の回数送信されるようなシステムが考案されてもよい。後者の場合、受信デバイスが、トランザクション要求が再度送信されるのか、またはクレジット許諾を待っているのかを認識するために、トランザクション要求は、必要な回数それが送信された場合に、それと関連するクレジット許諾インジケータを有することになる。このインジケータに応じて、受信デバイスは、トランザクション要求を送信した発信元デバイスに対応するカウンタのうちの1つをインクリメントし、これが、発信元デバイスがクレジット許諾を待っていることを受信デバイスに示す。
トランザクション要求を1回のみ送信し、その後クレジットを待つことの利点は、トランザクション要求が何回発行され、受諾されていないかを追跡する必要がなく、トランザクション要求上にクレジット許諾が必要であることを示すインジケータの必要性がないことである。しかしながら、一定の状況において、トランザクション要求が2回目または3回目で受諾される可能性が非常に高く、したがって、対応する記憶位置の予約を伴うクレジット許諾を要求し、待機する前に、トランザクション要求を1回しか送信しないことは、不必要なオーバーヘッドである場合がある。このような場合において、許諾を要求する前に、トランザクション要求が拒否される回数が特定の数になるように設定することで、システムの効率性を改善することができる。それは、明らかに発信元デバイスおよび受信デバイスの動作条件および機能性に依存し、したがって、いくつかの実施形態において、その値は適宜設定可能である。
いくつかの実施形態において、前記クレジット生成器は、前記受信デバイスによって受諾されなかった前記保留トランザクション要求に対して優先順位付けするための優先順位付けロジックを含み、前記優先順位付けロジックは、優先順位付けアルゴリズムおよび前記カウンタのカウント値に基づいて、前記クレジット許諾を伝送するために前記発信元デバイスのうちの前記1つを選択するように構成される。
受信デバイスのリソースが発信元デバイスに適正に割り当てられ、トランザクション要求が受諾されるまで長すぎる時間待機しなければならない発信元デバイスがないことを確実にするために、次のクレジット許諾のための発信元デバイスを選択する優先順位付けアルゴリズムを有する優先順位付けロジックが使用可能である。この優先順位付けアルゴリズムは、各発信元デバイスが有するトランザクションがいくつ拒否されたかをそれに示す、カウンタのカウント値を使用してもよい。
いくつかの実施形態において、前記クレジット生成器は、前記発信元デバイスのうちの1つに対して生成および出力されたクレジット許諾が、前記発信元デバイスによって必要とされないことを示す、前記少なくとも1つのポートで受信されるクレジット拒否要求に応答して、前記予約済み記憶位置を利用可能にし、前記発信元デバイスのうちの前記1つに関連する前記カウンタをデクリメントする。
受信デバイスがクレジット拒否要求に応答して、予約済みの記憶位置を利用可能にし、クレジット拒否要求を送信する発信元デバイスに関連するカウンタをデクリメントすることができれば、有利な場合がある。いくつかの場合において、クレジット許諾は、トランザクション要求を再発行しない発信元デバイスに対して発行される場合がある。これは、トランザクション要求が、推測で発行され、受信デバイスによって受諾されず、クレジット許諾をトリガーした場合に起こる場合がある。この推測によるトランザクション要求の発行は、繰り返されず、したがって、クレジット許諾は、発信元デバイスによって必要とされない。記憶位置を必要としないこの発信元デバイスのために、恒久的に予約される記憶位置を有するよりも、発信元デバイスが、クレジット拒否信号を伝送して、予約済みの記憶位置は必要なく、別の保留トランザクション要求を記憶するために解放可能であることを受信デバイスに示すことができれば、有利である。
いくつかの実施形態において、前記クレジット生成器は、前記少なくとも1つのポートで受信される、発信元デバイスからのクレジット許諾請求に応答して、記憶位置が前記バッファ内でいつ利用可能になるのかを判定し、利用可能な記憶位置を予約し、前記発信元デバイスにクレジット許諾を生成および出力する。
受信デバイスが、クレジット許諾請求に応答して、発信元デバイスに対してクレジット許諾を発行することができれば、これも有利な場合がある。発信元デバイスは、いつそれらが受信デバイスへのアクセスを必要とする動作期間に入るのかを判定することができる場合がある。このような場合には、それらがクレジット許諾を前もって要求し、後に受信デバイスにアクセスする際に、トランザクション要求が受諾されることが保証され、システムの性能を改善することができれば、有利な場合がある。
本発明の第2の態様は、少なくとも1つの相互接続を介して、複数の受信デバイスに対してトランザクション要求を発行する発信元デバイスであって、前記発信元デバイスは、前記少なくとも1つの相互接続から要求および信号を受信し、そこにトランザクション要求を発行する少なくとも1つのポートを備え、前記発信元デバイスは、前記複数の受信デバイスのうちの各1つに対して前記トランザクション要求を発行し、前記発行されたトランザクション要求が前記各受信デバイスによって受諾されていないことを示す確認応答信号を受信するための、トランザクション要求発行回路を備え、前記トランザクション要求発行回路は、前記発行されたトランザクション要求のうちの1つが、前記各受信デバイスによって受信されなかったことを示す少なくとも1つの確認応答信号の受信に応答し、前記各受信デバイスからのクレジット許諾の受信後まで、前記発行されたトランザクション要求のうちの前記1つを発行しないように構成され、前記クレジット許諾は、前記各受信デバイスが、前記発信元デバイスからのその後のトランザクション要求を受諾することを示す、発信元デバイスを提供する。
本発明は、トランザクション要求が受諾されていないことを示す、受信デバイスからの確認応答信号の受信に応じて、各受信デバイスからのクレジット許諾の受信後まで、トランザクション要求を再発行しない、発信元デバイスを提供する。クレジット許諾は、その後のトランザクション要求が受信デバイスによって受諾されることを発信元デバイスに示す。このようにして、継続的に拒否される可能性のあるトランザクション要求を継続的に発行するより、発信元デバイスは、単純にクレジット許諾の受信を待ち、そうするとトランザクション要求が受諾され、これを再度発行することが可能であることを認識する。このようにして、トランザクション要求の受諾が保証され、継続的に拒否される特定のトランザクション要求に対する長い待機時間が回避される。さらに、トランザクション要求の継続的な再送信およびそれらの継続的な拒否を回避することによって、電力消費および相互接続の帯域幅を減少させることができる。
いくつかの実施形態において、前記トランザクション要求発行回路は、前記発行されたトランザクション要求のうちの1つが前記各受信デバイスによって受諾されていないことを示す各確認応答信号に応答して、前記各受信デバイスのクレジット許諾の受信後まで、前記トランザクション要求のうちの前記1つを再度発行しないようにする。
発信元デバイスは、トランザクション要求が受諾されていないことを示す各確認応答信号に応答して、それを再度発行せずに、クレジット許諾を待ってもよい。あるいは、発信元デバイスは、トランザクション要求が受諾されなかった回数を追跡するカウンタを備えてもよく、発信元デバイスは、一定回数受諾されなかった後は、ただトランザクション要求を再度発行しないだけになるであろう。
トランザクション要求を何回も発行することを推測で試みることは、それが受諾されることになる可能性が非常に高いため、有利な場合がある。しかしながら、継続的に拒否されることを回避するために、拒否される回数を追跡し、一定回数後にクレジット許諾を要求することが有利な場合がある。その回数は、カウンタによって発信元デバイスで追跡されるため、このトランザクション要求が所定回数拒否されており、クレジット許諾を必要とするという情報は、それが一定回数拒否された段階で、トランザクション要求にクレジット許諾インジケータを添付することによって、受信デバイスに伝送可能である。これは、発信元デバイスが、トランザクション要求は一定回数だけ拒否され、この後クレジット許諾の受信に応じて再度発行された際に、受諾されることを確実にすることを可能にする。
いくつかの実施形態において、前記トランザクション要求発行回路は、前記発信元デバイスの検出された動作条件に応じて、前記所定値を変更するように構成される。
トランザクション要求を再発行するための回数の好ましい値は、発信元デバイスおよび受信デバイスの動作条件に依存し、処理中に変化する場合がある。したがって、この所定値が、変化可能であれば、有利な場合がある。多数の発信元デバイスは、受信デバイスに、一定の時間では低頻度でアクセスし、他の時間では非常に頻繁にアクセスするといった、集中的な方式でアクセスする。アクセスパターンがこの種類の場合、最適な所定値は、アクセスパターンによって変化し、したがって、動作中にこの値を変更可能であることは、システムがより効率的に動作するように調整されることを可能にする。
いくつかの実施形態において、前記トランザクション要求発行回路は、前記各受信デバイスによって受諾されず、前記発信元デバイスが再発行しない、発行済みのトランザクション要求に応じて受信される、クレジット許諾の受信に応じて、クレジット拒否要求を発行するように構成される。
発信元デバイスは、受信デバイスによって受諾されないが、発信元デバイスは再度発行することに関心のない、トランザクション要求を発行する場合がある。例えば、それは、推測的データアクセスの場合がある。このような場合において、発信元デバイスに対してクレジットが発行される場合、発信元デバイスは、このクレジット許諾を必要とせず、そのクレジット許諾のために受信デバイス内に予約されている記憶位置を解放することができるように、クレジット拒否要求を発行することができれば、便利である。
いくつかの実施形態において、トランザクション要求発行回路は、少なくとも1つのクレジット許諾請求を生成し、前記複数の受信デバイスのうちの1つに対して前記クレジット許諾請求を発行するための、クレジット許諾請求生成器を備え、前記クレジット許諾請求は、前記受信デバイスのうちの前記1つをトリガーして、前記発信元デバイスにクレジット許諾を発行し、そうして前記発信元デバイスから前記受信デバイスのうちの前記1つに対して発行されるその後のトランザクション要求が受諾されることになる。
発信元デバイスが、トランザクション要求より先にクレジット許諾を請求することができる、クレジット許諾請求生成器を有すれば、便利な場合がある。発信元デバイスが、受信デバイスに頻繁にアクセスする必要がある動作期間がいくつかあり、これらの動作期間は、短い待機時間が重要である場合がある。このような場合において、クレジット許諾を前もって要求可能であることが、発信元デバイスの性能を改善する。
いくつかの実施形態において、前記トランザクション要求発行回路は、前記クレジット許諾の受信に応じて、前記各受信デバイスに対して発行するためのトランザクション要求を選択し、その発行前に、前記クレジット許諾が前記選択されたトランザクション要求に使用されていることを示すインジケータを付加するように、構成される。
クレジット許諾が、発信元デバイスによって受信される場合、発信元デバイスは、受諾されず、実際にこのクレジット許諾をトリガーしたトランザクション要求のためにそれを使用する必要はない。発信元デバイスは、それ自体の優先順位付けロジックに従って、おそらく拒否されたトランザクション要求よりも、性能にとってより重要である保留トランザクション要求を選択し、このトランザクション要求が受諾されることを確実にする、クレジット許諾が受信されたことを示すインジケータを伴ってこれを発行することができる。このようにして、発信元デバイスは、性能に重要なトランザクション要求を優先することができ、受信デバイスは、どのクレジット許諾が使用されたかを、単純に、トランザクション要求に関連するインジケータを監視することによって、追跡することができる。
本発明の第3の態様は、複数の発信元デバイス、複数の受信デバイス、および前記複数の発信元デバイスを前記複数の受信デバイスに接続する少なくとも1つの相互接続を備えるデータ処理装置であって、前記発信元デバイスのうちの少なくとも1つが、本発明の第2の態様による発信元デバイスであり、前記受信デバイスのうちの少なくとも1つが、本発明の第1の態様による受信デバイスである、データ処理装置を提供する。
本発明の第3の態様は、複数の発信元デバイスによって発行されるトランザクション要求を受信する受信デバイスで、どのトランザクション要求を受諾するかを判定する方法であって、前記トランザクション要求を受信することと、前記受信デバイスによって受信されるが受諾されないトランザクション要求に対する拒絶確認応答信号を生成することと、前記受信デバイスによる実行の前に、受諾された保留トランザクション要求をバッファ内に記憶することと、前記バッファ内に、少なくとも1つの利用可能な記憶位置を予約することと、前記受信デバイスによって受諾されなかった前記トランザクション要求のうちの1つを送信した発信元デバイスに対するクレジット許諾を生成することと、前記発信元デバイスからのその後のトランザクション要求が前記受信デバイスによって受諾されるように、予約済み記憶位置があることを示す前記クレジット許諾を前記発信元デバイスに出力することと、を含む、方法を提供する。
本発明の第4の態様は、複数の受信デバイスに対してトランザクション要求を発行する方法であって、前記方法は、前記複数の受信デバイスの各1つに対して前記トランザクション要求のうちの1つを発行することと、前記発行されたトランザクション要求が、前記各受信デバイスによって受諾されなかったことを示す、確認応答信号を前記各受信デバイスから受信することと、前記発行されたトランザクション要求のうちの1つが前記各受信デバイスによって受諾されていないことを示す、少なくとも1つの確認応答信号に応じて、前記各受信デバイスが前記発信元デバイスからのその後のトランザクション要求を受諾することを示す、前記各受信デバイスからのクレジット許諾の受信後まで、前記トランザクション要求を再度発行しないことと、を含む、方法を提供する。
本発明の第5の態様は、少なくとも1つの相互接続を介して、複数の発信元手段からトランザクション要求を受信するための受信手段であって、前記受信手段が、前記少なくとも1つの相互接続から前記トランザクション要求を受信し、そこに要求および信号を発行するための少なくとも1つのポート手段と、要求が前記受信手段によって受信されたが受諾されていないことを示す、拒絶確認応答信号を生成および出力するための確認応答信号生成手段と、前記受信デバイスによる実行の前に、受諾された保留トランザクション要求を記憶するための記憶手段と、前記記憶手段内に少なくとも1つの利用可能な記憶位置を予約し、前記受信手段によって受諾されなかった前記トランザクション要求のうちの1つを送信した発信元手段に対して、クレジット許諾を生成するための、クレジット生成手段であって、前記発信元手段からのその後のトランザクション要求が、前記受信手段によって受諾されることになるように、前記クレジット許諾が、前記発信元手段に対して、少なくとも1つの予約済み記憶位置があることを示す、クレジット生成手段と、を含む、受信手段を提供する。
本発明の第6の態様は、少なくとも1つの相互接続を介して、複数の受信手段に対してトランザクション要求を発行するための発信元手段であって、前記発信元手段が、前記少なくとも1つの相互接続から要求および信号を受信し、そこにトランザクション要求を発行するための少なくとも1つのポート手段を備え、前記発信元手段が、前記トランザクション要求を前記複数の受信手段の各1つに発行し、前記発行されたトランザクション要求が、前記各受信手段によって受諾されていないことを示す確認応答信号を前記相互接続から受信し、前記トランザクション要求が前記各受信手段によって受諾されていないことを示す、少なくとも1つの確認応答信号に応じて、前記受信手段からのクレジット許諾の受信後まで、前記トランザクション要求を再度発行しないための、トランザクション要求発行手段を含み、前記クレジット許諾が、前記各受信手段は前記発信元手段からのその後のトランザクション要求を受諾することを示す、発信元手段を提供する。
本発明の上記の、および他の目的、特徴および利点は、添付の図面に関連して読まれるべき例示的実施形態の以下の詳細な記述から明らかになるであろう。
本発明の実施形態による受信デバイスを示す。 本発明の実施形態による発信元デバイスを示す。 いくつかの発信元デバイスおよびいくつかの受信デバイスを含み、全てが相互接続によって相互接続されているデータ処理システムを示す。 本発明の実施形態による、データ処理システム内のトランザクション要求の進行を概略的に示す。 本発明の実施形態による受信デバイスによって実行される方法におけるステップを図示するフロー図を示す。 本発明の実施形態による発信元デバイスによって実行される方法におけるステップを図示するフロー図を示す。
図1は、本発明の実施形態による受信デバイス10を示す。この受信デバイスは、典型的に、整合性コントローラまたは入力/出力ブリッジ等、システム内のスレーブであってもよい。
この受信デバイスは、発信元デバイスから相互接続上で送信されたトランザクション要求を、ポート12で受信する。受信デバイス10は、受信デバイスによって実行される前に、受信された保留トランザクション要求を記憶するためのバッファ15を備える。したがって、トランザクション要求の受信に応じて、受信デバイス10は、トランザクション要求を受諾し、利用可能な記憶位置がある提供されたバッファ15内にそれを記憶する。利用可能な記憶位置があるかどうかは、アービタ20によって判定される。
保留トランザクション要求は、トランザクション要求が、バッファ15から排除され、受信デバイスがそれらを実行することができるまで、バッファ15内に記憶される。受信デバイスが保留トランザクション要求を実行すると、次に、完了した確認応答システムが、発信元デバイスに返送される。
アービタ20と関連する、利用可能な記憶位置の数をカウントするカウンタ28があり、アービタ20は、このカウンタから記憶位置の可用性を判定する。受信されたトランザクション要求がバッファ15内に記憶される場合、カウンタ28はデクリメントされ、一方で、トランザクション要求がバッファ15から排除される場合、カウンタはインクリメントされる。
アービタ20が、バッファ15内に利用可能な空間がないと判定すると、トランザクション要求は、受信デバイス10によって受諾することができず、拒否される。アービタ20は、ポート12を介して、トランザクション要求を送信した発信元デバイスに、トランザクション要求が受諾されていないことを示す信号を伝送し戻す、確認応答信号生成器25に対してこの拒否を発信する。
トランザクション要求が、それに関連するクレジット許諾請求を有する場合、アービタ20は、クレジットが必要であることをクレジット生成器30に発信し、クレジット生成器30は、トランザクション要求を送信した発信元デバイスに関係するカウンタ32をインクリメントし、カウンタ内のこのインクリメントは、その発信元デバイスにクレジットが必要であることをクレジット生成器に示す。いくつかの実施形態において、全ての拒否トランザクション要求は、クレジット生成器30をトリガーして、カウンタ32のうちの1つをインクリメントし、しかるべき時に、クレジットを送信することに留意されたい。他の実施形態においては、受信され、それらに関連するクレジット許諾請求を有するトランザクション要求のみが、この作用をトリガーする。カウンタ32は、各発信元デバイスに対するクレジット許諾を待っている全ての保留の拒否トランザクション要求をカウントすることができる、適切なサイズにサイズ決めされる必要があることにもまた、留意されたい。
クレジット生成器30は、利用可能な記憶位置がある場合にそれを判定するために監視する。カウンタ28を監視することによって、これを行ってもよい。クレジット生成器30が、保留の拒否トランザクション要求を有する場合、つまり、カウンタ32のうちの少なくとも1つが0ではない場合、それを検出すると、利用可能な記憶位置を予約し、クレジット生成器30内の優先順位付けロジック34は、保留の拒否トランザクション要求を有する発信元デバイスのどれが、このクレジットを受信するべきかを判定する。次に、このようなクレジットを生成し、それを発信元デバイスに伝送する。それはまた、クレジットを送信した発信元デバイスに関連するカウンタ32をデクリメントする。クレジットを予約するために、クレジット生成器30は、記憶位置の数を示すカウンタ36をインクリメントする。カウンタ28は、利用可能な記憶位置の合計数、つまり、予約済みのもの、および空いていて予約されていないものをカウントしてもよく、または予約されていない空き記憶位置だけをカウントしてもよい。
優先順位付けロジック34は、特定の発信元デバイスを選択するために、いくつかのアルゴリズムのうちの1つを使用してもよい。発信元デバイスを選択する際に、それは、カウンタ32の値を考慮する。発信元デバイスが、拒否されて保留中のトランザクション要求を多数有する場合、それは、概して、より少ない数を有するものよりも高い優先度を有する。いくつかの場合において、クレジット生成器が、いずれの記憶位置も予約しないが、利用可能な記憶位置を予約しクレジットを発行する前に、カウント値がインクリメントするのを待機する場合は、全てのカウント値はゼロであってもよい。
一般に、予約済みのバッファ記憶位置の割り当てのための優先順位付けは、クレジットを待っている全ての保留中の拒否トランザクション要求、およびいくつかの実施形態においてはサービス品質QOS要件に配慮して適正な方式でなされるべきである。
QOS優先順位付けが必要とされるシステムにおいて、クレジット許諾追跡は、再試行された要求のQOS値もまた追跡するべきであり、したがって、発信元デバイスに関係する少なくとも1つのQOS値は、そのデバイスのためのカウンタとともに記憶されるべきである。このようなシステムにおいて、QOS値は、トランザクション要求と関連することになり、これは、カウンタと連動して記憶することができる。発信元デバイス毎に1つのQOSのみが記憶される場合は、最も最近拒否されたトランザクション要求に対する値が記憶可能である。クレジットが許諾される場合、このQOS値は、値を減少されるか、または消去されてもよい。クレジット許諾を受信する次の発信元デバイスの選択は、QOS値の優先度を配慮するべきである。システムはまた、低い優先度の要求をスタベーション、つまり決してクレジットを受信しないことから防止するために、スタベーション防止機構を実装するべきである。
割り当てるための次のクレジット許諾を選ぶためのアービトレーションは、2段階で行うことができる。まず、最も高いQOS値に基づいて選び、次に、ラウンドロビン方式で同一のQOS値の中から要求を選ぶ。
トランザクション要求の受信に加えて、受信デバイス10は、発信元デバイスからクレジット許諾要求を受信することができる。これは、発信元デバイスが、受信デバイスへのアクセスを必要とする動作モードに入ろうとしていることを認識する場合、および実行されるコードが、短い待機時間で実行するべき重要なコードである場合に、起こる場合がある。このような場合、受信デバイス10から前もってクレジットを受信し、そのトランザクション要求を発行するときには、受信デバイス10による受諾が保証されるようにすることができれば、望ましい。このようなクレジット許諾要求に応じて、クレジット生成器30は、発信元デバイスに対してクレジットを発行する。それはまた、カウンタ36をインクリメントする。
受信デバイス10はまた、発信元デバイスからクレジット拒否要求も受信する場合がある。これは、発信元デバイスが、再発行を希望しない保留の拒否トランザクション要求に対するクレジットを受信した場合に起こる場合がある。このような場合において、バッファ15内の記憶位置の予約をもたらすクレジットを保持するよりも、発信元デバイスが、クレジット許諾拒否信号を使用してそのクレジットを返却し、これに応じて、クレジット生成器30が、カウンタ36をデクリメントすることによって予約済みの記憶位置を解放する。
クレジットが許諾される際にカウンタ36をインクリメントし、それらが使用されるかまたは返却される際に、それをデクリメントすることによって、クレジット生成器30は、面積効率がよく、簡単な方式で、予約済みの記憶位置の数を追跡し続けることができ、どのトランザクション要求が拒否され、どれがどの記憶位置の予約をトリガーしたかを追跡する必要がない。
アービタ20は、新たに受信されたトランザクション要求のための空き記憶位置があるかどうかを判定する際、カウンタ値36およびカウンタ値28を読み込む。新たに受信されたトランザクション要求が、それに関連するクレジットインジケータを有する場合、アービタ20によってバッファ15内に記憶され、カウンタ36はデクリメントされる。同様に、クレジットが許諾される際、カウンタ36はインクリメントされる。カウンタ28が、空いていてかつ未予約のものとは対照的に、空き(予約済みまたは未予約)の記憶位置を追跡する場合、それはカウンタ36とともに更新され、一方で未予約の空き記憶位置のみを追跡する場合は、予約済みの記憶位置の割り当ておよび解放は、このカウンタ値に影響しない。
図2は、本発明の実施形態による発信元デバイス40を示す。この発信元デバイスは、プロセッサコアなどのようなマスターであってもよい。この発信元デバイス40は、トランザクション要求を生成し、これらは、トランザクション要求発行器50によってポート42に発行される前に、アービタ57内のバッファ内に記憶される。トランザクション要求発行器50は、その中でアービタ57が発行されるべき保留トランザクション要求のうちの1つを選択するために使用する優先順位付けロジック55、およびクレジットキャンセラ58を有する。
トランザクション要求発行器50は、トランザクション要求を発行し、これらは、図1に示されるように、ポートを介して相互接続へ、次いで受信デバイス10等の受信デバイスへ送信される。トランザクション要求が、受信デバイスによって受諾されない場合、トランザクション要求が拒否されたことを示す確認応答信号が、発信元デバイス40へ送信され、ポート42で受信される。
この拒否確認応答信号に応じて、カウンタ60のカウント値がインクリメントされることになる。コンパレータ61は、カウンタ60のカウント値がデータ記憶62内に記憶された所定値と等しいかどうかを判定する。等しくない場合、トランザクション要求発行器は、このトランザクション要求を、アービタ57の制御下で再発行する。トランザクション要求発行器は、トランザクション要求を再発行する前に所定回数まで待ってもよく、またはほぼ即座に再発行してもよい。カウント値がデータ記憶62内に記憶された値と等しい場合、トランザクション要求発行器50は、それに関連するクレジット許諾要求インジケータを有するトランザクション要求を再発行する。その後、トランザクション要求発行器は、受信デバイスからクレジットを受信するまで、このトランザクション要求を再度再発行しない。
クレジットが、受信デバイスから受信されると、トランザクション要求発行器は、受諾されることを確実にするクレジット許諾インジケータを有するトランザクション要求を発行することができる。しかしながら、アービタ57および優先順位付けロジック55を使用して、そのクレジットを要求したものに対して異なるトランザクション要求を発行することを、決定することができる。発行された、選択されたトランザクション要求は、それに関連するクレジット許諾インジケータを伴って発行される。これは、受信者がトランザクション要求を受諾することを保証する。
このようにして、優先順位付けロジック55は、トランザクション要求に優先順位付けし、性能にとって重要なトランザクション要求が優先されることを確実にし、したがって、それらの待機時間が減少される。トランザクション要求が、クレジット許諾インジケータを伴って発行される場合、カウンタ60がクリアされる。いくつかの実施形態において、発信元デバイスは、保留トランザクション要求のサービス品質QOS値を追跡するかもしれない。これは、優先順位付けロジック55が、優先順位付し、クレジット許諾を提供するための適切なトランザクション要求を選択すること可能にする。
この実施形態において、単一のカウンタのみが示されているが、発信元デバイス40が数個のトランザクション要求を発行してもよく、それぞれがある時点でクレジット許諾を要求することができるように、それぞれに対するカウントが保たれるため、数個のカウンタが存在してもよい。
クレジットが、そのクレジットの生成をトリガーしたトランザクション以外のトランザクション要求に対して発行される場合、クレジットを待っていたこのトランザクション要求は、クレジット許諾なしで再度再発行することができる。いくつかの実施形態においては、それと関連するクレジット要求により即座に再発行されてもよく、あるいは、再度、クレジットの要求前に62内の値によって決定された回数再発行されるように、クレジット許諾なしで再発行され、そのカウンタがゼロに設定されてもよい。
いくつかの実施形態において、発信元デバイス40は、カウンタ60またはコンパレータ61もしくはデータ記憶62を有しない。これらの実施形態において、受諾されない各トランザクション要求は、受信デバイスをトリガーして、クレジット許諾を生成し、各トランザクション要求が、1回だけ発行され、次に、クレジットの受信を待つ。
いくつかの実施形態において、データ記憶62内に記憶された値は、リアルタイムで変化してもよく、そのため動作条件は、クレジット許諾を要求する前にトランザクション要求が発行される回数もまた変化することができるように、変化する。これは、システムが現在の動作条件に対して調整されることを可能にし、性能を高める場合がある。
この実施形態において、トランザクション要求発行器50はまた、それに関連するクレジットキャンセラ58を有する。このクレジットキャンセラは、発信元デバイス40が、おそらく推測で発行され、再発行を希望しない保留トランザクション要求のためのクレジットを受信した場合に、クレジットキャンセル信号を発行してもよい。クレジットを保持するよりは、クレジットキャンセラ58が、受信デバイスに対して送信され、この特定のクレジットのために予約されている記憶位置を解放するように作用するクレジットキャンセル信号を発行するとすれば、有利である。
図3は、相互接続70を介して複数の受信デバイス10に接続される、複数の発信元デバイス40を備えるデータ処理システムを概略的に示す。各発信元デバイスは、相互接続70を介して、受信デバイス10のうちのいずれか1つにトランザクション要求を送信する。これらのデバイスは、トランザクション要求を受諾するか、またはそれらを拒否するかのどちらかであり、後者の場合は、これを示す確認応答信号を送信する。クレジット信号は、後に送信されてもよく、これらのトランザクション要求に応じて、相互接続を介して、それらに添付されるクレジットインジケータを伴って再発行することができる。
図4は、図2の発信元デバイス40に対応する要求ノードからのトランザクション要求が、おそらくはメモリコントローラへ送信される前に、送信先または図1に示されるもの等の受信デバイスに対応するホームノードにおいて、どのように処理されるかを非常に概略的に示す。第1の実施例において、読み込み要求は、それに添付されるクレジットを伴って、要求ノードによって発行される。これは、ホームノードで受信され、そのバッファ内の予約済みの記憶位置内に記憶される。それは、次に、メモリコントローラへ送信されることによって実行され、データは、要求ノードに返却される。
第2の実施例において、類似の読み込み要求が要求ノードから送信されるが、この場合はそれに添付されるクレジットはない。それが、ホームノードに到着する場合、クレジットを有するトランザクション要求のために予約されていない利用可能な空間がバッファ内に偶然存在し、したがって、読み込み要求は受諾され、それが実行されて、メモリコントローラに送信され、データが元の要求ノードへの返送されるまで、バッファ内に記憶される。
第3の実施例は、上述の実施例と類似しているが、しかしながら、この場合は、バッファ内に利用可能な空間がなく、したがって、読み込み要求が、それにクレジットを添付されていないため、ホームノードで受諾されず、否定的な確認応答信号が要求ノードに返送される。要求ノードは、ホームノードからクレジットを受信するまで、トランザクション要求を再度送信しない。要求ノードがクレジットを受信すると、次に、読み込み要求を、それに添付されるクレジットを伴って再度送信することによって、第1の実施例にあるように進行することができる。
図5は、本発明の実施形態による受信デバイスで行われる方法のステップを図示するフロー図を示す。
この方法において、トランザクション要求は、発信元デバイスから受信され、受信者は、それに関連するクレジットインジケータがあるかどうかを判定する。これがない場合は、バッファ内に利用可能な記憶位置があるかどうかを判定する。利用可能な記憶位置がある場合、トランザクション要求を受諾し、これをバッファ内に記憶する。次に空いている記憶位置の数をカウントするカウンタをデクリメントし、次のトランザクション要求を受信する。
トランザクション要求に関連するクレジットインジケータがあった場合は、バッファ内の予約済みの記憶位置の数を示すカウンタがデクリメントされ、トランザクション要求は、受諾され、バッファ内に記憶される。この実施例において、空き記憶位置の数をカウントするカウンタは、合計の空き記憶位置、つまり、予約済みのもの、予約されていないが利用可能なもの、をカウントし、したがって、このカウンタもまた、この時点でデクリメントされる。他の実施形態において、空き記憶位置カウンタは、予約されていない利用可能な位置のみをカウントしてもよく、その場合、それはこの時点ではデクリメントされない。
要求が、それに関連するクレジットインジケータを有さず、バッファ内に利用可能な記憶位置がない場合、トランザクション要求は受諾されず、拒否確認応答信号が発信元デバイスに返送される。この場合、受信者は、トランザクション要求が、それに関連するクレジット許諾インジケータを有するかどうかを判定する。有しない場合、このトランザクション要求に対してさらなる動きは全く行わない。それに関連するクレジット許諾インジケータを確かに有する場合、そのトランザクション要求を送信した発信元デバイスに対するカウンタをインクリメントする。これは、時間内に、その発信元デバイスのためのクレジットの許諾をトリガーする。これは、図5の第2のセクションに示される。
図5のフロー図の第2のセクションは、クレジットがどのようにして許諾されるのかを示す。したがって、クレジット生成器が判定するのは、あらゆる保留中の拒否トランザクション要求であり、それは、異なる発信元デバイスに関連するカウンタのうちのいずれかがゼロでないかどうかを判定することによって、これを行う。いずれかの保留中の拒否トランザクション要求がある場合、バッファ内に利用可能な記憶位置があるかどうかを判定する。利用可能な記憶位置がある場合、その記憶位置を予約し、この場合、それは予約済み記憶位置カウンタをインクリメントすることによって行われる。
クレジット許諾者は、次に、保留の拒否トランザクション要求を有する発信元を選択する。クレジット許諾者は、特定の発信元デバイスに対して保留中である拒否トランザクション要求の数に基づいて発信元デバイスを選択する、優先順位付けロジックを使用して、これを行う。クレジット許諾者は、次に選択した発信元デバイスにクレジットを発行し、その発信元デバイスに関連するカウンタをデクリメントし、クレジット許諾を待っているその発信元デバイスに対して、1つ少ない保留の拒否トランザクション要求があることを認識する。
それは、次に、これ以上保留中の拒否トランザクション要求がないどうかを判定し、ある場合は、バッファ内に利用可能な記憶位置があるかどうかを調べるために、もう一度確認する。
示されていないが、クレジット許諾生成器はまた、クレジットのための要求を受信することができ、この場合も、バッファ内に利用可能な記憶位置があるかどうかを調べるために確認し、ある場合は、その記憶位置を予約し、クレジットを発信元に伝送する。
クレジット許諾生成器は、以前に許諾されたクレジットが、もはや必要とされていないことを示す信号も受信する場合がある。このような場合において、それは、予約済みの記憶位置の数を示すカウンタをデクリメントする。
図6は、本発明の実施形態による発信元デバイスで行われる方法におけるステップを図示するフロー図を示す。この方法において、トランザクション要求は、トランザクション要求が受諾されているかどうかを次に判定する、発信元デバイスによって発行される。それが受諾されていない場合、拒否確認応答信号を受信し、次に発信元デバイスは、トランザクション要求が設定された回数発行されたかどうかを判定する。これは、単純に1回であってもよく、その場合、クレジット許諾受信箱に移る。1回よりも多い場合は、トランザクションが、まだ「N」回発行されていないかどうかを判定する。発行されていない場合、カウンタは、発信元デバイスがこのトランザクションを発行した回数を数える以外に、インクリメントされ、トランザクション要求は、再度発行される。これは、時間遅延後であってもよく、または即座であってもよい。トランザクション要求が、必要とされるN回発行されると、それに関連するクレジット要求を伴って再度発行される。発信元デバイスは、次に、トランザクション要求が受諾されるかどうかを判定される。受諾される場合、クレジット要求は受信デバイスによって処理されず、発信元デバイスは、単純に次のトランザクション要求を発行する。トランザクション要求が受諾されない場合は、トランザクション要求は再発行されないが、クレジット許諾を待つ。
クレジット許諾が受信されると、次に、トランザクション要求は、それが受諾されることを確実にするクレジットインジケータを伴って再発行される。この点において、n回拒否されたトランザクション要求は、このクレジットインジケータを伴って発行されてもよく、または発信元デバイスは、発行するための別のトランザクション要求を選択してもよい。
クレジット許諾信号は、単独で伝送される信号であってもよく、または拒否トランザクション要求に送信された応答信号に関連するインジケータであってもよいことを認識されたい。
本発明の例示的な実施形態が、添付の図を参照して本明細書に詳細に記載されてきたが、添付の請求項によって定義されるように、本発明はそれらの厳密な実施形態に限定されるものではなく、本発明の範囲および精神を逸脱することなく、様々な変更および修正が当業者によりそこにもたらされることを理解されたい。例えば、本発明の範囲を逸脱することなく、以下の従属請求の特徴と、独立請求の特徴との様々な組み合わせがなされてもよい。

Claims (21)

  1. 少なくとも1つの相互接続を介して、複数の発信元デバイスからトランザクション要求を受信するための受信デバイスであって、
    前記少なくとも1つの相互接続から前記トランザクション要求を受信し、そこに要求および信号を発行するための、少なくとも1つのポートと、
    要求が前記受信デバイスによって受信されたが受諾されていないことを示す拒絶確認応答信号を生成および出力するように構成される、確認応答信号生成器と、
    受諾された保留トランザクション要求を、前記受信デバイスによる実行の前に記憶するためのバッファと、
    クレジット生成器であって、
    前記バッファ内に少なくとも1つの利用可能な記憶位置を予約し、
    前記受信デバイスによって受諾されなかった前記トランザクション要求のうちの1つを送信した発信元デバイスに対して、クレジット許諾を生成するように構成され、前記クレジット許諾は、少なくとも1つの予約済み記憶位置があることを前記発信元デバイスに示し、前記発信元デバイスからのその後のトランザクション要求が、前記受信デバイスによって受諾されるようにする、クレジット生成器と、を備える、受信デバイス。
  2. 前記受信デバイスは、前記トランザクション要求を伝送する前記発信元によって受信されたクレジット許諾が使用されていることを示すインジケータを含む、トランザクション要求を受諾し、前記トランザクション要求を前記少なくとも1つの予約済み記憶位置に記憶するように構成される、請求項1に記載の受信デバイス。
  3. 前記クレジット生成器は、予約済みの利用可能な記憶位置の数のカウントを記憶するためのカウンタを備え、前記クレジット生成器は、前記記憶位置のうちの1つが利用可能になったことの判定に応じて前記カウント値をインクリメントし、受信されたクレジット許諾が使用されていることを示すインジケータを含むトランザクション要求の受信に応じて、前記カウント値をデクリメントするように構成される、請求項2に記載の受信デバイス。
  4. 前記クレジット生成器は、前記複数の発信元デバイスに対応する複数のカウンタであって、それぞれが前記受信デバイスによって受諾されていない前記各複数の発信元デバイスから受信された保留トランザクション要求の数を示すカウント値を記憶するための、複数のカウンタをさらに備え、前記クレジット生成器は、前記受信デバイスが前記対応する発信元デバイスからの前記トランザクション要求のうちの少なくともいくつかを受信して、受諾しないことに応じて、前記カウンタのうちの1つをインクリメントし、受信されたクレジット許諾が使用されていることを示すインジケータを含むトランザクション要求を前記対応する発信元デバイスから受信することに応じて、前記カウンタのうちの1つをデクリメントするように構成される、請求項1〜3のいずれか一項に記載の受信デバイス。
  5. 前記クレジット生成器は、前記受信デバイスによって受信されて、受諾されない前記トランザクション要求の全てに応じて、前記カウンタのうちの1つをインクリメントするように構成される、請求項4に記載の受信デバイス。
  6. 前記クレジット生成器は、前記受信デバイスによって受信されて、受諾されず、かつクレジット許諾インジケータを含む前記トランザクション要求に応じてのみ、前記カウンタのうちの1つをインクリメントするように構成される、請求項4に記載の受信デバイス。
  7. 前記クレジット生成器は、前記受信デバイスによって受諾されなかった前記保留トランザクション要求の優先順位付けのための優先順位付けロジックを含み、前記優先順位付けロジックが、優先順位付けアルゴリズムおよび前記カウンタのカウント値に基づいて、前記クレジット許諾を伝送するために前記インジケータデバイスのうちの1つを選択するように構成される、請求項4〜6のいずれか一項に記載の受信デバイス。
  8. 前記クレジット生成器は、前記発信元デバイスのうちの1つに生成および出力されたクレジット許諾が、前記発信元デバイスによって必要とされないことを示す、前記少なくとも1つのポートで受信されるクレジット拒否要求に応答して、前記予約済み記憶位置のうちの1つを利用可能にし、前記発信元デバイスのうちの前記1つに関連する前記カウンタをデクリメントする、請求項4〜7のいずれか一項に記載の受信デバイス。
  9. 前記クレジット生成器は、前記少なくとも1つのポートで発信元デバイスから受信されるクレジット許諾請求に応答して、記憶位置が前記バッファ内でいつ利用可能になるのかを判定し、利用可能な記憶位置を予約し、前記発信元デバイスにクレジット許諾を生成および出力する、請求項1〜9のいずれか一項に記載の受信デバイス。
  10. 少なくとも1つの相互接続を介して、複数の受信デバイスにトランザクション要求を発行するための発信元デバイスであって、
    前記少なくとも1つの相互接続から要求および信号を受信し、前記少なくとも1つの相互接続にトランザクション要求を発行する、少なくとも1つのポートを備え、
    前記発信元デバイスは、前記複数の受信デバイスのうちの各1つに対して前記トランザクション要求を発行し、前記発行されたトランザクション要求が前記各受信デバイスによって受諾されていない場合に示す確認応答信号を受信するための、トランザクション要求発行回路を備え、前記トランザクション要求発行回路は、前記発行されたトランザクション要求のうちの1つが前記各受信デバイスによって受諾されていないことを示す少なくとも1つの確認応答信号の受信に応答し、前記各受信デバイスからのクレジット許諾の受信後までは、前記発行されたトランザクション要求のうちの前記1つを再度発行しないように構成され、前記クレジット許諾は、前記各受信デバイスが前記発信元デバイスからのその後のトランザクション要求を受諾することを示す、発信元デバイス。
  11. 前記トランザクション要求発行回路は、前記発行されたトランザクション要求のうちの1つが前記各受信デバイスによって受諾されていないことを示す、各確認応答信号に応答して、前記各受信デバイスからのクレジット許諾の受信後までは、前記トランザクション要求のうちの前記1つを再度発行しないようにする、請求項10に記載の発信元デバイス。
  12. 前記トランザクション要求発行回路は、カウンタを含み、トランザクション要求が前記各受信デバイスによって受諾されなかった回数を、前記カウンタをインクリメントすることによって追跡し、前記回数が所定値に達することに応じて、クレジット許諾インジケータを有する前記トランザクション要求を発行し、前記各受信側からの前記クレジット許諾の受信後まで、前記トランザクション要求を再度発行しないように構成される、請求項10に記載の発信元デバイス。
  13. 前記トランザクション要求発行回路は、前記発信元デバイスの検出された動作条件に応じて、前記所定値を変更するように構成される、請求項12に記載の発信元デバイス。
  14. 前記トランザクション要求発行回路は、前記各受信デバイスによって受諾されず、前記発信元デバイスが再発行しない、発行済みのトランザクション要求に応じて受信される、クレジット許諾の受信に応じて、クレジット拒否要求を発行するように構成される、請求項10〜13のいずれか一項に記載の発信元デバイス。
  15. 前記トランザクション要求発行回路は、少なくとも1つのクレジット許諾請求を生成し、前記クレジット許諾請求を前記複数の受信デバイスのうちの1つに発行するための、クレジット許諾請求生成器を備え、前記クレジット許諾請求が、前記受信デバイスのうちの前記1つをトリガーして、前記発信元デバイスにクレジット許諾を発行させ、これにより、前記発信元デバイスから前記受信デバイスのうちの前記1つに対して発行されるその後のトランザクション要求が、受諾されるようになる、請求項10〜14のいずれか一項に記載の発信元デバイス。
  16. 前記トランザクション要求発行回路は、前記クレジット許諾の受信に応じて、前記各受信デバイスに対して発行するトランザクション要求を選択し、その発行前に、前記クレジット許諾が前記選択されたトランザクション要求に使用されていることを示すインジケータを付加するように構成される、請求項10〜15のいずれか一項に記載の発信元デバイス。
  17. 複数の発信元デバイスと、複数の受信デバイスと、前記複数の発信元デバイスを前記複数の受信デバイスに接続するための少なくとも1つの相互接続と、を備えるデータ処理装置であって、前記発信元デバイスのうちの少なくとも1つは、請求項10〜16のいずれか一項に記載の発信元デバイスであり、前記受信デバイスのうちの少なくとも1つは、請求項1〜9のいずれか一項に記載の受信デバイスである、データ処理装置。
  18. 複数の発信元デバイスによって発行されるトランザクション要求を受信する受信デバイスにおいて、どのトランザクション要求を受諾するかを判定する方法であって、
    前記トランザクション要求を受信することと、
    前記受信デバイスによって受信されるが受諾されないトランザクション要求に対して、拒絶確認応答信号を生成することと、
    受諾された保留トランザクション要求を、前記受信デバイスによる実行前にバッファ内に記憶することと、
    前記バッファ内に、少なくとも1つの利用可能な記憶位置を予約することと、
    前記受信デバイスによって受諾されなかった前記トランザクション要求のうちの1つを送信した発信元デバイスのためのクレジット許諾を生成することと、
    予約済みの記憶位置があることを示す前記クレジット許諾を前記発信元デバイスに出力し、前記発信元デバイスからのその後のトランザクション要求が前記受信デバイスによって受諾されるようにすることと、を含む、方法。
  19. 複数の受信デバイスにトランザクション要求を発行する方法であって、
    前記複数の受信デバイスのうちの各1つに対して前記トランザクション要求のうちの1つを発行することと、
    前記発行されたトランザクション要求が、前記各受信デバイスによって受諾されていないことを示す確認応答信号を、前記各受信デバイスから受信することと、
    前記発行されたトランザクション要求のうちの1つが前記各受信デバイスによって受諾されていないことを示す、少なくとも1つの確認応答信号に応じて、前記各受信デバイスが前記発信元デバイスからのその後のトランザクション要求を受諾することを示す前記各受信デバイスからのクレジット許諾の受信後まで、前記トランザクション要求を再度発行しないことと、を含む、方法。
  20. 少なくとも1つの相互接続を介して、複数の発信元手段からトランザクション要求を受信するための受信手段であって、
    前記少なくとも1つの相互接続から前記トランザクション要求を受信し、そこに要求および信号を発行するための、少なくとも1つのポート手段と、
    要求が前記受信手段によって受信されたが受諾されていないことを示す拒絶確認応答信号を生成および出力するための、確認応答信号生成手段と、
    前記受信デバイスによる実行の前に受諾された保留トランザクション要求を記憶するための記憶手段と、
    前記記憶手段内に少なくとも1つの利用可能な記憶位置を予約し、前記受信手段によって受諾されなかった前記トランザクション要求のうちの1つを送信した発信元手段に対してクレジット許諾を生成するための、クレジット生成手段であって、前記クレジット許諾が、少なくとも1つの予約済み記憶位置があることを前記発信元手段に示し、それにより前記発信元手段からのその後トランザクション要求が、前記受信手段によって受諾されるようにする、クレジット生成手段と、を備える、受信手段。
  21. 少なくとも1つの相互接続を介して、複数の受信手段にトランザクション要求を発行するための発信元手段であって、
    前記少なくとも1つの相互接続から要求および信号を受信し、そこにトランザクション要求を発行するための、少なくとも1つのポート手段を備え、
    前記発信元手段は、前記複数の受信手段のうちの各1つに対して前記トランザクション要求を発行し、前記発行されたトランザクション要求が前記各受信手段によって受諾されていない場合に示す確認応答信号を前記相互接続から受信し、前記各受信手段からのクレジット許諾の受信後までは、前記トランザクション要求が前記各受信手段によって受諾されていないことを示す少なくとも1つの確認応答信号に応じて、前記トランザクション要求を再度発行しないための、トランザクション要求発行手段を備え、前記クレジット許諾は、前記各受信手段が前記発信元手段からのその後のトランザクション要求を受諾することを示す、発信元手段。
JP2012154568A 2011-08-08 2012-07-10 発信元デバイスから受信デバイスに対して発行されるトランザクション要求のための動的リソース割り当て Active JP6025428B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/137,363 US8463958B2 (en) 2011-08-08 2011-08-08 Dynamic resource allocation for transaction requests issued by initiator devices to recipient devices
US13/137,363 2011-08-08

Publications (2)

Publication Number Publication Date
JP2013077287A true JP2013077287A (ja) 2013-04-25
JP6025428B2 JP6025428B2 (ja) 2016-11-16

Family

ID=46721733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012154568A Active JP6025428B2 (ja) 2011-08-08 2012-07-10 発信元デバイスから受信デバイスに対して発行されるトランザクション要求のための動的リソース割り当て

Country Status (4)

Country Link
US (1) US8463958B2 (ja)
JP (1) JP6025428B2 (ja)
CN (1) CN103164266B (ja)
GB (1) GB2493601B (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020514912A (ja) * 2017-03-17 2020-05-21 コンヴィーダ ワイヤレス, エルエルシー ネットワークサービス層における分散トランザクション管理
CN112106032A (zh) * 2018-05-03 2020-12-18 Arm有限公司 I/o主设备和cpu之间优化数据共享的有序写存储的高性能流

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120331034A1 (en) * 2011-06-22 2012-12-27 Alain Fawaz Latency Probe
US9372818B2 (en) 2013-03-15 2016-06-21 Atmel Corporation Proactive quality of service in multi-matrix system bus
US9213660B2 (en) 2013-06-14 2015-12-15 Arm Limited Receiver based communication permission token allocation
US9471524B2 (en) 2013-12-09 2016-10-18 Atmel Corporation System bus transaction queue reallocation
CN104394100B (zh) * 2014-11-07 2017-12-08 深圳市国微电子有限公司 信用分配方法和交换机
US11769150B2 (en) * 2017-10-11 2023-09-26 International Business Machines Corporation Transaction scheduling for block space on a blockchain
US11146495B2 (en) * 2019-08-23 2021-10-12 Arm Limited Protocol layer tunneling for a data processing system
US11860799B2 (en) * 2021-12-20 2024-01-02 Micron Technologies, Inc. Memory request modulation

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0567041A (ja) * 1991-09-10 1993-03-19 Fujitsu Ltd 低優先度アダプタの救済制御装置
JP2001195351A (ja) * 2000-01-11 2001-07-19 Nec Corp バスシステム及びバスアクセス方法
JP2007534052A (ja) * 2004-03-26 2007-11-22 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 集積回路及びトランザクション撤回方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7213087B1 (en) 2000-08-31 2007-05-01 Hewlett-Packard Development Company, L.P. Mechanism to control the allocation of an N-source shared buffer
US7127534B2 (en) * 2003-06-27 2006-10-24 Emulex Design & Manufacturing Corporation Read/write command buffer pool resource management using read-path prediction of future resources
US7047322B1 (en) * 2003-09-30 2006-05-16 Unisys Corporation System and method for performing conflict resolution and flow control in a multiprocessor system
US7603672B1 (en) * 2003-12-23 2009-10-13 Unisys Corporation Programmable request handling system and method
US7603502B2 (en) * 2005-04-12 2009-10-13 Microsoft Corporation Resource accessing with locking
US20070038703A1 (en) * 2005-07-14 2007-02-15 Yahoo! Inc. Content router gateway
US7996744B2 (en) * 2007-04-30 2011-08-09 Nokia Corporation Method and apparatus for providing a data retransmission scheme
PL2180627T3 (pl) * 2007-08-10 2018-06-29 Nokia Technologies Oy Sposób komunikacji i urządzenie do sterowania transmisją i retransmisją danych stacji mobilnej w stacji bazowej
US8694714B2 (en) * 2008-01-18 2014-04-08 Spansion Llc Retargeting of a write operation retry in the event of a write operation failure

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0567041A (ja) * 1991-09-10 1993-03-19 Fujitsu Ltd 低優先度アダプタの救済制御装置
JP2001195351A (ja) * 2000-01-11 2001-07-19 Nec Corp バスシステム及びバスアクセス方法
JP2007534052A (ja) * 2004-03-26 2007-11-22 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 集積回路及びトランザクション撤回方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020514912A (ja) * 2017-03-17 2020-05-21 コンヴィーダ ワイヤレス, エルエルシー ネットワークサービス層における分散トランザクション管理
JP7142641B2 (ja) 2017-03-17 2022-09-27 コンヴィーダ ワイヤレス, エルエルシー ネットワークサービス層における分散トランザクション管理
CN112106032A (zh) * 2018-05-03 2020-12-18 Arm有限公司 I/o主设备和cpu之间优化数据共享的有序写存储的高性能流
JP2021522611A (ja) * 2018-05-03 2021-08-30 アーム・リミテッド I/oマスタとcpuとの間の最適化されたデータ共有を可能にするための順序付けられた書き込みスタッシュの高性能なストリーミング
JP7378428B2 (ja) 2018-05-03 2023-11-13 アーム・リミテッド I/oマスタとcpuとの間の最適化されたデータ共有を可能にするための順序付けられた書き込みスタッシュの高性能なストリーミング

Also Published As

Publication number Publication date
JP6025428B2 (ja) 2016-11-16
GB2493601A (en) 2013-02-13
GB201211699D0 (en) 2012-08-15
CN103164266B (zh) 2018-03-02
US8463958B2 (en) 2013-06-11
CN103164266A (zh) 2013-06-19
GB2493601B (en) 2014-02-12
US20130042032A1 (en) 2013-02-14

Similar Documents

Publication Publication Date Title
JP6025428B2 (ja) 発信元デバイスから受信デバイスに対して発行されるトランザクション要求のための動的リソース割り当て
US6286068B1 (en) Queued arbitration mechanism for data processing system
US8490107B2 (en) Processing resource allocation within an integrated circuit supporting transaction requests of different priority levels
KR20180092277A (ko) 데이터 처리
US9529751B2 (en) Requests and data handling in a bus architecture
CN103810133A (zh) 动态共享读缓冲器管理
CN107480078B (zh) 一种总线带宽分配方法、装置及芯片
US8918791B1 (en) Method and system for queuing a request by a processor to access a shared resource and granting access in accordance with an embedded lock ID
US10133670B2 (en) Low overhead hierarchical connectivity of cache coherent agents to a coherent fabric
US7975090B2 (en) Method for efficient I/O controller processor interconnect coupling supporting push-pull DMA read operations
US9213660B2 (en) Receiver based communication permission token allocation
JP6129976B2 (ja) 高効率アトミック演算を使用した方法および装置
US20130042252A1 (en) Processing resource allocation within an integrated circuit
GB2569304A (en) Regulation for atomic data access requests
US10268604B2 (en) Adaptive resource management in a pipelined arbiter
US10705985B1 (en) Integrated circuit with rate limiting
EP1187029A2 (en) Peripheral component interconnect arbiter implementation with dynamic priority scheme
JP3317873B2 (ja) データ転送制御装置
KR100973419B1 (ko) 버스 중재 방법 및 장치
EP2588965B1 (en) Method, apparatus and system for maintaining transaction coherecy in a multiple data bus platform
JP2000250853A (ja) バス調整制御装置
US10942775B2 (en) Modified central serialization of requests in multiprocessor systems
EP0602916A2 (en) Cross-bar interconnect apparatus
JP4170506B2 (ja) 調停回路および方法
KR100857906B1 (ko) 마스터와 슬레이브 사이의 버스 전송을 제어하는 방법 및중재기

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150612

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20160601

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160531

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160901

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20161011

R150 Certificate of patent or registration of utility model

Ref document number: 6025428

Country of ref document: JP

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