JP7008410B2 - メモリコントローラおよび方法 - Google Patents

メモリコントローラおよび方法 Download PDF

Info

Publication number
JP7008410B2
JP7008410B2 JP2017023473A JP2017023473A JP7008410B2 JP 7008410 B2 JP7008410 B2 JP 7008410B2 JP 2017023473 A JP2017023473 A JP 2017023473A JP 2017023473 A JP2017023473 A JP 2017023473A JP 7008410 B2 JP7008410 B2 JP 7008410B2
Authority
JP
Japan
Prior art keywords
row address
count value
holding means
row
held
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2017023473A
Other languages
English (en)
Other versions
JP2018128991A (ja
Inventor
肇 栗林
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to JP2017023473A priority Critical patent/JP7008410B2/ja
Publication of JP2018128991A publication Critical patent/JP2018128991A/ja
Application granted granted Critical
Publication of JP7008410B2 publication Critical patent/JP7008410B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)
  • Dram (AREA)

Description

本発明は、メモリコントローラおよび方法に関する。
近年、DRAM(Dynamic Random Access Memory)の製造プロセスの微細化が進んでいる。DRAMの製造プロセスが40nmを下回り、密度が増加すると、隣接するワードラインに対するクロストーク等の電気的影響により、隣接するワードラインへつながるメモリセルへのリーク電流の影響が顕著となる。これにより、メモリコントローラによる特定のROWに対するActivateコマンドの発行が集中した場合、DRAMのメモリセル内部のデータが破損する虞がある。これを、ROW HAMMER問題という。
ROW HAMMER問題への対策として、LPDDR4の規格にはTarget Row Refreshコマンド(以下、TRRと称す)が定義されている。TRRは、DRAMのあるROWに対するActivateコマンドの発行数が、一定期間内に上限値に達した場合、該当するROWに対してメモリコントローラから特定のシーケンスを実行する操作である。この上限値はMAC(Maximum Activate Count)と呼ばれる。TRRを実施すると、メモリセル内部のデータ破損を回避することができる。
しかしながら、TRRの機能をメモリコントローラに実装する際には、各ROWへのActivateコマンドの発行数を計測しなければならない。LPDDR4の場合、MACの値は最大70万(20bit長のカウンタが必要)であり、DRAMのROW数は最小容量である4Gbitの場合でもチャネルあたり131K個となる。そのため、単純な実装を行うと、回路規模が大きくなる。これに対応して特許文献1では、回路規模を抑制しながら、Activateコマンドの発行数を計測し、TRRを実行する方法が提案されている。
米国特許出願公開第2014/0006704号明細書
特許文献1に示されている手法では、メモリコントローラは、ROWアドレスと、各ROWアドレスへのActivateコマンドの発行数とを対応付けて保持するテーブルを持つ。このテーブルのエントリ数は、一定期間内でMACに達することの可能なROWの個数に基づいており、前述の単純な実装と比較して、回路規模を削減することができる。
しかしながら、特許文献1に示されている手法は、テーブルのエントリ数を減らす代わりに発行数の正確さを犠牲にしている。したがって、ROWアドレスへの実際のActivateコマンドの発行数と、テーブルに保持されている発行数と、の間に乖離が生じうる。この乖離により無駄なTRRが発生し、性能の低下につながる虞がある。
本発明はこうした課題に鑑みてなされたものであり、その目的は、TRRを実装したメモリコントローラにおいて、回路規模を抑制しつつ無駄なTRRの発生を抑制できる技術の提供にある。
本発明のある態様はメモリコントローラに関する。このメモリコントローラは、ROWアドレスが複数のグループに分けられたDRAMを制御するメモリコントローラであって、ROWアドレスと該ROWアドレスに対してActivateコマンドが発行されると更新されるカウント値とを対応付けて保持する第1保持手段であって、ROWアドレスを保持可能なエントリの数がROWアドレスの総数よりも小さい、第1保持手段と、第1保持手段に保持されるカウント値が所定の条件を満たすと対応するROWアドレスに関するTarget Row Refreshコマンドを発行する制御手段と、ROWアドレスの複数のグループそれぞれに対応する複数のカウント値を保持する第2保持手段と、を備え、制御手段は、第1保持手段に保持されていないROWアドレスである第1ROWアドレスに対してActivateコマンドが発行され、かつ、第1保持手段に空いているエントリがない場合、第1保持手段に保持されているROWアドレスのなかからカウント値に関する所定の基準にしたがい選択されたROWアドレスである第2ROWアドレスを第1ROWアドレスで置き換えると共に、第2ROWアドレスが属するグループと第1ROWアドレスが属するグループとが異なる場合には、第2保持手段に保持されている複数のカウント値の内、第1ROWアドレスが属するグループに対応するカウント値を参照して第1ROWアドレスに対応するカウント値を設定し、第2ROWアドレスが属するグループと第1ROWアドレスが属するグループとが同一である場合は、第2ROWアドレスに対応して第1保持手段に保持されているカウント値を更新して、更新したカウント値を第1ROWアドレスに対応するカウント値として設定する。
本発明によれば、TRRを実装したメモリコントローラにおいて、回路規模を抑制しつつ無駄なTRRの発生を抑制できる。
実施の形態に係るメモリコントローラの機能及び構成を示すブロック図。 図1のアドレス保持部、カウント値保持部およびバンク毎最大値保持部の一例を示すデータ構造図。 本実施の形態におけるアドレスグループとバンク・ROWアドレスとの対応関係を示す説明図。 図1のメモリコントローラにおける一連の処理の流れを示すフローチャート。 あるシナリオでの制御部の動作を説明するための図。 あるシナリオでの制御部の動作を説明するための図。 あるシナリオでの制御部の動作を説明するための図。 あるシナリオでの制御部の動作を説明するための図。 図9(a)、(b)は、ROWアドレスの分け方の例を示す図。
以下、各図面に示される同一または同等の構成要素、部材、処理、信号には、同一の符号を付するものとし、適宜重複した説明は省略する。また、各図面において説明上重要ではない部材の一部は省略して表示する。
特許文献1に記載の手法では、メモリコントローラがActivateコマンドを発行した際、次のように動作する。まず、テーブルの管理部は、もしActivateコマンドの発行先のROWアドレスがテーブルに存在せず、かつ、テーブルに空きがない場合、最も小さいActivateコマンド発行数を持つROWアドレスのエントリを置換する。この時、テーブルの管理部は、置換前のエントリに関連付けられているActivateコマンド発行数を、置換後のエントリに関連付けられるActivateコマンド発行数にコピーし、続いてそのActivateコマンド発行数をインクリメントする。つまり、置換後のROWアドレスに対して発行された、置換時点までのActivateコマンド発行数の大小によらず、置換前のROWアドレスに対して関連付けられていたActivateコマンド発行数に1を足した値が置換後のROWアドレスに対して関連付けられる。
この仕組みにおける問題は、テーブルの管理部が、置換時にActivateコマンド発行数にのみ着目している点である。例えば、DRAMのBank0のROWアドレスへアクセスが頻発し、テーブルに空きがなく、Bank0のROWアドレスで占められている状況を考える。この時、初めてBank1のROWアドレスへアクセスが発生した場合、テーブルの管理部は、テーブル内の最小のActivateコマンド発行数と関連付けられたBank0のROWアドレスのエントリをBank1のROWアドレスで置換する。実際はBank1のROWアドレスへActivateコマンドが発行されたのは初めてであるにも関わらず、置換によりテーブルに格納されるBank1のROWアドレスには、実際より多くのActivateコマンド発行数が関連付けられる。このように、Bank1のROWアドレスへのアクセスの実態と保持されるコマンド発行数との間に乖離が発生する。乖離が発生すると、無駄なTRRが発生して、性能低下が生じうる。
特許文献1に記載の技術では、あるROWアドレスに対してActivateコマンド(以下、ACTと称す)が発行された時、テーブルに空きがなく、かつテーブル内に同じROWアドレスのエントリがない場合、テーブル外へエントリ(ROWアドレスとACT発行数カウントとから成る)が追い出される。これに対して、実施の形態に係るメモリコントローラでは、追い出されたエントリのうちのACT発行数カウントを保持する保持部が設けられる。この保持部は、バンクやアドレスレンジごとに用意され、追い出されたエントリのROWアドレスのバンク/アドレスレンジに対応する保持部に、追い出されたエントリのACT発行数カウントが登録される。また、あるバンク/アドレスレンジのROWアドレスへのACT発行があった場合、そのバンク/アドレスレンジに対応して保持部に保持されているACT発行数カウントがテーブルに書き戻され、インクリメントされる。これにより、特許文献1に記載の技術と比較して、実際のROWアドレスへのアクセス数とACT発行数との乖離を抑制することができ、無駄なTRRの発生を抑制することができる。
図1は、実施の形態に係るメモリコントローラ100の機能及び構成を示すブロック図である。メモリコントローラ100は、発行部101と、制御部102と、テーブル106と、バンク毎最大値保持部105と、を備える。メモリコントローラ100は、DRAM110に接続され、DRAM110にDRAMコマンドCMDを送信することでDRAM110を制御する。DRAM110は、メモリコントローラ100から受信したDRAMコマンドCMDに従い、動作する。DRAM110はLPDDR4に準拠する。DRAM110は複数のバンクを有し、DRAM110のROWアドレスは、複数のバンクに対応する複数のアドレスグループに分けられている。
発行部101は、メモリコントローラ100が受信したメモリアクセス要求MARに応じて、DRAMコマンドCMDを発行する。発行部101は、例えば外部のCPUなどからメモリアクセス要求MARを受信すると、受信したメモリアクセス要求MARに含まれるROWアドレスに関するDRAMコマンドCMDを生成し、DRAM110に送信する。
制御部102は、発行部101が発行するDRAMコマンドCMDのうち、ACTがどのROWアドレスに発行されたかを監視する。
テーブル106は、ROWアドレスと該ROWアドレスが属するバンクを特定するバンクIDと該ROWアドレスに対してACTが発行されると更新されるカウント値とを対応付けて保持する。バンクとアドレスグループとは一対一に対応するので、バンクIDは対応するアドレスグループを特定するIDでもある。テーブル106について、ROWアドレスを保持可能なエントリの数はDRAM110のROWアドレスの総数よりも小さい。
テーブル106は、アドレス保持部103と、カウント値保持部104と、を含む。アドレス保持部103は制御部102によって制御される。制御部102は、発行部101が発行したACTの発行先のバンクとROWアドレスとの組をアドレス保持部103に登録する、または格納する。以下、バンクとROWアドレスとの組をバンク・ROWアドレスと表記する。本実施の形態ではバンク・ROWアドレスは「バンク0、ROWアドレス0x000」のように表されるが、他の例としてROWアドレス0x000の左から3桁目をバンクIDとして利用してもよい。すなわち、0x000はバンク0のROWアドレス、0x100はバンク1のROWアドレス、という表記でもよい。
カウント値保持部104は制御部102によって制御される。制御部102は、アドレス保持部103に保持されている各ROWアドレスについて、そのROWアドレスに対してACTが発行されると、カウント値保持部104に保持される対応するカウント値をインクリメントする。
バンク毎最大値保持部105は制御部102によって制御され、アドレスグループ(すなわちバンク)ごとに最大カウント値を保持する。
図2は、アドレス保持部103、カウント値保持部104およびバンク毎最大値保持部105の一例を示すデータ構造図である。アドレス保持部103およびカウント値保持部104はそれぞれ、MVC(Maximum Victim Count)(特許文献1参照)以下の個数のエントリを持つ。MVCは、DRAM110のリフレッシュ周期内に、メモリコントローラ100がACTを可能な限り発行したとき、MACに到達することのできるROWアドレスの個数である。この値はtREFW、tRC、MACの値に基づいて計算される。例えば、tREFWが32ms、tRCが42ns、MACが200K回の場合、ROWアドレスへのACTは、32ms/42ns=約762K回となる。メモリコントローラ100は、ひとつのリフレッシュ周期の間に約762K回のACTを発行することができる。この場合において、ひとつのリフレッシュ周期内にMACに到達することのできるROWアドレスの個数は、762K/100K=約7.62個となる。よって、この場合にアドレス保持部103およびカウント値保持部104のエントリは、8個必要となる。バンク毎最大値保持部105はアドレスグループの数=バンクの数個のエントリを持つ。
図3は、本実施の形態における、アドレスグループ301とバンク・ROWアドレス302との対応関係を示す説明図である。図3に示される通り、1つのアドレスグループに1つのバンクが割り当てられる。
以上の構成によるメモリコントローラ100の動作を説明する。
図4は、メモリコントローラ100における一連の処理の流れを示すフローチャートである。発行部101がACTを発行すると、制御部102はアドレス保持部103およびカウント値保持部104のそれぞれの状態に依存して図4に示される処理を実行する。S401で制御部102は、発行部101が発行するDRAMコマンドCMDを監視し、ACTが発行されたか否かを判定する。ACTが発行されなかった場合、制御部102はS401を繰り返す。ACTが発行された場合、S402で制御部102はアドレス保持部103を参照し、発行されたACTの発行先のバンク・ROWアドレスがアドレス保持部103に存在するか否かを判定する。
S402で存在すると判定された場合、S403で制御部102はカウント値保持部104を参照し、発行先のバンク・ROWアドレスと同じアドレス保持部103のエントリに対応してカウント値保持部104に保持されているカウント値を読み出す。制御部102は、読み出されたカウント値がしきい値、この場合MAC/2-1、に等しいか否かを判定する。S403で等しくない、すなわちしきい値未満であると判定された場合、S404で制御部102は読み出されたカウント値をインクリメント(例えば+1)する。制御部102は、インクリメント後のカウント値をカウント値保持部104に登録することでカウント値保持部104を更新する。その後、処理はS401に戻る。
S403で等しいと判定された場合、S405で発行部101は、ACTの発行先のバンク・ROWアドレスを対象とするTRRを発行する。S406で制御部102は、TRRの発行先のバンクに対応してバンク毎最大値保持部105に保持されている最大カウント値をリセットする、または初期化する。例えば、最大カウント値は0や1などの初期値となる。その後、処理はS401に戻る。
S402で存在しないと判定された場合、S407で制御部102は、アドレス保持部103に空いているエントリ(以下、空きエントリと称す)があるか否かを判定する。S407であると判定された場合、S408で制御部102は、ACTの発行先のバンク・ROWアドレスを新たにアドレス保持部103の空きエントリに登録する。S409で制御部102は、ACTの発行先のバンクに対応してバンク毎最大値保持部105に保持されている最大カウント値を読み出す。S410、S411で制御部102は、読み出された最大カウント値を参照して、ACTの発行先のバンク・ROWアドレスに対応するカウント値を設定する。S410で制御部102は、読み出された最大カウント値をインクリメントする。S411で制御部102は、インクリメント後の値を、ACTの発行先のバンク・ROWアドレスに対応するカウント値としてカウント値保持部104に登録する。その後、処理はS401に戻る。
S407で空きエントリないと判定された場合、S412で制御部102は、カウント値保持部104に保持されるカウント値のなかから、最小のカウント値を特定する。S413で制御部102は、アドレス保持部103に保持されるバンク・ROWアドレスのなかから、特定された最小のカウント値に対応するバンク・ROWアドレスを選択する。S414で制御部102は、選択されたバンク・ROWアドレスを、ACTの発行先のバンク・ROWアドレスで置き換える。
S415で制御部102は、置換の前後でバンクが異なるか否かを判定する。すなわち、制御部102は、S413で選択されたバンク(置換前のバンク)と、ACTの発行先のバンク(置換後のバンク)と、の異同を判定する。S415で同じであると判定された場合、S416で制御部102はS412で特定された最小のカウント値をインクリメントする。制御部102は、インクリメント後のカウント値をACTの発行先のバンク・ROWアドレスに対応付けてカウント値保持部104に登録することでカウント値保持部104を更新する。その後、処理はS401に戻る。
S415で異なると判定された場合、S417で制御部102は、S413で選択されたバンクに対応してバンク毎最大値保持部105に保持されている最大カウント値を読み出す。S412で特定された最小のカウント値はS413で選択されたバンク・ROWアドレスに対応し、後のS411の処理で上書きされる(追い出される)ので、以下、追い出されるカウント値、と表現する。S418で制御部102は、追い出されるカウント値がS417で読み出された最大カウント値よりも大きいか否かを判定する。S418で大きいと判定された場合、S419で制御部102は、S413で選択されたバンクに対応する最大カウント値を追い出されるカウント値で上書きすることで、バンク毎最大値保持部105を更新する。S418で大きくないと判定された場合またはS419の後、制御部102はS409、S410、S411を行うことでACTの発行先バンク・ROWアドレスに対応するカウント値を登録する。その後、処理はS401に戻る。
以降、図5から図8を参照し、図4で説明した各条件における、制御部102の動作の詳細を説明する。これらの例は、発行部101がバンク0、ROWアドレス0x100に対してACT501を発行した時の制御部102の動作を示している。制御部102は、アドレス保持部103およびカウント値保持部104のそれぞれの状態を確認し、その状態に応じた処理を実施する。
制御部102は、発行部101からのACT501の発行を検出すると、そのACT501の発行先であるバンク・ROWアドレスが、アドレス保持部103に存在するかどうかを判定する(図4のS402)。この状態に応じて、制御部102は続きの処理を決定する。
図5は、あるシナリオでの制御部102の動作を説明するための図である。図5の例では、制御部102がアドレス保持部103内を検索(符号502)した結果、アドレス保持部103のエントリにバンク0、ROWアドレス0x100の組を発見する。制御部102は、発見されたバンク0、ROWアドレス0x100の組に対応するカウント値保持部104のエントリを確認する(符号503)。その結果、制御部102はバンク0、ROWアドレス0x100の組に対応するカウント値が「999999」(=MAC/2-1)となっていることを見出す(図4のS403)。
この条件において、制御部102は、アドレス保持部103からバンク0、ROWアドレス0x100の組のエントリを削除し(符号504)、そのエントリに対応するカウント値保持部104のエントリを削除する(符号505)。続いて、制御部102は、発行部101に対し、TRRを発行するよう指示する(符号506)。発行部101は制御部102からの指示を受けてDRAM110に対してTRRを発行する(図4のS405)。
図6は、あるシナリオでの制御部102の動作を説明するための図である。図6の例では、制御部102がアドレス保持部103内を検索(符号601)した結果、アドレス保持部103のエントリにバンク0、ROWアドレス0x100の組を発見する。制御部102は、発見されたバンク0、ROWアドレス0x100の組に対応するカウント値保持部104のエントリを確認する(符号602)。その結果、制御部102はバンク0、ROWアドレス0x100の組に対応するカウント値がMAC/2-1未満であることを見出す(図4のS403)。
この条件において、制御部102は、アドレス保持部103のバンク0、ROWアドレス0x100に対応してカウント値保持部104に保持されるカウント値をインクリメントする(図4のS404)。制御部102は、バンク0、ROWアドレス0x100の組に対応するカウント値保持部104のエントリに、インクリメントの結果である「80001」を書き込む(符号603)。このインクリメントの結果、カウント値保持部104のカウント値は、MAC/2に到達しないため、これ以外の処理は行われない。
図7は、あるシナリオでの制御部102の動作を説明するための図である。図7の例では、制御部102がアドレス保持部103内を検索(符号701)した結果、アドレス保持部103のエントリにバンク0、ROWアドレス0x100の組を発見しない。また制御部102は、アドレス保持部103に空きエントリが存在すると判定する(図4のS407)。
この条件において、制御部102は、アドレス保持部103の空きエントリに、バンク0、ROWアドレス0x100のエントリを新規に作成する(符号702、図4のS408)。制御部102は、バンク0(アドレスグループ0)に対応してバンク毎最大値保持部105に保持される最大カウント値(「0」)を読み出す(符号703、図4のS409)。制御部102は、読み出された最大カウント値をインクリメントする(0+1=1)。制御部102は、インクリメントの結果得られる値(「1」)を、バンク0、ROWアドレス0x100に対応するカウント値としてカウント値保持部104に登録する(符号704、図4のS411)。
図8は、あるシナリオでの制御部102の動作を説明するための図である。図8の例では、制御部102がアドレス保持部103内を検索(符号801)した結果、アドレス保持部103のエントリにバンク0、ROWアドレス0x100の組を発見しない。また制御部102は、アドレス保持部103に空きエントリが存在しないと判定する(図4のS407)。
この条件において、制御部102はカウント値保持部104を参照して最小のカウント値を特定し、特定された最小のカウント値に対応してアドレス保持部103に保持されるエントリを特定する。制御部102は、特定されたエントリを、ACT501の発行先のバンク・ロウアドレスの組で置換する(図4のS414)。この図8ではバンク1、ROWアドレス0x98のエントリが、バンク0、ROWアドレス0x100の組で置換される(符号802)。制御部102は、置換後のバンク・ROWアドレスの組(バンク0、ROWアドレス0x100)に対応してバンク毎最大値保持部105に保持される最大カウント値(「100」)を読み出す(符号803)。制御部102は読み出された値をインクリメントする(100+1=101)。制御部102は、インクリメントの結果得られる値(「101」)を、置換後のバンク・ROWアドレスの組に対応するカウント値保持部104のエントリに書き込む(図4のS411)。この図8では、バンク毎最大値保持部105のアドレスグループ0のエントリから「100」が読み出され、インクリメントされて「101」となり、カウント値保持部104の最小のカウント値「15000」がその値「101」で上書きされる(符号804)。
制御部102は、追い出されたバンク1のカウント値「15000」と、バンク1(アドレスグループ1)に対応してバンク毎最大値保持部105に保持されている最大カウント値(「14500」)と、を比較する(図4のS418)。15000>14500なので、制御部102はバンク1に対応する最大カウント値を15000で置き換える(符号805)。
本実施の形態に係るメモリコントローラ100によると、制御部102がアドレス保持部103、カウント値保持部104およびバンク毎最大値保持部105を上述のように制御することで、実際のROWアドレスへのアクセス数とACTの発行数との乖離を抑制することができる。その結果、無駄なTRRの発生を抑制することができる。
以上、実施の形態に係るメモリコントローラ100の構成と動作について説明した。この実施の形態は例示であり、その各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
実施の形態ではROWアドレスのアドレスグループがDRAM110のバンクに対応する場合について説明したが、これに限られない。ROWアドレスが複数のグループに分けられていればよく、その分け方は任意でよい。図9(a)、(b)は、ROWアドレスの分け方の例を示す図である。図9(a)の符号1001で示されるように、ROWアドレスによる区分を用いてもよい。または、図9(b)の符号1002に示されるように、マスタ毎の区分(マスタによってアクセス先のアドレスが固定されている場合)を用いてもよい。このように、任意の割り当て方法を採用することができる。
実施の形態では、カウント値がインクリメントされる場合について説明したが、これに限られず、ROWアドレスに対してACTが発行されるとカウント値を更新する態様であれば他の態様が用いられてもよい。例えば、ACTの発行に対してカウント値がデクリメントされてもよい。この場合、図4のS403やS418における判定基準も合わせて変更されてもよい。
実施の形態では、カウント値がしきい値=MAC/2-1に達するとTRRが発行される場合について説明したが、これに限られず、他のしきい値が用いられてもよいし、しきい値以外の他の条件が用いられてもよい。
実施の形態では、図4のS412において最小のカウント値が特定され、S413において特定されたカウント値に対応するバンク・ROWアドレスが選択される場合について説明したが、これに限られない。アドレス保持部103に保持されているバンク・ROWアドレスのなかからカウント値に関する所定の基準にしたがいバンク・ROWアドレスが選択されてもよい。例えば、極小のカウント値が特定されてもよい。あるいはまた、カウント値保持部104から小さい方から3つのカウント値を選択し、該3つのカウント値のなかからランダムに選択したひとつに対応してアドレス保持部103に保持されるバンク・ROWアドレスを選択してもよい。
S412における最小のカウント値は、カウント値保持部104に保持されるカウント値のなかで、MAC/2-1に到達するという条件を満たすために必要なインクリメントの回数が最も多いカウント値であると言うことができる。すなわち、S412では、カウント値保持部104に保持されているカウント値のなかでTRR発行の条件を満たすために必要な更新の回数が最も多いカウント値を特定しているといえる。
実施の形態では、図4のS406においてTRRの発行を契機として対応するバンクの最大カウント値をリセットする場合について説明したが、これに限られない。例えば、バンク毎最大値保持部105に保持される最大カウント値は経時的に自動的に減少してもよいし、またはバンク毎最大値保持部105から最大カウント値を読み出したことを契機としてその最大カウント値がリセットされてもよい。
実施の形態では、DRAM110がLPDDR4に準拠する場合について説明したが、これに限られず、ROWアドレスが複数のグループに分けられる任意のDRAMに本実施の形態に係る技術的思想を適用可能である。
100 メモリコントローラ、 101 発行部、 102 制御部、 103 アドレス保持部、 104 カウント値保持部、 105 バンク毎最大値保持部、 110 DRAM。

Claims (11)

  1. ROWアドレスが複数のグループに分けられたDRAMを制御するメモリコントローラであって、
    ROWアドレスと該ROWアドレスに対してActivateコマンドが発行されると更新されるカウント値とを対応付けて保持する第1保持手段であって、ROWアドレスを保持可能なエントリの数がROWアドレスの総数よりも小さい、第1保持手段と、
    前記第1保持手段に保持されるカウント値が所定の条件を満たすと対応するROWアドレスに関するTarget Row Refreshコマンドを発行する制御手段と、
    ROWアドレスの複数のグループそれぞれに対応する複数のカウント値を保持する第2保持手段と、を備え、
    前記制御手段は、前記第1保持手段に保持されていないROWアドレスである第1ROWアドレスに対してActivateコマンドが発行され、かつ、前記第1保持手段に空いているエントリがない場合、前記第1保持手段に保持されているROWアドレスのなかからカウント値に関する所定の基準にしたがい選択されたROWアドレスである第2ROWアドレスを前記第1ROWアドレスで置き換えると共に、前記第2ROWアドレスが属するグループと前記第1ROWアドレスが属するグループとが異なる場合には、前記第2保持手段に保持されている複数のカウント値の内、前記第1ROWアドレスが属するグループに対応するカウント値を参照して前記第1ROWアドレスに対応するカウント値を設定し、前記第2ROWアドレスが属するグループと前記第1ROWアドレスが属するグループとが同一である場合は、前記第2ROWアドレスに対応して前記第1保持手段に保持されているカウント値を更新して、当該更新したカウント値を前記第1ROWアドレスに対応するカウント値として設定するメモリコントローラ。
  2. 前記制御手段は、前記第2ROWアドレスに対応して前記第1保持手段に保持されているカウント値と前記第2ROWアドレスが属するグループに対応して前記第2保持手段に保持されているカウント値とを比較することにより前記第2保持手段を更新する請求項1に記載のメモリコントローラ。
  3. 前記制御手段は、前記第2ROWアドレスが属するグループに対応して前記第2保持手段に保持されているカウント値を、前記第2ROWアドレスに対応して前記第1保持手段に保持されているカウント値で更新する請求項2に記載のメモリコントローラ。
  4. 前記制御手段は、前記第1保持手段に空いているエントリがある場合、前記第1ROWアドレスを該エントリに登録すると共に、前記第1ROWアドレスが属するグループに対応して前記第2保持手段に保持されているカウント値を参照して前記第1ROWアドレスに対応するカウント値を設定する請求項1から3のいずれか一項に記載のメモリコントローラ。
  5. 前記第2ROWアドレスは、前記第1保持手段に保持されているカウント値のなかで前記所定の条件を満たすために必要な更新の回数が最も多いカウント値に対応するROWアドレスである請求項1から4のいずれか一項に記載のメモリコントローラ。
  6. ROWアドレスが複数のグループに分けられたDRAMを制御するメモリコントローラであって、
    ROWアドレスと該ROWアドレスに対してActivateコマンドが発行されると更新されるカウント値とを対応付けて保持する第1保持手段であって、ROWアドレスを保持可能なエントリの数がROWアドレスの総数よりも小さい、第1保持手段と、
    前記第1保持手段に保持されるカウント値が所定の条件を満たすと対応するROWアドレスに関するTarget Row Refreshコマンドを発行する制御手段と、
    ROWアドレスの複数のグループそれぞれに対応する複数のカウント値を保持する第2保持手段と、を備え、
    前記制御手段は、前記第1保持手段に保持されていないROWアドレスである第1ROWアドレスに対してActivateコマンドが発行され、かつ、前記第1保持手段に空いているエントリがある場合、前記第1ROWアドレスを該エントリに登録すると共に、前記第2保持手段に保持されている複数のカウント値の内、前記第1ROWアドレスが属するグループに対応するカウント値を参照して前記第1ROWアドレスに対応するカウント値を設定するメモリコントローラ。
  7. 前記第1保持手段は、ROWアドレスと該ROWアドレスが属するグループを特定するIDと該ROWアドレスに対してActivateコマンドが発行されると更新されるカウント値とを対応付けて保持し、
    前記制御手段は、前記第1保持手段に保持されるIDを参照することで前記第1ROWアドレスが属するグループを特定する請求項1から6のいずれか一項に記載のメモリコントローラ。
  8. ROWアドレスのグループはバンクに対応する請求項1から7のいずれか一項に記載のメモリコントローラ。
  9. 前記DRAMはLPDDR4に準拠する請求項1から8のいずれか一項に記載のメモリコントローラ。
  10. ROWアドレスが複数のグループに分けられたDRAMを制御するメモリコントローラが実行する方法であって、
    ROWアドレスと該ROWアドレスに対してActivateコマンドが発行されると更新されるカウント値とを対応付けて第1保持手段に保持することであって、ROWアドレスを保持可能なエントリの数がROWアドレスの総数よりも小さい、保持することと、
    前記第1保持手段に保持されるカウント値が所定の条件を満たすと対応するROWアドレスに関するTarget Row Refreshコマンドを発行することと、
    ROWアドレスの複数のグループそれぞれに対応する複数のカウント値を第2保持手段に保持することと、
    前記第1保持手段に保持されていないROWアドレスである第1ROWアドレスに対してActivateコマンドが発行され、かつ、前記第1保持手段に空いているエントリがない場合、前記第1保持手段に保持されているROWアドレスのなかからカウント値に関する所定の基準にしたがい選択されたROWアドレスである第2ROWアドレスを前記第1ROWアドレスで置き換えると共に、前記第2ROWアドレスが属するグループと前記第1ROWアドレスが属するグループとが異なる場合には、前記第2保持手段に保持されている複数のカウント値の内、前記第1ROWアドレスが属するグループに対応するカウント値を参照して前記第1ROWアドレスに対応するカウント値を設定し、前記第2ROWアドレスが属するグループと前記第1ROWアドレスが属するグループとが同一である場合は、前記第2ROWアドレスに対応して前記第1保持手段に保持されているカウント値を更新して、当該更新したカウント値を前記第1ROWアドレスに対応するカウント値として設定することと、を含む方法。
  11. ROWアドレスが複数のグループに分けられたDRAMを制御するメモリコントローラが実行する方法であって、
    ROWアドレスと該ROWアドレスに対してActivateコマンドが発行されると更新されるカウント値とを対応付けて第1保持手段に保持することであって、ROWアドレスを保持可能なエントリの数がROWアドレスの総数よりも小さい、保持することと、
    前記第1保持手段に保持されるカウント値が所定の条件を満たすと対応するROWアドレスに関するTarget Row Refreshコマンドを発行することと、
    ROWアドレスの複数のグループそれぞれに対応する複数のカウント値を第2保持手段に保持することと、
    前記第1保持手段に保持されていないROWアドレスである第1ROWアドレスに対してActivateコマンドが発行され、かつ、前記第1保持手段に空いているエントリがある場合、前記第1ROWアドレスを該エントリに登録すると共に、前記第2保持手段に保持されている複数のカウント値の内、前記第1ROWアドレスが属するグループに対応するカウント値を参照して前記第1ROWアドレスに対応するカウント値を設定することと、を含む方法。
JP2017023473A 2017-02-10 2017-02-10 メモリコントローラおよび方法 Active JP7008410B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2017023473A JP7008410B2 (ja) 2017-02-10 2017-02-10 メモリコントローラおよび方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017023473A JP7008410B2 (ja) 2017-02-10 2017-02-10 メモリコントローラおよび方法

Publications (2)

Publication Number Publication Date
JP2018128991A JP2018128991A (ja) 2018-08-16
JP7008410B2 true JP7008410B2 (ja) 2022-01-25

Family

ID=63173049

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017023473A Active JP7008410B2 (ja) 2017-02-10 2017-02-10 メモリコントローラおよび方法

Country Status (1)

Country Link
JP (1) JP7008410B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7155679B2 (ja) 2018-07-06 2022-10-19 マツダ株式会社 ディーゼルエンジンの燃料噴射制御装置
CN110535861B (zh) * 2019-08-30 2022-01-25 杭州迪普信息技术有限公司 一种识别syn攻击行为中统计syn包数量的方法及装置
JP7574720B2 (ja) * 2021-04-05 2024-10-29 富士通株式会社 メモリ管理装置、メモリ管理方法及びメモリ管理プログラム
KR20230135424A (ko) 2022-03-16 2023-09-25 삼성전자주식회사 메모리 장치 및 그 리프레시 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140006704A1 (en) 2012-06-30 2014-01-02 Zvika Greenfield Row hammer condition monitoring
US20140156923A1 (en) 2012-11-30 2014-06-05 Intel Corporation Row hammer monitoring based on stored row hammer threshold value
US20140177370A1 (en) 2012-12-21 2014-06-26 Intel Corporation Method, apparatus and system for responding to a row hammer event
JP2015133119A (ja) 2014-01-15 2015-07-23 三星電子株式会社Samsung Electronics Co.,Ltd. メモリローに対するアクティベーションをトラッキングする方法及びそのためのメモリコントローラ

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140006704A1 (en) 2012-06-30 2014-01-02 Zvika Greenfield Row hammer condition monitoring
WO2014004111A1 (en) 2012-06-30 2014-01-03 Intel Corporation Row hammer condition monitoring
US20140156923A1 (en) 2012-11-30 2014-06-05 Intel Corporation Row hammer monitoring based on stored row hammer threshold value
JP2016504702A (ja) 2012-11-30 2016-02-12 インテル・コーポレーション 格納されたロウハンマ閾値に基づくロウハンマの監視
US20140177370A1 (en) 2012-12-21 2014-06-26 Intel Corporation Method, apparatus and system for responding to a row hammer event
JP2015133119A (ja) 2014-01-15 2015-07-23 三星電子株式会社Samsung Electronics Co.,Ltd. メモリローに対するアクティベーションをトラッキングする方法及びそのためのメモリコントローラ

Also Published As

Publication number Publication date
JP2018128991A (ja) 2018-08-16

Similar Documents

Publication Publication Date Title
US11640333B2 (en) Systems and methods for allocating blocks of memory to multiple zones associated with corresponding error correction mechanisms
US9652379B1 (en) System and method for reducing contentions in solid-state memory access
US8819359B2 (en) Hybrid interleaving in memory modules by interleaving physical addresses for a page across ranks in a memory module
EP2437433B1 (en) Memory access monitoring method and device
US7783825B2 (en) Nonvolatile memory system and management method for nonvolatile memory
KR102048762B1 (ko) 다이나믹 랜덤 액세스 메모리(dram)를 리프레시하기 위한 방법, 장치 및 시스템
US20180232173A1 (en) Hybrid memory system and control method thereof
US20190087125A1 (en) Memory system and control method of memory system
US11361811B2 (en) Method and circuit for protecting a DRAM memory device from the row hammer effect
KR20180128711A (ko) 리프레시 대상 로우 선정 회로
CN107357534A (zh) 一种闪存块模式的动态切换方法及系统
US8711627B2 (en) Data storage device and block selection method for a flash memory
KR20160066362A (ko) 반도체 장치
KR102567111B1 (ko) 스토리지 디바이스 및 스토리지 디바이스의 동작 방법
JP2018022275A (ja) 半導体記憶装置
US20160328161A1 (en) Method, apparatus, and storage medium for writing data
JP2018128991A (ja) メモリコントローラおよび方法
KR102623702B1 (ko) 메모리 버퍼를 포함하는 메모리 시스템
US20190196956A1 (en) Semiconductor device for managing wear leveling operation of a nonvolatile memory device
US20150067276A1 (en) Memory system and controller
US20130094317A1 (en) Refresh control circuit and method of semiconductor apparatus
US10061513B2 (en) Packet processing system, method and device utilizing memory sharing
US10031884B2 (en) Storage apparatus and method for processing plurality of pieces of client data
US20140181439A1 (en) Memory system
US9817767B2 (en) Semiconductor apparatus and operating method thereof

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200206

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20201221

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20210103

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210113

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210215

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210415

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210903

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211029

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20211213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20220111

R151 Written notification of patent or utility model registration

Ref document number: 7008410

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151