JP5916955B2 - ハイブリッドメモリ管理のための方法、システムおよびデバイス - Google Patents
ハイブリッドメモリ管理のための方法、システムおよびデバイス Download PDFInfo
- Publication number
- JP5916955B2 JP5916955B2 JP2015526533A JP2015526533A JP5916955B2 JP 5916955 B2 JP5916955 B2 JP 5916955B2 JP 2015526533 A JP2015526533 A JP 2015526533A JP 2015526533 A JP2015526533 A JP 2015526533A JP 5916955 B2 JP5916955 B2 JP 5916955B2
- Authority
- JP
- Japan
- Prior art keywords
- memory
- physical address
- computing device
- processes
- processor
- 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.)
- Expired - Fee Related
Links
- 230000015654 memory Effects 0.000 title claims description 512
- 238000000034 method Methods 0.000 title claims description 316
- 230000008569 process Effects 0.000 claims description 259
- 230000007334 memory performance Effects 0.000 claims description 25
- 238000005265 energy consumption Methods 0.000 claims description 24
- 230000004044 response Effects 0.000 claims description 22
- 238000005516 engineering process Methods 0.000 claims description 18
- 230000003190 augmentative effect Effects 0.000 claims description 8
- 230000026676 system process Effects 0.000 claims 2
- 238000013519 translation Methods 0.000 description 32
- 238000012545 processing Methods 0.000 description 27
- 238000010586 diagram Methods 0.000 description 16
- 238000006243 chemical reaction Methods 0.000 description 15
- 230000006870 function Effects 0.000 description 13
- 230000002093 peripheral effect Effects 0.000 description 10
- 239000003795 chemical substances by application Substances 0.000 description 8
- 230000008901 benefit Effects 0.000 description 7
- 238000005457 optimization Methods 0.000 description 6
- 230000001413 cellular effect Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 230000003068 static effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 238000002955 isolation Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000010998 test method Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000002360 explosive Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000009249 intrinsic sympathomimetic activity Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3296—Power saving characterised by the action undertaken by lowering the supply or operating voltage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/0292—User address space allocation, e.g. contiguous or non contiguous base addressing using tables or multilevel address translation means
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
- G06F12/1027—Address translation using associative or pseudo-associative address translation means, e.g. translation look-aside buffer [TLB]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/10—Address translation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/15—Use in a specific computing environment
- G06F2212/151—Emulated environment, e.g. virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/20—Employing a main memory using a specific memory technology
- G06F2212/205—Hybrid memory, e.g. using both volatile and non-volatile memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/651—Multi-level translation tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/65—Details of virtual memory and virtual address translation
- G06F2212/657—Virtual address space management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Memory System Of A Hierarchy Structure (AREA)
- Information Transfer Between Computers (AREA)
- Power Sources (AREA)
- Memory System (AREA)
Description
102 デジタル信号プロセッサ
102 プロセッサ
104 モデムプロセッサ
104 プロセッサ
106 グラフィックスプロセッサ
106 プロセッサ
108 アプリケーションプロセッサ
108 プロセッサ
110 ベクトルコプロセッサ
110 プロセッサ
112 メモリ
114 アナログ回路およびカスタム回路
114 カスタム回路
114 アナログおよびカスタム回路
116 システム構成要素およびリソース
116 システム構成要素/リソース
116 リソース
118 クロック
120 電圧調整器
122 相互接続/バスモジュール
122 相互接続/バス
125 システムオンチップ
200 コンピュータシステムアーキテクチャ
202 オペレーティングシステム
204 ライブラリモジュール
204 ライブラリ
206 アプリケーションプログラム
206 アプリケーションプログラム/プロセス
208 周辺機器
210 中央処理ユニット
210 メインCPU
212 システムメモリ管理ユニット
212 システムMMU
212 SMMU
214 メモリ
216 中央処理ユニットメモリ管理ユニット
216 CPU MMU
220 ソフトウェア構成要素
220 ソフトウェア
222 ハードウェア構成要素
222 ハードウェア
300 コンピューティングデバイス
300 コンピュータシステム
302 アプリケーションプロセスモジュール
302 アプリケーションプロセス
302 プロセス
302 アプリケーションプログラム/プロセス
304 仮想化モジュール
304 仮想化ソフトウェアモジュール
304 仮想化ソフトウェア
306 オペレーティングシステム
308 ハードウェア
310 プロセス仮想マシン
310 仮想マシン
400 コンピューティングデバイス
402 アプリケーションプログラム
402 アプリケーションプログラムモジュール
404 オペレーティングシステム
406 仮想化モジュール
406 仮想化ソフトウェアモジュール
408 ハードウェア構成要素
408 ハードウェア
408 物理ハードウェア
410 システム仮想マシン
410 仮想マシン
500 コンピューティングデバイス
502 仮想アドレススペース
504 仮想アドレススペース
506 中間物理アドレススペース
508 物理アドレススペース
510 ゲストオペレーティングシステム
512 第1の変換段
512 段1の変換
514 第2の変換段
514 第2段変換
514 段2の変換
702 物理メモリ
712 第1の変換段
712 段1の変換
714 第2の変換段
714 段2の変換
852 アイドル状態
854 アクティブ状態
900 モバイルデバイス
901 内部メモリ
902 プロセッサ
904 ディスプレイ
905 汎用プロセッサ
905 プロセッサ
924 汎用プロセッサ
924 プロセッサ
1000 ラップトップコンピュータ
1001 内部メモリ
1002 プロセッサ
1005 通信ポート
1007 選択ボタン
1008 キーボード
1009 ディスプレイ
Claims (84)
- メモリを有するコンピューティングシステム上でメモリを管理する方法であって、
前記メモリのメモリパフォーマンスデータを収集するステップと、
前記収集されたメモリパフォーマンスデータを使用して前記メモリのエネルギー消費モデルとメモリパフォーマンスモデルとを生成するステップと、
前記エネルギー消費モデルと前記メモリパフォーマンスモデルとに基づいて、モニタエージェントにおいて中間物理アドレスを物理アドレスに変換するステップであって、前記モニタエージェントが、前記メモリの特性と前記コンピューティングシステムの1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てる、変換するステップ
を含む、前記コンピューティングシステム上でメモリスペースを割り振るステップ
を含む、方法。 - 前記コンピューティングシステム上でメモリスペースを割り振るステップが、ソフトウェアプロセスにメモリスペースを割り振るステップを含む、請求項1に記載の方法。
- モニタエージェントにおいて中間物理アドレスを物理アドレスに変換するステップが、ハイパーバイザにおいて前記中間物理アドレスを前記物理アドレスに変換するステップを含む、請求項1に記載の方法。
- モニタエージェントにおいて中間物理アドレスを物理アドレスに変換するステップが、前記コンピューティングシステムのオペレーティングシステムの外部のモニタソフトウェアにおいて前記中間物理アドレスを前記物理アドレスに変換するステップを含む、請求項1に記載の方法。
- モニタエージェントにおいて中間物理アドレスを物理アドレスに変換するステップが、ハードウェアレイヤ構成要素において前記中間物理アドレスを前記物理アドレスに変換するステップを含む、請求項1に記載の方法。
- モニタエージェントにおいて中間物理アドレスを物理アドレスに変換するステップが、デバイスドライバの一部として動作しているソフトウェアモニタにおいて前記中間物理アドレスを前記物理アドレスに変換するステップを含む、請求項1に記載の方法。
- 前記コンピューティングシステム上でメモリスペースを割り振るステップが、
オペレーティングシステムにおいて仮想アドレスを前記中間物理アドレスに変換するステップ
をさらに含む、請求項1に記載の方法。 - 前記メモリがハイブリッドメモリであり、前記メモリの特性と前記コンピューティングシステムの1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、前記ハイブリッドメモリの特性に基づいて前記物理アドレスを割り当てるステップを含む、請求項1に記載の方法。
- 前記ハイブリッドメモリの特性と1つまたは複数のプロセスの前記特性とに基づいて前記物理アドレスを割り当てるステップが、
前記ハイブリッドメモリのパフォーマンス特性、
前記ハイブリッドメモリの電力消費特性、および
前記ハイブリッドメモリのレイテンシ特性
のうちの1つまたは複数に基づいて前記物理アドレスを割り当てるステップを含む、請求項8に記載の方法。 - 前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、前記1つまたは複数のプロセスのパフォーマンス特性に基づいて前記物理アドレスを割り当てるステップを含む、請求項8に記載の方法。
- 前記ハイブリッドメモリが2つ以上のタイプのメモリ技術を含み、
前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、前記ハイブリッドメモリに含まれる前記タイプのメモリ技術に基づいて前記物理アドレスを割り当てるステップを含む、請求項8に記載の方法。 - 前記コンピューティングシステムがより低いパフォーマンス状態に入りつつあるときを判断するステップをさらに含み、
前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップは、前記コンピューティングシステムがより低いパフォーマンス状態に入りつつあると判断したことに応答して、前記コンピューティングシステム上で動作しているソフトウェアアプリケーションに前記ハイブリッドメモリのエネルギー効率的な部分を割り当てるステップを含む、請求項8に記載の方法。 - 前記コンピューティングシステムが前記より低いパフォーマンス状態から出つつあるときを判断するステップをさらに含み、
前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップは、メモリを要求する前記ソフトウェアアプリケーションがエネルギー効率的なメモリを割り当てられ得ないことと、前記コンピューティングシステムが前記より低いパフォーマンス状態から出つつあることとを判断したことに応答して、前記ハイブリッドメモリのあまりエネルギー効率的でない部分を前記ソフトウェアアプリケーションに再割り当てするステップを含む、請求項12に記載の方法。 - 前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するステップをさらに含む、請求項8に記載の方法。
- 前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するステップは、前記1つまたは複数のプロセスが、
マルチメディアアプリケーション、
ビデオプレーヤアプリケーション、
ストリーミングビデオアプリケーション、
仮想現実アプリケーション、
拡張現実アプリケーション、
ゲームアプリケーション、
コンピュータビジョンアプリケーション、
ビデオ会議アプリケーション、
ジェスチャー認識アプリケーション、および
音声認識アプリケーション
のうちの1つまたは複数に関連するプロセスを含むかどうかを判断するステップを含む、請求項14に記載の方法。 - 前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップは、
前記1つまたは複数のプロセスがディマンディングプロセスを含むと判断されたとき、前記ディマンディングプロセスに関連するアプリケーションプログラムに前記ハイブリッドメモリの高速部分を割り当てるステップと、別のプロセスに関連するアプリケーションプログラムに前記ハイブリッドメモリの低速部分を割り当てるステップと
を含む、請求項14に記載の方法。 - 前記1つまたは複数のプロセスについてメモリ速度要件を判断するステップと、
前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するステップと
をさらに含み、
前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップは、
前記1つまたは複数のプロセスが前記ディマンディングプロセスを含むと判断したことに応答して、前記1つまたは複数のプロセスに前記ハイブリッドメモリの高速部分を割り当てるステップ
を含む、請求項14に記載の方法。 - 前記1つまたは複数のプロセスについてエネルギー効率に関連付けられたメモリ要件を判断するステップと、
前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するステップと
をさらに含み、
前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップは、
前記1つまたは複数のプロセスが前記ディマンディングプロセスを含むと判断したことに応答して、前記1つまたは複数のプロセスに前記ハイブリッドメモリのエネルギー効率的でない部分を割り当てるステップと
を含む、請求項14に記載の方法。 - コンピューティングデバイスであって、
メモリと、
前記メモリに結合されたプロセッサとを含み、前記プロセッサが、
前記メモリのメモリパフォーマンスデータを収集するステップと、
前記収集されたメモリパフォーマンスデータを使用して前記メモリのエネルギー消費モデルとメモリパフォーマンスモデルとを生成するステップと、
前記エネルギー消費モデルと前記メモリパフォーマンスモデルとに基づいて、モニタエージェントにおいて中間物理アドレスを物理アドレスに変換するステップであって、前記モニタエージェントが、前記メモリの特性と前記コンピューティングデバイス上で動作している1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てる、変換するステップ
を含む、前記コンピューティングデバイス上でメモリスペースを割り振るステップ
を含む、コンピューティングデバイス。 - 前記プロセッサは、前記コンピューティングデバイス上でメモリスペースを割り振るステップが、ソフトウェアプロセスにメモリスペースを割り振るステップを含むような動作を実行するためのプロセッサ実行可能命令で構成された、請求項19に記載のコンピューティングデバイス。
- 前記プロセッサは、中間物理アドレスを物理アドレスに変換するステップが、ハイパーバイザが前記中間物理アドレスを前記物理アドレスに変換するステップを含むような動作を実行するためのプロセッサ実行可能命令で構成された、請求項19に記載のコンピューティングデバイス。
- 前記プロセッサは、中間物理アドレスを物理アドレスに変換するステップが、オペレーティングシステムの外部で動作しているモニタソフトウェアが前記中間物理アドレスを前記物理アドレスに変換するステップを含むような動作を実行するためのプロセッサ実行可能命令で構成された、請求項19に記載のコンピューティングデバイス。
- 前記プロセッサは、中間物理アドレスを物理アドレスに変換するステップが、デバイスドライバが前記中間物理アドレスを前記物理アドレスに変換するステップを含むような動作を実行するためのプロセッサ実行可能命令で構成された、請求項19に記載のコンピューティングデバイス。
- 前記プロセッサは、前記コンピューティングデバイス上でメモリスペースを割り振るステップが、
オペレーティングシステムプロセスにおいて仮想アドレスを前記中間物理アドレスに変換するステップ
をさらに含むような動作を実行するためのプロセッサ実行可能命令で構成された、請求項19に記載のコンピューティングデバイス。 - 前記メモリがハイブリッドメモリであり、前記メモリの特性と前記コンピューティングデバイス上で動作している1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、前記ハイブリッドメモリの特性に基づいて前記物理アドレスを割り当てるステップを含む、請求項19に記載のコンピューティングデバイス。
- 前記プロセッサは、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、
前記ハイブリッドメモリのパフォーマンス特性、
前記ハイブリッドメモリの電力消費特性、および
前記ハイブリッドメモリのレイテンシ特性
のうちの1つまたは複数に基づいて前記物理アドレスを割り当てるステップを含むような動作を実行するためのプロセッサ実行可能命令で構成された、請求項25に記載のコンピューティングデバイス。 - 前記プロセッサは、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、前記1つまたは複数のプロセスのパフォーマンス特性に基づいて前記物理アドレスを割り当てるステップを含むような動作を実行するためのプロセッサ実行可能命令で構成された、請求項25に記載のコンピューティングデバイス。
- 前記ハイブリッドメモリが2つ以上のタイプのメモリ技術を含み、前記プロセッサは、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、前記ハイブリッドメモリに含まれる前記タイプのメモリ技術に基づいて前記物理アドレスを割り当てるステップを含むような動作を実行するためのプロセッサ実行可能命令で構成された、請求項25に記載のコンピューティングデバイス。
- 前記プロセッサは、前記コンピューティングデバイスがより低いパフォーマンス状態に入りつつあるときを判断するステップをさらに含む動作を実行するためのプロセッサ実行可能命令で構成され、
前記プロセッサは、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、前記コンピューティングデバイスがより低いパフォーマンス状態に入りつつあると判断したことに応答して、前記ハイブリッドメモリのエネルギー効率的な部分をソフトウェアアプリケーションに割り当てるステップを含むような動作を実行するためのプロセッサ実行可能命令で構成された、請求項25に記載のコンピューティングデバイス。 - 前記プロセッサは、前記コンピューティングデバイスが前記より低いパフォーマンス状態から出つつあるときを判断するステップをさらに含む動作を実行するためのプロセッサ実行可能命令で構成され、
前記プロセッサは、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、メモリを要求する前記ソフトウェアアプリケーションがエネルギー効率的なメモリを割り当てられ得ないことと、前記コンピューティングデバイスが前記より低いパフォーマンス状態から出つつあることとを判断したことに応答して、前記ハイブリッドメモリのあまりエネルギー効率的でない部分を前記ソフトウェアアプリケーションに再割り当てするステップを含むような動作を実行するためのプロセッサ実行可能命令で構成された、請求項29に記載のコンピューティングデバイス。 - 前記プロセッサは、
前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するステップ
をさらに含む動作を実行するためのプロセッサ実行可能命令で構成された、請求項25に記載のコンピューティングデバイス。 - 前記プロセッサは、前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するステップが、前記1つまたは複数のプロセスが、
マルチメディアアプリケーション、
ビデオプレーヤアプリケーション、
ストリーミングビデオアプリケーション、
仮想現実アプリケーション、
拡張現実アプリケーション、
ゲームアプリケーション、
コンピュータビジョンアプリケーション、
ビデオ会議アプリケーション、
ジェスチャー認識アプリケーション、および
音声認識アプリケーション
のうちの1つまたは複数に関連するプロセスを含むかどうかを判断するステップを含むような動作を実行するためのプロセッサ実行可能命令で構成された、請求項31に記載のコンピューティングデバイス。 - 前記プロセッサは、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、
前記1つまたは複数のプロセスがディマンディングプロセスを含むと判断されたとき、前記ディマンディングプロセスに関連するアプリケーションプログラムに前記ハイブリッドメモリの高速部分を割り当てるステップと、別のプロセスに関連するアプリケーションプログラムに前記ハイブリッドメモリの低速部分を割り当てるステップと
を含むような動作を実行するためのプロセッサ実行可能命令で構成された、請求項31に記載のコンピューティングデバイス。 - 前記プロセッサは、前記1つまたは複数のプロセスのメモリ速度要件を判断するステップと、
前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するステップと
をさらに含む動作を実行するためのプロセッサ実行可能命令で構成され、
前記プロセッサは、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、
前記1つまたは複数のプロセスが前記ディマンディングプロセスを含むと判断したことに応答して、前記1つまたは複数のプロセスに前記ハイブリッドメモリの高速部分を割り当てるステップ
を含むような動作を実行するためのプロセッサ実行可能命令で構成された、請求項31に記載のコンピューティングデバイス。 - 前記プロセッサは、
前記1つまたは複数のプロセスについてエネルギー効率に関連付けられたメモリ要件を判断するステップと、
前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するステップと
をさらに含む動作を実行するためのプロセッサ実行可能命令で構成され、
前記プロセッサは、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、
前記1つまたは複数のプロセスが前記ディマンディングプロセスを含むと判断したことに応答して、前記1つまたは複数のプロセスに前記ハイブリッドメモリのエネルギー効率的でない部分を割り当てるステップと
を含むような動作を実行するためのプロセッサ実行可能命令で構成された、請求項31に記載のコンピューティングデバイス。 - コンピューティングデバイスであって、
メモリと、
ハードウェアレイヤ構成要素と、
前記メモリと前記ハードウェアレイヤ構成要素とに結合されたプロセッサと
を含み、
前記プロセッサが、
前記メモリのメモリパフォーマンスデータを収集するステップと、
前記収集されたメモリパフォーマンスデータを使用して前記メモリのエネルギー消費モデルとメモリパフォーマンスモデルとを生成するステップと、
前記コンピューティングデバイス上でメモリスペースを割り振るステップと
を含む動作を実行するためのプロセッサ実行可能命令で構成され、
前記ハードウェアレイヤ構成要素が、前記メモリの特性と前記コンピューティングデバイス上で動作している1つまたは複数のプロセスの特性とに基づいて物理アドレスを割り当てるステップによって、前記エネルギー消費モデルと前記メモリパフォーマンスモデルとに基づいて中間物理アドレスを物理アドレスに変換するように構成された、コンピューティングデバイス。 - 前記プロセッサは、前記コンピューティングデバイス上でメモリスペースを割り振るステップが、ソフトウェアプロセスにメモリスペースを割り振るステップを含むような動作を実行するためのプロセッサ実行可能命令で構成された、請求項36に記載のコンピューティングデバイス。
- 前記プロセッサは、前記コンピューティングデバイス上でメモリスペースを割り振るステップが、オペレーティングシステムにおいて仮想アドレスを前記中間物理アドレスに変換することによって、前記コンピューティングデバイス上でメモリスペースを割り振るステップを含むような動作を実行するためのプロセッサ実行可能命令で構成された、請求項36に記載のコンピューティングデバイス。
- 前記メモリがハイブリッドメモリであり、前記ハードウェアレイヤ構成要素は、前記メモリの特性と前記コンピューティングデバイスの1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、前記ハイブリッドメモリの特性に基づいて前記物理アドレスを割り当てるステップを含むように構成された、請求項36に記載のコンピューティングデバイス。
- 前記ハードウェアレイヤ構成要素は、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、
前記ハイブリッドメモリのパフォーマンス特性、
前記ハイブリッドメモリの電力消費特性、および
前記ハイブリッドメモリのレイテンシ特性
のうちの1つまたは複数に基づいて前記物理アドレスを割り当てるステップを含むように構成された、請求項39に記載のコンピューティングデバイス。 - 前記ハードウェアレイヤ構成要素は、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、前記1つまたは複数のプロセスのパフォーマンス特性に基づいて前記物理アドレスを割り当てるステップを含むように構成された、請求項39に記載のコンピューティングデバイス。
- 前記ハイブリッドメモリが2つ以上のタイプのメモリ技術を含み、前記ハードウェアレイヤ構成要素は、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、前記ハイブリッドメモリに含まれる前記タイプのメモリ技術に基づいて前記物理アドレスを割り当てるステップを含むように構成された、請求項39に記載のコンピューティングデバイス。
- 前記プロセッサは、前記コンピューティングデバイスがより低いパフォーマンス状態に入りつつあるときを判断するステップを含む動作を実行するためのプロセッサ実行可能命令で構成され、
前記ハードウェアレイヤ構成要素は、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、前記コンピューティングデバイスがより低いパフォーマンス状態に入りつつあると判断したことに応答して、前記ハイブリッドメモリのエネルギー効率的な部分をソフトウェアアプリケーションに割り当てるステップを含むように構成された、請求項39に記載のコンピューティングデバイス。 - 前記プロセッサは、前記コンピューティングデバイスが前記より低いパフォーマンス状態から出つつあるときを判断するステップをさらに含む動作を実行するためのプロセッサ実行可能命令で構成され、
前記ハードウェアレイヤ構成要素は、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、メモリを要求する前記ソフトウェアアプリケーションがエネルギー効率的なメモリを割り当てられ得ないことと、前記コンピューティングデバイスが前記より低いパフォーマンス状態から出つつあることとを判断したことに応答して、前記ハイブリッドメモリのあまりエネルギー効率的でない部分を前記ソフトウェアアプリケーションに再割り当てするステップを含むように構成された、請求項43に記載のコンピューティングデバイス。 - 前記プロセッサは、前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するステップをさらに含む動作を実行するためのプロセッサ実行可能命令で構成された、請求項39に記載のコンピューティングデバイス。
- 前記プロセッサは、前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するステップが、前記1つまたは複数のプロセスが、
マルチメディアアプリケーション、
ビデオプレーヤアプリケーション、
ストリーミングビデオアプリケーション、
仮想現実アプリケーション、
拡張現実アプリケーション、
ゲームアプリケーション、
コンピュータビジョンアプリケーション、
ビデオ会議アプリケーション、
ジェスチャー認識アプリケーション、および
音声認識アプリケーション
のうちの1つまたは複数に関連するプロセスを含むかどうかを判断するステップを含むような動作を実行するためのプロセッサ実行可能命令で構成された、請求項45に記載のコンピューティングデバイス。 - 前記ハードウェアレイヤ構成要素は、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、
前記1つまたは複数のプロセスがディマンディングプロセスを含むと判断されたとき、前記ディマンディングプロセスに関連するアプリケーションプログラムに前記ハイブリッドメモリの高速部分を割り当てるステップと、別のプロセスに関連するアプリケーションプログラムに前記ハイブリッドメモリの低速部分を割り当てるステップと
を含むように構成された、請求項45に記載のコンピューティングデバイス。 - 前記プロセッサは、前記1つまたは複数のプロセスのメモリ速度要件を判断するステップと、
前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するステップと
をさらに含む動作を実行するためのプロセッサ実行可能命令で構成され、
前記ハードウェアレイヤ構成要素は、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、
前記1つまたは複数のプロセスが前記ディマンディングプロセスを含むと判断したことに応答して、前記1つまたは複数のプロセスに前記ハイブリッドメモリの高速部分を割り当てるステップ
を含むように構成された、請求項45に記載のコンピューティングデバイス。 - 前記プロセッサは、
前記1つまたは複数のプロセスについてエネルギー効率に関連付けられたメモリ要件を判断するステップと、
前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するステップと
をさらに含む動作を実行するためのプロセッサ実行可能命令で構成され、
前記ハードウェアレイヤ構成要素は、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、
前記1つまたは複数のプロセスが前記ディマンディングプロセスを含むと判断したことに応答して、前記1つまたは複数のプロセスに前記ハイブリッドメモリのエネルギー効率的でない部分を割り当てるステップと
を含むように構成された、請求項45に記載のコンピューティングデバイス。 - コンピューティングデバイスであって、
メモリのメモリパフォーマンスデータを収集するための手段と、
前記収集されたメモリパフォーマンスデータを使用して前記メモリのエネルギー消費モデルとメモリパフォーマンスモデルとを生成するための手段と、
前記エネルギー消費モデルと前記メモリパフォーマンスモデルとに基づいて、モニタエージェントにおいて中間物理アドレスを物理アドレスに変換するための手段であって、前記モニタエージェントが、前記メモリの特性と前記コンピューティングデバイス上で動作している1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てる、変換するための手段
を含む、前記コンピューティングデバイス上でメモリスペースを割り振るための手段
を含む、コンピューティングデバイス。 - 前記コンピューティングデバイス上でメモリスペースを割り振るための手段が、ソフトウェアプロセスにメモリスペースを割り振るための手段を含む、請求項50に記載のコンピューティングデバイス。
- モニタエージェントにおいて前記中間物理アドレスを物理アドレスに変換するための手段が、ハイパーバイザにおいて前記中間物理アドレスを前記物理アドレスに変換するための手段を含む、請求項50に記載のコンピューティングデバイス。
- モニタエージェントにおいて前記中間物理アドレスを物理アドレスに変換するための手段が、前記コンピューティングデバイスのオペレーティングシステムの外部のモニタソフトウェアにおいて前記中間物理アドレスを前記物理アドレスに変換するための手段を含む、請求項50に記載のコンピューティングデバイス。
- モニタエージェントにおいて前記中間物理アドレスを物理アドレスに変換するための手段が、ハードウェアレイヤ構成要素において前記中間物理アドレスを前記物理アドレスに変換するための手段を含む、請求項50に記載のコンピューティングデバイス。
- モニタエージェントにおいて前記中間物理アドレスを物理アドレスに変換するための手段が、デバイスドライバの一部として動作しているソフトウェアモニタにおいて前記中間物理アドレスを前記物理アドレスに変換するための手段を含む、請求項50に記載のコンピューティングデバイス。
- 前記コンピューティングデバイス上でメモリスペースを割り振るための手段が、オペレーティングシステムにおいて仮想アドレスを前記中間物理アドレスに変換するための手段をさらに含む、請求項50に記載のコンピューティングデバイス。
- 前記メモリの特性と前記コンピューティングデバイスの1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるための手段が、ハイブリッドメモリの特性に基づいて前記物理アドレスを割り当てるための手段を含む、請求項50に記載のコンピューティングデバイス。
- 前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるための手段が、
前記ハイブリッドメモリのパフォーマンス特性、
前記ハイブリッドメモリの電力消費特性、および
前記ハイブリッドメモリのレイテンシ特性
のうちの1つまたは複数に基づいて前記物理アドレスを割り当てるための手段を含む、請求項57に記載のコンピューティングデバイス。 - 前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるための手段が、前記1つまたは複数のプロセスのパフォーマンス特性に基づいて前記物理アドレスを割り当てるための手段を含む、請求項57に記載のコンピューティングデバイス。
- 前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるための手段が、前記ハイブリッドメモリに含まれる2つ以上のタイプのメモリ技術に基づいて前記物理アドレスを割り当てるための手段を含む、請求項57に記載のコンピューティングデバイス。
- 前記コンピューティングデバイスがより低いパフォーマンス状態に入りつつあるときを判断するための手段をさらに含み、
前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるための手段は、前記コンピューティングデバイスがより低いパフォーマンス状態に入りつつあると判断したことに応答して、前記ハイブリッドメモリのエネルギー効率的な部分をソフトウェアアプリケーションに割り当てるための手段を含む、請求項57に記載のコンピューティングデバイス。 - 前記コンピューティングデバイスが前記より低いパフォーマンス状態から出つつあるときを判断するための手段をさらに含み、
前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるための手段は、メモリを要求する前記ソフトウェアアプリケーションがエネルギー効率的なメモリを割り当てられ得ないことと、前記コンピューティングデバイスが前記より低いパフォーマンス状態から出つつあることとを判断したことに応答して、動作している前記ソフトウェアアプリケーションに前記ハイブリッドメモリのあまりエネルギー効率的でない部分を再割り当てするための手段を含む、請求項61に記載のコンピューティングデバイス。 - 前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するための手段
をさらに含む、請求項57に記載のコンピューティングデバイス。 - 前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するための手段は、前記1つまたは複数のプロセスが、
マルチメディアアプリケーション、
ビデオプレーヤアプリケーション、
ストリーミングビデオアプリケーション、
仮想現実アプリケーション、
拡張現実アプリケーション、
ゲームアプリケーション、
コンピュータビジョンアプリケーション、
ビデオ会議アプリケーション、
ジェスチャー認識アプリケーション、および
音声認識アプリケーション
のうちの1つまたは複数に関連するプロセスを含むかどうかを判断するための手段を含む、請求項63に記載のコンピューティングデバイス。 - 前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるための手段は、
前記1つまたは複数のプロセスがディマンディングプロセスを含むと判断されたとき、前記ディマンディングプロセスに関連するアプリケーションプログラムに前記ハイブリッドメモリの高速部分を割り当てるための手段と、別のプロセスに関連するアプリケーションプログラムに前記ハイブリッドメモリの低速部分を割り当てるための手段と
を含む、請求項63に記載のコンピューティングデバイス。 - 前記1つまたは複数のプロセスのメモリ速度要件を判断するための手段と、
前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するための手段と
をさらに含み、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるための手段は、
前記1つまたは複数のプロセスが前記ディマンディングプロセスを含むと判断したことに応答して、前記1つまたは複数のプロセスに前記ハイブリッドメモリの高速部分を割り当てるための手段
を含む、請求項63に記載のコンピューティングデバイス。 - 前記1つまたは複数のプロセスについてエネルギー効率に関連付けられたメモリ要件を判断するための手段と、
前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するための手段と
をさらに含み、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるための手段は、
前記1つまたは複数のプロセスが前記ディマンディングプロセスを含むと判断したことに応答して、前記1つまたは複数のプロセスに前記ハイブリッドメモリのエネルギー効率的でない部分を割り当てるための手段と
を含む、請求項63に記載のコンピューティングデバイス。 - メモリを有するコンピューティングデバイス上でメモリを管理するための動作をプロセッサに実行させるように構成されたプロセッサ実行可能ソフトウェア命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記動作が、
前記メモリのメモリパフォーマンスデータを収集するステップと、
前記収集されたメモリパフォーマンスデータを使用して前記メモリのエネルギー消費モデルとメモリパフォーマンスモデルとを生成するステップと、
前記エネルギー消費モデルと前記メモリパフォーマンスモデルとに基づいて、モニタエージェントにおいて中間物理アドレスを物理アドレスに変換するステップであって、前記モニタエージェントが、前記メモリの特性と前記コンピューティングデバイス上で動作している1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てる、変換するステップ
を含む、前記コンピューティングデバイス上でメモリスペースを割り振るステップ
を含む、非一時的コンピュータ可読記憶媒体。 - 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記コンピューティングデバイス上でメモリスペースを割り振るステップが、ソフトウェアプロセスにメモリスペースを割り振るステップを含むような動作をプロセッサに実行させるように構成された、請求項68に記載の非一時的コンピュータ可読記憶媒体。
- 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記中間物理アドレスを物理アドレスに変換するステップが、ハイパーバイザにおいて前記中間物理アドレスを前記物理アドレスに変換するステップを含むような動作をプロセッサに実行させるように構成された、請求項68に記載の非一時的コンピュータ可読記憶媒体。
- 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記中間物理アドレスを物理アドレスに変換するステップが、オペレーティングシステムの外部で動作しているモニタソフトウェアにおいて前記中間物理アドレスを前記物理アドレスに変換するステップを含むような動作をプロセッサに実行させるように構成された、請求項68に記載の非一時的コンピュータ可読記憶媒体。
- 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記中間物理アドレスを物理アドレスに変換するステップが、デバイスドライバにおいて前記中間物理アドレスを前記物理アドレスに変換するステップを含むような動作をプロセッサに実行させるように構成された、請求項68に記載の非一時的コンピュータ可読記憶媒体。
- 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記コンピューティングデバイス上でメモリスペースを割り振るステップが、オペレーティングシステムプロセスにおいて仮想アドレスを前記中間物理アドレスに変換するステップを含むような動作をプロセッサに実行させるように構成された、請求項68に記載の非一時的コンピュータ可読記憶媒体。
- 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記メモリの特性と前記コンピューティングデバイス上で動作している1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、ハイブリッドメモリの特性に基づいて前記物理アドレスを割り当てるステップを含むような動作をプロセッサに実行させるように構成された、請求項68に記載の非一時的コンピュータ可読記憶媒体。
- 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、
前記ハイブリッドメモリのパフォーマンス特性、
前記ハイブリッドメモリの電力消費特性、および
前記ハイブリッドメモリのレイテンシ特性
のうちの1つまたは複数に基づいて前記物理アドレスを割り当てるステップを含むような動作をプロセッサに実行させるように構成された、請求項74に記載の非一時的コンピュータ可読記憶媒体。 - 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、
前記1つまたは複数のプロセスのパフォーマンス特性に基づいて前記物理アドレスを割り当てるステップ
を含むような動作をプロセッサに実行させるように構成された、請求項74に記載の非一時的コンピュータ可読記憶媒体。 - 前記ハイブリッドメモリが2つ以上のタイプのメモリ技術を含み、前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、
前記ハイブリッドメモリに含まれる前記タイプのメモリ技術に基づいて前記物理アドレスを割り当てるステップ
を含むような動作をプロセッサに実行させるように構成された、請求項74に記載の非一時的コンピュータ可読記憶媒体。 - 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記コンピューティングデバイスがより低いパフォーマンス状態に入りつつあるときを判断するステップをさらに含む動作をプロセッサに実行させるように構成され、
前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、前記コンピューティングデバイスがより低いパフォーマンス状態に入りつつあると判断したことに応答して、前記ハイブリッドメモリのエネルギー効率的な部分をソフトウェアアプリケーションに割り当てるステップを含むような動作をプロセッサに実行させるように構成された、請求項74に記載の非一時的コンピュータ可読記憶媒体。 - 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記コンピューティングデバイスが前記より低いパフォーマンス状態から出つつあるときを判断するステップをさらに含む動作をプロセッサに実行させるように構成され、
前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、メモリを要求する前記ソフトウェアアプリケーションがエネルギー効率的なメモリを割り当てられ得ないことと、前記コンピューティングデバイスが前記より低いパフォーマンス状態から出つつあることとを判断したことに応答して、動作している前記ソフトウェアアプリケーションに前記ハイブリッドメモリのあまりエネルギー効率的でない部分を再割り当てするステップを含むような動作をプロセッサに実行させるように構成された、請求項78に記載の非一時的コンピュータ可読記憶媒体。 - 前記記憶されたプロセッサ実行可能ソフトウェア命令は、
前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するステップ
を含む動作をプロセッサに実行させるように構成された、請求項74に記載の非一時的コンピュータ可読記憶媒体。 - 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するステップが、前記1つまたは複数のプロセスが、
マルチメディアアプリケーション、
ビデオプレーヤアプリケーション、
ストリーミングビデオアプリケーション、
仮想現実アプリケーション、
拡張現実アプリケーション、
ゲームアプリケーション、
コンピュータビジョンアプリケーション、
ビデオ会議アプリケーション、
ジェスチャー認識アプリケーション、および
音声認識アプリケーション
のうちの1つまたは複数に関連するプロセスを含むかどうかを判断するステップを含むような動作をプロセッサに実行させるように構成された、請求項80に記載の非一時的コンピュータ可読記憶媒体。 - 前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、
前記1つまたは複数のプロセスがディマンディングプロセスを含むと判断されたとき、前記ディマンディングプロセスに関連するアプリケーションプログラムに前記ハイブリッドメモリの高速部分を割り当てるステップと、別のプロセスに関連するアプリケーションプログラムに前記ハイブリッドメモリの低速部分を割り当てるステップと
を含むような動作をプロセッサに実行させるように構成された、請求項80に記載の非一時的コンピュータ可読記憶媒体。 - 前記記憶されたプロセッサ実行可能ソフトウェア命令は、
前記1つまたは複数のプロセスのメモリ速度要件を判断するステップと、
前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するステップと
を含む動作をプロセッサに実行させるように構成され、
前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、
前記1つまたは複数のプロセスが前記ディマンディングプロセスを含むと判断したことに応答して、前記1つまたは複数のプロセスに前記ハイブリッドメモリの高速部分を割り当てるステップ
を含むような動作をプロセッサに実行させるように構成された、請求項80に記載の非一時的コンピュータ可読記憶媒体。 - 前記記憶されたプロセッサ実行可能ソフトウェア命令は、
前記1つまたは複数のプロセスについてエネルギー効率に関連付けられたメモリ要件を判断するステップと、
前記1つまたは複数のプロセスがディマンディングプロセスを含むかどうかを判断するステップと
を含む動作をプロセッサに実行させるように構成され、
前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記ハイブリッドメモリの特性と1つまたは複数のプロセスの特性とに基づいて前記物理アドレスを割り当てるステップが、
前記1つまたは複数のプロセスが前記ディマンディングプロセスを含むと判断したことに応答して、前記1つまたは複数のプロセスに前記ハイブリッドメモリのエネルギー効率的でない部分を割り当てるステップと
を含むような動作をプロセッサに実行させるように構成された、請求項80に記載の非一時的コンピュータ可読記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/568,523 US9047090B2 (en) | 2012-08-07 | 2012-08-07 | Methods, systems and devices for hybrid memory management |
US13/568,523 | 2012-08-07 | ||
PCT/US2013/045685 WO2014025454A1 (en) | 2012-08-07 | 2013-06-13 | Methods, systems and devices for hybrid memory management |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2015528597A JP2015528597A (ja) | 2015-09-28 |
JP5916955B2 true JP5916955B2 (ja) | 2016-05-11 |
Family
ID=48747725
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015526533A Expired - Fee Related JP5916955B2 (ja) | 2012-08-07 | 2013-06-13 | ハイブリッドメモリ管理のための方法、システムおよびデバイス |
Country Status (6)
Country | Link |
---|---|
US (1) | US9047090B2 (ja) |
EP (1) | EP2883146A1 (ja) |
JP (1) | JP5916955B2 (ja) |
CN (1) | CN104520823B (ja) |
IN (1) | IN2015MN00051A (ja) |
WO (1) | WO2014025454A1 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11182311B2 (en) | 2019-09-24 | 2021-11-23 | Kabushiki Kaisha Toshiba | Virtualization support device, control method of virtualization support device, and calculation system |
Families Citing this family (52)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8515052B2 (en) | 2007-12-17 | 2013-08-20 | Wai Wu | Parallel signal processing system and method |
GB2495959A (en) | 2011-10-26 | 2013-05-01 | Imagination Tech Ltd | Multi-threaded memory access processor |
US10303618B2 (en) * | 2012-09-25 | 2019-05-28 | International Business Machines Corporation | Power savings via dynamic page type selection |
US9348757B2 (en) | 2012-10-08 | 2016-05-24 | International Business Machines Corporation | System supporting multiple partitions with differing translation formats |
US9355032B2 (en) | 2012-10-08 | 2016-05-31 | International Business Machines Corporation | Supporting multiple types of guests by a hypervisor |
US9740624B2 (en) | 2012-10-08 | 2017-08-22 | International Business Machines Corporation | Selectable address translation mechanisms within a partition |
US9280488B2 (en) | 2012-10-08 | 2016-03-08 | International Business Machines Corporation | Asymmetric co-existent address translation structure formats |
US9600419B2 (en) * | 2012-10-08 | 2017-03-21 | International Business Machines Corporation | Selectable address translation mechanisms |
US9355040B2 (en) | 2012-10-08 | 2016-05-31 | International Business Machines Corporation | Adjunct component to provide full virtualization using paravirtualized hypervisors |
US9448612B2 (en) * | 2012-11-12 | 2016-09-20 | International Business Machines Corporation | Management to reduce power consumption in virtual memory provided by plurality of different types of memory devices |
US10210096B2 (en) * | 2013-10-01 | 2019-02-19 | Ampere Computing Llc | Multi-stage address translation for a computing device |
US10437479B2 (en) | 2014-08-19 | 2019-10-08 | Samsung Electronics Co., Ltd. | Unified addressing and hierarchical heterogeneous storage and memory |
US10282100B2 (en) | 2014-08-19 | 2019-05-07 | Samsung Electronics Co., Ltd. | Data management scheme in virtualized hyperscale environments |
GB2536201B (en) * | 2015-03-02 | 2021-08-18 | Advanced Risc Mach Ltd | Handling address translation requests |
US10157008B2 (en) | 2015-04-29 | 2018-12-18 | Qualcomm Incorporated | Systems and methods for optimizing memory power consumption in a heterogeneous system memory |
US9547361B2 (en) * | 2015-04-29 | 2017-01-17 | Qualcomm Incorporated | Methods and apparatuses for memory power reduction |
US9977730B2 (en) * | 2015-05-08 | 2018-05-22 | Dell Products, Lp | System and method for optimizing system memory and input/output operations memory |
US10007435B2 (en) | 2015-05-21 | 2018-06-26 | Micron Technology, Inc. | Translation lookaside buffer in memory |
JP6212073B2 (ja) * | 2015-06-29 | 2017-10-11 | ファナック株式会社 | プログラムの内容に応じて格納先を自動選択する機能を備えた数値制御装置 |
US9690494B2 (en) * | 2015-07-21 | 2017-06-27 | Qualcomm Incorporated | Managing concurrent access to multiple storage bank domains by multiple interfaces |
US10003529B2 (en) * | 2015-08-04 | 2018-06-19 | Telefonaktiebolaget Lm Ericsson (Publ) | Method and system for memory allocation in a software-defined networking (SDN) system |
US9740438B2 (en) * | 2015-08-20 | 2017-08-22 | Sap Se | Allocating memory on multiple types of main memory technologies from software application layer |
US20170108911A1 (en) * | 2015-10-16 | 2017-04-20 | Qualcomm Incorporated | System and method for page-by-page memory channel interleaving |
US20170108914A1 (en) * | 2015-10-16 | 2017-04-20 | Qualcomm Incorporated | System and method for memory channel interleaving using a sliding threshold address |
GB2545170B (en) * | 2015-12-02 | 2020-01-08 | Imagination Tech Ltd | GPU virtualisation |
US11762764B1 (en) * | 2015-12-02 | 2023-09-19 | Pure Storage, Inc. | Writing data in a storage system that includes a first type of storage device and a second type of storage device |
US20170168541A1 (en) | 2015-12-15 | 2017-06-15 | Intel Corporation | Processor core energy management |
US20170185292A1 (en) * | 2015-12-23 | 2017-06-29 | Intel Corporation | Memory Management of High-Performance Memory |
CN105676727B (zh) * | 2016-01-11 | 2018-03-02 | 西北工业大学 | 一种发动机燃油供应系统控制时序存储和读取方法 |
US10140216B2 (en) * | 2016-01-21 | 2018-11-27 | Arm Limited | Measuring address translation latency |
US9830086B2 (en) * | 2016-03-03 | 2017-11-28 | Samsung Electronics Co., Ltd. | Hybrid memory controller for arbitrating access to volatile and non-volatile memories in a hybrid memory group |
US20170262367A1 (en) * | 2016-03-11 | 2017-09-14 | Qualcomm Incorporated | Multi-rank collision reduction in a hybrid parallel-serial memory system |
CN106657718B (zh) * | 2016-11-07 | 2019-12-06 | 金陵科技学院 | 实现虚拟现实的数据传送系统及其方法 |
US10866912B2 (en) | 2017-03-10 | 2020-12-15 | Toshiba Memory Corporation | Integrated heterogeneous solid state storage drive |
CN107102824B (zh) * | 2017-05-26 | 2019-08-30 | 华中科技大学 | 一种基于存储和加速优化的Hadoop异构方法和系统 |
US11049009B2 (en) | 2017-06-12 | 2021-06-29 | Western Digital Technologies, Inc. | Identifying memory block write endurance using machine learning |
US10445009B2 (en) * | 2017-06-30 | 2019-10-15 | Intel Corporation | Systems and methods of controlling memory footprint |
US10783252B2 (en) | 2017-08-23 | 2020-09-22 | Qualcomm Incorporated | System and method for booting within a heterogeneous memory environment |
US10691805B2 (en) * | 2018-02-14 | 2020-06-23 | GM Global Technology Operations LLC | Resident manufacturing test software based system for mitigating risks associated with vehicle control modules |
US20190370009A1 (en) * | 2018-06-03 | 2019-12-05 | Apple Inc. | Intelligent swap for fatigable storage mediums |
CN110928737B (zh) * | 2018-09-19 | 2021-05-18 | 华为技术有限公司 | 监控样本进程的内存访问行为的方法和装置 |
US11176493B2 (en) | 2019-04-29 | 2021-11-16 | Google Llc | Virtualizing external memory as local to a machine learning accelerator |
CN112016693B (zh) * | 2019-05-30 | 2021-06-04 | 中兴通讯股份有限公司 | 机器学习引擎实现方法及装置、终端设备、存储介质 |
CN110265029A (zh) * | 2019-06-21 | 2019-09-20 | 百度在线网络技术(北京)有限公司 | 语音芯片和电子设备 |
US11099758B2 (en) * | 2019-07-16 | 2021-08-24 | Facebook Technologies, Llc | Memory management of computing devices |
US10996975B2 (en) | 2019-08-22 | 2021-05-04 | Micron Technology, Inc. | Hierarchical memory systems |
US11650742B2 (en) * | 2019-09-17 | 2023-05-16 | Micron Technology, Inc. | Accessing stored metadata to identify memory devices in which data is stored |
US11494311B2 (en) | 2019-09-17 | 2022-11-08 | Micron Technology, Inc. | Page table hooks to memory types |
US11733763B2 (en) * | 2020-08-06 | 2023-08-22 | Micron Technology, Inc. | Intelligent low power modes for deep learning accelerator and random access memory |
WO2022118322A1 (en) * | 2020-12-02 | 2022-06-09 | Unifabrix Ltd. | System and method for multimodal computer address space provisioning |
US11791326B2 (en) | 2021-05-10 | 2023-10-17 | International Business Machines Corporation | Memory and logic chip stack with a translator chip |
US20240168535A1 (en) * | 2022-11-22 | 2024-05-23 | Gopro, Inc. | Dynamic power allocation for memory using multiple interleaving patterns |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04230508A (ja) * | 1990-10-29 | 1992-08-19 | Internatl Business Mach Corp <Ibm> | 低電力消費メモリ装置 |
JPH11242629A (ja) * | 1997-10-09 | 1999-09-07 | Matsushita Electric Ind Co Ltd | メモリシステム |
US7330954B2 (en) | 2002-04-18 | 2008-02-12 | Intel Corporation | Storing information in one of at least two storage devices based on a storage parameter and an attribute of the storage devices |
JP2004310580A (ja) * | 2003-04-09 | 2004-11-04 | Mitsubishi Electric Corp | メモリマップ最適化方式及びメモリマップ最適化方法 |
WO2008055270A2 (en) | 2006-11-04 | 2008-05-08 | Virident Systems, Inc. | Writing to asymmetric memory |
WO2009052525A1 (en) | 2007-10-19 | 2009-04-23 | Virident Systems, Inc. | Managing memory systems containing components with asymmetric characteristics |
GB2460393B (en) | 2008-02-29 | 2012-03-28 | Advanced Risc Mach Ltd | A data processing apparatus and method for controlling access to secure memory by virtual machines executing on processing circuitry |
JP2011022933A (ja) * | 2009-07-17 | 2011-02-03 | Toshiba Corp | メモリ管理装置を含む情報処理装置及びメモリ管理方法 |
KR101038167B1 (ko) | 2008-09-09 | 2011-05-31 | 가부시끼가이샤 도시바 | 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법 |
GB2474666B (en) | 2009-10-21 | 2015-07-15 | Advanced Risc Mach Ltd | Hardware resource management within a data processing system |
US8589650B2 (en) * | 2010-05-17 | 2013-11-19 | Texas Instruments Incorporated | Dynamically configurable memory system |
GB2483907A (en) | 2010-09-24 | 2012-03-28 | Advanced Risc Mach Ltd | Privilege level switching for data processing circuitry when in a debug mode |
GB2483906C (en) * | 2010-09-24 | 2019-10-09 | Advanced Risc Mach Ltd | Selection of debug instruction set for debugging of a data processing apparatus |
US8239620B2 (en) | 2010-09-27 | 2012-08-07 | Mips Technologies, Inc. | Microprocessor with dual-level address translation |
US8990538B2 (en) | 2010-11-05 | 2015-03-24 | Microsoft Corporation | Managing memory with limited write cycles in heterogeneous memory systems |
-
2012
- 2012-08-07 US US13/568,523 patent/US9047090B2/en active Active
-
2013
- 2013-06-13 JP JP2015526533A patent/JP5916955B2/ja not_active Expired - Fee Related
- 2013-06-13 IN IN51MUN2015 patent/IN2015MN00051A/en unknown
- 2013-06-13 EP EP13734550.0A patent/EP2883146A1/en not_active Withdrawn
- 2013-06-13 WO PCT/US2013/045685 patent/WO2014025454A1/en active Application Filing
- 2013-06-13 CN CN201380041635.XA patent/CN104520823B/zh not_active Expired - Fee Related
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11182311B2 (en) | 2019-09-24 | 2021-11-23 | Kabushiki Kaisha Toshiba | Virtualization support device, control method of virtualization support device, and calculation system |
Also Published As
Publication number | Publication date |
---|---|
CN104520823A (zh) | 2015-04-15 |
US20140047251A1 (en) | 2014-02-13 |
IN2015MN00051A (ja) | 2015-10-16 |
US9047090B2 (en) | 2015-06-02 |
JP2015528597A (ja) | 2015-09-28 |
CN104520823B (zh) | 2016-05-04 |
WO2014025454A1 (en) | 2014-02-13 |
EP2883146A1 (en) | 2015-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5916955B2 (ja) | ハイブリッドメモリ管理のための方法、システムおよびデバイス | |
US9311011B2 (en) | Dynamic address negotiation for shared memory regions in heterogenous multiprocessor systems | |
CN107636625B (zh) | 用于共享系统高速缓存的虚拟化控制的方法和装置 | |
TWI614752B (zh) | 經由記憶體通道關閉之節電技術 | |
US8041920B2 (en) | Partitioning memory mapped device configuration space | |
US20160267013A1 (en) | Techniques to prelink software to improve memory de-duplication in a virtual system | |
KR102423713B1 (ko) | 가상 어드레스를 물리적 어드레스로 번역을 수행하기 위해 입력-출력 메모리 관리 유닛내 다수의 메모리 소자들 사용 | |
US20190188028A1 (en) | Paravirtualized access for device assignment by bar extension | |
EP1966703B1 (en) | Method and apparatus for hardware-based dynamic escape detection in managed run-time environments | |
JP2012533124A (ja) | ブロックベースの非透過的キャッシュ | |
EP3757799B1 (en) | System and method to track physical address accesses by a cpu or device | |
US12131063B2 (en) | Methods and apparatus for offloading tiered memories management | |
US10365947B2 (en) | Multi-core processor including a master core performing tasks involving operating system kernel-related features on behalf of slave cores | |
JP2020514859A (ja) | 変換索引バッファにおける構成可能なスキューアソシエイティビティ | |
CN110597742A (zh) | 用于具有持久系统存储器的计算机系统的改进存储模型 | |
US10678705B2 (en) | External paging and swapping for dynamic modules | |
KR102544401B1 (ko) | 어드레스 트랜슬레이션 캐시 및 이를 포함하는 시스템 | |
US20230004417A1 (en) | Method and apparatus to select assignable device interfaces for virtual device composition | |
US11714753B2 (en) | Methods and nodes for handling memory |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20150710 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20150710 |
|
A871 | Explanation of circumstances concerning accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A871 Effective date: 20150710 |
|
A975 | Report on accelerated examination |
Free format text: JAPANESE INTERMEDIATE CODE: A971005 Effective date: 20150804 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20151005 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20151224 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20160307 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160405 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5916955 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |