(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5883089
(24)【登録日】2016年2月12日
(45)【発行日】2016年3月9日
(54)【発明の名称】ヘテロジニアスメモリアクセス
(51)【国際特許分類】
G06F 12/06 20060101AFI20160225BHJP
【FI】
G06F12/06 522D
G06F12/06 515H
G06F12/06 515J
【請求項の数】25
【外国語出願】
【全頁数】17
(21)【出願番号】特願2014-166408(P2014-166408)
(22)【出願日】2014年8月19日
(65)【公開番号】特開2015-60589(P2015-60589A)
(43)【公開日】2015年3月30日
【審査請求日】2014年8月19日
(31)【優先権主張番号】14/030,515
(32)【優先日】2013年9月18日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】591003943
【氏名又は名称】インテル・コーポレーション
(74)【代理人】
【識別番号】110000877
【氏名又は名称】龍華国際特許業務法人
(72)【発明者】
【氏名】サラスワット、ルチル
(72)【発明者】
【氏名】グリース、マティアス
(72)【発明者】
【氏名】カウリー、ニコラス ピー.
【審査官】
中野 裕二
(56)【参考文献】
【文献】
特開2011−022933(JP,A)
【文献】
特開2009−048613(JP,A)
【文献】
特開2009−064112(JP,A)
【文献】
特開2008−040606(JP,A)
【文献】
特開2005−216053(JP,A)
【文献】
特開2011−095974(JP,A)
【文献】
米国特許出願公開第2008/0276051(US,A1)
【文献】
特表2010−518546(JP,A)
【文献】
特表2011−513805(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/06
(57)【特許請求の範囲】
【請求項1】
各々の領域が複数の属性により定義されてプロセッサに応答する、複数の領域にメモリを区画化する段階と、
データの予想使用量に従って前記データを特徴付ける段階と、
前記データの前記予想使用量に基づいて前記データを格納すべく前記複数の領域から1つの領域を選択する段階と、
前記メモリの前記領域に格納されている前記データの今後のアクセス期間を特定する段階と、
前記アクセス期間に先立って前記データを前記メモリの代替領域へ移動する段階と
を備え、
前記代替領域は、まれに使用されるが、使用中に速いアクセスを必要とするデータに応じて速いアクセスに対応する複数の属性を有する、メモリにアクセスする方法。
【請求項2】
前記データの前記予想使用量は、前記データのアクセス頻度、前記データの検索における有用性、および前記データの寿命の少なくとも1つに基づく、請求項1に記載の方法。
【請求項3】
前記データは、検索が実行される前記領域をはっきり特定することなしに前記複数の領域のいずれかから、格納可能および検索可能である、請求項1または2に記載の方法。
【請求項4】
前記予想使用量に応じて前記領域の前記複数の属性を動的に変更する段階をさらに備える、請求項1から3のいずれか一項に記載の方法。
【請求項5】
前記メモリの前記領域のアクセス期間と保持期間とを特定する段階と、
前記領域の電圧属性を、電力消費量および速度の必要性に基づいて前記予想使用量に従って電圧の値が変更されるように、変更する段階をさらに備える、
請求項1から4のいずれか一項に記載の方法。
【請求項6】
前記データを保つための前記保持期間中、前記電圧がより低くなり、前記データを速く検索するための前記アクセス期間中、前記電圧がより高くなるように、前記領域の電圧属性を変更する段階をさらに備える、請求項5に記載の方法。
【請求項7】
電力補正の必要を示す前記メモリの領域をメモリセンサ入力に基づいて特定する段階と、
電力消費量および発熱を少なくするために、前記メモリセンサ入力に応じて前記領域の前記複数の属性を変更する段階とをさらに備える、請求項1から6のいずれか一項に記載の方法。
【請求項8】
より優先度が高い属性を示す複数の領域が有利であるように前記複数の属性の優先度を示す動作モードを特定する段階と、
高い優先度に対応している複数の属性を示す複数の領域を優先するとともに、より低い優先度に対応している複数の属性を示す複数の領域はより低い頻度で使用されるように、前記属性の優先度に基づいて前記データをマッピングする段階とをさらに備える、請求項1から7のいずれか一項に記載の方法。
【請求項9】
動作モードは、前記複数の属性に基づく使用に関して前記複数の領域に優先順位をつけ、前記動作モードは、
速い検索を行う複数のメモリ領域を優先する性能モードと、
許容可能な検索時間を有する低電力消費量の複数の領域を優先する効率モードと、
応答性を保ちながら最小の電力および熱負荷で動作を保つための高保持時間を有する複数の領域を優先するレジリエンスモードとを含む、請求項1から7のいずれか一項に記載の方法。
【請求項10】
前記選択する段階は、前記複数の属性と前記予想使用量との間をマッピングする段階を備え、
性能属性は、前記メモリの領域から前記データが再呼び出しされる速度を特定し、複数のタイミング感度が高い計算において頻繁にアクセスされたデータに使用され、
保持属性は、前記データが電力再生なしに前記メモリの領域に残る持続時間を特定し、複数の待ち時間許容計算においてまれにアクセスされたデータに使用され、ならびに、
効率属性は、前記メモリの領域内に前記データを維持するための電力消費量を示しており、熱またはバッテリ上の複数の問題がメモリアクセスを制限する場合に使用される、請求項1から9のいずれか一項に記載の方法。
【請求項11】
前記メモリの複数の領域から複数の動作統計を受信する段階をさらに含み、前記複数の属性は、前記受信した複数の動作統計に基づく、請求項1から10のいずれか一項に記載の方法。
【請求項12】
前記複数の動作統計は、温度、複数の統計用カウンタ、および複数のタイムアウトカウンタを含む、請求項11に記載の方法。
【請求項13】
前記マッピングする段階は、
頻繁にアクセスされた複数の領域の温度に対するセンサフィードバックを受信し、
前記受信したセンサフィードバックに基づいて、より使用頻度が低い複数の領域に前記データを移動するためのヒューリスティックを呼び出す段階をさらに備える、請求項8に記載の方法。
【請求項14】
前記マッピングする段階は、
複数の領域へのアクセスのための複数のカウンタを保ち、
アクセス数が多い複数の領域からアクセス数が少ない複数の領域へ前記データを移動するためのヒューリスティックを呼び出す段階をさらに備える、請求項8に記載の方法。
【請求項15】
前記マッピングする段階は、
複数のデータ保持時間に対応してタイマー入力を受信し、前記領域の保持時間に存在する場合、限界に近づいているデータを特定し、
前記受信したタイマー入力に基づいて、より高い保持時間を持つ複数の領域に前記データを移動するためのヒューリスティックを呼び出す段階をさらに備える、
請求項8に記載の方法。
【請求項16】
前記複数の領域は、複数のスタックダイメモリ配列によりアクセス可能な複数のスルーシリコンビア(TSV)領域とバスがアクセス可能な複数のバンクとを有する、請求項1から15のいずれか一項に記載の方法。
【請求項17】
各々の領域が複数の属性により定義されて複数のメモリ領域に分割されるメモリと、
データの予想使用量に従って前記データを特徴付けるヒューリスティック論理と、
前記領域の前記複数の属性との前記予想使用量の相関に基づいて前記複数のメモリ領域の1つの領域へ前記データをマッピングするメモリコントローラと、
前記マッピングされたデータをレンダリングするためのディスプレイと
を備え、
前記ヒューリスティック論理は、
前記メモリの前記領域に格納されている前記データの今後のアクセス期間を特定し、
前記アクセス期間に先立って前記データを前記メモリの代替領域へ移動し、
前記代替領域は、まれに使用されるが、使用中に速いアクセスを必要とするデータに応じて速いアクセスに対応する複数の属性を有する、装置。
【請求項18】
前記データの予想使用量は、前記データのアクセス頻度、前記データの検索における有用性、および前記データの寿命の少なくとも1つに基づく、請求項17に記載の装置。
【請求項19】
前記分割されたメモリの各領域は、前記データが格納される前記メモリの領域を考慮することなく同じやり方で前記メモリコントローラからアドレッシング可能な状態を保つ、請求項17または18に記載の装置。
【請求項20】
前記複数のメモリ領域は、前記予想使用量に応じて前記複数の属性の動的変更用である、請求項17から19のいずれか一項に記載の装置。
【請求項21】
ヒューリスティック論理は動作モードを定義し、
前記動作モードは、より優先度の高い属性を示す複数の領域が有利であるように前記複数の属性の優先度を表し、
前記メモリコントローラは、高い優先度に対応している複数の属性を示す複数の領域が望まれるとともに、より低い優先度に対応している複数の属性を示す複数の領域はより低い頻度で使用されるように、前記属性の優先度に基づいて前記データをマッピングするために、前記ヒューリスティック論理に応答する、請求項17から20のいずれか一項に記載の装置。
【請求項22】
前記ヒューリスティック論理は、前記複数の属性に基づいて前記複数のメモリ領域に優先順位をつけるための複数の動作モードを備え、
前記複数の動作モードは、速い検索を行う複数のメモリ領域を優先する性能モードと、
許容可能な検索時間を有する低電力消費量の複数の領域を優先する効率モードと、
応答性を保ちながら最小の電力および熱負荷で動作を保つための高保持時間を有する複数の領域を優先するレジリエンスモードとを含む、請求項17から21のいずれか一項に記載の装置。
【請求項23】
前記ヒューリスティック論理は、複数の属性と使用量との間のマッピングが実行されるようにし、
性能属性は、前記メモリの領域からデータが再呼び出しされる速度を特定し、複数のタイミング感度が高い計算において頻繁にアクセスされたデータに使用され、
保持属性は、前記データが電力再生なしに前記メモリの領域に残る持続時間を特定し、複数の待ち時間許容計算においてまれにアクセスされたデータに使用され、ならびに、
効率属性は、メモリの領域内にデータを保つための電力消費量を示しており、熱またはバッテリ上の問題がメモリアクセスを制限する場合に使用される、請求項17から22のいずれか一項に記載の装置。
【請求項24】
メモリにアクセスするためのプログラムであって、
コンピュータに、メモリを、各々の領域が複数の属性により定義される複数の領域に区画化する段階と、
データの予想使用量に従って前記データを特徴付ける段階と、
前記領域の前記複数の属性との前記予想使用量の相関に基づいて前記複数の領域の1つの領域へ前記データをマッピングする段階と、
前記メモリの前記領域に格納されている前記データの今後のアクセス期間を特定する段階と、
前記アクセス期間に先立って前記データを前記メモリの代替領域へ移動する段階と
を実行させ、
前記代替領域は、まれに使用されるが、使用中に速いアクセスを必要とするデータに応じて速いアクセスに対応する複数の属性を有する、プログラム。
【請求項25】
請求項24に記載のプログラムを格納するコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【0001】
コンピュータシステムは、メインメモリ、すなわちプログラム(用途)実行時におけるアクセス用のランダムアクセスメモリ(RAM)と、主として、プログラム全体の保存/検索用および現在の実行よりも多くの格納が求められるデータファイル書き込み用のディスクメモリ(大容量ストレージ)とを、用いる。しばしば、これらのタイプは、揮発性および不揮発性ストレージと称され、メインメモリ内に格納値を保つのに一定の電力が必要であることを意味している。一方、ディスクメモリは、プログラムおよびデータの永続的な格納に用いられる。これらのタイプの各々に対するアクセス方法もまた、基本的に異なる。なぜなら、ディスクメモリがコンピュータの入出力(I/O)サブシステムに依存する一方で揮発性メモリがプログラム命令によりアクセスされるからである。一般に揮発性メモリのほうがより速いが、そのようなメモリは、動作性能が実質的に類似している任意の利用可能な位置の格納および検索をメモリコントローラが実施するように、複数のホモジニアスメモリ位置からなる単一のブロックとして参照される。
【図面の簡単な説明】
【0002】
本発明の前述および他の目的、特徴、ならびに利点は、異なる図面全体にわたる同一部品が同様の参照符号によって言及される添付の図面に図示されるように、本発明の特定の実施形態に関する以下の説明から明らかであろう。図面は、寸法どおりである必要はないが、その代わりに本発明の原理を説明することに重点が置かれている。
【
図1】本明細書中の構成による使用に適したコンピュータメモリ環境のコンテクスト図である。
【
図2】
図1の環境におけるメモリアクセスのフローチャートである。
【
図3a】
図1の環境のメモリアクセスのヒューリスティックを示す計算およびデータフローである。
【
図3b】
図1の環境のメモリアクセスのヒューリスティックを示す計算およびデータフローである。
【
図3c】
図1の環境のメモリアクセスのヒューリスティックを示す計算およびデータフローである。
【
図3d】
図1の環境のメモリアクセスのヒューリスティックを示す計算およびデータフローである。
【
図4】
図1の環境におけるメモリ領域の積層実装を示す。
【発明を実施するための形態】
【0003】
各々が異なる属性を表す揮発性および不揮発性メモリの領域に対する選択的メモリアクセスに関して動作可能なメモリコントローラは、いくつかの例を挙げると、アクセス速度、保持時間、および電力消費量を変える異なるメモリ機能を利用する。メモリの異なる領域は、アドレス可能メモリの単一の連続範囲として用途に利用可能な状態を保ちつつ、異なる属性を有する。メモリコントローラは、速度、節電、または効率(すなわち、熱/電力消費を最小限にすること)等のコンピューティング装置の操作優先順位を特定する動作モードを用いる。メモリコントローラは、格納されているデータの予想使用量(expected usage)(例えば、いつデータが検索されるかを示すアクセス頻度)に基づいて、メモリの領域を特定する。センサまたはカウンタなどの他の要素を用いて、温度の問題を生じ得る頻繁に用いられる、メモリの領域を特定してもよい。このように、メモリは、(揮発性/不揮発性アクセス命令と対照的に)用途が領域を特定する必要がないように、用途には単一の連続したメモリバンクとして現れる。メモリコントローラは、データの予想使用量との相関性が高い属性を示している領域に基づいて、メモリの領域を優先するヒューリスティックにより、動作モードと予想使用量とに基づいてメモリの領域を選択する。
【0004】
DRAMがバイトアドレス可能不揮発性メモリ(NVM)に取って変わられる可能性がある。このようなNVMとして、限定されるものではないが、強誘電ランダムアクセスメモリ(FeTRAM)、ナノワイヤをベースとした不揮発性メモリ、位相変化メモリ(PCM)などの3次元(3D)クロスポイントメモリ、メモリスタ技術を取り込んだメモリ磁気抵抗ランダムアクセスメモリ(MRAM)およびスピン注入(STT)MRAMが挙げられる。 これらのNVM、およびダイナミックランダムアクセスメモリ(DRAM)などの揮発性メモリを、広範囲にわたる保持時間(ミリ秒から数年にわたる情報の保持)に対して、調整および製造することができる。 同様に、範囲が広いことは、これらのメモリ技術の性能動作点および電力動作点に対しても表面化するもので、深く根付いている低性能使用から高性能配置にまで及び、例えばより良好な性能を得るために保持時間および熱負担(例えば発熱)がトレードオフになり得る。 本明細書中の構成は、バッテリの最長待機時間、アクティブフェーズ中の高い応答性、および最良性能などのシステムの動作点に動的に適応するべく、異なる性能、保持率、及び熱的に最適化されたメモリ領域を活用する。
【0005】
メモリ領域(揮発性および/または不揮発性)を、任意の適当なやり方で、例えば単一のダイ内にスタック化(パッケージ内)、または別々のパッケージ内に配列することができる。さらに、開示された方法を、属性認識と属性に基づく選択的呼出しに応答する任意の適当なメモリ技術に用いてもよい。メモリコントローラ(MC)は、データを格納するべく領域の選択にアクセスを組織化することにおいて、中心的な役割を果たす。なぜなら、領域は、静的に最適化(例えば、製造時)または動的に、例えば電圧レールの構成によって、最適化され得るからである。メモリコントローラ(MC)の新しい機能は、現在の動作モード(最良の性能または最小の電力など)に従ってメモリアクセスが最も良好に供給され得るように、センサ入力、統計用カウンタ、およびタイマーに自立的に基づいてメモリ領域の間でデータを移動させることを含んでもよい。そのような解決策は、メモリサブシステムの電力/熱、性能、および保持時間に対するきめ細やかな制御を提供する。
【0006】
従来のメモリコントローラ(MC)は、性能および効率に関する所定の静的特性によって、1つのホモジニアス領域として、メモリを処理する。アクセスが他のメモリ領域にオフロードされないので、熱イベントは性能に対して負の影響を与えつつメモリ領域へのアクセスの数を絞ることになる。従来のアプローチにおいて、全てのメモリサブシステムが揮発性であると考えられることから、保持時間は現在のところ設計目標とは考えられていない。メモリに関する従来の性能状態は大ざっぱであり、ホモジニアスメモリ領域全体でのみ動作し、(たとえ可能であっても)たまに再構成されるのみである。
【0007】
ヘテロジニアス(heterogeneous)な能力を有するメモリサブシステムは、揮発性RAMを兼ねるDRAM、DRAM、およびNVMのような技術を含むべく、発展している。永続メモリの現在の発展は、ロード/格納バイトアドレス可能NVMを、プラットホームアーキテクチャにおける永続的な階層としてプログラマの目にさらす。しかし、揮発性または永続メモリ/不揮発性メモリに従来のデータを配置して異なる動作点を扱うべく、プログラマに対して負担がのしかかる。加えて、従来の永続メモリは1段階の保持時間(無制限)のみを定義し、性能の保持時間と熱特性との間のトレードオフを調整可能にしない。
【0008】
本明細書中の構成は、部分的には、アドレス可能メモリに対する従来のアプローチが連続アドレスのモノリシックブロックを定義するという観察に、基づいている。従来のメモリコントローラは、性能または効率属性のためにメモリを区別または区画化しないホモジニアスな記憶領域として、メモリにアクセスする。残念なことに、メモリコントローラをベースとしたアクセスに対する従来のアプローチには欠点がある。この欠点とは、不揮発性記憶装置の単一の段(またはカテゴリ)のみが与えられ、用途は揮発性記憶装置または不揮発性(例えばディスク)記憶装置のいずれかを選択せざるを得ないことである。
【0009】
したがって、本明細書中の構成は、メモリの異なる領域または部分のヘテロジニアスな配列を提供することによって、メモリアクセスに対する上記欠点を実質的に解決する。それらの領域または部分は、各々、アクセス速度(性能)、保持時間、および電力消費量などの特徴について異なる属性を持つ。メモリは、データの予想使用量と特定の属性の認知された属性とに基づいて、データの格納を選択可能である。例えば、頻繁に使われるデータまたは速い応答コンテクストの一部は、速い検索メモリ領域に格納され得る。その一方で、よりゆっくりとしたアクセスが許容され得ることから、しばらくは必要でないと思われるデータは、高保持時間領域に格納される可能性がある。
【0010】
本明細書中の構成では、メモリコントローラ(MC)は、性能、保持時間、およびエネルギー効率を含む属性によって特徴づけられ得るメモリ領域の制御および選択を行う。メモリコントローラ(MC)は、性能、効率、および保持時間に関して、メモリ領域の動作点を調整することができる。このような調整は、これらの属性のプラットフォームレベル方針に応じて、さらに、センサ入力(例えば熱効果)、統計用カウンタ(例えばアクセスの頻度およびアドレス分布)、ならびにタイムアウトカウンタなどのさらなる要素に基づいて、行われる。メモリコントローラ(MC)のアクセスヒューリスティックは、これらの異なる動作モードを活用することができる。加えて、メモリコントローラ(MC)は、1つのメモリ領域から別のメモリ領域へコンテンツ/データを移動させてもよい。この移動は上記のセンサ入力および静的/測定入力により引き起こされ、プラットフォームレベル方針に従ってメモリサブシステムの全体的な挙動を改善する。ヒューリスティック論理は、フィードバックの反復性評価を利用するアクセス技術を実現して、適当なまたは最も適合度が高いメモリ領域に対する属性の性能および相関を改善する。
【0011】
メモリを、性能領域および電力領域、またはより長い保持時間を有する領域に分割してもよい。このことは、生産中、回路アーキテクチャによって、または、異なる領域の属性を変更するための回路アーキテクチャによって十分な柔軟性が現れる場合には実行中に動的に、行われる。
【0012】
開示されたメモリコントローラは、キャッシュメモリコントローラとは異なる。なぜなら、キャッシュメモリコントローラが予想使用量に基づいてキャッシュメモリ内の異なる領域を選択しないからである。また、全てのデータは、同一基準、典型的には、最短時間未使用(most recently used)または最大頻度使用(most frequently used)に基づくキャッシングの候補である。さらに、開示されたメモリコントローラは、揮発性および不揮発性記憶装置のみを有するアーキテクチャとは異なる。なぜなら、揮発性および不揮発性記憶装置に対するアクセスは、すなわち変数割当てまたはファイル操作により、明示的に指定されるからである。従来の揮発性記憶装置と不揮発性記憶装置との間の選択は、通常、データ使用量に応じて定義される用途である。その一方で、用途は不揮発性記憶装置を制御せず、従来のメモリコントローラはホモジニアス揮発性メモリの単一のブロックとしてメモリを割り当てるだけである。さらに留意すべきことは、複数のメモリコントローラを階層的または並列的配置で示すアーキテクチャに、本明細書中に概説される操作およびアプローチが等しく適用可能であるという点である。したがって、メモリ領域の選択は、記憶装置の操作に求められる。予想使用量に基づいた1つの領域または別の領域のマッピングは、存在しない。
【0013】
図1は、本明細書中の構成による使用に適したコンピュータメモリ環境のコンテクスト図である。
図1を参照すると、コンピュータメモリ環境100では、メモリコントローラ110はメモリ120に対するアクセスを制御する。メモリコントローラ110は、要求132について1または複数のCPU130に応答し、応答134を与えることでデータ項目(データ)の格納および検索を行う。また、CPU130は、ユーザ入力を受信するとともに実行用途の出力をレンダリングするユーザディスプレイおよびグラフィカルユーザインターフェース(GUI)140にも応答する。後述のメモリ環境の大きさおよび可搬性に応じて、ディスク142または他の長期/不揮発性記憶媒体も含まれてもよい。
【0014】
メモリ120は、複数の領域150−1〜150−N(全体として150)を有し、アクセス媒体122を介してメモリコントローラ(MC)110によりアクセス可能(読出し/書込み)である。任意の適当なアクセス媒体は、後述するように、電気的または光学的伝送を用いる、あるいは積層実装に見られるようなスルーシリコンビア(TSV)に連結される、パラレルまたはシリアルバスなどである。MC110は、要求132に従ってデータを格納すべきメモリの領域150を選択し、応答134を実現すべく同一位置から検索する。コントローラ論理112は、データを格納すべき適用可能な領域150を演算するためのヒューリスティックを、領域150−Nの属性に関する統計と同様に、格納および適用する。メモリ領域150は、温度およびアクセスカウントなどの態様のために、センサ121−1〜121−N(全体として121)も有してもよい。ヒューリスティック論理のセンサハブ113は、センサ121の入力とともに、位置、温度、湿度、前部カメラで測定される使用者の注意、その他のような種々の適当なソースからの他の関連する要素を集める。
【0015】
開示されたヘテロジニアスメモリのアプローチおよび対応するヒューリスティックは、キャッシュおよび/またはページマップと相互操作可能であり、これは最新のオペレーティングシステムにおいて典型的である。したがって、メモリコントローラ110は、キャッシュ114および/またはアドレスマップ116も有し、これらは本明細書中の構成とともに動作可能である。例えば、キャッシュコントローラおよびアレイは、キャッシュアレイとして、メモリ内の1または複数の領域を用いてもよいので、専用のキャッシュメモリとしてメモリ素子またはバンクを追加することが回避される。
【0016】
当該技術分野で知られているように、キャッシュ114は、同一データに対する後続の操作が容易になるように、メモリ120から最近読み出されたデータや、任意にメモリ120に最近書き込まれたデータを格納する。本明細書中に開示したメモリ領域150の選択は異なっている。なぜなら、キャッシュ114が入出力操作の直接性のみに目を向け、ヒューリスティックに基づく意図された使用または使用パターンには目を向けないからである。しかし、メモリ領域の選択の一部は、高速属性を持つ領域を有してもよく、選択論理の一部としての頻繁な使用または最近の使用を含んでもよい。同様に、ページング機構は、読出し/書込み並列としてメモリの複数のセクション(例えば複数のページ、例えば4K)を単に集めるので、データが特定のページに出現した時に、開示されたヒューリスティックに適用可能である。例えば、任意のページ属性は、関連したページの性能および保持率に関してプログラマにより特定された必要条件を反映することができる。メモリコントローラ110は、同等またはより良好な属性を持つ領域に対してデータをマッピングするガイダンスとして、この情報を用いてもよい。そのような機構は、本明細書中に開示されたMC110の自律的な操作に加えて、プログラマとの意思疎通を可能にする。
【0017】
アドレスマップ116は、ソフトウェアサポートまたはより多くのハードウェアをベースとしたアプローチを使用するマッピングの形態をとってもよい。ソフトウェアサポートを用いる実装では、構成はオペレーティングシステム(OS)ページテーブルウォークに依存してもよい。一方で、MC110は、アドレスマッピングをトラッキングするべく別個のテーブルを単独で(自律的に)用いてもよい(なぜなら、このコントローラはコンテンツを移動させる能力を持つからである)。実際は、ハードウェア内でアドレスをマッピング/変換するためのこのインフラストラクチャは、NVMのウェアレベリング機構と共有され得る。なぜなら、ウェアレベリングがアドレス(例えば、ページ)あたりの書き込みアクセスを明示的にトラッキングし、限られた耐久性に基づいてコンテンツを移動させるからである。
【0018】
強調すべきことは、データが格納されるメモリ領域150を考慮することなく同じやり方(すなわち、アドレッシング可能なワードまたはバイト)で、分割されたメモリ120の各領域150がメモリコントローラ110からアドレッシング可能な状態を保つことである。要求132を作成する用途(それ故、用途を構築するプログラマ/開発者)は、メモリの異なる範囲を区別する必要がなく、またはさもなければ、領域選択を示す必要がない。ユーザ/用途メモリ120の全ての範囲は、アドレッシング可能な状態を保つ。したがって、データは、検索が実行される領域をはっきり特定することなしに複数の領域150のいずれかから、格納可能および検索可能である。同じく留意すべきことは、本明細書で用いた「区画化」は、同時にアドレッシング可能な領域150へメモリ120を細分することを意味しており、単一のマシンにインストールされるオペレーティングシステムを分けることを意味するものではなく、それらの領域は、ディスクパーティションによってサポートされる互いに相容れない環境に、概してキャストされることである。
【0019】
コンピュータメモリ環境100は、任意の適当なコンピューティングプラットホーム、例えば、携帯多機能電話および携帯型コンピューティング装置、タブレット、ラップトップ、ならびにデスクトップ型要素であってもよい。物理的制約は、様々な装置のオペレーティングパラメータに影響を及ぼす可能性がある。例えば、より小さな装置は、コンパクト性のため、より多く発熱する傾向にあり、またはバッテリの制約により、電力節約の必要性がより高くなる可能性がある。より小さな装置は、物理ディスクドライブ142を持たなくてもよい。しかし、全ての装置は、ネットワークブーティングも可能ではあるが、少なくともスタートアップ/ブート用の永続的な(不揮発性)構成要素を備えていると考えられる。
【0020】
図2は、
図1のコンピュータメモリ環境におけるメモリアクセスのフローチャートである。
図1および2を参照すると、後述する特定の構成において、メモリにアクセスする方法は、ステップ200で検討されるように各々の領域150が属性によって定義されるように、メモリを複数の領域150に区画化することを含む。各々の領域は、メモリ120の任意の適当な領域150であってもよく、設計段階から決められている属性を有するものであってもよい。あるいは、各々の領域は、矢印118−1〜118〜2(全体として118)によって示されるように、例えば、電力消費量を少なくしたり、アクセス速度を上げたりするための電圧などの属性を変更するべく、メモリ領域に命令を出すために実行中に変更され得る動的な属性を有してよい。構成例では、属性は、性能(速度)、保持率、および効率(電力消費量)を含む。他の属性は、メモリ120の設計およびサポートに応じて使用されてもよい。
【0021】
ヒューリスティック論理112は、ステップ201に示すように、データの予想使用量によってデータを特徴付けし、そのデータを、ステップ202に示すように、複数の領域150−Nのうちの領域150に、予想使用量に基づいて、および/またはその領域の属性の相関と共に、マッピングする。ここに示した例では、属性と予想使用量との間のマッピング、すなわち相関は、メモリの領域からデータが再呼び出しされる速度を性能属性が特定するようにして実行され、タイミング感度が高い計算において頻繁にアクセスされたデータに使用される。この属性は、ユーザ応答が最も重要で電力および温度の回復力が十分である場合に、優先される。保持属性は、データが電力再生なしにメモリの領域に残る持続時間を特定し、待ち時間許容計算において、まれにアクセスされたデータ、例えば、さらに後で検討される、すぐには必要とされない計算結果に、またはまれに統計学的にアクセスされた計算結果に、使用される。効率属性は、メモリの領域内にデータを保つための電力消費量を示しており、熱またはバッテリ上の問題がメモリアクセスを制限する場合に使用される。したがって、効率は、限定された電力ドレインと発熱とを伴う許容速度を意味する二面的な特徴である。効率は、空間許容度が熱集積を悪化させ得る携帯デバイスで重要であり、バッテリ電力ドレインは考慮すべき事柄である。
【0022】
属性のセットは、一般的状況を示す動作モードに従って束ねられてもよく、動作モードに許容可能な属性の「地帯(corridors)」または範囲を設定してもよい。しがたって、動作モードは、属性に基づく使用に関して領域に優先順位をつける。ここで、動作モードは、速い検索を行うメモリ領域に有利な性能モードと、許容可能な検索時間を有する低電力消費量の領域が優先される効率モードと、応答性を保ちながら最小の電力および熱負荷で動作を保つための高保持時間を有する領域を優先するレジリエンスモードとを含む。他の属性を集め、および/または属性範囲内の異なる地帯を特定する他の動作モードもまた、呼び出される。
【0023】
特定の構成では、計算または予想された使用量に応じて実行時に、メモリ領域は属性を変更するべく構成されている。したがって、コントローラ110は、予想使用量に応じて領域150の属性を動的に変更するべく、ヒューリスティック論理112に応答してもよい。例えば、まれに必要であるメモリは、メモリの領域のアクセス期間と保持期間とを特定し、その領域の電圧属性を変更することから利益を得てもよい。その際、保持期間中、データを保つために、電圧がより低くなるようにし、アクセス期間中、データを速く検索するために、電圧がより高くなるようにする。したがって、データの待ち時間延長の間、比較的低い電力と最小限に抑えられた発熱が求められる。しかし、データが必要な場合、電圧を上げてアクセス期間中、速いアクセスが可能になる。
【0024】
同様に、所望の属性を持つ領域150の間でデータの移動を行ってもよい。ヒューリスティック論理112は、メモリの領域150に格納されているデータの今後のアクセス期間を特定し、このアクセス期間に先立ってそのデータをメモリの代替領域150へ移動する。ここで、代替領域は、まれに使用されるが使用中に速いアクセスを必要とするデータに応じて速いアクセスに対応する属性を有する。
【0025】
別の例では、アクセスの頻度または密度により、メモリの領域が高動作温度にさらされていると決定する場合がある。それに応答して、ヒューリスティック論理112は、メモリの領域150が高温であることを特定し、特定された高温に応じて電力消費量および発熱を少なくするために、その領域150の属性を変更する。このようにして、電力および温度がより低くなる属性ではあるが、同一の領域150を続けて使用することが可能なる。
【0026】
図3a〜
図3dは、
図1のコンピュータメモリ環境のメモリアクセスのヒューリスティックを示す計算およびデータフローである。概して、ヒューリスティック論理112(論理)は、属性の値または状態を監視して、別の領域150にメモリ使用量を再配分するべく、調整措置を行うことで、動作モードの動作地帯(operating corridor)の中に属性を戻す。
図1および
図3a〜
図3dを参照すると、ステップ300で、ヒューリスティック論理112は、まれに使用される領域またはデータを特定するべく、期間データアクセスまたはメモリ領域アクセスを監視する。ステップ303で、チェックを実行し、現在のプロファイルにおいて、監視された属性が動作地帯の外側で遅延を示すかどうかを決定する。そうであれば、ステップ302に示されるように、メモリコントローラ(MC)110(または従属の管理機能、例えばDMAもしくはアドレスマップ作成処理)は、動作プロファイルに従って異なる保持率により、データをメモリ120の領域150(部分)に移動し、アクセス間の時間をより厳密に一致させる。したがって、延長時間においてデータ項目がアクセスされない場合、電力低下の利益を導き出すべく、より長い保持時間で領域150に格納することが許容されてもよい。制御は、ステップ300で、モニタリングまたはポーリングサイクルに従って繰り返す。したがって、予想使用量に基づくマッピングは、頻繁にアクセスされた領域150の温度に対するセンサフィードバックを受信するためのヒューリスティックを呼び出すこと、および、受信したセンサフィードバックに基づいて使用量がより少ない領域150にメモリ使用量をリダイレクトすることを、さらに含む。
【0027】
ステップ310で、
図3bにおいて、ヒューリスティック論理112は、アクセス密度(アクセス頻度を意味する)、読出し/書込み比率、平均到着時間間隔、全容量、または使用中のメモリ領域(一般に使用量または利用率を意味する)を監視する。概して、そのような属性は、全体的な電力ドレインおよび対応する発熱を指し、このことは,小さな携帯デバイスでは特に考慮すべき事柄であると思われる。ステップ311で、アクセス密度が動作地帯(範囲)の外側にあるかを決定するべく、チェックを実行する。そうであれば、ステップ312に示されるように、動作の状態を変えること(すなわち、電圧を下げて全体的な熱/電力需要を減らすこと)により、新たな動作地帯が適合し得るかどうかを特定するべく、さらなるチェックを実行する。そうであれば、論理112は、ステップ313に示すように、性能を上昇または減少させることにより制御を変えるべく、新しい動作地帯を設定する。新たな動作地帯が適合できない場合(使用が大幅に中断することなく)、ステップ314に示すように、メモリコントローラは、プロファイルに従って異なる電力/性能(すなわち効率)状態により、メモリの領域150へデータを移動させる。メモリの領域を移動させることよりも電圧を変更することによって状態を変えるには、オーバーヘッドが概して少ないので、電圧変化を最初に考慮する。したがって、ヒューリスティック112は、領域へのアクセスのためのカウンタを保持してもよく、アクセス数が多い領域からアクセス数が少ない領域へメモリ使用量をリダイレクトしてもよい。
【0028】
領域移動が求められる両方のケース(ステップ302、314)について、メモリセンサおよび/またはカウンタから集めた統計的使用量データを用いてもよい。メッセージ350で示すように、メモリタイプの保持時間に基づくメモリのアドレス/領域区分の情報は、論理に送られる。同様に、メモリの電力/性能状態に基づくメモリのアドレス/領域区分の情報は、メッセージ352により、受信される。したがって、データの予想使用量は、データのアクセス頻度、データ検索の有用性、およびデータの寿命の少なくとも1つに基づいている。領域150の選択は、動作モードを特定することをさらに含み、この動作モードは、優先度がより高い属性を示す領域が優先されるように、属性の優先度を表す。論理112に応答するMC110は、属性の優先度に基づいてデータをマッピングする。ここで、高優先度に対応している属性を示す領域150が優先されるとともに、より低い優先度に対応している属性を示す領域はより低い頻度で用いられているか、領域の間を一斉に移動させられる。
【0029】
したがって、論理112は、複数のメモリ領域150から動作統計を受信することを含み得るヒューリスティックを実現する。ここで、属性は、受信した動作統計に基づいている。構成例では、動作統計は、メモリバンク/モジュールの搭載センサからのパラメータ、例えば温度(すなわち、熱効果)、統計用カウンタ(すなわち、アクセス頻度およびアドレス分布)、ならびにタイムアウトカウンタを含んでもよい。
【0030】
ステップ320で、論理112は、メモリ領域150のアクセス密度を監視する。アクセス密度は、例えば、DRAM内の多数の属性(パラメータ)に影響を与え、処理スケーリングでよりいっそう顕著になる。論理は、ステップ323で示されるように、NVMメモリのウェアレベルも監視する。ウェアレベリングは、特定の位置にアクセスが不均衡に分配されないように、メモリ全体でアクセスサイクルの緩和を試みる。そのような不均衡の分配は、いくつかの位置が読出し/書込みライフサイクルを早期に使い果たす原因になり得る。両方の属性について、ステップ321に示すように、アクセス密度がより低い領域150へデータを移すことが可能であるかを決定するべく、チェックを行う。そうであれば、メモリコントローラ(MC)110は、アクセスサイクルに対してより許容度が高い別のメモリ領域150に、そのデータを移動する(より長い読出し/書出し寿命が利用可能)。したがって、マッピングは、データ保持時間に対応してタイマー入力を受信するためのヒューリスティックをさらに呼び出すことが可能である。また、マッピングは、限界に近づいているデータが領域150の保持時間に存在する場合、そのデータを特定する。MC110は、メモリ使用量を、受信したタイマー入力に基づいて、より高い保持時間を持つ領域にリダイレクトする。
【0031】
図4は、
図1のコンピュータメモリ環境におけるメモリ領域の積層実装を示す。
図1および4を参照して、異なるアーキテクチャは、異なるアクセス媒体(例えばスルーシリコンビア(TSV)122')によりメモリ領域を配置してもよい。他の構成では、領域150は、上記のように、スタックダイメモリ配列120'によりアクセス可能なTSV領域150−11〜150−14とバスがアクセス可能なバンクとを含む。さらに、異なる領域は、異なる電力ドメインに対応してもよく、電力消費量および発熱の制御をさらに強化する。
【0032】
当業者は、本明細書中で定義されたプログラムおよび方法が多くの形態でユーザプロセッシングおよびレンダリングデバイスに到達可能であることを容易に理解する。これらの形態は、限定されるものではないが、a)ROMデバイスのなどの書込不可記憶媒体に永久的に格納されている情報、b)フロッピー(登録商標)ディスク、磁気テープ、CD、RAMデバイス、ならびに他の磁気および光学媒体などの書き込み可能な持続性記憶媒体上に、変更可能なかたちで格納された情報、あるいはc)インターネットまたは電話モデム回線などの電子ネットワークに見られるように、通信媒体を介してコンピュータに伝えられる情報が含まれる。操作および方法はソフトウェア実行可能なオブジェクトに実装されてもよく、または命令に応答するプロセッサによる実行のための1セットの符号化命令として実装されてもよい。あるいは、本明細書中に開示された操作および方法は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、状態機械、コントローラなどのハードウェア構成要素または他のハードウェア構成要素もしくはデバイス、あるいはハードウェア、ソフトウェア、およびファームウェア構成要素の組み合わせを用いて、全体的または部分的に具体化されてもよい。
【0033】
本明細書中に定義されたシステムおよび方法がそれらの実施形態を参照して示され、かつ説明されているとはいえ、添付した特許請求の範囲に包含される発明の範囲から逸脱することなく種々の変更を形態および詳細に加えることが可能であることを当業者は容易に理解されよう。
[項目1]
各々の領域が複数の属性により定義されてプロセッサに応答する、複数の領域にメモリを区画化する段階と、
データの予想使用量に従って前記データを特徴付ける段階と、
前記データの前記予想使用量に基づいて前記データを格納すべく前記複数の領域から1つの領域を選択する段階とを備える、
メモリにアクセスする方法。
[項目2]
前記データの前記予想使用量は、前記データのアクセス頻度、前記データの検索における有用性、および前記データの寿命の少なくとも1つに基づく、項目1に記載の方法。
[項目3]
前記データは、検索が実行される前記領域をはっきり特定することなしに前記複数の領域のいずれかから、格納可能および検索可能である、項目1または2に記載の方法。
[項目4]
前記予想使用量に応じて前記領域の前記複数の属性を動的に変更する段階をさらに備える、項目1から3のいずれか一項に記載の方法。
[項目5]
前記メモリの前記領域のアクセス期間と保持期間とを特定する段階と、
前記領域の電圧属性を、電力消費量および速度の必要性に基づいて前記予想使用量に従って電圧の値が変更されるように、変更する段階をさらに備える、
項目1から4のいずれか一項に記載の方法。
[項目6]
前記データを保つための前記保持期間中、前記電圧がより低くなり、前記データを速く検索するための前記アクセス期間中、前記電圧がより高くなるように、前記領域の電圧属性を変更する段階をさらに備える、項目5に記載の方法。
[項目7]
前記メモリの前記領域に格納されている前記データの今後のアクセス期間を特定する段階と、
前記アクセス期間に先立って前記データを前記メモリの代替領域へ移動する段階とをさらに備え、
前記代替領域は、まれに使用されるが、使用中に速いアクセスを必要とするデータに応じて速いアクセスに対応する複数の属性を有する、項目1から6のいずれか一項に記載の方法。
[項目8]
電力補正の必要を示す前記メモリの領域のメモリセンサ入力に基づいて特定する段階と、
前記特定された高温に応じて電力消費量および発熱を少なくするために前記領域の前記複数の属性を変更する段階とをさらに備える、項目1から7のいずれか一項に記載の方法。
[項目9]
より優先度が高い属性を示す複数の領域が有利であるように前記複数の属性の優先度を示す動作モードを特定する段階と、
高い優先度に対応している複数の属性を示す複数の領域を優先するとともに、より低い優先度に対応している複数の属性を示す複数の領域はより低い頻度で使用されるように、前記属性の優先度に基づいて前記データをマッピングする段階とをさらに備える、項目1から8のいずれか一項に記載の方法。
[項目10]
動作モードは、前記複数の属性に基づく使用に関して前記複数の領域に優先順位をつけ、前記動作モードは、
速い検索を行う複数のメモリ領域を優先する性能モードと、
許容可能な検索時間を有する低電力消費量の複数の領域を優先する効率モードと、
応答性を保ちながら最小の電力および熱負荷で動作を保つための高保持時間を有する複数の領域を優先するレジリエンスモードとを含む、項目1から8のいずれか一項に記載の方法。
[項目11]
前記選択する段階は、前記複数の属性と前記予想使用量との間をマッピングする段階を備え、
性能属性は、前記メモリの領域から前記データが再呼び出しされる速度を特定し、複数のタイミング感度が高い計算において頻繁にアクセスされたデータに使用され、
保持属性は、前記データが電力再生なしに前記メモリの領域に残る持続時間を特定し、複数の待ち時間許容計算においてまれにアクセスされたデータに使用され、ならびに、
効率属性は、前記メモリの領域内に前記データを維持するための電力消費量を示しており、熱またはバッテリ上の複数の問題がメモリアクセスを制限する場合に使用される、項目1から10のいずれか一項に記載の方法。
[項目12]
前記メモリの複数の領域から複数の動作統計を受信する段階をさらに含み、前記複数の属性は、前記受信した複数の動作統計に基づく、項目1から11のいずれか一項に記載の方法。
[項目13]
前記複数の動作統計は、温度、複数の統計用カウンタ、および複数のタイムアウトカウンタを含む、項目12に記載の方法。
[項目14]
マッピングの段階は、
頻繁にアクセスされた複数の領域の温度に対するセンサフィードバックを受信し、
前記受信したセンサフィードバックに基づいて使用量がより低い複数の領域にメモリ使用量をリダイレクトするためのヒューリスティックを呼び出す段階をさらに備える、項目1から13のいずれか一項に記載の方法。
[項目15]
マッピングの段階は、
複数の領域へのアクセスのための複数のカウンタを保ち、
アクセス数が多い複数の領域からアクセス数が少ない複数の領域へメモリ使用量をリダイレクトするためのヒューリスティックを呼び出す段階をさらに備える、項目1から13のいずれか一項に記載の方法。
[項目16]
マッピングの段階は、
複数のデータ保持時間に対応してタイマー入力を受信し、前記領域の保持時間に存在する場合、限界に近づいているデータを特定し、
前記受信したタイマー入力に基づいて、より高い保持時間を持つ複数の領域にメモリ使用量をリダイレクトするためのヒューリスティックを呼び出す段階をさらに備える、
項目1から13のいずれか一項に記載の方法。
[項目17]
前記複数の領域は、複数のスタックダイメモリ配列によりアクセス可能な複数のスルーシリコンビア(TSV)領域とバスがアクセス可能な複数のバンクとを有する、項目1から16のいずれか一項に記載の方法。
[項目18]
各々の領域が複数の属性により定義されて複数のメモリ領域に分割されるメモリと、
データの予想使用量に従って前記データを特徴付けるヒューリスティック論理と、
前記領域の前記複数の属性との前記予想使用量の相関に基づいて前記複数のメモリ領域の1つの領域へ前記データをマッピングするためのメモリアクセス媒体と、
前記マッピングされたデータをレンダリングするためのディスプレイとを備える、メモリコントローラ。
[項目19]
前記データの予想使用量は、前記データのアクセス頻度、前記データの検索における有用性、および前記データの寿命の少なくとも1つに基づく、項目18に記載のメモリコントローラ。
[項目20]
前記分割されたメモリの各領域は、前記データが格納される前記メモリの領域を考慮することなく同じやり方でメモリコントローラからアドレッシング可能な状態を保つ、項目18または19に記載のメモリコントローラ。
[項目21]
前記複数のメモリ領域は、前記予想使用量に応じて前記複数の属性の動的変更用である、項目18から20のいずれか一項に記載のメモリコントローラ。
[項目22]
ヒューリスティック論理は動作モードを定義し、
前記動作モードは、より優先度の高い属性を示す複数の領域が有利であるように前記複数の属性の優先度を表し、
前記メモリアクセス媒体は、高い優先度に対応している複数の属性を示す複数の領域が望まれるとともに、より低い優先度に対応している複数の属性を示す複数の領域はより低い頻度で使用されるように、前記属性の優先度に基づいて前記データをマッピングするために、前記ヒューリスティック論理に応答する、項目18から21のいずれか一項に記載のメモリコントローラ。
[項目23]
前記ヒューリスティック論理は、前記複数の属性に基づいて前記複数のメモリ領域に優先順位をつけるための複数の動作モードを備え、
前記複数の動作モードは、速い検索を行う複数のメモリ領域を優先する性能モードと、
許容可能な検索時間を有する低電力消費量の複数の領域を優先する効率モードと、
応答性を保ちながら最小の電力および熱負荷で動作を保つための高保持時間を有する複数の領域を優先するレジリエンスモードとを含む、項目18から22のいずれか一項に記載のメモリコントローラ。
[項目24]
前記ヒューリスティック論理は、複数の属性と使用量との間のマッピングが実行されるようにし、
性能属性は、前記メモリの領域からデータが再呼び出しされる速度を特定し、複数のタイミング感度が高い計算において頻繁にアクセスされたデータに使用され、
保持属性は、前記データが電力再生なしに前記メモリの領域に残る持続時間を特定し、複数の待ち時間許容計算においてまれにアクセスされたデータに使用され、ならびに、
効率属性は、メモリの領域内にデータを保つための電力消費量を示しており、熱またはバッテリ上の問題がメモリアクセスを制限する場合に使用される、項目18から23のいずれか一項に記載のメモリコントローラ。
[項目25]
メモリにアクセスするためのプログラムであって、
コンピュータに、メモリを、各々の領域が複数の属性により定義される複数の領域に区画化する段階と、
データの予想使用量に従って前記データを特徴付ける段階と、
前記領域の前記複数の属性との前記予想使用量の相関に基づいて前記複数の領域の1つの領域へ前記データをマッピングする段階と、を実行させる、プログラム。