(57)【要約】【課題】分散キャッシュシステムにおける、1つまたは複数のパーティショングループ内に配置されたいくつかの受信側パーティションの電力状態の選択的な制御を可能にする方法、システム、およびデバイスを提供する。【解決手段】受信側パーティションのうちの1つまたは複数およびコヒーレントインターコネクトに結合された電力制御要素は、複数のパーティショングループのうちの1つまたは複数のパーティショングループの各受信側パーティションによって、現在の電力状態から新しい電力状態への移行を選択的に制御する。【選択図】図１
2017107557.tif 000002
【特許請求の範囲】
【請求項１】
複数のパーティショングループ内に配置された複数のアドレス指定できる受信側パーティションであって、各受信側パーティションが、関連するストレージ、およびプロセッサを有し、各パーティショングループが、パワードメインを有する、複数のアドレス指定できる受信側パーティションと、
コヒーレントインターコネクトと、
前記コヒーレントインターコネクトを介して複数のトランザクション要求を前記複数の受信側パーティションに送信するように構成された複数の送信元と、
前記アドレス指定できる受信側パーティションのうちの1つまたは複数および前記コヒーレントインターコネクトに結合され、前記複数のパーティショングループのうちの1つまたは複数のパーティショングループの各受信側パーティションによって現在の電力状態から新しい電力状態への移行を選択的に制御するように動作可能である電力制御要素と
を備える、キャッシュコヒーレントネットワーク。
【請求項２】
前記複数のパーティショングループにおける前記複数の受信側パーティションの配置が構成可能である、請求項1に記載のネットワーク。
【請求項３】
前記複数の受信側パーティションが、複数のホームノードパーティショングループ内に配置されたホームノードパーティションであり、前記複数の送信元が、要求ノードであり、各ホームノードパーティションが、前記複数の要求ノードのうちの1つまたは複数から受信された要求に対して、コヒーレンスポイント/シリアライゼーションポイントとして動作可能である、請求項1に記載のネットワーク。
【請求項４】
受信側パーティションの前記プロセッサが、前記電力制御要素であり、前記受信側パーティションによって前記現在の電力状態から前記新しい電力状態への移行を制御する、請求項1に記載のネットワーク。
【請求項５】
前記受信側パーティションが、電力状態移行コマンドを受信しない、請求項5に記載のネットワーク。
【請求項６】
複数の電力状態移行コマンドの受信に反応して、前記電力制御要素が、前記複数のパーティショングループにおける配置に関係なく、前記受信側パーティションに、前記現在の電力状態から前記新しい電力状態への電力状態の移行を実行するように命令する、請求項1に記載のネットワーク。
【請求項７】
各受信側パーティションに結合された電力状態レジスタと、前記電力制御要素に結合された割込みマスクとをさらに備え、前記電力制御要素が、前記電力状態レジスタ内に、前記1つまたは複数のパーティショングループの各受信側パーティションについての前記新しい電力状態を記憶するように動作可能であり、また前記電力制御要素が、前記複数の受信側パーティションから受信された電力状態移行の完了の際に、前記割込みマスクでフィルタリングさせるよう動作可能である、請求項1に記載のネットワーク。
【請求項８】
前記1つまたは複数のパーティショングループの前記受信側パーティションのそれぞれが、前記受信側パーティションによる、前記現在の電力状態から前記新しい電力状態への移行の実行後、電力状態移行完了メッセージを送信し、前記1つまたは複数のパーティショングループの前記受信側パーティションによる、前記電力状態移行完了メッセージの送信の際に、前記電力制御要素が、前記キャッシュコヒーレントネットワークの割込みコントローラによって受信された割込み信号をアサートする、請求項7に記載のネットワーク。
【請求項９】
前記電力制御要素が、前記受信側パーティションと関連付けられた状態レジスタビットを、前記受信側パーティションによって送信された前記電力状態移行完了メッセージの受信に応答して更新する、請求項8に記載のネットワーク。
【請求項１０】
1つまたは複数のパーティショングループ内に複数のアドレス指定できる受信側パーティションを配置するステップであって、各パーティショングループが、パワードメインを有するステップと、
前記1つまたは複数のパーティショングループの前記複数のアドレス指定できる受信側パーティションによって受信された複数の電力状態移行コマンドに反応して、前記1つまたは複数のパーティショングループの各受信側パーティションが、現在の電力状態から複数の電力状態の新しい電力状態への移行を求める受信された電力状態移行コマンドを実行するステップと、
前記受信側パーティションによる、前記現在の電力状態から前記新しい電力状態への移行が完了したとき、前記1つまたは複数のパーティショングループの各受信側パーティションが、電力状態移行完了メッセージを送信するステップと
を含む、キャッシュコヒーレントネットワークにおいて電力状態を動的に制御する方法。
【請求項１１】
各受信側パーティションによる、前記現在の電力状態から前記新しい電力状態への電力状態移行の完了時に、前記キャッシュコヒーレントネットワークの電力制御要素の電力割込みマスクでフィルタリングさせるステップをさらに含む、請求項10に記載の方法。
【請求項１２】
前記キャッシュコヒーレントネットワークの電力制御要素が、各受信側パーティションに、前記新しい電力状態を提供するステップをさらに含む、請求項10に記載の方法。
【請求項１３】
前記複数の受信側パーティションのうちのある受信側パーティションのプロセッサが、前記受信側パーティションによる、前記現在の電力状態から前記新しい電力状態への移行を制御するステップであって、電力状態移行コマンドが、前記受信側パーティションによって受信されないステップをさらに含む、請求項10に記載の方法。
【請求項１４】
前記1つまたは複数のパーティショングループのすべての受信側パーティションが前記現在の状態から前記新しい状態への電力状態移行を完了すると、割込み信号をアサートするステップをさらに含む、請求項10に記載の方法。
【請求項１５】
受信側パーティションと関連付けられた状態レジスタビットを、前記受信側パーティションからの電力状態移行完了メッセージの受信に反応して更新するステップをさらに含む、請求項10に記載の方法。
【請求項１６】
第1の受信側パーティションおよび第2の受信側パーティションに対する前記複数の電力状態のうちの前記新しい電力状態が異なっている、請求項10に記載の方法。
【請求項１７】
前記キャッシュコヒーレントネットワークのハードウェアインタフェースを介した第2の複数の電力状態移行コマンドの受信に反応して、前記キャッシュコヒーレントネットワークの電力制御要素が、前記1つまたは複数のパーティショングループにおける各アドレス指定できる受信側パーティションに、前記複数の電力状態移行コマンドを送信するステップをさらに含む、請求項10に記載の方法。
【請求項１８】
前記1つまたは複数のパーティショングループの前記複数の受信側パーティションのそれぞれの前記電力状態をいつ移行するかを決定するために、前記複数のパーティショングループのうちの1つまたは複数の、前記複数の受信側パーティションの1つまたは複数のアクティビティパラメータを監視するステップをさらに含む、請求項10に記載の方法。
【請求項１９】
前記1つまたは複数のパーティショングループにおける前記複数のアドレス指定できる受信側パーティションの前記配置を変更することにより、前記1つまたは複数のパーティショングループを再構成するステップをさらに含む、請求項10に記載の方法。
【請求項２０】
前記1つまたは複数のパーティショングループの各受信側パーティションが、前記現在の電力状態から前記新しい電力状態への移行を求める前記受信された電力状態移行コマンドに反応して、前記受信側パーティションに関連付けられたストレージをフラッシュするステップをさらに含む、請求項10に記載の方法。
【請求項２１】
各受信側パーティションの電力状態レジスタ内に、前記新しい電力状態を記憶するステップをさらに含む、請求項10に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散キャッシュシステムにおける分離型電力状態制御に関する。
【背景技術】
【０００２】
キャッシュコヒーレントネットワーク(CCN)では、ハードウェアインタフェースを使用して、ネットワークにおけるすべてのキャッシュパーティションのパワードメインをグローバルに制御することができる。このグローバルな手法は、各領域がその領域特有のパワードメイン要件をもつことになるので、いくつかのアドレスドメイン領域が導入されるときには適切でない。さらに、各キャッシュパーティションにハードウェア制御を使用するCCNのためのインターコネクト実装は、キャッシュパーティションの数が極めて大きくなり得るので、システムオンチップ(SOC)レベルにおいて扱いにくくなる。
【発明の概要】
【課題を解決するための手段】
【０００３】
添付図面は、様々な代表的な実施形態についてより完全に説明するために使用され、また開示される代表的な実施形態とその固有の利点をより良く理解するために当業者によって使用可能である視覚的な表現を提供する。これらの図面において同様の参照番号は、対応する要素を識別する。
【図面の簡単な説明】
【０００４】
【図１】様々な代表的な実施形態による、2つの例示的なパワードメイン構成が示されている分散キャッシュシステムのブロック図である。
【図２】さらに様々な代表的な実施形態による、分散キャッシュシステムのブロック図である。
【図３】様々な代表的な実施形態による、分散キャッシュシステムにおける電力状態制御の方法を示す流れ図である。
【図４】様々な代表的な実施形態による、ハードウェアを使用して受信側デバイスの電力状態を直接制御することができる分散キャッシュシステムのブロック図である。
【図５】様々な代表的な実施形態による、受信側デバイスが動的保持電力移行を内部で開始する分散キャッシュシステムのブロック図である。
【発明を実施するための形態】
【０００５】
本明細書に記載の様々な方法、システム、装置、およびデバイスは、アドレスドメイン領域と関連付けられたパワードメインの選択的な制御を可能にする。
【０００６】
本発明は、多くの異なる形態で実施が可能であるが、本開示は、本発明の原理の例として見なされるべきであり、本発明を、図示され、説明される特定の実施形態に限定することを意図するものではないという理解の下で、特定の実施形態が、図示され、また本明細書において詳細に説明される。以下の説明では、同じ参照番号は、図面のいくつかの図において同じ部分、類似の部分、または対応する部分を説明するために使用される。
【０００７】
本明細書では、「第1の」および「第2の」、「一番上の」および「一番下の」などの関係を示す用語は、必ずしも、そうしたエンティティもしくはアクション間のいかなる実際の関係または順序を必要とする、あるいは意味することなしに、単にあるエンティティまたはアクションを別のエンティティまたはアクションから区別するために使用することができる。「備える、含む(comprises)」、「備える、含む(comprising)」という語、またはそのいかなる他の変化形は、要素のリストを含むプロセス、方法、製品、または装置が、それらの要素だけを含むのではなく、明示的にリストされていない、もしくはそうしたプロセス、方法、製品、または装置に固有でない他の要素を含んでもよいような、非排他的な包含をカバーするものである。「備える、含む(comprises…a)」が先行する要素は、さらなる制約なく、要素を含むプロセス、方法、製品、または装置において追加の同一の要素の存在を排除しない。
【０００８】
本明細書を通じた「一実施形態(one embodiment)」、「ある実施形態(certain embodiments)」、「一実施形態(an embodiment)」、または類似の用語の言及は、実施形態と共に説明される特定の特徴、構造、または特性が、本発明の少なくとも1つの実施形態に含まれることを意味する。したがって、そうした語句の出現、または本明細書全体の様々な箇所における出現は、必ずしも同じ実施形態にすべて言及するわけではない。さらに、特定の特徴、構造、または特性は、限定することなく、1つまたは複数の実施形態において任意の適当なやり方で組み合わされてもよい。
【０００９】
本明細書で使用される場合、「または、もしくは、あるいは(or)」という用語は、包含的なものとして、または任意の1つもしくは任意の組合せを意味するものとして解釈されるべきである。したがって、「A、B、またはC」は、「『A』、『B』、『C』、『AおよびB』、『AおよびC』、『BおよびC』、『A、B、およびC』のいずれか」を意味する。この定義の例外は、要素、機能、ステップ、または行為の組合せが、本質的に相互排他的な何らかの形であるときにのみ発生することになる。
【００１０】
説明を簡単かつ分かりやすくするために、参照番号は、対応する要素または類似の要素を表示できるよう、図の中で繰り返すことができる。本明細書に記載の実施形態の理解を可能にするために、数多くの詳細について述べる。実施形態は、これらの詳細がなくても実践され得る。他の例では、よく知られた方法、プロシージャ、およびコンポーネントは、説明する実施形態を不明瞭にしないように、詳述されていない。説明は、本明細書に記載の実施形態の範囲に制限されるものとして見なされるべきではない。
【００１１】
本明細書で開示する様々な実施形態によれば、いくつかの個々のアドレス指定できる受信側パーティション(receiver partition)は、アドレス指定できるメモリアクセスを提供する1つまたは複数のパーティショングループ(非均一メモリアクセス(NUMA)領域などのアドレスドメイン領域)にグループ分けすることができる。そうしたパーティショングループのパワードメインは、または個々の受信側パーティションのパワードメインでさえも、キャッシュコヒーレンシシステムの電力消費を管理し、制御するために、選択的に変更することができる。開示される実施形態は、各パーティショングループに対する個々の選択的なパワードメイン制御を、また個々の受信側パーティションの電力制御さえも、ハードウェアメカニズムとソフトウェアメカニズムの組合せを通じて可能にする。それぞれのパーティショングループの電力インタフェースは、それぞれのHNパーティションがパーティショングループ内でどのようにグループ分けされるかを認識している、マイクロコントローラ(MCU)上に存在するソフトウェアによって制御されてもよい。パーティショングループの数は、SoCの特定のアーキテクチャに応じて、2つ以上であってよく、またパーティショングループ内の受信側パーティションのグループ分けは、構成可能であってもよい。
【００１２】
本明細書において使用される場合、送信元(sender)という用語は、要求ノードまたは要求元(RN)、開始元デバイス、供給源、あるいはトランザクション要求をインターコネクト回路または構造を介して1つもしくは複数の受信側または受信側パーティションに流す他のトランザクション生成デバイスを指してもよい。次いで、トランザクションおよび要求を生成する任意のデバイスとして、送信元は、データプロセッサ、グラフィックエンジン、グラフィックポーズプロセッサ(GPP、graphics pose processor)、処理要素もしくは処理コア、処理コアのクラスタ、入力/出力(I/O)マスタ、デジタル信号プロセッサ(DSP)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)デバイスなどのデータ処理システムにおけるマスタまたは開始元デバイスであり得るが、これらは、限定ではなく例示を目的とする。さらに、トランザクション要求は、送信元によって生成されても、また送信元によって別のデバイスから受信され、次いでインターコネクトを介して受信側に送信されてもよい。受信側は、ホームノード(HN)やターゲットなどの、トランザクション要求を受信して実行する任意のデバイスであってもよい。したがって、受信側は、コヒーレンシコントローラやトランザクション要求を受信する別のインターコネクトなどの中間デバイスであってもよく、またはトランザクション要求の最終宛先であってもよい。トランザクション要求は、受信側によってリソースの状態が更新されることを求める、送信元による受信側への要求であってもよい。トランザクション要求の例には、順序付き書込み、順序付き読取り、無効化要求などのメモリの読取りまたは書込み要求、およびメモリマッピングされた周辺デバイスへのアクセスを求める要求が含まれる。「リソース」、「データリソース」、「バッファリソース」などは、複数のデバイスからアクセスでき、また、更新または変更され得る状態が関連付けられている。リソースの例には、メモリのバイト、レジスタ中のビットなどが含まれる。
【００１３】
キャッシュコヒーレントネットワーク(CCN)において使用できる様々なタイプのRNには、完全にコヒーレントな要求ノード(RN-F)ならびにIOコヒーレント要求ノード(RN-I)が含まれる。RN-Fノードの例には、本明細書に記載の図に示すような中央処理装置(CPU)またはCPUクラスタ、デジタル信号プロセッサ(DSP)、およびグラフィカル処理ユニット(GPU)が含まれる。RN-Iノードの例には、直接メモリアクセス(DMA)ノード、PCI-Eバス、ネットワークエンジン、ネットワークインタフェースコントローラ(NIC)、およびマイクロコントローラ(MCU)が含まれる。
【００１４】
CCNにおける受信側パーティションは、ターゲットまたは受信側デバイスパーティションであってもよい。受信側パーティションは、システムキャッシュなどの関連するストレージ、およびスヌープフィルタを有してもよいが、これは、要件ではない。受信側は、常にキャッシュを含むわけではないが、常にCCNにおけるコヒーレンスポイントであることになる。したがって、1つまたは複数の送信元からのトランザクション要求の受信側として、HNパーティションは、それぞれの共有キャッシュメモリと関連付けられたメモリアドレスを検出でき、受信されたトランザクション要求に対応するために必要な処理リソースを動的に割当て可能な、コヒーレンスポイント/シリアライゼーションポイント(POC/POS)として機能することができる。したがって、HNパーティションは、インターコネクトを介してRNに通じており、1つまたは複数のRNからのトランザクション要求を受信して要求の完了時に完了メッセージを返す。CCNの場合、HNパーティションは、HN-Fとして示される完全にコヒーレントなHNであってもよい。しかし、HNパーティションまたはHN-Fキャッシュパーティションの言及は、HN-Fもそのうちの1つの特定のタイプにすぎない様々なタイプのメモリパーティションを包含することが理解される。グループ分けされたHNパーティションは、共にキャッシュを構成することができる。さらに、HNパーティションの2つのグループは、2つの独立したキャッシュを表すことができる。
【００１５】
キャッシュメモリは、ランダムアクセスメモリ(RAM)、読取り専用メモリ(ROM)、フラッシュメモリ、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、大容量ストレージ(ハードディスクドライブ、フロッピーディスクドライブ、光ディスクドライブなど)といった任意の適当なストレージテクノロジであってもよく、または他の電子的記憶媒体、および不揮発性メモリ(NVM)に対応してもよい。メモリは、アクティブメモリであってもよく、または例えばROM、EEPROM、もしくはフラッシュメモリ内に恒久的に常駐してもよい。
【００１６】
図1に示すように、ホームノード130(HN130)として示されるHNパーティションは、コヒーレントインターコネクト120を介して、この例において本明細書ではCPUクラスタ190として示されるRNに通じている。CPUクラスタ190は、複数のプロセッサコア、および共有ローカルキャッシュメモリを含んでもよい。HN130は、CPUクラスタ190のうちの1つまたは複数からのトランザクション要求をコヒーレントインターコネクト120を介して受信して、要求の完了時に完了メッセージを返す。前に論じたように、HN130などのHNパーティションは、HN-Fとして示される完全にコヒーレントなHNであってもよい。しかし、HNパーティションまたはHN-Fキャッシュパーティションの言及は、HN-Fもそのうちの1つの特定のタイプにすぎない様々なタイプのメモリパーティションを包含することが理解される。
【００１７】
電力制御ブロック(PCB)140などの、システムの1つまたは複数のクロックも制御できる電力制御要素は、図示するように、1つまたは複数のアドレス指定できる受信側パーティションHN130、コヒーレントインターコネクト120、および割込みコントローラ150に結合され、また1つまたは複数のパーティショングループの受信側パーティションによって現在の電力状態から新しい電力状態への移行を選択的に制御するように動作可能である。コヒーレントインターコネクト120は、マルチコアCPUクラスタ190のクラスタ間に完全なキャッシュコヒーレンシを提供するために、プロセッサのCPUクラスタ190と、MCU160のようなコントローラとの間にハードウェアインタフェースを提供する。コヒーレントインターコネクト120は、周辺装置などの他のデバイスおよびネットワークインタフェースにIOコヒレンシをさらに提供してもよい。
【００１８】
SOCとして実装されたCCNは、電力制御ならびに構成および他のタスクを管理するためのシステム制御プロセッサを備えてもよい。システム制御プロセッサは、本明細書に示すMCU160などのシステム制御マイクロコントローラユニット(MCU)、またはパワーMCU、またはCPUといった、メモリ要求を送信する任意のIOコヒーレントなRNノードであってもよい。MCUソフトウェアはまた、システムアドレスマップ(SAM)構成に関与する可能性が最も高いため、様々なHNパーティショングループと関連付けられたNUMA領域を認識している。
【００１９】
割込みコントローラ150は、代表的なシステムにおけるすべての割込みに対応し、またPCB140を介して受信された割込み信号145に反応する。割込みコントローラ150によって生成される割込み155は、1つもしくは複数のHN130、CUPクラスタ190、またはシステムの周辺装置からなどの、システム内の様々な割込みソースに反応することができ、そうした割込みソースは、PCB140によって割込みコントローラ150に通知される。
【００２０】
あるCCNインターコネクトは、すべてのHN-Fパーティションのパワードメインをグローバルに制御するために、ハードウェアインタフェースを実装しようとする。しかし、このグローバルな手法は、各NUMAグループがそのグループ特有のパワードメイン要件をもつ場合があるので、メモリアクセスパーティショングループまたはNUMA領域におけるHN-Fパーティションのグループ分けにとって、不適切または最適ではない場合がある。さらに、メモリアクセスパーティショングループのグローバルなハードウェア制御は、一部のアーキテクチャに対するHN-Fパーティションの数が32にもなる可能性があるので、SOCレベルにおいて扱いにくくなる恐れがある。
【００２１】
本明細書に記載されるようなCCNネットワークにおいて、HN-Fパーティションは、パーティショングループにグループ分けすることができ、グループ分けは、起動時にソフトウェアにおいて構成可能である。各パーティショングループは、そのパーティショングループの特定のHN-Fパーティションを備える、異なる範囲のアドレスを含むことになり、また異なるパーティショングループは、異なる論理的目的のために使用することができる。例えば、異なるパーティショングループは、分割OS手法において、異なるオペレーティングシステム(OS)をサポートすることができる。異なるパーティショングループは、異なるキャッシュ要件をもつワークロードまたはタスクをサポートできる。例えば、特定のパーティショングループと関連付けられた1つのメモリアドレス領域は、システムワークロードに基づいた完全なシステムレベルキャッシュ(SLC)容量を必要とする場合があり、一方で別のパーティショングループは、割り当てられたタスクを実行するために全くキャッシュを必要としない場合がある。異なるHN-Fパーティションにおいて動作する別々のワークロードは、全く異なる帯域幅または容量の要件をもっていてもよい。例えば、パーティショングループと関連付けられたNUMA領域のためのワークロードが、パーティショングループによって提供された帯域幅またはキャッシュ容量を必要としないか、利用しない場合、HN-Fパーティションのパーティショングループは、電源が落とされてもよい。
【００２２】
例えば、図1に示す特定の例では、2つの異なる構成のパーティショングループ、すなわちパーティショングループ170およびパーティショングループ180がある。4つの異なるパーティショングループ170があり、それぞれが独自のパワードメインを備えている。各パーティショングループ170は、この特定の例においては、4つのHNを備える横列として示されている。別の構成のパーティションは、2つのパーティショングループ180によって示されており、それぞれが、2つの縦列のHN130から成り、パーティショングループ180ごとに計8つのHNを備えている。各パーティショングループ180は、独自のパワードメインを備えている。この場合も、HNパーティションの言及は、完全にコヒーレントなHNパーティション、すなわちHN-Fを含む。しかし、HNパーティションまたはHN-Fキャッシュパーティションの言及は、HN-Fもそのうちの1つの特定のタイプにすぎない様々なタイプのメモリパーティションを包含することが理解される。
【００２３】
本明細書に記載されるように、様々な実施形態が、ネットワークのHN-Fパーティションの電力状態および/またはパーティションHN-Fグループの電力状態の動的かつ柔軟な制御を可能にする。HN-Fによる電力状態移行の完了に反応したフィルタリングされた割込み生成は、パーティショングループごとに、またはCCNにおけるすべてのHN-Fパーティション向けに、HN-Fパーティションの電力状態移行を通知する1つの手法である。MCUソフトウェアは、1つまたは複数のパーティショングループのHN-Fパーティションの電力状態の変更を求める要望に反応して、NUMA領域(パーティショングループ)にわたって、電力状態を管理することができる。
【００２４】
ここで図3の流れ図300を参照すると、分離された受信側デバイスパーティショングループの電力状態を制御するための方法が示されている。MCUソフトウェアは、ブロック310において、ネットワークにおける各パーティショングループのHN-Fアクティビティのアクティビティパラメータをパフォーマンスカウンタを介して監視することができる。例えば、HN-Fパーティションのアクティビティパラメータまたはパフォーマンスパラメータを監視することは、この判定を行うために、パーティショングループのHN-F、もしくはパーティショングループのHN-Fと関連付けられたHN-Fキャッシュヒットレートにより、ある期間にわたって、キャッシュアクセスの数を監視すること、またはHN-Fパーティションの電力状態レジスタをポーリングすることを含み得る。判定ブロック320において、パーティショングループのHN-Fパーティションの電力状態の変更が必要となったか、要望されるようになったと判定される場合、ブロック330において、MCUが、CCNの電力割込みマスクをプログラムし、それによって問題にしているターゲットパーティショングループにおけるHN-Fの電力状態の完了時に電力割込みマスクでフィルタリングさせる。これは、図1に示すように、パーティショングループ170および180のすべてに対してのHN-Fである場合も、図2のキャッシュコヒーレントネットワーク200に示すように、パーティショングループ180のHN-Fに対してのみである場合もある。
【００２５】
ブロック340において、MCUは、各HN-Fパーティションに必要とされる機能的電力状態を備えた、パーティショングループ内の各HN-Fパーティションの電力状態レジスタをプログラムするなどにより、所望の電力状態を各HN-Fパーティションに提供する。この意味で、MCUは、所望の新しい電力状態を示す電力状態指標をパーティショングループの各HN-Fパーティションに提供する。ブロック350において、ターゲットパーティショングループ内の各HN-Fパーティションは、MCUからの電力状態移行コマンドの受信に応答して、電力状態レジスタに従って、機能的電力状態の移行を実行し、現在の電力状態から新しい電力状態に移行する。受信された電力状態移行コマンドのHN-Fによる実行は、関連するHN-Fキャッシュをフラッシュすること、ならびに特定のHN-Fパーティションと関連付けられたシステムレベルキャッシュおよびランダムアクセスメモリ(RAM)を新しい必要とされる電力状態にすることを含んでもよい。図1に示すように、ブロック360において、対象となる各HN-Fは、電力状態移行の完了時に、電力状態移行完了メッセージを、電力制御ブロックPCB140を介してグローバルな電力割込み論理である割込みコントローラ150に送信する。パーティショングループにおける影響を受けるすべてのHN-Fパーティションの電力状態移行が完了した後、MCUに電力状態移行が完了したことを通知するために、電力割込み155が割込みコントローラ150によってアサートされる。これは、図1および図2に示されている。
【００２６】
ある実施形態によれば、1つまたは複数のパーティショングループのHNパーティションのHN-F割込みマスクおよび状態レジスタは、PCB140内に常駐し得る。割込みマスクは、1つまたは複数のパーティショングループの対応するパワードメインにおけるHN-F130のそれぞれに対してソフトウェアによって設定されてもよい。図1に示すように、HN-F130は、現在の電力状態から新しい電力状態への移行の完了時に、電力状態移行完了メッセージを電力制御ブロック140に送信する。PCB140は次いで、PCB状態レジスタ内にそのHN-Fに対して状態レジスタビットを設定してもよい。問題にしているパーティショングループの状態レジスタにおけるマスクされたHN-F完了ビットのすべてが設定されると、割込み信号145がアサートされる(生成される)。システムが複数のパワードメインにおける電力状態移行を必要とする場合、MCUは、移行ドメインのすべてにおけるHN-Fに対してマスクビットを設定する。この場合、割込み信号145は、複数のドメインにおけるすべてのホームノードが電力状態移行を完了させた後に、アサートされる。
【００２７】
HN-Fパーティションのパーティショングループ分けにかかわらず、すべてのHN-Fパーティションにわたる電力状態のグローバルなハードウェアインタフェース制御も構想される。HN-Fパワードメインのソフトウェア制御に加えて、外部のハードウェア構成に基づくリセットのディアサート時に、または以下で示されるように要求/応答信号インタフェースを使用する制御シグナリングを介して、電力移行要求または電力移行メッセージをすべてのHN-Fパーティションに送信する機能がある。これらの要求は、PCB140によってすべてのHN-Fパーティションに送信される。この手法は、HN-Fパワードメイン機能のいずれも必要としないSOCのソフトウェア要件および複雑さを低減するか解消する。HN-Fパーティションは、完全なHN-F動作状態に直接リセットすることができる。
【００２８】
HN-Fパーティションのパーティショングループ分けにかかわらず、PCB140は、ハードウェアによって開始される状態変更を可能にする。ここで図4のキャッシュコヒーレントネットワーク400を参照すると、リセットのディアサート時に、またはシステムの要求/応答シグナリング時に、電力移行要求(メッセージ)が、図に示すようにハードウェアインタフェース410を介してPCB140に送信される。PCB140は、パーティショングループ内のグループ分けの有無にかかわらず、受信した電力移行要求をすべてのHN-Fパーティション130に送信する。個々のHN-Fパーティション130は、PCB140から得た受信した電力移行メッセージに従って、電力状態を変更する。ハードウェアによって開始される状態変更の例示的な一実装形態は、SoC電力制御論理とPCBの間の要求/応答信号インタフェースである。SoCは、PCBにフル稼働の電力状態に移行するように要求する。PCBは次いで、すべてのHN-Fパーティションに、各自のキャッシュおよびスヌープフィルタ論理を完全に有効にするようにメッセージを送信する。各HN-Fパーティションは、移行が完了したとき、完了メッセージをPCBに送信し、PCBは、すべてのHN-Fパーティションが移行を完了した後、肯定応答をアサートしてSoCに返す。
【００２９】
さらなる例示的な実施形態によれば、1つまたは複数のHN-Fパーティションの電力状態は、それぞれのHN-Fパーティション自体によって制御することができる。現在の電力状態から新しい電力状態への電力状態移行を制御し、実行する、HN-Fパーティションの外部にある入力は、必要とされないか、求められない。したがって、前に論じた実施形態とは違って、PCB140からか、MCU160からかを問わず、外部の電力状態移行コマンドなどの入力は必要ない。HN-Fパーティション自体のプロセッサが、電力制御要素として振る舞い、現在の電力状態から新しい電力状態への実行を制御する。次いで、図5の例では、ホームノード510自体が、PCB140からか、MCU160からかを問わず、電力状態移行コマンドなどの入力なしで、動的な電力保持移行を内部で開始する。内部で生成される電力移行の一例は、HN-Fパーティションの非活動状態によって起動される動的保持である。HN-Fパーティションは、非活動状態のサイクルの数を追跡するカウンタを実装することができ、閾値に達したときに動的保持状態を起動する。動的保持状態は、HN-FキャッシュRAMを、キャッシュデータが保持されるが、そのデータにアクセスすることはできない低電力状態にする。HN-Fパーティションは、HN-Fパーティションの機能を必要とするアクティビティが起きると、動的保持状態を終了する。
【００３０】
本明細書で使用される場合、電力状態または受信側デバイスの電力状態は、かなり変動することがあり、またそれぞれの受信側デバイスのモードに応じて異なる可能性がある。例えば、受信側デバイスの停止と関連付けられた電力状態、受信側デバイスの動作モードと関連付けられた電力状態、および受信側デバイスの動的保持モードと関連付けられたさらに他の電力状態があってもよい。例えば、受信側デバイスがキャッシュメモリである場合、受信側デバイスは、異なるレベルの容量(例えば、減少したキャッシュウェイ数)、およびキャッシュRAMについての異なるレベルの保持状態を有する種々の機能的電力状態を備えてもよい。
【００３１】
本明細書において使用される場合、プロセッサ、コントローラなどの用語は、プロセッサ、コントローラ、マイクロコントローラユニット(MCU)、マイクロプロセッサ、および他の適当な制御要素を包含することができる。本明細書に記載の本発明の実施形態は、1つまたは複数の従来のプロセッサ、およびある種の非プロセッサ回路と共に、本明細書に記載の機能のうちのいくつか、大部分、もしくはすべてを実装するための1つまたは複数のプロセッサを制御する独自の記憶されているプログラム命令から成ってもよいことが理解されよう。非プロセッサ回路には、受信機、送信機、無線機、信号ドライバ、クロック回路、電源回路、およびユーザ入力デバイスが含まれてもよいが、それらに限定されるものではない。したがって、これらの機能は、本発明と一致するある実施形態による機能を実行するための方法として解釈されてもよい。代替方法として、いくつかのまたはすべての機能は、記憶されているプログラム命令をもたない状態機械によって、あるいは各機能または特定の機能のいくつかの組合せがカスタム論理回路として実装される、1つまたは複数の特定用途向け集積回路(ASIC)において実装できるであろう。無論、これらの手法の組合せを使用することもできる。さらに、本明細書に開示されている概念および原理によって導かれるときに、例えば使用可能な時間、現在の技術、および経済的な考慮事項などによって動機付けされる、場合によっては多大になる労力および多くの設計選択肢にも関わらず、当業者はこのようなソフトウェア命令およびプログラムならびにICを最小限の実験で容易に生成できることが期待される。
【００３２】
したがって、本明細書に記載の様々な実施形態によれば、キャッシュコヒーレントネットワークは、複数のパーティショングループ内に配置された複数のアドレス指定できる受信側パーティションであって、各受信側パーティションが、関連するストレージ、およびプロセッサを有し、各パーティショングループが、パワードメインを有する、複数のアドレス指定できる受信側パーティションと、コヒーレントインターコネクトと、コヒーレントインターコネクトを介して複数のトランザクション要求を複数の受信側パーティションに送信するように構成された複数の送信元と、アドレス指定できる受信側パーティションのうちの1つまたは複数およびコヒーレントインターコネクトに結合され、複数のパーティショングループのうちの1つまたは複数のパーティショングループの各受信側パーティションによって現在の電力状態から新しい電力状態への移行を選択的に制御するように動作可能である電力制御要素とを備える。
【００３３】
本開示のある実施形態によれば、キャッシュコヒーレントネットワークにおいて電力状態を動的に制御する方法が提供され、この方法は、1つまたは複数のパーティショングループ内に複数のアドレス指定できる受信側パーティションを配置するステップであって、各パーティショングループが、パワードメインを有するステップと、1つまたは複数のパーティショングループの複数のアドレス指定できる受信側パーティションによって受信された複数の電力状態移行コマンドに反応して、1つまたは複数のパーティショングループの各受信側パーティションが、現在の電力状態から複数の電力状態の新しい電力状態への移行を求める受信された電力状態移行コマンドを実行するステップと、受信側パーティションによる、現在の電力状態から新しい電力状態への移行が完了したとき、1つまたは複数のパーティショングループの各受信側パーティションが、電力状態移行完了メッセージを送信するステップとを含む。
【００３４】
当業者であれば、本発明が、プログラムされたプロセッサの使用に基づいて、例示的な実施形態に関して説明されてきたことが理解されよう。しかし、本発明は特殊用途のハードウェアなどのハードウェアコンポーネントの同等物、および/または説明し、特許請求したような本発明の同等物である専用プロセッサを使用して実装できるため、本発明はそのように限定されるべきではない。同様に、汎用コンピュータ、マイクロプロセッサベースのコンピュータ、マイクロコントローラ、光コンピュータ、アナログコンピュータ、専用プロセッサ、および/または専用配線論理回路を使用して、本発明の代替の同等の実施形態を構築することができる。
【００３５】
さらに、当業者は、前述の実施形態を実装するために使用するプログラムフローおよび関連するデータは、本発明から逸脱することなく、読取り専用メモリ(ROM)、ランダムアクセスメモリ(RAM)、電気的消去可能プログラマブル読取り専用メモリ(EEPROM)、不揮発性メモリ(NVM)、大容量ストレージ(ハードディスクドライブ、フロッピーディスクドライブ、光ディスクドライブなど)、光ストレージ要素、磁気ストレージ要素/光磁気ストレージ要素、フラッシュメモリ、コアメモリ、および/または他の同等のストレージテクノロジといった様々な形態のストレージを使用して実装できることを認識するであろう。そうした代替の記憶装置は、同等物と見なされるべきである。
【００３６】
本明細書に記載の様々な実施形態は、任意の適当な電子的記憶媒体に記憶する、または任意の適当な電子的通信媒体を介して送信することができる、流れ図形式で大まかに記載したプログラム命令を実行するプログラムされたプロセッサを使用して実装される。しかし、当業者は、前述のプロセスは、本発明から逸脱することなく、いくつもの変形形態で、また多くの適当なプログラミング言語で実装できることを認識するであろう。例えば、本発明から逸脱することなく、実行されるある特定の動作の順序はしばしば変更可能であり、追加の動作を追加可能であり、または動作を削除可能である。本発明から逸脱することなく、エラートラッピングは追加および/または拡張可能であり、変形形態はユーザインタフェースおよび情報プレゼンテーションにおいて作成可能である。そうした変形形態は、同等物と考えられ、見なされる。
【００３７】
したがって、開示された実施形態のいくつかの態様および特徴が、以下の番号の付いた項目において説明される。
項目1
複数のパーティショングループ内に配置された複数のアドレス指定できる受信側パーティションであって、各受信側パーティションが、関連するストレージ、およびプロセッサを有し、各パーティショングループが、パワードメインを有する、複数のアドレス指定できる受信側パーティションと、
コヒーレントインターコネクトと、
コヒーレントインターコネクトを介して複数のトランザクション要求を複数の受信側パーティションに送信するように構成された複数の送信元と、
アドレス指定できる受信側パーティションのうちの1つまたは複数およびコヒーレントインターコネクトに結合され、複数のパーティショングループのうちの1つまたは複数のパーティショングループの各受信側パーティションによって現在の電力状態から新しい電力状態への移行を選択的に制御するように動作可能である電力制御要素と
を備える、キャッシュコヒーレントネットワーク。
項目2
複数のパーティショングループにおける複数の受信側パーティションの配置が構成可能である、項目1に記載のネットワーク。
項目3
複数の受信側パーティションが、複数のホームノードパーティショングループ内に配置されたホームノードパーティションであり、複数の送信元が、要求ノードであり、各ホームノードパーティションが、複数の要求ノードのうちの1つまたは複数から受信された要求に対して、コヒーレンスポイント/シリアライゼーションポイントとして動作可能である、項目1に記載のネットワーク。
項目4
受信側パーティションのプロセッサが、電力制御要素であり、受信側パーティションによって現在の電力状態から新しい電力状態への移行を制御する、項目1に記載のネットワーク。
項目5
受信側パーティションが、電力状態移行コマンドを受信しない、項目5に記載のネットワーク。
項目6
複数の電力状態移行コマンドの受信に反応して、電力制御要素が、複数のパーティショングループにおける配置に関係なく、受信側パーティションに、現在の電力状態から新しい電力状態への電力状態の移行を実行するように命令する、項目1に記載のネットワーク。
項目7
各受信側パーティションに結合された電力状態レジスタと、電力制御要素に結合された割込みマスクとをさらに備え、電力制御要素が、電力状態レジスタ内に、1つまたは複数のパーティショングループの各受信側パーティションについての新しい電力状態を記憶するように動作可能であり、また電力制御要素が、複数の受信側パーティションから受信された電力状態移行の完了の際に、割込みマスクでフィルタリングさせるよう動作可能である、項目1に記載のネットワーク。
項目8
1つまたは複数のパーティショングループの受信側パーティションのそれぞれが、受信側パーティションによる、現在の電力状態から新しい電力状態への移行の実行後、電力状態移行完了メッセージを送信し、1つまたは複数のパーティショングループの受信側パーティションによる、電力状態移行完了メッセージの送信の際に、電力制御要素が、キャッシュコヒーレントネットワークの割込みコントローラによって受信された割込み信号をアサートする、項目7に記載のネットワーク。
項目9
電力制御要素が、受信側パーティションと関連付けられた状態レジスタビットを、受信側パーティションによって送信された電力状態移行完了メッセージの受信に応答して更新する、項目8に記載のネットワーク。
項目10
1つまたは複数のパーティショングループ内に複数のアドレス指定できる受信側パーティションを配置するステップであって、各パーティショングループが、パワードメインを有するステップと、
1つまたは複数のパーティショングループの複数のアドレス指定できる受信側パーティションによって受信された複数の電力状態移行コマンドに反応して、1つまたは複数のパーティショングループの各受信側パーティションが、現在の電力状態から複数の電力状態の新しい電力状態への移行を求める受信された電力状態移行コマンドを実行するステップと、
受信側パーティションによる、現在の電力状態から新しい電力状態への移行が完了したとき、1つまたは複数のパーティショングループの各受信側パーティションが、電力状態移行完了メッセージを送信するステップと
を含む、キャッシュコヒーレントネットワークにおいて電力状態を動的に制御する方法。
項目11
各受信側パーティションによる、現在の電力状態から新しい電力状態への電力状態移行の完了時に、キャッシュコヒーレントネットワークの電力制御要素の電力割込みマスクでフィルタリングさせるステップをさらに含む、項目10に記載の方法。
項目12
キャッシュコヒーレントネットワークの電力制御要素が、各受信側パーティションに、新しい電力状態を提供するステップをさらに含む、項目10に記載の方法。
項目13
複数の受信側パーティションのうちのある受信側パーティションのプロセッサが、受信側パーティションによる、現在の電力状態から新しい電力状態への移行を制御するステップであって、電力状態移行コマンドが、受信側パーティションによって受信されないステップをさらに含む、項目10に記載の方法。
項目14
1つまたは複数のパーティショングループのすべての受信側パーティションが現在の状態から新しい状態への電力状態移行を完了すると、割込み信号をアサートするステップをさらに含む、項目10に記載の方法。
項目15
受信側パーティションと関連付けられた状態レジスタビットを、受信側パーティションからの電力状態移行完了メッセージの受信に反応して更新するステップをさらに含む、項目10に記載の方法。
項目16
第1の受信側パーティションおよび第2の受信側パーティションに対する複数の電力状態のうちの新しい電力状態が異なっている、項目10に記載の方法。
項目17
キャッシュコヒーレントネットワークのハードウェアインタフェースを介した第2の複数の電力状態移行コマンドの受信に反応して、キャッシュコヒーレントネットワークの電力制御要素が、1つまたは複数のパーティショングループにおける各アドレス指定できる受信側パーティションに、複数の電力状態移行コマンドを送信するステップをさらに含む、項目10に記載の方法。
項目18
1つまたは複数のパーティショングループの複数の受信側パーティションのそれぞれの電力状態をいつ移行するかを決定するために、複数のパーティショングループのうちの1つまたは複数の、複数の受信側パーティションの1つまたは複数のアクティビティパラメータを監視するステップをさらに含む、項目10に記載の方法。
項目19
1つまたは複数のパーティショングループにおける複数のアドレス指定できる受信側パーティションの配置を変更することにより、1つまたは複数のパーティショングループを再構成するステップをさらに含む、項目10に記載の方法。
項目20
1つまたは複数のパーティショングループの各受信側パーティションが、現在の電力状態から新しい電力状態への移行を求める受信された電力状態移行コマンドに反応して、受信側パーティションに関連付けられたストレージをフラッシュするステップをさらに含む、項目10に記載の方法。
項目21
各受信側パーティションの電力状態レジスタ内に、新しい電力状態を記憶するステップをさらに含む、項目10に記載の方法。
【００３８】
本明細書で詳述された様々な代表的な実施形態は、限定を目的とせず、例示を目的として提示されてきた。当業者であれば、添付の特許請求の範囲の中にとどまる同等の実施形態となる、説明された実施形態の形態および細部の様々な変更がなされ得ることが理解されよう。
【符号の説明】
【００３９】
120  コヒーレントインターコネクト
130  ホームノード、HN-Fパーティション
140  電力制御ブロック
145  割込み信号
150  割込みコントローラ
155  割込み、電力割込み
160  マイクロコントローラユニット
170  パーティショングループ
180  パーティショングループ
190  CPUクラスタ
200  キャッシュコヒーレントネットワーク
400  キャッシュコヒーレントネットワーク
410  ハードウェアインタフェース
510  ホームノード
【図１】
2017107557.tif 000003
【図２】
2017107557.tif 000004
【図３】
2017107557.tif 000005
【図４】
2017107557.tif 000006
【図５】
2017107557.tif 000007
【外国語明細書】
2017107557000001.pdf