(57)【特許請求の範囲】
【請求項１】
各々の領域が複数の属性により定義されてプロセッサに応答する、複数の領域にメモリを区画化する段階と、
データの予想使用量に従って前記データを特徴付ける段階と、
前記データの前記予想使用量に基づいて前記データを格納すべく前記複数の領域から１つの領域を選択する段階と、
前記メモリの前記領域に格納されている前記データの今後のアクセス期間を特定する段階と、
前記アクセス期間に先立って前記データを前記メモリの代替領域へ移動する段階と
を備え、
前記代替領域は、まれに使用されるが、使用中に速いアクセスを必要とするデータに応じて速いアクセスに対応する複数の属性を有する、メモリにアクセスする方法。
【請求項２】
前記データの前記予想使用量は、前記データのアクセス頻度、前記データの検索における有用性、および前記データの寿命の少なくとも１つに基づく、請求項１に記載の方法。
【請求項３】
前記データは、検索が実行される前記領域をはっきり特定することなしに前記複数の領域のいずれかから、格納可能および検索可能である、請求項１または２に記載の方法。
【請求項４】
前記予想使用量に応じて前記領域の前記複数の属性を動的に変更する段階をさらに備える、請求項１から３のいずれか一項に記載の方法。
【請求項５】
前記メモリの前記領域のアクセス期間と保持期間とを特定する段階と、
前記領域の電圧属性を、電力消費量および速度の必要性に基づいて前記予想使用量に従って電圧の値が変更されるように、変更する段階をさらに備える、
請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記データを保つための前記保持期間中、前記電圧がより低くなり、前記データを速く検索するための前記アクセス期間中、前記電圧がより高くなるように、前記領域の電圧属性を変更する段階をさらに備える、請求項５に記載の方法。
【請求項７】
電力補正の必要を示す前記メモリの領域をメモリセンサ入力に基づいて特定する段階と、
電力消費量および発熱を少なくするために、前記メモリセンサ入力に応じて前記領域の前記複数の属性を変更する段階とをさらに備える、請求項１から６のいずれか一項に記載の方法。
【請求項８】
より優先度が高い属性を示す複数の領域が有利であるように前記複数の属性の優先度を示す動作モードを特定する段階と、
高い優先度に対応している複数の属性を示す複数の領域を優先するとともに、より低い優先度に対応している複数の属性を示す複数の領域はより低い頻度で使用されるように、前記属性の優先度に基づいて前記データをマッピングする段階とをさらに備える、請求項１から７のいずれか一項に記載の方法。
【請求項９】
動作モードは、前記複数の属性に基づく使用に関して前記複数の領域に優先順位をつけ、前記動作モードは、
速い検索を行う複数のメモリ領域を優先する性能モードと、
許容可能な検索時間を有する低電力消費量の複数の領域を優先する効率モードと、
応答性を保ちながら最小の電力および熱負荷で動作を保つための高保持時間を有する複数の領域を優先するレジリエンスモードとを含む、請求項１から７のいずれか一項に記載の方法。
【請求項１０】
前記選択する段階は、前記複数の属性と前記予想使用量との間をマッピングする段階を備え、
性能属性は、前記メモリの領域から前記データが再呼び出しされる速度を特定し、複数のタイミング感度が高い計算において頻繁にアクセスされたデータに使用され、
保持属性は、前記データが電力再生なしに前記メモリの領域に残る持続時間を特定し、複数の待ち時間許容計算においてまれにアクセスされたデータに使用され、ならびに、
効率属性は、前記メモリの領域内に前記データを維持するための電力消費量を示しており、熱またはバッテリ上の複数の問題がメモリアクセスを制限する場合に使用される、請求項１から９のいずれか一項に記載の方法。
【請求項１１】
前記メモリの複数の領域から複数の動作統計を受信する段階をさらに含み、前記複数の属性は、前記受信した複数の動作統計に基づく、請求項１から１０のいずれか一項に記載の方法。
【請求項１２】
前記複数の動作統計は、温度、複数の統計用カウンタ、および複数のタイムアウトカウンタを含む、請求項１１に記載の方法。
【請求項１３】
前記マッピングする段階は、
頻繁にアクセスされた複数の領域の温度に対するセンサフィードバックを受信し、
前記受信したセンサフィードバックに基づいて、より使用頻度が低い複数の領域に前記データを移動するためのヒューリスティックを呼び出す段階をさらに備える、請求項８に記載の方法。
【請求項１４】
前記マッピングする段階は、
複数の領域へのアクセスのための複数のカウンタを保ち、
アクセス数が多い複数の領域からアクセス数が少ない複数の領域へ前記データを移動するためのヒューリスティックを呼び出す段階をさらに備える、請求項８に記載の方法。
【請求項１５】
前記マッピングする段階は、
複数のデータ保持時間に対応してタイマー入力を受信し、前記領域の保持時間に存在する場合、限界に近づいているデータを特定し、
前記受信したタイマー入力に基づいて、より高い保持時間を持つ複数の領域に前記データを移動するためのヒューリスティックを呼び出す段階をさらに備える、
請求項８に記載の方法。
【請求項１６】
前記複数の領域は、複数のスタックダイメモリ配列によりアクセス可能な複数のスルーシリコンビア（ＴＳＶ）領域とバスがアクセス可能な複数のバンクとを有する、請求項１から１５のいずれか一項に記載の方法。
【請求項１７】
各々の領域が複数の属性により定義されて複数のメモリ領域に分割されるメモリと、
データの予想使用量に従って前記データを特徴付けるヒューリスティック論理と、
前記領域の前記複数の属性との前記予想使用量の相関に基づいて前記複数のメモリ領域の１つの領域へ前記データをマッピングするメモリコントローラと、
前記マッピングされたデータをレンダリングするためのディスプレイと
を備え、
前記ヒューリスティック論理は、
前記メモリの前記領域に格納されている前記データの今後のアクセス期間を特定し、
前記アクセス期間に先立って前記データを前記メモリの代替領域へ移動し、
前記代替領域は、まれに使用されるが、使用中に速いアクセスを必要とするデータに応じて速いアクセスに対応する複数の属性を有する、装置。
【請求項１８】
前記データの予想使用量は、前記データのアクセス頻度、前記データの検索における有用性、および前記データの寿命の少なくとも１つに基づく、請求項１７に記載の装置。
【請求項１９】
前記分割されたメモリの各領域は、前記データが格納される前記メモリの領域を考慮することなく同じやり方で前記メモリコントローラからアドレッシング可能な状態を保つ、請求項１７または１８に記載の装置。
【請求項２０】
前記複数のメモリ領域は、前記予想使用量に応じて前記複数の属性の動的変更用である、請求項１７から１９のいずれか一項に記載の装置。
【請求項２１】
ヒューリスティック論理は動作モードを定義し、
前記動作モードは、より優先度の高い属性を示す複数の領域が有利であるように前記複数の属性の優先度を表し、
前記メモリコントローラは、高い優先度に対応している複数の属性を示す複数の領域が望まれるとともに、より低い優先度に対応している複数の属性を示す複数の領域はより低い頻度で使用されるように、前記属性の優先度に基づいて前記データをマッピングするために、前記ヒューリスティック論理に応答する、請求項１７から２０のいずれか一項に記載の装置。
【請求項２２】
前記ヒューリスティック論理は、前記複数の属性に基づいて前記複数のメモリ領域に優先順位をつけるための複数の動作モードを備え、
前記複数の動作モードは、速い検索を行う複数のメモリ領域を優先する性能モードと、
許容可能な検索時間を有する低電力消費量の複数の領域を優先する効率モードと、
応答性を保ちながら最小の電力および熱負荷で動作を保つための高保持時間を有する複数の領域を優先するレジリエンスモードとを含む、請求項１７から２１のいずれか一項に記載の装置。
【請求項２３】
前記ヒューリスティック論理は、複数の属性と使用量との間のマッピングが実行されるようにし、
性能属性は、前記メモリの領域からデータが再呼び出しされる速度を特定し、複数のタイミング感度が高い計算において頻繁にアクセスされたデータに使用され、
保持属性は、前記データが電力再生なしに前記メモリの領域に残る持続時間を特定し、複数の待ち時間許容計算においてまれにアクセスされたデータに使用され、ならびに、
効率属性は、メモリの領域内にデータを保つための電力消費量を示しており、熱またはバッテリ上の問題がメモリアクセスを制限する場合に使用される、請求項１７から２２のいずれか一項に記載の装置。
【請求項２４】
メモリにアクセスするためのプログラムであって、
コンピュータに、メモリを、各々の領域が複数の属性により定義される複数の領域に区画化する段階と、
データの予想使用量に従って前記データを特徴付ける段階と、
前記領域の前記複数の属性との前記予想使用量の相関に基づいて前記複数の領域の１つの領域へ前記データをマッピングする段階と、
前記メモリの前記領域に格納されている前記データの今後のアクセス期間を特定する段階と、
前記アクセス期間に先立って前記データを前記メモリの代替領域へ移動する段階と
を実行させ、
前記代替領域は、まれに使用されるが、使用中に速いアクセスを必要とするデータに応じて速いアクセスに対応する複数の属性を有する、プログラム。
【請求項２５】
請求項２４に記載のプログラムを格納するコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピュータシステムは、メインメモリ、すなわちプログラム（用途）実行時におけるアクセス用のランダムアクセスメモリ（ＲＡＭ）と、主として、プログラム全体の保存／検索用および現在の実行よりも多くの格納が求められるデータファイル書き込み用のディスクメモリ（大容量ストレージ）とを、用いる。しばしば、これらのタイプは、揮発性および不揮発性ストレージと称され、メインメモリ内に格納値を保つのに一定の電力が必要であることを意味している。一方、ディスクメモリは、プログラムおよびデータの永続的な格納に用いられる。これらのタイプの各々に対するアクセス方法もまた、基本的に異なる。なぜなら、ディスクメモリがコンピュータの入出力（Ｉ／Ｏ）サブシステムに依存する一方で揮発性メモリがプログラム命令によりアクセスされるからである。一般に揮発性メモリのほうがより速いが、そのようなメモリは、動作性能が実質的に類似している任意の利用可能な位置の格納および検索をメモリコントローラが実施するように、複数のホモジニアスメモリ位置からなる単一のブロックとして参照される。
【図面の簡単な説明】
【０００２】
本発明の前述および他の目的、特徴、ならびに利点は、異なる図面全体にわたる同一部品が同様の参照符号によって言及される添付の図面に図示されるように、本発明の特定の実施形態に関する以下の説明から明らかであろう。図面は、寸法どおりである必要はないが、その代わりに本発明の原理を説明することに重点が置かれている。
【図１】本明細書中の構成による使用に適したコンピュータメモリ環境のコンテクスト図である。
【図２】図１の環境におけるメモリアクセスのフローチャートである。
【図３ａ】図１の環境のメモリアクセスのヒューリスティックを示す計算およびデータフローである。
【図３ｂ】図１の環境のメモリアクセスのヒューリスティックを示す計算およびデータフローである。
【図３ｃ】図１の環境のメモリアクセスのヒューリスティックを示す計算およびデータフローである。
【図３ｄ】図１の環境のメモリアクセスのヒューリスティックを示す計算およびデータフローである。
【図４】図１の環境におけるメモリ領域の積層実装を示す。
【発明を実施するための形態】
【０００３】
各々が異なる属性を表す揮発性および不揮発性メモリの領域に対する選択的メモリアクセスに関して動作可能なメモリコントローラは、いくつかの例を挙げると、アクセス速度、保持時間、および電力消費量を変える異なるメモリ機能を利用する。メモリの異なる領域は、アドレス可能メモリの単一の連続範囲として用途に利用可能な状態を保ちつつ、異なる属性を有する。メモリコントローラは、速度、節電、または効率（すなわち、熱／電力消費を最小限にすること）等のコンピューティング装置の操作優先順位を特定する動作モードを用いる。メモリコントローラは、格納されているデータの予想使用量（expected usage）（例えば、いつデータが検索されるかを示すアクセス頻度）に基づいて、メモリの領域を特定する。センサまたはカウンタなどの他の要素を用いて、温度の問題を生じ得る頻繁に用いられる、メモリの領域を特定してもよい。このように、メモリは、（揮発性／不揮発性アクセス命令と対照的に）用途が領域を特定する必要がないように、用途には単一の連続したメモリバンクとして現れる。メモリコントローラは、データの予想使用量との相関性が高い属性を示している領域に基づいて、メモリの領域を優先するヒューリスティックにより、動作モードと予想使用量とに基づいてメモリの領域を選択する。
【０００４】
ＤＲＡＭがバイトアドレス可能不揮発性メモリ（ＮＶＭ）に取って変わられる可能性がある。このようなＮＶＭとして、限定されるものではないが、強誘電ランダムアクセスメモリ（ＦｅＴＲＡＭ）、ナノワイヤをベースとした不揮発性メモリ、位相変化メモリ（ＰＣＭ）などの３次元（３Ｄ）クロスポイントメモリ、メモリスタ技術を取り込んだメモリ磁気抵抗ランダムアクセスメモリ（ＭＲＡＭ）およびスピン注入（ＳＴＴ）ＭＲＡＭが挙げられる。  これらのＮＶＭ、およびダイナミックランダムアクセスメモリ（ＤＲＡＭ）などの揮発性メモリを、広範囲にわたる保持時間（ミリ秒から数年にわたる情報の保持）に対して、調整および製造することができる。  同様に、範囲が広いことは、これらのメモリ技術の性能動作点および電力動作点に対しても表面化するもので、深く根付いている低性能使用から高性能配置にまで及び、例えばより良好な性能を得るために保持時間および熱負担（例えば発熱）がトレードオフになり得る。  本明細書中の構成は、バッテリの最長待機時間、アクティブフェーズ中の高い応答性、および最良性能などのシステムの動作点に動的に適応するべく、異なる性能、保持率、及び熱的に最適化されたメモリ領域を活用する。
【０００５】
メモリ領域（揮発性および／または不揮発性）を、任意の適当なやり方で、例えば単一のダイ内にスタック化（パッケージ内）、または別々のパッケージ内に配列することができる。さらに、開示された方法を、属性認識と属性に基づく選択的呼出しに応答する任意の適当なメモリ技術に用いてもよい。メモリコントローラ（ＭＣ）は、データを格納するべく領域の選択にアクセスを組織化することにおいて、中心的な役割を果たす。なぜなら、領域は、静的に最適化（例えば、製造時）または動的に、例えば電圧レールの構成によって、最適化され得るからである。メモリコントローラ（ＭＣ）の新しい機能は、現在の動作モード（最良の性能または最小の電力など）に従ってメモリアクセスが最も良好に供給され得るように、センサ入力、統計用カウンタ、およびタイマーに自立的に基づいてメモリ領域の間でデータを移動させることを含んでもよい。そのような解決策は、メモリサブシステムの電力／熱、性能、および保持時間に対するきめ細やかな制御を提供する。
【０００６】
従来のメモリコントローラ（ＭＣ）は、性能および効率に関する所定の静的特性によって、１つのホモジニアス領域として、メモリを処理する。アクセスが他のメモリ領域にオフロードされないので、熱イベントは性能に対して負の影響を与えつつメモリ領域へのアクセスの数を絞ることになる。従来のアプローチにおいて、全てのメモリサブシステムが揮発性であると考えられることから、保持時間は現在のところ設計目標とは考えられていない。メモリに関する従来の性能状態は大ざっぱであり、ホモジニアスメモリ領域全体でのみ動作し、（たとえ可能であっても）たまに再構成されるのみである。
【０００７】
ヘテロジニアス（ｈｅｔｅｒｏｇｅｎｅｏｕｓ）な能力を有するメモリサブシステムは、揮発性ＲＡＭを兼ねるＤＲＡＭ、ＤＲＡＭ、およびＮＶＭのような技術を含むべく、発展している。永続メモリの現在の発展は、ロード／格納バイトアドレス可能ＮＶＭを、プラットホームアーキテクチャにおける永続的な階層としてプログラマの目にさらす。しかし、揮発性または永続メモリ／不揮発性メモリに従来のデータを配置して異なる動作点を扱うべく、プログラマに対して負担がのしかかる。加えて、従来の永続メモリは１段階の保持時間（無制限）のみを定義し、性能の保持時間と熱特性との間のトレードオフを調整可能にしない。
【０００８】
本明細書中の構成は、部分的には、アドレス可能メモリに対する従来のアプローチが連続アドレスのモノリシックブロックを定義するという観察に、基づいている。従来のメモリコントローラは、性能または効率属性のためにメモリを区別または区画化しないホモジニアスな記憶領域として、メモリにアクセスする。残念なことに、メモリコントローラをベースとしたアクセスに対する従来のアプローチには欠点がある。この欠点とは、不揮発性記憶装置の単一の段（またはカテゴリ）のみが与えられ、用途は揮発性記憶装置または不揮発性（例えばディスク）記憶装置のいずれかを選択せざるを得ないことである。
【０００９】
したがって、本明細書中の構成は、メモリの異なる領域または部分のヘテロジニアスな配列を提供することによって、メモリアクセスに対する上記欠点を実質的に解決する。それらの領域または部分は、各々、アクセス速度（性能）、保持時間、および電力消費量などの特徴について異なる属性を持つ。メモリは、データの予想使用量と特定の属性の認知された属性とに基づいて、データの格納を選択可能である。例えば、頻繁に使われるデータまたは速い応答コンテクストの一部は、速い検索メモリ領域に格納され得る。その一方で、よりゆっくりとしたアクセスが許容され得ることから、しばらくは必要でないと思われるデータは、高保持時間領域に格納される可能性がある。
【００１０】
本明細書中の構成では、メモリコントローラ（ＭＣ）は、性能、保持時間、およびエネルギー効率を含む属性によって特徴づけられ得るメモリ領域の制御および選択を行う。メモリコントローラ（ＭＣ）は、性能、効率、および保持時間に関して、メモリ領域の動作点を調整することができる。このような調整は、これらの属性のプラットフォームレベル方針に応じて、さらに、センサ入力（例えば熱効果）、統計用カウンタ（例えばアクセスの頻度およびアドレス分布）、ならびにタイムアウトカウンタなどのさらなる要素に基づいて、行われる。メモリコントローラ（ＭＣ）のアクセスヒューリスティックは、これらの異なる動作モードを活用することができる。加えて、メモリコントローラ（ＭＣ）は、１つのメモリ領域から別のメモリ領域へコンテンツ／データを移動させてもよい。この移動は上記のセンサ入力および静的／測定入力により引き起こされ、プラットフォームレベル方針に従ってメモリサブシステムの全体的な挙動を改善する。ヒューリスティック論理は、フィードバックの反復性評価を利用するアクセス技術を実現して、適当なまたは最も適合度が高いメモリ領域に対する属性の性能および相関を改善する。
【００１１】
メモリを、性能領域および電力領域、またはより長い保持時間を有する領域に分割してもよい。このことは、生産中、回路アーキテクチャによって、または、異なる領域の属性を変更するための回路アーキテクチャによって十分な柔軟性が現れる場合には実行中に動的に、行われる。
【００１２】
開示されたメモリコントローラは、キャッシュメモリコントローラとは異なる。なぜなら、キャッシュメモリコントローラが予想使用量に基づいてキャッシュメモリ内の異なる領域を選択しないからである。また、全てのデータは、同一基準、典型的には、最短時間未使用（ｍｏｓｔ  ｒｅｃｅｎｔｌｙ  ｕｓｅｄ）または最大頻度使用（ｍｏｓｔ  ｆｒｅｑｕｅｎｔｌｙ  ｕｓｅｄ）に基づくキャッシングの候補である。さらに、開示されたメモリコントローラは、揮発性および不揮発性記憶装置のみを有するアーキテクチャとは異なる。なぜなら、揮発性および不揮発性記憶装置に対するアクセスは、すなわち変数割当てまたはファイル操作により、明示的に指定されるからである。従来の揮発性記憶装置と不揮発性記憶装置との間の選択は、通常、データ使用量に応じて定義される用途である。その一方で、用途は不揮発性記憶装置を制御せず、従来のメモリコントローラはホモジニアス揮発性メモリの単一のブロックとしてメモリを割り当てるだけである。さらに留意すべきことは、複数のメモリコントローラを階層的または並列的配置で示すアーキテクチャに、本明細書中に概説される操作およびアプローチが等しく適用可能であるという点である。したがって、メモリ領域の選択は、記憶装置の操作に求められる。予想使用量に基づいた１つの領域または別の領域のマッピングは、存在しない。
【００１３】
図１は、本明細書中の構成による使用に適したコンピュータメモリ環境のコンテクスト図である。図１を参照すると、コンピュータメモリ環境１００では、メモリコントローラ１１０はメモリ１２０に対するアクセスを制御する。メモリコントローラ１１０は、要求１３２について１または複数のＣＰＵ１３０に応答し、応答１３４を与えることでデータ項目（データ）の格納および検索を行う。また、ＣＰＵ１３０は、ユーザ入力を受信するとともに実行用途の出力をレンダリングするユーザディスプレイおよびグラフィカルユーザインターフェース（ＧＵＩ）１４０にも応答する。後述のメモリ環境の大きさおよび可搬性に応じて、ディスク１４２または他の長期／不揮発性記憶媒体も含まれてもよい。
【００１４】
メモリ１２０は、複数の領域１５０−１〜１５０−Ｎ（全体として１５０）を有し、アクセス媒体１２２を介してメモリコントローラ（ＭＣ）１１０によりアクセス可能（読出し／書込み）である。任意の適当なアクセス媒体は、後述するように、電気的または光学的伝送を用いる、あるいは積層実装に見られるようなスルーシリコンビア（ＴＳＶ）に連結される、パラレルまたはシリアルバスなどである。ＭＣ１１０は、要求１３２に従ってデータを格納すべきメモリの領域１５０を選択し、応答１３４を実現すべく同一位置から検索する。コントローラ論理１１２は、データを格納すべき適用可能な領域１５０を演算するためのヒューリスティックを、領域１５０−Ｎの属性に関する統計と同様に、格納および適用する。メモリ領域１５０は、温度およびアクセスカウントなどの態様のために、センサ１２１−１〜１２１−Ｎ（全体として１２１）も有してもよい。ヒューリスティック論理のセンサハブ１１３は、センサ１２１の入力とともに、位置、温度、湿度、前部カメラで測定される使用者の注意、その他のような種々の適当なソースからの他の関連する要素を集める。
【００１５】
開示されたヘテロジニアスメモリのアプローチおよび対応するヒューリスティックは、キャッシュおよび／またはページマップと相互操作可能であり、これは最新のオペレーティングシステムにおいて典型的である。したがって、メモリコントローラ１１０は、キャッシュ１１４および／またはアドレスマップ１１６も有し、これらは本明細書中の構成とともに動作可能である。例えば、キャッシュコントローラおよびアレイは、キャッシュアレイとして、メモリ内の１または複数の領域を用いてもよいので、専用のキャッシュメモリとしてメモリ素子またはバンクを追加することが回避される。
【００１６】
当該技術分野で知られているように、キャッシュ１１４は、同一データに対する後続の操作が容易になるように、メモリ１２０から最近読み出されたデータや、任意にメモリ１２０に最近書き込まれたデータを格納する。本明細書中に開示したメモリ領域１５０の選択は異なっている。なぜなら、キャッシュ１１４が入出力操作の直接性のみに目を向け、ヒューリスティックに基づく意図された使用または使用パターンには目を向けないからである。しかし、メモリ領域の選択の一部は、高速属性を持つ領域を有してもよく、選択論理の一部としての頻繁な使用または最近の使用を含んでもよい。同様に、ページング機構は、読出し／書込み並列としてメモリの複数のセクション（例えば複数のページ、例えば４Ｋ）を単に集めるので、データが特定のページに出現した時に、開示されたヒューリスティックに適用可能である。例えば、任意のページ属性は、関連したページの性能および保持率に関してプログラマにより特定された必要条件を反映することができる。メモリコントローラ１１０は、同等またはより良好な属性を持つ領域に対してデータをマッピングするガイダンスとして、この情報を用いてもよい。そのような機構は、本明細書中に開示されたＭＣ１１０の自律的な操作に加えて、プログラマとの意思疎通を可能にする。
【００１７】
アドレスマップ１１６は、ソフトウェアサポートまたはより多くのハードウェアをベースとしたアプローチを使用するマッピングの形態をとってもよい。ソフトウェアサポートを用いる実装では、構成はオペレーティングシステム（ＯＳ）ページテーブルウォークに依存してもよい。一方で、ＭＣ１１０は、アドレスマッピングをトラッキングするべく別個のテーブルを単独で（自律的に）用いてもよい（なぜなら、このコントローラはコンテンツを移動させる能力を持つからである）。実際は、ハードウェア内でアドレスをマッピング／変換するためのこのインフラストラクチャは、ＮＶＭのウェアレベリング機構と共有され得る。なぜなら、ウェアレベリングがアドレス（例えば、ページ）あたりの書き込みアクセスを明示的にトラッキングし、限られた耐久性に基づいてコンテンツを移動させるからである。
【００１８】
強調すべきことは、データが格納されるメモリ領域１５０を考慮することなく同じやり方（すなわち、アドレッシング可能なワードまたはバイト）で、分割されたメモリ１２０の各領域１５０がメモリコントローラ１１０からアドレッシング可能な状態を保つことである。要求１３２を作成する用途（それ故、用途を構築するプログラマ／開発者）は、メモリの異なる範囲を区別する必要がなく、またはさもなければ、領域選択を示す必要がない。ユーザ／用途メモリ１２０の全ての範囲は、アドレッシング可能な状態を保つ。したがって、データは、検索が実行される領域をはっきり特定することなしに複数の領域１５０のいずれかから、格納可能および検索可能である。同じく留意すべきことは、本明細書で用いた「区画化」は、同時にアドレッシング可能な領域１５０へメモリ１２０を細分することを意味しており、単一のマシンにインストールされるオペレーティングシステムを分けることを意味するものではなく、それらの領域は、ディスクパーティションによってサポートされる互いに相容れない環境に、概してキャストされることである。
【００１９】
コンピュータメモリ環境１００は、任意の適当なコンピューティングプラットホーム、例えば、携帯多機能電話および携帯型コンピューティング装置、タブレット、ラップトップ、ならびにデスクトップ型要素であってもよい。物理的制約は、様々な装置のオペレーティングパラメータに影響を及ぼす可能性がある。例えば、より小さな装置は、コンパクト性のため、より多く発熱する傾向にあり、またはバッテリの制約により、電力節約の必要性がより高くなる可能性がある。より小さな装置は、物理ディスクドライブ１４２を持たなくてもよい。しかし、全ての装置は、ネットワークブーティングも可能ではあるが、少なくともスタートアップ／ブート用の永続的な（不揮発性）構成要素を備えていると考えられる。
【００２０】
図２は、図１のコンピュータメモリ環境におけるメモリアクセスのフローチャートである。図１および２を参照すると、後述する特定の構成において、メモリにアクセスする方法は、ステップ２００で検討されるように各々の領域１５０が属性によって定義されるように、メモリを複数の領域１５０に区画化することを含む。各々の領域は、メモリ１２０の任意の適当な領域１５０であってもよく、設計段階から決められている属性を有するものであってもよい。あるいは、各々の領域は、矢印１１８−１〜１１８〜２（全体として１１８）によって示されるように、例えば、電力消費量を少なくしたり、アクセス速度を上げたりするための電圧などの属性を変更するべく、メモリ領域に命令を出すために実行中に変更され得る動的な属性を有してよい。構成例では、属性は、性能（速度）、保持率、および効率（電力消費量）を含む。他の属性は、メモリ１２０の設計およびサポートに応じて使用されてもよい。
【００２１】
ヒューリスティック論理１１２は、ステップ２０１に示すように、データの予想使用量によってデータを特徴付けし、そのデータを、ステップ２０２に示すように、複数の領域１５０−Ｎのうちの領域１５０に、予想使用量に基づいて、および／またはその領域の属性の相関と共に、マッピングする。ここに示した例では、属性と予想使用量との間のマッピング、すなわち相関は、メモリの領域からデータが再呼び出しされる速度を性能属性が特定するようにして実行され、タイミング感度が高い計算において頻繁にアクセスされたデータに使用される。この属性は、ユーザ応答が最も重要で電力および温度の回復力が十分である場合に、優先される。保持属性は、データが電力再生なしにメモリの領域に残る持続時間を特定し、待ち時間許容計算において、まれにアクセスされたデータ、例えば、さらに後で検討される、すぐには必要とされない計算結果に、またはまれに統計学的にアクセスされた計算結果に、使用される。効率属性は、メモリの領域内にデータを保つための電力消費量を示しており、熱またはバッテリ上の問題がメモリアクセスを制限する場合に使用される。したがって、効率は、限定された電力ドレインと発熱とを伴う許容速度を意味する二面的な特徴である。効率は、空間許容度が熱集積を悪化させ得る携帯デバイスで重要であり、バッテリ電力ドレインは考慮すべき事柄である。
【００２２】
属性のセットは、一般的状況を示す動作モードに従って束ねられてもよく、動作モードに許容可能な属性の「地帯（corridors）」または範囲を設定してもよい。しがたって、動作モードは、属性に基づく使用に関して領域に優先順位をつける。ここで、動作モードは、速い検索を行うメモリ領域に有利な性能モードと、許容可能な検索時間を有する低電力消費量の領域が優先される効率モードと、応答性を保ちながら最小の電力および熱負荷で動作を保つための高保持時間を有する領域を優先するレジリエンスモードとを含む。他の属性を集め、および／または属性範囲内の異なる地帯を特定する他の動作モードもまた、呼び出される。
【００２３】
特定の構成では、計算または予想された使用量に応じて実行時に、メモリ領域は属性を変更するべく構成されている。したがって、コントローラ１１０は、予想使用量に応じて領域１５０の属性を動的に変更するべく、ヒューリスティック論理１１２に応答してもよい。例えば、まれに必要であるメモリは、メモリの領域のアクセス期間と保持期間とを特定し、その領域の電圧属性を変更することから利益を得てもよい。その際、保持期間中、データを保つために、電圧がより低くなるようにし、アクセス期間中、データを速く検索するために、電圧がより高くなるようにする。したがって、データの待ち時間延長の間、比較的低い電力と最小限に抑えられた発熱が求められる。しかし、データが必要な場合、電圧を上げてアクセス期間中、速いアクセスが可能になる。
【００２４】
同様に、所望の属性を持つ領域１５０の間でデータの移動を行ってもよい。ヒューリスティック論理１１２は、メモリの領域１５０に格納されているデータの今後のアクセス期間を特定し、このアクセス期間に先立ってそのデータをメモリの代替領域１５０へ移動する。ここで、代替領域は、まれに使用されるが使用中に速いアクセスを必要とするデータに応じて速いアクセスに対応する属性を有する。
【００２５】
別の例では、アクセスの頻度または密度により、メモリの領域が高動作温度にさらされていると決定する場合がある。それに応答して、ヒューリスティック論理１１２は、メモリの領域１５０が高温であることを特定し、特定された高温に応じて電力消費量および発熱を少なくするために、その領域１５０の属性を変更する。このようにして、電力および温度がより低くなる属性ではあるが、同一の領域１５０を続けて使用することが可能なる。
【００２６】
図３ａ〜図３ｄは、図１のコンピュータメモリ環境のメモリアクセスのヒューリスティックを示す計算およびデータフローである。概して、ヒューリスティック論理１１２（論理）は、属性の値または状態を監視して、別の領域１５０にメモリ使用量を再配分するべく、調整措置を行うことで、動作モードの動作地帯（operating corridor）の中に属性を戻す。図１および図３ａ〜図３ｄを参照すると、ステップ３００で、ヒューリスティック論理１１２は、まれに使用される領域またはデータを特定するべく、期間データアクセスまたはメモリ領域アクセスを監視する。ステップ３０３で、チェックを実行し、現在のプロファイルにおいて、監視された属性が動作地帯の外側で遅延を示すかどうかを決定する。そうであれば、ステップ３０２に示されるように、メモリコントローラ（ＭＣ）１１０（または従属の管理機能、例えばＤＭＡもしくはアドレスマップ作成処理）は、動作プロファイルに従って異なる保持率により、データをメモリ１２０の領域１５０（部分）に移動し、アクセス間の時間をより厳密に一致させる。したがって、延長時間においてデータ項目がアクセスされない場合、電力低下の利益を導き出すべく、より長い保持時間で領域１５０に格納することが許容されてもよい。制御は、ステップ３００で、モニタリングまたはポーリングサイクルに従って繰り返す。したがって、予想使用量に基づくマッピングは、頻繁にアクセスされた領域１５０の温度に対するセンサフィードバックを受信するためのヒューリスティックを呼び出すこと、および、受信したセンサフィードバックに基づいて使用量がより少ない領域１５０にメモリ使用量をリダイレクトすることを、さらに含む。
【００２７】
ステップ３１０で、図３ｂにおいて、ヒューリスティック論理１１２は、アクセス密度（アクセス頻度を意味する）、読出し／書込み比率、平均到着時間間隔、全容量、または使用中のメモリ領域（一般に使用量または利用率を意味する）を監視する。概して、そのような属性は、全体的な電力ドレインおよび対応する発熱を指し、このことは，小さな携帯デバイスでは特に考慮すべき事柄であると思われる。ステップ３１１で、アクセス密度が動作地帯（範囲）の外側にあるかを決定するべく、チェックを実行する。そうであれば、ステップ３１２に示されるように、動作の状態を変えること（すなわち、電圧を下げて全体的な熱／電力需要を減らすこと）により、新たな動作地帯が適合し得るかどうかを特定するべく、さらなるチェックを実行する。そうであれば、論理１１２は、ステップ３１３に示すように、性能を上昇または減少させることにより制御を変えるべく、新しい動作地帯を設定する。新たな動作地帯が適合できない場合（使用が大幅に中断することなく）、ステップ３１４に示すように、メモリコントローラは、プロファイルに従って異なる電力／性能（すなわち効率）状態により、メモリの領域１５０へデータを移動させる。メモリの領域を移動させることよりも電圧を変更することによって状態を変えるには、オーバーヘッドが概して少ないので、電圧変化を最初に考慮する。したがって、ヒューリスティック１１２は、領域へのアクセスのためのカウンタを保持してもよく、アクセス数が多い領域からアクセス数が少ない領域へメモリ使用量をリダイレクトしてもよい。
【００２８】
領域移動が求められる両方のケース（ステップ３０２、３１４）について、メモリセンサおよび／またはカウンタから集めた統計的使用量データを用いてもよい。メッセージ３５０で示すように、メモリタイプの保持時間に基づくメモリのアドレス/領域区分の情報は、論理に送られる。同様に、メモリの電力／性能状態に基づくメモリのアドレス／領域区分の情報は、メッセージ３５２により、受信される。したがって、データの予想使用量は、データのアクセス頻度、データ検索の有用性、およびデータの寿命の少なくとも１つに基づいている。領域１５０の選択は、動作モードを特定することをさらに含み、この動作モードは、優先度がより高い属性を示す領域が優先されるように、属性の優先度を表す。論理１１２に応答するＭＣ１１０は、属性の優先度に基づいてデータをマッピングする。ここで、高優先度に対応している属性を示す領域１５０が優先されるとともに、より低い優先度に対応している属性を示す領域はより低い頻度で用いられているか、領域の間を一斉に移動させられる。
【００２９】
したがって、論理１１２は、複数のメモリ領域１５０から動作統計を受信することを含み得るヒューリスティックを実現する。ここで、属性は、受信した動作統計に基づいている。構成例では、動作統計は、メモリバンク/モジュールの搭載センサからのパラメータ、例えば温度（すなわち、熱効果）、統計用カウンタ（すなわち、アクセス頻度およびアドレス分布）、ならびにタイムアウトカウンタを含んでもよい。
【００３０】
ステップ３２０で、論理１１２は、メモリ領域１５０のアクセス密度を監視する。アクセス密度は、例えば、ＤＲＡＭ内の多数の属性（パラメータ）に影響を与え、処理スケーリングでよりいっそう顕著になる。論理は、ステップ３２３で示されるように、ＮＶＭメモリのウェアレベルも監視する。ウェアレベリングは、特定の位置にアクセスが不均衡に分配されないように、メモリ全体でアクセスサイクルの緩和を試みる。そのような不均衡の分配は、いくつかの位置が読出し／書込みライフサイクルを早期に使い果たす原因になり得る。両方の属性について、ステップ３２１に示すように、アクセス密度がより低い領域１５０へデータを移すことが可能であるかを決定するべく、チェックを行う。そうであれば、メモリコントローラ（ＭＣ）１１０は、アクセスサイクルに対してより許容度が高い別のメモリ領域１５０に、そのデータを移動する（より長い読出し／書出し寿命が利用可能）。したがって、マッピングは、データ保持時間に対応してタイマー入力を受信するためのヒューリスティックをさらに呼び出すことが可能である。また、マッピングは、限界に近づいているデータが領域１５０の保持時間に存在する場合、そのデータを特定する。ＭＣ１１０は、メモリ使用量を、受信したタイマー入力に基づいて、より高い保持時間を持つ領域にリダイレクトする。
【００３１】
図４は、図１のコンピュータメモリ環境におけるメモリ領域の積層実装を示す。図１および４を参照して、異なるアーキテクチャは、異なるアクセス媒体（例えばスルーシリコンビア（ＴＳＶ）１２２'）によりメモリ領域を配置してもよい。他の構成では、領域１５０は、上記のように、スタックダイメモリ配列１２０'によりアクセス可能なＴＳＶ領域１５０−１１〜１５０−１４とバスがアクセス可能なバンクとを含む。さらに、異なる領域は、異なる電力ドメインに対応してもよく、電力消費量および発熱の制御をさらに強化する。
【００３２】
当業者は、本明細書中で定義されたプログラムおよび方法が多くの形態でユーザプロセッシングおよびレンダリングデバイスに到達可能であることを容易に理解する。これらの形態は、限定されるものではないが、ａ）ＲＯＭデバイスのなどの書込不可記憶媒体に永久的に格納されている情報、ｂ）フロッピー（登録商標）ディスク、磁気テープ、ＣＤ、ＲＡＭデバイス、ならびに他の磁気および光学媒体などの書き込み可能な持続性記憶媒体上に、変更可能なかたちで格納された情報、あるいはｃ）インターネットまたは電話モデム回線などの電子ネットワークに見られるように、通信媒体を介してコンピュータに伝えられる情報が含まれる。操作および方法はソフトウェア実行可能なオブジェクトに実装されてもよく、または命令に応答するプロセッサによる実行のための１セットの符号化命令として実装されてもよい。あるいは、本明細書中に開示された操作および方法は、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、状態機械、コントローラなどのハードウェア構成要素または他のハードウェア構成要素もしくはデバイス、あるいはハードウェア、ソフトウェア、およびファームウェア構成要素の組み合わせを用いて、全体的または部分的に具体化されてもよい。
【００３３】
本明細書中に定義されたシステムおよび方法がそれらの実施形態を参照して示され、かつ説明されているとはいえ、添付した特許請求の範囲に包含される発明の範囲から逸脱することなく種々の変更を形態および詳細に加えることが可能であることを当業者は容易に理解されよう。
［項目１］
各々の領域が複数の属性により定義されてプロセッサに応答する、複数の領域にメモリを区画化する段階と、
データの予想使用量に従って前記データを特徴付ける段階と、
前記データの前記予想使用量に基づいて前記データを格納すべく前記複数の領域から１つの領域を選択する段階とを備える、
メモリにアクセスする方法。
［項目２］
前記データの前記予想使用量は、前記データのアクセス頻度、前記データの検索における有用性、および前記データの寿命の少なくとも１つに基づく、項目１に記載の方法。
［項目３］
前記データは、検索が実行される前記領域をはっきり特定することなしに前記複数の領域のいずれかから、格納可能および検索可能である、項目１または２に記載の方法。
［項目４］
前記予想使用量に応じて前記領域の前記複数の属性を動的に変更する段階をさらに備える、項目１から３のいずれか一項に記載の方法。
［項目５］
前記メモリの前記領域のアクセス期間と保持期間とを特定する段階と、
前記領域の電圧属性を、電力消費量および速度の必要性に基づいて前記予想使用量に従って電圧の値が変更されるように、変更する段階をさらに備える、
項目１から４のいずれか一項に記載の方法。
［項目６］
前記データを保つための前記保持期間中、前記電圧がより低くなり、前記データを速く検索するための前記アクセス期間中、前記電圧がより高くなるように、前記領域の電圧属性を変更する段階をさらに備える、項目５に記載の方法。
［項目７］
前記メモリの前記領域に格納されている前記データの今後のアクセス期間を特定する段階と、
前記アクセス期間に先立って前記データを前記メモリの代替領域へ移動する段階とをさらに備え、
前記代替領域は、まれに使用されるが、使用中に速いアクセスを必要とするデータに応じて速いアクセスに対応する複数の属性を有する、項目１から６のいずれか一項に記載の方法。
［項目８］
電力補正の必要を示す前記メモリの領域のメモリセンサ入力に基づいて特定する段階と、
前記特定された高温に応じて電力消費量および発熱を少なくするために前記領域の前記複数の属性を変更する段階とをさらに備える、項目１から７のいずれか一項に記載の方法。
［項目９］
より優先度が高い属性を示す複数の領域が有利であるように前記複数の属性の優先度を示す動作モードを特定する段階と、
高い優先度に対応している複数の属性を示す複数の領域を優先するとともに、より低い優先度に対応している複数の属性を示す複数の領域はより低い頻度で使用されるように、前記属性の優先度に基づいて前記データをマッピングする段階とをさらに備える、項目１から８のいずれか一項に記載の方法。
［項目１０］
動作モードは、前記複数の属性に基づく使用に関して前記複数の領域に優先順位をつけ、前記動作モードは、
速い検索を行う複数のメモリ領域を優先する性能モードと、
許容可能な検索時間を有する低電力消費量の複数の領域を優先する効率モードと、
応答性を保ちながら最小の電力および熱負荷で動作を保つための高保持時間を有する複数の領域を優先するレジリエンスモードとを含む、項目１から８のいずれか一項に記載の方法。
［項目１１］
前記選択する段階は、前記複数の属性と前記予想使用量との間をマッピングする段階を備え、
性能属性は、前記メモリの領域から前記データが再呼び出しされる速度を特定し、複数のタイミング感度が高い計算において頻繁にアクセスされたデータに使用され、
保持属性は、前記データが電力再生なしに前記メモリの領域に残る持続時間を特定し、複数の待ち時間許容計算においてまれにアクセスされたデータに使用され、ならびに、
効率属性は、前記メモリの領域内に前記データを維持するための電力消費量を示しており、熱またはバッテリ上の複数の問題がメモリアクセスを制限する場合に使用される、項目１から１０のいずれか一項に記載の方法。
［項目１２］
前記メモリの複数の領域から複数の動作統計を受信する段階をさらに含み、前記複数の属性は、前記受信した複数の動作統計に基づく、項目１から１１のいずれか一項に記載の方法。
［項目１３］
前記複数の動作統計は、温度、複数の統計用カウンタ、および複数のタイムアウトカウンタを含む、項目１２に記載の方法。
［項目１４］
マッピングの段階は、
頻繁にアクセスされた複数の領域の温度に対するセンサフィードバックを受信し、
前記受信したセンサフィードバックに基づいて使用量がより低い複数の領域にメモリ使用量をリダイレクトするためのヒューリスティックを呼び出す段階をさらに備える、項目１から１３のいずれか一項に記載の方法。
［項目１５］
マッピングの段階は、
複数の領域へのアクセスのための複数のカウンタを保ち、
アクセス数が多い複数の領域からアクセス数が少ない複数の領域へメモリ使用量をリダイレクトするためのヒューリスティックを呼び出す段階をさらに備える、項目１から１３のいずれか一項に記載の方法。
［項目１６］
マッピングの段階は、
複数のデータ保持時間に対応してタイマー入力を受信し、前記領域の保持時間に存在する場合、限界に近づいているデータを特定し、
前記受信したタイマー入力に基づいて、より高い保持時間を持つ複数の領域にメモリ使用量をリダイレクトするためのヒューリスティックを呼び出す段階をさらに備える、
項目１から１３のいずれか一項に記載の方法。
［項目１７］
前記複数の領域は、複数のスタックダイメモリ配列によりアクセス可能な複数のスルーシリコンビア（ＴＳＶ）領域とバスがアクセス可能な複数のバンクとを有する、項目１から１６のいずれか一項に記載の方法。
［項目１８］
各々の領域が複数の属性により定義されて複数のメモリ領域に分割されるメモリと、
データの予想使用量に従って前記データを特徴付けるヒューリスティック論理と、
前記領域の前記複数の属性との前記予想使用量の相関に基づいて前記複数のメモリ領域の１つの領域へ前記データをマッピングするためのメモリアクセス媒体と、
前記マッピングされたデータをレンダリングするためのディスプレイとを備える、メモリコントローラ。
［項目１９］
前記データの予想使用量は、前記データのアクセス頻度、前記データの検索における有用性、および前記データの寿命の少なくとも１つに基づく、項目１８に記載のメモリコントローラ。
［項目２０］
前記分割されたメモリの各領域は、前記データが格納される前記メモリの領域を考慮することなく同じやり方でメモリコントローラからアドレッシング可能な状態を保つ、項目１８または１９に記載のメモリコントローラ。
［項目２１］
前記複数のメモリ領域は、前記予想使用量に応じて前記複数の属性の動的変更用である、項目１８から２０のいずれか一項に記載のメモリコントローラ。
［項目２２］
ヒューリスティック論理は動作モードを定義し、
前記動作モードは、より優先度の高い属性を示す複数の領域が有利であるように前記複数の属性の優先度を表し、
前記メモリアクセス媒体は、高い優先度に対応している複数の属性を示す複数の領域が望まれるとともに、より低い優先度に対応している複数の属性を示す複数の領域はより低い頻度で使用されるように、前記属性の優先度に基づいて前記データをマッピングするために、前記ヒューリスティック論理に応答する、項目１８から２１のいずれか一項に記載のメモリコントローラ。
［項目２３］
前記ヒューリスティック論理は、前記複数の属性に基づいて前記複数のメモリ領域に優先順位をつけるための複数の動作モードを備え、
前記複数の動作モードは、速い検索を行う複数のメモリ領域を優先する性能モードと、
許容可能な検索時間を有する低電力消費量の複数の領域を優先する効率モードと、
応答性を保ちながら最小の電力および熱負荷で動作を保つための高保持時間を有する複数の領域を優先するレジリエンスモードとを含む、項目１８から２２のいずれか一項に記載のメモリコントローラ。
［項目２４］
前記ヒューリスティック論理は、複数の属性と使用量との間のマッピングが実行されるようにし、
性能属性は、前記メモリの領域からデータが再呼び出しされる速度を特定し、複数のタイミング感度が高い計算において頻繁にアクセスされたデータに使用され、
保持属性は、前記データが電力再生なしに前記メモリの領域に残る持続時間を特定し、複数の待ち時間許容計算においてまれにアクセスされたデータに使用され、ならびに、
効率属性は、メモリの領域内にデータを保つための電力消費量を示しており、熱またはバッテリ上の問題がメモリアクセスを制限する場合に使用される、項目１８から２３のいずれか一項に記載のメモリコントローラ。
［項目２５］
メモリにアクセスするためのプログラムであって、
コンピュータに、メモリを、各々の領域が複数の属性により定義される複数の領域に区画化する段階と、
データの予想使用量に従って前記データを特徴付ける段階と、
前記領域の前記複数の属性との前記予想使用量の相関に基づいて前記複数の領域の１つの領域へ前記データをマッピングする段階と、を実行させる、プログラム。
【図１】
0005883089.tif 000002
【図２】
0005883089.tif 000003
【図３ａ】
0005883089.tif 000004
【図３ｂ】
0005883089.tif 000005
【図３ｃ】
0005883089.tif 000006
【図３ｄ】
0005883089.tif 000007
【図４】
0005883089.tif 000008