(57)【要約】  メモリリクエスト情報に基づきキャッシュメモリのクロック速度／電圧を設定する装置及び方法が提供される。メモリリクエストの受信に応答して、キャッシュメモリと電気的に通信するハードウェアを利用して、メモリリクエストに関して情報が特定される。情報に基づき、キャッシュメモリと電気的に通信するハードウェアを利用して、キャッシュメモリの少なくとも一部のクロック速度及び／又は電圧が設定される。
2019527890.tif 000002
【特許請求の範囲】
【請求項１】
メモリリクエストを受信するステップと、
前記メモリリクエストを受信したことに応答して、キャッシュメモリと電気的に通信するハードウェアを利用して、前記メモリリクエストに関して情報を特定するステップと、
前記情報に基づき、前記キャッシュメモリと電気的に通信する前記ハードウェアを利用して、前記キャッシュメモリの少なくとも一部のクロック速度又は電圧の少なくとも１つを設定するステップと、
を有する方法。
【請求項２】
前記情報は、前記メモリリクエストを引き起こした少なくとも１つのプロセッサの少なくとも一部に関連する、請求項１記載の方法。
【請求項３】
前記情報は、前記メモリリクエストを引き起こした少なくとも１つのプロセッサの少なくとも一部のクロック速度又は電圧の少なくとも１つに関連する、請求項１記載の方法。
【請求項４】
前記情報は、前記メモリリクエストのタイプに関連する、請求項１記載の方法。
【請求項５】
前記メモリリクエストのタイプは、リードタイプ、コヒーレンスタイプ、ライトタイプ、プリフェッチタイプ又はフラッシュタイプの少なくとも１つを含む、請求項４記載の方法。
【請求項６】
前記情報は、前記メモリリクエストの対象であるデータのステータスに関連する、請求項１記載の方法。
【請求項７】
前記データのステータスは、ヒットステータス、ミスステータス又はヒット・オン・プライア・ミスステータスの少なくとも１つを含む、請求項６記載の方法。
【請求項８】
前記情報は、前記メモリリクエストによって引き起こされる前記キャッシュメモリのアクションに関連する、請求項１記載の方法。
【請求項９】
前記メモリリクエストによって引き起こされる前記キャッシュメモリのアクションは、リードアクション、ライトアクション、外部メモリへのリクエスト、フラッシュアクション又はヌルアクションの少なくとも１つを含む、請求項８記載の方法。
【請求項１０】
前記情報は、前記メモリリクエストのフィールドから特定される、請求項１記載の方法。
【請求項１１】
前記メモリリクエストのフィールドは、リクエスト元識別フィールドを含む、請求項１０記載の方法。
【請求項１２】
前記メモリリクエストのフィールドは、タイプフィールドを含む、請求項１０記載の方法。
【請求項１３】
前記クロック速度又は前記電圧の少なくとも１つは、最も高いクロック速度又は電圧を示す少なくとも１つのプロセッサの少なくとも一部のクロック速度又は電圧の少なくとも１つに設定される、請求項１記載の方法。
【請求項１４】
前記クロック速度又は前記電圧の少なくとも１つは、前記キャッシュメモリの一部に対して設定される、請求項１記載の方法。
【請求項１５】
前記キャッシュメモリの一部は、前記キャッシュメモリの少なくとも１つのバンクを含む、請求項１４記載の方法。
【請求項１６】
前記クロック速度又は前記電圧の少なくとも１つは、前記キャッシュメモリの全体に対して設定される、請求項１記載の方法。
【請求項１７】
前記クロック速度と前記電圧との双方が、前記情報に基づき設定される、請求項１記載の方法。
【請求項１８】
前記ハードウェアは、前記キャッシュメモリと統合される、請求項１記載の方法。
【請求項１９】
メモリリクエストの受信に応答して、前記メモリリクエストに関して情報を特定するよう構成される回路と、
前記情報に基づきキャッシュメモリの少なくとも一部のクロック速度又は電圧の少なくとも１つを設定するよう構成される回路と、
を有する装置。
【請求項２０】
データを格納するキャッシュメモリと、
前記キャッシュメモリと電気的に通信するハードウェアと、
を有し、
前記ハードウェアは、
メモリリクエストを受信したことに応答して、前記メモリリクエストに関して情報を特定し、
前記情報に基づき前記キャッシュメモリの少なくとも一部のクロック速度又は電圧の少なくとも１つを設定するよう構成されるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
［相互参照］
本出願は、参照することによってその全体が再生されたかのようにここに援用される、２０１６年７月２２日に出願された“ＡＰＰＡＲＡＴＵＳ  ＡＮＤ  ＭＥＴＨＯＤ  ＦＯＲ  ＳＥＴＴＩＮＧ  Ａ  ＣＬＯＣＫ  ＳＰＥＥＤ／ＶＯＬＴＡＧＥ  ＯＦ  ＣＡＣＨＥ  ＭＥＭＯＲＹ  ＢＡＳＥＤ  ＯＮ  ＭＥＭＯＲＹ  ＲＥＱＵＥＳＴ  ＩＮＦＯＲＭＡＴＩＯＮ”という名称の米国非仮特許出願第１５／２１７，９１１号に対する優先権を主張する。
【０００２】
本発明は、キャッシュメモリに関し、より特にキャッシュメモリのクロック速度及び／又は電圧を設定することに関する。
【背景技術】
【０００３】
現代のプロセッサは、典型的には、キャッシュメモリを利用して、データへのより高速なアクセスを可能にする方式でデータを格納し、これによって、全体的なパフォーマンスを向上させる。そのようなキャッシュメモリには、典型的には、電力節約目的のため、キャッシュメモリが動作する電圧及び／又はクロック周波数を変更するための動的電圧／周波数スケーリング（ＤＶＦＳ）機能が備えられている。現在まで、そのようなＤＶＦＳ機能は、アイドルモードにおいて電圧／周波数をスケーリングするか（例えば、メモリリクエストがサービス提供されていないときなど）、又は、サービス提供されているプロセッサ、エージェントなどのクロックに基づき厳密に電圧／周波数を単にスケーリングするシステムにしばしば限定される。
【発明の概要】
【０００４】
メモリリクエスト情報に基づきキャッシュメモリのクロック速度／電圧を設定する方法が提供される。メモリリクエストを受信したことに応答して、キャッシュメモリと電気的に通信するハードウェアを利用して、メモリリクエストに関して情報が特定される。情報に基づき、キャッシュメモリと電気的に通信するハードウェアを利用して、キャッシュメモリの少なくとも一部のクロック速度及び／又は電圧が設定される。
【０００５】
メモリリクエスト情報に基づきキャッシュメモリのクロック速度／電圧を設定する装置及びシステムがまた提供される。メモリリクエストの受信に応答して、メモリリクエストに関して情報を特定するよう構成される回路が含まれる。情報に基づき、キャッシュメモリの少なくとも一部のクロック速度及び／又は電圧を設定する更なる回路が構成される。
【０００６】
第１の実施例では、情報は、メモリリクエストを引き起こした少なくとも１つのプロセッサの少なくとも一部に関連してもよい。例えば、情報は、メモリリクエストを引き起こしたプロセッサの一部のクロック速度及び／又は電圧に関連してもよい。
【０００７】
第２の実施例（第１の実施例と組み合わされてもよいし、そうでなくでもよい）では、情報は、メモリリクエスト（例えば、リードタイプ、コヒーレンスタイプ、ライトタイプ、プリフェッチタイプ又はフラッシュタイプなど）のタイプに関連してもよい。
【０００８】
第３の実施例（第１及び／又は第２の実施例と組み合わされてもよいし、そうでなくでもよい）では、情報は、メモリリクエストの対象であるデータのステータス（例えば、ヒットステータス、ミスステータス又はヒット・オン・プライア・ミスステータスなど）に関連してもよい。
【０００９】
第４の実施例（第１、第２及び／又は第３の実施例と組み合わされてもよいし、そうでなくでもよい）では、情報は、メモリリクエストによって引き起こされるキャッシュメモリのアクション（例えば、リードアクション、ライトアクション、外部メモリへのリクエスト、フラッシュアクション又はヌルアクションなど）に関連してもよい。
【００１０】
第５の実施例（第１、第２、第３及び／又は第４の実施例と組み合わされてもよいし、そうでなくでもよい）では、情報は、メモリリクエストのフィールド（例えば、リクエスト元識別フィールド、タイプフィールドなど）から特定されてもよい。
【００１１】
第６の実施例（第１、第２、第３、第４及び／又は第５の実施例と組み合わされてもよいし、そうでなくでもよい）では、クロック速度又は電圧の少なくとも１つは、最も高いクロック速度又は電圧を示す少なくとも１つのプロセッサの少なくとも一部のクロック速度又は電圧の少なくとも１つに設定されてもよい。
【００１２】
第７の実施例（第１、第２、第３、第４、第５及び／又は第６の実施例と組み合わされてもよいし、そうでなくでもよい）では、クロック速度又は電圧の少なくとも１つは、キャッシュメモリの一部に対して設定されてもよい。
【００１３】
第８の実施例（第１、第２、第３、第４、第５、第６及び／又は第７の実施例と組み合わされてもよいし、そうでなくでもよい）では、クロック速度又は電圧の少なくとも１つは、キャッシュメモリの全体に対して設定されてもよい。
【００１４】
第９の実施例（第１、第２、第３、第４、第５、第６、第７及び／又は第８の実施例と組み合わされてもよいし、そうでなくでもよい）では、クロック速度と電圧との双方が、情報に基づき設定されてもよい。
【００１５】
第１０の実施例（第１、第２、第３、第４、第５、第６、第７、第８及び／又は第９の実施例と組み合わされてもよいし、そうでなくでもよい）では、ハードウェアは、キャッシュメモリと統合されてもよい。
【００１６】
第１１の実施例（第１、第２、第３、第４、第５、第６、第７、第８、第９及び／又は第１０の実施例と組み合わされてもよいし、そうでなくでもよい）では、情報は、リクエスト元識別フィールド及び／又はタイプフィールドの形式でメモリリクエストのフィールドから特定されてもよい。
【００１７】
このため、いくつかの任意的な実施例では、上述した装置、システム及び／又は方法の上記の特徴の１つ以上は、キャッシュメモリがアクティブである間、クロック速度及び／又は電圧の制御を可能にしてもよく、ここで、そのような制御はアクティブなメモリリクエストに関して特定される特定の情報の結果としてより大きな精度によって管理されうる。これは次に、そのような微調整されるクロック速度及び／又は電圧の制御を欠落するシステムにおいてそうでない場合に失われるであろう電力セービングをより大きくしうる。他の実施例では、パフォーマンスがまた高まりうる。上述した可能な効果は例示的な目的のためにのみ提供され、何れかの方式で限定されるとして解釈されるべきでないことが留意されるべきである。
【図面の簡単な説明】
【００１８】
【図１】一実施例によるメモリリクエスト情報に基づきキャッシュメモリのクロック速度／電圧を設定する方法を示す。
【図２】他の実施例によるメモリリクエスト情報に基づきキャッシュメモリのクロック速度／電圧を設定するシステムを示す。
【図３】更なる他の実施例によるメモリリクエスト情報に基づきキャッシュメモリのクロック速度／電圧を設定する共有キャッシュコントローラを示す。
【図４】更なる他の実施例によるキャッシュメモリのクロック速度／電圧を設定するのに利用されうる情報を備えたサンプルメモリリクエストを示す。
【図５】更なる他の実施例によるメモリリクエスト情報に基づきキャッシュメモリのクロック速度／電圧を設定する方法を示す。
【図６】更なる他の実施例によるメモリリクエスト情報に基づくキャッシュメモリのクロック速度／電圧を設定する追加的な変形を示す。
【図７Ａ】更なる他の実施例によるメモリリクエスト情報に基づきキャッシュメモリのクロック速度／電圧を設定する一例となるタイミング図を示す。
【図７Ｂ】一実施例によるメモリリクエスト情報に基づきキャッシュメモリのクロック速度／電圧を設定するシステムを示す。
【図８】可能な一実施例によるネットワークアーキテクチャを示す。
【図９】一実施例による一例となるシステムを示す。
【発明を実施するための形態】
【００１９】
図１は、一実施例によるメモリリクエスト情報に基づきキャッシュメモリのクロック速度／電圧を設定する方法１００を示す。図示されるように、ステップ１０２において、メモリリクエストが受信される。本説明のコンテキストにおいて、そのようなメモリリクエストは、キャッシュメモリにおけるアクションを生じさせることを意図する何れかのリクエストを含みうる。
【００２０】
ステップ１０４に示されるように、メモリリクエストを受信したことに応答して、メモリリクエストに関連して情報が特定される。本説明では、そのような情報は、メモリリクエストに含まれる何れかの情報、又はメモリリクエストのコンテンツから導出及び／又は作成される何れかの情報を含んでもよい。図１に示されるように、ステップ１０４は、キャッシュメモリと電気的に通信するハードウェアを利用して実行される。そのようなハードウェアは、当該情報を特定し、これを利用することが可能な何れかのハードウェア（例えば、統合された、離散的なコンポーネントなど）を含んでもよい。さらに、本説明のコンテキストにおける“電気的通信”という用語は、関連する電気コンポーネント間の何れか直接的及び／又は間接的な電気結合を表しうる。例えば、そのような電気コンポーネントは、それらの間の中間的なコンポーネントと、又はなく電気的に通信してもよい。
【００２１】
また、本説明のコンテキストでは、キャッシュメモリは、システムにおける他のＲＡＭより迅速にアクセスされることが可能な何れかのランダムアクセスメモリ（ＲＡＭ）を含んでもよい。例えば、可能な一実施例では、キャッシュメモリは、スタティックランダムアクセスメモリ（ＳＲＡＭ）又は他の何れかのタイプのＲＡＭを含んでもよい。キャッシュメモリはハイブリッドメモリタイプ／クラスシステムを含む実施例がまた想到される。
【００２２】
一実施例では、キャッシュメモリは、ローカルキャッシュメモリとは別の共有キャッシュメモリを含んでもよい。そのような実施例では、ローカルキャッシュメモリの別のインスタンスが、複数の別々のコンピュータ又はプロセッサコンポーネント（例えば、クラスタ、コア、スヌーピングエージェントなど）の１つのみによってアクセスされてもよく、一方、共有キャッシュメモリは、別々のコンピュータ又はプロセッサコンポーネントの複数の間で共有されてもよい。上述されたプロセッサは、汎用プロセッサ、中央処理ユニット、グラフィクスプロセッサ及び／又は他の何れかのタイプの所望のプロセッサを含んでもよいことが留意されるべきである。
【００２３】
一実施例では、当該情報は、メモリリクエストを引き起こした少なくとも１つのプロセッサの少なくとも一部に関連してもよい。例えば、当該情報は、メモリリクエストを引き起こした少なくとも１つのプロセッサの少なくとも一部のクロック速度及び／又は電圧に関連してもよい。他の実施例では、当該情報は、あるタイプのメモリリクエスト（例えば、リードタイプ、ライトタイプ、コヒーレンスタイプ、プリフェッチタイプ又はフラッシュタイプなど）に関連してもよい。本説明のコンテキストにおいて、リードタイプメモリリクエストはメモリからデータを読むためのリクエストに関係するものであってもよく、ライトタイプメモリリクエストはメモリにデータを書き込むためのリクエストに関係するものであってもよく、コヒーレンスタイプメモリリクエストはシステムにおける複数の格納位置の間でデータが一致していることを保証するリクエストに関係するものであってもよく、プリフェッチタイプメモリリクエストはミスを回避するためにデータを利用可能にすることを試みるリクエストに関係するものであってもよく、フラッシュタイプメモリリクエストはキャッシュメモリの少なくとも一部を空にするリクエストに関係するものであってもよい。
【００２４】
更なる他の実施例では、当該情報は、メモリリクエストの対象であるデータのステータス（例えば、ヒットステータス、ミスステータス又はヒット・オン・プライア・ミスステータスなど）に関連してもよい。本説明のコンテキストでは、ヒットステータスは、データに対するメモリリクエストがキャッシュメモリにおけるアクセスのため当該データが利用可能であることを生じさせる状況を表すものであってもよく、ミスステータスは、データに対するメモリリクエストがキャッシュメモリにおけるアクセスのため当該データが利用可能であることを生じさせない状況を表すものであってもよく、ヒット・オン・プライア・ミスステータスは、データに対するメモリリクエストが、同一のデータに対する前のメモリリクエストがキャッシュメモリにおけるアクセスのため当該データが利用可能であることを生じさせなかった後、キャッシュメモリにおけるアクセスのため当該データが利用可能であることを生じさせる状況を表すものであってもよい。
【００２５】
また更なる他の実施例では、当該情報は、メモリリクエストによって引き起こされるキャッシュメモリのアクション（例えば、リードアクション、ライトアクション、外部メモリに対するリクエスト、フラッシュアクション又はヌルアクションなど）に関連してもよい。本説明のコンテキストでは、リードアクションはデータがキャッシュメモリから読まれることを生じさせる何れかのアクションを表すものであってもよく、ライトアクションはデータがキャッシュメモリに書き込まれることを生じさせる何れかのアクションを表すものであってもよく、外部メモリに対するリクエストはデータがキャッシュメモリ以外のメモリからリクエストされる何れかのアクションを表すものであってもよく、フラッシュアクションは少なくともいくつかのデータがキャッシュメモリから空にされることを生じさせる何れかのアクションを表すものであってもよく、ヌルアクションはメモリリクエストに応答して何れのアクションもとられない何れかの状況を表すものであってもよい。
【００２６】
上記の情報は何れか所望の方式で特定されうるが、当該情報は、一実施例では、メモリリクエストのフィールド（例えば、リクエスト元識別フィールド、タイプフィールドなど）から特定されうる。上記の情報に関する更なる詳細は、以降の実施例の説明の間により詳細に以降に与えられるであろう。
【００２７】
ステップ１０４において特定された情報に基づき、処理１０６において、キャッシュメモリと電気的に通信するハードウェアを利用して、キャッシュメモリの少なくとも一部のクロック速度及び／又は電圧が設定される。ステップ１０４及び１０６に関して利用されるハードウェアの１つ以上の部分は同一であってもよいし、あるいは同一でなくてもよいことが留意されるべきである。さらに、ハードウェアは、キャッシュメモリ（又は限定することなく、プロセッサ、メモリコントローラなどを含む他の何れかのコンポーネント）と統合されてもよいし、あるいは統合されなくてもよい。
【００２８】
一実施例では、クロック速度と電圧との双方が設定されてもよいが、他の実施例では、クロック速度のみ又は電圧のみが設定されてもよい。例えば、一実施例では、クロック速度及び電圧は、キャッシュメモリのオペレーティングポイント（ＯＰＰ）を含んでもよい。さらに、クロック速度及び／又は電圧は、キャッシュメモリの一部又はキャッシュメモリの全体について設定されてもよい。前者の場合、キャッシュメモリの一部は、そのため、キャッシュメモリの少なくとも１つのバンク又はその何れか一部を含んでもよい。
【００２９】
更なる例示的な情報が、上記の方法がユーザの要求毎に実現されてもよいし、あるいは実現されなくてもよい各種の任意的なアーキテクチャ及び利用に関して提供される。以下の情報は例示的な目的のために提供され、何れかの方式で限定的として解釈されるべきでないことが留意されるべきである。以下の特徴の何れかは、説明される他の特徴を排除することによって、又は排除することなく任意的には搭載されてもよい。
【００３０】
例えば、いくつかの任意的な実施例では、方法１００は、キャッシュメモリがアクティブである間、クロック速度及び／又は電圧の制御を可能にしうる。そのような制御は、アクティブなメモリリクエストに関して特定される情報の結果としてより高い精度によって管理されうる。これは、次にそのようなきめ細かいクロック速度及び／又は電圧の制御を欠いたシステムにおいて見合わされるより大きな電力の節約をもたらす。他の実施例では、パフォーマンスがまたエンハンスされうる。単なる例として、可能な一実施例では、（キャッシュコヒーランスなどを実現するため）高いレートのスヌーピングの対象であるキャッシュメモリは、クロック速度及び／又は電圧の制御がスヌーピングデバイスに対応して設定されることによって、ストールを回避しうる。もちろん、上記の潜在的な効果は厳密には任意的であってもよい。
【００３１】
図２は、他の実施例によるメモリリクエスト情報に基づきキャッシュメモリのクロック速度／電圧を設定するシステム２００を示す。選択肢として、システム２００は、何れか以前及び／又は以降の図及び／又はその説明において提供された実施例の何れか１つ以上のコンテキストにおいて実現されうる。しかしながら、システム２００は何れか所望の環境のコンテキストにおいて実現されうることが理解されるべきである。
【００３２】
図示されるように、システム２００は、それぞれが複数のコア２０４を含む複数のクラスタ２０２を含む。使用において、コア２０４のそれぞれには、各種計算及び格納要求を有しうる計算タスクが独立して及び／又はまとめて割り当てられうる。そのような格納要求の少なくとも一部は、複数のコア２０４と一体化されるローカルキャッシュメモリ２０６によってサービス提供されうる。さらに、コア２０４は、図示された方式でクラスタクロック２０８（例えば、位相同期ループ（ＰＬＬ）回路など）によって駆動されてもよい。
【００３３】
さらに、キャッシュコヒーレントインターコネクト２１２を介しクラスタ２０２のコア２０４と電気的に通信する共有キャッシュメモリ２１０が提供される。この設計によって、共有キャッシュメモリ２１０は、ローカルキャッシュメモリ２０６が利用可能であるのと同様の方式でコア２０４に利用可能である。さらに、キャッシュコヒーレントインターコネクト２１２は更に、共通のデータがローカルキャッシュメモリ２０６と共有キャッシュメモリ２１０との双方に格納される程度まで、そのような共通のデータが整合したままであることを保証するために利用されうる。
【００３４】
図２を続けて参照して、共有キャッシュメモリ２１０と電気的に通信する共有キャッシュメモリ２１５が提供される。更に図示されるように、共有キャッシュメモリ２１５は、入力としてクラスタ２０２のコア２０４（及び／又は他のソース）によって促されるメモリリクエスト２１６を受信し、所望のルートを介し受信されうる（例えば、他のコンポーネントを介しコア２０４から直接的にメモリコントローラ（図示せず）などを介し）。更なる入力として、共有キャッシュコントローラ２１５は更に、コア２０４及び／又は共有キャッシュコントローラ２１５によってサービス提供される他の何れかのシステムコンポーネントに関して１つ以上のクロック信号２１８を受信する。
【００３５】
動作において、共有キャッシュコントローラ２１５は、メモリリクエスト２１６及び／又は１つ以上のクロック信号２１８（及び／又はそれから取得される何れかの情報）を利用して、共有キャッシュメモリ２１０が動作するクロック及び／又は電圧を設定するため、共有キャッシュメモリ２１０に少なくとも１つのクロック及び／又は電圧信号２２０を出力する。このため、共有キャッシュメモリ２１０は、メモリリクエスト２１６及びおそらくクロック信号２１８の関数としてクロック及び／又は電圧を設定することによってエンハンスされた電力セービングによって実行されうる。各種実施例では、そのようなエンハンスされた電力セービングのレベルは、どの情報が取得され、共有キャッシュメモリ２１０のクロック及び／又は電圧を設定するためそれがどのように利用されるかに依存しうる。共有キャッシュコントローラ２１５の可能な１つのアーキテクチャに関する更なる情報が提供される。
【００３６】
図３は、更なる他の実施例によるメモリリクエスト情報に基づきキャッシュメモリのクロック速度／電圧を設定する共有キャッシュコントローラ３００を示す。選択肢として、共有キャッシュコントローラ３００は、何れか以前及び／又は以降の図及び／又はその説明において提供される実施例の何れか１つ以上のコンテキストにおいて実現されうる。例えば、一実施例では、共有キャッシュコントローラ３００は、図２の共有キャッシュコントローラ２１５を含みうる。しかしながら、共有キャッシュコントローラ３００は何れか所望の環境のコンテキストにおいて実現されうることが理解されるべきである。
【００３７】
図示されるように、共有キャッシュコントローラ３００は、キャッシュとして動作するＳＲＡＭ３０４と電気的に通信を維持するキャッシュ制御ユニット３０２を含む。使用において、キャッシュ制御ユニット３０２は、各種タイプ（例えば、リードタイプ、ライトタイプ、コヒーレンスタイプ、プリフェッチタイプ又はフラッシュタイプなど）の何れか１つ以上に対して取得されうる複数のメモリリクエスト３０６を受信する。以降の実施例の説明中に以降において明らかになるように、メモリリクエスト３０６は、処理対象のデータによるデータフィールド、メモリリクエストタイプを特定するタイプフィールドなどを含む各種フィールドを含みうる。メモリリクエスト３０６に応答して、キャッシュ制御ユニット３０２は、ＳＲＡＭ３０４に関する１つ以上のアクション（例えば、リードアクション、ライトアクション、外部メモリに対するリクエスト、フラッシュアクション又はヌルアクションなど）を引き起こす。
【００３８】
更に図示されるように、メモリリクエスト３０６はまた、１つ以上のバス３０７を介し外部メモリ３０５とやりとり（例えば、リード、ライトなど）するよう共有キャッシュコントローラ３００を促してもよい。また更に、キャッシュ制御ユニット３０２は更に、各メモリリクエスト３０６から生じたデータステータス信号３０８（例えば、ヒット、ミス又はヒット・オン・プライア・ミスなど）を報告してもよい。一実施例では、そのようなデータステータス信号３０８は、リクエストされる必要なくプッシュされてもよいし、他の実施例では、データステータス信号３０８は、共有キャッシュコントローラ３００の他のコンポーネントによってリクエストされてもよい。
【００３９】
共有キャッシュコントローラ３００は更に、入力としてメモリリクエスト３０６、データステータス信号３０８及び複数のクロック信号３１０を受信するキャッシュ電力管理ユニット３０９を含む。そのようなクロック信号３１０は、ＳＲＡＭ３０４によってサービス提供されるべき複数のコンポーネント（例えば、コンピュータ、プロセッサ、コア、スヌープエージェント、これらの一部など）のそれぞれのクロック信号（例えば、ＲＥＱＵＥＳＴＥＲ＿ＣＬＫ１，ＲＥＱＵＥＳＴＥＲ＿ＣＬＫ２，．．．，ＲＥＱＵＥＳＴＥＲ＿ＣＬＫＮなど）を含みうる。さらに、リファレンスクロック（ＲＥＦ＿ＣＬＫ）がまた提供されうる。
【００４０】
動作において、共有キャッシュコントローラ３００は、ＳＲＡＭ３０４（及び／又はそれの何れかの部分）の動作クロック周波数を設定するための内部クロック設定３１４Ａ，３１４Ｂと共に、ＳＲＡＭ３０４（及び／又はそれの何れかの部分）の動作電圧を設定するための電圧設定３１２を取得するようサービス提供する。さらに、そのような電圧設定３１２及び内部クロック設定３１４Ａ，３１４Ｂは、具体的には、限定することなく、メモリリクエスト３０６、データステータス信号３０８及び／又はメモリリクエスト３０６に関して収集及び／又は処理される他の何れかの情報のフィールドを含むメモリリクエスト３０６のコンテンツから取得、導出及び／又は生じる（因果関係を介し）情報の関数として提供される。
【００４１】
図示されるように、ＳＲＡＭ３０４のクロックを設定するため、内部クロック設定３１４Ａ，３１４Ｂは、キャッシュ電力管理ユニット３０９によって提供されるデバイダレシオ信号３１４Ｂの関数としてクロック信号３１０をデバイドするクロックデバイダ３１６にクロック信号３１０の１つを提供するマルチプレクサ３１５に提供されるクロックセレクト信号３１４Ａを含む。このため、外部クロック設定３１８は、ＳＲＡＭ３０４のクロックを設定するため出力される。この設計によって、クロック信号３１０（サービス提供されるコンポーネントなどをクロックする）の適切に選択されたものは、ＳＲＡＭ３０４をクロックするためステップダウンされうる。
【００４２】
この設計によって、メモリリクエストを受信したことに応答して、メモリリクエストに関して情報を特定する第１のモジュール（例えば、キャッシュ制御ユニット３０２、他の回路など）が備えられる。さらに、当該情報に基づきキャッシュメモリの少なくとも一部のクロック速度又は電圧の少なくとも１つを設定する第２のモジュール（例えば、キャッシュ電力管理ユニット３０９、他の回路など）が備えられる。上述したように、そのような電圧／クロック制御は、アクティブなメモリリクエストに関して特定される情報の結果として、より大きな精度によって管理されうる。次にこれは、そのようなインテリジェントで微調整されたクロック速度及び／又は電圧の制御を欠落したシステムにおいて行われるであろう電力セービングをより大きくしうる。
【００４３】
図４は、更なる他の実施例によるキャッシュメモリのクロック速度／電圧を設定するのに利用されうる情報によるサンプルメモリリクエスト４００を示す。選択肢として、サンプルメモリリクエスト４００は、何れか以前及び／又は以降の図及び／又はその説明において提供される実施例の何れか１つ以上のコンテキストにおいて利用されうる。例えば、一実施例では、サンプルメモリリクエスト４００は、図２の共有キャッシュコントローラ２１５、図３の共有キャッシュコントローラ３００などによって受信されてもよい。
【００４４】
図示されるように、メモリリクエスト４００は、タイプフィールド４０２、リクエスト元識別子フィールド４０４、アドレスフィールド４０６、データフィールド４０８、ダーティビットフィールド４１０、キャッシュヒントフィールド４１２及びミスクレイニアス属性フィールド４１４を含む複数のフィールドを含む。使用において、タイプフィールド４０２は、メモリリクエストのタイプ（例えば、リードタイプ、ライトタイプ、コヒーレンスタイプ、プリフェッチタイプ又はフラッシュタイプなど）を特定してもよく、リクエスト元識別子フィールド４０４は、メモリリクエスト４００を引き起こしたコンポーネント（例えば、クラスタ、コア、スヌーピングエージェントなど）を特定しうる。これは、何れか所望の識別子（例えば、一意的な２進数など）を用いて実現されてもよい。この設計によって、これについてタイプフィールド４０２、リクエスト元識別子フィールド４０４及び／又は他の何れかのフィールドのコンテンツが、キャッシュメモリのクロック速度／電圧を設定するのに利用されうる。メモリリクエスト４００がキャッシュメモリのクロック速度／電圧を設定するのに利用されうる可能な１つの方法に関する更なる情報が、ここで提供される。
【００４５】
図５は、更なる他の実施例によるメモリリクエスト情報に基づきキャッシュメモリのクロック速度／電圧を設定する方法５００を示す。選択肢として、方法５００は、何れか以前及び以降の図及び／又はその説明において提供される実施例の何れか１つ以上のコンテキストにおいて実現されうる。例えば、一実施例では、方法５００は、図２の共有キャッシュコントローラ２１５、図３の共有キャッシュコントローラ３００などによって実行されてもよい。さらに、方法５００は、プリフェッチエンジン、複数のライトバッファ及びフィル／イビクトキューと共に、ライト・バック／ライト・アロケート機能を備えた非ブロッキングマルチバンクキャッシュを含む環境において動作しうる。しかしながら、方法５００は、何れか所望の環境のコンテキストにおいて実現されうることが理解されるべきである。
【００４６】
図示されるように、ステップ５０２において、メモリリクエストが受信される。各種実施例において、メモリリクエストは、これについてここに開示される何れかのコンポーネント（例えば、図２の共有キャッシュコントローラ２１５、図３の共有キャッシュコントローラ３００など）又は他の何れかのコンポーネントによって受信されてもよい。ステップ５０４において、メモリリクエストのタイプフィールド及びリクエスト元識別子フィールド（例えば、図４のタイプフィールド４０２、リクエスト元識別子フィールド４０４など）のコンテンツが格納される。
【００４７】
その後、判定５０６において、ステップ５０２において受信したメモリリクエストがヒットとなったか判定される（すなわち、リクエストされたデータがアクセスのため利用可能であるなど）。ヒットでない場合、データはその後、外部メモリからデータをフェッチするためリクエストをバッファに配置することによって、外部メモリからリクエストされる。ステップ５０８を参照されたい。その後、方法５００は、判定５１０に従ってリクエストされたデータ（例えば、データムなど）が利用可能になるまでポーリングする。その後、判定５１２に従って、データがキャッシュメモリにコピーされるか判定される。いくつかの実施例では、リクエストされたデータはリクエスト元のコンポーネントに直接送信される（そして、キャッシュメモリにコピーされない）ことが留意されるべきである。
【００４８】
従って、判定５０６においてメモリリクエストがヒットになったと判定された場合、又は、判定５１２においてデータがキャッシュメモリにコピーされたと判定された場合、方法５００は、ステップ５１４に従って、キューにおけるメモリリクエストをスケジューリングすることによって、キャッシュメモリのターゲット部分（例えば、バンクなど）にアクセスし続ける。その後、方法５００は、判定５１６に従ってリクエストがスケジューリングされるまでポーリングし、その後、ステップ５１８において、アクセスインジケータがメモリリクエストに対して設定される。各種実施例では、そのようなアクセスインジケータは、メモリリクエスト（及びそこに含まれる／それから導出される何れかの情報）がアクティブであって、従ってメモリリクエストを引き起こした関連するコンポーネント（又はその一部）によってアクセスされる間にキャッシュメモリの電圧／クロックを設定する際に考慮されるべきであることを示すため、メモリリクエストと一緒に又は別々に格納される何れか１つ以上のビットであってもよい。
【００４９】
次に、方法５００は、判定５２０において、上述したキューに何れか保留中のメモリリクエストがあるか判定する。ない場合、方法５００はアイドルになる（そして、他の電力セービング技術が利用されてもよいし、されなくてもよい）。他方、上述したキューに何れか保留中のメモリリクエストがある場合（例えば、方法５００はアクティブである）、メモリキャッシュの対応するターゲット部分について最適な電圧及び／又はクロック（例えば、ＯＰＰなど）が決定される。ステップ５２２を参照されたい。
【００５０】
各種実施例では、そのようなＯＰＰは、キャッシュメモリがアクティブである間、電力セービングを高めるためにメモリリクエスト（及び／又はそれから導出／生じるコンテンツ又は情報）を利用する何れか所望の方式で決定されてもよい。一実施例では、最適なＯＰＰは、キューにおける保留中のメモリリクエストのアクセスインジケータによって示されるように、キャッシュメモリに現在アクセスしているリクエスト元の最も高いクロック（すなわち、他と比較して最速である）であるとしてキャッシュ電力管理ユニット（例えば、図３のキャッシュ電力管理ユニット３０９など）によって決定されてもよい。
【００５１】
他の実施例では、ＯＰＰが変更される周波数を制限するため、ＯＰＰを変更する前に最小時間量が利用されてもよい。従って、メモリリクエストは、ＯＰＰを変更するため全てのサイクルでバッファリングされてもよいが、当該変更はＮサイクロ毎にしか行われなくてもよく、ここで、Ｎ＝１，２，３，．．．，Ｘ（何れかの整数）。このため、キャッシュメモリクロックをスケーリングするための判定は、キャッシュメモリがアクセスされているコンテキストに基づき抑止されてもよく、そのようなコンテキストはメモリリクエスト情報によって規定されてもよい。
【００５２】
他の可能な実施例では、そのような量はメモリリクエストのレートに基づきＯＰＰを変更する際の遅延を補償するよう要求されうる。更なる他の実施例では、クロックを選択及び変更する際のロック遅延を最小化するグリッチフリーマルチプレクサの設計が利用されうる。さらに、キャッシュメモリの選択されたキャッシュ／バンク電圧は、クロック生成器について必要とされる電圧と異なるか、又は同じであってもよい。
【００５３】
何れかのケースにおいて、キャッシュメモリのターゲット部分は、最適なＯＰＰに調整され、その後、リクエスト元にデータを返してもよい。ステップ５２４を参照されたい。その後、方法５００は、判定５２６に従って、アクセスが完了するまでポーリングし、その後、そのようなポイントにおいてそのようなメモリリクエストはすでにサービス提供されており、最適なＯＰＰの何れか以降の計算においてもはや関連がないため、上述したアクセスインジケータは、アクセスを引き起こしたメモリリクエストについて、ステップ５２８においてクリアされる。
【００５４】
図６は、更なる他の実施例によるメモリリクエスト情報に基づきキャッシュメモリのクロック速度／電圧を設定する更なる変形６００を示す。選択肢として、当該更なる変形６００は、何れか以前及び以降の図及び／又はその説明において提供される実施例の何れか１つ以上のコンテキストにおいて実現されうる。しかしながら、更なる変形６００は何れか所望の環境のコンテキストにおいて実現されてもよいことが理解されるべきである。
【００５５】
図示されるように、各種キャッシュクロック判定６０２が、アクセスタイプ６０４、データステータス６０６及びキャッシュアクション６０８の異なる組み合わせの関数として与えられうる。例えば、データステータスがヒットを示し、キャッシュアクションがリードであるリード又はスヌープアクセスタイプの場合、クロックは全ての現在のリクエスト元に関してスケーリングされうる。さらに、リード又はスヌープアクセスタイプのケースであるが、データステータスがミスを示し、キャッシュアクションがヌルである場合、リクエストされたデータがメモリからフェッチされるまで、クロックはリクエスト元に関してスケーリングされうる。さらに、データステータスがヒットを示し、キャッシュアクションがライトであるライトアクセスタイプの場合、クロックは全ての現在のリクエスト元に関してスケーリングされてもよい。さらに、クロック／電圧を最適化するよう実行されるアクションがない他の具体例が示される。
【００５６】
図７Ａは、更なる他の実施例によるメモリリクエスト情報に基づきキャッシュメモリのクロック速度／電圧を設定する一例となるタイミング図７００を示す。選択肢として、一例となるタイミング図７００は、何れか以前及び以降の図及び／又はその説明において提供される実施例の何れか１つ以上の処理を反映しうる。
【００５７】
図示されるように、第１のドメイン７０２（例えば、少なくとも１つのリクエスト元コンポーネントなどを含む）は、第１のクロック７０２Ａと、データステータス７０２Ｃを生じさせるキャッシュリクエスト７０２Ｂとを含む。さらに、第２のドメイン７０４（例えば、少なくとも１つの他のリクエスト元コンポーネントなどを含む）は、第２のクロック７０４Ａと、データステータス７０４Ｃを生じさせるキャッシュリクエスト７０４Ｂとを含む。さらに、キャッシュメモリ７０６が、第３のクロック７０６Ａを含むよう示される。２つのドメイン７０２，７０４が本実施例のコンテキストにおいて説明されるが、他の実施例はそのようなドメインのより多く又はより少なくによって想定されることが留意されるべきである。
【００５８】
第１のドメイン７０２のデータステータス７０２Ｃは期間７０６Ｃの間のミスを示すという事実に基づき、第２のクロック７０４Ａは、図示されるように、当該期間の間の第２のドメイン７０４の第２のクロック７０４Ａに同じものを設定することによって、キャッシュメモリの第３のクロック７０６Ａを導出するのに利用される。しかしながら、データステータス７０２Ｃが期間７０６Ｂの間にヒットを示すと、第１のクロック７０２Ａは、当該期間の間に第１のドメイン７０２の第１のクロック７０２Ａに同じものを設定することによって、キャッシュメモリ７０６の第３のクロック７０６Ａを導出するのに利用される。キャッシュメモリ７０６の第３のクロック７０６Ａは異なる２つのクロックレートの間をスイッチするよう示されるが、当該遷移の間に遅延が含まれうることが留意されるべきである。
【００５９】
従って、キャッシュメモリクロックをスケーリングする判定は、キャッシュメモリがアクセスされているコンテキストに基づき以降の時間まで抑止されてもよい。何れかの電圧／クロックスケーリングを抑止することによって、電力セービングが与えられてもよい。
【００６０】
図７Ｂは、他の実施例によるメモリリクエスト情報に基づきキャッシュメモリのクロック速度／電圧を設定するシステム７５０を示す。選択肢として、システム７５０は、何れか以前及び以降の図及び／又はその説明において提供される実施例の何れか１つ以上のコンテキストにおいて実現されうる。しかしながら、システム７５０が何れか所望の環境のコンテキストにおいて実現されてもよいことが理解されるべきである。
【００６１】
図示されるように、システム７５０は、メモリリクエストの受信に応答して、メモリリクエストに関して情報を特定するよう構成される第１のモジュール７５２（例えば、図１の処理１０４を実行するモジュール、図３におけるキャッシュ制御ユニット３０２などの図２におけるコントローラ２１５の第１の部分など）の形式における第１の手段を含む。また、第１のモジュール７５２と通信する第２のモジュール７５４（例えば、図１の処理１０６を実行するモジュール、図３におけるキャッシュ電力管理ユニット３０９及びクロックデバイダ３１６などの図２におけるコントローラ２１５の第２の部分など）の形式の第２の手段が含まれ、ここで、第２のモジュール７５４は、情報に基づきキャッシュメモリの少なくとも一部のクロック速度又は電圧の少なくとも１つを設定するよう構成される。一実施例では、システム７５０は、図１の方法１００に従って動作するよう構成されてもよい。例えば、システム７５０は、そのような実施例では、図１の処理１０２に従ってメモリリクエストを受信する受信モジュール（又は手段）を含んでもよい。
【００６２】
図８は、一実施例によるネットワークアーキテクチャ８００を示す。一実施例では、何れか以前及び以降の図及び／又はその説明において提供される実施例の何れか１つ以上のの上述したキャッシュメモリの電圧／クロック制御は、図８に示されるコンポーネントの何れかに含まれてもよい。
【００６３】
図示されるように、少なくとも１つのネットワーク８０２が提供される。本ネットワークアーキテクチャ８００のコンテキストにおいて、ネットワーク８０２は、限定されることなく、通信ネットワーク、ローカルエリアネットワーク（ＬＡＮ）、無線ネットワーク、インターネットなどのワイドエリアネットワーク（ＷＡＮ）、ピア・ツー・ピアネットワーク、ケーブルネットワークなどを含む何れかの形態をとりうる。１つのみのネットワークしか示されていないが、２つ以上の同様又は異なるネットワーク８０２が提供されてもよいことが理解されるべきである。
【００６４】
複数のデバイスがネットワーク８０２に結合される。例えば、サーバコンピュータ８１２及びエンドユーザコンピュータ８０８が、通信目的のためにネットワーク８０２に結合されうる。そのようなエンドユーザコンピュータ８０８は、デスクトップコンピュータ、ラップトップコンピュータ及び／又は他の何れかのタイプのロジックを含んでもよい。さらに、パーソナル・デジタル・アシスタント（ＰＤＡ）デバイス８１０、携帯電話デバイス８０６、テレビ８０４などを含む他の各種デバイスがネットワーク８０２に結合されうる。
【００６５】
図９は、一実施例による一例となるシステム９００を示す。選択肢として、システム９００は、図８のネットワークアーキテクチャ８００のデバイスの何れかのコンテキストにおいて実現されうる。しかしながら、システム９００は何れか所望の環境において実現されてもよいことが理解されるべきである。
【００６６】
図示されるように、バス９１２に接続される少なくとも１つの中央プロセッサ９０２を含むシステム９００が提供される。システム９００はまた、メインメモリ９０４（例えば、ハードディスクドライブ、ソリッドステートドライブ、ランダムアクセスメモリ（ＲＡＭ）など）を含む。システム９００はまた、グラフィクスプロセッサ９０８及びディスプレイ９１０を含む。
【００６７】
システム９００はまた、セカンダリストレージ９０６を含みうる。セカンダリストレージ９０６は、例えば、フロッピーディスクドライブ、磁気テープドライブ、コンパクトディスクドライブなどを表すハードディスクドライブ及び／又は着脱可能なストレージドライブを含む。着脱可能なストレージドライブは、周知の方式で着脱可能なストレージユニットから読み込み、及び／又は書き込む。
【００６８】
コンピュータプログラム又はコンピュータ制御ロジックアルゴリズムが、それについてメインメモリ９０４、セカンダリストレージ９０６及び／又は他の何れかのメモリに格納されてもよい。そのようなコンピュータプログラムは、実行されると、システム９００が各種機能（例えば、上記で提供されたような）を実行することを可能にする。メモリ９０４、セカンダリストレージ９０６及び／又は他の何れかのストレージは、非一時的なコンピュータ可読媒体の可能な具体例である。
【００６９】
ここに説明される技術は、ある態様ではコンピュータベース又はプロセッサ内蔵マシーン、装置又はデバイスなどの命令実行マシーン、装置又はデバイスによる利用のため又は接続してコンピュータ可読媒体に格納されている実行可能な命令により具現化されることが留意されるべきである。いくつかの実施例について、磁気カセット、フラッシュメモリカード、デジタルビデオディスク、ベルヌーイカートリッジ、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）など、コンピュータによるアクセス可能なデータを格納しうる他のタイプのコンピュータ可読媒体が含まれることは、当業者によって理解されるであろう。
【００７０】
ここで用いられるような“コンピュータ可読媒体”とは、命令実行マシーン、システム、装置又はデバイスがコンピュータ可読媒体から命令を読み込み（又はフェッチし）、説明された方法を実行するための命令を実行できるように、コンピュータプログラムの実行可能な命令を格納するのに適した何れかの媒体の１つ以上を含む。適したストレージフォーマットは、電子、磁気、光及び電磁フォーマットの１つ以上を含む。従来の一例となるコンピュータ可読媒体の非網羅的なリストは、ポータブルコンピュータディスケット、ＲＡＭ、ＲＯＭ、消去可能なプログラマブル読み出し専用メモリ（ＥＰＲＯＭ又はフラッシュメモリ）、ポータブルコンパクトディスク（ＣＤ）、ポータブルデジタルビデオディスク（ＤＶＤ）、高品位ＤＶＤ（ＨＤ−ＤＶＤＴＭ）、ＢＬＵ−ＲＡＹディスクなどを含む光ストレージデバイスを含む。
【００７１】
説明された図に示されるコンポーネントの構成は一例であり、他の構成が可能であることが理解されるべきである。また、請求項によって規定され、後述され、各種ブロック図に示される各種システムコンポーネント（及び手段）は、ここに開示される主題により構成されるいくつかのシステムにおける論理コンポーネントを表すことが理解されるべきである。
【００７２】
例えば、これらのシステムコンポーネント（及び手段）の１つ以上は、説明された図に示される構成において示されるコンポーネントの少なくとも一部によって全体的又は部分的に実現されうる。さらに、これらのコンポーネントの少なくとも１つが電子ハードウェアコンポーネントとして少なくとも部分的に実現され、従って、マシーンを構成する一方、その他のコンポーネントは、実行環境に含まれるとき、マシーン、ハードウェア又はソフトウェアとハードウェアとの組み合わせを構成するソフトウェアにより実現されうる。
【００７３】
より詳細には、請求項によって規定される少なくとも１つのコンポーネントは、命令実行マシーン（例えば、プロセッサベース又はプロセッサ内蔵マシーン）及び／又は特殊な回路（例えば、特殊な機能を実行するよう相互接続された離散的論理ゲート）など、電子ハードウェアコンポーネントとして少なくとも部分的に実現される。他のコンポーネントは、ソフトウェア、ハードウェア又はソフトウェアとハードウェアとの組み合わせにより実現されてもよい。さらに、ここに説明される機能を依然として実現する間、これらの他のコンポーネントの一部又は全ては組み合わせ可能であり、一部は一緒に省かれてもよく、追加的なコンポーネントが加えられてもよい。従って、ここに説明される主題は多数の異なる変形において具現化されてもよく、そのような変形の全てが請求されるものの範囲内にあると想到される。
【００７４】
上記の説明では、特段の断りがなければ、主題は１つ以上のデバイスによって実行される処理の動作及び記号的な表現を参照して説明される。また、コンピュータにより実行されるとしてときどき参照されるそのような動作及び処理は、構造化された形式のデータのプロセッサによる操作を含むことが理解されるべきである。この操作は、当業者によってよく理解される方式でデバイスの処理を再設定又は変更するコンピュータのメモリシステムにおける位置においてデータを変換又は維持する。当該データは、データのフォーマットによって規定される特定の性質を有するデータ構造としてメモリの物理的位置に維持される。しかしながら、主題は上記のコンテキストにおいて説明されるが、それは、当業者が以降に説明される様々な動作及び処理がまたハードウェアにより実現されうることを理解するものとして限定されることを意味しない。
【００７５】
ここに説明される主題の理解を容易にするため、多数の態様がアクションの系列に関して説明される。請求項によって規定されるこれらの態様の少なくとも１つは、電子的なハードウェアコンポーネントによって実行される。例えば、各種アクションが特殊な回路によって、１つ以上のプロセッサによってプログラム命令が実行されることによって、あるいは、双方の組み合わせによって実行されうることが認識されるであろう。何れかのアクションの系列のここでの説明は、当該系列を実行するため説明される特定の順序に従う必要があることを意味することを意図しない。ここに説明される全ての方法は、ここで特段の断りがない場合、あるいは、コンテキストによって明確に矛盾していない場合、何れか適した順序で実行されてもよい。
【００７６】
主題を説明するコンテキストにおける“ａ”、“ａｎ”及び“ｔｈｅ”の用語及び同様の参照の使用は（特に以下の請求項のコンテキストにおける）、ここで特段の断りがない場合、あるいは、コンテキストによって明確に矛盾していない場合、単数形と複数形の双方をカバーすると解釈される。ここでの値の範囲の記載は、ここで特段の断りがない場合、当該範囲内に属する別々の各値を個別に参照する短縮的な方法として機能することを単に意図し、別々の各値は、それがあたかもここで個別に記載されているように、明細書に援用される。さらに、上記の説明は、追求される保護範囲がそれの何れかの均等と一緒に以降で提供されるような請求項によって規定されるとき、限定の目的でなく例示のみのためのものである。ここに提供される何れか及び全ての具体例又は例示的な言語（例えば、など）の使用は、単に主題をより良好に示すことを意図し、請求されない場合、主題の範囲に対して限定を与えるものでない。請求項と記載された説明との双方における結果を生じさせる条件を示す“〜に基づく”及び他の同様のフレーズの使用は、当該結果をもたらす他の何れかの条件を排除することを意図しない。明細書におけるどの言語も、請求される本発明の実施に必須として請求されない要素を示すのものとして解釈されるべきでない。
【００７７】
ここに説明される実施例は、請求される主題を実行するため発明者に知られる１つ以上のモードを含む。これらの実施例の変形は上記の説明を読むと、当業者に明らかになることが理解されるべきである。発明者は、当業者が適切であるときにそのような変形を利用することを期待し、発明者は、ここで特段の断りがない場合、請求される主題が実施されることを意図する。従って、請求される当該主題は、適用可能な法律によって許可されるようなここに添付される請求項に記載される主題の全ての修正及び均等を含む。さらに、その可能な全ての変形における上述した要素の何れかの組み合わせは、ここで特段の断りがない場合、あるいは、コンテキストによって明確に矛盾していない場合、含まれる。
【図１】
2019527890.tif 000003
【図２】
2019527890.tif 000004
【図３】
2019527890.tif 000005
【図４】
2019527890.tif 000006
【図５】
2019527890.tif 000007
【図６】
2019527890.tif 000008
【図７Ａ】
2019527890.tif 000009
【図７Ｂ】
2019527890.tif 000010
【図８】
2019527890.tif 000011
【図９】
2019527890.tif 000012
【手続補正書】
【提出日】平成31年2月21日(2019.2.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリリクエストを受信するステップと、
前記メモリリクエストを受信したことに応答して、キャッシュメモリと電気的に通信するハードウェアを利用して、前記メモリリクエストに関して情報を特定するステップと、
前記情報に基づき、前記キャッシュメモリと電気的に通信する前記ハードウェアを利用して、前記キャッシュメモリの少なくとも一部のクロック速度又は電圧の少なくとも１つを設定するステップと、
を有する方法。
【請求項２】
前記情報は、前記メモリリクエストを引き起こした少なくとも１つのプロセッサの少なくとも一部に関連するか、又は、前記情報は、前記メモリリクエストを引き起こした少なくとも１つのプロセッサの少なくとも一部のクロック速度又は電圧の少なくとも１つに関連する、請求項１記載の方法。
【請求項３】
前記情報は、前記メモリリクエストのタイプに関連する、請求項１記載の方法。
【請求項４】
前記メモリリクエストのタイプは、リードタイプ、コヒーレンスタイプ、ライトタイプ、プリフェッチタイプ又はフラッシュタイプの少なくとも１つを含む、請求項３記載の方法。
【請求項５】
前記情報は、前記メモリリクエストの対象であるデータのステータスに関連する、請求項１記載の方法。
【請求項６】
前記データのステータスは、ヒットステータス、ミスステータス又はヒット・オン・プライア・ミスステータスの少なくとも１つを含む、請求項５記載の方法。
【請求項７】
前記情報は、前記メモリリクエストによって引き起こされる前記キャッシュメモリのアクションに関連する、請求項１記載の方法。
【請求項８】
前記メモリリクエストによって引き起こされる前記キャッシュメモリのアクションは、リードアクション、ライトアクション、外部メモリへのリクエスト、フラッシュアクション又はヌルアクションの少なくとも１つを含む、請求項７記載の方法。
【請求項９】
前記情報は、前記メモリリクエストのフィールドから特定される、請求項１記載の方法。
【請求項１０】
前記メモリリクエストのフィールドは、リクエスト元識別フィールドを含むか、又は、前記メモリリクエストのフィールドは、タイプフィールドを含む、請求項９記載の方法。
【請求項１１】
前記クロック速度又は前記電圧の少なくとも１つは、最も高いクロック速度又は電圧を示す少なくとも１つのプロセッサの少なくとも一部のクロック速度又は電圧の少なくとも１つに設定される、請求項１記載の方法。
【請求項１２】
前記クロック速度又は前記電圧の少なくとも１つは、前記キャッシュメモリの一部に対して設定されるか、又は、前記クロック速度又は前記電圧の少なくとも１つは、前記キャッシュメモリの一部に対して設定され、前記キャッシュメモリの一部は、前記キャッシュメモリの少なくとも１つのバンクを含む、請求項１記載の方法。
【請求項１３】
前記クロック速度又は前記電圧の少なくとも１つは、前記キャッシュメモリの全体に対して設定されるか、前記クロック速度と前記電圧との双方が、前記情報に基づき設定されるか、又は、前記ハードウェアは、前記キャッシュメモリと統合される、請求項１記載の方法。
【請求項１４】
メモリリクエストの受信に応答して、前記メモリリクエストに関して情報を特定するよう構成される回路と、
前記情報に基づきキャッシュメモリの少なくとも一部のクロック速度又は電圧の少なくとも１つを設定するよう構成される回路と、
を有する装置。
【請求項１５】
データを格納するキャッシュメモリと、
前記キャッシュメモリと電気的に通信するハードウェアと、
を有し、
前記ハードウェアは、
メモリリクエストを受信したことに応答して、前記メモリリクエストに関して情報を特定し、
前記情報に基づき前記キャッシュメモリの少なくとも一部のクロック速度又は電圧の少なくとも１つを設定するよう構成されるシステム。
【国際調査報告】
2019527890.tif 000013
2019527890.tif 000014