(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-22
(45)【発行日】2024-01-05
(54)【発明の名称】ダイナミックランダムアクセスメモリランクのパワーダウンモードの投機的な終了
(51)【国際特許分類】
G06F 12/00 20060101AFI20231225BHJP
【FI】
G06F12/00 550E
(21)【出願番号】P 2021521135
(86)(22)【出願日】2019-06-25
(86)【国際出願番号】 US2019038952
(87)【国際公開番号】W WO2020081131
(87)【国際公開日】2020-04-23
【審査請求日】2022-06-08
(32)【優先日】2018-10-16
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】591016172
【氏名又は名称】アドバンスト・マイクロ・ディバイシズ・インコーポレイテッド
【氏名又は名称原語表記】ADVANCED MICRO DEVICES INCORPORATED
(74)【代理人】
【識別番号】100108833
【氏名又は名称】早川 裕司
(74)【代理人】
【識別番号】100111615
【氏名又は名称】佐野 良太
(74)【代理人】
【識別番号】100162156
【氏名又は名称】村雨 圭介
(72)【発明者】
【氏名】ケダーナス バラクリシュナン
【審査官】田中 啓介
(56)【参考文献】
【文献】米国特許出願公開第2016/0154452(US,A1)
【文献】特開2008-040606(JP,A)
【文献】特開2008-225624(JP,A)
【文献】特表2016-506576(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F12/00-12/06
G06F13/16-13/18
G06F1/26-1/32
(57)【特許請求の範囲】
【請求項1】
メモリコントローラ(110)
が、低電力モードにあるダイナミックランダムアクセスメモリ(DRAM)集積回路(121~128)の第1のランク(115)にアクセスするためのアクセス要求(102)が前記メモリコントローラにおいて受信されると予想される時間を予測する(406)ことと、
前記メモリコントローラが、予測された時間の前に、前記第1のランクの前記低電力モードを終了する(410)ことと、を含む、
方法。
【請求項2】
前記予測することは、前記メモリコントローラの前記第1のランクにアクセスするためのアクセス要求のタイミングの履歴に基づいている、
請求項1の方法。
【請求項3】
前記予測することは、前記第1のランクが前記低電力モードに移行する第1の時間と、前記第1のランクにアクセスするためのアクセス要求を前記メモリコントローラが受信する第2の時間と、の間の平均クロックサイクル数に基づいている、
請求項2の方法。
【請求項4】
前記低電力モードを終了することは、前記アクセス要求が前記メモリコントローラにおいて受信されると予測された時間よりも所定のクロックサイクル数だけ前に前記低電力モードを終了することを含む、
請求項1の方法。
【請求項5】
前記所定のクロックサイクル数は、前記第1のランクの低電力モード終了レイテンシに基づいている、
請求項4の方法。
【請求項6】
前記DRAM集積回路は複数のランク(115,120)を含み、
前記メモリコントローラ
が、前記低電力モードにある前記DRAM
集積回路の各ランクにアクセスするためのアクセス要求が前記メモリコントローラにおいて受信される時間を予測することと、
各ランクの前記低電力モードを、各ランクに対応する予測された時間の前に終了することと、をさらに含む、
請求項1~5の何れかの方法。
【請求項7】
前記メモリコントローラ
が、前記第1のランクの低電力モードの前回の終了に関連するレイテンシペナルティに基づいて、前記予測された時間を調整することをさらに含む、
請求項1の方法。
【請求項8】
デバイス(100)であって、
複数のランク(115,120)を含むダイナミックランダムアクセスメモリ(DRAM)集積回路(121~126)に結合するように構成されたメモリコントローラ(110)を備え、
前記メモリコントローラは、
低電力モードにある前記DRAM集積回路の第1のランクにアクセスするためのアクセス要求が前記メモリコントローラにおいて受信される時間を予測し(406)、
予測された時間の前に前記第1のランクの前記低電力モードを終了する(410)、
デバイス。
【請求項9】
前記メモリコントローラは、前記第1のランクが前記低電力モードに移行してから、前記第1のランクにアクセスするためのアクセス要求が前記メモリコントローラにおいて受信されるまでにどれだけの時間が経過したかという履歴に基づいて、前記時間を予測する、
請求項8のデバイス。
【請求項10】
前記メモリコントローラは、前記第1のランクが前記低電力モードに移行する第1の時間と、前記第1のランクにアクセスするためのアクセス要求を前記メモリコントローラが受信する第2の時間と、の間の平均クロックサイクル数に基づいて、前記時間を予測する、
請求項9の
デバイス。
【請求項11】
前記メモリコントローラは、前記アクセス要求が前記メモリコントローラにおいて受信されると予測された時間よりも所定のクロックサイクル数だけ前に前記第1のランクの前記低電力モードを終了する、
請求項10のデバイス。
【請求項12】
前記所定のクロックサイクル数は、前記第1のランクの低電力モード終了レイテンシに基づいている、
請求項11のデバイス。
【請求項13】
前記メモリコントローラは、
前記低電力モードにある前記DRAM集積回路の各ランクにアクセスするためのアクセス要求が前記メモリコントローラにおいて受信される時間を予測し、
各ランクの前記低電力モードを、各ランクに対応する予測された時間の前に終了する、
請求項11のデバイス。
【請求項14】
前記メモリコントローラは、前記第1のランクの低電力モードの前回の終了に関連するレイテンシペナルティに基づいて、前記予測された時間を調整する、
請求項8~13の何れかのデバイス。
【発明の詳細な説明】
【背景技術】
【0001】
コンピュータシステムは、メインメモリ用にダイナミックランダムアクセスメモリ(DRAM)集積回路(IC)のアレイを頻繁に使用する。例えば、従来のデュアルインラインメモリモジュール(DIMM)は、プリント回路基板に取り付けられたDRAM ICのセットとして実装される。DIMMは1つ以上のランクで構成されており、各ランクは、同じ制御ライン、すなわちチップセレクトに接続されたDRAM ICのセットであり、したがって、メモリコントローラから同時にアクセスされる。エネルギー効率を高めるために、DRAM ICを、アクティブ、スタンバイ、ナップ(nap)、パワーダウン、セルフリフレッシュ等の様々な電源状態に置くことができる。メモリコントローラは、複数のDRAMランクの電力状態を、チップセレクトを介してランク毎に制御する。例えば、パワーダウンはDRAMの低電力状態であり、消費電力はアクティブ電力状態のほんの少し(例えば、1%)であるが、クロック同期がアクティブ状態に戻るための遅延も必要とする。他の低電力モードでは、開始と終了の遅延が異なる。メモリコントローラがDRAMランクへのアクセス要求におけるギャップに遭遇すると、メモリコントローラは、パワーダウンモードに移行する条件が満たされていることを確認し、次いで、パワーダウン開始コマンドを、チップセレクトを介してDRAMランクに送信する。メモリコントローラがプロセッサコアからDRAMランクにアクセスするための新たな要求を受信すると、メモリコントローラは、パワーダウン終了コマンドをDRAMランクに送信する。但し、メモリコントローラは、DRAMにアクセスする前に、DRAMランクがパワーダウンモードを終了してアクティブモードに遷移するのを待つ必要があるため、パワーダウンモードを使用することに対するレイテンシペナルティが生じる。
【発明の概要】
【課題を解決するための手段】
【0002】
一態様によれば、方法は、メモリコントローラにおいて、低電力モードにあるダイナミックランダムアクセスメモリ(DRAM)集積回路の第1のランクにアクセスするためのアクセス要求が、メモリコントローラにおいて受信されると予想される時間を予測することを含む。また、方法は、予測された時間の前に第1のランクの低電力モードを終了することを含む。一実施形態では、予測は、メモリコントローラにおける第1のランクにアクセスするためのアクセス要求のタイミングの履歴に基づいている。また、予測は、第1のランクが低電力モードに移行する第1の時間と、メモリコントローラが第1のランクにアクセスするためのアクセス要求を受信する第2の時間と、の間の平均クロックサイクル数に基づいてもよい。一実施形態では、低電力モードを終了することは、アクセス要求がメモリコントローラにおいて受信される予測時間よりも所定のクロックサイクル数だけ前に、低電力モードを終了することを含む。この場合、所定のクロックサイクル数は、第1のランクの低電力モード終了レイテンシに基づくことができる。一実施形態では、DRAM集積回路は、複数のランクを含み、方法は、メモリコントローラにおいて、低電力モードにあるDRAMの各ランクにアクセスするためのアクセス要求がメモリコントローラにおいて受信される時間を予測することと、各ランクの低電力モードを、各ランクに対応する予測時間の前に終了することと、をさらに含む。一実施形態では、この方法は、メモリコントローラにおいて、第1のランクの低電力モードの前回の終了に関連するレイテンシペナルティに基づいて、予測時間を調整することをさらに含む。
【0003】
別の態様によれば、方法は、第1のランクにアクセスするためのアクセス要求を受信する前に、メモリコントローラが第1のランクにアクセスするためのアクセス要求を受信すると予測される時間に応じて、メモリコントローラにおいて、DRAM集積回路の第1のランクの低電力モードを終了することを含む。また、方法は、メモリコントローラが第1のランクにアクセスするためのアクセス要求を受信する時間を予測することを含んでもよく、予測することは、メモリコントローラにおいて、第1のランクが低電力モードに移行してから、第1のランクにアクセスするためのアクセス要求がメモリコントローラにおいて受信されるまでにどれだけの時間が経過したかという履歴に基づいている。一実施形態では、予測することは、第1のランクが低電力モードに移行する第1の時間と、メモリコントローラが第1のランクにアクセスするためのアクセス要求を受信する第2の時間と、の間の平均クロックサイクル数に基づいている。一実施形態では、低電力モードを終了することは、アクセス要求がメモリコントローラにおいて受信される予測時間よりも所定のクロックサイクル数だけ前に、低電力モードを終了することを含む。この場合、所定のクロックサイクル数は、第1のランクの低電力モード終了レイテンシに基づいている。一実施形態では、DRAM集積回路は、複数のランクを含み、方法は、メモリコントローラにおいて、低電力モードにあるDRAM集積回路の各ランクにアクセスするためのアクセス要求がメモリコントローラにおいて受信される時間を予測することと、各ランクの低電力モードを、各ランクに対応する予測時間の前に終了することと、をさらに含む。一実施形態では、この方法は、メモリコントローラにおいて、第1のランクの低電力モードの前回の終了に関連するレイテンシペナルティに基づいて、予測時間を調整することをさらに含む。
【0004】
さらに別の態様によれば、システムは、複数のランクを含むDRAM集積回路に結合するように構成されたメモリコントローラを含む。メモリコントローラは、低電力モードにあるDRAM集積回路の第1のランクにアクセスするためのアクセス要求がメモリコントローラにおいて受信される時間を予測し、予測時間の前に第1のランクの低電力モードを終了する。一実施形態では、メモリコントローラは、第1のランクが低電力モードに移行してから、第1のランクにアクセスするためのアクセス要求がメモリコントローラにおいて受信されるまでにどれだけの時間が経過したかという履歴に基づいて、時間を予測する。この場合、メモリコントローラは、アクセス要求がメモリコントローラにおいて受信される予測時間よりも所定のクロックサイクル数だけ前に、第1のランクの低電力モードを終了することができる。所定のクロックサイクル数は、第1のランクの低電力モード終了レイテンシに基づいてもよい。一実施形態では、メモリコントローラは、低電力モードにあるDRAM集積回路の各ランクにアクセスするためのアクセス要求がメモリコントローラにおいて受信される時間を予測し、各ランクの低電力モードを、各ランクに対応する予測時間の前に終了する。一実施形態では、メモリコントローラは、第1のランクの低電力モードの前回の終了に関連するレイテンシペナルティに基づいて、予測時間を調整する。
【0005】
本開示は、添付の図面を参照することによって、より良く理解することができ、その多くの特徴及び利点が当業者に明らかになる。異なる図面で同じ符号を使用している場合、類似又は同一の要素を示す。
【図面の簡単な説明】
【0006】
【
図1】いくつかの実施形態による、DRAMのランクのパワーダウンからの投機的な終了を採用するメモリコントローラを含む処理システムのブロック図である。
【
図2】いくつかの実施形態による、
図1のメモリコントローラの電力管理ユニット及び予測ユニットを示すブロック図である。
【
図3】いくつかの実施形態による、パワーダウンモードから投機的に終了するDRAMのランクのパワーダウンモード/アクティブモード遷移を示す図である。
【
図4】いくつかの実施形態による、DRAMのランクのパワーダウンモードを投機的に終了する方法を示すフロー図である。
【発明を実施するための形態】
【0007】
図1~
図4は、DRAMランクのメモリコントローラがDRAMランクにアクセスする要求を受信すると予測される時間に基づいて、DRAMランクのパワーダウンモード等の低電力モードをプリエンプティブに終了するシステム及び技法を示す。メモリコントローラは、DRAMランクが低電力モードに移行してから、DRAMのランクにアクセスする要求がメモリコントローラによって受信されるまでの時間を追跡する。メモリコントローラは、アクセス要求のタイミングの履歴に基づいて、DRAMランク毎に、低電力モードに移行してから各DRAMランクにアクセスする要求が受信されると予想される時間を反映した予測時間を予測する。メモリコントローラは、予測時間に基づいて、DRAMランクにアクセスする要求を受信する前に、低電力モード終了コマンドを投機的にDRAMランクに送信する。いくつかの実施形態では、メモリコントローラは、DRAMランクが低電力モードを終了してアクティブ状態に戻るために必要とするクロックサイクル数に基づく予測時間の前に、低電力モード終了コマンドを送信する。
【0008】
メモリコントローラは、各DRAMランクの低電力モードがプリエンプティブに終了されてから、各DRAMランクにアクセスする要求がメモリコントローラによって受信されるまでの時間を監視し、アクセス要求の履歴に基づいて、各DRAMランクについての予測時間を調整する。同様に、予測時間よりも前に、DRAMランクへのデマンドアクセス要求をメモリコントローラが受信し、その結果、メモリコントローラがDRAMランクの低電力モードを終了してアクティブ状態に戻るのを待つ必要(つまり、低電力モード終了レイテンシ、又は、パワーダウン終了レイテンシ)がある場合、メモリコントローラは、影響を受けるDRAMランクの低電力モードの前回の終了時に発生したパワーダウン終了レイテンシペナルティに基づいて、予測時間を調整する。
【0009】
図1は、いくつかの実施形態による、DRAMのランクの投機的なパワーダウンモード終了を採用するメモリコントローラ110を含む処理システム100のブロック図である。処理システム100は、例えば、サーバ、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、携帯電話、ゲーム機等を含む。処理システム100は、プロセッサコア105で実行される命令によってアクセスされるデータを記憶するためのメモリモジュールから構成されたメモリサブシステムを含む。メモリサブシステムは、メモリ階層の最上位において、実行命令によってアクセス可能な全てのデータを記憶するためのメインメモリと、メモリ階層の下位レベルにおいて、メインメモリに記憶されたデータのサブセットを記憶するための1つ以上のキャッシュと、を有するメモリ階層に編成されている。プロセッサコア105が必要とするデータがメモリ階層のキャッシュで見つからない場合、キャッシュコントローラは、メモリアクセス要求をメモリコントローラに発行して、メインメモリからデータを取得する。図示した例では、処理システム100は、メモリコントローラ110に結合された1つ以上のプロセッサコア105と、ランクA120及びランクB130の2つのランクのDRAM ICを含むDIMM115と、を含む。いくつかの実施形態では、メモリコントローラ110は、3つ以上のランクのDRAM ICを制御する。
【0010】
1つ以上のプロセッサコア105は、中央処理装置(CPU)若しくはグラフィックス処理装置(GPU)、又は、これらの組み合わせとして実装され、プロセッサコア105によって実行されるオペレーティングシステム又はアプリケーションからの命令を実行する際に使用される、様々なステージ又はコンポーネント(例えば、プリフェッチャ(図示省略)、整数実行ユニット若しくは論理演算ユニット(ALU)(図示省略)、浮動小数点演算ユニット(FPU)(図示省略)、リタイアメントユニット(図示省略)等)を含む。1つ以上のプロセッサコア105は、DIMM115へのメモリアクセスよりも短いレイテンシで実行パイプラインによりアクセスされ得る、命令を含むデータを一時的に記憶するためのキャッシュ階層を形成する1つ以上のキャッシュ(図示省略)をさらに含む。
【0011】
メモリコントローラ110は、DIMM115とのインタフェースを含む、1つ以上のプロセッサコア105のための様々なインタフェース機能を提供する。さらに、メモリコントローラ110は、DIMM115の電力管理機能を提供する。この目的のために、メモリコントローラ110は、予測ユニット140に結合された電力管理ユニット145を含む。電力管理ユニット145は、DIMM115のチップセレクト112を介してランクA120の電力状態を制御し、チップセレクト114を介してランクB130の電力状態を制御する。
【0012】
少なくとも1つの実施形態では、DIMM115のランクA120及びランクB130は、少なくとも2つの一般的なモード(アクティブモード及びパワーダウンモード)を有する。アクティブモードでは、ランクA120のDRAM IC121~128及びランクB130のDRAM IC131~138が、読み書きトランザクション実行等のメモリアクセス要求の処理し、パワーダウンモードでは、ランクA120のDRAM IC121~128及びランクB130のDRAM IC131~138が、メモリアクセス要求を処理せず、消費電力は、アクティブモード中の消費電力よりも大幅に低い。アクティブモードにある間、ランクA120のDRAM IC121~128及びランクB130のDRAM IC131~138は、電力管理ユニット145によって制御され、クロック周波数及び電圧の対応するペアリングとともに、いくつかの異なるパフォーマンス状態又は動作点のうち何れかを使用する。DRAMランクがアイドル状態にある場合、電力管理ユニット145は、DRAMランクへのアクセス要求における予期されるギャップ等のパワーダウンモードの条件が満たされていると判別した場合に、DRAMランクをパワーダウンモードにする。エネルギーコスト及びパフォーマンスコスト(例えば、クロック再同期の遅延に関連するレイテンシ等)の観点から、パワーダウンモードの開始及び終了に関連するオーバーヘッドが存在する。例えば、メモリコントローラ110が、パワーダウンモードにあるDRAMランクにアクセスする要求を受信した場合(すなわち、パワーダウンモードの「オンデマンド」終了)、メモリコントローラ110は、読み出し又は書き込みコマンドをDRMランクに送信する前に、パワーダウン終了(PDX)コマンドを送信し、DRAMランクが再同期してアクティブモードへの遷移を完了するためのいくつかのクロックサイクル(パワーダウン終了(tXP)サイクル)を待つことによって、DRAMランクをアクティブモードに復元する必要がある。したがって、パワーダウンモードのオンデマンド終了は、特に「無負荷(unloaded)」又は「軽負荷(lightly loaded)」の状況において、DRAMにアクセスする要求に対して更なるレイテンシを加える。無負荷の状況は、メモリコントローラ110が、DRAM IC121~128又は131~138にアクセスする要求を時間の経過後に受信した場合(例えば、プロセッサがスリープモードから目覚めた後等のように、アイドル状態を終了している場合)に発生する。軽負荷の状況は、メモリコントローラ110がDRAM IC 121~128又は131~138に対する比較的少数の要求を受信し、その結果、メモリDIMM115のレイテンシが全体のレイテンシにおいて大きな要因となる場合に発生する。
【0013】
DRAMランクがパワーダウンモードである間にDRAMランクにアクセスする要求を受信するペナルティを軽減するために、予測ユニット140は、各DRAMランクの現在のパワーダウンモードの期間(すなわち、DRAMランクが開始又は開始しようとしているパワーダウンモードの反復)を予測し、これにより、パワーダウンモードの終了がいつ発生するかを予測する。予測ユニット140は、現在のパワーダウンモードの期間を推定又は他の方法で予測する際に、様々な予測方法の何れかを使用する。例えば、いくつかの実施形態では、予測ユニット140は、DRAMランク毎に、以前に発生したいくつかのパワーダウンモードの各々の期間(すなわち、DRAMランクがパワーダウンモードに移行する第1の時間から、メモリコントローラ110がDRAMランクにアクセスする要求をプロセッサコア105から受信する第2の時間まで)に関する情報を記憶し、分析する。DRAMランク毎の期間情報はビン(bin)に配置され、予測ユニット140は、このビン化情報(binned information)に基づいて、DRAMランク毎の現在のパワーダウンモードの期間を予測する。他の実施形態では、予測ユニット140は、パワーダウンモードに移行する前のDRAMランクへのアクセスの履歴等の様々な基準に基づいて、定義された平均パワーダウンモードの期間が事前に入力されているルックアップテーブル又は他のデータ構造を使用して、各DRAMランクの全てのパワーダウンモードについて定義された平均期間を仮定する等のような異なる予測プロセスを使用する。
【0014】
電力管理ユニット145は、予測ユニット140によって提供された予測パワーダウンモード期間を使用して、DRAMランクにアクセスする要求を受信する前に各DRAMランクのパワーダウンモードを投機的に終了する時期を決定し、パワーダウンモードのオンデマンド終了に関連するレイテンシを低減する。少なくとも1つの実施形態では、電力管理ユニット145は、予測されたパワーダウンモード期間の前にパワーダウン終了プロセスをトリガし、その結果、DRAMランクは、予測されたパワーダウンモード期間の終了時に、入力されたメモリアクセス要求を処理するために再同期化してアクティブ状態に遷移するのに必要ないくつかのtXPサイクルを既に完了している。
【0015】
説明すると、動作中、プロセッサコア105は、アクセス要求102をメモリコントローラ110に送信して、DIMM115に記憶されたデータ及び命令へのアクセスを要求する。メモリコントローラ110の予測ユニット140は、ランクA120のDRAM IC121~128及びランクB 130のDRAM IC131~138へのアクセスを追跡する。ランクA120及びランクB130の各々へのアクセス要求パターンに基づいて、電力管理ユニット145は、パワーダウンモードのための条件(例えば、DRAMランクへのアクセス要求において予期されるギャップ等)が、アイドル状態のランクについて満たされるかどうかを判別する。DRAMランクがアイドル状態である場合、電力管理ユニット145は、パワーダウンモードの条件が満たされていると判別した場合、DRAMランクをパワーダウンモードにする。
【0016】
DRAMランクがパワーダウンモードである間、予測ユニット140は、メモリコントローラ110が、パワーダウンモードであるランクのDRAM ICにアクセスする要求をプロセッサコア105から受信する前に、パワーダウンモードの期間に関する情報を記憶し、分析する。予測ユニット140は、ランクがパワーダウンモードに移行してから、ランクにアクセスするためのアクセス要求がメモリコントローラ110において受信されるまでにどれだけの時間が経過したかという履歴に基づいて、ランクにアクセスする要求がメモリコントローラ110において受信される前に、そのランクの次のパワーダウンモードがどのくらいの期間続くかを予測する。いくつかの実施形態では、予測ユニット140は、ランクがパワーダウンモードに移行する時間と、メモリコントローラが、ランクにアクセスするためのアクセス要求を受信する時間と、の間の平均クロックサイクル数に基づいて、ランクのパワーダウンモード期間を予測する。
【0017】
ランクのパワーダウンモードの予測期間に基づいて、電力管理ユニット145は、ランクにアクセスする要求をメモリコントローラ110が受信すると予測される時間の前に、プリエンプティブPDXコマンド(preemptive PDX command)をランクに送信する。メモリコントローラ110は、ランクが再同期してアクティブ状態に遷移するのに必要なtXPサイクル数の間、待機し、その後、メモリコントローラ110は、ランクへの次のアクセス要求に基づいてランクにアクセスする。予測ユニット140は、プリエンプティブPDXコマンドに基づいてパワーダウンモードを終了してから、ランクにアクセスする要求をメモリコントローラ110が受信するまでの期間を監視する。予測ユニット140は、アクティブモードへの遷移(又は、逆、パワーダウンモードからの早過ぎるプリエンプティブ終了)に関連するレイテンシに基づいて、ランクの予測されるパワーダウンモード期間を調整する。
【0018】
予測ユニット140は、複数のDRAMランクのDRAMランク毎に、予測されるパワーダウンモード期間を生成して調整する。例えば、いくつかの実施形態では、処理システム100は、複数のDIMM115を含み、各DIMM115は、1つ以上のDRAMランク120,130を含む。DIMM115内の各DRAMランク120,130は、その特定のDRAMランク120,130へのアクセスパターンに基づいて、特定の予測パワーダウンモード期間を有する。したがって、予測ユニット140は、複数のDRAMランク120,130の各々に対応する予測パワーダウンモード期間を生成し、調整する。
【0019】
図2は、いくつかの実施形態による、
図1のメモリコントローラ110の電力管理ユニット145及び予測ユニット140を示すブロック図である。図示した例では、予測ユニット140は、様々なDRAMランク120,130に向けられたアクセス要求の指標を受信するように結合されたアクティビティモニタ212を含む。アクティビティモニタ212によって監視されるアクティビティのタイプは、DRAM IC121~128,131~138に配置されたメモリアドレスへの読み出し及び書き込み要求を含む。予測ユニット140は、複数のタイマ213をさらに含む。アクティビティが監視されるDRAMランク毎に1つのタイマ213を含むことができる。いくつかの実施形態では、タイマ213の各々は、アクティビティが、アクティビティモニタ212によって対応するDRAMランクから検出されると、リセットされる。リセットされた後、所定のタイマ213は、DRAMランクへの最新のアクセス要求からの時間の追跡を開始する。各タイマ213は、対応するDRAMランクにおいてアクティビティが最後に検出されてからの時間を報告する。DRAMランクをパワーダウンモードにした後、電力管理ユニット145は、所定のDRAMランクがパワーダウンモードにあるとの信号をアクティビティモニタ212に送る。アクティビティモニタ212は、対応するタイマ213から受信した時間値に基づいて、DRAMランクがパワーダウンモードを終了し、アクセス要求の処理を再開するまで、DRAMランクがパワーダウンモードにある時間を記録する。
【0020】
DRAMランクがパワーダウンモードに移行した後にアクセス要求の処理を再開すると、アクティビティモニタ212は、そのDRAMのパワーダウンモードの期間を、イベントストレージ214に記録する。図示した実施形態では、イベントストレージ214は、パワーダウンモード時間がDRAMランク毎に監視されているので、パワーダウンモードの最新のN個のインスタンスの各々の期間を記憶する。一実施形態では、イベントストレージ214は、DRAMランク毎に1つずつ、複数の先入れ先出し(FIFO)メモリを含む。イベントストレージ214内の各FIFOは、対応するDRAMランクのパワーダウンモードの最新のN個のインスタンスの期間を記憶する。パワーダウンモードの新たなインスタンスの期間は、所定のDRAMランクに対応するFIFOに記録されるので、いくつかの実施形態では、最も古いパワーダウンモードインスタンスの期間が上書きされる。
【0021】
いくつかの実施形態では、ビニングストレージ(binning storage)215(イベントストレージ214との単一の共同ストレージとして示されている)は、パワーダウンモード期間の分布を生成するために、DRAMランク毎に、パワーダウンモード期間のカウントを、対応するビン(bin)に記憶する。ビニングストレージ215は、記録された期間をイベントストレージ214から読み出し、各ビンのカウント値を生成するためのロジックを含む。パワーダウンモードの追加のインスタンスの発生により、古い期間データが新たな期間によって上書きされると、ビニングストレージ215内のロジックは、ビン内のカウント値を更新する。予測ロジック218は、ビニングストレージ215に結合されている。予測ロジック218は、所定のDRAMランクのパワーダウンモード期間の分布に基づいて、現在のパワーダウンモードの期間に関する予測を生成する。いくつかの実施形態では、予測ロジック218は、所定のDRAMランクの現在のパワーダウンモードの期間に関する予測を、そのDRAMランクのパワーダウンモード期間の平均に基づいて生成する。
【0022】
予測ロジック218は、パワーダウンモードの期間の予測に加えて、パワーダウンモードの期間の予測に基づいて、パワーダウンモードを終了することができる指定された時間の指標を生成することもできる。例えば、一実施形態では、DRAMランクがパワーダウンモードに置かれる場合、電力管理ユニット145は、予測されたパワーダウンモード期間に基づく指定された時間に、そのDRAMランクのパワーダウンモードを終了させる。パワーダウンモードの終了は、他の方法でパワーダウンモードの終了を引き起こす他の外部イベント(例えば、メモリコントローラ110によるそのDRAMランクへのアクセス要求の受信)無しにもたらされる。さらに、いくつかの実施形態では、パワーダウンモードの終了は、パワーダウンモードの予測された期間が完全に経過する前にもたらされる。パワーダウンモードの期間の予測が適度に正確である場合、パワーダウンモードのプリエンプティブな終了により、様々なパフォーマンス上の利点が得られる。例えば、メモリコントローラ110がDRAMランクへの次のアクセス要求を受信する前に再同期化及びアクティブモードへの遷移が起こり、これにより、DRAMランクは、パワーダウンモードを受動的に終了する場合よりも速くアクセス要求の処理を開始することができる。
【0023】
予測ロジック218によって行われた予測は、電力管理ユニット145の決定ユニット205に転送される。図示した実施形態では、決定ユニット205は、他の情報とともに、パワーダウンモード時間の予測を使用して、DRAMランクのパワーダウンモードをいつプリエンプティブに終了するかを決定する。電力管理ユニット145は、パワーダウン開始(PDE)及びパワーダウン終了(PDX)コマンドをDRAMランクに送信するためのモードセレクタ207をさらに含む。モードセレクタ207は、決定ユニット205から提供された情報に基づいてコマンドを生成する。
【0024】
図3は、いくつかの実施形態による、パワーダウンモードの投機的な終了を用いた
図1のDRAMランクのパワーダウンモード/アクティブモード遷移を示す図である。特に、
図3に示すタイムライン300は、メモリコントローラ110がパワーダウンモードの条件が満たされていると判別したことに応じて、DRAMランクがパワーダウンモードに遷移し、次に、DRAMランクが入力アクセス要求を処理するためにパワーダウンモードからアクティブモードに遷移する際に発生する一連のイベント又はステージを表す。
【0025】
時間t0において、メモリコントローラ110は、DRAMランクのパワーダウンモードに移行する条件が満たされていると判別すると、DRAMランクをパワーダウンモードに移行する準備をする。ステージ301において、DRAMランクは、DRAMランクへの未処理のアクセス要求の処理を終了する。時間t1において、メモリコントローラ110は、ステージ302において、DRAMランクのヒステリシスを回避するために、いくつかのアイドルサイクルを待機する。時間t2において、メモリコントローラ110の電力管理ユニット245のモードセレクタ207は、PDEコマンドをDRAMランクに送信し、DRAMランクがステージ305においてパワーダウンモードに移行するようにトリガする。
【0026】
図3の具体例では、予測ユニット140は、DRAMランクに対する次のアクセス要求がメモリコントローラ110によって受信される予測時間に基づいて、時間t5におけるパワーダウンモードの終了を予測する。予測された終了時間に基づいて、決定ユニット205は、予測された終了の所定サイクル数だけ前の時間t3において、DRAMランクがパワーダウンモードをプリエンプティブに終了することを決定する。モードセレクタ207は、パワーダウンモードを終了するという決定ユニット205による決定に基づいて、DRAMランクへのPDXコマンドを生成する。PDXコマンドに基づいて、DRAMランクは、再同期化及びアクティブモードへの遷移のプロセスを開始する。メモリコントローラ110は、DRAMランクがアクティブモードへの遷移を完了する時間t4まで、所定数のtXPサイクルの間、ステージ306において待機する。PDXコマンドを、予測される終了よりも所定数のtXPサイクルだけ前に送信することにより、メモリコントローラ110は、アクティブモードへの遷移完了前にメモリコントローラ110がDRAMランクへのアクセス要求を受信して、PDXペナルティが発生する可能性を回避又は低減する。したがって、時間t4から、DRAMランクはアクティブ状態にあり、ステージ309においてアクセス要求を処理する準備が整っている。
【0027】
図4は、いくつかの実施形態による、
図1のDRAMランクのパワーダウンモードを投機的に終了する方法400を示すフロー図である。ブロック402において、メモリコントローラ110の予測ユニット140は、DRAMランクがパワーダウンモードに移行した後のDRAMランクへのアクセス要求の履歴を追跡する。ブロック404において、電力管理ユニット145のモードセレクタ207は、DRAMランクのパワーダウンモードの条件が満たされていると決定ユニット205が判別したことに応じて、PDEコマンドをDRAMランクに送信する。ブロック406において、予測ユニット140は、メモリコントローラ110がDRAMランクへのアクセス要求を受信することによってアクティブモードに戻る前に、DRAMランクがパワーダウンモードに置かれる期間を予測する。上述したように、予測ユニット140は、この期間を予測するために、DRAMランクの前回のパワーダウンモード期間又は以前のN回のパワーモード期間の平均に基づく等のように、様々な予測終了技術の何れかを使用する。
【0028】
ブロック408において、電力管理ユニット145は、予測ユニット140からの予測されたパワーダウンモード期間情報を用いて、パワーダウンモードの予測された終了の指定された時間だけ前に満了するように設定されたカウントダウンタイマを開始する。上述したように、予測される終了の前のこの指定された時間は、一定の時間、所定のクロックサイクル数等であってもよい。カウントダウン時間が満了すると、ブロック410において、電力管理ユニット145は、予測されたパワーダウンモード期間に基づいてPDXコマンドをDRAMランクに送信することによって、DRAMランクのパワーダウンモードをプリエンプティブに終了する。ブロック412において、メモリコントローラ110は、DRAMランクにアクセスするためのアクセス要求102を受信する。ブロック412において、DRAMランクは、アクセス要求102を処理する。
【0029】
コンピュータ可読記憶媒体は、命令及び/又はデータをコンピュータシステムに提供するために、使用中にコンピュータシステムによってアクセス可能な任意の非一時的な記憶媒体又は非一時的な記憶媒体の組み合わせを含む。このような記憶媒体には、限定されないが、光学媒体(例えば、コンパクトディスク(CD)、デジタル多用途ディスク(DVD)、ブルーレイ(登録商標)ディスク)、磁気媒体(例えば、フロッピー(登録商標)ディスク、磁気テープ、磁気ハードドライブ)、揮発性メモリ(例えば、ランダムアクセスメモリ(RAM)若しくはキャッシュ)、不揮発性メモリ(例えば、読取専用メモリ(ROM)若しくはフラッシュメモリ)、又は、微小電気機械システム(MEMS)ベースの記憶媒体が含まれ得る。コンピュータ可読記憶媒体は、コンピュータシステムに内蔵されてもよいし(例えば、システムRAM又はROM)、コンピュータシステムに固定的に取り付けられてもよいし(例えば、磁気ハードドライブ)、コンピュータシステムに着脱可能に取り付けられてもよいし(例えば、光学ディスク又はユニバーサルシリアルバス(USB)ベースのフラッシュメモリ)、有線又は無線のネットワークを介してコンピュータシステムに接続されてもよい(例えば、ネットワークアクセス可能なストレージ(NAS))。
【0030】
いくつかの実施形態では、上記の技術のいくつかの態様は、ソフトウェアを実行するプロセッシングシステムの1つ以上のプロセッサによって実装されてもよい。ソフトウェアは、非一時的なコンピュータ可読記憶媒体に記憶され、又は、非一時的なコンピュータ可読記憶媒体上で有形に具現化された実行可能命令の1つ以上のセットを含む。ソフトウェアは、1つ以上のプロセッサによって実行されると、上記の技術の1つ以上の態様を実行するように1つ以上のプロセッサを操作する命令及び特定のデータを含むことができる。非一時的なコンピュータ可読記憶媒体は、例えば、磁気若しくは光ディスク記憶デバイス、例えばフラッシュメモリ、キャッシュ、ランダムアクセスメモリ(RAM)等のソリッドステート記憶デバイス、又は、他の1つ以上の不揮発性メモリデバイス等を含むことができる。非一時的なコンピュータ可読記憶媒体に記憶された実行可能命令は、ソースコード、アセンブリ言語コード、オブジェクトコード、又は、1つ以上のプロセッサによって解釈若しくは実行可能な他の命令フォーマットであってもよい。
【0031】
上述したものに加えて、概要説明において説明した全てのアクティビティ又は要素が必要とされているわけではなく、特定のアクティビティ又はデバイスの一部が必要とされない場合があり、1つ以上のさらなるアクティビティが実行される場合があり、1つ以上のさらなる要素が含まれる場合があることに留意されたい。さらに、アクティビティが列挙された順序は、必ずしもそれらが実行される順序ではない。また、概念は、特定の実施形態を参照して説明された。しかしながら、当業者であれば、特許請求の範囲に記載されているような本発明の範囲から逸脱することなく、様々な変更及び変形を行うことができるのを理解するであろう。したがって、明細書及び図面は、限定的な意味ではなく例示的な意味で考慮されるべきであり、これらの変更形態の全ては、本発明の範囲内に含まれることが意図される。
【0032】
利益、他の利点及び問題に対する解決手段を、特定の実施形態に関して上述した。しかし、利益、利点、問題に対する解決手段、及び、何かしらの利益、利点若しくは解決手段が発生又は顕在化する可能性のある特徴は、何れか若しくは全ての請求項に重要な、必須の、又は、不可欠な特徴と解釈されない。さらに、開示された発明は、本明細書の教示の利益を有する当業者には明らかな方法であって、異なっているが同様の方法で修正され実施され得ることから、上述した特定の実施形態は例示にすぎない。添付の特許請求の範囲に記載されている以外に本明細書に示されている構成又は設計の詳細については限定がない。したがって、上述した特定の実施形態は、変更又は修正されてもよく、かかる変更形態の全ては、開示された発明の範囲内にあると考えられることが明らかである。したがって、ここで要求される保護は、添付の特許請求の範囲に記載されている。