JP2018128991A - Memory controller and method - Google Patents

Memory controller and method Download PDF

Info

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
Application number
JP2017023473A
Other languages
Japanese (ja)
Other versions
JP7008410B2 (en
Inventor
肇 栗林
Hajime Kuribayashi
肇 栗林
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)

Abstract

PROBLEM TO BE SOLVED: To suppress occurrence of a useless TRR (Target Row Refresh command) while suppressing a circuit scale in a memory controller on which the TRR is mounted.SOLUTION: A memory controller 100 for controlling a DRAM (Dynamic Random Access Memory) in which ROW addresses are divided into a plurality of groups comprises: first holding means in which the number of entries capable of holding the ROW addresses is smaller than the total number of the ROW addresses; control means for, when a count value held by the first holding means satisfies a predetermined condition, issuing a TRR (Target Row Refresh command) related to the corresponding ROW address; and second holding means for holding the count value for each group of the ROW addresses. The control means issues an Active command to a first ROW address as the ROW address which is not held by the first holding means, and when there does exist any empty entry in the first holding means, replaces a second ROW address with the first ROW address.SELECTED DRAWING: Figure 1

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, Patent Document 1 proposes a method of executing TRR by measuring the number of issues of the Activate command while suppressing the circuit scale.

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

特許文献1に示されている手法では、メモリコントローラは、ROWアドレスと、各ROWアドレスへのActivateコマンドの発行数とを対応付けて保持するテーブルを持つ。このテーブルのエントリ数は、一定期間内でMACに達することの可能なROWの個数に基づいており、前述の単純な実装と比較して、回路規模を削減することができる。   In the method disclosed in Patent Document 1, the memory controller has a table that holds ROW addresses 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 certain period, and the circuit scale can be reduced as compared with the simple implementation described above.

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

本発明はこうした課題に鑑みてなされたものであり、その目的は、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.

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

以下、各図面に示される同一または同等の構成要素、部材、処理、信号には、同一の符号を付するものとし、適宜重複した説明は省略する。また、各図面において説明上重要ではない部材の一部は省略して表示する。   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 Patent Document 1, when the memory controller issues an Activate command, the following operation is performed. First, the table management unit replaces the entry of the ROW address having the smallest number of Activate command issuance if the ROW address to which the Activate command is issued does not exist in the table and there is no free space in the table. At this time, the management unit of the table copies the number of Activate command issuances associated with the entry before replacement to the number of Activate command issuances associated with the entry after replacement, and then increments the number of issuance of Activate commands. That is, a value obtained by adding 1 to the number of Activate commands issued to the ROW address before replacement, regardless of the number of Activate commands issued up to the replacement time issued to the ROW address after 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 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 Bank 0 of the DRAM frequently occurs, the table is full, and is occupied by the ROW address of the Bank 0. At this time, when access to the ROW address of Bank1 occurs 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. In fact, although the Activate command is issued for the first time to the ROW address of Bank1, more activating commands are issued to the ROW address of Bank1 stored in the table by replacement. In this way, a divergence occurs between the actual state of access to the ROW address of Bank 1 and the number of command issuances held. When the divergence occurs, useless TRR occurs, and the performance may be degraded.

特許文献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 free space in the table and there is no entry with the same ROW address in the table, An entry (consisting of a ROW address and an ACT issuance count) is evicted. On the other hand, the memory controller according to the embodiment is provided with a holding unit that holds the ACT issuance count of the evicted entries. This holding unit is prepared for each bank and address range, and the ACT issuance count of the evicted entry is registered in the holding unit corresponding to the bank / address range of the ROW address of the evicted entry. When an ACT is issued to a ROW address in a certain bank / address range, the ACT issuance count counted in the holding unit corresponding to the bank / address range is written back to the table and incremented. Thereby, compared with the technique described in Patent Document 1, it is possible to suppress the difference between the actual number of accesses to the ROW address and the number of ACT issuances, and it is possible to suppress the occurrence of useless 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 illustrating functions and configurations of a memory controller 100 according to an embodiment. The memory controller 100 includes an issuing unit 101, a control unit 102, a table 106, and a maximum value holding unit 105 for each bank. 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. For example, when the issuing unit 101 receives a memory access request MAR from an external CPU or the like, the issuing unit 101 generates a DRAM command CMD related to the ROW address included in the received memory access request MAR and transmits the DRAM command CMD to the DRAM 110.
The control unit 102 monitors to which ROW address the ACT is issued among the DRAM commands CMD issued by the issuing unit 101.

テーブル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 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 the bank to which the ACT is issued and the ROW address issued by the issuing unit 101. Hereinafter, a set of a bank and a ROW address is referred to as a bank / ROW address. In this 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 a ROW address of bank 0, and 0x100 may be a 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. 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 when an ACT is issued for the ROW address.
The per-bank maximum value holding unit 105 is controlled by the control unit 102 and holds the maximum count value for each address group (ie, 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 illustrating an example of the address holding unit 103, the count value holding unit 104, and the maximum value holding unit 105 for each bank. Each of the address holding unit 103 and the count value holding unit 104 has a number of entries equal to or less than MVC (Maximum Victim Count) (see Patent Document 1). MVC is the number of ROW addresses that can reach the MAC when the memory controller 100 issues ACT as much as possible within the refresh period 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 approximately 762K ACTs during one refresh cycle. In this case, the number of ROW addresses that can reach the MAC within one refresh period is 762K / 100K = about 7.62. Therefore, in this case, eight entries are required for the address holding unit 103 and the count value holding unit 104. The maximum value holding unit 105 for each bank has the number of address groups = several banks.

図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 having 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 processing shown in FIG. 4 depending on the states of the address holding unit 103 and the count value holding unit 104. In step S401, the control unit 102 monitors the DRAM command CMD issued by the issuing unit 101, and determines whether or not an ACT has been issued. If no ACT is issued, the control unit 102 repeats S401. When an ACT is issued, the control unit 102 refers to the address holding unit 103 in S <b> 402 and determines whether the bank / ROW address of the issued ACT is present 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に戻る。   If it is determined in S402, 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 in the address holding unit 103 that is the same as the bank / ROW address of the issue destination. Read the counted value. The control unit 102 determines whether or not the read count value is equal to a 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. Thereafter, 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, in S405, the issuing unit 101 issues a TRR targeted for the bank / ROW address of the ACT issuance destination. In S <b> 406, the control unit 102 resets or initializes the maximum count value held in the bank-specific maximum value holding unit 105 corresponding to the bank to which TRR is issued. For example, the maximum count value is an initial value such as 0 or 1. Thereafter, 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に戻る。   If it is determined in S <b> 402 that the information does not exist, the control unit 102 determines in S <b> 407 whether there is a vacant entry (hereinafter referred to as a vacant entry) in the address holding unit 103. If it is determined in S407, the control unit 102 newly registers the bank / ROW address of the ACT issuance destination in the empty entry of the address holding unit 103 in S408. In step S409, the control unit 102 reads the maximum count value held in the bank-specific maximum value holding unit 105 corresponding to the ACT issuance destination bank. In S410 and S411, the control unit 102 refers to the read maximum count value and sets a count value corresponding to the bank / ROW address to which the ACT is issued. 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 to which the ACT is issued. Thereafter, the process returns to S401.

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 control unit 102 specifies the minimum count value from the count values held in the count value holding unit 104 in S412. In step S <b> 413, the control unit 102 selects a bank / ROW address corresponding to the specified minimum count value from among 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 the banks are different before and after replacement. That is, the control unit 102 determines the difference between the bank selected in S413 (the bank before replacement) and the bank to which the ACT is issued (the bank after replacement). If it is determined in S415 that they are the same, in S416, the control unit 102 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 ACT issuance destination. Thereafter, 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, in S417, the control unit 102 reads the maximum count value held in the bank-specific maximum value holding unit 105 corresponding to the bank selected in S413. The minimum count value identified in S412 corresponds to the bank / ROW address selected in S413, and is overwritten (evicted) in the subsequent processing of S411. In step S418, the control unit 102 determines whether the count value to be evicted is larger than the maximum count value read in step S417. If it is determined in S418 that the value is large, in S419, 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 count value to be evicted. When it is determined in S418 that the value is not large or after S419, the control unit 102 performs S409, S410, and S411 to register the count value corresponding to the ACT issue destination bank / ROW address. Thereafter, the process returns to S401.

以降、図5から図8を参照し、図4で説明した各条件における、制御部102の動作の詳細を説明する。これらの例は、発行部101がバンク0、ROWアドレス0x100に対してACT501を発行した時の制御部102の動作を示している。制御部102は、アドレス保持部103およびカウント値保持部104のそれぞれの状態を確認し、その状態に応じた処理を実施する。   Hereinafter, the details of the operation of the control unit 102 under each condition described with reference to FIG. 4 will be described with reference to FIGS. These examples show the operation of the control unit 102 when the issuing unit 101 issues an ACT 501 to the bank 0 and the ROW address 0x100. The control unit 102 checks 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 detecting the issuance of the ACT 501 from the issuing unit 101, the control unit 102 determines whether the bank / ROW address that is the issue destination of the ACT 501 exists in the address holding unit 103 (S402 in FIG. 4). In accordance with this state, the control unit 102 determines 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 the address holding unit 103 (reference numeral 502), a set 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 combination of the found bank 0 and ROW address 0x100 (reference numeral 503). As a result, the control unit 102 finds that the count value corresponding to the combination 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 section 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 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 set of the found bank 0 and 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 ROW address 0x100 of the address holding unit 103 (S404 in FIG. 4). The control unit 102 writes “80001” as the increment result to 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 the address holding unit 103 (reference numeral 701), a set 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 an empty 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 of 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 the maximum count value (“0”) held in the bank-by-bank maximum value holding unit 105 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 a 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 the address holding unit 103 (reference numeral 801), the set of the bank 0 and the 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 empty 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 specifies the minimum count value with reference to the count value holding unit 104, and specifies 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 address to which the ACT 501 is issued (S414 in FIG. 4). In FIG. 8, the entry of bank 1 and ROW address 0x98 is replaced with the set of bank 0 and ROW address 0x100 (reference numeral 802). The control unit 102 reads the maximum count value (“100”) held in the bank-specific maximum value holding unit 105 corresponding to the bank / ROW address pair (bank 0, ROW address 0x100) after replacement (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 into the entry of the count value holding unit 104 corresponding to the bank / ROW address pair 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, incremented to “101”, and the minimum count value “15000” of the count value holding unit 104 is 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 counts the count value “15000” of the evicted bank 1 and the maximum count value (“14500”) held in the bank-specific maximum value holding unit 105 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 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, so that the actual ROW address can be changed. Deviation between the number of accesses and the number of issued ACTs can be suppressed. As a result, generation of useless TRR can be suppressed.

以上、実施の形態に係るメモリコントローラ100の構成と動作について説明した。この実施の形態は例示であり、その各構成要素や各処理の組み合わせにいろいろな変形例が可能なこと、またそうした変形例も本発明の範囲にあることは当業者に理解されるところである。   The configuration and operation of the memory controller 100 according to the embodiment has been described above. This embodiment is an exemplification, and it is understood by those skilled in the art that various modifications can be made to each component and combination of processes, and such modifications are 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. However, the present invention is not limited to this. The ROW address may be divided into a plurality of groups, and the division method may be arbitrary. FIGS. 9A and 9B are diagrams illustrating an example of how to divide a ROW address. As indicated by reference numeral 1001 in FIG. 9A, a division by a ROW address may be used. Alternatively, as indicated by reference numeral 1002 in FIG. 9B, a section for each master (when the address of the access destination is fixed by the master) may be used. In this way, any allocation method can be employed.

実施の形態では、カウント値がインクリメントされる場合について説明したが、これに限られず、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 address holding unit 103 according to a predetermined standard regarding the count value. For example, a minimum count value may be specified. Alternatively, three count values are selected from the smaller ones from the count value holding unit 104, and a 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 having the largest number of increments necessary to satisfy the condition of reaching MAC2-1 in the count values held in the count value holding unit 104. I can say that. In other words, in S412, it can be said that the count value having the largest number of updates necessary to satisfy the TRR issuance condition is specified 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 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 value holding unit 105 may be automatically decreased over time, or triggered by reading the maximum count value from the bank-by-bank maximum value holding unit 105 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. However, the present invention is not limited to this, and the technical idea according to this embodiment can be applied to any DRAM in which the 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アドレスが属するグループとが異なる場合には前記第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.
前記制御手段は、前記第2ROWアドレスに対応して前記第1保持手段に保持されているカウント値と前記第2ROWアドレスが属するグループに対応して前記第2保持手段に保持されているカウント値とを比較することにより前記第2保持手段を更新する請求項1に記載のメモリコントローラ。   The control means includes 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 unit is updated by comparing the two. 前記制御手段は、前記第2ROWアドレスが属するグループに対応して前記第2保持手段に保持されているカウント値を、前記第2ROWアドレスに対応して前記第1保持手段に保持されているカウント値で更新する請求項2に記載のメモリコントローラ。   The control means counts the count value held in the second holding means corresponding to the group to which the second ROW address belongs, and the count value held in the first holding means corresponding to the second ROW address. The memory controller according to claim 2, updated at 前記制御手段は、前記第1保持手段に空いているエントリがある場合、前記第1ROWアドレスを該エントリに登録すると共に、前記第1ROWアドレスが属するグループに対応して前記第2保持手段に保持されているカウント値を参照して前記第1ROWアドレスに対応するカウント値を設定する請求項1から3のいずれか一項に記載のメモリコントローラ。   When there is an empty entry in the first holding unit, the control unit registers the first ROW address in the entry and holds the entry in the second holding unit corresponding to the group to which the first ROW address belongs. 4. The memory controller according to claim 1, wherein a count value corresponding to the first ROW address is set with reference to a count value. 前記第2ROWアドレスは、前記第1保持手段に保持されているカウント値のなかで前記所定の条件を満たすために必要な更新の回数が最も多いカウント値に対応するROWアドレスである請求項1から4のいずれか一項に記載のメモリコントローラ。   The second ROW address is a ROW address corresponding to a count value having the largest number of updates necessary to satisfy the predetermined condition among the count values held in the first holding means. 5. 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アドレスを該エントリに登録すると共に、前記第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保持手段は、ROWアドレスと該ROWアドレスが属するグループを特定するIDと該ROWアドレスに対してActivateコマンドが発行されると更新されるカウント値とを対応付けて保持し、
前記制御手段は、前記第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アドレスのグループはバンクに対応する請求項1から7のいずれか一項に記載のメモリコントローラ。   The memory controller according to claim 1, wherein the group of ROW addresses corresponds to a bank. 前記DRAMはLPDDR4に準拠する請求項1から8のいずれか一項に記載のメモリコントローラ。   The memory controller according to claim 1, 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アドレスが属するグループとが異なる場合には前記第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アドレスが複数のグループに分けられたDRAMを制御する方法であって、
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.
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 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)

* Cited by examiner, † Cited by third party
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)

* 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

Cited By (4)

* Cited by examiner, † Cited by third party
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