JP2018506122A - 適応モードのトランスレーションルックアサイドバッファ検索およびアクセスフォルト - Google Patents

適応モードのトランスレーションルックアサイドバッファ検索およびアクセスフォルト Download PDF

Info

Publication number
JP2018506122A
JP2018506122A JP2017541930A JP2017541930A JP2018506122A JP 2018506122 A JP2018506122 A JP 2018506122A JP 2017541930 A JP2017541930 A JP 2017541930A JP 2017541930 A JP2017541930 A JP 2017541930A JP 2018506122 A JP2018506122 A JP 2018506122A
Authority
JP
Japan
Prior art keywords
mode
switching
processor
memory
memory access
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2017541930A
Other languages
English (en)
Inventor
クリストファー・エドワード・クーブ
エーリヒ・ジェームズ・プロンドケ
ジアジン・ツー
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2018506122A publication Critical patent/JP2018506122A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0634Configuration or reconfiguration of storage systems by changing the state or mode of one or more devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3209Monitoring remote activity, e.g. over telephone lines or network connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1027Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0888Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using selective caching, e.g. bypass
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1028Power efficiency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/50Control mechanisms for virtual memory, cache or TLB
    • G06F2212/502Control mechanisms for virtual memory, cache or TLB using adaptive policy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

メモリのプロセッサアクセスが監視される。監視は、アクセスがローカルメモリまたは非ローカルメモリに対するものであることを識別することを含む。監視に基づいて、プロセッサは、非ローカルメモリアクセスモードからローカルメモリアクセスモードに切り替えられる。

Description

本出願は、概して、プロセッサメモリ管理に関する。
ワイヤレス電話、および携帯情報端末(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 ビデオプロセッサ

Claims (28)

  1. プロセッサのメモリアクセスモードを切り替える方法であって、
    メモリのアクセスを監視するステップであって、監視の結果が、前記アクセスがローカルメモリに対するものであるか、それとも非ローカルメモリに対するものであるかを示す、監視するステップと、
    メモリの前記アクセスを前記監視するステップに応答して前記プロセッサを、ローカルメモリアクセス(LP)モードおよび非ローカルメモリアクセス(NP)モードのうちの一方から前記LPモードおよび前記NPモードのうちの他方に切り替えるステップと
    を含む、方法。
  2. メモリの前記アクセスを前記監視するステップが、メモリアクセス履歴を更新するステップを含む、請求項1に記載のプロセッサのメモリアクセスモードを切り替える方法。
  3. 前記プロセッサを切り替えるステップが、切替えルールを前記メモリアクセス履歴に適用することに少なくとも部分的に基づく、請求項2に記載のプロセッサのメモリアクセスモードを切り替える方法。
  4. 前記切替えルールを前記メモリアクセス履歴に適用することが、前記切替えルールをメモリから検索することを含む、請求項3に記載のプロセッサのメモリアクセスモードを切り替える方法。
  5. 前記方法が、前記切替えルールを更新するステップをさらに含む、請求項4に記載のプロセッサのメモリアクセスモードを切り替える方法。
  6. メモリの前記アクセスを監視するステップが、タイムスタンプをメモリのアクセスに適用するステップを含み、前記メモリアクセス履歴が前記タイムスタンプを反映する、請求項2に記載のプロセッサのメモリアクセスモードを切り替える方法。
  7. メモリの前記アクセスを監視するステップが、区間を検出するステップを含み、前記区間には、前記ローカルメモリのアクセスがない、または前記非ローカルメモリのアクセスがない、またはその両方である、請求項1に記載のプロセッサのメモリアクセスモードを切り替える方法。
  8. 前記プロセッサを前記NPモードおよびLPモードのうちの他方に切り替えるステップが、区間を前記検出するステップの結果に少なくとも部分的に基づく、請求項7に記載のプロセッサのメモリアクセスモードを切り替える方法。
  9. 前記プロセッサを前記NPモードおよび前記LPモードのうちの他方に切り替えるステップが、所与のタイムアウト制限を超える区間を示す区間を前記検出するステップの結果に少なくとも部分的に基づく、請求項7に記載のプロセッサのメモリアクセスモードを切り替える方法。
  10. 前記メモリのアクセスなしで前記所与のタイムアウト継続時間を超える区間を検出することに応答して、ダイレクトタイムアウト通知を生成するステップをさらに含み、前記方法が、前記ダイレクトタイムアウト通知に応答して前記プロセッサを前記NPモードから前記LPモードに切り替えるステップをさらに含む、請求項9に記載のプロセッサのメモリアクセスモードを切り替える方法。
  11. 前記プロセッサが前記NPモードであるとき、メモリの前記アクセスを監視するステップが、メモリの前記アクセスが前記ローカルメモリに対するものであるか、それとも前記非ローカルメモリに対するものであるかを決定するステップと、決定の結果を示すためにメモリアクセス履歴レコードを更新するステップとを含む、請求項1に記載のプロセッサのメモリアクセスモードを切り替える方法。
  12. 前記プロセッサを前記NPモードから前記LPモードに切り替えるステップが、NPからLPへの切替えルールを前記メモリアクセス履歴レコードに適用することに少なくとも部分的に基づく、請求項11に記載のプロセッサのメモリアクセスモードを切り替える方法。
  13. メモリに前記アクセスするステップが、アドレス、および前記アドレスに関連するメモリロケーションフラグを生成するステップを含み、前記メモリロケーションフラグが、前記アドレスが前記ローカルメモリに対するものであるか、それとも前記非ローカルメモリに対するものであるかを示し、メモリの前記アクセスが、前記ローカルメモリに対するものであるか、それとも前記非ローカルメモリに対するものであるかを前記決定するステップが、前記メモリロケーションフラグに基づく、請求項11に記載のプロセッサのメモリアクセスモードを切り替える方法。
  14. 前記メモリのアクセスを前記監視することの結果に基づいて、前記プロセッサを前記NPモードおよび前記LPモードのうちの他方に切り替えることを必要とする確率を推定するステップをさらに含み、前記切り替えることが、推定の結果に少なくとも部分的に基づく、
    請求項1に記載のプロセッサのメモリアクセスモードを切り替える方法。
  15. 前記LPモードのとき、前記メモリのアクセスを前記監視することの結果に基づいて、前記プロセッサを前記NPモードに切り替えることを必要とする確率を推定するステップをさらに含み、前記切り替えることが、推定の結果に少なくとも部分的に基づく、
    請求項1に記載のプロセッサのメモリアクセスモードを切り替える方法。
  16. 前記プロセッサを前記LPモードおよび前記NPモードのうちの一方から前記LPモードおよび前記NPモードのうちの他方に切り替えるステップが、前記LPモードおよび前記NPモードのうちのどちらからどちらに前記プロセッサが切り替えられるかを示す値にモードレジスタを設定するステップを含む、請求項1に記載のプロセッサのメモリアクセスモードを切り替える方法。
  17. 前記LPモードおよび前記NPモードのうちの他方に切り替えるステップが、前記モードレジスタの前記値に基づいて、前記NPモードで動作しているときNPからLPへの切替えルールを、および前記LPモードで動作しているときLPからNPへの切替えルールを、選択された切替えルールとして選択するステップを含み、前記LPモードおよび前記NPモードのうちの他方への前記切替えが、前記選択された切替えルールを前記監視の結果に適用することに少なくとも部分的に基づく、請求項16に記載のプロセッサのメモリアクセスモードを切り替える方法。
  18. LPからNPへの切替えルール、またはNPからLPへの切替えルール、または両方を更新するステップをさらに含む、請求項16に記載のプロセッサのメモリアクセスモードを切り替える方法。
  19. 自動的に、ルールベースでプロセッサのメモリアクセスモードを切り替えるための装置であって、
    切替えルールを記憶するように構成され、前記切替えルールが前記プロセッサのアクセスモードを、ローカルメモリアクセス(LP)モードおよび非ローカルメモリアクセス(NP)モードのうちの一方から前記LPモードおよび前記NPモードのうちの他方に切り替えるためのルールを含む、ストレージと、
    メモリアクセス履歴/統計レコードであって、前記メモリアクセス履歴/統計レコードが、前記プロセッサがメモリにアクセスすることに関連して更新されるように構成され、前記更新が、前記アクセスすることが、ローカルメモリに対するものであるかまたは非ローカルメモリに対するものであるかを反映する、メモリアクセス履歴/統計レコードと、
    前記ストレージおよびメモリアクセス履歴レコードに結合され、前記切替え決定論理が、前記切替えルールおよび前記メモリアクセス履歴レコードに少なくとも部分的に基づいて、前記LPモードおよび前記NPモードのうちの一方から前記LPモードおよび前記NPモードのうちの他方に、前記プロセッサの前記アクセスモードを切り替えるように構成される、切替え決定論理と
    を含む、装置。
  20. ローカル/非ローカルマップをさらに含み、前記ローカル/非ローカルマップが、前記ローカルメモリおよび前記非ローカルメモリにアクセスしている前記プロセッサに関連するアドレスを受け取るように構成され、前記アドレスに応じて、前記アクセスすることが前記ローカルメモリに対するものであるか、それとも前記非ローカルメモリに対するものであるかを決定するようにさらに構成される、請求項19に記載の装置。
  21. アクセスイベントタイマをさらに含み、前記アクセスイベントタイマが、前記ローカルメモリの前記プロセッサによるアクセスに、または前記非ローカルメモリの前記プロセッサによるアクセスに、または両方にタイムスタンプを適用し、前記タイムスタンプを反映するために前記メモリアクセス履歴レコードを更新するように構成される、請求項19に記載の装置。
  22. 前記アクセスイベントタイマが、前記プロセッサによるアクセスのない区間がタイムアウトを超える継続時間を有することに応答してダイレクトタイムアウト通知を生成するように構成される、請求項21に記載の装置。
  23. 前記切替え決定論理が、前記ダイレクトタイムアウト通知に応答して、前記プロセッサを前記NPモードおよび前記LPモードのうちの一方から前記NPモードおよび前記LPモードのうちの他方に切り替えるようにさらに構成される、請求項22に記載の装置。
  24. アクセスイベントタイマが、前記プロセッサが前記NPモードであるとき、前記非ローカルメモリの前記プロセッサによるアクセスのない区間を決定するように構成され、前記区間がタイムアウトを超える継続時間を有することに応答してダイレクトタイムアウト通知を生成するように構成され、前記切替え決定論理が、前記ダイレクトタイムアウト通知に応答して前記プロセッサを前記NPモードから前記LPモードに切り替えるようにさらに構成される、請求項19に記載の装置。
  25. 前記切替え決定論理が、外部モード切替えコマンドを受け取り、応答して、前記外部モード切替えコマンドに従って前記プロセッサの前記アクセスモードを切り替えるようにさらに構成される、請求項19に記載の装置。
  26. 自動的に、ルールベースでプロセッサのメモリアクセスモードを切り替えるための装置であって、
    メモリのアクセスを監視するための手段であって、監視の結果が、メモリの前記アクセスはローカルメモリに対するものであるか、それとも非ローカルメモリに対するものであるかを示す、手段と、
    メモリの前記アクセスを前記監視することに応じて、前記プロセッサを、ローカルメモリアクセスモードおよび非ローカルメモリアクセスモードのうちの一方から前記ローカルメモリアクセスモードおよび前記非ローカルメモリアクセスモードのうちの他方に切り替えるための手段と
    を含む、装置。
  27. 前記ローカルメモリのアクセス、または前記非ローカルメモリのアクセス、または両方を前記監視することの結果に少なくとも部分的に基づいて、前記プロセッサをLPモードおよびNPモードのうちの他方に切り替えることを必要とする確率を推定するための手段
    をさらに含み、
    前記プロセッサを前記LPモードおよび前記NPモードのうちの他方に切り替えるための前記手段が、前記推定された確率に少なくとも部分的に基づいて前記切り替えることを実行するように構成される、
    請求項26に記載の装置。
  28. コードを含む非一時的コンピュータ可読記憶媒体であって、前記コードが、プロセッサによって実行されると、前記プロセッサに、
    メモリのアクセスを監視することであって、監視の結果が、メモリの前記アクセスはローカルメモリに対するものであるか、それとも非ローカルメモリに対するものであるかを示す、監視することと、
    メモリの前記アクセスを前記監視することに応じて、プロセッサシステムのアクセスモードを、ローカルメモリアクセスモードおよび非ローカルメモリアクセスモードのうちの一方から前記ローカルメモリアクセスモードおよび前記非ローカルメモリアクセスモードのうちの他方に切り替えることと
    を行わせる、非一時的コンピュータ可読記憶媒体。
JP2017541930A 2015-02-20 2016-02-01 適応モードのトランスレーションルックアサイドバッファ検索およびアクセスフォルト Pending JP2018506122A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/627,433 US9658793B2 (en) 2015-02-20 2015-02-20 Adaptive mode translation lookaside buffer search and access fault
US14/627,433 2015-02-20
PCT/US2016/015973 WO2016133682A1 (en) 2015-02-20 2016-02-01 Adaptive memory access to local and non-local memories

Publications (1)

Publication Number Publication Date
JP2018506122A true JP2018506122A (ja) 2018-03-01

Family

ID=55447112

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017541930A Pending JP2018506122A (ja) 2015-02-20 2016-02-01 適応モードのトランスレーションルックアサイドバッファ検索およびアクセスフォルト

Country Status (6)

Country Link
US (1) US9658793B2 (ja)
EP (1) EP3230875B1 (ja)
JP (1) JP2018506122A (ja)
CN (1) CN107209721B (ja)
TW (1) TWI617918B (ja)
WO (1) WO2016133682A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9858201B2 (en) * 2015-02-20 2018-01-02 Qualcomm Incorporated Selective translation lookaside buffer search and page fault
US10387336B2 (en) 2017-03-24 2019-08-20 Micron Technology, Inc. Memory protection based on system state
KR20200129776A (ko) * 2019-05-10 2020-11-18 삼성전자주식회사 재전송 공격에 대한 방어책을 포함하는 메모리 시스템의 구동 방법 및 이를 수행하는 메모리 시스템

Family Cites Families (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3012227A (en) * 1956-09-26 1961-12-05 Ibm Signal storage system
US4200915A (en) * 1978-04-05 1980-04-29 Allen-Bradley Company Program loader for programmable controller
JPS58200359A (ja) * 1982-05-18 1983-11-21 Sony Corp メモリ−選択回路
JPS6068441A (ja) * 1983-09-22 1985-04-19 Fujitsu Ltd ワンチツプ・マイクロ・コンピユ−タ
EP0297931B1 (en) * 1987-06-29 1995-12-13 Digital Equipment Corporation Bus adapter unit for digital data processing system
JPH01134546A (ja) * 1987-11-19 1989-05-26 Nec Corp 演算処理装置
US5113511A (en) * 1989-06-02 1992-05-12 Atari Corporation System for dynamically providing predicted high/slow speed accessing memory to a processing unit based on instructions
US5386563A (en) * 1992-10-13 1995-01-31 Advanced Risc Machines Limited Register substitution during exception processing
JPH07302222A (ja) * 1994-05-10 1995-11-14 Sanyo Electric Co Ltd 外部プログラムメモリを有するプロセッサ
US5809563A (en) 1996-11-12 1998-09-15 Institute For The Development Of Emerging Architectures, Llc Method and apparatus utilizing a region based page table walk bit
US5996051A (en) * 1997-04-14 1999-11-30 Advanced Micro Devices, Inc. Communication system which in a first mode supports concurrent memory acceses of a partitioned memory array and in a second mode supports non-concurrent memory accesses to the entire memory array
US6412056B1 (en) 1997-10-01 2002-06-25 Compac Information Technologies Group, Lp Extended translation lookaside buffer with fine-grain state bits
JPH11282746A (ja) * 1998-03-03 1999-10-15 Internatl Business Mach Corp <Ibm> Dramアクセス方法およびdramコントロ−ラ
JP3922859B2 (ja) * 1999-12-28 2007-05-30 株式会社リコー 画像処理装置、画像処理方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
EP1182570A3 (en) 2000-08-21 2004-08-04 Texas Instruments Incorporated TLB with resource ID field
EP1182561B1 (en) 2000-08-21 2011-10-05 Texas Instruments France Cache with block prefetch and DMA
EP1182568A3 (en) 2000-08-21 2004-07-21 Texas Instruments Incorporated TLB operation based on task-id
US6766433B2 (en) * 2001-09-21 2004-07-20 Freescale Semiconductor, Inc. System having user programmable addressing modes and method therefor
JP4166466B2 (ja) * 2001-12-19 2008-10-15 ソニー株式会社 無線通信システム及び無線通信方法、無線通信装置及びその制御方法、並びにコンピュータ・プログラム
US6799257B2 (en) * 2002-02-21 2004-09-28 Intel Corporation Method and apparatus to control memory accesses
US7143203B1 (en) * 2002-04-26 2006-11-28 Advanced Micro Devices, Inc. Storage device control responsive to operational characteristics of a system
US20040064655A1 (en) * 2002-09-27 2004-04-01 Dominic Paulraj Memory access statistics tool
US7146469B2 (en) * 2002-10-24 2006-12-05 Sony Corporation Method, apparatus, and system for improving memory access speed
JP4945053B2 (ja) 2003-03-18 2012-06-06 ルネサスエレクトロニクス株式会社 半導体装置、バスインターフェース装置、およびコンピュータシステム
CN1296837C (zh) * 2003-04-10 2007-01-24 联发科技股份有限公司 存取微处理器外部存储器的方法及单芯片微处理器
BRPI0411824A (pt) * 2003-06-24 2006-08-08 Bosch Gmbh Robert processo para a comutação entre, pelo menos, dois modos de operação de uma unidade de processamento, bem como, unidade de processamento correspondente
US7412581B2 (en) * 2003-10-28 2008-08-12 Renesas Technology America, Inc. Processor for virtual machines and method therefor
JP4547198B2 (ja) * 2004-06-30 2010-09-22 富士通株式会社 演算装置、演算装置の制御方法、プログラム及びコンピュータ読取り可能記録媒体
EP1736887A3 (fr) 2005-05-31 2009-04-22 Stmicroelectronics Sa Repertoire de pages memoire
KR100663864B1 (ko) * 2005-06-16 2007-01-03 엘지전자 주식회사 멀티-코어 프로세서의 프로세서 모드 제어장치 및 방법
CN1908916A (zh) * 2005-08-01 2007-02-07 贺劲 一种基于新型存储层次结构的电子计算机
US7516274B2 (en) 2005-11-15 2009-04-07 Sun Microsystems, Inc. Power conservation via DRAM access reduction
US7958312B2 (en) 2005-11-15 2011-06-07 Oracle America, Inc. Small and power-efficient cache that can provide data for background DMA devices while the processor is in a low-power state
US7653789B2 (en) 2006-02-01 2010-01-26 Sun Microsystems, Inc. Multiprocessor system that supports both coherent and non-coherent memory accesses
US7882307B1 (en) 2006-04-14 2011-02-01 Tilera Corporation Managing cache memory in a parallel processing environment
US20080147977A1 (en) * 2006-07-28 2008-06-19 International Business Machines Corporation Design structure for autonomic mode switching for l2 cache speculative accesses based on l1 cache hit rate
EP2150889A1 (en) * 2007-04-10 2010-02-10 Cambridge Consultants Limited Data processing apparatus
CN100511119C (zh) * 2007-08-03 2009-07-08 东南大学 一种实现片上影子堆栈存储器的方法及其电路
US8601234B2 (en) 2007-11-07 2013-12-03 Qualcomm Incorporated Configurable translation lookaside buffer
US9244855B2 (en) 2007-12-31 2016-01-26 Intel Corporation Method, system, and apparatus for page sizing extension
US8639245B2 (en) * 2009-06-08 2014-01-28 Qualcomm Incorporated Method and apparatus for updating rules governing the switching of virtual SIM service contracts
US8719547B2 (en) * 2009-09-18 2014-05-06 Intel Corporation Providing hardware support for shared virtual memory between local and remote physical memory
US8285936B2 (en) * 2009-10-20 2012-10-09 The Regents Of The University Of Michigan Cache memory with power saving state
JP2011186731A (ja) * 2010-03-08 2011-09-22 Brother Industries Ltd 電子回路、その制御方法及び画像形成装置
WO2011112523A2 (en) 2010-03-08 2011-09-15 Hewlett-Packard Development Company, L.P. Data storage apparatus and methods
KR20130002046A (ko) 2011-06-28 2013-01-07 삼성전자주식회사 멀티 코어를 포함하는 저장 장치의 전력 관리 방법
DE112011106032B4 (de) * 2011-12-22 2022-06-15 Intel Corporation Energieeinsparung durch Speicherkanal-Abschaltung
WO2013118188A1 (en) * 2012-02-10 2013-08-15 Hitachi, Ltd. Storage system and method thereof for migrating data with cache bypass
JP5734492B1 (ja) * 2014-05-08 2015-06-17 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置
US11656874B2 (en) * 2014-10-08 2023-05-23 Nxp Usa, Inc. Asymmetrical processor memory architecture
US9858201B2 (en) 2015-02-20 2018-01-02 Qualcomm Incorporated Selective translation lookaside buffer search and page fault

Also Published As

Publication number Publication date
EP3230875A1 (en) 2017-10-18
TW201643725A (zh) 2016-12-16
WO2016133682A1 (en) 2016-08-25
CN107209721B (zh) 2020-10-23
EP3230875B1 (en) 2021-03-31
US9658793B2 (en) 2017-05-23
TWI617918B (zh) 2018-03-11
CN107209721A (zh) 2017-09-26
US20160246534A1 (en) 2016-08-25

Similar Documents

Publication Publication Date Title
CN109446112B (zh) 用于预取流量的改进控制的方法和***
KR101868389B1 (ko) 선택적인 트랜슬레이션 룩어사이드 버퍼 탐색 및 페이지 오류
US10409353B2 (en) Dynamic clock voltage scaling (DCVS) based on application performance in a system-on-a-chip (SOC), and related methods and processor-based systems
KR102462507B1 (ko) 프로세서, 이를 포함하는 컴퓨팅 장치 및 프로세서 저전력 모드 진입 방법
TWI644216B (zh) 在基於處理器之系統中之記憶體中之壓縮記憶體線之優先級存取
EP3440550A1 (en) Reducing memory access bandwidth based on prediction of memory request size
US11586544B2 (en) Data prefetching method and terminal device
US9601180B2 (en) Automatic partial array self-refresh
KR20150036684A (ko) 단말기를 제어하기 위한 방법 및 장치, 및 그 단말기
US20170090755A1 (en) Data Storage Method, Data Storage Apparatus and Solid State Disk
EP3544344A1 (en) Operation mode switching method and user equipment
JP2018506122A (ja) 適応モードのトランスレーションルックアサイドバッファ検索およびアクセスフォルト
JP6262408B1 (ja) 共有キャッシュメモリシステムに関する概算使用測定値の生成
JP2013065207A (ja) 携帯通信システム、携帯通信端末およびサーバ
US9697127B2 (en) Semiconductor device for controlling prefetch operation
US20180034749A1 (en) System and method for distributing and replaying trigger packets via a variable latency bus interconnect
CN113840313B (zh) 移动终端的网络模式控制方法、装置和计算机设备
WO2019028987A1 (zh) 数据处理方法、电子设备及计算机可读存储介质
JP5668505B2 (ja) クロック周波数制御プログラム、クロック周波数制御装置
CN108664417B (zh) 一种目录更新方法及装置
US20180285269A1 (en) Aggregating cache maintenance instructions in processor-based devices
US9286238B1 (en) System, apparatus, and method of cache management
JP2014002649A (ja) 半導体装置及びアクセスタイミング調整方法
CN114185838A (zh) 片上***和调节电压和频率的方法
CN118200054A (zh) 一种安全检测方法、装置、存储介质及电子设备

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170822