KR20230026496A - 로우 해머 효과로부터 dram 메모리 소자를 보호하는 방법 및 회로 - Google Patents

로우 해머 효과로부터 dram 메모리 소자를 보호하는 방법 및 회로 Download PDF

Info

Publication number
KR20230026496A
KR20230026496A KR1020237002647A KR20237002647A KR20230026496A KR 20230026496 A KR20230026496 A KR 20230026496A KR 1020237002647 A KR1020237002647 A KR 1020237002647A KR 20237002647 A KR20237002647 A KR 20237002647A KR 20230026496 A KR20230026496 A KR 20230026496A
Authority
KR
South Korea
Prior art keywords
refresh
sub
bank
row
acc
Prior art date
Application number
KR1020237002647A
Other languages
English (en)
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
Priority claimed from FR2006541A external-priority patent/FR3111731B1/fr
Application filed by 업멤 filed Critical 업멤
Publication of KR20230026496A publication Critical patent/KR20230026496A/ko

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
    • 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/4078Safety or protection circuits, e.g. for preventing inadvertent or unauthorised reading or writing; Status cells; Test cells
    • 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/40622Partial refresh of memory arrays
    • 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/408Address circuits
    • 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/408Address circuits
    • G11C11/4085Word line control circuits, e.g. word line drivers, - boosters, - pull-up, - pull-down, - precharge
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/783Masking faults in memories by using spares or by reconfiguring using programmable devices with refresh of replacement cells, e.g. in DRAMs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/81Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout using a hierarchical redundancy scheme
    • 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
    • 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/40618Refresh operations over multiple banks or interleaving
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/401Indexing scheme relating to cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C2211/406Refreshing of dynamic cells
    • G11C2211/4065Low level details of refresh operations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/70Masking faults in memories by using spares or by reconfiguring
    • G11C29/78Masking faults in memories by using spares or by reconfiguring using programmable devices
    • G11C29/80Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout
    • G11C29/806Masking faults in memories by using spares or by reconfiguring using programmable devices with improved layout by reducing size of decoders

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Dram (AREA)

Abstract

본 발명은 로우 해머 효과로부터 DRAM 메모리 소자를 보호하는 방법에 관한 것으로, 이 메모리 소자는 메모리 로우로 구성된 복수의 뱅크를 포함하고, 이 방법은 뱅크의 로우의 연속 섹션과 서브 뱅크를 각각 연관시키도록 구성된 적어도 하나의 로직 방지 장치에 의해 구현된다. 이 방지 로직은 또한 서브 뱅크에서 활성화되는 로우의 개수가 임계 해머 값을 초과하기 전에 서브 뱅크의 예방적 리프레시 사이클을 완전히 실행하도록 구성된다. 또한, 본 발명은 로우 해머 효과를 방지하기 위한 로직을 포함하는 DRAM 메모리 소자, 그러한 메모리의 버퍼 회로 또는 컨트롤러에 관한 것이다.

Description

로우 해머 효과로부터 DRAM 메모리 소자를 보호하는 방법 및 회로
본 발명은 DRAM("동적 랜덤 액세스 메모리"), 보다 구체적으로는 "로우 해머(Row Hammer)" 효과의 관리에 관한 것이다. "로우 해머" 효과란 주어진 DRAM 메모리의 뱅크(bank) 내에서, 주어진 DRAM의 로우(row)를 반복적으로 활성화하면 물리적으로 인접한 로우들이 그들의 일부 비트의 값을 반전시킬 수 있다는 것이다. 반복적으로 활성화되는 로우는 "공격자 로우"라고 지칭되고 인접한 로우들은 "피해자 로우"라고 지칭된다.
IEEE 컴퓨터 아키텍처 레터스(Computer Architecture Letters), IEEE Vol 14, n°1(2015-01-01)에 게재된 "DRAM 메모리에서 로우 해머링을 완화하기 위한 아키텍처 지원(Architectural support for mitigating row hammering in DRAM memory)"이란 제목의 김대현 등의 아티클은 DRAM 장치에서 로우 해머링을 방지하는 다양한 방법을 개시한다. "카운터 기반 로우 활성화"라고 불리는 제1 방법에서, 메모리 소자의 로우와 연관된 카운터는 해당 로우의 활성화 시 증가한다. 주어진 로우와 연관된 카운터가 임계값을 초과하면, 그 주어진 로우의 인접한 로우들이 리프레시(refresh)된다. 이 접근 방식은 로우 해머링 효과를 방지하는데 효과적이지만, 필요한 카운터 개수(로우당 하나씩)를 수용하기 위해 큰 저장 용량을 사용한다.
IEEE 컴퓨터 아키텍처 레터스, IEEE Vol 16, n°1(2017-01-01)에 게재된 "DRAM에서 로우 해머링 완화를 위한 컴퓨터 기반 트리 구조(Computer based Tree structure for row hammering mitigation in DRAM)"란 제목의 세예드자데 세예드 모하마드 등의 아티클은 각각의 로우에 카운터를 연결하는 대신, 로우 그룹에 하나의 카운터를 연결하여 카운트의 개수를 제한하는 것을 제안한다. 카운터는 로우 그룹 중의 한 로우가 활성화될 때마다 증가한다. 주어진 로우 그룹에 연결된 카운터가 임계값을 초과하면, 주어진 그룹의 모든 로우가 리프레시 된다. 이 접근 방식은 실제로 필요한 카운터 개수를 제한하기는 하지만, 로우 그룹이 리프레시되는 동안 활성화를 위해 그 로우 그룹에 액세스할 수 없다는 문제를 일으킨다. 각 그룹 내의 로우 개수를 증가시키면 필요한 카운터 개수가 감소되지만 로우 그룹의 완전한 리프레시 동안 그 로우 그룹에 대한 액세스가 차단되는 시간이 늘어난다. 반대로, 각 그룹 내의 로우 개수를 줄이면 그 그룹의 리프레시 지속 기간은 줄어들지만 카운터의 개수는 늘어난다.
문헌 FR3066842A1은 테이블의 사용을 구현하는 로우 해머 효과를 방지하기 위한 알고리즘을 자세히 설명한다. 이 알고리즘은 비교적 큰 임계 해머 값(일반적으로 40,000 이상)에 특히 적합하다. 그러나, DRAM에 대해 점점 더 미세한 제조 구조가 사용됨에 따라 이러한 메모리에 대해 비교적 낮은 임계 해머 값(예컨대, 4800)이 관찰되고 있다.
앞서 언급한 문헌에서, 알고리즘의 전개 동안 사용되는 테이블의 엔트리(entry)의 개수는 임계 해머 값에 반비례하는데, 이는 더 미세한 구조를 사용하는 DRAM에 대해 제안된 알고리즘을 활용하는데 필요한 것보다 8배 더 많은 엔트리 개수를 부과한다. 병렬로 액세스되는 여러 테이블에 걸쳐 분산되어 있더라도, 한 로우의 두 활성화 커맨드를 분리하는 시간 내에 이러한 많은 엔트리 전체를 처리하는 것(going through)은 문제가 된다.
또한, 로우 해머는 이러한 미세 구조 DRAM 메모리에서 해머링되는 공격자 로우에 바로 인접하지는 않지만 근접해 있는 희생자 로우에도 정도는 덜하지만 영향을 미친다. 그러나, 문헌 FR3066842에 의해 제안된 솔루션은 해머링되는 공격자 로우에 바로 인접한 2개의 이웃 로우에만 영향을 미치는 해머(이러한 현상은 본 명세서에서 범위 1의 해머라 함)만 관리한다.
일반적으로, 범위 1의 해머는 메모리 뱅크의 토폴로지컬 인덱스(i)의 공격 로우가 로우(i-1 및 i+1)에 영향을 미칠 가능성이 있음을 의미한다. 또한, 범위 2의 해머는 로우(i-2 및 i+2)도 더 적은 정도의 영향을 받을 것임을 의미하며, 더 높은 범위에 대해서도 이러한 방식이 적용된다. 희생자 로우(i)가 겪는 범위 p의 해머 공격의 수준은 아래와 같이 2×p개의 이웃 로우의 활성화의 가중 합으로 표현될 수 있다.
+ (로우(i-p)의 활성화 횟수) x RH_coeff_p
+ (로우(i-(p-1))의 활성화 횟수) x RH_coeff_(p-1)
+ …
+ (로우(i-2)의 활성화 횟수) x RH_coeff_2
+ (로우(i-1)의 활성화 횟수) x 1
+ (로우(i+1)의 활성화 횟수) x 1
+ (로우(i+2)의 활성화 횟수) x RH_coeff_2
+ …
+ (로우(i+(p-1))의 활성화 횟수) x RH_coeff_(p-1)
+ (로우(i+p)의 활성화 횟수) x RH_coeff_p
이 합으로부터 얻어진 공격 수준이 임계값을 초과하는 경우, 로우(i)에 저장된 데이터는 변경되었을 수 있다. 임계값은 범위 1의 공격 수준의 정의가 일반적인 이전의 로우 해머 정의를 충족하도록, 로우(i-1 및 i+1)의 활성화 횟수에 적용되는 계수(RH_coeff)가 1이 되도록 하는 방식으로 정의된다. 물론, 계수(RH_coeff_n)는 해머링되는 로우로부터 멀어질수록 점점 더 약해진다. 이러한 이유로, 이것은 제한된 범위(1, 2, 3…)의 로우 해머 현상을 고려하는데만 유용하다.
이러한 일반적인 가중 합 정의를 사용하는 범위 2 이상의 해머 현상을 모니터링할 수 있는 로직은 DRAM에 효과적으로 통합되기에는 너무 복잡하고 너무 느릴 수 있다.
따라서, 1보다 큰 범위(2, 3 등)를 갖고 그에 따라 해머링되는 공격자 로우에 바로 인접하지 않은 이웃 로우에도 적은 힘으로 영향을 미칠 수 있는 로우 해머를 관리할 수 있는 알고리즘이 필요하다.
문헌 US9214216은 로우 해머 효과로부터 DRAM 메모리 소자를 보호하기 위한 로직을 개시한다. 이 문헌에 따르면, 메모리 셀의 로우는 블록으로 조직화되고, 로우의 활성화 횟수는 각 블록에 대해 카운트된다. 한 블록의 카운터가 임계 해머 값에 도달하면, 해당 블록이 로우 해머링되는 것을 방지하기 위해 모든 리프레시 오퍼레이션을 전용(redirecting)하여 그 블록의 로우들이 리프레시 된다. 이 블록 리프레시 기간 동안, 이 로직은 다른 블록에서 예방적 리프레시를 수행할 수 없고, 이는 이 로직을 복잡한 해머 시나리오와 관련하여 취약하게 만들고 이 현상으로부터 메모리 소자를 완벽하게 보호할 수 없게 만든다.
문헌 US20200111525는 해머 현상이 메모리 소자에 미치는 영향을 제한하려는 시도로서, 주기적인 리프레시 커맨드에 추가하여, 리프레시 관리 커맨드를 발행하는 것을 목표로 하는 방법을 개시한다. 이 문헌은 특히 호스트를 메모리 소자에 연결하는 버스를 효율적으로 사용하기 위해 예방적 리프레시 오퍼레이션을 다른 오퍼레이션에 통합하려고 한다. 이를 위해, 해당 뱅크가 활성화될 때마다 뱅크 활성화 카운터가 증가된다. 이 카운터가 임계값을 초과하면, 뱅크 리프레시 오퍼레이션을 수행할 목적으로 리프레시 관리 커맨드가 전송된다. 이 오퍼레이션은 반드시 즉시 수행될 필요는 없고, 이 오퍼레이션이 수행될 때 활성화 카운터가 감소된다. 이 문헌은 뱅크의 어떤 로우가 리프레시 오퍼레이션의 대상이 되어야 하는지 어떤 식으로든 지정하지 않고, 로우 해머의 영향을 방지하는 로직을 구성하는 것도 가능하게 하지 않으며, 더구나 확실하고 입증 가능한 방지를 보장하지도 못한다.
본 발명의 주된 목적은 이러한 제한사항을 적어도 부분적으로 해결하는 로우 해머 효과로부터 DRAM 메모리 소자를 보호하는 방법을 제공하는 것이다. 보다 구체적으로, 본 발명의 목적은 두 활성화를 분리하는 최소 시간 내에 어떤 문제도 없이 수행될 수 있을 만큼 충분히 간단하고 1보다 큰 범위를 갖는 해머 효과를 방지하는 것을 가능하게 해주는 DRAM 메모리 뱅크의 로우의 활성화를 모니터링하는 방법을 제공하는 것이다. 이 방법은 임의의 유형의 DRAM 메모리에 실제로 사용될 수 있지만, 특히 비교적 낮은(예컨대, 40,000 미만인) 임계 해머 값을 갖는 메모리에 가장 잘 적용된다.
본 발명은 메모리 컨트롤러, 버퍼 회로 또는 DRAM 메모리 소자에 통합될 수 있다. DRAM 메모리는 프로세서를 통합할 수 있다.
이러한 목적을 달성하기 위해, 본 발명의 목적은 로우 해머 효과로부터 DRAM 메모리 소자를 보호하는 방법을 제안하며, 이 메모리 소자는 메모리 로우들로 구성된 복수의 뱅크를 포함하고, 이 방법은 뱅크 로우의 연속적인 섹션인 서브-뱅크를 각각 정의하도록 구성된 적어도 하나의 방지 로직에 의해 구현된다.
이 방지 로직은, 주어진 서브 뱅크의 로우의 활성화 시, 1보다 작은 진행 계수(progress coefficient)만큼, 주어진 서브 뱅크의 랭크(rank)의 예방적 리프레시 필요 횟수를 증가시키도록 구성된다.
이 방지 로직은 또한 서브 뱅크의 모든 랭크가 아니라 적어도 하나를 예방적 리프레시하도록 예방적 리프레시 시퀀스를 실행하도록 구성되며, 이 예방적 리프레시 시퀀스는 아래의 단계들을 포함한다:
- 메모리 소자의 서브 뱅크 중 결정된 서브 뱅크의 한 랭크의 예방적 리프레시에 대한 필요성을 식별하고, 이러한 필요에 따라 다음 단계를 적용하는 단계;
- 결정된 서브 뱅크와 연관된 현재 로우 인덱스에 의해 지정된 현재 로우를 리프레시하기 위한 오퍼레이션을 트리거하는 단계;
- 결정된 서브 뱅크와 연관된 현재 로우 인덱스(RELATIVE_INDEX)를 증가시키는 단계;
- 결정된 서브 뱅크(j)의 랭크의 예방적 리프레시 필요 횟수(REFRESH_ACC, FRACTION_ACC, FRACTION_ACC/PARAM_D)를 감소시키는 단계.
본 발명에 따르면, 예방적 리프레시 시퀀스는 적어도 결정된 서브 뱅크의 모든 로우를 리프레시하도록 유도하는 예방적 리프레시 사이클의 단계를 형성하고, 결정된 서브 뱅크에서 활성화되는 로우의 개수가 임계 해머 값을 초과하기 전에 결정된 서브 뱅크의 예방적 리프레시 사이클이 완전히 실행된다.
본 발명의 다른 유리하고 비제한적인 특징에 따르면, 단독으로 또는 임의의 기술적으로 실현 가능한 조합으로 취해지는 아래와 같은 특징을 갖는다:
- 각각의 서브 뱅크는 활성화 임계값과 연관되고, 방지 로직은 메모리 소자의 서브 뱅크들 중 주어진 서브 뱅크의 로우의 각각의 활성화 시 그 주어진 서브 뱅크와 연관된 활성화 카운터를 증가시키는 단계를 실행하도록 구성된다.
- 각각의 주어진 서브 뱅크의 예방적 리프레시 필요 횟수는 데이터 구조에 저장된다.
- 데이터 구조는 트리형 구조로 조직화된다.
- 결정된 서브 뱅크의 예방적 리프레시에 대한 필요성을 식별하는 단계는 1 이상의 예방적 리프레시 필요 횟수를 갖는 서브 뱅크를 식별하기 위해 데이터 구조를 브라우징(browsing)하는 단계를 포함한다.
- 예방적 리프레시 필요 횟수의 결정은 펜딩 리프레시 카운터(pending refresh counter)를 증가시키는 단계를 포함하고, 예방적 리프레시 시퀀스는 펜딩 리프레시 카운터를 감소시키는 단계를 포함하며, 예방적 리프레시 시퀀스는 펜딩 리프레시 카운터가 바닥 값을 초과하는 한 반복적으로 실행된다.
- 주어진 서브 뱅크의 예방적 리프레시 필요 횟수가 1의 값에 도달한 때 주어진 서브 뱅크의 인덱스가 리프레시를 대기하는 서브 뱅크 목록에 삽입된다.
- 이 목록은 그 사이에 데이터 구조의 엔트리를 체인 연결(chaining)함으로서 형성된다.
- 결정된 서브 뱅크의 예방적 리프레시에 대한 필요성을 식별하는 단계는 리프레시를 대기하는 서브 뱅크 목록이 비어 있지 않음을 식별하는 단계로 구성된다.
- 주어진 서브 뱅크의 예방적 리프레시 필요 횟수가 1의 값 미만이 되면 그 주어진 서브 뱅크의 인덱스가 목록으로부터 제거된다.
- 모든 서브 뱅크의 예방적 리프레시 필요 횟수가 1 미만이면, 결정된 서브 뱅크의 예방적 리프레시에 대한 필요성을 식별하는 단계는, 데이터 구조에서, 활성화 카운터가 최대인 서브 뱅크를 식별하는 단계 및 리프레시를 위한 오퍼레이션을 트리거한 후 활성화 카운터를 리셋하는 단계를 포함한다.
- 결정된 서브 뱅크의 예방적 리프레시에 대한 필요성을 식별하는 단계는 주어진 서브 뱅크의 활성화 카운터를 증가시키는 단계의 끝에서 실행되며, 주어진 서브 뱅크의 예방적 리프레시 필요 횟수와 결정된 임계값을 비교하는 단계를 포함한다.
- 현재 로우를 리프레시하기 위한 오퍼레이션을 트리거하는 단계는 실현하기 위한 리프레시 오퍼레이션의 설명을 버퍼 메모리에 임시 저장하는 단계를 포함한다.
- 예방적 리프레시 필요 횟수를 결정하는 단계는:
- 주어진 서브 뱅크의 활성화 카운터를 증가시키는 단계(모듈로(modulo) 활성화 임계값);
- 증가 모듈로 활성화 임계값이 주어진 서브 뱅크의 활성화 카운터를 0으로 리셋하는 경우, 주어진 서브 뱅크의 예방적 리프레시 필요 횟수를 증가시키는 단계를 포함한다.
- 활성화 카운터는 활성화 임계값보다 엄격하게 더 작은 파라미터만큼 증가한다.
- 예방적 리프레시 사이클은 또한 결정된 서브 뱅크의 낮은 내부 마진(margin) 및 높은 내부 마진의 로우들을 적어도 2번 리프레시하도록 유도한다.
- 메모리 소자의 주어진 서브 뱅크의 로우의 각각의 활성화 시, 주어진 서브 뱅크와 연관된 활성화 카운터를 증가시키는 단계는 또한 적어도 해당 활성화에 의해 해머링될 가능성이 있는 로우를 갖는 모든 다른 서브 뱅크의 활성화 카운터를 증가시킨다.
- 서브 뱅크의 활성화 임계값은 온도, 공급 전압, 서브 뱅크의 활성화 빈도 또는 메모리 특성에 따라 가변적이다.
- 활성화 임계값은 서브 뱅크마다 다르다.
- 현재 로우를 리프레시하기 위한 오퍼레이션을 트리거하는 단계는 결정된 서브 뱅크가 상주하는 메모리 뱅크를 위한 컨트롤 트래픽(control traffic)에 예방적 리프레시 요청을 삽입하는 단계를 포함한다.
- 활성화 임계값은 결정된 서브 뱅크의 예방적 리프레시의 전체 사이클 동안 가변 진행 계수를 정의한다.
- 뱅크는 다양한 크기의 서브 뱅크로 분해된다.
- 방지 로직은 복수의 뱅크와 연관되어 있다.
- 각각의 서브 뱅크는 활성화 임계값과 연관되고, 방지 로직은 각각의 서브 뱅크와 연관된 활성화 카운터를 증가시키는 단계를 주기적으로 실행하고 서브 뱅크의 예방적 리프레시 필요 횟수를 결정하도록 구성된다.
다른 양태에 따르면, 본 발명은 제시된 보호 방법을 구현하도록 구성된 로우 해머 효과 방지 로직을 포함하는 DRAM 메모리 소자, DRAM 메모리 소자의 버퍼 회로 또는 컨트롤러를 제공한다.
본 발명의 다른 유리하고 비제한적인 특징에 따르면, 단독으로 또는 임의의 기술적으로 실현 가능한 조합으로 취해지는 아래와 같은 특징을 갖는다:
- DRAM 메모리 소자는 적어도 하나의 통합 프로세서를 포함한다.
- DRAM 메모리 소자는 복수의 교체 블록을 포함하고, 이 교체 블록은 한 블록의 로우가 다른 교체 블록의 로우를 해머에 의해 공격하는 것을 방지하는 임의의 수단에 의해 서로 분리된다.
- 교체 블록의 로우는 단일 서브 뱅크의 결함 있는 로우를 대체하도록 의도된 것이다.
- 교체 블록의 로우는 복수의 서브 뱅크의 결함 있는 로우를 대체하도록 의도된 것이고, 교체 블록을 구성하는 로우들은 모두 교체 블록을 공유하는 서브 뱅크의 예방적 리프레시 사이클의 일부이다.
- 교체 블록은 서브 뱅크를 정의한다.
- DRAM 서브 뱅크는 교체 로우를 포함하며, 이러한 교체 로우들은 서브 뱅크의 예방적 리프레시 사이클의 일부이다.
본 발명의 다른 특징 및 장점들은 첨부된 도면을 참조하여 본 발명에 대한 아래의 상세한 설명을 읽을 때 명백해질 것이다:
도 1a는 DRAM 메모리 소자를 보호하는 방법의 일 실시예의 단계들의 일부를 나타낸다.
도 1b는 DRAM 메모리 소자를 보호하는 방법의 일 실시예의 예방적 리프레시 시퀀스를 나타낸다.
도 2는 DRAM 메모리 소자를 보호하는 방법의 제2 실시예를 나타낸다.
도 3은 DRAM 메모리 소자를 보호하는 방법의 일 실시예에서의 트리형 데이터 구조를 나타낸다.
정의 및 리마인더
본 명세서에서, 로우의 "토폴로지컬 인덱스"라는 용어는 DRAM 뱅크 내에서 해당 로우의 물리적 순서를 나타낸다. 기본적으로, 로우 인덱스 또는 더 간단하게 어떤 로우를 언급하는 경우, 그것은 로우 토폴로지컬 인덱스이다. 로우 논리 인덱스는 JEDEC DDR3/4/5 및 유사한 프로토콜에 정의된 바와 같이, 로우를 활성화하기 위한 활성화(ACTIVATE) 커맨드의 파라미터로서 전달되는 로우 인덱스를 지칭한다. 구현에 따라, 논리 인덱스(i)의 로우는 토폴로지컬 인덱스와 동일한 값 i를 가질 수도 있고 상이한 값 j를 가질 수도 있으며, 이 경우 함수가 i로부터 j를 얻는 것을 가능하게 해준다.
DRAM 메모리 뱅크의 로우가 시간 경과에 따른 그들의 메모리 포인트의 전하 강하(charge drop)를 보상하기 위해, 주기적으로 리프레시 된다는 것을 상기해야 한다. 뱅크의 모든 로우가 리프레시되는 시간을 리프레시 윈도우라 한다. 리프레시 윈도우는 시간상 서로를 뒤따르는데, 리프레시 윈도우(r)의 종료 후 리프레시 윈도우(r+1)의 시작이 뒤따른다.
또한, 로우는 해머 효과를 방지하기 위해 예방적으로 리프레시 될 수 있는데, 본 설명의 케이스가 이에 해당된다. 문헌 FR3066842A1에 기술된 바와 같이, 예방적 리프레시의 실행은 주기적 리프레시를 위해 초기에 제공되는 리프레시 시간 슬롯 내에서 수행될 수 있으며, 이에 따라 후자는 지연된다. 그 결과, 예방적 리프레시가 삽입된 리프레시 윈도우는 주기적 리프레시만 수행되는 리프레시 윈도우보다 더 긴 지속 시간을 가지고, 이러한 리프레시 윈도우의 지속 시간의 증가는 그것이 적절하게 유지되기만 한다면 문제가 되지 않는다. 대안은 예를 들어 예방적 리프레시를 위해 미리 예약한 시간 슬롯 내에서, 정기적인 리프레시와 관련하여 또는 수행된 로우 활성화의 횟수와 관련하여 고정 또는 가변 레이트를 갖도록 구성된다.
고속 로우 해머 방지 알고리즘
하기에서, 로우 해머 효과로부터 DRAM 메모리 소자를 보호하기 위한 방법의 제1 실시예(지연 생성이라고도 함)가 상세히 제공된다. 이 프로세스는 적어도 하나의 방지 로직에 의해 구현된다. R 개의 로우를 포함하는 메모리 뱅크는 크기가 동일하거나 하나의 로우 내에서 동일한 N 개의 서브-뱅크로 분할되고, 서브 뱅크는 S 또는 S+1 개의 로우를 포함하며, 여기서 S는 R을 N으로 나눈 정수와 같다(S = R / N).
설명의 편의를 위해, 서브 뱅크는 동일한 개수의 로우를 갖는 것으로 간주된다. 당업자는 아래에 제공된 설명에 기초하여 추론함으로써 특정 서브 뱅크가 다른 서브 뱅크보다 더 많은 로우를 갖는 경우에 아래에 제공된 설명을 적용하는 방법을 알 것이다.
위상학적으로 정렬된 로우로 구성된 서브 뱅크들은 서로 위상학적으로 정렬되고, 일반적으로 서브 뱅크(b)는 토폴로지컬 인덱스(S × b 내지 (S × (b + 1)) - 1)의 로우를 포함한다. 이러한 방식으로, 아래와 같이 하나의 로우를 그것의 상대적 로우의 토폴로지컬 인덱스로 나타낼 수 있다.
● 서브 뱅크 표기 [b][0]은 서브 뱅크(b)의 제1 로우를 나타내고,
● 서브 뱅크 표기 [b][1]은 서브 뱅크(b)의 제2 로우를 나타내고,
● 서브 뱅크 표기 [b][2]는 서브 뱅크(b)의 제3 로우를 나타내고,
● …
● 서브 뱅크 표기 [b][i]는 서브 뱅크(b)의 (i+1)번째 로우를 나타내고,
● 서브 뱅크 표기 [b][S - 1]는 서브 뱅크(b)의 마지막 로우를 나타낸다.
방지 로직은 적어도 하나의 뱅크와 연관되고 기억 요소를 포함하며, 이 기억 요소는 다음을 포함한다:
● 'NBR_REFRESH_PENDING'이라는 이름의 펜딩 리프레시 변수 또는 카운터.
● 'RH_TABLE'이라는 이름을 갖고 N 개의 엔트리를 포함하는 테이블과 같은, 데이터 구조(N은 서브 뱅크의 개수). 이 테이블의 각각의 엔트리는 아래와 같은 3개의 필드를 포함한다.
o 활성화 카운터를 형성하고 0부터 PARAM_D - 1의 값까지 카운팅하는 'FRACTION_ACC'라는 이름의 필드. PARAM_D는 주어진 구현에 대해 일정할 수 있고 서브 뱅크의 활성화 임계값을 정의하는 파라미터이다.
o 0부터 충분한 값까지의 범위 중 한 값을 취할 수 있는 'REFRESH_ACC' 필드. 이 필드는 제1 구현 모드에서 서브 뱅크 내의 랭크의 예방적 리프레시 필요 횟수(더 정확히 말하자면, 이 수치의 정수 부분, 이에 대해서는 추후에 자세히 설명될 것이다)를 정의한다.
o 0부터 S-1까지의 범위 중 한 값을 취할 수 있는 'RELATIVE_INDEX'라는 이름의 현재 인덱스.
DRAM 메모리 소자가 리셋(RESET)된 때, 이 로직은 다음과 같이 초기화된다.
● NBR_REFRESH_PENDING 리프레시 카운트가 0으로 설정된다.
● RH_TABLE 데이터 구조의 모든 엔트리의 모든 필드가 0으로 설정된다.
설명된 제1 구현 모드에서 그리고 도 1a를 참조하면, DRAM 메모리 소자의 정상 동작 동안 및 서브 뱅크(b)에 속하는 로우를 대상으로 하는 뱅크의 각각의 활성화 시, 방지 로직은 다음과 같은 처리를 수행한다.
● RH_TABLE[b].FRACTION_ACC == PARAM_D-1 이면:
o RH_TABLE[b].FRACTION_ACC는 0으로 설정되고,
o RH_TABLE[b].REFRESH_ACC는 1만큼 증가되고,
o NBR_REFRESH_PENDING은 1만큼 증가되고,
● 그렇지 않으면, RH_TABLE[b].FRACTION_ACC은 1만큼 증가된다.
즉, 이 제1 구현 모드에서, 메모리의 서브 뱅크(b)의 로우의 각각의 활성화 시, 예방적 리프레시 필요 횟수(REFRESH_ACC)를 증가시키는 단계는 다음 단계들을 수행함으로써 수행된다:
● 서브 뱅크(b)의 활성화 카운터(FRACTION_ACC)가 활성화 임계값(PARAM_D-1)과 같으면, 서브 뱅크(b)의 예방적 리프레시 필요 횟수(REFRESH_ACC)가 증가되고, 펜딩 리프레시 카운터(NBR_REFRESH_PENDING)가 증가되고, 서브 뱅크(b)와 연관된 활성화 카운터(FRACTION_ACC)는 0으로 리셋된다.
● 그렇지 않으면, 활성화되는 로우를 포함하는 서브 뱅크(b)의 활성화 카운터(FRACTION_ACC)가 증가된다.
따라서, FRACTION_ACC의 증가는 모듈로 활성화 임계값(PARAM_D)으로 수행된다.
동시에, 백그라운드에서, 이 제1 구현 모드의 방지 로직은 도 1b에 도시된 예방적 리프레시 시퀀스를 실행한다. 펜딩 리프레시 카운터(NBR_REFRESH_PENDING)가 0이 아닌 한(그리고 더 일반적으로 말하자면 그것이 바닥 값을 초과하는 한), 방지 로직은 뱅크에 대한 커맨드의 흐름 내에, 로우의 예방적 리프레시를 가능한 한 빨리 삽입하며, 그 동안 아래와 같이 토폴로지컬 인덱스를 계산한다.
● 최대 값을 갖는 예방적 리프레시 필요 횟수(REFRESH_ACC)를 갖는 엔트리(j)(즉, 서브 뱅크)를 식별하기 위해 RH_TABLE 데이터 구조가 스캐닝된다. 여러 개의 엔트리가 같으면, 그 중 하나가 선택된다. 이러한 방식으로, 로케이팅(locating) 동안, 예방적 리프레시가 가장 필요한 메모리 소자의 서브 뱅크(j)가 식별된다.
● RH_TABLE[j].REFRESH_ACC 필드는 1만큼 감소한다. 즉, 서브 뱅크(j)와 연관된 예방적 리프레시 필요 횟수가 1만큼 감소한다.
● 이 로직은 펜딩 리프레시 카운터(NBR_REFRESH_PENDING)를 감소시킨다.
● 예방적 리프레시를 위해 선택된 서브 뱅크(j)의 로우의 상대 토폴로지컬 인덱스는 데이터 구조의 값(RH_TABLE[j].RELATIVE_INDEX)이고, 해당 서브 뱅크(j)의 현재 인덱스 로우(RELATIVE_INDEX)의 예방적 리프레시 오퍼레이션이 트리거된다.
● RH_TABLE[j].RELATIVE_INDEX는 증가된다(모듈로 S). 즉, 서브 뱅크(j)의 현재 인덱스(RELATIVE_INDEX)는 증가되어(모듈로 S) 이 서브 뱅크를 순환한다.
이 특정 구현 모드에서 제공된 바와 같이 펜딩 리프레시 카운터(NBR_REFRESH_PENDING)를 사용하는 것이 필수적인 것은 아님을 이해해야 한다. 이 NBR_REFRESH_PENDING 카운터가 널이 아님(non-nullity)을 조건으로 하는 대신, 예방적 리프레시 시퀀스의 실행(및 구체적으로 서브 뱅크(j)의 예방적 리프레시의 필요성의 식별)은 조건 없이 수행될 수 있으며, 데이터 구조의 엔트리가 0이 아닌 예방적 리프레시 필요 횟수(REFRESH_ACC)를 포함하는지 여부조차 알 필요가 없다.
예방적 리프레시 시퀀스가 뱅크에 대한 커맨드의 흐름에 단일 로우(또는 수 개의 로우)의 예방적 리프레시를 삽입하기 때문에, 이 시퀀스는 서브 뱅크에 대한 액세스를 차단하지 않는다. 이것이 예방적 리프레시 시퀀스가 서브 뱅크에 대한 정상적인 액세스와 "동시에" 실행된다고 말하는 이유이다.
또한, {REFRESH_ACC, FRACTION_ACC}의 쌍이 랭크의 예방적 리프레시의 비-정수 횟수를 나타내고, 그 중 REFRESH_ACC는 정수 부분이고, 후자는 주어진 서브 뱅크에 대해 보류 중인(pending) 예방적 리프레시 오퍼레이션의 수를 나타냄을 이해해야 한다. 지연된 생성을 갖는 이러한 제1 실시예에서, 이것은 1보다 엄격하게 클 수 있는데, 이는 서브 뱅크가 임의의 이러한 오퍼레이션의 개시 없이도 복수의 예방적 리프레시를 요구하기에 충분한 횟수만큼 활성화되었을 수 있음을 의미한다. 고려되는 메모리 프로토콜에 따르면, 예방적 리프레시를 메모리 트래픽에 삽입하기 위한 레이턴시(latency)는 상이한 서브 뱅크에 속할 수 있는 보류 중인 예방적 리프레시의 백로그(bachlog)가 일시적으로 수십 번의 예방적 리프레시를 초과할 수 있는 정도일 수 있다.
이 설명의 뒷부분에서 설명한 바와 같이, 예방적 리프레시 필요 횟수는 정수가 아닌 값을 가질 수 있다.
RH_TABLE 데이터 구조 내의 검색은, FR3066842A1에서 제안했던 솔루션과 달리, 두 활성화를 분리하는 매우 짧은 최소 시간으로 제한되지는 않지만, 두 예방 리프레시의 삽입을 분리하는 훨씬 더 길고 유연한 시간으로 제한된다.
제1 구현 모드에서, 각 서브 뱅크의 랭크의 예방적 리프레시 필요 횟수(REFRESH_ACC, FRACTION_ACC)는 데이터 구조(RH_TABLE)에 저장된다. 서브 뱅크와 연관된, 이 구조의 카운터 및 현재 인덱스는 실현을 기다리는 예방적 리프레시를 어느 정도 저장한다. 리프레시 오퍼레이션 자체는 그것이 수행될 수 있을 때 트리거된다. 이것은 버퍼 메모리를 필요로 하지 않다는 이점을 갖지만, 백그라운드 작업이 펜딩 리프레시 오퍼레이션을 찾기 위해 서브 뱅크와 연관된 카운터를 스캔해야 한다.
예방적 리프레시 시퀀스는 지연 생성을 갖는 구현 모드에서 방금 제시했던 것처럼, 식별 단계 동안, 백그라운드에서, 데이터 구조(RH_TABLE) 전체를 처리하는(going through) 것을 목표로 하는 것과는 다른 형태를 취할 수 있다.
따라서, "즉시 생성"이라고도 불리는 제2 구현 모드에 따르면, 예방적 리프레시 시퀀스는 서브 뱅크(b)의 예방적 리프레시 필요 횟수(REFRESH_ACC)를 증가시키는 단계의 끝에서 바로 실행된다. 이 경우 및 도 2를 참조하면, 해당 서브 뱅크(b)의 예방적 리프레시 오퍼레이션은 이 서브 뱅크의 예방적 리프레시 필요 횟수(REFRESH_ACC)가 1의 임계값에 도달하거나 초과하는 경우에 준비된다. 이 비교는 결정된 서브 뱅크의 랭크의 예방적 리프레시에 대한 필요성을 식별하는 단계를 구성한다. 예방적 리프레시 시퀀스의 후속 단계들이 계속되면, 필요 횟수(REFRESH_ACC)는 감소한다. 따라서, REFRESH_ACC는 1의 값을 초과할 수 없고 이 값을 매우 일시적으로만 가질 수 있으므로, 아마도 이러한 "즉시 생성"이라 불리는 모드에서 REFRESH_ACC 필드 없이 수행하는 것이 가능하고, 예방적 리프레시 필요 횟수는 정수가 아닌 값(실제로 소수)(FRACTION_ACC)으로만 표현되며, 이 값은 항상 1 미만으로 유지된다. 이것이 도 2에서 REFRESH_ACC의 선택적 증가 및 감소 단계가 괄호 안에 놓인 이유이다.
즉시 생성을 갖는 이 제2 구현 모드에서, 필요성이 발견되는 바로 그 순간에 예방적 리프레시 오퍼레이션이 트리거되고, 그것이 즉시 실행될 수 없는 경우, 요청은 버퍼 메모리(제한하지 않는 예로서, FIFO 버퍼)에 일시적으로 저장되어 실현될 때까지 보류된다. 달리 말하면, 현재 로우를 리프레시하기 위한 오퍼레이션의 트리거링은 실현할 리프레시 오퍼레이션의 설명을 버퍼 메모리에 임시 저장하는 것을 포함한다. 서브 뱅크의 랭크의 예방적 리프레시에 대한 필요성을 식별하는 단계는 REFRESH_ACC 카운터(또는 FRACTION_ACC 카운터)를 증가시키는 단계와 함께 수행되며, 이것은 더 이상 백그라운드 작업을 형성하지 않고 도 2에서 볼 수 있듯이 로우의 각각의 활성화 시 트리거되는 시퀀스에 추가된다.
이 제2 모드는 서브 뱅크와 연관된 카운터를 통해 실행되는 백그라운드 작업을 필요하지 않는다는 장점을 갖는다.
일반적인 작동 원리
위 섹션에서 설명한 바와 같이, 예방적 리프레스 시퀀스는, 지연 생성 또는 즉시 생성 모두에서, 서브 뱅크의 단일 로우를 리프레시하기 위한 오퍼레이션을 트리거한다. 아마도, 예방적 리프레시 시퀀스는 서브 뱅크의 수 개의 로우를 리프레시하기 위한 오퍼레이션을 트리거할 수 있지만, 이 개수는 항상 이 서브 뱅크 내의 로우의 총 개수보다 훨씬 적다. 이 원리는 예방적 리프레시 오퍼레이션을 위해 서브 뱅크가 액세스 차단되는 시간을 한 번 또는 수 번의 활성화를 수행하는데 필요한 시간으로 제한한다.
본 발명의 로직에 의해, 주어진 서브 뱅크의 모든 로우의 리프레시는 이 서브 뱅크의 예방적 리프레시 사이클을 형성한다. 리프레시 윈도우와 달리, 예방적 리프레시 사이클은 시간 또는 지연의 개념과 관련이 없고, 예방적 리프레시 사이클에 걸리는 시간은 제한되지 않는다. 서브 뱅크의 로우가 절대 활성화되지 않는다면, 예방적 리프레시 필요 횟수가 증가하지 않으며, 이 서브 뱅크의 현재 리프레시 사이클이 진행되지 않으므로, 무한한 시간이 걸린다.
서브 뱅크에 속하는 로우의 각각의 활성화는 예방적 리프레시 필요 횟수의 진행 및 그에 따라 해당 서브 뱅크의 현재 예방적 리프레시 사이클의 진행에 기여하고, 이 리프레시 사이클은 서브 뱅크를 순환 스위핑(circularly sweeping)한다. PARAM_D 활성화 임계값은 해당 서브 뱅크의 로우의 각각의 활성화 동안 서브 뱅크의 리프레시 사이클의 진행률을 설정하는 것을 가능하게 해준다. 이 파라미터(즉, 본 명세서의 나머지 부분에서 "진행 계수" 또는 "예방적 리프레시 계수"라고도 하며, 1/PARAM_D의 값으로 정의되는 또는 보다 일반적으로 아래에 설명한 바와 같이 PARAM_N/PARAM_D의 값으로 정의되는 상기 진행률)는 예방적 리프레시 사이클이 그 이웃을 해머링하여 로우의 내용을 손상시키는데 필요한 최소 활성화 횟수(임계 해머 값)보다 적은 횟수의 활성화로 수행되는 방식으로 선택된다.
따라서, FRACTION_ACC 활성화 카운터가 5비트 폭인 경우, PARAM_D 활성화 임계값에 대한 가능한 값은 1 내지 32의 범위이다.
● PARAM_D == 1
o 1 활성화가 1 예방적 리프레시를 제공한다.
o 예방 리프레시 계수 = 100%
● PARAM_D == 2
o 2 활성화가 1 예방적 리프레시를 제공한다.
o 예방 리프레시 계수 = 50%
● …
● PARAM_D == 31
o 31 활성화가 1 예방적 리프레시를 제공한다.
o 예방 리프레시 계수 = 3.2%
● PARAM_D == 32
o 32 활성화가 1 예방적 리프레시를 제공한다.
o 예방 리프레시 계수 = 3.1%
예를 들어, 각각의 256 로우의 256 서브 뱅크로 분할되는 65536 로우로 이루어진 뱅크를 고려하면, 데이터 구조(RH_TABLE)는 각각의 서브 뱅크에 대해 하나씩, 256 엔트리를 갖는다. 5000 개의 바로 인접한 로우에 대한 로우의 임계 해머 값에 대해, 본 발명에 따른 방법은 공격적인 해머링 값을 계산하지 않으며, 따라서 1보다 큰 범위에 대한 해머 계수를 필요로 하지 않는다. 그러나, 5000번의 활성화에서, 서브 뱅크의 256 로우는 예방적으로 리프레시되어야 한다(즉, 진행 계수가 256/5000 또는 5.12%여야 한다). 5.2%의 진행 계수를 제공하는, 19의 활성화 임계값(PARAM_D)의 값은 적절해 보이는 가장 작은 진행 계수를 제공한다. 예방적 리프레시 자체가 실제로 활성화라는 점을 고려하면, 진행 계수의 계산은 다음과 같다.
256 / (5000-256) = 5.39 %
따라서, 18의 활성화 임계값(PARAM_D)의 값은 5.55%의 진행 계수를 제공한다.
일반적으로 말하면, 주어진 서브 뱅크의 활성화 임계값(PARAM_D)은 다음 식에 따라 선택되어야 한다.
PARAM_D ≤ E[(C-S)/S]
여기서, 함수, E는 정수부 함수이고, C는 주어진 서브 뱅크 내의 로우의 임계 해머 값이고, S는 주어진 서브 뱅크 내의 로우의 개수이다.
2개의 예방적 리프레시 사이클 사이에 이러한 진행 계수, S/(C-S)를 가지면, 이웃한 로우의 내용을 손상시킬 만큼 충분한 횟수 동안 로우를 해머링하는 것이 불가능해지는데, 그 이유는 이러한 이웃한 로우들이 임계 해머 값에 도달하기 전에 예방적으로 리플레시 될 것이기 때문이다.
달리 말하자면, 서브 뱅크 내의 로우 활성화의 횟수가 임계 해머 값을 초과하기 전에 서브 뱅크의 완전한 예방적 리프레시 사이클이 작동된다.
서브 뱅크의 크기가 작을수록 필요한 진행 계수가 낮아지므로 성능 패널티(활성화당 예방적 리프레시 %)가 낮아진다.
서브 뱅크의 정션(junction)에서의 효과 관리
서브 뱅크의 두 끝 중 하나 근처에 위치한 로우의 활성화가 이웃한 서브 뱅크의 로우의 내용에 해머에 의한 손상을 일으키지 않도록, DRAM 뱅크의 서브 뱅크들은 거리를 두고 및/또는 하드웨어 요소에 의해 물리적으로 분리될 수 있다. 이것은 구체적으로 서브 뱅크가 중간 센스 증폭기의 로우에 의해 분리된 경우이다. 이 경우, 위 섹션에서 설명했던 로직은 이미 해머 효과를 올바르게 방지한다.
해머 효과가 서브 뱅크의 정션을 가로지르는 경우, 이웃 서브 뱅크로의 리프레시 사이클의 유입에 대한 제1 솔루션이 구현될 수 있다. 이 솔루션은 서브 뱅크의 낮은 마진, 높은 마진 및 코어의 개념을 사용한다.
● 서브 뱅크(b)의 낮은 외부 마진은 서브 뱅크(b)의 첫 번째 로우들 중 하나의 활성화에 의해 영향을 받을 수 있는, 서브 뱅크(b-1)의 마지막 로우들의 세트이다.
● 서브 뱅크(b)의 낮은 내부 마진은 서브 뱅크(b-1)의 마지막 로우들 중 하나의 활성화에 의해 영향을 받을 수 있는, 서브 뱅크(b)의 첫 번째 로우들의 세트이다.
● 서브 뱅크(b)의 높은 외부 마진은 서브 뱅크(b)의 마지막 로우 중 하나의 활성화에 의해 영향을 받을 수 있는, 서브 뱅크(b+1)의 첫 번째 로우들의 세트이다.
● 서브 뱅크(b)의 높은 내부 마진은 서브 뱅크(b+1)의 첫 번째 로우들 중 하나의 활성화에 의해 영향을 받을 수 있는, 서브 뱅크(b)의 마지막 로우들의 세트이다.
● 서브 뱅크(b)의 코어는 서브 뱅크(b)의 내부 마진에 속하지 않는 서브 뱅크(b)의 로우들의 세트이다.
로우 해머 효과가 대칭적이기 때문에(로우(i+n)을 활성화하는 것이 로우(i)를 공격하는 것과 유사한 방식으로, 로우(i)를 활성화하는 것은 로우(i+n)를 공격한다), 마진 정의는 다음을 의미한다.
● 뱅크(b)의 낮은 내부 마진은 뱅크(b-1)의 높은 외부 마진이고,
● 뱅크(b)의 높은 내부 마진은 뱅크(b+1)의 낮은 외부 마진이다.
그 다음, 서브 뱅크의 전체 리프레시 사이클은 확장되어, 그것의 낮은 마진과 높은 마진(내부 및 외부)에 속하는 로우들을 두 번 리프레시한다.
P 개의 예방적 리프레시를 포함하는 리프레시 사이클에서, 마진 로우(MR)의 2회 리프레시는 균형 잡힌 방식으로 분배된다. 로우(MR)의 제1 예방적 리프레시는 다른 로우를 대상으로 하는 P/2 개의 예방적 리프레시에 의해 로우(MR)의 제2 예방적 리프레시로부터 분리된다.
마진 로우의 이러한 2회 리프레시는 다음과 같은 이유로 유리하다.
● 마진 로우는 -1의 임계 해머 값까지 자신의 서브 뱅크의 활성화에 의해 공격받을 수 있다.
● 마진 로우는 -1의 임계 해머 값까지 자신의 가장 가까운 서브 뱅크의 활성화에 의해 공격받을 수 있다.
결과적으로, 마진 로우에 대한 공격 위협은 비-마진 로우의 2배이고, 따라서 마진 로우가 비-마진 로우(코어 로우)의 레이트의 2배로 예방적 리프레시 사이클에 의해 리프레시 될 필요가 있고, 이는 균형 잡힌 방식으로 각각의 리프레시 사이클이 그것의 대응하는 서브 뱅크의 마진 로우(내부 및 외부)를 2번 리프레시하게 함으로써 달성된다.
필요하다면, 현재 RELATIVE_INDEX 인덱스를 저장하는 필드는 서브 뱅크 코어를 한 번 스위핑(sweeping)하는 것에 추가하여 마진을 2번 스위핑할 만큼 충분한 다이내믹스(dynamics)를 갖도록 확장된다.
서브 뱅크의 정션에서의 해머 문제에 대한 다른 솔루션은 이웃한 서브 뱅크와 연관된 예방적 리프레시 필요 횟수(REFRESH_ACC)를 늘리는 것을 목표로 한다. 이 솔루션은 다음 규칙을 적용하여 구현될 수 있다.
● 서브 뱅크(b)의 첫 번째 로우들 중 하나의 활성화 동안, 필드(RH_TABLE[b-1].REFRESH_ACC)를 증가시키는 단계도 수행된다.
● 서브 뱅크(b)의 마지막 로우들 중 하나의 활성화 동안, 필드(RH_TABLE[b+1].REFRESH_ACC)를 증가시키는 단계도 수행된다.
즉, 서브 뱅크(b)의 활성화되는 로우가 서브 뱅크(b)의 첫 번째 로우들 중 하나인 경우, 로우 해머 관리 오퍼레이션은 앞서 설명한 바와 같이 뱅크(b)에 대해 수행되고, 그 활성화가 이 뱅크의 한 로우와 관련된 것처럼 뱅크(b-1)에 대해서도 수행된다. 이와 유사하게, 서브 뱅크(b)의 활성화되는 로우가 서브 뱅크(b)의 마지막 로우들 중 하나인 경우, 로우 해머 관리 오퍼레이션은 앞서 설명한 바와 같이 뱅크(b)에 대해 수행되고, 그 활성화가 이 뱅크의 한 로우와 관련된 것처럼 뱅크(b+1)에 대해서도 수행된다. 이러한 첫 번째/마지막 로우들은 예를 들어 서브 뱅크(b)의 첫 번째/마지막 2, 3 또는 5개의 로우와 관련될 수 있다.
일반화된 서브 뱅크 활성화 규칙
더 일반적으로, 이 접근 방식은 "지연 생성"을 갖는 제1 구현 모드에 유리하게 통합될 수 있다. 주어진 로우의 활성화 동안, 그 주어진 로우의 활성화에 의해 해머링될 수 있는 로우를 포함하는 모든 서브 뱅크에 대해 예방적 리프레시 횟수(REFRESH_ACC)를 증가시키는 단계가 수행된다. 나중에 알 수 있듯이, 이것은 표준 서브 뱅크의 결함 있는 로우를 교체하기 위해 사용되는 로우를 갖는 교체 서브 뱅크에 적용될 수 있다.
이 일반화된 서브 뱅크 활성화 규칙은 로우 해머 효과의 범위가 서브 뱅크 크기와 관련하여 중요할 때(심지어 더 클 수도 있음), 이러한 경우와 마찬가지로, 활성화된 서브 뱅크 근처에 있는 하나 이상의 서브 뱅크가 해머링될 수 있는 경우 마진 해머링을 해결하는데 특히 유용하다.
제1 예에서, 로우 해머 범위가 서브 뱅크 크기의 절반보다 큰 경우, 서브 뱅크 중간에 있는 로우를 활성화하는 것은 이전 서브 뱅크 및 다음 서브 뱅크 내의 로우들을 동시에 해머링할 수 있다.
제2 예에서, 로우 해머 범위가 서브 뱅크 크기보다 약간 큰 경우, 다음을 활성화한다:
- 서브 뱅크의 첫 번째 로우들 중 하나가 2개의 이전 서브 뱅크 및 다음 서브 뱅크를 해머링할 것이다.
- 서브 뱅크의 중간 로우들 중 하나가 이전 서브 뱅크 및 다음 서브 뱅크를 해머링할 것이다.
- 서브 뱅크의 마지막 로우들 중 하나가 제1 이전 서브 뱅크 및 2개의 다음 서브 뱅크를 해머링할 것이다.
이러한 두 가지 예는 이 일반화된 서브 뱅크 활성화 규칙에 의해 완전히 커버된다. 당업자는 이 일반화된 서브 뱅크 활성화 규칙이 여러 서브 뱅크에 걸쳐 확장되는 마진을 포함하여, 임의의 종류의 마진을 처리할 수 있게 해주며 로우 해머 범위가 서브 뱅크 크기와 관련하여 중요할 때 특히 적합하다는 것을 이해할 것이다.
따라서, 유리하게는, 메모리의 서브 뱅크의 로우의 각각의 활성화 시, 활성화 카운터를 증가시키는 단계는 적어도 해당 활성화에 의해 해머링될 가능성이 있는 로우를 갖는 모든 서브 뱅크의 활성화 카운터를 증가시킨다.
서브 뱅크에서의 인덱스 스캔 순서
리프레시 사이클이 마진을 포함하는지 여부에 관계없이, 로우 스캐닝 순서는, 그것이 주어진 서브 뱅크(및 적용 가능한 경우 연관된 마진)에 대해 고정되어 있고 이중 예방적 리프레시가 예방적 리프레시 사이클에서 균형 잡힌 방식으로 퍼져 있기만 하다면, 중요하지 않다. 설명을 간단하게 하기 위해, 증가(모듈로 S)를 가정했지만, 고려되는 서브 뱅크의 각각의 로우 뿐만 아니라 마진의 각각의 로우가 스캐닝에 의해 도달되기만 한다면, 앞서 언급한 규칙을 따르는 임의의 스캐닝 순서는 적합하다. 매우 유리하게도, 특히 DRAM 메모리 소자의 로우 해머 공격에 더 민감한 것으로 식별된 로우를 오버-리프레시하는 것을 제공하는 것도 가능하다(이러한 리프레시도 또한 균형 잡힌 방식으로 리프레시 사이클에서 퍼져 있어야 한다).
따라서, 제조 테스트 중에 해머 공격에 특히 더 민감한 것으로 식별된 로우가 그들이 속한 서브 뱅크를 통해 실행되는 리프레시 사이클이 그들을 여러 번 리프레시하는 방식으로 구성될 수 있도록, 리프레시 사이클이 설정될 수 있다. 주어진 민감한 로우의 다중 리프레시는 해당 리프레시 사이클에서 유리하게 규칙적으로 분배되는 것이 유리하다.
견고한 것으로 식별된 로우는 예방적 리프레시 사이클에서 정상 횟수(코어에 속한 로우는 한 번, 내부 또는 외부 마진에 속한 로우는 두 번)만 리프레시 될 수 있다.
따라서, 비제한적 예로서, 민감한 로우(S)가 리프레시 사이클에서 두 번 리프레시되는 경우, 이러한 두 번의 리프레시는 해당 리프레시 사이클에서 균형 잡힌 방식으로 분배되고, 그러면 로우(S)는 해당 서브 뱅크의 다른 로우보다 2배 낮은 임계 해머 값으로부터 보호된다.
프로세스를 구현하는 다른 방법
본 방법의 제1 및 제2 구현 모드에 대한 변형은 활성화에 의한 리프레시 사이클의 진행률의 대안의 표현을 이용할 수 있는데, 이는 서브 뱅크 내의 로우 활성화의 횟수가 임계 해머 값을 초과하기 전에 서브 뱅크의 완전한 예방적 리프레시 사이클이 작동됨을 보장한다.
따라서, "암시적 분모를 갖는 분수 표현에 의해"라고 불리는, 방금 제시된 본 방법의 구현 모드의 변형에 따르면, 활성화 카운터(REFRESH_ACC) 없이 수행하는 것이 가능하다. 이러한 모드에서, RH_TABLE 데이터 구조의 활성화 카운터(FRACTION_ACC) 필드는 적어도 활성화 카운터(REFRESH_ACC)가 가지는 폭만큼 넓어진다.
이러한 경우, 예방적 리프레시 필요 횟수는 비율(FRACTION_ACC/PARAM_D)의 정수 부분에 의해 정해지며, 본 방법은 각각의 활성화 시 활성화 카운터(FRACTION_ACC)를 PARAM_N의 값만큼 체계적으로 증가시키는 단계를 포함한다. PARAM_N은 서브 뱅크와 연관된 파라미터로서, 이 서브 뱅크의 활성화 임계값(PARAM_D)보다 엄격하게 낮고 주어진 구현에 대해 일정할 수 있다. 예방적 리프레시 오퍼레이션이 트리거되면(즉시 수행될 수도 있고 버퍼에 저장될 수도 있음), 대응하는 FRACTION_ACC 필드가 활성화 임계값(PARAM_D)만큼 감소한다.
이 접근 방법은 진행 계수를 PARAM_N / PARAM_D의 비율로 표현한다.
이 표현은 펜딩 리프레시 카운터(NBR_REFRESH_PENDING)를 업데이트하는 것을 더 어렵게 만든다는 단점을 갖지만, 이미 지적한 바와 같이, 이 변수는 본 발명에 따른 방법의 구현에 필수적인 것은 아니다.
해머 효과가 서브 뱅크의 정션을 교차할 가능성이 있는 경우, 본 프로세스는 파라미터(PARAM_N)의 사용에 맞게 아래와 같이 조정될 수 있다.
● 서브 뱅크(b)의 첫 번째 로우들 중 하나의 활성화 동안, RH_TABLE[b-1].FRACTION_ACC 필드를 증가시키는 단계가 수행되며, 사용되는 증가 값은 PARAM_N 파라미터보다 작거나 같은 값이다.
● 서브 뱅크(b)의 마지막 로우들 중 하나의 활성화 동안, RH_TABLE[b+1].FRACTION_ACC 필드를 증가시키는 단계가 수행되며, 사용되는 증가 값은 PARAM_N 파라미터보다 작거나 같은 값이다.
증분 값은 서브 뱅크의 정션을 통한 해머링 효과의 파워가 동일한 서브 뱅크의 두 이웃 로우 사이보다 낮을 때, PARAM_N 파라미터보다 낮게 선택된다.
서브 뱅크의 예방적 리프레시에 대한 필요성을 식별하기 위한 RH_TABLE 데이터 구조에서 검색의 단순화
당업자는 본 발명의 틀 내에 있으면서도, 제1의 소위 지연 생성 구현 모드의 백그라운드에서 실행되는 예방적 리프레시 시퀀스가 단순화될 수 있음을 이해할 것이다. 예를 들어, RH_TABLE 데이터 구조에서 (예방적 리프레시 필요 횟수를 나타내는) 가장 높은 값을 갖는 REFRESH_ACC 필드(또는 FRACTION_ACC 필드)를 갖는 엔트리를 찾는 대신, 이 구조로부터 적어도 하나의 리프레시가 보류 중이라는 사실을 나타내는 값(예컨대, 본 프로세스의 제1 구현 모드의 경우 1 이상의 수)을 나타내는 REFRESH_ACC 필드(또는 FRACTION_ACC 필드)를 갖는 제1 엔트리를 선택할 수 있다.
이 가설에서, 제2 구현 모드에서 필요한 것처럼 추가 버퍼에 의지하지 않고 백그라운드에서의 검색을 삭제하는 것도 가능하다. 이를 위해, TABLE_RH 데이터 구조는 각각의 그것의 엔트리에 'NEXT'라는 이름의 필드를 추가하여 확장되는데, 이 필드는 RH 테이블 내의 한 엔트리를 지정하는 인덱스를 포함하도록, 또는 그것이 RH 테이블 내의 어떠한 엔트리도 가리키지 않음을 나타내는 목록 종료 값(LIST_END)을 취하도록 의도된 것이다. 로직에는 또한 TABLE_RH 데이터 구조의 NEXT 필드와 동일한 저장 용량을 갖는, 목록의 헤드를 지정하는 변수(FIRST)도 제공된다.
목록 헤드 변수(FIRST)와 TABLE_RH 데이터 구조 내의 엔트리의 NEXT 필드는 TABLE_RH 데이터 구조 자체 내에서 엔트리의 체인형 목록의 구성을 가능하게 해주며, 목록의 각 요소는 예방적 리프레시 오퍼레이션을 필요로 하는 서브 뱅크에 대응한다. 목록 내의 첫 번째 엔트리는 헤드 변수(FIRST)의 내용에 의해 지정된다. 빈 목록은 헤드 변수(FIRST)가 목록 종료 값(LIST_END)을 포함한다는 사실에 의해 표시된다. 목록의 임의의 요소(L)는 그것의 필드(RH[L].NEXT)를 통해 목록의 다음 요소(M)를 가리킨다(즉, RH[L].NEXT = M). 목록의 마지막 요소는 그것의 NEXT 필드가 목록 종료 값(LIST_END)을 가진다는 사실에 의해 식별된다.
이러한 체인형 목록은 그것이 0이 아닌 예방적 리프레시 필요 횟수를 갖는 TABLE_RH 데이터 구조의 모든 엔트리를 포함하는 방식으로 업데이트된다.
메모리 소자의 초기화(RESET) 시, 목록의 헤드(FIRST) 변수가 목록 종료 값(LIST_END)으로 설정되고, 그로 인해 0이 아닌 예방적 리프레시 필요 횟수를 갖는 서브 뱅크의 목록이 초기에 있음을 나타낸다.
● FIRST = LIST_END,
서브 뱅크의 활성화 이후에 수행되는 증분 단계가 (즉, 서브 뱅크의) 엔트리(J)의 예방적 리프레시 필요 횟수를 0에서 1로 변경하면, 대응하는 엔트리(J)가 다음과 같이 목록에 삽입된다.
● RH[J].NEXT = FIRST,
● FIRST = J,
엔트리의 예방적 리프레시 필요 횟수가 0이 아닌 경우, 그 숫자를 늘려도 헤드 변수(FIRST) 또는 임의의 NEXT 필드를 수정하지 않는다. 즉, 예방적 리프레시 필요 횟수가 0에서 1로 될 때, 데이터 구조의 엔트리는 목록에 한 번만 삽입된다. 이 숫자를 1보다 큰 값으로 변경해도 목록에 영향을 미치지 않는다.
예방적 리프레시 오퍼레이션을 트리거할 기회가 존재하는 경우, 예방적 리프레시 시퀀스가 개시되고, 식별 단계 동안, 목록 헤드 변수(FIRST)에 의해 지정된 TABLE_RH 데이터 구조의 엔트리를 선택한다. 이러한 변수(FIRST)가 목록 끝에 대응하는 값(LIST_END)을 나타내는 경우, 수행되어야 할 예방적 리프레시는 존재하지 않는다.
서브 뱅크의 예방적 리프레시 오퍼레이션의 트리거가 변경되는 경우, 해당 엔트리(J)에 대해, 예방적 리프레시 필요 횟수가 1에서 0으로 변경된 다음, 엔트리(J)는 다음과 같이 목록에서 제거된다.
● FIRST = RH[J].NEXT
따라서, 추적 단계 동안 RH 테이블에서 백그라운드 검색을 더 이상 수행할 필요가 없는데, 그 이유는:
● 증분 단계를 수행하는 경우: 필요하다면, 해당 엔트리를 목록에 삽입함으로써,
● 리프레시 오퍼레이션을 트리거하는 경우: 필요하다면, 목록으로부터 해당 엔트리를 제거함으로써 보류 중인 리프레시를 갖는 엔트리의 목록이 영구적으로 유지되기 때문이다.
당업자는 0이 아닌 예방적 리프레시 필요 횟수를 갖는 서브 뱅크의 목록을 형성하는 것을 목표로 하는 본 방법이 비제한적인 예를 제시할 목적으로 설명되었음을 이해할 것이다. 목록의 관리는 예를 들어 목록 종료 변수(LAST)를 추가하고, 목록의 마지막 요소를 지정하여 목록의 시작이 아닌 목록 끝에 새 요소를 삽입할 수 있게 하는 것과 같이, 여러 가지 방법으로 수정될 수 있다. 이러한 접근법은 다른 서브 뱅크를 대상으로 하는 새로운 활성화로 인해 주어진 서브 뱅크에 링크된 예방적 리프레시에 대한 필요성이 무기한 지연되는 것을 방지할 수 있게 해주는 예방적 리프레시 관리 절차를 수행하는데 유리할 수 있다.
단순화된 검색 알고리즘을 사용하는 것 또는 목록을 사용하는 것이, 특히 예방적 리프레시를 수행하기 위해 시간 슬롯을 확보하는데 상당한 레이턴시가 발생하는 경우에, 프로세스 파라미터의 계산에서 증가된 마진을 제공해야 할 필요성을 야기한다는 것을 이해해야 한다. 백그라운드에서 실행되는 예방적 리프레시 시퀀스가 바람직하게 준수해야 하는 유일한 제약 조건은 기아 상태(starvation)를 방지하는 것이다. 0이 아닌 예방적 리프레시 필요 횟수를 갖는 데이터 구조(RH_TABLE)의 엔트리는 정해지지 않은 횟수의 활성화가 수행되는 동안 대응하는 예방적 리프레시 사이클을 진행할 가능성이 거부되어서는 안 된다.
예방적 리프레시 시간 슬롯의 기본적 사용
예방적 리프레시를 수행할 시간 슬롯이 사용 가능하고 이러한 종류의 리프레시에만 사용될 수 있는 경우 및 RH_TABLE 데이터 구조 또는 목록에서의 검색이 대상이 되는 리프레시에 대한 후보를 제공하지 않는 경우, 최선의 기본 정책은 그 RH_TABLE 구조 내의 엔트리가 가장 큰(따라서 예방적 리프레시가 보류 중인지 여부를 판정하는 임계값에 가장 가까운) FRACTION_ACC 필드를 갖는 서브 뱅크의 리프레시 사이클을 진행하도록(즉, 리프레시 오퍼레이션을 트리거하도록) 선택하는 것으로 구성된다.
이러한 예방적 리프레시의 실행은, FRACTION_ACC를 감소시키는 대신, 이 필드를 0으로 설정하므로, 이 필드가 음수 또는 일관되지 않은 값을 얻는 것을 방지할 수 있다.
예방적 리프레시의 삽입
해머링 방지 로직은 뱅크에 대한 컨트롤 트래픽에 예방적 리프레시를 삽입한다. 예를 들어, 이것은 다음과 같은 방법에 의해 달성될 수 있다.
● 주기적 리프레시 시간 슬롯을 차용함으로써(주기적 리프레시는 충분히 짧은 기간 동안 지연되므로 임의의 문제를 일으키지 않는다),
● 메모리 프로토콜에서 예방적 리프레시를 위한 충분한 할당량의 시간 슬롯을 가짐으로써,
● 예방적 리프레시를 위해 하나 이상의 시간 슬롯을 생성해야 함을 메모리 컨트롤러에 표시함으로써(예방 로직은 토폴로지 로우 인덱스를 제공한다).
당업자는 예방적 리프레시 트래픽을 삽입하는 문제의 해결이 본 명세서에 설명된 로직이 구현되는 위치(DRAM의 컨트롤러, RCD 버퍼 회로(즉, 메모리 컨트롤러와 DRAM 사이에 배치된 레지스터 클록 드라이버(Register Clock Driver) 버퍼 회로) 또는 DRAM 메모리 자체) 뿐만 아니라 메모리 컨트롤러와 메모리 사이의 프로토콜의 기능에 따라 다름을 이해할 것이다. 이 로직이 하나 이상의 통합된 프로세서를 포함하는 DRAM 메모리 내에 배치된 경우, 문헌 FR3066842A1에 설명된 삽입 방법이 사용될 수 있음을 이해해야 한다. 메모리 컨트롤러와의 조정이 필요한지 여부에 관계없이, 다른 방법도 사용될 수 있다.
다양한 크기의 서브 뱅크의 지원
제조 변동성으로 인해, 뱅크 내부에서, 로우마다 로우 해머 민감도가 크게 다를 수 있다.
가장 로우 해머에 민감한 로우를 고려하는, 최악의 경우에 대한 로우 해머 로직을 구성하는 대신, 첫 번째 가능성은 해당 서브 뱅크의 로우의 로우 해머 민감도 뿐만 아니라 그것의 이웃 로우의 로우 해머 민감도에 따라, 각 서브 뱅크에 전용 활성화 임계값(PARAM_D)을 제공하는 것으로 구성된다. 이것은 활성화되는 로우의 로우 해머 민감도에 따라, 활성화마다 예방적 리프레시의 양에 변동을 일으킨다. 이 전용 활성화 임계값(PARAM_D)은 로우 해머링에 대한 각각의 서브 뱅크의 민감도 및 데이터 구조(RH_TABLE)의 각 엔트리에 영향을 미치는 적절한 활성화 임계값을 식별하기 위한 메모리 소자의 초기 테스트 시 결정될 수 있다.
두 번째 가능성은 다양한 크기의 서브 뱅크를 사용하는 것이다. 이것은 각각의 데이터 구조(RH_TABLE) 엔트리에 일 비트를 추가함으로써 도 3에 설명된 비제한적인 예에 의해 달성될 수 있다.
이 비트가 클리어된 때, 데이터 구조(RH_TABLE) 엔트리는 앞서 설명한 바와 같이 대응하는 활성화 카운터(FRACTION_ACC), 예방적 리프레시 필요 횟수(REFRESH_ACC) 및 현재 인덱스(RELATIVE_INDEX)를 보유한다.
이 비트가 설정된 때, 데이터 구조(RH_TABLE) 엔트리는 상기 정보들을 나타내지 않지만, 그 대신 서브 뱅크(b)의 더 작은 서브 뱅크로의 분할에 대응하는 더 작은 추가 데이터 구조(SUB-RH_TABLE)의 위치(어드레스)(전용 메모리 내에 또는 데이터 구조(RH_TABLE)를 보유한 것과 동일한 메모리에 있을 수 있음)를 지정한다. 앞서 설명한 알고리즘은 서브 뱅크에 적용되는데, 일반적인 크기의 서브 뱅크와 더 작은 서브 뱅크 모두 비슷하다. 더 작은 추가 데이터 구조(SUB-RH_TABLE)의 크기가 절대적이지 않은 경우(즉, 미리 결정되지 않고 일정하지 않은 경우), 엔트리는 SUB-RH_TABLE 위치를 지정하는 것에 추가하여 그것의 크기를 지정할 것이다.
더 작은 서브 뱅크는 더 작은 예방적 리프레시 사이클을 가지므로, 주어진 활성화 임계값(PARAM_D)에 대해, 더 낮은 임계 활성화 값을 지원한다. 유리하게는, 더 작은 서브 뱅크는 그 뱅크 내에서 가장 약한 로우(로우 해머 효과에 가장 민감한 로우)가 더 작은 서브 뱅크에 속하도록 정의될 것이다. 위의 첫 번째 가능성과 유사하게, 메모리 뱅크를 다양한 크기의 서브 뱅크로 분할하는 것 및 추가 데이터 구조에 대한 포인터를 사용하는 데이터 구조(RH_table)의 대응하는 구성은 각각의 뱅크의 민감도 및 그것을 더 작은 서브 뱅크로 분할할 필요성을 식별하기 위해 메모리 소자의 초기 테스트 후 수행될 수 있다.
당업자는 본 발명의 틀 내에서 유지하면서, 다음을 이해할 것이다.
- 앞에서 설명한 마진 처리 정책은 다양한 크기를 갖는 서브 뱅크를 처리하는데 적용될 수 있고, 로우 해머 범위는 필연적으로 더 작은 서브 뱅크의 크기와 관련하여 더 중요하기 때문에, 일반화된 서브 뱅크 활성화 규칙이 특히 관련성이 높아진다.
- 다양한 크기의 서브 뱅크를 갖는 것은, 일반적인 크기이거나 더 작을 수 있는, 각 서브 뱅크에 대해 개별화된 활성화 임계값(PARAM_D)을 갖는 것과 배타적이지 않다.
- 데이터 구조(RH_TABLE) 엔트리가 일반적인 필드를 포함하는지 또는 더 작은 sub-RH_TABLE을 설명하는지를 판정하기 위해, 특히 일반적인 필드 중 하나에서 달리 사용되지 않는 값을 사용하는 것 및 다른 일반적인 필드의 전용 메모리 내 또는 데이터 구조(RH_TABLE)를 보유한 것과 동일한 메모리 내의 추가 데이터 구조(SUB-RH_TABLE)의 위치(주소) 및 가능하다면 크기를 지정하는 필드로의 재활용과 같은, 다른 메커니즘이 사용될 수 있다.
- 데이터 구조(RH_TABLE)의 2이상의 레벨이 사용될 수 있고(SUB-SUB-RH_TABLE을 가지는 것 등), 뱅크를 다양한 크기의 서브 뱅크로 뱅크 분할하는 것은 트리형 구조를 통해 실현될 수 있다.
- 임의의 서브 뱅크의 크기가 결정될 수 있고 임의의 서브 뱅크와 연관된 필드가 액세스될 수 있도록, 다양한 크기의 서브 뱅크를 처리하는 데이터 구조를 구현하기 위해 불연속적이고 구성 가능한 어드레스 맵을 가진 메모리의 사용을 포함하는 다른 메커니즘이 사용될 수 있다.
여러 개의 뱅크에 공통인 방지 로직
로우 해머 방지 로직을 각각의 뱅크에 연결하는 대신, 이러한 로직은 여러 개의 뱅크에 연결될 수 있다. 예를 들어, 동일한 로직이 2개의 뱅크(B1 및 B2)에 연결되어 있는 경우, B1 또는 B2의 서브 뱅크(b) 내의 로우가 활성화되면, 앞서 설명한 바와 같이 테이블의 엔트리(RH_TABLE[b])가 업데이트된다. 이 로직이 로우(R)에 대해 예방적 리프레시가 수행되어야 한다고 감지한 경우, 뱅크(B1 및 B2)의 로우(R)가 예방적 리프레시 된다. 로우 해머 방지 로직이 가장 약한 로우에 따라 조정되는 경우, 예컨대, 서브 뱅크 활성화 임계값(PARAM_D) 또는/및 다양한 크기의 서브 뱅크를 가짐으로써, B1 및 B2 모두로부터의 가장 약한 로우는 이러한 조정을 고려하여야 한다.
로우 교체 및 해머
DRAM 메모리를 제조하는 동안, 결함이 있는 것으로 감지된 로우는 메모리 뱅크를 수리하는데 사용할 수 있는 교체 로우의 세트(일명, 스패어 로우)로 교체될 수 있다. 이러한 교체는 수리 구성 퓨즈의 프로그래밍, 전기 또는 레이저에 의해 수행된다. 따라서, 메모리 뱅크의 토폴로지가 변경된다. 예를 들어, 동일한 메모리 뱅크의 토폴로지컬 인덱스 로우(30) 및 토폴로지컬 인덱스 로우(2030)는 각각 교체 로우(0 및 1)로 교체되며, 후자의 두 개는 물리적으로 인접해 있다.
방지 로직은 로우(30)와 로우(2030) 사이의 해머 가능성을 자연스럽게 고려하지는 않을 것인데, 그 이유는 이들이 이웃도 아닌 서브 뱅크에 속해 있어 매우 멀리 떨어져 있기 때문이다. 그러나, 이들을 교체하는 로우가 실제로 인접해 있기 때문에, 이들은 해머 효과를 통해 서로에게 영향을 미칠 수 있다.
이러한 상황을 해결하기 위해, 교체 로우는 교체 블록으로 그룹화되며, 후자는 다음 원칙을 준수하도록 구성된다.
● 교체 블록 내에서, 로우들은 두 로우를 일반적으로 분리하는 거리만큼 떨어져 있으므로, 이들은 이들 사이에 해머를 일으킬 수 있다.
● 교체 블록은 전기 실드 또는 교체 블록의 로우가 다른 교체 블록의 로우에 로우 해머를 유발하는 것을 방지하는 임의의 다른 수단에 의해 서로 분리된다. 예를 들어, 이러한 실드는 메모리로 사용되지 않는 로우에 의해 만들어질 수 있고, 이들의 선택 라인은 일정한 전기 값으로 유지된다.
● 교체 블록의 로우들은 단일 서브 뱅크의 결함 있는 로우를 교체하는데만 사용될 수 있는데 반하여, 여러 개의 교체 블록은 단일 서브 뱅크의 결함 있는 로우를 교체하는데 사용될 수도 있다.
이러한 원칙을 준수하는 것은 본 발명에 따른 방법의 정확도가 서브 뱅크의 로우 교체에 의해 영향을 받지 않음을 보장한다.
이러한 교체 블록의 모든 로우가 이 블록을 공유하는 모든 서브 뱅크의 리프레시 사이클의 일부임을 보장함으로써 여러 개의 서브 뱅크 간에 교체 블록을 공유하는 것이 가능하다.
교체 블록을 공유하는 다른 방법은 교체 블록 그 자체가 서브 뱅크가 되도록 하는 것이다. 교체 서브 뱅크들은 가능하다면 다양한 개수의 로우를 가지고, 이러한 교체 서브 뱅크들은 마진을 갖지 않는 것이 바람직하고, 하나 또는 복수의 교체 서브 뱅크로부터의 교체 로우로 교체되는 로우를 가지는 정규 서브 뱅크의 임의의 로우의 활성화는 정규 서브 뱅크 및 하나 또는 복수의 교체 서브 뱅크 모두에서 증분 단계를 초래하고, 이러한 추후 증분 단계는 교체 서브 뱅크의 로우의 개수에 맞게 조정된 활성화 임계값을 사용한다.
교체 서브 뱅크를 공유하는 다른 방법은 수리 퓨즈로 구성된 로직에 의해 수행되는, 로우 인덱스 변환 단계를 갖는 것인데, 여기서 결함이 있는 로우는 그것의 토폴로지컬 인덱스가 그것을 대체하는 로우의 토폴로지컬 인덱스로 변경되고, 교체 로우가 교체 서브 뱅크에 배치되며, 이 교체 서브 뱅크는 활성화가 처음에 교체되는 로우를 대상으로 할 때 교체되는 로우를 포함하는 서브 뱅크 대신 증분 단계를 거친다.
주기적 리프레시의 통합
주기적 리프레시 로직을 예방적 리프레시 로직에 부분적으로 통합하는 것이 가능하다. 주기적 리프레시 로직은 주기적으로 서브 뱅크를 선택하고 증분 단계를 수행하고, 상이한 PARAM_N 값을 갖도록 함으로써(그러한 값이 사용되는 경우), 서브 뱅크를 대상으로 하는 활성화가 없는 경우에도 각 서브 뱅크의 예방적 리프레시 사이클이 제한된 시간 내에 수행됨을 보장하고, 이러한 사실에 의해, 주기적인 리프레시 기능을 보장하고, 이러한 리프레시 사이클을 지금부터 혼합 리프레시 사이클이라 한다.
원래의 예방 리프레시 사이클이 마진을 갖지 않는 경우, 각 서브 뱅크는 다른 서브 뱅크를 공격할 수 없으며, 혼합 리프레시 사이클은 최적의 방식으로 수행될 수 있다.
원래의 예방 리프레시 사이클이 마진 로우를 포함하도록 확장된 경우에는, 마진 로우가 필요한 양의 두 배로 주기적 리프레시되기 때문에, 혼합 리프레시 사이클은 다소 차선책이 된다.
이웃 서브 뱅크에 대한 증분 단계의 구현을 통해 마진의 처리가 완료되면, 일부 로우가 필요한 양보다 많이 주기적 리프레시되기 때문에, 혼합 리프레시 사이클은 다소 차선책이 된다.
물론, 본 발명은 설명된 실시예로 제한되지 않으며 청구범위에 의해 정의된 본 발명의 범위를 벗어나지 않고 변형을 가하는 것이 가능하다.
따라서, 예를 들어, 다음을 고려할 수 있다.
● 예방적 리프레시 사이클의 진행 계수를 다른 방법 및 수학적 표현으로 나타내는 것;
● 예방적 리프레시 사이클 동안 가변 진행 계수를 나타내는 것(리프레시 사이클에 걸친 이 값들의 평균은 일정한 비율에 대해 사용되었던 값보다 크거나 같다);
● 예방적 리프레시에 의해 예방적 리프레시를 진행하는 대신 예방적 리프레시의 그룹에 의해 예방적 리프레시 사이클을 진행하는 것;
● 활성화 빈도에 따라 변동하는 예방적 리프레시 사이클의 진행 계수를 갖는 것;
● 온도 또는 공급 전압의 함수로서 변동하는 예방적 리프레시 사이클의 진행 계수를 갖는 것(이러한 파라미터들은 로우 해머 현상의 파워에 영향을 미친다);
● 제조 프로세스의 가변적 특성(예컨대, 트랜지스터 또는 다른 커패시터의 속도, 누전, 저항, 회로의 다양한 구성요소의 인덕턴스)의 함수로서 변동하는 예방적 리프레시 사이클의 진행 계수를 갖는 것;
● 서브 뱅크의 예방적 리프레시 사이클을 포함하는 로우의 특정 민감도에 적응된 예방적 사전적 리프레시 사이클의 진행 계수를 갖는 것: 제조 테스트 중, 이러한 민감도가 결정될 수 있으며, 각각의 서브 뱅크는 그것 자체의 예방적 리프레시 사이클에 대한 진행 계수와 연관될 수 있다. 각 서브 뱅크에 고유한 진행 계수는 레이저 퓨즈, 전기 또는 다른 것에 기록되거나, 또는 비휘발성 메모리 또는 임의의 다른 유사한 수단으로부터 초기화 중에 로딩된다.

Claims (20)

  1. 로우 해머 효과로부터의 DRAM 메모리 소자의 보호 방법으로서,
    상기 메모리 소자는 메모리 로우로 구성된 복수의 뱅크를 포함하고, 상기 방법은 하나의 뱅크의 로우들의 연속적인 섹션인 서브 뱅크들을 각각 정의하도록 구성된 적어도 하나의 방지 로직에 의해 구현되고, 상기 방지 로직은 주어진 서브 뱅크(b)의 로우의 활성화 시 1보다 작은 진행 계수(1/PARAM_D; PARAM_N/PARAM_D) 만큼 상기 주어진 서브 뱅크(b)의 랭크의 예방적 리프레시 필요 횟수(REFRESH_ACC, FRACTION_ACC; FRACTION_ACC/PARAM_D)를 증가시키도록 구성되며, 상기 방지 로직은 또한 서브 뱅크의 모든 랭크가 아니라 적어도 하나를 예방적 리프레시하도록 예방적 리프레시 시퀀스를 실행하도록 구성되고, 상기 예방적 리프레시 시퀀스는:
    - 상기 메모리 소자의 상기 서브 뱅크 중에서 결정된 서브 뱅크(j)의 랭크의 예방적 리프레시에 대한 필요성을 식별하고, 이러한 필요성에 따라 아래의 단계들을 적용하는 단계:
    - 상기 결정된 서브 뱅크(j)와 연관된 현재 로우 인덱스(RELATIVE_INDEX)에 의해 지정된 현재 로우를 리프레시하기 위한 오퍼레이션을 트리거하는 단계;
    - 상기 결정된 서브 뱅크(j)와 연관된 현재 로우 인덱스(RELATIVE_INDEX)를 증가시키는 단계;
    - 상기 결정된 서브 뱅크(j)의 랭크의 상기 예방적 리프레시 필요 횟수(REFRESH_ACC, FRACTION_ACC; FRACTION_ACC/PARAM_D)를 감소시키는 단계를 포함하고,
    상기 예방적 리프레시 시퀀스는 적어도 상기 결정된 서브 뱅크(j)의 모든 로우를 리프레시하도록 유도하는 예방적 리프레시 사이클의 단계를 형성하고, 상기 결정된 서브 뱅크(j)의 상기 예방적 리프레시 사이클은 상기 결정된 서브 뱅크(j)에서 활성화되는 로우의 개수가 임계 해머 값을 초과하기 전에 완전히 실행되는 것을 특징으로 하는 보호 방법.
  2. 제 1 항에 있어서, 각각의 서브 뱅크는 활성화 임계치(PARAM_D)와 연관되고, 상기 방지 로직은 주어진 서브 뱅크(b) 로우의 각각의 활성화 시 상기 주어진 서브 뱅크와 연관된 활성화 카운터(FRACTION_ACC)를 증가시키는 단계를 실행하도록 구성된 것을 특징으로 하는 보호 방법.
  3. 제 1 항 또는 제 2 항에 있어서, 상기 서브 뱅크의 랭크의 상기 예방적 리프레시 필요 횟수(REFRESH_ACC, FRACTION_ACC, FRACTION_ACC/PARAM_D)는 데이터 구조(RH_TABLE)에 저장된 것을 특징으로 하는 보호 방법.
  4. 제 3 항에 있어서, 상기 데이터 구조(RH_TABLE)는 트리형 구조로 조직화된 것을 특징으로 하는 보호 방법.
  5. 제 3 항에 있어서, 상기 결정된 서브 뱅크(j)의 랭크의 예방적 리프레시에 대한 필요성을 식별하는 단계는 1보다 크거나 같은 랭크의 예방적 리프레시 필요 횟수(REFRESH_ACC; FRACTION_ACC/PARAM_D)를 갖는 서브 뱅크를 식별하기 위해 상기 데이터 구조(RH_TABLE)를 브라우징(browsing)하는 단계를 포함하는 것을 특징으로 하는 보호 방법.
  6. 제 1 항에 있어서, 주어진 서브 뱅크(b)의 인덱스는, 상기 주어진 서브 뱅크(b)의 랭크의 예방적 리프레시 필요 횟수(REFRESH_ACC, FRACTION_ACC; FRACTION_ACC/PARAM_D)가 1의 값에 도달한 때, 리프레시를 대기하는 서브 뱅크 목록에 삽입되는 것을 특징으로 하는 보호 방법.
  7. 제 6 항에 있어서, 상기 목록은 그들 사이에 데이터 구조(TABLE_RH)의 엔트리들을 체인 연결(chaining)함으로써 형성되는 것을 특징으로 하는 보호 방법.
  8. 제 2 항에 있어서, 상기 결정된 서브 뱅크(b)의 랭크의 예방적 리프레시에 대한 필요성을 식별하는 단계는 주어진 서브 뱅크(b)의 상기 활성화 카운터(FRACTION_ACC)를 증가시키는 단계의 끝에서 실행되고, 상기 주어진 서브 뱅크(b)의 랭크의 예방적 리프레시 필요 횟수(REFRESH_ACC, FRACTION_ACC; FRACTION_ACC/PARAM_D)와 결정된 임계값을 비교하는 단계를 포함하는 것을 특징으로 하는 보호 방법.
  9. 제 1 항에 있어서, 상기 현재 로우를 리프레시하기 위한 오퍼레이션을 트리거하는 단계는 실현하기 위한 리프레시 오퍼레이션의 설명을 버퍼 메모리에 임시 저장하는 단계를 포함하는 것을 특징으로 하는 보호 방법.
  10. 제 1 항에 있어서, 상기 예방적 리프레시 사이클은 또한 상기 결정된 서브 뱅크(j)의 낮은 내부 마진 및 높은 내부 마진의 로우들을 적어도 2번 리프레시하도록 유도하는 것을 특징으로 하는 보호 방법.
  11. 제 2 항에 있어서, 상기 메모리 소자의 주어진 서브 뱅크(b)의 로우의 각각의 활성화 시, 상기 주어진 서브 뱅크(b)와 연관된 상기 활성화 카운터(FRACTION_ACC)를 증가시키는 단계는 또한 적어도 상기 활성화에 의해 해머링될 가능성이 있는 로우를 갖는 모든 다른 서브 뱅크의 상기 활성화 카운터(FRACTION_ACC)를 증가시키는 것을 특징으로 하는 보호 방법.
  12. 제 2 항에 있어서, 상기 진행 계수는 상기 결정된 서브 뱅크의 예방적 리프레시의 전체 사이클 동안 변화하는 것을 특징으로 하는 보호 방법.
  13. 제 1 항에 있어서, 상기 방지 로직은 복수의 뱅크와 연관되어 있는 것을 특징으로 하는 보호 방법.
  14. 제 1 항에 있어서, 각각의 서브 뱅크는 활성화 임계값(PARAM_D)과 연관되며, 상기 방지 로직은 각각의 서브 뱅크와 연관된 활성화 카운터를 증가시키는 단계를 주기적으로 실행하고 상기 서브 뱅크의 랭크의 예방적 리프레시 필요 횟수(REFRESH_ACC; FRACTION_ACC/PARAM_D)를 결정하도록 구성된 것을 특징으로 하는 보호 방법.
  15. 제 1 항 내지 제 14 항 중 어느 한 항에 따른 보호 방법을 구현하도록 구성된 로우 해머 효과 방지 로직을 포함하는 것을 특징으로 하는 DRAM 메모리 소자, DRAM 메모리 소자의 버퍼 회로 또는 컨트롤러.
  16. 제 15 항에 있어서,
    상기 DRAM 메모리 소자는 복수의 교체 블록을 포함하고, 상기 교체 블록은 교체 블록의 로우가 다른 교체 블록의 로우를 해머로 공격하는 것을 방지하는 임의의 수단에 의해 서로 분리되어 있는 것을 특징으로 하는 DRAM 메모리 소자, DRAM 메모리 소자의 버퍼 회로 또는 컨트롤러.
  17. 제 16 항에 있어서, 상기 교체 블록의 로우는 단일 서브 뱅크의 결함 있는 로우를 대체하도록 의도된 것을 특징으로 하는 DRAM 메모리 소자, DRAM 메모리 소자의 버퍼 회로 또는 컨트롤러.
  18. 제 16 항에 있어서, 상기 교체 블록의 로우는 복수의 서브 뱅크의 결함 있는 로우를 대체하도록 의도된 것이고, 상기 교체 블록을 구성하는 로우는 모두 상기 교체 블록을 공유하는 상기 서브 뱅크의 예방적 리프레시 사이클의 일부인 것을 특징으로 하는 DRAM 메모리 소자, DRAM 메모리 소자의 버퍼 회로 또는 컨트롤러.
  19. 제 16 항에 있어서, 교체 블록은 서브 뱅크를 정의하는 것을 특징으로 하는 DRAM 메모리 소자, DRAM 메모리 소자의 버퍼 회로 또는 컨트롤러.
  20. 제 15 항에 있어서, 상기 DRAM 서브 뱅크는 교체 로우를 포함하며, 상기 교체 로우는 상기 서브 뱅크의 상기 예방적 리프레시 사이클의 일부인 것을 특징으로 하는 DRAM 메모리 소자, DRAM 메모리 소자의 버퍼 회로 또는 컨트롤러.
KR1020237002647A 2020-06-23 2021-05-31 로우 해머 효과로부터 dram 메모리 소자를 보호하는 방법 및 회로 KR20230026496A (ko)

Applications Claiming Priority (9)

Application Number Priority Date Filing Date Title
FRFR2006541 2020-06-23
FR2006541A FR3111731B1 (fr) 2020-06-23 2020-06-23 Procédé et circuit de protection d’un dispositif de mémoire DRAM de l’effet de martelagede rang
US16/984,212 2020-08-04
US16/984,212 US10885966B1 (en) 2020-06-23 2020-08-04 Method and circuit for protecting a DRAM memory device from the row hammer effect
FRFR2008742 2020-08-27
FR2008742A FR3111730B1 (fr) 2020-06-23 2020-08-27 Procédé et circuit de protection d’un dispositif de mémoire DRAM de l’effet de martelagede rang
US17/098,044 2020-11-13
US17/098,044 US11361811B2 (en) 2020-06-23 2020-11-13 Method and circuit for protecting a DRAM memory device from the row hammer effect
PCT/EP2021/064551 WO2021259593A1 (en) 2020-06-23 2021-05-31 Method and circuit for protecting a dram memory device from the row hammer effect

Publications (1)

Publication Number Publication Date
KR20230026496A true KR20230026496A (ko) 2023-02-24

Family

ID=79023805

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237002647A KR20230026496A (ko) 2020-06-23 2021-05-31 로우 해머 효과로부터 dram 메모리 소자를 보호하는 방법 및 회로

Country Status (4)

Country Link
US (1) US11361811B2 (ko)
KR (1) KR20230026496A (ko)
CN (1) CN116018645A (ko)
WO (1) WO2021259593A1 (ko)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114388049B (zh) * 2020-10-16 2023-09-12 长鑫存储技术有限公司 存储器测试方法
US11948656B1 (en) * 2022-09-21 2024-04-02 Micron Technology, Inc. Counter management for memory systems
CN116165522A (zh) * 2023-04-26 2023-05-26 长鑫存储技术有限公司 行锤保护电路的性能验证方法及系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002216471A (ja) 2001-01-17 2002-08-02 Mitsubishi Electric Corp 半導体記憶装置
US20100195393A1 (en) 2009-01-30 2010-08-05 Unity Semiconductor Corporation Data storage system with refresh in place
US9299400B2 (en) 2012-09-28 2016-03-29 Intel Corporation Distributed row hammer tracking
KR102086460B1 (ko) 2013-06-28 2020-03-10 에스케이하이닉스 주식회사 반도체 장치 및 그의 리프레쉬 방법
WO2015047304A1 (en) 2013-09-27 2015-04-02 Hewlett-Packard Development Company, L.P. Refresh row address
US10353598B2 (en) * 2014-10-06 2019-07-16 Sandisk Technologies Llc System and method for refreshing data in a memory device
KR102399475B1 (ko) 2015-12-28 2022-05-18 삼성전자주식회사 리프레쉬 콘트롤러 및 이를 포함하는 메모리 장치
KR102308778B1 (ko) * 2017-05-24 2021-10-05 삼성전자주식회사 디스터브 로우를 케어하는 메모리 장치 및 그 동작방법
FR3066842B1 (fr) 2017-05-24 2019-11-08 Upmem Logique de correction de row hammer pour dram avec processeur integre
US10410710B2 (en) * 2017-12-27 2019-09-10 Micron Technology, Inc. Systems and methods for performing row hammer refresh operations in redundant memory
KR102358563B1 (ko) * 2018-05-09 2022-02-04 삼성전자주식회사 로우 해머 핸들링과 함께 리프레쉬 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템
KR102467624B1 (ko) * 2018-05-10 2022-11-16 삼성전자주식회사 반도체 메모리 장치 및 반도체 메모리 장치의 동작 방법
EP3591565A1 (en) 2018-07-04 2020-01-08 Koninklijke Philips N.V. Computing device with increased resistance against rowhammer attacks
KR102617016B1 (ko) 2018-09-17 2023-12-27 삼성전자주식회사 자주 접근되는 어드레스를 검출하는 레지스터 클럭 드라이버를 포함하는 메모리 모듈
CN112840400B (zh) 2018-10-09 2024-04-05 美光科技公司 用于行锤击缓解的方法以及采用所述方法的存储器装置和系统
US10825534B2 (en) * 2018-10-26 2020-11-03 Intel Corporation Per row activation count values embedded in storage cell array storage cells
FR3111731B1 (fr) * 2020-06-23 2023-01-06 Upmem Procédé et circuit de protection d’un dispositif de mémoire DRAM de l’effet de martelagede rang

Also Published As

Publication number Publication date
CN116018645A (zh) 2023-04-25
US20210398584A1 (en) 2021-12-23
US11361811B2 (en) 2022-06-14
WO2021259593A1 (en) 2021-12-30

Similar Documents

Publication Publication Date Title
US10885966B1 (en) Method and circuit for protecting a DRAM memory device from the row hammer effect
KR20230026496A (ko) 로우 해머 효과로부터 dram 메모리 소자를 보호하는 방법 및 회로
US9690505B2 (en) Refresh row address
US10445005B2 (en) Memory system and operating method thereof
CN110741436A (zh) 用于具有集成处理器的dram的行锤效应校正逻辑模块
US8560767B2 (en) Optimizing EDRAM refresh rates in a high performance cache architecture
US20210217465A1 (en) Storage device and method for operating storage device
US20230402086A1 (en) Memory system
US10916293B1 (en) Target row refresh mechanism capable of effectively determining target row address to effectively mitigate row hammer errors without using counter circuit
CN102999443A (zh) 一种计算机缓存系统的管理方法
CN116261754A (zh) 具有用于行锤击缓解的快速随机行刷新的dram
TW201928966A (zh) 動態隨機存取記憶體及其操作方法
EP4270200A1 (en) Smart prefetch buffer and queue management
CN101446925B (zh) 一种复用二级Cache和DSP的RAM的方法及系统
EP4138078A1 (en) A method for protecting a dram module against rowhammer attacks, and a dram module
TWI615840B (zh) 可決定將被更新的字元線的記憶體元件
CN117859178A (zh) 用于经由协同方法保护存储器设备的方法和装置
US20240185910A1 (en) Memory device and method for protecting a memory device from the effect of row hammering
CN115906087B (zh) 行锤攻击保护方法与存储器
CN108630259A (zh) 可决定将被更新的字线的存储器元件
US20240135981A1 (en) Memory device provided with dram memory circuits arranged in such a way as to minimize the size of a memory block allowing management of the row-hammering
US10649694B2 (en) Management device and information processing device
US20240038288A1 (en) Memory device refresh operations
KR102672295B1 (ko) 리프레시 제어 장치
KR20220082730A (ko) 메모리 시스템

Legal Events

Date Code Title Description
A201 Request for examination