(57)【要約】  プロセッサコアの電力モードを制御するためのレイテンシベースの電力モードユニット、ならびに関連する方法およびシステムが開示される。一態様では、電力モードユニットは、プロセッサコアが1つまたは複数のスレッドが保留状態であり、アクティブ状態のスレッドがないとき、プロセッサコアに提供される電力を低減するように構成される。スレッドによって処理される命令のオペランドは、プロセッサコアの外部に位置するメモリ中のデータである場合がある。スレッドがプロセッサコアの外部からの要求を待つ間、プロセッサコアが動作するほどの電力を必要としない場合、プロセッサコアによって消費される電力は、これらの待機期間の間、低減することができる。処理されているスレッドだけが保留状態である場合、スレッドが処理されているときでも、プロセッサコアにおいて電力を節約することができ、プロセッサコアおよびその対応するCPUにおいて、全体的な電力消費を低減することができる。
2017519274.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサコアの電力モードを制御するためのレイテンシベースの電力モードユニットであって、
プロセッサコアの外部のデータアクセスのために前記プロセッサコアに供給される電力レベルに関する電力モード情報を受信するように構成された電力モード入力部と、
前記プロセッサコアにおけるスレッドの状態に関する作業負荷情報を受信するように構成されたスレッド作業負荷入力部と
を含み、
前記作業負荷情報が、前記プロセッサコアが保留状態である1つまたは複数のスレッドを有し、アクティブ状態にあるスレッドを有さないことを示し、前記電力モード情報が、保留状態の前記1つまたは複数のスレッドの現在のデータアクセスレイテンシが低減電力モードに対応することを示す場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために、電力モード設定を生成するように構成される、レイテンシベースの電力モードユニット。
【請求項２】
前記プロセッサコアによって使用される電力を制御するための電力制御ユニットに前記電力モード設定を提供するために、前記電力モード設定を電力モード出力部に提供するようにさらに構成される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項３】
前記低減電力モードが、電力崩壊レベルを含む、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項４】
前記低減電力モードが、公称電力レベルよりも低く、電力崩壊レベルよりも高い低減電力レベルをさらに含む、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項５】
前記電力モード情報が、データアクセスレイテンシは前記低減電力モードに対応していないことを示す場合、高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するようにさらに構成される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項６】
前記プロセッサコアの外部の前記データアクセスの開始を追跡し、
前記作業負荷情報が前記プロセッサコアは前記プロセッサコアの外部の前記データアクセスの前記開始に続く定義されたしきい値時間内にアクティブになるようにスケジュールされたスレッドを有することを示す場合、前記高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成する
ようにさらに構成される、請求項5に記載のレイテンシベースの電力モードユニット。
【請求項７】
前記電力モード設定の記憶された前のインスタンスが前記プロセッサコアを前記低減電力モードで動作するように設定する場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成せず、
前記電力モード設定の前記記憶された前のインスタンスが前記高電力モードで動作するように前記プロセッサコアを設定する場合、前記高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成しない
ようにさらに構成される、請求項5に記載のレイテンシベースの電力モードユニット。
【請求項８】
前記作業負荷情報が、前記プロセッサコアがアクティブ状態にある少なくとも1つのスレッドを有することを示す場合、高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するようにさらに構成される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項９】
前記高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成することに応答して、前記電力モード設定が前記高電力モードに設定されることを示す、前記プロセッサコアへの割込みを生成するようにさらに構成される、請求項8に記載のレイテンシベースの電力モードユニット。
【請求項１０】
前記作業負荷情報が前記プロセッサコア中のすべてのスレッドが非アクティブであることを示す場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するようにさらに構成される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１１】
前記レイテンシベースの電力モードユニットが、前記プロセッサコアの外部に配置される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１２】
前記レイテンシベースの電力モードユニットが、前記プロセッサコアの内部に配置される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１３】
前記電力モード情報が、前記プロセッサコア中のメモリ内に記憶され、前記電力モード情報が、
少なくとも1つのデータインターフェースの識別子と、
前記少なくとも1つのデータインターフェースからデータにアクセスすることに対応するレイテンシと、
前記少なくとも1つのデータインターフェースの前記識別子に対応する電力モードと
を含む、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１４】
前記データアクセスが、
レベル2(L2)キャッシュミスに起因するメモリからの負荷、または
キャッシュ不可周辺装置からの負荷
を含む、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１５】
集積回路(IC)に設けられる、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１６】
セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナー、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなる群から選択されるデバイスに組み込まれる、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１７】
プロセッサコアの電力モードを制御するためのレイテンシベースの電力モード装置であって、
プロセッサコアの外部のデータアクセスのために前記プロセッサコアに供給される電力レベルに関する電力モード情報を受信するための手段と、
前記プロセッサコアにおけるスレッドの状態に関する作業負荷情報を受信するための手段と、
前記作業負荷情報が、前記プロセッサコアが保留状態にある1つまたは複数のスレッドを有し、アクティブ状態にあるスレッドを有さないことを示し、前記電力モード情報が、保留状態の前記1つまたは複数のスレッドの現在のデータアクセスレイテンシが低減電力モードに対応することを示す場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために、電力モード設定を生成するための手段と
を含む、レイテンシベースの電力モード装置。
【請求項１８】
前記プロセッサコアによって使用される電力を制御するための手段に前記電力モード設定を提供するための手段をさらに含む、請求項17に記載のレイテンシベースの電力モード装置。
【請求項１９】
レイテンシベースの決定を使用してプロセッサコアの電力モードを制御する方法であって、
プロセッサコアの外部のデータアクセスのために前記プロセッサコアに供給される電力レベルに関する電力モード情報を受信するステップと、
前記プロセッサコアにおけるスレッドの状態に関する作業負荷情報を受信するステップと、
前記作業負荷情報が、前記プロセッサコアが保留状態にある1つまたは複数のスレッドを有し、アクティブ状態にあるスレッドを有さないことを示し、前記電力モード情報が、保留状態の前記1つまたは複数のスレッドの現在のデータアクセスレイテンシが低減電力モードに対応することを示す場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために、電力モード設定を生成するステップと
を含む、方法。
【請求項２０】
前記プロセッサコアによって使用される電力を制御するための電力制御ユニットに前記電力モード設定を提供するステップをさらに含む、請求項19に記載の方法。
【請求項２１】
前記低減電力モードが、電力崩壊レベルを含む、請求項19に記載の方法。
【請求項２２】
前記低減電力モードが、公称電力レベルよりも低く、電力崩壊レベルよりも高い低減電力レベルをさらに含む、請求項19に記載の方法。
【請求項２３】
前記電力モード情報が、データアクセスレイテンシは前記低減電力モードに対応していないことを示す場合、高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するステップをさらに含む、請求項19に記載の方法。
【請求項２４】
前記プロセッサコアの外部の前記データアクセスの開始を追跡するステップと、
前記作業負荷情報が前記プロセッサコアは前記プロセッサコアの外部の前記データアクセスの前記開始に続く定義されたしきい値時間内にアクティブになるようにスケジュールされたスレッドを有することを示す場合、前記高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するステップと
をさらに含む、請求項23に記載の方法。
【請求項２５】
前記作業負荷情報が、前記プロセッサコアがアクティブ状態にあるスレッドを有することを示す場合、高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するステップをさらに含む、請求項19に記載の方法。
【請求項２６】
前記高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成することに応答して、前記電力モード設定が前記高電力モードに設定されることを示す、前記プロセッサコアへの割込みを生成するステップをさらに含む、請求項25に記載の方法。
【請求項２７】
前記作業負荷情報が前記プロセッサコア中のすべてのスレッドが非アクティブであることを示す場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するステップをさらに含む、請求項19に記載の方法。
【請求項２８】
プロセッサによって実行されると、前記プロセッサに
プロセッサコアの外部のデータアクセスのために前記プロセッサコアに供給される電力レベルに関する電力モード情報を受信することと、
前記プロセッサコアにおけるスレッドの状態に関する作業負荷情報を受信することと、
前記作業負荷情報が、前記プロセッサコアが保留状態にある1つまたは複数のスレッドを有し、アクティブ状態にあるスレッドを有さないことを示し、前記電力モード情報が、保留状態の前記1つまたは複数のスレッドの現在のデータアクセスレイテンシが低減電力モードに対応することを示す場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために、電力モード設定を生成することと
を行わせるコンピュータ実行可能命令を記憶した非一時的コンピュータ可読媒体。
【請求項２９】
前記コンピュータ実行可能命令が、前記プロセッサによって実行されると、前記プロセッサにさらに、前記プロセッサコアによって使用される電力を制御するための電力制御ユニットに前記電力モード設定を提供させる、請求項28に記載の非一時的コンピュータ可読媒体。
【請求項３０】
前記コンピュータ実行可能命令が、前記プロセッサによって実行されると、前記プロセッサにさらに、前記電力モード情報が、データアクセスレイテンシが前記低減電力モードに対応していないことを示す場合、高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成させる、請求項28に記載の非一時的コンピュータ可読媒体。
【請求項３１】
前記コンピュータ実行可能命令が、前記プロセッサによって実行されると、前記プロセッサにさらに、前記作業負荷情報が、前記プロセッサコアがアクティブ状態にあるスレッドを有することを示す場合、高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成させる、請求項28に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張
本願は、参照によりその全体が本明細書に組み込まれる、2014年4月22日に出願され、「LATENCY-BASED POWER MODE UNITS FOR CONTROLLING POWER MODES OF PROCESSOR CORES, AND RELATED METHODS AND SYSTEMS」という名称の米国特許出願第14/258,541号の優先権を主張する。
【背景技術】
【０００２】
開示の技術は、一般にプロセッサコアに関し、詳細にはプロセッサコアの電力モードを制御することに関する。
【０００３】
プロセッサベースのコンピュータシステムは、1つまたは複数の中央処理装置(CPU)を含むことができ、CPUは各々、命令実行のための1つまたは複数のプロセッサコアを含む。各プロセッサコアは、複数のパイプラインステージを通して命令を処理するために使用されるハードウェアリソースを含む。たとえば、パイプラインで命令を処理することは、命令をフェッチすることと、算術論理ユニットなどの実行ユニットに命令を送る前に命令を復号することとを含む場合がある。さらに、プロセッサコアのハードウェアリソースは、「スレッド」として知られ、「ハードウェアスレッド」とも呼ばれる個別の部分に分割されることが可能である。スレッドは、プロセッサコアに、複数の命令を同時に並行して処理する能力を与える。より具体的には、プロセッサコア内のスレッドは、同じプロセッサコア内の別のスレッドが異なる命令を処理すると同時に命令を処理することができる。
【０００４】
この点について、プロセッサコア内の命令を処理することが、対応するCPUの全体的な電力消費の一因となる。電力を節約するために、CPUは、プロセッサコアの活動に応じてプロセッサコアの電力レベルを制御するように構成された電力制御ユニットを使用してよい。たとえば、電力制御ユニットは、命令を処理するためにプロセッサコア内のハードウェアリソースを駆動するのに十分な電力を提供するために、少なくとも1つのスレッドがアクティブ状態である間、プロセッサコアに公称電力レベルを提供してよい。しかしながら、プロセッサコアにアクティブ状態のスレッドがない場合、電力制御ユニットは、電力を節約するためにプロセッサコアを電力崩壊させる(Power Collapse)ことができる。このようにして、プロセッサコア、およびその対応するCPUの電力消費は、プロセッサコアがアクティブ状態のスレッドを有するとき、プロセッサコアに公称電力を提供し、すべてのスレッドが非アクティブであるとき、プロセッサコアを電力崩壊させることによって節約される。
【発明の概要】
【課題を解決するための手段】
【０００５】
詳細な説明で開示する態様は、プロセッサコアの電力モードを制御するためのレイテンシベースの電力モードユニットを含む。関連する方法およびシステムも開示する。本明細書では態様において、電力モードユニットが、電力を節約するために、アクティブであるスレッドがないときプロセッサコアを電力崩壊させることができるだけではなく、本明細書で開示する電力モードユニットはまた、プロセッサコアは1つまたは複数のスレッドが保留状態であり、アクティブ状態のスレッドがないとき、プロセッサコアに提供される電力を低減するまたは崩壊させることができるように構成される。
【０００６】
スレッド中の命令の処理が、命令のためにプロセッサコアの外部からデータが検索されるのを待つことからなり、スレッドがさもなければ別の命令を処理することがないとき、スレッドは、プロセッサコアにおいて保留状態である。たとえば、スレッドによって処理されている命令のオペランドが、プロセッサコアの外部に位置するメモリ中のデータである場合がある。スレッドが保留状態であり、プロセッサコアの外部からの要求を待っている間、プロセッサコアが、動作するほどの電力を必要としない場合、プロセッサコアによって消費される電力は、これらの待機期間のレイテンシの間に低減されることも可能である。このようにして、電力は、スレッドが保留状態であるときでも、プロセッサコアにおいて節約されることが可能である。すべてのスレッドが非アクティブであるときのみとは対照的に、スレッドが保留状態であるときに中央処理装置(CPU)が電力をさらに節約することができると、プロセッサコアおよびその対応するCPUにおける全体的な電力消費を低減することができる。
【０００７】
この点について、一態様では、プロセッサコアの電力モードを制御するためのレイテンシベースの電力モードユニットが提供される。レイテンシベースの電力モードユニットは、プロセッサコアの外部のデータアクセスのためにプロセッサコアに供給される電力レベルに関する電力モード情報を受信するように構成された電力モード入力部を含む。レイテンシベースの電力モードユニットはさらに、プロセッサコアにおけるスレッドの状態に関する作業負荷情報を受信するように構成されたスレッド作業負荷入力部を含む。レイテンシベースの電力モードユニットは、以下の場合、低減電力モードで動作するようにプロセッサコアを設定するために、電力モード設定を生成するように構成される:(1)作業負荷情報が、プロセッサコアは1つまたは複数のスレッドが保留状態であり、アクティブ状態のスレッドがないことを示す場合、および(2)電力モード情報が、保留状態の1つまたは複数のスレッドの現在のデータアクセスレイテンシが低減電力モードに対応することを示す場合。注目すべきことに、1つまたは複数のスレッドが保留状態の現在のデータアクセスレイテンシで低減電力モードを調整することにより、プロセッサコアはスレッドが長いレイテンシデータを待つことに限定される間、電力を節約できるようになる。レイテンシベースの電力モードユニットは、プロセッサコアによって使用される電力を制御するための電力制御ユニットに電力モード設定を提供するために、電力モード設定を電力モード出力部に提供するようにさらに構成されてもよい。
【０００８】
別の態様では、プロセッサコアの電力モードを制御するためのレイテンシベースの電力モード装置が提供される。レイテンシベースの電力モード装置は、プロセッサコアの外部のデータアクセスのためにプロセッサコアに供給される電力レベルに関する電力モード情報を受信するための手段を含む。レイテンシベースの電力モード装置はまた、プロセッサコアにおけるスレッドの状態に関する作業負荷情報を受信するための手段を含む。レイテンシベースの電力モード装置はまた、作業負荷情報が、プロセッサコアは1つまたは複数のスレッドが保留状態であり、アクティブ状態のスレッドがないことを示し、電力モード情報が、保留状態の1つまたは複数のスレッドの現在のデータアクセスレイテンシが低減電力モードに対応することを示す場合、低減電力モードで動作するようにプロセッサコアを設定するために、電力モード設定を生成するための手段を含む。レイテンシベースの電力モード装置はまた、プロセッサコアによって使用される電力を制御するための手段に電力モード設定を提供するための手段をさらに含んでもよい。
【０００９】
別の態様では、レイテンシベースの決定を使用してプロセッサコアの電力モードを制御する方法が提供される。方法は、プロセッサコアの外部のデータアクセスのためにプロセッサコアに供給される電力レベルに関する電力モード情報を受信するステップを含む。方法はさらに、プロセッサコアにおけるスレッドの状態に関する作業負荷情報を受信するステップを含む。方法はさらに、以下の場合、低減電力モードで動作するようにプロセッサコアを設定するために、電力モード設定を生成するステップを含む:(1)作業負荷情報が、プロセッサコアは1つまたは複数のスレッドが保留状態であり、アクティブ状態のスレッドがないことを示す場合、および(2)電力モード情報が、保留状態の1つまたは複数のスレッドの現在のデータアクセスレイテンシが低減電力モードに対応することを示す場合。方法はまた、プロセッサコアによって使用される電力を制御するための電力制御ユニットに電力モード設定を提供するステップをさらに含んでもよい。
【００１０】
別の態様では、プロセッサによって実行されると、プロセッサコアの外部のデータアクセスのためにプロセッサコアに供給される電力レベルに関する電力モード情報をプロセッサに受信させる、コンピュータ実行可能命令を記憶した非一時的コンピュータ可読媒体が提供される。コンピュータ実行可能命令はさらに、プロセッサコアにおけるスレッドの状態に関する作業負荷情報をプロセッサに受信させる。コンピュータ実行可能命令はさらに、以下の場合、低減電力モードで動作するようにプロセッサコアを設定するために、電力モード設定をプロセッサに生成させる:(1)作業負荷情報が、プロセッサコアは1つまたは複数のスレッドが保留状態であり、アクティブ状態のスレッドがないことを示す場合、および(2)電力モード情報が、保留状態の1つまたは複数のスレッドの現在のデータアクセスレイテンシが低減電力モードに対応することを示す場合。コンピュータ実行可能命令はさらにプロセッサに、プロセッサコアによって使用される電力を制御するための電力制御ユニットに電力モード設定を提供させてもよい。
【図面の簡単な説明】
【００１１】
【図１】プロセッサコアは1つまたは複数のスレッドが保留状態であり、アクティブ状態のスレッドがないとき、プロセッサコアに供給される電力レベルを低減することによってプロセッサコアの電力モードを制御するように構成されたレイテンシベースの電力モードユニットを使用する例示的なプロセッササブシステムのブロック図である。
【図２】プロセッサコアは1つまたは複数のスレッドが保留状態であり、アクティブ状態のスレッドがないとき、プロセッサコアに供給される電力レベルを低減することを含む、プロセッサコアの電力モードを制御する図1のレイテンシベースの電力モードユニットの例示的なプロセスを示すフローチャートである。
【図３Ａ】プロセッサコアの例示的なスレッドアクティビティおよび電力レベルアクティビティ、ならびにスレッドがアクティブ状態、非アクティブ状態、または保留状態であるかに基づいて図1のレイテンシベースの電力モードユニットによって制御されるプロセッサコアの対応する電力モードを示す図である。
【図３Ｂ】図1のレイテンシベースの電力モードユニットを使用した結果として図3Aのプロセッサコアの例示的な電力低減を示す図である。
【図４】データアクセスレイテンシの継続時間に基づいて低電力モード(lower power mode)または高電力モード(higher power mode)のどちらかと関連する電力モード設定が生成される場合がある、プロセッサコアの電力モードを制御する図1のレイテンシベースの電力モードユニットを示す例示的なプロセスを示すフローチャートである。
【図５】プロセッサコアの例示的なスレッドアクティビティおよび電力レベルアクティビティ、ならびにスレッドがプロセッサコアの外部のデータアクセスの定義されたしきい値時間内にアクティブになるようにスケジュールされているとき、図1のレイテンシベースの電力モードユニットによって制御されるプロセッサコアの対応する電力モードを示す図である。
【図６】プロセッサコアの例示的なスレッドアクティビティおよび電力レベルアクティビティ、ならびにプロセッサコア内の2つのスレッドが保留状態、アクティブ状態、および非アクティブ状態の間で推移するとき、図1のレイテンシベースの電力モードユニットによって制御されるプロセッサコアの対応する電力モードを示す図である。
【図７】1つまたは複数のプロセッサコアと、図1のレイテンシベースの電力モードユニットとを含んだ中央処理装置(CPU)を含むことができる例示的なプロセッサベースのシステムのブロック図である。
【発明を実施するための形態】
【００１２】
ここで図面を参照しながら、本開示のいくつかの例示的な態様について説明する。「例示的」という語は、本明細書では「一例、事例、または例示としての役割を果たすこと」を意味するために使用される。「例示的」として本明細書において説明されるいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるとは限らない。
【００１３】
本明細書で開示する態様は、プロセッサコアの電力モードを制御するためのレイテンシベースの電力モードユニットを含む。関連する方法およびシステムも開示する。この点について、図1は、プロセッサコア14の電力モードを制御するための例示的なレイテンシベースの電力モードユニット12を使用する例示的な中央処理装置(CPU)サブシステム10を示す。プロセッサコア14は、並行処理を提供するように各々構成された複数のスレッドX(0)〜X(N)を有し、ここで「N+1」がスレッドの数に等しい。しかしながら、プロセッサコア14は、1つの(1)スレッドのみを含む可能性がある。以下でより詳細に説明するように、図1のレイテンシベースの電力モードユニット12は、プロセッサコア14中のスレッドX(0)〜X(N)のうちの少なくとも1つが保留状態であり、スレッドX(0)〜X(N)がアクティブではないとき、プロセッサコア14に提供される電力を低減するまたは崩壊させることができるように構成される。このようにして、電力は、プロセッサコア14中のスレッドX(0)〜X(N)が非アクティブであるときだけとは対照的に、スレッドX(0)〜X(N)が保留状態であるときでも、プロセッサコア14において節約されることが可能である。
【００１４】
図1のプロセッサコア14におけるスレッドXは、スレッドX中の命令の処理が、命令のためにプロセッサコア14の外部からデータが検索されるのを待つことからなり、スレッドXがさもなければ別の命令を処理することがないとき、保留状態である。さらに、プロセッサコア14におけるスレッドXは、スレッドXがプロセッサコア14の外部からデータが検索されるのを待っておらず、スレッドXがさもなければ命令を処理している場合、アクティブ状態である。スレッドXがアクティブ状態でも、保留状態でもない場合、スレッドXは非アクティブ状態である。たとえば、プロセッサコア14においてスレッドXによって処理されている命令のオペランドは、プロセッサコア14の外部に位置するメモリ中のデータである場合がある。スレッドXが保留状態であり、プロセッサコア14の外部からの要求を待っている間、プロセッサコア14が、動作するほどの電力を必要としない場合、プロセッサコア14によって消費される電力は、これらの待機期間のレイテンシの間に低減されることも可能である。このようにして、電力は、スレッドX(0)〜X(N)が保留状態であるときでも、プロセッサコア14において節約されることが可能である。スレッドX(0)〜X(N)すべてが非アクティブであるときのみとは対照的に、スレッドX(0)〜X(N)が保留状態であるときに電力をさらに節約するためにレイテンシベースの電力モードユニット12を使用すると、プロセッサコア14および対応するCPUサブシステム10における全体的な電力消費を低減することができる。
【００１５】
引き続き図1を参照すると、電力を節約するためにプロセッサコア14の電力モードを制御するレイテンシベースの電力モードユニット12の例について述べる前に、レイテンシベースの電力モードユニット12およびCPUサブシステム10の構成要素についてまず説明する。この態様では、レイテンシベースの電力モードユニット12は、電力モード入力部16を含む。電力モード入力部16は、プロセッサコア14に供給される電力レベルに関する電力モード情報18を受信するように構成される。この例では、電力モード情報18は、プロセッサコア14の外部のデータアクセスのための電力レベルを含む。しかしながら、電力モード情報18は、他のタイプのデータアクセスのための電力レベルを含むこともできる。レイテンシベースの電力モードユニット12はまた、プロセッサコア14におけるスレッドX(0)〜X(N)の状態に関する作業負荷情報22を受信するように構成されたスレッド作業負荷入力部20を含む。たとえば、作業負荷情報22は、プロセッサコア14は、1つまたは複数のスレッドX(0)〜X(N)が保留状態であり、スレッドX(0)〜X(N)がアクティブ状態ではないか、スレッドX(0)〜X(N)の少なくとも1つがアクティブ状態であるか、またはすべて非アクティブのスレッドX(0)〜X(N)であるかを示す情報を含んでよい。レイテンシベースの電力モードユニット12は、電力モード情報18および作業負荷情報22に基づいて、低減電力モードまたは高電力モードで動作するようにプロセッサコア14を設定するために、電力モード設定24を生成するように構成される。レイテンシベースの電力モードユニット12は、プロセッサコア14によって使用される電力を制御するための電力制御ユニット28に電力モード設定24を提供するために、電力モード設定24を電力モード出力部26に提供するようにさらに構成される。この例では、2つの電力制御ユニット28(0)、28(1)が設けられている。第1の電力制御ユニット28(0)は、メモリ30に提供される電力を制御するために使用される。第2の電力制御ユニット28(1)は、プロセッサコア14中のロジック32に提供される電力を制御し、その中の処理を実行するまたはサポートするために使用される。
【００１６】
さらに、この態様では、レイテンシベースの電力モードユニット12は、高電力モードで動作するようにプロセッサコア14を準備するために、割込み出力部36で割込み34を生成するように構成される。代替的に、レイテンシベースの電力モードユニット12は、電力モード設定24の記憶された前のインスタンスが高電力モードと関連するとき、割込み出力部36で割込み34を生成することを控える(forego)ように構成されてよい。たとえば、電力モード設定24の記憶された前のインスタンスは、レイテンシベースの電力モードユニット12内のユニットメモリ37に記憶される場合がある。
【００１７】
図2は、プロセッサコア14の電力モードを制御するために図1のレイテンシベースの電力モードユニット12によって使用される例示的なプロセス38を示す。図2を参照すると、レイテンシベースの電力モードユニット12はまず、プロセッサコア14の外部のデータアクセスのためにプロセッサコア14に供給される電力レベルに関する電力モード情報18を受信する(ブロック40)。レイテンシベースの電力モードユニット12は次いで、プロセッサコア14におけるスレッドX(0)〜X(N)の状態を表す作業負荷情報22を受信する(ブロック42)。レイテンシベースの電力モードユニット12は、ブロック40において電力モード情報18を受信するより前に、または同時に、ブロック42において作業負荷情報22を受信してよい。さらに、レイテンシベースの電力モードユニット12が電力モード情報18と作業負荷情報22の両方を受信すると、レイテンシベースの電力モードユニット12は以下を決定する:(1)作業負荷情報22が、プロセッサコア14は1つまたは複数のスレッドX(0)〜X(N)が保留状態であり、スレッドX(0)〜X(N)はアクティブ状態ではないことを示すかどうか、および(2)電力モード情報18が、保留状態の1つまたは複数のスレッドX(0)〜X(N)の現在のデータアクセスレイテンシが低減電力モードに対応することを示すかどうか(ブロック44)。
【００１８】
引き続き図2を参照すると、ブロック44のこれらの条件の両方が存在する場合、これは、プロセッサコア14にはアクティブであるスレッドX(0)〜X(N)がないことを意味する。さらにこれは、プロセッサコア14には、すぐにアクティブになる場合がある保留状態のいずれのスレッドXもないことも意味する。したがって、プロセッサコア14に提供される電力は、電力を節約するためにこのシナリオで低減することができる。この点について、レイテンシベースの電力モードユニット12は、低減電力モードで動作するようにプロセッサコア14を設定するために、電力モード設定24を生成する(ブロック46)。レイテンシベースの電力モードユニット12は、プロセッサコア14によって使用される電力を制御するための電力制御ユニット28(0)、28(1)に低減電力モードを示す電力モード設定24を提供する(ブロック48)。
【００１９】
しかしながら、図2のブロック44の両方の条件が存在しない場合、プロセッサコア14は、命令を処理するために高電力レベルを必要とする場合がある。たとえば、命令を効率的に処理するためにプロセッサコア14におけるスレッドXに高電力レベルが必要とされる場合がある。このシナリオでは、レイテンシベースの電力モードユニット12は、低減電力モードとは対照的に、高電力モードで動作するようにプロセッサコア14を設定するために、電力モード設定24を生成する(ブロック50)。レイテンシベースの電力モードユニット12は、プロセッサコア14によって使用される電力を制御するための電力制御ユニット28(0)、28(1)に電力モード設定24を提供する(ブロック48)。図2のプロセス38は、レイテンシベースの電力モードユニット12がプロセッサコア14に対して電力レベルを制御できるように、継続的に繰り返すことができる。
【００２０】
したがって、要約すれば、図1のレイテンシベースの電力モードユニット12が図2のプロセス38を使用することによって、スレッドX(0)〜X(N)が処理されているときでも、処理されているスレッドX(0)〜X(N)だけが保留状態である場合、レイテンシベースの電力モードユニット12がプロセッサコア14における電力節約を可能にする。
【００２１】
スレッドX(0)〜X(N)が保留状態であり、スレッドX(0)〜X(N)がアクティブではないとき、プロセッサコア14に提供される電力を低減する図1のレイテンシベースの電力モードユニット12のさらなる説明を行うために、図3Aを提供する。図3Aは、プロセッサコア14電力レベルへのレイテンシベースの電力モードユニット12の影響を示す例示的なスレッドアクティビティグラフ52および対応する電力レベルアクティビティグラフ54を示す。
【００２２】
図3Aを参照すると、スレッドアクティビティグラフ52は、プロセッサコア14における第1のスレッドX(0)を、低アクティビティレベルLLで示すように、時間t0において非アクティブ状態であるとして示す。明快のために、スレッドアクティビティグラフ52上の低アクティビティレベルLLは、非アクティブ状態または保留状態のいずれかのスレッドX(0)を表す場合があり、高アクティビティレベルLHは、アクティブ状態のスレッドX(0)を表す。さらに、プロセッサコア14における他のすべてのスレッドX(1)〜X(N)(図示せず)は、図3Aでは非アクティブである。スレッドX(0)〜X(N)すべてが非アクティブであるので、プロセッサコア14は、電力レベルアクティビティグラフ54に示すように、時間t0において電力レベルPがPC(たとえば、電力崩壊レベル)に等しい低減電力モードである。本明細書で使用する、プロセッサコア14を電力崩壊させることは、プロセッサコア14に供給される電力を、メモリ30およびロジック32にデータを保持するのに必要とされる最小レベルまで低減することである。この例ではPCがゼロ電力レベルP0よりも大きいが、いくつかの態様は、PCがP0に等しい場合がある。さらに、時間t1においてスレッドX(0)が、高アクティビティレベルLHで示すようにアクティブになる。それに応答して、レイテンシベースの電力モードユニット12は、高電力モードで動作するようにプロセッサコア14を設定するために、電力モード設定24を生成する。レイテンシベースの電力モードユニット12はまた、高電力モードに対応する電力モード設定24を生成することに応答して、割込み出力部36で割込み34を生成する。割込み34は、プロセッサコア14にスレッド関係アクティビティの準備において時間t1-2の間に「起動」手順を行うように促す。さらに、電力モード設定24により電力制御ユニット28(0)、28(1)が、プロセッサコア14に公称電力を供給し、時間t1において電力レベルPをPNに変える。
【００２３】
引き続き図3Aを参照すると、時間t3において、命令の処理の一部として、スレッドX(0)が、プロセッサコア14の外部に記憶されたデータに対するデータアクセスを開始する。したがって、スレッドX(0)は、スレッドアクティビティグラフ52の時間t3における低アクティビティレベルLLによって示されるように、保留状態に変わる。他のすべてのスレッドX(1)〜X(N)は依然として非アクティブであるので、作業負荷情報22は、プロセッサコア14は1つまたは複数のスレッドが保留状態であり、アクティブ状態のスレッドがないことを示す。この例では、電力モード情報18は、スレッドX(0)のための低減電力モードに対応する現在のデータアクセスレイテンシを示す。したがって、レイテンシベースの電力モードユニット12は、プロセッサコア14を低減電力モードに設定するために、電力モード設定24を生成する。プロセッサコア14は、スレッドがアクティブであったときと比較して動作するほどの電力を必要としないので、電力制御ユニット28(0)、28(1)は、低減電力レベルをプロセッサコア14に供給し、時間t3において電力レベルPがPCに下がるようにする。したがって、スレッドX(0)が非アクティブではなく保留状態であっても、レイテンシベースの電力モードユニット12は、プロセッサコア14が時間t3から始まる低減電力モードで動作することを可能にする。
【００２４】
引き続き図3Aを参照すると、プロセッサコア14は、時間t4において保留スレッドX(0)に対するプロセッサコア14の外部から要求されるデータを受信し、高アクティビティレベルLHで示すように、スレッドX(0)がアクティブになるようにする。これにより、レイテンシベースの電力モードユニット12は、高電力モードで動作するようにプロセッサコア14を設定するために、電力モード設定24を生成する。電力モード設定24は、電力制御ユニット28(0)、28(1)がプロセッサコア14に公称電力を供給するようにし、時間t4において電力レベルPがPNに上がるようにする。さらに、レイテンシベースの電力モードユニット12はまた、割込み34を生成し、プロセッサコア14が時間t4-5の間に起動手順を行うように促す。このようにして、レイテンシベースの電力モードユニット12は、プロセッサコア14が、スレッドX(0)が保留になった時間t3から、スレッドX(0)が要求されるデータを受信した時間t4まで、PCで動作することを可能にした。
【００２５】
この点について、引き続き図3Aを参照すると、時間t3-4は、スレッドX(0)を保留状態に設定したプロセッサコア14の外部のデータアクセスと関連するデータアクセスレイテンシに対応する。したがって、プロセッサコア14は、時間t3-4の間電力レベルPをPCに設定した低減電力モードのままであり、それによってその時間フレーム全体にわたってプロセッサコア14内の電力を節約した。スレッドX(0)が保留状態であった間、電力レベルPをPCに低減することによってプロセッサコア14で節約された電力の量を、図3Bに示している。より詳細には、電力総計55(0)は、スレッドX(0)が保留状態でありながら電力レベルPがPNのままであった場合、電力が節約されないのと比較して、時間t3-4の間にプロセッサコア14でPN-PCの総電力が節約されたことを示す。
【００２６】
引き続き図3Aを参照すると、時間t6において、スレッドX(0)は、プロセッサコア14の外部に記憶されたデータに対するデータアクセスを開始し、したがってスレッドX(0)は、低アクティビティレベルLLで示すように、保留状態に変わる。時間t3-4の間の先のデータアクセスと同様に、電力モード情報18は、スレッドX(0)のための低減電力モードに対応する現在のデータアクセスレイテンシを示す。スレッドX(0)は保留中でありながら、他のすべてのスレッドX(1)〜X(N)は非アクティブであるので、作業負荷情報22は、プロセッサコア14は1つのスレッドが保留状態であり、アクティブ状態のスレッドがないことを示す。電力モード情報18および作業負荷情報22に基づいて、レイテンシベースの電力モードユニット12は、プロセッサコア14を低減電力モードに設定するために、電力モード設定24を生成する。したがって、電力制御ユニット28(0)、28(1)は、プロセッサコア14に低減電力レベルを供給し、時間t6において電力レベルPがPRに下がるようにする。プロセッサコア14の外部から要求されるデータを受信すると、スレッドX(0)は、高アクティビティレベルLHで示すように、時間t7においてアクティブになる。これにより、レイテンシベースの電力モードユニット12は、高電力モードで動作するようにプロセッサコア14を設定するために、電力モード設定24を生成する。さらに、レイテンシベースの電力モードユニット12はまた、割込み34を生成し、プロセッサコア14が時間t7-8の間に起動手順を行うように促す。電力モード設定24は、電力制御ユニット28(0)、28(1)がプロセッサコア14に公称電力を供給するようにし、時間t7において電力レベルPがPNに上がるようにする。
【００２７】
引き続き図3Aを参照すると、時間t6-7は、スレッドX(0)を時間t6において保留状態に設定したプロセッサコア14の外部のデータアクセスと関連するデータアクセスレイテンシに対応する。したがって、プロセッサコア14は、時間t6-7の間電力レベルPをPRに設定した低減電力モードのままであり、それによってその時間フレーム全体にわたってプロセッサコア14内の電力を節約した。スレッドX(0)が保留状態であった間、電力レベルPをPRに低減することによってプロセッサコア14で節約された電力の量を、図3Bに示している。より詳細には、電力総量55(1)は、スレッドX(0)が保留状態でありながら電力節約がなく電力レベルPをPNのままにしたのと対照的に、時間t6-7の間にプロセッサコア14でPN-PRの総電力が節約されたことを示す。
【００２８】
注目すべきことに、プロセッサコア14は時間t3-4および時間t6-7の間に低減電力モードで動作するが、時間t3-4の間、電力レベルPCは、時間t6-7の間の電力レベルPRよりも低い。低減電力モードの別個のインスタンスの間の電力レベルPのそのような差は、電力レベルPが対応するデータアクセスレイテンシによって決まることによるものである。たとえば、時間t3-4と関連するデータアクセスレイテンシは、時間t6-7と関連するデータアクセスレイテンシよりも長い。プロセッサコア14は、時間t3-4の間、電力レベルPCで動作してよい。そのような長いデータアクセスレイテンシの間に節約される電力は、プロセッサコア14を電力崩壊状態から起動することと関連するパフォーマンス上の不利益を上回るからである。反対に、時間t6-7と関連する短さのデータアクセスレイテンシの間にプロセッサコア14を電力崩壊させることによって節約される電力は、そのようなパフォーマンス上の不利益を正当化しない可能性がある。しかしながら、プロセッサコア14を電力レベルPRから起動することは、電力レベルPCと比較してパフォーマンス上の不利益がより小さい。したがって、時間t6-7の間プロセッサコア14を電力レベルPRに低減するだけにすると、プロセッサコア14を電力レベルPRから起動することと関連するパフォーマンス上の不利益を正当化するために十分な電力を節約することができる。そのために、レイテンシベースの電力モードユニット12は、プロセッサコア14が特定のデータアクセスを待たなければならない時間の量に対応する電力モード設定24を生成するように構成される。
【００２９】
図1に関して、本明細書で開示する態様の具体的な詳細を次に提供する。この態様では、レイテンシベースの電力モードユニット12上の電力モード入力部16は、プロセッサコア14内のメモリ30から電力モード情報18を受信するように構成される。代替的に、電力モード情報18は、プロセッサコア14の外部の別のメモリに記憶されてもよい。前に説明したように、電力モード情報18は、どの電力モードがプロセッサコア14に供給されるべきであるかに関する情報を含む。より具体的には、電力モード情報18は、プロセッサコア14の外部のデータアクセスのレイテンシおよびデータアクセスに対応する電力モードに関係する情報を含んでよい。非限定的な例として、電力モード情報18は、データを要求するデータインターフェースの識別子、データインターフェースからデータにアクセスすることに対応するレイテンシ、および特定のデータインターフェースに対応する電力モードを含んでよい。このようにして、低減電力モードを、プロセッサコア14の外部の特定のデータインターフェースからデータにアクセスすることと関連するレイテンシと関連付けることができる。非限定的な例として、レベル2(L2)キャッシュミスに続くメモリのより低いレベルからデータにアクセスすることは、そのようなデータアクセスが比較的長いレイテンシを有する場合、低減電力モードと関連付けられてよい。同様に、比較的長いデータアクセスレイテンシを有するキャッシュ不可周辺装置からデータにアクセスすることもまた、低減電力モードに対応してよい。
【００３０】
引き続き図1を参照すると、レイテンシベースの電力モードユニット12は、スレッド作業負荷入力部20を介してプロセッサコア14内のロジック32から作業負荷情報22を受信するように構成される。前に説明したように、作業負荷情報22は、プロセッサコア14内のスレッドX(0)〜X(N)の状態に関する情報を含む。特に、作業負荷情報22は、プロセッサコア14は、1つまたは複数のスレッドX(0)〜X(N)が保留状態であり、スレッドX(0)〜X(N)はアクティブ状態ではないか、少なくとも1つのスレッドXがアクティブ状態であるか、またはすべて非アクティブのスレッドX(0)〜X(N)であるかを示す情報を含んでよい。したがって、電力モード情報18および作業負荷情報22は、保留状態のスレッドX(0)〜X(N)の1つが低減電力モードと関連するデータアクセスレイテンシを有するかどうか、およびプロセッサコア14の現在のアクティビティは電力の低減をサポートすることができるかどうかに関する詳細を提供する。
【００３１】
引き続き図1を参照すると、この態様では、電力モード設定24は、プロセッサコア14に存在する条件に基づいて変動する場合がある。たとえば、レイテンシベースの電力モードユニット12は、作業負荷情報22がプロセッサコア14におけるすべてのスレッドX(0)〜X(N)が非アクティブであることを示す場合、低減電力モードで動作するようにプロセッサコア14を設定するために、電力モード設定24を生成するようにさらに構成される。特に、スレッドX(0)〜X(N)が保留状態またはアクティブ状態ではない場合、スレッドX(0)〜X(N)が命令を処理していないとき、プロセッサコア14内のメモリ30およびロジック32は、フル電力を必要としないので、プロセッサコア14は、低減電力モードをサポートすることができる。さらに、レイテンシベースの電力モードユニット12はまた、低減電力モードの条件が満たされない場合、高電力モードで動作するようにプロセッサコア14を設定するために、電力モード設定24を生成するように構成される。より具体的には、電力モード情報18が、保留状態のスレッドX(0)〜X(N)の1つのデータアクセスレイテンシは低減電力モードに対応しないことを示す場合、生成される電力モード設定24は、高電力モードを反映することになる。同様に、電力モード設定24は、作業負荷情報22がプロセッサコア14はアクティブ状態の少なくとも1つのスレッドXを有することを示す場合、高電力モードで動作するようにプロセッサコア14を設定することになる。したがって、レイテンシベースの電力モードユニット12は、プロセッサコア14の現在の要件に従って電力モード設定24を生成するように構成される。
【００３２】
引き続き図1を参照すると、この態様では、レイテンシベースの電力モードユニット12はまた、生成された電力モード設定24が高電力モードを示すとき、プロセッサコア14に通知するように構成される。特に、プロセッサコア14は、一般的にプロセッサコア14が「起動する」と呼ばれる、低減電力モードから高電力モードに移行するために、いくつかのステップを踏む必要がある場合がある。したがって、レイテンシベースの電力モードユニット12は、高電力モードで動作するようにプロセッサコア14を設定するために電力モード設定24を生成することに応答して、割込み出力部36で割込み34を生成するように構成される。割込み34は、プロセッサコア14に高電力モードでの動作の準備をするように通知するために、プロセッサコア14中のロジック32に提供される。代替的に、レイテンシベースの電力モードユニット12は、低減電力モードで動作するようにプロセッサコア14を設定するために電力モード設定24を生成することに応答して、割込み34を生成するように構成されてもよい。このようにして、割込み34は、プロセッサコア14中のロジック32に提供されてよく、したがってロジック32が、高電力モードから低減電力モードへ移行するためのステップを踏むようにすることができる。
【００３３】
引き続き図1を参照すると、この態様では、レイテンシベースの電力モードユニット12は、プロセッサコア14内に配置される。しかしながら、レイテンシベースの電力モードユニット12は、さもなければ他の態様でプロセッサコア14の外部に配置され、電力節約の恩恵をもたらす場合がある。したがって、レイテンシベースの電力モードユニット12は、CPUサブシステム10におけるレイテンシベースの電力モードユニット12の位置にかかわらず、処理されているスレッドX(0)〜X(N)だけが保留状態である場合、スレッドX(0)〜X(N)が処理されているときでも、プロセッサコア14において電力を節約することに加わってよい。
【００３４】
スレッド状態およびいずれかの対応するデータアクセスレイテンシを考慮することに加えて、レイテンシベースの電力モードユニット12は、電力モード設定24を生成するときスレッドX(0)〜X(N)の将来のアクティビティのタイミングを考慮に入れてよい。たとえば、スレッドX(0)〜X(N)の1つが、同じまたは別のスレッドX(0)〜X(N)が保留状態に変わった後に比較的短時間でアクティブになるようにスケジュールされる場合、そのような短い時間期間に電力を低減するために必要とされるオーバーヘッドは、電力節約を上回る可能性がある。この点について、図4は、スレッドX(0)〜X(N)の1つがデータアクセス要求に続いていかに早くアクティブになる可能性があるかに少なくとも部分的に基づいてプロセッサコア14の電力モードを制御するために、図1のレイテンシベースの電力モードユニット12によって使用される例示的なプロセス56を示す。
【００３５】
引き続き図4を参照すると、ブロック40、ブロック42、ブロック44、ブロック46、ブロック48、およびブロック50中のステップは、図2において前に説明したものと同じである。しかしながら、ブロック44中の両方の条件が存在する場合、低減電力モードのための電力モード設定24を生成するのではなく、レイテンシベースの電力モードユニット12は、さらなる決定を行う。特に、レイテンシベースの電力モードユニット12は、作業負荷情報22が、プロセッサコア14はプロセッサコア14の外部のデータアクセスの開始に続く定義されたしきい値時間内にアクティブになるようにスケジュールされたスレッドXを有することを示すかどうかを決定する(ブロック58)。たとえば、第1のスレッドX(0)が、保留状態に移行し、他のスレッドX(1)〜X(N)はアクティブ状態ではない場合がある。第1のスレッドX(0)が保留状態に移行した後にすぐに第2のスレッドX(1)がアクティブになるようにスケジュールされる場合、プロセッサコア14が低減電力モードに入っても、第2のスレッドX(1)がアクティブ状態になると、高電力モードに入らなければならないことが非効率的である可能性がある。したがって、定義されたしきい値時間は、低減電力モードに入ることを正当化するために、プロセッサコア14で1つまたは複数のスレッドX(0)〜X(N)が保留状態であり、スレッドX(0)〜X(N)はアクティブ状態ではないことを必要とする最小継続時間を表してよい。プロセッサコア14を起動することと関連するパフォーマンス上の不利益は、そのようなタイミングを決定する際に重要な要素である可能性がある。
【００３６】
このようにして、引き続き図4を参照すると、ブロック58においてスレッドXが定義されたしきい値時間内にアクティブになるようにスケジュールされている場合、レイテンシベースの電力モードユニット12は、高電力モードのための電力モード設定24を生成するように構成される(ブロック50)。反対に、ブロック58においてスレッドX(0)〜X(N)のうちのどれも定義されたしきい値時間内にアクティブになるようにスケジュールされていない場合、レイテンシベースの電力モードユニット12は、低減電力モードのための電力モード設定24を生成するように構成される(ブロック46)。ブロック46またはブロック50のいずれかにおいて電力モード設定24を生成すると、レイテンシベースの電力モードユニット12は、ブロック48において、プロセッサコア14によって使用される電力を制御するための電力制御ユニット28(0)、28(1)に電力モード設定24を提供するように構成される。プロセス56を使用することによって、レイテンシベースの電力モードユニット12は、スレッドX(0)〜X(N)が処理されているときでも、処理されているスレッドX(0)〜X(N)だけが保留状態である場合、および対応するデータアクセスレイテンシが、プロセッサコア14が低減電力モードに入ること正当化する場合、プロセッサコア14における電力節約を可能にする。
【００３７】
この点について、図5は、スレッドX(0)がプロセッサコア14の外部のデータアクセスの定義されたしきい値時間内にアクティブになるようにスケジュールされており、他のすべてのスレッドX(1)〜X(N)(図示せず)が非アクティブのままであるとき、図1のプロセッサコア14のスレッドアクティビティグラフ60および対応する電力レベルアクティビティグラフ62を示す。時間t6までのスレッドアクティビティグラフ60および電力レベルアクティビティグラフ62の推移および関係するタイミングは、図3Aの時間t6までのスレッドアクティビティグラフ52および電力レベルアクティビティグラフ54の推移および関係するタイミングと同一である。
【００３８】
しかしながら図5の時間t6において、スレッドX(0)は、プロセッサコア14の外部に記憶されたデータに対するデータアクセスを開始し、したがってスレッドX(0)は、低アクティビティレベルLLで示すように、保留状態に変わる。しかしながら、スレッドX(0)は保留状態であって、他のスレッドはアクティブ状態ではないが、スレッドX(0)は、高アクティビティレベルLHで示すように、時間t9においてアクティブになるようにスケジュールされる。さらに、時間t9は、プロセッサコア14の定義されたしきい値時間内にある。結果として、レイテンシベースの電力モードユニット12は、低減電力モードで動作するようにプロセッサコア14を設定するために電力モード設定24を生成するのではなく、電力モード設定24は、高電力モードに対応し続ける。したがって、電力レベルPは、時間t9が定義されたしきい値時間内ではなかった場合は、PCまたはPRに下がるのとは対照的に、時間t6-9の間PNのままである。さらに、しきい値X(0)が、高アクティビティレベルLHで示すように、時間t9においてアクティブになるとき、電力レベルPはPNのままである。注目すべきことに、プロセッサコア14は時間t6-9の間PNのままであったので、プロセッサコア14は、スレッドX(0)が時間t9においてアクティブになるとき、その起動手順を完了するための時間を必要としなかった。このようにして、スレッドがプロセッサコア14の外部のデータアクセスの開始に続く定義されたしきい値時間内にアクティブになるようにスケジュールされるとき、高電力モードのための電力モード設定24を生成するようにレイテンシベースの電力モードユニット12を構成すると、処理時間を低減し、ならびに電力を節約することができる。
【００３９】
さらに、図6は、2つのスレッドが保留状態とアクティブ状態と非アクティブ状態との間で変化するときの、図1のプロセッサコア14のスレッドアクティビティグラフ64および対応する電力レベルアクティビティグラフ66を示す。このように、スレッドアクティビティグラフ64は、第1のスレッドX(0)および第2のスレッドX(1)のアクティビティを示し、他のすべてのスレッドX(2)〜X(N)(図示せず)は非アクティブのままである。
【００４０】
引き続き図6を参照すると、スレッドアクティビティグラフ64は、低アクティビティレベルLLで示すように、時間t10において非アクティブ状態の第1のスレッドX(0)および第2のスレッドX(1)を示す。したがって、電力レベルアクティビティグラフ66は、電力レベルPが時間t10においてPCであることを示す。さらに、第1のスレッドX(0)と第2のスレッドX(1)の両方が、高アクティビティレベルLHで示すように、時間t11においてアクティブになる。これにより、レイテンシベースの電力モードユニット12は、高電力モードにプロセッサコア14を設定するために、電力モード設定24を生成する。高電力モードにより、電力制御ユニット28(0)、28(1)がプロセッサコア14に公称電力を供給するようにし、これにより時間t11において電力レベルPがPNに上がるようにする。時間t12において、低アクティビティレベルLLで示すように、第1のスレッドX(0)と第2のスレッドX(1)が共に保留状態に移行する。しかしながら、電力モード情報18が、第2のスレッドX(1)については、スレッドX(1)が時間t15においてアクティブになるようにスケジュールされるまで、現在のデータアクセスレイテンシは低減電力モードに対応すると示す一方、第1のスレッドX(0)は、高アクティビティレベルLHで示すように、時間t13において再びアクティブになるようにスケジュールされる。時間t13は、プロセッサコア14の定義されたしきい値時間内にあり、レイテンシベースの電力モードユニット12は、時間t12においてプロセッサコア14を高電力モードに設定するために電力モード設定24を生成することになる。したがって、電力レベルPは、時間t12-14の間PNのままである。この態様では注目すべきことに、レイテンシベースの電力モードユニット12は、電力モード設定24の前のインスタンスが高電力モードと関連していても、時間t12において高電力モードと関連する電力モード設定24を生成するように構成される。しかしながら、レイテンシベースの電力モードユニット12の他の態様は、電力モード設定24の記憶された前のインスタンスが高電力モードまたは低減電力モードと関連するとき、それぞれ高電力モードまたは低減電力モードにプロセッサコア14を設定するために電力モード設定24を生成することを控える場合がある。たとえば、電力モード設定24の記憶された前のインスタンスは、レイテンシベースの電力モードユニット12内のユニットメモリ37に記憶される場合がある。
【００４１】
引き続き図6を参照すると、第1のスレッドX(0)は、その命令の処理を完了し、低アクティビティレベルLLで示すように、時間t14において非アクティブ状態になる。しかしながら、第2のスレッドX(1)は、時間t14において保留状態のままであり、高アクティビティレベルLHで示すように、時間t15においてアクティブになるようにスケジュールされる。この例では、第2のスレッドX(1)は、低減電力モードと関連する残りのデータアクセスレイテンシを有する。さらに、アクティブになるようにスケジュールされた唯一のスレッドは、時間t15における第2のスレッドX(1)であり、時間t15はプロセッサコア14の定義されたしきい値時間内にはない。したがって、レイテンシベースの電力モードユニット12は、時間t14において低減電力モードで動作するようにプロセッサコア14を設定するために、電力モード設定24を生成するように構成される。結果として、電力レベルPは、時間t14-15の間PCに設定される。第2のスレッドX(1)は、高アクティビティレベルLHで示すように、時間t15においてアクティブ状態に変わる。レイテンシベースの電力モードユニット12は、高電力モードへの電力モード設定24を生成し、時間t15において電力レベルPがPNに戻ることになる。このようにして、レイテンシベースの電力モードユニット12は、複数のスレッドが保留状態、アクティブ状態、および非アクティブ状態の間で変わるときでも、プロセッサコア14が電力を節約できるようにする。
【００４２】
本明細書で開示される態様による、プロセッサコアの電力モードを制御するためのレイテンシベースの電力モードユニット、ならびに関連する方法およびシステムは、任意のプロセッサベースのデバイスに提供され、または統合されてよい。例として、限定はしないが、セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定位置データユニット、モバイル位置データユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナー、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤが含まれる。
【００４３】
この点について、図7は、図1に示されるレイテンシベースの電力モードユニット12を使用することができる、プロセッサベースのシステム68の一例を示す。この例では、プロセッサベースのシステム68は、1つまたは複数のプロセッサ72を各々が含む1つまたは複数のCPU70を含む。CPU70は、一時的に記憶されたデータへの高速アクセスのためにプロセッサ72に結合されたキャッシュメモリ74を有することができる。CPU70は、システムバス76に結合され、プロセッサベースのシステム68中に含まれるマスターデバイスとスレーブデバイスとを相互結合することができる。よく知られているように、CPU70は、システムバス76を介してアドレス情報、制御情報、およびデータ情報を交換することによって、これらの他のデバイスと通信する。たとえば、CPU70は、スレーブデバイスの一例として、メモリコントローラ78にバストランザクション要求を通信することができる。図7には示されていないが、複数のシステムバス76が提供され得、各システムバス76が異なるファブリックを構成する。
【００４４】
他のマスターデバイスおよびスレーブデバイスをシステムバス76に接続することができる。図7に示されるように、これらのデバイスは、例として、メモリシステム80、1つまたは複数の入力デバイス82、1つまたは複数の出力デバイス84、1つまたは複数のネットワークインターフェースデバイス86、および1つまたは複数のディスプレイコントローラ88を含むことができる。入力デバイス82は、限定はしないが、入力キー、スイッチ、音声プロセッサ等を含む、任意のタイプの入力デバイスを含むことができる。出力デバイス84は、限定はしないが、音声、ビデオ、他の視覚インジケータなどを含む、任意のタイプの出力デバイスを含むことができる。ネットワークインターフェースデバイス86は、ネットワーク90との間でのデータ交換を可能にするように構成される任意のデバイスとすることができる。ネットワーク90は、限定はしないが、ワイヤードネットワークまたはワイヤレスネットワーク、プライベートネットワークまたは公衆ネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(WLAN)、およびインターネットを含む、任意のタイプのネットワークであってよい。ネットワークインターフェースデバイス86は、所望の任意のタイプの通信プロトコルをサポートするように構成することができる。メモリシステム80は、1つまたは複数のメモリユニット92(0〜N)を含むことができる。
【００４５】
また、CPU70は、1つまたは複数のディスプレイ94に送られる情報を制御するために、システムバス76を介してディスプレイコントローラ88にアクセスするように構成することができる。ディスプレイコントローラ88は、1つまたは複数のビデオプロセッサ96を介して表示される情報をディスプレイ94に送り、ビデオプロセッサ96は、表示される情報を、ディスプレイ94に適したフォーマットとなるように処理する。ディスプレイ94は、限定はしないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む、任意のタイプのディスプレイを含むことができる。
【００４６】
本明細書において開示される態様に関して説明される種々の例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子ハードウェア、メモリもしくは別のコンピュータ可読媒体に記憶され、プロセッサもしくは他の処理デバイスによって実行される命令、または両方の組合せとして実現できることを、当業者はさらに理解されよう。本明細書において説明されるマスターデバイスおよびスレーブデバイスは、例として、任意の回路、ハードウェア構成要素、集積回路(IC)、またはICチップにおいて利用される場合がある。本明細書において開示されるメモリは、任意のタイプおよびサイズのメモリとすることができ、また、任意のタイプの所望の情報を記憶するように構成することができる。この交換可能性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについては上記で、それらの機能の観点から一般的に説明してきた。そのような機能がどのように実現されるかは、特定の用途、設計上の選択、および/または、システム全体に課された設計上の制約によって決まる。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本開示の範囲からの逸脱を引き起こすものと解釈されるべきではない。
【００４７】
本明細書において開示される態様に関して説明される種々の例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェア構成要素、または本明細書において説明される機能を実行するように設計されたそれらの任意の組合せにおいて実現または実行することができる。プロセッサは、マイクロプロセッサとすることができるが、代替形態では、プロセッサは、任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械とすることができる。プロセッサはまた、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つもしくは複数のマイクロプロセッサ、または任意の他のそのような構成として実装することができる。
【００４８】
本明細書において開示される態様は、ハードウェアにおいて、また、ハードウェアに記憶された命令において具現される場合があり、命令は、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的プログラマブルROM(EPROM)、電気的消去可能プログラマブルROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野において知られている任意の他の形態のコンピュータ可読媒体内に存在することができる。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替形態では、記憶媒体はプロセッサと一体化することができる。プロセッサおよび記憶媒体はASICに存在してもよい。ASICはリモート局に存在してもよい。代替として、プロセッサおよび記憶媒体は、個別構成要素として、リモート局、基地局、またはサーバに存在してもよい。
【００４９】
本明細書の例示的な態様のいずれかにおいて説明された動作ステップは、例および考察を提供するために説明されることにも留意されたい。説明される動作は、図示されるシーケンス以外の多数の異なるシーケンスにおいて実行することができる。さらに、単一の動作ステップに記載した動作は、実際にはいくつかの異なるステップで実行されてもよい。さらに、例示的態様において論じられる1つまたは複数の動作ステップが組み合わせられる場合がある。フローチャート図において図示した動作ステップは、当業者に容易に明らかとなるような多くの異なる修正を受けてもよいことを理解されたい。また、情報および信号を種々の異なる技術および技法のいずれかを使用して表すことができることは、当業者には理解されよう。たとえば、上記の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表すことができる。
【００５０】
本開示のこれまでの説明は、当業者が本開示を作製または使用することを可能にするために提供される。本開示に対する種々の変更形態が当業者には容易に明らかとなり、本明細書において規定される一般的な原理は、本開示の趣旨または範囲から逸脱することなく、他の変形形態に適用することができる。したがって、本開示は、本明細書において説明される例および設計に限定されるものではなく、本明細書において開示される原理および新規の特徴に合致する最も広い範囲を与えられるべきである。
【符号の説明】
【００５１】
10  CPUサブシステム
12  レイテンシベースの電力モードユニット
14  プロセッサコア
16  電力モード入力部
18  電力モード情報
20  スレッド作業負荷入力部
22  作業負荷情報
24  電力モード設定
26  電力モード出力部
28  電力制御ユニット
30  メモリ
32  ロジック
34  割込み
36  割込み出力部
37  ユニットメモリ
38  プロセス
68  プロセッサベースのシステム
70  CPU
72  プロセッサ
74  キャッシュメモリ
76  システムバス
78  メモリコントローラ
80  メモリシステム
82  入力デバイス
84  出力デバイス
86  ネットワークインターフェースデバイス
88  ディスプレイコントローラ
90  ネットワーク
92  メモリユニット
94  ディスプレイ
96  ビデオプロセッサ
【図１】
2017519274.tif 000003
【図２】
2017519274.tif 000004
【図３Ａ】
2017519274.tif 000005
【図３Ｂ】
2017519274.tif 000006
【図４】
2017519274.tif 000007
【図５】
2017519274.tif 000008
【図６】
2017519274.tif 000009
【図７】
2017519274.tif 000010
【手続補正書】
【提出日】平成28年10月25日(2016.10.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサコアの電力モードを制御するためのレイテンシベースの電力モードユニットであって、
プロセッサコアの外部のデータアクセスのために前記プロセッサコアに供給される電力レベルに関する電力モード情報を受信するように構成された電力モード入力部と、
前記プロセッサコアにおけるスレッドの状態に関する作業負荷情報を受信するように構成されたスレッド作業負荷入力部と
を含み、
前記作業負荷情報が、前記プロセッサコアが保留状態である1つまたは複数のスレッドを有し、アクティブ状態にあるスレッドを有さないことを示し、前記電力モード情報が、保留状態の前記1つまたは複数のスレッドの現在のデータアクセスレイテンシが低減電力モードに対応することを示す場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために、電力モード設定を生成するように構成される、レイテンシベースの電力モードユニット。
【請求項２】
前記プロセッサコアによって使用される電力を制御するための電力制御ユニットに前記電力モード設定を提供するために、前記電力モード設定を電力モード出力部に提供するようにさらに構成される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項３】
前記低減電力モードが、電力崩壊レベルを含む、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項４】
前記低減電力モードが、公称電力レベルよりも低く、電力崩壊レベルよりも高い低減電力レベルをさらに含む、請求項3に記載のレイテンシベースの電力モードユニット。
【請求項５】
前記電力モード情報が、データアクセスレイテンシは前記低減電力モードに対応していないことを示す場合、高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するようにさらに構成される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項６】
前記プロセッサコアの外部の前記データアクセスの開始を追跡し、
前記作業負荷情報が前記プロセッサコアは前記プロセッサコアの外部の前記データアクセスの前記開始に続く定義されたしきい値時間内にアクティブになるようにスケジュールされたスレッドを有することを示す場合、前記高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成する
ようにさらに構成される、請求項5に記載のレイテンシベースの電力モードユニット。
【請求項７】
前記電力モード設定の記憶された前のインスタンスが前記プロセッサコアを前記低減電力モードで動作するように設定する場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成せず、
前記電力モード設定の前記記憶された前のインスタンスが前記高電力モードで動作するように前記プロセッサコアを設定する場合、前記高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成しない
ようにさらに構成される、請求項5に記載のレイテンシベースの電力モードユニット。
【請求項８】
前記作業負荷情報が、前記プロセッサコアがアクティブ状態にある少なくとも1つのスレッドを有することを示す場合、高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するようにさらに構成される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項９】
前記高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成することに応答して、前記電力モード設定が前記高電力モードに設定されることを示す、前記プロセッサコアへの割込みを生成するようにさらに構成される、請求項8に記載のレイテンシベースの電力モードユニット。
【請求項１０】
前記作業負荷情報が前記プロセッサコア中のすべてのスレッドが非アクティブであることを示す場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するようにさらに構成される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１１】
前記レイテンシベースの電力モードユニットが、前記プロセッサコアの外部に配置される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１２】
前記レイテンシベースの電力モードユニットが、前記プロセッサコアの内部に配置される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１３】
前記電力モード情報が、前記プロセッサコア中のメモリ内に記憶され、前記電力モード情報が、
少なくとも1つのデータインターフェースの識別子と、
前記少なくとも1つのデータインターフェースからデータにアクセスすることに対応するレイテンシと、
前記少なくとも1つのデータインターフェースの前記識別子に対応する電力モードと
を含む、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１４】
前記データアクセスが、
レベル2(L2)キャッシュミスに起因するメモリからの負荷、または
キャッシュ不可周辺装置からの負荷
を含む、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１５】
集積回路(IC)に統合される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１６】
セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナー、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなる群から選択されるデバイスに組み込まれる、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１７】
プロセッサコアの電力モードを制御するためのレイテンシベースの電力モード装置であって、
プロセッサコアの外部のデータアクセスのために前記プロセッサコアに供給される電力レベルに関する電力モード情報を受信するための手段と、
前記プロセッサコアにおけるスレッドの状態に関する作業負荷情報を受信するための手段と、
前記作業負荷情報が、前記プロセッサコアが保留状態にある1つまたは複数のスレッドを有し、アクティブ状態にあるスレッドを有さないことを示し、前記電力モード情報が、保留状態の前記1つまたは複数のスレッドの現在のデータアクセスレイテンシが低減電力モードに対応することを示す場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために、電力モード設定を生成するための手段と
を含む、レイテンシベースの電力モード装置。
【請求項１８】
前記プロセッサコアによって使用される電力を制御するための手段に前記電力モード設定を提供するための手段をさらに含む、請求項17に記載のレイテンシベースの電力モード装置。
【請求項１９】
レイテンシベースの決定を使用してプロセッサコアの電力モードを制御する方法であって、
プロセッサコアの外部のデータアクセスのために前記プロセッサコアに供給される電力レベルに関する電力モード情報を受信するステップと、
前記プロセッサコアにおけるスレッドの状態に関する作業負荷情報を受信するステップと、
前記作業負荷情報が、前記プロセッサコアが保留状態にある1つまたは複数のスレッドを有し、アクティブ状態にあるスレッドを有さないことを示し、前記電力モード情報が、保留状態の前記1つまたは複数のスレッドの現在のデータアクセスレイテンシが低減電力モードに対応することを示す場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために、電力モード設定を生成するステップと
を含む、方法。
【請求項２０】
前記プロセッサコアによって使用される電力を制御するための電力制御ユニットに前記電力モード設定を提供するステップをさらに含む、請求項19に記載の方法。
【請求項２１】
前記低減電力モードが、電力崩壊レベルを含む、請求項19に記載の方法。
【請求項２２】
前記低減電力モードが、公称電力レベルよりも低く、電力崩壊レベルよりも高い低減電力レベルをさらに含む、請求項21に記載の方法。
【請求項２３】
前記電力モード情報が、データアクセスレイテンシは前記低減電力モードに対応していないことを示す場合、高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するステップをさらに含む、請求項19に記載の方法。
【請求項２４】
前記プロセッサコアの外部の前記データアクセスの開始を追跡するステップと、
前記作業負荷情報が前記プロセッサコアは前記プロセッサコアの外部の前記データアクセスの前記開始に続く定義されたしきい値時間内にアクティブになるようにスケジュールされたスレッドを有することを示す場合、前記高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するステップと
をさらに含む、請求項23に記載の方法。
【請求項２５】
前記作業負荷情報が、前記プロセッサコアがアクティブ状態にある少なくとも1つのスレッドを有することを示す場合、高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するステップをさらに含む、請求項19に記載の方法。
【請求項２６】
前記高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成することに応答して、前記電力モード設定が前記高電力モードに設定されることを示す、前記プロセッサコアへの割込みを生成するステップをさらに含む、請求項25に記載の方法。
【請求項２７】
前記作業負荷情報が前記プロセッサコア中のすべてのスレッドが非アクティブであることを示す場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するステップをさらに含む、請求項19に記載の方法。
【請求項２８】
プロセッサによって実行されると、前記プロセッサに
プロセッサコアの外部のデータアクセスのために前記プロセッサコアに供給される電力レベルに関する電力モード情報を受信することと、
前記プロセッサコアにおけるスレッドの状態に関する作業負荷情報を受信することと、
前記作業負荷情報が、前記プロセッサコアが保留状態にある1つまたは複数のスレッドを有し、アクティブ状態にあるスレッドを有さないことを示し、前記電力モード情報が、保留状態の前記1つまたは複数のスレッドの現在のデータアクセスレイテンシが低減電力モードに対応することを示す場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために、電力モード設定を生成することと
を行わせるコンピュータ実行可能命令を記憶した非一時的コンピュータ可読媒体。
【請求項２９】
前記コンピュータ実行可能命令が、前記プロセッサによって実行されると、前記プロセッサにさらに、前記プロセッサコアによって使用される電力を制御するための電力制御ユニットに前記電力モード設定を提供させる、請求項28に記載の非一時的コンピュータ可読媒体。
【請求項３０】
前記コンピュータ実行可能命令が、前記プロセッサによって実行されると、前記プロセッサにさらに、前記電力モード情報が、データアクセスレイテンシが前記低減電力モードに対応していないことを示す場合、高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成させる、請求項28に記載の非一時的コンピュータ可読媒体。
【請求項３１】
前記コンピュータ実行可能命令が、前記プロセッサによって実行されると、前記プロセッサにさらに、前記作業負荷情報が、前記プロセッサコアがアクティブ状態にある少なくとも1つのスレッドを有することを示す場合、高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成させる、請求項28に記載の非一時的コンピュータ可読媒体。
【手続補正書】
【提出日】平成29年2月16日(2017.2.16)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサコアの電力モードを制御するためのレイテンシベースの電力モードユニットであって、
プロセッサコアの外部のデータアクセスのために前記プロセッサコアに供給される電力レベルに関する電力モード情報を受信するように構成された電力モード入力部であって、前記電力モード情報が、少なくとも1つのデータインターフェースからデータへのアクセスのデータアクセスレイテンシと、前記少なくとも1つのデータインターフェースに対応する電力モードとを含む、電力モード入力部と、
前記プロセッサコアにおけるスレッドの状態に関する作業負荷情報を受信するように構成されたスレッド作業負荷入力部と
を含み、
前記作業負荷情報が、前記プロセッサコアが保留状態にある1つまたは複数のスレッドを有し、アクティブ状態にあるスレッドを有さないことを示し、前記電力モード情報が、保留状態の前記1つまたは複数のスレッドの各々の前記少なくとも1つのデータインターフェースに対応する前記電力モードおよび前記データアクセスレイテンシが低減電力モードに対応することを示す場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために、電力モード設定を生成するように構成される、レイテンシベースの電力モードユニット。
【請求項２】
前記プロセッサコアによって使用される電力を制御するための電力制御ユニットに前記電力モード設定を提供するために、前記電力モード設定を電力モード出力部に提供するようにさらに構成される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項３】
前記低減電力モードが、電力崩壊レベルを含む、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項４】
前記低減電力モードが、公称電力レベルよりも低く、電力崩壊レベルよりも高い低減電力レベルをさらに含む、請求項3に記載のレイテンシベースの電力モードユニット。
【請求項５】
前記電力モード情報が、データアクセスレイテンシは前記低減電力モードに対応していないことを示す場合、高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するようにさらに構成される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項６】
前記プロセッサコアの外部の前記データアクセスの開始を追跡し、
前記作業負荷情報が前記プロセッサコアは前記プロセッサコアの外部の前記データアクセスの前記開始に続く定義されたしきい値時間内にアクティブになるようにスケジュールされたスレッドを有することを示す場合、前記高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成する
ようにさらに構成される、請求項5に記載のレイテンシベースの電力モードユニット。
【請求項７】
前記電力モード設定の記憶された前のインスタンスが前記プロセッサコアを前記低減電力モードで動作するように設定する場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成せず、
前記電力モード設定の前記記憶された前のインスタンスが前記高電力モードで動作するように前記プロセッサコアを設定する場合、前記高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成しない
ようにさらに構成される、請求項5に記載のレイテンシベースの電力モードユニット。
【請求項８】
前記作業負荷情報が、前記プロセッサコアがアクティブ状態にある少なくとも1つのスレッドを有することを示す場合、高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するようにさらに構成される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項９】
前記高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成することに応答して、前記電力モード設定が前記高電力モードに設定されることを示す、前記プロセッサコアへの割込みを生成するようにさらに構成される、請求項8に記載のレイテンシベースの電力モードユニット。
【請求項１０】
前記作業負荷情報が前記プロセッサコア中のすべてのスレッドが非アクティブであることを示す場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するようにさらに構成される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１１】
前記レイテンシベースの電力モードユニットが、前記プロセッサコアの外部に配置される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１２】
前記レイテンシベースの電力モードユニットが、前記プロセッサコアの内部に配置される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１３】
前記データアクセスが、
レベル2(L2)キャッシュミスに起因するメモリからの負荷、または
キャッシュ不可周辺装置からの負荷
を含む、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１４】
集積回路(IC)に統合される、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１５】
セットトップボックス、エンターテインメントユニット、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビジョン、チューナー、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなる群から選択されるデバイスに組み込まれる、請求項1に記載のレイテンシベースの電力モードユニット。
【請求項１６】
プロセッサコアの電力モードを制御するためのレイテンシベースの電力モード装置であって、
プロセッサコアの外部のデータアクセスのために前記プロセッサコアに供給される電力レベルに関する電力モード情報を受信するための手段であって、前記電力モード情報が、少なくとも1つのデータインターフェースからデータへのアクセスのデータアクセスレイテンシと、前記少なくとも1つのデータインターフェースに対応する電力モードとを含む、手段と、
前記プロセッサコアにおけるスレッドの状態に関する作業負荷情報を受信するための手段と、
前記作業負荷情報が、前記プロセッサコアが保留状態にある1つまたは複数のスレッドを有し、アクティブ状態にあるスレッドを有さないことを示し、前記電力モード情報が、保留状態の前記1つまたは複数のスレッドの各々の前記少なくとも1つのデータインターフェースに対応する前記電力モードおよび前記データアクセスレイテンシが低減電力モードに対応することを示す場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために、電力モード設定を生成するための手段と
を含む、レイテンシベースの電力モード装置。
【請求項１７】
前記プロセッサコアによって使用される電力を制御するための手段に前記電力モード設定を提供するための手段をさらに含む、請求項16に記載のレイテンシベースの電力モード装置。
【請求項１８】
レイテンシベースの決定を使用してプロセッサコアの電力モードを制御する方法であって、
プロセッサコアの外部のデータアクセスのために前記プロセッサコアに供給される電力レベルに関する電力モード情報を受信するステップであって、前記電力モード情報が、少なくとも1つのデータインターフェースからデータへのアクセスのデータアクセスレイテンシと、前記少なくとも1つのデータインターフェースに対応する電力モードとを含む、ステップと、
前記プロセッサコアにおけるスレッドの状態に関する作業負荷情報を受信するステップと、
前記作業負荷情報が、前記プロセッサコアが保留状態にある1つまたは複数のスレッドを有し、アクティブ状態にあるスレッドを有さないことを示し、前記電力モード情報が、保留状態の前記1つまたは複数のスレッドの各々の前記少なくとも1つのデータインターフェースに対応する前記電力モードおよび前記データアクセスレイテンシが低減電力モードに対応することを示す場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために、電力モード設定を生成するステップと
を含む、方法。
【請求項１９】
前記プロセッサコアによって使用される電力を制御するための電力制御ユニットに前記電力モード設定を提供するステップをさらに含む、請求項18に記載の方法。
【請求項２０】
前記低減電力モードが、電力崩壊レベルを含む、請求項18に記載の方法。
【請求項２１】
前記低減電力モードが、公称電力レベルよりも低く、電力崩壊レベルよりも高い低減電力レベルをさらに含む、請求項20に記載の方法。
【請求項２２】
前記電力モード情報が、データアクセスレイテンシは前記低減電力モードに対応していないことを示す場合、高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するステップをさらに含む、請求項18に記載の方法。
【請求項２３】
前記プロセッサコアの外部の前記データアクセスの開始を追跡するステップと、
前記作業負荷情報が前記プロセッサコアは前記プロセッサコアの外部の前記データアクセスの前記開始に続く定義されたしきい値時間内にアクティブになるようにスケジュールされたスレッドを有することを示す場合、前記高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するステップと
をさらに含む、請求項22に記載の方法。
【請求項２４】
前記作業負荷情報が、前記プロセッサコアがアクティブ状態にある少なくとも1つのスレッドを有することを示す場合、高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するステップをさらに含む、請求項18に記載の方法。
【請求項２５】
前記高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成することに応答して、前記電力モード設定が前記高電力モードに設定されることを示す、前記プロセッサコアへの割込みを生成するステップをさらに含む、請求項24に記載の方法。
【請求項２６】
前記作業負荷情報が前記プロセッサコア中のすべてのスレッドが非アクティブであることを示す場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成するステップをさらに含む、請求項18に記載の方法。
【請求項２７】
プロセッサによって実行されると、前記プロセッサに
プロセッサコアの外部のデータアクセスのために前記プロセッサコアに供給される電力レベルに関する電力モード情報を受信することであって、前記電力モード情報が、少なくとも1つのデータインターフェースからデータへのアクセスのデータアクセスレイテンシと、前記少なくとも1つのデータインターフェースに対応する電力モードとを含む、ことと、
前記プロセッサコアにおけるスレッドの状態に関する作業負荷情報を受信することと、
前記作業負荷情報が、前記プロセッサコアが保留状態にある1つまたは複数のスレッドを有し、アクティブ状態にあるスレッドを有さないことを示し、前記電力モード情報が、保留状態の前記1つまたは複数のスレッドの各々の前記少なくとも1つのデータインターフェースに対応する前記電力モードおよび前記データアクセスレイテンシが低減電力モードに対応することを示す場合、前記低減電力モードで動作するように前記プロセッサコアを設定するために、電力モード設定を生成することと
を行わせるコンピュータ実行可能命令を記憶した非一時的コンピュータ可読媒体。
【請求項２８】
前記コンピュータ実行可能命令が、前記プロセッサによって実行されると、前記プロセッサにさらに、前記プロセッサコアによって使用される電力を制御するための電力制御ユニットに前記電力モード設定を提供させる、請求項27に記載の非一時的コンピュータ可読媒体。
【請求項２９】
前記コンピュータ実行可能命令が、前記プロセッサによって実行されると、前記プロセッサにさらに、前記電力モード情報が、データアクセスレイテンシが前記低減電力モードに対応していないことを示す場合、高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成させる、請求項27に記載の非一時的コンピュータ可読媒体。
【請求項３０】
前記コンピュータ実行可能命令が、前記プロセッサによって実行されると、前記プロセッサにさらに、前記作業負荷情報が、前記プロセッサコアがアクティブ状態にある少なくとも1つのスレッドを有することを示す場合、高電力モードで動作するように前記プロセッサコアを設定するために前記電力モード設定を生成させる、請求項27に記載の非一時的コンピュータ可読媒体。
【国際調査報告】
2017519274.tif 000011
2017519274.tif 000012