(57)【特許請求の範囲】
【請求項１】
ダイナミック・ランダム・アクセス・メモリ（DRAM）の情報をリフレッシュするための処理方法であって、
DRAM内のリフレッシュユニットのアドレスと前記リフレッシュユニットのリフレッシュ情報とを取得するステップであって、前記リフレッシュユニットは、前記DRAM内の1回のリフレッシュが実行される記憶空間であり、且つ、前記リフレッシュユニットの前記リフレッシュ情報は、前記リフレッシュユニットのリフレッシュ周期を含み、前記リフレッシュユニットの前記取得されたアドレスは、前記リフレッシュユニットの仮想アドレスを含む、ステップと、
ページテーブルに問い合わせることによって、前記リフレッシュユニットの前記仮想アドレスを前記リフレッシュユニットの物理アドレスに変換するステップと、
前記リフレッシュユニットの前記物理アドレスと前記リフレッシュユニットの前記リフレッシュ情報とをDRAMアクセス要求としてカプセル化するステップと、
前記DRAMアクセス要求を使用することによって、前記リフレッシュユニットの前記物理アドレスと前記リフレッシュユニットの前記リフレッシュ情報とをリフレッシュデータ空間に書き込むステップであって、前記リフレッシュデータ空間は、前記DRAM内の事前に設定された記憶空間である、ステップとを含む、方法。
【請求項２】
前記DRAMアクセス要求を使用することによって、前記リフレッシュユニットの前記物理アドレスと前記リフレッシュユニットの前記リフレッシュ情報とをリフレッシュデータ空間に書き込む前記ステップの前に、前記方法は、
前記DRAM内で、前記事前に設定された記憶空間を前記リフレッシュデータ空間として割り当てるステップをさらに含む、請求項1に記載の方法。
【請求項３】
ダイナミック・ランダム・アクセス・メモリ（DRAM）の情報をリフレッシュするための処理装置であって、前記処理装置は、
DRAM内のリフレッシュユニットのアドレスと前記リフレッシュユニットのリフレッシュ情報とを取得するように構成される取得ユニットであって、前記リフレッシュユニットは、前記DRAM内の1回のリフレッシュが実行される記憶空間であり、且つ、前記リフレッシュユニットの前記リフレッシュ情報は、前記リフレッシュユニットのリフレッシュ周期を含み、前記取得ユニットによって取得された前記リフレッシュユニットの前記アドレスは、前記リフレッシュユニットの仮想アドレスを含む、取得ユニットと、
ページテーブルに問い合わせることによって、前記リフレッシュユニットの前記仮想アドレスを前記リフレッシュユニットの物理アドレスに変換するように構成される変換処理ユニットと、
前記リフレッシュユニットの前記物理アドレスと前記リフレッシュユニットの前記リフレッシュ情報とをDRAMアクセス要求としてカプセル化するように構成されるカプセル化ユニットと、
前記DRAMアクセス要求を使用することによって、前記リフレッシュユニットの前記物理アドレスと前記リフレッシュユニットの前記リフレッシュ情報とをリフレッシュデータ空間に書き込むように構成される書き込みユニットであって、前記リフレッシュデータ空間は、前記DRAM内の事前に設定された記憶空間である、書き込みユニットとを含む、処理装置。
【請求項４】
前記処理装置は、
前記DRAM内で、前記事前に設定された記憶空間を前記リフレッシュデータ空間として割り当てるように構成される割り当てユニットをさらに含む、請求項3に記載の処理装置。
【請求項５】
ダイナミック・ランダム・アクセス・メモリ（DRAM）の情報をリフレッシュするための処理装置であって、前記処理装置は、
プロセッサ、メモリ、通信インタフェースおよびバスを含み、前記プロセッサ、前記メモリおよび前記通信インタフェースは、前記バスを使用することによって通信を実行し、
前記メモリは、プログラムを記憶するように構成され、
前記通信インタフェースは、DRAMと通信するように構成され、
前記処理装置が動作しているとき、前記プロセッサは、請求項1または2に記載の前記方法を実行するために、前記メモリに記憶される前記プログラムを実行するように構成される、処理装置。
【請求項６】
ダイナミック・ランダム・アクセス・メモリ（DRAM）をリフレッシュするための方法であって、
DRAM内のリフレッシュユニットのためのリフレッシュコマンドを生成するステップであって、前記リフレッシュコマンドは、前記リフレッシュユニットの物理アドレスを含み、且つ、前記リフレッシュユニットは、前記DRAM内の1回のリフレッシュが実行される記憶空間である、ステップと、
リフレッシュデータ空間から、前記リフレッシュユニットの前記物理アドレスに従って、且つ、DRAM読み出しコマンドを使用することによって、前記リフレッシュユニットのリフレッシュ情報を読み出すステップであって、前記リフレッシュユニットの前記リフレッシュ情報は前記リフレッシュユニットのリフレッシュ周期を含む、ステップと、
前記リフレッシュ情報に従って、前記リフレッシュユニットに対してリフレッシュ操作を実行するステップとを含み、前記方法は、
前記リフレッシュデータ空間から、前記リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を取得するステップと、
前記リフレッシュユニットの後にある前記複数の連続するリフレッシュユニットのためのリフレッシュコマンドを受信するステップと、
前記複数の連続するリフレッシュユニット内の、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えるかどうかを決定するステップと、
リフレッシュ操作が実行される必要があるリフレッシュユニットの前記数が前記閾値を超えると決定されたとき、前記複数の連続するリフレッシュユニットに対してAuto Refreshのリフレッシュ操作を実行するステップ、または
リフレッシュ操作が実行される必要があるリフレッシュユニットの前記数が前記閾値を超えないと決定されたとき、前記複数の連続するリフレッシュユニットに対してRAS-Only Refreshのリフレッシュ操作を実行するステップとをさらに含む方法。
【請求項７】
リフレッシュデータ空間から、前記リフレッシュユニットの前記物理アドレスに従って、且つ、DRAM読み出しコマンドを使用することによって、前記リフレッシュユニットのリフレッシュ情報を読み出す前記ステップは、
前記リフレッシュユニットの前記物理アドレスと、前記リフレッシュデータ空間に記憶された、前記リフレッシュユニットの前記物理アドレスと前記リフレッシュユニットの前記リフレッシュ情報との間の対応関係とに従って、前記リフレッシュユニットの前記リフレッシュ情報を決定し、前記リフレッシュデータ空間から、前記DRAM読み出しコマンドを使用することによって、前記リフレッシュユニットの前記リフレッシュ情報を読み出すステップを含む、請求項6に記載の方法。
【請求項８】
前記リフレッシュデータ空間は、前記DRAM内に事前に設定された、前記DRAM内の複数のリフレッシュユニットのリフレッシュ情報を記憶するために使用される記憶空間である、請求項6または7に記載の方法。
【請求項９】
前記DRAMが前記複数の連続するリフレッシュユニットをリフレッシュするプロセスにおいて無効データを記憶するリフレッシュユニットをスキップすると示す、サイレントリフレッシュコマンドを前記DRAMに送信するステップをさらに含む、請求個6乃至8のいずれか1項に記載の方法。。
【請求項１０】
DRAMコントローラであって、前記DRAMコントローラは、
DRAM内のリフレッシュユニットのためのリフレッシュコマンドを生成するように構成されるリフレッシュコマンド生成モジュールであって、前記リフレッシュコマンドは、前記リフレッシュユニットの物理アドレスを含み、且つ、前記リフレッシュユニットは、前記DRAM内の1回のリフレッシュが実行される記憶空間である、リフレッシュコマンド生成モジュールと、
リフレッシュデータ空間から、前記リフレッシュユニットの前記物理アドレスに従って、且つ、DRAM読み出しコマンドを使用することによって、前記リフレッシュユニットのリフレッシュ情報を取得するように構成される取得モジュールであって、前記リフレッシュユニットの前記リフレッシュ情報は前記リフレッシュユニットのリフレッシュ周期を含む、取得モジュールと、
前記リフレッシュ情報に従って、前記リフレッシュユニットに対してリフレッシュ操作を実行するように構成される実行モジュールとを含み、
前記取得モジュールは、前記リフレッシュデータ空間から、前記リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を取得するようにさらに構成され、
前記実行モジュールは、
前記リフレッシュユニットの後にある前記複数の連続するリフレッシュユニットのためのリフレッシュコマンドを受信するように構成される受信ユニットと、
前記複数の連続するリフレッシュユニット内の、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えるかどうかを決定するように構成される決定ユニットと、
リフレッシュ操作が実行される必要があるリフレッシュユニットの前記数が前記閾値を超えると決定されたとき、前記複数の連続するリフレッシュユニットに対してAuto Refreshのリフレッシュ操作を実行するか、または、リフレッシュ操作が実行される必要があるリフレッシュユニットの前記数が前記閾値を超えないと決定されたとき、前記複数の連続するリフレッシュユニットに対してRAS-Only Refreshのリフレッシュ操作を実行するように構成される実行ユニットとを含むDRAMコントローラ。
【請求項１１】
前記取得モジュールは、
前記リフレッシュユニットの前記物理アドレスと、前記リフレッシュデータ空間に記憶された、前記リフレッシュユニットの前記物理アドレスと前記リフレッシュユニットの前記リフレッシュ情報との間の対応関係とに従って、前記リフレッシュユニットの前記リフレッシュ情報を決定するように構成されるクエリユニットと、
前記リフレッシュデータ空間から、前記DRAM読み出しコマンドを使用することによって、前記リフレッシュユニットの前記リフレッシュ情報を読み出すように構成される読み出しユニットとを含む、請求項10に記載のDRAMコントローラ。
【請求項１２】
前記リフレッシュデータ空間は、前記DRAM内で事前に設定され、前記DRAM内の複数のリフレッシュユニットのリフレッシュ情報を記憶するために使用される記憶空間である、請求項10または11に記載のDRAMコントローラ。
【請求項１３】
前記実行モジュールは、
前記DRAMが前記複数の連続するリフレッシュユニットをリフレッシュするプロセスにおいて無効データを記憶するリフレッシュユニットをスキップするように示す、サイレントリフレッシュコマンドを前記DRAMに送信するようにさらに構成される、請求項10乃至12のいずれか1項に記載のDRAMコントローラ。
【請求項１４】
ダイナミック・ランダム・アクセス・メモリ（DRAM）をリフレッシュするためのシステムであって、前記システムは、少なくとも1つのリフレッシュユニットを含むダイナミック・ランダム・アクセス・メモリ（DRAM）と、請求項10乃至13のいずれか1項に記載のDRAMコントローラとを含むシステム。
【請求項１５】
プログラムコードとともに、コンピュータ可読記憶媒体に記憶されるコンピュータプログラムであって、前記プログラムコードに含まれる命令は、請求項1または2に記載の方法を実行するために使用される、コンピュータプログラム。
【請求項１６】
プログラムコードとともに、コンピュータ可読記憶媒体に記憶されるコンピュータプログラムであって、前記プログラムコードに含まれる命令は、請求項6乃至9のいずれか1項に記載の方法を実行するために使用される、コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、2014年6月9日に中国特許庁に出願された、「METHOD AND SYSTEM FOR REFRESHING DYNAMIC RANDOM ACCESS MEMORY DRAM AND DEVICE」と題する、中国特許出願番号201410253514.8に対して優先権を主張し、その全体が参照によって組み込まれる。
【０００２】
本発明はコンピュータの分野に関し、詳細には、ダイナミック・ランダム・アクセス・メモリ（DRAM）をリフレッシュするための方法およびシステム、およびデバイスに関する。
【背景技術】
【０００３】
既存のコンピュータシステムでは、安価で高密度のDRAM（Dynamic Random Access Memory, dynamic random access memory）は一般に、システムメインメモリとして使用され、メモリとも呼ばれる。DRAMは、キャパシタ内の電荷を使用することによってデータを記憶する。しかしながら、これらの電荷は、漏電の存在により、絶えず漏れ出ている。従って、DRAM内のデータは、漏れ出る電荷を補うために、定期的に読み出され、且つ、再書き込みされる必要があり、このような操作はリフレッシュ（Refresh）と呼ばれる。
【０００４】
DRAMは複数のバンク（Bank）を含み、且つ、各Bankは、2次元記憶アレイであり、ここで、水平線は行（Row）と呼ばれ、且つ、垂直線は列（Column）と呼ばれる。リフレッシュプロセスでは、DRAMは1つの行（メモリ行とも呼ばれる）を毎回選択し、行内の全てのデータをセンス増幅器（行バッファ, Row Bufferとも呼ばれる）に抽出し、このようなプロセスは、活性化（Activation）操作と呼ばれる。次いで、DRAMは、行バッファ内で、対応するデータの読み出しおよび書き込みを完了し、且つ、行バッファにおけるデータは記憶アレイに再書き込みされ、このことは、プレチャージ（Pre-charge）操作と呼ばれる。活性化操作およびプレチャージ操作によって、リフレッシュプロセス全体が実施される。DRAMリフレッシュは、コンピュータシステムに対して比較的大きなオーバヘッドを引き起こす。DRAMは、リフレッシュプロセスにおいて、正常なメモリアクセス要求に応答することはできないため、性能オーバヘッドが引き起こされ、そのうえ、リフレッシュ操作は電力消費操作であり、このことはエネルギー消費オーバヘッドを引き起こす。
【０００５】
既存のリフレッシュ方法は、最も深刻な漏電に悩まされるユニット内のデータが損失しないことを保証するために、同じ周期を使用することによって、DRAM内の全ての行をリフレッシュすることである。
【０００６】
本発明を完成するプロセスにおいて、従来技術は、DRAMの容量は連続的に増加するため、同じ周期を使用することによって全てのメモリ行をリフレッシュする方式は、ますます大きな性能オーバヘッドおよびエネルギー消費オーバヘッドを有し、このことは、システムのエネルギー効率に著しく影響を与えるという問題を有すると分かった。
【発明の概要】
【課題を解決するための手段】
【０００７】
これに基づいて、本発明の実施形態は、リフレッシュプロセスにおけるオーバヘッドを有効に低減するために、ダイナミック・ランダム・アクセス・メモリ（DRAM）をリフレッシュするための方法およびシステム、およびデバイスを提供する。
【０００８】
本発明の実施形態の第1の態様は、ダイナミック・ランダム・アクセス・メモリ（DRAM）の情報をリフレッシュするための処理方法を提供し、且つ、方法は、
DRAM内のリフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とを取得するステップであって、ここで、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間であり、且つ、リフレッシュユニットのリフレッシュ情報は、リフレッシュユニットのリフレッシュ周期を含む、ステップと、
リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化し、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むステップであって、ここで、リフレッシュデータ空間は、DRAM内の事前に設定された記憶空間である、ステップとを含む。
【０００９】
第1の態様を参照すると、第1の可能な実施方式では、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むステップの前に、方法は、DRAM内で、事前に設定された記憶空間をリフレッシュデータ空間として割り当てるステップをさらに含む。
【００１０】
第1の態様または第1の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、リフレッシュユニットの取得されたアドレスは、リフレッシュユニットの物理アドレスを含み、且つ、
リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化し、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むステップは、
リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化し、DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込むステップを含む。
【００１１】
第1の態様または第1の態様の第1の可能な実施方式を参照すると、第3の可能な実施方式では、リフレッシュユニットの取得されたアドレスは、リフレッシュユニットの仮想アドレスを含み、且つ、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するステップの前に、方法は、
ページテーブルに問い合わせることによって、リフレッシュユニットの仮想アドレスをリフレッシュユニットの物理アドレスに変換するステップをさらに含み、且つ、
リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化し、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むステップは、
リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化し、DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込むステップを含む。
【００１２】
本発明の実施形態の第2の態様は、ダイナミック・ランダム・アクセス・メモリ（DRAM）の情報をリフレッシュするための処理装置を提供し、且つ、装置は、
DRAM内のリフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とを取得するように構成される取得ユニットであって、ここで、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間であり、且つ、リフレッシュユニットのリフレッシュ情報は、リフレッシュユニットのリフレッシュ周期を含む、取得ユニットと、
リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するように構成されるカプセル化ユニットと、
DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むように構成される書き込みユニットであって、ここで、リフレッシュデータ空間は、DRAM内の1個の事前に設定された記憶空間である、書き込みユニットとを含む。
【００１３】
第2の態様を参照すると、第1の可能な実施方式では、装置は、DRAM内で、事前に設定された記憶空間をリフレッシュデータ空間として割り当てるように構成される割り当てユニットをさらに含む。
【００１４】
第2の態様または第2の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、取得ユニットによって取得されたリフレッシュユニットのアドレスは、リフレッシュユニットの物理アドレスを含み、
カプセル化ユニットは、具体的には、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するように構成され、且つ、
書き込みユニットは、具体的には、DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込むように構成される。
【００１５】
第2の態様または第2の態様の第1の可能な実施方式を参照すると、第3の可能な実施方式では、取得ユニットによって取得されたリフレッシュユニットのアドレスは、リフレッシュユニットの仮想アドレスを含み、且つ、装置は、
ページテーブルに問い合わせることによって、リフレッシュユニットの仮想アドレスをリフレッシュユニットの物理アドレスに変換するように構成される変換処理ユニットをさらに含み、
カプセル化ユニットは、具体的には、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するように構成され、且つ、
書き込みユニットは、具体的には、DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込むように構成される。
【００１６】
本発明の実施形態の第3の態様は、ダイナミック・ランダム・アクセス・メモリ（DRAM）の情報をリフレッシュするための処理装置を提供し、ここで、処理装置は、
プロセッサ、メモリ、通信インタフェースおよびバスを含み、ここで、プロセッサ、メモリおよび通信インタフェースは、バスを使用することによって通信を実行し、
メモリは、プログラムを記憶するように構成され、
通信インタフェースは、DRAMと通信するように構成され、
処理装置が動作しているとき、プロセッサは、第1の態様または第1の態様の可能な実施方式のうちのいずれか1つに記載の方法を実行するために、メモリに記憶されたプログラムを実行するように構成される。
【００１７】
本発明の実施形態の第4の態様は、ダイナミック・ランダム・アクセス・メモリ（DRAM）をリフレッシュするための方法を提供し、且つ、方法は、
DRAM内のリフレッシュユニットのためのリフレッシュコマンドを生成するステップであって、ここで、リフレッシュコマンドは、リフレッシュユニットの物理アドレスを含み、且つ、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間である、ステップと、
リフレッシュデータ空間から、リフレッシュユニットの物理アドレスに従って、且つ、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出すステップであって、ここで、リフレッシュユニットのリフレッシュ情報はリフレッシュユニットのリフレッシュ周期を含む、ステップと、
リフレッシュ情報に従って、リフレッシュユニットに対してリフレッシュ操作を実行するステップとを含む。
【００１８】
第4の態様を参照すると、第1の可能な実施方式では、リフレッシュデータ空間から、リフレッシュユニットの物理アドレスに従って、且つ、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出すステップは、
リフレッシュユニットの物理アドレスと、リフレッシュデータ空間に記憶された、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係とに従って、リフレッシュユニットのリフレッシュ情報を決定し、リフレッシュデータ空間から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出すステップを含む。
【００１９】
第4の態様または第4の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、リフレッシュデータ空間は、DRAM内に事前に設定された、DRAM内の複数のリフレッシュユニットのリフレッシュ情報を記憶するために使用される記憶空間であり、且つ、方法は、
リフレッシュデータ空間から、リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を取得するステップをさらに含む。
【００２０】
第4の態様の第2の可能な実施方式を参照すると、第3の可能な実施方式では、リフレッシュデータ空間から、リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を取得するステップの後、方法は、
リフレッシュユニットの後にある複数の連続するリフレッシュユニットのためのリフレッシュコマンドを受信するステップと、
複数の連続するリフレッシュユニット内の、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えるかどうかを決定するステップと、
リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えると決定されたとき、複数の連続するリフレッシュユニットに対してAuto Refreshのリフレッシュ操作を実行するステップ、または
リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えないと決定されたとき、複数の連続するリフレッシュユニットに対してRAS-Only Refreshのリフレッシュ操作を実行するステップとをさらに含む。
【００２１】
本発明の実施形態の第5の態様は、DRAMコントローラを提供し、且つ、DRAMコントローラは、
DRAM内のリフレッシュユニットのためのリフレッシュコマンドを生成するように構成されるリフレッシュコマンド生成モジュールであって、ここで、リフレッシュコマンドは、リフレッシュユニットの物理アドレスを含み、且つ、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間である、リフレッシュコマンド生成モジュールと、
リフレッシュデータ空間から、リフレッシュユニットの物理アドレスに従って、且つ、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を取得するように構成される取得モジュールであって、ここで、リフレッシュユニットのリフレッシュ情報はリフレッシュユニットのリフレッシュ周期を含む、取得モジュールと、
リフレッシュ情報に従って、リフレッシュユニットに対してリフレッシュ操作を実行するように構成される実行モジュールとを含む。
【００２２】
第5の態様を参照すると、第1の可能な実施方式では、取得モジュールは、
リフレッシュユニットの物理アドレスと、リフレッシュデータ空間に記憶された、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係とに従って、リフレッシュユニットのリフレッシュ情報を決定するように構成されるクエリユニットと、
リフレッシュデータ空間から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出すように構成される読み出しユニットとを含む。
【００２３】
第5の態様または第5の態様の第1の可能な実施方式を参照すると、第2の可能な実施方式では、取得モジュールは、リフレッシュデータ空間から、リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を取得するようにさらに構成される。
【００２４】
第5の態様の第2の可能な実施方式を参照すると、第3の可能な実施方式では、実行モジュールは、
リフレッシュユニットの後にある複数の連続するリフレッシュユニットのためのリフレッシュコマンドを受信するように構成される受信ユニットと、
複数の連続するリフレッシュユニット内の、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えるかどうかを決定するように構成される決定ユニットと、
リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えると決定されたとき、複数の連続するリフレッシュユニットに対してAuto Refreshのリフレッシュ操作を実行するか、または、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えないと決定されたとき、複数の連続するリフレッシュユニットに対してRAS-Only Refreshのリフレッシュ操作を実行するように構成される実行ユニットとを含む。
【００２５】
本発明の実施形態の第6の態様はダイナミック・ランダム・アクセス・メモリ（DRAM）をリフレッシュするためのシステムを提供し、ここで、システムは、少なくとも1つのリフレッシュユニットを含むダイナミック・ランダム・アクセス・メモリ（DRAM）と、第5の態様または第5の態様の可能な実施方式のうちのいずれか1つに記載のDRAMコントローラとを含む。
【００２６】
本発明の実施形態で提供されるダイナミック・ランダム・アクセス・メモリ（DRAM）をリフレッシュするための方法およびシステムおよびデバイスによると、DRAM内のリフレッシュユニットのリフレッシュ情報が取得され、ここで、リフレッシュ情報は、リフレッシュユニットのリフレッシュ周期を含み、且つ、リフレッシュ情報は、DRAM内の、1個の事前に設定された記憶空間、すなわちリフレッシュデータ空間に書き込まれ、DRAM内のリフレッシュユニットをリフレッシュするプロセスでは、DRAMコントローラは、リフレッシュデータ空間から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットに対応するリフレッシュ情報を読み出し、且つ、リフレッシュ情報を使用することによって、対応するリフレッシュユニットに対してリフレッシュ操作を実行する。前述の方式によって、DRAM容量が連続的に増加する場合、一方では、リフレッシュユニットのリフレッシュ情報に従って、適切なリフレッシュが実行されることができ、従来技術における同じ周期に従って実行されるリフレッシュによって引き起こされる比較的大きな性能オーバヘッドおよびエネルギー消費オーバヘッドの問題を回避し、且つ、他方では、リフレッシュユニットのリフレッシュ情報はDRAM空間に記憶され、その結果、DRAMの記憶容量が連続的に増加する場合、リフレッシュ情報のデータ量における増加から生じる記憶空間に対する要件が満たされることができる。
【図面の簡単な説明】
【００２７】
本発明の実施形態における技術的解決手段をより明確に説明するために、以下では、実施形態を説明するために必要とされる添付図面を簡潔に導入する。明らかに、以下の説明における添付図面は単に、本発明のいくつかの実施形態を示し、且つ、当業者は、創造的努力無しにこれらの添付図面から他の図面をさらに導出することができる。
【００２８】
【図１】図1は、本発明の実施形態が基づくシステムアーキテクチャの図である。
【図２Ａ】図2Aは、本発明に係る方法の実施形態1の第1の実施方式のフローチャートである。
【図２Ｂ】図2Bは、本発明に係る方法の実施形態1の第2の実施方式のフローチャートである。
【図２Ｃ】図2Cは、本発明に係る方法の実施形態1のステップ230の第1の実施方式のフローチャートである。
【図２Ｄ】図2Dは、本発明に係る方法の実施形態1のステップ230の第2の実施方式のフローチャートである。
【図３Ａ】図3Aは、本発明に係る方法の実施形態2のフローチャートである。
【図３Ｂ】図3Bは、本発明に係る方法の実施形態2のステップ330の実施方式のフローチャートである。
【図３Ｃ】図3Cは、本発明に係る方法の実施形態2の追加のステップの実施方式のフローチャートである。
【図４】図4は、本発明に係るデバイスの実施形態1の構成図である。
【図５】図5は、本発明に係るデバイスの実施形態2の構成図である。
【図６Ａ】図6Aは、本発明に係るデバイスの実施形態2の構成図である。
【図６Ｂ】図6Bは、本発明に係るデバイスの実施形態2における取得モジュールの実施方式の構成図である。
【図６Ｃ】図6Cは、本発明に係るデバイスの実施形態2における実行モジュールの実施方式の構成図である。
【図７】図7は、本発明のシステムの実施形態のネットワーキング接続図である。
【発明を実施するための形態】
【００２９】
以下では、本発明の実施形態における技術的解決手段を、本発明の実施形態における添付図面を参照して、明確且つ完全に説明する。明らかに、説明される実施形態は、本発明の実施形態の全てではなく一部である。創造的努力無しに本発明の実施形態に基づいて当業者によって得られる全ての他の実施形態は、本発明の保護範囲に包含されるべきである。
【００３０】
以下の説明はDRAMデバイスに集中するが、当業者は、本発明は、複数のユニットを含むとともに、それらの内容を確保するために、規則的な間隔でリフレッシュされるか、または別の方式で維持される必要がある任意のタイプの記憶デバイスに適用されることができることを理解する。当業者はまた、以下の説明は、記憶ユニットが2次元行列アレイに組織される記憶デバイスに集中するが、記憶ユニットは、複数のバンク（Bank）に組織されることおよびインタリーブされるかまたはインタリーブされないこと、2次元よりも多いアレイに組織されること、アドレス指定可能な内容に組織されること等を含む、複数の方式で組織されてよいことを理解する。加えて、以下の議論の少なくとも一部はコンピュータシステム内のメモリに集中するが、当業者は、主張される本発明は、メモリデバイスを有する別の電子デバイスまたはシステムと組み合わせて実施されてよいことを理解する。
【００３１】
本発明の実施形態のシステムアーキテクチャ
【００３２】
図1は、本発明の実施形態に係るメモリリフレッシュシステムの概略ネットワーキング図を示す。メモリリフレッシュシステムは、プロセッサ100、メモリコントローラ200およびメモリチップ300を含む。プロセッサ100は、メモリコントローラ200を使用することによって、メモリチップ300からデータを読み出すとともにメモリチップ300にデータを書き込む。具体的な実施中、プロセッサ100およびメモリコントローラ200は、同じチップに統合されてよく、または、2つの異なるチップによって別々に実施されてもまたよい。
【００３３】
メモリチップ300では、1個の記憶空間は、リフレッシュデータ空間310として事前に設定され、且つ、リフレッシュデータ空間は、連続する領域であってよく、または、複数の分散された領域であってよい。メモリをアプリケーションプログラムに割り当てるとき、オペレーティングシステムは前述の領域を割り当てることはできない。
【００３４】
メモリチップ300は一般に、DRAMチップによって実施され、且つ、メモリチップ300がDRAMチップによって実施されるとき、メモリコントローラ200は、DRAMコントローラによって実施されてよい。
【００３５】
本発明の実施形態
【００３６】
現在、メモリの記憶容量における連続的な増加によって、メモリリフレッシュの性能オーバヘッドおよび電力消費オーバヘッドを低減する方法が課題となっている。
【００３７】
業界で一般に使用されるリフレッシュ方法は、最も深刻な漏電に悩まされるユニット内のデータが損失しないことを保証するために、同じ周期を使用することによって、メモリ内の全ての行をリフレッシュすることである。具体的には、以下のような2つのリフレッシュ方式がある：
【００３８】
(1) AR（Auto Refresh, auto refresh）方式：計数器RACはメモリチップ内で維持されるとともに、次のリフレッシュされるべき行を指示する。メモリコントローラはtREFI時間の間隔でリフレッシュコマンドを送信し、且つ、メモリチップがコマンドを受信した後、リフレッシュ操作は、全てのBank内で、RACによって指示された行のグループ（行の数は、メモリチップの密度によって決定される）に対して同時に実行される。リフレッシュ操作の持続時間はtRFCであり、この期間中、メモリチップは通常のメモリアクセス要求に応答することはできない。tRFC時間の後、メモリチップは、計数器の値を更新するとともに、計数器に、リフレッシュされるべき行の次のグループを指示させる。
【００３９】
(2) ROR（RAS-Only Refresh）方式：メモリコントローラは、行のデータのリフレッシュを完了するために、行アドレスストローブ（RAS, Row Address Strobe）コマンドを送信するとともに、メモリから1つの行内のデータを行バッファに抽出し、次いで、行のデータは、次のプレチャージコマンドによって、記憶ユニットに再書き込みされる。この場合、メモリコントローラは、その中で計数器RACを維持するとともに、RASコマンドを周期的に送信する。このようなリフレッシュ方式では、1つの行のみが毎回リフレッシュされ、且つ、行がリフレッシュされるとき、他のBankは依然としてアクセスされることができる。
【００４０】
前述のAR方式では、リフレッシュの粒度は比較的大きく、且つ、各行の平均のリフレッシュオーバヘッドは比較的小さく、しかしながら、メモリ内のいくつかの行が無効データを記憶するか（すなわち、無効データはリフレッシュされる必要がない）、または、非クリティカルなデータを記憶する（非クリティカルなデータは比較的高い頻度でリフレッシュされる必要がない）とき、前述のAR方式のオーバヘッドは比較的大きい。ROR方式では、リフレッシュの粒度は比較的小さく、且つ、リフレッシュされるべき行はメモリコントローラによって指定され、このことは、メモリコントローラが柔軟な制御を行うことを可能にし、しかしながら、ROR方式における各行の平均のリフレッシュオーバヘッドは比較的大きい。
【００４１】
前述の方式では、リフレッシュされるべきデータの各行は、リフレッシュユニット（Refresh Unit）を構成する。具体的な実施では、リフレッシュユニットは1つのメモリ行であってよく、または、複数のメモリ行であってよく、または、メモリ行よりも小さい粒度であってよく、このことは、本発明のいずれの実施形態においても限定されない。
【００４２】
メモリデータをリフレッシュする効率を改善するとともにリフレッシュオーバヘッドを低減するために、各リフレッシュユニットのリフレッシュパラメータは、以下の3つのパラメータを使用することによって決定されてよい：
【００４３】
(1) データ保持時間：データ保持時間は、T0によって表されるとともに、リフレッシュユニットの事前に設定されたリフレッシュ周期である。例えば、リフレッシュユニットが64ミリ秒の間隔でリフレッシュされる場合、事前に設定されたリフレッシュ周期T0 = 64 msである。
【００４４】
(2) データ有効性：データ有効性はμによって表されるとともに、リフレッシュユニットに記憶されたデータの有効性を測定するために使用される。リフレッシュユニットに記憶されたデータが有効データである場合、μ=1であり、且つ、リフレッシュユニットに記憶されたデータが無効データである場合、μ=0である。データ有効性は、オペレーティングシステムによって決定される。
【００４５】
(3) データクリティカル性：データクリティカル性は、λによって表されるとともに、リフレッシュユニットに記憶されたデータのクリティカル性を測定するために使用される。データクリティカル性のレベルによると、リフレッシュユニットに記憶されたデータのデータクリティカル性の値の範囲は0<λ≦1である。データクリティカル性はオペレーティングシステムによって設定されてよく、または、データクリティカル性はユーザによって設定されてオペレーティングシステムに通知されてよい。
【００４６】
リフレッシュ周期=事前に設定されたリフレッシュ周期*データ有効性/データクリティカル性という関係は、リフレッシュユニットのリフレッシュ周期と前述の3つのパラメータとの間に存在し、このことは、記号を使用することによって、リフレッシュ周期T=T0*μ/λ（これは、μ≠0である場合に適用可能である）のように表現される。リフレッシュユニットのリフレッシュデータが無効データであるとき、この場合、リフレッシュユニットのリフレッシュ周期は無限であり、すなわち、リフレッシュユニットはリフレッシュされないことは留意されるべきである。
【００４７】
説明は、1のデータクリティカル性を有する有効データを記憶するリフレッシュユニットについては、リフレッシュユニットのリフレッシュ周期= T0*1/1 = Tであり、非クリティカルな有効データを記憶するリフレッシュユニットについては、データクリティカル性λ（ここで、0<λ≦1）は、オペレーティングシステムによって設定されたデータクリティカル性に従って決定されてよく、且つ、システムによって選択された事前に設定されたリフレッシュ周期と調整因子との積、すなわち、T0*(1/λ)を使用することによって、リフレッシュが実行されるという例を使用することによって提供される。
【００４８】
例として、リフレッシュユニットについては、リフレッシュユニットのデータ保持時間T0（すなわち、事前に設定されたリフレッシュ周期）は64ミリ秒であり、データ有効性μは1であり、データクリティカル性λは0.5であり、従って、前述の計算式に従って、リフレッシュユニットのリフレッシュ周期が64*2（milliseconds）であると決定される。
【００４９】
例として、1つの情報記憶フォーマットを使用することによって、異なるデータクリティカル性を有するリフレッシュユニットのリフレッシュ情報が表1を使用することによって表現されることができる。以下の表では、1つのリフレッシュユニットのリフレッシュ情報は、4bitを使用することによって表されてよい。リフレッシュ情報を表すためにいくつのbitが使用されるかは、ユーザ定義の設定に基づくことは留意されるべきである。より多くのbitによって、リフレッシュ周期のより多くのオプションが表されることができる。当業者のために、リフレッシュ情報を表すためのbitの数は具体的なリフレッシュ要件に従って選択され、このことは、本発明のいずれの実施形態においても限定されない。以下の表1は単に、説明のための例として使用される。
【００５０】
以下の表1から、4bitを使用することによって表されるリフレッシュ情報は、リフレッシュユニットに対応するリフレッシュ周期を実際に含むことがわかる。
【００５１】
【表１】
0006429258.tif 000002
【００５２】
方法の実施形態1
【００５３】
図2Aを参照すると、本実施形態は、ダイナミック・ランダム・アクセス・メモリ（DRAM）の情報をリフレッシュするための処理方法を提供する。方法のプロセスは以下の通りである：
【００５４】
210: DRAM内のリフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とを取得し、ここで、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間であり、且つ、リフレッシュユニットのリフレッシュ情報は、リフレッシュユニットのリフレッシュ周期を含む。
【００５５】
具体的には、この方法の実施形態は、オペレーティングシステムによって実行されてよい。
【００５６】
リフレッシュユニットのアドレスは、リフレッシュユニットの物理アドレスであってよく、または、リフレッシュユニットの仮想アドレスであってよい。
【００５７】
従来技術では、リフレッシュ情報は、多くの取得方式で取得されてよい。例えば、ソフトウェア上では、リフレッシュ情報は、データ保持時間に対するテスト、ページ割り当て／解放に対する監視またはユーザのマークによって決定されてよく、且つ、ハードウェア上では、リフレッシュ情報は、データ保持時間に対するテスト、データへの最近のアクセスの履歴等によって決定されてよい。このことは、本発明の本実施形態では詳細には説明されない。
【００５８】
具体的には、DRAM内のリフレッシュユニットのリフレッシュ情報を取得するステップの前に、方法は、データ保持時間、データ有効性およびデータクリティカル性等の、リフレッシュユニットのパラメータを、リフレッシュユニットのリフレッシュ情報に変換するステップをさらに含む。具体的な変換プロセスについては、前述の表1における関連する説明に対して参照が行われてよい。
【００５９】
リフレッシュユニットの前述のリフレッシュ情報に含まれる情報は、リフレッシュユニットのリフレッシュ周期である。
【００６０】
230: リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化し、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込み、ここで、リフレッシュデータ空間は、DRAM内の事前に設定された記憶空間である。
【００６１】
具体的には、オペレーティングシステムは、既存のDRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込んでよい。
【００６２】
さらに、DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むステップ230の前に、図2Bを参照すると、方法は以下をさらに含む：
【００６３】
220: DRAM内で、事前に設定された記憶空間をリフレッシュデータ空間として割り当てる。
【００６４】
ステップ220とステップ210との間に厳密な順序的な関係はないことは留意されるべきである。具体的な実施プロセスでは、ステップ210が最初に実行されてよいとともに、次いで、ステップ220が実行され、または、ステップ220が最初に実行されてよいとともに、次いで、ステップ210が実行され、このことは、本発明の本実施形態では限定されない。
【００６５】
DRAM内で、1個の記憶空間をリフレッシュデータ空間として割り当てる前述のステップ220は、以下の方式を使用することによって実施されてよい：
【００６６】
(1) オペレーティングシステムは、メモリ空間にリフレッシュ情報を記憶するための領域を適用するとともに、領域のアドレス範囲をメモリコントローラに通知する。
【００６７】
(2) BIOS（Basic Input/Output System, すなわち、basic input/output system）は、リフレッシュ情報を記憶するためのメモリ空間内の領域を確保するとともに、領域のアドレス範囲をオペレーティングシステムおよびメモリコントローラに通知する。
【００６８】
(3) メモリコントローラは、リフレッシュ情報を記憶するためのメモリ空間内の領域を確保するとともに、領域のアドレス範囲をオペレーティングシステムに通知する。
【００６９】
リフレッシュデータ空間は、連続する領域であってよく、または、複数の分散された領域であってよい。メモリがアプリケーションプログラムに割り当てられるとき、オペレーティングシステムは前述の領域を割り当てることはできない。
【００７０】
リフレッシュユニットのアドレスおよびリフレッシュユニットのリフレッシュ情報はリフレッシュデータ空間に書き込まれ、且つ、このようにして、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係がリフレッシュデータ空間内に確立されることは留意されるべきである。例えば、リフレッシュデータ空間の構造は表2に示される（ここで、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係をテーブルの形態で記憶することは、単に1つの実施方式であり、且つ、本発明の本実施形態は、他の実施方式を排除しないことは理解されることができる）。
【００７１】
【表２】
0006429258.tif 000003
【００７２】
さらに、異なる具体的な実施プロセスに従って、ステップ230を実行するプロセスには2つの実施方式がある：
【００７３】
方式1：この方式は、ステップ231からステップ232の実施プロセスを含む。リフレッシュユニットの取得されたアドレスは、リフレッシュユニットの物理アドレスを含む。図2Cを参照すると、ステップ230の具体的なプロセスは以下である：
【００７４】
231: リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化する。
【００７５】
232: DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込む。
【００７６】
具体的には、前述の実施プロセスでは、オペレーティングシステムが、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とを取得するとき、オペレーティングシステムは、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込んでよい。
【００７７】
方式2：この方式は、ステップ233からステップ235の実施プロセスを含む。リフレッシュユニットの取得されたアドレスは、リフレッシュユニットの仮想アドレスを含む。図2Dを参照すると、ステップ230の具体的なプロセスは以下である：
【００７８】
233: ページテーブルに問い合わせることによって、リフレッシュユニットの仮想アドレスをリフレッシュユニットの物理アドレスに変換する。
【００７９】
234: リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化する。
【００８０】
235: DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込む。
【００８１】
具体的には、前述の実施プロセスでは、リフレッシュユニットのリフレッシュ情報とリフレッシュユニットの仮想アドレスとがユーザモードアプリケーションを使用することによって取得される。この場合、ユーザモードアプリケーションは、リフレッシュユニットの仮想アドレスとリフレッシュユニットのリフレッシュ情報とをオペレーティングシステムに送信し、且つ、オペレーティングシステムは、リフレッシュユニットの仮想アドレスに従って、且つ、ページテーブル（Page Table）に問い合わせることによって、リフレッシュユニットの物理アドレスを取得するとともに、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込む。
【００８２】
ダイナミック・ランダム・アクセス・メモリ（DRAM）の情報をリフレッシュするための処理方法の前述の実施形態によると、リフレッシュ情報は、既存のDRAMアクセス要求を使用することによって、DRAM内の前もって割り当てられたリフレッシュデータ空間に書き込まれることができ、その結果、方法は、リフレッシュ情報のための記憶空間を連続的に拡張するという要件を満たすことができ、ここで、要件は、DRAMの記憶容量における連続的な増加から生じる。さらに、リフレッシュ情報の記憶は、既存のDRAMアクセス要求を使用することによって実施され、このことは、単純で且つ実用的な実施の解決手段である。
【００８３】
方法の実施形態2
【００８４】
図3Aを参照すると、本実施形態は、ダイナミック・ランダム・アクセス・メモリ（DRAM）をリフレッシュするための方法を提供する。この方法の実施形態はメモリコントローラによって実行され、且つ、そのプロセスは以下である：
【００８５】
310: DRAM内のリフレッシュユニットのためのリフレッシュコマンドを生成し、ここで、リフレッシュコマンドは、リフレッシュユニットを指す物理アドレスを含み、且つ、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間である。
【００８６】
具体的には、メモリコントローラは、リフレッシュコマンドを周期的に生成し、且つ、リフレッシュコマンドはリフレッシュされるべきユニットの物理アドレスを含む。
【００８７】
330: リフレッシュデータ空間から、リフレッシュユニットの物理アドレスに従って、リフレッシュユニットのリフレッシュ情報を読み出し、ここで、リフレッシュユニットのリフレッシュ情報はリフレッシュユニットのリフレッシュ周期を含む。
【００８８】
350: リフレッシュ情報に従って、リフレッシュユニットに対してリフレッシュ操作を実行する。
【００８９】
具体的には、メモリコントローラが、リフレッシュ情報に従って、リフレッシュユニットに対してリフレッシュ操作を実行するとき、表2を参照して、異なるリフレッシュ情報に対して、メモリコントローラは異なるリフレッシュ操作を実行する：
【００９０】
(1) メモリコントローラによって読み出されるリフレッシュ情報におけるデータ有効性識別子が0である場合、リフレッシュ情報に対応するリフレッシュユニットに記憶されたデータは無効データであると示し、且つ、メモリコントローラはリフレッシュコマンドを破棄する。
【００９１】
(2) メモリコントローラによって読み出されるリフレッシュ情報におけるデータ有効性識別子が1であり、且つ、リフレッシュ周期識別子がabcである場合（ここで、a、bおよびcの全ての値が1または0である）、表2および表1における内容に従って、リフレッシュユニットのリフレッシュ周期が決定され、且つ、リフレッシュユニットは、リフレッシュ周期に従ってリフレッシュされる。
【００９２】
さらに、図3Bを参照すると、リフレッシュユニットの物理アドレスに従って、リフレッシュデータ空間から、リフレッシュユニットに対応するリフレッシュ情報を読み出す前述のステップ330は以下を含む：
【００９３】
331: リフレッシュユニットの物理アドレスに従って、リフレッシュデータ空間に記憶された、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係を問い合わせ、リフレッシュユニットのリフレッシュ情報を決定する。
【００９４】
332: リフレッシュデータ空間から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出す。
【００９５】
リフレッシュユニットの物理アドレスに従って、メモリコントローラは、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出す。
【００９６】
さらに、リフレッシュデータ空間は、DRAM内で事前に設定され、且つ、DRAM内の複数のリフレッシュユニットのリフレッシュ情報を記憶するために使用される記憶空間であり、方法はさらに以下を含む：
【００９７】
340：リフレッシュデータ空間から、リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を取得する。
【００９８】
DRAMデータの読み出し/書き込み粒度は比較的大きく、これは一般に64バイトであり、前述の実施形態に従って、1つのリフレッシュユニットのリフレッシュ情報の記憶は、4個のビットを使用することによって表され、且つ、従って、DRAMは128個のリフレッシュユニットのリフレッシュ情報を一度に読み出すことは留意されるべきである。
【００９９】
さらに、リフレッシュデータ空間から、リフレッシュユニットの後にある複数のリフレッシュユニットのリフレッシュ情報を読み出すステップの後、図3Cを参照すると、方法は以下をさらに含む：
【０１００】
341: リフレッシュユニットの後にある複数の連続するリフレッシュユニットのためのリフレッシュコマンドを受信する。
【０１０１】
342: 複数の連続するリフレッシュユニット内の、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えるかどうかを決定する。
【０１０２】
343: リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えると決定されたとき、複数の連続するリフレッシュユニットに対してAuto Refreshのリフレッシュ操作を実行する。
【０１０３】
344: リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えないと決定されたとき、複数の連続するリフレッシュユニットに対してRAS-Only Refreshのリフレッシュ操作を実行する。
【０１０４】
具体的な実施プロセスでは、リフレッシュ操作が、Auto Refresh方式を使用することによって複数の連続するリフレッシュユニットに対して実行されるとき、メモリコントローラは、サイレントリフレッシュ（silent refresh）コマンドをDRAMにさらに送信する。コマンドによって、複数の連続するリフレッシュユニットをリフレッシュするプロセスでは、無効データを記憶するリフレッシュユニットはスキップされることができ、さらに、リフレッシュが実行されるアドレスについて、計数器が次のリフレッシュされるべき行を続いて指示することを確実にするために、計数器は1インクリメントされる。
【０１０５】
Auto Refreshを使用すること、および、RAS-Only Refreshを使用することは、当業者にとって共通の知識であり、且つ、具体的な実行プロセスは、ここでは繰り返し詳細に説明されないことは留意されるべきである。
【０１０６】
前述の実施形態では、リフレッシュデータ空間に記憶されたリフレッシュユニットのリフレッシュ情報にアクセスすることによって、リフレッシュ情報に従って、適切なリフレッシュが実行されることができ、従来技術における同じ周期を使用することによって実行されるリフレッシュによって引き起こされる比較的大きな性能オーバヘッドおよびエネルギー消費オーバヘッドの問題を回避する。さらに、リフレッシュユニットのリフレッシュ情報は、既存のメモリアクセスコマンドを使用することによって、リフレッシュデータ空間から直接読み出され、その結果、リフレッシュプロセスは単純で且つ実用的である。
【０１０７】
デバイスの実施形態1
【０１０８】
図4を参照すると、本実施形態は、ダイナミック・ランダム・アクセス・メモリ（DRAM）の情報をリフレッシュするための処理装置を提供し、且つ、装置400は、
DRAM内のリフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とを取得するように構成される取得ユニット410であって、ここで、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間であり、且つ、リフレッシュユニットのリフレッシュ情報は、リフレッシュユニットのリフレッシュ周期を含む、取得ユニット410と、
リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するように構成されるカプセル化ユニット420と、
DRAMアクセス要求を使用することによって、リフレッシュユニットのアドレスとリフレッシュユニットのリフレッシュ情報とをリフレッシュデータ空間に書き込むように構成される書き込みユニット430であって、ここで、リフレッシュデータ空間は、DRAM内の1個の事前に設定された記憶空間である、書き込みユニット430とを含む。
【０１０９】
さらに、装置400は、DRAM内で、事前に設定された記憶空間をリフレッシュデータ空間として割り当てるように構成される割り当てユニット440をさらに含む。
【０１１０】
さらに、取得ユニットによって取得されたリフレッシュユニットのアドレスは、リフレッシュユニットの物理アドレスを含み、
カプセル化ユニット420は、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するようにさらに構成され、且つ、
書き込みユニット430は、DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込むように構成される。
【０１１１】
さらに、取得ユニットによって取得されたリフレッシュユニットのアドレスは、リフレッシュユニットの仮想アドレスを含み、装置は、
ページテーブルに問い合わせることによって、リフレッシュユニットの仮想アドレスをリフレッシュユニットの物理アドレスに変換するように構成される変換処理ユニット450をさらに含み、
カプセル化ユニット420は、具体的には、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報とをDRAMアクセス要求としてカプセル化するように構成され、且つ、
書き込みユニット430は、具体的には、DRAMアクセス要求を使用することによって、リフレッシュユニットの物理アドレスおよびリフレッシュ情報をリフレッシュデータ空間に書き込むように構成される。
【０１１２】
デバイスの実施形態2
【０１１３】
図5を参照すると、本実施形態は、ダイナミック・ランダム・アクセス・メモリ（DRAM）の情報をリフレッシュするための処理装置をさらに提供し、且つ、処理装置500は、
プロセッサ510、メモリ520、通信インタフェース530およびバス540を含み、ここで、プロセッサ510、メモリ520および通信インタフェース530は、バスを使用することによって通信を実行し、
メモリ520は、プログラムを記憶するように構成され、
通信インタフェース530は、DRAMと通信するように構成され、
処理装置500が動作しているとき、プロセッサ510は、方法の実施形態1の任意の可能な実施方式に記載の方法を実行するために、メモリ520に記憶されたプログラムを実行するように構成される。
【０１１４】
デバイスの実施形態3
【０１１５】
図6Aを参照すると、本実施形態は、DRAMコントローラを提供し、且つ、コントローラ600は、
リフレッシュユニットのためのリフレッシュコマンドを生成するように構成されるリフレッシュコマンド生成モジュール610であって、ここで、リフレッシュコマンドは、リフレッシュユニットの物理アドレスを含み、且つ、リフレッシュユニットは、DRAM内の1回のリフレッシュが実行される記憶空間である、リフレッシュコマンド生成モジュール610と、
リフレッシュデータ空間から、リフレッシュユニットの物理アドレスに従って、且つ、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を取得するように構成される取得モジュール620であって、ここで、リフレッシュユニットのリフレッシュ情報はリフレッシュユニットのリフレッシュ周期を含む、取得モジュール620と、
リフレッシュ情報に従って、リフレッシュユニットに対してリフレッシュ操作を実行するように構成される実行モジュール630とを含む。
【０１１６】
さらに、図6Bを参照すると、取得モジュール620は、
リフレッシュユニットの物理アドレスと、リフレッシュデータ空間に記憶された、リフレッシュユニットの物理アドレスとリフレッシュユニットのリフレッシュ情報との間の対応関係とに従って、リフレッシュユニットのリフレッシュ情報を決定するように構成されるクエリユニット621と、
リフレッシュデータ空間から、DRAM読み出しコマンドを使用することによって、リフレッシュユニットのリフレッシュ情報を読み出すように構成される読み出しユニット622とを含む。
【０１１７】
さらに、取得モジュール620は、リフレッシュデータ空間から、リフレッシュユニットの後にある複数の連続するリフレッシュユニットのリフレッシュ情報を取得するようにさらに構成される。
【０１１８】
さらに、図6Cを参照すると、実行モジュール630は、
リフレッシュユニットの後にある複数の連続するリフレッシュユニットのためのリフレッシュコマンドを受信するように構成される受信ユニット631と、
複数の連続するリフレッシュユニット内の、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えるかどうかを決定するように構成される決定ユニット632と、
リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えると決定されたとき、複数の連続するリフレッシュユニットに対してAuto Refreshのリフレッシュ操作を実行するか、または、リフレッシュ操作が実行される必要があるリフレッシュユニットの数が閾値を超えないと決定されたとき、複数の連続するリフレッシュユニットに対してRAS-Only Refreshのリフレッシュ操作を実行するように構成される実行ユニット633とを含む。
【０１１９】
前述の実施方式では、複数の連続するリフレッシュユニットの全てがリフレッシュされる必要があるときに、Auto Refreshのリフレッシュ方式はリフレッシュオーバヘッドを低減することができるとともに比較的高い効率を有するという特徴と、RAS-Only Refreshのリフレッシュ方式は1つのリフレッシュユニットのリフレッシュに適用可能であるという特徴とを考慮すると、リフレッシュ操作が実際に実行される必要があるリフレッシュユニットの数がリフレッシュユニットの数のための閾値を超えるかどうかに従って、Auto Refresh方式またはRAS-Only Refresh方式がリフレッシュを実行するために選択され、それによって、リフレッシュの効率を改善する。
【０１２０】
システムの実施形態
【０１２１】
図7を参照すると、本実施形態は、ダイナミック・ランダム・アクセス・メモリ（DRAM）をリフレッシュするためのシステムを提供する。システム700は、複数のリフレッシュユニットを含むダイナミック・ランダム・アクセス・メモリ（DRAM）710とデバイスの実施形態3に記載されているようなDRAMコントローラ720とを含む。
【０１２２】
本発明で提供されるいくつかの実施形態では、開示されるシステム、装置および方法は、他の方式で実施されてよいことは理解されるべきである。例えば、説明される装置の実施形態は単なる例示である。例えば、ユニットの分割は、単に、論理的な機能の分割であるとともに、実際の実施では他の分割であってよい。例えば、複数のユニットまたはコンポーネントは、別のシステムに結合されるかまたは統合されてよく、または、いくつかの特徴は無視されるかまたは実行されなくてよい。加えて、表示または議論される相互結合または直接結合または通信接続は、いくつかのインタフェースを介して実施されてよい。装置間またはユニット間の間接結合または通信接続は、電子的、機械的または他の形態で実施されてよい。
【０１２３】
分離した部分として説明されたユニットは、物理的に分離していてもしていなくてもよく、且つ、ユニットとして表示された部分は、物理的なユニットであってもなくてもよく、1つの位置に配置されてよく、または、複数のネットワークユニットに分散されてよい。ユニットの一部または全ては、本発明の実施形態の解決手段の目的を達成するための実際のニーズに従って選択されてよい。
【０１２４】
加えて、本発明の実施形態における機能ユニットは、1つの処理ユニットに統合されてよく、または、ユニットのそれぞれは、物理的に孤立して存在してよく、または、2つ以上のユニットは1つのユニットに統合される。統合されたユニットは、ハードウェアの形態で実施されてよく、またはソフトウェア機能ユニットの形態で実施されてよい。
【０１２５】
統合されたユニットがソフトウェア機能ユニットの形態で実施され、且つ、独立した製品として販売または使用されるとき、統合されたユニットは、コンピュータ可読記憶媒体に記憶されてよい。このような理解に基づくと、本発明の技術的解決手段は、本質的に、または、従来技術に貢献する部分は、または技術的解決手段の全てまたは一部は、ソフトウェア製品の形態で実施されてよい。ソフトウェア製品は記憶媒体に記憶されるとともに、コンピュータデバイス（パーソナルコンピュータ、サーバまたはネットワークデバイスであってよい）に、本発明の実施形態で説明される方法のステップの全てまたは一部を実行するように命令するためのいくつかの命令を含む。前述の記憶媒体は、USBフラッシュドライブ、リムーバブルハードディスク、読出し専用メモリ（ROM, Read-Only Memory）、ランダムアクセスメモリ（RAM, Random Access Memory）、磁気ディスクまたは光ディスク等の、プログラムコードを記憶することができる任意の媒体を含む。
【０１２６】
前述の説明は単に、本発明の具体的な実施形態であるが、本発明の保護範囲を限定することは意図されない。本発明で開示される技術的範囲内で当業者によって容易に理解されるいかなる修正または置換も、本発明の保護範囲に包含されるべきである。従って、本発明の保護範囲は、請求項の保護範囲に従うべきである。
【符号の説明】
【０１２７】
100  プロセッサ
200  メモリコントローラ
300  メモリチップ
310  リフレッシュデータ空間
410  取得ユニット
420  カプセル化ユニット
430  書き込みユニット
440  割り当てユニット
450  変換処理ユニット
510  プロセッサ
520  メモリ
530  通信インタフェース
610  リフレッシュコマンド生成モジュール
620  取得モジュール
621  クエリユニット
622  読み出しユニット
630  実行モジュール
631  受信ユニット
632  決定ユニット
633  実行ユニット
710  DRAM
720  DRAMコントローラ
【図１】
0006429258.tif 000004
【図２Ａ】
0006429258.tif 000005
【図２Ｂ】
0006429258.tif 000006
【図２Ｃ】
0006429258.tif 000007
【図２Ｄ】
0006429258.tif 000008
【図３Ａ】
0006429258.tif 000009
【図３Ｂ】
0006429258.tif 000010
【図３Ｃ】
0006429258.tif 000011
【図４】
0006429258.tif 000012
【図５】
0006429258.tif 000013
【図６Ａ】
0006429258.tif 000014
【図６Ｂ】
0006429258.tif 000015
【図６Ｃ】
0006429258.tif 000016
【図７】
0006429258.tif 000017