(57)【要約】  コンピューティングデバイスを動作させる方法が、異なるタイプのアプリケーションからのワークロードまたは要求に基づいて、少なくとも２つのタイプのメモリを動的に管理するステップを含む。第１のタイプのメモリは、コンピューティングデバイスにおける第２のタイプのメモリよりも、高い帯域幅、低いメモリ待機時間、および／または低い電力消費を有することができる高性能メモリであってよい。一実施形態において、コンピューティングデバイスは、１つまたは複数のプロセッサコアと共に位置付けられたワイドＩ／Ｏ  ＤＲＡＭを含むシステムオンチップ（ＳｏＣ）を含む。低電力ダブルデータレート３動的ランダムアクセスメモリ（ＬＰＤＤＲ３  ＤＲＡＭ）メモリは、ＳｏＣに外部的に接続される、またはＳｏＣの埋め込み部分である。実施形態において、コンピューティングデバイスは、少なくとも、携帯電話、モバイルデバイス、埋め込みシステム、ビデオゲーム、メディアコンソール、ラップトップコンピューター、デスクトップコンピューター、サーバー、および／またはデータセンターに含まれてよい。
2016510471.tif 000002
【特許請求の範囲】
【請求項１】
集積回路メモリのタイプを、コンピューティングデバイスによって処理されるアプリケーションに割り当てるための方法であって、
前記コンピューティングデバイスにおいて前記アプリケーションに利用可能な集積回路メモリのタイプを判定するステップであって、利用可能な集積回路メモリの前記タイプが、第１のタイプの集積回路メモリおよび第２のタイプの集積回路メモリを含む、判定するステップと、
前記第１のタイプの集積回路メモリを使用するための、前記アプリケーションからの要求を受信するステップと、
前記アプリケーションからの前記要求に応答して、前記アプリケーションによって使用されるように前記第１のタイプの集積回路メモリを割り当てるステップと
を含む方法。
【請求項２】
前記第１のタイプの集積回路メモリが、前記第２のタイプの集積回路メモリよりも優れている少なくとも１つまたは複数の性能特性を有する、請求項１に記載の方法。
【請求項３】
前記第１のタイプの集積回路メモリが、前記第２のタイプの集積回路メモリよりも、高い帯域幅、低いメモリ待機時間、または低い電力消費のうちの少なくとも１つを有する、請求項１に記載の方法。
【請求項４】
前記判定するステップが、メモリ性能特性のリストから、前記第１のタイプの集積回路メモリおよび前記第２のタイプの集積回路メモリの性能特性にアクセスするステップを含む、請求項１に記載の方法。
【請求項５】
性能特性の前記リストが、インターネットを介して取得され、性能特性の前記リストが、プロセッサ可読フォーマットで記憶される、請求項１に記載の方法。
【請求項６】
前記受信するステップが、前記アプリケーションからの前記要求が前記第１のタイプの集積回路メモリを使用するための要求を含むことを指し示す、アプリケーションマニフェスト上の属性情報を読み出すステップを含む、請求項１に記載の方法。
【請求項７】
前記割り当てるステップが、前記コンピューティングデバイスにおける物理メモリ領域へのメモリページの割り当てを管理する、メモリコントローラーの仮想メモリアロケーターまたは物理メモリアロケーターのうちの少なくとも１つに、前記要求を転送するステップを含む、請求項１に記載の方法。
【請求項８】
前記第１のタイプの集積回路メモリにおいて、メモリロケーションおよび前記アプリケーションの使用を監視するステップをさらに含む請求項１に記載の方法。
【請求項９】
前記アプリケーションを、前記コンピューティングデバイスにおけるアプリケーションの記憶されたリストと比較するステップ
をさらに含み、
前記アプリケーションが前記記憶されたリスト上にあることに応答して、前記第１のタイプの集積回路メモリを割り当てるステップが、前記アプリケーションによって使用されるように前記第２のタイプの集積回路メモリを割り当てるステップに取って代えられ、
前記アプリケーションの使用が前記第１のタイプの集積回路メモリの物理メモリ空間を超えることになるとき、前記第１のタイプの集積回路メモリを前記割り当てるステップが、前記アプリケーションによって使用されるように前記第２のタイプの集積回路メモリを割り当てるステップに取って代えられる、
請求項１に記載の方法。
【請求項１０】
前記アプリケーションによってアクセス可能なキャッシュメモリとして前記第１のタイプの集積回路メモリを割り当てるステップをさらに含む請求項１に記載の方法。
【請求項１１】
前記判定するステップが、前記第１のタイプの集積回路メモリおよび前記第２のタイプの集積回路メモリへの前記集積回路メモリに関する情報を求める要求を開始するステップを含み、前記集積回路メモリに関する前記情報が、メモリ構成または電力管理のうちの１つから選択される、請求項１に記載の方法。
【請求項１２】
１つまたは複数のプロセッサと、
第１の性能特性を有する第１のプロセッサ可読メモリ、および第２の性能特性を有する第２のプロセッサ可読メモリであって、前記第１の性能特性が前記第２の性能特性よりも優れている、第１のプロセッサ可読メモリおよび第２のプロセッサ可読メモリと、
１つまたは複数のソフトウェアアプリケーションと、
プロセッサ可読命令を含むオペレーティングシステムと
を含む装置であって、
前記１つまたは複数のプロセッサが、前記オペレーティングシステムの前記プロセッサ可読命令を実行して、
１つまたは複数のソフトウェアアプリケーションが前記第１のプロセッサ可読メモリの使用を要求するかどうかを判定し、
前記１つまたは複数のソフトウェアアプリケーションが使用するプロセッサ可読メモリの量を判定し、
前記第１のプロセッサ可読メモリの使用を求める要求、および前記１つまたは複数のソフトウェアアプリケーションが使用するプロセッサ可読メモリの前記量に応答して、前記１つまたは複数のソフトウェアアプリケーションのうちの少なくとも１つに、前記第１のプロセッサ可読メモリへのアクセスを許可する、
装置。
【請求項１３】
前記第１の性能特性および前記第２の性能特性が、帯域幅、メモリ待機時間、または電力消費のうちの１つから選択される、請求項１２に記載の装置。
【請求項１４】
前記１つまたは複数のプロセッサおよび第１のプロセッサ可読メモリが、第１のパッケージによって収容される単一の半導体ダイに集積され、前記第２のプロセッサ可読メモリが、第２のパッケージによって収容される第２の半導体ダイに含まれる、請求項１２に記載の装置。
【請求項１５】
前記１つまたは複数のプロセッサが、第１の半導体ダイに含まれ、前記第１のプロセッサ可読メモリが、第２の半導体ダイに含まれ、前記第１のダイおよび前記第２のダイが、第１のパッケージによって収容され、前記第２のプロセッサ可読メモリが、第２のパッケージによって収容される第３の半導体ダイに含まれる、請求項１２に記載の装置。
【発明の詳細な説明】
【背景技術】
【０００１】
[0001]オペレーティングシステム（ＯＳ）は、コンピュータハードウェアリソースを管理するプロセッサ可読命令を含み、アプリケーションプログラム（アプリケーション）などのプロセッサ可読命令を有する他のコンピューティングプログラムに、共通のサービスを提供する。通常、ＯＳは、アプリケーションとコンピュータハードウェアとの間の仲介としての役割を果たす。ＯＳは、通常、コンピューティングリソースの効率的な使用のためのタスクをスケジュールする。ＯＳは、通常、キーボードからの入力を認識する、ディスプレイスクリーンに出力を送る、ファイルおよびディレクトリの経過を追う、ならびにプリンターおよびディスクドライブなどの周辺デバイスを制御するなどの、基本タスクを実施する。
【発明の概要】
【課題を解決するための手段】
【０００２】
[0002]コンピューティングデバイスを動作させる方法が、異なるタイプのアプリケーションからのワークロードまたは要求に基づいて、少なくとも２つのタイプのメモリ（異種メモリ）を動的に管理するステップを含む。第１のタイプのメモリは、コンピューティングデバイスにおける第２のタイプのメモリよりも、高い帯域幅、低いメモリ待機時間（ｌａｔｅｎｃｙ）、摩耗（ｗｅａｒ−ｏｕｔ）前の多い書き込み数、および／または低い電力消費を有することができる高性能メモリあってよい。一実施形態において、コンピューティングデバイスは、１つまたは複数のプロセッサコアに隣接して位置付けられたワイドＩ／Ｏ  ＤＲＡＭ（より高性能なメモリの例）を含むシステムオンチップ（ＳｏＣ：ｓｙｓｔｅｍ  ｏｎ  ａ  ｃｈｉｐ）を含む。低電力ダブルデータレート３動的ランダムアクセスメモリ（ＬＰＤＤＲ３  ＤＲＡＭ：Ｌｏｗ  Ｐｏｗｅｒ  Ｄｏｕｂｌｅ  Ｄａｔａ  Ｒａｔｅ  ３  ｄｙｎａｍｉｃ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）メモリ（従来のメモリの例）が、内部的または外部的のいずれかでＳｏＣに接続される。実施形態において、コンピューティングデバイスは、少なくとも、携帯電話、モバイルデバイス、埋め込みシステム、ビデオゲームコンソール、メディアコンソール、ラップトップコンピューター、デスクトップコンピューター、サーバー、および／またはデータセンターに含まれてよい。
【０００３】
[0003]一実施形態において、ＯＳは、より高性能なメモリを、特定のワークロードまたは機能（たとえば、レイトレーシング、フレーム／ビデオバッファリング、ＮＵＩ（ナチュラルユーザーインターフェイス）データバッファリング）を有する一定のアプリケーションに割り当てる。ＯＳは、新しいデータがより高性能なメモリを占有する必要があるときには、より高性能なメモリからデータを転送することができる。ＯＳおよび１つまたは複数のプロセッサは、メモリコントローラー論理ハードウェアおよび／またはソフトウェアと共に、データ完全性を維持するためのエラー訂正もまた実施する。異なるタイプのメモリの能力および／または性能特性を判定する目的のために、メモリ特性のオンライン（ｗｅｂ）プロセッサ可読カタログが、ＯＳによってアクセスされてよい。
【０００４】
[0004]一実施形態において、アプリケーションは、特定のアプリケーションが高性能メモリの使用から利益を得ることをＯＳに指し示す属性フラグまたは属性情報を、アプリケーションマニフェストに有する。要求するアプリケーションがアプリケーションマニフェスト上にないとき、または要求するアプリケーションが利用可能であるよりも多い量の高性能メモリを要求するとき、ＯＳは、高性能メモリへのアクセスを許可しなくてもよい。一実施形態において、ＯＳは、アプリケーションの実行を監視し、メモリロケーションアクセスおよび使用パターンの経過を追う。実施形態において、ＯＳは、属性フラグまたは属性情報を、メモリコントローラーまたはメモリマネジャーなどの、仮想メモリアロケーターまたは物理メモリアロケーターに渡すことができる。
【０００５】
[0005]一実施形態において、高性能メモリは、仮想キャッシュメモリ、またはキャッシュメモリとして使用されてよい。
[0006]ＯＳまたはメモリコントローラーはまた、実施形態において、メモリ動作の詳細を取得するために異なるタイプのメモリを問い合わせるだけでなく、健全性および性能情報について定期的に異なるタイプのメモリを問い合わせることができる。ＯＳまたはメモリコントローラーはまた、異なるタイプのメモリの電力消費状態を管理することができる。
【０００６】
[0007]方法の実施形態が、メモリのタイプを、コンピューティングデバイスによって処理されるアプリケーションに割り当てる。方法は、コンピューティングデバイスにおいて利用可能な集積回路メモリのタイプを判定するステップを含む。利用可能な集積回路メモリのタイプは、第１の高性能タイプのメモリと、第２のタイプの高性能メモリではないメモリとを含む。高性能メモリを使用するための、アプリケーションからの要求が受信される。要求に応答して、高性能メモリがアプリケーションに割り当てられる。
【０００７】
[0008]装置の実施形態が、１つまたは複数のプロセッサと、第１の性能特性を有する第１のプロセッサ可読メモリとを含む。装置はまた、第２の性能特性を有する第２のプロセッサ可読メモリを含む。第１の性能特性は、第２の性能特性よりも優れている。１つまたは複数のプロセッサは、ＯＳのプロセッサ可読命令を実行して、１つまたは複数のソフトウェアアプリケーションが第１のプロセッサ可読メモリの使用を要求するかどうか、および１つまたは複数のアプリケーションが使用するプロセッサ可読メモリの量を判定する。１つまたは複数のプロセッサは、ＯＳのプロセッサ可読命令を実行して、第１のプロセッサ可読メモリの使用を求める要求、および１つまたは複数のアプリケーションが使用するプロセッサ可読メモリの量に応答して、１つまたは複数のアプリケーションのうちの少なくとも１つに、第１のプロセッサ可読メモリへのアクセスを許可する。
【０００８】
[0009]別の実施形態において、１つまたは複数のプロセッサ可読メモリデバイスが、実行されるときに、１つまたは複数のプロセッサに、高性能メモリをアプリケーションに割り当てる方法を実施させる命令を含む。高性能メモリを使用するためのアプリケーションからの要求、およびアプリケーションが使用することになるメモリの量が受信される。利用可能である高性能メモリの量について判定がなされる。アプリケーションが使用することになるメモリの量、および利用可能な高性能メモリの量に応答して、アプリケーションは、高性能メモリを割り当てられる。
【０００９】
[0010]本概要は、詳細な説明において以下でさらに説明される概念の選択を、簡略化された形式において導入するために提供される。本概要は、特許請求される主題の重要な特徴または必須の特徴を識別するようには意図されず、特許請求される主題の範囲を特定する補助として使用されることも意図されない。
【図面の簡単な説明】
【００１０】
【図１】[0011]コンピューティングデバイスの例示的なハードウェアアーキテクチャの高レベルブロック図である。
【図２】[0012]異なるタイプのメモリにアクセスするための例示的なソフトウェアアーキテクチャの高レベルブロック図である。
【図３Ａ】[0013]異なるタイプのメモリにアクセスするための例示的なＯＳアーキテクチャの高レベルブロック図である。
【図３Ｂ】[0014]例示的な異種メモリの動的管理ソフトウェアの高レベルブロック図である。
【図４】[0015]異なるタイプのメモリを１つまたは複数のアプリケーションに割り当てるための例示的な方法の流れ図である。
【図５Ａ】[0016]高性能メモリを仮想キャッシュとして使用するための例示的な方法の流れ図である。
【図５Ｂ】[0017]高性能メモリをキャッシュとして使用するための例示的な方法の流れ図である。
【図６Ａ】[0018]構成、性能、および健全性を含むメモリ情報を取得するために、異なるタイプのメモリをクエリするための例示的な方法の流れ図である。
【図６Ｂ】[0019]異なるタイプのメモリ電力を管理するための例示的な方法の流れ図である。
【図７】[0020]例示的なゲーミングおよびメディアシステムの等角図である。
【図８】[0021]図７に示されたゲーミングおよびメディアシステムのコンポーネントの例示的な機能ブロック図である。
【発明を実施するための形態】
【００１１】
[0022]ＳｏＣ（ＳＯＣとしてもまた知られている）は、コンピューティングデバイスまたは他の電子システムの、電子コンポーネントおよび／またはサブシステムを、単一のパッケージ内に収容される単一の半導体基板および／または単一のチップに集積した、集積回路（ＩＣ）である。たとえば、以前はパーソナルコンピューター（ＰＣ）のメモリモジュールサブシステムにあったメモリは、現在は、ＳｏＣに含まれてもよい。同様に、メモリ制御論理は、別々にパッケージされたメモリコントローラーにではなく、ＳｏＣのプロセッサに含まれてもよい。
【００１２】
[0023]ＳｏＣの１つまたは複数のプロセッサはまた、異なるタイプのメモリ特性を有する異なるタイプのメモリにアクセスすることができる。メモリ特性または性能パラメーターは、限定はされないが、帯域幅、メモリ待機時間、電力消費、摩耗前の書き込み数、および／または熱発生を含むことができる。より高い帯域幅を有する（または、時間周期ごとに、他のメモリよりも多くのデータを送信もしくは受信することができる）メモリなどの高性能メモリは、より高価であってよく、特定の高性能特性を有さないメモリほどには利用可能でないことがある。
【００１３】
[0024]図１は、コンピューティングデバイスの実施形態の例示的なハードウェアアーキテクチャの高レベルブロック図である。実施形態において、コンピューティングデバイス１００は、少なくとも、携帯電話、モバイルデバイス、埋め込みシステム、ビデオゲームコンソール、メディアコンソール、ラップトップコンピューター、デスクトップコンピューター、サーバー、および／またはデータセンターに含まれてよい。
【００１４】
[0025]コンピューティングデバイス１００は、一実施形態において、ＳｏＣ１０１と、メモリ１０４とを含む。ＳｏＣは、コンピューティングデバイスまたは他の電子システムのコンポーネントを、単一のチップまたは半導体基板に集積したＩＣである。ＳｏＣ１０１は、１つまたは複数のプロセッサコア１０３と、高性能メモリ１０２とを含む。プロセッサコア１０３は、内部信号経路１０６を用いて、高性能メモリ１０２と通信する。一実施形態において、高性能メモリ１０２は、信号経路１０６に結合されたインターフェイス１０２ａを含む。プロセッサコア１０３はまた、外部信号経路１０５を用いて、外部メモリ１０４とも通信する。一実施形態において、信号経路１０６および１０５は、ＯＳ、およびＳｏＣ１０１内の埋め込みメモリコントローラーによって制御される別々の信号経路である。
【００１５】
[0026]一実施形態において、メモリ１０４は、ＳｏＣ１０１の外部にあり、マザーボードなどのプリント回路板上の、メモリモジュールまたははんだ付けコンポーネントとして構成されてよい。一実施形態において、メモリ１０４は、プリント回路板上の少なくともトレースまたは信号線を含む信号経路１０５に結合されたインターフェイスを含む。一実施形態において、ＳｏＣ１０１はまた、信号経路１０５を含む同じプリント回路板に結合される。
【００１６】
[0027]当業者が認めるように、他の電子コンポーネントがＳｏＣ１０１に含まれてもよい。ＳｏＣ１０１は、デジタル回路、アナログ回路、混合信号回路、および／または無線周波数回路のうちの１つまたは複数を、単一の半導体基板上に含むことができる。ＳｏＣ１０１は、発振器、位相ロックループ、カウンタータイマー、リアルタイムタイマー、電源オンリセット生成器、外部インターフェイス（たとえば、ユニバーサルシリアルバス（ＵＳＢ）、ＩＥＥＥ１３９４インターフェイス（ファイヤーワイヤー）、イーサネット（登録商標）、ユニバーサル非同期受信機／送信機（ＵＳＡＲＴ：Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ／Ｔｒａｎｓｍｉｔｔｅｒ）、およびシリアル周辺バス（ＳＰＩ：Ｓｅｒｉａｌ  Ｐｅｒｉｐｈｅｒａｌ  Ｂｕｓ））、アナログインターフェイス、電圧調整器、および／または電力管理回路を含むことができる。
【００１７】
[0028]代替実施形態において、ＳｏＣ１０１は、システムインパッケージ（ＳｉＰ：Ｓｙｓｔｅｍ  ｉｎ  ｐａｃｋａｇｅ）、またはパッケージオンパッケージ（ＰｏＰ：ｐａｃｋａｇｅ  ｏｎ  ｐａｃｋａｇｅ）に取って代えられてもよい。ＳｉＰにおいては、複数のチップまたは半導体基板が、単一のパッケージに収容される。ＳｉＰ実施形態において、プロセッサコア１０３は、１つの半導体基板上にあることになり、高性能メモリ１０２は、第２の半導体基板上にあることになり、両方が、単一のパッケージに収容されることになる。一実施形態において、第１の半導体基板は、ワイヤーボンディングによって第２の半導体基板に結合されることになる。
【００１８】
[0029]ＰｏＰ実施形態においては、プロセッサコア１０３は、第１のパッケージに収容される１つの半導体ダイ上にあることになり、高性能メモリ１０２は、第２の異なるパッケージに収容される第２の半導体ダイ上にあることになる。第１のパッケージおよび第２のパッケージは次いで、標準インターフェイスでスタックされて、パッケージ間で、特に半導体ダイの間で信号をルーティングすることができる。スタックされたパッケージは次いで、一実施形態において、コンポーネントとしてのメモリ１０４を有するプリント回路板に結合されてよい。
【００１９】
[0030]実施形態において、プロセッサコア１０３は、メモリに記憶されたプロセッサ（またはマシン）可読命令を実行する（または読み出す）１つまたは複数のプロセッサを含む。プロセッサ可読命令の例は、コンピューティングデバイス１００のための、ＯＳおよび／またはアプリケーションソフトウェアプログラム（アプリケーション）（図２に示されるＯＳ２０５およびアプリケーション２０２〜２０４など）を含むことができる。プロセッサコア１０３は、ＯＳおよびアプリケーションのプロセッサ可読命令の実行に応答して、高性能メモリ１０２およびメモリ１０４を使用する。一実施形態において、プロセッサコア１０３は、プロセッサおよびメモリコントローラーを含むことができ、または代替的に、メモリコントローラーによって同様に実施されるメモリ管理機能もまた実施するプロセッサを含んでもよい。プロセッサコア１０３はまた、コントローラー、中央処理ユニット（ＣＰＵ）、グラフィックス処理ユニット（ＧＰＵ）、デジタル信号プロセッサ（ＤＳＰ）、および／またはフィールドプログラマブルゲートアレイ（ＦＰＧＡ）を含むことができる。一実施形態において、高性能メモリ１０２は、プロセッサコア１０３の上部に位置付けられる。
【００２０】
[0031]一実施形態において、高性能メモリ１０２は、帯域幅、メモリ待機時間、熱発生、摩耗前の書き込み数、および／または電力消費などの、少なくとも１つまたは複数のメモリ特性を有し、そのメモリ特性は、性能においてメモリ１０４よりも優れている。たとえば、高性能メモリ１０２は、メモリ１０４よりも高い帯域幅を有するワイドＩ／Ｏ  ＤＲＡＭであってよい。メモリ１０４は、低電力ダブルデータレート３動的ランダムアクセスメモリ（ＬＰＤＤＲ３  ＤＲＡＭ）メモリ（低電力ＤＤＲ、モバイルＤＤＲ（ＭＤＤＲ）またはｍＤＤＲとしても知られる）であってよい。一実施形態において、メモリインターフェイス１０２ａは、信号経路１０６上で信号を送受信するワイドＩ／Ｏ  ＤＲＡＭインターフェイスであり、一方、メモリインターフェイス１０４ａは、信号経路１０５上で信号を送受信するＬＰＤＤＲ３  ＤＲＡＭインターフェイスである。
【００２１】
[0032]実施形態において、高性能メモリ１０２およびメモリ１０４は、別々の半導体基板上に配置されたＩＣにおいて、メモリセルの１つまたは複数のアレイを含む。一実施形態において、高性能メモリ１０２およびメモリ１０４は、別々にパッケージされたデバイスに収容されたそれぞれの集積モノリシック回路に含まれる。実施形態において、高性能メモリ１０２およびメモリ１０４は、揮発性および／または不揮発性メモリを含むことができる。
【００２２】
[0033]揮発性メモリのタイプには、動的ランダムアクセスメモリ（ＤＲＡＭ）、分子電荷ベース（ｍｏｌｅｃｕｌａｒ  ｃｈａｒｇｅ−ｂａｓｅｄ）の（ＺｅｔｔａＣｏｒｅ）ＤＲＡＭ、フローティングボディＤＲＡＭ、および静的ランダムアクセスメモリ（「ＳＲＡＭ」）が含まれるが、これらに限定はされない。特定のタイプのＤＲＡＭは、ダブルデータレートＳＤＲＡＭ（「ＤＤＲ」）、または後世代ＳＤＲＡＭ（たとえば、「ＤＤＲｎ」）を含む。
【００２３】
[0034]不揮発性メモリのタイプには、電気的に消去可能なプログラム読み出し専用メモリ（「ＥＥＰＲＯＭ」）、ＦＬＡＳＨ（ＮＡＮＤおよびＮＯＲ  ＦＬＡＳＨを含む）、ＯＮＯ  ＦＲＡＳＨ、磁気抵抗または磁気ＲＡＭ（「ＭＲＡＭ」）、強誘電体（ｆｅｒｒｏｅｌｅｃｔｒｉｃ）ＲＡＭ（「ＦＲＡＭ（登録商標）」）、ホログラフィックメディア、オボニック／相変化（ｏｖｏｎｉｃ／ｐｈａｓｅ  ｃｈａｎｇｅ）、ナノ結晶体、ナノチューブＲＡＭ（ＮＲＡＭ−Ｎａｎｔｅｒｏ）、ＭＥＭＳ走査プローブシステム、ＭＥＭＳカンチレバー（ｃａｎｔｉｌｅｖｅｒ）スイッチ、ポリマー、分子、ナノフローティングゲート、および単一電子のタイプが含まれるが、これらに限定はされない。
【００２４】
[0035]実施形態において、信号経路１０５／１０６は、信号を転送するメディアであり、たとえば、相互接続、伝導要素、接触子、ピン、半導体基板における領域（ｒｅｇｉｏｎ）、ワイヤー、金属トレース／信号線、または光電導体の単独または組合せである。一実施形態において、複数の信号経路が、図に示された単一の信号経路に取って代わってもよく、単一の信号経路が、図に示された複数の信号経路に取って代わってもよい。実施形態において、信号経路は、バスおよび／またはポイントツーポイント接続を含むことができる。一実施形態において、信号経路は、制御信号線およびデータ信号線を含む。代替実施形態において、信号経路は、データ信号線または制御信号線を含む。さらに他の実施形態において、信号経路は、単方向（一方向に移動する信号）、または双方向（２方向に移動する信号）、あるいは単方向信号線および双方向信号線の両方の組合せである。
【００２５】
[0036]図２は、異なるタイプのメモリにアクセスするための例示的なソフトウェアアーキテクチャ２００の高レベルブロック図である。ＯＳ２０５、および特に異種メモリの動的管理（ＤＭＨＭ：ｄｙｎａｍｉｃ  ｍａｎａｇｅｍｅｎｔ  ｏｆ  ｈｅｔｅｒｏｇｅｎｅｏｕｓ  ｍｅｍｏｒｙ）３０８が、機能の中でもとりわけ、どのアプリケーション２０２〜２０４が高性能メモリ２０８を割り当てられ、どのアプリケーション２０２〜２０４がメモリ２０９を割り当てられるかを判定する。実施形態において、高性能メモリ２０８は、本明細書で説明され図１に示された高性能メモリ１０２に対応し、メモリ２０９は、本明細書で説明され図１に示されたメモリ１０４に対応する。ＤＭＨＭ３０８は、アプリケーション２０２〜２０４のうちの１つが属性フラグまたは属性情報を用いて高性能メモリを要求したかどうかに少なくとも基づいて、アプリケーション２０２〜２０４のうちのどれが高性能メモリ２０８にアクセスできることになるかを判定する。特定のアプリケーションが特定のメモリタイプ（高性能メモリ２０８か、メモリ２０９のどちらか）を割り当てられることになるという判定がなされると、適切なデバイスドライバー２０６が、ＯＳ２０５と共に使用される。
【００２６】
[0037]ＯＳ２０５、特にＤＭＨＭ３０８はまた、電力制御インターフェイス（ＡＣＰＩ：ａｄｖａｎｃｅｄ  ｃｏｎｆｉｇｕｒａｔｉｏｎ  ａｎｄ  ｐｏｗｅｒ  ｉｎｔｅｒｆａｃｅ）ドライバー、レジスタ、基本入力／出力システム（ＢＩＯＳ）およびテーブル（ひとまとめにしてＡＲＢＴ）２０７を使用して、本明細書で詳細に説明されるように、高性能メモリ２０８およびメモリ２０９の健全性、電力、および性能の監視などの、他の機能を実施する。ＡＣＰＩドライバーは、メモリなどのハードウェアコンポーネントを発見し、構成し、電力管理し、監視する。たとえば、ＯＳ２０５は、使用されていないときの周辺デバイスをオフにするために、ＡＣＰＩドライバーを使用することができる。ＢＩＯＳは、入力および出力動作を制御するファームウェアにおける一組のコンピューター命令であり、これは通常、不揮発性メモリに記憶される。一実施形態において、ＡＣＰＩドライバーは、ＯＳ２０５に、ＢＩＯＳと通信して、ＢＩＯＳに周辺機器の電力を落とすよう命令することを許可する。
【００２７】
[0038]図３Ａは、異なるタイプのメモリにアクセスするためのＯＳアーキテクチャ３００の高レベルブロック図である。一実施形態において、ＯＳ２０５は、図３Ａに示されるソフトウェアコンポーネントのうちの１つまたは複数を含む。一実施形態において、ソフトウェアコンポーネントは、ソフトウェアプログラム、ソフトウェアオブジェクト、ソフトウェア関数、ソフトウェアサブルーチン、ソフトウェアメソッド、ソフトウェアインスタンス、スクリプト、および／またはコードフラグメントを、単独で、または組み合わせて含むことができる。たとえば、ＯＳ２０５は、プロセス管理３０１、メモリ管理３０２、Ｉ／Ｏデバイス管理３０３、ファイル管理３０４、ネットワーク管理３０５、ユーザーインターフェイス３０６、および保護３０７のうちの１つまたは複数を含む。さまざまなＯＳソフトウェアコンポーネントによって実施され得る１つまたは複数の例示的な機能が、以下で説明される。代替実施形態において、より多い、もしくはより少ないソフトウェアコンポーネント、および／または以下で説明されるソフトウェアコンポーネントの機能が使用されてもよい。
【００２８】
[0039]実施形態において、ＯＳ２０５の少なくとも一部は、プロセッサ可読メモリデバイスに記憶される。一実施形態において、ＯＳ２０５の少なくとも一部は、図１に示された高性能メモリ１０２および／またはメモリ１０４に記憶される。
【００２９】
[0040]プロセス管理３０１は、ユーザープロセスおよびシステムプロセスを作成し、削除することを担当する。プロセス管理３０１は、プロセスの中断および再開もまた担当することができる。プロセス管理３０１は、プロセスの同期および通信もまた担当する。プロセス管理３０１は、デッドロック処理もまた担当する。
【００３０】
[0041]メモリ管理３０２は、特定のソフトウェアコンポーネントまたはアプリケーションによって、異なるタイプのメモリにおいてメモリのどの部分が現在使用されているかの経過を追うことを担当する。メモリ管理３０２はまた、メモリ空間が利用可能になるときに、どのプロセスがメモリにロードされるのかを決める。メモリ管理はまた、必要に応じて、メモリ空間を割り当て、割り当てを解除する。
【００３１】
[0042]一実施形態において、異種メモリの動的管理（ＤＭＨＭ）３０８は、メモリ管理３０２に含まれる。ＤＭＨＭ３０８は、利用可能なメモリのタイプを判定する、特定のタイプのメモリを特定のアプリケーションに割り当てる、アプリケーションのメモリ使用を監視する、エラー検出および訂正を実施する、利用可能なキャッシュを判定する、メモリを実際のキャッシュまたは仮想キャッシュとして使用する、メモリの性能、健全性、および構成を監視する、および異なるタイプのメモリの電力を管理することを担当するが、これらに限定はされない。一実施形態において、ＤＭＨＭ３０８の機能のうちの１つまたは複数を実施するためのソフトウェアコンポーネントが、図３Ｂに示される。
【００３２】
[0043]一実施形態において、ＤＭＨＭ３０８は、図３Ｂに示されるように、メモリタイプ３１０、割り当て３１１、使用監視３１２、検出およびエラー訂正３１３、キャッシュ管理３１４、性能、健全性および構成監視３１５、ならびに／または、電力管理３１６のソフトウェアコンポーネントのうちの１つまたは複数を含む。
【００３３】
[0044]メモリタイプ３１０は、コンピューティング環境において何のタイプのメモリが利用可能であるかを判定することを担当する。一実施形態において、メモリタイプ３１０は、コンピューティング環境をクエリして、何のタイプのメモリが利用可能であるかを判定する。一実施形態において、メモリタイプ３１０は、いずれかの高性能メモリが利用可能であるかどうかを判定する。一実施形態において、メモリタイプ３１０は、コンピューティングデバイス１００などのコンピューティング環境において、リストされたアプリケーションに関連付けられたメモリのタイプについての能力および／または性能特性を判定する目的のために、インターネットを介して、アプリケーション特性のオンライン（ｗｅｂ）カタログにアクセスする。特定のメモリが、所定の閾値よりも高い帯域幅を有するなど、アプリケーションに適切な一定の能力および／または性能特性を有するとき、メモリタイプ３１０は、特定のメモリを、高性能メモリとして指定することになる。メモリが所定の閾値を満たす特定の能力および／または性能特性を有さないとき、メモリタイプ３１０は、そのメモリを高性能として指定しない。一実施形態において、メモリ能力および／または性能特性のオンラインカタログは、新しいメモリデバイスが利用可能になると、更新／修正される。一実施形態において、ＯＳは、メモリ識別と関連させてメモリの性能特性を追跡および測定し、測定された性能特性を、インターネットを介してオンラインカタログにアップロードする。一実施形態において、ユーザーが、ジェスチャ、タッチ、または音声を用いて、コンソール１００２に入力することができる。一実施形態において、光学Ｉ／Ｏインターフェイス１１３５が、ユーザーのジェスチャを受信し、変換する。別の実施形態において、コンソール１００２が、ユーザーからの音声およびジェスチャ入力を受信し、変換するためのナチュラルユーザーインターフェイス（ＮＵＩ）を含む。代替実施形態において、フロントパネル・サブアセンブリ１１４２が、ユーザーの音声コマンドなどのタッチまたは音声を受信し、変換するためのタッチサーフェスおよびマイクロフォンを含む。なおさらなる実施形態において、メモリ能力および／または性能特性のカタログは、永続的なメモリにローカルに記憶される。
【００３４】
[0045]割り当て３１１は、高性能メモリなどの特定のタイプのメモリを、高性能メモリを要求している可能性のある特定のアプリケーションに割り当てることを担当する。一実施形態において、高性能メモリから利益を得ることができるアプリケーションは、高性能メモリを要求する属性フラグまたは属性情報を有する。割り当て３１１は、アプリケーションを特定のタイプのメモリに指定する前に、属性情報を確認する。一実施形態において、割り当て３１１は、アプリケーションのための属性情報のリストを含み、リストにおける特定のアプリケーションのための記憶された属性情報を、アプリケーションのマニフェストにあり得る属性情報と比較する。
【００３５】
[0046]一実施形態において、割り当て３１１は、属性情報を仮想メモリアロケーターに渡すことができ、仮想メモリアロケーターは、物理メモリ領域（ａｒｅａ）へのメモリページの割り当てを管理する。別の実施形態において、割り当て３１１は、メモリコントローラーを介して、属性情報を物理メモリアロケーターに渡すことができる。
【００３６】
[0047]一実施形態において、割り当て３１１は、高性能メモリを要求している特定のアプリケーションが使用することになるメモリの量を判定し、高性能メモリの十分な量が利用可能でないときには、要求を拒否することになる。別の実施形態において、割り当て３１１は、すべての稼働中または実行中のアプリケーションのランタイム優先度を比較し、一実施形態において、高性能メモリがより高い優先度のアプリケーションにマップされるときには、要求を拒否することになる。
【００３７】
[0048]一実施形態において、割り当て３１１はまた、高性能メモリを要求するアプリケーションをリストと比較して、アプリケーションを高性能メモリに割り当てるかどうかを判定する。一実施形態において、割り当て３１１は、一定のアプリケーションがより高性能なメモリにアクセスするのを防ぐ目的のために、ブラックリストされたアプリケーションのリストを含む。代替として、割り当て３１１は、アプリケーションの属性情報が高性能メモリを要求していなくても、より高性能なメモリを使用することができるホワイトリストされたアプリケーションのリストを含む。アプリケーションのこのリストは、割り当て３１１にローカルに存在してもよく、またはインターネットを介してオンラインでアクセス可能な、プロセッサ可読形式の別の場所に存在し、更新されてもよい。一実施形態において、適切な属性情報を有さないために高性能メモリを指定されていない、またはアプリケーションがブラックリスト上にあるためにブロックされているアプリケーションは、高性能ではないメモリを指定されることになる。
【００３８】
[0049]より高性能なメモリは、より速い（より大きい帯域幅、より低いメモリ待機時間）だけでなく、よりよい電力効率であり得るので、コンピューティングデバイスがよりよい電力効率であり得るように、高性能メモリが利用可能であるときには、アプリケーションが適切な属性情報を有さないときでさえ、一定のアプリケーションは、高性能メモリを割り当てられる。
【００３９】
[0050]使用監視３１２は、特定のタイプのメモリを指定されているアプリケーションのメモリ使用を監視することを担当する。使用監視３１２は、メモリの量がコンピューティング環境において利用可能な物理的に利用可能なメモリを超えないように、使用されているメモリの量を監視する。使用監視３１２はまた、割り当て３１１がアプリケーションを高性能メモリに割り当てることができるように、いつ高性能メモリが利用可能であるかを識別する。一実施形態において、使用監視３１２は、メモリコントローラーまたはドライバーを使用して、特定のアプリケーションが使用する高性能メモリの量を管理し、追跡する。一実施形態において、使用監視３１２は、アクセスされたメモリのアプリケーションの使用の概要をまとめ、アプリケーションの使用の概要を、永続的なメモリに記憶することができ、場合によっては、記憶された情報を、インターネットを介してオンラインカタログにアップロードする。
【００４０】
[0051]エラー検出および訂正３１３は、特定のアプリケーションが割り当てられたタイプのメモリを使用するときのエラーを検出し、訂正することを担当する。さまざまな実施形態において、異なるタイプの検出方法およびエラー訂正方法が使用されてよい。たとえば、ハッシュ関数法またはチェックサム法が使用されてよい。別の実施形態においては、エラー訂正コード（ＥＣＣ）または前方エラー訂正（ＦＥＣ）法においてパリティビット法が使用されてもよい。
【００４１】
[0052]キャッシュ管理３１４は、高性能メモリを、１つまたは複数のプロセッサのためのキャッシュとして使用することを担当する。代替実施形態において、キャッシュ管理３１４は、高性能メモリを仮想キャッシュとして使用する。
【００４２】
[0053]一実施形態において、高性能メモリは、Ｌ１／Ｌ２／Ｌ３キャッシュメモリのための、仮想化された保持空間または仮想キャッシュを作成するために使用される。これは、キャッシュメモリがより大きくなるのを可能にし、Ｌ１／Ｌ２／Ｌ３キャッシュメモリがそれ自体の目的のために利用可能なメモリ空間をプールするのを許可する。一実施形態において、キャッシュ管理３１５は、推測フェッチング（ｓｐｅｃｕｌａｔｉｖｅ  ｆｅｔｃｈｉｎｇ）を使用して、Ｌ１／Ｌ２／Ｌ３キャッシュメモリによって使用されそうなデータを、高性能メモリ（仮想キャッシュ）に記憶する。
【００４３】
[0054]キャッシュ管理３１５は、仮想キャッシュメモリ帯域幅（速度）が典型的なＬ１／Ｌ２／Ｌ３キャッシュ帯域幅よりも遅いことを考慮に入れる。一実施形態において、より高性能なメモリへのデータを推測的に先読みするための軽減方法が使用される。キャッシュ管理３１５はまた、Ｌ１／Ｌ２／Ｌ３キャッシュにフィードされるために、いつ高性能メモリからデータがなくなるのかを識別する。
【００４４】
[0055]代替実施形態において、より高性能なメモリは、より高いレベルのキャッシュとして使用される。たとえば、ワイドＩ／Ｏ  ＤＲＡＭは、ＳｏＣ１０１におけるＬ３キャッシュよりも高いレベルのキャッシュの役割を果たし、したがって、性能を押し上げるためのタスクを実施することになる。
【００４５】
[0056]性能、健全性および構成監視（性能監視）３１５は、特定のタイプのメモリの、帯域幅、健全性などの性能、およびメモリランクなどの構成を監視することを担当する。一実施形態において、性能監視３１５は、電源投入時および／または定期的に、各タイプのメモリをクエリして、帯域幅および／または熱などのメモリの詳細を取得する。一実施形態において、性能監視３１５はまた、電源投入時に、特定のメモリ構成について異なるタイプのメモリをクエリすることになる。一実施形態において、性能監視３１５は、図２に示されたようなＡＣＰＩドライバーを使用して、さまざまなメモリタイプの性能、健全性、および構成を監視する。一実施形態において、性能監視３１５は、環境的なパラメーターに関連した特定のメモリの健全性プロファイルをまとめて、そのような健全性プロファイルを、インターネットを介してオンラインカタログに定期的にアップロードする。
【００４６】
[0057]電力管理３１６は、異なるタイプのメモリの電力を管理することを担当する。一実施形態において、電力管理３１６は、管理可能な電力を有するメモリタイプの電力を管理する。一実施形態において、電力管理３１６は、そのステータスおよび／または構成に応じて、異なるタイプのメモリに提供される電力の量を、削減する、および／または増加させることになる。一実施形態において、プロセッサコア１０３における埋め込みメモリコントローラーが、高性能メモリ１０２に適用される電力を管理することになる。一実施形態において、電力管理３１６は、図２に示されたようなＡＣＰＩドライバーを使用して、さまざまなメモリタイプの電力を管理する。
【００４７】
[0058]ＤＭＨＭ３０８は、ＯＳ２０５において実装されているように説明されるが、代替実施形態においては、ＤＭＨＭ３０８が、コンピューティングデバイス１００のファームウェアでエンコードされてもよい。
【００４８】
[0059]ＯＳ２０５の他のソフトウェアコンポーネントに戻ると、Ｉ／Ｏデバイス管理３０３は、Ｉ／Ｏデバイスを管理することを担当する。一実施形態において、個別のハードウェアの特色は、ユーザーから隠されている。一実施形態において、デバイスドライバーが、個別のデバイスの特色を知っている。たとえば、Ｉ／Ｏデバイス管理３０３は、空き空間管理、メモリ割り当て、断片化、除去、およびヘッドスケジューリングなどの、ディスク管理機能を担当することができる。
【００４９】
[0060]ファイル管理３０４は、ファイルおよびディレクトリを作成すること、および削除することを担当する。ファイル管理３０４は、階層ファイルシステムをサポートすることができる。ファイル管理３０４はまた、ファイルをセカンダリメモリ上にバックアップすることができる。
【００５０】
[0061]ネットワーク管理３０５は、接続／ルーティング方法を提供することを含む、ネットワークとの通信を担当する。ネットワーク管理３０５はまた、他のコンピューティングデバイスへのデータ／プロセス移行を担当することができる。
【００５１】
[0062]ユーザーインターフェイス３０６は、文字ユーザーインターフェイスおよび／またはグラフィクスユーザーインターフェイスをユーザーに提供し、入力を受信し、ユーザーに出力を提供することを担当する。
【００５２】
[0063]保護３０７は、プログラム、プロセス、および／またはユーザーの、コンピューティングデバイスのリソースへのアクセスを制御することを担当する。たとえば、保護３０７は、ＣＰＵサイクル、メモリ、ファイル、および／またはＩ／Ｏデバイスなどのリソースへのアクセスを制御することを担当する。保護３０７はまた、ユーザー認証および通信を担当する。
【００５３】
[0064]図４〜図６Ｂは、異種メモリを動的に管理する例示的な方法を示す流れ図である。実施形態において、図４〜図６Ｂに示されたステップは、ハードウェア（たとえば、プロセッサ、メモリ、回路）、ソフトウェア（たとえば、ＯＳ、アプリケーション、ドライバー、マシン／プロセッサ可読命令）、またはユーザーの動作を、単独で、または組み合わせて表す。当業者が理解するように、実施形態は、示されるよりも多いまたは少ないステップを含むことができる。
【００５４】
[0065]図４は、異なるタイプのメモリを１つまたは複数のソフトウェアアプリケーションに割り当てるための例示的な方法の流れ図である。ステップ４００は、図１に示されたコンピューティングデバイス１００などのコンピューティングデバイスにおいて利用可能なメモリのタイプを判定するステップを示す。一実施形態において、ＤＭＨＭ３０８のメモリタイプ３１０が、コンピューティングデバイスにおいて利用可能なメモリのタイプを判定する。一実施形態において、メモリタイプ３１０は、利用可能な高性能メモリがあるかどうか、または利用可能な異なる性能のタイプのメモリの階層があるかどうかを判定する。
【００５５】
[0066]ステップ４０１は、サービスおよびメモリのタイプを求めるアプリケーションからの要求を受信するステップを示す。一実施形態において、アプリケーションは、ＯＳ２０５にサービスを要求し、ＤＭＨＭ３０８、および特に割り当て３１１が、サービスを要求するアプリケーションが高性能メモリもまた要求しているかどうかを判定する。一実施形態において、割り当て３１１は、関連付けられたアプリケーションマニフェストを読み出して、要求するアプリケーションが高性能メモリもまた要求するかどうかを判定する。一実施形態において、要求するアプリケーションは、図１に示されたような高性能メモリ１０２を要求する。
【００５６】
[0067]ステップ４０２は、要求するアプリケーションに関連付けられた属性情報を取得し、アプリケーションのマニフェストからの属性情報と比較するステップを示す。一実施形態において、割り当て３１１は、ＡＲＢＴ２０７（特に、アプリケーションテーブルに）に記憶されたアプリケーションに関連付けられた属性を読み出し、その属性情報を、要求するアプリケーションのマニフェストにおける情報と比較する。
【００５７】
[0068]ステップ４０３は次いで、ステップ４０２の比較に応答して、アプリケーションが高性能メモリを要求しているかどうかを判定する。要求するアプリケーションのアプリケーションマニフェストにおける属性情報がＡＲＢＴ２０７における属性情報と合致すると、ステップ４０４および４０５に示されるように、高性能メモリが利用可能であるとき、およびアプリケーションがブラックリスト（ＡＲＢＴ２０７に含まれるブラックリストテーブル）上にないとき、ならびに、ステップ４０６で示され本明細書で説明されるように、要求するアプリケーションが利用可能であるよりも多いメモリを要求しないとき、要求するアプリケーションは、高性能メモリを割り当てられることになる。
【００５８】
[0069]ステップ４０４は、要求するアプリケーションがどのくらいのメモリを使用することになるかを判定するステップを示す。一実施形態において、使用監視３１２が、コンピューティングデバイスのメモリにおけるアプリケーションの使用を監視する。
【００５９】
[0070]ステップ４０５は、要求するアプリケーションがホワイトリスト上にあるか、ブラックリスト上にあるかを判定する。要求するアプリケーションがホワイトリスト上にあるとき、高性能メモリが利用可能であって、アプリケーションが利用可能であるよりも多い高性能メモリを必要としない限り、アプリケーションの属性情報がそのように指し示さなくても、アプリケーションは、高性能メモリを割り当てられる。アプリケーションがブラックリスト上にあるとき、一実施形態において、高性能メモリが利用可能であるかどうかに関わらず、アプリケーションは、高性能メモリの割り当てを拒否される。一実施形態において、ブラックリストおよびホワイトリストは、ＡＲＢＴ２０７のテーブルに記憶される。代替実施形態において、ブラックリストおよびホワイトリストは使用されない。
【００６０】
[0071]ステップ４０６は、高性能メモリが利用可能であるかどうかを判定するステップを示す。一実施形態において、使用監視３１２が、高性能メモリの可用性について割り当て３１１を更新する。
【００６１】
[0072]ステップ４０７は、要求するアプリケーションが、１）適切な属性情報を有する、２）ブラックリスト上にない（または一実施形態において適切な属性情報の欠如を無視するホワイトリスト上にある）、３）高性能メモリが利用可能である、４）利用可能な高性能メモリの量が要求するアプリケーションによって使用されることになるメモリの量よりも多いときに、要求するアプリケーションに高性能メモリを割り当てるステップを示す。一実施形態において、割り当て３１１は、上の条件が満たされるときに、高性能メモリを、要求するアプリケーションに割り当てる。一実施形態において、上の条件よりも少ない条件が満たされて、高性能メモリを、要求するアプリケーションに割り当てることができる。そうでない場合、割り当て３１１は、高性能ではないメモリ（代替メモリ）を、要求するアプリケーションに割り当てる。一実施形態において、高性能メモリが割り当てられないときには、メモリ１０４が割り当てられる。
【００６２】
[0073]一実施形態において、メモリの量を求めるアプリケーションからの要求を割り当てるタスクは、十分なサイズの未使用メモリのブロックを突き止めることからなる。メモリ要求は、「ヒープ」として知られるメモリの大きなプールから、一部を割り当てることによって満たされる。任意の所与の時間に、ヒープのある部分は使用中であり、一方ある部分は「空き」（未使用）であり、したがって今後の割り当てのために利用可能である。
【００６３】
[0074]ステップ４０８は、ＤＭＨＭ３０８がコンピューティングデバイスにおける異なるタイプのメモリの使用を監視するステップを示す。特に、使用監視３１２は、１つまたは複数のアプリケーションによって使用されている高性能メモリの使用、および高性能ではない他のタイプのメモリの使用を監視する。使用監視３１２は、高性能メモリにおけるメモリ空間が利用可能になるとき、ならびに一実施形態において、他のタイプのメモリにおけるメモリ空間が利用可能になるとき、割り当て３１１に通知する。
【００６４】
[0075]ステップ４０９は、１つまたは複数のアプリケーションがさまざまなタイプのメモリを使用している間に、エラー検出および訂正を実施するステップを示す。一実施形態において、ＤＭＨＭ３０８のエラー検出および訂正３１３が、この機能を実施する。
【００６５】
[0076]図５Ａは、高性能メモリを仮想キャッシュメモリとして使用するための例示的な方法の流れ図である。ステップ５００は、コンピューティングデバイスにおいて利用可能なメモリのタイプを判定するステップを示す。一実施形態において、ステップ５００は、本明細書で説明されたようなステップ４００と同様に実施される。一実施形態において、メモリタイプ３１０および／またはキャッシュ管理３１４が、判定を行う。
【００６６】
[0077]ステップ５０１は、キャッシュメモリが利用可能であるかどうかを判定するステップを示す。一実施形態において、キャッシュ管理３１４が、キャッシュメモリが利用可能かどうか、および利用可能であるキャッシュメモリの量を判定する。ステップ５０１は次いで、仮想キャッシュメモリとしての高性能メモリがコンピューティングデバイスの性能を増加させることになるかどうかを判定する。一実施形態において、キャッシュ管理３１４は、利用可能なキャッシュメモリの量を所定の閾値と比較する。利用可能なキャッシュメモリの量が所定の閾値よりも少ないとき、キャッシュ管理３１４は、ステップ５０２に示されるように、高性能メモリを仮想キャッシュメモリとして指定する。代替実施形態において、そのような指定から利益を得ることができる特定のアプリケーションがＯＳ３０２にサービスを要求するとき、キャッシュ管理３１４は、高性能メモリを仮想キャッシュメモリとして指定する。
【００６７】
[0078]ステップ５０３は、使用されそうなデータを、仮想キャッシュメモリとして使用される高性能メモリに記憶するステップを示す。一実施形態において、推測フェッチングが使用される。
【００６８】
[0079]ステップ５０４は、実際のキャッシュメモリと比較して、仮想キャッシュメモリとして使用される高性能メモリの比較的遅い速度を軽減するステップを示す。一実施形態において、より高性能なメモリへのデータを推測的に先読みするための軽減方法が使用される。
【００６９】
[0080]図５Ｂは、高性能メモリをキャッシュメモリとして使用するための例示的な方法の流れ図である。ステップ５１０は、ステップ５００と同様に、キャッシュメモリが利用可能であるかどうかを判定するステップを示す。一実施形態において、キャッシュ管理３１４が、キャッシュメモリが利用可能かどうか、および利用可能であるキャッシュメモリの量を判定する。ステップ５１１は次いで、キャッシュメモリとしての高性能メモリがコンピューティングデバイスの性能を増加させることになるかどうかを判定する。一実施形態において、キャッシュ管理３１４は、利用可能なキャッシュメモリの量を所定の閾値と比較する。利用可能なキャッシュメモリの量が所定の閾値よりも少ないとき、キャッシュ管理３１４は、ステップ５１２に示されるように、高性能メモリをキャッシュメモリとして指定する。代替実施形態において、そのような指定から利益を得ることができる特定のアプリケーションがＯＳ３０２にサービスを要求するとき、キャッシュ管理３１４は、高性能メモリをキャッシュメモリとして指定する。
【００７０】
[0081]ステップ５１３および５１４は、高性能メモリが、仮想キャッシュメモリの代わりにキャッシュメモリとして使用されることを除いて、ステップ５０３および５０４と同様に実施される。
【００７１】
[0082]図６Ａは、構成、性能、および健全性を含むメモリ情報を取得するために、異なるタイプのメモリをクエリするための例示的な方法の流れ図である。ステップ６００は、メモリ構成情報について、コンピューティングデバイスにおける異なるタイプのメモリの各々をクエリするステップを示す。実施形態において、メモリ構成は、タイプ、サイズ、帯域幅、幅、ランク、待機時間、クロック、タイミングパラメーター、および／または他のメモリ構成パラメーターに関する情報を含むことができる。一実施形態において、さまざまな異なるタイプのメモリ（システムまたは構成メモリなど）に常駐しない、構成情報を有するストレージロケーションが、実際のメモリそれら自体の代わりにクエリされる。
【００７２】
[0083]一実施形態において、１つまたは複数のプロセッサが、ＯＳ２０５、および特にＤＭＨＭ３０８を実行して、メモリ構成情報を取得する。一実施形態において、性能監視３１５が、タイプのメモリごとに構成情報を取得することを担当する。一実施形態において、プロセッサコア１０３が、ＯＳ２０５を実行して、高性能メモリ１０２およびメモリ１０４への信号経路１０６および１０５上に制御信号を生成する。各メモリは次いで、制御信号に応答して構成情報を戻す。一実施形態において、制御信号は、信号経路１０５および１０６上に出力される別々のコマンドを含むことができる。一実施形態において、制御信号は、起動時におよび／または定期的に出力される。
【００７３】
[0084]ステップ６０１は、コンピューティングデバイスにおける異なるタイプのメモリの性能を監視するステップを示す。一実施形態において、プロセッサコア１０３が、ステップ６００と同様にＯＳ２０５を実行して、実際の帯域幅および／または実際のメモリ待機時間などの性能情報を取得する。代替実施形態において、ＯＳ２０５、および特にＤＭＨＭ３０８の性能監視３１５が、異なるタイプのメモリに書き込み、異なるタイプのメモリから読み出すことによって、実際の帯域幅および／またはメモリ待機時間を測定する。テストパターンがメモリに書き込まれ、次いでそれぞれのタイプのメモリの性能特性を測定する、および／または計時する間に、読み出されてよい。
【００７４】
[0085]ステップ６０２は、コンピューティングデバイスにおける異なるタイプのメモリから、健全性情報またはステータス情報を取得するステップを示す。実施形態において、プロセッサコア１０３が、ステップ６００および６０１と同様にＯＳ２０５を実行して、異なるタイプのメモリの温度（熱）および／または電力消費などの健全性情報を取得する。それぞれのメモリは、プロセッサコア１０３から信号経路１０５および１０６上に出力された制御信号に応答して、それぞれのタイプのメモリによって出力されたステータス情報において、温度および消費された電力を含む健全性情報を提供することができる。上と同様に、これらの制御信号は、起動時または定期的に生成されてよい。やはり上と同様に、テストパターンが、異なるタイプのメモリに書き込まれ、異なるタイプのメモリから読み出されてよく、メモリが正しくデータを記憶し、データを出力しているかどうかを判定するために送られたテストパターンと比較されてよい（エラー検出）。
【００７５】
[0086]図６Ｂは、コンピューティングデバイスにおける異なるタイプのメモリのための電力を管理するための例示的な方法の流れ図である。ステップ６１０は、コンピューティングデバイスにおける異なるタイプのメモリから、電力管理情報を取得するステップを示す。一実施形態において、プロセッサコア１０３が、上のステップと同様にＯＳ２０５を実行して、特定のタイプのメモリデバイスが管理され得る電力を有することができるかどうかに関する電力情報を取得する。一実施形態において、それぞれのタイプのメモリのための電力管理情報は、システムまたは構成メモリなどのそれぞれのタイプのメモリに常駐していないメモリに記憶され、上で説明されたように取り出されてよい。
【００７６】
[0087]ステップ６１１は、コンピューティングデバイスにおける異なるタイプのメモリの電力を管理するステップを示す。ステップ６１０で、特定のメモリが管理可能な電力を有することができるという判定がなされたとき、一実施形態において、識別されたメモリデバイスの電力は、ＤＭＨＭ３０８の電力管理３１６によって管理される。たとえば、電力管理３１６を実行するプロセッサコア１０３が、スリープモードまたは休止状態モードなどにおいてメモリデバイスが電力を必要としないときに、電力を削減することになる制御信号を、電力管理可能なメモリデバイスに出力する。
【００７７】
[0088]一実施形態において、コンピューティングデバイス１００のうちの１つまたは複数は、限定はされないが、ビデオゲームおよび／またはメディアコンソールであってよい。次に図７が、例示的なビデオゲームおよびメディアコンソールを説明するために使用されることになる、またはより一般的には、ゲームおよびメディアコンソールを含む例示的なゲーミングおよびメディアシステム１０００を説明するために使用されることになる。図７の以下の議論は、本明細書で提示されるコンセプトがそれを用いて実装され得る好適なコンピューティングデバイスの簡潔で一般的な説明を提供するように意図される。図７のシステムは、例のみを目的とすることが理解される。さらなる例において、本明細書で説明される実施形態は、クライアントコンピューティングデバイスに常駐し、クライアントコンピューティングデバイスによって実行されるブラウザーアプリケーションまたはソフトウェアアプリケーションのいずれかを介して、さまざまなクライアントコンピューティングデバイスを使用して実装されてよい。図７に示されるように、ゲーミングおよびメディアシステム１０００は、ゲームおよびメディアコンソール（これ以下、「コンソール」）１００２を含む。一般に、コンソール１００２は、クライアントコンピューティングデバイスの１つのタイプである。コンソール１００２は、コントローラー１００４１および１００４２によって表されるような、１つまたは複数のワイヤレスコントローラーを適応させるように構成される。コンソール１００２は、内部ハードディスクドライブと、ポータブルメディアドライブ１００６とを備えており、ポータブルメディアドライブ１００６は、光学ストレージディスク１００８によって表されるような、さまざまな形態のポータブルストレージメディアをサポートする。好適なポータブルストレージメディアの例には、ＤＶＤ、ＣＤ−ＲＯＭ、ゲームディスク、その他が含まれる。コンソール１００２はまた、リムーバブル・フラッシュタイプメモリユニット１０４０を受け入れるための、２つのメモリユニットカード・レセプタクル１０２５１および１０２５２を含む。コンソール１００２上のコマンドボタン１０３５は、ワイヤレス周辺サポートを有効および無効にする。
【００７８】
[0089]図７に図示されるように、コンソール１００２はまた、１つまたは複数のデバイスとワイヤレスに通信するための光学ポート１０３０と、追加的なコントローラー、または他の周辺機器のためのワイヤード接続をサポートするための２つのＵＳＢポート１０１０１および１０１０２とを含む。いくつかの実装形態において、追加的なポートの数および配置は変更されてもよい。電源ボタン１０１２およびイジェクトボタン１０１４もまた、コンソール１００２の前面に位置付けられる。電源ボタン１０１２は、ゲームコンソールに電源を適用するために選択され、他の特徴および制御へのアクセスを提供することもでき、イジェクトボタン１０１４は、ポータブルメディアドライブ１００６のトレイを交互に開閉して、光学ストレージディスク１００８の挿入および抜出しを可能にする。
【００７９】
[0090]コンソール１００２は、Ａ／Ｖインターフェイスケーブル１０２０を介して、テレビまたは他のディスプレイ（ディスプレイ１０５０など）に接続する。一実装形態において、コンソール１００２は、Ａ／Ｖケーブル１０２０（たとえば、高解像度ディスプレイ１０５０または他のディスプレイデバイス上の高解像度マルチメディアインターフェイス「ＨＤＭＩ（登録商標）」ポートに結合するのに好適なＡ／Ｖケーブル）を使用するコンテンツセキュアなデジタル通信のために構成された、専用Ａ／Ｖポートを備える。電源ケーブル１０２２は、ゲームコンソールに電力を提供する。コンソール１００２は、インターネットなどのネットワークへのアクセスを促進するためのケーブルまたはモデムコネクタ１０２４によって表されるように、ブロードバンド能力を備えてさらに構成されてもよい。ブロードバンド能力はまた、ワイヤレス・フィディリティー（Ｗｉ−Ｆｉ）ネットワークなどのブロードバンドネットワークを通して、ワイヤレスに提供されてもよい。
【００８０】
[0091]各コントローラー１００４は、ワイヤードまたはワイヤレスインターフェイスを介して、コンソール１００２に結合される。示された実装形態において、コントローラー１００４はＵＳＢ互換であり、ワイヤレスまたはＵＳＢポート１０１０を介してコンソール１００２に結合される。コンソール１００２は、幅広いユーザー対話式メカニズムのうちのいずれかを備えていてよい。図７に示される例において、各コントローラー１００４は、２つの親指スティック１０３２１および１０３２２と、Ｄ−パッド１０３４と、ボタン１０３６と、２つのトリガー１０３８とを備える。これらのコントローラーは、単に代表的なものであり、他の知られているゲーミングコントローラが、図７に示されるコントローラーに代わりに使われる、またはそれに追加されてもよい。一実施形態において、ユーザーは、ジェスチャ、タッチ、または音声を介して、コンソール１００２に入力することができる。一実施形態において、光学Ｉ／Ｏインターフェイス１１３５が、ユーザーのジェスチャを受信し、変換する。別の実施形態において、コンソール１００２は、ユーザーからの音声およびジェスチャ入力を受信し、変換するためのナチュラルユーザーインターフェイス（ＮＵＩ）を含む。代替実施形態においては、フロントパネル・サブアセンブリ１１４２が、ユーザーの音声コマンドなどのタッチまたは音声を受信し、変換するためのタッチサーフェスおよびマイクロフォンを含む。
【００８１】
[0092]一実装形態において、メモリユニット（ＭＵ）１０４０がまたコントローラー１００４に挿入されて、追加的かつポータブルなストレージを提供してもよい。ポータブルＭＵは、ユーザーが他のコンソール上でプレイするときに使用するためのゲームパラメーターを記憶するのを可能にする。この実装形態において、各コントローラーは、２つのＭＵ１０４０を適応させるように構成されるが、２つよりも多いまたは少ないＭＵがまた用いられてもよい。
【００８２】
[0093]ゲーミングおよびメディアシステム１０００は、メモリメディアに記憶されたゲームをプレイするためだけでなく、ゲームをダウンロードしてプレイするために、および電子メディアソースおよびハードメディアソースの両方から予め記録された音楽およびビデオを再生するために、一般に構成される。異なるストレージオファリングを用いて、タイトルは、ハードディスクドライブから、光学ストレージディスクメディア（たとえば、１００８）から、オンラインソースから、またはＭＵ１０４０からプレイされ得る。ゲーミングおよびメディアシステム１０００がプレイすることが可能なメディアのタイプのサンプルは、以下を含む。
【００８３】
[0094]ＣＤ、ＤＶＤ、またはより大容量のディスクから、ハードディスクドライブから、またはオンラインソースからプレイされるゲームタイトル。
[0095]ポータブルメディアドライブ１００６のＣＤから、ハードディスクドライブもしくはソリッドステートディスク上のファイル（たとえば、メディアフォーマットにおける音楽）から、またはオンラインストリーミングソースからプレイされるデジタル音楽。
【００８４】
[0096]ポータブルメディアドライブ１００６のＤＶＤディスクから、ハードディスクドライブ上のファイル（たとえば、Ａｃｔｉｖｅ  Ｓｔｒｅａｍｉｎｇ  Ｆｏｒｍａｔ）から、またはオンラインストリーミングソースからプレイされるデジタルオーディオ／ビデオ。
【００８５】
[0097]動作中、コンソール１００２は、コントローラー１００４からの入力を受信し、情報をディスプレイ１０５０上に表示するように構成される。たとえば、コンソール１００２は、以下で議論されるように、ディスプレイ１０５０上にユーザーインターフェイスを表示して、ユーザーがコントローラー１００４を使用してゲームを選択し、以下で論じられるように状態の解決可能性情報を表示するのを許可することができる。
【００８６】
[0098]図８は、ゲーミングおよびメディアシステム１０００の機能ブロック図であり、ゲーミングおよびメディアシステム１０００の機能コンポーネントをより詳細に示す。コンソール１００２は、ＣＰＵ１１００と、フラッシュＲＯＭ１１０４、ＲＡＭ１１０６、ハードディスクドライブまたはソリッドステートドライブ１１０８を含むさまざまなタイプのメモリへのプロセッサアクセスを促進するメモリコントローラー１１０２と、ポータブルメディアドライブ１００６とを有する。一実装形態において、ＣＰＵ１１００は、データを一時的に記憶し、それゆえハードドライブ１１０８になされるメモリアクセスサイクルの数を削減するための、レベル１キャッシュ１１１０およびレベル２キャッシュ１１１２を含み、それにより、処理スピードおよびスループットを向上させる。
【００８７】
[0099]ＣＰＵ１１００、メモリコントローラー１１０２、およびさまざまなメモリデバイスは、１つまたは複数のバスを介して相互接続される。この実装形態で使用されるバスの詳細は、本明細書で議論されている問題の主題の理解には特に関係はない。しかしながら、そのようなバスが、さまざまなバスアーキテクチャのうちのいずれかを使用する、シリアルバスおよびパラレルバス、メモリバス、周辺バス、およびプロセッサバスまたはローカルバスのうちの１つまたは複数を含むことがあることが理解されるであろう。例として、そのようなアーキテクチャは、業界標準アーキテクチャ（ＩＳＡ）バス、マイクロチャネルアーキテクチャ（ＭＣＡ）バス、拡張ＩＳＡ（ＥＩＳＡ）バス、ビデオ電子規格協会（ＶＥＳＡ）ローカルバス、およびＭｅｚｚａｎｉｎｅバスとしても知られる周辺コンポーネント相互接続（ＰＣＩ）バスを含むことができる。
【００８８】
[00100]一実装形態において、ＣＰＵ１１００、メモリコントローラー１１０２、ＲＯＭ１１０４、およびＲＡＭ１１０６は、共通のモジュール１１１４上に集積される。この実装形態において、ＲＯＭ１１０４は、ＰＣＩバスおよびＲＯＭバス（どちらも図示せず）を介してメモリコントローラー１１０２に接続されるフラッシュＲＯＭとして構成される。ＲＡＭ１１０６は、複数のダブルデータレート同期動的ＲＡＭ（ＤＤＲ  ＳＤＲＡＭ）、またはより速いデータレートのＤＲＡＭモジュールとして構成されており、これらは、別々のバスを介してメモリコントローラー１１０２によって独立して制御される。ハードディスクドライブ１１０８およびポータブルメディアドライブ１００６は、ＰＣＩバスおよびＡＴアタッチメント（ＡＴＡ）バス１１１６を介して、メモリコントローラー１１０２に接続されて示されている。しかしながら、他の実装形態においては、異なるタイプの専用データバス構造がまた、代替において適用され得る。
【００８９】
[00101]別の実施形態において、少なくともＣＰＵ１１００、レベル１キャッシュ１１１０、レベル２キャッシュ１１１２、メモリコントローラー１１０２、およびＲＡＭメモリ１１０６が、本明細書で説明され図１に示されたようなＳｏＣ１０１などの、ＳｏＣに含まれる。一実施形態において、ＲＡＭメモリ１１０６が、ワイドＩ／Ｏ  ＤＲＡＭなどの高性能メモリに取って代わり、メモリコントローラー１１０２の機能が、プロセッサコア１０３によって実施される。ＬＰＤＤＲ３  ＤＲＡＭなどの、高性能メモリではない別のタイプのメモリは、その場合、本明細書で説明されるように、ＳｏＣ１０１に結合されることになる。同様に、ＯＳ２０５は、本明細書で説明されるようなコンソール１００２においてＳｏＣ１０１によって使用される。
【００９０】
[00102]３次元グラフィックス処理ユニット１１２０およびビデオエンコーダー１１２２は、高速および高分解能（たとえば、高解像度）グラフィックス処理のためのビデオ処理パイプラインを形成する。データは、グラフィックス処理ユニット１１２０から、デジタルビデオバスを介して、ビデオエンコーダー１１２２へと搬送される。オーディオ処理ユニット１１２４およびオーディオコーデック（コーダー／デコーダー）１１２６は、さまざまなデジタルオーディオフォーマットのマルチチャネルオーディオ処理のための、対応するオーディオ処理パイプラインを形成する。オーディオデータは、通信リンクを介して、オーディオ処理ユニット１１２４とオーディオコーデック１１２６との間で搬送される。ビデオ処理パイプラインおよびオーディオ処理パイプラインは、テレビまたは他のディスプレイに送信するために、データをＡ／Ｖ（オーディオ／ビデオ）ポート１１２８に出力する。示される実装形態において、ビデオ処理コンポーネントおよびオーディオ処理コンポーネント１１２０〜１１２８は、モジュール１１１４に搭載されている。
【００９１】
[00103]図８は、ＵＳＢホストコントローラー１１３０およびネットワークインターフェイス１１３２を含むモジュール１１１４を示す。ＵＳＢホストコントローラー１１３０は、バス（たとえば、ＰＣＩバス）を介して、ＣＰＵ１１００およびメモリコントローラー１１０２と通信して示されており、周辺コントローラー１００４１〜１００４４のためのホストとして働く。ネットワークインターフェイス１１３２は、ネットワーク（たとえば、インターネット、ホームネットワーク、その他）へのアクセスを提供し、イーサネット（登録商標）カード、モデム、ワイヤレスアクセスカード、Ｂｌｕｅｔｏｏｔｈ（登録商標）モジュール、ケーブルモデム、その他を含む、幅広くさまざまなワイヤーまたはワイヤレスインターフェイスコンポーネントのうちのいずれかであってよい。
【００９２】
[00104]図８に図示された実装形態において、コンソール１００２は、４つのコントローラー１００４１〜１００４４をサポートするためのコントローラーサポート・サブアセンブリ１１４０を含む。コントローラーサポート・サブアセンブリ１１４０は、たとえば、メディアおよびゲームコントローラーなどの外部制御デバイスによるワイヤードおよびワイヤレスの動作をサポートするための、任意のハードウェアコンポーネントおよびソフトウェアコンポーネントを含む。フロントパネルＩ／Ｏサブアセンブリ１１４２は、電源ボタン１０１２、イジェクトボタン１０１４、ならびにコンソール１００２の外側面に露出された任意のＬＥＤ（発光ダイオード）または他のインジケーターの、複数の機能性をサポートする。サブアセンブリ１１４０および１１４２は、１つまたは複数のケーブルアセンブリ１１４４を介して、モジュール１１１４と通信している。他の実装形態において、コンソール１００２は、追加的なコントローラーサブアセンブリを含むことができる。示された実装形態はまた、モジュール１１１４に伝達され得る信号を送り、受信するように構成された光学Ｉ／Ｏインターフェイス１１３５を示す。
【００９３】
[00105]ＭＵ１０４０１および１０４０２は、ＭＵポート「Ａ」１０３０１および「Ｂ」１０３０２に、それぞれ接続可能であるように示される。追加的なＭＵ（たとえば、ＭＵ１０４０３〜１０４０６）が、コントローラー１００４１および１００４３に接続可能であるように、すなわち、各コントローラーに２つのＭＵが接続可能であるように、示される。コントローラー１００４２および１００４４もまた、ＭＵを受け入れるように構成されてよい。各ＭＵ１０４０は、ゲーム、ゲームパラメーター、および他のデータが記憶され得る追加的なストレージを差し出す。いくつかの実装形態において、他のデータは、デジタルゲームコンポーネント、実行可能なゲーミングアプリケーション、ゲーミングアプリケーションを展開するための命令セット、およびメディアファイルのうちのいずれかを含むことができる。コンソール１００２またはコントローラーに挿入されると、ＭＵ１０４０は、メモリコントローラー１１０２によってアクセスされ得る。
【００９４】
[00106]システム電力供給モジュール１１５０は、ゲーミングシステム１０００のコンポーネントに電力を提供する。ファン１１５２は、コンソール１００２内部の回路を冷やす。
【００９５】
[00107]プロセッサ可読命令を含むアプリケーション１１６０は、ハードディスクドライブ１１０８上に記憶される。コンソール１００２が電源オンにされると、アプリケーション１１６０のさまざまな部分が、ＣＰＵ１１００での実行のために、ＲＡＭ１１０６ならびに／またはキャッシュ１１１０および１１１２にロードされ、ここで、アプリケーション１１６０は、１つのそのような例である。さまざまなアプリケーションは、ＣＰＵ１１００での実行のために、ハードディスクドライブ１１０８上に記憶されてもよい。一実施形態において、アプリケーション１１６０は、本明細書で説明されたように、高性能メモリなどの特定のタイプのメモリの使用を要求する属性情報を含む。
【００９６】
[00108]コンソール１００２はまた、コンソール１００２を、１つまたは複数の他のコンピューティングデバイス（たとえば、他のコンソール）と通信可能に結合するように構成された通信サブシステム１１７０を含むように示される。通信サブシステム１１７０は、１つまたは複数の異なる通信プロトコルと互換性のある、ワイヤードおよび／またはワイヤレス通信デバイスを含むことができる。非限定的な例として、通信サブシステム１１７０は、ワイヤレス電話ネットワーク、またはワイヤードもしくはワイヤレスのローカルエリアネットワークもしくはワイドエリアネットワークを介した通信のために構成されてよい。いくつかの実施形態において、通信サブシステム１１７０は、インターネットなどのネットワークを介して、コンソール１００２が他のデバイスにメッセージを送る、および／または他のデバイスからメッセージを受信するのを許可することができる。個別の実施形態において、通信サブシステム１１７０は、ダウンロード要求を送るために、かつデジタルコンテンツのダウンロードおよびアップロードをもたらすために、コーディネーターおよび／または他のコンピューティングデバイスと通信するために使用され得る。より一般的には、通信サブシステム１１７０は、コンソール１００２がピアツーピア通信に参加するのを可能にすることができる。
【００９７】
[00109]ゲーミングおよびメディアシステム１０００は、システムを、ディスプレイ１０５０（図７）、テレビ、ビデオプロジェクター、または他のディスプレイデバイスに単純に接続することによって、スタンドアロンシステムとして動作されてよい。このスタンドアロンモードにおいて、ゲーミングおよびメディアシステム１０００は、１人または複数のプレーヤーが、ゲームをプレイする、または、たとえば映画を見たり音楽を聴いたりすることによって、デジタルメディアを楽しむことを可能にする。しかしながら、ネットワークインターフェイス１１３２、またはより一般的には、通信サブシステム１１７０を通して利用可能にされるブロードバンド接続性の統合により、ゲーミングおよびメディアシステム１０００は、ピアツーピアネットワークなどのより大きなネットワークゲーミングコミュニティにおける参加者として、さらに動作されてもよい。
【００９８】
[00110]上で説明されたコンソール１００２は、図１およびさまざまな他の図を参照して上で議論されたコンピューティングデバイス１００の一例にすぎない。上で明らかにされたように、本明細書で説明された実施形態がそれを用いて使用され得るさまざまな他のタイプのコンピューティングデバイスが存在する。
【００９９】
[00111]本発明のシステムの上述の詳細な説明が、例証および説明の目的のために提示されてきた。説明は、包括的であること、または本発明のシステムを開示された厳密な形態に限定することは意図されない。多くの修正形態および変形形態が、上の教示に照らして可能である。説明された実施形態は、本発明のシステムの原理およびその実践的な用途を最もよく明らかにするために選ばれ、それにより他の当業者が、さまざまな実施形態において、かつ企図された特定の使用に適するようにさまざまな修正形態を用いて、本発明のシステムを最もよく利用することを可能にする。本発明のシステムの範囲は、これに付属される特許請求の範囲によって定義されるように意図される。
【図１】
2016510471.tif 000003
【図２】
2016510471.tif 000004
【図３Ａ】
2016510471.tif 000005
【図３Ｂ】
2016510471.tif 000006
【図４】
2016510471.tif 000007
【図５Ａ】
2016510471.tif 000008
【図５Ｂ】
2016510471.tif 000009
【図６Ａ】
2016510471.tif 000010
【図６Ｂ】
2016510471.tif 000011
【図７】
2016510471.tif 000012
【図８】
2016510471.tif 000013
【国際調査報告】
2016510471.tif 000014
2016510471.tif 000015
2016510471.tif 000016