JP2024079720A - 相互接続に関連付けられている仮想チャネルを介するトランザクションの部分のアービトレーション - Google Patents

相互接続に関連付けられている仮想チャネルを介するトランザクションの部分のアービトレーション Download PDF

Info

Publication number
JP2024079720A
JP2024079720A JP2024039915A JP2024039915A JP2024079720A JP 2024079720 A JP2024079720 A JP 2024079720A JP 2024039915 A JP2024039915 A JP 2024039915A JP 2024039915 A JP2024039915 A JP 2024039915A JP 2024079720 A JP2024079720 A JP 2024079720A
Authority
JP
Japan
Prior art keywords
transaction
arbitration
soc
interconnect
transactions
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.)
Pending
Application number
JP2024039915A
Other languages
English (en)
Inventor
デサイ・シャイレンドラ
ピアース・マーク
ジェイン・アミト
バット・ルトゥル
トッテ・ロバート
シエラ・ジュアン
ガイクワド・パリマル
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.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of JP2024079720A publication Critical patent/JP2024079720A/ja
Pending legal-status Critical Current

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/20Handling requests for interconnection or transfer for access to input/output bus
    • 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/3625Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a time dependent access
    • 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/366Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using a centralised polling arbiter
    • 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/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17306Intercommunication techniques
    • G06F15/17325Synchronisation; Hardware support therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • 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
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/109Integrated on microchip, e.g. switch-on-chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0024Peripheral component interconnect [PCI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0026PCI express
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0062Bandwidth consumption reduction during transfers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • H04L45/7453Address table lookup; Address filtering using hashing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Multimedia (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Bus Control (AREA)

Abstract

【課題】システムオンチップ(SoC)上の複数のサブシステムの間で共有相互接続へのアクセスをアービトレートするアービトレーションシステム及び方法を提供する。【解決手段】方法は、様々な送信元サブシステムエージェントが、トランザクションを生成し、生成したトランザクション夫々をパケット化し、パケット化したトランザクションの部分を対応するポートを介してローカルスイッチに投入し、夫々トランザクションクラス及びそれらに割り当てられた仮想チャネルによって、適切な先入れ先出しバッファに格納し、アービトレーションレベル各々の解決に必要なルールを用いて第1~第3レベルアービトレーションを実行して勝者を決定し、勝利部分を、共有リソースにアクセスするために用いられるバッファ内に配置し、バッファに関連付けられているカウンタをデクリメントし、共有リソースへアクセスする。これらを連続するクロックサイクル中に繰り返す。【選択図】図8

Description

関連出願への相互参照
本願は、2018年3月30日出願の米国仮特許出願第62/650,589 (PR
TIP001P)号および2019年2月4日出願の米国仮出願第62/800,897
(PRT1P003P)号に基づく優先権を主張する。これら優先権主張基礎出願の各
々は、すべての目的のためにその全体が参照によって本明細書に組み込まれる。
本願は、共有リソースへのアクセスをアービトレートすることに関し、特に、複数のト
ランザクションの部分の間でアービトレートして、クロックサイクルごとに相互接続に関
連付けられている複数の仮想チャネルの1つを介して勝利部分を送信することに関する。
システムオンチップ(「SoC」)は、複数のサブシステムを備える集積回路であり、
しばしば、知的財産(「IP」)エージェントまたはコアと呼ばれる。IPエージェント
は、典型的には、特定の機能を実装または実行するように設計された回路の「再利用可能
な」ブロックである。SoCの開発者は、典型的には、複数のIPエージェントが互いに
通信するように、チップ上にそれらのIPエージェントをレイアウトして相互接続する。
IPエージェントを用いることにより、複雑なSoCを開発する時間およびコストを大幅
に削減できる。
SoCの開発者が直面する課題の1つは、様々なIPエージェントが相互に動作するよ
うに、それらをチップ上で相互接続することである。この問題に対処するために、半導体
業界では、相互接続規格を適応させてきた。
1つのかかる規格は、英国ケンブリッジにあるARM社によって開発および普及された
アドバンスト・マイクロコントローラ・バス・アーキテクチャ(AMBA)である。AM
BAは、SoC上の機能IPエージェントの接続および管理のために幅広く利用されてい
るバス相互接続規格である。
AMBAでは、トランザクションが、要求を定義し、別個の応答トランザクションを要
求する。書き込みトランザクションでは、送信元が、リモート宛先にデータを書き込むこ
とを要求する。書き込み動作が実行されると、宛先は、確認応答トランザクションを送信
元に送り返す。書き込み動作は、応答トランザクションが送信元によって受信された時に
のみ完了したと見なされる。読み出しトランザクションでは、送信元が、リモートロケー
ションを読み出すためにアクセスを要求する。読み出しトランザクションは、応答トラン
ザクション(すなわち、アクセスされたコンテンツ)が送信元に返された時にのみ完了す
る。
AMBAでは、アービトレーション処理が、複数の競合トランザクションの間の相互接
続バスへのアクセスを許可するために用いられる。所与のアービトレーションサイクル中
に、競合トランザクションの1つが、勝者として選択される。次いで、相互接続バスは、
勝利トランザクションのデータ部の持続期間にわたって制御される。次のアービトレーシ
ョンサイクルは、現在のトランザクションのためのデータすべてが完了した後にのみ開始
する。この処理は、相互接続へのアクセスを巡って競合する複数の未処理のトランザクシ
ョンがあるという条件で、連続的に繰り返される。
AMBA規格の1つの問題は、待ち時間である。バス相互接続は、トランザクションご
とにアービトレートされる。トランザクションの任意の部分の間に、トランザクションが
読み出し、書き込み、または、応答のいずれであるかに関わらず、バスは、トランザクシ
ョン全体に対して制御される。トランザクションが開始すると、中断できない。例えば、
トランザクションのデータ部が4サイクル長である場合、別のトランザクションがバスへ
アクセスできる前に、すべての4サイクルが完了する必要がある。結果として、(1)ト
ランザクションは、クロックサイクルごとにはアービトレートできず、(2)すべての非
勝利競合トランザクションは、現在のトランザクションのデータ部が完了するまで待機す
る必要がある。これらの要因の両方が、相互接続の効率およびSoCの全体パフォーマン
スを下げる傾向がある。
システムオンチップすなわちSoC上の複数のサブシステムの間で共有相互接続へのア
クセスをアービトレートするためのアービトレーションシステムおよび方法が開示されて
いる。アービトレーションシステムおよび方法は、クロックサイクルごとに、(1)複数
のサブシステムによって生成された複数のトランザクションの部分の間でアービトレート
し、(2)複数のトランザクションの部分の中から勝利部分を選択し、(3)相互接続に
関連付けられている複数の仮想チャネルの1つを介して勝利部分を伝送するよう構成され
ているアービトレーション要素を備える。
(1)~(3)を繰り返し実行することにより、複数の勝利部分が、それぞれ、複数の
クロックサイクルにわたってインターリーブされて複数の仮想チャネルを介して伝送され
る。クロックサイクルごとに複数の仮想チャネルを介して複数のトランザクション部分の
アービトレーションを行うことで、待ち時間の削減、ならびに、相互接続の効率および利
用率の上昇など、多くの利点が得られる。これらの属性により、本明細書に開示されたア
ービトレーションシステムおよび方法は、システムオンチップ(SoC)上での相互接続
へのアクセスをアービトレートするのに非常に適切になる。
本願およびその利点については、添付の図面に関連して行う以下の説明を参照すること
によって最も良く理解できる。
非排他的実施形態に従って、システムオンチップ(SoC)のための共有相互接続を示すブロック図。
非排他的実施形態に従って、トランザクションのパケットの例を示す図。
第1非排他的実施形態に従って、アービトレーション要素を示す論理図。
第2非排他的実施形態に従って、アービトレーション要素を示す論理図。
非排他的実施形態に従って、共有相互接続の仮想チャネルを介してトランザクションの部分をアービトレーションして送信するための動作工程を示すフローチャート。
非排他的実施形態に従って、共有相互接続の仮想チャネルを介して異なるトランザクションの部分の伝送をインターリーブする第1例を示す図。
非排他的実施形態に従って、共有相互接続の仮想チャネルを介して異なるトランザクションの部分の伝送をインターリーブする第2例を示す図。
本発明の別の非排他的実施形態に従って、二方向にトラフィックを扱うための2つの共有相互接続を示すブロック図。
本発明の非排他的実施形態に従って、SoCの相互接続ファブリックの例を示すブロック図。
本発明の非排他的実施形態に従って、物理アドレスおよびソースベースルーティング(SBR)アドレスの両方を1以上のIPポートに解決するために用いられるルックアップテーブル(LUT)を示す図。
本発明の非排他的実施形態に従って、利用できるハッシュ関数を示す図。
本発明の非排他的実施形態に従って、SoCの相互接続ファブリックを介して送信されるトランザクションの拡大および統合を示す図。 本発明の非排他的実施形態に従って、SoCの相互接続ファブリックを介して送信されるトランザクションの拡大および統合を示す図。
本発明の非排他的実施形態に従って、トランキングリンクと、トランキングリンクの中からの物理リンクの選択とを示す図。 本発明の非排他的実施形態に従って、トランキングリンクと、トランキングリンクの中からの物理リンクの選択とを示す図。
図面において、同様の構造要素を指定するために、同様の符号が用いられることがある
。また、図中の描写は、図式的なものであり、必ずしも縮尺通りではないことを理解され
たい。
以下では、添付図面に例示された、いくつかの非排他的な実施形態を参照しつつ、本願
の詳細な説明を行う。以下の説明では、本開示の完全な理解を促すために、数多くの具体
的な詳細事項が示されている。しかしながら、当業者にとって明らかなように、本開示は
、これらの具体的な詳細事項の一部または全てがなくとも実施することが可能である。ま
た、本開示が不必要に不明瞭となるのを避けるため、周知の処理工程および/または構造
については、詳細な説明を省略した。
現在開発中の集積回路の多くは、非常に複雑である。結果として、多くのチップ設計者
は、システムオンチップすなわち「SoC」アプローチを用いて、単一のシリコン上に複
数のサブシステムまたはIPエージェントを相互接続してきた。消費者デバイス(例えば
、ハンドヘルド、携帯電話、タブレットコンピュータ、ラップトップおよびデスクトップ
コンピュータ、メデイア処理など)、仮想または拡張現実(例えば、ロボット工学、自律
走行車、航空機など)、医療機器(例えば、イメージングなど)、工業、ホームオートメ
ーション、工業(例えば、スマート家電、家庭用監視機器、など)およびデータセンター
用途(例えば、ネットワークスイッチ、接続型ストレージデバイス、など)など、様々な
用途のためのSoCが、現在利用可能であるかまたは開発されている。
本願は、共有リソースへのアクセスをアービトレートするためのアービトレーションシ
ステムおよび方法をおおむね対象にしている。かかる共有リソースは、例えば、バス相互
接続、メモリリソース、処理リソース、または、複数の競争パーティの間で共有されたほ
ぼ任意のその他のリソースでありうる。説明の便宜上、以下で詳述する共有リソースは、
システムオンチップすなわち「SoC」上の複数のサブシステムによって共有される相互
接続であるとする。
SoCでは、後に詳述するように、トランザクションの形態で互いにトラフィックをや
り取りする複数のサブシステムがあり、共有リソースは、物理的な相互接続であり、様々
なトランザクションまたはその部分が、共有相互接続に関連する複数の仮想チャネルを介
して伝送され、複数の異なるアービトレーションスキームおよび/または優先度の1つが
、サブファンクションの間のトランザクションの伝送に向けた共有相互接続へのアクセス
をアービトレートするために用いられてよい。
トランザクションクラス
SoCに用いられる上述の共有相互接続内には、Posted(P)、Non-pos
ted(NP)、および、Completion(C)を含む少なくとも3つのタイプま
たはクラスのトランザクションが存在する。各々の簡単な定義を以下の表1に提供する。
Figure 2024079720000002
Postedトランザクション(書き込みなど)は、応答トランザクションを求めない
。送信元がデータを指定された宛先に書き込むと、トランザクションが終了する。Non
-postedトランザクション(読み出しまたは書き出しのいずれかなど)では、応答
が求められる。しかしながら、応答は、別個のCompletionトランザクションと
して分岐される。換言すると、読み出しでは、最初のトランザクションが読み出し動作の
ために用いられ、別個であるが関連するCompletionトランザクションが読み出
しコンテンツを返すために用いられる。Non-posted書き込みでは、最初のトラ
ンザクションが書き込みのために用いられ、一方、書き込みが完了すると、第2関連Co
mpletionトランザクションが確認のために求められる。
トランザクションは、タイプに関わらず、1以上のパケットによって表すことができる
。いくつかの状況では、トランザクションは、単一のパケットによって表されうる。別の
状況においては、複数のパケットが、トランザクション全体を表すために必要とされうる
ビートは、クロックサイクルあたりに共有相互接続を介して伝送できるデータの量であ
る。例えば、共有相互接続が物理的に128ビット幅である場合、128ビットが、各ビ
ートまたはクロックサイクルに伝送されうる。
いくつかの状況において、トランザクションは、伝送のために複数の部分に分割される
必要がありうる。512ビット(64バイト)であるペイロードを有する単一のパケット
を有するトランザクションを考える。共有相互接続が128ビット幅(16バイト)のみ
である場合、トランザクションは、4つの部分(例えば、4×128=512)に分割さ
れ、4つのクロックサイクルまたはビートで伝送される必要がある。一方、トランザクシ
ョンが128ビット幅未満である単一パケットのみである場合、トランザクション全体が
、1つのクロックサイクルまたはビートで送信されうる。同じトランザクションがさらな
るパケットをたまたま含む場合、さらなるクロックサイクルまたはビートが必要とされう
る。
したがって、トランザクションの「部分」という用語は、所与のクロックサイクルまた
はビート中に共有相互接続を介して転送できるデータの量である。部分のサイズは、共有
相互接続の物理的な幅に応じて変わりうる。例えば、共有相互接続が物理的に64データ
ビット幅である場合、任意の1サイクルまたはビート中に転送できる最大ビット数は64
ビットである。所与のトランザクションが64ビット以下のペイロードを有する場合、ト
ランザクション全体が、単一部分で共有相互接続を介して送信されうる。一方、ペイロー
ドがより大きい場合、パケットは、複数の部分で共有相互接続を介して送信されなければ
ならない。128、256、または、512ビットのペイロードを有するトランザクショ
ンは、それぞれ、2、4、および、8の部分を必要とする。このように、「部分」という
用語は、任意の所与のクロックサイクルまたはビート中に共有相互接続を介して送信され
うるトランザクションの一部または全体のいずれかを意味すると広く解釈されるべきであ
る。
ストリーム
ストリームは、仮想チャネルおよびトランザクションクラスのペアリングとして定義さ
れる。例えば、4つの仮想チャネル(例えば、VC0、VC1、VC2、および、VC3
)、ならびに、3つのトランザクションクラス(P、NP、C)があった場合、最大で1
2の異なる可能なストリームがある。仮想チャネルおよびトランザクションクラスの様々
な組み合わせを、以下の表2で詳述する。
Figure 2024079720000003
上述したトランザクションクラスの数は、単に例示であり、限定として解釈すべきでは
ないことに注意されたい。逆に、任意の数の仮想チャネルおよび/またはトランザクショ
ンクラスが用いられてよい。
共有相互接続の仮想チャネルでのアービトレーション
図1を参照すると、アービトレーションシステム10のブロック図が示されている。非
排他的実施形態において、アービトレーションシステムは、アップストリームサブファン
クション14(すなわち、IP4、IP5、および、IP6)へトランザクションを送信
しようと試みる複数のサブファンクション14(すなわち、IP1、IP2、および、I
P3)による共有相互接続12へのアクセスをアービトレートするために用いられる。
共有相互接続12は、Nデータビット幅でありM個の制御ビットを含む物理的な相互接
続である。また、共有相互接続12は一方向性であり、これは、送信元(すなわち、IP
1、IP2、および、IP3)から宛先(すなわち、IP4、IP5、および、IP6)
への方向にのみトラフィックを扱うことを意味する。
様々な代替例において、Nデータビットの数は、任意の整数であってよいが、典型的に
は、それぞれ、2のべき乗のビット幅である(例えば、21、22、23、24、25、
26、27、28、29など)または(2、4、6、8、16、32、64、128、2
56など)。最も現実的な応用例では、Nビットの数は、32、64、128、256、
または、512のいずれかである。ただし、これらの幅は、単に例示であり、どのように
も限定するものとして解釈すべきではないことを理解されたい。
制御ビットの数Mも、様々であり、任意の数であってよい。
1以上の論理チャネル(図示せず)(以降、「仮想チャネル」すなわち「VC」と呼ぶ
)が、共有相互接続12に関連付けられている。各仮想チャネルは、独立している。各仮
想チャネルは、複数の独立ストリームに関連付けられてよい。仮想チャネルの数は、広く
変化してよい。例えば、32以上の数までの仮想チャネルが、規定されるか、または、共
有相互接続12に関連付けられてよい。
様々な代替実施形態において、各仮想チャネルは、異なる優先度を割り当てられてよい
。1以上の仮想チャネルに、より高い優先度が割り当てられてよく、一方、1以上のその
他の仮想チャネルに、より低い優先度が割り当てられてよい。高い優先度のチャネルは、
低い優先度の仮想チャネルよりも高い共有相互接続12へのアクセス権を与えられるまた
はアービトレートされる。別の実施形態では、仮想チャネルの各々に、同じ優先度が与え
られてもよく、その場合、共有相互接続12へのアクセス権を与えるまたはアービトレー
トする時に、或る仮想チャネルを別の仮想チャネルより優先することがない。さらに別の
実施形態において、仮想チャネルの内の1以上に割り当てられた優先度は、動的に変化し
てもよい。例えば、第1セットの状況において、仮想チャネルすべてに、同じ優先度が割
り当てられてよいが、第2セットの状況において、特定の仮想チャネルに、その他の仮想
チャネルよりも高い優先度が割り当てられてもよい。したがって、状況が変化するにつれ
て、仮想チャネルの間で用いられる優先度スキームは、現在の動作条件に最もよく合うよ
うに変更されうる。
サブシステム14の各々は、典型的には、「再利用可能な」回路またはロジックのブロ
ックであり、一般に、IPコアまたはエージェントと呼ばれる。ほとんどのIPエージェ
ントは、特定の機能を実行するよう設計され、例えば、イーサネットポート、ディスプレ
イドライバ、SDRAMインターフェース、USBポートなどの周辺デバイスのためのコ
ントローラである。かかるIPエージェントは、一般に、特定用途向け集積回路(ASI
C)またはフィールドプログラマブルゲートアレイ(FPGA)などの集積回路(IC)
上に提供された複雑なシステムの設計全体の中で必要なサブシステム機能を提供する「ビ
ルディングブロック(構成要素)」として用いられる。利用可能なIPエージェントのラ
イブラリを用いることにより、チップ設計者は、より複雑な集積回路の設計において様々
なロジック機能を容易に「ボルト締め」することができるので、設計時間を削減すると共
に開発コストを節約することができる。サブシステムエージェント14は、専用IPコア
に関して上述したが、これは、必要条件ではないことを理解されたい。逆に、サブシステ
ム14は、単一のポート20に接続されたまたはそれを共有するIP機能のコレクション
であってもよい。したがって、「エージェント」という用語は、サブシステムが単一の機
能を実行するか、複数の機能を実行するかに関わらず、ポート20に接続された任意のタ
イプのサブシステムとして広く解釈されるべきである。
一対のスイッチ16および18が、それぞれ、専用アクセスポート20を介してサブシ
ステムエージェント14の各々と共有相互接続12との間のアクセスを提供する。図の例
示的実施形態では、
(1)サブシステムエージェントIP1、IP2、および、IP3は、それぞれ、アクセ
スPort0、Port1、および、Port2を介してスイッチ16と接続する。
(2)サブシステムエージェントIP4、IP5、および、IP6は、それぞれ、Por
t3、Port4、および、Port5を介してスイッチ18と接続する。
(3)さらに、アクセスポート22が、相互接続12を介して、全体としてスイッチ16
へのサブシステムエージェントIP4、IP5、および、IP6のアクセスを提供する。
スイッチ16および18は、多重化および逆多重化機能を実行する。スイッチ16は、
サブシステムエージェントIP1、IP2、および/または、IP3によって生成された
アップストリームトラフィックを選択し、共有相互接続12を介してトラフィックをダウ
ンストリームに送信する。スイッチ18では、逆多重化動作が実行され、トラフィックは
、目標サブシステムエージェント(すなわち、IP4、IP5、または、IP6のいずれ
か)へ提供される。
各アクセスポート20は、一意ポート識別子(ID)を有しており、各サブシステムエ
ージェント14の専用アクセスをスイッチ16または18のいずれかへ提供する。例えば
、サブシステムエージェントIP1、IP2、および、IP3は、それぞれ、アクセスポ
ートPort0、Port1、および、Port2に割り当てられる。同様に、サブシス
テムエージェントIP4、IP5、および、IP6は、それぞれ、アクセスポートPor
t3、Port4、および、Port5に割り当てられる。
スイッチ16、18への/からの入口ポイントおよび出口ポイントを提供するのに加え
て、一意ポートID20は、サブシステムエージェント14の間のトラフィックをアドレ
ッシングするために用いられる。各ポート20は、システムメモリ24内に、特定の量の
割り当てられたアドレス可能空間を有する。
いくつかの非排他的な実施形態において、アクセスポート20の全部または一部に、一
意ポートIDだけでなく、「グローバル」ポート識別子が割り当てられてもよい。トラン
ザクションおよびその他のトラフィックが、グローバルポート識別子に割り当てられたア
クセスポートの全部または一部に送信されうる。したがって、グローバル識別子を用いれ
ば、トランザクションおよびその他のトラフィックが、アクセスポート20の全部または
一部へ広く発信またはブロードキャストすることができ、一意識別子を用いて各アクセス
ポート20へ個別にアドレッシングする必要性を排除できる。
スイッチ16は、さらに、アービトレーション要素26、アドレス解決ロジック(AR
L)28、および、アドレス解決ルックアップテーブル(LUT)30を備える。
動作中、サブシステムエージェントIP1、IP2、および、IP3は、トランザクシ
ョンを生成する。各トランザクションが生成されると、送信側サブシステム14によって
パケット化され、次いで、パケット化されたトランザクションは、対応するポート20を
介してローカルスイッチ16へ投入される。例えば、IP1、IP2、および、IP3に
よって生成されたトランザクションの部分は、それぞれ、Port0、Port1、およ
び、Port2を介してスイッチ16に提供される。
ポート20は各々、相互接続チャネル12に関連付けられている仮想チャネルの各々に
対して、複数の先入れ先出しバッファ(図示せず)を備える。非排他的実施形態において
、4つの仮想チャネルが存在する。その場合、各仮想チャネルに対して1つで、各ポート
20は、4つのバッファを備える。再び、ポート20に含まれる仮想チャネルおよびバッ
ファの数は、様々であってよく、4に限定されないことを理解されたい。逆に、仮想チャ
ネルおよびバッファの数は、4より多くても少なくてもよい。
所与のトランザクションが2つ(以上)の部分で表される場合、それらの部分は、同じ
バッファ内に維持される。例えば、相互接続12が128データビット幅であり、トラン
ザクションが512ビットのペイロードを含むパケットによって表される場合、トランザ
クションは、4クロックサイクルまたはビートで伝送される4つの部分に分割される必要
がある。一方、トランザクションが64ビットのペイロードを有する単一パケットによっ
て表されうる場合、単一の部分は、1クロックサイクルまたはビートで伝送されうる。所
与のトランザクションのすべての部分を同じバッファ内に維持することにより、仮想チャ
ネルは、論理的に独立したままになる。換言すると、所与のトランザクションに関連する
トラフィックすべてが、常に、ストリームと同じ仮想チャネルで送信され、複数の仮想チ
ャネルを介して分岐されることがない。
アービトレーション要素26は、様々なアクセスポート20によって維持されたトラン
ザクションの競合するバッファされた部分の間でアービトレートすることを担う。非排他
的実施形態において、複数の競合トランザクションが利用可能であれば、アービトレーシ
ョン要素26は、クロックサイクルごとにアービトレーションを実行する。サイクルごと
のアービトレーション勝者は、相互接続12へのアクセスが認められて相互接続12を介
して伝送されるトランザクションの部分を、サブシステムIP1、IP2、および、IP
3の内の1つから生成する。
トランザクションを生成する時、送信元サブシステムIP1、IP2、および、IP3
は、通常、可能な宛先サブシステムエージェントIP4、IP5、および、IP6につい
てアドレス空間内のアドレスを知っているが、宛先にトランザクションをルーティングす
るために必要な情報(例えば、ポートID20および/または22)を知らない。一実施
形態において、ローカルアドレス解決ロジック(ARL)28は、既知の宛先アドレスを
必要なルーティング情報に解決するために用いられる。換言すると、送信元サブエージェ
ント14は、システムメモリ24内の所与のアドレスにアクセスしたいことを単に知りう
る。したがって、ARL28は、LUT30へアクセスするタスクを課せられ、指定され
たアドレスに対応する最終的な宛先への配信パスに沿ってポート20/22のアドレスル
ックアップを実行する。ポート20/22が知られると、この情報は、トランザクション
のパケット内の宛先フィールドに挿入される。結果として、パケットは、配信パスに沿っ
てポート20/22へ配信される。原則として、要求された配信情報がすでに知られてお
り、パケットの宛先フィールドに含まれているので、配信パスに沿ったダウンストリーム
ノードが、さらなるルックアップを実行する必要はない。後に詳述するようにソースベー
スルーティング(SBR)と呼ばれる他のタイプのトランザクションで、送信元Pエージ
ェントは、宛先ポートアドレスを知る。結果として、ARL28によって実行されるルッ
クアップは、典型的には、実行される必要がない。
代替実施形態において、相互接続内のすべてのノードがARL28およびLUT30を
必要とするわけではない。これらの要素を持たないノードについては、必要なルーティン
グ情報のないトランザクションが、デフォルトノードへ転送されうる。デフォルトノード
では、ARL28およびLUT30がアクセスされ、次いで、必要なルーティング情報が
、トランザクションのパケットのヘッダに挿入されうる。デフォルトノードは、典型的に
は、ARL28およびLUT30を持たないノードよりアップストリームにある。ただし
、これは、決して必須ではない。1または複数のデフォルトノードは、SoC上のどこに
配置されてもよい。ARL28およびLUT30をいくつかのノードから排除することに
より、ノードの複雑さを低減できる。
ARL28は、トランザクションの勝利部分のための転送先のデコードに加えて、各仮
想チャネル内のトランザクションの勝利部分のための順序を規定するので、「順序付けポ
イント」と呼ばれてもよい。各アービトレーションが解決されると、ARL28がアドレ
スポートルックアップを実行するために用いられるか否かに関わらず、トランザクション
の勝利部分が各仮想チャネルに提供される先入れ先出しキューに挿入される。次いで、ト
ランザクションの勝利部分は、バッファ内で相互接続12を介した伝送の順番を待つ。
また、ARL28は、「アップストリーム」および「ダウンストリーム」トラフィック
を規定するために用いられる。換言すると、スイッチ16に関連付けられているIPエー
ジェント14(すなわち、IP1、IP2、および、IP3)によって生成された任意の
トランザクションは、ARL28に対してアップストリームにあると見なされる。ARL
28後の(すなわち、IP4、IP5、および、IP6に伝送される)すべてのトランザ
クションが、ダウンストリームトラフィックと見なされる。
スイッチ16に関連付けられているIPエージェント14(すなわち、IP1、IP2
、および、IP3)は、直接的または間接的のいずれかで、互いに通信してトランザクシ
ョンを互いに送信してよい。直接的な通信(しばしば、ソースベースルーティング(SB
R)と呼ばれる)により、IPエージェント14は、ピアツーピアモデルで互いにトラン
ザクションを送信できる。このモデルでは、送信元IPエージェトは、そのピアIPエー
ジェント14の一意ポートIDが知っており、LUT30にアクセスするためにARL2
8を用いる必要性を無くす。あるいは、スイッチ16に関連付けられているIPエージェ
ントの間のトランザクションは、ARL28を用いてルーティングされてもよい。このモ
デルでは、上述したのと同様に、送信元IPエージェントは、宛先IPエージェント14
のアドレスのみを知り、ルーティングに必要な情報は知らない。次いで、ARL28は、
LUT30にアクセスし、対応するポートIDを見つけるために用いられ、その後、ポー
トIDは、トランザクションのパケットの宛先フィールドに挿入される。
パケットフォーマット
IPエージェント14は、トランザクションを生成して、相互接続12に関連付けられ
ている仮想チャネルを通じて処理する。各トランザクションは、典型的には、1以上のパ
ケットで構成される。各パケットは、典型的には、固定ヘッダサイズおよびフォーマット
を有する。いくつかの例において、各パケットは、固定サイズペイロードを有してよい。
別の例において、パケットペイロードは、大から小まで様々なサイズであってよく、また
は、ペイロードが全く無くてもよい。
図2を参照すると、パケットの例32が示されている。パケット32は、ヘッダ34お
よびペイロード36を備える。この特定の実施形態において、ヘッダ34は、16バイト
のサイズである。このサイズは例示であり、より大きいサイズ(例えば、より多いバイト
数)または小さいサイズ(例えば、より少ないバイト数)のパケットが用いられてもよい
ことを理解されたい。パケット32のヘッダ34は、必ずしもすべてが同じサイズである
必要がないことも理解されたい。代替実施形態において、SoCにおけるパケットヘッダ
のサイズは、可変であってもよい。
ヘッダ34は、宛先識別子(DST_ID)、送信元識別子(SRC_ID)、ペイロ
ードサイズインジケータ(PLD_SZ)、予備フィールド(RSVD)、コマンドフィ
ールド(CMD)、TAGフィールド、ステータス(STS)、トランザクションIDフ
ィールド(TAG)、アドレスすなわちADDRフィールド、USDR/コンパクトペイ
ロードフィールド、トランザクションクラスすなわちTCフィールド、フォーマットFM
Tフィールド、および、バイトイネーブル(BE)フィールドなど、複数のフィールドを
含む。ヘッダ34の様々なフィールドについて、以下の表3で簡単に説明する。
Figure 2024079720000004
ペイロード36は、パケットのコンテンツを含む。ペイロードのサイズは、様々であっ
てよい。いくつかの例において、ペイロードは大きくてよい。その他の例において、ペイ
ロードは小さくてもよい。さらに別の例において、コンテンツが非常に小さいすなわち「
コンパクト」である場合、ヘッダ34のUSRDフィールド内で運ぶことができる。
トランザクションのタイプは、しばしば、トランザクションを表すために用いられる1
以上のパケットがペイロードを持つか否かを示す。例えば、PostedまたはNon-
posted読み出しのどちらでも、パケットは、アクセスされるロケーションアドレス
を指定するが、典型的には、ペイロードを持たない。しかしながら、関連するCompl
etionトランザクションのパケットは、読み出しコンテンツを含むペイロードを含む
。PostedおよびNon-posted書き込みトランザクションの両方で、パケッ
トは、宛先に書き込まれるデータを含むペイロードを含む。Non-postedバージ
ョンの書き込みでは、Completionトランザクションのパケットは、通常、ペイ
ロードを定義しない。しかしながら、一部の状況では、Completionトランザク
ションが、ペイロードを規定する。
パケットの例および上述の説明は、パケットに含まれうる基本的なフィールドの多くを
網羅している。さらなるフィールドが削除または追加されてもよいことを理解されたい。
例えば、送信元および宛先がプライベートメッセージを共有できるように、プライベート
シグナリングフィールドが用いられてもよい。
アービトレーション
図3Aを参照すると、ペリフェラルコンポーネントインターコネクト(PCI)順位付
けでアービトレーション要素26によって実行されるアービトレーションロジックを示す
論理図が示されている。
PCI順位付けでは、各ポート20は、各仮想チャネルおよびトランザクションクラス
(P、NP、および、C)の組み合わせのための別個のバッファを備える。例えば、4つ
の仮想チャネル(VC0、VC01、VC2、および、VC3)がある場合、Port0
、Port1、および、Port2は各々、12の先入れ先出しバッファを有する。換言
すると、各ポート20について、バッファが、各トランザクションクラス(P、NP、お
よび、C)ならびに仮想チャネル(VC0、VC1、VC2、および、VC30)の組み
合わせに対して提供される。
各IPエージェント14(例えば、IP1、IP2、および、IP3)がトランザクシ
ョンを生成すると、結果として得られるパケットが、それぞれ、対応するポート(例えば
、ポート0、ポート1、および、ポート2)内で、トランザクションタイプに基づいて、
適切なバッファに配置される。例えば、IP1によって生成されたPosted(P)、
Non-posted(NP)、および、Completion(C)トランザクション
が、それぞれ、ポート0内で、割り当てられた仮想チャネルのためのPosted、No
n-posted、および、Completionバッファに配置される。IP2および
IP3によって生成されたトランザクションは、同様の方法でポート1およびポート2内
で、割り当てられた仮想チャネルのためのPosted、Non-posted、および
、Completionバッファに同様に配置される。
所与のトランザクションが複数のパケットによって表される場合、そのトランザクショ
ンのパケットすべてが、同じバッファ内に挿入される。結果として、トランザクションの
パケットすべてが、最終的に同じ仮想チャネルを介して伝送される。このポリシーでは、
仮想チャネルは独立したままであり、これは、同じトランザクションに関連する複数のパ
ケットの伝送には、異なる仮想チャネルが用いられないことを意味する。
各ポート20内で、多くの異なる方法で所与の仮想チャネルにパケットを割り当てるこ
とができる。例えば、割り当ては、無作為であってよい。あるいは、割り当ては、各仮想
チャネルに対する作業負荷と未処理のトラフィックの量とに基づいてもよい。或るチャネ
ルが非常にビジーであり、その他のチャネルがビジーではない場合、ポート20は、しば
しば、負荷のバランスを取ろうと試み、新たに生成されたトランザクショントラフィック
を利用率の低い仮想チャネルに割り当てる。結果として、ルーティング効率が改善される
。さらに別の代替例において、トランザクショントラフィックは、緊急性、セキュリティ
、または、それら両方の組み合わせに基づいて、特定の仮想チャネルに割り当てられても
よい。特定の仮想チャネルが、他の仮想チャネルよりも高い優先度および/またはセキュ
リティを与えられた場合、高い優先度および/または安全なトラフィックが、より高い優
先度の仮想チャネルに割り当てられる。さらに別の実施形態において、ポート20は、ハ
ードコードされてもよく、これは、ポート20が、1つだけの仮想チャネルを有し、ポー
ト20によって生成されたすべてのトラフィックが、その1つの仮想チャネルを介して伝
送されることを意味する。
さらに別の実施形態において、仮想チャネルの割り当ては、送信元IPエージェント1
4によって、単独で、または、それに対応するポート20と連携して、実施されてもよい
。例えば、送信元IPエージェント14が、対応するポート20への制御信号を生成して
、所与のトランザクションのパケットが特定の仮想チャネルに割り当てられることを要求
することができる。IPエージェント14も、上述のように、無作為である、ハードコー
ドされる、または、すべての仮想チャネルにわたってバランスの取れた利用、セキュリテ
ィ、緊急性などに基づいた割り当て決定をなすことができる。
アービトレーション勝者の選択において、アービトレーション要素26は、サイクルご
とに複数のアービトレーション工程を実行する。これらのアービトレーション工程は、以
下を含む。
(1)ポートを選択する工程、
(2)仮想チャネルを選択する工程、および
(3)トランザクションクラスを選択する工程。
上述の順序(1)、(2)、および、(3)は、固定ではない。逆に、上述の3つの工
程は、任意の順序で完了されてよい。どの順序が用いられるかに関わらず、単一のアービ
トレーション勝者が各サイクルで選択される。次いで、勝利トランザクションは、相互接
続12に関連付けられている対応する仮想チャネルを介して伝送される。
アービトレーション要素26によって実行される各アービトレーション(1)、(2)
、および、(3)のために、複数のアービトレーションスキームまたはルールセットが用
いられてよい。かかるアービトレーションスキームは、厳密または絶対優先度、4つの仮
想チャネルの各々が特定の割合のトランザクショントラフックを割り当てられる重み付き
優先度、もしくは、トランザクションが所定の順序で仮想チャネルに割り当てられるラウ
ンドロビンスキーム、を含みうる。さらなる実施形態において、その他の優先度スキーム
が用いられてもよい。また、アービトレーション要素26は、異なるアービトレーション
スキームの間で時々動的に切り替えを行ってもよい、および/または、(1)、(2)、
および、(3)アービトレーションの各々に対して同じまたは異なるアービトレーション
スキームをそれぞれ用いてもよいことを理解されたい。
任意選択的な実施形態において、所与のアービトレーションサイクル中に考慮された未
処理のトランザクションによって定義された宛先ポート20の利用可能性が考慮される。
宛先ポート20に内のバッファが、所与のトランザクションを処理するために利用可能な
リソースを持たない場合、対応する仮想チャネルは利用可能ではない。結果として、当該
トランザクションは、アービトレーションで競合せず、むしろ、目標リソースが利用可能
になる後続のアービトレーションサイクルまで待機する。一方、目標リソースが利用可能
である場合、対応するトランザクションは、アービトレートされ、相互接続12へのアク
セスのために競合する。
宛先ポート20の利用可能性は、上述した複数のアービトレーション工程(1)、(2
)、および、(3)に関して、異なる時にチェックされてよい。例えば、利用可能性チェ
ックは、アービトレーションサイクルの前に(すなわち、工程(1)、(2)、および、
(3)のいずれかの完了の前に)実行できる。結果として、利用可能な宛先リソースを規
定するトランザクションのみが、後続のアービトレーション中に考慮される。あるいは、
アービトレーションチェックは、アービトレーション工程が実行される順序に関わらず、
3つのアービトレーション工程(1)、(2)、および、(3)のいずれかの間に実行さ
れてもよい。
アービトレーション処理中の早くまたは遅くに、宛先リソース利用可能性チェックを実
行することには利点および不利点がある。早くチェックを実行することにより、トランザ
クションの競合の可能性のある部分は、それらの宛先が利用可能でない場合に競合から潜
在的に排除されうる。しかしながら、利用可能性を早く知ることは、システムリソースへ
のかなりの量のオーバーヘッドを生み出しうる。結果として、状況に応じて、所与のアー
ビトレーションサイクル中に利用可能性チェックをより遅く実行するのが、より実際的で
ありうる。
トランザクションクラスの選択を含むアービトレーション工程に対して、複数のルール
が、N、NP、および、Cトランザクションの競合部分の間でアービトレートするために
規定される。これらのルールは、以下を含む。
Posted(P)トランザクションに対して、
-Postedトランザクション部分は、別のPostedトランザクション部分を追い
越しえない。
-Postedトランザクション部分は、デッドロックを避けるためにNon-post
edトランザクション部分を追い越すことができなければならない。
-Postedトランザクション部分は、両方が強順序(strong order)モ
ードにある場合には、Completionを追い越すことができなければならない。換
言すると、強モードでは、トランザクションは、ルールに従って厳密に実行される必要が
あり、ルールは緩めることができない。
-Posted要求は、任意のトランザクション部分がそれの緩和順序(Relaxed
Order:RO)ビットセットを有する場合には、Completionを追い越す
ことを許されるが、追い越しは必須ではない。緩和順序では、一般にルールが守られるが
、例外が認められうる。
Non-posted(NP)トランザクションに対して、
-Non-postedトランザクション部分は、Postedトランザクション部分を
追い越してはならない。
-Non-postedトランザクション部分は、別のNon-postedトランザク
ション部分を追い越してはならない。
-Non-postedトランザクション部分は、両方が強順序モードにある場合には、
Completionを追い越してはならない。
-Non-postedトランザクション部分は、任意のトランザクション部分がそれの
ROビットセットを有する場合には、Completionを追い越すことを許されるが
、必須でない。
Completion(C)トランザクションに対して、
-Completionは、両方が強順序モードにある場合には、Postedトランザ
クション部分を追い越してはならない。
-Completionは、任意のトランザクション部分がそれのROビットセットを有
する場合には、Postedトランザクション部分を追い越すことを許可されるが、必須
ではない。
-Completionは、両方が強順序モードにある場合には、Non-posted
トランザクション部分を追い越してはならない。
-Completionは、任意のトランザクション部分がそれのROビットセットを有
する場合には、Non-postedトランザクション部分を追い越すことを許可される
が、必須ではない。
-Completionは、別のCompletionを追い越すことを許可されない。
以下の表4は、PCI順序付けルールの概要を提供する。(a)および(b)の選択肢
のないボックスでは、厳密順序付けルールが従われる必要はない。(a)および(b)の
選択肢を有する表のボックスでは、ROビットがリセットされるか設定されるかに依存し
て、それぞれ、厳密順序(a)ルールまたは緩和順序(b)ルールのいずれかが適用され
てよい。様々な代替実施形態において、ROビットは、グローバルに、または、パケット
レベルで個々に、設定または再設定されうる。
Figure 2024079720000005
アービトレーション要素26は、特定の順序なしに、それぞれ、競合ポート20、仮想
チャネル、および、トランザクションクラスのアービトレーションを実行することによっ
て、最終的な勝利トランザクション部分を選択する。サイクルあたりの勝利部分は、共有
相互接続12にアクセスし、対応する仮想チャネルを介して伝送される。
図3Bを参照すると、デバイス順位付けでアービトレーション要素26によって実行さ
れるアービトレーションロジックを示す論理図が示されている。アービトレーション処理
、および、おそらくは利用可能な宛先リソースの考慮は、2つの違いを除けは、上述した
のと基本的に同じである。
第1に、デバイス順序付けでは、(a)すべての要求に対する応答が求められるNon
-posted読み出しまたは書き込みトランザクションと、(b)要求された応答を規
定したCompletionトランザクションとを含め、2つトランザクションクラスだ
けが定義される。トランザクションクラスが2つだけなので、各ポート20において仮想
チャネルごとに2つのバッファだけがある。例えば、4つの仮想チャネル(VC0、VC
1、VC2、および、VC3)がある場合、各ポート20(例えば、Port0、Por
t1、および、Port2)は、合計で8つのバッファを有する。
第2に、デバイス順序付けのトランザクションを選択するためのルールも、PCI順序
付けとは異なる。デバイス順序付けでは、オーバークラスを超える1つのクラスの選択に
適用される厳密なルールは存在しない。逆に、いずれかのトランザクションクラスが任意
に選択されうる。しかしながら、一般的な方法では、典型的には、Completion
トランザクションが解決するまで利用可能になりえないリソースを解放するように、好都
合なCompletionトランザクションに要求する。
それ以外の点では、デバイス順序付けのためのアービトレーション処理は、基本的に上
述したものと同じである。換言すると、各アービトレーションサイクルに対して、アービ
トレーション勝者を選択するために、アービトレーション工程(1)、(2)、および、
(3)が、任意の特定の順で実行される。トランザクションクラスアービトレーションが
実行される時、PCI順序ルールよりはむしろデバイス順序が利用される。さらに、宛先
リソースおよび/または仮想チャネルの利用可能性が、アービトレーション工程(1)、
(2)、および、(3)のいずれかの前または間に考慮されてもよい。
動作フローチャート
先述したように、上述のアービトレーションスキームは、任意の共有リソースへのアク
セスを共有するために利用されてよく、共有相互接続との利用だけに限定されない。かか
る他の共有リソースは、ARL28、処理リソース、メモリリソース(LUT30など)
、または、アクセスをめぐって競い合う複数のパーティの間で共有されるほぼ任意のその
他のタイプのリソースを含みうる。
図4を参照すると、共有リソースへのアクセスをアービトレートするための動作工程を
示すフローチャート40が示されている。
工程42において、様々な送信元サブシステムエージェント14が、トランザクション
を生成する。トランザクションは、Posted(P)、Non-posted(NP)
、および、Completion(C)を含む3つのクラスのいずれかでありうる。
工程44において、送信元サブシステムエージェント14によって生成されたトランザ
クションの各々は、パケット化される。先述したように、所与のトランザクションのパケ
ット化は、1以上のパケットをもたらしうる。パケットは、サイズが様々であってよく、
一部のパケットは大きいペイロードを持ち、他のパケットは小さいペイロードを持つかま
たは全く持たない。トランザクションが、相互接続12の幅よりも小さいデータペイロー
ド36を有する単一のパケットによって表される状況では、トランザクションは、単一の
部分によって表されうる。トランザクションが、共有リソースのアクセス幅よりも大きい
データペイロード36を備えた複数のパケットまたは単一のパケットによって表される状
況では、複数の部分が、トランザクションを表すために必要とされる。
工程46において、サブシステムエージェント14の各々によって生成されたパケット
化トランザクションの部分は、対応するポート20を介してローカルスイッチ16に投入
される。ポート20内で、各トランザクションのパケットは、仮想チャネルに割り当てら
れる。先述したように、割り当ては、無作為であるか、ハードコードされるか、または、
すべての仮想チャネルにわたってバランスの取れた利用、セキュリティ、緊急性などに基
づいてよい。
工程48において、サブシステムエージェント14の各々によって生成されたパケット
化トランザクションの部分は、それぞれ、両方のトランザクションクラスによっておよび
それらに割り当てられた仮想チャネル(例えば、VC0、VC1、VC2、および、VC
3)によって、適切な先入れ先出しバッファに格納される。先に述べたように、仮想チャ
ネルは、厳密または絶対優先度、ラウンドロビン、重み付き優先度、最長時間未サービス
(least recently serviced)など、多くの異なる優先度スキー
ムの1つによって割り当てられてよい。所与のトランザクションが複数の部分を有する場
合、各部分は、同じバッファ内に格納される。結果として、所与のトランザクションの複
数の部分は、相互接続12に関連付けられている同じ仮想チャネルで伝送される。トラン
ザクション部分が投入されると、各バッファ内のコンテンツアイテム数を追跡するための
対応するカウンタがデクリメントされる。特定のバッファが満たされた場合、そのカウン
タはゼロにデクリメントされ、これは、バッファがさらなるコンテンツをもはや受け入れ
ることができないことを意味する。
工程50、52、および、54において、第1、第2、および、第3レベルアービトレ
ーションが実行される。先述したように、ポート20、仮想チャネル、および、トランザ
クションクラスの選択は、任意の順序で実行されてよい。
要素56が、第1、第2、および、第3レベルのアービトレーションの実行に用いられ
るルールを維持するために用いられてよい。各ケースにおいて、要素56は、アービトレ
ーションレベルの各々を解決するのに必要に応じて用いられる。例えば、要素56は、P
CIおよび/またはデバイス順序付けルールを維持してよい。要素56は、いくつかの優
先度スキーム(厳密または絶対優先度、重み付き優先度、ラウンドロビンなど)を実行す
るためのルールと、所与のアービトレーションサイクルでどれを用いるかを決定するため
のロジックまたはインテリジェンスと、を備えてもよい。
工程58において、アービトレーションの勝者が決定される。工程60において、勝利
部分は、共有リソースにアクセスするために用いられるバッファ内に配置され、バッファ
に関連付けられているカウンタがデクリメントされる。
工程62において、勝利部分に関連するバッファは、勝利部分がもはやバッファ内には
ないのでインクリメントされる。
工程64において、勝利部分は、共有リソースへアクセスする。アクセスが完了すると
、共有リソースのためのバッファがインクリメントされる。
工程42~64は、それぞれ、連続するクロックサイクル中に連続的に繰り返される。
異なる勝利部分として、各々が共有リソースへアクセスする。
インターリービング-例1
トランザクションは、いくつかのモードの内の1つで相互接続12を介して伝送されう
る。
「ヘッダインライン(header in-line)」モードと呼ばれる1つのモー
ドでは、トランザクションのパケット32のヘッダ34は、常に、それぞれ、別個の部分
またはビートでペイロード36の前に最初に伝送される。ヘッダインラインモードは、相
互接続12のデータビット数Nに対するヘッダ34および/またはペイロード36の相対
サイズに応じて、相互接続12で利用可能なビットを浪費する場合としない場合がある。
例えば、512ビット幅(N=512)である相互接続12と、128ビットのヘッダお
よび256ビットのペイロードを有するパケットと、を考える。このシナリオでは、12
8ビットのヘッダが第1部分またはビートで伝送され、相互接続12の残りの384ビッ
トの帯域幅は利用されない。第2部分またはビートでは、256ビットのペイロード36
が伝送され、相互接続12の残りの256ビットは利用されない。この例では、相互接続
の帯域幅のかなりの割合が、2つのビート中に利用されない。一方、トランザクションの
パケットのほとんどが相互接続以上のサイズである場合、浪費される帯域幅の程度は、削
減されるかあるいは解消される。例えば、384または512ビットであるヘッダおよび
/またはペイロードでは、浪費の量は、大幅に削減されるか(例えば、384ビット)ま
たは全く解消される(例えば、512ビット)。
「ヘッダオンサイドバンド(header on side-band)」と呼ばれる
別のモードでは、パケットのヘッダ34は、データの「サイドで」伝送され、これは、ペ
イロード36が相互接続12のNデータビットで伝送される間に、制御ビットMを利用す
ることを意味する。ヘッダオンサイドバンドモードでは、パケット32のペイロード36
のビット数またはサイズは、所与の相互接続12でパケットを伝送するのに必要なビート
数を決定する。例えば、64、128、256、または、512ビットのペイロード36
を有するパケット32、ならびに、128データビット(N=128)を有する相互接続
12の場合、パケットは、それぞれ、1、1、2、および、4ビートを必要とする。ビー
トの各々の伝送では、ヘッダ情報は、相互接続12のNデータビットでペイロードのデー
タと共にまたはその「サイドで」制御ビットMで伝送される。
さらに別のモードにおいて、パケット32のヘッダ34は、ペイロードと同じように伝
送されるが、ヘッダ34およびペイロード36が別個の部分またはビートで伝送されなけ
ればならない要件はない。パケット32が、128ビットのヘッダ34および128ビッ
トのペイロード36を有する場合、合計サイズは、256ビット(128+128)であ
る。相互接続12のNデータビットが、64、128、256、および、512ビット幅
である場合、256ビットのパケットは、それぞれ、4、2、1、および、1ビートで伝
送される。別の例において、パケット32は、128ビットのヘッダおよび256ビット
のペイロード36、すなわち、384ビット(128+256)の合計パケットサイズを
有する。64、128、256、または、512幅のNデータビットの同じ相互接続12
では、パケットは、それぞれ、6、3、2,または、1ビートで伝送される。このモード
は、常に、上述のヘッダインラインモードと少なくとも同等以上の効率である。
図5を参照すると、複数の仮想チャネル上での異なるトランザクションの部分のインタ
ーリービングの第1例が図示されている。この例では、簡単のために、2つのトランザク
ションのみが示されている。2つのトランザクションは、この例では、128データビッ
ト幅(N=128)である共有相互接続12へのアクセスをめぐって競合している。2つ
のトランザクションの詳細は、以下を含む。
(1)トランザクション1(T1):時刻T1に生成され、仮想チャネルVC2に割り当
てられている。T1のサイズは、4ビートであり、それらのビートは、T1A、T1B、
T1C、および、T1Dとして指定されている。
(2)トランザクション2(T2):時刻T2(時刻T1の後)に生成され、仮想チャネ
ルVC0に割り当てられている。T2のサイズは、単一の部分またはビートである。
この例では、VCOに絶対または厳密優先度が割り当てられている。複数のサイクルに
わたって、2つのトランザクションT1およびT2の部分が、以下に従って、図5に示す
ように、共有相互接続で伝送される。
サイクル1:T1のビートT1Aは、唯一の利用可能なトランザクションであるので、V
C2で伝送される。
サイクル2:T1のビートT1BおよびT2の単一部分は、相互接続12へのアクセスを
めぐって競合する。VCOは厳密優先度を有するので、T2が自動的に勝利する。したが
って、T2のビートは、VC0で伝送される。
サイクル3:競合するトランザクションがないので、T1のビートT1BがVC2で伝送
される。
サイクル4:競合するトランザクションがないので、T1のビートT1CがVC2で伝送
される。
サイクル5:競合するトランザクションがないので、T1のビートT1DがVC2で伝送
される。
この例は、以下を示す。(1)絶対優先度を有する仮想チャネルでは、他のトラフィッ
クが先に待っていたか否かに関わらず、トラフィックが利用可能になればいつでも、共有
相互接続12へのアクセス権が即座に与えられること、ならびに、(2)異なるトランザ
クションの勝利部分またはビートは、相互接続12に関連付けられている異なる仮想チャ
ネルでインターリーブされて伝送されること。この例において、仮想チャネルVCOは、
絶対優先度を与えられている。絶対または厳密優先度スキームでは、仮想チャネルのいず
れかが、最高優先度を割り当てられてよいことを理解されたい。
インターリービング-例2
図6を参照すると、複数の仮想チャネル上での異なるトランザクションの部分のインタ
ーリービングの第2例が図示されている。
この例において、相互接続12へのアクセスのための優先度スキームは重み付けされて
おり、これは、VCOが(40%)の確率でアクセス権を与えられ、VC1~VC3が各
々(20%)の確率でアクセス権を与えられることを意味する。また、相互接続は、12
8ビット幅である。
さらに、この例においては、4つの競合するトランザクションT1、T2、T3、およ
び、T4が存在する。
-T1は、VC0に割り当てられ、4つの部分またはビートT1A、T1B、T1C、お
よび、T1Dを含む。
-T2は、VC1に割り当てられ、2つの部分またはビートT2AおよびT2Bを含む。
-T3は、VC2に割り当てられ、2つの部分またはビートT3AおよびT3Bを含む。
-T4は、VC3に割り当てられ、2つの部分またはビートT4AおよびT4Bを含む。
この例では、優先度スキームは重み付けされる。結果として、各仮想チャネルは、その
重みの比率に従って勝利する。換言すると、10サイクルの間に、VC0は、4回勝利し
、VC1、VC2、および、VC3は各々、2回勝利する。例えば、図6に示すように、
-T1の4つの部分またはビートT1A、T1B、T1C、および、T1Dは、10サイ
クルのうちの4サイクル(40%)(すなわち、サイクル1、4、7、および、10)で
VCOを介して伝送され、
-T2の2つの部分またはビートT2AおよびT2Bは、10サイクルのうちの2サイク
ル(20%)(すなわち、サイクル2およびサイクル6)でVC1を介して伝送され、
-T3の2つの部分またはビートT3AおよびT3Bは、10サイクルのうちの2サイク
ル(20%)(すなわち、サイクル5およびサイクル9)でVC2を介して伝送され、
-T4の2つの部分またはビートT4AおよびT4Bは、10サイクルのうちの2サイク
ル(20%)(すなわち、サイクル3およびサイクル8)でVC3を介して伝送される。
したがって、この例は、以下を示す。(1)各仮想チャネルが所定の比率に基づいて相
互接続12へのアクセス権を与えられる重み付き優先度スキーム、ならびに、(2)異な
るトランザクションの勝利部分が相互接続12に関連付けられている異なる仮想チャネル
でインターリーブされて伝送される別の例。
この重み付けの例では、重み付け比率に従って様々な仮想チャネルにトランザクション
の部分を割り当てられるのに十分なトラフィックがあることを理解されたい。その一方で
トラフィックの量が不十分である場合、重み付け比率は、厳密に実施できる場合も厳密に
実施できない場合もある。例えば、仮想チャネルVC3に大きいトラフィックがあり、そ
の他の仮想チャネルVC0、VC1、および、VC2ではトラフィックが限られているか
全くない場合、VC3は、重み付け比率が厳密に実施されれば、トラフィックの全部また
は大部分を運ぶことになる。しかしながら、結果として、すべてのクロックサイクルまた
はビートでトランザクションの部分を送信できるわけではないので、相互接続12は、十
分に利用されえない。一方、重み付け比率が厳密に実施されない場合、相互接続の利用率
をあげるために、トランザクショントラフィックを再割り当てすることが可能である(例
えば、トラフィックが、より多い数のサイクルまたはビートで送信される)。
上記の2つの例は、上述した伝送モードのどれが利用されるかに関わらず適用可能であ
る。トランザクションが部分またはビートに分割されると、それらは、本明細書で規定し
たアービトレーションスキームのいずれかを用いて共有相互接続12でインターリーブさ
れて伝送されうる。
上述したアービトレーションスキームは、ほんの数例である。その他の例では、低ジッ
タ、重み付け、厳密、ラウンドロビン、または、ほぼ任意のその他のアービトレーション
スキームが用いられてもよい。したがって、本明細書に列挙または記載されたアービトレ
ーションスキームは、例示であり、どのようにも限定と見なされるべきではない。
複数の同時アービトレーション
ここまで、簡単のために、単一のアービトレーションのみを記載していた。しかしなが
ら、現実的な応用例(SoC上など)では、複数のアービトレーションが同時に行われう
ることを理解されたい。
図7を参照すると、スイッチ16、18の間において2方向でトラフィックを処理する
ための2つの共有相互接続12および12Zのブロック図が示されている。上述したよう
に、スイッチ16は、共有相互接続12を介して送信元サブファンクション14(すなわ
ち、IP1、IP2、および、IP3)から宛先サブファンクション14(すなわち、I
P4、IP5、および、IP6)へトランザクショントラフィックを方向付ける。逆方向
のトランザクショントラフィックを扱うために、スイッチ18は、アービトレーション要
素26Zと、任意選択的にARL28Zと、を備える。動作中、要素26ZおよびARL
28Zは、上述した動作と相補的に動作し、これは、送信元IPエージェント14(すな
わち、IP4、IP5、および、IP6)によって生成されたトランザクショントラフィ
ックがアービトレートされて、共有相互接続12Zを介して宛先IPエージェント(すな
わち、IP1、IP2、および、IP3)へ送信されることを意味する。あるいは、アー
ビトレーションは、ARL28Zなしに実行されてもよく、これは、アービトレーション
が、単に競合ポート20(例えば、Port3、Port3またはPort5)の間で決
定を行い、勝利ポートに関連するトランザクションの部分が、その部分の最終的な宛先に
関わらず、相互接続12で伝送されることを意味する。要素12Z、26Z、および、2
8Zについては、すでに記載したので、簡単のために詳細な説明は、ここでは提供しない
SoCには、複数レベルのサブファンクション14および複数の共有相互接続12が存
在しうる。各々で、上述のアービトレーションスキームを用いて、様々なサブファンクシ
ョンの間で相互接続12を介して送信されるトランザクションの間のアービトレーション
を同時に行うことができる。
相互接続ファブリック
図8を参照すると、SoCの例100が示されている。SoC100は、複数のIPエ
ージェント14(IP1、IP2、IP3、...IPN)を備える。各IPエージェン
ト14は、いくつかのノード102の内の1つに接続されている。共有相互接続12、1
2Zは、逆方向であり、様々なノード102の間に提供されている。この構成では、トラ
ンザクションが、例えば、図7に関して上述したように、ノード102の各ペアの間で両
方向に流れうる。
非排他的な実施形態において、各ノード102は、様々なスイッチ16、18と、ロー
カルIPエージェント14に接続するためのアクセスポート20と、共有相互接続12、
12Zに接続するためのアクセスポート22と、アービトレーション要素26と、任意選
択的なARL28と、任意選択的なLUT30と、を備える。代替実施形態において、ノ
ードは、アービトレーション要素26および/またはARL28を備えなくてもよい。こ
れらの要素を持たないノード102については、必要なルーティング情報のないトランザ
クションが、上述のようにデフォルトノードへ転送されうる。これらの要素の各々につい
ては、図1に関して上述したので、簡単のために詳細な説明は、ここでは提供しない。
集合的に、様々なノード102および双方向相互接続12、12Zは、SoC100の
ための相互接続ファブリック106を規定する。図に示した相互接続ファブリック106
は、簡潔にするために比較的単純である。実際の実施形態においては、SoC100上の
相互接続ファブリックは、数百または数千ものIPエージェント14、複数レベルのノー
ド102を備え、それらすべてが多数の相互接続12、12Zによって相互接続され、非
常に複雑でありうることを理解されたい。
ブロードキャスト、マルチキャスト、および、エニーキャスト
機械学習または人工知能など、いくつかの応用例では、1つのIPエージェント14に
よって生成されたトランザクションが、SoC100上の複数のIPエージェント14に
広く発信されるのが普通である。複数のIPエージェント14へ広く発信されるトランザ
クションは、ブロードキャスト、マルチキャスト、または、エニーキャストによって実施
されうる。所与のSoC100上で、ブロードキャスト、マルチキャスト、および/また
は、エニーキャストが各々、独自に実施されてもよいし、一緒に実施されてもよい。これ
らのタイプのトランザクションの各々の簡単な定義を以下に提供する。
・ブロードキャストは、SoC100上のすべてのIPエージェントに送信されるトラン
ザクションである。例えば、図8に示したSoC100において、IP1によってブロー
ドキャストが送信された結果として、IP2~IPNが各々、トランザクションを受信す
ることになる。
・マルチキャストは、SoC上のIPエージェントの内の2以上(潜在的には全部を含む
)へ送信されるトランザクションである。例えば、IP1がIP5、IP7、および、I
P9を指定するマルチキャストトランザクションを生成した場合、これらのエージェント
14はトランザクションを受信するが、SoC100上の残りのIPエージェント14は
受信しない。マルチキャストがIPエージェント14すべてに送信された場合、基本的に
はブロードキャストと同じである。
・読み出し応答マルチキャストは、上述したマルチキャストトランザクションの変形例で
ある。読み出し応答マルチキャストでは、単一のIPエージェント14が、メモリロケー
ションのコンテンツを読み出してよい。開始IPエージェント14だけがコンテンツを受
信するのではなく、多数の宛先IPエージェント14がコンテンツを受信する。読み出し
結果を受信するIPエージェント14は、2以上のIPエージェント14からSoC10
0上のすべてのIPエージェント14までの範囲であってよい。
・エニーキャストは、IPエージェント14によって生成されるトランザクションである
。しかしながら、送信側IPエージェント14は、目標IPエージェント14を全く指定
しない。その代わり、相互接続ファブリック106(すなわち、ノード102の内の1以
上)が、受信側IPエージェント14を決定する。例えば、IP1がエニーキャストトラ
ンザクションを生成した場合、ノード102の内の1以上のノードが、他のエージェント
IP2~IPNのどれがトランザクションを受信するかを決定する。エニーキャストトラ
ンザクションの様々な実施例において、SoC上のIPエージェント14の内の1つ、複
数、または、全部が、エニーキャストトランザクションを受信してよい。
所与のトランザクションが、いくつかの方法で、ブロードキャスト、読み出し応答マル
チキャストを含むマルチキャスト、または、エニーキャストとして開始されうる。簡単の
ために、以下では、これらのトランザクションを集合的に「BMA」トランザクションと
呼ぶこととし、これは、ブロードキャスト、マルチキャスト(読み出し応答マルチキャス
トを含む)、または、エニーキャストトランザクションを意味する。
一実施形態において、IPエージェント14は、トランザクションを表すパケット32
のヘッダ34のコマンドフィールドCMDに挿入されたコード化されたコマンドを用いて
、BMAトランザクションを開始してよい。コード化されたコマンドにより、SoC10
0の相互接続ファブリック106は、トランザクションが、1つの送信元および1つの宛
先IPエージェント14を指定する通常のトランザクションではなく、BMAトランザク
ションであることを認識または理解する。例えば、ビットの独自の組み合せが、それぞれ
、ブロードキャスト、マルチキャスト、読み出し応答マルチキャスト、または、エニーキ
ャストのいずれかとして、所与のトランザクションを規定しうる。
別の実施形態において、BMAトランザクションは、トランザクションを表すパケット
32のヘッダ34のADDRフィールドに規定されたBMAアドレスを有する読み出しま
たは書き込みしトランザクションを発行することによって実施されうる。BMAアドレス
は、ブロードキャスト、マルチキャスト、または、エニーキャストトランザクションの内
の1つを示すものとして、SoC100のシステム内で指定される。結果として、BMA
アドレスは、相互接続ファブリック106によって認識され、トランザクションは、ブロ
ードキャスト、マルチキャスト、または、エニーキャストとして扱われる。
さらに別の実施形態において、コマンドおよびBMAアドレスは両方とも、ブロードキ
ャスト、マルチキャスト、または、エニーキャストトランザクションを指定するために利
用できる。
エニーキャストは、典型的には、送信元IPエージェント14が複数の宛先にトランザ
クションを送信したいが、1以上の好ましいまたは理想的な宛先IPエージェント14を
選択するのに役立つ要素に気づかない状況で用いられる。例えば、送信元IPエージェン
ト14は、各々がアクセラレータ機能を実装する複数のIPエージェントにトランザクシ
ョンを送信しようとしうる。そのトランザクションをエニーキャストとして指定すること
により、ノード102の内の1以上が、宛先IPエージェント14の選択に関与する。様
々な実施形態において、選択基準は、幅広く変化してよく、混雑状態(ビジーであるIP
エージェント対アイドル状態すなわちビジーではないIPエージェント)、ランダム選択
関数、ハードワイヤロジック関数、ハッシュ関数、最長時間未使用の関数、電力消費の考
慮、もしくは、任意のその他の決定関数または基準に基づいてよい。したがって、宛先I
Pエージェント14を選択する責任は、ノード102にシフトされ、ノード102は、送
信元エージェント14よりも良好なルーティング決定を行うために、より多くの情報を有
しうる。
図9Aを参照すると、BMAアドレッシングをサポートするためのノード102のロジ
ックを示す図90が示されている。ロジック90は、LUT30と、相互接続ファブリッ
クID(IFID)テーブル124と、任意選択的な物理リンクセレクタ126と、を備
える。任意選択的な物理リンクセレクタ126は、後に詳述する単一の論理識別子を共有
する2つ(以上)の重複物理リソースがある場合(トランキング状況など)に用いられる
IFIDテーブルは、各IPエージェント14について、(a)SoC100内の各I
Pエージェント14を論理的に識別するための対応する論理IP IDと、(b)対応す
るIPエージェント14がノード102にローカルである場合のポート20もしくは(c
)対応するIPエージェント14への配信パスに沿って次のノード102につながる適切
な相互接続12または12Zへのアクセスポート22のいずれかと、を含む。この構成で
は、各ノードは、SoC100内の各IPエージェント14へトランザクションを配信す
るのに必要な物理ポート20および/または22のアイデンティティにアクセスできる。
ファブリック106内の各ノード102のためのIFIDテーブル124は、相対的(
すなわち、一意的)である。換言すると、各IFIDテーブル124は、(1)そのロー
カルIPエージェント14または(2)ノード120へローカルに接続されていないSo
C内の他のIPエージェント14への配信パスに沿った他のノード102への共有相互接
続12、12Z、のいずれかへトランザクションを配信するために必要なポート20およ
び/または22のリストだけを含む。この構成では、各ノード102は、(1)宛先とし
て指定されたそのローカルIPエージェント14へトランザクションを配信するか、また
は、(2)別のノード102へ相互接続12、12Zを介してトランザクションを転送す
るか、のいずれかである。次のノードで、上述の処理が繰り返される。各ノード102で
トランザクションをローカルに配信するかまたは転送することにより、最終的に、所与の
トランザクションが、SoC100のための相互接続ファブリック106内の指定された
宛先IPエージェント14すべてに配信される。
LUT30は、従来のトランザクション(すなわち、単一の宛先IPエージェント14
に送信されるトランザクション)のルーティングに用いられる第1部分120である。従
来のトランザクションが生成されると、送信元IPエージェント14は、トランザクショ
ンを表すパケットヘッダのADDRフィールド内にシステムメモリ24内の宛先アドレス
を規定する。次いで、トランザクションは、ルーティングのためにローカルノード102
へ提供される。それに応じて、ARL28は、LUT30の第1部分120にアクセスし
て、宛先アドレスに対応する論理IP IDを見つける。次いで、IFIDテーブル12
4は、(a)宛先IPエージェント14がノード102にローカルである場合のポート2
0もしくは(b)宛先IPエージェント14への配信パスに沿って次のノード102につ
ながる適切な相互接続12または12Zへのアクセスポート22、のいずれかを規定する
ために、アクセスされる。IP IDは、適切なポート20または22に沿って送信され
る前に、パケット32のヘッダ34のDSTフィールドに配置される。
ブロードキャスト、マルチキャスト、または、エニーキャストトランザクションについ
て、LUT30の第2部分122は、複数のBMAアドレス(例えば、BMA 1~BM
A N、ここで、Nは、必要に応じてまたは適切に選択されうる任意の数)と、各BMA
アドレスに対応する情報と、を含む。様々な実施形態において、対応する情報は、以下で
ありうる。
(1)1以上の固有IP ID(例えば、BMAアドレス1に対してIP4およびIP7
、BMAアドレス2に対してIP5、IP12、および、IP24)。
(2)一意的なコード(例えば、BMAアドレス10および11に対してコード1および
コード2)。
(3)ビットベクトル(例えば、BMAアドレス20および21のためのビットベクトル
)。
各コードは、宛先IPエージェントの異なるセットを一意的に識別する。例えば、第1
コードは、宛先IPエージェントの第1セット(例えば、IP1、IP13、および、I
P21)を指定するために利用でき、第2コードは、宛先エージェントの別のセット(例
えば、IP4、IP9、および、IP17)を指定するために利用できる。
ビットベクトルでは、各ビット位置が、SoC100上のIPエージェント14に対応
する。所与のビット位置が設定されたか再設定されたかに応じて、対応するIPエージェ
ント14は、それぞれ、宛先であるとしてまたは宛先ではないとして指定される。例とし
て、(101011...1)のビットベクトルは、対応するIPエージェント14(I
P1、IP3、IP5、IP6、および、IPN)が設定され、残りが再設定されること
を示す。
上述の実施形態の各々では、1以上の論理IP IDが、所与のトランザクションの宛
先IPエージェントとして識別される。IFIDテーブル124は、論理識別子IP I
D値を、トランザクションをそれらの宛先にルーティングするのに必要な物理アクセスポ
ート20および/または22に変換するために用いられる。BMAアドレスの場合、正し
い物理アクセスポート20および/または22が必要とされることを決定するために、一
意的なコードまたはビットベクトルが、IP ID値の代わりに用いられてよい。
コードおよびビットベクトルは両方とも、多数の宛先IPエージェント14を指定する
ために利用できる。ビットベクトルは、トランザクションを表すパケット32のヘッダ3
4の宛先フィールドDSTの幅によっておそらくは制限されうる。例えば、宛先フィール
ドDSTが、32,64、128、または、258ビット幅である場合、IPエージェン
ト14の最大数は、それぞれ、32、64、128、および、256に制限される。所与
のSoC上のIPエージェント14の数が、宛先フィールドDSTの幅によって特定され
うる可能なIPエージェントの数をたまたま超えた場合、ヘッダ34内のその他のフィー
ルドが場合によっては用いられてよく、もしくは、DSTフィールドが拡張されてもよい
。しかしながら、非常に複雑なSoC100では、IPエージェント14の数は、ビット
ベクトル内で実際的に利用できる利用可能ビット数を超える場合がある。コードでは、任
意の数の宛先IPエージェントが指定されてよいので、この問題は回避される。
図9Aに関して提供された例は、本質的に例示であり、どのようにも限定を意図しない
ことを理解されたい。実際の実施形態において、SoC100で利用できるBMAアドレ
スの数は、1から多数まで幅広く変化してよい。
ソースベースルーティング(SBR)
ソースベースルーティング(SBR)は、以下の点で従来のルーティングとは異なる。
(1)送信元IPエージェント14は、トランザクションの発行時に、相互接続ファブリ
ック106に与える何らかの知識または指示を有する。例えば、送信元IPエージェント
14は、それがトランザクションを送信したい宛先IPエージェント14のIP IDを
知っている。
(2)送信元IPエージェント14は、トランザクションのパケット32のパケットヘッ
ダ34のADDRフィールドに通常は提供されるシステムメモリ24内のアドレスに関心
がないおよび/またはそれを知らない。
(3)相互接続ファブリック106内のノード102は、パケットのヘッダ34のADD
Rフィールド内のアドレスを単一の宛先IPエージェントのための単一のIP IDへ単
に変換することとは異なる何かを実行することを知っている。
ブロードキャストおよびマルチキャストは両方とも、おそらくSBRトランザクション
でありうるが必ずしもそうではないトランザクションの例である。送信元が、トランザク
ションのパケット32のヘッダ34内で(a)ブロードキャストおよび/またはマルチキ
ャストコードおよび(b)宛先IPエージェント14のいずれかを指定するブロードキャ
ストまたはマルチキャストを発行する場合、トランザクションは、送信元IPエージェン
トが宛先IPエージェントを指定しているので、ソースベースであると見なされる。一方
、送信元が、宛先の具体的な知識を全く持たずにBMAアドレスを用いてブロードキャス
トまたはマルチキャストトランザクションを開始する場合、トランザクションは、非ソー
スベースであると見なされる。エニーキャストトランザクションは、宛先IPエージェン
ト14を規定しないので、ソースベースとは見なされない。
ハッシング
ハッシングでは、ハッシュ関数が、宛先または宛先までのルートを規定するために用い
られる。いくつかの実施例において、ハッシング関数が、複数の宛先および/または複数
の宛先までの複数のルートを丁寧に規定してよい。
図9Bを参照すると、ルーティング決定を実施するためのハッシュ関数の利用を説明す
る図140が示されている。この実施形態において、ハッシュ値142が、トランザクシ
ョンを表すパケット32のヘッダ34の任意の数のフィールド内に提供される。例えば、
アドレスビット、コマンド、送信元エージェントIP、または、ヘッダ34に含まれる情
報またはデータの任意の可能な組合せのサブセットが、ハッシュ値を規定するために用い
られてよい。対応するローカルノード102内またはSoC100上のどこかで、ハッシ
ュ関数144が、ハッシュ値142に適用される。ハッシュ関数144に応答して、ルー
ティング決定がなされうる。例えば、宛先エージェント14の1以上のIP IDが規定
されてよい。異なるハッシュ値を提供することにより、異なるルーティング決定が規定さ
れてよい。ハッシングは、SoC内での多くの他の用途に用いられてもよいことを理解さ
れたい。1つのかかる用途は、トランキングのためのハッシュ関数の利用である。トラン
キングでは、単一の論理識別子を共有する2つ(以上)の重複物理リソースが存在する。
後に詳述するように、ハッシュ関数は、重複物理リソースの中から選択するために利用で
きる。
トランザクショントラフィックの最適化
機械学習、人工知能、データセンターなど、SoCのいくつかの応用例は、トランザク
ション集約的でありうる。これらのタイプの応用例は、ブロードキャスト、マルチキャス
ト、および、エニーキャストに依存する傾向にあり、それにより、トランザクショントラ
フィックをさらに増大させうる。
ブロードキャストトランザクションは、相互接続ファブリック106を介して送信され
るトラフィックの量を著しく増大させうる。
ボトルネックの発生を低減するために、トランザクショントラフィックを削減する多く
の手順が提案されている。かかる手順は、(1)SoC100の相互接続ファブリック1
06のノード102でトランザクションを拡大し、応答を統合すること、(2)それぞれ
、ペアになった仮想チャネルトランザクションクラスの組み合せによって規定されるスト
リームで2以上のトランザクションをストリーム内でインターリービングすること、(3
)ならびに、共通の論理リンクを共有するIPエージェントの間の2以上の物理リンクま
たは共通の論理アドレスを共有する2以上の同一のIPエージェントを「トランキング」
すること、を含む。
トランザクションの拡大および応答の統合
ブロードキャスティング、マルチキャスティング、読み出し応答マルチキャスティング
、および、エニーキャスティングは各々、SoC100上のIPエージェント14の間の
トランザクショントラフィックの量を著しく増大させうる。
SoC100が25のIPエージェントを有し、IPエージェントの1つがブロードキ
ャストトランザクションを生成する場合、最高24までの個々のトランザクションが、典
型的には、その他のIPエージェント14へ相互接続ファブリックを介して送信される。
Non-posted(NP)トランザクションは、Completion(C)トラン
ザクションの形態の応答を求める。24のIPエージェントへブロードキャストされるト
ランザクションがNon-postedである場合、別の24のCompletion(
C)トランザクションが同様に生成される。この簡単な例で示すように、ブロードキャス
トは、相互接続ファブリック106で伝送されるトラフィックの量を急速に増大させうる
マルチキャストおよびエニーキャストトランザクションも、トラフィックの量を急速に
拡大しうる。これらのトランザクションタイプの各々では、複数の受信側が指定されてよ
く、これは、複数のトランザクションが送信され、おそらくは、複数の完了応答トランザ
クションが相互接続ファブリック106を介して受信されることを意味する。読み出し応
答マルチキャストトランザクションでも、読み出されたコンテンツは、複数の宛先IPエ
ージェント14に送信されうる。結果として、トランザクション量は、これらのタイプの
トランザクションでも著しく増大しうる。
相互接続ファブリック106をより効果的に動作させるために、ノード102でのトラ
ンザクションを拡大して統合する技術を用いて、トラフィックの量を削減する。
図10Aおよび図10Bを参照すると、SoCの一例を説明する図が示されている。こ
の例において、SoCは、5個の相互接続されたノード102A~102Eおよび10個
のIPエージェント14(IP1~IP10)を備えた相互接続ファブリック106を備
える。
図10Aを参照すると、IP1は、Non-posted書き込みトランザクションを
その他のIPエージェントIP2~IP10へブロードキャストする。拡大を用いること
により、単一のトランザクションだけが、各共有相互接続12で送信される。各ダウンス
トリームノード102B~102Eでは、ノードは、(1)トランザクションを任意のロ
ーカルIPエージェント14へ提供し、(2)トランザクションを任意のアップストリー
ムノード102へ転送する。したがって、この例では、
・ノード102Bは、トランザクションをIP2に提供し、トランザクションの単一のイ
ンスタンス化をそれぞれノード102Cおよび102Dへ転送する。
・ノード102Cでは、トランザクションは、ローカルエージェントIP3、IP4、お
よび、IP5へ提供される。
・ノード102Dは、トランザクションをIP7へ提供する。さらに、ノード102Dも
、トランザクションの単一のインスタンス化をノード102Eへ転送する。
・ノード102Eで、トランザクションは、IP8、IP9、および、IP10へ提供さ
れる。
上記の例では、単一のトランザクションだけが、送信側IPエージェント14の下流に
あるIPエージェント1の数に関わらず、各共有相互接続12で送信される。
図10Bを参照して、応答トランザクションの統合について説明する。ブロードキャス
トトランザクションは、Non-posted書き込みであったので、各宛先エージェン
トIP2~IP10は、完了トランザクションを返す必要がある。統合では、各ノード1
02B~102Eは、そのローカルIPエージェント14から受信した完了トランザクシ
ョンを統合し、その後、ノード102Aへ向かって上流へ単一の完了トランザクションの
みを送信する。換言すると、
・ノード102Eは、IP8~IP10から受信した完了トランザクションを統合し、単
一の完了トランザクションをノード102Dへ返す。
・ノード102Dでは、IP7およびノード102Eから受信した完了トランザクション
が統合され、1つの完了トランザクションがノード102Bへ返される。
・同様に、ノード102Cは、IP3、IP4、および、IP5について単一の統合され
たトランザクションを返す。
・最後に、ノード102Bは、ノード102C、102D、および、IP2から受信した
完了トランザクションを統合し、単一の完了トランザクションをノード102AおよびI
P1へ返す。
上記の例は、拡大および統合の効率を説明する。拡大がなければ、9個の別個のトラン
ザクション(エージェントIP2~IP10の各々に対して1つずつ)が、相互接続ファ
ブリック106を介して伝送される必要がある。しかし、拡大を用いることにより、様々
な共有相互接続12を介して伝送されるトランザクションの数は、4まで削減される。合
計9の完了トランザクションも、4つに統合される。
時々、エラーが発生する可能性があり、完了トランザクションが、受信側IPエージェ
ントIP2~IP10の1以上によって生成されない。エラーは、多くの異なる方法で対
処することができる。例えば、成功した完了だけを統合することができ、一方、エラー応
答を組み合わせるおよび/または別個に送信することができる。さらに別の代替例におい
て、成功した完了およびエラー完了の両方が統合されてもよいが、成功応答または失敗応
答のいずれかを示すように、各々にフラグが付される。
上記の記載はブロードキャストの文脈で提供されているが、トランザクションの拡大お
よび統合は、マルチキャスティング、読み出し応答マルチキャスティング、および/また
は、エニーキャスティングで実施されてもよいことを理解されたい。
ブロードキャスト、マルチキャスト、および、エニーキャストトランザクションが一般
的である機械学習、人工知能、データセンターなどのトランザクション集約的な応用例に
おいて、拡大および統合することができれば、相互接続ファブリック106上のトランザ
クショントラフィックの量を大幅に削減して、ボトルネックを排除または低減すると共に
システム効率およびパフォーマンスを改善することができる。
トランキング
SoC100の相互接続ファブリック106は、典型的には、各方向に対して、(a)
IPエージェント14とローカルノード102との間、および、(b)複数のノード10
2の間に、単一の物理リンクを備える。単一のリンクのみがある場合、物理リンクと、そ
の物理リンクのためのアクセスポート20または22との間には、一対一の対応関係があ
る。同様に、ほとんどの相互接続ファブリック106で、物理IPエージェント14と、
そのIPエージェント14にアクセスするために用いられる論理IP IDとの間にも、
一対一の対応関係がある。
高パフォーマンスの応用例においては、トランキングと呼ばれる技術を用いることが有
利でありうる。トランキングでは、単一の論理識別子を共有する2つ(以上)の重複物理
リソースが存在する。物理リソースを重複させることにより、ボトルネックを回避するこ
とができ、システムの効率およびパフォーマスを向上させることができる。例えば、1つ
の物理リソースが、ビジーであるか、電源オフであるか、または、利用不可能である場合
、重複リソースの1つが利用されうる。トランキングは、信頼性も改善できる。1つの物
理リソース(例えば、相互接続またはIPエージェントなど)がダウンし、利用不可能に
なるか、または、何らかの理由で利用できない場合、その他の物理リソースが利用されう
る。同じ論理識別子を用いて重複リソースをアドレッシングすることにより、SoC10
0上で利用される論理アドレッシングシステムを変更する必要なしに、重複物理リソース
の利点を実現させることができる。しかしながら、重複物理リソースの内のどれを利用す
るのかを選択して追跡するのかが課題である。
図11Aを参照すると、いくつかのトランキングの例を含むSoC100の相互接続フ
ァブリック106が示されている。この例において、相互接続ファブリック106は、3
つのノード102A、102B、および、102Cを備える。ノード102Aは、2つの
IPエージェント14および14を備える。ノード102Bは、2つのIPエージェ
ント14および14を備える。ノード102Cは、1つのIPエージェント14sを
備える。相互接続ファブリック106は、以下のトランキングの例を含む。
・ノード102AとIPエージェント14との間の物理的な「トランク」ラインのペア

・ノード102Aから102Cの同方向の物理的な「トランク」相互接続12(1)およ
び12(2)のペア。
・同一のIPエージェント14sのペア。
これらの例の各々では、論理識別子と物理リソースとの間に一対一の対応関係はない。
逆に、2つの利用可能な物理リソースがあるので、どちらの物理リソースを利用するか選
択を行う必要がある。
図11Bを参照すると、(図9Aの)任意選択的な物理リンクセレクタ126を示す図
が示されている。上述のように、トランキングでは、単一の論理識別子を共有する2つ(
以上)の重複物理リソースが存在する。IFIDテーブル124が、トランキング状況な
どで、重複物理リソースを有する論理IP IDを識別した時はいつでも、任意選択的な
物理リンクセレクタ126が、選択を行うために用いられる。物理リンクセレクタ126
は、物理リソースの利用可能性(またはその欠如)、混雑状態、負荷バランシング、ハッ
シュ関数、ランダム選択、最長時間未使用の選択、電力条件など、1以上の決定要素を用
いて、その選択を行ってよい。例えば、或る物理リソースがビジーである、混雑している
、および/または、利用不可能である場合、他の物理リソースが選択される。あるいは、
或るリソースが電力消費を削減するために電源オフされている場合、他のリソースが選択
されてよい。どのようになされるかに関わらず、選択は、選択された物理リソースにアク
セスするために用いられる物理ポート20または22の識別につながる。
非排他的実施形態において、物理リソースの選択は、動作が完了するまで利用されるこ
とが好ましい。一連の関連トランザクションが、送信元IPエージェント14と、宛先I
Pエージェントの重複ペア(例えば、図11Aの2つのIPエージェントIP5)との間
で送信される場合、すべてのトランザクションが、動作の完了まで同じ宛先IPエージェ
ントに送信される。そうでなければ、データの破損またはその他の問題が発生しうる。重
複物理リソースが相互接続である場合、典型的には、同様のアプローチが好ましい。応答
(読み出しなど)を求めるトランザクションでは、読み出し要求トランザクションおよび
結果応答の両方が、同じ相互接続を介して送信されることが好ましい。さらに、トランザ
クションのパケットの破損を避けるために、トランザクション全体、および、トランザク
ションのパケットが、同じパスで同じ宛先へルーティングされることが好ましい。パケッ
トは、リンクを通るために数ビートを必要とし、おそらくは、他の仮想チャネルとインタ
ーリーブされうるので、パケットの終了までポートまたはリンクを変えないことが重要で
ある。そうでなければ、パケットの複数のビートは、パケットの部分がシステムを通して
移動する時に順序がばらばらになりうるので、それにより情報が破損しうる。要求と同じ
パスを介して応答をルーティングすることが通常は望ましいが、必須ではない。
いくつかの非排他的実施形態において、各ビートと共に送信された順序付け情報を用い
て、順不同でまたは異なるリソースから受信されたトランザクションのビートを再順序付
けする機能を、宛先IPエージェントに提供することが有利でありうる。例えば、制御ビ
ットMは、パケットの各ビートに対する固有の「ビートカウント数」を特定するために用
いられてよい。次いで、パケットのビートは、各ビートと共に送信された固有のビートカ
ウント数を用いて、正確な番号順で宛先IPエージェントによって組み立てられうる。各
ビートと共に送信されるビートカウント数を提供することにより、破損に関する上述の問
題の多くが解決されうる。
ストリーム内インターリービング
前述したように、ストリームは、仮想チャネルおよびトランザクションクラスのペアリ
ングとして定義される。4つの仮想チャネル(例えば、VC0、VC1、VC2、および
、VC3)、ならびに、3つのトランザクションクラス(P、NP、C)があった場合、
最大で12の異なる可能なストリームがある。12のストリームは、完全に独立している
。ストリームは、独立しているので、例えば、相互接続ワイヤ12および12Zなどの共
有リソース上でインターリーブされうる。各アービトレーション工程で、仮想チャネルの
ストリームが選択され、対応するポート22は、そのトランザクションの残りに対してそ
のトランザクションにロックされる。別の仮想チャネルを選択して、トランザクションの
伝送の完了前に同じポート上でインターリーブすることもできるが、トランザクションが
完了するまでは、同じ仮想チャネルの別のストリームを選択することはできない。
ストリーム内インターリービングは、2つのトランザクションが互いに独立していると
いう条件では、同じストリームを共有する2以上のトランザクションのインターリービン
グである。独立したトランザクションの例は、(1)2つの異なるIPエージェント14
が、同じストリームを共有するトランザクションを生成すること、および、(2)同じI
Pエージェント14が、同じストリームを共有する2つのトランザクションを生成するが
、生成するIPエージェント14が2つのトランザクションを独立するものとしてマーク
すること、を含む。トランザクションを独立するものとしてマークすることにより、トラ
ンザクションを再順序付けして、インターリービングを用いて配信できることを意味する
。ストリーム内インターリービングによれば、トランザクションが完了するまで仮想チャ
ネルのストリームをポートにロックする上述の制約を緩和または排除することができる。
ストリーム内インターリービングによれば、(1)2以上の独立したトランザクションを
ストリーム上でインターリーブすることができ、(2)同じ仮想チャネルに関連する異な
るストリームもインターリーブできる。
ストリーム内インターリービングでは、同じストリーム上でインターリーブされうる2
つ(以上)の独立したトランザクションを示すために、さらなる情報が必要である。様々
な実施形態において、これは、多くの異なる方法で達成されてよい。一実施形態において
、独立したトランザクションのパケットのヘッダ34は、一意的なトランザクション識別
子すなわちIDを割り当てられる。一意的なトランザクション識別子を用いることにより
、各トランザクションの各ビートは、独立するものとしてフラグを付される。各トランザ
クションに対する一意的なトランザクションIDを用いることにより、様々なノード10
2は、同じストリーム上でインターリーブされる複数の独立したトランザクションのビー
トを追跡する。
インターリーブされたトランザクションの所与のペアについて、仮想チャネルおよびト
ランザクションクラスを指定するビットは同じであるが、各々のためのトランザクション
IDを表すビットは異なる。
したがって、制御ビットMに含まれるさらなるトランザクションID情報は、送信元お
よび宛先IPエージェント14の両方および相互接続ファブリック106が、同じストリ
ーム上でインターリーブされた時に、或るトランザクションを他のトランザクションに対
して認識または区別することを可能にする。
同期配信対非同期配信
ブロードキャスティング、マルチキャスティング、読み出し応答マルチキャスティング
、および、エニーキャスティングでは、同じトランザクションの複数のインスタンス化が
、相互接続ファブリック106で伝送されてよい。目標となる宛先およびそれらの宛先ま
でのパスの各々が利用可能である場合、各宛先IPエージェント14は、ネットワーク上
で通常の待ち時間だけ遅延して、やがてトランザクションを受信する。一方、パスまたは
宛先のいずれかが利用できない(例えば、リソースバッファが満杯である)場合、1以上
の利用可能な宛先が、利用できない宛先の前にトランザクションを受信してよい。かかる
状況下での異なる到達時間は、2つの異なる実施例の可能性を提起する。
第1同期または「ブロッキング」実施形態においては、各宛先がほぼ同時にトランザク
ションを受信することを保証する努力がなされる。換言すると、利用不可能なリソースが
利用可能になるまで、利用可能なリソースへのトランザクションの配信が、遅延すなわち
「ブロック」されてよい。結果として、指定された受信側の各々によるトランザクション
の受信が同期される。この実施形態は、ほぼ同時にトランザクションを受信することが受
信側にとって重要である応用例で用いられてよい。
第2非同期的または非ブロッキング実施形態においては、利用可能な宛先へのトランザ
クションの配信を遅延させるためのブロッキングの努力がなされない。その代わり、トラ
ンザクションの各インスタンス化が、利用可能性に基づいて配信され、これは、利用可能
なリソースがトランザクションをすぐに受信する一方で、利用不可能なリソースは、利用
可能になった時にトランザクションを受信することを意味する。結果として、非同期的す
なわち異なる時間に配信が起こりうる。このアプローチの利点は、利用可能な宛先IPエ
ージェント14が、すぐにトランザクションを処理でき、他のIPエージェントと同期す
るのを待ってブロックされることがないことである。結果として、遅延が回避される。
いくつかの実施形態についてのみ詳細に説明したが、ここに提供した本開示の精神や範
囲を逸脱することなしに多くの他の形態で本願を実施できることを理解されたい。したが
って、これらの実施形態は、例示的なものであって、限定的なものではないとみなされ、
本明細書に示した詳細に限定されず、添付の特許請求の範囲および等価物の範囲内で変形
されてもよい。

Claims (109)

  1. システムオンチップ(SoC)で利用するためのアービトレーションシステムであって

    前記SoC上の複数のサブシステムの間で共有されるよう構成されている相互接続と、
    前記サブシステムは前記相互接続を介して伝送するためにトランザクションを生成するよ
    う構成されており、
    アービトレーション要素と、
    を備え、
    前記アービトレーション要素は、クロックサイクルごとに、
    (1)前記複数のサブシステムによって生成された複数のトランザクションの部分の間で
    アービトレートし、
    (2)前記複数のトランザクションの前記部分の中から勝利部分を選択し、
    (3)前記相互接続に関連付けられている複数の仮想チャネルの1つを介して前記勝利部
    分を伝送するよう構成されている、システム。
  2. 請求項1に記載のアービトレーションシステムであって、前記複数の仮想チャネルの各
    々は、論理的に独立している、システム。
  3. 請求項1または2に記載のアービトレーションシステムであって、前記複数のトランザ
    クションの内の1トランザクションの第1勝利部分および第2勝利部分が、同じ仮想チャ
    ネルを介して伝送される、システム。
  4. 請求項1から3のいずれか一項に記載のアービトレーションシステムであって、さらに

    複数の送信元ポートと、
    前記複数の送信元ポートの各々に対して、複数のバッファと、
    を備える、システム。
  5. 請求項4に記載のアービトレーションシステムであって、前記複数の送信元ポートの各
    々に対する前記複数のバッファは、トランザクションクラスおよび前記複数の仮想チャネ
    ルの各組み合わせに対して、それぞれ提供される、システム。
  6. 請求項4に記載のアービトレーションシステムであって、前記アービトレーション要素
    は、前記複数の送信元ポートの間でアービトレーションを実行する、システム。
  7. 請求項1から6のいずれか一項に記載のアービトレーションシステムであって、前記ア
    ービトレーション要素は、前記複数の仮想チャネルの間でアービトレーションを実行する
    、システム。
  8. 請求項5に記載のアービトレーションシステムであって、前記アービトレーション要素
    は、前記トランザクションクラスの間でアービトレーションを実行する、システム。
  9. 請求項8に記載のアービトレーションシステムであって、前記アービトレーション要素
    は、前記トランザクションクラスの間で前記アービトレーションを実行する時に、デバイ
    ス順序付けルールを利用する、システム。
  10. 請求項8に記載のアービトレーションシステムであって、前記アービトレーション要素
    は、前記トランザクションクラスの間で前記アービトレーションを実行する時に、ペリフ
    ェラルコンポーネントインターコネクト(PCI)順序ルールを利用する、システム。
  11. 請求項1から5のいずれか一項に記載のアービトレーションシステムであって、前記ト
    ランザクションクラスは、
    応答を求めないPostedトランザクションクラス、
    アクセスされた送信元からの応答を求めるNon-postedトランザクションクラ
    ス、および、
    Non-postedトランザクションへの応答のためのCompletionトラン
    ザクションクラス、
    の内の1以上を含む、システム。
  12. 請求項1から5のいずれか一項に記載のアービトレーションシステムであって、前記ア
    ービトレーション要素は、
    (1)前記複数の送信元ポートの間でのアービトレーション、
    (2)前記複数の仮想チャネルの間でのアービトレーション、および、
    (3)前記トランザクションクラスの間でのアービトレーション、
    を実行することによって、前記クロックサイクルごとに、前記勝利部分を選択する、シス
    テム。
  13. 請求項9に記載のアービトレーションシステムであって、前記複数の送信元ポイント、
    前記複数の仮想チャネル、および、前記トランザクションクラスの間でのアービトレーシ
    ョンが、任意の順序で実行されうる、システム。
  14. 請求項1から13のいずれか一項に記載のアービトレーションシステムであって、前記
    アービトレーションは、前記複数のトランザクションの中で、利用できない宛先を規定す
    る選択部分を、前記アービトレーションから除外する、システム。
  15. 請求項1から13のいずれか一項に記載のアービトレーションシステムであって、前記
    アービトレーションは、前記複数のトランザクションの中で、前記複数の仮想チャネルの
    内で利用できない1以上の仮想チャネルに関連する選択部分を、前記アービトレーション
    から除外する、システム。
  16. 請求項1から15のいずれか一項に記載のアービトレーションシステムであって、前記
    アービトレーション要素は、さらに、複数の勝利部分が、クロックサイクルごとに、前記
    複数の仮想チャネルを介してそれぞれ伝送されるように、(1)から(3)を繰り返し実
    行するよう構成されている、システム。
  17. 請求項16に記載のアービトレーションシステムであって、前記アービトレーション要
    素は、さらに、前記複数の仮想チャネルの中から選択された異なる仮想チャネル上で前記
    複数の勝利部分の前記伝送をそれぞれインターリーブするよう構成されている、システム
  18. 請求項16に記載のアービトレーションシステムであって、各クロックサイクルに転送
    されるデータの量は、少なくとも部分的には、前記相互接続のビット幅に依存する、シス
    テム。
  19. 請求項1から18のいずれか一項に記載のアービトレーションシステムであって、さら
    に、前記複数のサブシステムにそれぞれ関連付けられている複数のポートを備え、前記複
    数のポートの各々は、前記相互接続に関連付けられている前記複数の仮想チャネルにそれ
    ぞれ対応する複数のバッファを備える、システム。
  20. 請求項19に記載のアービトレーションシステムであって、所定のポートの前記複数の
    バッファは、前記対応するサブシステムによって生成された前記トランザクションの部分
    をバッファする、システム。
  21. 請求項1から21のいずれか一項に記載のアービトレーションシステムであって、前記
    勝利部分は、前記アービトレーション要素によって、
    前記複数の仮想チャネルの中から勝利仮想チャネルを選択するための第1レベルアービ
    トレーションを実行し、
    前記第1レベルアービトレーションによって選択された前記勝利仮想チャネルに各々割
    り当てられたトランザクションの競合部分の中から前記勝利部分を選択するための第2レ
    ベルアービトレーションを実行することにより、アービトレートされる、システム。
  22. 請求項21に記載のアービトレーションシステムであって、前記アービトレーション要
    素は、デバイス順序アービトレーションルールを用いてアービトレートする、システム。
  23. 請求項21に記載のアービトレーションシステムであって、前記アービトレーション要
    素は、ペリフェラルコンポーネントインターコネクト(PCI)順序アービトレーション
    ルールを用いてアービトレートする、システム。
  24. 請求項21に記載のアービトレーションシステムであって、前記第1レベルアービトレ
    ーションは、利用可能な仮想チャネルの間でのみ実行される、システム。
  25. 請求項21に記載のアービトレーションシステムであって、前記第1レベルアービトレ
    ーションは、前記競合トランザクションを処理するために利用可能な宛先をそれぞれ規定
    する前記トランザクションの前記競合部分の間でのみ実行される、システム。
  26. 請求項1から26のいずれか一項に記載のアービトレーションシステムであって、前記
    アービトレーション要素は、前記複数の仮想チャネルの1つが他の仮想チャネルよりも絶
    対優先度を与えられる絶対アービトレーションスキームを用いて、前記複数の仮想チャネ
    ルの間でアービトレートする、システム。
  27. 請求項1から25のいずれか一項に記載のアービトレーションシステムであって、前記
    アービトレーション要素は、ラウンドロビン優先度スキームを用いて、前記複数の仮想チ
    ャネルの間でアービトレートする、システム。
  28. 請求項1から25のいずれか一項に記載のアービトレーションシステムであって、前記
    アービトレーション要素は、最長時間未サービスプロトコルを用いて、前記複数の仮想チ
    ャネルの間でアービトレートする、システム。
  29. 請求項1から25のいずれか一項に記載のアービトレーションシステムであって、前記
    アービトレーション要素は、前記複数の仮想チャネルの各々にそれぞれ割り当てられた重
    み付け比率を用いて、前記複数の仮想チャネルの間でアービトレートする、システム。
  30. 請求項1から29のいずれか一項に記載のアービトレーションシステムであって、前記
    複数のサブシステムは、前記相互接続を介して互いに通信するよう構成されている集積回
    路上のIPエージェントであり、前記アービトレーション要素は、それぞれ、複数のクロ
    ックサイクルにわたって、前記相互接続に関連付けられている前記複数の仮想チャネルを
    介して、前記複数のトランザクションの勝利部分をアービトレートしてインターリーブす
    るよう構成されている、システム。
  31. 請求項1から30のいずれか一項に記載のアービトレーションシステムであって、前記
    サブシステムは各々、規定された機能を実行する、システム。
  32. 請求項1から31のいずれか一項に記載のアービトレーションシステムであって、前記
    複数のトランザクションの前記部分は、それぞれ、パケットまたはパケットの一部である
    、システム。
  33. 請求項1から32のいずれか一項に記載のアービトレーションシステムであって、前記
    複数のトランザクションの各々は、それぞれ、1以上のパケットによって表される、シス
    テム。
  34. 請求項1に記載のアービトレーションシステムであって、前記複数のトランザクション
    の各々は、少なくとも1つのパケットによって表され、前記少なくとも1つのパケットは
    、1以上のフィールドを含み、前記1以上のフィールドは、
    送信元識別子を含むための送信元フィールドと、
    宛先識別子のための宛先フィールドと、
    前記パケットに関連する任意のペイロードのサイズを規定するためのペイロードフィー
    ルドと、
    宛先に関連するシステムメモリ空間内のアドレスを規定するためのアドレスフィールと

    を含む、システム。
  35. 請求項1から34のいずれか一項に記載のアービトレーションシステムであって、前記
    アービトレーション要素は、少なくとも1つのスイッチと連携して動作し、前記スイッチ
    は、前記複数のサブシステムの内の1以上のための1以上の入口/出口のポイントをそれ
    ぞれ規定する1以上のアクセスポートを備える、システム。
  36. 請求項1から35のいずれか一項に記載のアービトレーションシステムであって、さら
    に、前記複数のサブシステムにそれぞれ関連付けられている複数のポートを備え、前記複
    数のポートの各々は、それぞれ関連するサブシステムにアクセスするために用いられる一
    意識別子(ID)を有する、システム。
  37. 請求項1から36のいずれか一項に記載のアービトレーションシステムであって、前記
    アービトレーション要素は、アドレス解決ロジックと連携して動作し、前記アドレス解決
    ロジックは、
    前記アービトレーションの結果として得られた前記勝利部分に含まれて、前記システム
    メモリ内のロケーションを特定するアドレスを特定し、
    目標サブシステムに関連するアクセスポートを前記アドレスから確認し、
    前記確認されたアクセスポートに対応するアクセスポートIDを、前記勝利部分に関連
    する少なくとも1つのパケットに挿入するよう構成されており、
    前記アクセスポートIDの前記挿入は、前記勝利部分が前記目標サブシステムに配信さ
    れることを可能にする、システム。
  38. 請求項1から37のいずれか一項に記載のアービトレーションシステムであって、前記
    サブシステムによって生成される前記トランザクションは、
    宛先からの応答が求められるNon-postedクラス、
    前記宛先からの応答が求められないPostedクラス、または、
    Non-postedトランザクションに応答して生成されるCompletionク
    ラス、
    の内の1つに分類される、システム。
  39. 請求項1から38のいずれか一項に記載のアービトレーションシステムであって、前記
    サブシステムによって生成される前記トランザクションは各々、一方向性である、システ
    ム。
  40. 請求項1から39のいずれか一項に記載のアービトレーションシステムであって、前記
    相互接続は、Nデータビット幅の物理的相互接続である、システム。
  41. 請求項1から40のいずれか一項に記載のアービトレーションシステムであって、前記
    相互接続は、M個の制御ビットを含む物理的相互接続である、システム。
  42. 請求項1から41のいずれか一項に記載のアービトレーションシステムであって、前記
    複数の仮想チャネルは、1個の仮想チャネルから32個の仮想チャネルまでの任意の数を
    含む、システム。
  43. 請求項1から42のいずれか一項に記載のアービトレーションシステムであって、前記
    相互接続は、一方向性であり、前記複数のトランザクションから選択された勝利部分を第
    1方向にのみ伝送するよう構成されている、システム。
  44. 請求項43に記載のアービトレーションシステムであって、さらに、
    一方向性の第2相互接続であって、前記第1方向とは反対の第2方向にのみ、他の勝利
    部分を伝送するよう構成されている第2相互接続と、
    前記第2相互接続を介して伝送される前記他の勝利部分を選択するための第2アービト
    レーションと、
    を備える、システム。
  45. システムオンチップ(SoC)であって、
    前記SoC上に配置された複数のサブシステムであって、複数のトランザクションを生
    成するよう構成されている複数のサブシステムと、
    前記SoC上に提供された共有相互接続であって、前記複数のサブシステムの間で前記
    複数のトランザクションを伝送するよう構成され、自身に関連付けられている複数の仮想
    チャネルを有する、共有相互接続と、
    アービトレーション要素と、
    を備え、
    前記アービトレーション要素は、クロックサイクルごとに、
    (1)前記複数のサブシステムによって生成された前記複数のトランザクションの競合部
    分の間でアービトレートし、
    (2)前記複数のトランザクションの前記競合部分の中から勝利部分を選択するよう構成
    されており、
    連続するクロックサイクル中に選択された前記複数のトランザクションの前記勝利部分
    は各々、前記複数の仮想チャネルの内の1つに割り当てられて、前記共有相互接続を介し
    て伝送される、SoC。
  46. 請求項45に記載のSoCであって、前記複数のトランザクションの前記勝利部分は、
    前記連続するクロックサイクル中に前記共有相互接続を介して伝送される際にインターリ
    ーブされる、SoC。
  47. 請求項45または46のいずれかに記載のSoCであって、前記複数の仮想チャネルの
    各々は、論理的に独立しており、所与のトランザクションの複数の部分の各々が、前記同
    じ仮想チャネルに割り当てられる、SoC。
  48. 請求項45から47のいずれか一項に記載のSoCであって、さらに、前記複数のサブ
    システムに関連付けられている複数のポートを備え、前記複数のポートの各々は、一意ポ
    ート識別子(ID)をそれぞれ割り当てられている、SoC。
  49. 請求項48に記載のSoCであって、各ポートは、トランザクションクラスおよび前記
    複数の仮想チャネルの各組み合わせに対して、複数のバッファをそれぞれ備える、SoC
  50. 請求項49に記載のSoCであって、前記トランザクションクラスは、(a)Post
    edトランザクション、(b)Non-postedトランザクション、および、(c)
    Completionトランザクションを含む、SoC。
  51. 請求項49に記載のSoCであって、前記トランザクションクラスは、(a)Non-
    postedトランザクション、および、(c)Completionトランザクション
    を含む、SoC。
  52. 請求項45から51のいずれか一項に記載のSoCであって、前記アービトレーション
    要素は、クロックサイクルごとに、前記複数のサブシステムにそれぞれ関連付けられてい
    る複数のポートの間で前記アービトレーションを実行する、SoC。
  53. 請求項45から52のいずれか一項に記載のSoCであって、前記アービトレーション
    要素は、クロックサイクルごとに、それぞれ、前記複数の仮想チャネルの間で前記アービ
    トレーションを実行する、SoC。
  54. 請求項45から53のいずれか一項に記載のSoCであって、前記アービトレーション
    要素は、クロックサイクルごとに、それぞれ、複数のトランザクションクラスの間で前記
    アービトレーションを実行する、SoC。
  55. 請求項54に記載のSoCであって、前記アービトレーション要素は、デバイス順序付
    けルールを用いて、前記複数のトランザクションクラスの間で前記アービトレーションを
    実行する、SoC。
  56. 請求項54に記載のSoCであって、前記アービトレーション要素は、ペリフェラルコ
    ンポーネントインターコネクト(PCI)順位付けルールを用いて、前記複数のトランザ
    クションクラスの間で前記アービトレーションを実行する、SoC。
  57. 請求項54に記載のSoCであって、前記アービトレーション要素は、クロックサイク
    ルごとに、
    (1)前記複数のサブシステムにそれぞれ関連付けられている複数のポート、
    (2)複数のトランザクションクラス、および、
    (3)前記複数の仮想チャネル、
    の間で前記アービトレーションを実行する、SoC。
  58. 請求項57に記載のSoCであって、(1)、(2)、および、(3)は、任意の順序
    で実行される、SoC。
  59. 請求項45から58のいずれか一項に記載のSoCであって、前記アービトレーション
    要素は、さらに、クロックサイクルごとに、利用できない宛先リソースを規定する前記複
    数の競合トランザクションの選択部分を除外するよう構成されている、SoC。
  60. 請求項45から59のいずれか一項に記載のSoCであって、前記共有相互接続は、
    (a)8データビット幅、
    (b)16データビット幅、
    (c)32データビット幅、
    (d)64データビット幅、
    (e)128データビット幅、
    (f)256データビット幅、
    (h)512データビット幅、または
    (i)1024ビット幅、
    の内の1つである、SoC。
  61. 請求項45から60のいずれか一項に記載のSoCであって、前記共有相互接続によっ
    て各クロックサイクルに転送されるデータの量は、少なくとも部分的には、前記共有相互
    接続のビット幅に依存する、SoC。
  62. 請求項45から61のいずれか一項に記載のSoCであって、前記複数のトランザクシ
    ョンの各々は、前記複数の仮想チャネルの内の1つに割り当てられる、SoC。
  63. 請求項62に記載のSoCであって、前記割り当ては、
    無作為の割り当て、
    ハードコートされた割り当て、
    前記複数の仮想チャネルにわたるバランシング、
    安全なチャネル、または、
    トランザクションの緊急性、
    の内の1以上を用いることに基づく、SoC。
  64. 請求項45から63のいずれか一項に記載のSoCであって、前記複数のトランザクシ
    ョンの前記部分は、それぞれ、パケットまたはパケットの一部である、SoC。
  65. 請求項45から64のいずれか一項に記載のSoCであって、前記複数のトランザクシ
    ョンの各々は、それぞれ、1以上のパケットによって表される、SoC。
  66. 請求項45から65のいずれか一項に記載のSoCであって、前記アービトレーション
    要素は、さらに、厳密または絶対優先度スキームを用いてアービトレートするよう構成さ
    れている、SoC。
  67. 請求項45から65のいずれか一項に記載のSoCであって、前記アービトレーション
    要素は、さらに、重み付け比率アービトレーションスキームを用いてアービトレートする
    よう構成されている、SoC。
  68. 請求項45から65のいずれか一項に記載のSoCであって、前記アービトレーション
    要素は、さらに、ラウンドロビンアービトレーションスキームを用いてアービトレートす
    るよう構成されている、SoC。
  69. 請求項45から65のいずれか一項に記載のSoCであって、前記アービトレーション
    要素は、さらに、最長時間未サービスアービトレーションスキームを用いてアービトレー
    トするよう構成されている、SoC。
  70. 請求項45から69のいずれか一項に記載のSoCであって、さらに、前記複数のトラ
    ンザクションの内の1以上について、宛先アドレスをそれぞれ解決するためのアドレス解
    決ロジック(ARL)ユニットを備える、SoC。
  71. 請求項45から70のいずれか一項に記載のSoCであって、さらに、前記トランザク
    ションの勝利部分の間で前記共有相互接続へのアクセスを順序付けるための順序付けポイ
    ントを備える、SoC。
  72. 請求項45から71のいずれか一項に記載のSoCであって、前記相互接続は、Nビッ
    ト幅であり、Nは、2のべき乗である、SoC。
  73. 請求項45から72のいずれか一項に記載のSoCであって、前記相互接続は、M個の
    制御ビットを備え、Mは、1以上の整数である、SoC。
  74. アービトレーションシステムであって、
    共有リソースと、
    アクセスされるリソースと、
    競合する要素の間で前記共有リソースへのアクセスをアービトレートするよう構成され
    ると共に、クロックサイクルごとに、前記共有リソースへのアクセスをアービトレートす
    るよう構成されているアービトレーション要素と、
    を備える、システム。
  75. システムオンチップ(SoC)であって、
    相互接続ファブリックと、
    前記相互接続ファブリックによって相互接続された複数のIPエージェントであって、
    前記IPエージェントの間で前記相互接続ファブリックを介して伝送されるトランザクシ
    ョントラフィックの送信元および宛先になるよう構成されている、複数のIPエージェン
    トと、
    を備え、
    第1IPエージェントは、ブロードキャスト、マルチキャスト、読み出しマルチキャス
    ト、または、エニーキャストタイプのトランザクションの内の1つであるトランザクショ
    ンを生成して送信するよう構成され、
    前記相互接続ファブリックは、前記SoC上の前記複数のIPエージェントの中の1以
    上の宛先IPエージェントへ前記相互接続ファブリックを介して前記トランザクションを
    どのようにルーティングして配信するかについてルーティング決定を行うよう構成されて
    いる、SoC。
  76. 請求項75に記載のSoCであって、前記相互接続ファブリックは、前記相互接続ファ
    ブリックの2つのノードの間で共有相互接続を介して前記トランザクションの1つのイン
    スタンス化を統合して送信することによって、前記相互接続ファブリックを介して送信さ
    れるトランザクショントラフィックを削減するように、前記ルーティング決定を行うよう
    構成されており、前記共有相互接続は、配信パスに沿って2以上の宛先IPエージェント
    に至る、SoC。
  77. 請求項75または76に記載のSoCであって、前記相互接続ファブリックは、前記ト
    ランザクションに応答して生成された複数の受信済みの応答トランザクションを統合して
    、前記相互接続ファブリックのノードの間で共有相互接続を介して前記応答トランザクシ
    ョンの1つのインスタンス化を転送することによって、前記相互接続ファブリックを介し
    て送信されるトランザクショントラフィックを削減するように、前記ルーティング決定を
    行うよう構成されており、前記共有相互接続は、応答配信パスに沿って前記応答トランザ
    クションの宛先に至る、SoC。
  78. 請求項75から77のいずれか一項に記載のSoCであって、前記相互接続ファブリッ
    クは、さらに、共有相互接続に関連付けられている複数のストリーム上で複数のトランザ
    クションの伝送をインターリーブするように、前記ルーティング決定を行うよう構成され
    ており、(a)前記複数のストリームの各々は、仮想チャネルおよびトランザクションタ
    イプの一意的な組み合わせによって規定され、(b)所与のトランザクションの1以上の
    部分が、同じストリームを介して伝送される、SoC。
  79. 請求項75から78のいずれか一項に記載のSoCであって、前記相互接続ファブリッ
    クは、さらに、共有相互接続に関連付けられている複数のストリームの中の同じストリー
    ムを介して2以上の独立したトランザクションをルーティングするように、前記ルーティ
    ング決定を行うよう構成されており、前記複数のストリームの各々は、仮想チャネルおよ
    びトランザクションタイプの一意的な組み合わせによって規定される、SoC。
  80. 請求項75から79のいずれか一項に記載のSoCであって、前記相互接続ファブリッ
    クは、共通の論理識別子を共有する重複物理リソースを備え、前記ルーティング決定は、
    (a)前記重複物理リソースの1つを選択することと、(b)前記重複物理リソースの前
    記選択された1つを用いて前記トランザクションをルーティングすることと、を含む、S
    oC。
  81. 請求項80に記載のSoCであって、前記重複物理リソースは、
    (a)重複IPエージェント、
    (b)前記相互接続ファブリックの2つのノードの間の重複共有相互接続、
    (c)IPエージェントと前記相互接続ファブリックのノードとの間の共有ライン、
    の内の1つを含む、SoC。
  82. 請求項80に記載のSoCであって、前記ルーティング決定は、
    (a)前記重複物理リソースの利用可能性、
    (b)前記重複物理リソースの間の相対的な混在状態、
    (c)前記重複物理リソースの間の負荷バランシング、
    (d)前記重複物理リソースの間のランダム選択、
    (e)前記重複物理リソースの間の最長時間未使用選択、
    (f)前記重複物理リソースの間の相対的な電力消費、
    (g)前記重複物理リソースの間で選択を行うためのハッシュ関数の利用、または、
    (h)(a)~(g)の任意の組み合わせ、
    の内の1つに基づく、SoC。
  83. 請求項75から82のいずれか一項に記載のSoCであって、前記相互接続ファブリッ
    クを介して前記トランザクションをどのようにルーティングして配信するかについての前
    記ルーティング決定は、2以上の宛先IPエージェントへの前記トランザクションの配信
    を同期させることを含む、SoC。
  84. 請求項75から83のいずれか一項に記載のSoCであって、前記相互接続ファブリッ
    クを介して前記トランザクションをどのようにルーティングして配信するかについての前
    記ルーティング決定は、2以上の宛先IPエージェントへの前記トランザクションの配信
    が非同期的に起きるのを許容することを含む、SoC。
  85. 請求項75から84のいずれか一項に記載のSoCであって、前記相互接続ファブリッ
    クは、複数のノードを備え、前記ノードの少なくとも1つは、前記トランザクション内で
    指定されたアドレスを前記1以上の宛先IPエージェントの論理識別子に解決するための
    ルックアップテーブルを備える、SoC。
  86. 請求項75から85のいずれか一項に記載のSoCであって、前記相互接続ファブリッ
    クは、複数のノードを備え、前記複数のノードの各々は、前記1以上の宛先IPエージェ
    ントの論理識別子を、前記トランザクションをルーティングするために用いられる1以上
    のポート識別子に変換するためのテーブルを備える、SoC。
  87. 請求項75から86のいずれか一項に記載のSoCであって、前記トランザクションは
    、複数の一意的なコード化されたコマンドの内の1つを備え、前記一意的なコード化され
    たコマンドの各々は、前記トランザクションが、それぞれ、前記ブロードキャスト、前記
    マルチキャスト、前記読み出しマルチキャストトランザクション、または、前記エニーキ
    ャストタイプのトランザクションの内のいずれか1つであることを、前記相互接続ファブ
    リックに示す、SoC。
  88. 請求項75から87のいずれか一項に記載のSoCであって、前記トランザクションは
    、一意的なアドレスを備え、前記一意的なドレスは、前記トランザクションが、それぞれ
    、前記ブロードキャスト、前記マルチキャスト、前記読み出しマルチキャストトランザク
    ション、または、前記エニーキャストタイプのトランザクションの内のいずれか1つであ
    ることを、前記相互接続ファブリックに示す、SoC。
  89. 請求項75から88のいずれか一項に記載のSoCであって、前記トランザクションは
    、一意的なアドレスを備え、前記一意的なアドレスは、前記相互接続ファブリックによっ
    て、
    (a)前記1以上の宛先IPエージェントの論理識別子、
    (b)前記1以上の宛先IPエージェントの論理識別子を指定する一意的なコード、およ
    び、
    (c)前記1以上の宛先IPエージェントの論理識別子を表すビットのベクトル、
    の内の1つに解決される、SoC。
  90. 請求項75から89のいずれか一項に記載のSoCであって、前記トランザクションは
    、ブロードキャストであり、前記相互接続ファブリックは、前記SoC上の前記複数のI
    Pエージェントの各々へ前記トランザクションをルーティングして配信するように、前記
    ルーティング決定を行う、SoC。
  91. 請求項75から89のいずれか一項に記載のSoCであって、前記トランザクションは
    、マルチキャストであり、前記相互接続ファブリックは、前記SoC上の前記複数のIP
    エージェントの内の2以上へ前記トランザクションをルーティングして配信するように、
    前記ルーティング決定を行う、SoC。
  92. 請求項75から89のいずれか一項に記載のSoCであって、前記トランザクションは
    、読み出しマルチキャストトランザクションであり、前記トランザクションは、1つの宛
    先IPエージェントに配信されるが、前記相互接続ファブリックは、前記SoC上の前記
    複数のIPエージェントの内の2以上へ応答トランザクションをルーティングして配信す
    る、SoC。
  93. 請求項75から89のいずれか一項に記載のSoCであって、前記トランザクションは
    、エニーキャストであり、前記相互接続ファブリックは、前記トランザクションの前記1
    以上の宛先IPエージェントを選択する、SoC。
  94. 請求項75から93のいずれか一項に記載のSoCであって、前記相互接続ファブリッ
    クは、さらに、2以上の独立したトランザクションを同じストリームを介してル-ティン
    グするように、前記ルーティング決定を行うよう構成されており、前記2以上の独立した
    トランザクションは各々、前記2以上の独立したトランザクションが前記同じストリーム
    を介してルーティングされうるように、前記2以上の独立したトランザクションの各々の
    ビートを前記相互接続ファブリックが追跡することを可能にする一意的なトランザクショ
    ン識別子を割り当てられる、SoC。
  95. 請求項94に記載のSoCであって、前記同じストリームを介してルーティングされた
    前記2以上の独立したトランザクションは、前記同じストリームを指定する共通の制御情
    報を共有するが、前記2以上の独立したトランザクションの各々の前記トランザクション
    識別子は一意的である、SoC。
  96. システムオンチップ(SoC)であって、
    相互接続ファブリックと、
    前記相互接続ファブリックによって相互接続されている複数のIPエージェントであっ
    て、前記IPエージェントの間で前記相互接続ファブリックを介して伝送されるトランザ
    クショントラフィックの送信元および宛先になるよう構成されている、複数のIPエージ
    ェントと、
    を備え、
    第1IPエージェントは、前記SoC上の前記複数のIPエージェントの中の1以上の
    宛先IPエージェントを特定するソースベースルーティング(SBR)トランザクション
    を生成して送信するよう構成されており、
    前記相互接続ファブリックは、前記SoC上の前記複数のIPエージェントの中の前記
    1以上の宛先IPエージェントへ前記相互接続ファブリックを介して前記SBRトランザ
    クションをどのようにルーティングして配信するかについてルーティング決定を行うよう
    構成されている、SoC。
  97. 請求項96に記載のSoCであって、前記SBRトランザクションは、前記SoC上の
    前記1以上の宛先IPエージェントを論理的に識別する識別子を前記トランザクションの
    ヘッダ内に提供することによって、前記1以上の宛先IPエージェントを特定する、So
    C。
  98. 請求項96または97に記載のSoCであって、前記SBRトランザクションは、一意
    的なコードを前記トランザクションのヘッダ内に提供することによって、前記1以上の宛
    先IPエージェントを特定し、前記一意的なコードは、前記SoC上の前記1以上の宛先
    IPエージェントを識別するために、前記相互接続ファブリック内で解決される、SoC
  99. 請求項96から98のいずれか一項に記載のSoCであって、前記SBRトランザクシ
    ョンは、アドレスを前記トランザクションのヘッダ内に提供することによって、前記1以
    上の宛先IPエージェントを特定し、前記アドレスは、前記SoC上の2以上の宛先IP
    エージェントを識別するために、前記相互接続ファブリックによって解決される、SoC
  100. 請求項96から99のいずれか一項に記載のSoCであって、前記相互接続ファブリッ
    クは、前記相互接続ファブリックの2つのノードの間で共有相互接続を介して前記SBR
    トランザクションの1つのインスタンス化を統合して送信することによって、前記相互接
    続ファブリックを介して送信されるトランザクショントラフィックを削減するように、前
    記ルーティング決定を行うよう構成されており、前記共有相互接続は、配信パスに沿って
    2以上の宛先IPエージェントに至る、SoC。
  101. 請求項96から100のいずれか一項に記載のSoCであって、前記相互接続ファブリ
    ックは、前記SBRトランザクションに応答して生成された複数の受信済みの応答トラン
    ザクションを統合して、前記相互接続ファブリックのノードの間で共有相互接続を介して
    前記応答トランザクションの1つのインスタンス化を転送することによって、前記相互接
    続ファブリックを介して送信されるトランザクショントラフィックを削減するように、前
    記ルーティング決定を行うよう構成されており、前記共有相互接続は、応答配信パスに沿
    って前記応答トランザクションの目標に至る、SoC。
  102. 請求項96から101のいずれか一項に記載のSoCであって、前記相互接続ファブリ
    ックは、さらに、共有相互接続に関連付けられている複数のストリーム上で複数のトラン
    ザクションの伝送をインターリーブするように、前記ルーティング決定を行うよう構成さ
    れており、(a)前記複数のストリームの各々は、仮想チャネルおよびトランザクション
    タイプの一意的な組み合わせによって規定され、(b)同じトランザクションの1以上の
    部分が、同じストリームを介して伝送される、SoC。
  103. 請求項96から102のいずれか一項に記載のSoCであって、前記相互接続ファブリ
    ックは、さらに、共有相互接続に関連付けられている複数のストリームの中の同じストリ
    ームを介して2以上の独立したトランザクションをルーティングするように、前記ルーテ
    ィング決定を行うよう構成されており、前記複数のストリームの各々は、仮想チャネルお
    よびトランザクションタイプの一意的な組み合わせによって規定される、SoC。
  104. 請求項96から103のいずれか一項に記載のSoCであって、前記相互接続ファブリ
    ックは、共通の論理識別子を共有する重複物理リソースを備え、前記ルーティング決定は
    、(a)前記重複物理リソースの1つを選択すること、(b)前記重複物理リソースの前
    記選択された1つを用いて前記トランザクションをルーティングすること、とを含む、S
    oC。
  105. 請求項104に記載のSoCであって、前記重複物理リソースは、
    (a)前記重複物理リソースの利用可能性、
    (b)前記重複物理リソースの間の相対的な混在状態、
    (c)前記重複物理リソースの間の負荷バランシング、
    (d)前記重複物理リソースの間のランダム選択、
    (e)前記重複物理リソースの間の最長時間未使用選択、
    (f)前記重複物理リソースの間の相対的な電力消費、
    (g)前記重複物理リソースの間で選択を行うためのハッシュ関数の利用、または、
    (h)(a)~(g)の任意の組み合わせ、の内の1つを含む、SoC。
  106. 請求項96から105のいずれか一項に記載のSoCであって、前記相互接続ファブリ
    ックは、複数のノードを備え、前記複数のノードの各々は、前記SBRトランザクション
    内で指定された1以上のアドレスを前記1以上の宛先IPエージェントの1以上の論理識
    別子に解決するためのルックアップテーブルを備える、SoC。
  107. 請求項96から106のいずれか一項に記載のSoCであって、前記相互接続ファブリ
    ックは、複数のノードを備え、前記複数のノードの各々は、前記1以上の宛先IPエージ
    ェントの論理識別子を、前記トランザクションをルーティングするために用いられる1以
    上のポート識別子に変換するためのテーブルを備える、SoC。
  108. 請求項96から107のいずれか一項に記載のSoCであって、前記相互接続ファブリ
    ックは、さらに、2以上の独立したトランザクションを同じストリームを介してル-ティ
    ングするように、前記ルーティング決定を行うよう構成されており、前記2以上の独立し
    たトランザクションは各々、前記2以上の独立したトランザクションが前記同じストリー
    ムを介してルーティングされうるように、前記2以上の独立したトランザクションの各々
    のビートを前記相互接続ファブリックが追跡することを可能にする一意的なトランザクシ
    ョン識別子を割り当てられる、SoC。
  109. 請求項108に記載のSoCであって、前記同じストリームを介してルーティングされ
    た前記2以上の独立したトランザクションは、前記同じストリームを指定する共通の制御
    情報を共有するが、前記2以上の独立したトランザクションの各々の前記トランザクショ
    ン識別子は一意的である、SoC。
JP2024039915A 2018-03-30 2024-03-14 相互接続に関連付けられている仮想チャネルを介するトランザクションの部分のアービトレーション Pending JP2024079720A (ja)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201862650589P 2018-03-30 2018-03-30
US62/650,589 2018-03-30
US201962800897P 2019-02-04 2019-02-04
US62/800,897 2019-02-04
PCT/US2019/023001 WO2019190827A1 (en) 2018-03-30 2019-03-19 Arbitrating portions of transactions over virtual channels associated with an interconnect
JP2020552300A JP7457654B2 (ja) 2018-03-30 2019-03-19 システムオンチップ上の相互接続ファブリック内でソースベースルーティングを実施するための手順

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2020552300A Division JP7457654B2 (ja) 2018-03-30 2019-03-19 システムオンチップ上の相互接続ファブリック内でソースベースルーティングを実施するための手順

Publications (1)

Publication Number Publication Date
JP2024079720A true JP2024079720A (ja) 2024-06-11

Family

ID=68054357

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020552300A Active JP7457654B2 (ja) 2018-03-30 2019-03-19 システムオンチップ上の相互接続ファブリック内でソースベースルーティングを実施するための手順
JP2024039915A Pending JP2024079720A (ja) 2018-03-30 2024-03-14 相互接続に関連付けられている仮想チャネルを介するトランザクションの部分のアービトレーション

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2020552300A Active JP7457654B2 (ja) 2018-03-30 2019-03-19 システムオンチップ上の相互接続ファブリック内でソースベースルーティングを実施するための手順

Country Status (6)

Country Link
US (5) US10853282B2 (ja)
EP (2) EP4216062A1 (ja)
JP (2) JP7457654B2 (ja)
KR (1) KR20200135780A (ja)
IL (1) IL277566A (ja)
WO (1) WO2019190827A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10243848B2 (en) 2015-06-27 2019-03-26 Nicira, Inc. Provisioning logical entities in a multi-datacenter environment
KR20200135780A (ko) 2018-03-30 2020-12-03 프로비노 테크놀로지스, 아이엔씨. 인터커넥트와 연관된 가상 채널을 통한 트랜잭션의 부분들 중재하기
US20190302861A1 (en) 2018-03-30 2019-10-03 Provino Technologies, Inc. Protocol level control for system on a chip (soc) agent reset and power management
US11088902B1 (en) 2020-04-06 2021-08-10 Vmware, Inc. Synchronization of logical network state between global and local managers
US11777793B2 (en) 2020-04-06 2023-10-03 Vmware, Inc. Location criteria for security groups
US11303557B2 (en) 2020-04-06 2022-04-12 Vmware, Inc. Tunnel endpoint group records for inter-datacenter traffic
US11882000B2 (en) 2020-04-06 2024-01-23 VMware LLC Network management system for federated multi-site logical network
US11115301B1 (en) 2020-04-06 2021-09-07 Vmware, Inc. Presenting realized state of multi-site logical network
US11392527B2 (en) * 2020-08-31 2022-07-19 Micron Technology, Inc. Ordered delivery of data packets based on type of path information in each packet
US11658922B2 (en) 2020-08-31 2023-05-23 Micron Technology, Inc. Optional path ordering in packet-based network
US20220103430A1 (en) 2020-09-28 2022-03-31 Vmware, Inc. Defining logical networks for deploying applications
US11675722B2 (en) * 2021-04-16 2023-06-13 Apple Inc. Multiple independent on-chip interconnect
CN113517942B (zh) * 2021-07-14 2022-09-02 重庆邮电大学 面向应急通信的多通道数字短波发射机SoC的发射基带系统
US11573918B1 (en) * 2021-07-20 2023-02-07 Arm Limited Methods and apparatus for communicating between node devices
US20220114131A1 (en) * 2021-12-22 2022-04-14 Intel Corporation System, method, apparatus and architecture for dynamically configuring device fabrics

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6850521B1 (en) 1999-03-17 2005-02-01 Broadcom Corporation Network switch
US6604159B1 (en) * 1999-08-12 2003-08-05 Mips Technologies, Inc. Data release to reduce latency in on-chip system bus
US6829666B1 (en) * 1999-09-29 2004-12-07 Silicon Graphics, Incorporated Modular computing architecture having common communication interface
US6654896B1 (en) 2000-05-16 2003-11-25 Hewlett-Packard Development Company, L.P. Handling of multiple compliant and non-compliant wake-up sources in a computer system
US6678767B1 (en) * 2000-10-06 2004-01-13 Broadcom Corp Bus sampling on one edge of a clock signal and driving on another edge
TW513635B (en) * 2000-11-24 2002-12-11 Ibm Method and structure for variable-length frame support in a shared memory switch
US7653763B2 (en) * 2001-02-28 2010-01-26 Cavium Networks, Inc. Subsystem boot and peripheral data transfer architecture for a subsystem of a system-on- chip
US7174467B1 (en) 2001-07-18 2007-02-06 Advanced Micro Devices, Inc. Message based power management in a multi-processor system
US7577857B1 (en) 2001-08-29 2009-08-18 3Com Corporation High speed network interface with automatic power management with auto-negotiation
US6976134B1 (en) 2001-09-28 2005-12-13 Emc Corporation Pooling and provisioning storage resources in a storage network
US7664018B2 (en) * 2002-07-02 2010-02-16 Emulex Design & Manufacturing Corporation Methods and apparatus for switching fibre channel arbitrated loop devices
US7283944B2 (en) * 2003-12-15 2007-10-16 Springsoft, Inc. Circuit simulation bus transaction analysis
US7260688B1 (en) * 2004-04-15 2007-08-21 Xilinx, Inc. Method and apparatus for controlling access to memory circuitry
US7500066B2 (en) * 2005-04-30 2009-03-03 Tellabs Operations, Inc. Method and apparatus for sharing instruction memory among a plurality of processors
KR100653087B1 (ko) 2005-10-17 2006-12-01 삼성전자주식회사 AXI가 적용된 NoC 시스템 및 그 인터리빙 방법
US20070130344A1 (en) 2005-11-14 2007-06-07 Pepper Timothy C Using load balancing to assign paths to hosts in a network
EP1785811B1 (en) 2005-11-14 2018-12-05 Texas Instruments Incorporated Memory information transfer power management
US7912075B1 (en) * 2006-05-26 2011-03-22 Avaya Inc. Mechanisms and algorithms for arbitrating between and synchronizing state of duplicated media processing components
US20110022754A1 (en) * 2007-12-06 2011-01-27 Technion Research & Development Foundation Ltd Bus enhanced network on chip
US20090245257A1 (en) 2008-04-01 2009-10-01 International Business Machines Corporation Network On Chip
WO2010022767A1 (en) 2008-08-26 2010-03-04 Telefonaktiebolaget Lm Ericsson (Publ) Packet forwarding in a network
WO2010069398A1 (en) * 2008-12-19 2010-06-24 Telefonaktiebolaget L M Ericsson (Publ) Resolving contention between data bursts
US20100158005A1 (en) * 2008-12-23 2010-06-24 Suvhasis Mukhopadhyay System-On-a-Chip and Multi-Chip Systems Supporting Advanced Telecommunication Functions
US8918488B2 (en) 2009-02-04 2014-12-23 Citrix Systems, Inc. Methods and systems for automated management of virtual resources in a cloud computing environment
US9514074B2 (en) * 2009-02-13 2016-12-06 The Regents Of The University Of Michigan Single cycle arbitration within an interconnect
US8448001B1 (en) 2009-03-02 2013-05-21 Marvell International Ltd. System having a first device and second device in which the main power management module is configured to selectively supply a power and clock signal to change the power state of each device independently of the other device
WO2010103670A1 (en) 2009-03-12 2010-09-16 Hitachi, Ltd. Storage apparatus and method for controlling the same
WO2010137572A1 (ja) 2009-05-25 2010-12-02 日本電気株式会社 ネットワークオンチップとネットワークルーティング方法とシステム
US8831666B2 (en) 2009-06-30 2014-09-09 Intel Corporation Link power savings with state retention
CN101651625B (zh) 2009-09-03 2011-09-21 中兴通讯股份有限公司 多业务恢复的选路装置及选路方法
US8782456B2 (en) 2010-06-01 2014-07-15 Intel Corporation Dynamic and idle power reduction sequence using recombinant clock and power gating
US8850250B2 (en) 2010-06-01 2014-09-30 Intel Corporation Integration of processor and input/output hub
US8904115B2 (en) * 2010-09-28 2014-12-02 Texas Instruments Incorporated Cache with multiple access pipelines
KR101762779B1 (ko) * 2011-08-22 2017-07-28 인텔 코포레이션 동적으로 선택 가능한 중복 공유된 링크 물리적 경로들을 사용하여 개방형 코어 프로토콜 기반 상호 접속 네트워크들에서 데이터 처리량 개선을 위한 방법
US8711867B2 (en) * 2011-08-26 2014-04-29 Sonics, Inc. Credit flow control scheme in a router with flexible link widths utilizing minimal storage
US8868941B2 (en) 2011-09-19 2014-10-21 Sonics, Inc. Apparatus and methods for an interconnect power manager
US8711875B2 (en) 2011-09-29 2014-04-29 Intel Corporation Aggregating completion messages in a sideband interface
US8713234B2 (en) * 2011-09-29 2014-04-29 Intel Corporation Supporting multiple channels of a single interface
CN103842929B8 (zh) 2011-09-30 2017-05-10 英特尔公司 在管芯上系统结构中管理边带段
US9053251B2 (en) 2011-11-29 2015-06-09 Intel Corporation Providing a sideband message interface for system on a chip (SoC)
CN104081722B (zh) 2012-01-13 2018-05-22 英特尔公司 SoC构造中的高效对等通信支持
US8924779B2 (en) 2012-03-30 2014-12-30 Lsi Corporation Proxy responder for handling anomalies in a hardware system
US9436623B2 (en) 2012-09-20 2016-09-06 Intel Corporation Run-time fabric reconfiguration
US9612652B2 (en) 2012-09-29 2017-04-04 Intel Corporation Controlling power consumption by power management link
US9355058B2 (en) 2012-10-22 2016-05-31 Intel Corporation High performance interconnect physical layer
US9258234B1 (en) 2012-12-28 2016-02-09 Juniper Networks, Inc. Dynamically adjusting liveliness detection intervals for periodic network communications
US9223668B2 (en) 2013-03-13 2015-12-29 Intel Corporation Method and apparatus to trigger and trace on-chip system fabric transactions within the primary scalable fabric
US9471521B2 (en) * 2013-05-15 2016-10-18 Stmicroelectronics S.R.L. Communication system for interfacing a plurality of transmission circuits with an interconnection network, and corresponding integrated circuit
US20150026494A1 (en) 2013-07-19 2015-01-22 Sonics, Inc. Intelligent mesochronous synchronizer
US9473388B2 (en) * 2013-08-07 2016-10-18 Netspeed Systems Supporting multicast in NOC interconnect
US20150199134A1 (en) 2014-01-10 2015-07-16 Qualcomm Incorporated System and method for resolving dram page conflicts based on memory access patterns
JP5847887B2 (ja) 2014-06-17 2016-01-27 株式会社東芝 オンチップルータ及びそれを用いたマルチコアシステム
US9742630B2 (en) * 2014-09-22 2017-08-22 Netspeed Systems Configurable router for a network on chip (NoC)
US9727114B2 (en) 2014-09-25 2017-08-08 Telefonaktiebolaget L M Ericsson (Publ) HW-controlled power domains with automatic power-on request
US10078361B2 (en) 2014-10-08 2018-09-18 Apple Inc. Methods and apparatus for running and booting an inter-processor communication link between independently operable processors
TWI536267B (zh) 2014-11-07 2016-06-01 瑞昱半導體股份有限公司 應用於操作模式有限狀態機的控制方法以及電腦可讀媒體
US10210120B2 (en) * 2015-03-26 2019-02-19 Intel Corporation Method, apparatus and system to implement secondary bus functionality via a reconfigurable virtual switch
GB2537855B (en) 2015-04-28 2018-10-24 Advanced Risc Mach Ltd Controlling transitions of devices between normal state and quiescent state
US10157160B2 (en) 2015-06-04 2018-12-18 Intel Corporation Handling a partition reset in a multi-root system
US9733689B2 (en) 2015-06-27 2017-08-15 Intel Corporation Hardware apparatuses and methods to perform transactional power management
US10353747B2 (en) * 2015-07-13 2019-07-16 Futurewei Technologies, Inc. Shared memory controller and method of using same
US10209734B2 (en) 2016-01-25 2019-02-19 Samsung Electronics Co., Ltd. Semiconductor device, semiconductor system, and method of operating the semiconductor device
KR102497804B1 (ko) 2016-04-01 2023-02-10 한국전자통신연구원 듀얼 스위칭 네트워크 모드들에서 네트워킹 가능한 온칩 네트워크 장치 및 그것의 동작 방법
US10133341B2 (en) 2016-06-06 2018-11-20 Arm Limited Delegating component power control
US10452124B2 (en) 2016-09-12 2019-10-22 Netspeed Systems, Inc. Systems and methods for facilitating low power on a network-on-chip
US10223128B2 (en) 2016-09-23 2019-03-05 Apple Inc. Booting and power management
US10775871B2 (en) 2016-11-10 2020-09-15 Apple Inc. Methods and apparatus for providing individualized power control for peripheral sub-systems
US10725955B2 (en) 2017-12-08 2020-07-28 Arm Limited Power control of inter-domain transaction bridge
US10642341B2 (en) 2018-03-23 2020-05-05 Juniper Networks, Inc. Selective modification of power states based on conditions
US10739836B2 (en) 2018-03-27 2020-08-11 Intel Corporation System, apparatus and method for handshaking protocol for low power state transitions
KR20200135780A (ko) 2018-03-30 2020-12-03 프로비노 테크놀로지스, 아이엔씨. 인터커넥트와 연관된 가상 채널을 통한 트랜잭션의 부분들 중재하기
US20190302861A1 (en) 2018-03-30 2019-10-03 Provino Technologies, Inc. Protocol level control for system on a chip (soc) agent reset and power management
US11294850B2 (en) 2019-03-29 2022-04-05 Intel Corporation System, apparatus and method for increasing bandwidth of edge-located agents of an integrated circuit

Also Published As

Publication number Publication date
US10853282B2 (en) 2020-12-01
KR20200135780A (ko) 2020-12-03
US20190303325A1 (en) 2019-10-03
JP2021519464A (ja) 2021-08-10
US11640362B2 (en) 2023-05-02
WO2019190827A1 (en) 2019-10-03
US10838891B2 (en) 2020-11-17
IL277566A (en) 2020-11-30
US11003604B2 (en) 2021-05-11
US20190303320A1 (en) 2019-10-03
EP4216062A1 (en) 2023-07-26
EP3776231B1 (en) 2023-05-03
US20210294762A1 (en) 2021-09-23
US20190303217A1 (en) 2019-10-03
US10585825B2 (en) 2020-03-10
JP7457654B2 (ja) 2024-03-28
EP3776231A1 (en) 2021-02-17
US20190303326A1 (en) 2019-10-03
EP3776231A4 (en) 2022-01-26

Similar Documents

Publication Publication Date Title
JP2024079720A (ja) 相互接続に関連付けられている仮想チャネルを介するトランザクションの部分のアービトレーション
US9742630B2 (en) Configurable router for a network on chip (NoC)
US7643477B2 (en) Buffering data packets according to multiple flow control schemes
US6947433B2 (en) System and method for implementing source based and egress based virtual networks in an interconnection network
US7773616B2 (en) System and method for communicating on a richly connected multi-processor computer system using a pool of buffers for dynamic association with a virtual channel
CN103684961A (zh) 自动构建无死锁互连
JP2016503594A (ja) インターコネクトにおける不均一なチャネル容量
JPH10164096A (ja) マルチキャスト・パケット・アクセス調停方法
US7773618B2 (en) System and method for preventing deadlock in richly-connected multi-processor computer system using dynamic assignment of virtual channels
US20180159786A1 (en) Interface virtualization and fast path for network on chip
US20060101178A1 (en) Arbitration in a multi-protocol environment
JP4255833B2 (ja) コンピュータ・システムの入出力ノードにおけるタグ付けおよび調停メカニズム
US9185026B2 (en) Tagging and synchronization for fairness in NOC interconnects
US5883895A (en) Arbitration ring with automatic sizing for a partially populated switching network
Kranich et al. NoC switch with credit based guaranteed service support qualified for GALS systems
JP2005505855A (ja) コンピュータ・システムの入出力ノード
US7773617B2 (en) System and method for arbitration for virtual channels to prevent livelock in a richly-connected multi-processor computer system
CN117135107B (zh) 一种网络通信拓扑系统、路由方法、设备及介质
WO2022160307A1 (zh) 一种路由器及片上系统
US20230370392A1 (en) Network-on-chip architecture for handling different data sizes
WO2008057821A2 (en) System and method for preventing deadlock in richly-connected multi-processor computer system
Abts et al. Scalable Switch Microarchitecture
Balfour et al. EE382C Project

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240326

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20240326