首页 / 专利库 / 电脑零配件 / 计算机系统 / 软件 / 系统软件 / 操作系统 / 内核 / 異種メモリの動的管理

異種メモリの動的管理

阅读:412发布:2024-02-12

专利汇可以提供異種メモリの動的管理专利检索,专利查询,专利分析的服务。并且コンピューティングデバイスを動作させる方法が、異なるタイプのアプリケーションからのワークロードまたは要求に基づいて、少なくとも2つのタイプのメモリを動的に管理するステップを含む。第1のタイプのメモリは、コンピューティングデバイスにおける第2のタイプのメモリよりも、高い帯域幅、低いメモリ待機時間、および/または低い電 力 消費を有することができる高性能メモリであってよい。一実施形態において、コンピューティングデバイスは、1つまたは複数のプロセッサコアと共に 位置 付けられたワイドI/O DRAMを含むシステムオンチップ(SoC)を含む。低電力ダブルデータレート3動的ランダムアクセスメモリ(LPDDR3 DRAM)メモリは、SoCに外部的に接続される、またはSoCの埋め込み部分である。実施形態において、コンピューティングデバイスは、少なくとも、携帯電話、モバイルデバイス、埋め込みシステム、ビデオゲーム、メディアコンソール、ラップトップコンピューター、デスクトップコンピューター、サーバー、および/またはデータセンターに含まれてよい。,下面是異種メモリの動的管理专利的具体信息内容。

集積回路メモリのタイプを、コンピューティングデバイスによって処理されるアプリケーションに割り当てるための方法であって、 前記コンピューティングデバイスにおいて前記アプリケーションに利用可能な集積回路メモリのタイプを判定するステップであって、利用可能な集積回路メモリの前記タイプが、第1のタイプの集積回路メモリおよび第2のタイプの集積回路メモリを含む、判定するステップと、 前記第1のタイプの集積回路メモリを使用するための、前記アプリケーションからの要求を受信するステップと、 前記アプリケーションからの前記要求に応答して、前記アプリケーションによって使用されるように前記第1のタイプの集積回路メモリを割り当てるステップと を含む方法。前記第1のタイプの集積回路メモリが、前記第2のタイプの集積回路メモリよりも優れている少なくとも1つまたは複数の性能特性を有する、請求項1に記載の方法。前記第1のタイプの集積回路メモリが、前記第2のタイプの集積回路メモリよりも、高い帯域幅、低いメモリ待機時間、または低い電消費のうちの少なくとも1つを有する、請求項1に記載の方法。前記判定するステップが、メモリ性能特性のリストから、前記第1のタイプの集積回路メモリおよび前記第2のタイプの集積回路メモリの性能特性にアクセスするステップを含む、請求項1に記載の方法。性能特性の前記リストが、インターネットを介して取得され、性能特性の前記リストが、プロセッサ可読フォーマットで記憶される、請求項1に記載の方法。前記受信するステップが、前記アプリケーションからの前記要求が前記第1のタイプの集積回路メモリを使用するための要求を含むことを指し示す、アプリケーションマニフェスト上の属性情報を読み出すステップを含む、請求項1に記載の方法。前記割り当てるステップが、前記コンピューティングデバイスにおける物理メモリ領域へのメモリページの割り当てを管理する、メモリコントローラーの仮想メモリアロケーターまたは物理メモリアロケーターのうちの少なくとも1つに、前記要求を転送するステップを含む、請求項1に記載の方法。前記第1のタイプの集積回路メモリにおいて、メモリロケーションおよび前記アプリケーションの使用を監視するステップをさらに含む請求項1に記載の方法。前記アプリケーションを、前記コンピューティングデバイスにおけるアプリケーションの記憶されたリストと比較するステップ をさらに含み、 前記アプリケーションが前記記憶されたリスト上にあることに応答して、前記第1のタイプの集積回路メモリを割り当てるステップが、前記アプリケーションによって使用されるように前記第2のタイプの集積回路メモリを割り当てるステップに取って代えられ、 前記アプリケーションの使用が前記第1のタイプの集積回路メモリの物理メモリ空間を超えることになるとき、前記第1のタイプの集積回路メモリを前記割り当てるステップが、前記アプリケーションによって使用されるように前記第2のタイプの集積回路メモリを割り当てるステップに取って代えられる、 請求項1に記載の方法。前記アプリケーションによってアクセス可能なキャッシュメモリとして前記第1のタイプの集積回路メモリを割り当てるステップをさらに含む請求項1に記載の方法。前記判定するステップが、前記第1のタイプの集積回路メモリおよび前記第2のタイプの集積回路メモリへの前記集積回路メモリに関する情報を求める要求を開始するステップを含み、前記集積回路メモリに関する前記情報が、メモリ構成または電力管理のうちの1つから選択される、請求項1に記載の方法。1つまたは複数のプロセッサと、 第1の性能特性を有する第1のプロセッサ可読メモリ、および第2の性能特性を有する第2のプロセッサ可読メモリであって、前記第1の性能特性が前記第2の性能特性よりも優れている、第1のプロセッサ可読メモリおよび第2のプロセッサ可読メモリと、 1つまたは複数のソフトウェアアプリケーションと、 プロセッサ可読命令を含むオペレーティングシステムと を含む装置であって、 前記1つまたは複数のプロセッサが、前記オペレーティングシステムの前記プロセッサ可読命令を実行して、 1つまたは複数のソフトウェアアプリケーションが前記第1のプロセッサ可読メモリの使用を要求するかどうかを判定し、 前記1つまたは複数のソフトウェアアプリケーションが使用するプロセッサ可読メモリの量を判定し、 前記第1のプロセッサ可読メモリの使用を求める要求、および前記1つまたは複数のソフトウェアアプリケーションが使用するプロセッサ可読メモリの前記量に応答して、前記1つまたは複数のソフトウェアアプリケーションのうちの少なくとも1つに、前記第1のプロセッサ可読メモリへのアクセスを許可する、 装置。前記第1の性能特性および前記第2の性能特性が、帯域幅、メモリ待機時間、または電力消費のうちの1つから選択される、請求項12に記載の装置。前記1つまたは複数のプロセッサおよび第1のプロセッサ可読メモリが、第1のパッケージによって収容される単一の半導体ダイに集積され、前記第2のプロセッサ可読メモリが、第2のパッケージによって収容される第2の半導体ダイに含まれる、請求項12に記載の装置。前記1つまたは複数のプロセッサが、第1の半導体ダイに含まれ、前記第1のプロセッサ可読メモリが、第2の半導体ダイに含まれ、前記第1のダイおよび前記第2のダイが、第1のパッケージによって収容され、前記第2のプロセッサ可読メモリが、第2のパッケージによって収容される第3の半導体ダイに含まれる、請求項12に記載の装置。

说明书全文

[0001]オペレーティングシステム(OS)は、コンピュータハードウェアリソースを管理するプロセッサ可読命令を含み、アプリケーションプログラム(アプリケーション)などのプロセッサ可読命令を有する他のコンピューティングプログラムに、共通のサービスを提供する。通常、OSは、アプリケーションとコンピュータハードウェアとの間の仲介としての役割を果たす。OSは、通常、コンピューティングリソースの効率的な使用のためのタスクをスケジュールする。OSは、通常、キーボードからの入を認識する、ディスプレイスクリーンに出力を送る、ファイルおよびディレクトリの経過を追う、ならびにプリンターおよびディスクドライブなどの周辺デバイスを制御するなどの、基本タスクを実施する。

[0002]コンピューティングデバイスを動作させる方法が、異なるタイプのアプリケーションからのワークロードまたは要求に基づいて、少なくとも2つのタイプのメモリ(異種メモリ)を動的に管理するステップを含む。第1のタイプのメモリは、コンピューティングデバイスにおける第2のタイプのメモリよりも、高い帯域幅、低いメモリ待機時間(latency)、摩耗(wear−out)前の多い書き込み数、および/または低い電力消費を有することができる高性能メモリあってよい。一実施形態において、コンピューティングデバイスは、1つまたは複数のプロセッサコアに隣接して位置付けられたワイドI/O DRAM(より高性能なメモリの例)を含むシステムオンチップ(SoC:system on a chip)を含む。低電力ダブルデータレート3動的ランダムアクセスメモリ(LPDDR3 DRAM:Low Power Double Data Rate 3 dynamic random access memory)メモリ(従来のメモリの例)が、内部的または外部的のいずれかでSoCに接続される。実施形態において、コンピューティングデバイスは、少なくとも、携帯電話、モバイルデバイス、埋め込みシステム、ビデオゲームコンソール、メディアコンソール、ラップトップコンピューター、デスクトップコンピューター、サーバー、および/またはデータセンターに含まれてよい。

[0003]一実施形態において、OSは、より高性能なメモリを、特定のワークロードまたは機能(たとえば、レイトレーシング、フレーム/ビデオバッファリング、NUI(ナチュラルユーザーインターフェイス)データバッファリング)を有する一定のアプリケーションに割り当てる。OSは、新しいデータがより高性能なメモリを占有する必要があるときには、より高性能なメモリからデータを転送することができる。OSおよび1つまたは複数のプロセッサは、メモリコントローラー論理ハードウェアおよび/またはソフトウェアと共に、データ完全性を維持するためのエラー訂正もまた実施する。異なるタイプのメモリの能力および/または性能特性を判定する目的のために、メモリ特性のオンライン(web)プロセッサ可読カタログが、OSによってアクセスされてよい。

[0004]一実施形態において、アプリケーションは、特定のアプリケーションが高性能メモリの使用から利益を得ることをOSに指し示す属性フラグまたは属性情報を、アプリケーションマニフェストに有する。要求するアプリケーションがアプリケーションマニフェスト上にないとき、または要求するアプリケーションが利用可能であるよりも多い量の高性能メモリを要求するとき、OSは、高性能メモリへのアクセスを許可しなくてもよい。一実施形態において、OSは、アプリケーションの実行を監視し、メモリロケーションアクセスおよび使用パターンの経過を追う。実施形態において、OSは、属性フラグまたは属性情報を、メモリコントローラーまたはメモリマネジャーなどの、仮想メモリアロケーターまたは物理メモリアロケーターに渡すことができる。

[0005]一実施形態において、高性能メモリは、仮想キャッシュメモリ、またはキャッシュメモリとして使用されてよい。 [0006]OSまたはメモリコントローラーはまた、実施形態において、メモリ動作の詳細を取得するために異なるタイプのメモリを問い合わせるだけでなく、健全性および性能情報について定期的に異なるタイプのメモリを問い合わせることができる。OSまたはメモリコントローラーはまた、異なるタイプのメモリの電力消費状態を管理することができる。

[0007]方法の実施形態が、メモリのタイプを、コンピューティングデバイスによって処理されるアプリケーションに割り当てる。方法は、コンピューティングデバイスにおいて利用可能な集積回路メモリのタイプを判定するステップを含む。利用可能な集積回路メモリのタイプは、第1の高性能タイプのメモリと、第2のタイプの高性能メモリではないメモリとを含む。高性能メモリを使用するための、アプリケーションからの要求が受信される。要求に応答して、高性能メモリがアプリケーションに割り当てられる。

[0008]装置の実施形態が、1つまたは複数のプロセッサと、第1の性能特性を有する第1のプロセッサ可読メモリとを含む。装置はまた、第2の性能特性を有する第2のプロセッサ可読メモリを含む。第1の性能特性は、第2の性能特性よりも優れている。1つまたは複数のプロセッサは、OSのプロセッサ可読命令を実行して、1つまたは複数のソフトウェアアプリケーションが第1のプロセッサ可読メモリの使用を要求するかどうか、および1つまたは複数のアプリケーションが使用するプロセッサ可読メモリの量を判定する。1つまたは複数のプロセッサは、OSのプロセッサ可読命令を実行して、第1のプロセッサ可読メモリの使用を求める要求、および1つまたは複数のアプリケーションが使用するプロセッサ可読メモリの量に応答して、1つまたは複数のアプリケーションのうちの少なくとも1つに、第1のプロセッサ可読メモリへのアクセスを許可する。

[0009]別の実施形態において、1つまたは複数のプロセッサ可読メモリデバイスが、実行されるときに、1つまたは複数のプロセッサに、高性能メモリをアプリケーションに割り当てる方法を実施させる命令を含む。高性能メモリを使用するためのアプリケーションからの要求、およびアプリケーションが使用することになるメモリの量が受信される。利用可能である高性能メモリの量について判定がなされる。アプリケーションが使用することになるメモリの量、および利用可能な高性能メモリの量に応答して、アプリケーションは、高性能メモリを割り当てられる。

[0010]本概要は、詳細な説明において以下でさらに説明される概念の選択を、簡略化された形式において導入するために提供される。本概要は、特許請求される主題の重要な特徴または必須の特徴を識別するようには意図されず、特許請求される主題の範囲を特定する補助として使用されることも意図されない。

[0011]コンピューティングデバイスの例示的なハードウェアアーキテクチャの高レベルブロック図である。

[0012]異なるタイプのメモリにアクセスするための例示的なソフトウェアアーキテクチャの高レベルブロック図である。

[0013]異なるタイプのメモリにアクセスするための例示的なOSアーキテクチャの高レベルブロック図である。

[0014]例示的な異種メモリの動的管理ソフトウェアの高レベルブロック図である。

[0015]異なるタイプのメモリを1つまたは複数のアプリケーションに割り当てるための例示的な方法の流れ図である。

[0016]高性能メモリを仮想キャッシュとして使用するための例示的な方法の流れ図である。

[0017]高性能メモリをキャッシュとして使用するための例示的な方法の流れ図である。

[0018]構成、性能、および健全性を含むメモリ情報を取得するために、異なるタイプのメモリをクエリするための例示的な方法の流れ図である。

[0019]異なるタイプのメモリ電力を管理するための例示的な方法の流れ図である。

[0020]例示的なゲーミングおよびメディアシステムの等図である。

[0021]図7に示されたゲーミングおよびメディアシステムのコンポーネントの例示的な機能ブロック図である。




[0022]SoC(SOCとしてもまた知られている)は、コンピューティングデバイスまたは他の電子システムの、電子コンポーネントおよび/またはサブシステムを、単一のパッケージ内に収容される単一の半導体基板および/または単一のチップに集積した、集積回路(IC)である。たとえば、以前はパーソナルコンピューター(PC)のメモリモジュールサブシステムにあったメモリは、現在は、SoCに含まれてもよい。同様に、メモリ制御論理は、別々にパッケージされたメモリコントローラーにではなく、SoCのプロセッサに含まれてもよい。


[0023]SoCの1つまたは複数のプロセッサはまた、異なるタイプのメモリ特性を有する異なるタイプのメモリにアクセスすることができる。メモリ特性または性能パラメーターは、限定はされないが、帯域幅、メモリ待機時間、電力消費、摩耗前の書き込み数、および/または熱発生を含むことができる。より高い帯域幅を有する(または、時間周期ごとに、他のメモリよりも多くのデータを送信もしくは受信することができる)メモリなどの高性能メモリは、より高価であってよく、特定の高性能特性を有さないメモリほどには利用可能でないことがある。


[0024]図1は、コンピューティングデバイスの実施形態の例示的なハードウェアアーキテクチャの高レベルブロック図である。実施形態において、コンピューティングデバイス100は、少なくとも、携帯電話、モバイルデバイス、埋め込みシステム、ビデオゲームコンソール、メディアコンソール、ラップトップコンピューター、デスクトップコンピューター、サーバー、および/またはデータセンターに含まれてよい。


[0025]コンピューティングデバイス100は、一実施形態において、SoC101と、メモリ104とを含む。SoCは、コンピューティングデバイスまたは他の電子システムのコンポーネントを、単一のチップまたは半導体基板に集積したICである。SoC101は、1つまたは複数のプロセッサコア103と、高性能メモリ102とを含む。プロセッサコア103は、内部信号経路106を用いて、高性能メモリ102と通信する。一実施形態において、高性能メモリ102は、信号経路106に結合されたインターフェイス102aを含む。プロセッサコア103はまた、外部信号経路105を用いて、外部メモリ104とも通信する。一実施形態において、信号経路106および105は、OS、およびSoC101内の埋め込みメモリコントローラーによって制御される別々の信号経路である。


[0026]一実施形態において、メモリ104は、SoC101の外部にあり、マザーボードなどのプリント回路板上の、メモリモジュールまたははんだ付けコンポーネントとして構成されてよい。一実施形態において、メモリ104は、プリント回路板上の少なくともトレースまたは信号線を含む信号経路105に結合されたインターフェイスを含む。一実施形態において、SoC101はまた、信号経路105を含む同じプリント回路板に結合される。


[0027]当業者が認めるように、他の電子コンポーネントがSoC101に含まれてもよい。SoC101は、デジタル回路、アナログ回路、混合信号回路、および/または無線周波数回路のうちの1つまたは複数を、単一の半導体基板上に含むことができる。SoC101は、発振器、位相ロックループ、カウンタータイマー、リアルタイムタイマー、電源オンリセット生成器、外部インターフェイス(たとえば、ユニバーサルシリアルバス(USB)、IEEE1394インターフェイス(ファイヤーワイヤー)、イーサネット(登録商標)、ユニバーサル非同期受信機/送信機(USART:Universal Asynchronous Receiver/Transmitter)、およびシリアル周辺バス(SPI:Serial Peripheral Bus))、アナログインターフェイス、電圧調整器、および/または電力管理回路を含むことができる。


[0028]代替実施形態において、SoC101は、システムインパッケージ(SiP:System in package)、またはパッケージオンパッケージ(PoP:package on package)に取って代えられてもよい。SiPにおいては、複数のチップまたは半導体基板が、単一のパッケージに収容される。SiP実施形態において、プロセッサコア103は、1つの半導体基板上にあることになり、高性能メモリ102は、第2の半導体基板上にあることになり、両方が、単一のパッケージに収容されることになる。一実施形態において、第1の半導体基板は、ワイヤーボンディングによって第2の半導体基板に結合されることになる。


[0029]PoP実施形態においては、プロセッサコア103は、第1のパッケージに収容される1つの半導体ダイ上にあることになり、高性能メモリ102は、第2の異なるパッケージに収容される第2の半導体ダイ上にあることになる。第1のパッケージおよび第2のパッケージは次いで、標準インターフェイスでスタックされて、パッケージ間で、特に半導体ダイの間で信号をルーティングすることができる。スタックされたパッケージは次いで、一実施形態において、コンポーネントとしてのメモリ104を有するプリント回路板に結合されてよい。


[0030]実施形態において、プロセッサコア103は、メモリに記憶されたプロセッサ(またはマシン)可読命令を実行する(または読み出す)1つまたは複数のプロセッサを含む。プロセッサ可読命令の例は、コンピューティングデバイス100のための、OSおよび/またはアプリケーションソフトウェアプログラム(アプリケーション)(図2に示されるOS205およびアプリケーション202〜204など)を含むことができる。プロセッサコア103は、OSおよびアプリケーションのプロセッサ可読命令の実行に応答して、高性能メモリ102およびメモリ104を使用する。一実施形態において、プロセッサコア103は、プロセッサおよびメモリコントローラーを含むことができ、または代替的に、メモリコントローラーによって同様に実施されるメモリ管理機能もまた実施するプロセッサを含んでもよい。プロセッサコア103はまた、コントローラー、中央処理ユニット(CPU)、グラフィックス処理ユニット(GPU)、デジタル信号プロセッサ(DSP)、および/またはフィールドプログラマブルゲートアレイ(FPGA)を含むことができる。一実施形態において、高性能メモリ102は、プロセッサコア103の上部に位置付けられる。


[0031]一実施形態において、高性能メモリ102は、帯域幅、メモリ待機時間、熱発生、摩耗前の書き込み数、および/または電力消費などの、少なくとも1つまたは複数のメモリ特性を有し、そのメモリ特性は、性能においてメモリ104よりも優れている。たとえば、高性能メモリ102は、メモリ104よりも高い帯域幅を有するワイドI/O DRAMであってよい。メモリ104は、低電力ダブルデータレート3動的ランダムアクセスメモリ(LPDDR3 DRAM)メモリ(低電力DDR、モバイルDDR(MDDR)またはmDDRとしても知られる)であってよい。一実施形態において、メモリインターフェイス102aは、信号経路106上で信号を送受信するワイドI/O DRAMインターフェイスであり、一方、メモリインターフェイス104aは、信号経路105上で信号を送受信するLPDDR3 DRAMインターフェイスである。


[0032]実施形態において、高性能メモリ102およびメモリ104は、別々の半導体基板上に配置されたICにおいて、メモリセルの1つまたは複数のアレイを含む。一実施形態において、高性能メモリ102およびメモリ104は、別々にパッケージされたデバイスに収容されたそれぞれの集積モノリシック回路に含まれる。実施形態において、高性能メモリ102およびメモリ104は、揮発性および/または不揮発性メモリを含むことができる。


[0033]揮発性メモリのタイプには、動的ランダムアクセスメモリ(DRAM)、分子電荷ベース(molecular charge−based)の(ZettaCore)DRAM、フローティングボディDRAM、および静的ランダムアクセスメモリ(「SRAM」)が含まれるが、これらに限定はされない。特定のタイプのDRAMは、ダブルデータレートSDRAM(「DDR」)、または後世代SDRAM(たとえば、「DDRn」)を含む。


[0034]不揮発性メモリのタイプには、電気的に消去可能なプログラム読み出し専用メモリ(「EEPROM」)、FLASH(NANDおよびNOR FLASHを含む)、ONO FRASH、磁気抵抗または磁気RAM(「MRAM」)、強誘電体(ferroelectric)RAM(「FRAM(登録商標)」)、ホログラフィックメディア、オボニック/相変化(ovonic/phase change)、ナノ結晶体、ナノチューブRAM(NRAM−Nantero)、MEMS走査プローブシステム、MEMSカンチレバー(cantilever)スイッチ、ポリマー、分子、ナノフローティングゲート、および単一電子のタイプが含まれるが、これらに限定はされない。


[0035]実施形態において、信号経路105/106は、信号を転送するメディアであり、たとえば、相互接続、伝導要素、接触子、ピン、半導体基板における領域(region)、ワイヤー、金属トレース/信号線、または光電導体の単独または組合せである。一実施形態において、複数の信号経路が、図に示された単一の信号経路に取って代わってもよく、単一の信号経路が、図に示された複数の信号経路に取って代わってもよい。実施形態において、信号経路は、バスおよび/またはポイントツーポイント接続を含むことができる。一実施形態において、信号経路は、制御信号線およびデータ信号線を含む。代替実施形態において、信号経路は、データ信号線または制御信号線を含む。さらに他の実施形態において、信号経路は、単方向(一方向に移動する信号)、または双方向(2方向に移動する信号)、あるいは単方向信号線および双方向信号線の両方の組合せである。


[0036]図2は、異なるタイプのメモリにアクセスするための例示的なソフトウェアアーキテクチャ200の高レベルブロック図である。OS205、および特に異種メモリの動的管理(DMHM:dynamic management of heterogeneous memory)308が、機能の中でもとりわけ、どのアプリケーション202〜204が高性能メモリ208を割り当てられ、どのアプリケーション202〜204がメモリ209を割り当てられるかを判定する。実施形態において、高性能メモリ208は、本明細書で説明され図1に示された高性能メモリ102に対応し、メモリ209は、本明細書で説明され図1に示されたメモリ104に対応する。DMHM308は、アプリケーション202〜204のうちの1つが属性フラグまたは属性情報を用いて高性能メモリを要求したかどうかに少なくとも基づいて、アプリケーション202〜204のうちのどれが高性能メモリ208にアクセスできることになるかを判定する。特定のアプリケーションが特定のメモリタイプ(高性能メモリ208か、メモリ209のどちらか)を割り当てられることになるという判定がなされると、適切なデバイスドライバー206が、OS205と共に使用される。


[0037]OS205、特にDMHM308はまた、電力制御インターフェイス(ACPI:advanced configuration and power interface)ドライバー、レジスタ、基本入力/出力システム(BIOS)およびテーブル(ひとまとめにしてARBT)207を使用して、本明細書で詳細に説明されるように、高性能メモリ208およびメモリ209の健全性、電力、および性能の監視などの、他の機能を実施する。ACPIドライバーは、メモリなどのハードウェアコンポーネントを発見し、構成し、電力管理し、監視する。たとえば、OS205は、使用されていないときの周辺デバイスをオフにするために、ACPIドライバーを使用することができる。BIOSは、入力および出力動作を制御するファームウェアにおける一組のコンピューター命令であり、これは通常、不揮発性メモリに記憶される。一実施形態において、ACPIドライバーは、OS205に、BIOSと通信して、BIOSに周辺機器の電力を落とすよう命令することを許可する。


[0038]図3Aは、異なるタイプのメモリにアクセスするためのOSアーキテクチャ300の高レベルブロック図である。一実施形態において、OS205は、図3Aに示されるソフトウェアコンポーネントのうちの1つまたは複数を含む。一実施形態において、ソフトウェアコンポーネントは、ソフトウェアプログラム、ソフトウェアオブジェクト、ソフトウェア関数、ソフトウェアサブルーチン、ソフトウェアメソッド、ソフトウェアインスタンス、スクリプト、および/またはコードフラグメントを、単独で、または組み合わせて含むことができる。たとえば、OS205は、プロセス管理301、メモリ管理302、I/Oデバイス管理303、ファイル管理304、ネットワーク管理305、ユーザーインターフェイス306、および保護307のうちの1つまたは複数を含む。さまざまなOSソフトウェアコンポーネントによって実施され得る1つまたは複数の例示的な機能が、以下で説明される。代替実施形態において、より多い、もしくはより少ないソフトウェアコンポーネント、および/または以下で説明されるソフトウェアコンポーネントの機能が使用されてもよい。


[0039]実施形態において、OS205の少なくとも一部は、プロセッサ可読メモリデバイスに記憶される。一実施形態において、OS205の少なくとも一部は、図1に示された高性能メモリ102および/またはメモリ104に記憶される。


[0040]プロセス管理301は、ユーザープロセスおよびシステムプロセスを作成し、削除することを担当する。プロセス管理301は、プロセスの中断および再開もまた担当することができる。プロセス管理301は、プロセスの同期および通信もまた担当する。プロセス管理301は、デッドロック処理もまた担当する。


[0041]メモリ管理302は、特定のソフトウェアコンポーネントまたはアプリケーションによって、異なるタイプのメモリにおいてメモリのどの部分が現在使用されているかの経過を追うことを担当する。メモリ管理302はまた、メモリ空間が利用可能になるときに、どのプロセスがメモリにロードされるのかを決める。メモリ管理はまた、必要に応じて、メモリ空間を割り当て、割り当てを解除する。


[0042]一実施形態において、異種メモリの動的管理(DMHM)308は、メモリ管理302に含まれる。DMHM308は、利用可能なメモリのタイプを判定する、特定のタイプのメモリを特定のアプリケーションに割り当てる、アプリケーションのメモリ使用を監視する、エラー検出および訂正を実施する、利用可能なキャッシュを判定する、メモリを実際のキャッシュまたは仮想キャッシュとして使用する、メモリの性能、健全性、および構成を監視する、および異なるタイプのメモリの電力を管理することを担当するが、これらに限定はされない。一実施形態において、DMHM308の機能のうちの1つまたは複数を実施するためのソフトウェアコンポーネントが、図3Bに示される。


[0043]一実施形態において、DMHM308は、図3Bに示されるように、メモリタイプ310、割り当て311、使用監視312、検出およびエラー訂正313、キャッシュ管理314、性能、健全性および構成監視315、ならびに/または、電力管理316のソフトウェアコンポーネントのうちの1つまたは複数を含む。


[0044]メモリタイプ310は、コンピューティング環境において何のタイプのメモリが利用可能であるかを判定することを担当する。一実施形態において、メモリタイプ310は、コンピューティング環境をクエリして、何のタイプのメモリが利用可能であるかを判定する。一実施形態において、メモリタイプ310は、いずれかの高性能メモリが利用可能であるかどうかを判定する。一実施形態において、メモリタイプ310は、コンピューティングデバイス100などのコンピューティング環境において、リストされたアプリケーションに関連付けられたメモリのタイプについての能力および/または性能特性を判定する目的のために、インターネットを介して、アプリケーション特性のオンライン(web)カタログにアクセスする。特定のメモリが、所定の閾値よりも高い帯域幅を有するなど、アプリケーションに適切な一定の能力および/または性能特性を有するとき、メモリタイプ310は、特定のメモリを、高性能メモリとして指定することになる。メモリが所定の閾値を満たす特定の能力および/または性能特性を有さないとき、メモリタイプ310は、そのメモリを高性能として指定しない。一実施形態において、メモリ能力および/または性能特性のオンラインカタログは、新しいメモリデバイスが利用可能になると、更新/修正される。一実施形態において、OSは、メモリ識別と関連させてメモリの性能特性を追跡および測定し、測定された性能特性を、インターネットを介してオンラインカタログにアップロードする。一実施形態において、ユーザーが、ジェスチャ、タッチ、または音声を用いて、コンソール1002に入力することができる。一実施形態において、光学I/Oインターフェイス1135が、ユーザーのジェスチャを受信し、変換する。別の実施形態において、コンソール1002が、ユーザーからの音声およびジェスチャ入力を受信し、変換するためのナチュラルユーザーインターフェイス(NUI)を含む。代替実施形態において、フロントパネル・サブアセンブリ1142が、ユーザーの音声コマンドなどのタッチまたは音声を受信し、変換するためのタッチサーフェスおよびマイクロフォンを含む。なおさらなる実施形態において、メモリ能力および/または性能特性のカタログは、永続的なメモリにローカルに記憶される。


[0045]割り当て311は、高性能メモリなどの特定のタイプのメモリを、高性能メモリを要求している可能性のある特定のアプリケーションに割り当てることを担当する。一実施形態において、高性能メモリから利益を得ることができるアプリケーションは、高性能メモリを要求する属性フラグまたは属性情報を有する。割り当て311は、アプリケーションを特定のタイプのメモリに指定する前に、属性情報を確認する。一実施形態において、割り当て311は、アプリケーションのための属性情報のリストを含み、リストにおける特定のアプリケーションのための記憶された属性情報を、アプリケーションのマニフェストにあり得る属性情報と比較する。


[0046]一実施形態において、割り当て311は、属性情報を仮想メモリアロケーターに渡すことができ、仮想メモリアロケーターは、物理メモリ領域(area)へのメモリページの割り当てを管理する。別の実施形態において、割り当て311は、メモリコントローラーを介して、属性情報を物理メモリアロケーターに渡すことができる。


[0047]一実施形態において、割り当て311は、高性能メモリを要求している特定のアプリケーションが使用することになるメモリの量を判定し、高性能メモリの十分な量が利用可能でないときには、要求を拒否することになる。別の実施形態において、割り当て311は、すべての稼働中または実行中のアプリケーションのランタイム優先度を比較し、一実施形態において、高性能メモリがより高い優先度のアプリケーションにマップされるときには、要求を拒否することになる。


[0048]一実施形態において、割り当て311はまた、高性能メモリを要求するアプリケーションをリストと比較して、アプリケーションを高性能メモリに割り当てるかどうかを判定する。一実施形態において、割り当て311は、一定のアプリケーションがより高性能なメモリにアクセスするのを防ぐ目的のために、ブラックリストされたアプリケーションのリストを含む。代替として、割り当て311は、アプリケーションの属性情報が高性能メモリを要求していなくても、より高性能なメモリを使用することができるホワイトリストされたアプリケーションのリストを含む。アプリケーションのこのリストは、割り当て311にローカルに存在してもよく、またはインターネットを介してオンラインでアクセス可能な、プロセッサ可読形式の別の場所に存在し、更新されてもよい。一実施形態において、適切な属性情報を有さないために高性能メモリを指定されていない、またはアプリケーションがブラックリスト上にあるためにブロックされているアプリケーションは、高性能ではないメモリを指定されることになる。


[0049]より高性能なメモリは、より速い(より大きい帯域幅、より低いメモリ待機時間)だけでなく、よりよい電力効率であり得るので、コンピューティングデバイスがよりよい電力効率であり得るように、高性能メモリが利用可能であるときには、アプリケーションが適切な属性情報を有さないときでさえ、一定のアプリケーションは、高性能メモリを割り当てられる。


[0050]使用監視312は、特定のタイプのメモリを指定されているアプリケーションのメモリ使用を監視することを担当する。使用監視312は、メモリの量がコンピューティング環境において利用可能な物理的に利用可能なメモリを超えないように、使用されているメモリの量を監視する。使用監視312はまた、割り当て311がアプリケーションを高性能メモリに割り当てることができるように、いつ高性能メモリが利用可能であるかを識別する。一実施形態において、使用監視312は、メモリコントローラーまたはドライバーを使用して、特定のアプリケーションが使用する高性能メモリの量を管理し、追跡する。一実施形態において、使用監視312は、アクセスされたメモリのアプリケーションの使用の概要をまとめ、アプリケーションの使用の概要を、永続的なメモリに記憶することができ、場合によっては、記憶された情報を、インターネットを介してオンラインカタログにアップロードする。


[0051]エラー検出および訂正313は、特定のアプリケーションが割り当てられたタイプのメモリを使用するときのエラーを検出し、訂正することを担当する。さまざまな実施形態において、異なるタイプの検出方法およびエラー訂正方法が使用されてよい。たとえば、ハッシュ関数法またはチェックサム法が使用されてよい。別の実施形態においては、エラー訂正コード(ECC)または前方エラー訂正(FEC)法においてパリティビット法が使用されてもよい。


[0052]キャッシュ管理314は、高性能メモリを、1つまたは複数のプロセッサのためのキャッシュとして使用することを担当する。代替実施形態において、キャッシュ管理314は、高性能メモリを仮想キャッシュとして使用する。


[0053]一実施形態において、高性能メモリは、L1/L2/L3キャッシュメモリのための、仮想化された保持空間または仮想キャッシュを作成するために使用される。これは、キャッシュメモリがより大きくなるのを可能にし、L1/L2/L3キャッシュメモリがそれ自体の目的のために利用可能なメモリ空間をプールするのを許可する。一実施形態において、キャッシュ管理315は、推測フェッチング(speculative fetching)を使用して、L1/L2/L3キャッシュメモリによって使用されそうなデータを、高性能メモリ(仮想キャッシュ)に記憶する。


[0054]キャッシュ管理315は、仮想キャッシュメモリ帯域幅(速度)が典型的なL1/L2/L3キャッシュ帯域幅よりも遅いことを考慮に入れる。一実施形態において、より高性能なメモリへのデータを推測的に先読みするための軽減方法が使用される。キャッシュ管理315はまた、L1/L2/L3キャッシュにフィードされるために、いつ高性能メモリからデータがなくなるのかを識別する。


[0055]代替実施形態において、より高性能なメモリは、より高いレベルのキャッシュとして使用される。たとえば、ワイドI/O DRAMは、SoC101におけるL3キャッシュよりも高いレベルのキャッシュの役割を果たし、したがって、性能を押し上げるためのタスクを実施することになる。


[0056]性能、健全性および構成監視(性能監視)315は、特定のタイプのメモリの、帯域幅、健全性などの性能、およびメモリランクなどの構成を監視することを担当する。一実施形態において、性能監視315は、電源投入時および/または定期的に、各タイプのメモリをクエリして、帯域幅および/または熱などのメモリの詳細を取得する。一実施形態において、性能監視315はまた、電源投入時に、特定のメモリ構成について異なるタイプのメモリをクエリすることになる。一実施形態において、性能監視315は、図2に示されたようなACPIドライバーを使用して、さまざまなメモリタイプの性能、健全性、および構成を監視する。一実施形態において、性能監視315は、環境的なパラメーターに関連した特定のメモリの健全性プロファイルをまとめて、そのような健全性プロファイルを、インターネットを介してオンラインカタログに定期的にアップロードする。


[0057]電力管理316は、異なるタイプのメモリの電力を管理することを担当する。一実施形態において、電力管理316は、管理可能な電力を有するメモリタイプの電力を管理する。一実施形態において、電力管理316は、そのステータスおよび/または構成に応じて、異なるタイプのメモリに提供される電力の量を、削減する、および/または増加させることになる。一実施形態において、プロセッサコア103における埋め込みメモリコントローラーが、高性能メモリ102に適用される電力を管理することになる。一実施形態において、電力管理316は、図2に示されたようなACPIドライバーを使用して、さまざまなメモリタイプの電力を管理する。


[0058]DMHM308は、OS205において実装されているように説明されるが、代替実施形態においては、DMHM308が、コンピューティングデバイス100のファームウェアでエンコードされてもよい。


[0059]OS205の他のソフトウェアコンポーネントに戻ると、I/Oデバイス管理303は、I/Oデバイスを管理することを担当する。一実施形態において、個別のハードウェアの特色は、ユーザーから隠されている。一実施形態において、デバイスドライバーが、個別のデバイスの特色を知っている。たとえば、I/Oデバイス管理303は、空き空間管理、メモリ割り当て、断片化、除去、およびヘッドスケジューリングなどの、ディスク管理機能を担当することができる。


[0060]ファイル管理304は、ファイルおよびディレクトリを作成すること、および削除することを担当する。ファイル管理304は、階層ファイルシステムをサポートすることができる。ファイル管理304はまた、ファイルをセカンダリメモリ上にバックアップすることができる。


[0061]ネットワーク管理305は、接続/ルーティング方法を提供することを含む、ネットワークとの通信を担当する。ネットワーク管理305はまた、他のコンピューティングデバイスへのデータ/プロセス移行を担当することができる。


[0062]ユーザーインターフェイス306は、文字ユーザーインターフェイスおよび/またはグラフィクスユーザーインターフェイスをユーザーに提供し、入力を受信し、ユーザーに出力を提供することを担当する。


[0063]保護307は、プログラム、プロセス、および/またはユーザーの、コンピューティングデバイスのリソースへのアクセスを制御することを担当する。たとえば、保護307は、CPUサイクル、メモリ、ファイル、および/またはI/Oデバイスなどのリソースへのアクセスを制御することを担当する。保護307はまた、ユーザー認証および通信を担当する。


[0064]図4〜図6Bは、異種メモリを動的に管理する例示的な方法を示す流れ図である。実施形態において、図4〜図6Bに示されたステップは、ハードウェア(たとえば、プロセッサ、メモリ、回路)、ソフトウェア(たとえば、OS、アプリケーション、ドライバー、マシン/プロセッサ可読命令)、またはユーザーの動作を、単独で、または組み合わせて表す。当業者が理解するように、実施形態は、示されるよりも多いまたは少ないステップを含むことができる。


[0065]図4は、異なるタイプのメモリを1つまたは複数のソフトウェアアプリケーションに割り当てるための例示的な方法の流れ図である。ステップ400は、図1に示されたコンピューティングデバイス100などのコンピューティングデバイスにおいて利用可能なメモリのタイプを判定するステップを示す。一実施形態において、DMHM308のメモリタイプ310が、コンピューティングデバイスにおいて利用可能なメモリのタイプを判定する。一実施形態において、メモリタイプ310は、利用可能な高性能メモリがあるかどうか、または利用可能な異なる性能のタイプのメモリの階層があるかどうかを判定する。


[0066]ステップ401は、サービスおよびメモリのタイプを求めるアプリケーションからの要求を受信するステップを示す。一実施形態において、アプリケーションは、OS205にサービスを要求し、DMHM308、および特に割り当て311が、サービスを要求するアプリケーションが高性能メモリもまた要求しているかどうかを判定する。一実施形態において、割り当て311は、関連付けられたアプリケーションマニフェストを読み出して、要求するアプリケーションが高性能メモリもまた要求するかどうかを判定する。一実施形態において、要求するアプリケーションは、図1に示されたような高性能メモリ102を要求する。


[0067]ステップ402は、要求するアプリケーションに関連付けられた属性情報を取得し、アプリケーションのマニフェストからの属性情報と比較するステップを示す。一実施形態において、割り当て311は、ARBT207(特に、アプリケーションテーブルに)に記憶されたアプリケーションに関連付けられた属性を読み出し、その属性情報を、要求するアプリケーションのマニフェストにおける情報と比較する。


[0068]ステップ403は次いで、ステップ402の比較に応答して、アプリケーションが高性能メモリを要求しているかどうかを判定する。要求するアプリケーションのアプリケーションマニフェストにおける属性情報がARBT207における属性情報と合致すると、ステップ404および405に示されるように、高性能メモリが利用可能であるとき、およびアプリケーションがブラックリスト(ARBT207に含まれるブラックリストテーブル)上にないとき、ならびに、ステップ406で示され本明細書で説明されるように、要求するアプリケーションが利用可能であるよりも多いメモリを要求しないとき、要求するアプリケーションは、高性能メモリを割り当てられることになる。


[0069]ステップ404は、要求するアプリケーションがどのくらいのメモリを使用することになるかを判定するステップを示す。一実施形態において、使用監視312が、コンピューティングデバイスのメモリにおけるアプリケーションの使用を監視する。


[0070]ステップ405は、要求するアプリケーションがホワイトリスト上にあるか、ブラックリスト上にあるかを判定する。要求するアプリケーションがホワイトリスト上にあるとき、高性能メモリが利用可能であって、アプリケーションが利用可能であるよりも多い高性能メモリを必要としない限り、アプリケーションの属性情報がそのように指し示さなくても、アプリケーションは、高性能メモリを割り当てられる。アプリケーションがブラックリスト上にあるとき、一実施形態において、高性能メモリが利用可能であるかどうかに関わらず、アプリケーションは、高性能メモリの割り当てを拒否される。一実施形態において、ブラックリストおよびホワイトリストは、ARBT207のテーブルに記憶される。代替実施形態において、ブラックリストおよびホワイトリストは使用されない。


[0071]ステップ406は、高性能メモリが利用可能であるかどうかを判定するステップを示す。一実施形態において、使用監視312が、高性能メモリの可用性について割り当て311を更新する。


[0072]ステップ407は、要求するアプリケーションが、1)適切な属性情報を有する、2)ブラックリスト上にない(または一実施形態において適切な属性情報の欠如を無視するホワイトリスト上にある)、3)高性能メモリが利用可能である、4)利用可能な高性能メモリの量が要求するアプリケーションによって使用されることになるメモリの量よりも多いときに、要求するアプリケーションに高性能メモリを割り当てるステップを示す。一実施形態において、割り当て311は、上の条件が満たされるときに、高性能メモリを、要求するアプリケーションに割り当てる。一実施形態において、上の条件よりも少ない条件が満たされて、高性能メモリを、要求するアプリケーションに割り当てることができる。そうでない場合、割り当て311は、高性能ではないメモリ(代替メモリ)を、要求するアプリケーションに割り当てる。一実施形態において、高性能メモリが割り当てられないときには、メモリ104が割り当てられる。


[0073]一実施形態において、メモリの量を求めるアプリケーションからの要求を割り当てるタスクは、十分なサイズの未使用メモリのブロックを突き止めることからなる。メモリ要求は、「ヒープ」として知られるメモリの大きなプールから、一部を割り当てることによって満たされる。任意の所与の時間に、ヒープのある部分は使用中であり、一方ある部分は「空き」(未使用)であり、したがって今後の割り当てのために利用可能である。


[0074]ステップ408は、DMHM308がコンピューティングデバイスにおける異なるタイプのメモリの使用を監視するステップを示す。特に、使用監視312は、1つまたは複数のアプリケーションによって使用されている高性能メモリの使用、および高性能ではない他のタイプのメモリの使用を監視する。使用監視312は、高性能メモリにおけるメモリ空間が利用可能になるとき、ならびに一実施形態において、他のタイプのメモリにおけるメモリ空間が利用可能になるとき、割り当て311に通知する。


[0075]ステップ409は、1つまたは複数のアプリケーションがさまざまなタイプのメモリを使用している間に、エラー検出および訂正を実施するステップを示す。一実施形態において、DMHM308のエラー検出および訂正313が、この機能を実施する。


[0076]図5Aは、高性能メモリを仮想キャッシュメモリとして使用するための例示的な方法の流れ図である。ステップ500は、コンピューティングデバイスにおいて利用可能なメモリのタイプを判定するステップを示す。一実施形態において、ステップ500は、本明細書で説明されたようなステップ400と同様に実施される。一実施形態において、メモリタイプ310および/またはキャッシュ管理314が、判定を行う。


[0077]ステップ501は、キャッシュメモリが利用可能であるかどうかを判定するステップを示す。一実施形態において、キャッシュ管理314が、キャッシュメモリが利用可能かどうか、および利用可能であるキャッシュメモリの量を判定する。ステップ501は次いで、仮想キャッシュメモリとしての高性能メモリがコンピューティングデバイスの性能を増加させることになるかどうかを判定する。一実施形態において、キャッシュ管理314は、利用可能なキャッシュメモリの量を所定の閾値と比較する。利用可能なキャッシュメモリの量が所定の閾値よりも少ないとき、キャッシュ管理314は、ステップ502に示されるように、高性能メモリを仮想キャッシュメモリとして指定する。代替実施形態において、そのような指定から利益を得ることができる特定のアプリケーションがOS302にサービスを要求するとき、キャッシュ管理314は、高性能メモリを仮想キャッシュメモリとして指定する。


[0078]ステップ503は、使用されそうなデータを、仮想キャッシュメモリとして使用される高性能メモリに記憶するステップを示す。一実施形態において、推測フェッチングが使用される。


[0079]ステップ504は、実際のキャッシュメモリと比較して、仮想キャッシュメモリとして使用される高性能メモリの比較的遅い速度を軽減するステップを示す。一実施形態において、より高性能なメモリへのデータを推測的に先読みするための軽減方法が使用される。


[0080]図5Bは、高性能メモリをキャッシュメモリとして使用するための例示的な方法の流れ図である。ステップ510は、ステップ500と同様に、キャッシュメモリが利用可能であるかどうかを判定するステップを示す。一実施形態において、キャッシュ管理314が、キャッシュメモリが利用可能かどうか、および利用可能であるキャッシュメモリの量を判定する。ステップ511は次いで、キャッシュメモリとしての高性能メモリがコンピューティングデバイスの性能を増加させることになるかどうかを判定する。一実施形態において、キャッシュ管理314は、利用可能なキャッシュメモリの量を所定の閾値と比較する。利用可能なキャッシュメモリの量が所定の閾値よりも少ないとき、キャッシュ管理314は、ステップ512に示されるように、高性能メモリをキャッシュメモリとして指定する。代替実施形態において、そのような指定から利益を得ることができる特定のアプリケーションがOS302にサービスを要求するとき、キャッシュ管理314は、高性能メモリをキャッシュメモリとして指定する。


[0081]ステップ513および514は、高性能メモリが、仮想キャッシュメモリの代わりにキャッシュメモリとして使用されることを除いて、ステップ503および504と同様に実施される。


[0082]図6Aは、構成、性能、および健全性を含むメモリ情報を取得するために、異なるタイプのメモリをクエリするための例示的な方法の流れ図である。ステップ600は、メモリ構成情報について、コンピューティングデバイスにおける異なるタイプのメモリの各々をクエリするステップを示す。実施形態において、メモリ構成は、タイプ、サイズ、帯域幅、幅、ランク、待機時間、クロック、タイミングパラメーター、および/または他のメモリ構成パラメーターに関する情報を含むことができる。一実施形態において、さまざまな異なるタイプのメモリ(システムまたは構成メモリなど)に常駐しない、構成情報を有するストレージロケーションが、実際のメモリそれら自体の代わりにクエリされる。


[0083]一実施形態において、1つまたは複数のプロセッサが、OS205、および特にDMHM308を実行して、メモリ構成情報を取得する。一実施形態において、性能監視315が、タイプのメモリごとに構成情報を取得することを担当する。一実施形態において、プロセッサコア103が、OS205を実行して、高性能メモリ102およびメモリ104への信号経路106および105上に制御信号を生成する。各メモリは次いで、制御信号に応答して構成情報を戻す。一実施形態において、制御信号は、信号経路105および106上に出力される別々のコマンドを含むことができる。一実施形態において、制御信号は、起動時におよび/または定期的に出力される。


[0084]ステップ601は、コンピューティングデバイスにおける異なるタイプのメモリの性能を監視するステップを示す。一実施形態において、プロセッサコア103が、ステップ600と同様にOS205を実行して、実際の帯域幅および/または実際のメモリ待機時間などの性能情報を取得する。代替実施形態において、OS205、および特にDMHM308の性能監視315が、異なるタイプのメモリに書き込み、異なるタイプのメモリから読み出すことによって、実際の帯域幅および/またはメモリ待機時間を測定する。テストパターンがメモリに書き込まれ、次いでそれぞれのタイプのメモリの性能特性を測定する、および/または計時する間に、読み出されてよい。


[0085]ステップ602は、コンピューティングデバイスにおける異なるタイプのメモリから、健全性情報またはステータス情報を取得するステップを示す。実施形態において、プロセッサコア103が、ステップ600および601と同様にOS205を実行して、異なるタイプのメモリの温度(熱)および/または電力消費などの健全性情報を取得する。それぞれのメモリは、プロセッサコア103から信号経路105および106上に出力された制御信号に応答して、それぞれのタイプのメモリによって出力されたステータス情報において、温度および消費された電力を含む健全性情報を提供することができる。上と同様に、これらの制御信号は、起動時または定期的に生成されてよい。やはり上と同様に、テストパターンが、異なるタイプのメモリに書き込まれ、異なるタイプのメモリから読み出されてよく、メモリが正しくデータを記憶し、データを出力しているかどうかを判定するために送られたテストパターンと比較されてよい(エラー検出)。


[0086]図6Bは、コンピューティングデバイスにおける異なるタイプのメモリのための電力を管理するための例示的な方法の流れ図である。ステップ610は、コンピューティングデバイスにおける異なるタイプのメモリから、電力管理情報を取得するステップを示す。一実施形態において、プロセッサコア103が、上のステップと同様にOS205を実行して、特定のタイプのメモリデバイスが管理され得る電力を有することができるかどうかに関する電力情報を取得する。一実施形態において、それぞれのタイプのメモリのための電力管理情報は、システムまたは構成メモリなどのそれぞれのタイプのメモリに常駐していないメモリに記憶され、上で説明されたように取り出されてよい。


[0087]ステップ611は、コンピューティングデバイスにおける異なるタイプのメモリの電力を管理するステップを示す。ステップ610で、特定のメモリが管理可能な電力を有することができるという判定がなされたとき、一実施形態において、識別されたメモリデバイスの電力は、DMHM308の電力管理316によって管理される。たとえば、電力管理316を実行するプロセッサコア103が、スリープモードまたは休止状態モードなどにおいてメモリデバイスが電力を必要としないときに、電力を削減することになる制御信号を、電力管理可能なメモリデバイスに出力する。


[0088]一実施形態において、コンピューティングデバイス100のうちの1つまたは複数は、限定はされないが、ビデオゲームおよび/またはメディアコンソールであってよい。次に図7が、例示的なビデオゲームおよびメディアコンソールを説明するために使用されることになる、またはより一般的には、ゲームおよびメディアコンソールを含む例示的なゲーミングおよびメディアシステム1000を説明するために使用されることになる。図7の以下の議論は、本明細書で提示されるコンセプトがそれを用いて実装され得る好適なコンピューティングデバイスの簡潔で一般的な説明を提供するように意図される。図7のシステムは、例のみを目的とすることが理解される。さらなる例において、本明細書で説明される実施形態は、クライアントコンピューティングデバイスに常駐し、クライアントコンピューティングデバイスによって実行されるブラウザーアプリケーションまたはソフトウェアアプリケーションのいずれかを介して、さまざまなクライアントコンピューティングデバイスを使用して実装されてよい。図7に示されるように、ゲーミングおよびメディアシステム1000は、ゲームおよびメディアコンソール(これ以下、「コンソール」)1002を含む。一般に、コンソール1002は、クライアントコンピューティングデバイスの1つのタイプである。コンソール1002は、コントローラー10041および10042によって表されるような、1つまたは複数のワイヤレスコントローラーを適応させるように構成される。コンソール1002は、内部ハードディスクドライブと、ポータブルメディアドライブ1006とを備えており、ポータブルメディアドライブ1006は、光学ストレージディスク1008によって表されるような、さまざまな形態のポータブルストレージメディアをサポートする。好適なポータブルストレージメディアの例には、DVD、CD−ROM、ゲームディスク、その他が含まれる。コンソール1002はまた、リムーバブル・フラッシュタイプメモリユニット1040を受け入れるための、2つのメモリユニットカード・レセプタクル10251および10252を含む。コンソール1002上のコマンドボタン1035は、ワイヤレス周辺サポートを有効および無効にする。


[0089]図7に図示されるように、コンソール1002はまた、1つまたは複数のデバイスとワイヤレスに通信するための光学ポート1030と、追加的なコントローラー、または他の周辺機器のためのワイヤード接続をサポートするための2つのUSBポート10101および10102とを含む。いくつかの実装形態において、追加的なポートの数および配置は変更されてもよい。電源ボタン1012およびイジェクトボタン1014もまた、コンソール1002の前面に位置付けられる。電源ボタン1012は、ゲームコンソールに電源を適用するために選択され、他の特徴および制御へのアクセスを提供することもでき、イジェクトボタン1014は、ポータブルメディアドライブ1006のトレイを交互に開閉して、光学ストレージディスク1008の挿入および抜出しを可能にする。


[0090]コンソール1002は、A/Vインターフェイスケーブル1020を介して、テレビまたは他のディスプレイ(ディスプレイ1050など)に接続する。一実装形態において、コンソール1002は、A/Vケーブル1020(たとえば、高解像度ディスプレイ1050または他のディスプレイデバイス上の高解像度マルチメディアインターフェイス「HDMI(登録商標)」ポートに結合するのに好適なA/Vケーブル)を使用するコンテンツセキュアなデジタル通信のために構成された、専用A/Vポートを備える。電源ケーブル1022は、ゲームコンソールに電力を提供する。コンソール1002は、インターネットなどのネットワークへのアクセスを促進するためのケーブルまたはモデムコネクタ1024によって表されるように、ブロードバンド能力を備えてさらに構成されてもよい。ブロードバンド能力はまた、ワイヤレス・フィディリティー(Wi−Fi)ネットワークなどのブロードバンドネットワークを通して、ワイヤレスに提供されてもよい。


[0091]各コントローラー1004は、ワイヤードまたはワイヤレスインターフェイスを介して、コンソール1002に結合される。示された実装形態において、コントローラー1004はUSB互換であり、ワイヤレスまたはUSBポート1010を介してコンソール1002に結合される。コンソール1002は、幅広いユーザー対話式メカニズムのうちのいずれかを備えていてよい。図7に示される例において、各コントローラー1004は、2つの親指スティック10321および10322と、D−パッド1034と、ボタン1036と、2つのトリガー1038とを備える。これらのコントローラーは、単に代表的なものであり、他の知られているゲーミングコントローラが、図7に示されるコントローラーに代わりに使われる、またはそれに追加されてもよい。一実施形態において、ユーザーは、ジェスチャ、タッチ、または音声を介して、コンソール1002に入力することができる。一実施形態において、光学I/Oインターフェイス1135が、ユーザーのジェスチャを受信し、変換する。別の実施形態において、コンソール1002は、ユーザーからの音声およびジェスチャ入力を受信し、変換するためのナチュラルユーザーインターフェイス(NUI)を含む。代替実施形態においては、フロントパネル・サブアセンブリ1142が、ユーザーの音声コマンドなどのタッチまたは音声を受信し、変換するためのタッチサーフェスおよびマイクロフォンを含む。


[0092]一実装形態において、メモリユニット(MU)1040がまたコントローラー1004に挿入されて、追加的かつポータブルなストレージを提供してもよい。ポータブルMUは、ユーザーが他のコンソール上でプレイするときに使用するためのゲームパラメーターを記憶するのを可能にする。この実装形態において、各コントローラーは、2つのMU1040を適応させるように構成されるが、2つよりも多いまたは少ないMUがまた用いられてもよい。


[0093]ゲーミングおよびメディアシステム1000は、メモリメディアに記憶されたゲームをプレイするためだけでなく、ゲームをダウンロードしてプレイするために、および電子メディアソースおよびハードメディアソースの両方から予め記録された音楽およびビデオを再生するために、一般に構成される。異なるストレージオファリングを用いて、タイトルは、ハードディスクドライブから、光学ストレージディスクメディア(たとえば、1008)から、オンラインソースから、またはMU1040からプレイされ得る。ゲーミングおよびメディアシステム1000がプレイすることが可能なメディアのタイプのサンプルは、以下を含む。


[0094]CD、DVD、またはより大容量のディスクから、ハードディスクドライブから、またはオンラインソースからプレイされるゲームタイトル。 [0095]ポータブルメディアドライブ1006のCDから、ハードディスクドライブもしくはソリッドステートディスク上のファイル(たとえば、メディアフォーマットにおける音楽)から、またはオンラインストリーミングソースからプレイされるデジタル音楽。


[0096]ポータブルメディアドライブ1006のDVDディスクから、ハードディスクドライブ上のファイル(たとえば、Active Streaming Format)から、またはオンラインストリーミングソースからプレイされるデジタルオーディオ/ビデオ。


[0097]動作中、コンソール1002は、コントローラー1004からの入力を受信し、情報をディスプレイ1050上に表示するように構成される。たとえば、コンソール1002は、以下で議論されるように、ディスプレイ1050上にユーザーインターフェイスを表示して、ユーザーがコントローラー1004を使用してゲームを選択し、以下で論じられるように状態の解決可能性情報を表示するのを許可することができる。


[0098]図8は、ゲーミングおよびメディアシステム1000の機能ブロック図であり、ゲーミングおよびメディアシステム1000の機能コンポーネントをより詳細に示す。コンソール1002は、CPU1100と、フラッシュROM1104、RAM1106、ハードディスクドライブまたはソリッドステートドライブ1108を含むさまざまなタイプのメモリへのプロセッサアクセスを促進するメモリコントローラー1102と、ポータブルメディアドライブ1006とを有する。一実装形態において、CPU1100は、データを一時的に記憶し、それゆえハードドライブ1108になされるメモリアクセスサイクルの数を削減するための、レベル1キャッシュ1110およびレベル2キャッシュ1112を含み、それにより、処理スピードおよびスループットを向上させる。


[0099]CPU1100、メモリコントローラー1102、およびさまざまなメモリデバイスは、1つまたは複数のバスを介して相互接続される。この実装形態で使用されるバスの詳細は、本明細書で議論されている問題の主題の理解には特に関係はない。しかしながら、そのようなバスが、さまざまなバスアーキテクチャのうちのいずれかを使用する、シリアルバスおよびパラレルバス、メモリバス、周辺バス、およびプロセッサバスまたはローカルバスのうちの1つまたは複数を含むことがあることが理解されるであろう。例として、そのようなアーキテクチャは、業界標準アーキテクチャ(ISA)バス、マイクロチャネルアーキテクチャ(MCA)バス、拡張ISA(EISA)バス、ビデオ電子規格協会(VESA)ローカルバス、およびMezzanineバスとしても知られる周辺コンポーネント相互接続(PCI)バスを含むことができる。


[00100]一実装形態において、CPU1100、メモリコントローラー1102、ROM1104、およびRAM1106は、共通のモジュール1114上に集積される。この実装形態において、ROM1104は、PCIバスおよびROMバス(どちらも図示せず)を介してメモリコントローラー1102に接続されるフラッシュROMとして構成される。RAM1106は、複数のダブルデータレート同期動的RAM(DDR SDRAM)、またはより速いデータレートのDRAMモジュールとして構成されており、これらは、別々のバスを介してメモリコントローラー1102によって独立して制御される。ハードディスクドライブ1108およびポータブルメディアドライブ1006は、PCIバスおよびATアタッチメント(ATA)バス1116を介して、メモリコントローラー1102に接続されて示されている。しかしながら、他の実装形態においては、異なるタイプの専用データバス構造がまた、代替において適用され得る。


[00101]別の実施形態において、少なくともCPU1100、レベル1キャッシュ1110、レベル2キャッシュ1112、メモリコントローラー1102、およびRAMメモリ1106が、本明細書で説明され図1に示されたようなSoC101などの、SoCに含まれる。一実施形態において、RAMメモリ1106が、ワイドI/O DRAMなどの高性能メモリに取って代わり、メモリコントローラー1102の機能が、プロセッサコア103によって実施される。LPDDR3 DRAMなどの、高性能メモリではない別のタイプのメモリは、その場合、本明細書で説明されるように、SoC101に結合されることになる。同様に、OS205は、本明細書で説明されるようなコンソール1002においてSoC101によって使用される。


[00102]3次元グラフィックス処理ユニット1120およびビデオエンコーダー1122は、高速および高分解能(たとえば、高解像度)グラフィックス処理のためのビデオ処理パイプラインを形成する。データは、グラフィックス処理ユニット1120から、デジタルビデオバスを介して、ビデオエンコーダー1122へと搬送される。オーディオ処理ユニット1124およびオーディオコーデック(コーダー/デコーダー)1126は、さまざまなデジタルオーディオフォーマットのマルチチャネルオーディオ処理のための、対応するオーディオ処理パイプラインを形成する。オーディオデータは、通信リンクを介して、オーディオ処理ユニット1124とオーディオコーデック1126との間で搬送される。ビデオ処理パイプラインおよびオーディオ処理パイプラインは、テレビまたは他のディスプレイに送信するために、データをA/V(オーディオ/ビデオ)ポート1128に出力する。示される実装形態において、ビデオ処理コンポーネントおよびオーディオ処理コンポーネント1120〜1128は、モジュール1114に搭載されている。


[00103]図8は、USBホストコントローラー1130およびネットワークインターフェイス1132を含むモジュール1114を示す。USBホストコントローラー1130は、バス(たとえば、PCIバス)を介して、CPU1100およびメモリコントローラー1102と通信して示されており、周辺コントローラー10041〜10044のためのホストとして働く。ネットワークインターフェイス1132は、ネットワーク(たとえば、インターネット、ホームネットワーク、その他)へのアクセスを提供し、イーサネット(登録商標)カード、モデム、ワイヤレスアクセスカード、Bluetooth(登録商標)モジュール、ケーブルモデム、その他を含む、幅広くさまざまなワイヤーまたはワイヤレスインターフェイスコンポーネントのうちのいずれかであってよい。


[00104]図8に図示された実装形態において、コンソール1002は、4つのコントローラー10041〜10044をサポートするためのコントローラーサポート・サブアセンブリ1140を含む。コントローラーサポート・サブアセンブリ1140は、たとえば、メディアおよびゲームコントローラーなどの外部制御デバイスによるワイヤードおよびワイヤレスの動作をサポートするための、任意のハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。フロントパネルI/Oサブアセンブリ1142は、電源ボタン1012、イジェクトボタン1014、ならびにコンソール1002の外側面に露出された任意のLED(発光ダイオード)または他のインジケーターの、複数の機能性をサポートする。サブアセンブリ1140および1142は、1つまたは複数のケーブルアセンブリ1144を介して、モジュール1114と通信している。他の実装形態において、コンソール1002は、追加的なコントローラーサブアセンブリを含むことができる。示された実装形態はまた、モジュール1114に伝達され得る信号を送り、受信するように構成された光学I/Oインターフェイス1135を示す。


[00105]MU10401および10402は、MUポート「A」10301および「B」10302に、それぞれ接続可能であるように示される。追加的なMU(たとえば、MU10403〜10406)が、コントローラー10041および10043に接続可能であるように、すなわち、各コントローラーに2つのMUが接続可能であるように、示される。コントローラー10042および10044もまた、MUを受け入れるように構成されてよい。各MU1040は、ゲーム、ゲームパラメーター、および他のデータが記憶され得る追加的なストレージを差し出す。いくつかの実装形態において、他のデータは、デジタルゲームコンポーネント、実行可能なゲーミングアプリケーション、ゲーミングアプリケーションを展開するための命令セット、およびメディアファイルのうちのいずれかを含むことができる。コンソール1002またはコントローラーに挿入されると、MU1040は、メモリコントローラー1102によってアクセスされ得る。


[00106]システム電力供給モジュール1150は、ゲーミングシステム1000のコンポーネントに電力を提供する。ファン1152は、コンソール1002内部の回路を冷やす。


[00107]プロセッサ可読命令を含むアプリケーション1160は、ハードディスクドライブ1108上に記憶される。コンソール1002が電源オンにされると、アプリケーション1160のさまざまな部分が、CPU1100での実行のために、RAM1106ならびに/またはキャッシュ1110および1112にロードされ、ここで、アプリケーション1160は、1つのそのような例である。さまざまなアプリケーションは、CPU1100での実行のために、ハードディスクドライブ1108上に記憶されてもよい。一実施形態において、アプリケーション1160は、本明細書で説明されたように、高性能メモリなどの特定のタイプのメモリの使用を要求する属性情報を含む。


[00108]コンソール1002はまた、コンソール1002を、1つまたは複数の他のコンピューティングデバイス(たとえば、他のコンソール)と通信可能に結合するように構成された通信サブシステム1170を含むように示される。通信サブシステム1170は、1つまたは複数の異なる通信プロトコルと互換性のある、ワイヤードおよび/またはワイヤレス通信デバイスを含むことができる。非限定的な例として、通信サブシステム1170は、ワイヤレス電話ネットワーク、またはワイヤードもしくはワイヤレスのローカルエリアネットワークもしくはワイドエリアネットワークを介した通信のために構成されてよい。いくつかの実施形態において、通信サブシステム1170は、インターネットなどのネットワークを介して、コンソール1002が他のデバイスにメッセージを送る、および/または他のデバイスからメッセージを受信するのを許可することができる。個別の実施形態において、通信サブシステム1170は、ダウンロード要求を送るために、かつデジタルコンテンツのダウンロードおよびアップロードをもたらすために、コーディネーターおよび/または他のコンピューティングデバイスと通信するために使用され得る。より一般的には、通信サブシステム1170は、コンソール1002がピアツーピア通信に参加するのを可能にすることができる。


[00109]ゲーミングおよびメディアシステム1000は、システムを、ディスプレイ1050(図7)、テレビ、ビデオプロジェクター、または他のディスプレイデバイスに単純に接続することによって、スタンドアロンシステムとして動作されてよい。このスタンドアロンモードにおいて、ゲーミングおよびメディアシステム1000は、1人または複数のプレーヤーが、ゲームをプレイする、または、たとえば映画を見たり音楽を聴いたりすることによって、デジタルメディアを楽しむことを可能にする。しかしながら、ネットワークインターフェイス1132、またはより一般的には、通信サブシステム1170を通して利用可能にされるブロードバンド接続性の統合により、ゲーミングおよびメディアシステム1000は、ピアツーピアネットワークなどのより大きなネットワークゲーミングコミュニティにおける参加者として、さらに動作されてもよい。


[00110]上で説明されたコンソール1002は、図1およびさまざまな他の図を参照して上で議論されたコンピューティングデバイス100の一例にすぎない。上で明らかにされたように、本明細書で説明された実施形態がそれを用いて使用され得るさまざまな他のタイプのコンピューティングデバイスが存在する。


[00111]本発明のシステムの上述の詳細な説明が、例証および説明の目的のために提示されてきた。説明は、包括的であること、または本発明のシステムを開示された厳密な形態に限定することは意図されない。多くの修正形態および変形形態が、上の教示に照らして可能である。説明された実施形態は、本発明のシステムの原理およびその実践的な用途を最もよく明らかにするために選ばれ、それにより他の当業者が、さまざまな実施形態において、かつ企図された特定の使用に適するようにさまざまな修正形態を用いて、本発明のシステムを最もよく利用することを可能にする。本発明のシステムの範囲は、これに付属される特許請求の範囲によって定義されるように意図される。



高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈