(57)【要約】  メモリのプロセッサアクセスが監視される。監視は、アクセスがローカルメモリまたは非ローカルメモリに対するものであることを識別することを含む。監視に基づいて、プロセッサは、非ローカルメモリアクセスモードからローカルメモリアクセスモードに切り替えられる。
2018506122.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサのメモリアクセスモードを切り替える方法であって、
メモリのアクセスを監視するステップであって、監視の結果が、前記アクセスがローカルメモリに対するものであるか、それとも非ローカルメモリに対するものであるかを示す、監視するステップと、
メモリの前記アクセスを前記監視するステップに応答して前記プロセッサを、ローカルメモリアクセス(LP)モードおよび非ローカルメモリアクセス(NP)モードのうちの一方から前記LPモードおよび前記NPモードのうちの他方に切り替えるステップと
を含む、方法。
【請求項２】
メモリの前記アクセスを前記監視するステップが、メモリアクセス履歴を更新するステップを含む、請求項1に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項３】
前記プロセッサを切り替えるステップが、切替えルールを前記メモリアクセス履歴に適用することに少なくとも部分的に基づく、請求項2に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項４】
前記切替えルールを前記メモリアクセス履歴に適用することが、前記切替えルールをメモリから検索することを含む、請求項3に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項５】
前記方法が、前記切替えルールを更新するステップをさらに含む、請求項4に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項６】
メモリの前記アクセスを監視するステップが、タイムスタンプをメモリのアクセスに適用するステップを含み、前記メモリアクセス履歴が前記タイムスタンプを反映する、請求項2に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項７】
メモリの前記アクセスを監視するステップが、区間を検出するステップを含み、前記区間には、前記ローカルメモリのアクセスがない、または前記非ローカルメモリのアクセスがない、またはその両方である、請求項1に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項８】
前記プロセッサを前記NPモードおよびLPモードのうちの他方に切り替えるステップが、区間を前記検出するステップの結果に少なくとも部分的に基づく、請求項7に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項９】
前記プロセッサを前記NPモードおよび前記LPモードのうちの他方に切り替えるステップが、所与のタイムアウト制限を超える区間を示す区間を前記検出するステップの結果に少なくとも部分的に基づく、請求項7に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１０】
前記メモリのアクセスなしで前記所与のタイムアウト継続時間を超える区間を検出することに応答して、ダイレクトタイムアウト通知を生成するステップをさらに含み、前記方法が、前記ダイレクトタイムアウト通知に応答して前記プロセッサを前記NPモードから前記LPモードに切り替えるステップをさらに含む、請求項9に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１１】
前記プロセッサが前記NPモードであるとき、メモリの前記アクセスを監視するステップが、メモリの前記アクセスが前記ローカルメモリに対するものであるか、それとも前記非ローカルメモリに対するものであるかを決定するステップと、決定の結果を示すためにメモリアクセス履歴レコードを更新するステップとを含む、請求項1に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１２】
前記プロセッサを前記NPモードから前記LPモードに切り替えるステップが、NPからLPへの切替えルールを前記メモリアクセス履歴レコードに適用することに少なくとも部分的に基づく、請求項11に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１３】
メモリに前記アクセスするステップが、アドレス、および前記アドレスに関連するメモリロケーションフラグを生成するステップを含み、前記メモリロケーションフラグが、前記アドレスが前記ローカルメモリに対するものであるか、それとも前記非ローカルメモリに対するものであるかを示し、メモリの前記アクセスが、前記ローカルメモリに対するものであるか、それとも前記非ローカルメモリに対するものであるかを前記決定するステップが、前記メモリロケーションフラグに基づく、請求項11に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１４】
前記メモリのアクセスを前記監視することの結果に基づいて、前記プロセッサを前記NPモードおよび前記LPモードのうちの他方に切り替えることを必要とする確率を推定するステップをさらに含み、前記切り替えることが、推定の結果に少なくとも部分的に基づく、
請求項1に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１５】
前記LPモードのとき、前記メモリのアクセスを前記監視することの結果に基づいて、前記プロセッサを前記NPモードに切り替えることを必要とする確率を推定するステップをさらに含み、前記切り替えることが、推定の結果に少なくとも部分的に基づく、
請求項1に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１６】
前記プロセッサを前記LPモードおよび前記NPモードのうちの一方から前記LPモードおよび前記NPモードのうちの他方に切り替えるステップが、前記LPモードおよび前記NPモードのうちのどちらからどちらに前記プロセッサが切り替えられるかを示す値にモードレジスタを設定するステップを含む、請求項1に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１７】
前記LPモードおよび前記NPモードのうちの他方に切り替えるステップが、前記モードレジスタの前記値に基づいて、前記NPモードで動作しているときNPからLPへの切替えルールを、および前記LPモードで動作しているときLPからNPへの切替えルールを、選択された切替えルールとして選択するステップを含み、前記LPモードおよび前記NPモードのうちの他方への前記切替えが、前記選択された切替えルールを前記監視の結果に適用することに少なくとも部分的に基づく、請求項16に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１８】
LPからNPへの切替えルール、またはNPからLPへの切替えルール、または両方を更新するステップをさらに含む、請求項16に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１９】
自動的に、ルールベースでプロセッサのメモリアクセスモードを切り替えるための装置であって、
切替えルールを記憶するように構成され、前記切替えルールが前記プロセッサのアクセスモードを、ローカルメモリアクセス(LP)モードおよび非ローカルメモリアクセス(NP)モードのうちの一方から前記LPモードおよび前記NPモードのうちの他方に切り替えるためのルールを含む、ストレージと、
メモリアクセス履歴/統計レコードであって、前記メモリアクセス履歴/統計レコードが、前記プロセッサがメモリにアクセスすることに関連して更新されるように構成され、前記更新が、前記アクセスすることが、ローカルメモリに対するものであるかまたは非ローカルメモリに対するものであるかを反映する、メモリアクセス履歴/統計レコードと、
前記ストレージおよびメモリアクセス履歴レコードに結合され、前記切替え決定論理が、前記切替えルールおよび前記メモリアクセス履歴レコードに少なくとも部分的に基づいて、前記LPモードおよび前記NPモードのうちの一方から前記LPモードおよび前記NPモードのうちの他方に、前記プロセッサの前記アクセスモードを切り替えるように構成される、切替え決定論理と
を含む、装置。
【請求項２０】
ローカル/非ローカルマップをさらに含み、前記ローカル/非ローカルマップが、前記ローカルメモリおよび前記非ローカルメモリにアクセスしている前記プロセッサに関連するアドレスを受け取るように構成され、前記アドレスに応じて、前記アクセスすることが前記ローカルメモリに対するものであるか、それとも前記非ローカルメモリに対するものであるかを決定するようにさらに構成される、請求項19に記載の装置。
【請求項２１】
アクセスイベントタイマをさらに含み、前記アクセスイベントタイマが、前記ローカルメモリの前記プロセッサによるアクセスに、または前記非ローカルメモリの前記プロセッサによるアクセスに、または両方にタイムスタンプを適用し、前記タイムスタンプを反映するために前記メモリアクセス履歴レコードを更新するように構成される、請求項19に記載の装置。
【請求項２２】
前記アクセスイベントタイマが、前記プロセッサによるアクセスのない区間がタイムアウトを超える継続時間を有することに応答してダイレクトタイムアウト通知を生成するように構成される、請求項21に記載の装置。
【請求項２３】
前記切替え決定論理が、前記ダイレクトタイムアウト通知に応答して、前記プロセッサを前記NPモードおよび前記LPモードのうちの一方から前記NPモードおよび前記LPモードのうちの他方に切り替えるようにさらに構成される、請求項22に記載の装置。
【請求項２４】
アクセスイベントタイマが、前記プロセッサが前記NPモードであるとき、前記非ローカルメモリの前記プロセッサによるアクセスのない区間を決定するように構成され、前記区間がタイムアウトを超える継続時間を有することに応答してダイレクトタイムアウト通知を生成するように構成され、前記切替え決定論理が、前記ダイレクトタイムアウト通知に応答して前記プロセッサを前記NPモードから前記LPモードに切り替えるようにさらに構成される、請求項19に記載の装置。
【請求項２５】
前記切替え決定論理が、外部モード切替えコマンドを受け取り、応答して、前記外部モード切替えコマンドに従って前記プロセッサの前記アクセスモードを切り替えるようにさらに構成される、請求項19に記載の装置。
【請求項２６】
自動的に、ルールベースでプロセッサのメモリアクセスモードを切り替えるための装置であって、
メモリのアクセスを監視するための手段であって、監視の結果が、メモリの前記アクセスはローカルメモリに対するものであるか、それとも非ローカルメモリに対するものであるかを示す、手段と、
メモリの前記アクセスを前記監視することに応じて、前記プロセッサを、ローカルメモリアクセスモードおよび非ローカルメモリアクセスモードのうちの一方から前記ローカルメモリアクセスモードおよび前記非ローカルメモリアクセスモードのうちの他方に切り替えるための手段と
を含む、装置。
【請求項２７】
前記ローカルメモリのアクセス、または前記非ローカルメモリのアクセス、または両方を前記監視することの結果に少なくとも部分的に基づいて、前記プロセッサをLPモードおよびNPモードのうちの他方に切り替えることを必要とする確率を推定するための手段
をさらに含み、
前記プロセッサを前記LPモードおよび前記NPモードのうちの他方に切り替えるための前記手段が、前記推定された確率に少なくとも部分的に基づいて前記切り替えることを実行するように構成される、
請求項26に記載の装置。
【請求項２８】
コードを含む非一時的コンピュータ可読記憶媒体であって、前記コードが、プロセッサによって実行されると、前記プロセッサに、
メモリのアクセスを監視することであって、監視の結果が、メモリの前記アクセスはローカルメモリに対するものであるか、それとも非ローカルメモリに対するものであるかを示す、監視することと、
メモリの前記アクセスを前記監視することに応じて、プロセッサシステムのアクセスモードを、ローカルメモリアクセスモードおよび非ローカルメモリアクセスモードのうちの一方から前記ローカルメモリアクセスモードおよび前記非ローカルメモリアクセスモードのうちの他方に切り替えることと
を行わせる、非一時的コンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、概して、プロセッサメモリ管理に関する。
【背景技術】
【０００２】
ワイヤレス電話、および携帯情報端末(PDA)などのポータブルコンピューティングデバイスは、増加した記憶容量および処理速度を絶えず要求する。たとえば、ワイヤレス電話は、デジタルカメラ、マルチメディアファイルプレーヤ、および携帯ゲーム機としての機能を同時に果たす場合がある。機能および性能要件の増加と同時に、たとえば、より小さくなった携帯デバイスおよび/または容積が他のハードウェアによって占有されるために、利用可能な電池容積が減少している。
【０００３】
電力を低減させるための1つの知られている従来の技法は、コンピューティングデバイスを、低電力に、またはアクセスをローカルメモリに制約することができる「ローカルメモリアクセスモード」に切替え可能として構成することである。ローカルメモリアクセスモードでは、処理コアが、利用可能なメモリおよびデバイスリソースすべてにアクセスすることができるのではなく、より低電力の、ローカルリソースのセット、たとえば、処理コアに密結合されたローカルメモリのみにアクセスすることを可能にされてもよい。
【０００４】
しかしながら、従来の技法は、特定の「モード切替え」コマンドに応答してローカルメモリアクセスモードに切り替わる。したがって、そのようなモード切替えコマンドがなければ、外部メモリおよび他のデバイスリソースは、未使用であるにもかかわらず、パワーアップされたままである可能性がある。さらに、ローカルメモリアクセスモードの間に、パワーダウンされた外部メモリまたは他のデバイスリソースに直ちにアクセスする必要が生じる場合がある。しかしながら、明示的なモード切替えコマンドが受信されるまで、そのアクセスを実行する試みが、ページフォルトを引き起こす可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
この発明の概要は、いくつかの例示的な態様の特徴および態様を特定するものであり、開示される主題の排他的または包括的な説明ではない。特徴または態様がこの発明の概要に含まれるか、またはこの発明の概要から省略されるかは、そのような特徴の相対的重要性を示すものとして意図されていない。以下の詳細な説明を読み、その一部を形成する図面を見ることによって、追加の特徴および態様が記載され、当業者に明らかになるであろう。
【０００６】
プロセッサのメモリアクセスモードの切替えを実現することができる方法が開示される。1つまたは複数の態様による、1つの方法における例示的な動作は、メモリのアクセスを監視することを含むことができ、監視の結果が、アクセスはローカルメモリに対するものであるか、それとも非ローカルメモリに対するものであるかを示すことができる。1つまたは複数の態様による、1つの方法における例示的な動作は、メモリのアクセスを監視することに応じて、プロセッサを、ローカルメモリアクセスモードおよび非ローカルメモリアクセスモードのうちの一方から、ローカルメモリアクセスモードおよび非ローカルメモリアクセスモードのうちの他方に切り替えることを含むことができる。
【０００７】
例示的な装置が開示され、1つまたは複数の態様によれば、プロセッサのメモリアクセスモードの自動的な、ルールベースの切替えを実現することができる。一態様では、例示的な特徴は、ストレージを含むことができ、このストレージは、切替えルールを記憶するように構成されてもよい。一態様では、切替えルールは、プロセッサのアクセスモードを、ローカルメモリアクセス(LP)モードおよび非ローカルメモリアクセス(NP)モードのうちの一方からLPモードおよびNPモードのうちの他方に切り替えるためのルールを含んでもよい。1つまたは複数の態様による、例示的な特徴は、メモリアクセス履歴/統計レコード含むことができ、メモリアクセス履歴/統計レコードは、プロセッサがメモリにアクセスすることに関連して更新されるように構成されてもよい。一態様では、更新は、アクセスがローカルメモリに対するものであるか、それとも非ローカルメモリに対するものであるかを反映することができる。例示的な特徴はまた、一態様では、切替え決定論理を含むことができ、切替え決定論理は、ストレージに、およびメモリアクセス履歴レコードに、結合されてもよい。一態様では、切替え決定論理は、切替えルールおよびメモリアクセス履歴レコードに少なくとも部分的に基づいて、プロセッサのアクセスモードを、LPモードおよびNPモードのうちの一方からLPモードおよびNPモードのうちの他方に切り替えるように構成されてもよい。
【０００８】
1つまたは複数の態様による例示的な装置は、メモリのアクセスを監視するための手段を含むことができ、監視の結果が、メモリのアクセスはローカルメモリに対するものであるか、それとも非ローカルメモリに対するものであるか、それとも両方であるかを示すことができる。例示的な特徴はまた、一態様では、メモリのアクセスを監視することに応じて、プロセッサを、ローカルメモリアクセスモードおよび非ローカルメモリアクセスモードのうちの一方からローカルメモリアクセスモードおよび非ローカルメモリアクセスモードのうちの他方に切り替えるための手段を含むことができる。
【０００９】
1つまたは複数の態様による非一時的コンピュータ可読媒体の例は、コード含むことができ、コードはプロセッサによって実行されるとき、プロセッサにメモリのアクセスを監視させることができ、監視の結果が、メモリのアクセスはローカルメモリに対するものであるか、それとも非ローカルメモリに対するものであるかを示すことができ、それによりプロセッサが、メモリのアクセスを監視することに応じて、プロセッサシステムのアクセスモードを、ローカルメモリアクセスモードおよび非ローカルメモリアクセスモードのうちの一方からローカルメモリアクセスモードおよび非ローカルメモリアクセスモードのうちの他方に切り替えるようにすることができる。
【００１０】
添付の図面は、態様の記述を助けるために提示し、単に説明のために提供し、態様のいかなる限定でもない。
【図面の簡単な説明】
【００１１】
【図１】様々な態様による、1つの例示的な適応アクセスモードメモリアクセスプロセッサのブロック概略図である。
【図２】様々な態様による、非ローカルメモリアクセスモードとローカルメモリアクセスモードとの間の切替えの1つのプロセスにおける、図1のブロック概略図を参照する、例示的な動作の論理フローを示す図である。
【図３】様々な態様による、1つの例示的なパーソナル通信およびコンピューティングデバイスの機能概略図である。
【発明を実施するための形態】
【００１２】
本発明の態様は、特定の例示的な態様を対象とする以下の説明および関連する図面に開示される。本発明の範囲から逸脱することなしに、代替の態様が考案され得る。いくつかの説明された例示的な実装形態では、様々な構成要素の構造および動作の部分が知られている従来技法から得られ、次いで1つまたは複数の態様に従って配置される場合に実例が特定される。そのような実例では、知られている従来の構成要素構造および/または動作の部分の内部詳細は、本発明の概念の潜在的な不明瞭化の回避に役立つべく省略されている。
【００１３】
本明細書において使用される用語は、特定の態様を説明するためだけのものであり、本発明の範囲を限定することが意図されるものではない。
【００１４】
「例示的」という語は、本明細書では「例、事例、または例示としての役割を果たすこと」を意味するために使用される。「例示的」として本明細書で説明するいずれの態様も、必ずしも他の態様よりも好ましいか、または有利であると解釈されるべきではない。同様に、「本発明の態様」という用語は、本発明のすべての実施形態が、説明する特徴、利点、または動作モードを含むことを必要としない。
【００１５】
本明細書で使用する単数形「1つの(a)」、「1つの(an)」、および「その(the)」は、文脈が特に明確に示さない限り、複数形も含むものとする。本明細書で使用するとき、「備える(comprises)」、「備えている(comprising)」、「含む(includes)」、および/または「含んでいる(including)」という用語は、述べられた特徴、整数、ステップ、動作、要素、および/または構成要素の存在を明示するが、1つまたは複数の他の特徴、整数、ステップ、動作、要素、構成要素、および/またはそれらのグループの存在または追加を排除するものではないことが理解されよう。
【００１６】
いくつかの態様が、たとえば、設計および製造の様々なプロセスにおける、またはそれに関連する動作およびステップに関して説明される。実例において明示的に別途記載されている場合、または特定の文脈から明らかな場合を除いて、そのような動作およびステップの記載された順序は例示の目的に過ぎず、様々な例示的な態様による実施において適用され得る動作またはステップの順序を必ずしも限定するものではないことが理解されよう。
【００１７】
また、流れ図を参照して、様々なプロセスにおける動作が説明される。流れ図は、必ずしも1つのブロックによって示される動作が終了することを意味するものではなく、別のブロックによって示される動作の開始時に継続できないことを意味するものでもないことが理解されよう。
【００１８】
いくつかの態様は、たとえば、コンピューティングデバイスまたはコンピューティングデバイスの要素によって実行されるか、またはその制御下で実行され得る、例示的な動作、ステップ、動作のアクションおよびシーケンス、ステップ、ならびにアクションに関して説明される。本開示を読めば、そのような動作、ステップ、アクション、シーケンス、およびそれらの他の組合せは、特定の回路(たとえば、特定用途向け集積回路(ASIC))によって、またはその制御下で、1つまたは複数のプロセッサによって実行されるプログラム命令によって、あるいは両方の組合せによって実行され得ることが当業者によって理解されよう。
【００１９】
したがって、操作、ステップ、アクション、シーケンスおよびそれらの他の組合せは、実行されると、関連するプロセッサに、本明細書において説明されている操作、ステップ、アクション、シーケンスおよび他の組合せを直接または間接的に実施させることができる対応するセットのコンピュータ命令が記憶された任意の形態のコンピュータ可読記憶媒体内で完全に具体化することができることは、そのような当業者には理解されよう。したがって本発明の様々な態様は、多くの異なる形態で具体化することができ、それらのすべては、特許請求される主題の範囲内であることが企図されている。
【００２０】
図1は、様々な態様による適応メモリアクセスモードプロセッサ100の1つの例の1つの機能ブロック図を示す。図1のブロックは、論理関数を表し、そのような関数を実施するハードウェアアーキテクチャまたは配置を限定しないことは理解されよう。簡潔のために、「適応メモリアクセスモード」という語句は、本明細書では「APMA」と略記する。「APMA」は、本明細書では、「適応メモリアクセスモード」の略語である以外の意味を持たないことは理解されよう。
【００２１】
図1を参照すると、APMAプロセッサ100は、たとえば、ARM(商標)または他の同様のアーキテクチャのマイクロプロセッサコア、またはコンピュータ実行可能命令(図1に図示せず)を実行することができる任意の他のプログラマブルステートマシンであってもよい、命令実行回路(以下では「プロセッサ」)102を含むことができる。プロセッサ102用のコンピュータ実行可能命令は、たとえば、プロセッサ102に密結合されたローカルメモリ106、およびたとえばバス104を介して接続される場合があるリモートメモリ108を含む、メモリリソースに記憶されてもよい。「ローカルメモリ」106および「リモートメモリ」108の文脈での「ローカル」および「リモート」は、機能的近接性の意味を含むことができ、「ローカルメモリ」および「リモートメモリ」106のいずれも、プロセッサ102からそれぞれより近くまたはより遠くに位置していないことは理解されよう。たとえば、ローカルメモリ106およびリモートメモリ108は、プロセッサ102から等距離であってもよいが、ローカルメモリ106は、たとえば専用バス(図1に特に図示せず)を介してプロセッサ102に結合されてもよい。
【００２２】
図1を参照すると、一態様では、ローカルメモリ106およびリモートメモリ108のアドレス指定は、トランスレーションルックアサイドバッファ(TLB)110を介したものとすることができる。TLB110は、複数の仮想ページ変換エントリ150を記憶するように構成された連想メモリ(CAM:content-addressable memory)(図1では別個に図示せず)を含んでもよい。一態様では、仮想ページ変換エントリ150は、従来の技法に従って、仮想アドレス(図1に見ることができるが、別個に番号付けせず)と、物理アドレス(図1に見ることができるが、別個に番号付けせず)とを含んでもよい。仮想ページ変換エントリ150は、一態様では、仮想ページエントリ内の物理アドレスがローカル(たとえば、ローカルメモリ106)にあるか、それとも非ローカルメモリ(たとえば、リモートメモリ108)にあるかを示すローカル/非ローカルフラグを保持する「ローカル/非ローカル」フラグフィールド152をさらに含んでもよい。ローカル/非ローカルフラグフィールド152以外は、TLB110の構造および動作は、知られている従来のTLB110技法に従うものとすることができ、したがって、さらなる詳細な説明を省略する。
【００２３】
一態様では、TLB110に追加して、またはその代わりに、プロセッサ102は、プロセッサ102からバス104への代替論理パス112によって表されるように、直接アドレス生成能力、すなわち、物理アドレスの直接出力を有してもよい。
【００２４】
APMAプロセッサ100は、一態様では、APMAプロセッサ100がそのローカルメモリ(以下では「LP」として参照する)アクセスモードである、またはその非ローカルメモリ(以下では「NP」として参照する)アクセスモードであることを示すフラグを記憶するように割り当てられる、または構成される場合があるレジスタ114を含んでもよい。レジスタ114は、以下では「メモリアクセスモードレジスタ」114と呼ぶ。フラグは、「メモリアクセスモードフラグ」と呼ぶことがある。
【００２５】
一態様では、APMAプロセッサ100は、LP/NPルールベースのスイッチモジュール116を含んでもよい。LP/NPルールベースのスイッチモジュール116は、様々な態様により、プロセッサ102による動作、たとえば、メモリアクセスを監視し、LPアクセスモードとNPアクセスモードとの間でAPMAプロセッサを選択的に切り替えるために監視にLP/NP切替えルールを適用するように構成することができる。LP/NPルールベースのスイッチモジュール116は、他の特徴および利点として、コマンドベースのまたは他の特定のイベント(たとえば、アクティビティタイムアウト)制御の切替えだけを使用して利用可能ではない適応性を提供してもよい。
【００２６】
一態様では、LP/NPルールベースのスイッチモジュール116は、バス104上のメモリアクセスを検出し、アクセスがローカルメモリ(たとえば、ローカルメモリ106)に対するものであるか、それとも非ローカルメモリ(たとえば、リモートメモリ108)に対するものであるかを決定するように構成されたアクセス検出およびローカル/非ローカルマップ118を含んでもよい。LP/NPルールベースのスイッチモジュール116は、加えて、アクセス検出およびローカル/非ローカルマップ118によって検出されたメモリアクセスにタイムスタンプを適用するように構成されたアクセスイベントタイマ120を含んでもよい。1つの代替態様では、アクセス検出およびローカル/非ローカルマップ118は、仮想ページ変換エントリ150のローカル/非ローカルフィールド152中のフラグなどの、フラグを受け取ることによって、アクセスがローカルメモリに対するものであるか、それとも非ローカルメモリに対するものであるかを決定するように構成することができる。
【００２７】
図1を参照すると、LP/NPルールベースのスイッチモジュール116は、メモリアクセス履歴/統計レコード122を含んでもよく、メモリアクセス履歴/統計レコード122は、メモリアクセス履歴(図1には明示せず)およびメモリアクセス統計(図1には明示せず)を記憶するように構成されてもよい。メモリアクセス履歴/統計レコード122に記憶された例示的なメモリアクセス履歴は、たとえば、ローカル/非ローカルマップ118によって検出され、アクセスイベントタイマ120によってタイムスタンプされたメモリアクセスのレコードを含むことができる。メモリアクセス履歴/統計レコード122に記憶されたメモリアクセス統計値は、APMA102のメモリアクセスモードの好ましい切替えと相関する統計パラメータをさらに含んでもよい。メモリアクセス履歴/統計レコード122は、たとえば、ローカル/非ローカルマップ118およびアクセスイベントタイマ120によって検出されるメモリアクセスのスライディングウィンドウ履歴に基づく、またはこれを含むもしくは反映してもよい。一態様では、LP/NPルールベースのスイッチモジュール116、または他の論理は、メモリアクセスの特性およびメトリクスを決定し、それに応じてメモリアクセス履歴/統計レコード122を更新するように構成されてもよい。そのような特性およびメトリクスの例は、たとえば、限定はしないが、メモリアクセスの頻度および量、ならびにメモリアクセスがローカルまたは非ローカルメモリに対するものである相対量および相対度数を含むことができる。さらなる態様では、LP/NPルールベースのスイッチモジュール116は、メモリアクセスの上述のスライディングウィンドウ履歴、メモリアクセスの特性およびメトリクスの実行計算の代わりに、またはこれらに加えて、履歴/統計レコード122を維持管理するように構成されてもよい。
【００２８】
図1を参照すると、一態様では、LP/NPルールベースのスイッチモジュール116は、NP/LP切替えルールを記憶することに割り当てられた、または専用のストレージリソースを含んでもよい。図1は、そのようなストレージリソースの1つの例として、NP/LP切替えルールストレージ124を示す。一態様では、NP/LP切替えルールストレージ124は、NPからLPへの切替えルールを記憶するように構成することができる。さらなる態様では、NP/LP切替えルールストレージ124は、LPからNPへの切替えルールを記憶するように構成することができる。NP/LP切替えルールストレージ124によって記憶されるNPからLPへの切替えルール、および含まれる場合はLPからNPへの切替えルールの構成は、アプリケーション特有であってもよいことは理解されよう。たとえば、一態様では、NPからLPへの切替えルールは、アクティビティタイムアウトルールを含んでもよい。アクティビティタイムアウトルールは、たとえば、メモリアクセスのない連続する区間が所与のタイムアウト継続時間を超えた場合、NPモードからLPモードに切り替えるようにLP/NPルールベースのスイッチモジュール116を規定してもよい(図1には明示せず)。そのような区間を監視する機能が、アクセスイベントタイマ120に含まれてもよい。アクティビティタイムアウトルールは、採用される場合があるNPからLPへの切替えルールの1つの例にすぎない。当業者は、本開示を読んだ後に特定の適用例に直面すると、過度の実験なしにその特定の適用例に適合されるように、様々な代替的および追加的なNPからLPへの切替えルールまたはLPからNPへの切替えルールを容易に構成することができる。したがって特定のNP-LP切替えルールについてのさらなる詳細な説明は省略する。
【００２９】
引き続き図1を参照すると、一態様では、LP/NPルールベースのスイッチモジュール116は、NP/LP切替え決定論理126を含むことができる。一態様では、NP/LP切替え決定論理126は、メモリアクセス履歴に、またはメモリアクセス統計値に、または両方に切替えルールを適用すると、または適用することに少なくとも部分的に基づいて、APMAプロセッサ100のアクセスモードを、NPモードおよびLPモードのうちの一方からこれらのアクセスモードのうちの他方に切り替えるように構成することができる。一例では、NP/LP切替え決定論理126は、一態様では、NP/LP切替えルールストレージ124に記憶されたNP-LP切替えルールを、メモリアクセス履歴/統計レコード122に維持管理されているメモリアクセス履歴、またはメモリアクセス統計値、または両方に適用するように構成することができる。関係する態様では、NP/LP切替え決定論理126は、メモリアクセスの特性およびメトリクスが切替え決定しきい値(図1では別個に表示せず)を満たすと決定すると、または決定することに少なくとも部分的に基づいて、APMAプロセッサ100のアクセスモードを、NPモードおよびLPモードのうちの一方からこれらのアクセスモードのうちの他方に切り替えるように構成することができる。切替え決定しきい値は、たとえば、NP/LP切替えルールストレージ124に記憶されたNP-LP切替えルールによって確立されてもよい。一態様では、NP/LP切替え決定論理126は、切替え後の(switched-to)アクセスモードを示すために、アクセスモードレジスタ114にメモリアクセスモードフラグを設定することを含むように構成することができる。関係する態様では、NP/LP切替え決定論理126は、アクセスモードレジスタ114からメモリアクセスモードフラグを受け取る、またはアクセスモードを識別する他の情報を受け取るように構成されてもよい。さらなる態様では、NP/LP切替え決定論理126または他の論理(図1では必ずしも表示せず)は、たとえば、アクセスモードレジスタ114内のメモリアクセスモードフラグに基づいて、LPモードで動作しているときLPからNPへの切替えルールを、NPモードで動作しているときNPからLPへの切替えルールを、提供されるまたは選択するように構成されてもよい。一態様では、選択は、たとえば、アクセスモードレジスタ114内のメモリアクセスモードフラグに基づいて、NP/LP切替えルールストレージ124からとなるよう構成することができる。
【００３０】
一態様では、LP/NPルールベースの切替えモジュール116は、自動的なルールベースのLPからNPアクセスモード切替えなしの、自動的なルールベースのNPからLPへのアクセスモード切替えを提供するように構成されてもよい。別の態様では、LP/NPルールベースの切替えモジュール116は、自動的なルールベースのNPからLPアクセスモード切替えなしの、自動的なルールベースのLPからNPへのアクセスモード切替えを提供するように構成されてもよい。別の態様では、LP/NPルールベースの切替えモジュール116は、自動的なルールベースのNPからLPへの切替えと、自動的なルールベースのLPからNPへの切替えの両方を提供するように構成されてもよい。
【００３１】
一態様では、NP/LP切替え決定論理126は、外部コマンド、たとえば、図1に見ることができる外部モードスイッチコマンド127を受け取るように構成することができる。外部モードスイッチコマンド127は、たとえば、NP/LP切替え決定論理126をLPまたはNPアクセスモードのうちの特定の一方に切り替えるためのコマンド(図1では別個に表示せず)を含んでもよい。外部モード切替えコマンド127は、たとえば、NP/LP切替え決定論理126に、メモリアクセス履歴/統計レコード122にかかわらず現在のLPまたはNPアクセスモードを維持するよう命令するコマンド(図1では別個に表示せず)を含んでもよい。
【００３２】
一態様では、NP/LP切替えルールストレージ124は、NPからLPへの切替えルール、またはLPからNPへの切替えルール、または両方が、たとえば、プロセッサ102によってプログラム可能とすることができるように構成されてもよい。さらなる態様では、NP/LP切替えルールストレージ124は、図1に示す例示的な「NP-LPルール更新」128など、外部コマンドによってプログラム可能であるように構成されてもよい。NP/LP切替えルールストレージ124の上記で説明したプログラマビリティ特性に追加するものまたは代わるものである場合がある、一態様では、NPからLPへの切替えルール、またはLPからNPへの切替えルール、または両方は、製造時に導入されてもよい。
【００３３】
LP/NPルールベースの切替えモジュール116の上記で説明したブロックは、一連の構成要素アクションおよび例示的な相互依存として例示的な動作を説明するために、別個のブロックとして図1に図式的に表している。別個のブロックとしての図1の表現は、ハードウェアもしくはハードウェア-ソフトウェア実装の組合せの、LP/NPルールベースの切替えモジュール116の、またはAPMAプロセッサ100の任意の他のブロックのアーキテクチャを限定するものではないことは理解されよう。たとえば、一態様では、プロセッサ102は、LP/NPルールベースの切替えモジュール116の説明したブロックのすべて、または様々な組合せおよび部分的な組合せを実装することができる回路(図1には明示せず)を含むように構成されてもよい。
【００３４】
図2は、1つまたは複数の態様による、NPモードとLPモードとの間で切り替える1つのプロセスにおいて、図1のAPMAプロセッサ100に関して説明する、例示的な動作の1つのフロー200である。図1のブロック概略図に関する、フロー200の説明は、フロー200の動作をAPMAプロセッサ100、または任意の他の特定のプロセッサに限定するものではないことは理解されよう。
【００３５】
APMAプロセッサ100の202における開始状態はNPモードであると仮定して、フロー200について説明する。フロー200は、204に進み、たとえば、バス104上で、たとえば、ローカルメモリ106またはリモートメモリ108の一方にアクセスするためのアドレスを生成することができる。204においてアドレスを生成する際の動作は、たとえば、プロセッサ102が仮想アドレスを生成すること、TLB110が一致する仮想ページ変換エントリ150を見つけること、およびTLB110が対応する物理アドレスをバス104上に配置することを含んでもよい。しかしながら、TLB110動作は、204においてアドレスを生成することの一例にすぎない。例示として、204においてアドレスを生成することは、プロセッサ102が物理アドレスを直接生成すること(たとえば、図1の代替論理パス112)と、それをバス104上に配置することとを含む場合がある。
【００３６】
204においてメモリアドレスを生成すると、フロー200は、2つのフローパスに沿って進んでもよい。フローパスの一方は、204において生成されたアドレスを使用して、206においてメモリ(ローカルメモリ106およびリモートメモリ108のうちの一方)にアクセスすること、次いで別のメモリアドレスを生成するために204に戻ることを含むことができる。2つのフローパスのうちの他方は、204においてアドレスを生成した後に、204において生成されたアドレスに関連する206におけるアクセスを208において反映するためのメモリアクセスの監視、続いて210においてNPからLPへの切替えルールを更新された監視に適用することを含むことができる。フロー200は、次いで212において、監視結果にNPからLPへの切替えルールを210において適用すると、所与のNPからLPへの切替え条件またはしきい値が満たされることを示すかどうかを決定してもよい。一態様では、これは、複数の所与のNPからLPへの切替え条件もしくはしきい値のうちのいずれかを満たすという論理"OR"、または条件もしくはしきい値、もしくは両方を満たすという積(conjunction)に適合する論理""AND"である。一態様では、NPからLPへの切替え条件またはしきい値は、NPからLPへの切替えルールに統合されてもよい。212において、NPからLPへの切替え条件またはしきい値は満たされていないと決定すると、フローは、202においてSTARTに戻ることができる。212において、1つまたは複数のNPからLPへの切替え条件またはしきい値は満たされていると決定すると、フロー200は、YESで示すように、決定212から214に進み、APMAプロセッサ100をNPモードからLPモードに切り替えてもよい。一態様では、APMAプロセッサ100をNPモードからLPモードに切り替える際の動作は、切替えを反映するために、モードレジスタを設定すること、たとえば、アクセスモードレジスタ114にアクセスモードフラグを設定することを含むことができる。
【００３７】
引き続き図2を参照すると、一態様では、APMAプロセッサ100が214においてLPモードに切り替えた後に、216においてメモリアクセスをさらに監視する場合がある。図1および図2を参照すると、一態様では、LPモードに切り替えると、APMAプロセッサ100によるメモリアクセスは、ローカルメモリ106に限定されてもよい。216における監視の構成に関して、一態様では、監視は、APMAプロセッサ100がもとのNPモードへの切替えを要求する、または切替えからシステム利益を得られる確率と相関する、経験的データから決定される、またはわかるLPモードのメモリアクセスの特性を検出するように構成されてもよい。
【００３８】
一態様では、たとえば、216におけるメモリアクセスの監視を更新すること(図2では別個に表示せず)に関連して、フローは、218に進み、216における監視、APMAプロセッサ100がNPモードへの切替えを要求する確率に基づいて、推定の動作を実行してもよい。フロー200は、次いで、220に進み、218において推定された確率が、APMAプロセッサ100をNPモードに切り替えるための所与のしきい値を満たすかどうかを決定してもよい。一態様では、220からのYES分岐で示されるように、220における動作が、218において推定された確率が所与のしきい値を満たすと決定する場合、フロー200は222に進み、APMAプロセッサ100をNPモードに切り替えてもよい。222における切替えの後に、フローは、202におけるSTARTに戻ることができる。一方、220における動作が、218において推定された確率は所与のしきい値を満たさないと決定する場合、フロー200は216に戻り、LPモードのメモリアクセスを監視することを続けてもよい。
【００３９】
図2を参照すると、一態様では、208におけるメモリアクセス動作の監視は、たとえば、204において生成されたアドレスはローカルメモリ(たとえば、ローカルメモリ106)に対するものであるか、それとも非ローカルメモリ(たとえば、リモートメモリ108)に対するものであるかを224において決定することを含んでもよい。一態様では、224における決定は、図1のアクセス検出およびローカル/非ローカルマップ118に関して説明したような、ローカル/非ローカルマッピングによって実行されてもよい。別の態様では、224における決定は、メモリロケーションフラグ、たとえば、204において生成されたアドレスを与えられてもよい、上記で説明したローカル/非ローカルフラグフィールド152を使用してもよい。一態様では、208における監視の際の動作は、204において生成されたアドレスに関連するアクセスを、226においてタイムスタンプすることをさらに含むことができる。タイムスタンピングは、たとえば、図1のLP/NPルールベースの切替えモジュール116のアクセスイベントタイマ120によって実行されてもよい。
【００４０】
引き続き図2を参照すると、208における監視の際の動作は、204において生成されたアドレスに関連するアクセスを反映するために、アクセス履歴/統計レコードを228において更新することをさらに含んでもよい。228において更新することは、206におけるアクセスがローカルメモリに対するものであるか、それとも非ローカルメモリに対するものであるかを反映してもよく、一態様では、226におけるタイムスタンプを反映してもよい。228におけるアクセス履歴/統計レコードの更新は、たとえば、メモリアクセス履歴/統計レコード122に、メモリアクセス履歴、またはアクセス統計値、または両方の更新を含んでもよい。一態様では、228におけるアクセス履歴/統計レコードの更新は、メモリアクセス履歴/統計レコード122に関して説明したように、メモリアクセスの頻度および量、ならびにメモリアクセスがローカルもしくは非ローカルメモリに対するものである相対量および相対度数を更新することを含むことができる。
【００４１】
一態様では、208における監視の際の動作は、アドレスが生成されなかった区間を反映するために更新することを含んでもよい。たとえば、230において、タイムアウトタイマが、直近のメモリアクセスから所与のタイムアウトが経過したという通知で、アクセス履歴/統計レコードを更新してもよい。図1を参照すると、230におけるタイムアウトタイマの動作は、たとえば、アクセスイベントタイマ120のタイマ機能(図1では別個に表示せず)によって実行されてもよい。一態様では、224におけるタイムアウトタイマは、非ローカルアドレスの204における生成に関してタイムアウトを決定するように構成されてもよい。たとえば、230におけるタイムアウトタイマは、224において直近の非ローカルアクセスが検出されてから所与のタイムアウトが経過すると、228におけるアクセス履歴/統計レコードを更新するように構成されてもよい。この機能は、たとえば、プロセッサ102上のスレッドが非ローカルメモリへのアクセスを要求しなかった期間を検出することができる。タイムアウトが発生する例は、限定はしないが、スマートフォンが使用または採用されていない区間、たとえば、通知プッシュの受信(receipt of notice push)を含む。別の態様では、230におけるタイムアウトタイマの動作は、非ローカルメモリのアクセスのない所与の継続時間を検出すると、APMAプロセッサ100をLPモードに直接切り替えるように構成されてもよい。たとえば、図1を参照すると、アクセスイベントタイマ120からLP/NP切替え決定論理126へ、ダイレクトタイムアウト通知ライン(図1には明示せず)が設けられてもよい。
【００４２】
図3は、本明細書で説明するように、図1のAPMAプロセッサ100を参照して説明した特徴および機能を備えた装置をサポートまたは提供するように構成することができる、パーソナル通信およびコンピューティングデバイス300の一例を示す。図3を参照すると、パーソナル通信およびコンピューティングデバイス300は、システムバス302と、システムバス302に結合された1つまたは複数のCPU304とを含むことができる。CPU304は、たとえば、1つまたは複数のプロセッサ306と、1つまたは複数のキャッシュメモリ308と備えてもよい。プロセッサ306は、たとえば、限定はしないが、1つまたは複数のARM型処理デバイス(図3では別個に表示せず)などの、1つまたは複数のプログラマブルコンピューティングデバイスによって実装されてもよい。プロセッサ306は、マスタデバイスとして実行することが可能であってもよい。プロセッサ306は、たとえば、システムバス302を通じて、様々なマスタデバイスおよびスレーブデバイスに相互結合されてもよい。CPU304は、従来の通信プロトコルに従って、システムバス302を介してアドレス情報、制御情報、およびデータ情報を交換することによって、これらの他のデバイスと通信してもよい。図3には示されていないが、複数のシステムバス302が提供されてもよい。複数のシステムバス302を有する例では、各システムバス302は異なる構造を構成してもよい。
【００４３】
図3を参照すると、CPU304は、スレーブデバイスの一例として、システムメモリ312のメモリコントローラ310にバストランザクション要求を通信してもよい。図1および図3を参照すると、一態様では、CPU304は、図1のプロセッサ102に対応してもよい。CPU304は、プロセッサ102、ローカルメモリ106、およびLP/NPルールベースのスイッチモジュール116を実装している回路(図3には明示せず)および/またはコンピュータ実行可能コード(図3には明示せず)を含むように構成されてもよい。メモリシステム312は、リモートメモリ108を実装する、またはその一部分を形成してもよい。
【００４４】
図3を参照すると、他のマスタデバイスおよびスレーブデバイスの例は、1つまたは複数の入力デバイス314、1つまたは複数の出力デバイス316、1つまたは複数のネットワークインターフェースデバイス318、ならびに1つまたは複数のディスプレイコントローラ320を含むことができる。入力デバイス314は、使用される場合、限定はしないが、入力キー、スイッチ、音声プロセッサなどを含む任意のタイプの入力バイスを含むことができる。出力デバイス316は、使用される場合、限定はしないが、オーディオ、ビデオ、他の視覚インジケータなどを含む任意のタイプの出力デバイスを含むことができる。ネットワークインターフェースデバイス318は、使用される場合、ネットワーク322への、またはネットワーク322からのデータの交換を可能にするように構成された任意のタイプのネットワークインターフェースデバイスとすることができる。ネットワーク322は、限定はしないが、ワイヤードまたはワイヤレスネットワーク、プライベートまたはパブリックネットワーク、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WLAN)、およびインターネットを含む任意のタイプのネットワークとすることができる。ネットワークインターフェースデバイス318は、所望の任意のタイプの通信プロトコルをサポートするように構成することができる。
【００４５】
引き続き図3を参照すると、CPU304はまた、1つまたは複数のディスプレイ324に送信される情報を制御するために、システムバス302を介してディスプレイコントローラ320にアクセスするように構成されてもよい。ディスプレイコントローラ320は、たとえば、1つまたは複数のビデオプロセッサ326を介して表示されるべき情報をディスプレイ324に送ってもよい。ビデオプロセッサ326は、たとえば、ディスプレイ324に適したフォーマットに表示されるべき情報を処理してもよい。ディスプレイ324は、使用される場合、たとえば、アクティブまたはパッシブ液晶ディスプレイ(LCD)、プラズマディスプレイ、およびブラウン管(CRT)などの任意のタイプのディスプレイを含むことができる。
【００４６】
上記で開示したデバイスおよび機能は、コンピュータ可読媒体上に記憶されたコンピュータファイル(たとえば、RTL、GDSII、GERBERなど)に設計および構成されてもよい。いくつかまたはすべてのそのようなファイルは、そのようなファイルに基づいてデバイスを製造する製造者に提供されてもよい。結果として得られる製品は、半導体ウェハを含み、次いで、半導体ウェハは半導体ダイに切断され、半導体チップにパッケージングされる。次いで、半導体チップは、上記で説明したようなデバイスに使用される。
【００４７】
情報および信号は、多様な異なる技術および技法のいずれかを使用して表されてもよいことは、当業者には諒解されよう。たとえば、上の説明全体にわたって参照される場合があるデータ、命令、コマンド、情報、信号、ビット、シンボル、およびチップは、電圧、電流、電磁波、磁場もしくは磁性粒子、光場もしくは光学粒子、またはそれらの任意の組合せによって表されてもよい。
【００４８】
さらに、本明細書内で開示される諸態様に関連して説明される様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップが、電子ハードウェア、コンピュータソフトウェア、またはその両方の組合せとして実施されてもよいことが当業者には諒解されよう。コンピュータソフトウェアは、プロセッサによって実行されると、プロセッサに説明する態様に従ってステップおよび関連する動作を実行させることができる命令を含む非一時的コンピュータ可読媒体を含んでもよい。ハードウェアとソフトウェアの互換性を明確に示すために、様々な例示的な構成要素、ブロック、モジュール、回路、およびステップについて、概してそれらの機能に関して上記で説明してきた。そのような機能がハードウェアとして実装されるか、ソフトウェアとして実装されるかは、特定の用途およびシステム全体に課される設計制約によって決まる。当業者は説明した機能を特定の適用例ごとに様々な方法で実施する場合があるが、そのような実装決定は、本発明の範囲からの逸脱を引き起こすと解釈されるべきではない。
【００４９】
本明細書で説明した様々な方法、シーケンス、および/またはアルゴリズムは、直接ハードウェアで、プロセッサによって実行されるソフトウェアモジュールで、またはその2つの組合せで具現化されてもよい。ソフトウェアモジュールは、RAMメモリ、フラッシュメモリ、ROMメモリ、EPROMメモリ、EEPROMメモリ、レジスタ、ハードディスク、リムーバブルディスク、CD-ROM、または当技術分野で知られているその他任意の形態の記憶媒体内に存在してもよい。例示的な記憶媒体は、プロセッサが記憶媒体から情報を読み取ること、および記憶媒体に情報を書き込むことができるようにプロセッサに結合される。代替として、記憶媒体は、プロセッサに一体化される場合がある。
【００５０】
上記の開示は、本発明の説明的な例および適用例を示したものであるが、添付の特許請求の範囲によって定義される本発明の範囲から逸脱することなく、本明細書において様々な変更および修正が加えられてもよいことに留意されたい。請求する方法に記載する機能、ステップ、および/または行為は、特定の順序で実行される必要はない。さらに、特徴は、単数形で説明または請求されていることがあるが、単数形への限定が明示的に述べられていない限り、複数形が想定される。
【符号の説明】
【００５１】
100  適応メモリアクセスモード(APMA)プロセッサ
102  プロセッサ
104  バス
106  ローカルメモリ
108  リモートメモリ
110  トランスレーションルックアサイドバッファ(TLB)
112  代替論理パス
114  アクセスモードレジスタ
116  スイッチモジュール
118  ローカル/非ローカルマップ
120  アクセスイベントタイマ
122  メモリアクセス履歴/統計レコード
124  NP/LP切替えルールストレージ
126  NP/LP切替え決定論理
127  外部モードスイッチコマンド
128  NP-LPルール更新
150  仮想ページ変換エントリ
152  ローカル/非ローカルフラグフィールド
300  パーソナル通信およびコンピューティングデバイス
302  システムバス
304  CPU
306  プロセッサ
308  キャッシュメモリ
310  メモリコントローラ
312  システムメモリ
314  入力デバイス
316  出力デバイス
318  ネットワークインターフェースデバイス
320  ディスプレイコントローラ
322  ネットワーク
324  ディスプレイ
326  ビデオプロセッサ
【図１】
2018506122.tif 000003
【図２】
2018506122.tif 000004
【図３】
2018506122.tif 000005
【手続補正書】
【提出日】平成29年8月22日(2017.8.22)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサのメモリアクセスモードを切り替える方法であって、
メモリのアクセスを監視するステップであって、前記メモリの前記アクセスが前記メモリの物理アドレスに基づくものであり、監視の結果が、前記アクセスがローカルメモリに対するものであるか、それとも非ローカルメモリに対するものであるかを示す、監視するステップと、
メモリの前記アクセスを前記監視するステップに応答して前記プロセッサを、ローカルメモリアクセス(LP)モードおよび非ローカルメモリアクセス(NP)モードのうちの一方から前記LPモードおよび前記NPモードのうちの他方に切り替えるステップと
を含み、
前記プロセッサが前記LPモードであるとき、アクセスが前記ローカルメモリに制約され、前記プロセッサが前記NPモードであるとき、アクセスが前記ローカルメモリと前記非ローカルメモリの両方で可能にされる、方法。
【請求項２】
メモリの前記アクセスを前記監視するステップが、メモリアクセス履歴を更新するステップを含む、請求項1に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項３】
前記プロセッサを切り替えるステップが、切替えルールを前記メモリアクセス履歴に適用することに少なくとも部分的に基づく、請求項2に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項４】
前記切替えルールを前記メモリアクセス履歴に適用することが、前記切替えルールをメモリから検索することを含む、請求項3に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項５】
前記方法が、前記切替えルールを更新するステップをさらに含む、請求項4に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項６】
メモリの前記アクセスを監視するステップが、タイムスタンプをメモリのアクセスに適用するステップを含み、前記メモリアクセス履歴が前記タイムスタンプを反映する、請求項2に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項７】
メモリの前記アクセスを監視するステップが、区間を検出するステップを含み、
前記区間には、前記ローカルメモリのアクセスがない、または前記非ローカルメモリのアクセスがない、またはその両方である、
請求項1に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項８】
前記プロセッサを前記NPモードおよびLPモードのうちの他方に切り替えるステップが、区間を前記検出するステップの結果に少なくとも部分的に基づく、請求項7に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項９】
前記プロセッサを前記NPモードおよび前記LPモードのうちの他方に切り替えるステップが、所与のタイムアウト制限を超える区間を示す区間を前記検出するステップの結果に少なくとも部分的に基づく、請求項7に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１０】
前記メモリのアクセスなしで前記所与のタイムアウト継続時間を超える区間を検出することに応答して、ダイレクトタイムアウト通知を生成するステップと、
前記ダイレクトタイムアウト通知に応答して前記プロセッサを前記NPモードから前記LPモードに切り替えるステップと
をさらに含む、請求項9に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１１】
前記プロセッサが前記NPモードであるとき、メモリの前記アクセスを監視するステップが、メモリの前記アクセスが前記ローカルメモリに対するものであるか、それとも前記非ローカルメモリに対するものであるかを決定するステップと、決定の結果を示すためにメモリアクセス履歴レコードを更新するステップとを含む、請求項1に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１２】
前記プロセッサを前記NPモードから前記LPモードに切り替えるステップが、NPからLPへの切替えルールを前記メモリアクセス履歴レコードに適用することに少なくとも部分的に基づく、請求項11に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１３】
メモリに前記アクセスするステップが、アドレス、および前記アドレスに関連するメモリロケーションフラグを生成するステップを含み、前記メモリロケーションフラグが、前記アドレスが前記ローカルメモリに対するものであるか、それとも前記非ローカルメモリに対するものであるかを示し、メモリの前記アクセスが、前記ローカルメモリに対するものであるか、それとも前記非ローカルメモリに対するものであるかを前記決定するステップが、前記メモリロケーションフラグに基づく、請求項11に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１４】
前記メモリのアクセスを前記監視することの結果に基づいて、前記プロセッサを前記NPモードおよび前記LPモードのうちの他方に切り替えることを必要とする確率を推定するステップをさらに含み、前記切り替えることが、推定の結果に少なくとも部分的に基づく、
請求項1に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１５】
前記LPモードのとき、前記メモリのアクセスを前記監視することの結果に基づいて、前記プロセッサを前記NPモードに切り替えることを必要とする確率を推定するステップをさらに含み、前記切り替えることが、推定の結果に少なくとも部分的に基づく、
請求項1に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１６】
前記プロセッサを前記LPモードおよび前記NPモードのうちの一方から前記LPモードおよび前記NPモードのうちの他方に切り替えるステップが、前記LPモードおよび前記NPモードのうちのどちらからどちらに前記プロセッサが切り替えられるかを示す値にモードレジスタを設定するステップを含む、請求項1に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１７】
前記LPモードおよび前記NPモードのうちの他方に切り替えるステップが、前記モードレジスタの前記値に基づいて、前記NPモードで動作しているときNPからLPへの切替えルールを、および前記LPモードで動作しているときLPからNPへの切替えルールを、選択された切替えルールとして選択するステップを含み、前記LPモードおよび前記NPモードのうちの他方への前記切替えが、前記選択された切替えルールを前記監視の結果に適用することに少なくとも部分的に基づく、請求項16に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１８】
LPからNPへの切替えルール、またはNPからLPへの切替えルール、または両方を更新するステップをさらに含む、請求項16に記載のプロセッサのメモリアクセスモードを切り替える方法。
【請求項１９】
自動的に、ルールベースでプロセッサのメモリアクセスモードを切り替えるための装置であって、
切替えルールを記憶するように構成され、前記切替えルールが前記プロセッサのアクセスモードを、ローカルメモリアクセス(LP)モードおよび非ローカルメモリアクセス(NP)モードのうちの一方から前記LPモードおよび前記NPモードのうちの他方に切り替えるためのルールを含む、ストレージと、
メモリの物理アドレスに基づいてメモリアクセスの履歴を記録するように構成されたメモリアクセス履歴/統計レコードであって、前記メモリアクセス履歴/統計レコードが、前記プロセッサがメモリにアクセスすることに関連して更新されるように構成され、前記更新が、前記アクセスすることが、ローカルメモリに対するものであるかまたは非ローカルメモリに対するものであるかを反映する、メモリアクセス履歴/統計レコードと、
前記ストレージおよびメモリアクセス履歴レコードに結合され、前記切替え決定論理が、前記切替えルールおよび前記メモリアクセス履歴レコードに少なくとも部分的に基づいて、前記LPモードおよび前記NPモードのうちの一方から前記LPモードおよび前記NPモードのうちの他方に、前記プロセッサの前記アクセスモードを切り替えるように構成される、切替え決定論理と
を含み、
前記プロセッサが前記LPモードであるとき、アクセスが前記ローカルメモリに制約され、前記プロセッサが前記NPモードであるとき、アクセスが前記ローカルメモリと前記非ローカルメモリの両方で可能にされる、装置。
【請求項２０】
ローカル/非ローカルマップをさらに含み、前記ローカル/非ローカルマップが、前記ローカルメモリおよび前記非ローカルメモリにアクセスしている前記プロセッサに関連するアドレスを受け取るように構成され、前記アドレスに応じて、前記アクセスすることが前記ローカルメモリに対するものであるか、それとも前記非ローカルメモリに対するものであるかを決定するようにさらに構成される、請求項19に記載の装置。
【請求項２１】
アクセスイベントタイマをさらに含み、前記アクセスイベントタイマが、前記ローカルメモリの前記プロセッサによるアクセスに、または前記非ローカルメモリの前記プロセッサによるアクセスに、または両方にタイムスタンプを適用し、前記タイムスタンプを反映するために前記メモリアクセス履歴レコードを更新するように構成される、請求項19に記載の装置。
【請求項２２】
前記アクセスイベントタイマが、前記プロセッサによるアクセスのない区間がタイムアウトを超える継続時間を有することに応答してダイレクトタイムアウト通知を生成するように構成される、請求項21に記載の装置。
【請求項２３】
前記切替え決定論理が、前記ダイレクトタイムアウト通知に応答して、前記プロセッサを前記NPモードおよび前記LPモードのうちの一方から前記NPモードおよび前記LPモードのうちの他方に切り替えるようにさらに構成される、請求項22に記載の装置。
【請求項２４】
アクセスイベントタイマが、前記プロセッサが前記NPモードであるとき、前記非ローカルメモリの前記プロセッサによるアクセスのない区間を決定するように構成され、前記区間がタイムアウトを超える継続時間を有することに応答してダイレクトタイムアウト通知を生成するように構成され、前記切替え決定論理が、前記ダイレクトタイムアウト通知に応答して前記プロセッサを前記NPモードから前記LPモードに切り替えるようにさらに構成される、請求項19に記載の装置。
【請求項２５】
前記切替え決定論理が、外部モード切替えコマンドを受け取り、応答して、前記外部モード切替えコマンドに従って前記プロセッサの前記アクセスモードを切り替えるようにさらに構成される、請求項19に記載の装置。
【請求項２６】
自動的に、ルールベースでプロセッサのメモリアクセスモードを切り替えるための装置であって、
メモリのアクセスを監視するための手段であって、前記メモリの前記アクセスが前記メモリの物理アドレスに基づくものであり、監視の結果が、メモリの前記アクセスはローカルメモリに対するものであるか、それとも非ローカルメモリに対するものであるかを示す、手段と、
メモリの前記アクセスを前記監視することに応じて、前記プロセッサを、ローカルメモリアクセスモードおよび非ローカルメモリアクセスモードのうちの一方から前記ローカルメモリアクセスモードおよび前記非ローカルメモリアクセスモードのうちの他方に切り替えるための手段と
を含み、
前記プロセッサが前記ローカルメモリアクセスモードであるとき、アクセスが前記ローカルメモリに制約され、前記プロセッサが前記非ローカルメモリアクセスモードであるとき、アクセスが前記ローカルメモリと前記非ローカルメモリの両方で可能にされる、装置。
【請求項２７】
前記ローカルメモリのアクセス、または前記非ローカルメモリのアクセス、または両方を前記監視することの結果に少なくとも部分的に基づいて、前記プロセッサをLPモードおよびNPモードのうちの他方に切り替えることを必要とする確率を推定するための手段
をさらに含み、
前記LPモードおよび前記NPモードのうちの他方の前記プロセッサを切り替えるための前記手段が、前記推定された確率に少なくとも部分的に基づいて前記切り替えることを実行するように構成される、
請求項26に記載の装置。
【請求項２８】
コードを含む非一時的コンピュータ可読記憶媒体であって、前記コードが、プロセッサによって実行されると、前記プロセッサに、
メモリのアクセスを監視することであって、前記メモリの前記アクセスが物理アドレスに基づくものであり、監視の結果が、メモリの前記アクセスはローカルメモリに対するものであるか、それとも非ローカルメモリに対するものであるかを示す、監視することと、
メモリの前記アクセスを前記監視することに応じて、プロセッサシステムのアクセスモードを、ローカルメモリアクセスモードおよび非ローカルメモリアクセスモードのうちの一方から前記ローカルメモリアクセスモードおよび前記非ローカルメモリアクセスモードのうちの他方に切り替えることと
を行わせ、
前記プロセッサが前記ローカルメモリアクセスモードであるとき、アクセスが前記ローカルメモリに制約され、前記プロセッサが非ローカルメモリアクセスモードであるとき、アクセスが前記ローカルメモリと前記非ローカルメモリの両方で可能にされる、非一時的コンピュータ可読記憶媒体。
【国際調査報告】
2018506122.tif 000006
2018506122.tif 000007
2018506122.tif 000008