(57)【要約】  本出願は、メモリリフレッシュ技術およびコンピュータシステムを提供する。メモリリフレッシュ技術は、メモリコントローラとダイナミックランダムアクセスメモリＤＲＡＭを含むコンピュータシステムに適用される。メモリリフレッシュ技術によれば、メモリコントローラがアクセス要求を受信する。受信されたアクセス要求にあるＤＲＡＭ内の第１のランクにアクセスするためのアクセス要求の量が０より大きく、第２のしきい値未満である場合、メモリコントローラは第１のランクをリフレッシュする。本出願で提供されるメモリリフレッシュ技術によれば、たとえ第１のランクがアイドル状態になれない場合でも、第１のランクを時間内にリフレッシュすることができる。したがって、リフレッシュの延期によるパッシブリフレッシュの増加によるコンピュータシステムのパフォーマンスへの影響が軽減され、メモリリフレッシュの柔軟性が向上し、リフレッシュのオーバーヘッドが削減される。
2020517024.tif 000002
【特許請求の範囲】
【請求項１】
メモリリフレッシュ方法であって、前記方法が、メモリコントローラとダイナミックランダムアクセスメモリＤＲＡＭを備えるコンピュータシステムに適用され、前記方法が、
前記メモリコントローラによって、アクセス要求を受信するステップと、
前記受信されたアクセス要求にある前記ＤＲＡＭ内の第１のランクにアクセスするためのアクセス要求の量が０より大きく、第２のしきい値未満である場合、前記メモリコントローラによって、前記第１のランクをリフレッシュするステップと、
を含む、メモリリフレッシュ方法。
【請求項２】
前記メモリコントローラによって、前記第１のランクをリフレッシュする前記ステップが、
前記受信したアクセス要求のターゲットランクの量が指定された第４のしきい値未満であり、前記アクセス要求における読取り要求または書込み要求の割合が、指定された第５のしきい値より大きい場合、前記メモリコントローラによって、Ｔ／Ｎ間隔で前記第１のランクをリフレッシュするステップを含み、Ｔは標準的な平均リフレッシュ間隔を示すために使用され、Ｎは１より大きい整数である、請求項１に記載のメモリリフレッシュ方法。
【請求項３】
前記メモリコントローラが前記第１のランクをリフレッシュするプロセスにおいて、前記メモリコントローラによって、前記第１のランクにアクセスするための第１のアクセス要求を受信するステップと、
前記メモリコントローラによって、構成済みのバッファキュー内の前記第１のアクセス要求をバッファするステップと
をさらに含み、前記メモリコントローラが、少なくとも前記バッファキューとスケジューリングキューを備え、前記バッファキューが、リフレッシュ動作が実行されているランクに対するアクセス要求をバッファするために使用され、前記スケジューリングキューが、リフレッシュ動作が実行されていないランクに送信されるべきアクセス要求をバッファするために使用される、請求項１または２に記載の方法。
【請求項４】
前記メモリコントローラによって、前記ＤＲＡＭ内の第２のランクにアクセスするための第２のアクセス要求を受信するステップと、
前記メモリコントローラによって、前記第２のランクがリフレッシュされていないときに、前記第２のアクセス要求を前記スケジューリングキューにバッファするステップと、
をさらに含む、請求項３に記載の方法。
【請求項５】
前記メモリコントローラによって、前記受信されたアクセス要求にある前記ＤＲＡＭ内の前記第２のランクにアクセスするためのアクセス要求の量が前記第２のしきい値以上であり、前記第２のランクの延期されたリフレッシュの量が指定された第３のしきい値より大きい場合、前記第２のランクをリフレッシュするステップをさらに含み、前記第３のしきい値が１以上であり、指定された警告値未満であり、前記警告値が、前記第２のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される、請求項１から４のいずれか一項に記載の方法。
【請求項６】
前記メモリコントローラによって、前記受信されたアクセス要求にある前記ＤＲＡＭ内の第３のランクにアクセスするためのアクセス要求の量が前記第２のしきい値以上であり、前記第３のランクで延期されたリフレッシュの量が前記指定された第３のしきい値を超えない場合、第３のランクでリフレッシュ動作を実行することをスキップするステップをさらに含み、前記第３のしきい値が１以上であり、前記指定された警告値より小さく、前記警告値が前記第３のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される、請求項１から５のいずれか一項に記載の方法。
【請求項７】
前記メモリコントローラによって、前記第１のランクをリフレッシュする前記ステップが、
前記受信したアクセス要求のターゲットランクの量が指定された第４のしきい値以上であり、前記アクセス要求における読取り要求または書込み要求の割合が指定された第５のしきい値を超えない場合、前記メモリコントローラによって、Ｔ間隔で前記第１のランクをリフレッシュするステップを含み、Ｔは標準的な平均リフレッシュ間隔を示すために使用される、請求項１に記載のメモリリフレッシュ方法。
【請求項８】
メモリコントローラと、前記メモリコントローラに接続されたダイナミックランダムアクセスメモリＤＲＡＭとを備えるコンピュータシステムであって、前記メモリコントローラが、
アクセス要求を受信することと、
前記受信されたアクセス要求にある前記ＤＲＡＭ内の第１のランクにアクセスするためのアクセス要求の量が０より大きく、第２のしきい値未満である場合、前記第１のランクをリフレッシュすることと、
を行うように構成される、コンピュータシステム。
【請求項９】
前記第１のランクをリフレッシュする前記ステップにおいて、前記メモリコントローラが、
前記受信したアクセス要求のターゲットランクの量が指定された第４のしきい値未満であり、前記アクセス要求における読取り要求または書込み要求の割合が、指定された第５のしきい値より大きい場合、Ｔ／Ｎ間隔で前記第１のランクをリフレッシュするように特に構成され、Ｔは標準的な平均リフレッシュ間隔を示すために使用され、Ｎは１より大きい整数である、請求項８に記載のコンピュータシステム。
【請求項１０】
前記メモリコントローラが、
前記第１のランクをリフレッシュするプロセスにおいて、前記第１のランクにアクセスするための第１のアクセス要求を受信することと、
構成済みのバッファキュー内の前記第１のアクセス要求をバッファすることと
を行うようにさらに構成され、前記メモリコントローラが、少なくとも前記バッファキューとスケジューリングキューを備え、前記バッファキューが、リフレッシュ動作が実行されているランクに対するアクセス要求をバッファするために使用され、前記スケジューリングキューが、リフレッシュ動作が実行されていないランクに送信されるべきアクセス要求をバッファするために使用される、請求項９に記載のコンピュータシステム。
【請求項１１】
前記メモリコントローラが、
前記ＤＲＡＭ内の第２のランクにアクセスするための第２のアクセス要求を受信することと、
前記第２のランクがリフレッシュされていないときに、前記第２のアクセス要求を前記スケジューリングキューにバッファすることと、
を行うようにさらに構成される、請求項１０に記載のコンピュータシステム。
【請求項１２】
前記メモリコントローラが、
前記受信されたアクセス要求にある前記ＤＲＡＭ内の前記第２のランクにアクセスするためのアクセス要求の量が前記第２のしきい値以上であり、前記第２のランクの延期されたリフレッシュの量が指定された第３のしきい値より大きい場合、前記第２のランクをリフレッシュするようにさらに構成され、前記第３のしきい値が指定された警告値未満であり、前記警告値が前記第２のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される、請求項８から１１のいずれか一項に記載のコンピュータシステム。
【請求項１３】
前記メモリコントローラが、
前記受信されたアクセス要求にある前記ＤＲＡＭ内の第３のランクにアクセスするためのアクセス要求の量が前記第２のしきい値以上であり、前記第３のランクで延期されたリフレッシュの量が前記指定された第３のしきい値を超えない場合、第３のランクでリフレッシュ動作を実行することをスキップするようにさらに構成され、前記第３のしきい値が１以上であり、前記指定された警告値より小さく、前記警告値が前記第３のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される、請求項８から１２のいずれか一項に記載のコンピュータシステム。
【請求項１４】
前記第１のランクをリフレッシュする前記ステップにおいて、前記メモリコントローラが、
前記受信したアクセス要求のターゲットランクの量が指定された第４のしきい値以上であり、前記アクセス要求における読取り要求または書込み要求の割合が指定された第５のしきい値を超えない場合、Ｔ間隔で前記リフレッシュを実行するように特に構成され、Ｔは標準的な平均リフレッシュ間隔を示すために使用される、請求項８に記載のコンピュータシステム。
【請求項１５】
コンピュータシステムにおけるプロセッサによって送信されたアクセス要求を受信するように構成された通信インターフェースと、
前記受信されたアクセス要求にある前記コンピュータシステムにおけるダイナミックランダムアクセスメモリＤＲＡＭ内の第１のランクにアクセスするためのアクセス要求の量が０より大きく、第２のしきい値未満である場合に、前記第１のランクをリフレッシュするように構成されたリフレッシュ回路と
を備える、メモリコントローラ。
【請求項１６】
前記リフレッシュ回路が、
前記受信したアクセス要求のターゲットランクの量が指定された第４のしきい値未満であり、前記アクセス要求における読取り要求または書込み要求の割合が、指定された第５のしきい値より大きい場合、Ｔ／Ｎ間隔で前記第１のランクをリフレッシュするように特に構成され、Ｔは標準的な平均リフレッシュ間隔を示すために使用され、Ｎは１より大きい整数である、請求項１５に記載のメモリコントローラ。
【請求項１７】
前記通信インターフェースが、前記リフレッシュ回路が前記第１のランクをリフレッシュするプロセスにおいて、前記第１のランクにアクセスするための第１のアクセス要求を受信するようにさらに構成され、
前記メモリコントローラが、
構成済みのバッファキュー内の前記第１のアクセス要求をバッファするように構成されたバッファをさらに備え、前記バッファが、少なくとも前記バッファキューとスケジューリングキューを備え、前記バッファキューが、リフレッシュ動作が実行されているランクに対するアクセス要求をバッファするために使用され、前記スケジューリングキューが、リフレッシュ動作が実行されていないランクに送信されるべきアクセス要求をバッファするために使用される、請求項１５または１６に記載のメモリコントローラ。
【請求項１８】
前記通信インターフェースが、前記ＤＲＡＭ内の第２のランクにアクセスするための第２のアクセス要求を受信するようにさらに構成され、
前記バッファが、前記第２のランクがリフレッシュされていないときに、前記第２のアクセス要求を前記スケジューリングキューにバッファするようにさらに構成される、請求項１７に記載のメモリコントローラ。
【請求項１９】
前記リフレッシュ回路が、
前記受信されたアクセス要求にある前記ＤＲＡＭ内の前記第２のランクにアクセスするためのアクセス要求の量が前記第２のしきい値以上であり、前記第２のランクの延期されたリフレッシュの量が指定された第３のしきい値より大きい場合、前記第２のランクをリフレッシュするようにさらに構成され、前記第３のしきい値が１以上であり、指定された警告値未満であり、前記警告値が前記第２のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される、請求項１５から１８のいずれか一項に記載のメモリコントローラ。
【請求項２０】
前記リフレッシュ回路が、
前記受信されたアクセス要求にある前記ＤＲＡＭ内の第３のランクにアクセスするためのアクセス要求の量が前記第２のしきい値以上であり、前記第３のランクで延期されたリフレッシュの量が前記指定された第３のしきい値を超えない場合、第３のランクでリフレッシュ動作を実行することをスキップするようにさらに構成され、前記第３のしきい値が１以上であり、前記指定された警告値より小さく、前記警告値が前記第３のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される、請求項１５から１９のいずれか一項に記載のメモリコントローラ。
【請求項２１】
前記リフレッシュ回路が、
前記受信したアクセス要求のターゲットランクの量が指定された第４のしきい値以上であり、前記アクセス要求における読取り要求または書込み要求の割合が指定された第５のしきい値を超えない場合、Ｔ間隔で前記第１のランクをリフレッシュするように特に構成され、Ｔは標準的な平均リフレッシュ間隔を示すために使用される、請求項１５に記載のメモリコントローラ。
【請求項２２】
メモリリフレッシュ装置であって、前記メモリリフレッシュ装置が、コンピュータシステムにおけるダイナミックランダムアクセスメモリＤＲＡＭをリフレッシュするように構成され、
アクセス要求を受信するように構成された受信モジュールと、
前記受信されたアクセス要求にある前記ＤＲＡＭ内の第１のランクにアクセスするためのアクセス要求の量が０より大きく、第２のしきい値未満である場合、前記第１のランクをリフレッシュするように構成されたリフレッシュモジュールと、
を備える、メモリリフレッシュ装置。
【請求項２３】
前記リフレッシュモジュールが、前記受信したアクセス要求のターゲットランクの量が指定された第４のしきい値未満であり、前記アクセス要求における読取り要求または書込み要求の割合が、指定された第５のしきい値より大きい場合、Ｔ／Ｎ間隔で前記第１のランクをリフレッシュするように特に構成され、Ｔは標準的な平均リフレッシュ間隔を示すために使用され、Ｎは１より大きい整数である、請求項２２に記載のメモリリフレッシュ装置。
【請求項２４】
前記受信モジュールが、
前記第１のランクをリフレッシュするプロセスにおいて、前記第１のランクにアクセスするための第１のアクセス要求を受信するようにさらに構成され、
前記メモリリフレッシュ装置が、
構成済みのバッファキュー内の前記第１のアクセス要求をバッファするように構成されたバッファモジュールをさらに備え、前記バッファモジュールが、少なくとも前記バッファキューとスケジューリングキューを備え、前記バッファキューが、リフレッシュ動作が実行されているランクに対するアクセス要求をバッファするために使用され、前記スケジューリングキューが、リフレッシュ動作が実行されていないランクに送信されるべきアクセス要求をバッファするために使用される、請求項２２に記載のメモリリフレッシュ装置。
【請求項２５】
前記受信モジュールが、前記ＤＲＡＭ内の第２のランクにアクセスするための第２のアクセス要求を受信するようにさらに構成され、
前記バッファモジュールが、前記メモリコントローラのために、前記第２のランクがリフレッシュされていないときに、前記第２のアクセス要求を前記スケジューリングキューにバッファするようにさらに構成される、請求項２４に記載のメモリリフレッシュ装置。
【請求項２６】
前記リフレッシュモジュールが、前記受信されたアクセス要求にある前記ＤＲＡＭ内の前記第２のランクにアクセスするためのアクセス要求の量が前記第２のしきい値以上であり、前記第２のランクの延期されたリフレッシュの量が指定された第３のしきい値より大きい場合、前記第２のランクをリフレッシュするようにさらに構成され、前記第３のしきい値が１以上であり、指定された警告値未満であり、前記警告値が、前記第２のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される、請求項２２から２５のいずれか一項に記載のメモリリフレッシュ装置。
【請求項２７】
前記リフレッシュモジュールが、前記受信されたアクセス要求にある前記ＤＲＡＭ内の第３のランクにアクセスするためのアクセス要求の量が前記第２のしきい値以上であり、前記第３のランクで延期されたリフレッシュの量が前記指定された第３のしきい値を超えない場合、第３のランクのリフレッシュをスキップするようにさらに構成され、前記第３のしきい値が１以上であり、前記指定された警告値より小さく、前記警告値が前記第３のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される、請求項２２から２６のいずれか一項に記載のメモリリフレッシュ装置。
【請求項２８】
前記リフレッシュモジュールが、前記受信したアクセス要求のターゲットランクの量が指定された第４のしきい値以上であり、前記アクセス要求における読取り要求または書込み要求の割合が指定された第５のしきい値を超えない場合、Ｔ間隔で前記第１のランクをリフレッシュするように特に構成され、Ｔは標準的な平均リフレッシュ間隔を示すために使用される、請求項２２に記載のメモリリフレッシュ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、コンピュータ技術の分野に関し、具体的には、メモリリフレッシュ技術およびコンピュータシステムに関する。
【背景技術】
【０００２】
システムの従来のメインメモリは、通常、ダイナミックランダムアクセスメモリ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＤＲＡＭ）を含む。ＤＲＡＭの構造はシンプルで、読取り速度は高速である。ＤＲＡＭの最も基本的なストレージユニットはＤＲＡＭセルであり、各ＤＲＡＭセルはトランジスタとキャパシタを含む。ＤＲＡＭセルは、コンデンサ内の電荷量を使用することによって０または１を示す。このようにして、１つのＤＲＡＭセルは１ビット（ｂｉｔ）を保存することができる。コンデンサ内の電荷は漏れることがあり、コンデンサ内の電荷が不足すると、保存されたデータにエラーが発生する可能性がある。したがって、実際の適用中、コンデンサに保存された情報を保持するために、コンデンサを定期的に充電する必要がある。ＤＲＡＭ内のコンデンサを充電するこのアクションは、リフレッシュと呼ばれる。
【０００３】
ＤＲＡＭ内のＤＲＡＭセルはマトリックスに配置される。このマトリックスはＤＲＡＭバンクと呼ばれる。ＤＲＡＭバンク内の任意のビットは、対応する行および列デコーダを使用することによって配置することができる。複数のＤＲＡＭバンクがＤＲＡＭチップを形成し得、複数のＤＲＡＭチップがＤＲＡＭランクを形成し得、複数のＤＲＡＭランクがデュアルインラインメモリモジュール（Ｄｕａｌ−Ｉｎｌｉｎｅ−Ｍｅｍｏｒｙ−Ｍｏｄｕｌｅｓ、ＤＩＭＭ）に統合され得る。ＤＲＡＭセルは、行ごとにセンスアンプ（Ｓｅｎｓｅ  Ａｍｐ）によってリフレッシュされる。リフレッシュプロセスにおいては、リフレッシュコマンドに従って、１つまたは複数のバンクにおける行がリフレッシュされ得る。実際の適用中、通常、ランクを単位として使用することによってリフレッシュが実行される。具体的には、ランク内のすべてのバンクの行は、保持時間（ｒｅｔｅｎｔｉｏｎ  ｔｉｍｅ）内に少なくとも１回リフレッシュされる必要がある。保持時間は、ＤＲＡＭセル内のデータをリフレッシュ動作なしで保持することができる時間である。
【０００４】
当業者は、ｔＲＥＦＩ時間の間隔で、ランクがリフレッシュされる必要があるかどうかをメモリコントローラがチェックすることを知っていてもよい。各リフレッシュはｔＲＦＣ時間を消費する必要がある。ｔＲＥＦＩは平均リフレッシュ間隔（ａｖｅｒａｇｅ  ｒｅｆｒｅｓｈ  ｉｎｔｅｒｖａｌ）を示すために使用され、ｔＲＦＣは行リフレッシュサイクル時間（Ｒｅｆｒｅｓｈ  Ｃｙｃｌｅ  Ｔｉｍｅ）を示すために使用される。言い換えれば、ｔＲＥＦＩはメモリコントローラがリフレッシュコマンドを送信する平均間隔を示すために使用され、ｔＲＦＣはＤＲＡＭランクにおいて１つのリフレッシュコマンドを実行するために必要な時間を示すために使用される。従来のリフレッシュ解決策では、ランクがアイドル状態のときに、メモリコントローラがランクをリフレッシュし、または、ランクがアイドルではないときに、メモリコントローラがランクのリフレッシュを延期する。延期時間がしきい値を超えると、メモリコントローラはランクを強制的にリフレッシュし、延期されたリフレッシュのメイクアップリフレッシュを実行する。したがって、メイクアップリフレッシュが必要な時間期間内に、比較的大量のリフレッシュが発生する。リフレッシュプロセスにおいて、ｔＲＦＣのそのような時間枠内で、リフレッシュ中のランクは別の動作要求に応答することができない。したがって、そのような強制的なメイクアップリフレッシュは、システムのリフレッシュオーバーヘッドが比較的高くなる可能性がある。
【発明の概要】
【課題を解決するための手段】
【０００５】
本出願は、システムのリフレッシュロスを削減し、リフレッシュプロセスにおけるコンピュータシステムのパフォーマンスを向上させるために、メモリリフレッシュ技術およびコンピュータシステムを提供する。
【０００６】
第１の態様によれば、本発明の実施形態はメモリリフレッシュ方法を提供する。本方法は、メモリコントローラとダイナミックランダムアクセスメモリＤＲＡＭを含むコンピュータシステムに適用される。本方法では、メモリコントローラがアクセス要求を受信する。受信されたアクセス要求にあるＤＲＡＭ内の第１のランクにアクセスするためのアクセス要求の量が０より大きく、第２のしきい値未満である場合、メモリコントローラは第１のランクをリフレッシュする。
【０００７】
本発明のこの実施形態におけるメモリリフレッシュ方法では、メモリリフレッシュプロセスによってコンピュータシステムのパフォーマンスに生じる影響を軽減するために、ターゲットランクがリフレッシュされる必要があるかどうかを決定するために、受信したアクセス要求のステータスとアクセスされるべきターゲットランクのステータスの両方が包括的に考慮される。具体的には、受信されたアクセス要求にあるＤＲＡＭ内の第１のランクにアクセスするためのアクセス要求の量が０より大きく、第２のしきい値未満である場合、メモリコントローラは第１のランクをリフレッシュし得る。このようにして、たとえ第１のランクがアイドル状態になくても、第１のランクをアクティブにリフレッシュすることができる。したがって、アクセストラフィックが比較的重い場合、たとえ第１のランクがアイドル状態になれない場合でも、第１のランクを時間内にリフレッシュすることができる。リフレッシュの延期によって生じるパッシブリフレッシュによるコンピュータシステムのパフォーマンスへの影響が軽減され、メモリリフレッシュの柔軟性が向上する。したがって、システムのパフォーマンスを向上させることができ、リフレッシュのオーバーヘッドを削減することができる。
【０００８】
第１の可能な実装形態では、メモリコントローラによって第１のランクをリフレッシュするステップは、受信したアクセス要求のターゲットランクの量が指定された第４のしきい値未満であり、アクセス要求における読取り要求または書込み要求の割合が、指定された第５のしきい値より大きい場合、メモリコントローラによって、Ｔ／Ｎ間隔で第１のランクをリフレッシュするステップを含み、Ｔは標準的な平均リフレッシュ間隔を示すために使用され、Ｎは１より大きい整数である。
【０００９】
本発明のこの実施形態では、メモリリフレッシュプロセスにおいて、アクセス要求のアクセスされるべきターゲットランクの分布、およびアクセス要求における読取りまたは書込みの割合に基づいて、リフレッシュモードがさらに選択され得る。具体的には、アクセスされるべきターゲットランクが比較的集中しており、アクセス要求における読取り要求または書込み要求の割合が比較的大きい場合、単一のリフレッシュ間の間隔が短くなる可能性があり、すなわち、第１のランクがより高いリフレッシュ頻度でリフレッシュされる。平均リフレッシュ間隔は比較的短く、単一のリフレッシュに必要な時間も比較的短いため、単一のリフレッシュプロセスにおいては、システムはｔＦＡＷ制限の影響を受けにくく、システム全体のパフォーマンスはあまり低下しない。このようにして、ＤＤＲプロトコルにおけるｔＦＡＷ制限によってリフレッシュプロセスにおいてシステムに生じる影響を軽減することができ、システムパフォーマンスを向上させることができる。
【００１０】
第１の態様および第１の態様の第１の可能な実装形態を参照すると、第２の可能な実装形態において、メモリコントローラが第１のランクをリフレッシュするプロセスにおいて、メモリコントローラは第１のランクにアクセスするための第１のアクセス要求を受信し、次いで、メモリコントローラは第１のアクセス要求を構成済みのバッファキューにバッファする。メモリコントローラは、少なくともバッファキューとスケジューリングキューを含み、バッファキューは、リフレッシュ動作が実行されているランクに対するアクセス要求をバッファするために使用され、スケジューリングキューは、リフレッシュ動作が実行されていないランクに送信されるべきアクセス要求をバッファするために使用される。このようにして、第１のランクのリフレッシュプロセスにおいて受信した第１のランクに対するアクセス要求が、メモリコントローラによって、別のランクに対するアクセス要求でスケジューリングキューを輻輳させたり、処理に影響を与えたりするのを防ぐことができる。コンピュータシステム全体の処理効率がさらに向上する。
【００１１】
第１の態様の第２の可能な実装形態を参照すると、第３の可能な実装形態では、メモリコントローラは、ＤＲＡＭ内の第２のランクにアクセスするための第２のアクセス要求をさらに受信する。メモリコントローラは、第２のランクがリフレッシュされていないときに、第２のアクセス要求をスケジューリングキューにバッファする。
【００１２】
第１の態様、または第１の態様の第１から第３の可能な実装形態のいずれか１つを参照すると、第４の可能な実装形態では、本方法は、メモリコントローラによって、受信されたアクセス要求にあるＤＲＡＭ内の第２のランクにアクセスするためのアクセス要求の量が第２のしきい値以上であり、第２のランクの延期されたリフレッシュの量が指定された第３のしきい値より大きい場合、第２のランクをリフレッシュするステップをさらに含む。第３のしきい値は１以上であり、指定された警告値未満であり、警告値は、第２のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される。
【００１３】
第１の態様、または第１の態様の第１から第４の可能な実装形態のいずれかを参照すると、第５の可能な実装形態では、本方法は、メモリコントローラによって、受信されたアクセス要求にあるＤＲＡＭ内の第３のランクにアクセスするためのアクセス要求の量が第２のしきい値以上であり、第３のランクで延期されたリフレッシュの量が指定された第３のしきい値を超えない場合、第３のランクでリフレッシュ動作を実行することをスキップするステップをさらに含む。第３のしきい値は１以上であり、指定された警告値未満であり、警告値は第３のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される。
【００１４】
第１の態様を参照すると、第６の可能な実装形態では、メモリコントローラによって第１のランクをリフレッシュするステップは、受信したアクセス要求のターゲットランクの量が指定された第４のしきい値以上であり、アクセス要求における読取り要求または書込み要求の割合が指定された第５のしきい値を超えない場合、メモリコントローラによって、Ｔ間隔で第１のランクをリフレッシュするステップを含む。Ｔは標準的な平均リフレッシュ間隔を示すために使用される。
【００１５】
第１の態様、または第１の態様の第１から第６の可能な実装形態のいずれか１つを参照すると、第７の可能な実装形態では、本方法は、第３のランクで延期されたリフレッシュの量が指定された第３のしきい値より大きい場合、メモリコントローラが、別の時間期間内に受信したアクセス要求の量が第１のしきい値を超えず、およびＤＲＡＭ内の第３のランクにアクセスするためのアクセス要求の量が０より大きいと決定した場合、メモリコントローラによって第３のランクをリフレッシュするステップをさらに含む。第３のしきい値は指定された警告値より小さく、警告値は第３のランクをすぐにリフレッシュする必要があることを示すために使用される。
【００１６】
第１の態様、または第１の態様の第１から第７の可能な実装形態のいずれか１つを参照すると、第８の可能な実装形態では、本方法は、第２のランクで延期されたリフレッシュの量が指定された第３のしきい値より大きい場合、メモリコントローラが、別の時間期間内に受信したアクセス要求の量が第１のしきい値を超えず、およびＤＲＡＭ内の第２のランクにアクセスするためのアクセス要求の量が０より大きいと決定した場合、メモリコントローラによって第２のランクをリフレッシュすることをスキップするステップをさらに含む。第３のしきい値は指定された警告値より小さく、警告値は第２のランクをすぐにリフレッシュする必要があることを示すために使用される。
【００１７】
第２の態様によれば、本出願はコンピュータシステムを提供する。本コンピュータシステムは、メモリコントローラと、メモリコントローラに接続されたダイナミックランダムアクセスメモリＤＲＡＭとを含む。メモリコントローラは、第１の態様、または第１の態様の可能な実装形態のいずれか１つによる方法を実行するように構成される。
【００１８】
第３の態様によれば、本出願はメモリコントローラを提供する。メモリコントローラは、コンピュータシステムにおけるダイナミックランダムアクセスメモリＤＲＡＭをリフレッシュするように構成される。メモリコントローラは、通信インターフェースとリフレッシュ回路を含む。通信インターフェースは、コンピュータシステムにおけるプロセッサによって送信されたアクセス要求を受信するように構成される。リフレッシュ回路は、受信されたアクセス要求にあるコンピュータシステムにおけるダイナミックランダムアクセスメモリＤＲＡＭ内の第１のランクにアクセスするためのアクセス要求の量が０より大きく、第２のしきい値未満である場合に、第１のランクをリフレッシュするように構成される。
【００１９】
第３の態様を参照すると、第１の可能な実装形態では、リフレッシュ回路は、受信したアクセス要求のターゲットランクの量が指定された第４のしきい値未満であり、アクセス要求における読取り要求または書込み要求の割合が、指定された第５のしきい値より大きい場合、Ｔ／Ｎ間隔で第１のランクをリフレッシュするように特に構成され、Ｔは標準的な平均リフレッシュ間隔を示すために使用され、Ｎは１より大きい整数である。
【００２０】
第３の態様、および第３の態様の第１の可能な実装形態を参照すると、第２の可能な実装形態では、通信インターフェースは、リフレッシュ回路が第１のランクをリフレッシュするプロセスにおいて、第１のランクにアクセスするための第１のアクセス要求を受信するようにさらに構成される。メモリコントローラはバッファをさらに含み、バッファは第１のアクセス要求を構成済みのバッファキューにバッファするように構成される。メモリコントローラは、少なくともバッファキューとスケジューリングキューを含み、バッファキューは、リフレッシュ動作が実行されているランクに対するアクセス要求をバッファするために使用され、スケジューリングキューは、リフレッシュ動作が実行されていないランクに送信されるべきアクセス要求をバッファするために使用される。
【００２１】
第３の態様の第２の可能な実装形態を参照すると、第３の可能な実装形態では、通信インターフェースは、ＤＲＡＭ内の第２のランクにアクセスするための第２のアクセス要求を受信するようにさらに構成される。バッファは、第２のランクがリフレッシュされていないときに、第２のアクセス要求をスケジューリングキューにバッファするようにさらに構成される。
【００２２】
第３の態様、または第３の態様の第１から第３の可能な実装形態のいずれか１つを参照すると、第４の可能な実装形態では、リフレッシュ回路は、受信されたアクセス要求にあるＤＲＡＭ内の第２のランクにアクセスするためのアクセス要求の量が第２のしきい値以上であり、第２のランクの延期されたリフレッシュの量が指定された第３のしきい値より大きい場合、第２のランクをリフレッシュするようにさらに構成される。第３のしきい値は１以上であり、指定された警告値未満であり、警告値は、第２のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される。
【００２３】
第３の態様、または第３の態様の第１から第４の可能な実装形態のいずれか１つを参照すると、第５の可能な実装形態では、リフレッシュ回路は、受信されたアクセス要求にあるＤＲＡＭ内の第３のランクにアクセスするためのアクセス要求の量が第２のしきい値以上であり、第３のランクで延期されたリフレッシュの量が指定された第３のしきい値を超えない場合、第３のランクでリフレッシュ動作を実行することをスキップするようにさらに構成され、第３のしきい値は１以上であり、指定された警告値より小さく、警告値は第３のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される。
【００２４】
第３の態様を参照すると、第６の可能な実装形態では、リフレッシュ回路は、受信したアクセス要求のターゲットランクの量が指定された第４のしきい値以上であり、アクセス要求における読取り要求または書込み要求の割合が指定された第５のしきい値を超えない場合、Ｔ間隔で第１のランクをリフレッシュするように特に構成され、Ｔは標準的な平均リフレッシュ間隔を示すために使用される。
【００２５】
第４の態様によれば、本出願は、メモリリフレッシュ装置をさらに提供する。メモリリフレッシュ装置は、コンピュータシステムにおけるダイナミックランダムアクセスメモリＤＲＡＭをリフレッシュするように構成される。メモリリフレッシュ装置は、第１の態様、または第１の態様の可能な実装形態のいずれか１つによる方法を実行するように構成された機能モジュールを含む。
【００２６】
第５の態様によれば、本出願は、プログラムコードを含むコンピュータプログラム製品をさらに提供し、プログラムコードに含まれる命令は、第１の態様、または第１の態様の可能な実装形態のいずれか１つによる方法を実装するためにコンピュータによって実行される。
【００２７】
第６の態様によれば、本出願は、コンピュータ可読ストレージ媒体をさらに提供し、コンピュータ可読ストレージ媒体はプログラムコードを記憶するように構成され、プログラムコードに含まれる命令は、第１の態様、または第１の態様の可能な実装形態のいずれか１つによる方法を実装するためにコンピュータによって実行される。
【００２８】
本発明の実施形態または従来技術における技術的解決策をより明確に説明するために、以下では、実施形態を説明するために必要な添付の図面について簡単に説明する。明らかに、以下の説明における添付の図面は、本発明のいくつかの実施形態を示すにすぎない。
【図面の簡単な説明】
【００２９】
【図１】本発明の一実施形態によるコンピュータシステムの概略アーキテクチャ図である。
【図２】本発明の一実施形態によるメモリコントローラの概略構造図である。
【図３】本発明の一実施形態によるメモリリフレッシュ方法の概略フローチャートである。
【図４】本発明の実施形態によるメモリリフレッシュ装置の概略構造図である。
【発明を実施するための形態】
【００３０】
当業者が本発明の技術的解決策をよりよく理解するために、以下は、本発明の実施形態の添付の図面を参照して、本発明の実施形態の技術的解決策を明確に説明する。明らかに、記載された実施形態は、本発明の実施形態のすべてではなく、一部にすぎない。
【００３１】
図１は、本発明の一実施形態によるコンピュータシステムの概略アーキテクチャ図である。図１に示されるように、コンピュータシステム１００は、少なくともプロセッサ１０２、メモリコントローラ１０６、およびメモリ１０８を含み得る。通常、メモリコントローラ１０６は、プロセッサ１０２に統合され得る。本発明のこの実施形態で提供されるコンピュータシステムにおいては、図１に示される構成要素に加えて、コンピュータシステム１００は、通信インターフェース、および外部ストレージとして機能する磁気ディスクなどの他の構成要素をさらに含み得る点に留意されたい。ここに制限は課されない。
【００３２】
プロセッサ（Ｐｒｏｃｅｓｓｏｒ）１０２は、コンピュータシステム１００の計算ユニットおよび制御ユニット（Ｃｏｎｔｒｏｌ  Ｕｎｉｔ）である。プロセッサ１０２は、複数のプロセッサコア（ｃｏｒｅ）１０４を含み得る。プロセッサ１０２は、非常に大規模な集積回路であり得る。オペレーティングシステムおよび別のソフトウェアプログラムがプロセッサ１０２にインストールされ、その結果、プロセッサ１０２はメモリ１０８、バッファ、および磁気ディスクにアクセスすることができる。本発明のこの実施形態では、プロセッサ１０２のコア１０４は、たとえば、中央処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  ｕｎｉｔ、ＣＰＵ）であってもよく、別の特定用途向け集積回路（Ａｐｐｌｉｃａｔｉｏｎ−Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ、ＡＳＩＣ）であってもよいことが理解され得る。
【００３３】
メモリコントローラ（Ｍｅｍｏｒｙ  Ｃｏｎｔｒｏｌｌｅｒ）１０６は、コンピュータシステム１００内にあり、メモリ１０８を制御し、メモリ１０８からコア１０４へのデータ送信を管理および計画するように構成されたバス回路コントローラである。メモリ１０８は、メモリコントローラ１０６を通じてコア１０４とデータを交換することができる。メモリコントローラ１０６は、別個のチップとすることができ、システムバスを通じてコア１０４に接続することができる。当業者は、メモリコントローラ１０６が（図１に示されるように）プロセッサ１０２に統合されてもよく、ノースブリッジに構築されてもよいことを知っていてもよい。メモリコントローラ２０の特定の位置は、本発明のこの実施形態では限定されない。実際の適用中、メモリコントローラ１０６は、メモリ１０８にデータを書き込む、またはメモリ１０８からデータを読み取るために、必要なロジックを制御し得る。
【００３４】
メモリ１０８は、コンピュータシステム１００のメインメモリである。メモリ１０８は、ダブルデータレート（ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ、ＤＤＲ）バスを通じてメモリ１０８に接続されている。メモリ１０８は、通常、オペレーティングシステム上で現在実行されている様々なソフトウェア、入力および出力データ、および外部ストレージと交換される情報を記憶するように構成される。プロセッサ１０２のアクセス速度を上げるためには、メモリ１０８はアクセス速度が速いという利点を有する必要がある。従来のコンピュータシステムアーキテクチャでは、通常、ダイナミックランダムアクセスメモリ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＤＲＡＭ）がメモリ１０８として使用される。メモリコントローラ１０６を通じて、プロセッサ１０２は、メモリ１０８に高速でアクセスし、メモリ１０８  ０内の任意のストレージユニットに対して読取り動作および書込み動作を実行することができる。
【００３５】
本発明のこの実施形態では、メモリ１０８がＤＲＡＭであることが、説明のための例として使用される。したがって、メモリ１０８は、ＤＲＡＭ１０８とも呼ばれ得る。データは、ＤＲＡＭ１０８のストレージユニット（ＤＲＡＭセルとも呼ばれ得る）に記憶される。本発明のこの実施形態では、ストレージユニットは、データを記憶するための最小ストレージユニット（ｃｅｌｌ）である。一般に、１つのストレージユニットに１ビット（ｂｉｔ）データを記憶し得る。確かに、いくつかのストレージユニットは、代わりに複数の値を記憶し得る。前述のように、ＤＲＡＭはコンデンサ内の電荷量を使用することによってデータ０または１を示す。コンデンサ内の電荷は漏れることがあり、コンデンサ内の電荷が不足すると、保存されたデータにエラーが発生する可能性がある。したがって、メモリコントローラ１０６は、ＤＲＡＭ１０８内のデータ損失を回避するために、一定の時間期間の間隔でＤＲＡＭ１０８内のデータをリフレッシュする。さらに、ＤＲＡＭ１０８は揮発性であり、コンピュータシステム１００の電源がオフになると、ＤＲＡＭ１０８内の情報は保存されなくなる。
【００３６】
実際の適用中、ＤＲＡＭ１０８内のＤＲＡＭセルはマトリックスに配置される。このマトリックスはＤＲＡＭバンクと呼ばれる。ＤＲＡＭバンク内の任意のビットは、対応する行および列デコーダを使用することによって、メモリコントローラ１０６によって配置することができる。複数のＤＲＡＭバンクがＤＲＡＭチップ（メモリチップとも呼ばれ得る）を形成し得、複数のＤＲＡＭチップがＤＲＡＭランクを形成し得る。複数のＤＲＡＭランクはデュアルインラインメモリモジュール（Ｄｕａｌ−Ｉｎｌｉｎｅ−Ｍｅｍｏｒｙ−Ｍｏｄｕｌｅｓ、ＤＩＭＭ）に統合され得る。たとえば、図１に示されるように、ＤＲＡＭ１０８は複数のチャネル（ｃｈａｎｎｅｌ）１１０を含み得る。各チャネル１１０は少なくとも１つのランクを含み得、各ランクは少なくとも１つのバンクを含み得る。各バンクは、データを記憶するための複数のストレージユニットを含む。当業者は、ランクが同じチップ選択（ｃｈｉｐ  ｓｅｌｅｃｔ）信号に接続されたメモリチップ（ｃｈｉｐ）であることを知っていてもよい。メモリコントローラは、同じランク内のチップ上で書込み動作を実行することができ、同じランク内のチップは同じ制御信号を共有する。メモリコントローラ１０６は、メモリバスを通じてＤＲＡＭ１０８内の各チャネル内のストレージユニット内のデータに個別にアクセスし得る。
【００３７】
当業者は、ＤＲＡＭチップのリフレッシュサイクルが、ＤＲＡＭチップ内の各ストレージユニットの保持時間（ｒｅｔｅｎｔｉｏｎ  ｔｉｍｅ）に関連付けられることを知っていてもよい。現在、一般的に見られるＤＲＡＭチップの標準的なリフレッシュサイクルはすべて固定されている。通常、標準的なリフレッシュサイクルは６４ミリ秒である。従来のリフレッシュ解決策では、メモリコントローラは、ｔＲＥＦＩ時間間隔で、ランクがリフレッシュされる必要があるかどうかをチェックする。各リフレッシュはｔＲＦＣ時間を消費する必要がある。ｔＲＥＦＩは、メモリの平均リフレッシュ間隔（ａｖｅｒａｇｅ  ｒｅｆｒｅｓｈ  ｉｎｔｅｒｖａｌ）である。言い換えれば、ｔＲＥＦＩは、メモリコントローラがリフレッシュコマンドを送信する平均間隔を示すために使用される。ｔＲＥＦＩは、リフレッシュサイクルと、リフレッシュサイクルにおいて送信されるリフレッシュコマンドの量に基づいて決定され得る。たとえば、ｔＲＥＦＩは６４ミリ秒／８１９２＝７．８マイクロ秒であり、６４ミリ秒はリフレッシュサイクルであり、８１９２はリフレッシュサイクルにおいて送信されるリフレッシュコマンドの量である。ｔＲＦＣは、行のリフレッシュサイクル時間（Ｒｏｗ  Ｒｅｆｒｅｓｈ  Ｃｙｃｌｅ  Ｔｉｍｅ）である。言い換えれば、ｔＲＦＣは、ＤＲＡＭランクにおいて１つのリフレッシュコマンドを実行するために必要な時間を示すために使用される。一般的に、ｔＲＥＦＩが長いほどｔＲＦＣがより大きいことを示し、ｔＲＥＦＩがより短いほど、ｔＲＦＣがより小さいことを示す。リフレッシュプロセスにおけるｔＲＦＣ時間内に、リフレッシュ中のランクはランクに対する要求に応答できない。したがって、リフレッシュによるシステムパフォーマンスへの影響を軽減するために、リフレッシュ頻度が調整され得る。
【００３８】
当業者は、異なるリフレッシュモードが異なるリフレッシュ頻度を有することを知っていてもよい。ダブルデータレート（ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ、ＤＤＲ）プロトコルは、１Ｘモード、２Ｘモード、および４Ｘモードの３つのリフレッシュモードを指定する。１Ｘモードでは、リフレッシュ動作はメモリチップ上でＤＤＲプロトコルにおいて指定されたｔＲＥＦＩ（ｂａｓｅ）の間隔で実行され、１回のリフレッシュ要求を実行するための時間はｔＲＦＣ１である。２Ｘモードでは、リフレッシュ動作はメモリチップ上でｔＲＥＦＩ（ｂａｓｅ）／２の間隔で実行され、１回のリフレッシュ要求を実行するための時間はｔＲＦＣ２である。４Ｘモードでは、リフレッシュ動作はメモリチップ上でｔＲＥＦＩ（ｂａｓｅ）／４の間隔で実行され、１回のリフレッシュ要求を実行するための時間はｔＲＦＣ３である。ｔＲＦＣ１＞ｔＲＦＣ２＞ｔＦＲＣ３である。ｔＲＥＦＩ（ｂａｓｅ）は、コンピュータシステムが準拠するＤＤＲプロトコルにおいて定義された標準の平均的なリフレッシュ間隔を示すために使用される。通常、ｔＲＥＦＩ（ｂａｓｅ）は、ＤＲＡＭチップの表面温度が通常の温度範囲（０℃から８５℃）内にある状態で１ＸモードにおけるｔＲＥＦＩを示すために使用される。ＤＤＲ４標準に従って、ｔＲＥＦＩとｔＲＦＣの値は、実際のステータスに応じて設定され得る。たとえば、８Ｇｂの容量を有するＤＲＡＭチップの場合、１Ｘ構成では、ｔＲＥＦＩは７．８マイクロ秒であり得、ｔＲＦＣは３５０ナノ秒であり得る。４Ｘ構成では、ｔＲＥＦＩは１．９５マイクロ秒であり得、ｔＲＦＣは１６０ナノ秒であり得る。ダイナミックリフレッシュモード調整は、ＤＤＲ４プロトコルにおいてサポートされる。ＤＤＲ４プロトコルによれば、メモリリフレッシュプロセスにおいて、メモリリフレッシュモードは、１Ｘモード、２Ｘモード、および４Ｘモードの間で互いに切り替えられ得る。
【００３９】
前述のように、従来技術では、メモリコントローラは、ｔＲＥＦＩ時間の間隔で、ランクがリフレッシュされる必要があるかどうかをチェックする。ランクがアイドル状態にある場合、メモリコントローラはランクをリフレッシュし、ランクがアイドル状態ではない場合、メモリコントローラはランクのリフレッシュを延期する。延期時間がしきい値を超えると、メモリコントローラはランクを強制的にリフレッシュする。ただし、メモリ内のトラフィックが比較的重い場合、ランクがアイドル状態になることはめったになく、ランクがアイドル状態になることができない可能性がある。ランクがアイドル状態になった後にのみランクがリフレッシュされる場合、リフレッシュは継続的に延期される必要がある。最後に、データ損失を回避するためにリフレッシュが実行される必要がある場合、現在の時間期間内に実行されるべきリフレッシュだけが実行される必要があるのではなく、以前に延期されたリフレッシュのメイクアップリフレッシュも実行される必要がある。したがって、メイクアップリフレッシュが必要な時間期間内に、比較的大量のリフレッシュが発生する。この場合、たとえ平均リフレッシュ間隔ｔＲＥＦＩに達していない場合でも、リフレッシュが実行される必要がある。言い換えれば、メイクアップリフレッシュが実行される必要がある場合、パッシブリフレッシュが増加する。ランクにアクセスするための要求への応答はリフレッシュ中の時間に間に合わないため、パッシブリフレッシュが比較的大量にある場合、アクセスサービスの中断時間が長くなる。その結果、プロセッサが停止したり、動作の効率が低下したりする可能性がある。この場合、システムパフォーマンスへの影響がより大きくなり、比較的高いリフレッシュオーバーヘッドが発生する。
【００４０】
当業者は、メモリ１０８内のランクに対するリフレッシュ動作が独立していることを知っていてもよい。研究プロセスにおいて、発明者は、ＤＲＡＭをリフレッシュするプロセスにおいて、リフレッシュ中のランクがリフレッシュプロセスにおける要求に応答できず、システムのリフレッシュオーバーヘッドが発生し、さらに、リフレッシュプロセスにおいて、リフレッシュ中のランクに対する要求がスケジューリングキューを輻輳させ、時間内に別のランクに送信される別のランクに対する要求がスケジューリングキューに入れないようにすることを発見した。これは、システム全体のパフォーマンスに影響を与える原因でもある。さらに、リフレッシュプロセスでは、異なるリフレッシュモードが異なるリフレッシュ頻度を有し、リフレッシュ頻度が異なるとバス利用率も異なる。したがって、リフレッシュプロセスでは、リフレッシュモードの選択もシステムのパフォーマンスに影響する。
【００４１】
コンピュータシステムのリフレッシュオーバーヘッドを削減し、リフレッシュプロセスにおけるコンピュータシステム全体のパフォーマンスを向上させるために、本発明の実施形態は、メモリスケジューリングポリシーを向上させ、スケジューリングキューでのリフレッシュ動作の輻輳による別のランクに対する要求の実行の失敗を回避するためのメモリリフレッシュ方法を提供する。さらに、システムバス利用率は、リフレッシュ頻度を動的に調整することによりさらに向上され得る。以下に、本発明のこの実施形態で提供されるコンピュータシステムにおけるメモリリフレッシュ解決策を、図１を参照して詳細に説明する。
【００４２】
図２は、本発明の一実施形態によるメモリコントローラ１０６の概略構造図である。説明を明確にするために、図２はまた、メモリコントローラ１０６とプロセッサコア１０４との間、およびメモリコントローラ１０６とメモリ１０８との間の接続を概略的に示す。メモリ１０８は、ランク０、ランク１、およびランク２などの複数のランクを含み得る。図２に示されるように、メモリコントローラ１０６は、通信インターフェース１０６１、統計モジュール１０６２、リフレッシュ回路１０６４、バッファキュー１０６６、スケジューリングキュー１０６８、およびスケジューラ１０６９を含み得る。
【００４３】
本発明のこの実施形態では、メモリコントローラ１０６内の通信インターフェース１０６１は、コンピュータ内のプロセッサ１０２に接続されたフロントエンドインターフェースを含み得、またメモリ１０８に接続されたバックエンドインターフェースも含み得る。具体的には、メモリコントローラ１０６は、通信インターフェース１０６１を通じて、コンピュータシステム内のプロセッサ（たとえば、図１のコア１０４）によって送信されたアクセス要求を受信し得る。通信インターフェース１０６１を通じて、メモリコントローラ１０６は、データをメモリ１０８に記憶してもよく、メモリ１０８からデータを読み取ってもよい。
【００４４】
統計モジュール１０６２は、２つの態様における統計関数を含み得る。第１に、統計モジュール１０６２は、メモリコントローラ１０６によって受信されたアクセス要求のターゲットランクの分布およびアクセス要求の動作タイプに関する統計を収集するように構成され得る。ターゲットランクは、アクセス要求を使用することによってアクセスされるべきランクである。アクセス要求の動作タイプは、読取り動作および書込み動作などのタイプを含み得る。具体的には、統計モジュール１０６２は、アクセス要求のターゲットランクに関する統計を収集し、アクセス要求における動作タイプを取得し得る。第２に、統計モジュール１０６２は、メモリコントローラ１０６によって受信されたアクセス要求の量に関する統計をさらに収集し得る。具体的には、統計モジュール１０６２は、アクセスされるべきランクごとのアクセス要求の量およびメモリコントローラ１０６によって受信されたアクセス要求の総量に関する統計を収集し得る。統計モジュール１０６２は、バッファキュー１０６６およびスケジューリングキュー１０６８においてバッファされたアクセス要求に基づいて統計を収集し得る。実際の適用中、統計モジュール１０６２はカウンタによって実装され得る。言い換えれば、統計モジュール１０６２は、１つまたは複数のカウンタを含み得る。本発明のこの実施形態では、アクセス要求は、メモリにアクセスするためのプロセッサの要求である。アクセス要求は、読取り要求、書込み要求などを含み得る。言い換えれば、プロセッサは、アクセス要求に従ってメモリからデータを読み取ってもよく、メモリにデータを書き込んでもよい。
【００４５】
リフレッシュ回路１０６４は、統計モジュール１０６２の統計結果に基づいて、ｔＲＥＦＩ時間間隔で、リフレッシュ要求を生成するかどうかを決定し、生成されたリフレッシュ要求をスケジューリングキューに入れるように構成される。たとえば、統計モジュール１０６２が、統計収集を通じて、ランクに対するアクセス要求の量が指定されたしきい値未満であることを取得すると、リフレッシュ回路１０６４は、ランクに対するリフレッシュ要求を生成し、リフレッシュ要求をスケジューリングキュー１０８に入れることができる。実際の適用中、リフレッシュ回路１０６４によって生成されたリフレッシュ要求は、代わりにスケジューラ１０６９に直接送信され得、したがってスケジューラ１０６９は生成されたリフレッシュ要求をメモリ１０８に送信し、メモリ１０８は、生成されたリフレッシュ要求に従って、対応するランクでリフレッシュ動作を実行することが理解され得る。ｔＲＥＦＩは、平均リフレッシュ間隔を示すために使用される点に留意されたい。実際の適用中、リフレッシュ回路１０６４は、代わりに、ｔＲＥＦＩ未満の間隔でリフレッシュ要求を生成し得る。たとえば、メイクアップリフレッシュが実行される必要がある場合、リフレッシュ回路１０６４は、ｔＲＥＦＩ未満の間隔でリフレッシュ要求を生成し得る。さらに、当業者は、ｔＲＥＦＩが異なるリフレッシュモードで変化することを知っていてもよい。
【００４６】
バッファキュー１０６６は、ランクに対してリフレッシュ動作を実行するプロセスにおいて、コア１０４によって送信された、ランクに対するアクセス要求をバッファするように構成される。たとえば、メモリ１０８のランク０が例として使用される。ランク０でリフレッシュ動作を実行するプロセスでは、メモリコントローラ１０６がコア１０４からランク０に対する読取り要求を受信した場合、読取り要求はスケジューリングキュー１０６８ではなくバッファキュー１０６６にバッファされ得る。実際の適用中、バッファキュー１０６６内のアクセス要求に対してスケジューリング優先度がさらに設定され得る。たとえば、いくつかのアクセス要求は、優先スケジューリングまたは通常スケジューリングに設定され得る。
【００４７】
スケジューリングキュー１０６８は、コア１０４によって送信されるアクセス要求、およびリフレッシュ回路１０６４によって送信されるリフレッシュ要求などの動作要求をバッファするように構成される。スケジューラ１０６９は、たとえばメモリ１０８へのアクセス、またはメモリ１０８のリフレッシュなどの動作を実装するために、スケジューリングキュー１０６８内の動作要求（少なくともアクセス要求およびリフレッシュ要求を含む）をメモリ１０８に送信するように構成される。本発明のこの実施形態では、バッファキュー１０６６は、スケジューリングキュー１０６８の先行バッファである。このように、バッファキュー１０６６は、スケジューリングキュー１０６８に入るアクセス要求をバッファするように構成され得る。本発明のこの実施形態では、説明の便宜上、バッファキュー１０６６およびスケジューリングキュー１０６８を含む２つのレベルのバッファが構成されることが、本発明のこの実施形態において例として使用される。実際の適用中、要件に応じて、より多くのレベルのバッファが構成され得る。たとえば、より多くのレベルのバッファキュー１０６６が、スケジューリングキュー１０６８の前に構成され得る。
【００４８】
以下では、図２を参照して、本発明の実施形態において提供されるメモリリフレッシュ方法を詳細に説明する。図３は、本発明の一実施形態によるメモリリフレッシュ方法のフローチャートである。図３に示されるメモリリフレッシュ方法は、図１および図２に示されるメモリコントローラ１０６によって実行され得る。図３に示されるように、本方法は以下のステップを含み得る。
【００４９】
ステップ３０１において、メモリコントローラ１０６は、コア１０４によって送信されたアクセス要求を受信する。本発明のこの実施形態では、アクセス要求は、メモリ１０８にアクセスするために使用される要求である。メモリコントローラ１０６は、アクセス要求に応じて、メモリ１０８からデータを読み取るか、メモリ１０８にデータを書き込むことができる。アクセス要求の動作タイプは、読取り動作および書込み動作などのタイプを含み得る。実際の適用中、メモリコントローラ１０６とコア１０４との間の通信インターフェース１０６１を通じて、メモリコントローラ１０６は、コア１０４によって送信されたアクセス要求を受信することができる。
【００５０】
ステップ３０２において、メモリコントローラ１０６は、受信したアクセス要求の量が第１のしきい値より大きいかどうかを決定する。前述のように、メモリ内のデータ損失を回避するために、メモリコントローラ１０６は、ｔＲＥＦＩ時間の間隔で、ランクがリフレッシュされる必要があるかどうかをチェックする。本発明のこの実施形態では、説明を簡単にするために、ランクがリフレッシュされる必要があるかどうかをメモリコントローラ１０６がチェックするプロセスは、リフレッシュポーリングプロセスと呼ばれる。１つのｔＲＥＦＩ時間は、時間期間と呼ばれる。言い換えれば、メモリコントローラ１０６は、ｔＲＥＦＩ時間の間隔でリフレッシュポーリングを１回実行する。具体的には、ある場合には、リフレッシュポーリングプロセスにおいて、メモリコントローラ１０６は、統計収集を通じて統計モジュール１０６２によって取得された、メモリコントローラ１０６においてバッファされる処理されるべきアクセス要求の量に基づいて、アクセス要求の量が第１のしきい値を超えているかどうかを決定し得る。別の場合では、メモリコントローラ１０６は、統計収集を通じて統計モジュール１０６２によって取得された、指定された時間期間内にメモリコントローラ１０６によって受信されたアクセス要求の量に基づいて、アクセス要求の量が第１のしきい値を超えているかどうかを決定し得る。指定された時間期間は、ｔＲＥＦＩを超えない時間期間であり得る。第１のしきい値は０より大きい。第１のしきい値は、実際の適用中のトラフィックの大きさに基づいて事前設定され得る。たとえば、第１のしきい値は１００に設定され得る。メモリコントローラ１０６によって受信されたアクセス要求の量が第１のしきい値より大きく、比較的大量のアクセス要求があることを示す場合、方法はステップ３０４に進む。メモリコントローラ１０６によって受信されたアクセス要求の量が第１のしきい値を超えない場合、方法はステップ３０６に進む。
【００５１】
ステップ３０４において、メモリコントローラ１０６は、アクセスされるべき第１のランクに対するアクセス要求の量が第２のしきい値より大きいかどうかを決定する。第１のランクは、メモリ１０８内の任意のランクであり得る。本発明のこの実施形態では、メモリコントローラ１０６は、統計収集を通じて統計モジュール１０６２によって取得された、第１のランクに対するアクセス要求の量に基づいて、第１のランクに対するアクセス要求の量が第２のしきい値未満かどうかを決定し得る。第２のしきい値は、適用シナリオに応じて具体的に設定され得、第２のしきい値は１より大きい。たとえば、第２のしきい値は２０に設定され得る。第１のランクにアクセスするためのアクセス要求の量が第２のしきい値未満である場合、方法はステップ３１０に進む。第１のランクにアクセスするためのアクセス要求の量が第２のしきい値より大きい場合、方法はステップ３０８に進む。第１のランクに対するアクセス要求の量は、ステップ３０２において指定された時間期間内にメモリコントローラ１０６によって受信される第１のランクに対するアクセス要求の量でもよく、メモリコントローラ１０６においてバッファされる第１のランクに対する処理されるべきアクセス要求の量でもよい点に留意されたい。
【００５２】
ステップ３０６において、メモリコントローラ１０６は、第１のランクがアイドル状態にあるかどうかを決定する。具体的には、ステップ３０２において、メモリコントローラ１０６が、受信したアクセス要求の量が第１のしきい値より大きいと決定すると、それはメモリ全体のアクセストラフィックが比較的重いことを示し、この場合、メモリコントローラ１０６は、第１のランクがリフレッシュされる必要があるかどうかをさらに決定する必要がある。第１のランクがアイドル状態にある場合、言い換えれば、メモリコントローラのスケジューリングキューにある第１のランクにアクセスするためのアクセス要求の量が０である場合、方法はステップ３１０に進む。第１のランクがアイドル状態にない場合、言い換えれば、メモリコントローラのスケジューリングキューにある第１のランクにアクセスするためのアクセス要求の量が０でない場合、方法はステップ３０８に進む。
【００５３】
ステップ３０８において、メモリコントローラ１０６は、第１のランクで延期されたリフレッシュの量が指定された第３のしきい値より大きいかどうかを決定する。メモリコントローラ１０６が、第１のランクで延期されたリフレッシュの量が第３のしきい値より大きいと決定した場合、方法はステップ３１０に進む。メモリコントローラ１０６が、第１のランクで延期されたリフレッシュの量が第３のしきい値を超えないと決定した場合、方法はステップ３１２に進む。本発明のこの実施形態では、第３のしきい値は１以上であり、指定された警告値未満である。警告値は、ランクを延期できるリフレッシュコマンド（ｐｏｓｔｐｏｎｉｎｇ  ｒｅｆｒｅｓｈ  ｃｏｍｍａｎｄｓ）の最大量に基づいて決定され得る。たとえば、ＤＤＲ４プロトコルによれば、ランクごとに最大８つのリフレッシュコマンドを延期することができる。言い換えれば、警告値は８であり、第３のしきい値は８未満である必要がある。たとえば、第３のしきい値は６に設定され得る。
【００５４】
本発明のこの実施形態では、延期レジスタ（図２には図示せず）がリフレッシュ回路１０６４に配置され得、延期レジスタは、第１のランクの延期されたリフレッシュの量に関する統計を収集するように構成され得る。実際の適用中、延期レジスタは、代替的に、リフレッシュ回路１０６４とは独立して配置され得る。別の場合では、延期レジスタを破棄することはできず、代わりに、統計収集を通じてソフトウェアを使用することによって、第１のランクで延期されたリフレッシュの量が取得される。本発明のこの実施形態では、第１のランクで延期されたリフレッシュの量が統計収集を通じて具体的に取得される方法に制限は課されない。
【００５５】
ステップ３１０において、メモリコントローラ１０６は第１のランクをリフレッシュする。具体的には、ある場合には、メモリコントローラ１０６内のリフレッシュ回路１０６４は、デフォルトのリフレッシュモードに従ってリフレッシュ要求を生成し得る。別の場合では、メモリコントローラ１０６内のリフレッシュ回路１０６４は、生成されたリフレッシュ要求に従って第１のランクをリフレッシュするために、統計収集を通じて統計モジュール１０６２によって取得されたアクセス要求の量、アクセス要求の種類、およびターゲットランクの分布に基づいてリフレッシュモードを決定し、決定されたリフレッシュモードに従ってリフレッシュ要求を生成し得る。
【００５６】
前述のように、ダブルデータレート（ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ、ＤＤＲ）プロトコルは、１Ｘモード、２Ｘモード、および４Ｘモードの３つのリフレッシュモードを指定する。本発明のこの実施形態では、リフレッシュモードは、少なくとも第１のリフレッシュモードおよび第２のリフレッシュモードを含み得る。第１のリフレッシュモードでは、メモリコントローラはｔＲＥＦＩ（ｂａｓｅ）／Ｎの間隔でリフレッシュを実行する。第２のリフレッシュモードでは、メモリコントローラはｔＲＥＦＩ（ｂａｓｅ）の間隔でリフレッシュを実行する。たとえば、第１のリフレッシュタイプは４Ｘまたは２Ｘモードであり得、第２のリフレッシュタイプは１Ｘモードを含み得る。ｔＲＥＦＩ（ｂａｓｅ）は、ＤＤＲプロトコルにおいて定義されている標準的な平均リフレッシュ間隔を示すために使用され、Ｎは１より大きい整数である。通常、ｔＲＥＦＩ（ｂａｓｅ）は、ＤＲＡＭチップの表面温度が通常の温度範囲（０℃から８５℃）内にある状態で１ＸモードのｔＲＥＦＩを示すために使用される。説明を簡単にするために、本発明のこの実施形態では、ｔＲＥＦＩ（ｂａｓｅ）はＴで示される場合もある。
【００５７】
メモリシステムの場合、リフレッシュ頻度の減少は、延期されたリフレッシュの減少よりもシステムパフォーマンスの向上にとって重要である。したがって、通常、４Ｘモードでリフレッシュを実行すると、１Ｘモードでリフレッシュを実行するよりもシステムのパフォーマンスが低下する。さらに、アクセス要求における高い読取り要求または書込み要求の割合が比較的高い場合、メモリ１０８は、読取りと書込みとの間の切替えの量が比較的少ないため、帯域幅利用率が比較的高い。しかしながら、本発明を実装するプロセスにおいて、発明者は、ＤＤＲプロトコルが４つのアクティブウィンドウ（Ｆｏｕｒ  Ａｃｔｉｖｅ  Ｗｉｎｄｏｗ、ｔＦＡＷ）を指定しているため、複数のアクセス要求に対してアクセスされるべきターゲットランクの量が比較的少ない場合、言い換えれば、複数のアクセス要求がメモリ１０８内の比較的少ない量のランクに集中している場合、ｔＦＡＷ時間枠において、同時に動作可能な１つのランクにおける行の量が制限され、したがって、代わりにシステム全体のパフォーマンスが低下することを発見した。ｔＦＡＷは、ｔＦＡＷ時間枠内で、１つのランクで最大４つの行アクティブコマンドを送信できることを意味する。例として、メモリ１０８内の２つのランクを取り上げる。読取り要求または書込み要求の割合が比較的高く、アクセス要求がランクのうちの一方に集中している場合、もう一方のランクがリフレッシュされる。リフレッシュ時間が長くなるほど、単一のランクアクセス期間が長くなり、システム全体のパフォーマンスが大幅に低下する。
【００５８】
本発明を実装するプロセスにおいて、発明者は、４Ｘモードと１Ｘモードとを比較すると、４Ｘモードでの１回のリフレッシュに対する単一のリフレッシュ時間ｔＲＦＣ３が比較的短いため、単一のリフレッシュプロセスにおいて、ｔＦＡＷ制限によって生じるシステムへの影響は比較的小さく、システム全体のパフォーマンスの低下は比較的小さいことを発見した。したがって、本発明のこの実施形態では、システム全体のパフォーマンスを向上させ、システムのｔＦＡＷ制限を削減するために、本発明のこの実施形態ではリフレッシュモードが動的に調整される。具体的には、ある場合には、リフレッシュ回路１０６４が、統計モジュール１０６２の統計結果に基づいて、アクセス要求のアクセスされるべきターゲットランクの量が指定された第４のしきい値未満であり、アクセス要求における読取り要求または書込み要求の割合が指定された第５のしきい値より大きいと決定した場合、リフレッシュ回路１０６４は、４Ｘモードで第１のランクをリフレッシュすることを決定し得る。言い換えれば、メモリコントローラ１０６によって受信されたアクセス要求のアクセスされるべきターゲットランクの量が比較的集中しており、読取り要求または書込み要求の割合が比較的高い場合、４Ｘモードで第１のランクがリフレッシュされ得る。実際の適用中、第４のしきい値は、メモリ１０８内のランクの総量に基づいて決定され得る。たとえば、メモリ１０８が４つのランクを含む場合、第４のしきい値は２に設定され得る。第５のしきい値は６０％であり得る。本発明のこの実施形態では、ターゲットランクは、アクセス要求を使用することによってアクセスされるべきランクであることが理解され得る。ターゲットランクの量は、アクセス要求を使用することによってアクセスされるべきランクの量である。
【００５９】
別の場合では、メモリコントローラ１０６によって受信されたアクセス要求のアクセスされるべきターゲットランクが比較的分散している場合、あるいはメモリコントローラ１０６によって受信されたアクセス要求における読取り要求または書込み要求の割合が第５のしきい値を超えない場合、リフレッシュ回路１０６４は１Ｘモードで第１のランクをリフレッシュし得る。本発明のこの実施形態では、第４のしきい値は０より大きく、第４のしきい値はメモリ１０８内のランクの総量未満であることが理解され得る。実際の適用中、第４のしきい値は、メモリ１０８内のランクの総量に基づいて決定され得る。たとえば、第４のしきい値は、ＤＲＡＭ内のすべてのランクの総量の半分に設定され得る。第５のしきい値は、比較的高い割合に設定され得る。たとえば、読取り要求の割合が、受信したアクセス要求の総量に占める読取り要求の量の割合によって測定される場合、第５のしきい値は６０％であり得る。
【００６０】
本発明のこの実施形態では、読取り要求の割合は、受信したアクセス要求における読取り要求の割合を示すために使用される。書込み要求の割合は、受信したアクセス要求における書込み要求の割合を示すために使用される。たとえば、読取り要求の割合は、アクセス要求の総量における読取り要求の量の割合によって表され得る。書込み要求の割合は、アクセス要求の総量に対する書込み要求の量の割合によって表され得る。実際の適用中、読取り要求の割合は、読取り要求の量と書込み要求の量の比率で表され得る。書込み要求は、読取り要求の量に対する書込み要求の量の比率によって表され得る。読取り要求または書込み要求の割合を決定できる場合は、ここに制限は課されない。
【００６１】
ステップ３１０において、リフレッシュ回路１０６４がリフレッシュモードを決定した後、リフレッシュ回路１０６４は、決定されたリフレッシュモード（たとえば、１Ｘモードまたは４Ｘモード）に従って対応するリフレッシュ要求を生成し、生成されたリフレッシュ要求を（図２に示されるように）スケジューリングキュー１０６８に入れ、その結果、スケジューラ１０６９がメモリ１０８にリフレッシュ要求を送信し得、メモリ１０８がメモリコントローラ１０６によって生成されたリフレッシュ要求に従って第１のランクでリフレッシュ動作を実行し得る。実際の適用中、リフレッシュ要求を生成した後、リフレッシュ回路１０６４は、代替的に、生成されたリフレッシュ要求をスケジューラ１０６９に直接送信し得、スケジューラ１０６９は、生成されたリフレッシュ要求を第１のランクに送信する。
【００６２】
第１のランクでリフレッシュ動作が実行される必要があるとメモリコントローラ１０６が決定した場合、メモリコントローラ１０６が第１のランクに対するアクセス要求を実行している場合、またはスケジューリングキューが依然として第１のランクに対するアクセス要求を有している場合、メモリコントローラ１０６は、システムパフォーマンスへの影響を回避するために、第１のランクに対して実行されているアクセス要求と、スケジューリングキュー内の第１のランクに対するアクセス要求との両方が処理された後にのみリフレッシュ要求を送信し得ることが理解され得る。
【００６３】
ステップ３１２において、メモリコントローラ１０６は、第１のランクでのリフレッシュ動作を延期する。具体的には、ステップ３０８において、メモリコントローラ１０６が、第１のランクで延期された動作の量が第３のしきい値を超えないと決定すると、メモリコントローラは第１のランクでのリフレッシュ動作を延期し、延期レジスタの値に１を加える。言い換えれば、メモリコントローラ１０６がステップ３０６を通じて第１のランクがアイドル状態ではないと決定した場合、すなわち、第１のランクに対するアクセス要求が処理されているか、スケジューリングキューに第１のランクに対するアクセス要求が依然として含まれている場合、第１のランクの延期の量が第３のしきい値に達しない場合は、第１のランクに対するアクセス要求が比較的大量にあると見なされ得る。パフォーマンスへの影響を回避するため、後続のポーリングプロセスにおいて第１のランクでリフレッシュ動作を実行するために、リフレッシュ動作は第１のランクでは実行されない。前述のように、第３のしきい値は、指定された警告値未満である。警告値は、第１のランクに延期できるリフレッシュコマンドの最大量に基づいて決定され得る。警告値は、第１のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される。言い換えれば、警告値は、メモリコントローラ１０６に、第１のランクで強制的にリフレッシュ動作を実行するよう指示するために使用される。
【００６４】
リフレッシュ動作が第１のランクで強制的に実行される場合、前に延期されたリフレッシュに対してメイクアップリフレッシュが実行される必要があることが理解され得る。したがって、メイクアップリフレッシュが必要な時間期間内に、比較的大量のリフレッシュが発生する。特定のメイクアップリフレッシュ時間期間内に、一態様では、スケジューリングキューに入れられた、第１のランクに対するアクセス要求の実行に失敗することがあり、その結果、スケジューリングキュー１０６８のスペースは比較的長時間にわたって占有され、別のランクに対するアクセス要求はスケジューリングキューに入ることができず、コンピュータシステム全体のパフォーマンスに影響を与える。別の態様では、短時間内のリフレッシュの増加によりシステムサービスが中断される場合がある。つまり、第１のランクを強制的にリフレッシュすると、コンピュータシステム１００のリフレッシュ消費電力が増加し、システムのパフォーマンスに影響を与える。
【００６５】
結論として、本発明のこの実施形態で提供されるリフレッシュ方法では、１つのｔＲＥＦＩポーリングプロセスにおいて、第１のランクのリフレッシュ動作に関して以下のいくつかのケースが存在し得る。
【００６６】
ケース１：メモリコントローラ１０６によって受信されたアクセス要求の量が第１のしきい値より大きく、第１のランクにアクセスするためのアクセス要求の量が第２のしきい値未満である場合、メモリコントローラ１０６は、第１のランクでリフレッシュ動作を直接実行する。言い換えれば、コンピュータシステム１００のアクセストラフィックが比較的重い場合、第１のランクにアクセスするためのアクセス要求の量が比較的少ない場合、メモリコントローラ１０６は、第１のランクがアイドル状態になった後にのみ第１のランクにリフレッシュ動作を実行する代わりに、第１のランクにリフレッシュ動作をアクティブに実行し得る。これは、コンピュータシステム１００のアクセストラフィックが比較的重い場合、第１のランクがアイドル状態になる可能性が非常に低いためであり、またデータ損失を回避するための後続の強制リフレッシュ中にリフレッシュが継続的に延期される場合、特定の時間内にパッシブリフレッシュが増加する場合がある。本発明のこの実施形態において提供されるそのようなアクティブリフレッシュ方式は、リフレッシュ延期によって発生するパッシブリフレッシュの増加によってコンピュータシステムのパフォーマンスに生じる影響を軽減し、メモリリフレッシュの柔軟性を向上させることができる。したがって、コンピュータシステムのパフォーマンスを向上させ、リフレッシュのオーバーヘッドを削減することができる。確かに、本発明のこの実施形態において、第１のランクにアクセスするためのアクセス要求の量が指定された第２のしきい値未満であることは、第１のランクがアイドルである場合を含むことが理解され得る。
【００６７】
ケース２：メモリコントローラ１０６によって受信されたアクセス要求の量が第１のしきい値より大きく、第１のランクにアクセスするためのアクセス要求の量は第２のしきい値以上であり、第１のランクで延期されたリフレッシュの量は第３のしきい値より大きい場合、メモリコントローラ１０６は第１のランクでリフレッシュ動作を直接実行する。言い換えれば、コンピュータシステム１００におけるメモリアクセストラフィックが比較的重く、第１のランクに対するアクセス要求の量も比較的大きい場合、第１のランクの延期の量が第３のしきい値より大きい場合、第１のランクで延期されたリフレッシュの量が警告値に達するために強制リフレッシュを実行する必要性の可能性を回避し、比較的大量のパッシブリフレッシュによるコンピュータシステムのパフォーマンスに生じる影響を軽減するために、リフレッシュ動作が第１のランクですぐに実行される必要があり、それによって、メモリリフレッシュの柔軟性を向上させる。第３のしきい値は実際の適用中に警告値を参照して指定されたしきい値であり、そのためコンピュータシステムがパフォーマンスに影響を与えずに特定の範囲内でリフレッシュを延期することができ、それによってメモリリフレッシュの柔軟性を向上させることが理解され得る。
【００６８】
ケース３：メモリコントローラ１０６によって受信されたアクセス要求の量が第１のしきい値より大きく、第１のランクにアクセスするためのアクセス要求の量は第２のしきい値以上であり、第１のランクで延期されたリフレッシュの量は第３のしきい値を超えない場合、第１のランクのリフレッシュ動作は延期され得る。言い換えれば、本発明のこの実施形態では、コンピュータシステム１００のメモリアクセストラフィックが比較的重く、第１のランクに対するアクセス要求の量も比較的大きい場合、スケジューリングキュー１０８における第１のランクに対するアクセス要求の処理に影響を与えることを回避するために、第１のランクで延期されたリフレッシュの量があらかじめ設定された第３のしきい値に達していない場合、第１のランクのリフレッシュ動作は延期され得る。
【００６９】
ケース４：メモリコントローラ１０６によって受信されるアクセス要求の量が第１のしきい値を超えず、第１のランクがアイドル状態にある場合、メモリコントローラ１０６は第１のランクでリフレッシュ動作を直接実行し得る。言い換えれば、コンピュータシステム１００のメモリトラフィックが比較的軽く、第１のランクがアイドル状態にある場合、第１のランクでのリフレッシュ動作は、コンピュータシステムのパフォーマンスに比較的小さな影響を生じさせる。したがって、リフレッシュ動作は、第１のランクで直接実行され得る。
【００７０】
ケース５：メモリコントローラ１０６によって受信されるアクセス要求の量が第１のしきい値を超えず、第１のランクはアイドル状態ではなく、第１のランクで延期されるリフレッシュの量は第３のしきい値より大きい場合、メモリコントローラ１０６は、第１のランクでリフレッシュ動作をアクティブに実行する必要がある。言い換えれば、コンピュータシステム１００のメモリトラフィックが比較的軽いが、第１のランクが比較的混雑している場合、延期されたリフレッシュの量が警告値に達するため、システムでのパッシブリフレッシュの増加を回避し、パッシブリフレッシュによるコンピュータシステムのパフォーマンスへの影響を軽減するために、第１のランクでの強制的なリフレッシュを回避するために、現在のポーリングプロセスにおいて第１のランクでリフレッシュ動作が実行される必要がある。
【００７１】
ケース６：メモリコントローラ１０６によって受信されるアクセス要求の量が第１のしきい値を超えず、第１のランクがアイドル状態ではなく、第１のランクで延期されるリフレッシュの量が第３のしきい値を超えない場合、メモリコントローラ１０６は、第１のランクでリフレッシュ動作を延期し得る。言い換えれば、コンピュータシステム１００のメモリトラフィックは比較的軽いが、第１のランクは比較的忙しい場合、可能な限り多くの第１のランクに対するアクセス要求を処理するために、第１のランクの延期の量が依然として第３のしきい値を超えない場合、第１のランクのリフレッシュ動作は延期され得る。
【００７２】
本発明のこの実施形態で提供されるメモリリフレッシュ方法についての上記の説明はすべて、一例として、１回のリフレッシュポーリングプロセスでメモリ１０８における第１のランクでリフレッシュ動作を使用することによってなされることが理解され得る。実際の適用中、各リフレッシュポーリングプロセスにおいて、メモリコントローラは、上記の方法に従って、異なるランクがリフレッシュされる必要があるかどうかを決定し得る。たとえば、第１のリフレッシュポーリングプロセスにおいては、メモリコントローラ１０６は、ケース１に従って第１のランクをリフレッシュし、ケース２に従ってメモリ１０８のいける第２のランクをリフレッシュし、ケース３に従ってメモリ１０８内の第３のランクでリフレッシュ動作を延期することを決定し得る。第２のリフレッシュポーリングプロセスでは、メモリコントローラ１０６は、ケース６に従って第１のランクのリフレッシュを延期し、ケース５に従って第２のランクをリフレッシュし得る。
【００７３】
さらに、メモリコントローラ１０６は、リフレッシュ動作が第１のランクで実行されているｔＲＦＣ時間期間内でも第１のランクに対するアクセス要求に応答することはできない。したがって、第１のランクに対するアクセス要求がスケジューリングキュー１０６８を輻輳させ、別のランク（たとえば、第２のランク）に対するアクセス要求がスケジューリングキュー１０６８に入ることができずにシステムパフォーマンスに影響を与えることを回避するために、本発明のこの実施形態では、リフレッシュ動作が第１のランクで実行されているときに、メモリコントローラ１０６が第１のランクに対するアクセス要求を受信すると、メモリコントローラ１０６は第１のランクに対するアクセス要求をバッファキュー１０６６に入れることができる。メモリコントローラ１０６８が第１のランクでリフレッシュ動作を実行した後、バッファキュー１０６６内の第１のランクに対するアクセス要求は、バッファキュー１０６６からスケジューリングキュー１０６８に入れられる。さらに、本発明のこの実施形態では、第１のランクでリフレッシュ動作を実行した後、メモリコントローラ１０６は、バッファキュー１０６６ではなく、スケジューリングキュー１０８に第１のランクに対する次に新しく受信したアクセス要求を直接入れることができる。
【００７４】
本発明のこの実施形態では、リフレッシュ動作が第１のランクで実行されているとき、リフレッシュ動作がメモリ１０８内の第２のランクで実行されていない場合、メモリコントローラ１０６は、第２のランクに対する受信したアクセス要求をスケジューリングキュー１０６８に直接入れることができることが理解され得る。このスケジューリング方法では、スケジューリングキュー内のアクセス要求のターゲットランクは散在するように分布され得、したがって、第１のランクでリフレッシュ動作を実行するプロセスにおいて、メモリコントローラ１０６は異なるランクに対するアクセス要求を可能な限り多く処理することができ、したがって、リフレッシュ動作プロセスにおけるコンピュータシステム１００のシステムオーバーヘッドを削減し、コンピュータシステム１００の実行効率を向上させる。
【００７５】
本発明のこの実施形態で提供されるリフレッシュ方法から、本発明のこの実施形態では、メモリリフレッシュプロセスによってコンピュータシステムのパフォーマンスに生じる影響を軽減するために、ターゲットランクがリフレッシュされる必要があるかどうかを決定するために、システムによって受信されたアクセス要求のステータスとアクセスされるべきターゲットランクのステータスの両方が包括的に考慮されることがわかる。このようにして、既存のＤＤＲプロトコルとの互換性に基づいてメモリコントローラのリフレッシュ時間を管理することによって、リフレッシュの延期によるパッシブリフレッシュの増加によるコンピュータシステムのパフォーマンスへの影響が軽減され、メモリリフレッシュの柔軟性が向上し、リフレッシュのオーバーヘッドが削減される。さらに、本発明のこの実施形態では、リフレッシュ動作が第１のランクで実行される必要がある場合、メモリコントローラのリフレッシュ効率を向上させ、コンピュータシステムのパフォーマンスを向上させるために、アクセス要求のターゲットランクの分布およびタイプ分布に基づいて異なるリフレッシュモードがさらに選択され得る。
【００７６】
さらに、本発明のこの実施形態では、アクセス要求の同時実行性を向上させて、第１のランクのリフレッシュ動作が別のランクに対するアクセス要求の処理に影響を与えないようにするために、メモリコントローラ内に複数のバッファレベルが設定され得る。たとえば、スケジューリングキューとバッファキューは別々に設定され得る。このようにして、第１のランクでリフレッシュ動作が実行されているｔＲＦＣ時間期間内に受信された第１のランクに対するアクセス要求が、ｔＲＦＣ時間期間内に受信された第１のランクに対するアクセス要求が別のランクに対するアクセス要求で、スケジューリングキューを輻輳させたり、メモリコントローラの処理に影響を与えたりするのを防ぐために、バッファキューにおいてバッファされ得る。コンピュータシステム全体の処理効率がさらに向上する。
【００７７】
実際の適用中、図３に示される実施形態の各ステップは必ずしも実行されない点に留意されたい。たとえば、メモリリフレッシュ方法は、図３に示される実施形態におけるシステム全体におけるアクセストラフィックの大きさを参照して説明され、たとえば、ポーリングプロセスにおいて、メモリコントローラ１０６によって受信されたアクセス要求の量が第１のしきい値より大きいかどうかを決定するために、ステップ３０２が最初に実行され得る。しかしながら、実際の適用中、システム全体におけるアクセストラフィックの大きさは区別されない場合があり、代わりに、リフレッシュされるべきランクのアクセストラフィックステータスに基づいて処理が直接実行される。この場合、図３の実施形態におけるステップ３０２は必要ではない。言い換えれば、本発明のこの実施形態において提供されるリフレッシュ方法は、システムのアクセストラフィックが重い場合とシステムのアクセストラフィックが軽い場合の両方で使用することができる。ここに制限は課されない。
【００７８】
図４は、本発明の実施形態によるメモリリフレッシュ装置の概略構造図である。メモリリフレッシュ装置４００は、図１に示されるメモリ１０８をリフレッシュするように構成される。図４に示されるように、メモリリフレッシュ装置４００は、受信モジュール４０２、統計モジュール４０４、決定モジュール４０６、およびリフレッシュモジュール４０８を含み得る。
【００７９】
受信モジュール４０２は、アクセス要求を受信するように構成される。具体的には、受信モジュール４０２は、コンピュータシステム１００内の１つまたは複数のコア１０４によって送信されたアクセス要求を受信し得る。受信モジュール４０２は、メモリ１０８によって返されたデータを受信するようにさらに構成され得ることが理解され得る。受信モジュール４０２は、具体的には、メモリコントローラ１０６とコア１０４との間の通信インターフェース、およびメモリコントローラ１０２とメモリ１０８との間の通信インターフェースを含む。
【００８０】
統計モジュール４０４は、受信モジュール４０２によって受信されたアクセス要求の量に関する統計を収集するように構成される。実際の適用中、統計モジュール４０４は、各ランクにアクセスするためのアクセス要求の量に関する統計をさらに収集し得る。
【００８１】
決定モジュール４０６は、受信されたアクセス要求にある第１のランクにアクセスするためのアクセス要求の量が、０より大きく第２のしきい値未満であるどうかを決定するように構成される。第１のランクは、メモリ内の任意のランクである。実際の適用中、決定モジュール４０６は、統計モジュール４０４の統計結果に基づいて決定を実行し得る。
【００８２】
リフレッシュモジュール４０８は、受信されたアクセス要求にある第１のランクにアクセスするためのアクセス要求の量が０より大きく第２のしきい値未満である場合に、第１のランクをリフレッシュするように構成される。前述のように、実際の適用中、ある場合には、リフレッシュモジュール４０８は、指定されたリフレッシュモードに従ってリフレッシュ要求を生成し、生成されたリフレッシュ要求に従って第１のランクをリフレッシュし得る。別の場合では、リフレッシュモジュール４０８は、生成されたリフレッシュ要求に従って第１のランクをリフレッシュするために、統計収集を通じて統計モジュール４０６によって取得されたアクセス要求の量およびアクセスされるべきターゲットランクの分布に基づいてリフレッシュモードを動的に決定し、決定されたリフレッシュモードに従ってリフレッシュ要求を生成し得る。具体的には、リフレッシュモジュール４０８は、メモリ１０８がリフレッシュ要求に従って第１のランクをリフレッシュできるように、生成されたリフレッシュ要求をメモリ１０８に送信し得る。
【００８３】
可能な場合、決定モジュール４０６は、受信したアクセス要求のターゲットランクの量が、指定された第４のしきい値未満かどうか、およびアクセス要求における読取り要求または書込み要求の割合が、指定された第５のしきい値より大きいかどうかを決定するようにさらに構成される。リフレッシュモジュール４０８は、受信したアクセス要求のターゲットランクの量が指定された第４のしきい値未満であり、アクセス要求における読取り要求または書込み要求の割合が、指定された第５のしきい値より大きい場合、Ｔ／Ｎ間隔で第１のランクをリフレッシュするように構成される。Ｔは標準的な平均リフレッシュ間隔を示すために使用され、Ｎは１より大きい整数である。具体的には、リフレッシュモジュール４０８は、第１のリフレッシュモードに従って第１のリフレッシュ要求を生成し、生成された第１のリフレッシュ要求に従って第１のランクをリフレッシュし得る。第１のリフレッシュモードでは、メモリコントローラはＴ／Ｎ間隔で第１のランクをリフレッシュする。実際の適用中、ＴはＤＤＲプロトコルにおいて指定されたｔＲＥＦＩ（ｂａｓｅ）であり得る。
【００８４】
可能な場合、メモリリフレッシュ装置４００は、バッファモジュール４１０をさらに含み得る。バッファモジュール４１０は、受信モジュール４０２によって受信されたアクセス要求をバッファキューまたはスケジューリングキューにバッファするように構成される。実際の適用中、バッファモジュール４０６は、バッファキューおよびスケジューリングキューを含み得る。バッファキューは、スケジューリングキューの先行キューである。
【００８５】
可能な場合、受信モジュール４０２は、第１のランクをリフレッシュするプロセスにおいて、第１のランクにアクセスするための第１のアクセス要求を受信するようにさらに構成される。バッファモジュール４０６は、第１のアクセス要求を構成済みのバッファキューにバッファするように構成される。バッファモジュール４０６は、バッファキューとスケジューリングキューを含み、バッファキューは、リフレッシュ動作が実行されているランクの新しく受信されたアクセス要求をバッファするために使用され、スケジューリングキューは、リフレッシュ動作が実行されていないランクに送信されるべきアクセス要求をバッファするために使用される。
【００８６】
別の可能な場合、受信モジュール４０２は、ＤＲＡＭにおける第２のランクにアクセスするための第２のアクセス要求を受信するようにさらに構成される。バッファモジュール４０６は、第２のランクでリフレッシュ動作が実行されていないときに、構成されたスケジューリングキューに第２のアクセス要求をバッファするようにさらに構成される。
【００８７】
任意で、決定モジュール４０６は、受信されたアクセス要求にあるＤＲＡＭ内の第２のランクにアクセスするためのアクセス要求の量が第２のしきい値未満かどうかを決定するようにさらに構成される。リフレッシュモジュール４０８は、受信されたアクセス要求にあるＤＲＡＭ内の第２のランクにアクセスするためのアクセス要求の量が第２のしきい値以上であり、第２のランクの延期されたリフレッシュの量が指定された第３のしきい値より大きい場合、第２のランクをリフレッシュするようにさらに構成される。第３のしきい値は指定された警告値未満であり、警告値は第２のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される。
【００８８】
別の可能な場合、決定モジュール４０６は、受信されたアクセス要求にあるＤＲＡＭ内の第３のランクにアクセスするためのアクセス要求の量が第２のしきい値未満かどうかを決定するようにさらに構成される。リフレッシュモジュール４０８は、受信されたアクセス要求にあるＤＲＡＭ内の第３のランクにアクセスするためのアクセス要求の量が第２のしきい値以上であり、第３のランクで延期されたリフレッシュの量が指定された第３のしきい値を超えない場合、第３のランクでリフレッシュ動作を実行することをスキップするようにさらに構成され、第３のしきい値は１以上であり、指定された警告値より小さく、警告値は第３のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される。
【００８９】
別の可能な場合、決定モジュール４０６は、受信したアクセス要求のターゲットランクの量が指定された第４のしきい値未満かどうか、およびアクセス要求における読取り要求または書込み要求の割合が指定された第５のしきい値より大きいかどうかを決定するようにさらに構成される。リフレッシュモジュール４０８は、受信したアクセス要求のターゲットランクの量が指定された第４のしきい値以上であり、アクセス要求における読取り要求または書込み要求の割合が指定された第５のしきい値を超えない場合、第１のランクをリフレッシュするようにさらに構成され、Ｔ間隔で第１のランクをリフレッシュすることを特に含み、Ｔは標準的な平均リフレッシュ間隔を示すために使用される。
【００９０】
別の可能な場合、リフレッシュモジュール４０８は、受信されたアクセス要求にあるＤＲＡＭ内の第２のランクにアクセスするためのアクセス要求の量が０より大きく、指定された第２のしきい値未満であり、第２のランクで延期されたリフレッシュの量が指定された第３のしきい値を超えず、第３のしきい値が１以上であり、指定された警告値未満であり、警告値が、第２のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される場合、第２のランクでのリフレッシュ動作の実行をスキップするようにさらに構成される。
【００９１】
別の可能な場合、リフレッシュモジュール４０８は、受信されたアクセス要求にあるＤＲＡＭ内の第３のランクにアクセスするためのアクセス要求の量が０より大きく、第３のランクで延期されたリフレッシュの量が指定された第３のしきい値より大きい場合、第３のランクをリフレッシュするようにさらに構成され、第３のしきい値は１未満であり、指定された警告値より小さく、警告値は第３のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される。
【００９２】
図４に示されるメモリリフレッシュ装置４００内のモジュールは、図２に示されるメモリコントローラ内の１つまたは複数の構成要素に別々に配置されてもよいことが理解され得る。本発明のこの実施形態では、図４に示される実施形態のモジュールの一部またはすべてが、この実施形態における解決策の目的を達成するための実際の要件に応じて選択され得る。図４の実施形態において詳細に説明されていないコンテンツについては、図３に示される方法の実施形態における関連する説明を参照されたい。
【００９３】
説明された装置の実施形態は単なる例であることが理解され得る。たとえば、モジュール分割は単なる論理的な機能分割であり、実際の実装形態では他の分割であってもよい。たとえば、複数のモジュールまたは構成要素が別のシステムに結合または統合されるか、またはいくつかの機能が無視されるか実行されないことがあり得る。さらに、前述の実施形態において説明したモジュール間の接続は、電気的、機械的、または他の形態であり得る。個別のパーツとして説明されているモジュールは、物理的に個別である場合とそうでない場合があり、モジュールとして表示されるパーツは物理モジュールである場合とそうでない場合がある。さらに、本出願の実施形態における機能モジュールは、独立して存在してもよく、または１つの処理モジュールに統合されてもよい。たとえば、図４に示される機能モジュールは、図２に示されるメモリコントローラに統合されてもよい。
【００９４】
本発明の一実施形態は、プログラムコードを記憶するコンピュータ可読ストレージ媒体を含むデータ処理用のコンピュータプログラム製品をさらに提供し、プログラムコードに含まれる命令は、前述の方法の実施形態のうちのいずれか１つで説明した方法プロセスを実行するために使用される。当業者は、前述のストレージ媒体が、ＵＳＢフラッシュドライブ、リムーバブルハードディスク、磁気ディスク、光ディスク、ランダムアクセスメモリ（Ｒａｎｄｏｍ−Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＲＡＭ）、ソリッドステートディスク（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｉｓｋ、ＳＳＤ）などのプログラムコードを記憶することができる任意の非一時的（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）機械可読媒体、または不揮発性メモリ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｍｅｍｏｒｙ）を含み得ることを理解し得る。
【００９５】
本出願において提供される実施形態は、単なる例である点に留意されたい。当業者は、説明の便宜上および簡潔さのために、前述の実施形態では、実施形態は異なる態様を強調し、一実施形態で詳細に説明されていない部分については、別の実施形態の関連する説明が参照され得ることを明確に知り得る。添付の図面において開示された本発明の実施形態、特許請求の範囲、および特徴は、独立して存在してもよく、組み合わせて存在してもよい。本発明の実施形態においてハードウェア形態で説明された特徴は、ソフトウェアによって実行されてもよく、逆もまた同様であり、これは本明細書に限定されない。
【符号の説明】
【００９６】
１００  コンピュータシステム
１０２  プロセッサ
１０４  プロセッサコア
１０６  メモリコントローラ
１０８  メモリ
１０８  ＤＲＡＭ
１１０  チャネル
４００  メモリリフレッシュ装置
４０２  受信モジュール
４０４  統計モジュール
４０６  決定モジュール
４０８  リフレッシュモジュール
４１０  バッファモジュール
１０６１  通信インターフェース
１０６２  統計モジュール
１０６４  リフレッシュ回路
１０６６  バッファキュー
１０６８  スケジューリングキュー
１０６９  スケジューラ
【図１】
2020517024.tif 000003
【図２】
2020517024.tif 000004
【図３】
2020517024.tif 000005
【図４】
2020517024.tif 000006
【手続補正書】
【提出日】令和1年11月21日(2019.11.21)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
メモリリフレッシュ方法であって、前記方法が、メモリコントローラとダイナミックランダムアクセスメモリＤＲＡＭを備えるコンピュータシステムに適用され、前記方法が、
前記メモリコントローラによって、アクセス要求を受信するステップと、
前記受信されたアクセス要求にある前記ＤＲＡＭ内の第１のランクにアクセスするためのアクセス要求の量が０より大きく、第２のしきい値未満である場合、前記メモリコントローラによって、前記第１のランクをリフレッシュするステップと、
を含む、メモリリフレッシュ方法。
【請求項２】
前記メモリコントローラによって、前記第１のランクをリフレッシュする前記ステップが、
前記受信したアクセス要求のターゲットランクの量が指定された第４のしきい値未満であり、前記アクセス要求における読取り要求または書込み要求の割合が、指定された第５のしきい値より大きい場合、前記メモリコントローラによって、Ｔ／Ｎ間隔で前記第１のランクをリフレッシュするステップを含み、Ｔは標準的な平均リフレッシュ間隔を示すために使用され、Ｎは１より大きい整数である、請求項１に記載のメモリリフレッシュ方法。
【請求項３】
前記メモリコントローラが前記第１のランクをリフレッシュするプロセスにおいて、前記メモリコントローラによって、前記第１のランクにアクセスするための第１のアクセス要求を受信するステップと、
前記メモリコントローラによって、構成済みのバッファキュー内の前記第１のアクセス要求をバッファするステップと
をさらに含み、前記メモリコントローラが、少なくとも前記バッファキューとスケジューリングキューを備え、前記バッファキューが、リフレッシュ動作が実行されているランクに対するアクセス要求をバッファするために使用され、前記スケジューリングキューが、リフレッシュ動作が実行されていないランクに送信されるべきアクセス要求をバッファするために使用される、請求項１または２に記載の方法。
【請求項４】
前記メモリコントローラによって、前記ＤＲＡＭ内の第２のランクにアクセスするための第２のアクセス要求を受信するステップと、
前記メモリコントローラによって、前記第２のランクがリフレッシュされていないときに、前記第２のアクセス要求を前記スケジューリングキューにバッファするステップと、
をさらに含む、請求項３に記載の方法。
【請求項５】
前記メモリコントローラによって、前記受信されたアクセス要求にある前記ＤＲＡＭ内の前記第２のランクにアクセスするためのアクセス要求の量が前記第２のしきい値以上であり、前記第２のランクの延期されたリフレッシュの量が指定された第３のしきい値より大きい場合、前記第２のランクをリフレッシュするステップをさらに含み、前記第３のしきい値が１以上であり、指定された警告値未満であり、前記警告値が、前記第２のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される、請求項４に記載の方法。
【請求項６】
前記メモリコントローラによって、前記受信されたアクセス要求にある前記ＤＲＡＭ内の第３のランクにアクセスするためのアクセス要求の量が前記第２のしきい値以上であり、前記第３のランクで延期されたリフレッシュの量が前記指定された第３のしきい値を超えない場合、第３のランクでリフレッシュ動作を実行することをスキップするステップをさらに含み、前記第３のしきい値が１以上であり、前記指定された警告値より小さく、前記警告値が前記第３のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される、請求項５に記載の方法。
【請求項７】
前記メモリコントローラによって、前記第１のランクをリフレッシュする前記ステップが、
前記受信したアクセス要求のターゲットランクの量が指定された第４のしきい値以上であり、前記アクセス要求における読取り要求または書込み要求の割合が指定された第５のしきい値を超えない場合、前記メモリコントローラによって、Ｔ間隔で前記第１のランクをリフレッシュするステップを含み、Ｔは標準的な平均リフレッシュ間隔を示すために使用される、請求項１に記載のメモリリフレッシュ方法。
【請求項８】
コンピュータシステムにおけるプロセッサによって送信されたアクセス要求を受信するように構成された通信インターフェースと、
前記受信されたアクセス要求にある前記コンピュータシステムにおけるダイナミックランダムアクセスメモリＤＲＡＭ内の第１のランクにアクセスするためのアクセス要求の量が０より大きく、第２のしきい値未満である場合に、前記第１のランクをリフレッシュするように構成されたリフレッシュ回路と
を備える、メモリコントローラ。
【請求項９】
前記リフレッシュ回路が、
前記受信したアクセス要求のターゲットランクの量が指定された第４のしきい値未満であり、前記アクセス要求における読取り要求または書込み要求の割合が、指定された第５のしきい値より大きい場合、Ｔ／Ｎ間隔で前記第１のランクをリフレッシュするように特に構成され、Ｔは標準的な平均リフレッシュ間隔を示すために使用され、Ｎは１より大きい整数である、請求項８に記載のメモリコントローラ。
【請求項１０】
前記通信インターフェースが、前記リフレッシュ回路が前記第１のランクをリフレッシュするプロセスにおいて、前記第１のランクにアクセスするための第１のアクセス要求を受信するようにさらに構成され、
前記メモリコントローラが、
構成済みのバッファキュー内の前記第１のアクセス要求をバッファするように構成されたバッファをさらに備え、前記バッファが、少なくとも前記バッファキューとスケジューリングキューを備え、前記バッファキューが、リフレッシュ動作が実行されているランクに対するアクセス要求をバッファするために使用され、前記スケジューリングキューが、リフレッシュ動作が実行されていないランクに送信されるべきアクセス要求をバッファするために使用される、請求項８または９に記載のメモリコントローラ。
【請求項１１】
前記通信インターフェースが、前記ＤＲＡＭ内の第２のランクにアクセスするための第２のアクセス要求を受信するようにさらに構成され、
前記バッファが、前記第２のランクがリフレッシュされていないときに、前記第２のアクセス要求を前記スケジューリングキューにバッファするようにさらに構成される、請求項１０に記載のメモリコントローラ。
【請求項１２】
前記リフレッシュ回路が、
前記受信されたアクセス要求にある前記ＤＲＡＭ内の前記第２のランクにアクセスするためのアクセス要求の量が前記第２のしきい値以上であり、前記第２のランクの延期されたリフレッシュの量が指定された第３のしきい値より大きい場合、前記第２のランクをリフレッシュするようにさらに構成され、前記第３のしきい値が１以上であり、指定された警告値未満であり、前記警告値が前記第２のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される、請求項１１に記載のメモリコントローラ。
【請求項１３】
前記リフレッシュ回路が、
前記受信されたアクセス要求にある前記ＤＲＡＭ内の第３のランクにアクセスするためのアクセス要求の量が前記第２のしきい値以上であり、前記第３のランクで延期されたリフレッシュの量が前記指定された第３のしきい値を超えない場合、第３のランクでリフレッシュ動作を実行することをスキップするようにさらに構成され、前記第３のしきい値が１以上であり、前記指定された警告値より小さく、前記警告値が前記第３のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される、請求項１２に記載のメモリコントローラ。
【請求項１４】
前記リフレッシュ回路が、
前記受信したアクセス要求のターゲットランクの量が指定された第４のしきい値以上であり、前記アクセス要求における読取り要求または書込み要求の割合が指定された第５のしきい値を超えない場合、Ｔ間隔で前記第１のランクをリフレッシュするように特に構成され、Ｔは標準的な平均リフレッシュ間隔を示すために使用される、請求項８に記載のメモリコントローラ。
【請求項１５】
メモリリフレッシュ装置であって、前記メモリリフレッシュ装置が、コンピュータシステムにおけるダイナミックランダムアクセスメモリＤＲＡＭをリフレッシュするように構成され、
アクセス要求を受信するように構成された受信モジュールと、
前記受信されたアクセス要求にある前記ＤＲＡＭ内の第１のランクにアクセスするためのアクセス要求の量が０より大きく、第２のしきい値未満である場合、前記第１のランクをリフレッシュするように構成されたリフレッシュモジュールと、
を備える、メモリリフレッシュ装置。
【請求項１６】
前記リフレッシュモジュールが、前記受信したアクセス要求のターゲットランクの量が指定された第４のしきい値未満であり、前記アクセス要求における読取り要求または書込み要求の割合が、指定された第５のしきい値より大きい場合、Ｔ／Ｎ間隔で前記第１のランクをリフレッシュするように特に構成され、Ｔは標準的な平均リフレッシュ間隔を示すために使用され、Ｎは１より大きい整数である、請求項１５に記載のメモリリフレッシュ装置。
【請求項１７】
前記受信モジュールが、
前記第１のランクをリフレッシュするプロセスにおいて、前記第１のランクにアクセスするための第１のアクセス要求を受信するようにさらに構成され、
前記メモリリフレッシュ装置が、
構成済みのバッファキュー内の前記第１のアクセス要求をバッファするように構成されたバッファモジュールをさらに備え、前記バッファモジュールが、少なくとも前記バッファキューとスケジューリングキューを備え、前記バッファキューが、リフレッシュ動作が実行されているランクに対するアクセス要求をバッファするために使用され、前記スケジューリングキューが、リフレッシュ動作が実行されていないランクに送信されるべきアクセス要求をバッファするために使用される、請求項１５に記載のメモリリフレッシュ装置。
【請求項１８】
前記受信モジュールが、前記ＤＲＡＭ内の第２のランクにアクセスするための第２のアクセス要求を受信するようにさらに構成され、
前記バッファモジュールが、前記第２のランクがリフレッシュされていないときに、前記第２のアクセス要求を前記スケジューリングキューにバッファするようにさらに構成される、請求項１７に記載のメモリリフレッシュ装置。
【請求項１９】
前記リフレッシュモジュールが、前記受信されたアクセス要求にある前記ＤＲＡＭ内の前記第２のランクにアクセスするためのアクセス要求の量が前記第２のしきい値以上であり、前記第２のランクの延期されたリフレッシュの量が指定された第３のしきい値より大きい場合、前記第２のランクをリフレッシュするようにさらに構成され、前記第３のしきい値が１以上であり、指定された警告値未満であり、前記警告値が、前記第２のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される、請求項１８に記載のメモリリフレッシュ装置。
【請求項２０】
前記リフレッシュモジュールが、前記受信されたアクセス要求にある前記ＤＲＡＭ内の第３のランクにアクセスするためのアクセス要求の量が前記第２のしきい値以上であり、前記第３のランクで延期されたリフレッシュの量が前記指定された第３のしきい値を超えない場合、第３のランクのリフレッシュをスキップするようにさらに構成され、前記第３のしきい値が１以上であり、前記指定された警告値より小さく、前記警告値が前記第３のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される、請求項１９に記載のメモリリフレッシュ装置。
【請求項２１】
前記リフレッシュモジュールが、前記受信したアクセス要求のターゲットランクの量が指定された第４のしきい値以上であり、前記アクセス要求における読取り要求または書込み要求の割合が指定された第５のしきい値を超えない場合、Ｔ間隔で前記第１のランクをリフレッシュするように特に構成され、Ｔは標準的な平均リフレッシュ間隔を示すために使用される、請求項１５に記載のメモリリフレッシュ装置。
【請求項２２】
メモリコントローラと、前記メモリコントローラに接続されたダイナミックランダムアクセスメモリ、ＤＲＡＭとを備え、前記メモリコントローラが、請求項１から７のいずれか一項に記載の方法を実行するように構成された、コンピュータシステム。
【請求項２３】
１つまたは複数のコンピュータ実行可能命令を備えるコンピュータ可読ストレージ媒体であって、前記１つまたは複数のコンピュータ実行可能命令がコンピュータによって実行されると、前記コンピュータが、請求項１から７のいずれか一項に記載の方法を実行する、コンピュータ可読ストレージ媒体。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００３
【補正方法】変更
【補正の内容】
【０００３】
ＤＲＡＭ内のＤＲＡＭセルはマトリックスに配置される。このマトリックスはＤＲＡＭバンクと呼ばれる。ＤＲＡＭバンク内の任意のビットは、対応する行および列デコーダを使用することによって配置することができる。複数のＤＲＡＭバンクがＤＲＡＭチップを形成し得、複数のＤＲＡＭチップがＤＲＡＭランクを形成し得、複数のＤＲＡＭランクがデュアルインラインメモリモジュール（Ｄｕａｌ  Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅｓ、ＤＩＭＭ）に統合され得る。ＤＲＡＭセルは、行ごとにセンスアンプ（Ｓｅｎｓｅ  Ａｍｐ）によってリフレッシュされる。リフレッシュプロセスにおいては、リフレッシュコマンドに従って、１つまたは複数のバンクにおける行がリフレッシュされ得る。実際の適用中、通常、ランクを単位として使用することによってリフレッシュが実行される。具体的には、ランク内のすべてのバンクの行は、保持時間（ｒｅｔｅｎｔｉｏｎ  ｔｉｍｅ）内に少なくとも１回リフレッシュされる必要がある。保持時間は、ＤＲＡＭセル内のデータをリフレッシュ動作なしで保持することができる時間である。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００２０
【補正方法】変更
【補正の内容】
【００２０】
第３の態様、および第３の態様の第１の可能な実装形態を参照すると、第２の可能な実装形態では、通信インターフェースは、リフレッシュ回路が第１のランクをリフレッシュするプロセスにおいて、第１のランクにアクセスするための第１のアクセス要求を受信するようにさらに構成される。メモリコントローラはバッファをさらに含み、バッファは第１のアクセス要求を構成済みのバッファキューにバッファするように構成される。バッファは、少なくともバッファキューとスケジューリングキューを含み、バッファキューは、リフレッシュ動作が実行されているランクに対するアクセス要求をバッファするために使用され、スケジューリングキューは、リフレッシュ動作が実行されていないランクに送信されるべきアクセス要求をバッファするために使用される。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００２８
【補正方法】変更
【補正の内容】
【００２８】
本発明の実施形態における技術的解決策をより明確に説明するために、以下では、実施形態を説明するために必要な添付の図面について簡単に説明する。明らかに、以下の説明における添付の図面は、本発明のいくつかの実施形態を示すにすぎない。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００３４
【補正方法】変更
【補正の内容】
【００３４】
メモリ１０８は、コンピュータシステム１００のメインメモリである。メモリ１０８は、ダブルデータレート（ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ、ＤＤＲ）バスを通じてプロセッサ１０２に接続されている。メモリ１０８は、通常、オペレーティングシステム上で現在実行されている様々なソフトウェア、入力および出力データ、および外部ストレージと交換される情報を記憶するように構成される。プロセッサ１０２のアクセス速度を上げるためには、メモリ１０８はアクセス速度が速いという利点を有する必要がある。従来のコンピュータシステムアーキテクチャでは、通常、ダイナミックランダムアクセスメモリ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ、ＤＲＡＭ）がメモリ１０８として使用される。メモリコントローラ１０６を通じて、プロセッサ１０２は、メモリ１０８に高速でアクセスし、メモリ１０８内の任意のストレージユニットに対して読取り動作および書込み動作を実行することができる。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００３６
【補正方法】変更
【補正の内容】
【００３６】
実際の適用中、ＤＲＡＭ１０８内のＤＲＡＭセルはマトリックスに配置される。このマトリックスはＤＲＡＭバンクと呼ばれる。ＤＲＡＭバンク内の任意のビットは、対応する行および列デコーダを使用することによって、メモリコントローラ１０６によって配置することができる。複数のＤＲＡＭバンクがＤＲＡＭチップ（メモリチップとも呼ばれ得る）を形成し得、複数のＤＲＡＭチップがＤＲＡＭランクを形成し得る。複数のＤＲＡＭランクはデュアルインラインメモリモジュール（Ｄｕａｌ  Ｉｎ−ｌｉｎｅ  Ｍｅｍｏｒｙ  Ｍｏｄｕｌｅｓ、ＤＩＭＭ）に統合され得る。たとえば、図１に示されるように、ＤＲＡＭ１０８は複数のチャネル（ｃｈａｎｎｅｌ）１１０を含み得る。各チャネル１１０は少なくとも１つのランクを含み得、各ランクは少なくとも１つのバンクを含み得る。各バンクは、データを記憶するための複数のストレージユニットを含む。当業者は、ランクが同じチップ選択（ｃｈｉｐ  ｓｅｌｅｃｔ）信号に接続されたメモリチップ（ｃｈｉｐ）であることを知っていてもよい。メモリコントローラは、同じランク内のチップ上で書込み動作を実行することができ、同じランク内のチップは同じ制御信号を共有する。メモリコントローラ１０６は、メモリバスを通じてＤＲＡＭ１０８内の各チャネル内のストレージユニット内のデータに個別にアクセスし得る。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００４０
【補正方法】変更
【補正の内容】
【００４０】
当業者は、メモリ１０８内のランクに対するリフレッシュ動作が独立していることを知っていてもよい。研究プロセスにおいて、ＤＲＡＭをリフレッシュするプロセスにおいて、リフレッシュ中のランクがリフレッシュプロセスにおける要求に応答できず、システムのリフレッシュオーバーヘッドが発生し、さらに、リフレッシュプロセスにおいて、リフレッシュ中のランクに対する要求がスケジューリングキューを輻輳させ、時間内に別のランクに送信される別のランクに対する要求がスケジューリングキューに入れないようにすることが発見された。これは、システム全体のパフォーマンスに影響を与える原因でもある。さらに、リフレッシュプロセスでは、異なるリフレッシュモードが異なるリフレッシュ頻度を有し、リフレッシュ頻度が異なるとバス利用率も異なる。したがって、リフレッシュプロセスでは、リフレッシュモードの選択もシステムのパフォーマンスに影響する。
【手続補正８】
【補正対象書類名】明細書
【補正対象項目名】００４５
【補正方法】変更
【補正の内容】
【００４５】
リフレッシュ回路１０６４は、統計モジュール１０６２の統計結果に基づいて、ｔＲＥＦＩ時間間隔で、リフレッシュ要求を生成するかどうかを決定し、生成されたリフレッシュ要求をスケジューリングキューに入れるように構成される。たとえば、統計モジュール１０６２が、統計収集を通じて、ランクに対するアクセス要求の量が指定されたしきい値未満であることを取得すると、リフレッシュ回路１０６４は、ランクに対するリフレッシュ要求を生成し、リフレッシュ要求をスケジューリングキュー１０６８に入れることができる。実際の適用中、リフレッシュ回路１０６４によって生成されたリフレッシュ要求は、代わりにスケジューラ１０６９に直接送信され得、したがってスケジューラ１０６９は生成されたリフレッシュ要求をメモリ１０８に送信し、メモリ１０８は、生成されたリフレッシュ要求に従って、対応するランクでリフレッシュ動作を実行することが理解され得る。ｔＲＥＦＩは、平均リフレッシュ間隔を示すために使用される点に留意されたい。実際の適用中、リフレッシュ回路１０６４は、代わりに、ｔＲＥＦＩ未満の間隔でリフレッシュ要求を生成し得る。たとえば、メイクアップリフレッシュが実行される必要がある場合、リフレッシュ回路１０６４は、ｔＲＥＦＩ未満の間隔でリフレッシュ要求を生成し得る。さらに、当業者は、ｔＲＥＦＩが異なるリフレッシュモードで変化することを知っていてもよい。
【手続補正９】
【補正対象書類名】明細書
【補正対象項目名】００４８
【補正方法】変更
【補正の内容】
【００４８】
以下では、図３を参照して、本発明の実施形態において提供されるメモリリフレッシュ方法を詳細に説明する。図３は、本発明の一実施形態によるメモリリフレッシュ方法のフローチャートである。図３に示されるメモリリフレッシュ方法は、図１および図２に示されるメモリコントローラ１０６によって実行され得る。図３に示されるように、本方法は以下のステップを含み得る。
【手続補正１０】
【補正対象書類名】明細書
【補正対象項目名】００５４
【補正方法】変更
【補正の内容】
【００５４】
本発明のこの実施形態では、延期カウンタ（図２には図示せず）がリフレッシュ回路１０６４に配置され得、延期カウンタは、第１のランクの延期されたリフレッシュの量に関する統計を収集するように構成され得る。実際の適用中、延期カウンタは、代替的に、リフレッシュ回路１０６４とは独立して配置され得る。別の場合では、延期カウンタを破棄することはできず、代わりに、統計収集を通じてソフトウェアを使用することによって、第１のランクで延期されたリフレッシュの量が取得される。本発明のこの実施形態では、第１のランクで延期されたリフレッシュの量が統計収集を通じて具体的に取得される方法に制限は課されない。
【手続補正１１】
【補正対象書類名】明細書
【補正対象項目名】００５６
【補正方法】変更
【補正の内容】
【００５６】
前述のように、ダブルデータレート（ｄｏｕｂｌｅ  ｄａｔａ  ｒａｔｅ、ＤＤＲ）プロトコルは、１Ｘモード、２Ｘモード、および４Ｘモードの３つのリフレッシュモードを指定する。本発明のこの実施形態では、リフレッシュモードは、少なくとも第１のリフレッシュモードおよび第２のリフレッシュモードを含み得る。第１のリフレッシュモードでは、メモリコントローラはｔＲＥＦＩ（ｂａｓｅ）／Ｎの間隔でリフレッシュを実行する。第２のリフレッシュモードでは、メモリコントローラはｔＲＥＦＩ（ｂａｓｅ）の間隔でリフレッシュを実行する。たとえば、第１のリフレッシュモードは４Ｘまたは２Ｘモードであり得、第２のリフレッシュモードは１Ｘモードを含み得る。ｔＲＥＦＩ（ｂａｓｅ）は、ＤＤＲプロトコルにおいて定義されている標準的な平均リフレッシュ間隔を示すために使用され、Ｎは１より大きい整数である。通常、ｔＲＥＦＩ（ｂａｓｅ）は、ＤＲＡＭチップの表面温度が通常の温度範囲（０℃から８５℃）内にある状態で１ＸモードのｔＲＥＦＩを示すために使用される。説明を簡単にするために、本発明のこの実施形態では、ｔＲＥＦＩ（ｂａｓｅ）はＴで示される場合もある。
【手続補正１２】
【補正対象書類名】明細書
【補正対象項目名】００５７
【補正方法】変更
【補正の内容】
【００５７】
メモリシステムの場合、リフレッシュ頻度の減少は、延期されたリフレッシュの減少よりもシステムパフォーマンスの向上にとって重要である。したがって、通常、４Ｘモードでリフレッシュを実行すると、１Ｘモードでリフレッシュを実行するよりもシステムのパフォーマンスが低下する。さらに、アクセス要求における高い読取り要求または書込み要求の割合が比較的高い場合、メモリ１０８は、読取りと書込みとの間の切替えの量が比較的少ないため、帯域幅利用率が比較的高い。しかしながら、本発明を実装するプロセスにおいて、ＤＤＲプロトコルが４つのアクティブウィンドウ（Ｆｏｕｒ  Ａｃｔｉｖｅ  Ｗｉｎｄｏｗ、ｔＦＡＷ）を指定しているため、複数のアクセス要求に対してアクセスされるべきターゲットランクの量が比較的少ない場合、言い換えれば、複数のアクセス要求がメモリ１０８内の比較的少ない量のランクに集中している場合、ｔＦＡＷ時間枠において、同時に動作可能な１つのランクにおける行の量が制限され、したがって、代わりにシステム全体のパフォーマンスが低下することが発見された。ｔＦＡＷは、ｔＦＡＷ時間枠内で、１つのランクで最大４つの行アクティブコマンドを送信できることを意味する。例として、メモリ１０８内の２つのランクを取り上げる。読取り要求または書込み要求の割合が比較的高く、アクセス要求がランクのうちの一方に集中している場合、もう一方のランクがリフレッシュされる。リフレッシュ時間が長くなるほど、単一のランクアクセス期間が長くなり、システム全体のパフォーマンスが大幅に低下する。
【手続補正１３】
【補正対象書類名】明細書
【補正対象項目名】００５８
【補正方法】変更
【補正の内容】
【００５８】
本発明を実装するプロセスにおいて、４Ｘモードと１Ｘモードとを比較すると、４Ｘモードでの１回のリフレッシュに対する単一のリフレッシュ時間ｔＲＦＣ３が比較的短いため、単一のリフレッシュプロセスにおいて、ｔＦＡＷ制限によって生じるシステムへの影響は比較的小さく、システム全体のパフォーマンスの低下は比較的小さいことが発見された。したがって、本発明のこの実施形態では、システム全体のパフォーマンスを向上させ、システムのｔＦＡＷ制限を削減するために、本発明のこの実施形態ではリフレッシュモードが動的に調整される。具体的には、ある場合には、リフレッシュ回路１０６４が、統計モジュール１０６２の統計結果に基づいて、アクセス要求のアクセスされるべきターゲットランクの量が指定された第４のしきい値未満であり、アクセス要求における読取り要求または書込み要求の割合が指定された第５のしきい値より大きいと決定した場合、リフレッシュ回路１０６４は、４Ｘモードで第１のランクをリフレッシュすることを決定し得る。言い換えれば、メモリコントローラ１０６によって受信されたアクセス要求のアクセスされるべきターゲットランクが比較的集中しており、読取り要求または書込み要求の割合が比較的高い場合、４Ｘモードで第１のランクがリフレッシュされ得る。実際の適用中、第４のしきい値は、メモリ１０８内のランクの総量に基づいて決定され得る。たとえば、メモリ１０８が４つのランクを含む場合、第４のしきい値は２に設定され得る。第５のしきい値は６０％であり得る。本発明のこの実施形態では、ターゲットランクは、アクセス要求を使用することによってアクセスされるべきランクであることが理解され得る。ターゲットランクの量は、アクセス要求を使用することによってアクセスされるべきランクの量である。
【手続補正１４】
【補正対象書類名】明細書
【補正対象項目名】００６３
【補正方法】変更
【補正の内容】
【００６３】
ステップ３１２において、メモリコントローラ１０６は、第１のランクでのリフレッシュ動作を延期する。具体的には、ステップ３０８において、メモリコントローラ１０６が、第１のランクで延期された動作の量が第３のしきい値を超えないと決定すると、メモリコントローラは第１のランクでのリフレッシュ動作を延期し、延期カウンタの値に１を加える。言い換えれば、メモリコントローラ１０６がステップ３０６を通じて第１のランクがアイドル状態ではないと決定した場合、すなわち、第１のランクに対するアクセス要求が処理されているか、スケジューリングキューに第１のランクに対するアクセス要求が依然として含まれている場合、第１のランクの延期の量が第３のしきい値に達しない場合は、第１のランクに対するアクセス要求が比較的大量にあると見なされ得る。パフォーマンスへの影響を回避するため、後続のポーリングプロセスにおいて第１のランクでリフレッシュ動作を実行するために、リフレッシュ動作は第１のランクでは実行されない。前述のように、第３のしきい値は、１以上であり、指定された警告値未満である。警告値は、第１のランクに延期できるリフレッシュコマンドの最大量に基づいて決定され得る。警告値は、第１のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される。言い換えれば、警告値は、メモリコントローラ１０６に、第１のランクで強制的にリフレッシュ動作を実行するよう指示するために使用される。
【手続補正１５】
【補正対象書類名】明細書
【補正対象項目名】００６８
【補正方法】変更
【補正の内容】
【００６８】
ケース３：メモリコントローラ１０６によって受信されたアクセス要求の量が第１のしきい値より大きく、第１のランクにアクセスするためのアクセス要求の量は第２のしきい値以上であり、第１のランクで延期されたリフレッシュの量は第３のしきい値を超えない場合、第１のランクのリフレッシュ動作は延期され得る。言い換えれば、本発明のこの実施形態では、コンピュータシステム１００のメモリアクセストラフィックが比較的重く、第１のランクに対するアクセス要求の量も比較的大きい場合、スケジューリングキュー１０６８における第１のランクに対するアクセス要求の処理に影響を与えることを回避するために、第１のランクで延期されたリフレッシュの量があらかじめ設定された第３のしきい値に達していない場合、第１のランクのリフレッシュ動作は延期され得る。
【手続補正１６】
【補正対象書類名】明細書
【補正対象項目名】００７３
【補正方法】変更
【補正の内容】
【００７３】
さらに、メモリコントローラ１０６は、リフレッシュ動作が第１のランクで実行されているｔＲＦＣ時間期間内でも第１のランクに対するアクセス要求に応答することはできない。したがって、第１のランクに対するアクセス要求がスケジューリングキュー１０６８を輻輳させ、別のランク（たとえば、第２のランク）に対するアクセス要求がスケジューリングキュー１０６８に入ることができずにシステムパフォーマンスに影響を与えることを回避するために、本発明のこの実施形態では、リフレッシュ動作が第１のランクで実行されているときに、メモリコントローラ１０６が第１のランクに対するアクセス要求を受信すると、メモリコントローラ１０６は第１のランクに対するアクセス要求をバッファキュー１０６６に入れることができる。メモリコントローラ１０６が第１のランクでリフレッシュ動作を実行した後、バッファキュー１０６６内の第１のランクに対するアクセス要求は、バッファキュー１０６６からスケジューリングキュー１０６８に入れられる。さらに、本発明のこの実施形態では、第１のランクでリフレッシュ動作を実行した後、メモリコントローラ１０６は、バッファキュー１０６６ではなく、スケジューリングキュー１０６８に第１のランクに対する次に新しく受信したアクセス要求を直接入れることができる。
【手続補正１７】
【補正対象書類名】明細書
【補正対象項目名】００７９
【補正方法】変更
【補正の内容】
【００７９】
受信モジュール４０２は、アクセス要求を受信するように構成される。具体的には、受信モジュール４０２は、コンピュータシステム１００内の１つまたは複数のコア１０４によって送信されたアクセス要求を受信し得る。受信モジュール４０２は、メモリ１０８によって返されたデータを受信するようにさらに構成され得ることが理解され得る。受信モジュール４０２は、具体的には、メモリコントローラ１０６とコア１０４との間の通信インターフェース、およびメモリコントローラ１０６とメモリ１０８との間の通信インターフェースを含む。
【手続補正１８】
【補正対象書類名】明細書
【補正対象項目名】００８２
【補正方法】変更
【補正の内容】
【００８２】
リフレッシュモジュール４０８は、受信されたアクセス要求にある第１のランクにアクセスするためのアクセス要求の量が０より大きく第２のしきい値未満である場合に、第１のランクをリフレッシュするように構成される。前述のように、実際の適用中、ある場合には、リフレッシュモジュール４０８は、指定されたリフレッシュモードに従ってリフレッシュ要求を生成し、生成されたリフレッシュ要求に従って第１のランクをリフレッシュし得る。別の場合では、リフレッシュモジュール４０８は、生成されたリフレッシュ要求に従って第１のランクをリフレッシュするために、統計収集を通じて統計モジュール４０４によって取得されたアクセス要求の量およびアクセスされるべきターゲットランクの分布に基づいてリフレッシュモードを動的に決定し、決定されたリフレッシュモードに従ってリフレッシュ要求を生成し得る。具体的には、リフレッシュモジュール４０８は、メモリ１０８がリフレッシュ要求に従って第１のランクをリフレッシュできるように、生成されたリフレッシュ要求をメモリ１０８に送信し得る。
【手続補正１９】
【補正対象書類名】明細書
【補正対象項目名】００８４
【補正方法】変更
【補正の内容】
【００８４】
可能な場合、メモリリフレッシュ装置４００は、バッファモジュール４１０をさらに含み得る。バッファモジュール４１０は、受信モジュール４０２によって受信されたアクセス要求をバッファキューまたはスケジューリングキューにバッファするように構成される。実際の適用中、バッファモジュール４１０は、バッファキューおよびスケジューリングキューを含み得る。バッファキューは、スケジューリングキューの先行キューである。
【手続補正２０】
【補正対象書類名】明細書
【補正対象項目名】００８５
【補正方法】変更
【補正の内容】
【００８５】
可能な場合、受信モジュール４０２は、第１のランクをリフレッシュするプロセスにおいて、第１のランクにアクセスするための第１のアクセス要求を受信するようにさらに構成される。バッファモジュール４１０は、第１のアクセス要求を構成済みのバッファキューにバッファするように構成される。バッファモジュール４１０は、バッファキューとスケジューリングキューを含み、バッファキューは、リフレッシュ動作が実行されているランクの新しく受信されたアクセス要求をバッファするために使用され、スケジューリングキューは、リフレッシュ動作が実行されていないランクに送信されるべきアクセス要求をバッファするために使用される。
【手続補正２１】
【補正対象書類名】明細書
【補正対象項目名】００８６
【補正方法】変更
【補正の内容】
【００８６】
別の可能な場合、受信モジュール４０２は、ＤＲＡＭにおける第２のランクにアクセスするための第２のアクセス要求を受信するようにさらに構成される。バッファモジュール４１０は、第２のランクでリフレッシュ動作が実行されていないときに、構成されたスケジューリングキューに第２のアクセス要求をバッファするようにさらに構成される。
【手続補正２２】
【補正対象書類名】明細書
【補正対象項目名】００８７
【補正方法】変更
【補正の内容】
【００８７】
任意で、決定モジュール４０６は、受信されたアクセス要求にあるＤＲＡＭ内の第２のランクにアクセスするためのアクセス要求の量が第２のしきい値未満かどうかを決定するようにさらに構成される。リフレッシュモジュール４０８は、受信されたアクセス要求にあるＤＲＡＭ内の第２のランクにアクセスするためのアクセス要求の量が第２のしきい値以上であり、第２のランクの延期されたリフレッシュの量が指定された第３のしきい値より大きい場合、第２のランクをリフレッシュするようにさらに構成される。第３のしきい値は１以上であり、指定された警告値未満であり、警告値は第２のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される。
【手続補正２３】
【補正対象書類名】明細書
【補正対象項目名】００９１
【補正方法】変更
【補正の内容】
【００９１】
別の可能な場合、リフレッシュモジュール４０８は、受信されたアクセス要求にあるＤＲＡＭ内の第３のランクにアクセスするためのアクセス要求の量が０より大きく、第３のランクで延期されたリフレッシュの量が指定された第３のしきい値より大きい場合、第３のランクをリフレッシュするようにさらに構成され、第３のしきい値は１以上であり、指定された警告値より小さく、警告値は第３のランクでリフレッシュ動作をすぐに実行する必要があることを示すために使用される。
【国際調査報告】
2020517024.tif 000007
2020517024.tif 000008
2020517024.tif 000009
2020517024.tif 000010