(57)【要約】スコアボードを使用して、構成状態レジスタへの更新を追跡するシステム、装置及び方法が開示される。システムは、１つ以上の処理ノードと、１つ以上のメモリデバイスと、複数の構成状態レジスタと、処理ユニット（複数可）及びメモリデバイス（複数可）に接続された通信ファブリックと、を含む。システムは、スコアボードを使用して、実行時に構成状態レジスタの更新を追跡する。ノードがパワーゲーテッド状態になる前に、システムは、変更された構成状態レジスタのみを記憶する。これにより、パワーゲーテッド状態に移行する毎にメモリに書き込まれるデータの量が低減し、ノードがパワーゲーテッド状態で費やすことができる時間が増加する。また、構成状態レジスタは、メモリアクセス粒度と一致するようにグループ化され、構成状態レジスタの各グループは、対応するスコアボードエントリを有する。【選択図】図５
2021515305.tif 000002
【特許請求の範囲】
【請求項１】
システムであって、
１つ以上の処理ノードと、
メモリと、
複数の構成状態レジスタと、を備え、
前記システムは、
スコアボードを維持して、所定の処理ノードのパワーゲーテッド状態への以前の移行以降に前記複数の構成状態レジスタのうち何れの構成状態レジスタが更新されたかを追跡することと、
前記所定の処理ノードを前記パワーゲーテッド状態に移行させる条件を検出したことに応じて、前記複数の構成状態レジスタのサブセットのみを前記メモリに書き込むことであって、前記サブセットは前記スコアボードによって示される、ことと、
を行うように構成されている、
システム。
【請求項２】
前記システムは、メモリアクセス粒度と一致する粒度で前記スコアボード内のエントリを維持するようにさらに構成されている、
請求項１のシステム。
【請求項３】
複数の構成状態レジスタは、単一のスコアボードエントリによってまとめて追跡され、
前記複数の構成状態レジスタのサイズの合計は、前記メモリアクセス粒度と一致する、
請求項１のシステム。
【請求項４】
前記システムは、構成状態レジスタを、線形アドレス空間の連続するアドレスにマッピングするようにさらに構成されている、
請求項１のシステム。
【請求項５】
前記システムは、前記構成状態レジスタを記憶及び復元するために、前記線形アドレス空間のアドレスを前記メモリのアドレスにマッピングするようにさらに構成されている、
請求項４のシステム。
【請求項６】
前記システムは、前記所定の処理ノードが前記パワーゲーテッド状態に移行することに応じて、前記スコアボードをリセットするようにさらに構成されている、
請求項１のシステム。
【請求項７】
前記システムは、前記所定の処理ノードが前記パワーゲーテッド状態を終了することに応じて、前記メモリに記憶された値から前記複数の構成状態レジスタを復元するようにさらに構成されている、
請求項１のシステム。
【請求項８】
方法であって、
制御ユニットによって、スコアボードを維持して、所定のコンポーネントのパワーゲーテッド状態への以前の移行以降に複数の構成状態レジスタのうち何れの構成状態レジスタが更新されたかを追跡することと、
所定の構成状態レジスタへの更新を検出したことに応じて、前記制御ユニットによって、前記スコアボード内の対応するエントリに指標を記憶することと、
前記所定のコンポーネントを前記パワーゲーテッド状態に移行させる条件を検出したことに応じて、前記所定のコンポーネントによって、前記複数の構成状態レジスタのサブセットのみをメモリに書き込むことであって、前記サブセットは前記スコアボードによって示される、ことと、を含む、
方法。
【請求項９】
メモリアクセス粒度と一致する粒度で前記スコアボード内のエントリを維持することをさらに含む、
請求項８の方法。
【請求項１０】
複数の構成状態レジスタは、単一のスコアボードエントリによってまとめて追跡され、
前記複数の構成状態レジスタのサイズの合計は、前記メモリアクセス粒度と一致する、
請求項８の方法。
【請求項１１】
構成状態レジスタを、線形アドレス空間の連続するアドレスにマッピングすることをさらに含む、
請求項８の方法。
【請求項１２】
前記構成状態レジスタを記憶及び復元するために、前記線形アドレス空間のアドレスを前記メモリのアドレスにマッピングすることをさらに含む、
請求項１１の方法。
【請求項１３】
前記所定のコンポーネントが前記パワーゲーテッド状態に移行することに応じて、前記スコアボードをリセットすることをさらに含む、
請求項８の方法。
【請求項１４】
前記所定のコンポーネントが前記パワーゲーテッド状態を終了することに応じて、前記メモリに記憶された値から前記複数の構成状態レジスタを復元することをさらに含む、
請求項８の方法。
【請求項１５】
装置であって、
処理ノードと、
制御ユニットと、
メモリと、を備え、
前記制御ユニットは、
スコアボードを維持して、所定の処理ノードのパワーゲーテッド状態への以前の移行以降に複数の構成状態レジスタのうち何れの構成状態レジスタが更新されたかを追跡することと、
前記所定の処理ノードを前記パワーゲーテッド状態に移行させる条件を検出したことに応じて、前記複数の構成状態レジスタのサブセットのみを前記メモリに書き込むことであって、前記サブセットは前記スコアボードによって示される、ことと、
を行うように構成されている、
装置。
【請求項１６】
前記制御ユニットは、メモリアクセス粒度と一致する粒度で前記スコアボード内のエントリを維持するようにさらに構成されている、
請求項１５の装置。
【請求項１７】
複数の構成状態レジスタは、単一のスコアボードエントリによってまとめて追跡され、
前記複数の構成状態レジスタのサイズの合計は、前記メモリアクセス粒度と一致する、
請求項１５の装置。
【請求項１８】
前記制御ユニットは、構成状態レジスタを、線形アドレス空間の連続するアドレスにマッピングするようにさらに構成されている、
請求項１５の装置。
【請求項１９】
前記制御ユニットは、前記構成状態レジスタを記憶及び復元するために、前記線形アドレス空間のアドレスを前記メモリのアドレスにマッピングするようにさらに構成されている、
請求項１８の装置。
【請求項２０】
前記制御ユニットは、前記所定の処理ノードが前記パワーゲーテッド状態に移行することに応じて、前記スコアボードをリセットするようにさらに構成されている、
請求項１５の装置。
【発明の詳細な説明】
【背景技術】
【０００１】
（関連技術の説明）
コンピューティングシステムは、シングルチップ又はマルチチップモジュール上に多数の異なるタイプのコンポーネントを集積することが多くなっている。システムの複雑さと消費電力は、異なるタイプのコンポーネントの数と共に増加する。電力管理は、集積回路、特にモバイルデバイス内に集積される回路の設計及び動作の重要な側面である。モバイルデバイスは、通常、バッテリ電力に依存しており、集積回路の消費電力を低減することによって、バッテリの寿命を延ばし、集積回路によって発生する熱を低減することができる。消費電力を低減するために、集積回路内の様々なコンポーネントを省電力状態又はパワーゲーティング状態にすることができる。本明細書で使用される場合、「パワーゲーティング状態」とは、コンポーネントが通常の動作モードよりも消費電力が少ないモードでコンポーネントが動作しているときの低電力状態を指す。例えば、「パワーゲーティング状態」には、特定のコンポーネントの電源をオフにしたり、電力を切断したりすることを含むことができる。或いは、「パワーゲーティング状態」には、電源電圧の低減及び／又は所定のコンポーネントに供給されるクロック周波数の低減を含むことができる。なお、「パワーゲーティング状態」は、「パワーゲーテッド状態」又は「パワーゲーテッドモード」と呼ぶこともある。様々な実施形態では、パワーゲーテッド状態は、デバイス又はコンポーネントの現在の状態が保持されない（すなわち、そのような状態を保持するために通常使用される電力が、より少ない電力を消費するために除去される）低電力状態を指す。
【０００２】
一部のコンピューティングシステムでは、パワーゲーティング状態に移行する前に、構成レジスタの状態をメモリ（例えば、ダイナミックランダムアクセスメモリ（ＤＲＡＭ））に保存する。パワーゲーティングが終了すると、構成レジスタの状態が復元される。本明細書で使用する場合、「構成レジスタの状態」とは、コンピューティングシステムの所定のコンポーネントを識別し、所定のコンポーネントの様々な機能を定義し、システムソフトウェアが所定のコンポーネントとインターフェースし及び／又は所定のコンポーネントの動作を制御するのを可能にする複数の構成レジスタの値として定義される。構成レジスタは、制御状態レジスタ（ＣＳＲ）又はモデル特定レジスタ（ＭＳＲ）と呼ばれることもあることに留意されたい。「構成レジスタの状態」は「構成スペース」とも呼ばれ得る。構成レジスタは、通信ファブリック、メモリコントローラ、中央処理装置（ＣＰＵ）、グラフィックス処理装置（ＧＰＵ）、又は、他のコンポーネント等のコンポーネントのデバイスの内部レジスタであってもよい。オペレーティングシステム、デバイスドライバー及び診断ソフトウェアは、通常、所定のコンポーネントの動作中に構成スペースにアクセスする。
【０００３】
システムがパワーゲーティング状態に移行する毎に構成レジスタの状態をメモリに保存すると遅延が発生し、パワーゲーティング状態で消費される総時間が減少する。また、構成レジスタの状態全体をメモリに書き込むと、電力使用のペナルティが発生する。したがって、異なる電力状態間で移行するときに、構成レジスタの状態を管理するための改善された技術が望まれる。
【０００４】
添付図面と併せて以下の説明を参照することによって、本明細書に記載される方法及びメカニズムの利点をより良く理解することができるであろう。
【図面の簡単な説明】
【０００５】
【図１】コンピューティングシステムの一実施形態のブロック図である。
【図２】コンピューティングシステムの別の実施形態のブロック図である。
【図３】コンピューティングシステムの別の実施形態のブロック図である。
【図４】線形アドレス空間へのアドレススティッチング（address stitching）構成状態レジスタの一実施形態の図である。
【図５】スコアボードを使用して構成状態レジスタ書き込みを追跡する方法の一実施形態を示す一般化されたフロー図である。
【図６】構成状態レジスタアドレススティッチングを実行する方法の一実施形態を示す一般化されたフロー図である。
【図７】スコアボードエントリ追跡をメモリアクセス粒度（granularity）に一致させるための方法の一実施形態を示す一般化された流れ図である。
【発明を実施するための形態】
【０００６】
以下の説明では、本明細書で提示される方法及びメカニズムの完全な理解をもたらすために、多数の特定の詳細が示される。しかしながら、当業者は、これらの特定の詳細無しに様々な実施形態を実施し得ることを認識すべきである。いくつかの例では、本明細書で説明されるアプローチを曖昧にすることを避けるために、周知の構造、コンポーネント、信号、コンピュータプログラム命令及び技術が詳細に示されていない。説明を簡単且つ明瞭にするために、図に示された要素は、必ずしも縮尺通りに描かれていないことが理解されよう。例えば、いくつかの要素の寸法は、他の要素に対して誇張されてもよい。
【０００７】
レジスタ書き込みを追跡するスコアボードを実装するための様々なシステム、装置、方法及びコンピュータ可読媒体を本明細書に開示する。一実施形態では、システムは、少なくとも１つ以上の処理ユニットと、通信ファブリックと、スコアボードと、メモリと、を含む。システムは、スコアボードを使用して構成レジスタの書き込みを追跡し、前回のパワーゲーテッド状態への移行以降に更新されなかった構成レジスタが、メモリへの保存動作をトリガしないようにする。通常、構成状態は実行時に変更されないので、スコアボードによって実施されたフィルタリングは、パワーゲーテッド状態に移行する毎にメモリへの書き込みを低減するのに効果的であると期待される。
【０００８】
一実施形態では、システムのメモリは、１つ以上のダイナミックランダムアクセスメモリ（ＤＲＡＭ）デバイスとして実装される。特定のＤＲＡＭタイプでは、書き込み電力が読み出し電力よりも大きいので、ＤＲＡＭへの書き込みを回避することにより、構成状態の保存動作のＤＲＡＭ電力を半分以上削減することができる。一実施形態では、スコアボードは、ＤＲＡＭデバイスと同じアクセス粒度で実装される。この実施形態では、ＤＲＡＭチャネルに保存されるレジスタは、ＤＲＡＭチャネルと同じアクセス粒度を有し、同じスコアボードエントリによってまとめて追跡される。
【０００９】
一実施形態では、構成レジスタのアドレス指定は、アドレス空間内で疎らに割り当てられる。例えば、レジスタアドレス指定は、広範囲のＰＣＩｅ（Peripheral Component Interconnect Express）アドレス空間に実装することができる。一実施形態では、レジスタ間のアドレス指定ホールを不必要に保存及び復元することを回避するために、アドレス指定スキームが使用される。このアドレス指定スキームでは、パワーゲーティングに関連する保存及び復元動作に使用される連続するアドレスに構成レジスタを繋ぎ合わせることを含む。この連続するアドレス空間は、スコアボード操作のためにレジスタが何れのＤＲＡＭアクセスチャンクに属するかを決定するのを容易にすることができる。
【００１０】
図１を参照すると、コンピューティングシステム１００の一実施形態のブロック図が示されている。一実施形態では、コンピューティングシステム１００は、少なくともコア複合体１０５Ａ〜１０５Ｎと、入出力（Ｉ／Ｏ）インターフェース１２０と、バス１２５と、メモリコントローラ（複数可）１３０と、ネットワークインターフェース１３５と、電力管理ユニット１４５と、を含む。他の実施形態では、コンピューティングシステム１００は、他のコンポーネントを含むことができ、及び／又は、コンピューティングシステム１００は、異なる構成とすることができる。一実施形態では、各コア複合体１０５Ａ〜１０５Ｎは、中央処理装置（ＣＰＵ）等の１つ以上の汎用プロセッサを含む。「コア複合体」は、本明細書では「処理ノード」又は「ＣＰＵ」とも呼ばれ得ることに留意されたい。いくつかの実施形態では、１つ以上のコア複合体１０５Ａ〜１０５Ｎは、高度に並列なアーキテクチャを備えたデータ並列プロセッサを含むことができる。データ並列プロセッサの例には、グラフィックス処理ユニット（ＧＰＵ）、デジタル信号プロセッサ（ＤＳＰ）等が含まれる。一実施形態では、コア複合体１０５Ａ〜１０５Ｎ内の各プロセッサコアは、１つ以上のレベルのキャッシュを備えたキャッシュサブシステムを含む。
【００１１】
メモリコントローラ（複数可）１３０は、コア複合体１０５Ａ〜１０５Ｎによってアクセス可能な任意の数及びタイプのメモリコントローラを表す。メモリコントローラ１３０（複数可）は、任意の数及びタイプのメモリデバイス（図示省略）に接続されている。例えば、メモリコントローラ１３０（複数可）に接続されるメモリデバイス（複数可）１３０内のメモリのタイプには、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ＮＡＮＤフラッシュメモリ、ＮＯＲフラッシュメモリ、又は、強誘電体ランダムアクセスメモリ（ＦｅＲＡＭ）等が含まれてもよい。Ｉ／Ｏインターフェース１２０は、任意の数及びタイプのＩ／Ｏインターフェース（例えば、ＰＣＩ（Peripheral Component Interconnect）バス、ＰＣＩ−Ｅｘｔｅｎｄｅｄ（ＰＣＩ−Ｘ）、ＰＣＩＥ（ＰＣＩ  Ｅｘｐｒｅｓｓ）バス、ギガビットイーサネット（登録商標）（ＧＢＥ）バス、ユニバーサルシリアルバス（ＵＳＢ））を表す。様々なタイプの周辺機器デバイスをＩ／Ｏインターフェース１２０に接続することができる。このような周辺機器デバイスには、ディスプレイ、キーボード、マウス、プリンタ、スキャナ、ジョイスティック、他のタイプのゲームコントローラ、メディア記録デバイス、外部記憶装置、及び、ネットワークインターフェースカード等が含まれる（但し、これらに限定されない）。電力管理ユニット１４５は、これらのコンポーネントの電力状態を変更することによって、システム１００の様々なコンポーネントの電力消費を管理する。例えば、コンポーネントが閾値時間アイドル状態である場合、電力管理ユニット１４５は、コンポーネントをパワーゲーテッドモードにして、システム１００の電力消費を低減することができる。
【００１２】
様々な実施形態では、コンピューティングシステム１００は、サーバ、コンピュータ、ラップトップ、モバイルデバイス、ゲームコンソール、ストリーミングデバイス、ウェアラブルデバイス、又は、様々な他のタイプのコンピューティングシステム若しくはデバイスの何れかであってもよい。コンピューティングシステム１００のコンポーネントの数は、実施形態毎に変わってもよいことに留意されたい。例えば、図１に示す数よりも多い又は少ない各コンポーネントが存在してもよい。また、コンピューティングシステム１００は、図１に示されていない他のコンポーネントを含むことができることに留意されたい。さらに、他の実施形態では、コンピューティングシステム１００は、図１に示す以外の方法で構成されてもよい。
【００１３】
図２を参照すると、コンピューティングシステム２００の別の実施形態のブロック図が示されている。一実施形態では、コンピューティングシステム２００は、処理ユニット２１０と、ファブリック２１５と、電力管理ユニット２２０と、メモリコントローラ２３０と、メモリデバイス（複数可）２４０と、を少なくとも含む。他の実施形態では、コンピューティングシステム２００は、他のコンポーネントを含むことができ、及び／又は、コンピューティングシステム２００は、異なる構成とすることができる。さらに、コンポーネントの１つのインスタンスが図２に示されているが、他の実施形態では、システム２００は、図２に示すコンポーネントの複数のインスタンスを含むことができることを理解されたい。例えば、別の実施形態では、コンピューティングシステム２００は、追加の処理ユニット、メモリコントローラ等を含むことができる。
【００１４】
処理ユニット２１０は、任意の数及びタイプの処理ユニットを表す。処理ユニット２１０は、任意の数のコアを含むことができ、各コアは、ソフトウェア命令を実行するための任意の数の実行ユニットと、コアによって使用されるデータをキャッシュするためのキャッシュサブシステムと、を含む。また、処理ユニット２１０は、処理ユニット２１０の状態を記憶するための構成状態レジスタ２４５Ａを含む。電力管理ユニット２２０が処理ユニット２１０をパワーゲーティングモードにするための条件を検出すると、構成状態レジスタ２４５Ａの値がメモリデバイス（複数可）２４０に記憶される。構成状態レジスタ２４５Ａの記憶されたバージョンは、メモリデバイス（複数可）２４０の構成状態レジスタ２４５Ｂとして示されている。メモリデバイス（複数可）２４０は、システム２００内に含まれる任意の数及びタイプのメモリデバイスを表す。例えば、一実施形態では、メモリデバイス（複数可）２４０は、ＤＲＡＭデバイスで実装される。他の実施形態では、他のタイプのメモリデバイス（例えば、スタティックランダムアクセスメモリ（ＳＲＡＭ）、不揮発性ＲＡＭ等）を使用して、メモリデバイス（複数可）２４０を実装することができる。
【００１５】
本明細書で使用される場合、「低電力モード」という用語は、コンポーネント又はデバイスを動作させるための低電力状態として定義することができる。一実施形態では、「低電力モード」は、コンポーネント又はデバイスから電力を除去する（すなわち、パワーゲーテッドする）ことを含む。別の実施形態では、「低電力モード」は、コンポーネント又はデバイスの電力消費を低減するために、コンポーネント又はデバイスを低電力状態にすることを含む。例えば、コンポーネント／デバイスに供給される電圧及び／又はクロック周波数を低減することによって、コンポーネント／デバイスを低電力状態にすることができる。
【００１６】
処理ユニット２１０がパワーゲーテッドモードに移行する毎に構成状態レジスタ２４５Ａ全体をメモリデバイス（複数可）２４０に書き込むのではなく、スコアボード２５０を使用して、処理ユニット２１０が最後にパワーゲーテッドモードに移行してから何れのレジスタが更新されたかを追跡することができる。次に、処理ユニット２１０がパワーゲーテッドモードに移行しようとすると、更新されたレジスタのサブセットのみがメモリデバイス（複数可）２４０に書き込まれる。更新されていない他のレジスタは、既存の値が、メモリデバイス（複数可）２４０の構成状態レジスタ２４５Ｂに既に記憶されている。スコアボード２５０は、任意の適切な構造を使用して実装することができる。例えば、一実施形態では、スコアボード２５０は、フリップフロップを使用して実装される。他の実施形態では、スコアボード２５０は、他のタイプの記憶素子を使用して実装することができる。スコアボード２５０は、ファブリック２１５内に記憶されるように示されているが、他の実施形態では、スコアボード２５０を、他の場所に記憶することができることに留意されたい。スコアボード２５０を使用すると、パワーゲーテッドモードに移行する際にメモリデバイス（複数可）２４０に書き込まれるデータの量を減らすのに役立つ。また、スコアボード２５０の使用は、パワーゲーテッドモードに移行する際のレイテンシ（待ち時間）を低減するのに役立ち、これにより、処理ユニット２１０がパワーゲーテッドモードで費やすことができる総時間を増加させる。
【００１７】
ファブリック２１５は、任意のタイプの通信ファブリック、バス、並びに／又は、他の制御及びインターフェースロジックを表す。ファブリック２１５は、任意の通信相互接続を表しており、任意のプロトコルを使用してシステム２００のコンポーネント間で通信することができる。ファブリック２１５は、処理ユニット２１０、電力管理ユニット２２０、メモリコントローラ２３０及び他のコンポーネントを相互に接続するデータパス、スイッチ、ルータ及び他のロジックを提供する。ファブリック２１５は、要求、応答及びデータトラフィックを処理するだけでなく、コヒーレンシを容易にするプローブトラフィックを処理する。ファブリック２１５は、システム２００の様々なコンポーネントへの割り込み要求ルーティング及び構成アクセスパスも処理する。さらに、ファブリック２１５は、構成要求、応答及び構成データトラフィックを処理する。ファブリック２１５は、共有バス構成と、クロスバー構成と、ブリッジを有する階層バスと、を含むバスベースであってもよい。また、ファブリック２１５は、パケットベースであってもよく、ブリッジ、クロスバー、ポイントツーポイント又は他の相互接続を用いて階層化することができる。
【００１８】
一実施形態では、ファブリック２１５は、構成状態レジスタ２５５Ａによって表される構成スペースを有する。これらの構成状態レジスタ２５５Ａは、ルーティングテーブル、アドレスマップ、構成データ、バッファ割り当て情報等のように、任意の数及びタイプのレジスタを含むことができる。電力管理ユニット２２０がファブリック２１５のアイドル状態を検出すると、電力管理ユニット２２０は、電力を節約するためにファブリック２１５をパワーゲーテッドモードにすることができる。ファブリック２１５がパワーゲーテッドモードに移行する前に、構成状態レジスタ２５５Ａは、ファブリック２１５がパワーゲーテッドモードに移行すると構成状態レジスタ２５５Ａの値が失われるので、メモリデバイス（複数可）２４０に保存される。構成状態レジスタ２５５Ａがメモリデバイス（複数可）２４０に書き込まれると、構成状態レジスタ２５５Ａの値は、メモリデバイス（複数可）２４０の構成状態レジスタ２５５Ｂとして示される。パワーゲーテッドモードに移行する毎に構成状態レジスタ２５５Ａの全ての値をメモリデバイス（複数可）２４０に書き戻す必要がないようにするために、スコアボード２５０を使用して、何れの構成状態レジスタ２５５Ａが変更されたかを追跡することができる。或いは、異なるスコアボードを使用して、構成状態レジスタ２５５Ａへの更新を追跡することができる。実施形態に応じて、単一のスコアボード２５０は、複数のコンポーネントの構成状態レジスタのセットを追跡することができ、又は、構成状態レジスタが追跡されている個々のコンポーネント毎に個別のスコアボード２５０を使用することができる。何れにしても、ファブリック２１５がパワーゲーテッドモードに移行した後に更新された構成状態レジスタ２５５Ａのレジスタのみがメモリデバイス（複数可）２４０に書き戻されるので、ファブリック２１５がパワーゲーテッドモードに移行するプロセスの効率が向上する。システム２００の他の任意の数のコンポーネントは、何れのレジスタが更新され、コンポーネントがパワーゲーテッドモードへ移行したときにメモリデバイス（複数可）２４０に書き込まれる必要があるかを決定するために、スコアボード２５０（又は、別のスコアボード構造）によって追跡される構成状態レジスタを含むことができることに留意されたい。
【００１９】
一実施形態では、電力管理ユニット２２０は、システム２００の異なるコンポーネントのパワーゲーティングを管理する。本明細書で使用される場合、「パワーゲート（登録商標）」という用語は、１つ以上のコンポーネントの電力消費を低減することとして定義される。「パワーゲート（登録商標）」という用語は、コンポーネントを低電力状態にすることとして定義することができる。本明細書で定義される「低電力状態」とは、コンポーネントに供給される電圧が最大値から低下した状態、クロック信号の周波数が最大値から低下した状態、クロック信号がコンポーネントから妨げられている状態（クロックゲーティング）、コンポーネントから電力が除去された状態、又は、これらの組み合わせであってもよい。所定のコンポーネントをパワーゲーテッドモードから外すために、電力管理ユニット２２０は、所定のコンポーネントに供給されている電源電圧（複数可）及び／又はクロック（複数可）を増加又はオンにすることができる。電力管理ユニット２２０は、様々なコンポーネントの異なる電力状態間でいつ移行するかを決定するために、タイマー、割り込みユニット、処理ユニット等の１つ以上の他のユニットから制御信号を受信することができる。
【００２０】
図３を参照すると、コンピューティングシステム３００の別の実施形態のブロック図が示されている。コンピューティングシステム３００は、コンポーネント３１０と、ファブリック３２０と、メモリコントローラ３３０と、メモリデバイス（複数可）３４０と、を少なくとも含む。システム３００は、図３に示すものに加えて、任意の数のコンポーネントを含むことができることに留意されたい。また、システム３００は、実施形態に応じて、前述の列挙したタイプのコンピューティングシステムの何れかであってもよいことにも留意されたい。コンポーネント３１０は、システム３００に含まれ得る任意のタイプのコンポーネントを表す。実施形態に応じて、コンポーネント３１０は、処理ユニット、処理コア、処理ノード、Ｉ／Ｏ若しくは周辺機器、ファブリックコンポーネント、ファブリック領域、又は、他のタイプのコンポーネント若しくはデバイスであってもよい。
【００２１】
一実施形態では、コンポーネント３１０は、複数の構成状態レジスタ３１５Ａを含む。これらの構成状態レジスタ３１５Ａは、コンポーネント３１０の構成状態を表す値を記憶するための任意の数及びタイプの記憶素子を含むことができる。コンポーネント３１０がパワーゲーテッドモードに移行すると、以前のパワーゲーテッドモードへの移行以降に変更されたレジスタ３１５Ａのみがメモリデバイス（複数可）３４０に書き込まれる。一実施形態では、スコアボード３２５は、何れのレジスタ３１５Ａが最近更新されたかを追跡するために使用される。スコアボード３２５は、ファブリック３２０内に記憶されているように示されているが、他の実施形態では、スコアボード３２５を他の場所に記憶できることを理解されたい。さらに、スコアボード３２５は、制御ユニット３２７に接続されており、制御ユニット３２７は、スコアボード３２５のエントリを管理し、コンポーネント３１０がパワーゲーテッドモードに移行するときに、何れのレジスタ３１５Ａがメモリデバイス（複数可）３４０に書き戻されるかを決定する。制御ユニット３２７は、ソフトウェア及び／又はハードウェアの適切な組み合わせを使用して実装されてもよい。
【００２２】
スコアボード３２５は、任意の数のエントリを含むことができ、エントリの数は、実施形態毎に異なってもよい。スコアボード３２５は、８つのエントリを含むように示されているが、これは、実施形態を単に示すものであることを理解されたい。他の実施形態では、スコアボード３２５は、他の数のエントリを含むことができる。一実施形態では、スコアボード３２５の各エントリは、構成状態レジスタ３１５Ａからの複数のレジスタを追跡するために使用される。一実施形態では、スコアボード３２５の各エントリによる追跡の粒度は、メモリデバイス（複数可）３４０へのアクセス粒度と一致する。言い換えれば、スコアボード３２５の各エントリは、１回のアクセスでメモリデバイス（複数可）３４０に書き込むことができるデータ量を追跡する。例えば、メモリデバイス（複数可）３４０へのアクセス粒度が（一実施形態で）６４バイトである場合、スコアボード３２５の各エントリは、６４バイト分のレジスタを追跡する。
【００２３】
図３に示すように、スコアボード３２５は、００〜０７とラベル付けされた８つのエントリを含む。一実施形態では、スコアボード３２５の各エントリは、エントリＩＤと、追跡されているレジスタのレジスタＩＤ又はアドレスと、追跡されているレジスタのグループ内の何れかのレジスタが、コンポーネント３１０による以前のパワーゲーテッドモードへの移行以降に更新されたかどうかを指定する、更新された指標と、を含む。スコアボード３２５によって示されているように、エントリ０１，０５に対応するレジスタのグループが更新されているが、他のエントリに対応する他のレジスタのグループは更新されていない。したがって、コンポーネント３１０がパワーゲーテッドモードに移行する条件が検出された場合、エントリ０１，０５に対応するレジスタのグループのみが、メモリデバイス（複数可）３４０の構成状態レジスタ３１５Ｂに書き込まれる。
【００２４】
さらに、コンポーネント３１０がパワーゲーテッドモードに移行すると、スコアボード３２５のエントリがリセットされる。或いは、コンポーネント３１０がパワーゲーテッドモードを終了するときに、スコアボード３２５のエントリをリセットすることができる。何れの場合にも、コンポーネント３１０がパワーゲーテッドモードを終了した後に、スコアボード３２５の全てのエントリは、構成状態レジスタ３１５Ａが変更されていないことを示す。コンポーネント３１０が再び電源投入された後の構成状態レジスタ３１５Ａへの変更のみが、パワーゲーテッドモードからの終了後にスコアボード３２５に反映される。また、ファブリック３２０は、任意の数の他のコンポーネントの構成状態レジスタへの更新を追跡するために、任意の数の他のスコアボードを含むことができることに留意されたい。
【００２５】
図４を参照すると、線形アドレス空間４３５へのアドレススティッチング構成状態レジスタの一実施形態が示されている。一実施形態では、（所定のコンポーネントの）構成状態レジスタのセットは、レジスタ４１０，４１５，４２０，４２５を含む。レジスタ４１０，４１５，４２０，４２５は、所定のコンポーネントの構成スペースを定義する任意の数及びタイプのレジスタを表す。一実施形態では、レジスタ４１０，４１５，４２０，４２５は、疎らに配置されたアドレス空間４０５全体に分散される。換言すれば、疎らに配置されたアドレス空間４０５内のレジスタ４１０，４１５，４２０，４２５のアドレス間には大きなギャップがある。
【００２６】
変換ユニット４３０は、疎らに配置されたアドレス空間４０５からレジスタ４１０，４１５，４２０，４２５を追跡及び記憶しようとするのではなく、疎らに配置されたアドレス空間４０５からレジスタ４１０，４１５，４２０，４２５を線形アドレス空間４３５にマッピングする。変換ユニット４３０は、制御ユニットと呼ぶこともできることに留意されたい。図４の右側に示すように、レジスタ４１０，４１５，４２０，４２５は、それらが線形アドレス空間４３５内の連続するアドレスを占めるように再マッピングされる。コンピューティングシステムがレジスタ４１０，４１５，４２０，４２５への更新を追跡する場合、コンピューティングシステムは、線形アドレス空間４３５に実装されたスコアボードを使用する。したがって、コンピューティングシステムは、所定のコンポーネントがパワーゲーテッドモードに移行する場合にレジスタ値をメモリに書き込む必要がある場合、線形アドレス空間４３５からレジスタ４１０，４１５，４２０，４２５のアドレスを使用して、メモリに記憶する必要があるデータの量を低減する。
【００２７】
図５を参照すると、スコアボードを使用して構成状態レジスタの書き込みを追跡する方法５００の一実施形態が示されている。説明のために、本実施形態でのステップ及び図６〜図７のステップを順番に示す。しかし、記載された方法の様々な実施形態では、記載された要素のうち１つ以上が、同時に実行され、図示した順序と異なる順序で実行され、又は、完全に省略されることに留意されたい。必要に応じて、他の追加要素も実行される。本明細書に記載される様々なシステム又は装置の何れも、方法５００を実施することができる。
【００２８】
コンポーネントが最初にパワーゲーテッドモードに移行する場合、コンポーネントは、全ての構成状態レジスタをメモリ（ＤＲＡＭ等）に書き込む（ブロック５０５）。実施形態に応じて、コンポーネントは、処理ノード、処理ユニット、プロセッサコア、ファブリック、ファブリックの一部、又は、別のタイプのコンポーネント若しくはコンピューティングデバイスであってもよい。次に、パワーゲーテッドモードを終了した後に、コンポーネントは、スコアボードを使用して、構成状態レジスタに対して行われた更新を追跡する（ブロック５１０）。コンポーネントがパワーゲーテッドモードに移行する条件を検出した場合（条件付きブロック５１５：「はい」）、コンポーネントは、コンポーネントがパワーゲーテッドモードに移行する前に変更されたものとしてスコアボードによってマークされた構成状態レジスタのみをメモリ（ＤＲＡＭ等）に書き込む（ブロック５２０）。一実施形態では、パワーゲーテッドモードに移行する条件は、コンポーネントが閾値時間の間アイドル状態であることを検出することを含む。さらに、スコアボードがリセットされ、マークされた全てのエントリがクリアされる（ブロック５２５）。次に、コンポーネントは、パワーゲーテッドモードに移行する（ブロック５３０）。コンポーネントがパワーゲーテッドモードに移行する条件を検出しない場合（条件付きブロック５１５：「いいえ」）、方法５００はブロック５１０に戻る。
【００２９】
ブロック５３０の後、コンポーネントがパワーゲーテッドモードを終了する条件を検出した場合（条件付きブロック５３５：「はい」）、コンポーネントは、パワーゲーテッドモードを終了し、メモリに記憶された値から構成状態レジスタを復元する（ブロック５４０）。一実施形態では、パワーゲーテッドモードを終了する条件は、コンポーネントを起動するために生成される割り込みを含む。ブロック５４０の後、方法５００はブロック５１０に戻る。コンポーネントがパワーゲーテッドモードを終了する条件を検出しない場合（条件付きブロック５３５：「いいえ」）、コンポーネントは、パワーゲーテッドモードに留まる（ブロック５４５）。ブロック５４５の後、方法５００は条件付きブロック５３５に戻る。方法５００の複数のインスタンスは、コンピューティングシステムの複数のコンポーネントに対して並列に実行することができることに留意されたい。
【００３０】
図６を参照すると、構成状態レジスタアドレススティッチングを実行する方法６００の一実施形態が示されている。制御ユニットは、所定のコンポーネントの構成状態を記憶する構成状態レジスタのセットのアドレスを識別する（ブロック６０５）。一実施形態では、構成状態レジスタは、様々なレジスタ間の大きなギャップを伴って、ホストコンピューティングシステムの物理アドレス空間に疎らにマッピングされる。
【００３１】
次に、制御ユニットは、構成状態レジスタのセットのアドレスを線形アドレス空間内の連続するアドレスにマッピングする（ブロック６１０）。次に、所定のコンポーネントは、スコアボードエントリを使用して、線形アドレス空間内の連続する位置にマッピングされた構成状態レジスタのセットのグループを追跡する（ブロック６１５）。また、システムは、線形アドレス空間内のアドレスをメモリ位置にマッピングして、パワーゲーテッドモードに移行する及び終了する場合に構成状態レジスタを記憶及び復元する（ブロック６２０）。ブロック６２０の後、方法６００は終了する。
【００３２】
図７を参照すると、スコアボードエントリ追跡をメモリアクセス粒度に一致させる方法７００の一実施形態が示されている。制御ユニットは、コンピューティングシステムのメモリアクセス粒度を識別する（ブロック７０５）。一実施形態では、レジスタ又は他の記憶素子は、メモリアクセス粒度の指標を記憶することができる。別の実施形態では、制御ユニットは、メモリアクセスを実行して、メモリアクセス粒度を決定する。次に、制御ユニットは、構成状態レジスタを、メモリアクセス粒度と一致するグループに組み合わせる（ブロック７１０）。例えば、一実施形態では、メモリアクセス粒度が６４バイトであり、制御ユニットは、構成状態レジスタを６４バイトのグループにグループ化する。制御ユニットは、コンピューティングシステムの単一のコンポーネント又はコンピューティングシステムの複数のコンポーネントに対して、これらのステップを実行することができる。場合によっては、コンピューティングシステム内の複数の制御ユニットが、コンピューティングシステムの異なるコンポーネントに対して方法７００のステップを実行することができる。
【００３３】
また、制御ユニットは、単一のスコアボードエントリを使用して、構成状態レジスタの各グループを追跡する（ブロック７１５）。次に、制御ユニットは、スコアボードを使用して、構成状態レジスタへの更新を追跡する（ブロック７２０）。システムは、所定のスコアボードエントリをマークして、所定のグループ内の構成状態レジスタのうち何れかが更新されることに応じて、所定のレジスタグループがパワーゲーテッドモードへの次の移行時に保存されることを示す（ブロック７２５）。ブロック７２５の後に、方法７００は終了する。
【００３４】
様々な実施形態では、ソフトウェアアプリケーションのプログラム命令を使用して、本明細書に記載された方法及び／又はメカニズムを実施する。例えば、汎用プロセッサ又は専用プロセッサによって実行可能なプログラム命令が考えられる。様々な実施形態において、そのようなプログラム命令は、高水準プログラミング言語によって表すことができる。他の実施形態では、プログラム命令は、高水準プログラミング言語からバイナリ、中間又は他の形式にコンパイルされてもよい。或いは、ハードウェアの動作又は設計を記述するプログラム命令を書き込むことができる。このようなプログラム命令を、Ｃ等の高水準のプログラミング言語によって表すことができる。或いは、Ｖｅｒｉｌｏｇ等のハードウェア設計言語（ＨＤＬ）を使用することができる。様々な実施形態では、プログラム命令は、様々な非一時的なコンピュータ可読記憶媒体の何れかに記憶される。記憶媒体は、プログラム実行のためにプログラム命令をコンピューティングシステムに提供するために、使用中にコンピューティングシステムによってアクセス可能である。一般的に、このようなコンピューティングシステムは、少なくとも１つのメモリと、プログラム命令を実行することができる１つ以上のプロセッサと、を含む。
【００３５】
上記の実施形態は、実装態様の非限定的な例に過ぎないことを強調しておきたい。上記の開示が十分に認識されると、当業者には多数の変形及び修正が明らかになるであろう。以下の特許請求の範囲は、このような変形及び修正の全てを包含すると解釈されることが意図されている。
【図１】
2021515305.tif 000003
【図２】
2021515305.tif 000004
【図３】
2021515305.tif 000005
【図４】
2021515305.tif 000006
【図５】
2021515305.tif 000007
【図６】
2021515305.tif 000008
【図７】
2021515305.tif 000009
【国際調査報告】
2021515305.tif 000010
2021515305.tif 000011
2021515305.tif 000012
2021515305.tif 000013
2021515305.tif 000014