IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ NECプラットフォームズ株式会社の特許一覧

特開2024-83289メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラム
<>
  • 特開-メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラム 図1
  • 特開-メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラム 図2
  • 特開-メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラム 図3
  • 特開-メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラム 図4A
  • 特開-メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラム 図4B
  • 特開-メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラム 図5
  • 特開-メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラム 図6
  • 特開-メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラム 図7
  • 特開-メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラム 図8
  • 特開-メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラム 図9
  • 特開-メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラム 図10
  • 特開-メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラム 図11
  • 特開-メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラム 図12
  • 特開-メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラム 図13
  • 特開-メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラム 図14
  • 特開-メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラム 図15
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024083289
(43)【公開日】2024-06-20
(54)【発明の名称】メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラム
(51)【国際特許分類】
   G06F 12/00 20060101AFI20240613BHJP
   G11C 11/406 20060101ALI20240613BHJP
【FI】
G06F12/00 550B
G11C11/406 140
【審査請求】有
【請求項の数】6
【出願形態】OL
(21)【出願番号】P 2023206686
(22)【出願日】2023-12-07
(62)【分割の表示】P 2022196777の分割
【原出願日】2022-12-09
(71)【出願人】
【識別番号】000227205
【氏名又は名称】NECプラットフォームズ株式会社
(74)【代理人】
【識別番号】100109313
【弁理士】
【氏名又は名称】机 昌彦
(74)【代理人】
【識別番号】100149618
【弁理士】
【氏名又は名称】北嶋 啓至
(72)【発明者】
【氏名】鈴木 栄司
【テーマコード(参考)】
5B160
5M024
【Fターム(参考)】
5B160CA10
5M024AA92
5M024BB22
5M024BB39
5M024EE09
5M024EE26
5M024PP01
(57)【要約】
【課題】メモリチャネルの温度の変化に伴いリフレッシュ動作の周期が動的に変更される場合でも、メモリチャネル間におけるリフレッシュ動作のタイミングの同期を維持する。
【解決手段】メモリリフレッシュ制御装置10Aは、メモリチャネル21(21-1乃至21-n)の温度帯に応じた複数の周期のいずれかでリフレッシュ動作が繰り返し行われる複数のメモリチャネル21の個々の温度を取得する取得部11と、取得部11が取得した複数のメモリチャネル21の個々の温度のうちで最も高い温度150Aを特定する特定部15Aと、複数のメモリチャネル21の個々に関して、以降のリフレッシュ動作の周期を最も高い温度150Aと対応付けられたリフレッシュ動作の周期に設定する設定部13Aと、設定部13Aにより設定された周期で、メモリチャネル21のリフレッシュ動作を実行する実行部14と、備える。
【選択図】 図6
【特許請求の範囲】
【請求項1】
メモリチャネルの温度帯に応じた複数の周期のいずれかでリフレッシュ動作が繰り返し行われる複数の前記メモリチャネルの個々の温度を取得する取得手段と、
前記取得手段が取得した複数の前記メモリチャネルの個々の温度のうちで最も高い温度を特定する特定手段と、
複数の前記メモリチャネルの個々に関して、以降のリフレッシュ動作の周期を前記最も高い温度と対応付けられたリフレッシュ動作の周期に設定する設定手段と、
前記設定手段により設定された周期で、前記メモリチャネルのリフレッシュ動作を実行する実行手段と、
を備えるメモリリフレッシュ制御装置。
【請求項2】
前記取得手段は、複数の前記メモリチャネルの個々の温度の推移を表す情報を出力する、
請求項1に記載のメモリリフレッシュ制御装置。
【請求項3】
情報処理装置によって、
メモリチャネルの温度帯に応じた複数の周期のいずれかでリフレッシュ動作が繰り返し行われる複数の前記メモリチャネルの個々の温度を取得し、
取得した複数の前記メモリチャネルの個々の温度のうちで最も高い温度を特定し、
複数の前記メモリチャネルの個々に関して、以降のリフレッシュ動作の周期を前記最も高い温度と対応付けられたリフレッシュ動作の周期に設定し、
設定した周期で、前記メモリチャネルのリフレッシュ動作を実行する、
メモリリフレッシュ制御方法。
【請求項4】
複数の前記メモリチャネルの個々の温度の推移を表す情報を出力する、
請求項3に記載のメモリリフレッシュ制御方法。
【請求項5】
メモリチャネルの温度帯に応じた複数の周期のいずれかでリフレッシュ動作が繰り返し行われる複数の前記メモリチャネルの個々の温度を取得する取得処理と、
前記取得処理が取得した複数の前記メモリチャネルの個々の温度のうちで最も高い温度を特定する特定処理と、
複数の前記メモリチャネルの個々に関して、以降のリフレッシュ動作の周期を前記最も高い温度と対応付けられたリフレッシュ動作の周期に設定する設定処理と、
前記設定処理により設定された周期で、前記メモリチャネルのリフレッシュ動作を実行する実行処理と、
をコンピュータに実行させるためのメモリリフレッシュ制御プログラム。
【請求項6】
前記取得処理は、複数の前記メモリチャネルの個々の温度の推移を表す情報を出力する、
請求項5に記載のメモリリフレッシュ制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリリフレッシュ制御装置、メモリリフレッシュ制御方法、及び、メモリリフレッシュ制御プログラムに関する。
【背景技術】
【0002】
DRAM(Dynamic Random Access Memory)等のメモリは、メモリセルがコンデンサで構成されているので、時間の経過と共にコンデンサ内の電荷が放電される。このようなコンデンサ内の電荷の放電によってメモリに記憶された情報が喪失することを防ぐため、定期的に電荷を補充するリフレッシュという動作が必要となる。このリフレッシュ動作が行われている時間は、DRAMに対するライト動作およびリード動作を行うことが出来ないので、メモリアクセス性能が低下する要因となる。
【0003】
また、大規模なデータを扱うコンピュータシステムにおいては、中央処理装置(Central Processing Unit:CPU)と主記憶との間におけるデータのアクセス性能を向上させるため、主記憶はメモリインターリーブ方式によってアクセスされる複数のメモリチャネル(メモリバンク、メモリランクを含む)を備えている。
【0004】
図12は、上述したメモリインターリーブ方式によるアクセスにおいて、複数のメモリチャネルの間においてリフレッシュ動作のタイミングが同期していない場合における、メモリチャネルを跨るメモリアクセスの時間を例示する図である。図12に示す例では、メモリチャネルn(nは2以上の任意の整数)において、メモリアクセス中にリフレッシュ動作が発生しているので、メモリチャネルnに対するアクセス時間は、他のメモリチャネルよりも長くなる。即ち、図12に例示する様に、各メモリチャネルにおいてリフレッシュ動作がランダムなタイミングで行われた場合、メモリチャネルを跨るメモリアクセスにおいて、いずれかのメモリチャネルにおいて、メモリアクセス中にリフレッシュ動作が行われる確率が高くなり、メモリアクセス性能が低下する要因となる。
【0005】
したがって、近年のコンピュータシステムにおいては、上述したメモリアクセス性能の低下を回避するために、図13に例示するように複数のメモリチャネルの間においてリフレッシュ動作のタイミングが同期するように制御することが行われている。
【0006】
上述の技術に関連して、特許文献1には、複数ランクのメモリのリフレッシュ動作のタイミングを同期化するメモリの同期化方法が開示されている。この方法は、同期リセット信号によって初期化されるカウンタにおけるカウント値を用いて予め決められた第1の間隔で複数ランクに対して順次リフレッシュを行う。そしてこの方法は、当該同期リセット信号をトリガとして第1の間隔よりも短い第2の間隔で複数ランクに対して順次リフレッシュを行う。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2007-213130号公報
【特許文献2】特開2008-505429号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
DRAM内のコンデンサに蓄えられた電荷は、温度が高いほど運動エネルギーが大きいので、早く放電されるという性質がある。従って近年のDRAMは、例えば特許文献2に開示されているように温度センサを内蔵し、当該温度センサによって測定されたDRAMの温度が所定の閾値を超えた場合、リフレッシュ動作の周期を短くする(例えば1/2倍に動的に変更する)機能を備える場合がある。
【0009】
図14は、あるメモリチャネルの温度が上昇することによってそのメモリチャネルのリフレッシュ動作の周期が動的に変化することに伴う、メモリチャネルの間におけるリフレッシュ動作のタイミングの同期が崩れることを例示する図である。図14に例示する同期の崩れは、個々のメモリチャネルの温度変化が一様ではないことにより発生し、これは、例えば、メモリチャネルのDRAMの物理的な実装位置による冷却状態の差、各DRAMの製造のばらつきなどに起因する。
【0010】
図14に示す例では、メモリチャネルnの温度の閾値が超えたことにより、メモリチャネルnのリフレッシュ動作の周期が1/2倍に変更されたのち、メモリチャネルnの温度が閾値以下に戻ることによって、そのリフレッシュ動作の周期が元の値(1倍)に戻っている。この場合、メモリチャネルnとその他のメモリチャネルとの間で、リフレッシュ動作のタイミングが同期していない状態が継続することによって、図12を参照して説明したメモリアクセス性能の低下が発生する可能性が高くなるという問題がある。特許文献1及び2は、この問題について特に言及していない。
【0011】
本発明の主たる目的は、個々のメモリチャネルの温度の変化に伴いリフレッシュ動作の周期が動的に変更される場合であっても、メモリチャネル間におけるリフレッシュ動作のタイミングの同期を維持することである。
【課題を解決するための手段】
【0012】
本発明の一態様に係るメモリリフレッシュ制御装置は、メモリチャネルの温度帯に応じた複数の周期のいずれかでリフレッシュ動作が繰り返し行われる複数の前記メモリチャネルの個々の温度を取得する取得手段と、前記取得手段が取得した複数の前記メモリチャネルの個々の温度のうちで最も高い温度を特定する特定手段と、複数の前記メモリチャネルの個々に関して、以降のリフレッシュ動作の周期を前記最も高い温度と対応付けられたリフレッシュ動作の周期に設定する設定手段と、前記設定手段により設定された周期で、前記メモリチャネルのリフレッシュ動作を実行する実行手段と、を備える。
【0013】
また、上記目的を達成する更なる見地において、本発明の一態様に係るメモリリフレッシュ制御方法は、情報処理装置によって、メモリチャネルの温度帯に応じた複数の周期のいずれかでリフレッシュ動作が繰り返し行われる複数の前記メモリチャネルの個々の温度を取得し、取得した複数の前記メモリチャネルの個々の温度のうちで最も高い温度を特定し、複数の前記メモリチャネルの個々に関して、以降のリフレッシュ動作の周期を前記最も高い温度と対応付けられたリフレッシュ動作の周期に設定し、設定した周期で、前記メモリチャネルのリフレッシュ動作を実行する。
【0014】
また、上記目的を達成する更なる見地において、本発明の一態様に係るメモリリフレッシュ制御プログラムは、メモリチャネルの温度帯に応じた複数の周期のいずれかでリフレッシュ動作が繰り返し行われる複数の前記メモリチャネルの個々の温度を取得する取得処理と、前記取得処理が取得した複数の前記メモリチャネルの個々の温度のうちで最も高い温度を特定する特定処理と、複数の前記メモリチャネルの個々に関して、以降のリフレッシュ動作の周期を前記最も高い温度と対応付けられたリフレッシュ動作の周期に設定する設定処理と、前記設定処理により設定された周期で、前記メモリチャネルのリフレッシュ動作を実行する実行処理と、をコンピュータに実行させる。
【0015】
更に、本発明は、係るメモリリフレッシュ制御プログラム(コンピュータプログラム)が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【0016】
本発明は、個々のメモリチャネルの温度の変化に伴いリフレッシュ動作の周期が動的に変更される場合であっても、メモリチャネル間におけるリフレッシュ動作のタイミングの同期を維持することができる。
【図面の簡単な説明】
【0017】
図1】本発明の第1の実施形態に係る情報処理装置1の構成を示すブロック図である。
図2】本発明の第1の実施形態に係るメモリリフレッシュ制御装置10の動作の一例を示すタイムチャートである。
図3】本発明の第1の実施形態に係るメモリリフレッシュ制御装置10により設定される、個々のメモリチャネル21に関する以降のリフレッシュ動作の周期の値の第1の例を示す図である。
図4A】本発明の第1の実施形態に係るメモリリフレッシュ制御装置10の動作を示すフローチャート(1/2)である。
図4B】本発明の第1の実施形態に係るメモリリフレッシュ制御装置10の動作を示すフローチャート(2/2)である。
図5】本発明の第1の実施形態に係るメモリリフレッシュ制御装置10により設定される、個々のメモリチャネル21に関する以降のリフレッシュ動作の周期の値の第2の例を示す図である。
図6】本発明の第2の実施形態に係る情報処理装置1Aの構成を示すブロック図である。
図7】本発明の第2の実施形態に係るメモリリフレッシュ制御装置10Aが特定するDRAM23の温度のうちの最も高い温度の時間推移を例示する図である。
図8】本発明の第2の実施形態に係るメモリリフレッシュ制御装置10Aの動作を示すフローチャートである。
図9】本発明の第3の実施形態に係るメモリリフレッシュ制御装置40の構成を示すブロック図である。
図10】本発明の第3の実施形態に係るメモリリフレッシュ制御装置40の動作を示すフローチャートである。
図11】本発明の各実施形態に係るメモリリフレッシュ制御装置を実現可能な情報処理装置900の構成を示すブロック図である。
図12】複数のメモリチャネルの間においてリフレッシュ動作のタイミングが同期していない場合における、メモリチャネルを跨るメモリアクセスの時間を例示する図である。
図13】複数のメモリチャネルの間においてリフレッシュ動作のタイミングが同期している場合における、メモリチャネルを跨るメモリアクセスの時間を例示する図である。
図14】あるメモリチャネルの温度が上昇することによってそのメモリチャネルのリフレッシュ動作の周期が変化することに伴う、メモリチャネルの間におけるリフレッシュ動作のタイミングの同期が崩れることを例示する図である。
図15】本発明の第1の実施形態に係るメモリリフレッシュ制御装置10が、あるメモリチャネル21の温度が上昇することによってそのメモリチャネルのリフレッシュ動作の周期が変化した場合であっても、メモリチャネルの間におけるリフレッシュ動作のタイミングの同期を維持することを例示する図である。
【発明を実施するための形態】
【0018】
以下、本発明の実施の形態について図面を参照して詳細に説明する。
【0019】
<第1の実施形態>
図1は、本発明の第1の実施の形態に係る情報処理装置1の構成を示すブロック図である。情報処理装置1は、大別して、メモリリフレッシュ制御装置10、記憶装置20(主記憶)、中央処理装置30(CPU)を有する。
【0020】
記憶装置20は、中央処理装置30からメモリインターリーブ方式によってアクセスされるn個(nは2以上の整数)のメモリチャネル21-1乃至21-nを備える。個々のメモリチャネル21-i(iは1乃至nのいずれかの整数)は、メモリコントローラ22-i及びDRAM23-iを備える。
【0021】
メモリコントローラ22-iは、中央処理装置30から発行されたメモリチャネル21-iに対する読み出し命令あるいは書き込み命令に従い、DRAM23-iからのデータの読み出しあるいはDRAM23-iに対するデータの書き込みを制御する。尚、中央処理装置30から発行されたメモリチャネル21-iに対する読み出し命令あるいは書き込み命令は、アクセス先のアドレスの下位側のビットにより表されるメモリチャネル21-iを識別可能な情報(例えばメモリチャネル番号)と、アクセス先のアドレスの上位側のビットにより表されるDRAM23-iにおけるアクセス先のアドレスとを含む。
【0022】
DRAM23-iは、定期的にリフレッシュ動作が必要なメモリであり、そのリフレッシュ動作は、後述するメモリリフレッシュ制御装置10により制御される。DRAM23-iは、DRAM23-iの温度を随時測定する温度センサ24-iを備える。
【0023】
尚、本実施形態では、以降の説明において、メモリチャネル21-i、メモリコントローラ22-i、DRAM23-i、温度センサ24-iを、順に、メモリチャネル21、メモリコントローラ22、DRAM23、温度センサ24と記載する場合がある。
【0024】
メモリリフレッシュ制御装置10は、メモリチャネル21におけるDRAM23のリフレッシュ動作の実行を制御する装置である。メモリリフレッシュ制御装置10は、図1に例示する様な情報処理装置1に含まれる単体の装置として構成されてもよいし、あるいは、メモリコントローラ22、及び、情報処理装置1における診断装置(不図示)等に含まれる(即ち、メモリコントローラ22及び診断装置等が有する機能によって実現される)論理的な装置として構成されてもよい。
【0025】
メモリリフレッシュ制御装置10は、取得部11、生成部12、設定部13、実行部14を備える。取得部11、生成部12、設定部13、実行部14は、順に、取得手段、生成手段、設定手段、実行手段の一例である。
【0026】
取得部11は、各メモリチャネル21の温度センサ24から、DRAM23の温度を所定のタイミング(例えば随時)に取得する。
【0027】
図2は、本実施形態に係るメモリリフレッシュ制御装置10の動作の一例を示すタイムチャートである。図2におけるシステムクロックは、記憶装置20の動作クロックである。
【0028】
図1に示す生成部12は、同期制御カウンタ120を備える。同期制御カウンタ120は、リフレッシュ動作の実行の制御に関して、メモリチャネル21-1乃至21-nに共通して使用される。生成部12は、図2に例示する通り、同期制御カウンタ120の値をK(Kは自然数)に設定したのち0になるまで1ずつカウントダウンし、0になった後に再びKに設定することを繰り返し実行する。
【0029】
本実施形態に係るDRAM23のリフレッシュ動作が行われる周期は、DRAM23の温度が所定の閾値以下である場合は、Kから0までのカウントダウンに要する時間(基本周期)とし、その温度が当該閾値より高い場合は、K/2から0までのカウントダウンに要する時間(逓倍周期)とする。ただし、「/」は除算を示す演算子である。本実施形態では、基本周期の周波数を逓倍した周波数の周期を「逓倍周期」と称することとする。尚、本実施形態では、以降の説明において、当該所定の閾値以下の温度(温度帯)をXと表し、当該所定の閾値よりも高い温度(温度帯)をYと表すこととする。
【0030】
生成部12は、また、図2に例示する通り、同期制御カウンタ120の値が0であるときに1を表し、同期制御カウンタ120の値が0以外の値であるときに0を表す同期制御情報を生成する。即ち、当該同期制御情報は、現在が温度Xに対応付けられるリフレッシュ動作の周期(基本周期)の区切りのタイミングであることを表す、メモリチャネル21-1乃至21-nに共通する情報である。
【0031】
図1に示す設定部13は、リフレッシュ制御カウンタ130―1乃至130-nを備える。リフレッシュ制御カウンタ130―1乃至130-nは、順に、メモリチャネル21-1乃至21-nに対するリフレッシュ動作の実行の制御に関して、個々に使用される。尚、本実施形態では、以降の説明において、リフレッシュ制御カウンタ130―1乃至130-nのいずれかをリフレッシュ制御カウンタ130と記載する場合がある。
【0032】
設定部13は、図2に例示する通り、リフレッシュ制御カウンタ130の値をKあるいはK/2に設定したのち0になるまで1ずつカウントダウンし、0になった後に再びKあるいはK/2に設定することを繰り返し実行する。設定部13が、リフレッシュ制御カウンタ130が0になった後に設定する値は、個々のメモリチャネル21のDRAM23に関する、以降のリフレッシュ動作を実行する周期を表す。
【0033】
設定部13は、リフレッシュ制御カウンタ130の値が0であるときに1を表し、リフレッシュ制御カウンタ130の値が0以外の値であるときに0を表すリフレッシュ動作実行制御情報を生成する。即ち、当該リフレッシュ動作実行制御情報は、現在がDRAM23のリフレッシュ動作を実行するタイミングであることを表す、メモリチャネル21-1乃至21-nの個々に関する情報である。
【0034】
図3は、本実施形態に係る設定部13が、メモリチャネル21のDRAM23の温度及び生成部12によって生成された同期制御情報が示す値と、リフレッシュ制御カウンタ130の値が0になった後に設定する値との関係の第1の例を示す図である。
【0035】
図3に示す例において、DRAM23の温度がXであり同期制御情報が示す値が1である条件aの場合、設定部13は、リフレッシュ制御カウンタ130をK(リフレッシュ周期1倍の値)に設定する。DRAM23の温度がXであり同期制御情報が示す値が0である条件bの場合、設定部13は、リフレッシュ制御カウンタ130をK/2(リフレッシュ周期1/2倍の値)に設定する。DRAM23の温度がYであり同期制御情報が示す値が0または1である条件cの場合、設定部13は、リフレッシュ制御カウンタ130をK/2(リフレッシュ周期1/2倍の値)に設定する。即ち、設定部13は、DRAM23の温度が高温であるYである場合は、以降のリフレッシュ動作の周期をK/2にする必要があるのに対して、DRAM23の温度が低温であるXである場合は、同期制御情報の値に応じてKあるいはK/2を設定する。
【0036】
図2に示す例において、設定部13は、時刻t1では、DRAM23の温度及び同期制御情報が示す値が上述した条件aに該当するので、リフレッシュ制御カウンタ130をKに設定する。設定部13は、時刻t2では、DRAM23の温度及び同期制御情報が示す値が上述した条件cに該当するので、リフレッシュ制御カウンタ130をK/2に設定する。設定部13は、時刻t3では、DRAM23の温度及び同期制御情報が示す値が上述した条件bに該当するので、リフレッシュ制御カウンタ130をK/2に設定する。設定部13は、時刻t4では、DRAM23の温度及び同期制御情報が示す値が上述した条件aに該当するので、リフレッシュ制御カウンタ130をKに設定する。
【0037】
図1に示す実行部14は、個々のメモリチャネル21のDRAM23に対するリフレッシュ動作を、リフレッシュ制御カウンタ130の値が0になった(即ちリフレッシュ動作実行制御情報が1である)タイミング(図2の例における時刻t1、t2、t3、t4)に実行する。
【0038】
次に図4A及び4Bのフローチャートを参照して、本実施形態に係るメモリリフレッシュ制御装置10の動作(処理)について詳細に説明する。
【0039】
取得部11は、温度センサ24からDRAM23の温度を取得する(ステップS101)。生成部12は、同期制御カウンタ120を1つカウントダウンし、設定部13は、リフレッシュ制御カウンタ130を1つカウントダウンする(ステップS102)。実行部14は、リフレッシュ制御カウンタ130の値が0であるか確認する(ステップS103)。
【0040】
リフレッシュ制御カウンタ130の値が0でない場合(ステップS104でNo)、処理はステップS101へ戻る。リフレッシュ制御カウンタ130の値が0である場合(ステップS104でYes)、実行部14は、DRAM23のリフレッシュ動作を実行する(ステップS105)。設定部13は、DRAM23の温度がYであるか確認する(ステップS106)。
【0041】
DRAM23の温度がYである場合(ステップS107でYes)、設定部13は、リフレッシュ制御カウンタ130の値をK/2に設定する(ステップS108)。生成部12は、同期制御カウンタ120の値が0である場合は、同期制御カウンタ120の値をKに設定し(ステップS109)、処理はステップS101へ戻る。DRAM23の温度がYでない(即ちXである)場合(ステップS107でNo)、設定部13は、同期制御カウンタ120によって示される同期制御情報の値を確認する(ステップS110)。
【0042】
同期制御情報の値が1である場合(ステップS111でYes)、設定部13は、リフレッシュ制御カウンタ130の値をKに設定する(ステップS112)。生成部12は、同期制御カウンタ120の値をKに設定し(ステップS113)、処理はステップS101へ戻る。
【0043】
同期制御情報の値が1でない(即ち0である)場合(ステップS111でNo)、設定部13は、リフレッシュ制御カウンタ130の値をK/2に設定し(ステップS114)、処理はステップS101へ戻る。
【0044】
本実施形態に係るメモリリフレッシュ制御装置10は、個々のメモリチャネルの温度の変化に伴いリフレッシュ動作の周期が動的に変更される場合であっても、メモリチャネル間におけるリフレッシュ動作のタイミングの同期を維持することができる。その理由は、メモリリフレッシュ制御装置10は、DRAM23の温度と生成した同期制御情報とに基づいて、メモリチャネル21の間においてリフレッシュ動作のタイミングの同期を維持できるように、以降のリフレッシュ動作の実行周期を設定するからである。
【0045】
以下に、本実施形態に係るメモリリフレッシュ制御装置10によって実現される効果について、詳細に説明する。
【0046】
図14に例示する通り、あるメモリチャネルの温度が上昇することによってそのメモリチャネルのリフレッシュ動作の周期が動的に変化することに伴い、メモリチャネルの間におけるリフレッシュ動作のタイミングの同期が崩れることがある。図14に示す例では、メモリチャネルnの温度が閾値を超えたことにより、メモリチャネルnのリフレッシュ動作の周期が1/2倍に変更されたのち、メモリチャネルnの温度が閾値以下に戻ることによって、そのリフレッシュ動作の周期が元の値(1倍)に戻っている。この場合、メモリチャネルnとその他のメモリチャネルとの間で、リフレッシュ動作のタイミングが同期していない状態が継続することによって、図12を参照して説明したメモリアクセス性能の低下が発生する可能性が高くなるという問題がある。
【0047】
このような問題に対して、本実施形態に係るメモリリフレッシュ制御装置10は、メモリチャネル21のDRAM23の温度帯に応じて基本周期(K)及び基本周期の周波数を逓倍した周波数の周期である逓倍周期(K/2)のいずれかでリフレッシュ動作が繰り返し行われる複数のDRAM23の個々の温度を取得する。メモリリフレッシュ制御装置10は、複数のDRAM23のリフレッシュ動作の周期が基本周期であるときのリフレッシュ動作が行われるタイミングを示す同期制御情報を同期制御カウンタ120の値から生成する。メモリリフレッシュ制御装置10は、複数のDRAM23の個々に関して、以降のリフレッシュ動作の周期を、取得した温度に応じて、少なくとも当該同期制御情報が示すタイミングでリフレッシュ動作が行われるように、基本周期あるいは逓倍周期に設定する。そしてメモリリフレッシュ制御装置10は、設定した周期でDRAM23のリフレッシュ動作を実行する。
【0048】
図15は、実施形態に係るメモリリフレッシュ制御装置10が、メモリチャネル21-nの温度が上昇することによってメモリチャネル21-nのリフレッシュ動作の周期が変化した場合であっても、メモリチャネル21の間におけるリフレッシュ動作のタイミングの同期を維持することを例示する図である。メモリリフレッシュ制御装置10は、図3に例示する通り、同期制御カウンタ120によって示される同期制御情報が示す値が0である場合は、メモリチャネル21-nの温度がXであっても、以降のリフレッシュ動作の周期をKではなくK/2に設定する。したがって、図15に例示する通り、メモリチャネル21-nと他のメモリチャネル21との間で、リフレッシュ動作の同期は維持され、図14に例示するようなリフレッシュ動作の同期が崩れることは回避される。
【0049】
また、本実施形態に係るメモリリフレッシュ制御装置10が設定するDRAM23のリフレッシュ動作の周期は上述したような2段階に限定されない。
【0050】
図5は、本実施形態に係る設定部13が、メモリチャネル21のDRAM23の温度及び生成部12によって生成された同期制御情報が示す値と、リフレッシュ制御カウンタ130の値が0になった後に設定する値との関係の第2の例を示す図である。図5に示す例では、メモリリフレッシュ制御装置10が設定するDRAM23のリフレッシュ動作の周期は、3段階存在する。
【0051】
図5に示す例の場合、生成部12は、メモリチャネル21に対するリフレッシュ動作の実行の制御に関して、同期制御カウンタ120に加えて同期制御カウンタ121を備える。生成部12は、同期制御カウンタ121の値をK/2に設定したのち0になるまで1ずつカウントダウンし、0になった後に再びK/2に設定することを繰り返し実行する。即ち、同期制御カウンタ120は1倍周期の同期制御情報を表し、同期制御カウンタ121は1/2倍周期の同期制御情報を表す。
【0052】
図5に示す例では、第1の閾値以下の温度をXと表し、当該第1の閾値よりも高く第2の閾値以下である温度をYと表し、当該第2の閾値よりも高い温度をZと表す。但し、第2の閾値は第1の閾値よりも高い温度であることとする。
【0053】
図5に示す例において、DRAM23のリフレッシュ動作が行われる周期は、その温度がXである場合は、Kから0までのカウントダウンに要する時間とし、その温度がYである場合は、K/2から0までのカウントダウンに要する時間とし、その温度がZである場合は、K/4から0までのカウントダウンに要する時間とする。
【0054】
図5に示す通り、DRAM23の温度がXであり同期制御情報(1倍周期)が示す値が1である条件aの場合、設定部13は、リフレッシュ制御カウンタ130をK(リフレッシュ周期1倍の値)に設定する。DRAM23の温度がXであり同期制御情報(1倍周期)が示す値が0である条件bの場合、設定部13は、リフレッシュ制御カウンタ130をK/2(リフレッシュ周期1/2倍の値)に設定する。DRAM23の温度がYであり同期制御情報(1/2倍周期)が示す値が1である条件cの場合、設定部13は、リフレッシュ制御カウンタ130をK/2に設定する。DRAM23の温度がYであり同期制御情報(1/2倍周期)が示す値が0である条件dの場合、設定部13は、リフレッシュ制御カウンタ130をK/4(リフレッシュ周期1/4倍の値)に設定する。DRAM23の温度がZである条件eの場合、設定部13は、同期制御情報が示す値にかかわらず、リフレッシュ制御カウンタ130をK/4に設定する。
【0055】
メモリリフレッシュ制御装置10は、DRAM23の温度に対応付けられるリフレッシュ動作の周期が3段階存在する場合であっても、図5に例示するように以降のリフレッシュ動作の周期をリフレッシュ制御カウンタ130に設定することによって、メモリチャネル21の間におけるリフレッシュ動作のタイミングの同期を維持することができる。
【0056】
このように、DRAM23の温度に対応付けられるリフレッシュ動作の周期がm段階(mは2以上の整数)存在する場合、生成部12は同期制御カウンタ120をm-1個備える。そして、設定部13は、温度がm段階の周期のうちの最短周期である第1の周期と対応付けられた温度である場合、以降のリフレッシュ動作の周期を当該第1の周期に設定する。そして、設定部13は、温度が当該第1の周期とは異なる第2の周期と対応付けられた温度である場合、以降のリフレッシュ動作の周期を、当該第2の周期に関する同期制御情報が示す値に応じて、当該第2の周期あるいは当該第2の周期の次に長い周期に設定する。
【0057】
また、本実施形態に係る設定部13は、外部から入力されたモード情報に応じて、上述したメモリチャネル21の間におけるリフレッシュ動作のタイミングの同期を維持するための動作を行なうか否かを切り換える機能を備えてもよい。設定部13は、例えばリフレッシュ動作のタイミングの同期を維持するための動作を行なわないモードである場合、同期制御情報が示すタイミングに関わらずリフレッシュ動作が行われるように、取得部11によって取得されたDRAM23の温度と対応付けられるリフレッシュ動作の周期を、リフレッシュ制御カウンタ130に設定する。例えば、情報処理装置1によって実行されるアプリケーションが、複数のメモリチャネル21を跨るようなデータアクセスをほとんど行わない(即ちアクセスデータの大きさが小さい)ような特性を有する場合は、リフレッシュ動作のタイミングの同期を維持するための動作を行なわない方がむしろ性能が高いことが考えられる。尚、上述したモード情報は、例えば、情報処理装置1の利用者による端末装置(不図示)に対する入力操作を介してメモリリフレッシュ制御装置10に入力される。
【0058】
また、本実施形態に係る取得部11は、取得した複数のDRAM23の個々の温度の推移を表す情報を出力する機能を備えてもよい。ただし、取得部11は、複数のDRAM23の個々の温度の推移を表す情報を、記憶デバイス(不図示)に格納することとする。この場合、メモリリフレッシュ制御装置10は、例えば、情報処理装置1において実行されるアプリケーションの記憶装置20へのアクセス特性、あるいは記憶装置20におけるDRAM23が実装された場所ごとの冷却特性等に関する情報処理装置1の利用者による解析作業を支援することができる。
【0059】
<第2の実施形態>
図6は、本発明の第2の実施形態に係る情報処理装置1Aの構成を示すブロック図である。本実施形態において、第1の実施形態のときと同様の機能を備える構成要素に関しては、図1に例示する情報処理装置1の構成要素と同じ符号を付与することにより、その詳細な説明を省略する。
【0060】
情報処理装置1Aは、大別して、メモリリフレッシュ制御装置10A、記憶装置20、中央処理装置30を有する。記憶装置20及び中央処理装置30の機能は、第1の実施形態と同様である。
【0061】
メモリリフレッシュ制御装置10Aは、取得部11、設定部13A、実行部14、特定部15Aを備える。取得部11、設定部13A、実行部14、特定部15Aは、順に、取得手段、設定手段、実行手段、特定手段の一例である。
【0062】
メモリリフレッシュ制御装置10Aは、第1の実施形態に係る生成部12の代わりに特定部15Aを備える。特定部15Aは、取得部11によって取得されたメモリチャネル21-1乃至21-nのDRAM23-1乃至23-nの温度のうちで最も高い温度150Aを特定する。
【0063】
図7は、本実施形態に係る特定部15Aが特定する最も高い温度150Aの時間推移の一例を例示する図である。但し、図7に示す温度X及び温度Yは、第1の実施形態において説明した通りである。また、図7に示す例において、時刻の早い順に、t11、t12、t13、t14、t15、t16とする。
【0064】
図7に示す例では、DRAM23-1の温度は、時刻t13にXからYに上昇し、時刻t16にYからXに下降している。DRAM23-2の温度は、時刻t11にXからYに上昇し、時刻t14にYからXに下降している。DRAM23-nの温度は、時刻t12にXからYに上昇し、時刻t15にYからXに下降している。尚、図7に図示しない他のDRAM23の温度も、時刻t11から時刻t16の間のいずれかのタイミングに、XからYへの上昇及びYからXへの下降が発生していることとする。この場合、特定部15Aは、時刻t11よりも前の期間及び時刻t16よりも後の期間において、最も高い温度150Aが温度Xであり、時刻t11から時刻t16までの期間において、最も高い温度150Aが温度Yであることを特定する。
【0065】
設定部13Aは、第1の実施形態に係る設定部13と同様に、メモリチャネル21-1乃至21-nと対応付けられるリフレッシュ制御カウンタ130―1乃至130-nを備える。設定部13Aは、第1の実施形態に係る設定部13と同様に、リフレッシュ制御カウンタ130に以降のリフレッシュ動作を実行する周期を設定したのち0になるまで1ずつカウントダウンし、0になった後に再び以降のリフレッシュ動作を実行する周期を設定することを繰り返し実行する。
【0066】
設定部13Aは、特定部15Aによって特定された最も高い温度150Aと対応付けられたリフレッシュ動作の周期を、以降のリフレッシュ動作を実行する周期としてリフレッシュ制御カウンタ130に設定する。例えば図7に示す例において、設定部13Aは、リフレッシュ制御カウンタ130―1乃至130-nに設定する以降のリフレッシュ動作を実行する周期を、時刻t11までの期間においてはKとし、時刻t11から時刻t16までの期間においてはK/2とし、時刻t16以降の期間においてはKとする。但し、Kは、第1の実施形態において説明した通りである。
【0067】
次に図8のフローチャートを参照して、本実施形態に係るメモリリフレッシュ制御装置10Aの動作(処理)について詳細に説明する。
【0068】
取得部11は、各メモリチャネル21の温度センサ24からDRAM23の温度を取得する(ステップS201)。設定部13Aは、リフレッシュ制御カウンタ130を1つカウントダウンする(ステップS202)。実行部14は、リフレッシュ制御カウンタ130の値が0であるか確認する(ステップS203)。
【0069】
リフレッシュ制御カウンタ130の値が0でない場合(ステップS204でNo)、処理はステップS201へ戻る。リフレッシュ制御カウンタ130の値が0である場合(ステップS204でYes)、実行部14は、DRAM23のリフレッシュ動作を実行する(ステップS205)。
【0070】
特定部15Aは、各メモリチャネル21のDRAM23の温度のうち、最も高い温度150Aを特定する(ステップS206)。設定部13Aは、リフレッシュ制御カウンタ130の値を、最も高い温度150Aと対応付けられたリフレッシュ動作の周期に設定し(ステップS207)、処理はステップS201へ戻る。
【0071】
本実施形態に係るメモリリフレッシュ制御装置10Aは、個々のメモリチャネルの温度の変化に伴いリフレッシュ動作の周期が動的に変更される場合であっても、メモリチャネル間におけるリフレッシュ動作のタイミングの同期を維持することができる。その理由は、メモリリフレッシュ制御装置10Aは、DRAM23の温度に基づいて、メモリチャネル21の間においてリフレッシュ動作のタイミングの同期を維持できるように、以降のリフレッシュ動作の実行周期を設定するからである。
【0072】
本実施形態に係るメモリリフレッシュ制御装置10Aは、第1の実施形態に係る同期制御カウンタ120のような構成を備えず、複数のメモリチャネル21の個々の温度のうちで最も高い温度150Aを特定する。そして、設定部13Aは、最も高い温度150Aと対応付けられたリフレッシュ動作の周期を、以降のリフレッシュ動作を実行する周期として設定する。即ち、メモリリフレッシュ制御装置10Aは、全てのメモリチャネル21のリフレッシュ動作を、最も高い温度150Aと対応付けられた周期で実行するので、メモリチャネル間におけるリフレッシュ動作のタイミングの同期を維持することができる。
【0073】
<第3の実施形態>
図9は、本発明の第3の実施形態に係るメモリリフレッシュ制御装置40の構成を示すブロック図である。
【0074】
本実施形態に係るメモリリフレッシュ制御装置40は、取得部41、生成部42、設定部43、実行部44を備える。取得部41、生成部42、設定部43、実行部44は、順に、取得手段、生成手段、設定手段、実行手段の一例である。
【0075】
取得部41は、メモリチャネル50の温度帯に応じて基本周期及び基本周期の周波数を逓倍した周波数の周期である逓倍周期のいずれかでリフレッシュ動作が繰り返し行われる複数のメモリチャネル50の個々の温度を取得する。メモリチャネル50は、例えば、第1の実施形態に係るメモリチャネル21と同様なデバイスである。取得部41は、例えば、第1の実施形態に係る取得部11と同様に動作する。
【0076】
生成部42は、複数のメモリチャネル50のリフレッシュ動作の周期が基本周期であるときのリフレッシュ動作が行われるタイミングを示す同期制御情報420を生成する。同期制御情報420は、例えば、第1の実施形態に係る同期制御カウンタ120によって表される同期制御情報と同様な情報である。生成部42は、例えば、第1の実施形態に係る生成部12と同様に動作する。
【0077】
設定部43は、複数のメモリチャネルの個々に関して、以降のリフレッシュ動作の周期を、取得部41が取得した温度に応じて、少なくとも同期制御情報420が示すタイミングでリフレッシュ動作が行われるように、基本周期あるいは逓倍周期に設定する。設定部43は、例えば、第1の実施形態に係る設定部13と同様に動作する。
【0078】
実行部44は、設定部43により設定された周期でメモリチャネル50のリフレッシュ動作を実行する。実行部44は、例えば、第1の実施形態に係る実行部44と同様に動作する。
【0079】
次に図10のフローチャートを参照して、本実施形態に係るメモリリフレッシュ制御装置40の動作(処理)について詳細に説明する。
【0080】
取得部41は、メモリチャネル50の温度を取得する(ステップS301)。生成部42は、同期制御情報420を生成する(ステップS302)。設定部43は、メモリチャネル50の個々に関して、以降のリフレッシュ動作の周期を、取得した温度に応じて、少なくとも同期制御情報420が示すタイミングでリフレッシュ動作が行われるように、基本周期あるいは逓倍周期に設定する(ステップS303)。実行部44は、設定部43によって設定された周期で、メモリチャネル50のリフレッシュ動作を実行し、処理はステップS301へ戻る。
【0081】
本実施形態に係るメモリリフレッシュ制御装置40は、個々のメモリチャネルの温度の変化に伴いリフレッシュ動作の周期が動的に変更される場合であっても、メモリチャネル間におけるリフレッシュ動作のタイミングの同期を維持することができる。その理由は、メモリリフレッシュ制御装置40は、メモリチャネル50の温度と生成した同期制御情報420とに基づいて、メモリチャネル50の間においてリフレッシュ動作のタイミングの同期を維持できるように、以降のリフレッシュ動作の実行周期を設定するからである。
【0082】
<ハードウェア構成例>
上述した各実施形態において図1図6、及び、図9に示したメモリリフレッシュ制御装置における各部は、専用のHW(HardWare)(電子回路)によって実現することができる。また、図1図6、及び、図9において、少なくとも、下記構成は、プロセッサによって実行される命令を含むソフトウェアプログラムの機能(処理)単位(ソフトウェアモジュール)と捉えることができる。
・取得部11及び41、
・生成部12及び42
・設定部13、13A、及び43、
・実行部14及び44、
・特定部15A。
【0083】
但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図11を参照して説明する。
【0084】
図11は、本発明の各実施形態に係るメモリリフレッシュ制御装置を実行可能な情報処理装置900(コンピュータ)の構成を例示的に説明する図である。即ち、図11は、図1図6及び、図9に示したメモリリフレッシュ制御装置を実現可能なコンピュータ(情報処理装置)の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。
【0085】
図11に示した情報処理装置900は、構成要素として下記を備えている。
・CPU(Central_Processing_Unit)901、
・ROM(Read_Only_Memory)902、
・RAM(Random_Access_Memory)903、
・ハードディスク(記憶装置)904、
・通信インタフェース905、
・バス906(通信線)、
・CD-ROM(Compact_Disc_Read_Only_Memory)等の記録媒体907に格納されたデータを読み書き可能なリーダライタ908、
・モニターやスピーカ、キーボード等の入出力インタフェース909。
【0086】
即ち、上記構成要素を備える情報処理装置900は、これらの構成がバス906を介して接続された一般的なコンピュータである。情報処理装置900は、CPU901を複数備える場合もあれば、マルチコアにより構成されたCPU901を備える場合もある。情報処理装置900は、また、上述した構成の一部を備えない場合もある。
【0087】
そして、上述した実施形態を例に説明した本発明は、図11に示した情報処理装置900に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図(図1図6、及び図9)における上述した構成、或いはフローチャート(図4A図4B図8、及び図10)の機能である。本発明は、その後、そのコンピュータプログラムを、当該ハードウェアのCPU901に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ(RAM903)、または、ROM902やハードディスク904等の不揮発性の記憶デバイスに格納すれば良い。
【0088】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、CD-ROM等の各種記録媒体907を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体907によって構成されると捉えることができる。
【0089】
以上、上述した実施形態を模範的な例として本発明を説明した。しかしながら、本発明は、上述した実施形態には限定されない。即ち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【0090】
1 情報処理装置
1A 情報処理装置
10 メモリリフレッシュ制御装置
10A メモリリフレッシュ制御装置
11 取得部
12 生成部
120 同期制御カウンタ
121 同期制御カウンタ
13 設定部
13A 設定部
130 リフレッシュ制御カウンタ
14 実行部
15A 特定部
150A 最も高い温度
20 記憶装置
21 メモリチャネル
22 メモリコントローラ
23 DRAM
24 温度センサ
30 中央処理装置
40 メモリリフレッシュ制御装置
41 取得部
42 生成部
420 同期制御情報
43 設定部
44 実行部
50 メモリチャネル
900 情報処理装置
901 CPU
902 ROM
903 RAM
904 ハードディスク(記憶装置)
905 通信インタフェース
906 バス
907 記録媒体
908 リーダライタ
909 入出力インタフェース
図1
図2
図3
図4A
図4B
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15