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

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

▶ ザイリンクス インコーポレイテッドの特許一覧

特表2024-538624コヒーレント空間又はMMIO空間への静的マッピング又は動的マッピングを有するマルチパスメモリ
<>
  • 特表-コヒーレント空間又はMMIO空間への静的マッピング又は動的マッピングを有するマルチパスメモリ 図1
  • 特表-コヒーレント空間又はMMIO空間への静的マッピング又は動的マッピングを有するマルチパスメモリ 図2
  • 特表-コヒーレント空間又はMMIO空間への静的マッピング又は動的マッピングを有するマルチパスメモリ 図3
  • 特表-コヒーレント空間又はMMIO空間への静的マッピング又は動的マッピングを有するマルチパスメモリ 図4
  • 特表-コヒーレント空間又はMMIO空間への静的マッピング又は動的マッピングを有するマルチパスメモリ 図5
  • 特表-コヒーレント空間又はMMIO空間への静的マッピング又は動的マッピングを有するマルチパスメモリ 図6
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2024-10-23
(54)【発明の名称】コヒーレント空間又はMMIO空間への静的マッピング又は動的マッピングを有するマルチパスメモリ
(51)【国際特許分類】
   G06F 12/0831 20160101AFI20241016BHJP
【FI】
G06F12/0831 100
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2024519626
(86)(22)【出願日】2022-06-03
(85)【翻訳文提出日】2024-04-15
(86)【国際出願番号】 US2022032252
(87)【国際公開番号】W WO2023055443
(87)【国際公開日】2023-04-06
(31)【優先権主張番号】17/449,561
(32)【優先日】2021-09-30
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
(71)【出願人】
【識別番号】591025439
【氏名又は名称】ザイリンクス インコーポレイテッド
【氏名又は名称原語表記】XILINX INCORPORATED
(74)【代理人】
【識別番号】110002077
【氏名又は名称】園田・小林弁理士法人
(72)【発明者】
【氏名】ダスティダー, ジャイディープ
(72)【発明者】
【氏名】マリー, ジェームズ
【テーマコード(参考)】
5B205
【Fターム(参考)】
5B205KK14
5B205MM03
5B205UU42
(57)【要約】
本明細書の実施形態は、集積回路(IC)の設計者によって静的に割り当てられるのではなく、キャッシュコヒーレントドメイン又はI/Oドメインのいずれかに割り当てることができる、IC内のプロセッサシステム内のメモリを説明する。すなわち、ユーザ又は顧客は、自分の望みに最も適したドメインにメモリを割り当てることができる。更に、メモリは、ユーザが後で考えを変えた場合、異なるドメインに再割り当てすることができる。
【選択図】図1
【特許請求の範囲】
【請求項1】
集積回路(IC)内のプロセッサシステムであって、
キャッシュコヒーレントパス及び入力/出力(I/O)パスを有する相互接続と、
前記相互接続に接続されたプロセッサコアと、
前記キャッシュコヒーレントパス及び前記I/Oパスに接続されたスイッチと、
前記プロセッサコアと共有されるキャッシュコヒーレントドメイン、又は前記プロセッサコアと非キャッシュコヒーレントであるI/Oドメインのうちの1つに割り当てられるように構成された割り当て可能メモリと、を備え、前記スイッチは、前記キャッシュコヒーレントドメイン及び前記I/Oドメインへの割り当てに応じて、前記割り当て可能メモリと前記キャッシュコヒーレントパス及び前記I/Oパスとの間でデータをルーティングする、プロセッサシステム。
【請求項2】
前記割り当て可能メモリは、前記キャッシュコヒーレントドメインに割り当てられることと前記I/Oドメインに割り当てられることとの間で切り替えられるように構成可能である、請求項1に記載のプロセッサシステム。
【請求項3】
前記キャッシュコヒーレントドメイン又は前記I/Oドメインのうちの1つに静的に割り当てられる非割り当て可能メモリを更に備える、請求項1に記載のプロセッサシステム。
【請求項4】
第1の数の前記割り当て不可能メモリが、前記キャッシュコヒーレントドメインに割り当てられ、前記相互接続及び前記プロセッサコアと通信するときに前記スイッチをバイパスし、第2の数の前記割り当て不可能メモリが、前記I/Oドメインに割り当てられ、前記スイッチを使用して前記相互接続及び前記プロセッサコアと通信するか、又は
前記第1の数の前記割り当て不可能メモリが、前記I/Oドメインに割り当てられ、前記相互接続及び前記プロセッサコアと通信するときに前記スイッチをバイパスし、前記第2の数の前記割り当て不可能メモリが、前記キャッシュコヒーレントドメインに割り当てられ、前記スイッチを使用して前記相互接続及び前記プロセッサコアと通信する、請求項3に記載のプロセッサシステム。
【請求項5】
アクセラレータであって、(i)前記プロセッサコアによって割り当てられたタスクを実行するように構成されたオフロードアクセラレータ回路と、(ii)前記割り当て可能メモリのうちの1つ、とを有する、アクセラレータを更に備える、請求項1に記載のプロセッサシステム。
【請求項6】
前記プロセッサコアとともに前記キャッシュコヒーレントドメインに割り当てられたプログラマブルロジック(PL)コアを更に備え、前記割り当て可能メモリのうちの1つがPLメモリである、請求項1に記載のプロセッサシステム。
【請求項7】
前記スイッチは、前記キャッシュコヒーレントドメインに割り当てられた前記割り当て可能メモリのうちの第1の割り当て可能メモリから受信されたデータを前記キャッシュコヒーレントパスに転送し、前記I/Oドメインに割り当てられた前記割り当て可能メモリのうちの第2の割り当て可能メモリから受信されたデータを前記I/Oパスに転送するように構成される、請求項1に記載のプロセッサシステム。
【請求項8】
集積回路(IC)であって、
プロセッサシステムであって、
キャッシュコヒーレントパス及び入力/出力(I/O)パスを有する相互接続と、
前記相互接続に接続されたプロセッサコアと、
前記キャッシュコヒーレントパス及び前記I/Oパスに接続されたスイッチと、
キャッシュコヒーレントドメイン又はI/Oドメインのうちの1つに割り当てられるように構成された割り当て可能メモリと、
前記プロセッサシステムに結合されたネットワークオンチップ(NoC)と、
前記NoCに結合されたデータ処理エンジンアレイと、を有する、プロセッサシステムを備える、集積回路(IC)。
【請求項9】
前記割り当て可能メモリは、前記キャッシュコヒーレントドメインに割り当てられることと前記I/Oドメインに割り当てられることとの間で切り替えられるように構成可能であり、前記プロセッサコアは、前記キャッシュコヒーレントドメインに静的に割り当てられる、請求項8に記載のIC。
【請求項10】
前記プロセッサシステムは、
前記キャッシュコヒーレントドメイン又は前記I/Oドメインのうちの1つに静的に割り当てられる非割り当て可能メモリを更に有する、請求項8に記載のIC。
【請求項11】
第1の数の前記割り当て不可能メモリが、前記キャッシュコヒーレントドメインに割り当てられ、前記相互接続及び前記プロセッサコアと通信するときに前記スイッチをバイパスし、第2の数の前記割り当て不可能メモリが、前記I/Oドメインに割り当てられ、前記スイッチを使用して前記相互接続及び前記プロセッサコアと通信するか、又は
前記第1の数の前記割り当て不可能メモリが、前記I/Oドメインに割り当てられ、前記相互接続及び前記プロセッサコアと通信するときに前記スイッチをバイパスし、前記第2の数の前記割り当て不可能メモリが、前記キャッシュコヒーレントドメインに割り当てられ、前記スイッチを使用して前記相互接続及び前記プロセッサコアと通信する、請求項10に記載のIC。
【請求項12】
前記プロセッサシステムは、
アクセラレータであって、(i)前記プロセッサコアによって割り当てられたタスクを実行するように構成されたオフロードアクセラレータ回路と、(ii)前記割り当て可能メモリのうちの1つ、とを有する、アクセラレータを更に備える、請求項8に記載のIC。
【請求項13】
前記プロセッサシステムは、
前記プロセッサコアとともに前記キャッシュコヒーレントドメインに割り当てられたプログラマブルロジック(PL)コアを更に備え、前記割り当て可能メモリのうちの1つがPLメモリである、請求項8に記載のIC。
【請求項14】
前記スイッチは、前記キャッシュコヒーレントドメインに割り当てられた前記割り当て可能メモリのうちの第1の割り当て可能メモリから受信されたデータを前記キャッシュコヒーレントパスに転送し、前記I/Oドメインに割り当てられた前記割り当て可能メモリのうちの第2の割り当て可能メモリから受信されたデータを前記I/Oパスに転送するように構成される、請求項8に記載のIC。
【請求項15】
方法であって、
プロセッサシステム内のメモリをキャッシュコヒーレントドメイン又はI/Oドメインのうちの1つに割り当てるステップと、
前記割り当てに基づいてスイッチを構成するステップであって、前記スイッチは、前記メモリと相互接続との間に通信可能に結合される、ステップと、
前記割り当てに基づいて前記相互接続を構成するステップであって、前記相互接続が前記スイッチと前記キャッシュコヒーレントドメイン内にあるプロセッサコアとの間に通信可能に結合される、ステップと、
前記プロセッサコア内のオペレーティングシステムに前記割り当てを通知するステップと、を含む、方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示の例は、概して、コヒーレントドメイン又は入力/出力(I/O)ドメインのいずれかに割り当てることができるプロセッサシステム内のメモリに関する。
【背景技術】
【0002】
メインメモリ(又はノーマルメモリ)パスに接続されたプロセッサシステムは、通常、メモリの正しい更新されたコピー、又は複数のプロセッサ及びキャッシュにわたるメモリのコヒーレントな共有コピーを維持するハードウェアキャッシュコヒーレンシを有するという利点を提供する。デバイスメモリ又はメモリマップドI/O(MMIO)パスに接続されたプロセッサシステム内のメモリは、プロセッサシステムと相互作用するプロセッサ上で実行されるデバイスドライバによってトランザクションが生成される、ソースプロセッサから宛先メモリへのトランザクションについて予想される厳密な読み取り及び書き込み順序をハードウェア相互接続に維持させるという利点を提供する。一方、ノーマルメモリ又はメインメモリは、通常、ロック機構又はキャッシュコヒーレント同期バリア機構を使用しており、同期バリアまで動作を順序付けしないことを可能にしている。
【0003】
プロセッサシステムの設計者は、キャッシュコヒーレントドメインのメインメモリパス部分又はI/OドメインのMMIOパス部分のいずれかにメモリを静的に取り付ける決定を実施時に行う。オペレーティングシステム(OS)は、I/Oドメイン又はキャッシュコヒーレントドメイン(メインメモリドメインとも呼ばれる)の一部として静的に、メモリを利用するか、又はそのメモリのページテーブル属性を作成する。1つのパス又は他のパスを選択する決定はまた、実装時にプロセッサシステム内のメモリに対する事前割り当てを必要とするマルチプロセッサ相互接続の制限であり得る。したがって、設計者によって割り当てられると、プロセッサシステム内のメモリを異なるドメインに再割り当てすることはできない。その結果、プロセッサシステムのユーザ又は顧客は、設計者によってなされた初期割り当てを変更することができない。
【発明の概要】
【0004】
処理システムにおいて割り当て可能メモリ及び割り当て不可能メモリをサポートするための技法が説明される。一例は、キャッシュコヒーレントパス及び入力/出力(I/O)パスを備える相互接続と、相互接続に接続されたプロセッサコアと、キャッシュコヒーレントパス及びI/Oパスに接続されたスイッチと、プロセッサコアと共有されるキャッシュコヒーレントドメイン又はプロセッサコアと非キャッシュコヒーレントであるI/Oドメインのうちの1つに割り当てられるように構成された割り当て可能メモリとを含む集積回路(IC)内のプロセッサシステムである。更に、スイッチは、キャッシュコヒーレント及びI/Oドメインへの割り当てに応じて、割り当て可能メモリとキャッシュコヒーレント及びI/Oパスとの間でデータをルーティングする。
【0005】
本明細書で説明される一例は、プロセッサシステムと、プロセッサシステムに結合されたネットワークオンチップ(NoC)と、NoCに結合されたデータ処理エンジンアレイとを含むICである。プロセッサシステムは、キャッシュコヒーレントパス及び入力/出力(I/O)パスを備える相互接続と、相互接続に接続されたプロセッサコアと、キャッシュコヒーレントパス及びI/Oパスに接続されたスイッチと、キャッシュコヒーレントドメイン又はI/Oドメインのうちの1つに割り当てられるように構成された割り当て可能メモリとを更に含む。
【0006】
本明細書で説明される一例は、プロセッサシステム内のメモリをキャッシュコヒーレントドメイン又はI/Oドメインのうちの1つに割り当てるステップと、スイッチがメモリと相互接続との間に通信可能に結合される場合、割り当てに基づいてスイッチを構成するステップと、相互接続がスイッチとキャッシュコヒーレントドメイン内にあるプロセッサコアとの間に通信可能に結合される場合、割り当てに基づいて相互接続を構成するステップと、プロセッサコア内のオペレーティングシステムに割り当てを通知するステップとを含む方法である。
【図面の簡単な説明】
【0007】
上記の特徴が詳細に理解され得るように、上記で簡潔に要約されたより具体的な説明が、例示的な実装形態を参照することによって行われ得、それらの実装形態のうちのいくつかが添付の図面に例解される。しかしながら、添付の図面は、典型的な例示の実装形態のみを例解しており、したがって、その範囲を限定するものとみなされるべきではないことに留意されたい。
図1】一例による、異なるドメインに割り当てることができるプロセッサシステム内のメモリを含む集積回路のブロック図である。
図2】一例による、異なるドメインに割り当てることができるメモリを有するプロセッサシステムのブロック図である。
図3】一例による、異なるドメインに割り当てることができるメモリを有するプロセッサシステムのブロック図である。
図4】一例による、I/Oドメイン又はキャッシュコヒーレントドメインのいずれかにメモリを割り当てるためのフローチャートである。
図5】一例による、割り当て可能メモリと割り当て不可能メモリの両方をキャッシュコヒーレントパスに接続するための回路を示す。
図6】一例による、割り当て可能メモリと割り当て不可能メモリの両方をI/Oパスに接続するための回路を示す。
【0008】
理解を容易にするために、可能な場合には、図面に共通する同一の要素を示すために同一の参照番号が使用されている。一例の要素は、他の例に有益に組み込まれ得ることが企図される。
【発明を実施するための形態】
【0009】
様々な特徴が、図面を参照して以下に記載される。図面は縮尺どおりに描かれている場合もあるか、描かれていない場合もあり、同様の構造又は機能の要素は図面全体を通して同様の参照番号によって表されていることに留意されたい。図面は、特徴の説明を容易にすることのみを意図していることに留意されたい。それらは、特徴の網羅的な説明として、又は特許請求の範囲の範囲に対する限定として意図されていない。加えて、例解された例は、示された全ての態様又は利点を有する必要はない。特定の実施例に関連して説明される態様又は利点は、必ずしもその実施例に限定されず、そのように例解されていない場合、又はそのように明示的に説明されていない場合であっても、任意の他の実施例において実施することができる。
【0010】
本明細書の実施形態は、集積回路(IC)の設計者によって静的に割り当てられるのではなく、キャッシュコヒーレントドメイン又はI/Oドメインのいずれかに割り当てることができる、ICのプロセッサシステム内のメモリを説明する。すなわち、ユーザ又は顧客は、自分のニーズに最も適したドメインにメモリを割り当てることができる。更に、メモリは、ユーザが後で考えを変えた場合、異なるドメインに再割り当てすることができる。したがって、本明細書の実施形態は、割り当てが固定され(例えば、シリコンに焼き付けられ)、変更することができない以前のプロセッサシステムよりも大きな柔軟性をプロセッサシステムに提供する。
【0011】
割り当て可能メモリ(例えば、いずれかのドメインに割り当てることができるメモリ)を有することに加えて、プロセッサシステムは、特定のドメインに設定され、ユーザ割り当て可能ではない割り当て不可能メモリを含むことができる。すなわち、プロセッサシステムは、割り当て可能メモリと割り当て不可能メモリの両方をサポートすることができる。
【0012】
図1は、一例による、データ処理エンジン(DPE)アレイ150を含むIC100のブロック図である。DPEアレイ150は、IC100内で格子状、クラスタ状、又は市松模様状に配列され得る複数のDPEを含む。例えば、DPEは、行及び列を有する2Dアレイを形成することができる。更に、アレイ150は、任意のサイズとすることができ、DPEによって形成される任意の数の行及び列を有することができる。
【0013】
一実施形態では、アレイ150内のDPEは同一である。すなわち、DPE(タイル又はブロックとも呼ばれる)の各々は、同じハードウェア構成要素又は回路を有してもよい。更に、本明細書の実施形態は、DPEに限定されない。IC100は、任意の種類の処理要素のアレイを含むことができ、例えば、DPEは、デジタル信号処理エンジン、暗号エンジン、順方向誤り訂正(FEC)エンジン、又は1つ以上の専用タスクを実行するための他の専用ハードウェアであり得る。
【0014】
一実施形態において、アレイ150は、全て同じタイプ(例えば、同種アレイ)であるDPEを含む。しかしながら、別の実施形態では、アレイ150は、異なるタイプのエンジンを含んでもよい。例えば、アレイ150は、デジタル信号処理エンジン、暗号エンジン、グラフィック処理エンジンなどを含むことができる。アレイ150が同種であるか異種であるかにかかわらず、DPEは、以下でより詳細に説明するように、DPEがデータを直接転送することを可能にするDPE間の直接接続を含むことができる。更に、IC100はDPEアレイ150を含むが、IC100は他のアレイを有してもよく、アレイ内の処理要素は異なっていてもよい。
【0015】
一実施形態において、DPEは、非プログラマブルロジックから形成される、すなわち、硬化される。そうすることの1つの利点は、アレイ150内のハードウェア要素を形成するためにプログラマブルロジックを使用することと比較して、DPEがIC100内で占めるスペースが少なくて済み得ることである。すなわち、プログラムメモリ、命令フェッチ/デコードユニット、固定小数点ベクトルユニット、浮動小数点ベクトルユニット、算術論理ユニット(ALU)、乗算累算器(MAC)などのDPE内のハードウェア要素を形成するために強化された又は非プログラマブル論理回路を使用することにより、IC100内のアレイ150のフットプリントを大幅に低減することができる。DPEは硬化されてもよいが、これはDPEがプログラム可能でないことを意味するものではない。すなわち、DPEは、異なる機能又はタスクを実行するために、IC100が電源投入又はリブートされるときに構成され得る。
【0016】
この例では、IC100は、アレイ150に通信可能に結合されたネットワークオンチップ(NoC)130を含む。図示されていないが、NoC130は、IC100中の様々な構成要素が互いに通信することを可能にするために、IC100全体にわたって延在し得る。例えば、1つの物理的実装において、DPEアレイ150は、IC100の右下部分に配置されてもよい。しかしながら、NoC130を使用して、アレイ150は、それにもかかわらず、例えば、プログラマブルロジック(PL)140、プロセッサシステム(PS)105、又はIC100全体にわたって異なる位置に配置され得る入力/出力(I/O)回路と通信することができる。
【0017】
図1はPL140の1つのブロックを示しているが、IC100は、IC100内の異なる位置に配置され得るPL140の複数のブロック(構成ロジックブロック(CLB)とも呼ばれる)を含み得る。例えば、IC100は、FPGAを形成するハードウェア要素を含んでもよい。しかしながら、他の実施形態では、IC100は、PL140を含まなくてもよく、例えば、IC100は、特定用途向け集積回路(ASIC)である。更に、IC100は、PL140、DPEアレイ150、及びプロセッサシステム105を含む異種処理環境を有するので、システムオンチップ(SoC)と呼ぶこともできる。
【0018】
プロセッサシステム105(プロセッササブシステムでもあり得る)は、キャッシュコヒーレントドメイン110と、プロセッサシステム105内の1つ以上の処理コア(図示せず)に関連付けられ得るI/Oドメイン115とを含む。一実施形態では、キャッシュコヒーレントドメイン110は、プロセッサシステム105内のマルチプロセッサCPU又はコア上の実行タスク又は機能においてインターフェースする一般的な命令セットアーキテクチャ(ISA)独立モデルを有するハードウェアキャッシュコヒーレント共有メモリマルチプロセッサ(又はマルチコア)パラダイムを使用する。対照的に、I/Oドメイン115は、MMIOに依存して、プロセッサシステム105内のコア(例えば、CPU)と、このドメインに割り当てられたメモリとの間でデータを転送する。
【0019】
この実施形態では、キャッシュコヒーレントドメイン110及びI/Oドメイン115の両方が、割り当て可能メモリ120及び割り当て不可能メモリ125を含む。割り当て可能メモリ120は、キャッシュコヒーレントドメイン110又はI/Oドメイン115のいずれかに割り当てる(及び再割り当てする)ことができるメモリである。例えば、ユーザ又は顧客は、割り当て可能メモリ120Aの第1の部分がキャッシュコヒーレントドメイン110内にある(したがって、プロセッサシステム105内のプロセッサコアとキャッシュコヒーレントである)ことを事前に選択している一方で、割り当て可能メモリ120Bの第2の部分がI/Oドメイン115内にある(したがって、プロセッサシステム105内のコアとキャッシュコヒーレントでない)ことを選択している場合がある。以下で説明するように、ユーザは、キャッシュコヒーレントドメイン110内の割り当て可能メモリ120Aのうちの1つがI/Oドメイン115に再割り当て可能であり、その逆も同様であるように、この割り当てを変更することができる。
【0020】
割り当て不可能メモリ125は、対照的に、ユーザ割り当て可能ではない。一実施形態では、これらのメモリ125は、設計者によってドメインの1つに割り当てられ、この割り当ては、ユーザによって変更することができない。図1は、両方のタイプのメモリを含むプロセッサシステム105を示すが、一実施形態では、プロセッサシステム105は、異なるドメインに動的に割り当てることができる割り当て可能メモリ120のみを含むことができる。
【0021】
更に、キャッシュコヒーレントドメイン110又はI/Oドメイン115のいずれかの一部として、柔軟なプログラミングモデル及びサイズを提供することができるプログラマブルロジックメモリなどの柔軟なリソースは、もはやデバイスツリー内の1つのタイプのリソースとして固定/宣言される必要はない。
【0022】
以下でより詳細に説明するように、PLメモリ、オンチップメモリ、又はアクセラレータなどのプロセッサシステム内のコンポーネント内の割り当て可能メモリ120は、キャッシュコヒーレントドメイン110又はI/Oドメイン115のいずれかに部分的又は完全にマッピングすることができる。したがって、同じハードウェア実装形態が、それらの構成要素について柔軟な範囲の選択を可能にすることができ、変更しなければならないのは、割り当て可能メモリ120の好ましいマッピングを広告するデバイスツリーソフトウェアバイナリだけである。実装が対象とするアプリケーション空間に応じて、デバイスツリーは、マルチプロセッサキャッシュコヒーレントメモリパラダイムに従うことから利益を得る、キャッシュコヒーレントドメイン110にマッピングされたコンポーネント又はコンポーネントのサブセットを広告することができ、コンポーネントの割り当て可能メモリ120又はデータ構造は、プロセッサシステム105内の複数のプロセッサコアにわたって容易に共有され、キャッシュされ、又は移行され得る。同時に、I/Oドメイン115にマッピングされたコンポーネントのサブセットは、I/Oデバイスドライバメモリパラダイムに従うことができ、コンポーネントの割り当て可能メモリ120又はデータ構造は、プロセッサコア間のコンポーネントのリソースの共有がデバイスドライバによって処理される既存の又はより単純なI/Oデバイスドライバセマンティクスを活用することができる。
【0023】
割り当て可能メモリ120を有することによって、プロセッサシステム105内の新しいコンポーネントが、メインメモリパス(例えば、キャッシュコヒーレントドメイン110の一部である)又はMMIOパス(例えば、I/Oドメイン115の一部である)に沿ってアクセス可能なものとしてデバイスツリー内で表されるかどうかについての決定は、実装のために前もって行われる必要がない。代わりに、本明細書の実施形態は、コンポーネント内の割り当て可能メモリ120の展開モデルの決定が後で行われることを可能にする。ハードウェアが両方のパスを選択できるようにすることによって、パフォーマンスデータを評価することができ、又はユースケース分析を行うことができ、その結果、最良のパスが後で選択され、その展開モデルの適切なデバイスツリーソフトウェアバイナリを介してOSに広告される。
【0024】
更に、PLメモリなどの柔軟なコンポーネントをキャッシュコヒーレントドメイン110又はI/Oドメイン115のいずれかに割り当てることができ、その結果、PLリソースをより効率的に使用することができる。また、同じハードウェア実装形態は、必要に応じてデバイスツリー及びそのコンパニオンビットストリームを変更することによって、様々なユースケースをサポートすることができる。
【0025】
図2は、一例による、異なるドメインに割り当てることができるメモリを有するプロセッサシステム105Aのブロック図である。図2は、割り当て可能メモリ及び割り当て不可能メモリを含むことができる、図1のプロセッサシステム105の一実装形態を示す。図示されるように、プロセッサシステム105Aは、1つ以上のプロセッサコア205(例えば、中央処理ユニット(CPU))を含む。図示されていないが、各プロセッサコア205は、IC内の異なるハードウェア構成要素のためのタスクを実行する埋め込みOS(例えば、ソフトウェア)を含むことができる。
【0026】
これらのタスクを実行するために、プロセッサコア205は、相互接続210(例えば、コヒーレントメッシュネットワーク(CMN))に接続され、相互接続210は、スイッチ225(例えば、スイッチング回路)に結合される。相互接続210は、キャッシュコヒーレントパス215(例えば、ノーマル又はメインメモリパス)及びI/Oパス220(例えば、MMIOパス)を含む。プロセッサコア205と同じキャッシュコヒーレントドメインを共有するコンポーネントにデータを送信するとき、データはキャッシュコヒーレントパス215に沿って送信される。しかしながら、プロセッサコア205としてキャッシュコヒーレントドメインの一部ではない(すなわち、図1のI/Oドメイン115の一部である)コンポーネントと通信するとき、データは、I/Oパス220を使用する。
【0027】
キャッシュコヒーレントパス215及びI/Oパス220の両方は、スイッチ225に結合され、スイッチ225は、様々な構成要素、すなわち、オンチップメモリ230及びアクセラレータ235に結合される。これらの構成要素は、(オンチップメモリ230の場合のように)メモリ自体であるか、又は(アクセラレータ235内のアクセラレータメモリ240の場合のように)密結合メモリを含むかのいずれかである。したがって、本明細書の実施形態は、プロセッサコア205に通信可能に結合されたメモリを含むプロセッサシステム105内の任意のコンポーネントに適用することができる。
【0028】
図2では、オンチップメモリ230及びアクセラレータメモリ240が割り当て可能メモリであると仮定している。したがって、メモリ230、240は、両方とも同じドメインに割り当てられ得る(例えば、両方ともキャッシュコヒーレントドメインに割り当てられる)か、又は一方がキャッシュコヒーレントドメインに割り当てられ、他方がI/Oドメインに割り当てられ得る。更に、これらの割り当ては、後々必要に応じて変更することができる。
【0029】
どのドメインにメモリ230、240が割り当てられるかに応じて、プロセッサコア205とデータを共有するときにこれらのメモリ230、240が相互接続210内のどの経路を使用するかが決定される。メモリ230、240の両方がI/Oドメインに割り当てられる場合、プロセッサコア205及びメモリ230、240は、相互接続210を介してデータを送信するためにI/Oパス220を使用する。オンチップメモリ230がキャッシュコヒーレントドメインに割り当てられているが、アクセラレータ235及びそのメモリ240がI/Oドメインに割り当てられている場合、オンチップメモリ230はキャッシュコヒーレントパス215を使用し、アクセラレータメモリ240はI/Oパス220を使用する。これらの割り当てが変更される場合、相互接続210は、データが適切な経路上でルーティングされることを確実にするように再構成され得る。
【0030】
スイッチ225は、キャッシュコヒーレントパス215及びI/Oパス220の両方に結合される。これは直接接続として示されているが、相互接続210とスイッチ225との間に中間回路(例えば、図5で説明された回路)があってもよい。スイッチ225は、構成要素からデータを受信し、どの経路がそのデータを受信すべきかを決定することができる。例えば、オンチップメモリ230がキャッシュコヒーレントドメインに割り当てられている場合、スイッチ225は、このメモリ230から受信した任意のデータをキャッシュコヒーレントパス215にルーティングする。アクセラレータ235がI/Oドメインに割り当てられている場合、スイッチ225は、アクセラレータメモリ240から受信した任意のデータをI/Oパス220にルーティングする。これらの割り当てのうちの1つが変化した場合、スイッチ225は、対応するメモリから受信されたデータが相互接続210内の他の経路上でルーティングされるように再構成される。このようにして、スイッチ225は、コンポーネントを異なるドメインに再割り当てし、相互接続210内の異なるパスを使用するように切り替えることができる柔軟なハードウェアルーティング回路を提供する。
【0031】
ここでは示されていないが、スイッチ225は、割り当て不可能メモリを有するプロセッサシステム105A内の構成要素に接続することもできる。この場合、スイッチ225は、これらのメモリから受信したデータを異なる経路にルーティングするように更新することができない。すなわち、スイッチ225は、割り当て不可能メモリから受信したデータを常に相互接続210内の同じ経路にルーティングする。スイッチ225を割り当て不可能メモリに接続することは、以下の図6においてより詳細に説明される。
【0032】
プロセッサコア205は、アクセラレータ235内のオフロードアクセラレータ回路245を使用して、データ圧縮/解凍又はデータ暗号化/復号などの特殊タスクを実行することができる。例えば、プロセッサシステム105Aを含むICは、アクセラレータ(機械学習アクセラレータ、データ圧縮アクセラレータ、グラフィックス処理アクセラレータ、データ暗号化アクセラレータなど)であってもよい。これらのアクセラレータタスクは、主に図1のDPEアレイ150又はPL140によって実行されてもよい。しかしながら、プロセッサシステム105は、アクセラレータ(例えば、IC100)内のアクセラレータと考えることができるそれ自体のアクセラレータ235を有する。
【0033】
一実施形態において、プロセッサシステム105は、アクセラレータ235を含まないが、複数のオンチップメモリ230、又はキャッシュコヒーレントドメイン若しくはI/Oドメインに独立して割り当てられ得るメモリを有する他のタイプのコンポーネントを含むことができる。
【0034】
更に、メモリ230、240全体を1つのドメインに割り当てることができるが、他の実施形態では、物理メモリ230、240を別々のメモリに論理的に分割することができ、これらのメモリをキャッシュコヒーレントドメイン又はI/Oドメインのいずれかに独立に割り当てることができる。例えば、オンチップメモリ230内のメモリアドレスの第1の半分は、キャッシュコヒーレントドメインに割り当てられ(かつプロセッサコア205と通信するためにキャッシュコヒーレントパス215を使用し)、メモリ230内のメモリアドレスの第2の半分は、I/Oドメインに割り当てられ、プロセッサコア205と通信するためにI/Oパス220を使用することができる。したがって、メモリのドメインへの割り当ては、物理メモリ全体が1つのドメイン又は他のドメインに割り当てられる物理レベルで、又は物理メモリの部分が論理的に分割されて異なるドメインに割り当てられ得る論理レベルで実行され得る。
【0035】
図3は、一例による、異なるドメインに割り当てることができるメモリを有するプロセッサシステム105Bのブロック図である。プロセッサシステム105Bは、システム105BがPLコア305及びPLメモリ310を含むことを除いて、図2のプロセッサシステム105Aと同じである。例えば、プロセッサシステム105Bは、PLを含むICに実装されてもよく、一方、図2のプロセッサシステム105Aは、PLを有さないICに実装されてもよい。
【0036】
PLコア305(プログラマブルコアとも呼ばれる)は、異なるユーザアプリケーション又は機能を実行するように再構成することができるが、プロセッサコア205は固定機能を実行する。更に、PLコア305及びプロセッサコア205は、同じキャッシュコヒーレントドメインの一部であり得る。
【0037】
PLメモリ310は、プロセッサシステム105内のPLロジックブロック内のメモリであり得る。PLメモリ310は、プロセッサシステム105Bの外部にある図1に示されるPL140から分離されてもよい。すなわち、ICは、プロセッサシステム105内のPL(例えば、PLコア305及びPLメモリ310)、並びにIC内の他の場所のPL140を含むことができる。
【0038】
オンチップメモリ230及びアクセラレータメモリ240と同様に、図3は、PLメモリ310が、キャッシュコヒーレントドメイン(コア205、305と共有される)又はI/Oドメインのいずれかに独立して割り当て可能であると仮定する。その割り当てに応じて、スイッチ225は、PLメモリ310から受信したデータを、相互接続210内のキャッシュコヒーレントパス215又はI/Oパス220のいずれかにルーティングする。更に、この割り当ては、ユーザによって所望される場合、後で変更することができ、その場合、スイッチ225及び相互接続210は、PLメモリ310がコア205、305と通信するために他の経路を使用するように切り替わるように再構成される。
【0039】
更に、本明細書の実施形態は、図2及び図3に示される特定の構成要素(例えば、オンチップメモリ230、アクセラレータ235、及びPLメモリ310)に限定されない。一般に、本明細書の実施形態は、メモリを含むプロセッサシステム内の特定のタイプのコンポーネントにかかわらず、割り当て可能メモリをサポートすることができる。
【0040】
図4は、一例による、メモリをI/Oドメイン又はキャッシュコヒーレントドメインのいずれかに割り当てるための方法400のフローチャートである。ブロック405において、ユーザは、I/Oドメイン及びキャッシュコヒーレントドメインに割り当てられるプロセッサシステム内のメモリを選択する。一実施形態では、プロセッサシステム内のファームウェアは、IC内の割り当て可能メモリに対応する割り当てをユーザが提供(又は更新)することを可能にするアプリケーションプログラミングインターフェース(API)又は他のタイプのユーザアクセス可能メニュー(例えば、グラフィカルユーザインターフェース(GUI))を使用して、ユーザ選択を受信する。
【0041】
ブロック410において、プロセッサシステム内のファームウェアは、メモリに対応するレジスタを更新する。一実施形態では、各割り当て可能メモリ(物理メモリ又はそのメモリの論理パーティションとすることができる)は、メモリをキャッシュコヒーレントドメイン又はI/Oドメインに独立に割り当てることができるように、それ自体のレジスタを割り当てられる。
【0042】
図3のコンポーネントを例として使用すると、オンチップメモリ230のレジスタの値は、1つの値(例えば、0)を使用して、メモリ230へのアドレスのトラフィックの分配が無効にされる非キャッシュコヒーレントモード(すなわち、メモリ230がI/Oドメインに割り当てられる)を示し、第2の値(例えば、1)を使用して、メモリ230へのアドレスのトラフィックの分配が有効にされるキャッシュコヒーレントモデル(すなわち、メモリ230がキャッシュコヒーレントドメインに割り当てられる)を示すことができる。
【0043】
PLメモリ310のレジスタの値は、1つの値(例えば、0)を使用して、メモリ310へのアドレスのトラフィックの分配が無効にされる非キャッシュコヒーレントモード(すなわち、メモリ310がI/Oドメインに割り当てられる)を示し、第2の値(例えば、1)を使用して、メモリ310へのアドレスのトラフィックの分配が有効にされるキャッシュコヒーレントモデル(すなわち、メモリ310がキャッシュコヒーレントドメインに割り当てられる)を示すことができる。
【0044】
アクセラレータ235について、レジスタの値は、1つの値(例えば、0)を使用して、アクセラレータメモリ240へのアドレスのトラフィックの分配が無効にされる非キャッシュコヒーレントモード(すなわち、アクセラレータメモリ240がI/Oドメインに割り当てられる)を示し、第2の値(例えば、1)を使用して、アクセラレータメモリ240へのアドレスのトラフィックの分配が有効にされるキャッシュコヒーレントモデル(すなわち、アクセラレータメモリ240がキャッシュコヒーレントドメインに割り当てられる)を示すことができる。
【0045】
ブロック415において、ファームウェアは、ブロック410で設定されたレジスタ内の値を使用してスイッチを構成する。例えば、図2のオンチップメモリ230のレジスタがキャッシュコヒーレントドメイン/モードにあることを示す場合、ファームウェアは、読み出し要求に応答するときに、メモリ230から受信したデータを相互接続内のキャッシュコヒーレントパス215に転送するようにスイッチ225を構成する。逆に、オンチップメモリ230のためのレジスタが、それがI/Oドメイン/モードにあることを示す場合、ファームウェアは、読み取り要求に応答するとき、メモリ230から受信されたデータを相互接続内のI/Oパス220に転送するようにスイッチ225を構成する。このプロセスは、データがプロセッサコアからメモリに流れる書き込み要求に対して逆になる。
【0046】
ブロック420において、ファームウェアは、プロセッサ又はPLコアから受信されたデータが正しい経路上でルーティングされるように相互接続を構成する。例えば、割り当て可能メモリがキャッシュコヒーレントドメイン内にある場合、ファームウェアは、割り当て可能メモリに対応するメモリアドレスを有するコアから受信されたデータがキャッシュコヒーレントパスを使用してルーティングされるように、相互接続を構成する。スイッチ及び相互接続を構成することによって、ファームウェアは、コア及び割り当て可能メモリから受信されたデータが対応する経路上でルーティングされ、それによって、それらの経路に関連付けられた適切なプロトコル、例えば、キャッシュコヒーレントドメインの場合の厳密な読み取り及び書き込み順序付け、又はI/Oドメインの場合のデバイスドライバの使用に従うことを確実にする。
【0047】
ブロック425において、ファームウェアは、プロセッサシステム内のプロセッサコア内のOSに割り当てを通知する。プロセッサシステムが、複数の組み込みOSを有する複数のコアを有する場合、ファームウェアは、各OSに通知することができる。一実施形態では、プロセッサシステムを含むICは、例えば、それ自体のプロセッサ及びOSを有し得るPCIe接続を使用して、ホストコンピューティングシステムに接続され得る。ホストコンピューティングシステムは、プロセッサシステム内のメモリに対して行われた割り当てを知らされる必要はない。別の言い方をすれば、方法400は、ICの外部にあるがICと通信する任意のコンピューティングシステムに対して完全にトランスペアレントであり得る。
【0048】
ユーザが割り当て可能メモリに関する選択を変更するときはいつでも、方法400を繰り返すことができる。例えば、ユーザは、I/Oドメインに最初に割り当てられたメモリが、並列処理のためのより適切な環境を提供するキャッシュコヒーレントドメインに割り当てられた場合に、より良好に機能し得ると決定し得る。逆に、キャッシュコヒーレントドメインに最初に割り当てられたメモリは、より強い順序付け要件を有するI/Oドメインに割り当てられる場合、より単純なソフトウェアインターフェースを有することができる。しかしながら、割り当て可能メモリの割り当てを変更することは、ICが有効になる前に、ICがリブートされることを必要とし得る。
【0049】
図5は、一例による、割り当て可能メモリと割り当て不可能メモリの両方をキャッシュコヒーレントパスに接続するための回路を示す。図5は、相互接続210内のキャッシュコヒーレントパス215からデータを受信することを示す。このデータは、キャッシュコヒーレントドメインに割り当てられたメモリのアドレスを含むことができる。アドレスマスク回路505及びdemux選択回路510は、demux選択機能を実行して、メモリアクセスを適切なメモリにステアリングする。すなわち、demux選択回路510は、データを適切なメモリにルーティングするデマルチプレクサ(DEMUX)515に選択信号を出力する。
【0050】
この例では、DEMUX515の第1の出力はスイッチ225の入力に接続され、残りの出力はキャッシュコヒーレントドメイン内の割り当て不可能メモリに接続される。図2及び図3に既に示したように、割り当て可能メモリ(例えば、オンチップメモリ230、PLメモリ310、及びアクセラレータメモリ240)は、スイッチ225に接続される。したがって、割り当て可能メモリに指定されたデータを転送するとき、DEMUX515は、まずデータをスイッチ225にルーティングする。したがって、割り当て可能メモリは、スイッチ225を介してルーティングする1つの共通論理宛先の一部である。対照的に、割り当て不可能メモリは、キャッシュコヒーレントドメインに恒久的に割り当てられるので、スイッチ225に接続される必要はなく、したがって、プロセッサ又はPLコアと通信するために、相互接続内のキャッシュコヒーレントパスを常に使用する。割り当て可能メモリとは異なり、割り当て不可能メモリは、キャッシュコヒーレントパス内の個々の宛先に割り当てられる。
【0051】
したがって、図5は、相互接続内のキャッシュコヒーレントパスと、キャッシュコヒーレントドメイン内の割り当て不可能メモリをサポートするために使用することができるスイッチとの間に配置することができる回路を示す。プロセッサシステムがこのドメイン内に割り当て不可能メモリを有していない場合、図5の回路を省略することができ、キャッシュコヒーレントパスの出力をスイッチ225に直接接続することができる。
【0052】
図6は、一例による、割り当て可能メモリと割り当て不可能メモリの両方をI/Oパスに接続するための回路を示す。
【0053】
図示されるように、スイッチ225は、図2及び図3の相互接続210内のI/Oパス220からデータを受信するために使用される第1の入力と、図5のDEMUX515からキャッシュコヒーレントデータを受信するために使用される第2の入力とを含む。すなわち、スイッチ225の2つの入力は、どの特定のドメインに現在割り当てられているかにかかわらず、割り当て可能メモリのためのI/Oパス及びキャッシュコヒーレントパス上で送信されたデータをマージする。
【0054】
更に、スイッチ225は、I/Oドメイン内の割り当て不可能メモリへのデータのルーティングもサポートする。すなわち、スイッチ225は、I/Oドメインに割り当てられた割り当て可能メモリ及び割り当て不可能メモリの両方に宛てられたデータをI/Oパスから受信することができる。したがって、I/Oパスから受信されたデータは、割り当て可能メモリ又は割り当て不可能メモリのいずれかに宛てられ得る。しかしながら、図5のDEMUX515から受信されたデータは、DEMUX515がキャッシュコヒーレントドメイン内の割り当て不可能メモリに宛てられたデータを別々の出力にルーティングするので、割り当て可能メモリのみに宛てられる。したがって、この実施形態では、割り当て不可能メモリに宛てられたキャッシュコヒーレントデータは、スイッチ225に到達しない。しかし、代替実施形態では、図5及び図6に示す構成を逆にして、DEMUX515が、I/Oドメイン内の割り当て可能メモリ用のデータをスイッチ225に転送しながら、I/Oドメイン内の割り当て不可能メモリに宛てられたデータを別々の出力にルーティングすることができる。その場合、割り当て可能メモリ及び割り当て不可能メモリの両方のキャッシュコヒーレントデータがスイッチ225を介してルーティングされる間、割り当て不可能メモリに宛てられたI/Oデータはスイッチ225に到達しない。
【0055】
データがキャッシュコヒーレントであるかMMIOであるかにかかわらず、スイッチ225は、アドレスデータを評価してその宛先を決定することができ、すなわち、キャッシュコヒーレントデータを割り当て可能メモリのうちの1つにルーティングし、MMIOデータを割り当て可能メモリのうちの1つにルーティングし、又はMMIOデータを割り当て不可能メモリのうちの1つにルーティングすることができる。
【0056】
簡略化のために、図6は、コアから割り当て可能メモリ及び割り当て不可能メモリへ流れるデータを示す。しかしながら、上述したプロセスは、データが割り当て可能メモリ及び割り当て不可能メモリから相互接続を介してコアに流れる場合には逆にすることができる。例えば、割り当て可能メモリがスイッチ225にデータを送信する場合、スイッチ225は、割り当て可能メモリがキャッシュコヒーレント又はI/Oドメインの一部であるかどうかを判定する。キャッシュコヒーレントドメインの場合、スイッチ225は、第1の出力を使用して、相互接続のキャッシュコヒーレントパスにデータをルーティングすることができる。I/Oドメインの場合、スイッチ225は、第2の出力を使用して、相互接続のI/Oパスにデータをルーティングすることができる。対照的に、この例では、スイッチ225はI/Oドメイン内の割り当て不可能メモリにのみ結合されているので、スイッチ225は、割り当て不可能メモリから受信された任意のデータがI/Oパスに出力されるべきであることを知っている。キャッシュコヒーレントドメインに割り当てられた割り当て不可能メモリは、相互接続のキャッシュコヒーレントパスへの直接接続を有することができ、したがって、スイッチ225を完全にバイパスすることができる。
【0057】
前述では、本開示において提示される実施形態が参照される。しかしながら、本開示の範囲は、特定の記載された実施形態に限定されない。代わりに、説明される特徴及び要素の任意の組み合わせは、異なる実施形態に関連するか否かにかかわらず、企図される実施形態を実装及び実践するために企図される。更に、本明細書に開示される実施形態は、他の可能な解決策又は従来技術に勝る利点を達成し得るが、特定の利点が所与の実施形態によって達成されるか否かは、本開示の範囲を限定するものではない。したがって、前述の態様、特徴、実施形態、及び利点は、単に例示的なものであり、特許請求の範囲に明示的に列挙されている場合を除き、添付の特許請求の範囲の要素又は限定とはみなされない。
【0058】
当業者によって理解されるように、本明細書に開示される実施形態は、システム、方法、又はコンピュータプログラム製品として具現化され得る。したがって、態様は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態(ファームウェア、常駐ソフトウェア、マイクロコードなどを含む)、又は本明細書では全て一般に「回路」、「モジュール」、若しくは「システム」と称され得るソフトウェア態様とハードウェア態様とを組み合わせた実施形態の形態をとり得る。更に、態様は、コンピュータ可読プログラムコードが具現化された1つ以上のコンピュータ可読媒体において具現化されたコンピュータプログラム製品の形態をとり得る。
【0059】
1つ以上のコンピュータ可読媒体の任意の組み合わせを利用し得る。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読記憶媒体であり得る。コンピュータ可読記憶媒体は、例えば、電子、磁気、光学、電磁気、赤外線、若しくは半導体のシステム、装置、若しくはデバイス、又は前述の任意の好適な組み合わせであり得るが、これらに限定されない。コンピュータ可読記憶媒体のより具体的な例(非網羅的なリスト)は、1つ以上のワイヤを有する電気接続、ポータブルコンピュータディスケット、ハードディスク、ランダムアクセスメモリ(random access memory、RAM)、読み取り専用メモリ(read-only memory、ROM)、消去可能プログラマブル読み取り専用メモリ(erasable programmable read-only memory、EPROM又はフラッシュメモリ)、光ファイバ、ポータブルコンパクトディスク読み取り専用メモリ(portable compact disc read-only memory、CD-ROM)、光記憶デバイス、磁気記憶デバイス、又は前述の任意の好適な組み合わせを含む。本明細書の文脈では、コンピュータ可読記憶媒体は、命令実行システム、装置、又はデバイスによって、又はそれに関連して使用するためのプログラムを含むか、又は記憶することができる任意の有形媒体である。
【0060】
コンピュータ可読信号媒体は、例えば、ベースバンドにおいて、又は搬送波の一部として、コンピュータ可読プログラムコードが具現化された伝搬データ信号を含み得る。そのような伝搬信号は、電磁気、光学、又はそれらの任意の好適な組み合わせを含むが、それらに限定されない、種々の形態のうちのいずれかをとり得る。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、命令実行システム、装置、若しくはデバイスによって、又はそれに関連して使用するためのプログラムを通信、伝搬、若しくは移送することができる任意のコンピュータ可読媒体であり得る。
【0061】
コンピュータ可読媒体上に具現化されたプログラムコードは、ワイヤレス、ワイヤライン、光ファイバケーブル、RFなど、又は前述の任意の好適な組み合わせを含むが、それらに限定されない、任意の適切な媒体を使用して伝送され得る。
【0062】
本開示の態様の動作を実行するためのコンピュータプログラムコードは、例えば、Java、Smalltalk、C++などのオブジェクト指向プログラミング言語、及び「C」プログラミング言語又は同様のプログラミング言語などの従来の手続き型プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書き込まれ得る。プログラムコードは、ユーザのコンピュータ上で完全に、ユーザのコンピュータ上で部分的に、スタンドアロンソフトウェアパッケージとして、ユーザのコンピュータ上で部分的に、リモートコンピュータ上で部分的に、又はリモートコンピュータ若しくはサーバ上で完全に実行し得る。後者のシナリオでは、リモートコンピュータは、ローカルエリアネットワーク(local area network、LAN)若しくは広域ネットワーク(wide area network、WAN)を含む任意のタイプのネットワークを介してユーザのコンピュータに接続され得るか、又は外部コンピュータ(例えば、インターネットサービスプロバイダを使用するインターネットを介して)に接続され得る。
【0063】
本開示の態様は、本開示に提示された実施形態による方法、装置(システム)、及びコンピュータプログラム製品のフローチャート例解図及び/又はブロック図を参照して以下に記載されている。フローチャート例解図及び/又はブロック図の各ブロック、並びにフローチャート例解図及び/又はブロック図におけるブロックの組み合わせは、コンピュータプログラム命令によって実装することができることが理解されよう。これらのコンピュータプログラム命令は、コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令が、フローチャート及び/又はブロック図のブロックで指定された機能/行為を実装するための手段を作成するような機械をもたらすように、汎用コンピュータ、専用コンピュータ、又は他のプログラム可能なデータ処理装置のプロセッサに提供され得る。
【0064】
これらのコンピュータプログラム命令はまた、コンピュータ可読記憶媒体に記憶された命令が、フローチャート及び/又はブロック図のブロックで指定された機能/行為の態様を実装する命令を含む製品を生産するように、コンピュータ、プログラマブルデータ処理装置、及び/又は他のデバイスに、特定の様式で機能するように指示することができる、コンピュータ可読記憶媒体に記憶され得る。
【0065】
コンピュータプログラム命令はまた、コンピュータ、他のプログラマブルデータ処理装置、又は他のデバイスにロードされて、一連の動作ステップを、コンピュータ、他のプログラマブル装置、又は他のデバイス上で実行させて、コンピュータ実装プロセスを生成し得、そのため、コンピュータ、又は他のプログラマブル装置上で実行される命令は、フローチャート及び/又はブロック図のブロックに指定される機能/行為を実装するためのプロセスを提供する。
【0066】
図中のフローチャート及びブロック図は、本発明の様々な実施例によるシステム、方法、及びコンピュータプログラム製品の可能な実装形態のアーキテクチャ、機能、及び動作を例解する。これに関して、フローチャート又はブロック図の各ブロックは、指定された論理機能を実装するための1つ以上の実行可能命令を含む、命令のモジュール、セグメント、又は部分を表し得る。いくつかの代替的な実装形態では、ブロックに記載されている機能は、図に記載された順序から外れて発生する場合がある。例えば、連続して示される2つのブロックは、実際には実質的に同時に実行され得るか、又はブロックは、関与する機能に応じて、逆の順序で実行され得る。ブロック図及び/又はフローチャート例解図の各ブロック、並びにブロック図及び/又はフローチャート例解図におけるブロックの組み合わせは、指定された機能若しくは行為を行うか、又は専用ハードウェアとコンピュータ命令との組み合わせを実行する、専用ハードウェアベースのシステムによって実装することができることにも留意されたい。
【0067】
開示された技術の一部の例は、以下の非限定的な例において特徴付けられ得る。
【0068】
実施例1.集積回路(IC)内のプロセッサシステムであって、
キャッシュコヒーレントパス及び入力/出力(I/O)パスを有する相互接続と、
相互接続に接続されたプロセッサコアと、
キャッシュコヒーレントパス及びI/Oパスに接続されたスイッチと、
プロセッサコアと共有されるキャッシュコヒーレントドメイン、又はプロセッサコアと非キャッシュコヒーレントであるI/Oドメインのうちの1つに割り当てられるように構成された割り当て可能メモリと、を備え、スイッチは、キャッシュコヒーレントドメイン及びI/Oドメインへの割り当てに応じて、割り当て可能メモリとキャッシュコヒーレントパス及びI/Oパスとの間でデータをルーティングする、プロセッサシステム。
【0069】
実施例2.割り当て可能メモリは、キャッシュコヒーレントドメインに割り当てられることとI/Oドメインに割り当てられることとの間で切り替えられるように構成可能である、実施例1に記載のプロセッサシステム。
【0070】
実施例3.
キャッシュコヒーレントドメイン又はI/Oドメインのうちの1つに静的に割り当てられる非割り当て可能メモリを更に備える、実施例1に記載のプロセッサシステム。
【0071】
実施例4.
第1の数の割り当て不可能メモリが、キャッシュコヒーレントドメインに割り当てられ、相互接続及びプロセッサコアと通信するときにスイッチをバイパスし、第2の数の割り当て不可能メモリが、I/Oドメインに割り当てられ、スイッチを使用して相互接続及びプロセッサコアと通信するか、又は
第1の数の割り当て不可能メモリが、I/Oドメインに割り当てられ、相互接続及びプロセッサコアと通信するときにスイッチをバイパスし、第2の数の割り当て不可能メモリが、キャッシュコヒーレントドメインに割り当てられ、スイッチを使用して相互接続及びプロセッサコアと通信する、実施例3に記載のプロセッサシステム。
【0072】
実施例5.
アクセラレータであって、(i)プロセッサコアによって割り当てられたタスクを実行するように構成されたオフロードアクセラレータ回路と、(ii)割り当て可能メモリのうちの1つ、とを有する、アクセラレータを更に備える、実施例1に記載のプロセッサシステム。
【0073】
実施例6.
プロセッサコアとともにキャッシュコヒーレントドメインに割り当てられたプログラマブルロジック(PL)コアを更に備え、割り当て可能メモリのうちの1つがPLメモリである、実施例1に記載のプロセッサシステム。
【0074】
実施例7.スイッチは、キャッシュコヒーレントドメインに割り当てられた割り当て可能メモリのうちの第1の割り当て可能メモリから受信されたデータをキャッシュコヒーレントパスに転送し、I/Oドメインに割り当てられた割り当て可能メモリのうちの第2の割り当て可能メモリから受信されたデータをI/Oパスに転送するように構成される、実施例1に記載のプロセッサシステム。
【0075】
実施例8.集積回路(IC)であって、
プロセッサシステムであって、
キャッシュコヒーレントパス及び入力/出力(I/O)パスを有する相互接続と、
相互接続に接続されたプロセッサコアと、
キャッシュコヒーレントパス及びI/Oパスに接続されたスイッチと、
キャッシュコヒーレントドメイン又はI/Oドメインのうちの1つに割り当てられるように構成された割り当て可能メモリと、
プロセッサシステムに結合されたネットワークオンチップ(NoC)と、
NoCに結合されたデータ処理エンジンアレイと、を有する、プロセッサシステムを備える、集積回路(IC)。
【0076】
実施例9.割り当て可能メモリは、キャッシュコヒーレントドメインに割り当てられることとI/Oドメインに割り当てられることとの間で切り替えられるように構成可能であり、プロセッサコアは、キャッシュコヒーレントドメインに静的に割り当てられる、実施例8に記載のIC。
【0077】
実施例10.プロセッサシステムは、
キャッシュコヒーレントドメイン又はI/Oドメインのうちの1つに静的に割り当てられる非割り当て可能メモリを更に有する、実施例8に記載のIC。
【0078】
実施例11.
第1の数の割り当て不可能メモリが、キャッシュコヒーレントドメインに割り当てられ、相互接続及びプロセッサコアと通信するときにスイッチをバイパスし、第2の数の割り当て不可能メモリが、I/Oドメインに割り当てられ、スイッチを使用して相互接続及びプロセッサコアと通信するか、又は
第1の数の割り当て不可能メモリが、I/Oドメインに割り当てられ、相互接続及びプロセッサコアと通信するときにスイッチをバイパスし、第2の数の割り当て不可能メモリが、キャッシュコヒーレントドメインに割り当てられ、スイッチを使用して相互接続及びプロセッサコアと通信する、実施例10に記載のIC。
【0079】
実施例12.プロセッサシステムは、
アクセラレータであって、(i)プロセッサコアによって割り当てられたタスクを実行するように構成されたオフロードアクセラレータ回路と、(ii)割り当て可能メモリのうちの1つ、とを有する、アクセラレータを更に備える、実施例8に記載のIC。
【0080】
実施例13.プロセッサシステムは、
プロセッサコアとともにキャッシュコヒーレントドメインに割り当てられたプログラマブルロジック(PL)コアを更に備え、割り当て可能メモリのうちの1つがPLメモリである、実施例8に記載のIC。
【0081】
実施例14.スイッチは、キャッシュコヒーレントドメインに割り当てられた割り当て可能メモリのうちの第1の割り当て可能メモリから受信されたデータをキャッシュコヒーレントパスに転送し、I/Oドメインに割り当てられた割り当て可能メモリのうちの第2の割り当て可能メモリから受信されたデータをI/Oパスに転送するように構成される、実施例8に記載のIC。
【0082】
実施例15.方法であって、
プロセッサシステム内のメモリをキャッシュコヒーレントドメイン又はI/Oドメインのうちの1つに割り当てるステップと、
割り当てに基づいてスイッチを構成するステップであって、スイッチは、メモリと相互接続との間に通信可能に結合される、ステップと、
割り当てに基づいて相互接続を構成するステップであって、相互接続がスイッチとキャッシュコヒーレントドメイン内にあるプロセッサコアとの間に通信可能に結合される、ステップと、
プロセッサコア内のオペレーティングシステムに割り当てを通知するステップと、を含む、方法。
【0083】
上記は特定の例を対象とするが、他の例及び更なる例が、その基本的な範囲から逸脱することなく考案され得、その範囲は、以下の「特許請求の範囲」によって決定される。
図1
図2
図3
図4
図5
図6
【国際調査報告】