(57)【特許請求の範囲】
【請求項１】
複数の並列キャッシュのうちの少なくとも2つのキャッシュがアクティブであるかどうか判断し、
前記複数の並列キャッシュのうちのアクティブキャッシュに、前記複数の並列キャッシュのうちの1つまたは複数の他のキャッシュすべてがアクティブでない場合ライトバックキャッシュポリシーを適用するよう命令し、
前記複数の並列キャッシュのうちの前記アクティブキャッシュに、前記複数の並列キャッシュのうちの前記1つまたは複数の他のキャッシュのいずれかがアクティブである場合ライトスルーキャッシュポリシーを適用するよう命令し、
前記複数の並列キャッシュのうちの前記アクティブキャッシュに、前記複数の並列キャッシュのうちの前記1つまたは複数の他のキャッシュすべてが非アクティブになったとき前記ライトバックキャッシュポリシーを適用するよう命令するように構成された、キャッシュ書込みポリシーマネージャ。
【請求項２】
前記アクティブキャッシュに、前記複数の並列キャッシュのうちの前記1つまたは複数の他のキャッシュのいずれかがアクティブ化された場合すべてのダーティキャッシュラインをクリーニングするよう命令するようにさらに構成された、請求項1に記載のキャッシュ書込みポリシーマネージャ。
【請求項３】
前記アクティブキャッシュに、どのダーティキャッシュラインによって記憶されたデータも共有メモリに書き込むよう命令することによって、前記アクティブキャッシュに、すべてのダーティキャッシュラインをクリーニングするよう命令するように構成された、請求項2に記載のキャッシュ書込みポリシーマネージャ。
【請求項４】
前記1つまたは複数の他のキャッシュのいずれかにアクセスするように構成された1つまたは複数のプロセッサコアのうちのいずれかが電力供給されているかどうか判断することによって、前記複数の並列キャッシュのうちの前記1つまたは複数の他のキャッシュのいずれかがアクティブであるかどうか判断するように構成された、請求項1に記載のキャッシュ書込みポリシーマネージャ。
【請求項５】
前記1つまたは複数の他のキャッシュのいずれかにアクセスするように構成された1つまたは複数のプロセッサコアすべてが電力供給されていないかどうか判断することによって、前記複数の並列キャッシュのうちの前記1つまたは複数の他のキャッシュのすべてがアクティブでないかどうか判断するように構成された、請求項1に記載のキャッシュ書込みポリシーマネージャ。
【請求項６】
前記アクティブキャッシュが、前記ライトスルーキャッシュポリシーをデフォルトポリシーとして適用するように構成される、請求項1に記載のキャッシュ書込みポリシーマネージャ。
【請求項７】
処理コア、ハイパーバイザ、電力管理ユニット(PMU)、および半導体ダイのうち少なくとも1つに統合された、請求項1に記載のキャッシュ書込みポリシーマネージャ。
【請求項８】
前記キャッシュ書込みポリシーマネージャが統合されたセットトップボックス、娯楽機器、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤからなるグループから選択されたデバイスをさらに含む、請求項1に記載のキャッシュ書込みポリシーマネージャ。
【請求項９】
キャッシュ用のハイブリッドなライトスルー/ライトバックキャッシュポリシーを提供するための方法であって、
複数の並列キャッシュのうちの少なくとも2つのキャッシュがアクティブであるかどうか判断するステップと、
前記複数の並列キャッシュのうちの前記アクティブキャッシュに、前記複数の並列キャッシュのうちの1つまたは複数の他のキャッシュすべてがアクティブでない場合ライトバックキャッシュポリシーを適用するよう命令するステップと、
前記複数の並列キャッシュのうちのアクティブキャッシュに、前記複数の並列キャッシュのうちの前記1つまたは複数の他のキャッシュのいずれかがアクティブである場合ライトスルーキャッシュポリシーを適用するよう命令するステップと、
前記複数の並列キャッシュのうちの前記アクティブキャッシュに、前記複数の並列キャッシュのうちの前記1つまたは複数の他のキャッシュすべてが非アクティブになったとき前記ライトバックキャッシュポリシーを適用するよう命令するステップとを含む、方法。
【請求項１０】
前記アクティブキャッシュに、前記複数の並列キャッシュのうちの前記1つまたは複数の他のキャッシュのいずれかがアクティブ化された場合すべてのダーティキャッシュラインをクリーニングするよう命令するステップをさらに含み、
前記アクティブキャッシュに、すべてのダーティキャッシュラインをクリーニングするよう命令するステップが、前記アクティブキャッシュに、どのダーティキャッシュラインによって記憶されたデータも共有メモリに書き込むよう命令するステップを含む、請求項9に記載の方法。
【請求項１１】
前記1つまたは複数の他のキャッシュのいずれかにアクセスするように構成された前記1つまたは複数のプロセッサコアのいずれかが電力供給されているかどうか判断することによって、前記複数の並列キャッシュのうちの前記1つまたは複数の他のキャッシュのいずれかがアクティブであるかどうか判断するステップを含む、請求項9に記載の方法。
【請求項１２】
前記1つまたは複数の他のキャッシュのいずれかにアクセスするように構成された前記1つまたは複数のプロセッサコアのすべてが電力供給されていないかどうか判断することによって、前記複数の並列キャッシュのうちの前記1つまたは複数の他のキャッシュのすべてがアクティブでないかどうか判断するステップを含む、請求項9に記載の方法。
【請求項１３】
前記アクティブキャッシュに、前記ライトスルーキャッシュポリシーをデフォルトポリシーとして適用するよう命令するステップをさらに含む、請求項9に記載の方法。
【請求項１４】
複数の並列キャッシュと、
前記複数の並列キャッシュによって共有される共有メモリと、
請求項1から8のいずれか一項に記載のキャッシュ書込みポリシーマネージャとを備える、マルチプロセッサシステム。
【請求項１５】
プロセッサに、請求項9から13のいずれか一項に記載の方法を実施させるように構成された、コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示の技術は、マルチプロセッサの各プロセッサコアがそれ自体のローカルキャッシュを有し、共通キャッシュおよび/またはメインメモリを共有する、マルチプロセッサに関する。
【０００２】
優先権出願
本出願は、参照によってその全体が本明細書に組み込まれている、2012年1月16日に出願した「HYBRID WRITE-THROUGH/WRITE-BACK POLICY FOR CACHES, AND RELATED SYSTEMS AND METHODS」と題する米国仮特許出願第61/586,937号の優先権を主張する。
【背景技術】
【０００３】
プロセッサキャッシュは、ライトバックキャッシュポリシーまたはライトスルーキャッシュポリシーを実装するように構成され得る。ライトスルーキャッシュポリシーは、キャッシュに記憶されたすべてのデータを、次レベルキャッシュにライトスルーする。たとえば、第1レベルライトスルーキャッシュは、第1レベルキャッシュに記憶されたすべてのデータを次レベルキャッシュにライトスルーすることができる。ライトスルーキャッシュポリシーは、キャッシュに記憶されたデータが次レベルキャッシュにライトスルーされるので、各第1レベルキャッシュがダーティデータを確実に含まないようにする。ただし、あらゆるデータストアを次レベルキャッシュにライトスルーすると、次レベルキャッシュにデータをライトスルーすることにより、追加電力を消費することになる。したがって、ライトスルーキャッシュポリシーは、比較的低電力のデバイスには理想的でない場合がある。
【０００４】
一方、ライトバックキャッシュポリシーで構成されたキャッシュ(すなわち、ライトバックキャッシュ)は、エビクションまで、キャッシュ中のダーティデータを収集する。ライトバックキャッシュは、エビクション前は第1レベルキャッシュへの書込みが収集され、ライトスルーされないので、より少ない電力しか消費しなくてすむ。ただし、ライトバックキャッシュを含むマルチプロセッサシステムは、より複雑であり得る。たとえば、ライトバックキャッシュ中のダーティデータは、データ一貫性を提供するために監視される必要がある場合がある。さらに、設計および検査フェーズにおいて、データデバッグの一貫性問題で時間を消費することになり得る場合がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
発明を実施するための形態で開示する実施形態は、ハイブリッドなライトスルー/ライトバックキャッシュポリシーマネージャ、ならびに関連するシステムおよび方法を含む。この点について、一実施形態では、キャッシュ書込みポリシーマネージャが提供される。キャッシュ書込みポリシーマネージャは、複数の並列キャッシュのうちの少なくとも2つのキャッシュがアクティブであるかどうか判断するように構成される。並列キャッシュは、1つまたは複数の共通リネージ(common lineage)(すなわち、親)キャッシュまたはメモリを、直接、または中間キャッシュもしくは中間メモリを通して間接的に共有するが、一貫性は維持されるべきである。アクティブキャッシュとは、使用中のキャッシュである。複数の並列キャッシュのうちの1つまたは複数の他のキャッシュすべてがアクティブでない場合、キャッシュ書込みポリシーマネージャは、複数の並列キャッシュのうちのアクティブキャッシュに、ライトバックキャッシュポリシーを適用するよう命令するように構成される。このようにして、キャッシュ書込みポリシーマネージャは、複数の並列プロセッサコアのうちの単一のプロセッサコアのみがアクティブであるとき、電力を節約し、かつ/または性能を向上させることができる。複数の並列キャッシュのうちの1つまたは複数の他のキャッシュのいずれかがアクティブである場合、キャッシュ書込みポリシーマネージャは、複数の並列キャッシュのうちのアクティブキャッシュに、ライトスルーキャッシュポリシーを適用するよう命令するように構成される。このように、キャッシュ書込みポリシーマネージャは、複数の並列プロセッサコアのうちの複数のプロセッサコアがアクティブであるとき、並列キャッシュの間でのデータ一貫性を促進する。
【０００６】
別の実施形態では、キャッシュ用のハイブリッドなライトスルー/ライトバックキャッシュポリシーを提供するための手段が提供される。この手段は、複数の並列キャッシュのうちの少なくとも2つのキャッシュがアクティブであるかどうか判断するための手段を備える。この手段は、複数の並列キャッシュのうちのアクティブキャッシュに、複数の並列キャッシュのうちの1つまたは複数の他のキャッシュすべてがアクティブでない場合、ライトバックキャッシュポリシーを適用するよう命令するための手段をさらに備える。この手段は、複数の並列キャッシュのうちのアクティブキャッシュに、複数の並列キャッシュのうちの1つまたは複数の他のキャッシュのいずれかがアクティブである場合、ライトスルーキャッシュポリシーを適用するよう命令するための手段をさらに備える。
【０００７】
別の実施形態では、キャッシュ用のハイブリッドなライトスルー/ライトバックキャッシュポリシーを提供するための方法が提供される。この方法は、複数の並列キャッシュのうちの少なくとも2つのキャッシュがアクティブであるかどうか判断するステップを含む。この方法は、複数の並列キャッシュのうちのアクティブキャッシュに、複数の並列キャッシュのうちの1つまたは複数の他のキャッシュすべてがアクティブでない場合、ライトバックキャッシュポリシーを適用するよう命令するステップをさらに含む。この方法は、複数の並列キャッシュのうちのアクティブキャッシュに、複数の並列キャッシュのうちの1つまたは複数の他のキャッシュのいずれかがアクティブである場合、ライトスルーキャッシュポリシーを適用するよう命令するステップをさらに含む。
【０００８】
別の実施形態では、キャッシュが提供される。このキャッシュは、キャッシュメモリと、キャッシュメモリのキャッシュ書込みポリシーを設定するように構成されたキャッシュコントローラとを備える。キャッシュコントローラは、複数の並列キャッシュのうちの1つまたは複数の他のキャッシュすべてがアクティブでないという指示の受信に応答して、キャッシュメモリ用のライトバックキャッシュポリシーを設定するようにさらに構成される。キャッシュコントローラは、複数の並列キャッシュのうちの1つまたは複数の他のキャッシュのいずれかがアクティブであるという指示の受信に応答して、キャッシュメモリ用のライトスルーキャッシュポリシーを設定するようにさらに構成される。
【０００９】
別の実施形態では、マルチプロセッサシステムが提供される。マルチプロセッサシステムは、複数の並列キャッシュと、複数の並列キャッシュによって共有される共有メモリとを備える。マルチプロセッサシステムは、複数の並列キャッシュのうちの少なくとも2つのキャッシュがアクティブであるかどうか判断するように構成されたキャッシュ書込みポリシーマネージャも備える。キャッシュ書込みポリシーマネージャは、複数の並列キャッシュのうちのアクティブキャッシュに、複数の並列キャッシュのうちの1つまたは複数の他のキャッシュすべてがアクティブでない場合、ライトバックキャッシュポリシーを適用するよう命令するようにさらに構成される。キャッシュ書込みポリシーマネージャは、複数の並列キャッシュのうちのアクティブキャッシュに、複数の並列キャッシュのうちの1つまたは複数の他のキャッシュのいずれかがアクティブである場合、ライトスルーキャッシュポリシーを適用するよう命令するようにさらに構成される。
【００１０】
別の実施形態では、非一時的コンピュータ可読媒体が提供される。コンピュータ可読媒体は、プロセッサに、複数の並列キャッシュ用のハイブリッドなライトスルー/ライトバックキャッシュポリシーを提供させるためのコンピュータ実行可能命令を記憶している。命令は、プロセッサに、複数の並列キャッシュのうちの少なくとも2つのキャッシュがアクティブであるかどうか判断させる。命令はさらに、プロセッサに、複数の並列キャッシュのうちの1つまたは複数の他のキャッシュすべてがアクティブでない場合、ライトバックキャッシュポリシーを適用するよう、複数の並列キャッシュのうちのアクティブキャッシュに命令させる。命令はさらに、プロセッサに、複数の並列キャッシュのうちの1つまたは複数の他のキャッシュのいずれかがアクティブである場合、ライトスルーキャッシュポリシーを適用するよう、複数の並列キャッシュのうちのアクティブキャッシュに命令させる。
【図面の簡単な説明】
【００１１】
【図１】ハイブリッドなライトスルー/ライトバックキャッシュポリシーを提供するように構成された例示的なキャッシュ書込みポリシーマネージャを備える例示的なマルチプロセッサシステムのブロック図である。
【図２】図1のキャッシュ書込みポリシーマネージャによって、ハイブリッドなライトスルー/ライトバックキャッシュポリシーを提供するように実施することができる例示的なステートマシンを示す図である。
【図３】ハイブリッドなライトスルー/ライトバックキャッシュポリシーを提供するためのキャッシュ書込みポリシーマネージャを各プロセッサコアが備える、複数のプロセッサコアを有する別の例示的なマルチプロセッサシステムのブロック図である。
【図４】ハイブリッドなライトスルー/ライトバックキャッシュポリシーを提供するためのキャッシュ書込みポリシーマネージャを備えるハイパーバイザを採用する別の例示的なマルチプロセッサシステムのブロック図である。
【図５】ハイブリッドなライトスルー/ライトバックキャッシュポリシーを提供するためのキャッシュ書込みポリシーマネージャを備える電力管理ユニット(PMU)を採用する別の例示的なマルチプロセッサシステムのブロック図である。
【図６】本明細書に開示する実施形態によるキャッシュ書込みポリシーマネージャを含む例示的なプロセッサベースのシステムのブロック図である。
【発明を実施するための形態】
【００１２】
発明を実施するための形態で開示する実施形態は、ハイブリッドなライトスルー/ライトバックキャッシュポリシーマネージャ、ならびに関連するシステムおよび方法を含む。この点について、一実施形態では、キャッシュ書込みポリシーマネージャが提供される。キャッシュ書込みポリシーマネージャは、複数の並列キャッシュのうちの少なくとも2つのキャッシュがアクティブであるかどうか判断するように構成される。並列キャッシュは、1つまたは複数の共通リネージ(すなわち、親)キャッシュまたはメモリを、直接、または中間キャッシュもしくは中間メモリを通して間接的に共有するが、一貫性は維持されるべきである。アクティブキャッシュとは、使用中のキャッシュである。複数の並列キャッシュのうちの1つまたは複数の他のキャッシュすべてがアクティブでない場合、キャッシュ書込みポリシーマネージャは、複数の並列キャッシュのうちのアクティブキャッシュに、ライトバックキャッシュポリシーを適用するよう命令するように構成される。このようにして、キャッシュ書込みポリシーマネージャは、複数の並列プロセッサコアのうちの単一のプロセッサコアのみがアクティブであるとき、電力を節約し、かつ/または性能を向上させることができる。複数の並列キャッシュのうちの1つまたは複数の他のキャッシュのいずれかがアクティブである場合、キャッシュ書込みポリシーマネージャは、複数の並列キャッシュのうちのアクティブキャッシュに、ライトスルーキャッシュポリシーを適用するよう命令するように構成される。このように、キャッシュ書込みポリシーマネージャは、複数の並列プロセッサコアのうちの複数のプロセッサコアがアクティブであるとき、並列キャッシュの間でのデータ一貫性を促進する。
【００１３】
図1は、複数の並列プロセッサコア22(0)〜22(X)を備える例示的なマルチプロセッサシステム10のブロック図である。各処理コア22(0)〜22(X)は、キャッシュコントローラ16(0)〜16(X)とキャッシュメモリ18(0)〜18(X)とを備えるローカル並列キャッシュ14(0)〜14(X)にアクセスする。図1のキャッシュ14(0)〜14(X)は、共通リネージ共有メモリ20を共有するので、並列キャッシュである。図1に示すように、並列キャッシュ14(0)〜14(X)は、プロセッサコア22(0)〜22(X)用の第1レベルキャッシュであり得る。代替として、並列キャッシュ14(0)〜14(X)は、より上位レベルキャッシュ、たとえば、プロセッサコア22(0)〜22(X)の第2レベルまたは第3レベルキャッシュであってよい。並列キャッシュ14(0)〜14(X)は、共有メモリ20を共有する。共有メモリ20は、共有キャッシュ、たとえば、第2レベルキャッシュであり得る。共有メモリ20は、メインメモリであってもよい。図1にも示すように、マルチプロセッサシステム10は、半導体ダイ24に統合されてよい。
【００１４】
マルチプロセッサシステムは、その動作時間の一部を、単一のプロセッサコアをアクティブにするのに費やす場合がある。したがって、マルチプロセッサシステム10を、単一のプロセッサコア22(0)がアクティブな状態で動作するとき、より少ない電力を消費するように最適化することが有益な場合がある。時々、性能向上が必要とされるとき、マルチプロセッサシステム10の1つまたは複数の他のプロセッサコア22(X)を、マルチプロセッサシステム10用の処理容量を増大させるようにアクティブ化すればよい。プロセッサコア22(0)〜22(X)のうちの複数がアクティブであるとき、マルチプロセッサシステム10によって追加電力が消費される場合があるが、マルチプロセッサシステム10によって消費される増加電力は、爆発的な性能の増加が必要とされ得る期間中に起こるだけであり得る。
【００１５】
この点において、マルチプロセッサシステム10は、ハイブリッドなライトスルー/ライトバックキャッシュポリシーを提供するように構成されたキャッシュ書込みポリシーマネージャ12を備える。キャッシュ書込みポリシーマネージャ12は、複数の並列キャッシュ14(0)〜14(X)のキャッシュ書込みポリシーを管理するように構成される。キャッシュ書込みポリシーマネージャ12は、少なくとも2つの並列キャッシュ14(0)〜14(X)がアクティブであるかどうか判断するように構成される。キャッシュ書込みポリシーマネージャ12は、複数の並列キャッシュ14(0)〜14(X)のうちのアクティブキャッシュ14(0)に、複数の並列キャッシュ14(0)〜14(X)のうちの1つまたは複数の他のキャッシュ14(X)すべてがアクティブでない場合、ライトバックキャッシュポリシーを適用するよう命令するように構成される。このようにして、キャッシュ書込みポリシーマネージャ12は、複数の並列プロセッサコア22(0)〜22(X)のうちの単一のプロセッサコア22(0)のみがアクティブであるとき、電力を節約し、かつ/またはマルチプロセッサシステム10の性能を向上させることができる。たとえば、キャッシュ書込みポリシーマネージャ12は、複数の並列キャッシュ14(0)〜14(X)のうちのアクティブキャッシュ14(0)に、複数の並列キャッシュ14(0)〜14(X)のうちの他のキャッシュ14(X)すべてが非アクティブになったとき、ライトバックキャッシュポリシーを適用するよう命令するように構成され得る。
【００１６】
また、キャッシュ書込みポリシーマネージャ12は、複数の並列キャッシュ14(0)〜14(X)のうちのアクティブキャッシュ14(0)に、1つまたは複数の他のキャッシュ14(X)のいずれかがアクティブである場合、ライトスルーキャッシュポリシーを適用するよう命令するようにも構成される。このようにして、キャッシュ書込みポリシーマネージャ12は、複数の並列プロセッサコア22(0)〜22(X)のうちの複数のプロセッサコア22(0)〜22(X)がアクティブであるとき、並列キャッシュ14(0)〜14(X)の間でのデータ一貫性を促進する。
【００１７】
キャッシュ書込みポリシーマネージャ12は、並列キャッシュ14(0)〜14(X)のキャッシュコントローラ16(0)〜16(X)に、ハイブリッドなライトスルー/ライトバックキャッシュポリシーを実装するための命令を送るように構成される。キャッシュ書込みポリシーマネージャ12は、所望のキャッシュ書込みポリシーに、並列キャッシュ14(0)〜14(X)向けに設定されるよう命令するように構成される。キャッシュコントローラ16(0)は、キャッシュメモリ18(0)用の所望のキャッシュ書込みポリシーを設定するための命令を、キャッシュ書込みポリシーマネージャ12から受信するように構成される。キャッシュコントローラ16(0)は、複数の並列キャッシュ14(0)〜14(X)のうちの1つまたは複数の他のキャッシュ14(X)すべてがアクティブでないという指示の受信に応答して、キャッシュメモリ18(0)用のキャッシュ書込みポリシーとして、ライトバックキャッシュポリシーを設定するように構成される。キャッシュコントローラ16(0)は、複数の並列キャッシュ14(0)〜14(X)のうちの1つまたは複数の他のキャッシュ14(X)のいずれかがアクティブであるという指示の受信に応答して、キャッシュメモリ18(0)用のライトスルーキャッシュポリシーを設定するようにさらに構成される。
【００１８】
キャッシュ書込みポリシーマネージャ12は、ステートマシンとして実装することができる。この点において、図2は、図1のキャッシュ書込みポリシーマネージャ12によって実施することができる例示的なステートマシン26を提示する。この点において、図2は、キャッシュ書込みポリシーマネージャ12用の例示的なステートマシン26を示す。一実施形態では、ステートマシン26は、第1の状態28、第2の状態30、第3の状態32、および第4の状態34を有して提供され得る。
【００１９】
ここで第1の状態28を参照すると、複数の並列プロセッサコア22(0)〜22(X)のうちのただ1つのプロセッサコア22(0)がアクティブであるとき、プロセッサコア22(0)によってアクセスされるローカルキャッシュ14(0)が、複数の並列キャッシュ14(0)〜14(X)のうちの唯一のアクティブキャッシュであってもよい。複数の並列キャッシュ14(0)〜14(X)の中でただ1つの第1のキャッシュ14(0)がアクティブであるとき、キャッシュ14(0)と1つまたは複数の他のキャッシュ14(X)との間で継続的データ一貫性を維持する必要はない。したがって、キャッシュ14(0)にライトバックキャッシュポリシーを適用することにより、電力を節約し、単独でアクティブなプロセッサコア22(0)の性能を向上させることができる場合がある。したがって、図2に示すように、ただ1つのキャッシュ14(0)がアクティブになると、キャッシュ書込みポリシーマネージャ12は、第1の状態28になる。第1の状態28において、キャッシュ書込みポリシーマネージャ12は、アクティブキャッシュ14(0)にライトバックキャッシュポリシーを適用する。ライトバックキャッシュポリシーを適用するとき、キャッシュ14(0)は、ダーティデータを記憶する可能性がある。
【００２０】
ただし、他のキャッシュ14(X)のうち1つまたは複数がアクティブ化されると、キャッシュ14(0)は、1つまたは複数の他のキャッシュ14(X)と整合される必要がある。したがって、1つまたは複数の他のキャッシュ14(X)のいずれかがアクティブであることをキャッシュ書込みポリシーマネージャ12が検出すると、キャッシュ書込みポリシーマネージャ12は、第1の状態28から第2の状態30に遷移する。キャッシュ書込みポリシーマネージャ12は、1つまたは複数の他のキャッシュ14(X)のいずれかが電力供給されていると判断することによって、複数の並列キャッシュ14(0)〜14(X)のうちの1つまたは複数の他のキャッシュ14(X)のいずれかがアクティブであると判断するように構成され得る。キャッシュ書込みポリシーマネージャ12は、1つまたは複数の他のキャッシュ14(X)のうちいずれかにアクセスするように構成された1つまたは複数の他のプロセッサコア22(X)のうちいずれかが電力供給され、かつ/またはアクティブであると判断することによって、1つまたは複数の他のキャッシュ14(X)のいずれかがアクティブであると判断するようにも構成され得る。
【００２１】
第2の状態30において、キャッシュ書込みポリシーマネージャ12は、最初にアクティブだったキャッシュ14(0)を、1つまたは複数の他のキャッシュ14(X)と整合させる。データ一貫性を達成するために、キャッシュ書込みポリシーマネージャ12は、最初にアクティブだったキャッシュ14(0)に、すべてのダーティキャッシュラインをクリーニングするよう命令する。アクティブキャッシュ14(0)は、いずれかのダーティキャッシュラインによって記憶されたデータを、複数の並列キャッシュ14(0)〜14(X)の間で共有される共有メモリ20に書き込むことによって、すべてのダーティキャッシュラインをクリーニングすることができる。共有メモリ20へのダーティキャッシュラインすべてをクリーニングする前、間、または後で、キャッシュ書込みポリシーマネージャ12はまた、最初にアクティブだったキャッシュ14(0)に、ライトスルーキャッシュポリシーを適用するよう命令する。1つまたは複数の他のキャッシュ14(X)を管理するときも、キャッシュ書込みポリシーマネージャ12はやはり、1つまたは複数の他のキャッシュ14(X)に、ライトスルーキャッシュポリシーを適用するよう命令する。キャッシュ14(0)のダーティキャッシュラインのクリーニングは、新たにアクティブ化する他のプロセッサコア22(X)の前に、および/または新たにアクティブ化する1つまたは複数の他のキャッシュ14(X)が十分にアクティブになる前に完了され得る。最初にアクティブだったキャッシュ14(0)中のどのダーティキャッシュラインのクリーニングが完了された後でも、第1のプロセッサコア22(0)の最初にアクティブだったキャッシュ14(0)はその後、1つまたは複数の他のキャッシュ14(X)との一貫性を維持することになる。一貫性は、本実施形態において、共有メモリ20を通して維持される。共通リネージ共有メモリ20は、アクティブキャッシュ14(0)および/または他のキャッシュ14(X)の次レベル共有メモリであり得る。代替として、アクティブキャッシュ14(0)と共有メモリ20との間に配設された1つまたは複数の中間キャッシュおよび/または中間メモリが存在してよい。1つまたは複数の他のキャッシュ14(X)と共有メモリ20との間に配設された1つまたは複数の中間キャッシュおよび/または中間メモリが存在してもよい。最初にアクティブだったキャッシュ14(0)が、共有メモリ20と整合するようにアップデートされた後、1つもしくは複数の他のプロセッサコア22(X)および/または1つもしくは複数の他のキャッシュ14(X)は、十分にアクティブになることが可能となり得る。
【００２２】
1つもしくは複数の他のプロセッサコア22(X)および/または1つもしくは複数の他のキャッシュ14(X)をアクティブ化するのは時間がかかるので、第2の状態30の動作は、1つもしくは複数の他のプロセッサコア22(X)のアクティブ化および/または1つもしくは複数の他のキャッシュ14(X)のアクティブ化とほぼ並行して起こるよう命令されてよい。
【００２３】
図2への参照を続けると、1つまたは複数の他のキャッシュ14(X)のうち1つまたは複数がアクティブになると、キャッシュ書込みポリシーマネージャ12は、第3の状態32に遷移する。第3の状態32において、アクティブである少なくとも2つの並列キャッシュ14(たとえば、14(0)、14(X))があり、アクティブ並列キャッシュ14の各々は、ライトスルーキャッシュポリシーを適用している。これにより、アクティブプロセッサコア22(0)〜22(X)は、本実施形態において、共有メモリ20におけるアクティブキャッシュ14(0)〜14(X)の一貫性を維持することができる。追加の他のキャッシュ14(X)がアクティブになった(たとえば、2つ以上の他のキャッシュ14(X)がアクティブである)場合、キャッシュ書込みポリシーマネージャ12は第3の状態32に留まり、追加の他のキャッシュ14(X)も、ライトスルーキャッシュポリシーを適用するよう命令される。
【００２４】
ある時点において、1つまたは複数の他のプロセッサコア22(X)の追加処理容量が、マルチプロセッサシステム10によってこれ以上必要とされなくなる場合がある。1つまたは複数の他のプロセッサコア22(X)の追加処理容量がマルチプロセッサシステム10によってこれ以上必要とされない場合、マルチプロセッサシステム10は、電力を節約するために、1つまたは複数の他のプロセッサコア22(X)に、非アクティブ化するよう命令してよい。その結果、1つまたは複数の他のキャッシュ14(X)も、共有メモリ20に1つまたは複数の他のキャッシュ14(X)をフラッシュすることなく、電源切断され、かつ/または非アクティブ化され(すなわち、アクティブでなくされ)得る。1つまたは複数の他のキャッシュ14(X)すべてがアクティブでない(たとえば、ただ1つのキャッシュ14(0)がアクティブなままである)とキャッシュポリシーマネージャ12が判断すると、キャッシュ書込みポリシーマネージャ12は、第3の状態32から第4の状態34に遷移する。
【００２５】
第4の状態34において、1つまたは複数の他のキャッシュ14(X)はアクティブでなく、かつ/または電力供給されないので、単独でアクティブなキャッシュ14(0)を1つまたは複数の他のキャッシュ14(X)とこれ以上整合させておく必要はない。したがって、第4の状態34において、キャッシュ書込みポリシーマネージャ12は、残りのアクティブキャッシュ14(0)に、ライトバックキャッシュポリシーを適用するよう命令する。ダーティデータは、キャッシュ14(0)に再度記憶されてよい。その結果、マルチプロセッサシステム10によって消費される電力が減少する。また、実装、作業負荷、および/または他の設計因子によっては、残りのアクティブプロセッサコア22(0)は、ライトバックキャッシュポリシーの下で性能が向上する場合がある。
【００２６】
残りのアクティブキャッシュ14(0)に、ライトバックキャッシュポリシーを適用するよう命令した後、キャッシュ書込みポリシーマネージャ12は、第4の状態34から第1の状態28に遷移する。キャッシュ書込みポリシーマネージャ12は、複数の並列キャッシュ14(0)〜14(X)の中でアクティブ並列キャッシュ14(0)が唯一のアクティブキャッシュ14である限り、第1の状態28に留まることになる。キャッシュ書込みポリシーマネージャ12はその後、本明細書で論じるように継続する。
【００２７】
ステートマシン26の第1、第2、第3、および第4の状態を通っての周期終了における、残りの単独でアクティブなキャッシュ14(0)は、周期の開始時に最初にアクティブだったキャッシュ14(0)と、複数の並列キャッシュ14(0)〜14(X)のうちの同じキャッシュ14であっても異なるキャッシュ14であってもよいことが、本開示から当業者には諒解されよう。言い換えると、ステートマシン26を通る周期の開始時に最初にアクティブだったものと同じキャッシュ14または異なるキャッシュ14が、ステートマシン26を通る周期の終了時にアクティブなままであり得る。
【００２８】
キャッシュ書込みポリシーマネージャ12は、いくつかのステートマシン26を備え、操作し得ることも、当業者には本開示から諒解されよう。たとえば、複数のキャッシュ14を管理するキャッシュ書込みポリシーマネージャ12は、キャッシュ書込みポリシーマネージャ12によって管理される各キャッシュ14用の別個のステートマシン26を備え、操作することができる。
【００２９】
さらに、前述の考察では、ステートマシン26の4つの別個の状態、すなわち第1の状態28、第2の状態30、第3の状態32、および第4の状態34に言及している。概して、第1の状態28および第3の状態32は、継続時間が比較的長い状態であってよく、第2の状態30および第4の状態34は暫定的な(すなわち、継続時間が比較的短い)状態であってよい。ステートマシン26は、より少ない状態または追加状態を与えられてもよい。たとえば、いくつかの実施形態では、ステートマシン26は、継続時間が比較的長い第1の状態28および暫定的な第2の状態30が第1の状態36として与えられ、継続時間が比較的長い第3の状態32および暫定的な第4の状態34が第2の状態38として与えられる、2ステートマシンとして提供されてよい。
【００３０】
さらなる例として、図2に示す任意選択の第5の始動状態40について、ここで論じる。キャッシュ14が初めて起動すると、キャッシュ書込みポリシーマネージャ12は最初、他の並列キャッシュ14がアクティブであるかどうかわからない場合がある。どのキャッシュ14がアクティブである/アクティブでないかの判断が行われ得る前は、アクティブ化キャッシュ14が唯一のアクティブキャッシュ14であると仮定するのは安全でない場合がある。したがって、キャッシュ書込みポリシーマネージャ12は、キャッシュ14に、どのキャッシュ14がアクティブである/アクティブでないかの判断が行われ得るまで、デフォルトキャッシュ書込みポリシーとしてライトスルーキャッシュポリシーを適用するよう命令するように構成すればよい。その結果、さもなければ他のアクティブ並列キャッシュ14が存在するときにアクティブ化キャッシュ14がライトバックキャッシュポリシーを適用した場合に起こり得るデータ一貫性問題が回避される。
【００３１】
この点において、キャッシュ書込みポリシーマネージャ12は最初、始動状態40で始まり得る。始動状態40において、キャッシュ書込みポリシーマネージャ12は、キャッシュ14に、ライトスルーキャッシュポリシーを適用するよう命令する。キャッシュ書込みポリシーマネージャ12は次いで、第3の状態32に遷移する。次いで、どのキャッシュ14がアクティブである/アクティブでないかに関する判断が行われることになる。複数の並列キャッシュ14のうちの1つまたは複数の他のキャッシュ14(X)すべてがアクティブでない場合、アクティブ化キャッシュ14のキャッシュ書込みポリシーマネージャ12は、第4の状態34に遷移し(アクティブ化キャッシュ14に、ライトバックキャッシュポリシーを適用するよう命令する)、次いで、第1の状態28に遷移する。複数の並列キャッシュ14のうちの1つまたは複数の他のキャッシュ14(X)のいずれかがアクティブである場合、アクティブ化キャッシュ14のキャッシュ書込みポリシーマネージャ12は、第3の状態38に留まる。
【００３２】
図1のマルチプロセッサシステム10は、プロセッサコア22(0)〜22(X)からなる単一のクラスタを示す。ただし、マルチプロセッサシステム10は、階層マルチプロセッサシステム10(1)の一部として設けることもできる。この点において、図3は、複数のプロセッサコアクラスタを有する階層マルチプロセッサシステム10(1)を示す。プロセッサコア22A(0)〜22A(X)は、第1のプロセッサコアクラスタを提供する。プロセッサコア22B(0)〜22B(Y)は、第2のプロセッサコアクラスタを形成する。図3において、キャッシュ14A(0)〜14A(X)は、共通リネージ並列キャッシュ14C(0)を共有するので、並列キャッシュである。キャッシュ14B(0)〜14B(Y)は、共通リネージ並列キャッシュ14C(Z)を共有するので、並列キャッシュである。キャッシュ14C(0)〜14C(Z)は、共通リネージ共有メモリ20を共有するので、並列キャッシュである。キャッシュ14A(0)〜14A(X)および14B(0)〜14B(X)は、共通リネージ共有メモリ20を共有するので、並列キャッシュでもある。階層マルチプロセッサシステム10(1)は、半導体ダイ24(1)上に設けることができる。図3の要素は、図1の要素と同様の要素番号を有し、本明細書に記載する但し書きを除いて、図1の要素と同じように動作する。
【００３３】
図3に示すように、図1のキャッシュ書込みポリシーマネージャ12は、複数のキャッシュ書込みポリシーマネージャ12A(0)〜12A(X)、12B(0)〜12B(Y)として設けることができる。図3に示す実施形態において、各プロセッサコア22(たとえば、プロセッサコア22A(0)〜22A(X)および22B(0)〜22B(Y))は、キャッシュ書込みポリシーマネージャ12(たとえば、それぞれ、12A(0)〜12A(X)および12B(0)〜12B(Y))を含む。各プロセッサコア22に含まれるキャッシュ書込みポリシーマネージャ12は、複数の並列キャッシュ14A(0)〜14A(X)、14B(0)〜14B(Y)のうちの少なくとも2つのキャッシュ14がアクティブであるかどうか判断するように構成される。各プロセッサコア22に含まれるキャッシュ書込みポリシーマネージャ12は、そのプロセッサコア22によってアクセスされる並列キャッシュ14に、どのキャッシュ書込みポリシーを適用するべきかに関して命令するようにも構成される。
【００３４】
この点について、図3において、第1のプロセッサコア22A(0)のみがアクティブであるとき、キャッシュ書込みポリシーマネージャ12A(0)は、並列キャッシュ14A(0)に、ライトバックキャッシュポリシーを適用するよう命令してよい。キャッシュ書込みポリシーマネージャ12A(0)は、並列キャッシュ14A(0)に、第2のプロセッサコアクラスタ中の1つまたは複数の他のプロセッサコア22B(0)〜22B(Y)のうちどれもアクティブでない場合、ライトバックキャッシュポリシーを適用するよう命令してもよい。プロセッサコア22A(X)が電源投入されると、キャッシュ書込みポリシーマネージャ12A(X)は、並列キャッシュ14A(0)がすでにアクティブであると判断し、したがって、並列キャッシュ14A(X)に、ライトスルーキャッシュポリシーを適用するよう命令する。プロセッサコア22A(X)が起動すると、キャッシュ書込みポリシーマネージャ12A(0)は、プロセッサコア22A(X)がアクティブ化中であるとも判断し、したがって、すでにアクティブなキャッシュ14A(0)に、そのキャッシュラインからすべてのダーティデータをクリーニングするよう命令する。並列キャッシュ14A(X)は次いで、並列キャッシュ14A(0)のうちどのダーティキャッシュラインに記憶されたデータでも、第1のプロセッサコアクラスタのプロセッサコア22A(0)〜22A(X)の間で共有される並列キャッシュ14C(0)に書き込むことによって、そのダーティキャッシュラインすべてをクリーニングする。
【００３５】
並列キャッシュ14A(X)のダーティキャッシュラインのクリーニングが完了されると、並列キャッシュ14A(0)は、プロセッサコア22A(X)の並列キャッシュ14A(X)とのデータ一貫性を維持する準備が整う。この点において、両方の並列キャッシュ14A(0)、14A(X)は、それらのローカルキャッシュメモリ18A(0)、18A(X)に記憶されたどのデータも並列キャッシュ14C(0)に書き込むためのライトスルーキャッシュポリシーを適用することになる。
【００３６】
図2のステートマシン26は、並列キャッシュ14C(0)〜14C(Z)などの並列キャッシュに適用することもできる。この点において、第1のプロセッサクラスタ中に、アクティブなプロセッサコア22(たとえば、プロセッサコア22A(0)、22A(X))がある。ただし、1つまたは複数の他のプロセッサクラスタ中には、他にアクティブなプロセッサコア22B(0)〜22B(Y)がない。その結果、並列キャッシュ14C(0)はアクティブであり、他にはアクティブな並列キャッシュ14C(Z)がない。他にはアクティブな並列キャッシュ14C(Z)がないので、並列キャッシュ14C(0)は、ライトバックキャッシュポリシーを適用するよう命令される。並列キャッシュ14C(0)は、並列キャッシュ14C(0)と並列のすべての他の並列キャッシュ(たとえば、並列キャッシュ14C(Z))が非アクティブな(すなわち、アクティブでない)ままである限り、ライトバックキャッシュポリシーを適用し続けてよい。
【００３７】
第2のプロセッサコアクラスタ中でプロセッサコア22B(0)がアクティブ化されると、図2のステートマシン26は、より深いキャッシュレベルにある並列キャッシュ14C(0)〜14C(Z)のポリシーを設定するのに使われる。(他のプロセッサコアクラスタ中の)プロセッサコア22B(0)が電源投入され、かつ/または他のやり方でアクティブ化されると、並列キャッシュ14B(0)および並列キャッシュ14C(Z)も電源投入されることになり、アクティブになる。キャッシュ書込みポリシーマネージャ12B(0)は、並列キャッシュ14A(0)〜14A(X)がアクティブであると判断し、したがって、並列キャッシュ14B(0)に、ライトスルーキャッシュポリシーを適用するよう命令する。キャッシュ書込みポリシーマネージャ12B(0)は、並列キャッシュ14C(0)がアクティブであるとも判断し、したがって、並列キャッシュ14C(Z)に、ライトスルーキャッシュポリシーを適用するよう命令する。
【００３８】
キャッシュ書込みポリシーマネージャ12A(0)は、プロセッサコア22B(0)および/または並列キャッシュ14B(0)がアクティブであるとも判断し、したがって、並列キャッシュ14C(0)に、ライトスルーキャッシュポリシーを適用するよう命令する。こうすることにより、並列キャッシュ14C(0)は、新たにアクティブ化された並列キャッシュ14C(Z)と一貫性を維持することができる。この点において、並列キャッシュ14C(0)および並列キャッシュ14C(Z)は各々、それらのキャッシュメモリ18C(0)、18C(Z)に記憶されたデータを共有メモリ20にライトスルーすることになる。他のプロセッサコアクラスタのすべてのアクティブプロセッサコア22B(この例ではプロセッサコア22B(0))が非アクティブ化されると、キャッシュ書込みポリシーマネージャ12A(0)は、いずれかの他のプロセッサコアクラスタのどの他のプロセッサコア22B(0)〜22B(Y)および/または並列キャッシュ14B(0)〜14B(Y)もアクティブでないと判断することになる。この判断が起こると、キャッシュ書込みポリシーマネージャ12A(0)は、並列キャッシュ14C(0)に、ライトバックキャッシュポリシーを適用するよう命令してよい。ライトバックキャッシュポリシーを適用することにより、電力を節約し、かつ/または唯一の残りのアクティブプロセッサコアクラスタ中のプロセッサ12A(0)〜12A(X)(すなわち、プロセッサ12A(0)〜12A(X))の性能を向上させることができる。図2のステートマシン26は、階層キャッシュシステムのどのレベルでも適用され得ることが、本開示から当業者には諒解されよう。図3の各プロセッサコアクラスタは、2つ以上のプロセッサコア22を備え得ることも、当業者には本開示から諒解されよう。
【００３９】
階層マルチプロセッサシステム10(1)は、2つ以上のプロセッサコアクラスタを備え得ることも、当業者には本開示から諒解されよう。図3に示す階層マルチプロセッサシステム10(1)は、3つのレベルのキャッシュを示す。ただし、ステートマシン26は、より深いキャッシュ階層にも適用され得ることが当業者には諒解されよう。
【００４０】
図3に示すプロセッサコア22A(0)〜22A(X)、22B(0)〜22B(Y)は各々、独自のキャッシュ書込みポリシーマネージャ12A(0)〜12A(X)、12B(0)〜12B(Y)を含む。ただし、キャッシュ書込みポリシーマネージャ12は、プロセッサコア22A(0)〜22A(X)、22B(0)〜22B(Y)の外に設けることもできる。この点において、図4は、ハイパーバイザ44に統合されたキャッシュ書込みポリシーマネージャ12を備えるマルチプロセッサシステム10(2)を示す。ハイパーバイザ44は、プロセッサコア22A(0)〜22A(X)、22B(0)〜22B(Y)および/または並列キャッシュ14A(0)〜14A(X)、14B(0)〜14B(Y)のうちいずれかがアクティブであるかどうか判断することができる。ハイパーバイザは、並列キャッシュ14C(0)〜14C(Z)のうちいずれかがアクティブであるかどうかも判断することもできる。ハイパーバイザ44は、プロセッサコア22A(0)〜22A(X)、22B(0)〜22B(Y)のアクティブ化および非アクティブ化、ならびに/あるいはそれらのそれぞれのプロセッサコアクラスタのアクティブ化および非アクティブ化を制御することもできる。一実施形態では、ハイパーバイザ44は、半導体ダイ24(2)上で別個の回路要素として提供される。別の実施形態では、ハイパーバイザ44はソフトウェアにおいて提供される。ソフトウェアにおいて実装されると、ハイパーバイザ44は、プロセッサコア22A(0)〜22A(X)、22B(0)〜22B(Y)とは別個のプロセッサコア22上で実行することができる。ただし、ハイパーバイザ44は、プロセッサコア22A(0)〜22A(X)、22B(0)〜22B(Y)のうち1つまたは複数の上で実行することもできる。
【００４１】
図5のマルチプロセッサシステム10(3)で示されるように、キャッシュ書込みポリシーマネージャ12は、電力管理ユニット(PMU)46に統合されてもよい。PMU46は、半導体ダイ24(3)の別個の回路要素として実装することができる。PMU46は、プロセッサコア22A(0)〜22A(X)、22B(0)〜22B(Y)および/または並列キャッシュ14A(0)〜14A(X)、14B(0)〜14B(Y)の電源投入および/または電源切断を制御する。PMU46は、並列キャッシュ14A(0)〜14A(X)、14B(0)〜14B(Y)および/または並列キャッシュ14C(0)〜14C(Z)に影響を与えるための別個のステートマシン26を実装してもしなくてもよい。
【００４２】
本明細書で開示した実施形態によるキャッシュ書込みポリシーマネージャ12および/または並列キャッシュ14は、どのプロセッサベースのデバイス内に設けても、統合してもよい。例として、限定されないが、セットトップボックス、娯楽機器、ナビゲーションデバイス、通信デバイス、固定ロケーションデータユニット、モバイルロケーションデータユニット、モバイルフォン、セルラーフォン、コンピュータ、ポータブルコンピュータ、デスクトップコンピュータ、携帯情報端末(PDA)、モニタ、コンピュータモニタ、テレビ、チューナ、ラジオ、衛星ラジオ、音楽プレーヤ、デジタル音楽プレーヤ、ポータブル音楽プレーヤ、デジタルビデオプレーヤ、ビデオプレーヤ、デジタルビデオディスク(DVD)プレーヤ、およびポータブルデジタルビデオプレーヤが含まれる。
【００４３】
この点において、図6は、プロセッサベースのシステム48の例を示す。この例では、プロセッサベースのシステム48は、1つまたは複数のプロセッサ52を各々が含む1つまたは複数の中央処理装置(CPU)50を含む。CPU50は、一時記憶データへの高速アクセスのためにプロセッサ52に結合されたキャッシュ53を有し得る。本明細書で論じるように、各キャッシュ53は、本明細書で論じたように制御されるキャッシュコントローラ56およびキャッシュメモリ54を含み得る。CPU50はシステムバス58に結合され、システムバス58は、プロセッサベースのシステム48に含まれるマスターデバイスおよびスレーブデバイスを相互に結合することができる。よく知られているように、CPU50は、アドレス情報、制御情報、およびデータ情報を、システムバス58を通じて交換することによって、これらの他のデバイスと通信する。たとえば、CPU50は、スレーブデバイスの一例として、メモリコントローラ60にバストランザクション要求を通信することができる。図6には示さないが、複数のシステムバス58を設けてもよく、この場合、各システムバス58は異なるファブリックを構成する。
【００４４】
他のマスターおよびスレーブデバイスが、システムバス58に結合され得る。図6に示されるように、これらのデバイスは、例として、システムメモリ62、1つまたは複数の入力デバイス64、1つまたは複数の出力デバイス66、1つまたは複数のネットワークインターフェースデバイス68、および1つまたは複数のディスプレイコントローラ70を含み得る。入力デバイス64は、入力キー、スイッチ、音声プロセッサなどを含むが、それに限定されない、どのタイプの入力デバイスも含み得る。出力デバイス66は、オーディオ、ビデオ、他の視覚インジケータなどを含むが、それに限定されない、どのタイプの出力デバイスも含み得る。ネットワークインターフェースデバイス68は、ネットワーク72との間でデータの交換をさせるように構成されたどのデバイスでもよい。ネットワーク72は、限定はされないが、有線ネットワークまたはワイヤレスネットワーク、非公開ネットワークまたは公開ネットワーク、ローカルエリアネットワーク(LAN)、ワイドローカルエリアネットワーク(WLAN)、およびインターネットを含む、任意のタイプのネットワークであってよい。ネットワークインターフェースデバイス68は、所望の任意のタイプの通信プロトコルをサポートするように構成され得る。本明細書で論じるように、CPU50は、1つまたは複数のキャッシュ書込みポリシーマネージャ12も含み得る。図6に示すように、1つまたは複数のキャッシュ書込みポリシーマネージャ12は、キャッシュ53と一体および/またはプロセッサ52と一体であってよい。やはり図6に示すように、1つまたは複数のキャッシュ書込みポリシーマネージャ12は、キャッシュ53および/またはプロセッサ52とは別個に、CPU50に設けることもできる。たとえば、1つまたは複数の別個に設けられるキャッシュ書込みポリシーマネージャ12は、CPU50のハイパーバイザ44および/またはPMU46と一体に設けることができる。
【００４５】
CPU50はまた、システムバス58を通じてディスプレイコントローラ70にアクセスして、1つまたは複数のディスプレイ74に送られる情報を制御するようにも構成され得る。ディスプレイコントローラ70は、1つまたは複数のビデオプロセッサ76を介して表示されるべき情報を、ディスプレイ74に送り、ビデオプロセッサ76は、表示されるべき情報を、ディスプレイ74に適切なフォーマットとなるように処理する。ディスプレイ74は、限定はされないが、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイなどを含む、任意のタイプのディスプレイを含み得る。システムメモリ62は、プロセッサベースのシステム48のメモリ78にアクセスするためのメモリコントローラ60を備え得る。メモリ78は、非一時的コンピュータ可読媒体を備え得る。コンピュータ可読媒体は、複数のキャッシュ53のうち1つまたは複数についてのハイブリッドなライトスルー/ライトバックキャッシュポリシーを提供するための、本明細書に記載する方法を、プロセッサ52に実装させるためのコンピュータ実行可能命令を記憶しておくことができる。この点において、メモリ78は、プログラムストア80および/またはデータストア82を備え得る。
【００４６】
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムは、電子的なハードウェアとして、メモリもしくは別のコンピュータ可読媒体に記憶されプロセッサもしくは他の処理デバイスにより実行される命令として、またはこれら両方の組合せとして実装され得ることが、当業者にはさらに理解されよう。本明細書に記載するキャッシュ書込みポリシーマネージャ、キャッシュコントローラ、および/またはキャッシュは、例として任意の回路、ハードウェア構成要素、集積回路(IC)、またはICチップにおいて採用され得る。本明細書で開示するメモリは、どのタイプおよびサイズのメモリでもよく、所望されるどのタイプの情報も記憶するように構成され得る。この互換性を明確に示すために、上記では、様々な例示的構成要素、ブロック、モジュール、回路、およびステップは全般的に、それらの機能性に関して説明されている。そのような機能性がどのように実装されるかは、具体的な用途、設計の選択、および/またはシステム全体に課される設計制約により決まる。当業者は、説明した機能を特定の適用例ごとに様々な方法で実装し得るが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【００４７】
本明細書で開示する実施形態に関して説明する様々な例示的な論理ブロック、モジュール、および回路は、プロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理回路、個別ハードウェア構成要素、または本明細書で説明する機能を実施するように設計されたそれらの任意の組合せで実装または実施することができる。処理コア(本明細書では、コア、処理コア、および/またはプロセッサとも呼ばれる)は、マイクロプロセッサであり得るが、代替として、処理コアは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、またはステートマシンであり得る。プロセッシングコアは、コンピューティングデバイスの組合せ、たとえば、DSPとマイクロプロセッサとの組合せ、複数のマイクロプロセッサ、DSPコアと連携する1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成として実装することもできる。
【００４８】
本明細書で開示される実施形態は、ハードウェアで具現化されてよく、ハードウェアに記憶される命令により具現化されてよく、たとえば、ランダムアクセスメモリ(RAM)、フラッシュメモリ、読取り専用メモリ(ROM)、電気的にプログラム可能なROM(EPROM)、電気的に消去可能なプログラム可能ROM(EEPROM)、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または、当技術分野で知られている任意の他の形態のコンピュータ可読媒体に、存在し得る。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取り、記憶媒体に情報を書き込むことができるように、プロセッサに結合される。代替として、記憶媒体はプロセッサと一体であり得る。プロセッサおよび記憶媒体はASIC中に存在し得る。ASICは遠隔局に存在し得る。代替として、プロセッサおよび記憶媒体は、遠隔局、基地局、またはサーバの中に、個別の構成要素として存在し得る。
【００４９】
本明細書の例示的な実施形態のいずれかで説明された動作ステップは、例および議論を提供するために説明されたものであることにも、留意されたい。説明された動作は、例示された順序以外の多くの異なる順序で実施されてもよい。さらに、単一の動作ステップで説明される動作は、実際には、いくつかの異なるステップで実施され得る。加えて、例示的な実施形態において論じられた1つまたは複数の動作ステップは、組み合わされてもよい。流れ図において例示される動作ステップは、当業者に容易に明らかとなるような多くの異なる修正を受けてもよいことを、理解されたい。情報および信号は、多種多様な技術および技法のいずれかを使用して表され得ることも、当業者には理解されよう。たとえば、上記の説明全体にわたって言及され得るデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁界または磁性粒子、光場または光学粒子、あるいはそれらの任意の組合せによって表され得る。
【００５０】
本開示の上記の説明は、当業者が本開示を作製または使用できるようにするために提供される。本開示への様々な変更が当業者には容易に明らかになり、本明細書において規定される一般原理は、本開示の趣旨または範囲を逸脱することなく、他の変形形態に適用することができる。したがって、本開示は、本明細書で説明した例および設計に限定されることを意図するものではなく、本明細書で開示する原理および新規の特徴に一致する最も広い範囲を与えられるべきである。
【符号の説明】
【００５１】
10  マルチプロセッサシステム
12  キャッシュ書込みポリシーマネージャ
14  ローカル並列キャッシュ、キャッシュ、並列キャッシュ、ローカルキャッシュ
16  キャッシュコントローラ
18  キャッシュメモリ
20  共通リネージ共有メモリ、共有メモリ
22  並列プロセッサコア、プロセッサコア
24  半導体ダイ
【図１】
0005960842.tif 000002
【図２】
0005960842.tif 000003
【図３】
0005960842.tif 000004
【図４】
0005960842.tif 000005
【図５】
0005960842.tif 000006
【図６】
0005960842.tif 000007