(57)【要約】【課題】「スロットリング」または低電力モードの有害な影響を減らす形で電力消費を最小にするためにメモリ使用を識別し、追跡することによって、従来技術の欠点を克服すること。【解決手段】個々のメモリ構成要素によって消費される電力および熱負荷の量を制限するためにアクティブ・デバイスの間でより均等にメモリ使用のバランスをとるために、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）デバイスおよびデュアル・インライン・メモリ・モジュール（ＤＩＭＭ）デバイスのうちで十分に利用されていない部分にメモリ割振りを再配分する方法、装置、およびシステムを開示する。開示される方法、装置、およびシステムは、メモリ・デバイスの「スロットリング」または低電力モードの有害な影響を減らす形で電力消費を最小にするためにメモリ使用を識別し、追跡することができる。【選択図】図４
2007133879.tif 000002
【特許請求の範囲】
【請求項１】
電力消費を減らすためにコンピュータ・メモリ・デバイスの内容の少なくともいくつかの動的再配分のために構成された前記コンピュータ・メモリ・デバイスであって、
（ａ）少なくとも１つのアクティブ・メモリ・ストレージ領域と、
（ｂ）予備にとっておかれ、使用のために割り振られない、メモリ・ストレージの少なくとも１つのアクティブ領域と、
（ｃ）
（ｉ）
（Ａ）メモリ領域に関する処理アクティビティがすべての他のメモリ領域と比較してアンバランスである、または
（Ｂ）メモリ領域が定義された時間期間にわたってすべての他のメモリ領域と比較してメモリ使用、電力消費、または熱負荷の不釣り合いなシェアを維持する
という判断基準のうちの１つまたは複数を満足するすべてのメモリ領域を識別するために、アクティブ・メモリ・ストレージ領域ごとにメモリ使用、電力消費、または熱負荷を含む少なくとも１つの動作パラメータを監視する動作と、
（ｉｉ）前述の判断基準のうちの１つまたは複数を満足するすべてのメモリ領域の内容の少なくとも一部をリザーブ・メモリに再配分するか再割振りする動作と、
（ｉｉｉ）新しいメモリ位置から前記再配分された内容または前記再割振りされた内容にアクセスする動作と、
（ｉｖ）前記監視される動作パラメータのうちの少なくとも１つがすべてのアクティブ・メモリ構成要素にまたがって実質的に均等にバランスがとれるまで、前述の動作を繰り返す動作と
のうちの少なくとも１つを実行するようにそれぞれが構成された１つまたは複数の制御構成要素と
というハードウェア構成要素またはソフトウェア構成要素を含むコンピュータ・メモリ・デバイス。
【請求項２】
（ａ）
（ｉ）あるタイム・セグメントから別のタイム・セグメントまで少なくとも１つのメモリ領域のデータ処理性能を監視することと、
（ｉｉ）前記監視されるメモリ処理がそのタイム・セグメント中にインアクティブになる場合に、次のタイム・セグメントに前記監視されるメモリ領域の少なくとも一部を非アクティブ化することと
によってメモリ動作の周期性を制御し、またはスロットリングする動作と、
（ｂ）メモリ再配分が行われるまで少なくとも１つのメモリ領域を低電力で動作させる動作と
のうちの少なくとも１つを実行するようにそれぞれが構成された１つまたは複数の制御構成要素を含む、請求項１に記載のコンピュータ・メモリ・デバイス。
【請求項３】
故障したメモリ領域を管理するために、
（ａ）前記故障した領域が修理されるか交換されるまで、前記故障したメモリ領域の内容を少なくとも１つの機能するメモリ領域に再配分する動作と、
（ｂ）前記故障した領域が修理されるか交換されるまで、少なくとも１つのメモリ領域の性能をスロットリングする動作と、
（ｃ）前記故障した領域が修理されるか交換されるまで、少なくとも１つのメモリ領域を低電力で動作させる動作と
のうちの少なくとも１つを実行するようにそれぞれが構成された１つまたは複数の制御構成要素を含む、請求項２に記載のコンピュータ・メモリ・デバイス。
【請求項４】
少なくとも１つのメモリ領域が、少なくとも１つのダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）構成要素を含む、請求項１に記載のコンピュータ・メモリ・デバイス。
【請求項５】
前記少なくとも１つのダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）構成要素が、少なくとも１つのデュアル・インライン・メモリ・モジュール（ＤＩＭＭ）構成要素に構成される、請求項４に記載のコンピュータ・メモリ・デバイス。
【請求項６】
前記リザーブ・メモリが、使用されていない状態である少なくとも１つのメモリ領域または十分に利用されていない少なくとも１つのメモリ領域を含む、請求項１に記載のコンピュータ・メモリ・デバイス。
【請求項７】
メモリ位置の使用を監視するために、
（ａ）その位置が現在使用中であるかどうかを判定するために前記監視されるメモリ位置に関連する動作パラメータを識別する動作と、
（ｂ）その位置が最近にアクセスされたかどうかを判定するために前記監視されるメモリ位置に関連する動作パラメータを識別する動作と
のうちの少なくとも１つを実行するようにそれぞれが構成された１つまたは複数の制御構成要素を含む、請求項１に記載のコンピュータ・メモリ・デバイス。
【請求項８】
（ａ）前記監視されるメモリ位置が、その使用レジスタのフラグがセットされている時に現在使用中であり、
（ｂ）前記監視されるメモリ位置が、その使用レジスタのフラグがセットされていない時に現在使用されていない
請求項７に記載のコンピュータ・メモリ・デバイス。
【請求項９】
（ａ）前記監視されるメモリ位置が、その最近アクセス・レジスタのフラグがセットされている時に最近にアクセスされ、
（ｂ）前記監視されるメモリ位置が、その最近アクセス・レジスタのフラグがセットされていない時に最近にアクセスされていない
請求項７に記載のコンピュータ・メモリ・デバイス。
【請求項１０】
メモリ電力消費またはメモリ熱負荷を監視するために、
（ａ）温度に対する前記監視されるメモリ領域の動作パラメータを測定する測定動作と、
（ｂ）前記監視されるメモリ領域の性能が所定の仕様を超える最大許容可能動作温度を計算する計算動作と、
（ｃ）前記計算された最大温度閾値に対応するパラメータをメモリに保管する保管動作と、
（ｄ）前記監視されるメモリ領域の実際の動作温度を周期的に測定し、または計算する計算動作と、
（ｅ）前記実際のまたは計算された動作温度を前記保管された最大温度閾値と比較する比較動作と
のうちの少なくとも１つを実行するようにそれぞれが構成された１つまたは複数の制御構成要素を含む、請求項１に記載のコンピュータ・メモリ・デバイス。
【請求項１１】
前記実際のまたは計算された動作温度が前記最大温度閾値を超える時に前記監視されるメモリ領域の電力消費を減らすように構成された１つまたは複数の制御構成要素を含む、請求項１０に記載のコンピュータ・メモリ・デバイス。
【請求項１２】
前記監視されるメモリ領域の電力消費を減らすために、
（ａ）前記監視されるメモリ領域の内容の少なくとも一部を少なくとも１つの他のメモリ領域に再配分する動作と、
（ｂ）前記監視されるメモリ領域の前記性能をスロットリングする動作と、
（ｃ）前記監視されるメモリ領域を低電力で動作させる動作と
のうちの少なくとも１つを実行するようにそれぞれが構成された１つまたは複数の制御構成要素を含む、請求項１１に記載のコンピュータ・メモリ・デバイス。
【請求項１３】
前記監視されるメモリ領域の電力消費が、前記実際の動作温度がもはや前記最大温度閾値を超えなくなった時に復元される、請求項１１に記載のコンピュータ・メモリ・デバイス。
【請求項１４】
前記測定動作、前記計算動作、前記保管動作、および前記比較動作のうちの少なくとも１つが、比較回路を使用して実行される、請求項１０に記載のコンピュータ・メモリ・デバイス。
【請求項１５】
前記計算された最大温度閾値が、比較回路内のヒューズ可能デバイスから形成される不揮発性メモリに保管される、請求項１４に記載のコンピュータ・メモリ・デバイス。
【請求項１６】
前記動作が、
（ａ）少なくとも１つのコンピュータ可読記憶媒体に含まれ、１つまたは複数の処理ユニットによって実行される１つまたは複数の命令または命令シーケンスをそれぞれが含む少なくとも１つのソフトウェア構成要素と、
（ｂ）１つまたは複数のロジック回路を含む少なくとも１つのハードウェア構成要素と
のうちの１つまたは複数によって実行される、請求項１に記載のコンピュータ・メモリ・デバイス。
【請求項１７】
前記リザーブ・メモリが、前記リザーブ・メモリの管理と再配分または再度割振りとの実質的にすべてがメモリ・コントローラによって実行されるように、オペレーティグ・システムまたは処理ユニットから隠される、請求項１に記載のコンピュータ・メモリ・デバイス。
【請求項１８】
電力消費を減らすためのコンピュータ・メモリの動的再配分のために構成されたコンピュータ・システムであって、
（ａ）データおよび命令を処理し、メモリにアクセスするために少なくとも１つのオペレーティグ・システムによってそれぞれが制御される１つまたは複数の処理ユニットを含む処理システムと、
（ｂ）１つまたは複数のアクティブ・メモリ・ストレージ構成要素にアクセスするために少なくとも１つの処理ユニットによってそれぞれが操作される１つまたは複数のメモリ・コントローラを含むメモリ・システムと、
（ｃ）予備にとっておかれ、使用のために割り振られない、メモリ・ストレージのアクティブ領域と、
（ｄ）
（ｉ）
（Ａ）メモリ構成要素の処理アクティビティがすべての他のメモリ構成要素と比較してアンバランスである、または
（Ｂ）メモリ構成要素が定義された時間期間にわたってすべての他のメモリ構成要素と比較してメモリ使用、電力消費、または熱負荷の不釣り合いなシェアを維持する
という判断基準のうちの１つまたは複数を満足するすべてのメモリ構成要素を識別するために、アクティブ・メモリ構成要素のストレージ領域ごとにメモリ使用、電力消費、または熱負荷を含む少なくとも１つの動作パラメータを監視する動作と、
（ｉｉ）前述の判断基準のうちの１つまたは複数を満足するすべてのメモリ構成要素の内容の少なくとも一部をリザーブ・メモリに再配分するか再割振りする動作と、
（ｉｉｉ）新しいメモリ位置から前記再配分された内容または前記再割振りされた内容にアクセスする動作と、
（ｉｖ）前記監視される動作パラメータのうちの少なくとも１つがすべてのアクティブ・メモリ構成要素にまたがって実質的に均等にバランスがとれるまで、前述の動作を繰り返す動作と
のうちの１つまたは複数を実行するために任意の組合せで働く、少なくとも１つの処理ユニット、オペレーティング・システム、またはメモリ・コントローラによる使用のためにそれぞれが構成された１つまたは複数の制御構成要素と
というハードウェア構成要素またはソフトウェア構成要素を含む、コンピュータ・システム。
【請求項１９】
（ａ）
（ｉ）あるタイム・セグメントから別のタイム・セグメントまで前記処理システムおよび少なくとも１つのメモリ構成要素のデータ処理性能を監視することと、
（ｉｉ）前記処理システムまたは前記監視されるメモリ処理がそのタイム・セグメント中にインアクティブになる場合に、次のタイム・セグメントに前記監視されるメモリ構成要素の少なくとも一部を非アクティブ化することと
によってメモリ動作の周期性を制御し、またはスロットリングする動作と、
（ｂ）メモリ再配分が行われるまで少なくとも１つのメモリ構成要素を低電力で動作させる動作と
のうちの少なくとも１つを実行するようにそれぞれが構成された１つまたは複数の制御構成要素を含む、請求項１８に記載のコンピュータ・システム。
【請求項２０】
故障したメモリ構成要素を管理するために、
（ａ）前記故障した構成要素が修理されるか交換されるまで、前記故障したメモリ構成要素の内容を少なくとも１つの機能するメモリ構成要素に再配分する動作と、
（ｂ）前記故障した構成要素が修理されるか交換されるまで、前記処理ユニットまたは少なくとも１つのメモリ構成要素の前記性能をスロットリングする動作と、
（ｃ）前記故障した構成要素が修理されるか交換されるまで、少なくとも１つのメモリ構成要素を低電力で動作させる動作と
のうちの少なくとも１つを実行するようにそれぞれが構成された１つまたは複数の制御構成要素を含む、請求項１９に記載のコンピュータ・システム。
【請求項２１】
少なくとも１つのメモリ構成要素が、少なくとも１つのダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）構成要素を含む、請求項１８に記載のコンピュータ・システム。
【請求項２２】
少なくとも１つのダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）構成要素が、少なくとも１つのデュアル・インライン・メモリ・モジュール（ＤＩＭＭ）構成要素に構成される、請求項２１に記載のコンピュータ・システム。
【請求項２３】
前記リザーブ・メモリが、使用されていない状態である少なくとも１つのメモリ構成要素または十分に利用されていない少なくとも１つのメモリ構成要素を含む、請求項１８に記載のコンピュータ・システム。
【請求項２４】
メモリ位置の使用を監視するために、
（ａ）その位置が現在使用中であるかどうかを判定するために前記監視されるメモリ位置に関連する動作パラメータを識別する動作と、
（ｂ）その位置が最近にアクセスされたかどうかを判定するために前記監視されるメモリ位置に関連する動作パラメータを識別する動作と
のうちの少なくとも１つを実行するようにそれぞれが構成された１つまたは複数の制御構成要素を含む、請求項１８に記載のコンピュータ・システム。
【請求項２５】
（ａ）前記監視されるメモリ位置が、その使用レジスタのフラグがセットされている時に現在使用中であり、
（ｂ）前記監視されるメモリ位置が、その使用レジスタのフラグがセットされていない時に現在使用されていない
請求項２４に記載のコンピュータ・システム。
【請求項２６】
（ａ）前記監視されるメモリ位置が、その最近アクセス・レジスタのフラグがセットされている時に最近にアクセスされ、
（ｂ）前記監視されるメモリ位置が、その最近アクセス・レジスタのフラグがセットされていない時に最近にアクセスされていない
請求項２４に記載のコンピュータ・システム。
【請求項２７】
メモリ電力消費またはメモリ熱負荷を監視するために、
（ａ）温度に対する前記監視されるメモリ構成要素の動作パラメータを測定する測定動作と、
（ｂ）前記監視されるメモリ構成要素の性能が所定の仕様を超える最大許容可能動作温度を計算する計算動作と、
（ｃ）前記計算された最大温度閾値に対応するパラメータをメモリに保管する保管動作と、
（ｄ）前記監視されるメモリ構成要素の実際の動作温度を周期的に測定し、または計算する計算動作と、
（ｅ）前記実際のまたは計算された動作温度を前記保管された最大温度閾値と比較する比較動作と
のうちの少なくとも１つを実行するようにそれぞれが構成された１つまたは複数の制御構成要素を含む、請求項１８に記載のコンピュータ・システム。
【請求項２８】
前記実際のまたは計算された動作温度が前記最大温度閾値を超える時に前記監視されるメモリ構成要素の電力消費を減らすように構成された１つまたは複数の制御構成要素を含む、請求項２７に記載のコンピュータ・システム。
【請求項２９】
前記監視されるメモリ構成要素の電力消費を減らすために、
（ａ）前記監視されるメモリ構成要素の内容の少なくとも一部を少なくとも１つの他のメモリ構成要素に再配分する動作と、
（ｂ）前記監視されるメモリ構成要素の前記性能をスロットリングする動作と、
（ｃ）前記監視されるメモリ構成要素を低電力で動作させる動作と
のうちの少なくとも１つを実行するようにそれぞれが構成された１つまたは複数の制御構成要素を含む、請求項２８に記載のコンピュータ・システム。
【請求項３０】
前記監視されるメモリ構成要素の電力消費が、前記実際の動作温度がもはや前記最大温度閾値を超えなくなった時に復元される、請求項２８に記載のコンピュータ・システム。
【請求項３１】
前記測定動作、前記計算動作、前記保管動作、および前記比較動作のうちの少なくとも１つが、比較回路を使用して実行される、請求項２７に記載のコンピュータ・システム。
【請求項３２】
前記計算された最大温度閾値が、比較回路内のヒューズ可能デバイスから形成される不揮発性メモリに保管される、請求項３１に記載のコンピュータ・システム。
【請求項３３】
前記動作が、
（ａ）少なくとも１つのコンピュータ可読記憶媒体に含まれ、１つまたは複数の処理ユニットによって実行される１つまたは複数の命令または命令シーケンスをそれぞれが含む少なくとも１つのソフトウェア構成要素と、
（ｂ）１つまたは複数のロジック回路を含む少なくとも１つのハードウェア構成要素と
のうちの１つまたは複数によって実行される、請求項１８に記載のコンピュータ・システム。
【請求項３４】
前記リザーブ・メモリが、前記リザーブ・メモリの管理と再配分または再度割振りとの実質的にすべてがメモリ・コントローラによって実行されるように、オペレーティグ・システムまたは処理ユニットから隠される、請求項１８に記載のコンピュータ・システム。
【請求項３５】
電力消費を減らすためにコンピュータ・メモリを動的に再配分する方法であって、コンピュータ・システムのハードウェア構成要素またはソフトウェア構成要素によって実行される
（ａ）
（ｉ）アクティブ・メモリ構成要素のうちでメモリ・システムによる使用のために割り振られていない少なくとも１つのストレージ領域を予備にとっておく動作と、
（ｉｉ）
（Ａ）メモリ構成要素の処理アクティビティがすべての他のメモリ構成要素と比較してアンバランスである、または
（Ｂ）メモリ構成要素が定義された時間期間にわたってすべての他のメモリ構成要素と比較してメモリ使用、電力消費、または熱負荷の不釣り合いなシェアを維持する
という判断基準のうちの１つまたは複数を満足するすべてのメモリ構成要素を識別するために、アクティブ・メモリ構成要素のストレージ領域ごとにメモリ使用、電力消費、または熱負荷を含む少なくとも１つの動作パラメータを監視する動作と、
（ｉｉｉ）前述の判断基準のうちの１つまたは複数を満足するすべてのメモリ構成要素についてメモリ内容の少なくとも一部をリザーブ・メモリに再配分するか再割振りする動作と、
（ｉｖ）新しいメモリ位置から前記再配分された内容または前記再割振りされた内容にアクセスする動作と
のうちの１つまたは複数を実行するために任意の組合せで働く、少なくとも１つの処理ユニット、オペレーティング・システム、またはメモリ・コントローラを含む１つまたは複数の構成要素を構成することと、
（ｂ）前記監視される動作パラメータのうちの少なくとも１つがすべてのアクティブ・メモリ構成要素にまたがって実質的に均等にバランスがとれるまで、前述のステップを繰り返すことと
を含む方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータ・システム内のメモリ・デバイスと、そのようなデバイスおよびシステムでの電力節約とに関する。
【背景技術】
【０００２】
中央処理装置（ＣＰＵ）は、コンピュータ・ベース・システムの計算および制御ハードウェア要素である。パーソナル・コンピュータ（ＰＣ）では、たとえば、ＣＰＵが、通常、単一の極端に強力なマイクロプロセッサの一体化された部分である。オペレーティング・システム（ＯＳ）は、メモリと、プロセッサ時間と、ディスク・スペースと、プリンタ、モデム、およびモニタなどの周辺デバイスとを含むシステム・リソースを割り振る責任を負うソフトウェアである。すべてのアプリケーション・プログラムが、必要に応じてこれらのリソースへのアクセスを得るためにＯＳおよびＣＰＵを使用する。ＯＳは、コンピュータがブート・アップする時にコンピュータに最初にロードされるプログラムであり、コンピューティング・セッション全体を通じてメモリ内に留まる。
【０００３】
高度なＣＰＵおよび組込みプロセッサが、時がたつにつれてより高い性能を達成しつつある。しかし、メモリ・サブシステムは、性能を維持するために、より短い待ち時間およびより広い帯域幅を必要としている。たとえば、デュアル・インライン・メモリ・モジュール（ＤＩＭＭ）に構成されたものを含むダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）は、クロック速度においてより速く、データ・バス・サイズまたはアドレス・バス・サイズあるいはその両方においてより幅広く、容量においてより大きくなりつつある。その結果、ＤＲＡＭ／ＤＩＭＭメモリは、より多くの電力を消費し、より多くの熱を生成しつつある。より幅広いバスは、効果的に、それが組込み機器用、デスクトップ／ノートブックＰＣ用、または高密度サーバ・アプリケーション用のどれであれ、メモリ・サブシステム電力消費を線形に増やす。単一のＤＲＡＭ構成要素またはＤＩＭＭ構成要素あるいはその両方が、ほぼすべてのバス・アクティビティのターゲットにされる可能性があり、したがって、同一チャネル上の他のメモリ構成要素より多くの電力を消費する可能性がある。
【０００４】
多くのコンピュータ・システムで、ＤＲＡＭ／ＤＩＭＭメモリの電力消費は、ハード・ディスク、高性能マイクロプロセッサ、アクティブ・マトリックス・ディスプレイ、モニタなどの他のシステム構成要素と比較して、多くはない。しかし、たとえば「ハンドヘルド機」または「ＰＤＡ」（「携帯情報端末」）と称するモバイル・デバイスの新たに現れ発展するクラスのシステムなど、他のコンピュータ・システムでは、メモリの電力消費が、そのコンピュータ・システムの他の構成要素と比較して多い。また、サーバは、数百個または数千個のデバイスを有する大量のメモリを利用することができ、ここで、メモリ・サブシステムは、そのシステムでの電力の最も有力な消費者になる。上記および他の要因の結果として、メモリ・サブシステムの電力消費は、より問題になり、したがって、メモリ電力消費を減らす強い必要がある。
【０００５】
パワー・マネジメント機能を有するメモリ・デバイスが、この必要に対処するために入手可能になりつつある。たとえば、さまざまな異なる低電力モードをサポートするＤＲＡＭ／ＤＩＭＭ構成要素が、入手可能である。しかし、電力節約は、性能を犠牲にして得られる。通常、アクセス速度におけるより大きいペナルティが、電力節約の高まる度合のそれぞれで課せられる。したがって、メモリ構成要素で電力節約機能を呼び出すかどうかに関する判断は、知的に行われなければならない。通常、特定のメモリ・デバイスが現在は使用中でなく、近い将来に使用中になると予想されない時に限って、そのメモリ・デバイスで低電力モードを開始することが望まれる。
【０００６】
しかし、メモリの特定の領域へのアクセスに関する将来の必要を予想することは、むずかしい。さらに、現代のオペレーティング・システムは、通常、メモリ・デバイス境界にかかわりなくメモリを割り振り、総合的なシステム性能に大きく影響せずに低電力モードに適当にセットできる単一のメモリ・デバイスを見つけることがむずかしくなる。より具体的には、通常のメモリ割振り方式は、しばしば、非常に断片化されたメモリ空間をもたらし、メモリの割り振られたページは、物理メモリの使用可能範囲にまたがって多少なりともランダムに広がる。割り振られたメモリが、通常は、使用可能なデバイスのすべてにまたがって広がるので、どのデバイスも、メモリ性能に深刻に影響せずに低電力モードにすることはできない。
【０００７】
従来技術のある教示が、ＤＲＡＭ構成要素またはＤＩＭＭ構成要素あるいはその両方を用いるメモリ・サブシステムと共にＣＰＵを使用するシステムで適応メモリ・パワー・マネジメントを実行する手段を提供する。具体的には、ある実施形態が、あるタイム・セグメントから別のタイム・セグメントまでＣＰＵおよびメモリ・サブシステムの実際の処理を監視し、ＣＰＵおよび監視されたメモリ処理が次のタイム・セグメント中にアクティブになるかどうかに基づいて、少なくとも次のタイム・セグメントにメモリ・サブシステムのどの部分をパワー・ダウンするかを決定することによって、ＣＰＵまたはメモリあるいはその両方の動作の周期性の制御（すなわち、「スロットリング」）を提供する。これは、メモリ構成要素電力を減らし、システム・レベルで冷却するという利益を有するが、システム性能の許容できない低下を伴って個々の構成要素を保護することしかできない。
【０００８】
従来技術の他の教示に、任意の特定の時にシステム内で使用されている実際のＤＲＡＭ／ＤＩＭＭデバイスの個数を最小にする特定の技法を使用するメモリ電力節約が記載されている。１つのそのような従来技術の実施形態で、メモリ・コントローラは、どのアドレスがメモリ命令で最も頻繁にまたは最も最近にあるいはその両方で指定されたかを記憶するためにメモリ命令を監視することによって、論理メモリ・アドレス空間または仮想メモリ・アドレス空間あるいはその両方の激しく使用されている部分を識別することができる。この形で、論理アドレス空間または仮想アドレス空間あるいはその両方の激しく使用されている部分によってアクセスされる物理メモリ・デバイスの個数を減らすために、そのアドレス空間を物理メモリに周期的に再マッピングするように、メモリ・コントローラが構成される。具体的には、アドレス変換エントリが、周期的に再計算され、その結果、最も頻繁にまたは最も最近にあるいはその両方で使用される論理メモリ・アドレスまたは仮想メモリ・アドレスあるいはその両方が、物理メモリ・デバイスまたはランクの最小の可能な個数に置かれた物理メモリにマッピングされるようになる。メモリ・システムの最大電力消費をセットするシステム制約に応じて、最も頻繁にまたは最も最近にあるいはその両方で使用されたアドレスを、最もアクティブであり、したがってより多くの電力を消費し、最高の性能を有するデバイスにマッピングすることができる。逆に、より低頻度でまたはより以前にあるいはその両方で使用されるアドレスを、よりアクティブでなく、したがってより少ない電力を消費し、より低い性能を有するデバイスにマッピングすることができる。この再マッピング・プロセスと共に、メモリ内容が適当にコピーされまたは移動され、その結果、すべての論理メモリ・アドレスまたは仮想メモリ・アドレスあるいはその両方が、データが異なる物理位置にある可能性がある場合であっても同一のデータを参照し続けるようになる。
【０００９】
しかし、これらのタイプの従来技術システムは、そのような「スロットリング」および低電力モードに固有の不利益をこうむり、このスロットリングおよび低電力モードは、通常、メモリ・デバイス内の個々のセルまたはロウに影響するのではなく、ＤＲＡＭ／ＤＩＭＭメモリ・デバイス全体または１デバイス内の複数のランク（あるいは、いくつかの場合に、複数のデバイス）に影響する。これらの場合に、メモリ・アクセスがＣＰＵによって要求された時にメモリ命令が「スロットリング」または低電力動作に起因して正しく実行されない場合に、システム性能が損なわれる場合がある。
【特許文献１】U.S.Patent Application PublicationNo.2003/0229821
【特許文献２】U.S.Patent Application PublicationNo.2003/0023825
【特許文献３】U.S.Patent Application PublicationNo.2003/0028711
【特許文献４】U.S.Patent Application PublicationNo.2003/0174559
【発明の開示】
【発明が解決しようとする課題】
【００１０】
したがって、本発明の目的は、「スロットリング」または低電力モードの有害な影響を減らす形で電力消費を最小にするためにメモリ使用を識別し、追跡することによって、従来技術の欠点を克服することである。
【００１１】
本発明のもう１つの目的は、アクティブ・デバイスの間でより均等にメモリ使用のバランスをとるために、ＤＲＡＭ／ＤＩＭＭデバイスのうちで十分に利用されていない部分にメモリ割振りを再配分することによって、従来技術の欠点を克服することである。
【００１２】
本発明のもう１つの目的は、個々のメモリ構成要素によって消費される電力および熱負荷の量を制限するために、メモリ・デバイスの間でより均等にメモリ割振りを再配分することによって、従来技術の欠点を克服することである。
【００１３】
本発明のもう１つの目的は、メモリ内容の一部をメモリの予備領域に移動することによって、いずれかのメモリ構成要素が現在使用中の保管されたデータまたは命令の不釣り合いなシェアを保持しないようにするために、アクティブ・メモリ・アドレス空間を動的に再配分することによって、従来技術の欠点を克服することである。
【００１４】
本発明のもう１つの目的は、メモリ・アクティビティがアンバランスである場合、または単一のメモリ構成要素がある時間期間にわたって電力または熱負荷の不釣り合いなシェアを維持する場合、あるいはその両方の場合に、メモリ内容の一部をメモリの空きセクションまたは予約済みセクションに再配分するか再割振りするために、メモリ構成要素ごとにメモリ使用、電力、または熱負荷、あるいはこれらの組合せを追跡するためにＣＰＵ、ＯＳ、またはメモリ・コントローラあるいはこれらの組合せを動作させることによって、従来技術の欠点を克服することである。
【００１５】
本発明のもう１つの目的は、１チャネル内の複数のＤＲＡＭ／ＤＩＭＭ構成要素と共に、また、予備メモリ構成要素を有するシステムと共に使用することのできるメモリ・パワー・マネジメント・システムを提供することによって、従来技術の欠点を克服することである。
【課題を解決するための手段】
【００１６】
上記の問題は、アクティブ・デバイスの間でより均等にメモリ使用のバランスをとるために、ＤＲＡＭ／ＤＩＭＭデバイスのうちで十分に利用されていない部分にメモリ割振りを再配分することによって、「スロットリング」または低電力モードの有害な影響を減らす形で電力消費を最小にするためにメモリ使用を識別し、追跡する、本発明の装置および方法によって解決される。
【００１７】
さらに、従来技術は、電力消費を減らすために、利用されている物理メモリ・デバイスの総数を減らす形でのメモリ・アドレス空間の再マッピングまたはメモリ「スロットリング」あるいはその両方を実施するので、これらの従来技術システムは、電力節約を達成すると同時に「スロットリング」または低電力動作の必要を最小にするためのメモリ割振りの均等な再配分ではなく、メモリ使用の合併を必要とすることによって、本発明と異なって教示する。
【００１８】
ＤＲＡＭ／ＤＩＭＭ構成要素を用いるメモリ・サブシステムと共にＣＰＵを使用するシステムで効率的な適応メモリ・パワー・マネジメントを実行するために、システム性能を損なわずにメモリ・サブシステムの諸部分の電力消費を最も効率的に減らすために、ＣＰＵの動作の状態およびさまざまなメモリ関連機能の動作の状態を知ることが望ましい。たとえば、ＣＰＵの動作をいつパワー・ダウン（またはアイドル）状態から復元できるかがわからない場合には、ＣＰＵがメモリに追加の読取／書込命令をいつ発行できるかがわからない。そうである場合には、メモリがパワー・ダウンされている時にＣＰＵがアクセスを要求した場合にメモリ命令を正しく実行できないことを介して、システム・データ処理性能が危うくなる可能性があるので、「スロットリング」によってまたはメモリの諸部分を低電力で動作させることによって効率的にメモリ電力消費を最小にすることが、不可能である可能性がある。
【００１９】
したがって、本発明は、個々のメモリ構成要素によって消費される電力（したがって熱負荷）の量を制限するために、メモリ・デバイスの間でより均等にメモリ割振りを再配分することによって、そのような問題を解決する。具体的には、本発明は、メモリ内容の一部をメモリの予備領域に移動することによって、すべてのメモリ構成要素が現在使用中の保管されたデータまたは命令の不釣り合いなシェアを保持しないようにするために、アクティブ・メモリ・アドレス空間を動的に再配分する。これは、予備メモリ構成要素を保存することによって、またはアクティブ・メモリ構成要素を十分に利用しないことによってのいずれかで、ＣＰＵ、ＯＳ、またはメモリ・システムあるいはこれらの組合せが、アクティブ・メモリ・ストレージのある領域を予備にとっておくことを要求することによって達成される。ＣＰＵ、ＯＳ、またはメモリ・コントローラあるいはこれらの組合せを、メモリ構成要素ごとにメモリ使用、電力、または熱負荷あるいはこれらの組合せを追跡する形で動作させることによって、メモリ・コントローラは、メモリ内容の１部分をメモリの空きセクションまたは予約済みセクションにコピーする（または「書き込む」）ことによって、メモリ内容のその部分を再配分し、または再割振りすることができる。これらの内容には、その後、メモリ・アクティビティがアンバランスである場合、または単一のメモリ構成要素がある時間期間にわたって電力または熱負荷の不釣り合いなシェアを維持する場合、あるいはその両方の場合に、新しいメモリ位置からアクセスすることができ、したがって、作業負荷のバランスがとれ、ピーク熱プロファイルが下がる。
【００２０】
「スロットリング」または低電力メモリ動作の伝統的な方法を、再配分が行われるまで短く適用することができ、各アクティブＤＲＡＭ／ＤＩＭＭ構成要素は、このために予約されたメモリの領域を有することができる。予備メモリを有するシステムについて、メモリ構成要素のうちの１つまたは複数が故障した場合に、再割振りされたアドレス空間を残りの機能する構成要素に再配分することができ、このシステムは、故障した構成要素が修理されるか交換されるまで、必要な場合に、「スロットリング」または低電力動作に戻ることができる。したがって、本発明は、１チャネル内に複数のＤＲＡＭ／ＤＩＭＭ構成要素を有するメモリ・パワー・マネジメント・システムに、また、予備構成要素または他のタイプのメモリを有するシステムに、適用可能である。
【００２１】
本発明と考えられる主題は、添付の特許請求の範囲で具体的に指摘され、明瞭に請求されている。しかし、本発明は、本発明のさらなる特徴および利益と共に、添付図面と共に解釈される次の説明を参照することによって最もよく理解することができる。
【発明を実施するための最良の形態】
【００２２】
図１のコンピュータ・システム・アーキテクチャは、本発明に適用可能であり、多数のコンピュータおよびコンピュータ用デバイスの典型であり、従来のデスクトップ・システムに限定されず、従来のポータブル・コンピュータ・システムまたはパーソナル・コンピュータ（ＰＣ）システムにさえ限定されない。エンターテイメント・デバイスおよびゲーム・デバイス、産業制御デバイス、ネットワークおよびインターネットのサービスおよびデバイス、ならびに他のデバイスなどの多数タイプのシステムのどれもが、これなどのアーキテクチャを使用し、あるいは、そのようなアーキテクチャを使用するように簡単に適合させることができる。
【００２３】
Ｉ．システム・アーキテクチャ
図１に、コンピュータ・システム１０の関係する部分を示すが、これには、マイクロプロセッサの形で実施できる中央処理装置（ＣＰＵ）１２と、オペレーティング・システム（ＯＳ）１８と、メモリ・コントローラ（ＭＣ）１４およびメモリ・デバイス１６を含むメモリ・システムとが含まれる。メモリ・コントローラおよびメモリ・ストレージ・デバイスは、この図では別々の実体として図示されているが、同一の技法が、ＣＰＵに一体化されたメモリ・コントーラならびにコントーラまたはＣＰＵのいずれかあるいはその両方と一体化されたメモリ・ストレージに適用される。
【００２４】
メモリ・コントローラ１４は、メモリ・デバイス１６とＣＰＵ  １２とＯＳ  １８との間のインターフェースとして働く。メモリ・コントローラ１４は、メモリ・デバイス１６の個々のメモリ・セルの内容を周期的に更新するように構成されたリフレッシュ・ロジック２１と、実行されるプログラミング命令および処理されたデータが物理的にはメモリ・デバイス１６内に常駐するのでこの両方の「仮想」メモリ・アドレスまたは「論理」メモリ・アドレスをこの両方の実際の位置を表す対応する「物理」メモリ・アドレスに相関させるアドレス変換ロジック５０とを有することが好ましい。説明される実施形態では、メモリ・デバイス１６が、動的にリフレッシュ可能なメモリ・セルを有することが好ましい。そのようなデバイスは、通常はＤＲＡＭ（ダイナミック・ランダム・アクセス・メモリ）と称し、デュアル・インライン・メモリ・モジュール（ＤＩＭＭ）など、ＤＲＡＭテクノロジを利用するさまざまなタイプのデバイスを含むことができる。しかし、他のタイプのメモリ・デバイスが、本明細書で説明する技法から利益を得ることもできる。
【００２５】
コンピュータ・システム１０に、ＯＳ  １８と、１つまたは複数のアプリケーションまたはアプリケーション・プログラム２０も含まれることが好ましい。オペレーティング・システムおよびアプリケーションは、しばしば当初にシステム・ハード・ディスク・ドライブまたはコンパクト・ディスク読取専用メモリ（ＣＤ−ＲＯＭ）（図示せず）などのある形の不揮発性メモリに保管されるソフトウェア・プログラムである。これらは、その後、実行可能ランダム・アクセス・メモリ（ＲＡＭ）にロードされ、ＣＰＵ  １２によって実行される。メモリ・デバイス１６は、実行可能メモリの少なくとも一部を形成することが好ましい。オペレーティング・システムは、しばしば、ハードウェア管理機能およびアプリケーション・プログラムのサポートを提供する、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（Ｒ）、ＵＮＩＸ（Ｒ）、またはＬＩＮＵＸ（Ｒ）などの既製の汎用コンピュータ・ソフトウェアである。しかし、オペレーティング・システムを、その代わりに、特定の特殊化された目的用にあるいは特定のタイプのコンピュータ・ハードウェアまたはソフトウェア・アプリケーション用に設計することができ、それ自体が、他の場合に別々のアプリケーション・プログラムによって実行されるはずの特殊化された機能を実行することができる。多くの場合に、コンピュータ・システムは、論理メモリ・システムまたは仮想メモリ・システムを実装し、その結果、オペレーティング・システムおよびアプリケーションのうちの一部だけが、任意の所与の時に物理メモリに実際に存在するようになる。
【００２６】
ＩＩ．メモリ・アーキテクチャ
図３に、メモリ・コントローラ１４および１つのメモリ・デバイス１６からなるメモリ・システムの好ましい実施形態をより詳細に示す。この実施形態では、メモリ・デバイス１６のそれぞれが、ロウ２２に配置された、複数の動的リフレッシュ可能メモリ（ＤＲＡＭ／ＤＩＭＭ）セルを有する。動作時に、メモリ・コントローラ１４は、ＣＰＵ  １２を介してＯＳ  １８から、グラフィックス・アダプタ（図示せず）から、または他のソースから、あるいはこれらの組合せからを含む、さまざまなソースから命令を受け取ることができる。メモリ・コントローラは、たとえば、それぞれ、メモリ位置の現在の内容を確かめる「読取」と、メモリ位置への保管のために新しい情報または更新された情報あるいはその両方を供給する「書込」となど、さまざまなメモリ動作を実行することによって、これらの命令に応答する。
【００２７】
メモリ・セルのそれぞれのバイナリ・データが正確なままであることを保証するために、メモリ・セルの内容が、「リフレッシュ」動作で周期的に更新される。図３を参照して例示するように、リフレッシュ動作に、通常、ロウ２２の内容をリフレッシュ・ロジック２１（好ましくは、メモリ・コントローラ１４内に置かれたセンス・アンプからなる）に読み取り、その後、同一のデータをそのロウ２２に書き戻すことが含まれる。メモリ・コントローラ１４は、しばしば、ＣＰＵ  １２から命令を受け取らずに、それ自体で周期的リフレッシュ・サイクルを実行するように構成される。多数の従来技術のシステムでは、リフレッシュ動作が、メモリ・デバイスの各メモリ・ロウ内のすべてのメモリ・セルで、すべてのリフレッシュ期間中に少なくとも１回実行される。リフレッシュ期間は、しばしば「ＴＲＥＦ」と称するパラメータと等しい持続時間を有し、リフレッシュ期間を、しばしばＴＲＥＦ期間と称する。
【００２８】
メモリ・デバイス１６を、しばしば、集合的に「物理」メモリまたは「１次」メモリと称する。物理メモリは、物理メモリ・アドレス（または位置）の指定を介してランダムにアクセス可能であるという特徴があり、ＣＰＵ  １２は、アプリケーション・プログラム２０からの要求に基づくＯＳ  １８からの命令の使用を介して、メモリ・コントローラ１４に物理メモリ・アドレスを識別することによってメモリ・デバイス１６にアクセスすることが好ましい。使用可能な範囲の物理メモリ・アドレスを、しばしば、「物理アドレス空間」と称する。物理メモリの量は有限なので、物理アドレス空間は、やはり有限であり、いくつかの場合に、オペレーティング・システムおよびアプリケーション・プログラムの必要と比較して比較的小さい。より大きい有効アドレス空間を実現するために、多数のオペレーティング・システムが、アドレス変換ロジック５０による「仮想」メモリを実装する。
【００２９】
仮想メモリ・システムでは、各アプリケーション・プログラムが、しばしば、通常は物理アドレス空間より大きい使用可能なそれ自体の「仮想アドレス空間」を有する。各アプリケーション・プログラムは、通常、それ自体の仮想アドレス空間内で実行する。各仮想アドレス空間が相対的に無制限に見えるようにするために、オペレーティング・システムは、ハード・ディスク・ドライブなどの大容量記憶媒体を利用し、この大容量記憶媒体を、通常、１次メモリまたは物理メモリと区別するために、２次ストレージまたは２次メモリと称する。２次ストレージは、通常、アクセスが比較的低速であるが、通常、１次メモリよりはるかに大きい容量を有する。オペレーティング・システムは、メモリ使用を監視し、仮想メモリの諸部分が使用されていない場合に、物理メモリの対応する部分からのデータが、２次ストレージに移動される。したがって、任意の所与の時に、仮想メモリのいくつかの部分が、１次メモリまたは物理メモリの諸部分に対応し、いくつかの仮想メモリが、２次メモリの諸部分に対応する。
【００３０】
これなどのシステムでは、ＯＳ  １８が、通常、アドレス変換ロジック５０による仮想メモリを要求元のアプリケーション・プログラム２０に割り振る。そのような仮想メモリが割り振られる時に、ＯＳ  １８は、図２に示されているように、仮想メモリ・アドレスの割り振られた範囲と物理メモリ・アドレスのそれに対応する範囲との間の変換または「マッピング」を作成することが好ましい。各変換エントリまたは「マッピング」エントリ６１は、仮想アドレスまたはソース・アドレス６２を物理アドレスまたはターゲット・アドレス６３に相関させる。ＯＳ  １８は、すべての現在の変換またはマッピングを含む更新された変換テーブルまたは「マッピング・テーブル」６０を維持することが好ましい。
【００３１】
「仮想メモリ」の実装の代わりにまたはそれに加えて、メモリ・コントローラ１４がＣＰＵ  １２から受け取る命令が、しばしば、「論理アドレス空間」に関してアドレスを指定する。「論理アドレス空間」は、メモリ内のある論理編成（個々のユーザ・ファイルなど）を表す「論理アドレス」を、そのデータがメモリ・デバイス１６内に実際に常駐する対応する「物理アドレス」に相関させるために、アドレス変換ロジック５０を使用してＣＰＵ  １２を介してＯＳ  １８とメモリ・コントローラ１４との間で行われる可変変換（または「マッピング」）を表す。多くのシステムで、「仮想」アドレス空間および「論理」アドレス空間は、同等である。
【００３２】
ＩＩＩ．メモリ動作
上で説明したように、通常はダイナミック・ランダム・アクセス・メモリまたはＤＲＡＭ（デュアル・インライン・メモリ・モジュール（ＤＩＭＭ）を含む）と称する動的にリフレッシュされるメモリは、多くの異なるコンピューティング・デバイスで見られるタイプのメモリ構成要素である。通常のＤＲＡＭ／ＤＩＭＭデバイスは、数百万個、数億個、またはさらに多数のメモリ・セルを有する場合がある。ＤＲＡＭ／ＤＩＭＭメモリ・セルは、一般に、単一のトランジスタおよび関連するキャパシタンスによって形成される。キャパシタンスは、ディジタル論理ロウ「０」またはディジタル論理ハイ「１」のいずれかの２進ビット値を示す電圧まで充電される。キャパシタンスは、どちらかといえばすばやくその電荷を失い、周期的なリフレッシュの必要を引き起こし、これがメモリ電力消費を引き起こす。
【００３３】
通常のＰＣシステムは、６４ビットまたは１２８ビットのＤＲＡＭ／ＤＩＭＭサブシステムを使用する。後者の場合に、メモリ・サブシステムは、通常、２つの独立の６４ビット・メモリ・コントローラ（ＭＣ）を用いて操作される。さまざまなタイプのＤＲＡＭ／ＤＩＭＭを、クロック・イネーブル（ＣＫＥ）信号などの物理的パワー・ダウン信号を介して、または高速シリアル・バスを介して送られるパケット化されたパワー・ダウン・コマンドを介してのいずれかで非アクティブ化する（または「パワー・ダウンする」）ことができる。ダブル・データ・レート（ＤＤＲ）シンクロナスＤＲＡＭ（ＳＤＲＡＭ）の場合に、たとえば、ＣＫＥ信号をデアサートする（ロウ）ことによって、ＤＲＡＭの対応するメモリ・ロウがパワー・ダウン状態になる。ＣＫＥ信号をアサートする（ハイ）ことによって、そのメモリ・ロウが完全な動作状態に戻される。ＣＫＥ信号は、ＳＤＲＡＭクロックのすべての立ち上がりエッジまたは立ち下がりエッジあるいはその両方で動的にトグルすることができる。
【００３４】
通常の６４ビット・メモリ・コントローラ（ＭＣ）は、２個と４個の間のＳＤＲＡＭデュアル・インライン・メモリ・モジュール（ＤＩＭＭ）をサポートすることができる。各ＤＩＭＭは、２つまでのメモリ・ロウを有し（両面ＤＩＭＭの各側面を、メモリ・ロウと呼ぶ）、各メモリ・ロウが、複数の内部メモリ・バンクまたはランクを有することができる。各バンクに、メモリ・ロウの各ＤＲＡＭチップから１ページずつの、複数のメモリ・ページを含めることができる。通常、ＭＣが、ＣＫＥ信号を使用して、複数のＤＩＭＭモジュールの各メモリ・ロウを独立に動的にパワー・ダウン状態にし、元に戻すことができる場合に、そのＭＣを、動的ＤＲＡＭパワー・マネジメントをサポートすると言う。しかし、動的メモリ管理は、通常、ノートブックＰＣまたはＰＤＡなどの電力に敏感な機器でのみサポートされ、さまざまな理由からデスクトップＰＣでは使用可能でない。
【００３５】
多くのシステムで、U.S.Patent Application Publication No.2003/0229821に記載されているように、プロセッサおよびメモリの性能を変更して、複数のＣＰＵ性能状態またはメモリ性能状態あるいはその両方への遷移を制御する、定義された「スロットリング」プロセスを介して電力を節約することができる。これを達成するために、ＯＳは、動作中に対するＣＰＵがアイドルである時間のパーセンテージ（すなわち、その「デューティ・サイクル」）を記憶し、そのパーセンテージ値をレジスタに書き込むことができる。たとえば、ＣＰＵは、最後の事前定義の時間期間の約４０％の間にアイドルであった場合がある。異なるオペレーティング・システムは、時間の異なるウィンドウ（または「ループ」）を使用して、デューティ・サイクルを計算することができる。より古いオペレーティング・システムは、より長いアイドル・ループを有する。より新しいオペレーティング・システムは、できる限り多くの同時に動作するタスクに対処するために、より短いアイドル・ループを有する。
【００３６】
「スロットリング」を達成するために、ＣＰＵスロットル制御信号（ＴＨＲ）に、ＣＰＵの信号入力にフィード・バックされるクロック停止信号（ＳＴＰＣＬＫ）を含めることができる。たとえば、ＳＴＰＣＬＫは、そのＣＰＵについて計算された最も最近のデューティ・サイクルによる定義に従って、ランタイム・セグメントのある部分の間にディジタル論理ハイ「１」とし、ランタイム・セグメントの別の部分の間にディジタル論理ロウ「０」とすることができる。ＳＴＰＣＬＫが論理ハイ「１」値である時に、ＣＰＵが処理を開始し、ＳＴＰＣＬＫが論理ロウ「０」値である時に、ＣＰＵが処理を停止する。この形で、ＣＰＵクロック停止信号のデューティ・サイクルが、タイム・セグメントごとの基礎でＣＰＵの動作の周期性を制御する（または「スロットリング」）。というのは、このデューティ・サイクルが、最後のランタイム・セグメントの最も最近に計算されたＣＰＵパーセンテージ・アイドル値に基づいて、ランタイム・セグメントごとに調整されるからである。デューティ・サイクルに基づいて、ＣＰＵがアイドルである時がわかるならば、あるメモリ・サブシステムに関する保留中のメモリ・アクセス要求がない限り、そのサブシステムを非アクティブ化して、これらの時間中（すなわち、ＣＰＵ使用が「スロットリング」されている時）に電力を節約することができる。この形で、通常の短待ち時間モードより少ない電力を消費する長待ち時間モードでメモリ・セルを動作させるのに「スロットリング」を利用することが可能である。
【００３７】
メモリ電力消費を減らすために、U.S.Patent Application Publication No.2003/0023825およびU.S.PatentApplication Publication No.2003/0028711に記載されているように、オペレーティング・システムを、使用されているメモリおよび使用されていないメモリに関してメモリ・コントローラに通知するように構成することもできる。上で示したように、オペレーティング・システムに、通常、メモリを動的に割り振り、割振り解除する機能が含まれる。たとえば、アプリケーション・プログラムをロードする時に、オペレーティング・システムは、通常、アプリケーションの命令コード用の仮想メモリまたは論理メモリの特定の区域あるいは領域と、データを保管するのにそのプログラムによって使用されるメモリの特定の区域とを指定する。割振りおよび割振り解除は、通常、上で説明したように物理メモリ・アドレスに「マッピング」することによって、この形で使用に関して指定されたメモリのこれらの区域を示す１つまたは複数のテーブルまたは他のデータ構造を維持することを伴う。メモリ割振りは、アプリケーション・プログラムが、そのプログラムの実際の実行中に追加メモリの使用を要求した結果として行われる可能性もある。このような要求に応答して、オペレーティング・システムは、要求元アプリケーション・プログラムによる排他的使用のためにメモリの追加区域を指定する。
【００３８】
メモリ割振りの方法にかかわりなく、ＯＳ  １８は、物理メモリが使用中である時に、割り振られたメモリをＣＰＵ  １２を介してメモリ・コントローラ１４に識別するように構成されることが好ましい。同様に、オペレーティング・システムは、物理メモリがもはや使用中でなくなった時に、物理メモリが割振り解除されることをメモリ・コントローラに指示するか通知するように構成される。電力を節約するために、メモリ・コントローラ１４は、好ましくは現在割り振られているメモリをリフレッシュし、現在割り振られていないメモリのリフレッシュを省略することによって応答する。図３に示された１つの好ましい実施形態では、メモリ・コントローラ１４または影響を受けるメモリ・デバイス１６のいずれかが、使用レジスタ２４および最近アクセス・レジスタ３６をセットするかプログラムして、それぞれ関連するロウ２２が現在使用されているかどうかまたは最近アクセスされたかどうかを示すことによって応答する。使用レジスタ２４または最近アクセス・レジスタ３６には、それぞれ、対応するロウ２２が割り振られ、現在使用中である場合、または最近にアクセスされた場合に、ディジタル論理ハイ「１」（または「真」）値をセットすることができる。逆に、これらのレジスタに、それぞれ、対応するロウ２２が割り振られておらず、現在使用中でない場合、または最近にアクセスされていない場合に、ディジタル論理ロウ「０」（または「偽」）値をセットすることができる。その後、メモリ・サブシステムは、電力消費を最小にするために、現在使用されているが最近にアクセスされていないロウ２２だけの内容をリフレッシュするために、使用レジスタ２４および最近アクセス・レジスタ３６に応答する。
【００３９】
図４に、図３の実施態様に従ってメモリ・デバイス１６の各ロウ２２に関してメモリ・コントローラ１４によって実行されるリフレッシュするアクションを示す。これらのアクションは、すべてのリフレッシュ期間（ＴＲＥＦ）中にすべてのロウ２２について少なくとも１回開始することができる。ロウ２２をリフレッシュする前に、ブロック４０によって示されるように、メモリ・コントローラ１４が、適当な使用レジスタ２４にアクセスして、そのロウ２２が現在使用中であるかどうかを判定する。ロウ２２が使用中でない場合には、後続のリフレッシュ動作４２をスキップする。ロウ２２が使用中である場合には、動作４４で、適当な最近アクセス・レジスタ３６にアクセスして、現在のロウが前のリフレッシュ・サイクル・インターバル中に既にリフレッシュされているかどうかを判定する。そのロウ２２が、前のサイクル中に既にリフレッシュされている場合には、リフレッシュ動作４２をスキップする。したがって、リフレッシュ４２は、使用レジスタ２４がディジタル論理ハイ「１」（または「真」）値であり、最近アクセス・レジスタ３６がディジタル論理ロウ「０」（または「偽」）値であり、すなわちロウ２２が現在使用中であるが最近にリフレッシュされていないことが示される場合に限って実行される。最後の動作４６として、最近アクセス・レジスタ３６を、次のリフレッシュ期間に関してディジタル論理ハイ「１」（または「真」）にリセットして、それに対応するロウ２２の最近のリフレッシュを示す。
【００４０】
この形で、使用レジスタ２４および最近アクセス・レジスタ３６は、現在使用されていないメモリの区域に関する電力節約手段を講じることを可能にする。ＤＲＡＭ／ＤＩＭＭメモリの図示の例では、これらのレジスタが、使用されていないメモリ・ロウのリフレッシュを省略することを可能にする。利用されるメモリ・デバイスの特定のタイプに応じて、代替タイプの電力削減手段を使用可能にすることができる。
【００４１】
ＩＶ．メモリ電力消費の削減
メモリ電力節約を容易にするために、上で説明した実施形態に、どのメモリ・セルまたはメモリ区域あるいはメモリ領域が現在使用中であり、どのメモリ・セルまたはメモリ区域が現在使用されていないかを記憶する回路およびロジックが含まれる。メモリが、ＤＲＡＭまたはＤＩＭＭあるいはその両方などの動的にリフレッシュ可能なメモリである時に、電力消費の削減を、上で説明した「スロットリング」の使用を介して実施することができる。その代わりにまたはそれと共に、電力消費の削減を、やはり上で説明したようにメモリ・セルまたは区域のリフレッシュを省略するかスキップすることによって実施することができる。後者の技法の追加の利益は、リフレッシュ動作を、有用なデータを保管しているメモリ・セルだけに制限できることである。実行される有用でないリフレッシュ動作（ＣＰＵなどの構成要素からの後続メモリ・アクセス要求を遅延させる可能性がある）の個数を減らすことによって、メモリ・システムが、そのような要求についてより頻繁に使用可能になり、待ち時間を減らすことによって、したがって帯域幅を増やすことによって性能が高まる。したがって、メモリの識別された使用されていない区域のリフレッシュの省略は、大きい電力節約ならびにデータ処理性能の向上をもたらすことができる。
【００４２】
メモリ命令で指定された論理アドレスまたは仮想アドレスからメモリ・デバイスにアクセスするのに使用される物理アドレスに変換する、上で説明したマッピング・ロジックを利用することによって、メモリ割振りが、任意の所与の時に使用中である物理メモリ・デバイスまたはメモリ・デバイスのランクの個数を減らすか最小にする形で実行される。使用中の物理メモリ・デバイスの個数を最小にした後に、メモリ・コントローラは、他のメモリ・デバイス（すなわち、使用されていないか、比較的少ない使用の対象であるのいずれか）を低電力モードにセットする。メモリ使用の「スロットリング」または使用されていないメモリ・デバイスを低電力モードにセットするために利用されている物理メモリ・デバイスの個数を減らす形での使用に基づくメモリ・アドレス空間の諸部分の識別および編成あるいはその両方のアクションは、電力消費を減らすという利益を有する。
【００４３】
しかし、「スロットリング」またはできる限り少数のメモリ・デバイスまたはメモリ・ランク上の使用中のメモリ・ロウを合併するためのメモリ使用の監視の上で説明した方法には、短所がある。どちらの技法を介しても、メモリ・デバイスは、スタンバイ・モード、ナップ・モード、またはパワー・ダウン・モードなどの低電力消費モードにセットされる。しかし、そのような「スロットリング」および低電力モードは、通常、メモリ・デバイス内の個々のセルまたはロウではなく、そのようなメモリ・デバイス全体または１メモリ・デバイス内の複数のランクに影響し、いくつかの設計に関して、これらのモードが、ＤＲＡＭ／ＤＩＭＭ内のバンクなど、複数のデバイス内のメモリ・ストレージの部分に影響する場合がある。どちらの場合でも、ＣＰＵによってアクセスが要求された時に、「スロットリングされた」メモリ動作または低電力メモリ動作の結果として、メモリ命令が最適のタイミングまたは精度で正しく実行されない場合に、システム・データ処理性能が損なわれる可能性がある。
【００４４】
上で説明した技法は、メモリ動作の「スロットリング」または使用されていないメモリ区域のロウのリフレッシュの省略によって電力節約が達成されるＤＲＡＭ／ＤＩＭＭメモリに関して利用されてきたが、メモリ区域の使用を追跡するという概念は、潜在的に、本発明に従って電力消費を節約するために他の形で適用することができる。たとえば、上で説明したように、あるタイプのメモリ・デバイスが、より長いアクセス待ち時間を犠牲にしてより少ない電力を消費する「スロットリング」機能または組込み低電力モードを有する場合がある。メモリの十分に利用されていない部分を識別し、アクセスすることによって、そのような「スロットリング」または低電力モードの有害な影響を減らす新規の形で電力消費の削減を達成することが可能である。具体的には、「スロットリング」または低電力での動作を最小にしながら電力消費を減らし、これによってメモリ・パワー・マネジメントを達成する従来技術の教示のこれらの欠点を克服する形で、より均等にメモリ使用のバランスをとるために、ＤＲＡＭ／ＤＩＭＭデバイスのうちでメモリが現在使用中でない（または比較的少ないメモリが現在使用中である）部分にメモリ割振りを再配分するために、メモリ区域使用を追跡するという上で説明した概念を利用することが可能である。
【００４５】
具体的には、図３および４を参照して導入した概念を、電力消費の削減を達成するためにメモリ割振りをより均等に再分配するために、ＤＲＡＭ／ＤＩＭＭメモリ・デバイスと共に有利に使用することができる。これらの技法を利用することによって、ＯＳ  １８が、使用レジスタ２４のフラグがセットされているかどうかに基づいてメモリの現在使用されている区域と使用されていない区域を識別するのにメモリ・コントローラ１４を使用するようにＣＰＵ  １２に指示することができる。同様に、ＯＳ  １８は、最近アクセス・レジスタ３６のフラグがセットされているかどうかに基づいてメモリの最も頻繁に（または最も最近に）アクセスされた区域を識別するためにメモリ使用を監視するのにメモリ・コントローラ１４を使用するようにＣＰＵ  １２に指示することができる。この形で、メモリ・コントローラは、まず、使用に基づいて再配分に関するメモリの区域を識別し、ターゲットにする。
【００４６】
代替案では、U.S.PatentApplication Publication No.2003/0174559に記載されているように、本発明に、温度に対するＤＲＡＭ／ＤＩＭＭ構成要素の動作パラメータを測定することを含む、温度閾値をメモリに保管することと、ＤＲＡＭ／ＤＩＭＭ性能が所定の仕様を超える最大許容可能動作温度を計算することと、好ましくは比較回路内のヒューズ可能デバイス(fusabledevice)から形成される不揮発性メモリにこの温度閾値に対応するパラメータを保管することとによって、ＤＲＡＭ／ＤＩＭＭ電力消費を監視する手段を含めることができる。その後、これらの保管されたパラメータを使用して、メモリ位置の実際の動作温度を周期的に測定し、測定された動作温度を保管された温度閾値と比較することによって、温度に応答してＤＲＡＭ／ＤＩＭＭ動作を変更することができる。この測定技法は、測定された動作温度が、影響を受けるＤＲＡＭ／ＤＩＭＭ構成要素の温度閾値を超える時にメモリ電力消費を減らすために、上で説明した方法のいずれかと共に使用することができる。
【００４７】
メモリ使用または電力消費あるいはその両方を識別する上で説明した技法のいずれかの結果を、その後、個々のＤＲＡＭ／ＤＩＭＭ構成要素によって消費される電力（したがって熱負荷）の量を制限するために、メモリ・デバイスの間でより均等にメモリ割振りを再配分することによって、本発明で利用することができる。具体的には、本発明は、メモリ内容の一部をメモリの予備領域あるいはリザーブ・メモリに移動することによって、ＤＲＡＭ／ＤＩＭＭメモリ構成要素のいずれかが現在使用中の保管されたデータまたは命令の不釣り合いなシェアを保持しないようにするために、アクティブ・メモリ・アドレス空間あるいはアクティブ・メモリ・ストレージ領域を動的に再配分する。これは、予備のメモリ・デバイス１６を保存することによって、またはアクティブ・メモリ構成要素を十分に利用しないことによってのいずれかで、ＣＰＵ  １２、ＯＳ  １８、コンピュータ基本入出力システム（ＢＩＯＳ）、またはメモリ・コントローラ１４およびメモリ・デバイス１６あるいはこれらの組合せが、アクティブ・メモリ・ストレージのある領域を、ＯＳに割り振られない予備にとっておくことを要求することによって達成される。ＣＰＵ  １２、ＯＳ  １８、またはメモリ・コントローラ１４あるいはこれらの組合せを、各メモリ・デバイス１６のメモリ使用、電力、または熱負荷あるいはこれらの組合せを追跡する形で動作させることによって、メモリ・コントローラは、一般に知られているプログラミング技法を使用して、メモリ内容の１部分をメモリの空きセクションまたは予約済みセクションにコピーする（または「書き込む」）ことによって、メモリ内容のその部分を再配分し、または再割振りすることができる。これらの内容には、その後、メモリ・アクティビティがアンバランスである場合、または単一のメモリ構成要素がある時間期間にわたって電力または熱負荷の不釣り合いなシェアを維持する場合、あるいはこの両方の場合に、新しいメモリ位置からアクセスすることができ、したがって、作業負荷のバランスがとれ、ピーク熱プロファイルが下がる。予備メモリは、予備メモリの管理および「再マッピング」の実質的にすべてがメモリ・コントローラ１４によって処理されるように、ＯＳ  １８またはＣＰＵ  １２あるいはその両方から「隠す」（またはその動作において透過的にする）ことができる。
【００４８】
「スロットリング」または低電力メモリ動作の伝統的な方法を、再配分が行われるまで短く適用することができ、各アクティブＤＲＡＭ／ＤＩＭＭ構成要素は、このために予約されたメモリの領域を有することができる。予備メモリを有するシステムについて、メモリ構成要素のうちの１つまたは複数が故障した場合に、再割振りされたアドレス空間を残りの機能する構成要素に再配分することができ、このシステムは、故障した構成要素が修理されるか交換されるまで、必要な場合に、「スロットリング」または低電力動作に戻ることができる。したがって、本発明は、１チャネル内に複数のＤＲＡＭ／ＤＩＭＭ構成要素を有するメモリ・パワー・マネジメント・システムに、また、予備構成要素を有するシステムに、適用可能である。
【００４９】
上で説明した技法を、多くの例で、代替的にソフトウェアで、ハードウェアで、またはその両方の組合せで実施できることを認められたい。ソフトウェアの場合に、実施態様に、上で説明したアクションおよび技法を実行するためにコンピュータ・プロセッサによって実行可能な命令および命令シーケンスを含む１つまたは複数のコンピュータ可読記憶媒体を含めることができる。ハードウェアの場合に、同一のまたは類似するアクションを、回路基板またはシリコン・チップなどのハードウェア基板上で実施される非命令ベースのロジック構成要素として実施することができる。
【００５０】
上で説明した技法を、多くのシステムで、大きい電力節約を作るのに使用することができる。さらに、そのような電力節約は、しばしば、ほとんどまたは全く有害な副作用を有しない。というのは、この電力節約手段が、実際に使用されていないか比較的軽く使用されているメモリ区域に関して行われるからである。したがって、本明細書で説明した技法は、アクセス速度と電力節約の間の従来技術のトレードオフを回避するか、大きく減らすことができる。
【００５１】
本発明のある好ましい特徴を、例によって示したが、添付の特許請求の範囲で実施される本発明の真の趣旨に含まれる多数の修正および変更を行うことができ、添付の特許請求の範囲は、すべての同等物を含めて、本発明の十分な範囲を含めるために法が許す限り広義に解釈されなければならない。
【図面の簡単な説明】
【００５２】
【図１】本発明の諸態様を組み込まれたコンピュータ・システムを示すブロック図である。
【図２】本発明のメモリ・システムと共に使用される仮想−物理マッピング・テーブルを示す図である。
【図３】本発明のメモリ・コントローラおよびメモリ・デバイスの関連する部分を示すブロック図である。
【図４】本発明に従ってメモリ・ロウをリフレッシュするために図３の実施形態で実行されるアクションを示す流れ図である。
【符号の説明】
【００５３】
１０  コンピュータ・システム
１２  中央処理装置（ＣＰＵ）
１４  メモリ・コントローラ（ＭＣ）
１６  メモリ・デバイス
１８  オペレーティング・システム（ＯＳ）
２０  アプリケーション・プログラム
２１  リフレッシュ・ロジック
２２  ロウ
２４  使用レジスタ
３６  最近アクセス・レジスタ
４０  ロウが使用中かどうかを判定するステップ
４２  ロウをリフレッシュするステップ
４４  最近使用されたかどうかを判定するステップ
４６  最近使用＝ＹＥＳをセットするステップ
５０  アドレス変換ロジック
６０  変換テーブルまたは「マッピング・テーブル」
６１  マッピング・エントリ
６２  仮想アドレスまたはソース・アドレス
６３  物理アドレスまたはターゲット・アドレス
【図１】
2007133879.tif 000003
【図２】
2007133879.tif 000004
【図３】
2007133879.tif 000005
【図４】
2007133879.tif 000006
【外国語明細書】
2007133879000001.pdf
2007133879000002.pdf
2007133879000003.pdf
2007133879000004.pdf