JP2018128991A - Memory controller and method - Google Patents
Memory controller and method Download PDFInfo
- Publication number
- JP2018128991A JP2018128991A JP2017023473A JP2017023473A JP2018128991A JP 2018128991 A JP2018128991 A JP 2018128991A JP 2017023473 A JP2017023473 A JP 2017023473A JP 2017023473 A JP2017023473 A JP 2017023473A JP 2018128991 A JP2018128991 A JP 2018128991A
- Authority
- JP
- Japan
- Prior art keywords
- row address
- count value
- row
- holding means
- 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.)
- Granted
Links
Images
Landscapes
- Memory System (AREA)
- Dram (AREA)
Abstract
Description
本発明は、メモリコントローラおよび方法に関する。 The present invention relates to a memory controller and method.
近年、DRAM(Dynamic Random Access Memory)の製造プロセスの微細化が進んでいる。DRAMの製造プロセスが40nmを下回り、密度が増加すると、隣接するワードラインに対するクロストーク等の電気的影響により、隣接するワードラインへつながるメモリセルへのリーク電流の影響が顕著となる。これにより、メモリコントローラによる特定のROWに対するActivateコマンドの発行が集中した場合、DRAMのメモリセル内部のデータが破損する虞がある。これを、ROW HAMMER問題という。 In recent years, the manufacturing process of DRAM (Dynamic Random Access Memory) has been miniaturized. When the manufacturing process of the DRAM is less than 40 nm and the density is increased, the influence of the leakage current to the memory cell connected to the adjacent word line becomes significant due to the electrical influence such as crosstalk on the adjacent word line. As a result, when the issue of the Activate command to the specific ROW by the memory controller is concentrated, there is a possibility that the data inside the DRAM memory cell is damaged. This is called the ROW HAMMER problem.
ROW HAMMER問題への対策として、LPDDR4の規格にはTarget Row Refreshコマンド(以下、TRRと称す)が定義されている。TRRは、DRAMのあるROWに対するActivateコマンドの発行数が、一定期間内に上限値に達した場合、該当するROWに対してメモリコントローラから特定のシーケンスを実行する操作である。この上限値はMAC(Maximum Activate Count)と呼ばれる。TRRを実施すると、メモリセル内部のデータ破損を回避することができる。 As a countermeasure against the ROW HAMMER problem, a Target Row Refresh command (hereinafter referred to as TRR) is defined in the LPDDR4 standard. TRR is an operation for executing a specific sequence from the memory controller for a corresponding ROW when the number of Activate commands issued to a ROW with DRAM reaches an upper limit within a certain period. This upper limit value is called MAC (Maximum Activate Count). When TRR is performed, data corruption inside the memory cell can be avoided.
しかしながら、TRRの機能をメモリコントローラに実装する際には、各ROWへのActivateコマンドの発行数を計測しなければならない。LPDDR4の場合、MACの値は最大70万(20bit長のカウンタが必要)であり、DRAMのROW数は最小容量である4Gbitの場合でもチャネルあたり131K個となる。そのため、単純な実装を行うと、回路規模が大きくなる。これに対応して特許文献1では、回路規模を抑制しながら、Activateコマンドの発行数を計測し、TRRを実行する方法が提案されている。
However, when the TRR function is installed in the memory controller, the number of Activate commands issued to each ROW must be measured. In the case of LPDDR4, the maximum MAC value is 700,000 (a 20-bit counter is required), and the number of DRAM ROWs is 131K per channel even in the case of 4 Gbit, which is the minimum capacity. For this reason, a simple implementation increases the circuit scale. Correspondingly,
特許文献1に示されている手法では、メモリコントローラは、ROWアドレスと、各ROWアドレスへのActivateコマンドの発行数とを対応付けて保持するテーブルを持つ。このテーブルのエントリ数は、一定期間内でMACに達することの可能なROWの個数に基づいており、前述の単純な実装と比較して、回路規模を削減することができる。
In the method disclosed in
しかしながら、特許文献1に示されている手法は、テーブルのエントリ数を減らす代わりに発行数の正確さを犠牲にしている。したがって、ROWアドレスへの実際のActivateコマンドの発行数と、テーブルに保持されている発行数と、の間に乖離が生じうる。この乖離により無駄なTRRが発生し、性能の低下につながる虞がある。
However, the technique disclosed in
本発明はこうした課題に鑑みてなされたものであり、その目的は、TRRを実装したメモリコントローラにおいて、回路規模を抑制しつつ無駄なTRRの発生を抑制できる技術の提供にある。 The present invention has been made in view of these problems, and an object of the present invention is to provide a technique capable of suppressing generation of useless TRR while suppressing the circuit scale in a memory controller mounted with 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アドレスが属するグループとが異なる場合には第1ROWアドレスが属するグループに対応して第2保持手段に保持されているカウント値を参照して第1ROWアドレスに対応するカウント値を設定する。 One embodiment of the present invention relates to a memory controller. This memory controller is a memory controller that controls a DRAM in which a ROW address is divided into a plurality of groups, and associates a ROW address with a count value that is updated when an Activate command is issued to the ROW address. A first holding means that holds the ROW address is smaller than the total number of ROW addresses, and the count value held in the first holding means satisfies a predetermined condition. And a control unit that issues a Target Row Refresh command for the corresponding ROW address when satisfied, and a second holding unit that holds a count value for each group of ROW addresses. The control unit is held in the first holding unit. Acti for the first ROW address which is not a ROW address When a vate command is issued and there is no vacant entry in the first holding means, the ROW address is selected from the ROW addresses held in the first holding means according to a predetermined criterion regarding the count value. The second ROW address is replaced with the first ROW address, and when the group to which the second ROW address belongs is different from the group to which the first ROW address belongs, the count held in the second holding means corresponding to the group to which the first ROW address belongs A count value corresponding to the first ROW address is set with reference to the value.
本発明によれば、TRRを実装したメモリコントローラにおいて、回路規模を抑制しつつ無駄なTRRの発生を抑制できる。 ADVANTAGE OF THE INVENTION According to this invention, generation | occurrence | production of useless TRR can be suppressed in the memory controller which mounted TRR, suppressing a circuit scale.
以下、各図面に示される同一または同等の構成要素、部材、処理、信号には、同一の符号を付するものとし、適宜重複した説明は省略する。また、各図面において説明上重要ではない部材の一部は省略して表示する。 Hereinafter, the same or equivalent components, members, processes, and signals shown in the drawings are denoted by the same reference numerals, and repeated descriptions are omitted as appropriate. In addition, in the drawings, some of the members that are not important for explanation are omitted.
特許文献1に記載の手法では、メモリコントローラがActivateコマンドを発行した際、次のように動作する。まず、テーブルの管理部は、もしActivateコマンドの発行先のROWアドレスがテーブルに存在せず、かつ、テーブルに空きがない場合、最も小さいActivateコマンド発行数を持つROWアドレスのエントリを置換する。この時、テーブルの管理部は、置換前のエントリに関連付けられているActivateコマンド発行数を、置換後のエントリに関連付けられるActivateコマンド発行数にコピーし、続いてそのActivateコマンド発行数をインクリメントする。つまり、置換後のROWアドレスに対して発行された、置換時点までのActivateコマンド発行数の大小によらず、置換前のROWアドレスに対して関連付けられていたActivateコマンド発行数に1を足した値が置換後のROWアドレスに対して関連付けられる。
In the method described in
この仕組みにおける問題は、テーブルの管理部が、置換時にActivateコマンド発行数にのみ着目している点である。例えば、DRAMのBank0のROWアドレスへアクセスが頻発し、テーブルに空きがなく、Bank0のROWアドレスで占められている状況を考える。この時、初めてBank1のROWアドレスへアクセスが発生した場合、テーブルの管理部は、テーブル内の最小のActivateコマンド発行数と関連付けられたBank0のROWアドレスのエントリをBank1のROWアドレスで置換する。実際はBank1のROWアドレスへActivateコマンドが発行されたのは初めてであるにも関わらず、置換によりテーブルに格納されるBank1のROWアドレスには、実際より多くのActivateコマンド発行数が関連付けられる。このように、Bank1のROWアドレスへのアクセスの実態と保持されるコマンド発行数との間に乖離が発生する。乖離が発生すると、無駄なTRRが発生して、性能低下が生じうる。
The problem with this mechanism is that the table manager focuses only on the number of Activate commands issued at the time of replacement. For example, consider a situation in which access to the ROW address of the
特許文献1に記載の技術では、あるROWアドレスに対してActivateコマンド(以下、ACTと称す)が発行された時、テーブルに空きがなく、かつテーブル内に同じROWアドレスのエントリがない場合、テーブル外へエントリ(ROWアドレスとACT発行数カウントとから成る)が追い出される。これに対して、実施の形態に係るメモリコントローラでは、追い出されたエントリのうちのACT発行数カウントを保持する保持部が設けられる。この保持部は、バンクやアドレスレンジごとに用意され、追い出されたエントリのROWアドレスのバンク/アドレスレンジに対応する保持部に、追い出されたエントリのACT発行数カウントが登録される。また、あるバンク/アドレスレンジのROWアドレスへのACT発行があった場合、そのバンク/アドレスレンジに対応して保持部に保持されているACT発行数カウントがテーブルに書き戻され、インクリメントされる。これにより、特許文献1に記載の技術と比較して、実際のROWアドレスへのアクセス数とACT発行数との乖離を抑制することができ、無駄なTRRの発生を抑制することができる。
In the technique described in
図1は、実施の形態に係るメモリコントローラ100の機能及び構成を示すブロック図である。メモリコントローラ100は、発行部101と、制御部102と、テーブル106と、バンク毎最大値保持部105と、を備える。メモリコントローラ100は、DRAM110に接続され、DRAM110にDRAMコマンドCMDを送信することでDRAM110を制御する。DRAM110は、メモリコントローラ100から受信したDRAMコマンドCMDに従い、動作する。DRAM110はLPDDR4に準拠する。DRAM110は複数のバンクを有し、DRAM110のROWアドレスは、複数のバンクに対応する複数のアドレスグループに分けられている。
FIG. 1 is a block diagram illustrating functions and configurations of a
発行部101は、メモリコントローラ100が受信したメモリアクセス要求MARに応じて、DRAMコマンドCMDを発行する。発行部101は、例えば外部のCPUなどからメモリアクセス要求MARを受信すると、受信したメモリアクセス要求MARに含まれるROWアドレスに関するDRAMコマンドCMDを生成し、DRAM110に送信する。
制御部102は、発行部101が発行するDRAMコマンドCMDのうち、ACTがどのROWアドレスに発行されたかを監視する。
The issuing
The
テーブル106は、ROWアドレスと該ROWアドレスが属するバンクを特定するバンクIDと該ROWアドレスに対してACTが発行されると更新されるカウント値とを対応付けて保持する。バンクとアドレスグループとは一対一に対応するので、バンクIDは対応するアドレスグループを特定するIDでもある。テーブル106について、ROWアドレスを保持可能なエントリの数はDRAM110のROWアドレスの総数よりも小さい。
The table 106 holds a ROW address, a bank ID that identifies a bank to which the ROW address belongs, and a count value that is updated when an ACT is issued for the ROW address. Since the bank and the address group correspond one-to-one, the bank ID is also an ID for specifying the corresponding address group. In the table 106, the number of entries that can hold the ROW address is smaller than the total number of ROW addresses in the
テーブル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アドレス、という表記でもよい。
The table 106 includes an
カウント値保持部104は制御部102によって制御される。制御部102は、アドレス保持部103に保持されている各ROWアドレスについて、そのROWアドレスに対してACTが発行されると、カウント値保持部104に保持される対応するカウント値をインクリメントする。
バンク毎最大値保持部105は制御部102によって制御され、アドレスグループ(すなわちバンク)ごとに最大カウント値を保持する。
The count
The per-bank maximum
図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はアドレスグループの数=バンクの数個のエントリを持つ。
FIG. 2 is a data structure diagram illustrating an example of the
図3は、本実施の形態における、アドレスグループ301とバンク・ROWアドレス302との対応関係を示す説明図である。図3に示される通り、1つのアドレスグループに1つのバンクが割り当てられる。
FIG. 3 is an explanatory diagram showing a correspondence relationship between the
以上の構成によるメモリコントローラ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に存在するか否かを判定する。
The operation of the
FIG. 4 is a flowchart showing a flow of a series of processes in the
S402で存在すると判定された場合、S403で制御部102はカウント値保持部104を参照し、発行先のバンク・ROWアドレスと同じアドレス保持部103のエントリに対応してカウント値保持部104に保持されているカウント値を読み出す。制御部102は、読み出されたカウント値がしきい値、この場合MAC/2−1、に等しいか否かを判定する。S403で等しくない、すなわちしきい値未満であると判定された場合、S404で制御部102は読み出されたカウント値をインクリメント(例えば+1)する。制御部102は、インクリメント後のカウント値をカウント値保持部104に登録することでカウント値保持部104を更新する。その後、処理はS401に戻る。
If it is determined in S402, the
S403で等しいと判定された場合、S405で発行部101は、ACTの発行先のバンク・ROWアドレスを対象とするTRRを発行する。S406で制御部102は、TRRの発行先のバンクに対応してバンク毎最大値保持部105に保持されている最大カウント値をリセットする、または初期化する。例えば、最大カウント値は0や1などの初期値となる。その後、処理はS401に戻る。
If it is determined in S403 that they are equal, in S405, the
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に戻る。
If it is determined in S <b> 402 that the information does not exist, the
S407で空きエントリないと判定された場合、S412で制御部102は、カウント値保持部104に保持されるカウント値のなかから、最小のカウント値を特定する。S413で制御部102は、アドレス保持部103に保持されるバンク・ROWアドレスのなかから、特定された最小のカウント値に対応するバンク・ROWアドレスを選択する。S414で制御部102は、選択されたバンク・ROWアドレスを、ACTの発行先のバンク・ROWアドレスで置き換える。
If it is determined in S407 that there is no free entry, the
S415で制御部102は、置換の前後でバンクが異なるか否かを判定する。すなわち、制御部102は、S413で選択されたバンク(置換前のバンク)と、ACTの発行先のバンク(置換後のバンク)と、の異同を判定する。S415で同じであると判定された場合、S416で制御部102はS412で特定された最小のカウント値をインクリメントする。制御部102は、インクリメント後のカウント値をACTの発行先のバンク・ROWアドレスに対応付けてカウント値保持部104に登録することでカウント値保持部104を更新する。その後、処理はS401に戻る。
In S415, the
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に戻る。
If it is determined in S415 that they are different, in S417, the
以降、図5から図8を参照し、図4で説明した各条件における、制御部102の動作の詳細を説明する。これらの例は、発行部101がバンク0、ROWアドレス0x100に対してACT501を発行した時の制御部102の動作を示している。制御部102は、アドレス保持部103およびカウント値保持部104のそれぞれの状態を確認し、その状態に応じた処理を実施する。
Hereinafter, the details of the operation of the
制御部102は、発行部101からのACT501の発行を検出すると、そのACT501の発行先であるバンク・ROWアドレスが、アドレス保持部103に存在するかどうかを判定する(図4のS402)。この状態に応じて、制御部102は続きの処理を決定する。
When detecting the issuance of the
図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)。
FIG. 5 is a diagram for explaining the operation of the
この条件において、制御部102は、アドレス保持部103からバンク0、ROWアドレス0x100の組のエントリを削除し(符号504)、そのエントリに対応するカウント値保持部104のエントリを削除する(符号505)。続いて、制御部102は、発行部101に対し、TRRを発行するよう指示する(符号506)。発行部101は制御部102からの指示を受けてDRAM110に対してTRRを発行する(図4のS405)。
Under this condition, the
図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)。
FIG. 6 is a diagram for explaining the operation of the
この条件において、制御部102は、アドレス保持部103のバンク0、ROWアドレス0x100に対応してカウント値保持部104に保持されるカウント値をインクリメントする(図4のS404)。制御部102は、バンク0、ROWアドレス0x100の組に対応するカウント値保持部104のエントリに、インクリメントの結果である「80001」を書き込む(符号603)。このインクリメントの結果、カウント値保持部104のカウント値は、MAC/2に到達しないため、これ以外の処理は行われない。
Under this condition, the
図7は、あるシナリオでの制御部102の動作を説明するための図である。図7の例では、制御部102がアドレス保持部103内を検索(符号701)した結果、アドレス保持部103のエントリにバンク0、ROWアドレス0x100の組を発見しない。また制御部102は、アドレス保持部103に空きエントリが存在すると判定する(図4のS407)。
FIG. 7 is a diagram for explaining the operation of the
この条件において、制御部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)。
Under this condition, the
図8は、あるシナリオでの制御部102の動作を説明するための図である。図8の例では、制御部102がアドレス保持部103内を検索(符号801)した結果、アドレス保持部103のエントリにバンク0、ROWアドレス0x100の組を発見しない。また制御部102は、アドレス保持部103に空きエントリが存在しないと判定する(図4のS407)。
FIG. 8 is a diagram for explaining the operation of the
この条件において、制御部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)。
Under this condition, the
制御部102は、追い出されたバンク1のカウント値「15000」と、バンク1(アドレスグループ1)に対応してバンク毎最大値保持部105に保持されている最大カウント値(「14500」)と、を比較する(図4のS418)。15000>14500なので、制御部102はバンク1に対応する最大カウント値を15000で置き換える(符号805)。
The
本実施の形態に係るメモリコントローラ100によると、制御部102がアドレス保持部103、カウント値保持部104およびバンク毎最大値保持部105を上述のように制御することで、実際のROWアドレスへのアクセス数とACTの発行数との乖離を抑制することができる。その結果、無駄なTRRの発生を抑制することができる。
According to the
以上、実施の形態に係るメモリコントローラ100の構成と動作について説明した。この実施の形態は例示であり、その各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。
The configuration and operation of the
実施の形態ではROWアドレスのアドレスグループがDRAM110のバンクに対応する場合について説明したが、これに限られない。ROWアドレスが複数のグループに分けられていればよく、その分け方は任意でよい。図9(a)、(b)は、ROWアドレスの分け方の例を示す図である。図9(a)の符号1001で示されるように、ROWアドレスによる区分を用いてもよい。または、図9(b)の符号1002に示されるように、マスタ毎の区分(マスタによってアクセス先のアドレスが固定されている場合)を用いてもよい。このように、任意の割り当て方法を採用することができる。
In the embodiment, the case where the address group of the ROW address corresponds to the bank of the
実施の形態では、カウント値がインクリメントされる場合について説明したが、これに限られず、ROWアドレスに対してACTが発行されるとカウント値を更新する態様であれば他の態様が用いられてもよい。例えば、ACTの発行に対してカウント値がデクリメントされてもよい。この場合、図4のS403やS418における判定基準も合わせて変更されてもよい。 In the embodiment, the case where the count value is incremented has been described. However, the present invention is not limited to this, and other modes may be used as long as the count value is updated when an ACT is issued to the ROW address. Good. For example, the count value may be decremented for ACT issuance. In this case, the determination criteria in S403 and S418 in FIG. 4 may also be changed.
実施の形態では、カウント値がしきい値=MAC/2−1に達するとTRRが発行される場合について説明したが、これに限られず、他のしきい値が用いられてもよいし、しきい値以外の他の条件が用いられてもよい。 In the embodiment, the case where the TRR is issued when the count value reaches the threshold value = MAC / 2-1 has been described. However, the present invention is not limited to this, and other threshold values may be used. Other conditions other than the threshold may be used.
実施の形態では、図4のS412において最小のカウント値が特定され、S413において特定されたカウント値に対応するバンク・ROWアドレスが選択される場合について説明したが、これに限られない。アドレス保持部103に保持されているバンク・ROWアドレスのなかからカウント値に関する所定の基準にしたがいバンク・ROWアドレスが選択されてもよい。例えば、極小のカウント値が特定されてもよい。あるいはまた、カウント値保持部104から小さい方から3つのカウント値を選択し、該3つのカウント値のなかからランダムに選択したひとつに対応してアドレス保持部103に保持されるバンク・ROWアドレスを選択してもよい。
In the embodiment, the case has been described in which the minimum count value is specified in S412 of FIG. 4 and the bank / ROW address corresponding to the count value specified in S413 is selected, but the present invention is not limited to this. A bank / ROW address may be selected from among the bank / ROW addresses held in the
S412における最小のカウント値は、カウント値保持部104に保持されるカウント値のなかで、MAC/2−1に到達するという条件を満たすために必要なインクリメントの回数が最も多いカウント値であると言うことができる。すなわち、S412では、カウント値保持部104に保持されているカウント値のなかでTRR発行の条件を満たすために必要な更新の回数が最も多いカウント値を特定しているといえる。
The minimum count value in S412 is the count value having the largest number of increments necessary to satisfy the condition of reaching MAC2-1 in the count values held in the count
実施の形態では、図4のS406においてTRRの発行を契機として対応するバンクの最大カウント値をリセットする場合について説明したが、これに限られない。例えば、バンク毎最大値保持部105に保持される最大カウント値は経時的に自動的に減少してもよいし、またはバンク毎最大値保持部105から最大カウント値を読み出したことを契機としてその最大カウント値がリセットされてもよい。
In the embodiment, the case where the maximum count value of the corresponding bank is reset in response to the issuance of TRR in S406 of FIG. 4 is described, but the present invention is not limited to this. For example, the maximum count value held in the bank-by-bank maximum
実施の形態では、DRAM110がLPDDR4に準拠する場合について説明したが、これに限られず、ROWアドレスが複数のグループに分けられる任意のDRAMに本実施の形態に係る技術的思想を適用可能である。
In the embodiment, the case where the
100 メモリコントローラ、 101 発行部、 102 制御部、 103 アドレス保持部、 104 カウント値保持部、 105 バンク毎最大値保持部、 110 DRAM。 100 memory controller, 101 issuing unit, 102 control unit, 103 address holding unit, 104 count value holding unit, 105 maximum value holding unit for each bank, 110 DRAM.
Claims (11)
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アドレスが属するグループとが異なる場合には前記第1ROWアドレスが属するグループに対応して前記第2保持手段に保持されているカウント値を参照して前記第1ROWアドレスに対応するカウント値を設定するメモリコントローラ。 A memory controller for controlling a DRAM in which a ROW address is divided into a plurality of groups,
A first holding unit that holds a ROW address in association with a count value that is updated when an Activate command is issued for the ROW address, and the number of entries that can hold the ROW address is the total number of ROW addresses. A first holding means smaller than,
Control means for issuing a Target Row Refresh command for a corresponding ROW address when a count value held in the first holding means satisfies a predetermined condition;
Second holding means for holding a count value for each group of ROW addresses,
When the Activate command is issued to the first ROW address that is a ROW address not held in the first holding means, and the first holding means has no free entry, the control means A second ROW address, which is a ROW address selected from among the ROW addresses held in the holding means, is replaced with the first ROW address according to a predetermined criterion regarding the count value, and the group to which the second ROW address belongs and the first ROW A memory for setting a count value corresponding to the first ROW address with reference to the count value held in the second holding means corresponding to the group to which the first ROW address belongs when the group to which the address belongs is different controller.
ROWアドレスと該ROWアドレスに対してActivateコマンドが発行されると更新されるカウント値とを対応付けて保持する第1保持手段であって、ROWアドレスを保持可能なエントリの数がROWアドレスの総数よりも小さい、第1保持手段と、
前記第1保持手段に保持されるカウント値が所定の条件を満たすと対応するROWアドレスに関するTarget Row Refreshコマンドを発行する制御手段と、
ROWアドレスのグループごとにカウント値を保持する第2保持手段と、を備え、
前記制御手段は、前記第1保持手段に保持されていないROWアドレスである第1ROWアドレスに対してActivateコマンドが発行され、かつ、前記第1保持手段に空いているエントリがある場合、前記第1ROWアドレスを該エントリに登録すると共に、前記第1ROWアドレスが属するグループに対応して前記第2保持手段に保持されているカウント値を参照して前記第1ROWアドレスに対応するカウント値を設定するメモリコントローラ。 A memory controller for controlling a DRAM in which a ROW address is divided into a plurality of groups,
A first holding unit that holds a ROW address in association with a count value that is updated when an Activate command is issued for the ROW address, and the number of entries that can hold the ROW address is the total number of ROW addresses. A first holding means smaller than,
Control means for issuing a Target Row Refresh command for a corresponding ROW address when a count value held in the first holding means satisfies a predetermined condition;
Second holding means for holding a count value for each group of ROW addresses,
When the Activate command is issued to the first ROW address that is a ROW address that is not held in the first holding means and there is an empty entry in the first holding means, the control means determines that the first ROW A memory controller that registers an address in the entry and sets a count value corresponding to the first ROW address with reference to a count value held in the second holding means corresponding to the group to which the first ROW address belongs .
前記制御手段は、前記第1保持手段に保持されるIDを参照することで前記第1ROWアドレスが属するグループを特定する請求項1から6のいずれか一項に記載のメモリコントローラ。 The first holding means holds a ROW address, an ID that identifies a group to which the ROW address belongs, and a count value that is updated when an Activate command is issued for the ROW address in association with each other,
The memory controller according to any one of claims 1 to 6, wherein the control unit specifies a group to which the first ROW address belongs by referring to an ID held in the first holding unit.
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アドレスが属するグループとが異なる場合には前記第1ROWアドレスが属するグループに対応して前記第2保持手段に保持されているカウント値を参照して前記第1ROWアドレスに対応するカウント値を設定することと、を含む方法。 A method of controlling a DRAM in which a ROW address is divided into a plurality of groups,
The ROW address and the count value updated when the Activate command is issued to the ROW address are held in the first holding unit in association with each other, and the number of entries that can hold the ROW address is the ROW address. Holding less than the total number of
Issuing a Target Row Refresh command for a corresponding ROW address when the count value held in the first holding means satisfies a predetermined condition;
Holding a count value in the second holding means for each group of ROW addresses;
If an Activate command is issued for a first ROW address that is not a ROW address held in the first holding means, and there is no free entry in the first holding means, the first holding means holds it. A second ROW address, which is a ROW address selected according to a predetermined criterion regarding a count value, is replaced with the first ROW address, and a group to which the second ROW address belongs and a group to which the first ROW address belongs And the count value corresponding to the first ROW address is set with reference to the count value held in the second holding means corresponding to the group to which the first ROW address belongs. .
ROWアドレスと該ROWアドレスに対してActivateコマンドが発行されると更新されるカウント値とを対応付けて第1保持手段に保持することであって、ROWアドレスを保持可能なエントリの数がROWアドレスの総数よりも小さい、保持することと、
前記第1保持手段に保持されるカウント値が所定の条件を満たすと対応するROWアドレスに関するTarget Row Refreshコマンドを発行することと、
ROWアドレスのグループごとにカウント値を第2保持手段に保持することと、
前記第1保持手段に保持されていないROWアドレスである第1ROWアドレスに対してActivateコマンドが発行され、かつ、前記第1保持手段に空いているエントリがある場合、前記第1ROWアドレスを該エントリに登録すると共に、前記第1ROWアドレスが属するグループに対応して前記第2保持手段に保持されているカウント値を参照して前記第1ROWアドレスに対応するカウント値を設定することと、を含む方法。 A method of controlling a DRAM in which a ROW address is divided into a plurality of groups,
The ROW address and the count value updated when the Activate command is issued to the ROW address are held in the first holding unit in association with each other, and the number of entries that can hold the ROW address is the ROW address. Holding less than the total number of
Issuing a Target Row Refresh command for a corresponding ROW address when the count value held in the first holding means satisfies a predetermined condition;
Holding a count value in the second holding means for each group of ROW addresses;
When an Activate command is issued for a first ROW address that is a ROW address not held in the first holding means, and there is an empty entry in the first holding means, the first ROW address is set in the entry. Registering and referring to a count value held in the second holding means corresponding to a group to which the first ROW address belongs, and setting a count value corresponding to the first ROW address.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017023473A JP7008410B2 (en) | 2017-02-10 | 2017-02-10 | Memory controller and method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2017023473A JP7008410B2 (en) | 2017-02-10 | 2017-02-10 | Memory controller and method |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2018128991A true JP2018128991A (en) | 2018-08-16 |
JP7008410B2 JP7008410B2 (en) | 2022-01-25 |
Family
ID=63173049
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2017023473A Active JP7008410B2 (en) | 2017-02-10 | 2017-02-10 | Memory controller and method |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP7008410B2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3591184A1 (en) | 2018-07-06 | 2020-01-08 | Mazda Motor Corporation | Fuel injection control device and fuel injection control method for diesel engine |
US20210067534A1 (en) * | 2019-08-30 | 2021-03-04 | Hangzhou Dptech Technologies Co., Ltd. | Counting syn packets |
US12002502B2 (en) | 2022-03-16 | 2024-06-04 | Samsung Electronics Co., Ltd. | Memory device and refresh method thereof |
Citations (4)
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 (en) * | 2014-01-15 | 2015-07-23 | 三星電子株式会社Samsung Electronics Co.,Ltd. | Method of tracking activations to memory rows, and memory controller therefor |
-
2017
- 2017-02-10 JP JP2017023473A patent/JP7008410B2/en active Active
Patent Citations (6)
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 (en) * | 2012-11-30 | 2016-02-12 | インテル・コーポレーション | Row hammer monitoring based on stored row hammer thresholds |
US20140177370A1 (en) * | 2012-12-21 | 2014-06-26 | Intel Corporation | Method, apparatus and system for responding to a row hammer event |
JP2015133119A (en) * | 2014-01-15 | 2015-07-23 | 三星電子株式会社Samsung Electronics Co.,Ltd. | Method of tracking activations to memory rows, and memory controller therefor |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3591184A1 (en) | 2018-07-06 | 2020-01-08 | Mazda Motor Corporation | Fuel injection control device and fuel injection control method for diesel engine |
US20210067534A1 (en) * | 2019-08-30 | 2021-03-04 | Hangzhou Dptech Technologies Co., Ltd. | Counting syn packets |
US11677769B2 (en) * | 2019-08-30 | 2023-06-13 | Hangzhou Dptech Technologies Co., Ltd. | Counting SYN packets |
US12002502B2 (en) | 2022-03-16 | 2024-06-04 | Samsung Electronics Co., Ltd. | Memory device and refresh method thereof |
Also Published As
Publication number | Publication date |
---|---|
JP7008410B2 (en) | 2022-01-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190087125A1 (en) | Memory system and control method of memory system | |
US10198211B2 (en) | Hybrid memory system and refresh method thereof based on a read-to-write ratio of a page | |
KR102048762B1 (en) | Method, device and system for refreshing dynamic random access memory(dram) | |
JP7074519B2 (en) | Memory system and memory control method | |
US11281585B2 (en) | Forward caching memory systems and methods | |
US20060179206A1 (en) | Programmable bank/timer address folding in memory devices | |
US10991412B2 (en) | Storage device and method for operating storage device | |
US20160328161A1 (en) | Method, apparatus, and storage medium for writing data | |
JP7008410B2 (en) | Memory controller and method | |
JP6224483B2 (en) | Semiconductor memory device, memory access control method, and computer program | |
US20160070647A1 (en) | Memory system | |
US7120745B2 (en) | Cache memory device and memory allocation method | |
JP5751354B1 (en) | MEMORY CONTROL DEVICE, INFORMATION PROCESSING DEVICE, MEMORY CONTROL METHOD, AND COMPUTER PROGRAM | |
KR20180006645A (en) | Semiconductor device including a memory buffer | |
US20150052327A1 (en) | Dynamic memory relocation | |
CN113641626B (en) | SRAM read-write control method and line buffer controller | |
US20150067276A1 (en) | Memory system and controller | |
KR20130042079A (en) | Refresh control circuit and method of semiconductor apparatus | |
US20170212689A1 (en) | Packet processing system, method and device utilizing memory sharing | |
CN109491926B (en) | Memory management method for optimizing write life of nonvolatile memory based on prolonging write time | |
US20220189535A1 (en) | Memory controller and memory system | |
US20160328328A1 (en) | Semiconductor apparatus and operating method thereof | |
KR20140042341A (en) | Semiconductor device and operating method thereof | |
US20170235688A1 (en) | Access control method, bus system, and semiconductor device | |
JP2018081642A (en) | Memory controller and method |
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 |