KR102381193B1 - Method and Apparatus for Improving Memory Reliability Based on Memory Buffer - Google Patents

Method and Apparatus for Improving Memory Reliability Based on Memory Buffer Download PDF

Info

Publication number
KR102381193B1
KR102381193B1 KR1020200138191A KR20200138191A KR102381193B1 KR 102381193 B1 KR102381193 B1 KR 102381193B1 KR 1020200138191 A KR1020200138191 A KR 1020200138191A KR 20200138191 A KR20200138191 A KR 20200138191A KR 102381193 B1 KR102381193 B1 KR 102381193B1
Authority
KR
South Korea
Prior art keywords
dram
row
memory
counter
address
Prior art date
Application number
KR1020200138191A
Other languages
Korean (ko)
Inventor
박철우
이동양
유제환
김창현
Original Assignee
주식회사 원세미콘
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 주식회사 원세미콘 filed Critical 주식회사 원세미콘
Priority to KR1020200138191A priority Critical patent/KR102381193B1/en
Application granted granted Critical
Publication of KR102381193B1 publication Critical patent/KR102381193B1/en

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40611External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0656Data buffering arrangements
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/409Read-write [R-W] circuits 
    • G11C11/4096Input/output [I/O] data management or control circuits, e.g. reading or writing circuits, I/O drivers or bit-line switches 

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Databases & Information Systems (AREA)
  • Dram (AREA)

Abstract

Disclosed are a method and an apparatus for improving memory reliability based on a memory buffer. The present embodiment provides a method and an apparatus for improving memory reliability, in which a memory system includes a plurality of dynamic random access memories (DRAMs) and a memory buffer (e.g., a registered clock driver (RCD)), wherein in order to cope with a row hammer (RH) in which data of adjacent rows is lost by intensively activating a specific row, an activation count is counted for each row constituting the DRAM, a carry, which occurs due to count of lower bits by the memory buffer, is transmitted to a DRAM side, and upper bits are counted based on the carry of the DRAM to detect a row that is intensively accessed. According to the present embodiment, it is possible to reduce energy consumed by the entire memory system and a required silicon area.

Description

메모리 버퍼 기반 메모리 신뢰성 개선 방법 및 장치{Method and Apparatus for Improving Memory Reliability Based on Memory Buffer}Method and Apparatus for Improving Memory Reliability Based on Memory Buffer

본 개시는 메모리 버퍼 기반 메모리 신뢰성(reliability) 개선 방법 및 장치에 관한 것이다. 더욱 상세하게는, 호스트, 복수의 DRAM 및 메모리 버퍼(예컨대, RCD(Registering Clock Driver))를 포함하는 메모리 시스템에 있어서, RH(Row Hammer)에 대처하기 위해, DRAM을 구성하는 행별로 Activate 횟수를 카운트하되, 메모리 버퍼가 하위 비트를 카운트하여 발생한 캐리(carry)를 DRAM 측으로 전달하고, DRAM이 캐리를 기반으로 상위 비트를 카운트함으로써 메모리 신뢰성을 개선하는 방법 및 장치에 관한 것이다.The present disclosure relates to a memory buffer-based memory reliability improvement method and apparatus. More specifically, in a memory system including a host, a plurality of DRAMs, and a memory buffer (eg, RCD (Registering Clock Driver)), in order to cope with RH (Row Hammer), the number of activations per row constituting the DRAM is The present invention relates to a method and apparatus for improving memory reliability by counting, but transferring a carry generated by a memory buffer counting a low-order bit to a DRAM side, and the DRAM counting a high-order bit based on the carry.

이하에 기술되는 내용은 단순히 본 발명과 관련되는 배경 정보만을 제공할 뿐 종래기술을 구성하는 것이 아니다. The content described below merely provides background information related to the present invention and does not constitute the prior art.

RH(Row Hammer) 문제는 1T-1C(One Transistor-One Capacitor)를 기본 소자(cell)로 갖는 DRAM(Dynamic Random Access Memory)의 근본적 한계에 기인한다. 공정 미세화(process scaling)가 성공적으로 진행되어 왔음에도 불구하고 DRAM은 근래 다음과 같은 한계에 봉착하고 있다. 첫째, DRAM에서 데이터를 저장하는 저장 캐패시터(storage capacitor)의 크기 축소에 따라 단위 셀에 저장된 전하(charge)량이 수백 개의 전자가 갖는 전하량 수준으로 감소되었다. 둘째, 인접 메모리 소자 간의 간격이 감소함에 따라 인접한 메모리 셀이 선택된 경우에도 선택되지 않은 셀에 대한 간섭의 강도가 증대되고, 이로 인해 메모리 셀의 전하가 유실되어 데이터 오류(data error)가 발생할 확률이 증가하게 되었다. 이러한 한계에 기인하는 RH(Row Hammer) 문제는 DRAM의 신뢰성(reliability) 측면에서 문제를 야기한다. 예컨대, RH를 이용하여 해커들(hackers)이 컴퓨터 시스템 전체를 DoS(Denial of Service)에 빠지게 할 위험성, 즉 보안(security) 문제의 발생 가능성에 대한 염려가 반도체 관련 업계 전체에 대두되었다. 이에 DRAM 제조사, CPU(Central Processing Unit) 업체 등을 포함한 광범위한 영역에서 RH 문제를 방지하려는 노력이 지속되고 있다. The RH (Row Hammer) problem is due to the fundamental limitation of DRAM (Dynamic Random Access Memory) having 1T-1C (One Transistor-One Capacitor) as a basic device (cell). Despite successful process scaling, DRAM has recently encountered the following limitations. First, as the size of a storage capacitor that stores data in DRAM is reduced, the amount of charge stored in a unit cell is reduced to the level of a charge of hundreds of electrons. Second, as the interval between adjacent memory devices decreases, the intensity of interference to unselected cells increases even when adjacent memory cells are selected, and thus the charge of the memory cells is lost and the probability of data errors increases. has increased The RH (Row Hammer) problem caused by this limitation causes a problem in terms of the reliability of DRAM. For example, concerns about the possibility of hackers using RH to cause the entire computer system to fall into Denial of Service (DoS), that is, the possibility of a security problem, have been raised throughout the semiconductor-related industry. Accordingly, efforts to prevent RH problems are continuing in a wide range of areas including DRAM manufacturers and CPU (Central Processing Unit) companies.

RH에 대한 해결 방법은 SW(Software)적인 방법과 HW(Hardware)적인 방법으로 나뉠 수 있는데, 이하 종래의 기술 및 본 발명은 HW적인 방법에 집중한다. HW적인 방법으로는 확률적인(stochastic) 대응 및 결정론적(deterministic) 대응이 있는데, 전자는 RH에 따른 데이터 오류의 발생 가능성을 확률적으로 감소시키고, 후자는 데이터 오류의 발생 가능성을 완전히 제거하는 것을 목표로 한다. 이하, HW에 기반하는 결정론적 대응에 대하여 설명한다. The solution to RH can be divided into a SW (Software) method and a HW (Hardware) method. Hereinafter, the prior art and the present invention focus on the HW method. HW methods include stochastic correspondence and deterministic correspondence. The former probabilistically reduces the probability of data errors according to RH, and the latter completely eliminates the possibility of data errors. aim for Hereinafter, a deterministic response based on HW will be described.

하나의 행(row)이 집중적으로 개방(open, Activate에 해당)되는 경우(이러한 행을 이하 hot row로 표기), 인접 행에 RH가 발생할 수 있다. 집중 접근(access)된 hot row의 경우, DRAM의 동작 특성에 따라 해당 행에 대한 닫음(close, Precharge에 해당)을 수행할 때 셀에 데이터를 다시 써 주기 때문에 전하 수준이 원복될 수 있다. 하지만 hot row의 이웃 행의 경우, hot row로부터 받은 간섭에 따라 전하가 조금씩 손실됨에도 이를 원복시킬 수 있는 방법이 없기 때문에 궁극적으로는 데이터가 유실에 따른 오류가 발생할 수 있다. 여기서, hot row는 공격을 한다는 의미에서 공격자 행(이하 aggressor row)이라고 하고 인접한 행은 공격을 당한다는 의미에서 희생자 행(이하 victim row)이라고 표현한다. 하나의 hot(=aggressor) row에 대해 2 개의 victim row가 존재하나, hot row가 처음 또는 마지막에 위치하는 행인 경우 victim row는 1 개일 수 있다.When one row is intensively opened (corresponding to open or Activate) (these rows are hereinafter referred to as hot rows), RH may occur in adjacent rows. In the case of a hot row that has been intensively accessed, the charge level may be restored because data is written back to the cell when the row is closed (corresponding to precharge) depending on the operating characteristics of the DRAM. However, in the case of the neighboring row of the hot row, even though the charge is lost little by little due to the interference received from the hot row, there is no way to restore it, so ultimately an error may occur due to data loss. Here, the hot row is called the aggressor row in the sense of attack, and the adjacent row is called the victim row (hereafter, the victim row) in the sense of being attacked. There are two victim rows for one hot (= aggressor) row. However, if the hot row is the first or last row, there can be only one victim row.

DRAM은 전하를 저장하는 저장 캐패시터의 내부 노드에서 누설 전류(leakage current)가 일정 수준 이하로 제어되도록 특별한 첨단 공정을 이용하여 제조된다. 그럼에도 누설전류가 여전히 존재하여, 대량의 DRAM 셀들 전체에 대하여 통상 가우시안(Gaussian) 분포를 가지므로, 약한 셀(weak cell)의 경우는 빨리, 강한 셀(strong cell)의 경우는 천천히 전하가 유실될 수 있다. 이러한 전하 유실을 방지하기 위해 DRAM은 64 ms 주기로 모든 셀들의 데이터를 읽어서 다시 써 주는데, 이를 리프레쉬(refresh)라고 한다. 이러한 리프레쉬 기준을 만족하지 못하는 아주 약한 셀은 테스트를 이용하여 검출되고, DRAM 내에 추가로 존재하는 여유 셀(redundant cell)을 이용하여 건강한 셀로 대치(이를 repair라고 함)된다. 통상 7.8 μs에 한 번씩 이러한 Refresh 명령이 수행되므로 64 ms 주기 동안 8 K(K는 210에 해당)번의 Refresh 명령이 수행될 수 있다. Refresh 명령을 한번 수행하기 위해 소모되는 시간은 DRAM의 종류에 따라 상이하나 수백 ns 수준이다. RH 문제는 이러한 주기적인 리프레쉬로 감당할 수 없는 수준의 누설전류가 발생하는 상태이다. RH에 따른 누설전류 문제를 해결하기 위해 victim row를 찾은 후, 찾아진 victim row에 대해 추가적인 Refresh 명령을 수행함으로써 유실된 전하량이 회복될 수 있도록 하여야 한다.DRAM is manufactured using a special advanced process so that the leakage current in the internal node of the storage capacitor that stores the charge is controlled below a certain level. Even so, leakage current is still present, and since it usually has a Gaussian distribution for all of the bulk DRAM cells, the charge is lost quickly in the case of a weak cell and slowly in the case of a strong cell. can In order to prevent such charge loss, DRAM reads and rewrites data from all cells at a cycle of 64 ms, which is called refresh. A very weak cell that does not satisfy the refresh criterion is detected using a test, and is replaced with a healthy cell using a redundant cell additionally present in the DRAM (referred to as repair). Normally, this Refresh command is performed once every 7.8 μs, so 8 K (K is equivalent to 2 10 ) refresh commands can be executed during a period of 64 ms. The time consumed to execute the Refresh command once varies depending on the type of DRAM, but is on the order of several hundred ns. The RH problem is a state in which leakage current that cannot be tolerated by such periodic refresh occurs. To solve the problem of leakage current according to RH, after finding the victim row, an additional Refresh command is executed on the found victim row so that the amount of charge lost can be recovered.

따라서, 추가적인 리프레쉬에서는, 먼저 hot row를 검출하고, 다음 인접한 victim row(보통 2 개)에 대해 Refresh 명령이 수행된다. Hot row를 검출하기 위해, 행을 개방하는 명령인 Activate 명령이 행별로 카운트된 후, 행별 카운트된 값이 DRAM 공정을 기반으로 결정되는 특정 임계치(이하 TRR_Threshold)와 비교된다. 특정 임계치에 도달한 hot row에 인접한 victim row에 대해 Refresh 명령이 수행되는데, 이는 주기적인 리프레쉬와 구분하여 TRR(Targeted Row Refresh) 명령으로 표현된다. Therefore, in the additional refresh, the hot row is detected first, and the Refresh command is performed on the next adjacent victim row (usually two). To detect a hot row, after the Activate command, which is a command to open a row, is counted by row, the counted value for each row is compared with a specific threshold (hereinafter, TRR_Threshold) determined based on the DRAM process. A Refresh command is performed on the victim row adjacent to the hot row that has reached a specific threshold, and this is expressed as a TRR (Targeted Row Refresh) command to distinguish it from periodic refresh.

한편, 공정에 기반하여 결정되는 RH_Threshold와 Activate 명령을 카운트하여 TRR을 발생시키는 기준이 되는 TRR_Threshold는 상이할 수 있다. 예를 들어, 해커가 DRAM의 위상(topology)을 파악한 후, aggressor row 2 개가 하나의 victim row를 양측에서 공격하도록 할 수 있으므로(two-sided RH로 표현함), 이러한 공격에 대비하기 위해 RH_Threshold를 반으로 나눈 값이 TRR Threshold로 설정될 수 있다. 통상 'TRR_Threshold = RH_Threshold/N(N은 자연수)'으로 설정된다. Two-sided RH를 고려한다면 N=2이나, 추가적인 다른 영향까지 고려하면 N은 더 큰 값일 수 있다.Meanwhile, RH_Threshold, which is determined based on the process, and TRR_Threshold, which is a criterion for generating TRR by counting the Activate command, may be different. For example, after a hacker understands the DRAM topology, two aggressor rows can cause one victim row to be attacked from both sides (expressed as two-sided RH). A value divided by can be set as the TRR Threshold. Normally, 'TRR_Threshold = RH_Threshold/N (N is a natural number)' is set. If two-sided RH is considered, N=2, but considering other additional influences, N may be a larger value.

RH에 대처하기 위해, 도 10에 예시된 바와 같이, hot row 카운팅 및 victim row 리프레쉬의 두 기능을 호스트(1050)의 CPU 내부에 위치하는 MC(Memory Controller)에서 수행하는 방식이 존재한다(특허문헌 1 참조). 이러한 방식은 우선 victim row의 주소가 부정확하여 확률적으로만 RH에 대한 방어가 가능하다는 문제를 갖는다. TRR은 주요 DRAM 제조사로부터 제공되는, DRAM 내부에서 어떤 위상에 기반하여 특정 행에 접근할 수 있는지에 대한 기본적인 정보를 이용하여 수행될 수 있다(예컨대, TRR은 victim row의 주소를 제공하며 Activate/Precharge 명령의 조합으로 구현될 수 있다). 그러나, 대부분의 DRAM이 전술한 바와 같은 repair를 수행하고, 이때 인접한 행의 주소가 기본 위상에 따른 설정과 상이하게 변동되는 경우가 대부분이므로 호스트(1050)가 메모리 서브시스템(1000) 측으로 제공하는 TRR 명령이 인접 victim row를 제대로 지정하지 못할 수 있다. 확률적으로만 RH에 대한 방어가 가능하므로, 이 방식에서 호스트(1050)가 제공하는 명령은 유사 TRR, 즉 pTRR(Pseudo-TRR)로 표현된다. In order to cope with RH, as illustrated in FIG. 10 , there is a method in which the MC (Memory Controller) located inside the CPU of the host 1050 performs two functions of hot row counting and victim row refreshing (Patent Document) see 1). First of all, this method has a problem that it is possible to protect against RH only probabilistically because the address of the victim row is incorrect. TRR can be performed using basic information on which topology can access a specific row in DRAM provided by major DRAM manufacturers (eg, TRR provides the address of the victim row and Activate/Precharge may be implemented as a combination of commands). However, since most DRAMs perform the repair as described above, in most cases, the address of an adjacent row is changed differently from the setting according to the basic phase, so the TRR provided by the host 1050 to the memory subsystem 1000 side The command may not correctly specify the adjacent victim row. Since protection against RH is possible only in a probabilistic manner, the command provided by the host 1050 in this method is expressed as pseudo-TRR, that is, pTRR (Pseudo-TRR).

또한, 호스트(1050)의 CPU 내에서 MC가 차지하는 면적이 과도해질 수 있다는 문제가 존재한다. Hot row 카운팅 및 victim row 리프레쉬의 과정은 통상 DRAM의 구성단위인 뱅크(bank)별로 수행되므로, DRAM의 고집적화에 따라 하나의 MC가 감당해야 하는 뱅크의 개수가 증가하여 CPU 내 면적 비중이 과도해질 수 있다. 예를 들어, MC의 입장에서 DDR5(Double Data Rate 5)에 대하여 #Channel, #DIMM, #Rank, #Logical Rank, #Bank Group 및 #Bank의 곱에 해당하는 뱅크가 존재할 수 있다(#은 개수를 의미함). CPU에 포함되는 코어(core)의 개수가 증가는 근래의 추세에서, CPU 면적이 RH용 회로를 수용하는 것이 점점 어려워질 수 있다.In addition, there is a problem that the area occupied by the MC in the CPU of the host 1050 may become excessive. Since the hot row counting and victim row refresh processes are usually performed for each bank, which is the constituent unit of DRAM, the number of banks that one MC has to handle increases with the high density of DRAM, resulting in an excessive portion of the CPU area. there is. For example, from the MC's point of view, for DDR5 (Double Data Rate 5), there may be banks corresponding to the product of #Channel, #DIMM, #Rank, #Logical Rank, #Bank Group, and #Bank (# is the number of banks). means). In recent trends in the increase in the number of cores included in the CPU, it may become increasingly difficult for the CPU area to accommodate the circuit for RH.

RH에 대처하기 위한 다른 방식으로, 도 11에 예시된 바와 같이, hot row 카운팅 및 victim row 리프레쉬의 두 기능이 메모리 서브시스템(1100)의 DRAM 내부 측으로 이동된 방식이 고려될 수 있다. 이 방식은, DRAM 제조사는 자사의 RH 공정 특성에 맞춤화된 RH 대책을 수립할 수 있고, 도 10의 예시와 비교하여 하나의 DRAM이 감당하는 TRR 블록의 개수가 감소되며, 행 repair에 따른 인접 행의 주소 변화를 반영하여 물리적으로 실제 인접한 victim row에 대해 TRR이 수행될 수 있다는 장점을 갖는다. As another way to cope with RH, as illustrated in FIG. 11 , a way in which the two functions of hot row counting and victim row refresh are moved into the DRAM internal side of the memory subsystem 1100 may be considered. In this way, DRAM manufacturers can establish RH countermeasures customized to their RH process characteristics, and compared to the example of FIG. 10 , the number of TRR blocks covered by one DRAM is reduced, and adjacent rows according to row repair It has the advantage that TRR can be performed on the physically adjacent victim row by reflecting the address change of

하지만, 이 방식은 에너지 소비 관점에서 문제를 갖는다. 예컨대, RDIMM(Registered Dual In-line Memory Module) 또는 LRDIMM(Load Reduced DIMM)의 경우, 하나의 랭크는 복수의 DRAM으로 구성되는데 일반적으로 이때 이용하는 행 주소(row address)가 동일하다. 따라서, 복수의 DRAM이 각각이 hot row 카운팅이라는 동일한 작업을 진행하는 상황이 발생할 수 있다. 하나의 DRAM이 전체 DRAM들에게 자신의 상황을 공지(broadcast)하여 중복 작업에 따른 에너지 낭비를 감소시킬 수는 있으나, 이를 위해 모듈 상에 DRAM 간 소통을 위한 버스(bus)를 필요로 하고, 모듈 관점에서 이또한 실리콘 면적(silicon area)의 낭비를 유발한다. 게다가 공지가 가능하더라도 리프레쉬 주기에 대한 동기화(synchronization)가 동반되어야 하는데, DRAM 제품별로 리프레쉬 주기 또는 정책들이 상이할 수 있으므로 동기화가 어려울 수 있다. However, this method has a problem in terms of energy consumption. For example, in the case of a Registered Dual In-line Memory Module (RDIMM) or a Load Reduced DIMM (LRDIMM), one rank is composed of a plurality of DRAMs, and the row addresses used in this case are generally the same. Accordingly, a situation may occur in which a plurality of DRAMs each perform the same operation of hot row counting. One DRAM can broadcast its status to all DRAMs to reduce energy waste due to redundant work, but for this, a bus for communication between DRAMs is required on the module, and the module From a point of view this also leads to a waste of silicon area. In addition, even if notification is possible, synchronization of the refresh cycle must be accompanied, and since the refresh cycle or policies may be different for each DRAM product, synchronization may be difficult.

결국, 도 11에 예시된 방식에 있어서, DRAM 다이(die)별로 불량 행이 상이하고, 그에 따라 repair 정보가 상이하므로, victim row 리프레쉬 기능이 별도로 존재하는 것이 장점이 있으나, hot row 카운팅 기능은 불필요하게 중복된 동작을 수행하느라 에너지와 실리콘 면적을 낭비한다는 단점을 발생시킨다. After all, in the method illustrated in FIG. 11 , since defective rows are different for each DRAM die and repair information is different accordingly, it is advantageous to have a separate victim row refresh function, but the hot row counting function is unnecessary It causes a disadvantage of wasting energy and silicon area to perform redundant operations.

전술한 바와 같은 문제를 극복하기 위해, 도 12에 예시된 바와 같은 RH 대처 방식(특허문헌 2 및 특허문헌 3)이 존재한다. 이 방식에서는, 메모리와 호스트(150) CPU 간의 버퍼(예컨대, (L)RDIMM에 포함된 RCD((Registering Clock Driver))가 메모리 서브시스템(1100)에 존재하는 경우, 버퍼에서 hot row 카운팅을 수행함으로써, 도 10 및 도 11에 예시된 방식에 따른 문제에 대한 대처가 가능하다. 그러나, 이 방식은 우선 동작 과정에서 DRAM 명령이 충돌할 수 있다는 문제를 갖는다. TRR 명령 또한 RCD에서 수행되기 때문에 RCD가 특정 뱅크에 TRR 명령을 전달할 때, 호스트(150)가 해당 뱅크에 대한 접근을 원하는 경우 RCD와 호스트(150)의 명령 간에 충돌이 발생할 수 있다. In order to overcome the above-described problems, there is a method for coping with RH as illustrated in FIG. 12 (Patent Document 2 and Patent Document 3). In this method, when a buffer between the memory and the host 150 CPU (eg, RCD (Registering Clock Driver) included in (L)RDIMM) exists in the memory subsystem 1100, hot row counting is performed in the buffer By doing so, it is possible to deal with the problem according to the schemes illustrated in Figs. 10 and 11. However, this scheme has a problem that DRAM commands may collide during operation. When sending a TRR command to a specific bank, if the host 150 wants to access the bank, a conflict may occur between the commands of the RCD and the host 150 .

또한, 이 방식은 TRR을 수행하기 위해 모듈에 포함된 DRAM 각각의 repair 정보가 RCD에 제공되어야 한다는 문제를 갖는다. Repair 정보는 모듈 제작 시점에 RCD 내부의 메모리에 저장될 수 있다. 그러나, 이를 위해서 repair 정보가 모두 기록될 수 있는 비휘발성 메모리(non-volatile memory)가 RCD 내부에 존재해야 하고, 매번 Activate 명령이 들어올 때마다 비휘발성 메모리를 검색(scanning)하여 실제 물리적으로 인접한 victim row를 찾는 연산 회로도 포함되어야 하는데, 이들 모두 실리콘 면적을 증가시키는 요인이 될 수 있다. In addition, this method has a problem that repair information of each DRAM included in the module must be provided to the RCD in order to perform TRR. Repair information may be stored in a memory inside the RCD at the time of module manufacturing. However, for this purpose, a non-volatile memory in which all repair information can be recorded must exist inside the RCD, and the non-volatile memory is scanned every time the Activate command is received to physically adjacent victims. An arithmetic circuit to find a row must also be included, all of which can be a factor in increasing the silicon area.

모듈 제작 시점이 아니라 전원을 켤 때마다 기설정된 절차(protocol)에 따라 repair 정보를 DRAM 각각에서 RCD 측으로 전달하는 방식도 가능하나, 통상의 모듈인 경우 DRAM이 RCD 측으로 정보를 직접 전달할 수 있는 방법이 없고, 호스트가 이용되어야 한다. 또한 PPR(Post-Package Repair)이 수행되는 경우, RCD가 이를 탐지(snooping)하여 갱신된 repair 정보를 RCD 내부의 비휘발성 메모리에 프로그램해야 하는데 정상 동작 중에는 이것이 불가할 수 있다(예를 들어, 파운드리(foundry) 업체에서 제공하는 비휘발성 메모리 IP(Intellectual Property) 중 일부는 프로그램 시에 고전압을 필요로 하거나, 초기 모듈 제작 과정이 아닌 정상 동작 시에는 프로그램하는 것이 불가할 수도 있다).It is also possible to transmit repair information from each DRAM to the RCD side according to a preset protocol whenever the power is turned on instead of at the time of module manufacturing. No, the host must be used. In addition, when PPR (Post-Package Repair) is performed, the RCD detects (snooping) it and programs the updated repair information in the non-volatile memory inside the RCD, but this may not be possible during normal operation (eg, foundry (Foundry) Some of the non-volatile memory IP (Intellectual Property) provided by manufacturers require high voltage for programming, or programming may not be possible during normal operation other than during the initial module manufacturing process).

메모리 서브시스템(1100)에서 RH 대처 기능을 수행함에 있어서, 도 13에 예시된 바와 같이, TRR은 DRAM 내부에서 수행되고 hot row 카운팅만 RCD에서 수행되는 방식(비특허문헌 1 참조)이 존재한다. 이 방식에서는 TRR이 victim row의 주소를 제공하는 것과 달리 RCD가 hot row의 주소를 DRAM 측에 제공하므로, 이 방식에 따른 리프레쉬는 ARR(Adjacent Row Refresh)로 명칭된다. ARR을 이용하는 방식에서는, 제공하는 주소에 해당하는 행을 리프레쉬하는 대신, DRAM 각각이 내부 repair 정보를 이용하여 제공되는 행 주소의 인접(adjacent) 행을 찾은 후 Refresh 명령을 수행한다. 이 방식은 복수의 DRAM에 의한 동일한 작업의 중복 수행에 따른 에너지의 낭비를 감소시키고, DRAM의 사이즈를 감소시킴으로써 가격의 하락을 유도하고 공정 미세화를 간접적으로 지원한다는 장점을 갖는다. In performing the RH coping function in the memory subsystem 1100, as illustrated in FIG. 13 , there is a method in which TRR is performed inside the DRAM and only hot row counting is performed in the RCD (refer to Non-Patent Document 1). In this method, unlike the TRR providing the address of the victim row, the RCD provides the address of the hot row to the DRAM side. In the method using ARR, instead of refreshing the row corresponding to the provided address, each DRAM uses internal repair information to find an adjacent row of the provided row address and then executes the Refresh command. This method has the advantages of reducing energy wastage due to redundant performance of the same operation by a plurality of DRAMs, reducing the size of DRAM, inducing a decrease in price, and indirectly supporting process miniaturization.

하지만, ARR을 이용하는 방식은, 우선 hot row 카운팅이 RCD에서 수행되는 경우, 도 10에 예시된 바와 같이 pTRR이 유발했던 것과 동일한 문제가 갖는다. Hot row 카운팅이 뱅크 단위로 수행되기 때문에, 하나의 RCD 내부에는 #Channel(#은 개수를 의미함), #Rank, #Logical Rank, #Bank Group 및 #Bank의 곱에 해당하는 hot row 카운터가 존재해야 한다. 예컨대, 표 1에 예시된 케이스 1에 해당하는 DRAM을 포함하는 모듈의 경우, 2×2×16×8×4 = 2,048 개의 hot row 카운터가 필요함을 의미하며, 이는 기존 RCD의 실리콘 면적을 고려했을 때 구현 불가능한 수준이다. However, the method using ARR has the same problem as that caused by pTRR as illustrated in FIG. 10 when hot row counting is first performed in RCD. Since hot row counting is performed in units of banks, there is a hot row counter corresponding to the product of #Channel (# means number), #Rank, #Logical Rank, #Bank Group, and #Bank inside one RCD. Should be. For example, in the case of a module including DRAM corresponding to Case 1 illustrated in Table 1, 2×2×16×8×4 = 2,048 hot row counters are required, which would have taken into account the silicon area of the conventional RCD. when it is impossible to implement.

또한, 이 방식은, 동일한 주소를 갖는 행이 DRAM 개수만큼 존재함에도 DRAM별 주기적인 리프레쉬가 동기화되어 있지 않기 때문에, RCD의 면적을 증대시킬 수 있다는 문제를 갖는다. 주기적인 리프레쉬가 hot row 카운터의 개수를 어느 수준 이하로 제한하므로, 작은 크기의 RH 방지회로를 만들 수 있다는 사실이 알려져 있다(비특허문헌 1 참조). 그러나, 각각의 DRAM에서 동일한 주소를 갖는 행에 대해 리프레쉬 시점이 최대 64 ms까지 어긋날 수 있고, 이는 RH의 대상으로서 감시되어야 하는 행의 개수를 증가시키는 요인이 되어, 결과적으로 RCD의 면적을 증대시킬 수 있다.In addition, this method has a problem in that the area of the RCD can be increased because periodic refresh for each DRAM is not synchronized even though there are as many rows having the same address as the number of DRAMs. Since periodic refresh limits the number of hot row counters to a certain level or less, it is known that a small sized RH prevention circuit can be made (refer to Non-Patent Document 1). However, in each DRAM, the refresh time may deviate up to 64 ms for a row having the same address, which increases the number of rows to be monitored as a target of RH, which in turn increases the area of the RCD. can

또한, 이 방식은 공정 특성인 RH_Threshold에 의존한다는 문제를 갖는다. RH_Threshold는 DRAM 제조사별로 상이할 뿐만 아니라 대외적으로 알릴 수 없는 비밀이므로, RH_Threshold에 대한 정확한 정보가 부재한 상태에서 RCD 제조사 측은 hot row 카운팅 기능을 구현해야 할 수도 있다.Also, this method has a problem in that it depends on RH_Threshold, which is a process characteristic. RH_Threshold differs by DRAM manufacturer and is a secret that cannot be disclosed externally. In the absence of accurate information on RH_Threshold, the RCD manufacturer may need to implement a hot row counting function.

마지막으로, 이 방식도 동작 과정에서 DRAM 명령이 충돌할 수 있다는 문제를 갖는다. ARR을 이용하는 방식에서도, RCD가 DRAM의 특정 뱅크 측으로 행 주소 전체를 제공하는 명령을 내려야 하는데, 해당 뱅크에 대한 접근을 원하는 경우 RCD와 호스트(150)의 명령 간에 충돌이 발생할 수 있다. 이러한 명령 충돌의 회피를 위해서는 RCD 업체와 DRAM 제조사 간의 규약뿐만 아니라 CPU 업체까지 포함하여 전체 표준의 변경이 요구될 수 있다.Finally, this method also has a problem that DRAM commands may collide during operation. Even in the method using the ARR, the RCD must issue a command to provide the entire row address to a specific bank of the DRAM. However, when access to the corresponding bank is desired, a conflict may occur between the command of the RCD and the host 150 . In order to avoid such command conflicts, it may be necessary to change not only the rules between RCD manufacturers and DRAM manufacturers, but also the entire standards including CPU manufacturers.

따라서, 이러한 문제점을 해결하는 것이 가능한 메모리 버퍼에 기반하는 RH 대처 방안을 필요로 한다.Therefore, there is a need for a countermeasure against RH based on a memory buffer capable of solving such a problem.

특허문헌 1: 미국 특허번호 US 9117544 B2 (Row hammer refresh command, 2015.08.25, 등록).Patent Document 1: US Patent No. US 9117544 B2 (Row hammer refresh command, 2015.08.25, registered). 특허문헌 2: 한국 출원번호 KR 10-2018-0111012 (Memory module including register clock driver detecting address frequently accessed, 2018.09.17, 출원).Patent Document 2: Korean Application No. KR 10-2018-0111012 (Memory module including register clock driver detecting address frequently accessed, 2018.09.17, filed). 특허문헌 3: 미국 출원번호 US 2020-0090729 (Memory module including register clock driver detecting address frequently accessed, 2019.03.28, 출원).Patent Document 3: US Application No. US 2020-0090729 (Memory module including register clock driver detecting address frequently accessed, 2019.03.28, filed).

비특허문헌 1: E. Lee, I. Kang, S. Lee, and J. H. Ahn, TWiCe: Preventing Row-hammering by Exploiting Time Window Counters. ISCA, 2019.Non-Patent Document 1: E. Lee, I. Kang, S. Lee, and J. H. Ahn, TWiCe: Preventing Row-hammering by Exploiting Time Window Counters. ISCA, 2019. 비특허문헌 2: "DDR5 Full Spec Draft Rev0.1". JEDEC committee JC42.3. December 4, 2017. Retrieved July 19, 2020.Non-Patent Document 2: "DDR5 Full Spec Draft Rev0.1". JEDEC committee JC42.3. December 4, 2017. Retrieved July 19, 2020.

본 개시는, 호스트, 복수의 DRAM 및 메모리 버퍼(예컨대, RCD(Registering Clock Driver))를 포함하는 메모리 시스템에 있어서, 특정 행(row)을 집중적으로 Activate하여 인접 행의 데이터가 유실되는 RH(Row Hammer)에 대처하기 위해, DRAM을 구성하는 행별로 Activate 횟수를 카운트하되, 메모리 버퍼가 하위 비트를 카운트하여 발생한 캐리(carry)를 DRAM 측으로 전달하고, DRAM이 캐리를 기반으로 상위 비트를 카운트하여 집중 접근되는 행을 검출함으로써 메모리 신뢰성(reliability)을 개선하는 방법 및 장치를 제공하는 데 주된 목적이 있다. According to the present disclosure, in a memory system including a host, a plurality of DRAMs, and a memory buffer (eg, a Registering Clock Driver (RCD)), Row (Row RH) in which data of an adjacent row is lost by intensively activating a specific row Hammer), the number of activations is counted for each row constituting DRAM, but the memory buffer counts the lower bits and delivers the carry to the DRAM side, and the DRAM counts the upper bits based on the carry and concentrates It is a primary object to provide a method and apparatus for improving memory reliability by detecting a row being accessed.

본 개시의 실시예에 따르면, DRAM(Dynamic Random Access Memory), 및 호스트(host)와 상기 DRAM 간에 위치하는 메모리 버퍼(buffer)를 포함하는 메모리 서브시스템(subsystem) 상에서, 상기 호스트로부터 제공되는 주소(address) 정보에 기초하여 특정된 상기 DRAM 상의 하나의 행(row)에 대해, 상기 하나의 행에 접근(access)하는 Activate 명령의 발생 횟수를 카운트(count)하여 상기 DRAM의 신뢰성(reliability)을 개선하는 방법에 있어서, 상기 메모리 버퍼가 하위 카운터를 이용하여 상기 발생 횟수의 하위 비트(lower bit) 그룹에 대한 카운팅을 수행하는 과정; 상기 메모리 버퍼가 상기 하위 카운터에 의해 생성된 하위 비트 그룹에 대한 캐리(carry)를 상기 DRAM에게 전달하는 과정; 및 상기 DRAM이 상기 캐리를 기반으로 상위 카운터를 이용하여 상기 발생 횟수의 상위 비트(higher bit) 그룹에 대한 카운팅을 수행하는 과정을 포함하는 것을 특징으로 하는 방법을 제공한다. According to an embodiment of the present disclosure, on a memory subsystem including a dynamic random access memory (DRAM) and a memory buffer located between a host and the DRAM, an address provided from the host ( address) for one row on the DRAM specified based on information, counting the number of occurrences of an Activate command to access the one row improves the reliability of the DRAM What is claimed is: 1. A method comprising: counting, by the memory buffer, a lower bit group of the number of occurrences using a lower counter; transferring, by the memory buffer, a carry for the low-order bit group generated by the low-order counter to the DRAM; and performing, by the DRAM, counting on a higher bit group of the number of occurrences using an upper counter based on the carry.

본 개시의 다른 실시예에 따르면, 상기 하나의 행에 대해 상기 상위 비트 그룹에 대한 카운팅을 수행한 값이 기설정된 제1 임계치와 동일한 경우, 상기 DRAM이 상기 하나의 행에 물리적으로 인접한 행을 찾은 후, 상기 인접한 행에 대해 Refresh 명령을 수행하는 과정을 더 포함하는 것을 특징으로 하는 방법을 제공한다. According to another embodiment of the present disclosure, when the value obtained by performing the counting of the upper bit group with respect to the one row is equal to a predetermined first threshold, the DRAM finds a row physically adjacent to the one row Then, there is provided a method characterized by further comprising the step of performing a Refresh command on the adjacent row.

본 개시의 다른 실시예에 따르면, DRAM(Dynamic Random Access Memory), 및 호스트(host)와 상기 DRAM 간에 위치하는 메모리 버퍼(buffer)를 포함하는 메모리 서브시스템(subsystem)에 있어서, 상기 메모리 버퍼에 포함되어, 하위 비트(lower bit) 그룹에 대한 카운팅을 수행하는 하위 카운터, 여기서, 상기 하위 카운터는, 상기 호스트로부터 제공되는 주소(address) 정보에 기초하여 특정된 상기 DRAM 상의 하나의 행(row)에 대해, 상기 하나의 행에 접근(access)하는 Activate 명령의 발생 횟수 중 상기 하위 비트 그룹에 대한 카운팅을 수행하여 캐리(carry)를 생성함; 및 상기 DRAM에 포함되어, 상기 메모리 버퍼로부터 전달된 캐리를 기반으로 상기 발생 횟수의 상위 비트(higher bit) 그룹에 대한 카운팅을 수행하는 상위 카운터를 포함하는 것은 특징으로 하는 메모리 신뢰성(reliability) 개선 장치를 제공한다. According to another embodiment of the present disclosure, in a memory subsystem including a dynamic random access memory (DRAM) and a memory buffer positioned between a host and the DRAM, the memory buffer includes A lower counter performing counting on a lower bit group, wherein the lower counter is in one row on the DRAM specified based on address information provided from the host , generating a carry by performing counting on the lower bit group among the number of occurrences of the Activate command to access the one row; and an upper counter included in the DRAM and configured to count a higher bit group of the number of occurrences based on the carry transferred from the memory buffer. provides

본 개시의 다른 실시예에 따르면, 상기 DRAM은 제어기를 더 포함하되, 상기 제어기는 상기 하나의 행에 대해 상기 상위 비트 그룹에 대한 카운팅을 수행한 값이 기설정된 제1 임계치와 동일한 경우, 상기 하나의 행에 물리적으로 인접한 행을 찾은 후, 상기 인접한 행에 대해 Refresh 명령을 수행하는 것을 특징으로 하는 메모리 신뢰성 개선 장치를 제공한다.According to another embodiment of the present disclosure, the DRAM further includes a controller, wherein the controller is configured to: when a value obtained by counting the upper bit group for the one row is equal to a preset first threshold, the one There is provided an apparatus for improving memory reliability, characterized in that after finding a row physically adjacent to a row of , a Refresh command is performed on the adjacent row.

이상에서 설명한 바와 같이 본 실시예에 따르면, 호스트, 복수의 DRAM 및 메모리 버퍼(예컨대, RCD)를 포함하는 메모리 시스템에 있어서, DRAM을 구성하는 행별로 Activate 횟수를 카운트하되, 메모리 버퍼가 하위 비트를 카운트하여 발생한 캐리를 DRAM 측으로 전달하고, DRAM이 캐리를 기반으로 상위 비트를 카운트하여 집중 접근되는 행을 검출하는 메모리 신뢰성 개선 방법 및 장치를 제공함으로써, RH 및 repair 정보 관련된 DRAM 제조사의 비밀을 유지한 채로 RH에 대처가 가능해지는 효과가 있다.As described above, according to this embodiment, in a memory system including a host, a plurality of DRAMs, and a memory buffer (eg, RCD), the number of activations is counted for each row constituting the DRAM, but the memory buffer receives the lower bit By providing a method and apparatus for improving memory reliability that transfers the counted carry to the DRAM side, and the DRAM counts the upper bit based on the carry and detects the row that is accessed intensively, the DRAM manufacturer related to RH and repair information is kept secret. It has the effect of being able to cope with RH while it is still there.

또한 본 실시예에 따르면, DRAM을 구성하는 행별로 Activate 횟수를 카운트하되, 메모리 버퍼가 하위 비트를 카운트하여 발생한 캐리를 DRAM 측으로 전달하고, DRAM이 캐리를 기반으로 상위 비트를 카운트하여 집중 접근되는 행을 검출하는 메모리 신뢰성 개선 방법 및 장치를 제공함으로써, RH에 대처를 위한 DRAM 측의 부담을 감소시키고, 메모리 시스템 전체가 소모하는 에너지 및 필요로 하는 실리콘 면적을 감소시키는 것이 가능해지는 효과가 있다.In addition, according to this embodiment, the number of activations is counted for each row constituting the DRAM, the memory buffer counts the lower bits and transfers the carry generated to the DRAM side, and the DRAM counts the upper bits based on the carry and the row to be accessed intensively By providing a method and apparatus for improving memory reliability for detecting RH, it is possible to reduce the burden on the DRAM side for coping with RH, and to reduce the energy consumed by the entire memory system and the required silicon area.

또한 본 실시예에 따르면, DRAM을 구성하는 행별로 Activate 횟수를 카운트하되, 메모리 버퍼가 하위 비트를 카운트하여 발생한 캐리를 DRAM 측으로 전달하고, DRAM이 캐리를 기반으로 상위 비트를 카운트하여 집중 접근되는 행을 검출하는 메모리 신뢰성 개선 방법 및 장치를 제공함으로써, RH에 대처하는 기존 방식이 갖는 호스트 명령 체계와의 충돌 문제를 해결하는 것이 가능해지는 효과가 있다.In addition, according to this embodiment, the number of activations is counted for each row constituting the DRAM, the memory buffer counts the lower bits and transfers the carry generated to the DRAM side, and the DRAM counts the upper bits based on the carry and the row to be accessed intensively By providing a method and apparatus for improving memory reliability for detecting

도 1은 본 개시의 일 실시예에 따른 메모리 시스템에 대한 개략적인 블록도이다.
도 2는 본 개시의 일 실시예에 따른 하위 카운터에 대한 개략적인 블록도이다.
도 3은 본 개시의 일 실시예에 따른 하위 카운터의 동작 중 CAM 히트를 개념적으로 나타내는 예시도이다.
도 4는 본 개시의 일 실시예에 따른 하위 카운터의 동작 중 CAM 미스를 개념적으로 나타내는 예시도이다.
도 5는 본 개시의 일 실시예에 따른 하위 카운터의 동작 중 주기적인 모니터링 과정을 개념적으로 나타내는 예시도이다.
도 6은 본 개시의 일 실시예에 따른 메모리 신뢰성 개선 방법에 대한 흐름도이다.
도 7은 DDR5 DRAM에 대한 간단한 타이밍도이다.
도 8은 본 개시의 다른 실시예에 따른 메모리 시스템에 대한 개략적인 블록도이다.
도 9는 본 개시의 다른 실시예에 따른 메모리 시스템에 대한 개략적인 블록도이다.
도 10은 RH 대처 기능을 CPU에서 수행하는 방식에 대한 개략적인 블록도이다.
도 11은 RH 대처 기능을 DRAM에서 수행하는 방식에 대한 개략적인 블록도이다.
도 12는 RH 대처 기능을 메모리 버퍼에서 수행하는 방식에 대한 개략적인 블록도이다.
도 13은 RH 대처 기능의 일부를 메모리 버퍼에서 수행하는 방식에 대한 개략적인 블록도이다.
1 is a schematic block diagram of a memory system according to an embodiment of the present disclosure.
2 is a schematic block diagram of a lower counter according to an embodiment of the present disclosure.
3 is an exemplary diagram conceptually illustrating a CAM hit during an operation of a lower counter according to an embodiment of the present disclosure.
4 is an exemplary diagram conceptually illustrating a CAM miss during operation of a lower counter according to an embodiment of the present disclosure.
5 is an exemplary diagram conceptually illustrating a periodic monitoring process during operation of a lower counter according to an embodiment of the present disclosure.
6 is a flowchart of a method for improving memory reliability according to an embodiment of the present disclosure.
7 is a simplified timing diagram for a DDR5 DRAM.
8 is a schematic block diagram of a memory system according to another embodiment of the present disclosure.
9 is a schematic block diagram of a memory system according to another embodiment of the present disclosure.
10 is a schematic block diagram of a method of performing an RH coping function in a CPU.
11 is a schematic block diagram of a method for performing a RH coping function in DRAM.
12 is a schematic block diagram of a method of performing an RH coping function in a memory buffer.
13 is a schematic block diagram of a method of performing a part of an RH coping function in a memory buffer.

이하, 본 발명의 실시예들을 예시적인 도면을 참조하여 상세하게 설명한다. 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 실시예들을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 실시예들의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Hereinafter, embodiments of the present invention will be described in detail with reference to exemplary drawings. In adding reference numerals to the components of each drawing, it should be noted that the same components are given the same reference numerals as much as possible even though they are indicated on different drawings. In addition, in the description of the present embodiments, if it is determined that a detailed description of a related well-known configuration or function may obscure the gist of the present embodiments, the detailed description thereof will be omitted.

또한, 본 실시예들의 구성요소를 설명하는 데 있어서, 제 1, 제 2, A, B, (a), (b) 등의 용어를 사용할 수 있다. 이러한 용어는 그 구성요소를 다른 구성요소와 구별하기 위한 것일 뿐, 그 용어에 의해 해당 구성요소의 본질이나 차례 또는 순서 등이 한정되지 않는다. 명세서 전체에서, 어떤 부분이 어떤 구성요소를 '포함', '구비'한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 '…부', '모듈' 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.Also, in describing the components of the present embodiments, terms such as first, second, A, B, (a), (b), etc. may be used. These terms are only for distinguishing the elements from other elements, and the essence, order, or order of the elements are not limited by the terms. Throughout the specification, when a part 'includes' or 'includes' a certain element, this means that other elements may be further included, rather than excluding other elements, unless otherwise stated. . In addition, the '... Terms such as 'unit' and 'module' mean a unit that processes at least one function or operation, which may be implemented as hardware or software or a combination of hardware and software.

첨부된 도면과 함께 이하에 개시될 상세한 설명은 본 발명의 예시적인 실시형태를 설명하고자 하는 것이며, 본 발명이 실시될 수 있는 유일한 실시형태를 나타내고자 하는 것이 아니다.DETAILED DESCRIPTION The detailed description set forth below in conjunction with the appended drawings is intended to describe exemplary embodiments of the present invention and is not intended to represent the only embodiments in which the present invention may be practiced.

본 실시예는 메모리 버퍼 기반 메모리 신뢰성(reliability) 개선 방법 및 장치에 관한 내용을 개시한다. 보다 자세하게는, 호스트(host), 복수의 DRAM 및 메모리 버퍼(예컨대, RCD(Registering Clock Driver))를 포함하는 메모리 시스템에 있어서, 특정 행(row)을 집중적으로 Activate하여 인접 행의 데이터가 유실되는 RH(Row Hammer)에 대처하기 위해, DRAM(Dynamic Random Access Memory)을 구성하는 행별로 Activate 횟수를 카운트하되, 메모리 버퍼가 하위 비트를 카운트하여 발생한 캐리(carry)를 DRAM 측으로 전달하고, DRAM이 캐리를 기반으로 상위 비트를 카운트하여 집중 접근되는 행을 검출함으로써 메모리 신뢰성을 개선하는 방법 및 장치를 제공한다.The present embodiment discloses a method and apparatus for improving memory reliability based on a memory buffer. More specifically, in a memory system including a host, a plurality of DRAMs, and a memory buffer (eg, a Registering Clock Driver (RCD)), the data of an adjacent row is lost by intensively activating a specific row. To cope with RH (Row Hammer), the number of activations is counted for each row constituting DRAM (Dynamic Random Access Memory), but the memory buffer counts the lower bits and transfers the carry to the DRAM side. A method and apparatus for improving memory reliability by counting high-order bits based on .

이하, DDR5 기준으로 RCD의 입장에서 DRAM의 사이즈와 관련된 용어 및 가정을 설명한다.Hereinafter, terms and assumptions related to the size of DRAM will be described from the standpoint of RCD based on DDR5.

RA(Row Address)는 DRAM에 포함된 메모리 셀 집합체의 단위인 뱅크의 행 주소를 나타낸다.RA (Row Address) represents a row address of a bank, which is a unit of an aggregate of memory cells included in DRAM.

CA(Column Address)는 뱅크의 열 주소를 나타낸다.CA (Column Address) represents the column address of the bank.

BA(Bank Address)는 BG(Bank Group)에 포함된 뱅크의 주소를 나타낸다.BA (Bank Address) indicates the address of the bank included in the BG (Bank Group).

BG는 복수의 뱅크를 포함한다.BG includes a plurality of banks.

DRAM 다이(die)는 복수의 BG를 포함한다.A DRAM die includes a plurality of BGs.

논리적 랭크(Logical Rank)는 복수의 DRAM 다이를 포함하며, CID(Chip Identifier) 또는 DID(Die ID)로 나타낸다. CID는 TSV(Through Silicon Via)를 이용하여 DRAM 칩들을 3DS(3 Dimensional Stack) 형태로 적층한 패키지에서 각 칩들에 대한 식별자이다. DID는 TSV를 사용하지 않고 두 개의 다이를 함께 패키징(packaging)한 경우, 각 다이에 대한 식별자로서, 2 개 다이까지 패키징이 가능하다.The logical rank includes a plurality of DRAM dies, and is represented by a Chip Identifier (CID) or a Die ID (DID). CID is an identifier for each chip in a package in which DRAM chips are stacked in a 3DS (3 dimensional stack) form using TSV (Through Silicon Via). DID is an identifier for each die when two dies are packaged together without using TSV, and packaging of up to two dies is possible.

DRAM 패키지는 통상 논리적 랭크까지 포함한다.A DRAM package typically includes up to a logical rank.

랭크(Rank)는 복수의 DRAM 칩을 포함하여, 8 바이트(또는 9 바이트) 출력을 생성하는 단위이다.A rank is a unit for generating an 8-byte (or 9-byte) output including a plurality of DRAM chips.

RCD의 입장에서 채널은 통상 2 개의 랭크를 포함한다.From the RCD's point of view, a channel usually includes two ranks.

DIMM(Dual In-line Memory Module)은 통상 2 개의 채널을 포함한다. 대부분의 DRAM의 동작은(즉, RCD의 제어는) 채널 간 독립적으로 이루어지므로, DDR5의 경우 RCD 내에 두 개의 동일한 제어 구조가 존재한다.A dual in-line memory module (DIMM) typically includes two channels. Since most DRAM operations (ie, RCD control) are performed independently between channels, in the case of DDR5, two identical control structures exist within the RCD.

이하, DRAM의 동작과 관련된 명령을 간략하게 설명한다.Hereinafter, commands related to the operation of the DRAM will be briefly described.

Activate 명령은 DRAM 측으로 하나의 뱅크에 대해 RA를 전달하여 해당 행을 개방하기 위한 명령이다.The Activate command is a command to open the row by transferring RA for one bank to the DRAM side.

Precharge 명령은 하나의 뱅크 내의 모두 행을 기설정된 값으로 채우기(charging)위한 명령이다. Precharge 명령은 신규 행에 대한 Read 명령 전에 수행되므로, 이전 행을 닫는(closing) 역할도 수행한다.The precharge command is a command for charging all rows in one bank with a preset value. Since the precharge command is executed before the Read command for a new row, it also closes the previous row.

Refresh 명령은 전하 유실을 방지하기 위해 일정 주기로 DRAM 내의 모든 셀들의 데이터를 읽어서 다시 써 주기 위한 명령이다. The Refresh command is a command to read and rewrite data of all cells in DRAM at regular intervals to prevent charge loss.

Read 명령은 하나의 뱅크 내의 개방된 행에 대해 CA를 전달하여 해당 셀의 데이터를 읽기 위한 명령이다.The Read command is a command to read the data of the cell by transferring the CA for an open row in one bank.

Write 명령은 하나의 뱅크 내의 개방된 행에 대해 CA를 전달하여 해당 셀에 데이터를 쓰기 위한 명령이다. The Write command is a command to write data to the corresponding cell by sending CA for an open row in one bank.

이하 도 1 및 도 2의 도시를 이용하여 RH에 대처함으로써 메모리 신뢰성을 개선하기 위한 방법이 구현되는 메모리 시스템을 설명한다.Hereinafter, a memory system in which a method for improving memory reliability by coping with RH is implemented will be described using the illustrations of FIGS. 1 and 2 .

도 1은 본 개시의 일 실시예에 따른 메모리 시스템에 대한 개략적인 블록도이다.1 is a schematic block diagram of a memory system according to an embodiment of the present disclosure.

도 1에 예시된 메모리 시스템 상에서 본 개시에 따른 메모리 신뢰성을 개선하는 방법이 수행된다. 메모리 시스템은 호스트(150) 및 메모리 서브시스템(100)을 포함하고, 메모리 서브시스템(100)은 메모리 버퍼(110, 예컨대, RCD, 이하 버퍼) 및 복수의 메모리(120, 이하 DRAM)을 포함한다. 호스트(150)는 버퍼(110)를 기반으로 접근하려는 주소를 포함한 Activate 명령을 전달하여 해당하는 DRAM(120) 내 해당 행을 활성화할 수 있다. DRAM의 행별로 Activate 횟수를 카운트함에 있어서, 버퍼(110)는 하위 비트를 카운트하여 발생한 캐리(carry)를 DRAM(120) 측으로 전달하고, DRAM(120)은 캐리를 기반으로 상위 비트를 카운트하여 집중 접근되는 행을 검출할 수 있다. A method of improving memory reliability in accordance with the present disclosure is performed on the memory system illustrated in FIG. 1 . The memory system includes a host 150 and a memory subsystem 100, wherein the memory subsystem 100 includes a memory buffer 110 (eg, RCD, hereinafter buffer) and a plurality of memories 120 (hereinafter DRAM). . The host 150 may activate the corresponding row in the DRAM 120 by transmitting an Activate command including the address to be accessed based on the buffer 110 . In counting the number of activations for each row of DRAM, the buffer 110 transfers the carry generated by counting the lower bits to the DRAM 120 side, and the DRAM 120 counts the upper bits based on the carry and concentrates The row being accessed can be detected.

행별로 Activate 횟수를 카운트하기 위해, 버퍼(110)는 Hot row 하위 카운터(112, 이하 하위 카운터)를 포함하고, DRAM(120)은 Hot row 상위 카운터(122, 이하 상위 카운터)를 포함한다. DRAM(120)은 TRR 제어기(124)를 더 포함하는데, TRR 제어기(124)는 특정 행에 해당하는 상위 카운터(122)의 값이 TRR_Threshold에 도달하면, 해당 행의 인접한 행(들)에 대한 추가적인 Refresh 명령을 수행한다. In order to count the number of activations per row, the buffer 110 includes a hot row lower counter 112 (lower counter), and the DRAM 120 includes a hot row upper counter 122 (lower counter hereinafter). The DRAM 120 further includes a TRR controller 124, which, when the value of the upper counter 122 corresponding to a specific row reaches TRR_Threshold, adds additional information to the adjacent row(s) of the corresponding row. Execute the Refresh command.

Activate 횟수를 카운트함에 있어서, 본 개시에 따른 버퍼(100) 상의 하위 카운터(112)는 TRR_Threshold(또는 ARR_Threshold, RH_Threshold)까지 카운트하는 것이 아니라 기설정된 값(예컨대 1,000, 이하 Lower_Threshold)까지 카운트하고, 그 값에 도달하여 하위 카운터(112)의 최상위 캐리가 발생되면, 이를 DRAM(120) 측으로 전달한다. DRAM(120) 상의 상위 카운터(122)는 hot row가 될 가능성이 있는 후보군에 포함되어 있는 행에 대해서만 TRR_Thrshold에 도달하는지 카운트할 수 있다. 전술한 바와 같이, 도 1에 도시된 본 개시는, 도 10 내지 도 13에 예시된 종래 기술과 달리, hot row 카운터의 전부가 아니라 일부만을 버퍼(110) 측에 구현한다.In counting the number of activations, the lower counter 112 on the buffer 100 according to the present disclosure does not count up to TRR_Threshold (or ARR_Threshold, RH_Threshold), but counts up to a preset value (eg, 1,000, lower_Threshold), and the value When , the highest carry of the lower counter 112 occurs, it is transferred to the DRAM 120 side. The upper counter 122 on the DRAM 120 may count whether the TRR_Thrshold is reached only for a row included in a candidate group that is likely to become a hot row. As described above, in the present disclosure illustrated in FIG. 1 , unlike the prior art illustrated in FIGS. 10 to 13 , not all of the hot row counter but only a part of the hot row counter is implemented on the buffer 110 side.

한편, 64 ms마다 주기적으로 수행되는 리프레쉬 때문에 hot row의 최대 개수가 제한되어 hot row가 될 수 있는 후보군도 제한될 수 있다. 따라서, 전체 카운팅이 DRAM(120) 내부에서 이루어지는 경우와 대비하여, 상위 카운터(122)가 동작하는 빈도수가 감소함에 따라 전력 소모를 감소시킬 수 있다. On the other hand, the maximum number of hot rows is limited because of the refresh that is performed periodically every 64 ms, and thus the candidate group that can become a hot row may be limited. Accordingly, compared to the case where the entire counting is performed inside the DRAM 120 , power consumption can be reduced as the frequency at which the upper counter 122 operates decreases.

상위 카운터(122)는 TRR_Threshold와 버퍼(110)에서 제공하는 캐리가 의미하는 Lower_Threshold(예컨대 1,000) 간의 차이를 카운트할 수 있는 RH 메모리를 포함하는 것으로 충분하다. 예를 들어, 버퍼(110)의 캐리가 1,000(~ 210)을 나타내고, TRR_Threshold는 100 K(~ 217)인 경우, 상위 카운터(122)는 0000001에서 1111111(~27) 까지 상위 비트 그룹을 카운트하면 된다. 만약 TRR_Threshold가 감소하면 hot row 후보의 개수가 증가할 수 있으므로 상위 카운터(122) 내 RH 메모리의 용량을 변화시킨다. 공정 특성인 RH_Threshold가 139 K 정도라면 hot row의 개수가 최대 20 개 정도인 것으로 알려져 있으므로(비특허문헌 1 참조), RH_Threshold가 절반으로 감소해도 hot row의 개수는 40 개가 된다. It is sufficient for the upper counter 122 to include an RH memory capable of counting the difference between the TRR_Threshold and the Lower_Threshold (eg, 1,000) that the carry provided by the buffer 110 means. For example, if the carry of the buffer 110 represents 1,000 (~ 2 10 ), and the TRR_Threshold is 100 K (~ 2 17 ), the upper counter 122 sets the upper bit group from 0000001 to 1111111 (~ 2 7 ). should be counted. If TRR_Threshold is decreased, the number of hot row candidates may increase, so the capacity of the RH memory in the upper counter 122 is changed. If the process characteristic RH_Threshold is about 139 K, it is known that the maximum number of hot rows is about 20 (see Non-Patent Document 1), so even if RH_Threshold is reduced by half, the number of hot rows becomes 40.

이상을 회로 측면에서 설명하면, 하나의 뱅크당, 상위 카운터(122)는 RA의 폭(width)에 해당하는 18 비트의 입력을 저장하기 위한, 크기가 40인 CAM(Content Addressable Memory), 및 이들 각각에 대한 8 비트 단위의 상위 비트 그룹 카운터 40 개(320 비트의 메모리에 해당)만 포함하면 된다. 또한, 여러 개의 뱅크를 결합하여 뱅크 이상의 단위에서 TRR 동작이 수행될 수도 있다. If the above is described in terms of the circuit, per one bank, the upper counter 122 is a CAM (Content Addressable Memory) having a size of 40 for storing an input of 18 bits corresponding to the width of the RA, and these You only need to include 40 high-order bit group counters (corresponding to 320 bits of memory) in units of 8 bits for each. In addition, the TRR operation may be performed in units of more than one bank by combining several banks.

이상에서 설명한 바와 같이 본 실시예에 따르면, 버퍼는 하위 비트를 카운트하여 발생한 캐리를 DRAM 측으로 전달하고, DRAM은 캐리를 기반으로 상위 비트를 카운트하여 집중 접근되는 행을 검출하는 메모리 신뢰성 개선 방법 및 장치를 제공함으로써, RH 및 repair 정보 관련된 DRAM 제조사의 비밀을 유지한 채로 RH에 대처가 가능해지는 효과가 있다.As described above, according to the present embodiment, the buffer transfers the carry generated by counting the lower bits to the DRAM side, and the DRAM counts the upper bits based on the carry to detect the intensively accessed row. By providing RH and repair information, there is an effect that it is possible to cope with RH while maintaining the secrets of DRAM manufacturers related to RH and repair information.

도 2는 본 개시의 일 실시예에 따른 하위 카운터에 대한 개략적인 블록도이다. 2 is a schematic block diagram of a lower counter according to an embodiment of the present disclosure.

본 개시에 따른 하위 카운터(112)는 RH CAM(202) 및 RH 메모리(204)를 포함한다. RH CAM(202)은 호스트(150)로부터 전달되는 Activate 명령에 포함된 주소를 관리하고, 이를 저장하기 위한 메모리이다. RH 메모리(204)는 RH CAM(202)을 구성하는 각각의 행에 대해 입력 시점을 저장하는 타이머(Timer j, j는 자연수) 및 Activate 명령의 개수를 저장하는 하위 비트 그룹 카운터(Frequency j)를 포함한다. The lower counter 112 according to the present disclosure includes a RH CAM 202 and a RH memory 204 . The RH CAM 202 is a memory for managing and storing the address included in the Activate command transmitted from the host 150 . The RH memory 204 stores a timer (Timer j, j is a natural number) that stores an input time point for each row constituting the RH CAM 202 and a low-order bit group counter (Frequency j) that stores the number of Activate commands. include

하위 카운터(112)는 Activate 명령을 획득한 후, RH CAM(202)을 검색하여 Activate 명령에 포함된 주소와 일치하는 행이 있는지를 확인하여, CAM 히트(hit: 주소가 일치하는 행이 존재)/미스(miss: 주소가 일치하는 행이 존재하는 않음)에 따른 동작을 수행한다. 또한 하위 카운터(112)는 Activate 명령과 상관없이, RH 메모리(204)의 내용을 주기적으로 업데이트한다. After acquiring the Activate command, the lower counter 112 searches the RH CAM 202 to check whether there is a line matching the address included in the Activate command, and then hits the CAM (hit: there is a line with the same address) Performs an action according to /miss (there is no line matching the address). In addition, the lower counter 112 periodically updates the contents of the RH memory 204 regardless of the Activate command.

이하 도 3 내지 도 5의 예시를 이용하여, 하위 카운터(112)의 동작에 대하여 설명한다. CAM 히트/미스 및 주기적 모니터를 수행하기 위해 하위 카운터(112)는 임계치 제어기(206), 주기 모니터(208) 및 모니터 타이머(210)를 포함할 수 있다.Hereinafter, an operation of the lower counter 112 will be described using the examples of FIGS. 3 to 5 . The lower counter 112 may include a threshold controller 206 , a periodic monitor 208 and a monitor timer 210 to perform CAM hit/miss and periodic monitoring.

도 3은 본 개시의 일 실시예에 따른 하위 카운터의 동작 중 CAM 히트를 개념적으로 나타내는 예시도이다.3 is an exemplary diagram conceptually illustrating a CAM hit during an operation of a lower counter according to an embodiment of the present disclosure.

CAM 히트인 경우, RH CAM(202)의 출력은 RH 메모리(204)의 행을 선택하는 주소에 해당한다. 하위 카운터(112)의 임계치 제어기(206)는 j 번째 행이 선택된 경우. RH 메모리(204)의 해당 행으로부터 하위 비트 그룹 카운터 Frequency j를 읽어서 1을 증가시킨 후, Lower_Threshold와 비교한다. Frequency j + 1 < Lower_Threshold이면, Frequency j + 1 의 값이 Frequency j에 저장된다. 반면, Frequency j + 1 = Lower_Threshold이면, 임계치 제어기(206)는 CMDDEC(Command Decoder)을 이용하여 캐리를 전달함으로써 DRAM(120)으로 하여금 상위 카운터(122)에 포함된 해당되는 상위 비트 그룹 카운터 값을 하나 증가시키도록 하고, RH CAM(202)의 Master j를 0으로 리셋(reset)함으로써, Address j를 할당해제(deallocation)시킨다.In the case of a CAM hit, the output of the RH CAM 202 corresponds to an address that selects a row in the RH memory 204 . Threshold controller 206 of lower counter 112 when j-th row is selected. After reading the lower bit group counter Frequency j from the corresponding row in the RH memory 204 and incrementing it by 1, Lower_Threshold and Compare. If Frequency j + 1 < Lower_Threshold, the value of Frequency j + 1 is stored in Frequency j. On the other hand, if Frequency j + 1 = Lower_Threshold, the threshold controller 206 transmits a carry using a command decoder (CMDDEC), thereby causing the DRAM 120 to determine the corresponding upper bit group counter value included in the upper counter 122. By increasing by one, and resetting Master j of the RH CAM 202 to 0, Address j is deallocated.

도 4는 본 개시의 일 실시예에 따른 하위 카운터의 동작 중 CAM 미스를 개념적으로 나타내는 예시도이다. 4 is an exemplary diagram conceptually illustrating a CAM miss during operation of a lower counter according to an embodiment of the present disclosure.

CAM 미스인 경우, 하위 카운터(112)는 입력된 주소를 비어있는 RH CAM(202)의 한 행(예컨대, Address k)에 신규 후보로서 저장하고, Master k를 1로 셋(set)하며, RH 메모리(204)의 k 번째 행의 Timer k와 Frequency k의 값을 모두 1로 초기화한다. In the case of CAM miss, the lower counter 112 stores the input address as a new candidate in one row (eg, Address k) of the empty RH CAM 202 , sets Master k to 1, and RH Both the values of Timer k and Frequency k of the k-th row of the memory 204 are initialized to 1.

도 5는 본 개시의 일 실시예에 따른 하위 카운터의 동작 중 주기적인 모니터링 과정을 개념적으로 나타내는 예시도이다.5 is an exemplary diagram conceptually illustrating a periodic monitoring process during operation of a lower counter according to an embodiment of the present disclosure.

Activate 명령과 상관없이, 하위 카운터(112)의 주기 모니터(208)는 타이머 값들은 주기적으로 업데이트하고, RH CAM(202)/RH 메모리(204)에 계속 유지할만한 주소인지를 판단한다. 예컨대, 전체 주기가 T인 경우, 모니터 타이머(210)가 생성하는 T/(#Row) 시간 간격에 따라 주기 모니터(208)는 순차적으로 하나의 주소에 대한 타이머/카운터 값을 읽은 후 필요한 동작을 수행한다. RH CAM(202)의 출력이 m(m은 자연수) 비트이면, RH CAM(202)의 #Row는 2m 개이다. RH 메모리(204)도 #Row와 동일한 개수의 Timer 0 ~ Timer (2m -1), 및 Frequency 0 ~ Frequency (2m -1)를 포함한다. 여기서, T는 DRAM의 리프레쉬 주기인 7.8 μ로 설정될 수 있다(비특허문헌 1 참조). 또한 m은 하위 카운터의 동작 성능과 실리콘 면적 간의 절충(trade-off)에 따라 결정될 수 있는 설계 파라미터이다. Irrespective of the Activate command, the period monitor 208 of the lower counter 112 periodically updates the timer values, and determines whether the address is still achievable in the RH CAM 202 / RH memory 204 . For example, if the total period is T, the period monitor 208 sequentially reads the timer/counter value for one address according to the T/(#Row) time interval generated by the monitor timer 210 and performs the necessary operation. carry out If the output of the RH CAM 202 is m (m is a natural number) bits, the #Row of the RH CAM 202 is 2 m . The RH memory 204 also includes the same number of Timer 0 to Timer (2 m -1) and Frequency 0 to Frequency (2 m -1) as #Row. Here, T may be set to 7.8 μ, which is the refresh cycle of the DRAM (see Non-Patent Document 1). Also, m is a design parameter that can be determined according to a trade-off between the operating performance of the lower counter and the silicon area.

주기 모니터(208)는 시간 t0에서 Timer 0, Frequency 0를 모니터하고 시간 t1 = t0 + T/(#Row)에서 Timer 1, Frequency 1을 모니터한다. 주기 모니터(208)는 최종적으로 시간 t(#Row -1) = t0 + T/(#Row)×(#Row - 1)에서 Timer (#Row -1), Frequency (#Row - 1)을 모니터하고, 각 타이머 및 하위 비트 그룹 카운터에 대해 해제 규칙(deallocation rule)에 따라 유지 또는 방출을 결정한다. 여기서 해제 규칙의 예로는, Timer k 값과 Frequency k 값을 읽었을 때, Frequency k 값이 해제 임계치(deallocation threshold)인 'Timer k×(TRR_Threshold×T/64)'보다 작으면 해당 행을 버리고, 반대로 해제 임계치와 같거나 크면 해당 행을 RH_CAM(202)/RH 메모리(204)에서 유지하는 방식을 들 수 있다. 주기 모니터(208)는, 버리는 경우 Master k를 0으로 리셋하고, 유지하는 경우 Timer k 값을 1만큼 증가시킨다. Period monitor 208 monitors Timer 0, Frequency 0 at time t0 and monitors Timer 1, Frequency 1 at time t1 = t0 + T/(#Row). Period monitor 208 finally monitors Timer (#Row -1), Frequency (#Row - 1) at time t(#Row -1) = t0 + T/(#Row)×(#Row - 1) and according to the deallocation rule for each timer and low bit group counter Decide on retention or release. Here, as an example of the release rule, when the Timer k value and the Frequency k value are read, if the Frequency k value is less than the deallocation threshold, 'Timer k×(TRR_Threshold×T/64)', the corresponding row is discarded, and vice versa. If it is equal to or greater than the release threshold, a method of maintaining the corresponding row in the RH_CAM 202/RH memory 204 may be used. Period monitor 208 resets Master k to 0 when discarding, and increments Timer k value by 1 when holding.

본 개시에 따른 하위 카운터(112)의 도입은, DRAM 간에 64 ms 리프레쉬 주기가 어긋나 있기 때문에 발생할 수 있는 문제에 대처가 가능하도록 한다. 도 13에 예시된 바와 같이 ARR_Threshold까지 세는 경우, 메모리 버퍼는 모니터링 시점 기준으로 해당 행에 대한 리프레쉬가 -64 ms에서 +64 ms 중 어느 시점에서 수행되는지 알 수 없다. 해제 규칙의 관점에서, hot row 카운터의 값와 비교되는 해제 임계치를 낮게 설정하여 가급적 많은 개수의 행을 지속적으로 모니터하는 것이 더 안전할 수 있고, 이는 메모리 버퍼의 면적을 증대시키는 요인이 될 수 있다. The introduction of the lower counter 112 according to the present disclosure makes it possible to deal with a problem that may occur because the 64 ms refresh period is shifted between DRAMs. As illustrated in FIG. 13 , when counting up to ARR_Threshold, the memory buffer does not know when the refresh of the corresponding row is performed from -64 ms to +64 ms based on the monitoring time point. From the point of view of the freeing rule, it may be safer to continuously monitor as many rows as possible by setting the release threshold to be low compared to the value of the hot row counter, which may increase the area of the memory buffer.

이에 대하여 본 개시에서는, Lower_Threshold만큼의 횟수가 되면 하위 카운터(112)가 DRAM(120) 측에 캐리를 전달한다. 해제 규칙의 관점에서, Frequency k 값과 비교되는 해제 임계치를 종래의 방법보다 높게 설정하여, 해당 행에 대한 캐리 발생 조건을 더 까다롭게 설정해도, DRAM(120)은 리프레쉬 주기를 저장하고 있으므로, hot row를 검출하는 데 있어서 큰 문제가 되지 않을 수 있다. 따라서, 해제 임계치를 높게 설정함에 따라 버퍼(110)가 모니터하는 후보 행의 수를 감소시킴으로서, 버퍼(110) 크기 및 버퍼(110)에서 소모되는 에너지가 감소될 수 있다. In contrast, in the present disclosure, when the number of Lower_Threshold is reached, the lower counter 112 transfers the carry to the DRAM 120 side. From the point of view of the release rule, even if the carry generation condition for the row is more stringently set by setting the release threshold compared to the Frequency k value higher than that of the conventional method, the DRAM 120 stores the refresh cycle, so the hot row may not be a major problem in detecting Accordingly, by reducing the number of candidate rows monitored by the buffer 110 by setting the release threshold high, the size of the buffer 110 and energy consumed in the buffer 110 may be reduced.

한편, 도 13에 예시된 바와 같은 버퍼(비특허문헌 1 참조)가 hot row를 검출한 후 하나의 ARR 명령을 보내는 시간 동안, 본 개시에서는 ARR_Threshold/Lower_Threshold(예를 들어, 217/210 = 27 = 128) 번만큼 하위카운터(112)가 상위카운터(122)로 캐리를 전송한다. 종래의 방식의 경우, ARR명령을 받았을 때 DRAM(120)은 바로 victim row를 찾아 추가적인 TRR 리프레쉬 수행을 해야하므로, 동일한 랭크를 구성하는 다수의 DRAM 각각의 내부에서 주기적으로 수행되는 리프레쉬의 상황을 개별적으로 반영하기 어렵다. 반면, 본 개시에서는, DRAM(120) 각각이 포함하는 (뱅크별 또는 뱅크 그룹별) 상위 카운터(122) 및 각각의 리프레쉬 주기를 기반으로 DRAM(120) 각각은 서로 다른 시기에 비동기적으로 리프레쉬를 수행함으로써, DRAM 간에 리프레쉬 주기가 동기화되어 있지 않는 문제를 근본적으로 피할 수 있다. On the other hand, during the time the buffer (see Non-Patent Document 1) as illustrated in FIG. 13 sends one ARR command after detecting the hot row, in the present disclosure, ARR_Threshold/Lower_Threshold (eg, 2 17 /2 10 = 2 7 = 128), the lower counter 112 transmits the carry to the upper counter 122 as many times. In the case of the conventional method, when an ARR command is received, the DRAM 120 must immediately find the victim row and perform additional TRR refresh, so the status of refresh periodically performed inside each of a plurality of DRAMs constituting the same rank is individually monitored. difficult to reflect On the other hand, in the present disclosure, each DRAM 120 asynchronously refreshes at different times based on the upper counter 122 and each refresh cycle (by bank or bank group) included in each DRAM 120 . By doing so, it is possible to fundamentally avoid the problem that the refresh cycle is not synchronized between DRAMs.

도 6은 본 개시의 일 실시예에 따른 메모리 신뢰성 개선 방법에 대한 흐름도이다.6 is a flowchart of a method for improving memory reliability according to an embodiment of the present disclosure.

버퍼(110)에 포함된 하위 카운터(112)는 Activate 명령을 획득한 후, RH CAM을 검색한다(S600). 하위 카운터(112)는 RH CAM을 검색하여 Activate 명령에 포함된 주소와 일치하는 행이 있는지를 확인한다.The lower counter 112 included in the buffer 110 acquires the Activate command and then searches for the RH CAM (S600). The lower counter 112 searches the RH CAM and checks whether there is a line matching the address included in the Activate command.

하위 카운터(112)는 CAM 히트/미스인지를 확인하여(S602), CAM 히트(주소가 일치하는 행이 존재)인 경우, 해당 행에 대한 하위 비트 그룹 카운터를 1만큼 증가시킨다(S604). The lower counter 112 checks whether it is a CAM hit/miss (S602). If it is a CAM hit (a row with a matching address exists), the lower bit group counter for the corresponding row is incremented by 1 (S604).

한편, 하위 카운터(112)는 CAM 미스(주소가 일치하는 행이 존재하는 않음)인 경우, 해당 행을 RH CAM(202)에 신규 후보로 추가하고(S606), 과정을 종료한다.On the other hand, when the lower counter 112 is a CAM miss (there is no row with the same address), the lower counter 112 adds the row as a new candidate to the RH CAM 202 (S606), and ends the process.

하위 카운터(112)는 하위 비트 그룹 카운터의 값을 Lower_Threshold와 비교하여(S608), 하위 비트 그룹 카운터의 값이 Lower_Threshold(예컨대 1,000)보다 작은 경우 과정을 종료한다. The lower counter 112 compares the value of the lower bit group counter with the Lower_Threshold (S608), and when the value of the lower bit group counter is smaller than the Lower_Threshold (eg, 1,000), the process ends.

하위 비트 그룹 카운터의 값이 Lower_Threshold에 도달한 경우, 하위 카운터(112)는 DRAM(120)에 포함된 상위 카운터(122) 측으로 캐리를 전송하고, 하위 비트 그룹 카운터를 리셋한다(S610).When the value of the lower bit group counter reaches the Lower_Threshold, the lower counter 112 transfers a carry to the upper counter 122 included in the DRAM 120, and resets the lower bit group counter (S610).

상위 카운터(122)는 캐리가 획득된 경우, 해당되는 상위 비트 그룹 카운터를 1만큼 증가시킨다(S612).When a carry is obtained, the upper counter 122 increments the corresponding upper bit group counter by one (S612).

상위 카운터(122)는 상위 비트 그룹 카운터의 값을 TRR_Threshold와 비교하여(S614), 상위 비트 그룹 카운터의 값이 TRR_Threshold보다 작은 경우 과정을 종료한다. The high-order counter 122 compares the value of the high-order bit group counter with the TRR_Threshold (S614), and when the value of the high-order bit group counter is smaller than the TRR_Threshold, the process ends.

상위 비트 그룹 카운터의 값이 TRR_Threshold에 도달한 경우, DRAM(120)은 해당 행과 인접한 행에 대한 Refresh 명령을 수행한다. When the value of the upper bit group counter reaches TRR_Threshold, the DRAM 120 performs a Refresh command on a row adjacent to the corresponding row.

이하, 하위 카운터(112)가 RH CAM(202)와 RH Memory(204)에 기반하여 hot row를 검출하는 구조에 있어서, 하위 카운터(112)를 포함하는 버퍼(110)가 필요로 하는 실리콘 면적을 최소화할 수 있는 방안을 설명한다. 통상의 관례에 따라 뱅크별로 하나의 하위 카운터(112)가 hot row에 대한 카운트를 진행하는 경우, 버퍼(110) 상에 2,048 개의 하위 카운터가 구현되어야 한다. DDR5 DRAM인 경우, #Channel이 2이고, 채널당 #Rank가 2이며, 각각의 랭크별로 #Bank의 최대값은 표 1에 나타낸 바와 같이 계산될 수 있다. Hereinafter, in the structure in which the lower counter 112 detects a hot row based on the RH CAM 202 and the RH Memory 204 , the silicon area required by the buffer 110 including the lower counter 112 is determined. Describe ways to minimize it. According to a common practice, when one sub-counter 112 for each bank counts the hot row, 2,048 sub-counters must be implemented on the buffer 110 . In the case of DDR5 DRAM, #Channel is 2, #Rank per channel is 2, and the maximum value of #Bank for each rank can be calculated as shown in Table 1.

Figure 112020112589620-pat00001
Figure 112020112589620-pat00001

표 1에서 각 케이스는 상이한 개수의 칩 또는 다이가 패키지된 형태를 나타낸다. 예컨대, 4H-3DS는 4 개의 칩이 3DS 형태로 패키지된 것을 나타낸다. In Table 1, each case represents a package in which a different number of chips or dies are packaged. For example, 4H-3DS indicates that 4 chips are packaged in 3DS format.

표 1에 제시된 바와 같은 뱅크의 개수대로 하위 카운터(112)를 구현하는 것은, 버퍼(110)를 집적하는 데 있어서 근본적인 면적 오버헤드(area overhead) 한계를 발생시킬 수 있다. Implementing the lower counter 112 according to the number of banks as shown in Table 1 may cause a fundamental area overhead limit in integrating the buffer 110 .

본 개시에서는, 뱅크, 뱅크 그룹, 또는 논리적 랭크까지 결합하여 하위 카운터(112)를 구현하는 것을 제안한다. 뱅크, 뱅크 그룹, 논리적 랭크, 또는 논리적 랭크의 결합이 하나의 하위 카운터(112)를 공유하는 경우, 하위 카운터(112)가 동작해야 하는 시간적 여유, 즉 허락된 응답 시간(response time, 다른 표현으로는 #ACT Max bandwidth)은 표 2에 나타낸 바와 같다. In the present disclosure, it is proposed to implement the lower counter 112 by combining up to a bank, a bank group, or a logical rank. When a bank, a group of banks, a logical rank, or a combination of logical ranks share one sub-counter 112, the time margin in which the sub-counter 112 must operate, that is, the allowed response time (in other words, is #ACT Max bandwidth) is as shown in Table 2.

Figure 112020112589620-pat00002
Figure 112020112589620-pat00002

여기서, 표 2에 제시된 타이밍 파라미터 간의 관계를 나타내는 타이밍도는 도 7에 예시된 바와 같다. 표 2 및 도 7의 예시에서, tRC는 동일 뱅크 내에서 Activate와 Activate 간의 간격이고, tRRD는 상이한 뱅크에서 Activate와 Activate 간의 간격이다. 또한, tRCD는 Activate와 Read/Write 간의 간격이고, tFAW는 4 개의 Activate 윈도우에 해당하는 시간이다.Here, the timing diagram showing the relationship between the timing parameters presented in Table 2 is as exemplified in FIG. 7 . In the examples of Table 2 and Figure 7, tRC is the interval between Activate and Activate in the same bank, and tRRD is the interval between Activate and Activate in different banks. In addition, tRCD is the interval between Activate and Read/Write, and tFAW is the time corresponding to 4 Activate windows.

뱅크별로 하위 카운터(112)를 두는 경우, RH CAM(202)에 대한 검색, 및 RH 메모리(204)의 제어가 tRC = 45 ns 동안에 한 번만 수행되면 되므로, 하위 카운터(112)는 이에 맞추어 천천히 동작할 수 있다. 참고로, 45 ns는 DDR4-3200 기준으로 72 CK(clock), 또는 DDR5-6400 기준으로 144 CK에 해당한다. In the case of placing the lower counter 112 for each bank, the search for the RH CAM 202 and the control of the RH memory 204 need only be performed once during tRC = 45 ns, so the lower counter 112 operates slowly accordingly. can do. For reference, 45 ns corresponds to 72 CK (clock) based on DDR4-3200 or 144 CK based on DDR5-6400.

반면 뱅크, 뱅크 그룹 또는 논리적 랭크까지 결합하여 하위 카운터(112)가 구현되는 경우, tFAW 또는 tRRD에 따라 응답 시간이 정해질 수 있으므로, 응답 시간이 45 ns에서 1.25 ns(DDR4-3200 기준으로 2 CK, DDR5-6400 기준으로 4 CK)까지 감소될 수 있다. 중간 정도의 결합을 선택해서, 뱅크 그룹별로 하위 카운터(112)를 따로 두는 경우, 응답 시간은 5 ns이고, 이는 DDR4-3200, DDR5-6400 각각에 대해서 8 CK, 16 CK에 해당한다. On the other hand, if the lower counter 112 is implemented by combining banks, bank groups, or logical ranks, the response time can be determined according to tFAW or tRRD, so the response time is 45 ns to 1.25 ns (2 CK based on DDR4-3200) , it can be reduced to 4 CK based on DDR5-6400). If a medium combination is selected and the lower counter 112 is set aside for each bank group, the response time is 5 ns, which corresponds to 8 CK and 16 CK for DDR4-3200 and DDR5-6400, respectively.

표 2에 나타낸 바와 같은 결합에 따라 얼마나 고속의 RH CAM(202)이 필요한지가 결정될 수 있고, DRAM에 비해 트랜지스터(transistor) 성능이 상대적으로 좋은 메모리 버퍼에서는 RH CAM(202)의 고속 요구 조건이 구현 가능한 범위 내에 존재할 수 있다. RH CAM의 구체적인 설계 방법에 대한 기술은 본 개시의 범위를 벗어나므로 더 이상의 자세한 설명은 생략한다.Depending on the combination as shown in Table 2, it can be determined how fast the RH CAM 202 is required, and the high-speed requirement of the RH CAM 202 is implemented in a memory buffer with relatively good transistor performance compared to DRAM. It may exist within a possible range. Since the description of the specific design method of the RH CAM is out of the scope of the present disclosure, further detailed description thereof will be omitted.

이하, 표 2에 제시된 바와 같은 결합이 실리콘 면적에 주는 영향을 설명한다. 뱅크별로 하위 카운터(112)를 두는 경우(표 1의 케이스 1임), 모두 2K 개의 카운터가 필요하므로 하위 카운터(112) 하나의 면적을 A라고 할 때 총면적은 (2,048×A)이다. Hereinafter, the effect of bonding as shown in Table 2 on the silicon area will be described. When the lower counter 112 is provided for each bank (case 1 in Table 1), 2K counters are required in all, so when the area of one lower counter 112 is A, the total area is (2,048×A).

다음 논리적 랭크별로 결합했을 경우, #Channel×#Rank×#Logical Rank 개수만큼 하위 카운터(112)가 필요하나, 하위 카운터(112)의 크기가 증가하게 되므로 그 면적을 A대신 A'이라고 할 때 총면적은 (2×2×16×A')이 된다. 이때, A'과 A 간의 차이는 단위 시간에 들어오는 Activate 명령의 최대개수의 비율에 따라 결정될 수 있다. 7.8 μs 기준으로 뱅크별인 경우 표 2에 나타낸 바와 같이 165 회의 Activate 명령이 들어올 수 있으나, 논리적 랭크별인 경우 18 배만큼 더 들어올 수 있으므로 A' = 18×A이다. 따라서 필요한 총면적은 (64×18×A) = (1,152×A)이다.When combined by the following logical ranks, the number of lower counters 112 is required as many as #Channel×#Rank×#Logical Rank, but the size of the lower counter 112 increases, so the total area is called A' instead of A' becomes (2x2x16xA'). At this time, the difference between A' and A may be determined according to the ratio of the maximum number of Activate commands coming in per unit time. 7.8 μs As a standard, in the case of each bank, as shown in Table 2, 165 Activate commands can come in, but in the case of a logical rank, 18 times more can come in, so A' = 18×A. Therefore, the total area required is (64×18×A) = (1152×A).

논리적 랭크까지 결합하는 경우, 표 2의 예시를 동일하게 적용하면 하위 카운터(112)의 크기 A'' = 36×A이고, 하위 카운터(112)의 개수는 #Channel×#Rank = 2×2=4 개이므로, 필요한 총면적은 (4×A'') = (144 x A)이다. 따라서, 뱅크별로 하위 카운터(112)를 두는 경우와 대비하여, 논리적 랭크까지 결합하는 경우 하위 카운터(112)의 총면적은 대략 1/14로 감소할 수 있다. In the case of combining up to logical ranks, if the example in Table 2 is equally applied, the size of the lower counter 112 is A'' = 36×A, and the number of the lower counters 112 is #Channel×#Rank = 2×2= Since there are 4, the total area required is (4×A'') = (144 x A). Accordingly, in contrast to the case where the lower counter 112 is provided for each bank, the total area of the lower counter 112 may be reduced to approximately 1/14 when combining up to a logical rank.

이상에서 설명한 바와 같이 본 실시예에 따르면, DRAM을 구성하는 행별로 Activate 횟수를 카운트하되, 메모리 버퍼가 하위 비트를 카운트하여 발생한 캐리를 DRAM 측으로 전달하고, DRAM이 캐리를 기반으로 상위 비트를 카운트하여 집중 접근되는 행을 검출하는 메모리 신뢰성 개선 방법 및 장치를 제공함으로써, RH에 대처를 위한 DRAM 측의 부담을 감소시키고, 메모리 시스템 전체가 소모하는 에너지 및 필요로 하는 실리콘 면적을 감소시키는 것이 가능해지는 효과가 있다.As described above, according to this embodiment, the number of activations is counted for each row constituting the DRAM, but the memory buffer counts the lower bits and transfers the carry generated to the DRAM side, and the DRAM counts the upper bits based on the carry. By providing a method and apparatus for improving memory reliability for detecting rows that are intensively accessed, it is possible to reduce the burden on the DRAM side for coping with RH, and to reduce energy consumed by the entire memory system and silicon area required there is

이하, 하위 카운터(112)와 상위 카운터(122) 간에 캐리 정보를 전달하는 방법을 설명한다. Hereinafter, a method of transferring carry information between the lower counter 112 and the upper counter 122 will be described.

본 개시에서는, TRR이나 ARR과 같은 부가적인 새로운 명령의 추가에 따른 JEDEC(Joint Electron Device Engineering Council) 표준의 변경을 고려하지 않은 채로, 버퍼(110) 상의 하위 카운터(112)로부터 DRAM(120) 내부의 상위 카운터(122) 측으로 캐리 정보가 전달될 수 있다. TRR 또는 ARR의 경우와 달리, 하위 카운터(112)가 하위 카운터(112) 측으로 전달하는 캐리 정보는 실제로 DRAM 내에서 TRR이 수행하는 시점과 무관할 수 있다. 따라서 호스트(150)로부터 Activate 명령이 수신되었을 때, 버퍼(110)는 해당 Activate 명령이 hot row의 후보에 대해 실행된 것이라는 사실만을 DRAM(120) 측에 알리면 된다. 버퍼(110)는 DRAM(120) 측으로 명령을 전달할 때, CA(Command and Address) 핀(pin) 중 하나를 이러한 사실을 알려주기 위한 플래그 비트(flag bit)로 이용할 수 있다. In the present disclosure, without considering changes in the Joint Electron Device Engineering Council (JEDEC) standard according to the addition of additional new commands such as TRR or ARR, from the lower counter 112 on the buffer 110 to the DRAM 120 internal Carry information may be transferred to the upper counter 122 of the . Unlike the case of TRR or ARR, the carry information transmitted by the lower counter 112 to the lower counter 112 may be independent of the timing at which the TRR is actually performed in the DRAM. Therefore, when an Activate command is received from the host 150 , the buffer 110 only needs to inform the DRAM 120 that the corresponding Activate command has been executed for a candidate of a hot row. When transmitting a command to the DRAM 120 , the buffer 110 may use one of the command and address (CA) pins as a flag bit for informing of this fact.

실제로 AP(Auto Precharge), BL(Burst Length) 등의 정보가 이러한 OTF(On the Fly) 방식을 이용하여 호스트로부터 DRAM 측으로 전달되고 있다. 하지만 호스트(150)로부터 Activate 명령을 획득한 후, 버퍼(110)가 DRAM(120) 측에 해당 명령을 버퍼링(buffering)하여 전달하기까지의 시간은 1 ns 정도밖에 되지 않으므로, RH CAM(202)의 검색, RH 메모리(204)의 읽기 등의 필요한 과정을 완수할 수 없다. 또한 표 3에 제시된 DDR5의 명령 테이블(전체 명령의 일부만을 포함함, 명령 테이블 전체는 비특허문헌 2 참조)에 표시된 바와 같이, 모든 CA 핀들이 사용 중이기 때문에, 버퍼(110)가 Activate 명령을 전달할 때 캐리 정보를 실을 수 없다. In fact, information such as Auto Precharge (AP) and Burst Length (BL) is transmitted from the host to the DRAM side using the On the Fly (OTF) method. However, after obtaining the Activate command from the host 150, the buffer 110 buffers and transmits the command to the DRAM 120 side only about 1 ns, so the RH CAM 202 A necessary process such as retrieval of , reading of the RH memory 204 cannot be completed. In addition, as shown in the DDR5 command table (including only a part of the entire command, see Non-Patent Document 2 for the entire command table) presented in Table 3, since all CA pins are in use, the buffer 110 transmits the Activate command. When carrying information can not be loaded.

Figure 112020112589620-pat00003
Figure 112020112589620-pat00003

그럼에도 적어도 tRC(= 45 ns) 동안 해당 행은 개방 상태이므로, DRAM(120)은 해당 주소를 유지한다. 따라서 tRC 구간 내에 캐리 정보가 전달되면 된다. 또한 DRAM(120)이 해당 주소 정보를 다음 Activate 명령이 올 때까지 저장하고 있다면, 다음 Activate 명령이 올 때 캐리 정보가 전달될 수도 있다. 이러한 근거에 기반하여, 하위 카운터(112)가 상위 카운터(122) 측으로 캐리 정보를 전달하는 2 가지 방법을 설명한다. Nevertheless, since the row is open for at least tRC (= 45 ns), the DRAM 120 maintains the address. Accordingly, it is sufficient if the carry information is transmitted within the tRC period. In addition, if the DRAM 120 stores the corresponding address information until the next Activate command comes, carry information may be transmitted when the next Activate command comes. Based on this basis, two methods in which the lower counter 112 transmits carry information to the upper counter 122 side will be described.

본 개시에 따른 하위 카운터(112)는, Activate 명령 이후, 예컨대 Read 또는 Write 명령에 캐리 정보를 실어서 보낼 수 있다. Activate 명령 이후에 입력되는 Read 또는 Write 명령은 적어도 tRCD(= 12 ns) 이후에 주어지기 때문에, 이 시간 동안 하위 카운터(112)는 RH CAM(202)와 RH Memory(204)를 참조하여 상위 카운터(122) 측으로 캐리 정보를 보내야 하는지를 결정할 수 있다. 표 4는 이러한 플래그 비트를 고려하여 변경된 DDR5 명령 테이블을 나타낸다. The lower counter 112 according to the present disclosure may transmit carry information after the Activate command, for example, a Read or Write command. Since the Read or Write command input after the Activate command is given at least after tRCD (= 12 ns), during this time, the lower counter 112 refers to the RH CAM (202) and RH Memory (204) and refers to the upper counter ( 122) can decide whether to send carry information to the side. Table 4 shows the changed DDR5 instruction table in consideration of these flag bits.

Figure 112020112589620-pat00004
Figure 112020112589620-pat00004

표 4의 예시에서, Read 및 Write 명령에 RH 플래그 비트가 포함되어 있다. 케이스 1의 예시와 같이, 2-사이클 명령(2-cycle command)인 Read 또는 Write 명령에서 2 번째 사이클의 CA9가 RH 플래그 비트로 사용될 수 있다. 또한 CA12 핀도 이러한 용도로 이용될 수 있으므로, 케이스 2의 예시와 같이 필요에 따라 CA9과 CA12 핀의 조합을 이용하여 더 많은 정보가 전달될 수도 있다. 사용 가능한 핀이 없는 경우, 표준을 변경하여(신규 제품의 경우 이러한 정보 전달을 고려한 핀을 추가하여). 전술한 바와 같은 OTF 제어 방식을 채용하는 것이 가능하다. In the example in Table 4, the Read and Write commands include the RH flag bit. As in the example of Case 1, CA9 of the second cycle may be used as the RH flag bit in the Read or Write command, which is a 2-cycle command. In addition, since the CA12 pin can also be used for this purpose, more information may be transmitted using a combination of the CA9 and CA12 pins as needed, as in the example of case 2. If no pins are available, by changing the standard (for new products, by adding pins that take this information into account). It is possible to employ the OTF control scheme as described above.

한편, 드문 경우이나 호스트(150)는 Activate 명령을 전달한 후 Read 또는 Write 명령을 전달하지 않고, Precharge 명령을 전달할 수 있다. 뱅크별 Precharge 명령의 경우, 표 3에 나타낸 바와 같이 모든 CA 핀이 다 사용되어 남는 핀이 없으므로 캐리 정보 전달을 위해 이용될 수 없다. 또한, Precharge All Bank(모든 뱅크 그룹에 대해 Precharge 수행) 또는 Precharge Same Bank 명령(뱅크 그룹당 하나의 뱅크에 대해 Precharge 수행)의 경우, 하나의 Activate 명령이 아니라 여러 개의 Activate 명령에 의해 개방된 여러 개의 행을 닫기 때문에, 어떤 뱅크를 나타내는지를 확정할 수가 없고, 따라서 캐리 정보 전달을 위해 이용될 수 없다. 물론 TRR을 all bank 또는 same bank에 적용한다면 문제가 해결될 수 있으나, DRAM 제품 또는 DRAM 제조사 각각의 내부 정책에 따라 리프레쉬 그래뉼리티(refresh granularity), 즉 하나의 Refresh 명령에 의해 리프레쉬되는 행의 개수가 결정해지므로, 문제 해결을 보장할 수 없다. Meanwhile, in rare cases, the host 150 may transmit the Precharge command without transmitting the Read or Write command after transmitting the Activate command. In the case of the precharge command for each bank, as shown in Table 3, all CA pins are used and there is no remaining pin, so it cannot be used for carrying carry information. Also, for a Precharge All Bank (precharge all groups of banks) or Precharge Same Bank commands (perform a precharge on one bank per bank group), multiple rows opened by multiple Activate commands rather than one Activate command. , it cannot be determined which bank it represents, and therefore cannot be used for carrying carry information. Of course, if TRR is applied to all banks or the same bank, the problem can be solved, but according to the internal policy of each DRAM product or DRAM manufacturer, the refresh granularity, that is, the number of rows refreshed by one Refresh command Since it is decided, we cannot guarantee that the problem will be solved.

본 개시에서는, 다음과 같은 방법으로 Activate 명령 후 Precharge 명령이 전달되는 경우에 대응할 수 있다. 캐리가 발생할 수 있는 Activate 명령이 들어온 경우(예컨대, 1,000 번째 명령)에 대하여, 동일 뱅크의 다음 Activate 명령이 들어 왔을 때, 버퍼(110)는 CA1 핀을 1(High)로 설정하여 캐리 정보를 전달할 수 있다. 이때, RA는 반드시 hot row의 주소일 필요는 없다. 참고로, 이러한 Activate 명령의 변경은, DDR5의 명령 테이블(비특허문헌 2 참조) 상에, Activate 명령 외에는 CA0 및 CA1 핀이 동시에 0(Low)인 경우가 존재하지 않기 때문에 가능할 수 있다.In the present disclosure, it is possible to respond to the case where the Precharge command is transmitted after the Activate command in the following way. When an Activate command that can cause carry is received (eg, the 1,000th command), when the next Activate command of the same bank is received, the buffer 110 sets the CA1 pin to 1 (High) to deliver carry information. can In this case, RA does not necessarily have to be the address of the hot row. For reference, this change of the Activate command may be possible because there is no case in which the CA0 and CA1 pins are 0 (Low) at the same time other than the Activate command on the DDR5 command table (refer to Non-Patent Document 2).

캐리 정보를 전달하기 위해 전술한 바와 같은 두 가지 방법이 병행 사용되거나, 후자의 방법만이 사용될 수 있다. TRR 또는 ARR의 경우, 호스트와의 명령 충돌 가능성을 해결하기 위해 표준이 변경되어야 하는 것과 달리, DRAM에서 오랫동안 이용하여 왔던 OTF 비트 방식을 사용하면, 캐리 정보 전달이 DRAM 제조사와 버퍼 제조사 간의 고객특화된 특성(customized feature)으로서 구현될 수 있다. TRR 또는 ARR은 hot row 또는 victim row의 주소를 전달하나, 본 개시에서는 하위 카운터(112)가 생성한 1 비트 캐리를 상위 카운터(122) 측으로 전달하는 것으로 충분하므로, OTF 방식이 원용될 수 있다. In order to transmit carry information, the two methods as described above may be used in parallel, or only the latter method may be used. In the case of TRR or ARR, unlike the standard that has to be changed to resolve the possibility of command conflicts with the host, if the OTF bit method, which has been used for a long time in DRAM, is used, carry information transfer is a customer-specific characteristic between the DRAM manufacturer and the buffer manufacturer. (customized feature) can be implemented. The TRR or ARR delivers the address of the hot row or the victim row, but in the present disclosure, since it is sufficient to transfer the 1-bit carry generated by the lower counter 112 to the upper counter 122 side, the OTF method may be used.

이상에서 설명한 바와 같이 본 실시예에 따르면, DRAM을 구성하는 행별로 Activate 횟수를 카운트하되, 메모리 버퍼가 하위 비트를 카운트하여 발생한 캐리를 DRAM 측으로 전달하고, DRAM이 캐리를 기반으로 상위 비트를 카운트하여 집중 접근되는 행을 검출하는 메모리 신뢰성 개선 방법 및 장치를 제공함으로써, RH에 대처하는 기존 방식이 갖는 호스트 명령 체계와의 충돌 문제를 해결하는 것이 가능해지는 효과가 있다.As described above, according to this embodiment, the number of activations is counted for each row constituting the DRAM, but the memory buffer counts the lower bits and transfers the carry generated to the DRAM side, and the DRAM counts the upper bits based on the carry. By providing a method and apparatus for improving memory reliability for detecting rows that are accessed intensively, there is an effect that it becomes possible to solve a problem of conflict with a host command system in an existing method of coping with RH.

이상은 본 개시에 따라 구현 가능한 실시예를 보인 것이며, 이러한 실시예는 상황에 따라 여러 가지 경우에 응용될 수 있다.The above has shown an embodiment that can be implemented according to the present disclosure, and this embodiment can be applied to various cases depending on the situation.

도 8은 본 개시의 다른 실시예에 따른 메모리 시스템에 대한 개략적인 블록도이다. 8 is a schematic block diagram of a memory system according to another embodiment of the present disclosure.

도 8의 도시된 바는 (L)RDIMM과 유사한 메모리 시스템의 예를 나타낸다. 호스트(150) 내 CPU 코어의 요청에 따라 MMU(Memory Control Unit)가 MC(Memory Controller)에게 물리적 주소(physical address)를 보내면, MC는 해당 주소를 DRAM이 해석할 수 있는 주소 형식(이하 메모리 주소(memory address): CSB(Chip Select Bar), CID, BG, BA, RA, CA 등으로 구성됨)으로 전환한다. 호스트(150)는 메모리 주소 형식으로 전환된 DRAM의 주소를 메모리 서브시스템(100) 측으로 전달되고, 이를 이용하여 메모리 서브시스템(100)에서 RH 방지를 위해 hot row 카운팅이 시도될 수 있다. 8 shows an example of a memory system similar to (L)RDIMM. When the MMU (Memory Control Unit) sends a physical address to the MC (Memory Controller) at the request of the CPU core in the host 150 , the MC interprets the address in an address format (hereinafter referred to as the memory address) that can be interpreted by DRAM. (memory address): Consists of CSB (Chip Select Bar), CID, BG, BA, RA, CA, etc.). The host 150 transfers the DRAM address converted to the memory address format to the memory subsystem 100 , and using this, hot row counting may be attempted in the memory subsystem 100 to prevent RH.

도 9는 본 개시의 다른 실시예에 따른 메모리 시스템에 대한 개략적인 블록도이다.9 is a schematic block diagram of a memory system according to another embodiment of the present disclosure.

도 8의 도시에 대하여 도 9의 도시는 더 일반화된 메모리 시스템을 나타낸다. 예를 들어, HMC(Hybrid Memory Cube)와 같이 더 일반화된 메모리 시스템인 경우, CPU 내에 일반적으로 존재하는 MC(Memory Controller)의 일부 기능이 메모리 버퍼 측으로 이전되어 구현될 수 있다. 도 9의 도시에서 MC2로 표시된 일종의 MC가 메모리 버퍼에 존재하는 경우에도, 본 개시에 따른 실시예가 역시 적용될 수 있다. 도 8의 도시에서는 물리적 주소가 메모리 주소 형식으로 전환된 후에 이용되나, 도 9의 도시에서는 이러한 전환이 없이도(호스트(150)는 물리적 주소 또는 메모리 주소 어느 것이든 제공 가능함) 메모리 서브시스템(100)에서 hot row 카운팅이 수행될 수 있다. The illustration of FIG. 9 relative to the illustration of FIG. 8 shows a more generalized memory system. For example, in the case of a more general memory system such as a hybrid memory cube (HMC), some functions of a memory controller (MC) generally present in the CPU may be transferred to the memory buffer side and implemented. Even when a kind of MC indicated by MC2 in the diagram of FIG. 9 exists in the memory buffer, the embodiment according to the present disclosure may also be applied. In the example of FIG. 8, the physical address is used after being converted to a memory address format, but in the example of FIG. 9 without this conversion (the host 150 can provide either a physical address or a memory address) memory subsystem 100 Hot row counting can be performed in

본 개시의 다른 실시예에 있어서, 칩을 제조함에 있어서 인터포저(interposer) 등을 이용하는 2.5D, 또는 TSV 등을 이용하는 3D의 형태의 집적이 적용되는 경우에도, 전술한 바와 같은 메모리 버퍼의 구성 및 기능은 광범위하게 적용될 수 있다.In another embodiment of the present disclosure, even when the integration of 2.5D using an interposer, etc. or 3D type using TSV, etc. is applied in manufacturing a chip, the configuration of the memory buffer as described above and Functions can be widely applied.

본 실시예에 따른 각 순서도에서는 각각의 과정을 순차적으로 실행하는 것으로 기재하고 있으나, 반드시 이에 한정되는 것은 아니다. 다시 말해, 순서도에 기재된 과정을 변경하여 실행하거나 하나 이상의 과정을 병렬적으로 실행하는 것이 적용 가능할 것이므로, 순서도는 시계열적인 순서로 한정되는 것은 아니다.Although it is described that each process is sequentially executed in each flowchart according to the present embodiment, the present invention is not limited thereto. In other words, since it may be applicable to change and execute the processes described in the flowchart or to execute one or more processes in parallel, the flowchart is not limited to a time-series order.

이상의 설명은 본 실시예의 기술 사상을 예시적으로 설명한 것에 불과한 것으로서, 본 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자라면 본 실시예의 본질적인 특성에서 벗어나지 않는 범위에서 다양한 수정 및 변형이 가능할 것이다. 따라서, 본 실시예들은 본 실시예의 기술 사상을 한정하기 위한 것이 아니라 설명하기 위한 것이고, 이러한 실시예에 의하여 본 실시예의 기술 사상의 범위가 한정되는 것은 아니다. 본 실시예의 보호 범위는 아래의 청구범위에 의하여 해석되어야 하며, 그와 동등한 범위 내에 있는 모든 기술 사상은 본 실시예의 권리범위에 포함되는 것으로 해석되어야 할 것이다.The above description is merely illustrative of the technical idea of this embodiment, and a person skilled in the art to which this embodiment belongs may make various modifications and variations without departing from the essential characteristics of the present embodiment. Accordingly, the present embodiments are intended to explain rather than limit the technical spirit of the present embodiment, and the scope of the technical spirit of the present embodiment is not limited by these embodiments. The protection scope of this embodiment should be interpreted by the following claims, and all technical ideas within the scope equivalent thereto should be interpreted as being included in the scope of the present embodiment.

100, 1000, 1100, 1200, 1300: 메모리 서브시스템
150, 1050: 호스트
110: 메모리 버퍼 112: Hot row 하위 카운터
120: 메모리(DRAM)
122: Hot row 상위 카운터 124: TRR 제어기
202: RH CAM 204: RH 메모리
100, 1000, 1100, 1200, 1300: memory subsystem
150, 1050: host
110: memory buffer 112: hot row low counter
120: memory (DRAM)
122: Hot row upper counter 124: TRR controller
202: RH CAM 204: RH memory

Claims (13)

DRAM(Dynamic Random Access Memory), 및 호스트(host)와 상기 DRAM 간에 위치하는 메모리 버퍼(buffer)를 포함하는 메모리 서브시스템(subsystem) 상에서, 상기 호스트로부터 제공되는 주소(address) 정보에 기초하여 특정된 상기 DRAM 상의 하나의 행(row)에 대해, 상기 하나의 행에 접근(access)하는 Activate 명령의 발생 횟수를 카운트(count)하여 상기 DRAM의 신뢰성(reliability)을 개선하는 방법에 있어서,
상기 메모리 버퍼가 하위 카운터를 이용하여 상기 발생 횟수의 하위 비트(lower bit) 그룹에 대한 카운팅을 수행하는 과정;
상기 메모리 버퍼가 상기 하위 카운터에 의해 생성된 하위 비트 그룹에 대한 캐리(carry)를 상기 DRAM에게 전달하는 과정; 및
상기 DRAM이 상기 캐리를 기반으로 상위 카운터를 이용하여 상기 발생 횟수의 상위 비트(higher bit) 그룹에 대한 카운팅을 수행하는 과정
을 포함하는 것을 특징으로 하는 방법.
On a memory subsystem including a dynamic random access memory (DRAM), and a memory buffer located between a host and the DRAM, a specified based on address information provided from the host In the method of improving the reliability of the DRAM by counting the number of occurrences of an Activate command to access the one row for one row on the DRAM,
performing, by the memory buffer, counting on a lower bit group of the number of occurrences using a lower counter;
transferring, by the memory buffer, a carry for the low-order bit group generated by the low-order counter to the DRAM; and
A process in which the DRAM counts the higher bit group of the number of occurrences using a higher counter based on the carry
A method comprising a.
제1항에 있어서,
상기 하나의 행에 대해 상기 상위 비트 그룹에 대한 카운팅을 수행한 값이 기설정된 제1 임계치와 동일한 경우, 상기 DRAM이 상기 하나의 행에 물리적으로 인접한 행을 찾은 후, 상기 인접한 행에 대해 Refresh 명령을 수행하는 과정을 더 포함하는 것을 특징으로 하는 방법.
The method of claim 1,
When the value obtained by performing the counting of the upper bit group with respect to the one row is equal to a predetermined first threshold, the DRAM finds a row physically adjacent to the one row, and then provides a Refresh command for the adjacent row Method characterized in that it further comprises the process of performing.
제1항에 있어서,
상기 메모리 버퍼는,
상기 하위 비트 그룹에 대한 카운팅을 수행한 값이 기 설정된 제2 임계치와 동일한 경우, 상기 캐리를 생성하는 것을 특징으로 하는 방법.
According to claim 1,
The memory buffer is
When the counted value of the lower bit group is equal to a preset second threshold, the carry is generated.
제1항에 있어서,
상기 하위 비트 그룹에 대한 카운팅을 수행하는 과정은 상기 DRAM을 구성하는 뱅크(bank) 단위, 또는 상기 뱅크를 포함하는 뱅크 이상의 단위로 실행되는 것을 특징으로 하는 방법.
The method of claim 1,
The method of performing the counting of the lower bit group is performed in units of a bank constituting the DRAM, or a unit of a bank or more including the bank.
제1항에 있어서,
상기 전달하는 과정은,
상기 Activate 명령에 이어지는 Read 또는 Write 명령의 전달에 이용되는 CA(Command and Address) 핀(pin) 중 적어도 하나를, 상기 캐리를 전달하기 위한 플래그 비트(flag bit)로 이용하는 것을 특징으로 하는 방법.
The method of claim 1,
The delivery process is
At least one of a command and address (CA) pin used for transmission of a Read or Write command following the Activate command is used as a flag bit for transmitting the carry.
제1항에 있어서,
상기 전달하는 과정은,
상기 DRAM이 상기 Activate 명령에 따른 주소를 다음 Activate 명령이 획득될 때까지 유지하는 경우, 상기 다음 Activate 명령의 전달에 이용되는 CA 핀 중 적어도 하나를, 상기 캐리를 전달하기 위한 플래그 비트로 이용하는 것을 특징으로 하는 방법.
According to claim 1,
The delivery process is
When the DRAM maintains the address according to the Activate command until the next Activate command is obtained, at least one of the CA pins used for transmission of the next Activate command is used as a flag bit for transmitting the carry How to.
제1항에 있어서,
상기 주소 정보는,
물리적 주소(physical address)의 형식(format)이거나, 상기 호스트에 의해 상기 DRAM의 구조에 맞도록 변환된 메모리 주소(memory address)의 형식인 것을 특징으로 하는 방법.
The method of claim 1,
The address information is
The method according to claim 1, wherein the format is a physical address or a memory address converted by the host to fit the DRAM structure.
제7항에 있어서,
상기 호스트로부터 상기 물리적 주소가 획득되는 경우, 상기 메모리 버퍼가 상기 물리적 주소를 기반으로 상기 하위 카운터를 이용하여 상기 하위 비트 그룹에 대한 카운팅을 수행하고, 상기 물리적 주소를 상기 메모리 주소로 변환하는 것을 특징으로 하는 방법.
8. The method of claim 7,
When the physical address is obtained from the host, the memory buffer performs counting on the low-order bit group using the low-order counter based on the physical address, and converts the physical address into the memory address how to do it with
제7항에 있어서,
상기 호스트로부터 상기 메모리 주소가 획득되는 경우, 상기 메모리 버퍼가 상기 메모리 주소를 기반으로 상기 하위 카운터를 이용하여 상기 하위 비트 그룹에 대한 카운팅을 수행하는 것을 특징으로 하는 방법.
8. The method of claim 7,
When the memory address is obtained from the host, the memory buffer counts the lower bit group using the lower counter based on the memory address.
DRAM(Dynamic Random Access Memory), 및 호스트(host)와 상기 DRAM 간에 위치하는 메모리 버퍼(buffer)를 포함하는 메모리 서브시스템(subsystem)에 있어서,
상기 메모리 버퍼에 포함되어, 하위 비트(lower bit) 그룹에 대한 카운팅을 수행하는 하위 카운터, 여기서, 상기 하위 카운터는, 상기 호스트로부터 제공되는 주소(address) 정보에 기초하여 특정된 상기 DRAM 상의 하나의 행(row)에 대해, 상기 하나의 행에 접근(access)하는 Activate 명령의 발생 횟수 중 상기 하위 비트 그룹에 대한 카운팅을 수행하여 캐리(carry)를 생성함; 및
상기 DRAM에 포함되어, 상기 메모리 버퍼로부터 전달된 캐리를 기반으로 상기 발생 횟수의 상위 비트(higher bit) 그룹에 대한 카운팅을 수행하는 상위 카운터
를 포함하는 것은 특징으로 하는 메모리 신뢰성(reliability) 개선 장치.
A memory subsystem comprising a dynamic random access memory (DRAM) and a memory buffer located between a host and the DRAM, the memory subsystem comprising:
A lower counter included in the memory buffer to perform counting on a group of lower bits, wherein the lower counter is one of the lower bits on the DRAM specified based on address information provided from the host. generating a carry by performing counting on the lower bit group among the number of occurrences of the Activate command to access the one row for a row; and
An upper counter included in the DRAM and performing counting on a higher bit group of the number of occurrences based on a carry transferred from the memory buffer
It comprises a memory reliability (reliability) improvement apparatus, characterized in that.
제10항에 있어서,
상기 DRAM은 제어기를 더 포함하되,
상기 제어기는 상기 하나의 행에 대해 상기 상위 비트 그룹에 대한 카운팅을 수행한 값이 기설정된 제1 임계치와 동일한 경우, 상기 하나의 행에 물리적으로 인접한 행을 찾은 후, 상기 인접한 행에 대해 Refresh 명령을 수행하는 것을 특징으로 하는 메모리 신뢰성 개선 장치.
11. The method of claim 10,
The DRAM further comprises a controller,
The controller searches for a row physically adjacent to the one row and provides a Refresh command for the adjacent row when a value obtained by counting the upper bit group with respect to the one row is equal to a preset first threshold Memory reliability improvement device, characterized in that performing.
제10항에 있어서,
상기 하위 카운터는,
상기 하위 비트 그룹에 대한 카운팅을 수행한 값이 기 설정된 제2 임계치와 동일한 경우, 상기 캐리를 생성하는 것을 특징으로 하는 메모리 신뢰성 개선 장치.
11. The method of claim 10,
The lower counter is
and generating the carry when the counted value of the lower bit group is equal to a preset second threshold.
제10항에 있어서,
상기 하위 카운터는,
상기 DRAM을 구성하는 뱅크(bank) 단위, 또는 상기 뱅크를 포함하는 뱅크 이상의 단위로 상기 하위 비트 그룹에 대한 카운팅을 수행하는 것을 특징으로 하는 메모리 신뢰성 개선 장치.
11. The method of claim 10,
The lower counter is
The apparatus for improving memory reliability, characterized in that the counting of the lower bit group is performed in units of a bank constituting the DRAM, or in units of a bank or more including the bank.
KR1020200138191A 2020-10-23 2020-10-23 Method and Apparatus for Improving Memory Reliability Based on Memory Buffer KR102381193B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200138191A KR102381193B1 (en) 2020-10-23 2020-10-23 Method and Apparatus for Improving Memory Reliability Based on Memory Buffer

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200138191A KR102381193B1 (en) 2020-10-23 2020-10-23 Method and Apparatus for Improving Memory Reliability Based on Memory Buffer

Publications (1)

Publication Number Publication Date
KR102381193B1 true KR102381193B1 (en) 2022-04-01

Family

ID=81183784

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200138191A KR102381193B1 (en) 2020-10-23 2020-10-23 Method and Apparatus for Improving Memory Reliability Based on Memory Buffer

Country Status (1)

Country Link
KR (1) KR102381193B1 (en)

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
Yeonhong Park et al., 'Graphene: Strong yet Lightweight Row Hammer Protection', 2020 IEEE Int'l Symp. on MICRO, 17-21 Oct. 2020. 1부. *
비특허문헌 1: E. Lee, I. Kang, S. Lee, and J. H. Ahn, TWiCe: Preventing Row-hammering by Exploiting Time Window Counters. ISCA, 2019.
비특허문헌 2: "DDR5 Full Spec Draft Rev0.1". JEDEC committee JC42.3. December 4, 2017. Retrieved July 19, 2020.
특허문헌 1: 미국 특허번호 US 9117544 B2 (Row hammer refresh command, 2015.08.25, 등록).
특허문헌 2: 한국 출원번호 KR 10-2018-0111012 (Memory module including register clock driver detecting address frequently accessed, 2018.09.17, 출원).
특허문헌 3: 미국 출원번호 US 2020-0090729 (Memory module including register clock driver detecting address frequently accessed, 2019.03.28, 출원).

Similar Documents

Publication Publication Date Title
CN112997251B (en) Device with row hammer address latch mechanism
US10192608B2 (en) Apparatuses and methods for detection refresh starvation of a memory
US11810610B2 (en) Methods for row hammer mitigation and memory devices and systems employing the same
CN111354393A (en) Apparatus and method for timing interleaving for targeted refresh operations
US11527280B2 (en) Monitoring and mitigation of row disturbance in memory
US20220068364A1 (en) Apparatuses, systems, and methods for resetting row hammer detector circuit based on self-refresh command
US11947412B2 (en) Methods for activity-based memory maintenance operations and memory devices and systems employing the same
CN106856098B (en) Device and method for refreshing DRAM or eDRAM
US9483193B1 (en) Data storage device
CN114627922A (en) Semiconductor memory device and memory system including the same
US11256568B2 (en) Memory management systems and methods
US20220107905A1 (en) Memory with improved command/address bus utilization
KR100652380B1 (en) Memory device for refreshing using buffer and method thereof
US6512683B2 (en) System and method for increasing the speed of memories
CN114627926A (en) Storage system
KR102381193B1 (en) Method and Apparatus for Improving Memory Reliability Based on Memory Buffer
KR20110018947A (en) Electrical circuit comprising a dynamic random access memory (dram) with concurrent refresh and read or write, and method to perform concurrent refresh and read or write in such a memory
US10878879B2 (en) Refresh control method for memory system to perform refresh action on all memory banks of the memory system within refresh window
US11790975B2 (en) Memory controller and memory system
KR102385443B1 (en) Selective Refresh Apparatus for Counter-based Row Hammer Prevention Schemes and the Method thereof
CN115881185A (en) Memory device, memory system, and method of operating memory device
US20240038288A1 (en) Memory device refresh operations
CN117311601A (en) Apparatus for controlling access to storage device and storage system including the same
CN117809718A (en) Memory device, memory system having the same, and method of operating the same
KR20220082702A (en) Semiconductor memory device and memory system including the same

Legal Events

Date Code Title Description
GRNT Written decision to grant