(57)【特許請求の範囲】
【請求項１】
ポータブルコンピューティングデバイス内のマルチクラスタ異種プロセッサアーキテクチャにおいて動的キャッシュ拡張を提供するための方法であって、
第1のプロセッサクラスタと、関連する第2のキャッシュを有する第2のプロセッサクラスタとを備える前記マルチクラスタ異種プロセッサアーキテクチャにおいて、前記第1のプロセッサクラスタおよび関連する第1のキャッシュについてのプロセッサ作業負荷の度合いを表すプロセッサ作業負荷入力およびキャッシュ作業負荷の度合いを表すキャッシュ作業負荷入力を受け取るステップと、
前記キャッシュ作業負荷入力に基づいて、前記第1のプロセッサクラスタに関連付けられた現在のタスクの処理ボトルネックまたは他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているかを決定するステップと、前記プロセッサ作業負荷入力および前記キャッシュ作業負荷入力に基づいて、前記第1のプロセッサクラスタに関連付けられた前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているのではなく、前記第1のプロセッサクラスタの前記プロセッサ作業負荷によって引き起こされているかを決定するステップと、
前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているとの決定に応じて、前記第2のプロセッサクラスタに関連付けられた前記第2のキャッシュの少なくとも一部分を前記第1のキャッシュの拡張として使用するステップと、
前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているのではなく、前記第1のプロセッサクラスタの前記プロセッサ作業負荷によって引き起こされているとの決定に応じて、前記第1のプロセッサクラスタから前記第2のプロセッサクラスタに前記現在のタスクを移行するステップと
を含む方法。
【請求項２】
前記第1のキャッシュに関連付けられたスヌープヒットカウンタを監視するステップと、
前記スヌープヒットカウンタがしきい値を下回るか、または省電力状態のためのタイマが満了した場合、前記第1のキャッシュを省電力状態にさせるステップと
をさらに含む、請求項1に記載の方法。
【請求項３】
前記プロセッサ作業負荷入力が、クロックサイクル当たりの命令の数、単位時間当たりの命令の数、周波数レベル、およびプロセッサアクティブ持続時間割合のうちの1つまたは複数に関する情報を含み、前記キャッシュ作業負荷入力が、キャッシュミスの数、キャッシュアクセスの数、キャッシュミス率、およびキャッシュミスによるプロセッサストール時間またはプロセッサストールの数のうちの1つまたは複数に関する情報を含む、請求項1に記載の方法。
【請求項４】
前記プロセッサ作業負荷入力が、プロセッサ/CPU性能に関する情報を含む、請求項1に記載の方法。
【請求項５】
前記キャッシュ作業負荷入力が、キャッシュのサイズに関する情報を含む、請求項1に記載の方法。
【請求項６】
前記第1のプロセッサクラスタが、第1のプロセッサタイプを有する1つまたは複数のプロセッサデバイスを備え、前記第2のプロセッサクラスタが、第2のプロセッサタイプを有する1つまたは複数のプロセッサデバイスを備える、請求項1に記載の方法。
【請求項７】
前記第1のプロセッサタイプおよび前記第2のプロセッサタイプが、マルチコアプロセッサ、中央処理ユニット(CPU)、グラフィックスプロセッサユニット(GPU)、およびデジタル信号プロセッサ(DSP)のうちの1つまたは複数を含む、請求項6に記載の方法。
【請求項８】
前記マルチクラスタ異種プロセッサアーキテクチャが、前記第1のプロセッサクラスタが、前記第2のプロセッサクラスタを備える1つまたは複数のプロセッサコアよりも低い電力を有する1つまたは複数のプロセッサコアを備える、異種アーキテクチャを備え、前記第1のプロセッサクラスタ内の前記第1のキャッシュが、前記第2のプロセッサクラスタ内の前記第2のキャッシュよりも小さいサイズを有する、請求項1に記載の方法。
【請求項９】
前記第1のキャッシュおよび前記第2のキャッシュが、前記関連するプロセッサクラスタのためのレベル2(L2)キャッシュを備え、前記第2のプロセッサクラスタに関連付けられた前記第2のキャッシュの少なくとも前記一部分を前記第1のキャッシュの拡張として使用する前記ステップが、前記第2のキャッシュを前記第1のプロセッサクラスタのためのレベル3(L3)キャッシュとして使用するステップを含む、請求項1に記載の方法。
【請求項１０】
ポータブルコンピューティングデバイス内のマルチクラスタ異種プロセッサアーキテクチャにおいて動的キャッシュ拡張を提供するためのシステムであって、
第1のプロセッサクラスタと、関連する第2のキャッシュを有する第2のプロセッサクラスタとを備える前記マルチクラスタ異種プロセッサアーキテクチャにおいて、前記第1のプロセッサクラスタおよび関連する第1のキャッシュについてのプロセッサ作業負荷の度合いを表すプロセッサ作業負荷入力およびキャッシュ作業負荷の度合いを表すキャッシュ作業負荷入力を受け取るための手段と、
前記キャッシュ作業負荷入力に基づいて、前記第1のプロセッサクラスタに関連付けられた現在のタスクの処理ボトルネックまたは他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているかを決定する手段と、前記プロセッサ作業負荷入力および前記キャッシュ作業負荷入力に基づいて、前記第1のプロセッサクラスタに関連付けられた前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているのではなく、前記第1のプロセッサクラスタの前記プロセッサ作業負荷によって引き起こされているかを決定するための手段と、
前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているとの決定に応じて、前記第2のプロセッサクラスタに関連付けられた前記第2のキャッシュの少なくとも一部分を前記第1のキャッシュの拡張として使用するための手段と、
前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているのではなく、前記第1のプロセッサクラスタの前記プロセッサ作業負荷によって引き起こされているとの決定に応じて、前記第1のプロセッサクラスタから前記第2のプロセッサクラスタに前記現在のタスクを移行するための手段と
を備えるシステム。
【請求項１１】
前記第1のキャッシュに関連付けられたスヌープヒットカウンタを監視するための手段と、
前記スヌープヒットカウンタがしきい値を超えるか、または省電力状態のためのタイマが満了した場合、前記第1のキャッシュを省電力状態にさせるための手段と
をさらに備える、請求項10に記載のシステム。
【請求項１２】
前記プロセッサ作業負荷入力が、クロックサイクル当たりの命令の数、単位時間当たりの命令の数、周波数レベル、およびプロセッサアクティブ持続時間割合のうちの1つまたは複数に関する情報を含み、前記キャッシュ作業負荷入力が、キャッシュミスの数、キャッシュアクセスの数、キャッシュミス率、およびキャッシュミスによるプロセッサストール時間またはプロセッサストールの数のうちの1つまたは複数に関する情報を含む、請求項10に記載のシステム。
【請求項１３】
前記プロセッサ作業負荷入力が、プロセッサ/CPU性能に関する情報を含む、請求項10に記載のシステム。
【請求項１４】
前記キャッシュ作業負荷入力が、キャッシュのサイズに関する情報を含む、請求項10に記載のシステム。
【請求項１５】
前記第1のプロセッサクラスタが、第1のプロセッサタイプを有する1つまたは複数のプロセッサデバイスを備え、前記第2のプロセッサクラスタが、第2のプロセッサタイプを有する1つまたは複数のプロセッサデバイスを備える、請求項10に記載のシステム。
【請求項１６】
前記第1のプロセッサタイプおよび前記第2のプロセッサタイプが、マルチコアプロセッサ、中央処理ユニット(CPU)、グラフィックスプロセッサユニット(GPU)、およびデジタル信号プロセッサ(DSP)のうちの1つまたは複数を含む、請求項15に記載のシステム。
【請求項１７】
前記マルチクラスタ異種プロセッサアーキテクチャが、前記第1のプロセッサクラスタが、前記第2のプロセッサクラスタを備える1つまたは複数のプロセッサコアよりも低い電力を有する1つまたは複数のプロセッサコアを備える、異種アーキテクチャを備え、前記第1のプロセッサクラスタ内の前記第1のキャッシュが、前記第2のプロセッサクラスタ内の前記第2のキャッシュよりも小さいサイズを有する、請求項10に記載のシステム。
【請求項１８】
前記第1のキャッシュおよび前記第2のキャッシュが、前記関連するプロセッサクラスタのためのレベル2(L2)キャッシュを備え、前記第2のプロセッサクラスタに関連付けられた前記第2のキャッシュの少なくとも前記一部分を前記第1のキャッシュの拡張として使用するための前記手段が、前記第2のキャッシュを前記第1のプロセッサクラスタのためのレベル3(L3)キャッシュとして使用するための手段を備える、請求項10に記載のシステム。
【請求項１９】
コンピュータ可読記憶媒体において具現化され、ポータブルコンピューティングデバイス内のマルチクラスタ異種プロセッサアーキテクチャにおいて動的キャッシュ拡張を提供するためにプロセッサによって実行可能なコンピュータプログラムであって、
第1のプロセッサクラスタと、関連する第2のキャッシュを有する第2のプロセッサクラスタとを備える前記マルチクラスタ異種プロセッサアーキテクチャにおいて、前記第1のプロセッサクラスタおよび関連する第1のキャッシュについてのプロセッサ作業負荷の度合いを表すプロセッサ作業負荷入力およびキャッシュ作業負荷の度合いを表すキャッシュ作業負荷入力を受け取り、
前記キャッシュ作業負荷入力に基づいて、前記第1のプロセッサクラスタに関連付けられた現在のタスクの処理ボトルネックまたは他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているかを決定し、
前記プロセッサ作業負荷入力および前記キャッシュ作業負荷入力に基づいて、前記第1のプロセッサクラスタに関連付けられた前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているのではなく、前記第1のプロセッサクラスタの前記プロセッサ作業負荷によって引き起こされているかを決定し、
前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているとの決定に応じて、前記第2のプロセッサクラスタに関連付けられた前記第2のキャッシュの少なくとも一部分を前記第1のキャッシュの拡張として使用し、
前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のキャッシュの前記キャッシュ作業負荷によって引き起こされているのではなく、前記第1のプロセッサクラスタの前記プロセッサ作業負荷によって引き起こされているとの決定に応じて、前記第1のプロセッサクラスタから前記第2のプロセッサクラスタに前記現在のタスクを移行する
ように構成されたロジックを備えるコンピュータプログラム。
【請求項２０】
前記第1のキャッシュに関連付けられたスヌープヒットカウンタを監視し、
前記スヌープヒットカウンタがしきい値を超えるか、または省電力状態のためのタイマが満了した場合、前記第1のキャッシュを省電力状態にさせる
ように構成されたロジックをさらに備える、請求項19に記載のコンピュータプログラム。
【請求項２１】
前記プロセッサ作業負荷入力が、クロックサイクル当たりの命令の数、単位時間当たりの命令の数、周波数レベル、およびプロセッサアクティブ持続時間割合のうちの1つまたは複数に関する情報を含み、前記キャッシュ作業負荷入力が、キャッシュミスの数、キャッシュアクセスの数、キャッシュミス率、およびキャッシュミスによるプロセッサストール時間またはプロセッサストールの数のうちの1つまたは複数に関する情報を含む、請求項19に記載のコンピュータプログラム。
【請求項２２】
前記プロセッサ作業負荷入力が、プロセッサ/CPU性能に関する情報を含み、前記キャッシュ作業負荷入力が、キャッシュのサイズに関する情報を含む、請求項19に記載のコンピュータプログラム。
【請求項２３】
動的キャッシュ拡張を提供するためのマルチクラスタ異種プロセッサアーキテクチャを有するシステムであって、
第1のレベル2(L2)キャッシュを備える第1のプロセッサクラスタと、
第2のL2キャッシュを備える第2のプロセッサクラスタと、
前記第1のL2キャッシュおよび前記第2のL2キャッシュと通信しているコントローラとを備え、前記コントローラが、
前記第1のプロセッサクラスタからプロセッサ作業負荷の度合いを表すプロセッサ作業負荷入力およびキャッシュ作業負荷の度合いを表すキャッシュ作業負荷入力を受け取り、
前記キャッシュ作業負荷入力に基づいて、前記第1のプロセッサクラスタに関連付けられた現在のタスクの処理ボトルネックまたは他のシステム制限が、前記第1のL2キャッシュの前記キャッシュ作業負荷によって引き起こされているかを決定し、
前記プロセッサ作業負荷入力および前記キャッシュ作業負荷入力に基づいて、前記第1のプロセッサクラスタに関連付けられた前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のL2キャッシュの前記キャッシュ作業負荷によって引き起こされているのではなく、前記第1のプロセッサクラスタの前記プロセッサ作業負荷によって引き起こされているかを決定し、
前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のL2キャッシュの前記キャッシュ作業負荷によって引き起こされているとの決定に応じて、前記第2のプロセッサクラスタに関連付けられた前記第2のL2キャッシュの少なくとも一部分を前記第1のL2キャッシュの拡張として使用し、
前記現在のタスクの前記処理ボトルネックまたは前記他のシステム制限が、前記第1のL2キャッシュの前記キャッシュ作業負荷によって引き起こされているのではなく、前記第1のプロセッサクラスタの前記プロセッサ作業負荷によって引き起こされているとの決定に応じて、前記第1のプロセッサクラスタから前記第2のプロセッサクラスタに前記現在のタスクを移行する
ように構成される、システム。
【請求項２４】
前記コントローラが、
前記第1のL2キャッシュに関連付けられたスヌープヒットカウンタを監視し、
前記スヌープヒットカウンタがしきい値を超えるか、または省電力状態のためのタイマが満了した場合、前記第1のL2キャッシュを省電力状態にさせる
ようにさらに構成される、請求項23に記載のシステム。
【請求項２５】
前記プロセッサ作業負荷入力が、クロックサイクル当たりの命令の数、単位時間当たりの命令の数、周波数レベル、およびプロセッサアクティブ持続時間割合のうちの1つまたは複数に関する情報を含み、前記キャッシュ作業負荷入力が、キャッシュミスの数、キャッシュアクセスの数、キャッシュミス率、およびキャッシュミスによるプロセッサストール時間またはプロセッサストールの数のうちの1つまたは複数に関する情報を含む、請求項23に記載のシステム。
【請求項２６】
前記プロセッサ作業負荷入力が、プロセッサ/CPU性能に関する情報を含み、前記キャッシュ作業負荷入力が、キャッシュのサイズに関する情報を含む、請求項23に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
マルチクラスタ異種プロセッサアーキテクチャにおいて動的キャッシュ拡張を提供するためのシステムおよび方法に関する。
【背景技術】
【０００２】
ポータブルコンピューティングデバイス(たとえば、セルラー電話、スマートフォン、タブレットコンピュータ、携帯情報端末(PDA)、およびポータブルゲームコンソール)は、ますます拡大する数々の機能およびサービスを提供し続けており、ユーザが情報、リソース、および通信にかつてないレベルでアクセスできるようにしている。これらのサービス拡張とペースを合わせるために、そのようなデバイスは、より強力、かつより複雑になってきた。ここで、ポータブルコンピューティングデバイスには、一般に、単一の基板上に組み込まれた1つまたは複数のチップ構成要素(たとえば、1つまたは複数の中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサなど)を含む、システムオンチップ(SoC)が含まれる。
【０００３】
そのようなポータブルコンピューティングデバイスまたは他のコンピュータシステムもしくはデバイスは、マルチクラスタ異種プロセッサアーキテクチャを備えることができ、その一例は、「big.LITTLE」異種アーキテクチャと呼ばれる。「big.LITTLE」および他の異種アーキテクチャは通常、比較的遅い低電力のプロセッサコアのセットが比較的より強力なプロセッサコアのセットと結合される、プロセッサコアのグループを備える。たとえば、より高性能の能力を有するプロセッサまたはプロセッサコアのセットは、しばしば、「Bigクラスタ」と呼ばれ、最小電力消費量を有するが、適切な性能(ただし、Bigクラスタの性能よりも比較的劣る)を提供することが可能であるプロセッサまたはプロセッサコアのその他のセットは、「Littleクラスタ」と呼ばれる。キャッシュコントローラは、様々な使用事例に基づいて変化することがある性能および/または電力要件に従って、BigクラスタまたはLittleクラスタによって実行されるべきタスクをスケジュールすることができる。Bigクラスタは、より高い性能が望ましい状況(たとえば、グラフィックス、ゲームなど)に使用され得、Littleクラスタは、比較的低電力の使用事例(たとえば、テキストアプリケーション)に使用され得る。
【０００４】
しかしながら、既存のマルチクラスタ異種プロセッサアーキテクチャは、いくつかの使用事例では、性能/電力を効果的に最適化しないことがある。たとえば、メモリアクセスは広いがCPU作業負荷は比較的軽い使用事例は、望ましくないレベル2(L2)キャッシュミスを受けることがある。既存のアーキテクチャは、実行レイテンシのせいで、このタイプの使用事例/作業負荷を比較的重いCPU作業負荷と解釈することがある。その結果、タスクがBigクラスタに移行した場合、システムは電力ペナルティを受けることがある。代替的に、タスクがLittleクラスタ上で実行されたままである場合、性能が悪化することがある。さらに、スケジューラがより小さいサイズのL2キャッシュを有するLittleクラスタからより大きいL2キャッシュを有するBigクラスタにタスクを移行した場合、システムは過度の電力を消費することがある。スケジューラがより小さいサイズのL2キャッシュを有するLittleクラスタにおいてタスクを維持する場合、このことは低い性能および望ましくないユーザエクスペリエンスをもたらすことがある。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
したがって、当技術分野では、最適化された性能および電力消費量でマルチクラスタ異種プロセッサアーキテクチャにおいてタスクをスケジュールおよび管理するためのシステムおよび方法が必要とされている。
【課題を解決するための手段】
【０００６】
ポータブルコンピューティングデバイス内のマルチクラスタ異種プロセッサアーキテクチャにおいて動的キャッシュ拡張を提供するための方法、システム、およびコンピュータプログラムの様々な実施形態が開示される。1つのそのような方法は、第1のプロセッサクラスタと、関連する第2のキャッシュを有する第2のプロセッサクラスタとを備えるマルチクラスタ異種プロセッサアーキテクチャにおいて、第1のプロセッサクラスタおよび関連する第1のキャッシュについてのプロセッサ作業負荷入力およびキャッシュ作業負荷入力を受け取るステップを伴う。プロセッサ作業負荷入力およびキャッシュ作業負荷入力に基づいて、第1のプロセッサクラスタに関連付けられた現在のタスクが、第1のキャッシュのサイズしきい値によって制限されるか、または第1のプロセッサクラスタの性能しきい値によって制限されるかが決定される。現在のタスクが、第1のキャッシュのサイズしきい値によって制限される場合、第2のプロセッサクラスタに関連付けられた第2のキャッシュの少なくとも一部分が、第1のキャッシュの拡張として使用され得る。
【０００７】
別の実施形態は、動的キャッシュ拡張を提供するためのマルチクラスタ異種プロセッサアーキテクチャを有するシステムである。システムは、第1のレベル2(L2)キャッシュを備える第1のプロセッサクラスタと、第2のL2キャッシュを備える第2のプロセッサクラスタとを備える。第1のL2キャッシュおよび第2のL2キャッシュと通信しているキャッシュコントローラは、第1のプロセッサクラスタからプロセッサ作業負荷入力およびキャッシュ作業負荷入力を受け取るように構成される。プロセッサ作業負荷入力およびキャッシュ作業負荷入力に基づいて、キャッシュコントローラは、第1のプロセッサクラスタに関連付けられた現在のタスクが、第1のL2キャッシュのサイズしきい値によって制限されるか、または第1のプロセッサクラスタの性能しきい値によって制限されるかを決定し得る。現在のタスクが、第1のL2キャッシュのサイズしきい値によって制限される場合、キャッシュコントローラは、第2のプロセッサクラスタに関連付けられた第2のL2キャッシュの少なくとも一部分を第1のL2キャッシュの拡張として使用し得る。
【０００８】
図において、別段に示されない限り、様々な図の全体を通して、同様の参照番号は同様の部分を指す。「102A」または「102B」などの文字指定を伴う参照番号の場合、文字指定は、同じ図に存在する2つの同様の部分または要素を区別することができる。参照番号がすべての図において同じ参照番号を有するすべての部分を包含することを意図するとき、参照番号に対する文字指定は省略される場合がある。
【図面の簡単な説明】
【０００９】
【図１】動的キャッシュ拡張およびプロセッサクラスタ間の動的キャッシュ再割振りを提供するためのキャッシュスケジューラを含むマルチクラスタ異種プロセッサアーキテクチャを備えるシステムの一実施形態のブロック図である。
【図２】図1のシステム内のキャッシュスケジューラの一実施形態のデータ入力およびデータ出力を示すブロック図である。
【図３】図2のキャッシュスケジューラの例示的なデータ入力および得られたデータ出力を示すデータテーブルである。
【図４】動的キャッシュ拡張および動的キャッシュ再割振りを提供するためのキャッシュスケジューラによって実装される方法の一実施形態を示すフローチャートである。
【図５ａ】動的キャッシュ拡張を実装するための図1のシステムの一実施形態を示す機能ブロック図である。
【図５ｂ】あるプロセッサクラスタのL2キャッシュが別のプロセッサクラスタのL2キャッシュの一部分を追加のL2キャッシュとして使用することによって拡張される、図5aのシステムを示す図である。
【図５ｃ】あるプロセッサクラスタのL2キャッシュが別のプロセッサクラスタのL2キャッシュの一部分をL3キャッシュとして使用することによって拡張される、図5aのシステムを示す図である。
【図６】動的キャッシュ拡張を実装するための物理-論理キャッシュマッピングを示すブロック図である。
【図７】図6の物理-論理マッピングを実装するためのキャッシュコントローラによって管理されるルックアップテーブルの一実施形態を示す図である。
【図８ａ】動的キャッシュ再割振りを実装するための図1のシステムの一実施形態を示す機能ブロック図である。
【図８ｂ】タスクがあるプロセッサクラスタから別のプロセッサクラスタに再割振りされる、図8aのシステムを示す図である。
【図９】スヌープヒットカウンタに基づいて、タスクが別のプロセッサクラスタ内の移行先L2キャッシュに移行された後に移行元L2キャッシュを省電力状態にさせるための図1のシステムの別の実施形態を示す図である。
【図１０】例示的なポータブルコンピューティングデバイス(PCD)に組み込まれた、図1〜図9のシステムおよび方法を示す図である。
【発明を実施するための形態】
【００１０】
「例示的」という言葉は、本明細書では、「例、事例、または例示として機能する」ことを意味するために使用される。「例示的」として本明細書で説明するいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるべきではない。
【００１１】
本明細書では、「アプリケーション」または「イメージ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含む場合もある。加えて、本明細書で言及する「アプリケーション」は、開かれることが必要な場合があるドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルを含む場合もある。
【００１２】
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイル、およびパッチなどの、実行可能なコンテンツを有するファイルを含む場合もある。加えて、本明細書で言及する「コンテンツ」は、開かれることが必要な場合があるドキュメント、またはアクセスされる必要がある他のデータファイルなどの、本質的に実行可能ではないファイルを含む場合もある。
【００１３】
本明細書で使用する「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、または実行中のソフトウェアのいずれかであるコンピュータ関連エンティティを指すものとする。たとえば、構成要素は、限定はしないが、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行可能ファイル、実行スレッド、プログラム、および/またはコンピュータであってもよい。例として、コンピューティングデバイス上で実行されるアプリケーションとコンピューティングデバイスの両方が構成要素であってもよい。1つまたは複数の構成要素は、プロセスおよび/または実行スレッド内に存在してもよく、構成要素は、1つのコンピュータ上に局在化されてもよく、および/または2つ以上のコンピュータ間で分散されてもよい。加えて、これらの構成要素は、様々なデータ構造が記憶された様々なコンピュータ可読媒体から実行されてもよい。構成要素は、1つまたは複数のデータパケット(たとえば、ローカルシステム、分散システム内の別の構成要素と対話し、および/または、信号によってインターネットなどのネットワークを介して他のシステムと対話する、ある構成要素からのデータ)を有する信号などに従って、ローカルプロセスおよび/またはリモートプロセスによって通信してもよい。
【００１４】
図1は、マルチクラスタ異種プロセッサアーキテクチャを備えるシステム100の一実施形態のブロック図である。システム100は、パーソナルコンピュータと、ワークステーションと、サーバと、セルラー電話、携帯情報端末(PDA)、ポータブルゲームコンソール、パームトップコンピュータ、またはタブレットコンピュータなどのポータブルコンピューティングデバイス(PCD)とを含む、任意のコンピューティングデバイスにおいて実装され得る。マルチクラスタ異種プロセッサアーキテクチャは、キャッシュコントローラ101に結合された複数のプロセッサクラスタを備える。当技術分野で知られているように、各プロセッサクラスタは、対応する専用キャッシュを有する、1つまたは複数のプロセッサまたはプロセッサコア(たとえば、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)など)を備え得る。
【００１５】
図1の実施形態では、プロセッサクラスタ102および104は、上記で説明したように、プロセッサクラスタ102がLittleクラスタを備え、プロセッサクラスタ104がBigクラスタを備える「big.LITTLE」異種アーキテクチャを備え得る。Littleプロセッサクラスタ102は、複数の中央処理ユニット(CPU)コア108および110を備え、CPUコア108および110は、Bigプロセッサクラスタ104内のCPUコア114および116よりも比較的遅く、消費する電力が少ない。BigクラスタCPUコア114および116は、たとえば、比較的高いサイクル当たりの命令(IPC:instructions per cycle)、より高い動作周波数、および/または、追加の電力を犠牲にするが比較的高い性能を可能にするマイクロアーキテクチャ機能を有することによって、LittleクラスタCPUコア108および110と区別され得ることを諒解されたい。さらに、たとえば、GPUコア120および122を備えるプロセッサクラスタ106などの追加のプロセッサクラスタが、システム100に含まれ得る。
【００１６】
プロセッサクラスタ102、104、および106は、メインメモリ144からデータにアクセスする平均時間を低減するために、システム100内の対応するプロセッサによって使用される独立キャッシュメモリを有し得る。一実施形態では、独立キャッシュメモリおよびメインメモリ144は、キャッシュレベルの階層(たとえば、レベル1(L1)、レベル2(L2)、レベル3(L3))として編成され得る。プロセッサクラスタ102はL2キャッシュ112を備え得、プロセッサクラスタ104はL2キャッシュ118を備え得、プロセッサクラスタ106はL2キャッシュ124を備え得る。
【００１７】
図1に示すように、キャッシュコントローラ101は、キャッシュスケジューラ140と、キャッシュ相互接続111と、L2キャッシュ112、118、および124の性能をそれぞれ監視するための複数のキャッシュモニタ126、128、および130とを備え得る。キャッシュ相互接続111は、メインメモリ144とL2キャッシュ112、118、および124との間のコヒーレンシを維持するための関連するロジックを有する相互接続またはバスを備える。以下でより詳細に説明するように、キャッシュスケジューラ140は一般に、プロセッサおよびキャッシュ性能を監視し、任意選択で、システム100の電力および性能要件に従ってプロセッサクラスタ102、104、および106に対するタスクスケジューリングを管理するように構成されたロジックを備える。
【００１８】
図2は、キャッシュスケジューラ140の一実施形態のデータ入力およびデータ出力を示すブロック図である。キャッシュスケジューラ140は、データ入力として、各プロセッサクラスタから、プロセッサ使用入力データ202およびL2キャッシュ使用/ミス率入力データ204を受け取ることができる。プロセッサ使用入力データ202は、プロセッサクラスタ102、104、および106から受け取られた以下のパラメータまたは他のパラメータ、すなわち、サイクル当たりの命令(IPC)、100万命令毎秒(MIPS)、周波数、CPUアクティブ持続時間割合のうちの1つまたは複数に基づいて、プロセッサ作業負荷を示し得ることを諒解されたい。L2キャッシュ入力データ204は、キャッシュモニタ126、128、および130を介して受け取られた以下のパラメータまたは他のパラメータ、すなわち、1000命令当たりのキャッシュミス(MPKI:misses per 1000 instructions)、1000命令当たりのキャッシュアクセス(APKI:accesses per 1000 instructions)、L2キャッシュミス率(MPKI/APKI)、キャッシュミスによるCPUストール時間/比またはストールクロック、およびキャッシュミスによるCPUストールの量を示す100万サイクル毎秒(MCPS:million cycles per second)のうちの1つまたは複数に基づいて、L2キャッシュ作業負荷または性能を示し得る。
【００１９】
入力データ202および204に基づいて、キャッシュスケジューラ140は、処理ボトルネックまたは他のシステム制限が(1)プロセッサ/CPU性能によって引き起こされている(または引き起こされることになる)か、または(2)L2キャッシュのサイズによって引き起こされている(または引き起こされることになる)かを決定する。たとえば、キャッシュスケジューラ140は、Littleプロセッサクラスタ102に関連付けられた現在のタスクがCPU性能によって制限されると決定し得る。プロセッサ使用入力データ202は、CPU作業負荷がLittleプロセッサクラスタ102によって望ましく取り扱われ得るよりも多いことを示し得る。応答して、キャッシュスケジューラ140(たとえば、動的キャッシュ再割振りモジュール152)は、Littleプロセッサクラスタ102からBigプロセッサクラスタ104にタスクを移行するためのタスク移行モード208を開始し得、ここで、このモードは、CPU108またはCPU110を介して利用可能な性能よりも多い望ましい性能を用いて、CPU114またはCPU116によって実行され得る。代替的に、キャッシュスケジューラ140は、Littleプロセッサクラスタ102に関連付けられた現在のタスクがL2キャッシュ112のサイズによって制限されると決定し得る。入力データ204は、(CPU性能ではなく)L2キャッシュ112のサイズが制限であることを示し得る。応答して、キャッシュスケジューラ140(たとえば、動的キャッシュ拡張モジュール150)は、Littleプロセッサクラスタ102を介して、ただし(Bigプロセッサクラスタ104内の)L2キャッシュ118の一部分を拡張L2キャッシュまたはL3キャッシュとして使用することによってタスクを処理するためのキャッシュ拡張モード206を開始し得る。現在のタスクに性能問題がない場合、キャッシュスケジューラ140は、Littleプロセッサクラスタ102のL2キャッシュ112を用いて現在のタスクを維持するためのデフォルト分割L2モード210を開始し得る。
【００２０】
図3に示すように、キャッシュスケジューラ140は、キャッシュ拡張モード206を開始すべきか、タスク移行モード208を開始すべきか、またはデフォルト分割L2モード210を開始すべきかを決定するためのテーブル300にアクセスし、それを管理し得る。テーブル300は、キャッシュサイズしきい値(しきい値2)および性能しきい値(しきい値1)を定義し得る。データ入力202および204に基づいて、キャッシュスケジューラ140は4つの例示的なシナリオを決定し得る。シナリオ4では、Littleプロセッサクラスタ102がしきい値1を超えないCPU使用割合を有するが、L2キャッシュ使用/ミス率がしきい値2を超えるとき、キャッシュスケジューラ140はキャッシュ拡張モード206を開始し得る。シナリオ3では、L2キャッシュ使用/ミス率にかかわらず、Littleプロセッサクラスタ102がしきい値1を超えるCPU使用割合を有するとき、キャッシュスケジューラ140は、タスク移行モード208を開始し得る。シナリオ2では、Littleプロセッサクラスタ102がしきい値1を超えないCPU使用割合を有し、L2キャッシュ使用/ミス率がしきい値2を超えないとき、キャッシュスケジューラ140は、デフォルト分割L2モード210を開始し得る。シナリオ1は、Bigプロセッサクラスタ104がタスクをアクティブに取り扱っており、システム100がBigプロセッサクラスタ104のためにデフォルト分割L2モード210で動作する状況を指す。
【００２１】
図4は、キャッシュスケジューラ140によって実装される方法400の一実施形態を示すフローチャートである。ブロック402において、キャッシュスケジューラ140は、Littleプロセッサクラスタ102および関連するL2キャッシュ112についてのプロセッサ作業負荷入力およびキャッシュ作業負荷入力を受け取る。プロセッサ作業負荷入力およびキャッシュ作業負荷入力は、上述のパラメータ(入力202および204 - 図2)のうちのいずれかを含み得る。ブロック404において、キャッシュスケジューラ140は、Littleプロセッサクラスタ102に関連付けられた現在のタスクが、L2キャッシュ112のサイズしきい値によって制限されるか、またはCPU108もしくはCPU110の性能しきい値によって制限されるかを決定する。性能しきい値およびサイズしきい値は、図3のテーブル300と同様の方法で定義され得る。プログラムで、またはそれ以外で、しきい値が定義され得ることを諒解されたい。現在のタスクがL2キャッシュ112のサイズしきい値によって制限されることをキャッシュスケジューラ140が決定する場合(決定ブロック406)、キャッシュスケジューラ140は、Bigプロセッサクラスタ104に関連付けられたL2キャッシュ118の少なくとも一部分をL2キャッシュ112の拡張として使用し得る(ブロック408)。
【００２２】
図5a〜図5cは、L2キャッシュ112を動的に拡張するための2つの例示的な実施形態を概略形式で示す。図5aに示すように、現在のタスクは、Littleプロセッサクラスタ102内のCPU108に関連付けられ得る。CPU108およびL2キャッシュ112は、灰色のボックスとして強調表示されている。図5bでは、L2キャッシュ118(Bigプロセッサクラスタ104)の一部分502は、L2キャッシュ112(Littleプロセッサクラスタ102)のための拡張L2キャッシュとして割り振られ得る。図5cは、L2キャッシュ118(Bigプロセッサクラスタ104)の一部分504がL2キャッシュ112(Littleプロセッサクラスタ102)によって使用されるL3キャッシュとして割り振られる、別の実施形態を示す。システム100において実装されるキャッシュレベルの階層に応じて、様々なキャッシュ技法が採用され得ることを諒解されたい。
【００２３】
図6は、動的キャッシュ拡張モジュール150を実装するための、論理キャッシュ604への物理キャッシュ602の例示的なマッピングを示す。物理キャッシュ602は、次のように割り振られ得る。プロセッサクラスタAは、L2キャッシュAにおいて物理キャッシュ部分A1およびA2を備え得る。プロセッサクラスタBは、L2キャッシュBにおいて物理キャッシュ部分B1、B2、B3、およびB4を備え得る。プロセッサクラスタCは、L2キャッシュCにおいて物理キャッシュ部分C1、C2、およびC3を備え得る。動作時にデータ入力202および204に基づいて、キャッシュスケジューラ140は、L2キャッシュB(プロセッサクラスタB)からL2キャッシュA(プロセッサクラスタA)に物理キャッシュ部分B1、B2、およびB3を割り振り得る。L2キャッシュB(プロセッサクラスタB)からの物理キャッシュ部分B4は、L2キャッシュC(プロセッサクラスタC)に割り振られ得る。この動作使用事例では、プロセッサクラスタBは、電力消費量を節約するために非アクティブ化され、電力省電化させられ(power collapsed)得る。図7は、図6の物理-論理キャッシュマッピングを実装するためのマッピングテーブル700を示す。
【００２４】
再び図4を参照すると、現在のタスクがL2キャッシュ112のサイズしきい値によって制限されないとキャッシュスケジューラ140が決定した場合(決定ブロック406)、制御は決定ブロック410に流れて、現在のタスクがL2キャッシュ112の性能しきい値によって制限されるかどうかを決定し得る。性能しきい値を超えない場合、キャッシュスケジューラ140は、デフォルト分割L2モード210を使用して現在のタスクを処理し得る(ブロック412)。性能しきい値を超える場合、キャッシュスケジューラ140は、Littleプロセッサクラスタ102からBigプロセッサクラスタ104に現在のタスクを移行し得る(ブロック414)。図8aおよび図8bは、例示的なタスク移行を概略形式で示す。図8aでは、現在のタスク802は、Littleプロセッサクラスタ102内のCPU110に関連付けられる。図8bに示すように、性能しきい値を超える場合、キャッシュスケジューラ140は、CPU110からCPU114にタスク802を移行し得る。
【００２５】
システム100の別の例示的な実施形態によれば、タスクがLittleプロセッサクラスタ102からBigプロセッサクラスタ104に移行されるとき、Bigプロセッサクラスタ104内のL2キャッシュ118は、その作業セットのすべてをLittleプロセッサクラスタ102内のL2キャッシュ112からフェッチし得る。代替的に、L2キャッシュ118は、フレッシュセットをメインメモリ144またはより低いレベルのキャッシュ(たとえば、L3キャッシュ)からフェッチするとともに、その作業セットの一部分をLittleプロセッサクラスタ102内のL2キャッシュ112からフェッチし得る。この点について、移行元L2キャッシュは実行されるスレッドがそことは異なるところに移行しているL2キャッシュとして定義され得る。キャッシュスケジューラ140は、移行元L2キャッシュからのしきい値キャッシュヒット率が維持される限り、移行元L2キャッシュをオンラインのままにするようにさらに構成され得る。ヒット率がしきい値キャッシュヒット率を下回ると、移行元L2キャッシュはフラッシュされ、オフにされ得る。
【００２６】
図9に示すように、システム100は、性能および/または電力を最適化するために、しきい値キャッシュヒット率を調整するように構成され得る。一実施形態では、スケジューラ907および低電力モードドライバ901はソフトウェアにおいて実装され得、タイムアウト選択アルゴリズム903はハードウェアにおいて実装され得る。たとえば、オペレーティングシステム905がタスク移行を頻繁に実行する状況を考える。スケジューラ907は、上記でより詳細に説明したように、タスクウェイクアップ入力902を受け取り、タスク移行が実行されるべきかどうかを決定する(決定ブロック904)ことができる。タスク移行が実行されるべきではないとスケジューラ907が決定した場合、ブロック906において、タスクは元のプロセッサクラスタ上でスケジュールされ得る。タスク移行が望まれる場合、ブロック908において、タスクは宛先プロセッサクラスタに移行され得る。
【００２７】
例示的な実施形態では、調整/タイムアウト技法は図9のステップA、B、C、D、およびEによって表される。ステップAにおいて、タスク移行は、たとえば、低電力モードドライバ901への制御信号をトリガし得る。ブロック910において、低電力モードドライバ901は、移行元プロセッサ内のコアが省電力状態にさせられる(collapsed)べきかどうかを決定する。移行元L2キャッシュ909を省電力状態にさせることができる場合(決定ブロック910)、ステップBにおいて、省電力タイムアウトおよびスヌープヒットしきい値が設定され得る。省電力タイムアウトは、タイムアウト選択アルゴリズム903によって受け取られた(ステップC)推奨タイムアウトに基づいて、設定され得る(ブロック920)。ステップDにおいて、スヌープヒットしきい値およびスヌープヒットタイムアウトは、それぞれ、ブロック922および924において、移行元L2キャッシュ909に記憶され得る。ステップEにおいて、移行元L2キャッシュ909は、スヌープヒットしきい値、スヌープヒットカウンタ、およびスヌープヒットタイムアウトに基づくタイムアウトIRQラインに応答して、省電力状態にさせられ得る(ブロック928)。
【００２８】
システム100は、任意の望ましいコンピューティングシステムに組み込まれ得る。図10は、例示的なポータブルコンピューティングデバイス(PCD)1000に組み込まれたシステム100を示す。システムオンチップ(SoC)103は、キャッシュスケジューラ140と、プロセッサクラスタ102、104、および106とを含み得る。ディスプレイコントローラ328およびタッチスクリーンコントローラ330は、プロセッサクラスタのうちの1つまたは複数に結合され得る。一方、オンチップシステム103の外部にあるタッチスクリーンディスプレイ1006は、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合され得る。
【００２９】
図10は、ビデオエンコーダ334、たとえば、位相反転線(PAL)エンコーダ、順次式カラーメモリ(SECAM)エンコーダ、または全米テレビジョン方式委員会(NTSC)エンコーダが、プロセッサクラスタ102、104、および106のうちの1つまたは複数に結合されることをさらに示す。さらに、ビデオ増幅器336は、ビデオエンコーダ334およびタッチスクリーンディスプレイ1006に結合される。また、ビデオポート338は、ビデオ増幅器336に結合される。図10に示すように、ユニバーサルシリアルバス(USB)コントローラ340は、プロセッサクラスタのうちの1つまたは複数に結合される。また、USBポート342は、USBコントローラ340に結合される。メモリ144および加入者識別モジュール(SIM)カード346も、プロセッサクラスタに結合され得る。
【００３０】
さらに、図10に示すように、デジタルカメラ348は、プロセッサクラスタに結合され得る。例示的な態様では、デジタルカメラ348は、電荷結合デバイス(CCD)カメラまたは相補型金属酸化物半導体(CMOS)カメラである。
【００３１】
図10にさらに示すように、ステレオオーディオコーダデコーダ(コーデック)350は、プロセッサクラスタに結合され得る。さらに、オーディオ増幅器352は、ステレオオーディオコーデック350に結合され得る。例示的な態様では、第1のステレオスピーカー354および第2のステレオスピーカー356は、オーディオ増幅器352に結合される。マイクロフォン増幅器358も、ステレオオーディオコーデック350に結合され得る。加えて、マイクロフォン360は、マイクロフォン増幅器358に結合され得る。特定の態様では、周波数変調(FM)無線チューナー362は、ステレオオーディオコーデック350に結合され得る。また、FMアンテナ364は、FM無線チューナー362に結合される。さらに、ステレオヘッドフォン366は、ステレオオーディオコーデック350に結合され得る。
【００３２】
図10は、無線周波数(RF)トランシーバ368がプロセッサクラスタに結合され得ることをさらに示す。RFスイッチ370は、RFトランシーバ368およびRFアンテナ372に結合され得る。キーパッド204、マイクロフォンを有するモノヘッドセット376、およびバイブレータデバイス378は、プロセッサクラスタに結合され得る。
【００３３】
図10はまた、電源380がオンチップシステム103に結合され得ることを示す。特定の態様では、電源380は、電力を必要とするPCD1000の様々な構成要素に電力を供給する直流(DC)電源である。さらに、特定の態様では、電源は、充電式DCバッテリー、または交流(AC)電源に接続されたAC-DC変換器から得られるDC電源である。
【００３４】
図10は、PCD1000が、データネットワーク、たとえば、ローカルエリアネットワーク、パーソナルエリアネットワーク、または任意の他のネットワークにアクセスするために使用され得るネットワークカード388を含む場合もあることをさらに示す。ネットワークカード388は、Bluetooth(登録商標)ネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeANUT)ネットワークカード、テレビジョン/ケーブル/衛星チューナー、または当技術分野でよく知られている任意の他のネットワークカードであってもよい。さらに、ネットワークカード388は、チップに組み込まれる場合があり、すなわち、ネットワークカード388は、チップ内のフルソリューションである場合があり、別個のネットワークカード388でなくてもよい。
【００３５】
図10を参照すると、メモリ144、RAMカード105、タッチスクリーンディスプレイ1006、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカー354、第2のステレオスピーカー356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド374、モノヘッドセット376、バイブレータ378、および電源380は、オンチップシステム103の外部にある場合があることを諒解されたい。
【００３６】
本発明が説明したように機能するために、本明細書で説明したプロセスまたはプロセスフローにおけるいくつかのステップが、他のステップに先行するのは当然である。しかしながら、そのような順序またはシーケンスが本発明の機能を変えない場合、本発明は、説明したステップの順序に限定されない。すなわち、本発明の範囲および趣旨から逸脱することなく、いくつかのステップは、他のステップの前に実行される場合があるか、後に実行される場合があるか、または他のステップと並行して(実質的に同時に)実行される場合があることを認識されたい。場合によっては、本発明から逸脱することなく、いくつかのステップは、省略される場合があるか、または実行されない場合がある。さらに、「その後」、「次いで」、「次に」などの言葉は、ステップの順序を限定するものではない。これらの言葉は単に、例示的な方法の説明を通して読者を導くために使用される。
【００３７】
加えて、プログラミングに関する当業者は、たとえば、本明細書におけるフローチャートおよび関連する説明に基づいて、難なく、開示した発明を実装するコンピュータコードを書くことができるか、または実装するのに適したハードウェアおよび/もしくは回路を特定することができる。
【００３８】
したがって、プログラムコード命令または詳細なハードウェアデバイスの特定のセットの開示は、本発明をどのように作製し使用するのかを十分に理解するために必要であるとは見なされない。特許請求されるコンピュータ実装プロセスの発明性のある機能は、上記の説明において、かつ様々なプロセスフローを示す場合がある図とともに、より詳細に説明される。
【００３９】
1つまたは複数の例示的な態様では、説明する機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアにおいて実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、またはコンピュータ可読媒体を介して送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、コンピュータ記憶媒体と通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であり得る。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、NANDフラッシュ、NORフラッシュ、M-RAM、P-RAM、R-RAM、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または命令もしくはデータ構造の形態で所望のプログラムコードを搬送もしくは記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。
【００４０】
また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(「DSL」)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。
【００４１】
本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(「CD」)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(「DVD」)、フロッピーディスク(disk)およびブルーレイディスク(disc)を含み、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、レーザーを用いてデータを光学的に再生する。上記の組合せも、コンピュータ可読媒体の範囲内に含まれるべきである。
【００４２】
代替実施形態は、本発明の趣旨および範囲から逸脱することなく、本発明が関係する技術分野の当業者に明らかとなろう。したがって、選択された態様が図示され詳細に説明されてきたが、以下の特許請求の範囲によって定義されるように、本発明の趣旨および範囲から逸脱することなく、態様において様々な置換および改変が行われ得ることが理解されよう。
【符号の説明】
【００４３】
100  システム
101  キャッシュコントローラ
102  プロセッサクラスタ、Littleプロセッサクラスタ
103  システムオンチップ(SoC)、オンチップシステム
104  プロセッサクラスタ、Bigプロセッサクラスタ
105  RAMカード
106  プロセッサクラスタ
108  中央処理ユニット(CPU)コア、LittleクラスタCPUコア、CPU
110  中央処理ユニット(CPU)コア、LittleクラスタCPUコア、CPU
111  キャッシュ相互接続
112  L2キャッシュ
114  CPUコア、BigクラスタCPUコア、CPU
116  CPUコア、BigクラスタCPUコア、CPU
118  L2キャッシュ
120  GPUコア
122  GPUコア
124  L2キャッシュ
126  キャッシュモニタ
128  キャッシュモニタ
130  キャッシュモニタ
140  キャッシュスケジューラ
144  メインメモリ、メモリ
150  動的キャッシュ拡張モジュール
152  動的キャッシュ再割振りモジュール
202  データ入力、入力、プロセッサ使用入力データ
204  データ入力、入力、L2キャッシュ使用/ミス率入力データ
206  キャッシュ拡張モード
208  タスク移行モード
210  デフォルト分割L2モード
300  テーブル
328  ディスプレイコントローラ
330  タッチスクリーンコントローラ
334  ビデオエンコーダ
336  ビデオ増幅器
338  ビデオポート
340  ユニバーサルシリアルバス(USB)コントローラ、USBコントローラ
342  USBポート
348  デジタルカメラ、カメラ
350  ステレオオーディオコーダデコーダ(コーデック)、ステレオオーディオコーデック
352  オーディオ増幅器
354  第1のステレオスピーカー
356  第2のステレオスピーカー
360  マイクロフォン
362  周波数変調(FM)無線チューナー、FM無線チューナー
364  FMアンテナ
366  ステレオヘッドフォン
368  無線周波数(RF)トランシーバ、RFトランシーバ
370  RFスイッチ
372  RFアンテナ
376  モノヘッドセット
378  バイブレータデバイス、バイブレータ
380  電源
400  方法
502  一部分
504  一部分
602  物理キャッシュ
604  論理キャッシュ
700  マッピングテーブル
802  現在のタスク、タスク
901  低電力モードドライバ
902  タスクウェイクアップ入力
903  タイムアウト選択アルゴリズム
905  オペレーティングシステム
907  スケジューラ
909  移行元L2キャッシュ
1000  ポータブルコンピューティングデバイス(PCD)、PCD
1006  タッチスクリーンコントローラ、タッチスクリーンディスプレイ
【図１】
0006355853.tif 000002
【図２】
0006355853.tif 000003
【図３】
0006355853.tif 000004
【図４】
0006355853.tif 000005
【図５ａ】
0006355853.tif 000006
【図５ｂ】
0006355853.tif 000007
【図５ｃ】
0006355853.tif 000008
【図６】
0006355853.tif 000009
【図７】
0006355853.tif 000010
【図８ａ】
0006355853.tif 000011
【図８ｂ】
0006355853.tif 000012
【図９】
0006355853.tif 000013
【図１０】
0006355853.tif 000014