JP7008410B2 - Memory controller and method - Google Patents

Memory controller and method 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
Japanese (ja)
Other versions
JP2018128991A (en
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/en
Publication of JP2018128991A publication Critical patent/JP2018128991A/en
Application granted granted Critical
Publication of JP7008410B2 publication Critical patent/JP7008410B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Memory System (AREA)
  • Dram (AREA)

Description

本発明は、メモリコントローラおよび方法に関する。 The present invention relates to a memory controller and a 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 DRAM manufacturing process is less than 40 nm and the density is increased, the influence of the leakage current on the memory cell connected to the adjacent word line becomes remarkable due to the electric influence such as crosstalk on the adjacent word line. As a result, when the activation commands are centrally issued by the memory controller to a specific ROW, the data inside the memory cell of the DRAM may be 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 to the ROW HAMMER problem, the Target Row Refresh command (hereinafter referred to as TRR) is defined in the LPDDR4 standard. TRR is an operation of executing a specific sequence from the memory controller for a ROW of a DRAM when the number of active commands issued to the ROW reaches the upper limit within a certain period of time. This upper limit is called MAC (Maximum Activate Count). By implementing TRR, it is possible to avoid data corruption inside the memory cell.

しかしながら、TRRの機能をメモリコントローラに実装する際には、各ROWへのActivateコマンドの発行数を計測しなければならない。LPDDR4の場合、MACの値は最大70万(20bit長のカウンタが必要)であり、DRAMのROW数は最小容量である4Gbitの場合でもチャネルあたり131K個となる。そのため、単純な実装を行うと、回路規模が大きくなる。これに対応して特許文献1では、回路規模を抑制しながら、Activateコマンドの発行数を計測し、TRRを実行する方法が提案されている。 However, when implementing the TRR function in the memory controller, the number of Activate commands issued to each ROW must be counted. In the case of LPDDR4, the maximum MAC value is 700,000 (a counter having a length of 20 bits is required), and the number of ROWs of the DRAM is 131 K per channel even in the case of 4 Gbit, which is the minimum capacity. Therefore, if a simple implementation is performed, the circuit scale will increase. Correspondingly, Patent Document 1 proposes a method of measuring the number of Activate commands issued and executing TRR while suppressing the circuit scale.

米国特許出願公開第2014/0006704号明細書U.S. Patent Application Publication No. 2014/0006704

特許文献1に示されている手法では、メモリコントローラは、ROWアドレスと、各ROWアドレスへのActivateコマンドの発行数とを対応付けて保持するテーブルを持つ。このテーブルのエントリ数は、一定期間内でMACに達することの可能なROWの個数に基づいており、前述の単純な実装と比較して、回路規模を削減することができる。 In the method shown in Patent Document 1, the memory controller has a table that holds the ROW address and the number of Activate commands issued to each ROW address in association with each other. The number of entries in this table is based on the number of ROWs that can reach the MAC within a given period of time, which can reduce the circuit scale as compared to the simple implementation described above.

しかしながら、特許文献1に示されている手法は、テーブルのエントリ数を減らす代わりに発行数の正確さを犠牲にしている。したがって、ROWアドレスへの実際のActivateコマンドの発行数と、テーブルに保持されている発行数と、の間に乖離が生じうる。この乖離により無駄なTRRが発生し、性能の低下につながる虞がある。 However, the method shown in Patent Document 1 sacrifices the accuracy of the number of issues at the cost of reducing the number of entries in the table. Therefore, there may be a discrepancy between the number of actual Activate commands issued to the ROW address and the number of issues held in the table. This divergence causes unnecessary TRR, which may lead to deterioration of performance.

本発明はこうした課題に鑑みてなされたものであり、その目的は、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 the generation of unnecessary TRR while suppressing the circuit scale in a memory controller in which TRR is mounted.

本発明のある態様はメモリコントローラに関する。このメモリコントローラは、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アドレスに対応するカウント値として設定する。 One aspect of the invention relates to a memory controller. This memory controller is a memory controller that controls a DRAM whose 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 for the ROW address. The first holding means, in which the number of entries that can hold the ROW address is smaller than the total number of ROW addresses, and the count value held by the first holding means satisfy predetermined conditions. A control means for issuing a Target Row Refresh command for a corresponding ROW address when satisfied, and a second holding means for holding a plurality of count values corresponding to each of a plurality of groups of ROW addresses are provided, and the control means is the first. If the Activate command is issued for the first ROW address, which is a ROW address that is not held by the holding means, and there is no free entry in the first holding means, the ROW address held by the first holding means If the second ROW address, which is the ROW address selected according to a predetermined criterion for the count value, is replaced with the first ROW address, and the group to which the second ROW address belongs and the group to which the first ROW address belongs are different, the second ROW address is used. Among the plurality of count values held in the holding means, the count value corresponding to the first ROW address is set by referring to the count value corresponding to the group to which the first ROW address belongs, and the group to which the second ROW address belongs and the first ROW are set. When the group to which the address belongs is the same, the count value held in the first holding means is updated corresponding to the second ROW address, and the updated count value is set as the count value corresponding to the first ROW address. do.

本発明によれば、TRRを実装したメモリコントローラにおいて、回路規模を抑制しつつ無駄なTRRの発生を抑制できる。 According to the present invention, in a memory controller equipped with TRR, it is possible to suppress the generation of unnecessary TRR while suppressing the circuit scale.

実施の形態に係るメモリコントローラの機能及び構成を示すブロック図。The block diagram which shows the function and the structure of the memory controller which concerns on embodiment. 図1のアドレス保持部、カウント値保持部およびバンク毎最大値保持部の一例を示すデータ構造図。The data structure diagram which shows an example of the address holding part, the count value holding part, and the maximum value holding part for each bank of FIG. 本実施の形態におけるアドレスグループとバンク・ROWアドレスとの対応関係を示す説明図。An explanatory diagram showing a correspondence relationship between an address group and a bank / ROW address in the present embodiment. 図1のメモリコントローラにおける一連の処理の流れを示すフローチャート。The flowchart which shows the flow of a series of processing in the memory controller of FIG. あるシナリオでの制御部の動作を説明するための図。The figure for demonstrating the operation of the control part in a certain scenario. あるシナリオでの制御部の動作を説明するための図。The figure for demonstrating the operation of the control part in a certain scenario. あるシナリオでの制御部の動作を説明するための図。The figure for demonstrating the operation of the control part in a certain scenario. あるシナリオでの制御部の動作を説明するための図。The figure for demonstrating the operation of the control part in a certain scenario. 図9(a)、(b)は、ROWアドレスの分け方の例を示す図。9 (a) and 9 (b) are diagrams showing an example of how to divide the ROW address.

以下、各図面に示される同一または同等の構成要素、部材、処理、信号には、同一の符号を付するものとし、適宜重複した説明は省略する。また、各図面において説明上重要ではない部材の一部は省略して表示する。 Hereinafter, the same or equivalent components, members, processes, and signals shown in the drawings shall be designated by the same reference numerals, and duplicate description thereof will be omitted as appropriate. In addition, some of the members that are not important for explanation in each drawing are omitted.

特許文献1に記載の手法では、メモリコントローラがActivateコマンドを発行した際、次のように動作する。まず、テーブルの管理部は、もしActivateコマンドの発行先のROWアドレスがテーブルに存在せず、かつ、テーブルに空きがない場合、最も小さいActivateコマンド発行数を持つROWアドレスのエントリを置換する。この時、テーブルの管理部は、置換前のエントリに関連付けられているActivateコマンド発行数を、置換後のエントリに関連付けられるActivateコマンド発行数にコピーし、続いてそのActivateコマンド発行数をインクリメントする。つまり、置換後のROWアドレスに対して発行された、置換時点までのActivateコマンド発行数の大小によらず、置換前のROWアドレスに対して関連付けられていたActivateコマンド発行数に1を足した値が置換後のROWアドレスに対して関連付けられる。 In the method described in Patent Document 1, when the memory controller issues an Activate command, it operates as follows. First, if the ROW address to which the Activate command is issued does not exist in the table and the table is full, the management unit of the table replaces the entry of the ROW address having the smallest number of Activate commands issued. At this time, the management unit of the table copies the number of Activate commands issued associated with the entry before replacement to the number of Activate commands issued associated with the entry after replacement, and subsequently increments the number of Activate commands issued. That is, regardless of the number of Activate commands issued to the ROW address after replacement up to the time of replacement, the value obtained by adding 1 to the number of Activate commands issued to the ROW address before replacement. Is associated with the replaced ROW address.

この仕組みにおける問題は、テーブルの管理部が、置換時に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 management unit 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 Bank0 of DRAM occurs frequently, the table is full, and the ROW address of Bank0 is occupied. At this time, when the ROW address of Bank1 is accessed for the first time, the management unit of the table replaces the entry of the ROW address of Bank0 associated with the minimum number of Activate commands issued in the table with the ROW address of Bank1. Although it is the first time that an Activate command has been issued to the ROW address of Bank1, the ROW address of Bank1 stored in the table by replacement is associated with a larger number of Activate commands issued than the actual number. In this way, there is a discrepancy between the actual state of access to the ROW address of Bank1 and the number of commands issued. When the dissociation occurs, useless TRR occurs and performance deterioration may occur.

特許文献1に記載の技術では、あるROWアドレスに対してActivateコマンド(以下、ACTと称す)が発行された時、テーブルに空きがなく、かつテーブル内に同じROWアドレスのエントリがない場合、テーブル外へエントリ(ROWアドレスとACT発行数カウントとから成る)が追い出される。これに対して、実施の形態に係るメモリコントローラでは、追い出されたエントリのうちのACT発行数カウントを保持する保持部が設けられる。この保持部は、バンクやアドレスレンジごとに用意され、追い出されたエントリのROWアドレスのバンク/アドレスレンジに対応する保持部に、追い出されたエントリのACT発行数カウントが登録される。また、あるバンク/アドレスレンジのROWアドレスへのACT発行があった場合、そのバンク/アドレスレンジに対応して保持部に保持されているACT発行数カウントがテーブルに書き戻され、インクリメントされる。これにより、特許文献1に記載の技術と比較して、実際のROWアドレスへのアクセス数とACT発行数との乖離を抑制することができ、無駄なTRRの発生を抑制することができる。 In the technique described in Patent Document 1, when an Activate command (hereinafter referred to as ACT) is issued for a certain ROW address, if there is no space in the table and there is no entry of the same ROW address in the table, the table The entry (consisting of the ROW address and the ACT issuance count) is expelled to the outside. On the other hand, in the memory controller according to the embodiment, a holding unit for holding an ACT issuance number count among the expelled entries is provided. This holding unit is prepared for each bank or address range, and the ACT issuance count of the expelled entry is registered in the holding unit corresponding to the bank / address range of the ROW address of the expelled entry. Further, when an ACT is issued to a ROW address of a certain bank / address range, the ACT issuance number count held in the holding unit corresponding to the bank / address range is written back to the table and incremented. As a result, as compared with the technique described in Patent Document 1, it is possible to suppress the discrepancy between the number of accesses to the actual ROW address and the number of ACTs issued, and it is possible to suppress the occurrence of unnecessary TRR.

図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 showing the functions and configurations of the memory controller 100 according to the embodiment. The memory controller 100 includes an issuing unit 101, a control unit 102, a table 106, and a bank-specific maximum value holding unit 105. The memory controller 100 is connected to the DRAM 110 and controls the DRAM 110 by transmitting a DRAM command CMD to the DRAM 110. The DRAM 110 operates according to the DRAM command CMD received from the memory controller 100. The DRAM 110 conforms to LPDDR4. The DRAM 110 has a plurality of banks, and the ROW address of the DRAM 110 is divided into a plurality of address groups corresponding to the plurality of banks.

発行部101は、メモリコントローラ100が受信したメモリアクセス要求MARに応じて、DRAMコマンドCMDを発行する。発行部101は、例えば外部のCPUなどからメモリアクセス要求MARを受信すると、受信したメモリアクセス要求MARに含まれるROWアドレスに関するDRAMコマンドCMDを生成し、DRAM110に送信する。
制御部102は、発行部101が発行するDRAMコマンドCMDのうち、ACTがどのROWアドレスに発行されたかを監視する。
The issuing unit 101 issues a DRAM command CMD in response to the memory access request MAR received by the memory controller 100. When the issuing unit 101 receives the memory access request MAR from, for example, an external CPU, it generates a DRAM command CMD related to the ROW address included in the received memory access request MAR and transmits it to the DRAM 110.
The control unit 102 monitors to which ROW address the ACT is issued among the DRAM command CMDs issued by the issuing unit 101.

テーブル106は、ROWアドレスと該ROWアドレスが属するバンクを特定するバンクIDと該ROWアドレスに対してACTが発行されると更新されるカウント値とを対応付けて保持する。バンクとアドレスグループとは一対一に対応するので、バンクIDは対応するアドレスグループを特定するIDでもある。テーブル106について、ROWアドレスを保持可能なエントリの数はDRAM110のROWアドレスの総数よりも小さい。 The table 106 holds the ROW address, the bank ID that identifies the bank to which the ROW address belongs, and the count value that is updated when the ACT is issued for the ROW address in association with each other. Since there is a one-to-one correspondence between a bank and an address group, the bank ID is also an ID that identifies the corresponding address group. For table 106, the number of entries that can hold ROW addresses is less than the total number of ROW addresses in DRAM 110.

テーブル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 address holding unit 103 and a count value holding unit 104. The address holding unit 103 is controlled by the control unit 102. The control unit 102 registers or stores in the address holding unit 103 a set of a bank to which the ACT issued by the issuing unit 101 is issued and a ROW address. Hereinafter, the pair of the bank and the ROW address will be referred to as a bank / ROW address. In the present embodiment, the bank ROW address is represented as "bank 0, ROW address 0x000", but as another example, the third digit from the left of the ROW address 0x000 may be used as the bank ID. That is, 0x000 may be expressed as the ROW address of bank 0, and 0x100 may be expressed as the ROW address of bank 1.

カウント値保持部104は制御部102によって制御される。制御部102は、アドレス保持部103に保持されている各ROWアドレスについて、そのROWアドレスに対してACTが発行されると、カウント値保持部104に保持される対応するカウント値をインクリメントする。
バンク毎最大値保持部105は制御部102によって制御され、アドレスグループ(すなわちバンク)ごとに最大カウント値を保持する。
The count value holding unit 104 is controlled by the control unit 102. When an ACT is issued for each ROW address held in the address holding unit 103, the control unit 102 increments the corresponding count value held in the count value holding unit 104.
The maximum value holding unit 105 for each bank is controlled by the control unit 102, and holds the maximum count value for each address group (that is, bank).

図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 showing an example of an address holding unit 103, a count value holding unit 104, and a bank-by-bank maximum value holding unit 105. The address holding unit 103 and the count value holding unit 104 each have an MVC (Maximum Victim Count) (see Patent Document 1) or less. The MVC is the number of ROW addresses that can reach the MAC when the memory controller 100 issues the ACT as much as possible within the refresh cycle of the DRAM 110. This value is calculated based on the values of tREFW, tRC and MAC. For example, when tREFW is 32 ms, tRC is 42 ns, and MAC is 200 K times, the ACT to the ROW address is 32 ms / 42 ns = about 762 K times. The memory controller 100 can issue about 762K ACTs in one refresh cycle. In this case, the number of ROW addresses that can reach the MAC within one refresh cycle is 762K / 100K = about 7.62. Therefore, in this case, eight entries of the address holding unit 103 and the count value holding unit 104 are required. The maximum value holding unit 105 for each bank has the number of address groups = several entries in the bank.

図3は、本実施の形態における、アドレスグループ301とバンク・ROWアドレス302との対応関係を示す説明図である。図3に示される通り、1つのアドレスグループに1つのバンクが割り当てられる。 FIG. 3 is an explanatory diagram showing a correspondence relationship between the address group 301 and the bank / ROW address 302 in the present embodiment. As shown in FIG. 3, one bank is assigned to one address group.

以上の構成によるメモリコントローラ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 memory controller 100 with the above configuration will be described.
FIG. 4 is a flowchart showing a flow of a series of processes in the memory controller 100. When the issuing unit 101 issues an ACT, the control unit 102 executes the process shown in FIG. 4 depending on the respective states of the address holding unit 103 and the count value holding unit 104. In S401, the control unit 102 monitors the DRAM command CMD issued by the issuing unit 101, and determines whether or not the ACT has been issued. If the ACT is not issued, the control unit 102 repeats S401. When the ACT is issued, the control unit 102 refers to the address holding unit 103 in S402, and determines whether or not the bank / ROW address of the issuing destination of the issued ACT exists in the address holding unit 103.

S402で存在すると判定された場合、S403で制御部102はカウント値保持部104を参照し、発行先のバンク・ROWアドレスと同じアドレス保持部103のエントリに対応してカウント値保持部104に保持されているカウント値を読み出す。制御部102は、読み出されたカウント値がしきい値、この場合MAC/2-1、に等しいか否かを判定する。S403で等しくない、すなわちしきい値未満であると判定された場合、S404で制御部102は読み出されたカウント値をインクリメント(例えば+1)する。制御部102は、インクリメント後のカウント値をカウント値保持部104に登録することでカウント値保持部104を更新する。その後、処理はS401に戻る。 When it is determined in S402 that it exists, the control unit 102 refers to the count value holding unit 104 in S403 and holds it in the count value holding unit 104 corresponding to the entry of the address holding unit 103 which is the same as the bank / ROW address of the issuing destination. Read the count value that has been set. The control unit 102 determines whether or not the read count value is equal to the threshold value, in this case MAC / 2-1. If it is determined in S403 that they are not equal, that is, less than the threshold value, the control unit 102 increments (for example, +1) the read count value in S404. The control unit 102 updates the count value holding unit 104 by registering the incremented count value in the count value holding unit 104. After that, the process returns to S401.

S403で等しいと判定された場合、S405で発行部101は、ACTの発行先のバンク・ROWアドレスを対象とするTRRを発行する。S406で制御部102は、TRRの発行先のバンクに対応してバンク毎最大値保持部105に保持されている最大カウント値をリセットする、または初期化する。例えば、最大カウント値は0や1などの初期値となる。その後、処理はS401に戻る。 If it is determined in S403 that they are equal, the issuing unit 101 issues a TRR targeting the bank / ROW address of the issuing destination of the ACT in S405. In S406, the control unit 102 resets or initializes the maximum count value held in the maximum value holding unit 105 for each bank corresponding to the bank to which the TRR is issued. For example, the maximum count value is an initial value such as 0 or 1. After that, the process returns to 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に戻る。 When it is determined in S402 that it does not exist, the control unit 102 in S407 determines whether or not there is a vacant entry (hereinafter referred to as a vacant entry) in the address holding unit 103. If it is determined to be S407, the control unit 102 newly registers the bank / ROW address of the issue destination of the ACT in the empty entry of the address holding unit 103 in S408. In S409, the control unit 102 reads out the maximum count value held in the maximum value holding unit 105 for each bank corresponding to the bank to which the ACT is issued. In S410 and S411, the control unit 102 sets the count value corresponding to the bank / ROW address of the issue destination of the ACT with reference to the read maximum count value. In S410, the control unit 102 increments the read maximum count value. In S411, the control unit 102 registers the incremented value in the count value holding unit 104 as a count value corresponding to the bank / ROW address of the issue destination of the ACT. After that, the process returns to S401.

S407で空きエントリないと判定された場合、S412で制御部102は、カウント値保持部104に保持されるカウント値のなかから、最小のカウント値を特定する。S413で制御部102は、アドレス保持部103に保持されるバンク・ROWアドレスのなかから、特定された最小のカウント値に対応するバンク・ROWアドレスを選択する。S414で制御部102は、選択されたバンク・ROWアドレスを、ACTの発行先のバンク・ROWアドレスで置き換える。 When it is determined in S407 that there is no empty entry, the control unit 102 in S412 specifies the minimum count value from the count values held in the count value holding unit 104. In S413, the control unit 102 selects the bank / ROW address corresponding to the specified minimum count value from the bank / ROW addresses held in the address holding unit 103. In S414, the control unit 102 replaces the selected bank ROW address with the bank ROW address to which the ACT is issued.

S415で制御部102は、置換の前後でバンクが異なるか否かを判定する。すなわち、制御部102は、S413で選択されたバンク(置換前のバンク)と、ACTの発行先のバンク(置換後のバンク)と、の異同を判定する。S415で同じであると判定された場合、S416で制御部102はS412で特定された最小のカウント値をインクリメントする。制御部102は、インクリメント後のカウント値をACTの発行先のバンク・ROWアドレスに対応付けてカウント値保持部104に登録することでカウント値保持部104を更新する。その後、処理はS401に戻る。 In S415, the control unit 102 determines whether or not the banks are different before and after the replacement. That is, the control unit 102 determines the difference between the bank selected in S413 (the bank before the replacement) and the bank to which the ACT is issued (the bank after the replacement). If it is determined in S415 that they are the same, the control unit 102 in S416 increments the minimum count value specified in S412. The control unit 102 updates the count value holding unit 104 by registering the incremented count value in the count value holding unit 104 in association with the bank / ROW address of the issue destination of the ACT. After that, the process returns to 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に戻る。 If it is determined in S415 that they are different, the control unit 102 in S417 reads out the maximum count value held in the maximum value holding unit 105 for each bank corresponding to the bank selected in S413. Since the minimum count value specified in S412 corresponds to the bank ROW address selected in S413 and is overwritten (excluded) in the subsequent processing of S411, it is hereinafter referred to as an expelled count value. In S418, the control unit 102 determines whether or not the expelled count value is larger than the maximum count value read in S417. When it is determined in S418 that it is large, the control unit 102 updates the maximum value holding unit 105 for each bank by overwriting the maximum count value corresponding to the bank selected in S413 with the expelled count value in S419. When it is determined in S418 that it is not large, or after S419, the control unit 102 registers the count value corresponding to the issue destination bank / ROW address of the ACT by performing S409, S410, and S411. After that, the process returns to S401.

以降、図5から図8を参照し、図4で説明した各条件における、制御部102の動作の詳細を説明する。これらの例は、発行部101がバンク0、ROWアドレス0x100に対してACT501を発行した時の制御部102の動作を示している。制御部102は、アドレス保持部103およびカウント値保持部104のそれぞれの状態を確認し、その状態に応じた処理を実施する。 Hereinafter, with reference to FIGS. 5 to 8, details of the operation of the control unit 102 under each condition described with reference to FIG. 4 will be described. These examples show the operation of the control unit 102 when the issuing unit 101 issues the ACT 501 to the bank 0 and the ROW address 0x100. The control unit 102 confirms the states of the address holding unit 103 and the count value holding unit 104, and performs processing according to the states.

制御部102は、発行部101からのACT501の発行を検出すると、そのACT501の発行先であるバンク・ROWアドレスが、アドレス保持部103に存在するかどうかを判定する(図4のS402)。この状態に応じて、制御部102は続きの処理を決定する。 When the control unit 102 detects the issuance of the ACT 501 from the issuing unit 101, the control unit 102 determines whether or not the bank ROW address to which the ACT 501 is issued exists in the address holding unit 103 (S402 in FIG. 4). Depending on this state, the control unit 102 determines the subsequent processing.

図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 control unit 102 in a certain scenario. In the example of FIG. 5, as a result of the control unit 102 searching in the address holding unit 103 (reference numeral 502), a pair of bank 0 and ROW address 0x100 is found in the entry of the address holding unit 103. The control unit 102 confirms the entry of the count value holding unit 104 corresponding to the found set of the bank 0 and the ROW address 0x100 (reference numeral 503). As a result, the control unit 102 finds that the count value corresponding to the set of bank 0 and ROW address 0x100 is "999999" (= MAC / 2-1) (S403 in FIG. 4).

この条件において、制御部102は、アドレス保持部103からバンク0、ROWアドレス0x100の組のエントリを削除し(符号504)、そのエントリに対応するカウント値保持部104のエントリを削除する(符号505)。続いて、制御部102は、発行部101に対し、TRRを発行するよう指示する(符号506)。発行部101は制御部102からの指示を受けてDRAM110に対してTRRを発行する(図4のS405)。 Under this condition, the control unit 102 deletes the entry of the set of bank 0 and ROW address 0x100 from the address holding unit 103 (reference numeral 504), and deletes the entry of the count value holding unit 104 corresponding to the entry (reference numeral 505). ). Subsequently, the control unit 102 instructs the issuing unit 101 to issue a TRR (reference numeral 506). The issuing unit 101 issues a TRR to the DRAM 110 in response to an instruction from the control unit 102 (S405 in FIG. 4).

図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 control unit 102 in a certain scenario. In the example of FIG. 6, as a result of the control unit 102 searching in the address holding unit 103 (reference numeral 601), a pair of bank 0 and ROW address 0x100 is found in the entry of the address holding unit 103. The control unit 102 confirms the entry of the count value holding unit 104 corresponding to the found set of the bank 0 and the ROW address 0x100 (reference numeral 602). As a result, the control unit 102 finds that the count value corresponding to the set of bank 0 and ROW address 0x100 is less than MAC / 2-1 (S403 in FIG. 4).

この条件において、制御部102は、アドレス保持部103のバンク0、ROWアドレス0x100に対応してカウント値保持部104に保持されるカウント値をインクリメントする(図4のS404)。制御部102は、バンク0、ROWアドレス0x100の組に対応するカウント値保持部104のエントリに、インクリメントの結果である「80001」を書き込む(符号603)。このインクリメントの結果、カウント値保持部104のカウント値は、MAC/2に到達しないため、これ以外の処理は行われない。 Under this condition, the control unit 102 increments the count value held in the count value holding unit 104 corresponding to the bank 0 and the ROW address 0x100 of the address holding unit 103 (S404 in FIG. 4). The control unit 102 writes “80001”, which is the result of the increment, in the entry of the count value holding unit 104 corresponding to the set of the bank 0 and the ROW address 0x100 (reference numeral 603). As a result of this increment, the count value of the count value holding unit 104 does not reach MAC / 2, so no other processing is performed.

図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 control unit 102 in a certain scenario. In the example of FIG. 7, as a result of the control unit 102 searching in the address holding unit 103 (reference numeral 701), the pair of bank 0 and ROW address 0x100 is not found in the entry of the address holding unit 103. Further, the control unit 102 determines that there is a free entry in the address holding unit 103 (S407 in FIG. 4).

この条件において、制御部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 control unit 102 newly creates an entry for the bank 0 and the ROW address 0x100 in the empty entry of the address holding unit 103 (reference numeral 702, S408 in FIG. 4). The control unit 102 reads out the maximum count value (“0”) held in the maximum value holding unit 105 for each bank corresponding to the bank 0 (address group 0) (reference numeral 703, S409 in FIG. 4). The control unit 102 increments the read maximum count value (0 + 1 = 1). The control unit 102 registers the value (“1”) obtained as a result of the increment in the count value holding unit 104 as the count value corresponding to the bank 0 and the ROW address 0x100 (reference numeral 704, S411 in FIG. 4).

図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 control unit 102 in a certain scenario. In the example of FIG. 8, as a result of the control unit 102 searching in the address holding unit 103 (reference numeral 801), the pair of bank 0 and ROW address 0x100 is not found in the entry of the address holding unit 103. Further, the control unit 102 determines that there is no free entry in the address holding unit 103 (S407 in FIG. 4).

この条件において、制御部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 control unit 102 refers to the count value holding unit 104 to specify the minimum count value, and identifies the entry held in the address holding unit 103 corresponding to the specified minimum count value. The control unit 102 replaces the specified entry with a set of bank row addresses to which the ACT 501 is issued (S414 in FIG. 4). In FIG. 8, the entries of bank 1 and ROW address 0x98 are replaced by the pair of bank 0 and ROW address 0x100 (reference numeral 802). The control unit 102 reads out the maximum count value (“100”) held in the maximum value holding unit 105 for each bank corresponding to the set of bank / ROW addresses after replacement (bank 0, ROW address 0x100) (reference numeral 803). ). The control unit 102 increments the read value (100 + 1 = 101). The control unit 102 writes the value (“101”) obtained as a result of the increment in the entry of the count value holding unit 104 corresponding to the set of bank / ROW addresses after replacement (S411 in FIG. 4). In FIG. 8, "100" is read from the entry of the address group 0 of the maximum value holding unit 105 for each bank, and is incremented to "101", and the minimum count value "15000" of the count value holding unit 104 is the minimum count value "15000". It is overwritten with the value "101" (reference numeral 804).

制御部102は、追い出されたバンク1のカウント値「15000」と、バンク1(アドレスグループ1)に対応してバンク毎最大値保持部105に保持されている最大カウント値(「14500」)と、を比較する(図4のS418)。15000>14500なので、制御部102はバンク1に対応する最大カウント値を15000で置き換える(符号805)。 The control unit 102 has a count value "15000" of the expelled bank 1 and a maximum count value ("14500") held in the maximum value holding unit 105 for each bank corresponding to the bank 1 (address group 1). , Are compared (S418 in FIG. 4). Since 15000> 14500, the control unit 102 replaces the maximum count value corresponding to the bank 1 with 15000 (reference numeral 805).

本実施の形態に係るメモリコントローラ100によると、制御部102がアドレス保持部103、カウント値保持部104およびバンク毎最大値保持部105を上述のように制御することで、実際のROWアドレスへのアクセス数とACTの発行数との乖離を抑制することができる。その結果、無駄なTRRの発生を抑制することができる。 According to the memory controller 100 according to the present embodiment, the control unit 102 controls the address holding unit 103, the count value holding unit 104, and the bank-by-bank maximum value holding unit 105 as described above to obtain an actual ROW address. It is possible to suppress the discrepancy between the number of accesses and the number of issued ACTs. As a result, it is possible to suppress the generation of useless TRR.

以上、実施の形態に係るメモリコントローラ100の構成と動作について説明した。この実施の形態は例示であり、その各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。 The configuration and operation of the memory controller 100 according to the embodiment have been described above. It is understood by those skilled in the art that this embodiment is an example, and that various modifications are possible for each component and a combination of each process, and that such modifications are also within the scope of the present invention.

実施の形態では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 DRAM 110 has been described, but the present invention is not limited to this. The ROW address may be divided into a plurality of groups, and the method of division may be arbitrary. 9 (a) and 9 (b) are diagrams showing an example of how to divide the ROW address. As shown by reference numeral 1001 in FIG. 9A, classification by ROW address may be used. Alternatively, as shown by reference numeral 1002 in FIG. 9B, a division for each master (when the access destination address is fixed by the master) may be used. In this way, any allocation method can be adopted.

実施の形態では、カウント値がインクリメントされる場合について説明したが、これに限られず、ROWアドレスに対してACTが発行されるとカウント値を更新する態様であれば他の態様が用いられてもよい。例えば、ACTの発行に対してカウント値がデクリメントされてもよい。この場合、図4のS403やS418における判定基準も合わせて変更されてもよい。 In the embodiment, the case where the count value is incremented has been described, but the present invention is not limited to this, and other embodiments may be used as long as the count value is updated when the ACT is issued to the ROW address. good. For example, the count value may be decremented for the issuance of ACT. 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, but the present invention is not limited to this, and other threshold values may be used. Conditions other than the threshold value may be used.

実施の形態では、図4のS412において最小のカウント値が特定され、S413において特定されたカウント値に対応するバンク・ROWアドレスが選択される場合について説明したが、これに限られない。アドレス保持部103に保持されているバンク・ROWアドレスのなかからカウント値に関する所定の基準にしたがいバンク・ROWアドレスが選択されてもよい。例えば、極小のカウント値が特定されてもよい。あるいはまた、カウント値保持部104から小さい方から3つのカウント値を選択し、該3つのカウント値のなかからランダムに選択したひとつに対応してアドレス保持部103に保持されるバンク・ROWアドレスを選択してもよい。 In the embodiment, the case where 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 is not limited thereto. From the bank / ROW addresses held in the address holding unit 103, the bank / ROW address may be selected according to a predetermined reference regarding the count value. For example, a minimum count value may be specified. Alternatively, three count values are selected from the count value holding unit 104 from the smaller one, and the bank ROW address held in the address holding unit 103 corresponding to one randomly selected from the three count values is selected. You may choose.

S412における最小のカウント値は、カウント値保持部104に保持されるカウント値のなかで、MAC/2-1に到達するという条件を満たすために必要なインクリメントの回数が最も多いカウント値であると言うことができる。すなわち、S412では、カウント値保持部104に保持されているカウント値のなかでTRR発行の条件を満たすために必要な更新の回数が最も多いカウント値を特定しているといえる。 The minimum count value in S412 is the count value in which the number of increments required to satisfy the condition of reaching MAC / 2-1 is the largest among the count values held in the count value holding unit 104. I can say. That is, it can be said that S412 specifies the count value having the largest number of updates required to satisfy the condition of TRR issuance among the count values held in the count value holding unit 104.

実施の形態では、図4のS406においてTRRの発行を契機として対応するバンクの最大カウント値をリセットする場合について説明したが、これに限られない。例えば、バンク毎最大値保持部105に保持される最大カウント値は経時的に自動的に減少してもよいし、またはバンク毎最大値保持部105から最大カウント値を読み出したことを契機としてその最大カウント値がリセットされてもよい。 In the embodiment, the case where the maximum count value of the corresponding bank is reset when the TRR is issued in S406 of FIG. 4 has been described, but the present invention is not limited to this. For example, the maximum count value held in the maximum value holding unit 105 for each bank may be automatically decreased with time, or the maximum count value may be read out from the maximum value holding unit 105 for each bank. The maximum count value may be reset.

実施の形態では、DRAM110がLPDDR4に準拠する場合について説明したが、これに限られず、ROWアドレスが複数のグループに分けられる任意のDRAMに本実施の形態に係る技術的思想を適用可能である。 In the embodiment, the case where the DRAM 110 conforms to LPDDR4 has been described, but the present invention is not limited to this, and the technical idea according to the present embodiment can be applied to any DRAM whose ROW address is divided into a plurality of groups.

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アドレスが複数のグループに分けられた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アドレスに対応するカウント値として設定するメモリコントローラ。
A memory controller that controls DRAMs whose ROW addresses are divided into multiple groups.
It is the first holding means that holds the ROW address in association with the count value that is updated when the 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. Smaller than the first holding means,
When the count value held in the first holding means satisfies a predetermined condition, a control means for issuing a Target Row Refresh command regarding the corresponding ROW address, and a control means.
A second holding means for holding a plurality of count values corresponding to each of a plurality of groups of ROW addresses is provided.
When the Activate command is issued to the first ROW address, which is a ROW address that is not held by the first holding means, and there is no vacant entry in the first holding means, the first holding means said. The second ROW address, which is the ROW address selected according to a predetermined criterion for the count value from the ROW addresses held in the holding means, is replaced with the first ROW address, and the group to which the second ROW address belongs and the first ROW are described. When the group to which the address belongs is different, the count value corresponding to the group to which the first ROW address belongs is referred to among the plurality of count values held in the second holding means to correspond to the first ROW address. When the group to which the second ROW address belongs and the group to which the first ROW address belongs are the same, the count value held in the first holding means corresponding to the second ROW address is set. Is updated and the updated count value is set as the count value corresponding to the first ROW address.
前記制御手段は、前記第2ROWアドレスに対応して前記第1保持手段に保持されているカウント値と前記第2ROWアドレスが属するグループに対応して前記第2保持手段に保持されているカウント値とを比較することにより前記第2保持手段を更新する請求項1に記載のメモリコントローラ。 The control means has a count value held in the first holding means corresponding to the second ROW address and a count value held in the second holding means corresponding to the group to which the second ROW address belongs. The memory controller according to claim 1, wherein the second holding means is updated by comparing the above. 前記制御手段は、前記第2ROWアドレスが属するグループに対応して前記第2保持手段に保持されているカウント値を、前記第2ROWアドレスに対応して前記第1保持手段に保持されているカウント値で更新する請求項2に記載のメモリコントローラ。 The control means has a count value held in the second holding means corresponding to the group to which the second ROW address belongs, and a count value held in the first holding means corresponding to the second ROW address. The memory controller according to claim 2, which is updated in. 前記制御手段は、前記第1保持手段に空いているエントリがある場合、前記第1ROWアドレスを該エントリに登録すると共に、前記第1ROWアドレスが属するグループに対応して前記第2保持手段に保持されているカウント値を参照して前記第1ROWアドレスに対応するカウント値を設定する請求項1から3のいずれか一項に記載のメモリコントローラ。 When the first holding means has an empty entry, the control means registers the first ROW address in the entry and is held in the second holding means corresponding to the group to which the first ROW address belongs. The memory controller according to any one of claims 1 to 3, wherein the count value corresponding to the first ROW address is set with reference to the count value. 前記第2ROWアドレスは、前記第1保持手段に保持されているカウント値のなかで前記所定の条件を満たすために必要な更新の回数が最も多いカウント値に対応するROWアドレスである請求項1から4のいずれか一項に記載のメモリコントローラ。 From claim 1, the second ROW address is a ROW address corresponding to the count value having the largest number of updates required to satisfy the predetermined condition among the count values held in the first holding means. The memory controller according to any one of 4. 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アドレスに対応するカウント値を設定するメモリコントローラ。
A memory controller that controls DRAMs whose ROW addresses are divided into multiple groups.
It is the first holding means that holds the ROW address in association with the count value that is updated when the 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. Smaller than the first holding means,
When the count value held in the first holding means satisfies a predetermined condition, a control means for issuing a Target Row Refresh command regarding the corresponding ROW address, and a control means.
A second holding means for holding a plurality of count values corresponding to each of a plurality of groups of ROW addresses is provided.
When the Activate command is issued to the first ROW address, which is a ROW address that is not held by the first holding means, and the first holding means has an empty entry, the control means said the first ROW. The address is registered in the entry, and among the plurality of count values held in the second holding means, the count corresponding to the first ROW address is referred to by referring to the count value corresponding to the group to which the first ROW address belongs. A memory controller that sets the value.
前記第1保持手段は、ROWアドレスと該ROWアドレスが属するグループを特定するIDと該ROWアドレスに対してActivateコマンドが発行されると更新されるカウント値とを対応付けて保持し、
前記制御手段は、前記第1保持手段に保持されるIDを参照することで前記第1ROWアドレスが属するグループを特定する請求項1から6のいずれか一項に記載のメモリコントローラ。
The first holding means holds the ROW address, the ID that identifies the group to which the ROW address belongs, and the count value that is updated when the 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 means refers to an ID held by the first holding means to specify a group to which the first ROW address belongs.
ROWアドレスのグループはバンクに対応する請求項1から7のいずれか一項に記載のメモリコントローラ。 The memory controller according to any one of claims 1 to 7, wherein the group of ROW addresses corresponds to a bank. 前記DRAMはLPDDR4に準拠する請求項1から8のいずれか一項に記載のメモリコントローラ。 The memory controller according to any one of claims 1 to 8, wherein the DRAM conforms to LPDDR4. 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アドレスに対応するカウント値として設定することと、を含む方法。
A method executed by a memory controller that controls a DRAM whose ROW address is divided into multiple groups.
The ROW address is associated with the count value updated when the Activate command is issued for the ROW address and held in the first holding means, and the number of entries that can hold the ROW address is the ROW address. To keep, less than the total number of
When the count value held in the first holding means satisfies a predetermined condition, the Target Row Refresh command for the corresponding ROW address is issued.
Holding a plurality of count values corresponding to each of a plurality of groups of ROW addresses in the second holding means, and
If the Activate command is issued to the first ROW address, which is a ROW address that is not held by the first holding means, and there is no free entry in the first holding means, the first holding means holds the command. The second ROW address, which is the ROW address selected according to a predetermined criterion for the count value, is replaced with the first ROW address, and the group to which the second ROW address belongs and the group to which the first ROW address belongs When is different, among the plurality of count values held in the second holding means, the count value corresponding to the first ROW address is set with reference to the count value corresponding to the group to which the first ROW address belongs. When the group to which the second ROW address belongs and the group to which the first ROW address belongs are the same, the count value held in the first holding means is updated corresponding to the second ROW address. A method including setting the updated count value as a count value corresponding to the first ROW address.
ROWアドレスが複数のグループに分けられたDRAMを制御するメモリコントローラが実行する方法であって、
ROWアドレスと該ROWアドレスに対してActivateコマンドが発行されると更新されるカウント値とを対応付けて第1保持手段に保持することであって、ROWアドレスを保持可能なエントリの数がROWアドレスの総数よりも小さい、保持することと、
前記第1保持手段に保持されるカウント値が所定の条件を満たすと対応するROWアドレスに関するTarget Row Refreshコマンドを発行することと、
ROWアドレスの複数のグループそれぞれに対応する複数のカウント値を第2保持手段に保持することと、
前記第1保持手段に保持されていないROWアドレスである第1ROWアドレスに対してActivateコマンドが発行され、かつ、前記第1保持手段に空いているエントリがある場合、前記第1ROWアドレスを該エントリに登録すると共に、前記第2保持手段に保持されている複数のカウント値の内、前記第1ROWアドレスが属するグループに対応するカウント値を参照して前記第1ROWアドレスに対応するカウント値を設定することと、を含む方法。
A method executed by a memory controller that controls a DRAM whose ROW address is divided into multiple groups.
The ROW address is associated with the count value updated when the Activate command is issued for the ROW address and held in the first holding means, and the number of entries that can hold the ROW address is the ROW address. To keep, less than the total number of
When the count value held in the first holding means satisfies a predetermined condition, the Target Row Refresh command for the corresponding ROW address is issued.
Holding a plurality of count values corresponding to each of a plurality of groups of ROW addresses in the second holding means, and
If an Activate command is issued for the first ROW address, which is a ROW address that is not held by the first holding means, and there is an empty entry in the first holding means, the first ROW address is used as the entry. At the same time as registering, among the plurality of count values held in the second holding means, the count value corresponding to the first ROW address is set by referring to the count value corresponding to the group to which the first ROW address belongs. And how to include.
JP2017023473A 2017-02-10 2017-02-10 Memory controller and method Active JP7008410B2 (en)

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 JP2018128991A (en) 2018-08-16
JP7008410B2 true 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)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7155679B2 (en) 2018-07-06 2022-10-19 マツダ株式会社 Diesel engine fuel injection controller
CN110535861B (en) * 2019-08-30 2022-01-25 杭州迪普信息技术有限公司 Method and device for counting SYN packet number in SYN attack behavior identification
KR20230135424A (en) 2022-03-16 2023-09-25 삼성전자주식회사 Memory device and refresh method thereof

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 (en) 2014-01-15 2015-07-23 三星電子株式会社Samsung Electronics Co.,Ltd. Method of tracking activations to memory rows, and memory controller therefor

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 (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

Also Published As

Publication number Publication date
JP2018128991A (en) 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
CN104090847B (en) Address distribution method of solid-state storage device
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)
US7783825B2 (en) Nonvolatile memory system and management method for nonvolatile memory
JP7008410B2 (en) Memory controller and method
US20190087125A1 (en) Memory system and control method of memory system
CN107357534A (en) A kind of dynamic switching method and system of flash block pattern
US8711627B2 (en) Data storage device and block selection method for a flash memory
US20160328161A1 (en) Method, apparatus, and storage medium for writing data
US11037618B2 (en) Row hammer prevention circuit, a memory module including the row hammer prevention circuit, and a memory system including the memory module
KR102567111B1 (en) Storage device and method for operating storage device
CN103493026A (en) Methods of accessing memory cells, methods of distributing memory requests, systems, and memory controllers
US20160070647A1 (en) Memory system
US10083120B2 (en) Memory system, and address mapping method and access method thereof
KR20180006645A (en) Semiconductor device including a memory buffer
US20150052327A1 (en) Dynamic memory relocation
US10713159B2 (en) Semiconductor device for managing wear leveling operation of a nonvolatile memory device
US20130094317A1 (en) Refresh control circuit and method of semiconductor apparatus
US20170212689A1 (en) Packet processing system, method and device utilizing memory sharing
US9092344B2 (en) Solid state drive
KR20160111122A (en) Semiconductor memory device and method for controlling semiconductor memory device
US20180203875A1 (en) Method for extending and shrinking volume for distributed file system based on torus network and apparatus using the same

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