IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 日本テキサス・インスツルメンツ株式会社の特許一覧 ▶ テキサス インスツルメンツ インコーポレイテッドの特許一覧

特開2024-123185周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC)
<>
  • 特開-周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC) 図1
  • 特開-周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC) 図2
  • 特開-周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC) 図3
  • 特開-周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC) 図4
  • 特開-周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC) 図5
  • 特開-周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC) 図6A
  • 特開-周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC) 図6B
  • 特開-周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC) 図7A
  • 特開-周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC) 図7B
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024123185
(43)【公開日】2024-09-10
(54)【発明の名称】周辺機器相互接続(PCI)バックプレーン接続性システムオンチップ(SoC)
(51)【国際特許分類】
   G06F 13/36 20060101AFI20240903BHJP
   G06F 13/14 20060101ALI20240903BHJP
   G06F 13/42 20060101ALI20240903BHJP
【FI】
G06F13/36 310E
G06F13/14 320H
G06F13/42 310
【審査請求】有
【請求項の数】20
【出願形態】OL
(21)【出願番号】P 2024101363
(22)【出願日】2024-06-24
(62)【分割の表示】P 2021533736の分割
【原出願日】2019-12-13
(31)【優先権主張番号】16/221,364
(32)【優先日】2018-12-14
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】390020248
【氏名又は名称】日本テキサス・インスツルメンツ合同会社
(71)【出願人】
【識別番号】507107291
【氏名又は名称】テキサス インスツルメンツ インコーポレイテッド
(74)【上記1名の代理人】
【識別番号】230129078
【弁護士】
【氏名又は名称】佐藤 仁
(72)【発明者】
【氏名】ジェイソン エイ ティー ジョーンズ
(72)【発明者】
【氏名】スリラマクリシュナン ゴヴィンダラジャン
(72)【発明者】
【氏名】ミヒル ナレンドラ モディ
(72)【発明者】
【氏名】キション ヴィジャイ アブラハム イスラエル ヴィジャイポンラジ
(72)【発明者】
【氏名】ブラッドリー ダグラス コブ
(72)【発明者】
【氏名】サナンド プラサド
(72)【発明者】
【氏名】グレゴリー レイモンド シュルツ
(72)【発明者】
【氏名】マーティン ジェフェリー アンブローズ
(72)【発明者】
【氏名】ジャヤント サクール
(57)【要約】      (修正有)
【課題】メモリに対するアクセスを制限するためのSoCの能力をサポートする費用効果の高いSoC間PCI通信デバイスを提供するPCIバックプレーン集積回路(IC)を提供する。
【解決手段】システム(100)において、集積回路(120)は、相互接続通信バス(130)と、相互接続通信バス(130)に結合される周辺機器相互接続(PCI)多機能エンドポイント(MFN-EP)(122、124、126、128)と、を含む。各PCI MFN-EP(122、124、126、128)は、多重化デバイス、第1のアドレス変換ユニット(ATU)及び少なくとも1つのPCI機能回路を含む。各PCI機能回路は、別のATU及びベースアドレスレジスタ(BAR)を含む。
【選択図】図1
【特許請求の範囲】
【請求項1】
集積回路であって、
相互接続通信バスと、
前記相互接続通信バスに結合される周辺機器相互接続(PCI)多機能エンドポイント(MFN-EP)と、
を含み、各MFN-EPが
前記集積回路の内部のアドレスをPCIアドレスに変換するように構成される出力アドレス変換ユニット(ATU)と、
少なくとも1つのPCI機能回路と、
を含み、前記少なくとも1つのPCI機能回路が、前記相互接続通信バスを介して前記ICの他の前記MFN-EPの一つに通信を送るように構成され、前記少なくとも1つのPCI機能回路が、PCIアドレスを前記集積回路の内部のアドレスに変換するように構成される入力ATUを含む、集積回路。
【請求項2】
請求項1に記載の集積回路であって、
前記MFN-EPの外部であり前記相互接続通信バスに結合されるPCI機能回路を含む、集積回路。
【請求項3】
請求項2に記載の集積回路であって、
前記MFN-EPの外部の前記PCI機能回路がアクセラレータ処理機能である集積回路。
【請求項4】
請求項1に記載の集積回路であって、
前記相互接続通信バスに結合されるプロセッサを更に含む、集積回路。
【請求項5】
請求項4に記載の集積回路であって、
前記プロセッサが命令を実行するように構成され、前記命令が、前記出力ATU及び前記入力ATUに値を書き込むことによって、前記MFN-EPの前記出力ATUと、前記MFN-EPの前記少なくとも1つのPCI機能回路の前記入力ATUとを前記プロセッサに構成させる、集積回路。
【請求項6】
請求項1に記載の集積回路であって、
各MFN-EPにおける前記少なくとも1つのPCI機能回路がベースアドレスレジスタ(BAR)を含む、集積回路。
【請求項7】
請求項1に記載の集積回路であって、
前記集積回路が4個のMFN-EPを含む、集積回路。
【請求項8】
請求項1に記載の集積回路であって、
各MFN-EPの前記出力ATUが16個の変換レジスタを含む、集積回路。
【請求項9】
請求項1に記載の集積回路であって、
前記MFN-EPが各々、少なくとも1GBの大きさの外部PCIアドレス空間と通信するように構成される、集積回路。
【請求項10】
異なる周辺機器相互接続ルートコンプレックス(PCI RC)間で通信する方法であって、前記方法が、
バックプレーン集積回路(IC)のプロセッサによって、メモリ領域構成定義を読み取ることであって、各メモリ領域構成定義が、メモリ領域のサイズを識別し、前記メモリ領域が位置する前記バックプレーンICに通信可能に結合されるICを識別し、前記メモリ領域へのアクセスを許可された前記バックプレーンICに通信可能に結合される別のICを識別し、各ICが、前記バックプレーンICの異なる多機能エンドポイント(MFN-EP)に通信可能に結合されること、
前記メモリ領域の1つにアクセス可能な各ICについて、前記プロセッサによって前記メモリ領域の前記サイズを、前記ICに結合される前記MFN-EPの周辺機器相互接続(PCI)機能回路のベースアドレスレジスタ(BAR)に書き込むこと、
メモリ領域が位置する各ICについて、前記バックプレーンICに対してローカルであるローカルアドレスと、前記ICのPCI RCによって管理されるアドレスとを用いて、前記ICに結合される前記MFN-EP内に、出力アドレス変換ユニット(ATU)の変換レジスタを、前記プロセッサによって構成すること、及び
前記メモリ領域の1つにアクセス可能な各ICについて、前記バックプレーンICに対してローカルなローカルアドレスを用いて、前記PCI機能回路における入力ATUの変換レジスタを、前記ICに結合される前記MFN-EP内に、前記プロセッサによって構成することであって、前記入力ATUの前記変換レジスタが前記MFN-EPの前記PCI機能回路の前記BARに関連付けられていること、
を含む、方法。
【請求項11】
請求項10に記載の方法であって、
メモリ領域にアクセス可能な各ICについて、前記ICのPCI RCによって管理されるPCIアドレスを、前記ICに結合される前記MFN-EPによって受け取ること、及び前記ICに結合される前記MFN-EPの前記PCI機能回路の前記BARの中に前記PCIアドレスを構成することを更に含む、方法。
【請求項12】
請求項10に記載の方法であって、
MFN-EPによって、PCIトランザクションを受け取ることであって、前記MFN-EPが前記MFN-EPのPCI機能回路を指定し、前記MFN-EPに結合される前記ICの前記PCI RCによって管理されるPCIアドレス空間にPCIアドレスを含み、前記PCI機能回路が、メモリ領域が位置し、前記MFN-EPに結合された前記ICがアクセスを許可されるICに関連付けられること、
前記PCI機能回路によって、前記PCIトランザクションにおける前記PCIアドレスに基づいて、前記PCI機能回路のBARを検索すること、
前記PCI機能回路によって、前記PCI機能回路の前記検索されたBARに関連する前記変換レジスタを読み出すこと、
前記PCI機能回路によって、前記変換レジスタ及び前記PCIトランザクションにおける前記PCIアドレスに基づいて、ローカルアドレスを決定すること、
前記PCI機能回路によって、前記PCIトランザクションを前記バックプレーンICの相互接続通信バスを介して前記ローカルアドレスに送信すること、
前記相互接続通信バスによって、前記PCIトランザクションを、前記メモリ領域が位置する前記ICに結合される前記MFN-EPにルーティングすること、及び
前記メモリ領域が位置する前記ICに結合される前記MFN-EPによって、前記PCIトランザクションを、前記メモリ領域が位置する前記ICの前記PCI RCに送信すること、
を含む、方法。
【請求項13】
請求項10に記載の方法であって、
前記バックプレーンICが4個のMFN-EPを含む、方法。
【請求項14】
集積回路であって、
相互接続通信バスと、
前記相互接続通信バスに結合される周辺機器相互接続(PCI)多機能エンドポイント(MFN-EP)と、
を含み、
各PCI MFN-EPが、多重化デバイス、第1のアドレス変換ユニット(ATU)、及び少なくとも1つのPCI機能回路を含み、
各PCI機能回路が、別のATU及びベースアドレスレジスタ(BAR)を含む、集積回路。
【請求項15】
請求項14に記載の集積回路であって、
前記MFN-EPの外部にあり、前記相互接続通信バスに接続されるPCI機能回路を含む、集積回路。
【請求項16】
請求項14に記載の集積回路であって、
前記MFN-EPの外部の前記PCI機能回路がアクセラレータ処理機能である、集積回路。
【請求項17】
請求項14に記載の集積回路であって、
前記相互接続通信バスに結合されるプロセッサを含む、集積回路。
【請求項18】
請求項17に記載の集積回路であって、
前記プロセッサが、前記プロセッサに、前記MFN-EPの前記第1のATU及び前記別のATUを構成させる命令を実行するように構成される、集積回路。
【請求項19】
請求項14に記載の集積回路であって、
前記集積回路が4個のMFN-EPを含む、集積回路。
【請求項20】
請求項14に記載の集積回路であって、
各MFN-EPが3個のPCI機能回路を含む、集積回路。
【発明の詳細な説明】
【技術分野】
【0001】
本願は、周辺機器相互接続(PCI)に関する。
【発明の概要】
【0002】
少なくとも1つの例において、集積回路は、相互接続通信バスと、相互接続通信バスに結合される周辺機器相互接続(PCI)多機能エンドポイント(MFN-EP)とを含む。各MFN-EPは、集積回路の内部にあるアドレスをPCIアドレスに変換するように構成される出力アドレス変換ユニット(ATU)と、少なくとも1つのPCI機能回路とを含み、少なくとも1つのPCI機能回路は、相互接続通信バスを介してICの他のMFN-EPの1つに通信をルーティングするように構成され、少なくとも1つのPCI機能回路は、PCIアドレスを集積回路の内部のアドレスに変換するように構成される入力ATUを含む。
【0003】
少なくとも1つの例において、異なる周辺機器相互接続ルートコンプレックス(PCI RC)間で通信する方法が、メモリ領域構成定義をバックプレーン集積回路(IC)のプロセッサによって読み出すことであって、各メモリ領域構成定義は、メモリ領域のサイズを識別し、メモリ領域が位置するバックプレーンICに通信可能に結合されたICを識別し、メモリ領域へのアクセスが許可されたバックプレーンICに通信可能に結合された別のICを識別し、各ICが、バックプレーンICの異なる多機能エンドポイント(MFN-EP)に通信可能に結合される、読み出すことと、メモリ領域の1つへのアクセスが許可された各ICについて、ICに結合されたMFN-EPの周辺機器相互接続(PCI)機能回路のベースアドレスレジスタ(BAR)に、プロセッサによって、メモリ領域のサイズを書き込むこととを含む。この方法は更に、メモリ領域が位置する各ICについて、バックプレーンICに対してローカルであるローカルアドレスを用い、ICのPCI RCによって管理されるアドレスを用いて、ICに結合されたMFN-EPに、プロセッサによって、出力アドレス変換ユニット(ATU)の変換レジスタを構成することと、メモリ領域の1つに対してアクセスが許可された各ICについて、バックプレーンICに対しローカルであるローカルアドレスを用いて、ICに結合されたMFN-EPのPCI機能回路に、プロセッサによって、入力ATUの変換レジスタを構成することとを更に含み、入力ATUの変換レジスタが、MFN-EPのPCI機能回路のBARに関連付けられている。
【0004】
少なくとも1つの例において、集積回路が、相互接続通信バス及び相互接続通信バスに結合される周辺機器相互接続(PCI)多機能エンドポイント(MFN-EP)を含み、各PCI MFN-EPは、多重化デバイス、第1のアドレス変換ユニット(ATU)、及び少なくとも1つのPCI機能回路を含み、各PCI機能回路は別のATU及びベースアドレスレジスタ(BAR)を含む。
【図面の簡単な説明】
【0005】
図1】種々の例において、周辺機器相互接続(PCI)バックプレーン集積回路(IC)によって相互接続されたシステムオンチップ(SoC)を有するシステムを示す。
【0006】
図2】種々の例におけるPCIバックプレーンICを示す。
【0007】
図3】種々の例におけるベースアドレスレジスタ(BAR)構造を示す。
【0008】
図4】種々の例における入力アドレス変換ユニット(ATU)を示す。
【0009】
図5】種々の例における出力ATUを示す。
【0010】
図6A】種々の例において、PCIバックプレーンICによって相互接続されたSoCを有する別のシステムを示す。
【0011】
図6B】種々の例における別のPCIバックプレーンICを示す。
【0012】
図7A】種々の例において、PCIバックプレーンICを構成する方法のフローチャートを示す。
図7B】種々の例において、PCIバックプレーンICを構成する方法のフローチャートを示す。
【発明を実施するための形態】
【0013】
周辺機器相互接続(PCI)は、コンピューティングデバイスと周辺デバイスとの間の通信を促進するために益々重要となる技術である。PCI Express(PCIe)システムが、シリアル通信インタフェースに依存する初期のPCIシステムの後継であり、1つのシリアルラインがPCIeホストから出力され、1つのシリアルラインがPCIeホストに入力される。PCIルートコンプレックス(RC)が、PCIeホストに代わってトランザクション要求を生成し、PCIアドレス空間を管理し、PCIeホストが用いる内部アドレス指定とPCIアドレス空間との間の変換を行う。こういった変換を達成するために、PCI RCは、PCIeホストの内部アドレスとPCIアドレス空間のアドレスとの間の関係を定義するメモリマップを構築し得る。
【0014】
新興のオートモーティブ応用例は、通信帯域幅が広く、低いレイテンシに依存する複数のシステムオンチップ(SoCs)を含むように設計されている。周辺機器相互接続Express(PCIe)は、これらのSoC間の接続に対して、低レイテンシ及び高スループットの通信を提供する。しかしながら、各SoCの独立したPCIアドレス空間の間の変換において課題が提示される。独立したPCIアドレス空間を備えるSOCを相互接続するための幾つかのアプローチにはスイッチが関与するが、これらの解決策には欠点がある。単純なスイッチは、2つ以上のSoCがPCIバックプレーンを介して相互接続されるときにレイテンシを増大させるカスケード接続を用いる。複雑なスイッチは、カスケード接続が不要であるが、非常に高価になり得る。また、単純なスイッチングソリューション及び複雑なスイッチングソリューションはいずれも、1つのSoCのPCIアドレス空間から別のSoCのPCIアドレス空間に変換するために、非透明ブリッジ(NTB)ポートに依存する。このようなNTBポートの使用は、例えば、SoC2が、SoC1のメモリの事前定義された領域から読み出すことを可能にし、一方で、SoC3が、同じSoC1のメモリの事前定義された領域を読み出すことを禁止する等の、SoC間のメモリアクセスの制限を妨害又は防止する。
【0015】
本明細書では、メモリに対するアクセスを制限するためのSoCの能力をサポートする費用効果の高いSoC間PCI通信デバイスを提供するPCIバックプレーン集積回路(IC)を教示する。PCIバックプレーンICは、SoCホストを、PCI多機能エンドポイント(MFN-EP)における個別の機能としてモデル化する。第1のSoCがPCIバックプレーンICを介して第2のSoCと通信するために、第1のSoCは、第2のSoCをモデル化する第1のMFN-EPの第1のPCI機能回路と通信する。第1のMFN-EPの第1のPCI機能回路は、PCIバックプレーンICの相互接続通信バスを介して第2のMFN-EPと通信し、第2のMFN-EPは、通信を第2のSoCに渡す。第1のSoCがPCIバックプレーンICを介して、第3のSoCと通信するために、第1のSoCは、第3のSoCをモデル化する第1のMFN-EPの第2のPCI機能回路と通信する。第1のMFN-EPの第2のPCI機能回路は、相互接続通信バスを介して第3のMFN-EPと通信し、第3のMFN-EPは、通信を第3のSoCに渡す。第1のSoCが、PCIバックプレーンICを介して、第4のSoCと通信するために、第1のSoCは、第4のSoCをモデル化する第1のMFN-EPの第3のPCI機能回路と通信する。第3のPCI機能回路は、相互接続通信バスを介して第4のMFN-EPと通信し、第4のMFN-EPは通信を第4のSoCに渡す。第2のSoCがPCIバックプレーンICを介して、第1のSoCに通信するために、第2のSoCは、第1のSoCをモデル化する第2のMFN-EPの第1のPCI機能回路と通信する。第2のMFN-EPの第1のPCI機能回路は、相互接続通信バスを介して第1のMFN-EPと通信し、第1のMFN-EPは、通信を第1のSoCに渡す。
【0016】
各MFN-EPはPCI機能回路を含む。各PCI機能回路は、関連するSoCのPCIアドレス空間から、その特定のPCI機能回路によってモデル化されたSoCのPCIアドレス空間にトランザクションを間接的にマッピングするように構成され得る。MFN-EPは、他のSoCからのトランザクションをそのMFN-EPに関連付けられたSoCのPCIアドレス空間にマッピングするための出力アドレス変換ユニット(ATU)を更に含む。これらのマッピングは、PCIバックプレーンICに、SoCの各々によって構成されるような、SoCの各々のPCIメモリ領域に対するアクセスを制限する能力を提供する。
【0017】
この解決策は、低レイテンシ、高スループット、及び透明性を提供する。この透明性により、SoCはメモリ領域に対するアクセスを選択的に制限できる。PCIバックプレーンICは、単一の製造者によって製造される単一のデバイスであるため、自動車での使用のためにはマルチデバイスソリューションより容易に適合され得る。
【0018】
図1において、システム100が、第1のPCIルートコンプレックス(RC)104を有する第1のシステムオンチップ(SoC)102、第2のRC108を有する第2のSoC106、第3のRC112を有する第3のSoC110、第4のRC116を有する第4のSoC114、及び周辺機器相互接続バックプレーン集積回路(PCIバックプレーンIC)120を含む。或る例において、PCIバックプレーンIC120は、第1の多機能エンドポイント(MFN-EP)122、第2のMFN-EP124、第3のMFN-EP126、第4のMFN-EP128、相互接続通信バス130、プロセッサ132、及びメモリ134を含む。MFN-EP122、124、126、128の各々は、通信経路136によって相互接続通信バス130に結合される。第1のRC104は、入力ライン140及び出力ライン142によって第1のMFN-EP122に通信可能に結合される。用語「入力」及び「出力」は、PCIバックプレーンIC120に対して示される。第2のRC108は、入力ライン144及び出力ライン146によって第2のMFN-EP124に通信可能に結合される。第3のRC112は、入力ライン148及び出力ライン150によって第3のMFN-EP126に通信可能に結合される。第4のRC116は、入力ライン152及び出力ライン154によって、第4のMFN-EP128に通信可能に結合される。或る例において、ライン140~154の各々はシリアル通信ラインである。別の例において、ライン140~154の各々は並列導体を含む。
【0019】
幾つかの文脈において、SoC102、106、110、114は、リモートSoC又はリモートホストと呼ばれ得る。或る例において、システム100の1つ又は複数のSoCは、システムオンチップではないプロセッサで置き換えられてもよい。或る例において、PCIバックプレーンIC120は、図示されているような4個のMFN-EPではなく、3個のMFN-EPを有し得る。或る例において、PCIバックプレーンIC120は、図示されているような4個のMFN-EPではなく、5個又はそれ以上のMFN-EPを有し得る。或る例において、システム100は自動車の一部であり得る。例えば、SoC102、106、110、114は、PCIバックプレーンIC120を介して互いに通信する自動車内のリモートプロセッサであり得る。SoC102、106、110、114の1つが、カメラセンサを含み得、自動車のバックアップビデオ機能をサポートし得る。SoC102、106、110、114の1つが、レーダプロセッサを含み得、(例えば、近接警告及び/又は自動運転機能をサポートするために)自動車のレーダ検知及び測距機能性をサポートし得る。
【0020】
これ以降に更に説明するように、MFN-EP122、124、126、128の各々は、リモートSoCをモデル化し、そのモデルを用いて、モデル化するリモートSoCに対して通信ポータルを提供する。例えば、第1のMFN-EP122は、SoC106、110、114の各々をPCI機能回路としてモデル化し、第1のSoC102に、他のSoC106、110、114にアクセスするための通信ポータルを提供する。MFN-EP122、124、126、128によって提供されるSoC102、106、110、114のモデル化は、これ以降に更に説明するように、SoCに対する透明性を促進し、メモリへのアクセスを試みるSoCに基づいてメモリへのアクセスを制限する。この透明性は、例えば、1つ又は複数の特定の他のSoCにそのメモリへのアクセスを許可するが、別の特定のSoCに対してそのメモリへのアクセスを禁止することを望む場合等、幾つかのアプリケーションにおいて望ましいものである。
【0021】
第1のSoC102は、入力ライン140を介して第1のMFN-EP122にトランザクションを送ることによって、第2のSoC106にかかわるトランザクションを完了し得る。ここで、トランザクションは、第2のSoC106に対応する第1のMFN-EP122に埋め込まれたPCI機能回路を識別する。トランザクションは、第1のMFN-EP122によって、第1のMFN-EP122に埋め込まれた適切なPCI機能回路に対して多重化され、そのPCI機能回路は、相互接続通信バス130を介して、第2のMFN-EP124にトランザクションを送信する。その後、第2のMFN-EP124は、出力ライン146を介して、第2のSoC106とのトランザクションを完了する。相互接続通信バス130は、相互接続と呼ばれ得る。幾つかの場合において、トランザクションによって指定されたSoCからトランザクションを発したSoCに応答が返される。例えば、確認応答トークン又は要求されたデータが返され得る。
【0022】
プロセッサ132は、メモリ134にストアされたコンピュータ可読命令を実行する。メモリ134は、命令をストアする非一時的コンピュータ可読記憶媒体を含む。命令は、ソフトウェア及び/又はデータとしてストアされ得る。命令はファームウェアとしてストアされ得る。プロセッサ132は、システム100の初期化の間に、MFN-EP122、124、126、128を構成する。例えば、SoC102、106、110、114によってアクセス可能にされたメモリ領域のサイズの構成、及びメモリマップの構成を管理する。
【0023】
図2は、MFN-EP122、124、126、128の更なる詳細を示す。図2に示される第1のMFN-EP122の構造は、MFN-EP124、126、128の構造を表している。或る例において、MFN-EP122、124、126、128の各々は、同じ知的財産コア(IPコア)からインスタンス化されている。IPコアは、特定用途向け集積回路(ASIC)又はフィールドプログラマブルゲートアレイ(FPGA)を作成する際に用いられるロジック及び/又はデータのブロックである。第1のMFN-EP122は、多重化デバイス170、第1のPCI機能回路172、第2のPCI機能回路174、第3のPCI機能回路176、及び出力アドレス変換ユニット(ATU)178を含む。幾つかの文脈において、PCI機能回路172、174、176は、機能ブロックと呼ばれ得る。
【0024】
PCI機能回路172、174、176は、RC104が呼び出し得るPCI機能に対応する。PCI機能回路172、174、176の各々は、ベースアドレスレジスタ(BAR)及び入力ATUを含む。第1のPCI機能回路172は、BAR180及び入力ATU182を含み、第2のPCI機能回路174は、BAR184及び入力ATU186を含み、第3のPCI機能回路176は、BAR188及び入力ATU190を含む。別の例において、MFN-EP122は2つのPCI機能回路を含む。別の例において、MFN-EP122は、4個又はそれ以上のPCI機能回路を含む。或る例において、PCIバックプレーンIC120の各MFN-EPは、PCIバックプレーンIC120におけるMFN-EPの総数より1つ少ない数のPCI機能回路を含む。第1のPCI機能回路172は、通信経路136-1によって相互接続通信バス130に通信可能に結合される。第2のPCI機能回路174は、通信経路136-2によって相互接続通信バスに通信可能に結合される。第3のPCI機能回路176は、通信経路136-3を介して相互接続通信バスに通信可能に結合される。出力ATU178は、通信経路136-4によって相互接続通信バスに通信可能に結合される。
【0025】
各PCI機能回路172~176は、特定のSoCに関連付けられる(例えば、各PCI機能回路172~176は、特定のSoCをRC104に対してモデル化する)。例えば、第1のPCI機能回路172は、SoC B、例えば、第2のSoC106に関連付けられ、第2のPCI機能回路174は、SoC C、例えば、第3のSoC110に関連付けられ、第3のPCI機能回路176は、SoC D、例えば第4のSoC114に関連付けられる。入力ライン140を介してRC104からMFN-EPによって受け取られたトランザクションは、多重化デバイス170によって解析されて、トランザクションがどのPCI機能回路172~176に向けられているか(及び従って、どのSoCに対してトランザクションが向けられているか)を識別し、PCI機能回路172~176のうちの識別された1つに対してトランザクションを向ける。PCI機能回路172~176は、BAR180、184、188及び入力ATU182、186、190を用いて、受け取ったトランザクションに関連するPCIアドレスを、アドレスオフセットに対して及び指定されたMFN-EPの出力ATUにおけるエントリに対する参照に対してマッピングする。BAR180、184、188及び入力ATU182、186、190の中に構成されたマッピング又は変換の1つに一致するトランザクションのみが、相互接続通信バスを介してPCI機能回路172、174、176によってルーティングされる。従って、SoC102、106、110、114は、PCIバックプレーンIC120によって提供される透明性からの恩恵を受けることができ、特定のSoCに対して、メモリ又はそのメモリの特定の領域に対してマッピングを定義しないことによって、そのメモリへのアクセスを制限する。
【0026】
例えば、第1のRC104によって管理されるPCIアドレス空間内のPCIアドレスを指定するトランザクションが、第1のPCI機能回路172(及び従ってSoC B又は第2のSoC106)に向けられる。第1のPCI機能回路172は、受け取られたトランザクションに関連するPCIアドレスによってBAR180のどれが参照されるかを決定し、BAR180のうちのその1つを用い、入力ATU182に、第2のMFN-EP124の出力ATU178に関連する対応するローカルアドレスを探すためのインデックスを付ける。第1のPCI機能回路172は、相互接続通信バス130を介して第2のMFN-EP124とマスタースレーブ関係を確立し、通信経路136-1を介して相互接続通信バス130に、及び相互接続通信バス130を介して相互接続通信バス130上の第2のMFN-EP124の出力ATU178に、ローカルアドレスとともにトランザクションを送る。或る例において、相互接続通信バス130は、電子クロスバースイッチ又は電子マトリックススイッチであり得、マスタースレーブ関係は、相互接続通信バス130内のスイッチを構成することによって確立され得る。第2のMFN-EP124は、アドレスオフセット及び出力ATU178に対するインデックスを用いて、第2のSoC106の第2のRC108にトランザクションをルーティングするために、第2のRC108によって管理されるPCIアドレス空間内のPCIアドレスを決定する。第2のMFN-EP124はまた、多重化デバイス170を介して、及び出力通信経路146を介して、第2のSoC106の第2のRC108にトランザクションを送る。このようにして、RC104からのトランザクションが、発信元SoCによって、指定されたSoCに送信される。SoC102、106、110、114の間でトランザクションがどのように相互接続されるかについての更なる詳細は、BAR180、184、188の構成の拡張例、入力ATU182、186、190、及び出力ATU178の構成とともに、以下に提供される。
【0027】
図3は、BAR180の1つの更なる詳細を示す。BAR180の1つがここで説明されるが、BAR180の他のBAR、BAR184、及びBAR188は同様の構造を有する。BAR180の或るインスタンスは、メモリ領域サイズパラメータ202及びPCIアドレスパラメータ204を含む。或る例において、BAR180のインスタンスは領域サイズパラメータ202を含み、領域サイズパラメータ202は、システム100の初期化の間にプロセッサ132によって構成され得、BAR180に関連付けられたSoCによってエクスポートされた又はアクセス可能にされたメモリの領域のサイズを含む(BAR180は、PCI機能回路172~176の特定の1つ内に含まれ、特定のPCI機能回路は、SoC102、106、110、114の特定の1つに関連付けられていることに留意する)。或る実施形態において、PCIバックプレーンIC120は、それぞれ最大1GBまでのメモリをアクセス可能にするSoC102、106、110、114をサポートする。或る実施形態において、PCIバックプレーンIC120は、それぞれ最大2GBまでのメモリをアクセス可能にするSoC102、106、110、114をサポートする。或る実施形態において、PCIバックプレーンIC120は、それぞれ最大5GBまでのメモリをアクセス可能にするSoC102、106、110、114をサポートする。或る実施形態において、PCIバックプレーンIC120は、それぞれ最大10GBまでのメモリをアクセス可能にするSoC102、106、110、114をサポートする。或る実施形態において、SoC102、106、110、114の1つが、1つ又は複数の他のSoC102、106、110、114に対してアクセス可能にする1つ又は複数のメモリ領域を含む。SoC102、106、110、114は、最大量より少ないメモリをアクセス可能にし得る。例えば、PCIバックプレーンIC120が、各々最大2GBのメモリをアクセス可能にするSoC102、106、110、114をサポートする場合、これらのSoC102、106、110、114のいずれも、10kBのメモリをアクセス可能にしてもよく、100kBのメモリをアクセス可能にしてもよく、1MBのメモリをアクセス可能にしてもよく、或いは、メモリをアクセス可能にしなくてもよい。
【0028】
或る実施形態において、MFN-EP122、124、126、128は各々、1つ又は複数の領域を含む大きなアウトバウンドメモリ領域である外部PCIアドレス空間と通信するように構成される。或る実施形態において、MFN-EP122、124、126、128は各々、最大1GBのメモリの外部PCIアドレス空間と通信するように構成される。或る実施形態において、MFN-EP122、124、126、128は各々、最大2GBのメモリの外部PCIアドレス空間と通信するように構成される。或る実施形態において、MFN-EP122、124、126、128は各々、最大5GBのメモリの外部PCIアドレス空間と通信するように構成される。或る実施形態において、MFN-EP122、124、126、128は各々、最大10GBのメモリの外部PCIアドレス空間と通信するように構成される。
【0029】
PCIアドレスパラメータ204は、BAR180を含むMFN-EP122、124、126、128が結合されるSoC102、106、110、114のRC104、108、112、116によって管理されるPCIアドレス空間にPCIアドレスを関連づけるように、システム100の初期化の間に構成され得る(BAR180は、PCI機能回路172~176の特定の1つ内に含まれ、PCI機能回路172~176はそれ自体、MFN-EP122、124、126、128の特定の1つ内に含まれること、及びMFN-EP122、124、126、128の特定の1つが、SoC102、106、110、114の特定の1つのRC104、108、112、116に結合されることに留意する)。PCIアドレスは、SoC102、106、110、114のRC104、108、112、116によって、BAR180のBARに提供及びプログラミングされ得る。BAR180を含むMFN-EP122、124、126、128がSoC102、106、110、114に結合される。BAR180、184、188のうちの1つのメモリ領域サイズパラメータ202が、null値又はゼロ値を有する場合、プロセッサ132は、そのBARのPCIアドレスパラメータ204に値を提供することを許可しない可能性がある。一部において、これは、SoC102、106、110、114がそのメモリ空間に対するアクセスを制限する場合の手法の一つである。第1のSoCが、第2のSoCに関連するPCI機能回路のBARのうちのいずれかのメモリ領域サイズパラメータ202に値を提供しない場合、第2のSoCは、第1のSoCのいかなるメモリにもアクセスすることを事実上禁止される。
【0030】
図4は、入力ATU182の更なる詳細を示す。ここでは、入力ATU182が説明されているが、入力ATU186、190は同様の構造を有する。入力ATU182は変換レジスタ210を含む。各変換レジスタ210は、ローカルアドレスパラメータ214を含む。或る例において、変換レジスタ210はBAR識別(identity)も含む。ローカルアドレスパラメータ214は、PCIバックプレーンIC120のローカルアドレスを識別する。ローカルアドレスは、例えば、PCIバックプレーンIC120内等、局地化されたアドレスドメイン内で一意であるアドレスである。ローカルアドレスは、PCIバックプレーンIC120の相互接続通信バス130によって、MFN-EP122、124、126、128の特定の1つに、又はPCIバックプレーンIC120内のPCI機能ブロックに関連付けられ得る。ローカルアドレスパラメータ214は、システム100の初期化の間に、MFN-EP122、124、126、128のPCI機能回路のBAR180のうちの特定のBARを、PCIバックプレーンIC120の対応するローカルアドレスに関連付けるように、プロセッサ132によって構成され得る。或る例において、BAR180の1つは、そのBARのBAR識別を変換レジスタ210のBAR識別に一致させることによって、変換レジスタ210に関連付ける。BAR180のBARは、ハードウェア識別によって、変換レジスタ210に静的に関連付けられ得る。例えば、BAR180の第1のBARが、入力ATU182における第1の変換レジスタ210に関連するように事前定義され得、BAR180の第2のBARが、入力ATU182における第2の変換レジスタ210に関連するように事前定義され得るなどである。
【0031】
図5は出力ATU178の更なる詳細を示す。出力ATU178は変換レジスタ220を含む。各変換レジスタ220は、ローカルアドレスパラメータ222、PCIアドレスパラメータ224、及びサイズパラメータ226を含む。ローカルアドレスパラメータ222及びPCIアドレスパラメータ224は、システム100の初期化の間にプロセッサ132によって構成されて、ローカルアドレスパラメータ222にストアされたローカルアドレスを、PCIアドレスパラメータ224にストアされたPCIアドレス値に関連付け得る。サイズパラメータ226は、システム100の初期化の間にプロセッサ132によって構成されて、出力ATU178に関連付けられたSoC102、106、110、114によってアクセス可能にされたメモリ領域のサイズを識別し得る。
【0032】
或る例において、各PCI機能回路172~176におけるBAR180の数は3である。或る例において、各入力ATU182における変換レジスタ210の数は3である。或る例において、各PCI機能回路172~176におけるBAR180の数は6である。或る例において、各入力ATU182における変換レジスタ210の数は6である。或る例において、各PCI機能回路172~176におけるBAR180の数は、各入力ATU182における変換レジスタ210の数と同じである。或る例において、各出力ATU178における変換レジスタ220の数は、12より多く、96より少ない。或る例において、各出力ATU178における変換レジスタ220の数は16である。或る例において、各出力ATU178における変換レジスタ220の数は32である。或る例において、各出力ATU178における変換レジスタ220の数は少なくとも16である。BAR180の使用、入力ATU182の使用、及び出力ATU178の使用をより明確にするため、拡張された例が下記に提供される。
【0033】
或る例において、PCIバックプレーンIC120のメモリ134は、SoC102、106、110、114がアクセス可能にするメモリ領域及びそれらメモリ領域のサイズを定義するデータを用いて事前に構成される。データはまた、メモリの領域がどのSoC102、106、110、114に対してアクセス可能にされるかを定義する。例として、メモリ134は、第1のSoC102が、25Kバイトのメモリの第1の領域を、第2のSoC106に対して、及び第3のSoC110に対してアクセス可能にし、80Kバイトのメモリの第2の領域を、第4のSoC114に対してアクセス可能にすることを示す構成データをストアする。この例において、メモリ134にストアされた構成データはまた、第4のSoC114が、100Kバイトのメモリの第3の領域を第1のSoC102に対してアクセス可能にし、150Kバイトのメモリの第4の領域を第1のSoC102に対してアクセス可能にし、75Kバイトのメモリの第5の領域を第2のSoC106に対してアクセス可能にし、125Kバイトのメモリの第6の領域を第2のSoC106に対してアクセス可能にすることも示す。
【0034】
変換210及び220を定義することによって、第2のSoCによる第1のSoCにおける特定のメモリ領域へのアクセスが許可され得る。一方、変換210及び220を定義しないことによって、第2のSoCによる第1のSoCにおける特定のメモリ領域に対するアクセスが禁止され得る。MFN-EP122、124、126、128の入力ATU182、186、190の変換210及び出力ATU178の変換220は、SoC102、106、110、114に対する透明性の利点を促進し、他のSoC102、106、110、114によるそれらのメモリ領域に対するアクセスを制御する。
【0035】
或る例において、PCIバックプレーンIC120の電源がオンにされると、PCIバックプレーンIC120とSoC102、106、110、114との間に通信リンクが確立される前に、プロセッサ132は、メモリ134からメモリアクセス許可を読み出し、適切なMFN-EP122、124、126、128の適切なBAR180、184、188においてメモリ領域サイズパラメータ202を構成する。この例において、MFN-EP124、126、128の各々における第1のPCI機能回路172は、第1のSoC102をモデル化するか又は第1のSoC102に関連付けられ、MFN-EP122、124、126の各々における第3のPCI機能回路176は、第4のSoC114をモデル化するか又は第4のSoC114に関連付けられる。上述の構成データの例を考えると、PCIバックプレーンIC120の電源オン初期化の間に、第2のMFN-EP124の第1のPCI機能回路172のBAR180のBARのメモリ領域サイズパラメータ202は25Kバイトの値が割り振られ、第3のMFN-EP126の第1のPCI機能回路172のBAR180の或るBARのメモリ領域サイズパラメータ202は、25Kバイトの値が割り振られ、第4のMFN-EP128の第1のPCI機能回路172のBAR180の或るBARのメモリ領域サイズパラメータ202は、80Kバイトの値が割り振られる。この例を継続すると、第1のMFN-EP122の第3のPCI機能回路176のBAR188の或るBARのメモリ領域サイズパラメータ202は、100Kバイトの値が割り振られ、第1のMFN-EP122の第3のPCI機能回路176のBAR188の別のBARは、150Kバイトの値が割り振られ、第2のMFN-EP124の第3のPCI機能回路176のBAR188の或るBARのメモリ領域サイズパラメータ202は、75Kバイトの値が割り振られ、第2のMFN-EP124の別のBARのメモリ領域サイズパラメータ202は、125Kバイトの値が割り振られる。
【0036】
PCIバックプレーンIC120が初期化時の電源オンを完了した後、第1のSoC102及び/又は第1のRC104は第1のMFN-EP122との通信リンクを確立し、第2のSoC106及び/又は第2のRC108は第2のMFN-EP124との通信リンクを確立し、第3のSoC110及び/又は第3のRC112は、第3のMFN-EP126との通信リンクを確立し、第4のSoC114及び/又は第4のRC116は第4のMFN-EP128との通信リンクを確立する。通信リンクを確立するこのプロセスの間、MFN-EP122、124、126、128は、BAR180、184、188のメモリ領域サイズパラメータ202の値についてRC104、108、112、116に通知する。このようにして、RC104、108、112、116は、他のSoC102、106、110、114からそれらに対してアクセス可能にされているメモリ領域及びこれらのメモリ領域のサイズを学習する。上記の例において、第1のRC104は、第4のSoC114の100Kバイトのメモリ領域及び150Kバイトのメモリ領域がそれに対してアクセス可能にされていることを学習する。第2のRC108は、第1のSoC102の25Kバイトのメモリ領域、第4のSoC114の75Kバイトのメモリ領域、及び第4のSoC114の125Kバイトのメモリ領域がそれに対してアクセス可能にされていることを学習する。第3のRC112は、第4のSoC114の25Kバイトのメモリ領域がそれに対してアクセス可能にされていることを学習する。第4のRC116は、第1のSoC102の80Kバイトのメモリ領域がそれに対してアクセス可能にされていることを学習する。
【0037】
RC104、108、112、116の各々は、どのメモリ領域及びこれらのメモリ領域のサイズが、それらに対してアクセス可能にされているかを学習することに応答して、アクセス可能にされているメモリのこれらの領域に対応するそれぞれのPCIアドレス空間にPCIアドレスを割り当て、それに対して通信可能にリンクされたMFN-EP122、124、126、128のPCI機能回路172、174、176の適切な1つに通知する。この割り当てられたPCIアドレスは、アクセス可能にされたメモリの領域と通信するためにRC104、108、112、116によって割り当てられたPCIアドレスのブロックの第1番目である。ここで、ブロック内のPCIアドレスの数は、BAR180の対応するBARの対応するメモリ領域サイズパラメータ202に等しい。
【0038】
上記の例において、第1のRC104は、PCIアドレス空間の第3の領域(第4のRC116によって第1のSoC102に対してアクセス可能にされている)の開始を、第1のRC104によって管理されるPCIアドレス空間におけるPCIアドレス1000000H(この例示の値は、「H」の接尾語によって示されるように16進数である)に割り振り、1000000Hを、第1のMFN-EP122の第3のPCI機能回路176のBAR188の第1のBARのPCIアドレスパラメータ204にストアする。第1のRC104は、PCIアドレス空間の第4の領域(第4のRC116によって第1のSoC102に対してアクセス可能にされている)の開始を、第1のRC104によって管理されるPCIアドレス空間におけるPCIアドレス1020000Hにマッピングし、1020000Hを、第1のMFN-EP122の第3のPCI機能回路176のBAR188の第2のBARのPCIアドレスパラメータ204にストアする。このマッピングを作成する際に、第1のRC104は、PCIアドレス空間の第3の領域のサイズ(100Kバイト)を収容するのに充分なPCIアドレス空間を、1000000Hアドレスと1020000Hアドレスとの間に残す。
【0039】
第2のRC108は、PCIアドレス空間の第5の領域(第4のRC116によって第2のSoC106に対してアクセス可能にされている)の開始を、第2のRC108によって管理されるPCIアドレス空間におけるPCIアドレス1000000Hにマッピングし、1000000Hを、第2のMFN-EP124の第3のPCI機能回路176のBAR188の第1のBARのPCIアドレスパラメータ204にストアする。第2のRC108は、PCIアドレス空間の第6の領域(第4のRC116によって第2のSoC106に対してアクセス可能にされている)の開始を、第2のRC108によって管理されるPCIアドレス空間におけるPCIアドレス1020000Hにマッピングし、1020000Hを、第2のMFN-EP124の第3のPCI機能回路176のBAR188の第2のBARのPCIアドレスパラメータ204にストアする。このマッピングを作成する際に、第2のRC108は、PCIアドレス空間の第5の領域のサイズ(75Kバイト)を収容するために充分なPCIアドレス空間を、1000000Hアドレスと1020000Hアドレスとの間に残す。第2のRC108は、PCIアドレス空間の第1の領域(第1のRC104によって、第2のSoC106及び第3のSoC110に対してアクセス可能にされている)の開始を、第2のRC108によって管理されるPCIアドレス空間におけるPCIアドレス1040000Hにマッピングし、1040000Hを、第2のMFN-EP124の第1のPCI機能回路172のBAR180の第1のBARのPCIアドレスパラメータ204にストアする。
【0040】
第3のRC112は、PCIアドレス空間の第1の領域(第1のRC104によって、第3のSoC110及び第2のSoC106に対してアクセス可能にされている)の開始を、第3のRC112によって管理されるPCIアドレス空間におけるPCIアドレス1000000Hにマッピングし、10000000Hを、第3のMFN-EP126の第1のPCI機能回路172のBAR180の第1のBARのPCIアドレスパラメータ204にストアする。第4のRC116は、PCIアドレス空間の第2の領域(第1のRC104によって第4のSoC114に対してアクセス可能にされている)の開始を、第4のRC116によって管理されるPCIアドレス空間におけるPCIアドレス8000000Hにマッピングし、8000000Hを、第4のMFN-EP128の第1のPCI機能回路172のBAR180の第1のBARのPCIアドレスパラメータ204にストアする。
【0041】
上記の例示のアドレスは任意であり、例において、異なるアドレスが用いられる可能性もある。なお、第2のMFN-EP124の第1のPCI機能回路172のBAR180の第1のBARのPCIアドレスパラメータ204値(1040000H)と、第3のMFN-EP126の第1のPCI機能回路172のBAR180の第1のBARのPCIアドレスパラメータ204値(1000000H)は、第1のRC104によって制御されるPCIアドレス空間の同じ第1の領域に関連付けられているとしても、これら2つのPCIアドレスパラメータ204は異なることに留意する。これは、個別のRC104、108、112、116の各々によって管理されるPCIアドレス空間の間の独立性を例示している。
【0042】
PCIバックプレーンIC120のメモリ134はまた、RC104、108、112、116が、他のSoC102、106、110、114に対してアクセス可能にするメモリ領域に関連するアドレスを用いて構成され得る。PCIバックプレーンIC120の電源オン初期化の間、プロセッサ132は、これらのアドレスをメモリ134から読み出し得、これらのアドレスを、対象のMFN-EP122、124、126、128の出力ATU178における変換レジスタ220のPCIアドレスパラメータ224に構成し得る。PCIバックプレーンIC120のローカルアドレス値が、プロセッサ132によって、メモリ領域に関連付けられているこの変換レジスタ220のローカルアドレスパラメータ222に割り振られ得、同じローカルアドレス値が、プロセッサ132によって、適切なMFN-EP122、124、126、128(例えば、メモリ領域に対するアクセスが許可されているSoC102、106、110、114に関連付けられたMFN-EP)のPCI機能回路172、174、176の対応する1つの入力ATU182、186、190における対応する変換レジスタ210のローカルアドレスパラメータ214に割り振られ得る。代替例において、RC104、108、112、116は、通信リンク確立の間に、バックプレーンIC120にPCIアドレスを通知して、SoC102、106、110、114によってアクセス可能にされたメモリ領域に関連付け、プロセッサ132は、その時点で変換レジスタ220、210を構成し得る。
【0043】
上記の例を継続すると、PCIバックプレーンIC120は、第1のRC104がPCIアドレス3000000Hを、第2のSoC106及び第3のSoC110に対してアクセス可能にする第1のメモリ領域に関連付け、PCIアドレス3080000Hを、第4のSoC114に対してアクセス可能にする第2のメモリ領域に関連付けることを示すデータを用いて、事前に構成される。PCIバックプレーンIC120は、第4のRC116がPCIアドレス3000000Hを、第1のSoC102に対してアクセス可能にする第3のメモリ領域に関連付け、PCIアドレス3040000Hを、第1のSoC102に対してアクセス可能にする第4のメモリ領域に関連付け、PCIアドレス3080000Hを、第2のSoC106に対してアクセス可能にする第5のメモリ領域に関連付け、及び、PCIアドレス30B0000Hを、第2のSoC106に対してアクセス可能にする第6のメモリ領域に関連付けることを示すデータを用いて、事前に構成される。なお、第1のRC104と第4のRC116は両方とも、二重PCIアドレスにアクセス可能にされたメモリに関連する(3000000H及び3080000Hが第1のRC104及び第4のRC116の両方によって用いられる)が、これは、それらが、各RCによってそれぞれ独立して制御されるPCIアドレス空間におけるPCIアドレスであるため許可されている。
【0044】
PCIバックプレーンIC120は、183000000HのローカルアドレスをPCIアドレス3000000Hに関連付け、183080000Hのローカルアドレスを第1のRC104のPCIアドレス3080000Hに関連付ける。PCIバックプレーンIC120は、303000000HのローカルアドレスをPCIアドレス3000000Hに関連付け、ローカルアドレス303040000HをPCIアドレス3040000Hに関連付け、ローカルアドレス303080000HをPCIアドレス3080000Hに関連付け、ローカルアドレス3030B0000Hを第4のRC116のPCIアドレス30B0000Hに関連付ける。なお、PCIバックプレーンIC120は異なるローカルアドレスを、第1のRC104のPCIアドレス3000000H及び第4のRC116のPCIアドレス3000000Hに関連付け、異なるローカルアドレスを第1のRC104のPCIアドレス3080000H及び第4のRC116のPCIアドレス3080000Hに関連付ける。
【0045】
PCIバックプレーンIC120は、第1のMFN-EP122の出力ATU178の第1の変換レジスタ220を、そのローカルアドレスパラメータ222に183000000Hをストアし、そのPCIアドレスパラメータ224に3000000Hをストアするように構成する。この第1の変換レジスタ220は、第1のSoC102によって第2のSoC106及び第3のSoC110に対してアクセス可能にされた第1のメモリ領域に対応する。PCIバックプレーンIC120は、第1のMFN-EP122の出力ATU178の第2の変換レジスタ220を、そのローカルアドレスパラメータ222に183080000Hをストアし、そのPCIアドレスパラメータ224に3080000Hをストアするように構成する。この第2の変換レジスタ220は、第1のSoC102によって第4のSoC114に対してアクセス可能にされた第2のメモリ領域に対応する。PCIバックプレーンIC120は、第2のMFN-EP124の第1のPCI機能回路172の入力ATU182の第1の変換レジスタ210を、そのローカルアドレスパラメータ214に183000000Hをストアするように構成し、第3のMFN-EP126の第1のPCI機能回路172の入力ATU182の第1の変換レジスタ210を、そのローカルアドレスパラメータ214に183000000Hをストアするように構成する。第2のMFN-EP124の第1のPCI機能回路172の入力ATU182の第1の変換レジスタ210は、第2のMFN-EP124の第1のPCI機能回路172のBAR180の第1のBARに関連する。第3のMFN-EP126の第1のPCI機能回路172の入力ATU182の第1の変換レジスタ210は、第3のMFN-EP126の第1のPCI機能回路172のBAR180の第1のBARに関連する。PCIバックプレーンIC120は、第4のMFN-EP128の第1のPCI機能回路172の入力ATU182の第1の変換レジスタ210を、そのローカルアドレスパラメータ214に183080000Hをストアするように構成する。第4のMFN-EP128の第1のPCI機能回路172の入力ATU182の第1の変換レジスタ210は、第4のMFN-EP128の第1のPCI機能回路172のBAR180の第1のBARに関連する。
【0046】
PCIバックプレーンIC120は、180000000Hから1FFFFFFFFHまでわたるローカルアドレスに向けられた通信を第1のMFN-EP124にルーティングするように相互接続通信バス130を構成し得る。PCIバックプレーンIC120は、200000000Hから27FFFFFFFHまでわたるローカルアドレスに向けられた通信を、第2のMFN-EP124にルーティングするように相互接続通信バス130を構成し得る。PCIバックプレーンIC120は、280000000Hから2FFFFFFFFHまでわたるローカルアドレスに向けられた通信を、第3のMFN-EP126にルーティングするように相互接続通信バス130を構成し得る。PCIバックプレーンIC120は、300000000Hから37FFFFFFFHまでわたるローカルアドレスに向けられた通信を、第4のMFN-EP128にルーティングするように相互接続通信バス130を構成し得る。別の例において、PCIバックプレーンIC120は、相互接続通信バス130を、上記で提供された例とは異なるローカルアドレスルーティングスキームに従って通信をルーティングするように構成し得る。
【0047】
PCIバックプレーンIC120は、第4のMFN-EP128の出力ATU178の第1の変換レジスタ220を、そのローカルアドレスパラメータ222に303000000Hをストアし、そのPCIアドレスパラメータ224に3000000Hをストアするように構成する。PCIバックプレーンIC120は、第4のMFN-EP128の出力ATU178の第2の変換レジスタ220を、そのローカルアドレスパラメータ222に303040000Hをストアし、そのPCIアドレスパラメータ224に3040000Hをストアするように構成する。PCIバックプレーンIC120は、第4のMFN-EP128の出力ATU178の第3の変換レジスタ220を、そのローカルアドレスパラメータ222に303080000Hをストアするように、そのPCIアドレスパラメータ224に3080000Hをストアするように構成する。PCIバックプレーンIC120は、第4のMFN-EP128の出力ATU178の第4の変換レジスタ220を、そのローカルアドレスパラメータ222に3030B0000Hをストアし、そのPCIアドレスパラメータ224に30B0000Hをストアするように構成する。
【0048】
PCIバックプレーンIC120は、第1のMFN-EP122の第3のPCI機能回路176の入力ATU190の第1の変換レジスタ210を、そのローカルアドレスパラメータ214に303000000Hをストアするように構成し、第1のMFN-EP122の第3のPCI機能回路176の入力ATU190の第2の変換レジスタ210を、そのローカルアドレスパラメータ214に303040000Hをストアするように構成する。第1のMFN-EP122の第3のPCI機能回路176の入力ATU190の第1の変換レジスタ210は、第1のMFN-EP122の第3のPCI機能回路176のBAR188の第1のBARに関連し、第1のMFN-EP122の第3のPCI機能回路176の入力ATU190の第2の変換レジスタ210は、第1のMFN-EP122の第3のPCI機能回路176のBAR188の第2のBARに関連する。
【0049】
PCIバックプレーンIC120は、303080000Hをそのローカルアドレスパラメータ214にストアするように、第2のMFN-EP124の第3のPCI機能回路176の入力ATU190の第1の変換レジスタ210を構成し、3030B0000Hをそのローカルアドレスパラメータ214にストアするように、第2のMFN-EP124の第3のPCI機能回路176の入力ATU190の第2の変換レジスタ210を構成する。第2のMFN-EP124の第3のPCI機能回路176の入力ATU190の第1の変換レジスタ210は、第2のMFN-EP124の第3のPCI機能回路176のBAR188の第1のBARに関連し、第2のMFN-EP124の第3のPCI機能回路176の入力ATU190の第2の変換レジスタ210は、第2のMFN-EP124の第3のPCI機能回路176のBAR188の第2のBARに関連する。
【0050】
MFN-EP122、124、126、128のBAR180、184、188、入力ATU182、186、190の変換レジスタ210、及び出力ATU178の変換レジスタ220が初期化され上述のように構成されると、PCIバックプレーンIC120は、SoC102、106、110、114間でトランザクションをルーティングする準備ができる。上述した例示の構成を用いて、トランザクションのルーティングの例を説明する。
【0051】
システム100の動作の間、SoC102は、第1のRC104を介して、入力通信経路140を介して、第1のMFN-EP122へのPCIアドレス1000000Hにトランザクションを送信する。このPCIアドレス1000000Hは、第1のMFN-EP122の第3の機能回路176のBAR188の第1のBARに関連付けられ、PCIアドレスの関連するブロックにおける第1のアドレスである。このPCIアドレスは、第1のMFN-EP122の第3の機能回路176の入力ATU190によって、ローカルアドレス303000000Hにマッピングされる。第1のMFN-EP122の第3の機能回路176は、ローカルアドレス303000000Hに向けられた相互接続通信バス130上にトランザクションを送る。相互接続通信バス130は、これを第4のMFN-EP128にルーティングする。第4のMFN-EP128は、このローカルアドレス303000000HをPCIアドレス3000000Hにマッピングするその出力ATU178内の変換レジスタ220を探す。第4のMFN-EP128はその後、PCIアドレス30000000Hに向けられた第4のRC116にトランザクションを送る。
【0052】
上記の例は、SoC102、106、110、114が、それらのメモリの領域をSoC102、106、110、114の特定の他の1つに対してアクセス可能にする方法、即ち、SoC102、106、110、114の幾つかに対するアクセスを許可し、その他のSoC102、106、110、114に対するアクセスを制限する方法を図示する。この例はまた、1つのRC104、108、112、116のPCIアドレス空間が、PCIバックプレーンIC120によって、RC104、108、112、116の異なるRCのPCIアドレス空間にどのように変換され得るのかを図示する。このアプローチは、SoC102、106、110、114へのアクセスを、1つずつ制限する(例えば、第1のSoCに対してPCIアドレス空間の第1の領域へのアクセスを許可し、第2のSoC及び他のSoCに対して第1の領域へのアクセスを制限し、第2のSoCに対して、PCIアドレス空間の第2の領域へのアクセスを許可し、第1のSoC及び他のSoCに対して、第2の領域へのアクセスを制限する)能力をサポートしない可能性のある代替の相互接続技術に比べて、多くの利点を提供する。
【0053】
図6A及び図6Bは、システム400の文脈における、PCIバックプレーンIC121の別の例を示す。或る例において、PCIバックプレーンIC121は、第1の多機能エンドポイント(MFN-EP)123、第2のMFN-EP125、第3のMFN-EP127、相互接続通信バス130、プロセッサ132、メモリ134、及びローカル機能回路135を含む。PCIバックプレーンIC121は、PCIバックプレーンIC120と多くの同じ構造を共有し、これら類似の構造は、PCIバックプレーンIC120の対応する構造と類似の動作を行う。ローカル機能回路135は、処理のためにトランザクションをSoC102、106、110に分岐するのではなく、幾つかの処理を直接提供する。ローカル機能回路135は、アクセラレータ処理機能であり得る。ローカル機能回路135は、オンチップ周辺機器であってもよい。ローカル機能回路135はIPブロックであってもよい。
【0054】
次に図6Bを参照すると、各MFN-EP123、125、127は、第4のPCI機能回路177を有し、第4のPCI機能回路177は、RC104によってローカル機能回路135にアドレス指定されたトランザクションを受け取り、そのトランザクションを、処理のために、通信経路136-5を介して相互接続通信バス130に及び相互接続通信バス130を介してローカル機能回路135に送信する。或る例において、PCIバックプレーンIC121は、2つ又はそれ以上のローカル機能回路135、及び2つ又はそれ以上のMFN-EPを含み、MFN-EPの各々は、ローカル機能回路135の数と一致する数のPCI機能回路177を含む。なお、PCIトランザクションは本質的に機能を識別するので、トランザクションをローカル機能回路135にルーティングするために、PCIバックプレーンIC121に対するアドレスを変換する必要がない。
【0055】
図7A及び図7Bは、異なる周辺機器相互接続ルートコンプレックス(PCI RC)間で通信する方法300を示す。方法300の工程のシーケンスは、図7A及び図7Bに及ぶ。図7Aを参照すると、ブロック302において、方法300は、バックプレーン集積回路(IC)のプロセッサ(例えば、PCIバックプレーンIC120、121のプロセッサ132)によってメモリ領域構成定義を読み出すことを含む。ここで、各メモリ領域構成定義は、メモリ領域のサイズを識別し、メモリ領域が位置するバックプレーンICに通信可能に結合されるICを識別し、メモリ領域に対するアクセスを許可されているバックプレーンICに通信可能に結合される別のICを識別する。ここで、各IC(例えば、SoC104、106、110、114)は、バックプレーンICの異なる多機能エンドポイント(MFN-EP)(例えば、MFN-EP122、124、126、128、123、125、127)に通信可能に結合される。或る例において、バックプレーンICは、PCIバックプレーンIC120、121である。或る例において、プロセッサ132は、メモリ134からメモリ構成定義を読み出す。或る例において、プロセッサ132は、バックプレーンICの外部のメモリからメモリ構成定義を読み出す。
【0056】
ブロック304において、方法300は、例えば、メモリ領域の1つに対してアクセスを許可された各IC(例えば、SoC104、106、110、114)について、ICに結合されたMFN-EPの周辺機器相互接続(PCI)機能回路のベースアドレスレジスタ(BAR)に、プロセッサによって、メモリ領域のサイズを書き込むことを含む。ICによってエクスポートされた全てのメモリ領域について、PCI機能回路172、174、176の1つが関連付けられたICに対してメモリ領域をアクセス可能にするICをモデル化するPCI機能回路172、174、176うちの対応する一つの、1つ又は複数のBAR180、184、188に、プロセッサ132によって、メモリ領域のサイズがプログラミングされる。
【0057】
ブロック306において、方法300は、メモリ領域(例えば、SoC102、106、110、114が他のSoCに対してアクセス可能にしているメモリ領域)が位置する各ICについて、バックプレーンIC(例えば、PCIバックプレーンIC120、121)に対してローカルであるローカルアドレスを用いて、及び、ICのPCI RC(例えば、RC104、108、112、116の1つ)によって管理されるアドレスを用いて、プロセッサ(例えば、プロセッサ132)によってICに結合されているMFN-EP(例えば、MFN-EP122、124、126、128、123、125、127の1つ)における出力アドレス変換ユニット(ATU)(例えば、ATU178)の変換レジスタ(例えば、変換レジスタ120)を構成することを含む。ブロック306の処理は、(A)ICによってアクセス可能にされたメモリ領域について、バックプレーンICに対してローカルなローカルアドレスを割り当てること、及び、(B)ICに結合されたMFN-EPにおいてATUの変換レジスタを構成すること、の2つに分解され得る。
【0058】
ブロック308において、方法300は、メモリ領域の1つ(例えば、SoC102、106、110、114が他のSoCに対してアクセス可能にしているメモリ領域の1つ)に対してアクセスが許可されている各ICについて、入力ATUの変換レジスタがMFN-EPのPCI機能回路のBARに関連付けられるバックプレーンICに対してローカルであるローカルアドレスを用いて、プロセッサによってICに結合されているMFN-EPのPCI機能回路(例えば、PCI機能回路172、174、176、177の1つ)において入力ATU(例えば、入力ATU182、186、190の1つ)の変換レジスタ(例えば、変換レジスタ210)を構成することを含む。
【0059】
ブロック310において、方法300は、メモリ領域(例えば、SoC102、106、110、114が他のSoCに対してアクセス可能にしているメモリ領域)に対してアクセスが許可されている各ICについて、ICのPCI RC(例えば、PCI RC104、108、112、116の1つ)によって管理されるPCIアドレスをICに結合されたMFN-EPによって受け取ることと、ICに結合されたMFN-EPのPCI機能回路のBARの中にPCIアドレスを構成することとを含む。
【0060】
図7Bを参照すると、ブロック312において、方法300は、MFN-EPのPCI機能回路を指定するMFN-EPによって、PCIトランザクションを受け取ることを含む。PCIトランザクションには、MFN-EPに結合されたICのPCI RCによって管理されるPCIアドレス空間のPCIアドレスが含まれる。PCI機能回路は、MFN-EPに結合されたICがアクセスを許可されているメモリ領域が位置するICに関連付けられている。
【0061】
ブロック314において、方法300は、PCIトランザクションにおけるPCIアドレスに基づいて、PCI機能回路によってPCI機能回路のBARを検索することを含む。ブロック316において、方法300は、PCI機能回路によって、PCI機能回路の検索されたBARに関連付けられている変換レジスタを読み出すことを含む。ブロック318において、方法300は、PCI機能回路によって、変換レジスタに基づくローカルアドレス及びPCIトランザクションにおけるPCIアドレスを決定することを含む。
【0062】
ブロック320において、方法300は、PCI機能回路によって、PCIトランザクションを、バックプレーンICの相互接続通信バスを介してローカルアドレスに送信することを含む。ブロック322において、方法300は、PCIトランザクションを、相互接続通信バス(例えば、相互接続通信バス130)によって、メモリ領域が位置するICに結合されたMFN-EPにルーティングすることを含む。ブロック324において、方法300は、メモリ領域が位置するICに結合されたMFN-EPによって、PCIトランザクションをメモリ領域が位置するICのPCI RCに送信することを含む。
【0063】
特許請求の範囲内で、説明した実施形態における変更が可能であり、他の実施形態が可能である。
図1
図2
図3
図4
図5
図6A
図6B
図7A
図7B
【手続補正書】
【提出日】2024-07-23
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
回路であって、
第1の複数のレジスタと第1の入力アドレス変換ユニットとを含む第1の機能回路であって、
第2の回路に向けられる、第1のアドレスを含む第1のトランザクションを受信し、
前記第1のアドレスと前記第1の複数のレジスタと前記第1の入力アドレス変換ユニットとに基づいて前記第2の回路に関連する第1のローカルアドレスを判定し、
前記第1のローカルアドレスに基づいて前記第2の回路に前記第1のトランザクションを送信する、
ように構成される、前記第1の機能回路を含む、回路。
【請求項2】
請求項1に記載の回路であって、
前記第1の機能回路が、前記第1の複数のレジスタから参照レジスタを判定するように更に構成され、前記参照レジスタが、前記第1のアドレスを参照する、回路。
【請求項3】
請求項2に記載の回路であって、
前記第1の機能回路が、前記第1のローカルアドレスを判定するために前記参照レジスタに基づいて前記第1の入力アドレス変換ユニットにインデックスをつけるように更に構成される、回路。
【請求項4】
請求項1に記載の回路であって、
前記回路を前記第2の回路に結合する相互接続通信バスと、
第2の複数のレジスタと第2の入力アドレス変換ユニットとを含む第2の機能回路であって、
第3の回路に向けられる、第2のアドレスに関連する第2のトランザクションを受信し、
前記第2のアドレスと前記第2の複数のジレスタと前記第2の入力アドレス変換ユニットとに基づいて前記第3の回路に関連する第2のローカルアドレスを判定し、
前記第2のローカルアドレスに基づいて前記第3の回路に前記第2のトランザクションを送信する、
ように構成される、前記第2の機能回路と、
を更に含む、回路。
【請求項5】
請求項4に記載の回路であって、
前記第1の機能回路が、前記相互接続通信バスを介して前記第2の回路の第2の機能回路とマスター・スレーブ関係を確立する、回路。
【請求項6】
請求項4に記載の回路であって、
前記回路に向けられる出力トランザクションを受信するように構成される出力アドレス変換ユニットであって、複数の出力変換レジスタを含み、前記複数の出力変換レジスタの各々が出力ローカルアドレスパラメータと前記相互接続通信バスに関連するアドレスパラメータとサイズパラメータとを格納するように構成される、前記出力アドレス変換ユニットを更に含む、回路。
【請求項7】
請求項6に記載の回路であって、
前記サイズパラメータが、前記回路に結合されるデバイスによってアクセス可能なメモリサイズを識別する、回路。
【請求項8】
請求項7に記載の回路であって、
前記メモリサイズが、前記第2の回路のメモリ領域に関連する、回路。
【請求項9】
請求項1に記載の回路であって、
前記第1の入力アドレス変換ユニットが、複数の入力変換レジスタを含み、前記複数の入力変換レジスタの各々が、入力ローカルアドレスパラメータとレジスタ識別子とを格納するように構成される、回路。
【請求項10】
請求項9に記載の回路であって、
前記第1の複数のレジスタの量が、前記複数の入力変換レジスタの量に等しい、回路。
【請求項11】
方法であって、
プロセッサによって、メモリ領域に対して、各々が前記メモリ領域のサイズを定義するメモリ領域構成定義を読み出して、前記メモリ領域が位置するデバイスを識別して、前記メモリ領域へのアクセスを許可された他のデバイスを識別することと、
前記プロセッサによって、前記メモリ領域の1つへのアクセスを許可された各デバイスに対して、前記デバイスに結合されるインターフェース回路の機能回路のベースアドレスレジスタ(BAR)において、前記メモリ領域のサイズを書き込むことであって、各デバイスが異なるインターフェース回路に結合される、前記書き込むことと、
前記プロセッサによって、前記メモリ領域の1つを有する各デバイスに対して、ローカルアドレスを用いて、前記デバイスに結合される前記インターフェース回路の機能回路において出力アドレス変換ユニット(ATU)の変換レジスタを構成することと、
前記プロセッサによって、前記メモリ領域の1つへのアクセスを許可された各デバイスに対して、前記ローカルアドレスを用いて、前記デバイスに結合されるインターフェース回路の機能回路において入力ATUの変換レジスタを構成することであって、前記入力ATUの変換レジスタが前記インターフェース回路の機能回路のBARに関連する、前記構成することと、
を含む、方法。
【請求項12】
方法であって、
第1の回路に関連する第1の機能回路によって、第2の回路に向けられる第1のトランザクションを受信することであって、前記第1のトランザクションが第1のアドレスを含む、前記受信することと、
前記第1の機能回路によって、前記第1のアドレスと第1の複数のレジスタと第1の入力アドレス変換ユニットとに基づいて第1のローカルアドレスを判定することと、
前記第1の機能回路によって、前記第1のローカルアドレスに基づいて前記第2の回路に前記第1のトランザクションを送信することと、
を含む、方法。
【請求項13】
請求項12に記載の方法であって、
前記第1の機能回路によって、前記第1の複数のレジスタから参照レジスタを判定することであって、前記参照レジスタが前記第1のアドレスを参照する、前記判定することを更に含む、方法。
【請求項14】
請求項13に記載の方法であって、
前記第1の機能回路によって、前記第1のローカルアドレスを判定するために前記参照レジスタに基づいて前記第1の入力アドレス変換ユニットにインデックスをつけることを更に含む、方法。
【請求項15】
請求項12に記載の方法であって、
前記第1の回路が、相互接続通信バスを介して前記第2の回路に結合される、方法。
【請求項16】
請求項15に記載の方法であって、
前記第2の回路に関連する第2の機能回路によって、第3の回路に向けられる第2のトランザクションを受信することであって、前記第2のトランザクションが第2のアドレスを含む、前記受信することと、
前記第2の機能回路によって、前記第2のアドレスと第2の複数のレジスタと第2の入力アドレス変換ユニットとに基づいて第2のローカルアドレスを判定することと、
前記第2の機能回路によって、前記第2のローカルアドレスを用いて前記第3の回路に前記第2のトランザクションを送信することと、
を更に含む、方法。
【請求項17】
請求項15に記載の方法であって、
前記第2の回路の出力アドレス変換ユニットによって、前記第1のトランザクションを受信することを更に含み、
前記出力アドレス変換ユニットが、複数の出力変換レジスタを含み、前記複数の変換レジスタの各々が、出力ローカルアドレスパラメータと前記相互接続通信バスに関連するアドレスパラメータとサイズパラメータとを格納する、方法。
【請求項18】
請求項17に記載の方法であって、
前記サイズパラメータが、前記第1の回路に結合されるデバイスによってアクセス可能なメモリサイズを識別する、方法。
【請求項19】
請求項18に記載の方法であって、
前記メモリサイズが、前記第2の回路のメモリ領域に関連する、方法。
【請求項20】
請求項12に記載の方法であって、
前記第1の入力アドレス変換ユニットが、複数の入力変換レジスタを含み、前記複数の入力変換レジスタの各々が、入力ローカルアドレスパラメータとレジスタ識別子とを格納する、方法。