KR102480349B1 - 집적 프로세서를 갖는 dram의 로우 해머 수정 로직 - Google Patents

집적 프로세서를 갖는 dram의 로우 해머 수정 로직 Download PDF

Info

Publication number
KR102480349B1
KR102480349B1 KR1020197038136A KR20197038136A KR102480349B1 KR 102480349 B1 KR102480349 B1 KR 102480349B1 KR 1020197038136 A KR1020197038136 A KR 1020197038136A KR 20197038136 A KR20197038136 A KR 20197038136A KR 102480349 B1 KR102480349 B1 KR 102480349B1
Authority
KR
South Korea
Prior art keywords
row
rows
count value
bank
refresh
Prior art date
Application number
KR1020197038136A
Other languages
English (en)
Other versions
KR20200014805A (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 업멤
Publication of KR20200014805A publication Critical patent/KR20200014805A/ko
Application granted granted Critical
Publication of KR102480349B1 publication Critical patent/KR102480349B1/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
    • G11C11/40603Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
    • 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/40615Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/10Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
    • G11C7/1006Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Dram (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System (AREA)

Abstract

본 발명은 하나 이상의 뱅크(126)를 포함하는 메모리 장치(120)에 관한 것으로, 각 뱅크(126)는 DRAM 메모리의 몇몇 행을 포함하고, 상기 메모리 장치는: 각 뱅크에 대해서, 외부 메모리 컨트롤러 및/또는 하나 이상의 내부 프로세서에 의해 방출된 활성화 명령을 모니터링하고, 그에 따라 리프레스 동작을 트리거하도록 구성된 로우 해머의 트리거 검출 로직(123)을 포함한다. 또한, 그러한 장치를 구현하는 방법에 관한 것이다.

Description

집적 프로세서를 갖는 DRAM의 로우 해머 수정 로직
본 명세서는 집적된 프로세서를 갖는 DRAM(dynamic random access memory) 회로 분야에 관련된다.
로우 해머 효과(Row Hammer effect)는 주어진 DRAM 메모리 뱅크 내에서, 주어진 DRAM 행(row)을 반복적으로 활성화하면 물리적으로 인접한 행의 일부의 비트가 반전되게 한다. 과다 활성화된 상기 행은 "공격자 행(aggressor row)"으로 지칭되고, 이에 인접한 두 행은 "피해자 행(victim row)"으로 지칭된다.
특히, DRAM 뱅크 내부의 메모리 행을 활성화하면 상기 뱅크가 사전 충전된(pre-load) 상태에 있음을 의미하며, 이 상태는 사전 충전 명령을 통해 이전에 도달한 후 활성화 명령을 재생한다. 일단 활성화되면, 읽기 또는 쓰기 작업을 위해 행에 액세스할 수 있다.
주어진 행을 대상으로 하는 활성화를 계산하면, 이 계산이 특정 값에 도달할 때에 상기 행은 공격자(aggressor)가 되고 인접한 2 행은 피해자(victim)가 된다.
이 문제에 대한 솔루션은 공격자가 되려는 행을 검출하는 것, 그리고 이에 앞서, 인접한 두 행(그 잠재적인 피해자)을 리프레시하는 것을 포함하며, 본 명세서에서 이러한 리프레시는 "예방 리프레시(preventive refreshes)"으로 지칭된다.
그렇게 해서, 로우 해머 효과의 관점에서 인접한 두 개의 행을 리프레시하면 잠재적인 공격자의 활성화 수가 "리셋된다(resets)".
로우 해머 이슈와 관계없이, DRAM 메모리는 임의의 방식으로 리프레시되어야 한다. DDR4 사양은 DDR4 뱅크의 모든 행은 64ms 마다 리프레시되어야 하며, 해당 리프레시는 "주기적 리프레시(periodic refreshes)"으로 지칭된다.
결과적으로, 로우 해머 이슈는, 64ms의 시간 윈도우(time window) 내에서, 주어진 행이 공격자가 되기 충분한 시간 동안 활성화된 경우에만 발생할 수 있다.
로우 해머 현상에 대한 연구는 피해자 행의 공격이 두 개의 인접한 행의 공격의 합산의 결과인 것을 보여준다. 예를 들어, 행이 공격자가 되려고 250,000개의 활성화가 필요한 경우, 로우 해머 완화 로직은 125,000의 활성화를 트리거 값으로 고려해야 한다. 두 개의 공격자가 동일한 피해자 행을 공격하기 위해 "협력(cooperate)"할 수 있기 때문이다.
요약하면, 고유의(intrinsic) 로우 해머 트리거 값은, 공동 침략(co-aggression)과 같은 최악의 경우를 고려한, 추가적인 파라미터이며, 이는 최근 DRAM 프로세스에 대한 설명의 일부이다.
리프레시 타임 윈도우 내에, 주어진 행의 활성화의 수가 고유의 로우 해머 트리거 값에 도달하려 하는 경우, 그러면 두 개의 인접한 행은 예방적으로 리프레시되어야 한다.
US 출원 20140006704는 로우 해머 효과를 완화하는 솔루션을 서술하고 있지만, 다음의 단점을 가진다:
● 상기 방법은 내장된 프로세서(embedded processor)를 갖는 DRAM 메모리에 적합하지 않고,
● 전적으로 상세한 방법 (그리고 이 방법으로부터 직접적으로 추론할 수 없는 다른 방법)은, 파라미터가 이 정확한 방법으로 설명된 대로 계산될 경우, 비교적으로 간단한 시나리오에서 로우 해머 조건을 검출하게 할 수 없으며,
● 전적으로 자세한 방법은 각 활성화 명령에 대해서 수십 개의 엔트리를 갖는 테이블의 엔트리 분류를 요구한다. 이러한 분류는 동일한 DDR4 뱅크 내에서 두 개의 연속적인 활성화 사이의 최소 시간인, 45ns 미만에서 달성하기 어려운 시간이 걸리는 프로세스이다.
따라서 US 20140006704에 서술된 솔루션은 집적된 프로세서를 갖는 DRAM에 적합하지 않다. 본 명세서의 목표 중 하나는 이러한 한계 중 하나 이상을 적어도 부분적으로 해결하는 것이다.
출원 WO2017048441 및 US6463001 특허는 종래의 DRAM 메모리를 리프레시하는 이슈를 해결한다.
WO 2017/055732에 공개된 특허 출원은 DDR4-호환 DRAM 칩에 프로세서를 집적하는 것이 가능한 방법을 간략하게 설명한다.
외부 메모리 제어기가 DRAM 내부 프로세서에 의해 생성된 활성화를 알지 못하기 때문에, US 특허 0140006704는 집적된 프로세서를 갖는 DRAM에 적합하지 않다. 반면, 주어진 행이 공격자가 될 가능성은 다음의 합의 결과이다:
● 이 주어진 행에 대한 외부 메모리 제어기에 의해 생성된 활성화,
● 그리고 이 주어진 행에 대한 DRAM 메모리의 내부 프로세서에 의해 생성된 활성화.
US 20140006704는 일부 간단한 시나리오에서 동작하지 않는다. 고려되는 고유의(intrinsic) 트리거 값은 125,000의 행 활성화이며, 그리고 모든 중요한 파라미터는 US 20140006704에 서술된 방법에 따라 계산된다.
시간 T에서 타임 윈도우N이 시작한다.
행 20000은 T+16ms 및 T+32ms 사이에서 리프레시된다.
시간 T+32ms 및 T+64ms 사이에서, 레이어 20000은 12000번 즉 고유의 트리거 값125000 보다 작게 활성화되며, 이에 이웃한 행에 대해 예방 리프레시가 개시되지 않는다.
타임 윈도우 N에 따르면, 새로운 타임 윈도우 N+1이 T+64ms에서 시작하고, 검출 로직 테이블이 초기화된다. (US 20140006704* 서술된 바와 같이) 각 타임 윈도우 시작 지점에서 초기화되기 때문이다. 이 초기화는 특히 행20000에 연관된 활성화 카운터의 제로화(zeroing)를 초래한다.
시간 T+64ms 및 T+80ms 사이에서, 행 20000은 아직 리프레시되지 않았고, 행 20000은 10000번 더 활성화되었다. 그래서:
행 20000은 64ms 미만의 기간(T+32ms에서 T+80ms) 동안 125,000 이상 (130,000) 활성화되지만, US 20140006704에 의해 제안된 로직에 의해 두 이웃에 대한 예방 리프레시의 필요성이 발견되지 않는다.
US20140006704은 DRAM의 집적에 적합하지 않다. 외부 DRAM 컨트롤러는 전형적으로, "논리 프로세스(logic process)"라 지칭되는, 빠른 로직을 생성하도록 구성된 프로세스를 사용하여 제작된 ASIC 의 일부이다.
DRAM은 특수한 프로세스로 제조되고, 메모리 셀을 위해 사용되는 커패시터를 구축하게 하며, 그리고 이러한 프로세스를 사용하여 구축된 로직은 논리적인 프로세스(logical process)를 사용하여 구축된 것 보다 훨씬 느리다.
그러므로, DRAM에서 구현된 알고리즘은 ASIC에서 구현된 동일한 알고리즘 보다 훨씬 느리다.
US 20140006704에 서술된 유일한 방법은 행 활성화 카운트 테이블을 정렬(sort)하는 것을 요구한다 (테이블 정렬을 제거한 방법을 설명하는 실제적인 설명은 없다).
정렬(sorting)은 비용이 많이 드는 절차로서, 논리 프로세스에서 구현되면 충분히 빠를 수 있지만, DRAM 프로세스에서 구현될 때는 충분히 빠르지 않으며, 특히 전체 알고리즘이 동일한 뱅크에 두 개의 활성화 명령 사이의 최소 시간인, 45ns 미만으로 실행해야 한다는 점을 고려하면 그러하다.
제시된 설명의 실현 중 하나는 종래의 기술 중 적어도 부분적으로 하나 이상의 문제를 해결한다.
일 측면에 따르면, 하나 이상의 뱅크를 포함하는 메모리 장치가 제공되며, 각 뱅크는 DRAM 메모리의 몇몇 행을 포함하고, 상기 메모리 장치는: 외부 메모리 컨트롤러가 각 뱅크의 메모리 행들을 활성화하고 액세스하게 하도록 구성된 외부 액세스 포트; 각 뱅크의 메모리 행들을 활성화하고 액세스 가능한 하나 이상의 내부 프로세서; 각 뱅크에 대해서, 외부 메모리 컨트롤러 및/또는 하나 이상의 내부 프로세서로부터의 활성화 명령을 모니터링하도록 구성된 로우 해머의 트리거 검출 로직을 더 포함하고, 상기 트리거 검출 로직은: 각 뱅크의 행들의 서브 세트의 각 행에 대해서, 상기 행에 대한 활성화 명령들의 수에 기초한 카운트 값을 표시하는 하나 이상의 테이블, 여기서 하나 이상의 테이블에서 카운트 값에 연관된 행들의 서브 세트는 로우 해머의 트리거 검출 로직에 의해 카운트 값에 기초하여 동적으로 변경되어, 각 뱅크의 각 행에 대한 활성화 명령들의 검출에 기초하여 가장 빈번히 활성화된 행을 표시함; 상기 행들의 서브 세트에 속하지 않는 임의의 행을 목표로 할 수 있는 최대 활성화 명령의 수를 표시하는 추가 카운트 값;* 저장하는 메모리를 포함하고, 상기 로우 해머의 트리거 검출 로직은, 로우 해머의 트리거 검출 로직은 상기 행들의 서브 세트 내의 하나 이상의 행을 식별하기 위해 카운트 값들 각각을 임계 레벨과 비교하고, 그리고 각 식별된 행에 인접한 하나 이상의 행의 리프레시 동작(refresh operation)을 개시하도록 구성되고; 그리고 상기 메모리 장치는: 외부 메모리 컨트롤러에 의해 생성된 주기적 리프레시 요청들 대신에 리프레시 요청들을 방출하여 주기적 리프레시 요청 중 하나 이상을 지연시켜, 각 식별된 행의 하나 이상의 인접한 행을 리프레시하는 동작을 구현하도록 구성된 예방 리프레시 전송 로직을 더 포함한다.
실시예들 중 하나에 따르면, 상기 하나 이상의 테이블은 상기 행들의 서브 세트의 각 행에 연관된 엔트리를 포함하고, 각 엔트리는 상기 카운트 값을 포함하며, 상기 하나 이상의 테이블의 엔트리의 수는 각 뱅크(126)의 행의 수의 1/100 미만이다.
실시예들 중 하나에 따르면, 상기 주기적 리프레시 요청이 지연되는 시간의 양(amount of time)은 각 메모리가 데이터를 정확하게 보유할 수 있는 최대 양을 초과하지 않는다.
실시예들 중 하나에 따르면, 상기 예방 리프레시 전송 로직은 리프레시가 요구될 것으로 식별된 각 행에 대해서, 하나 이상의 인접한 행의 표시를 저장하는 메모리(FIFO)를 포함한다.
실시예들 중 하나에 따르면, 상기 외부 메모리 컨트롤러에 의해 사용되는 외부 프로토콜은 상기 메모리 장치가 리프레시를 생성하기 위한 이니셔티브(initiative)를 취하게 한다.
실시예들 중 하나에 따르면, 상기 로우 해머의 트리거 검출 로직은, 외부 메모리 컨트롤러 또는 하나 이상의 내부 프로세서로부터의 각 활성화 명령 이후에: 활성화 명령에 의해 타게팅된 행에 연관된 카운트 값을, 타겟팅된 행이 상기 행들의 서브 세트의 일부인 경우, 수정하거나; 또는 하나 이상의 테이블(들)의 엔트리를, 상기 엔트리의 카운트 값이 상기 추가 카운트 값에 일치하는 경우, 활성화 명령에 의해 타게팅된 행에 대응하는 엔트리로 대체하거나; 또는 상기 타겟팅된 행이 상기 행들의 서브 세트의 일부가 아니고 하나 이상의 테이블에서 카운트 값이 추가 카운트 값에 일치하지 않는 경우 상기 추가 카운트 값을 수정하도록 구성된다.
추가적인 측면에 따르면, 로우 해머 효과로부터 메모리 장치를 보호하는 방법이 제공되며, 상기 메모리 장치는 하나 이상의 DRAM 뱅크를 포함하며, 뱅크들의 각각은 몇몇(several) 메모리 행들을 포함하고, 상기 방법은: 상기 로우 해머의 트리거 검출 로직에 의해 상기 메모리 장치의 외부 메모리 컨트롤러 및/또는 하나 이상의 내부 프로세서에 의해 방출된 행 활성화 명령들을 모니터링하는 단계 - 각 행 활성화 명령은 상기 뱅크의 행이 상기 외부 메모리 컨트롤러 또는 하나 이상의 내부 프로세서에 의해 액세스되기 이전에 활성화되게 함; 상기 로우 해머의 트리거 검출 로직에 의해, 각 뱅크의 행들의 서브 세트의 각 행에 대해서, 상기 행의 활성화 명령의 수에 기초한 카운트 값을 표시하는 하나 이상의 테이블을 저장하는 단계 - 하나 이상의 테이블에서 카운트 값에 연관된 행들의 서브 세트는 로우 해머의 트리거 검출 로직에 의해 카운트 값에 기초하여 동적으로 변경되어, 각 뱅크의 각 행에 대한 활성화 명령들의 검출에 기초하여 가장 빈번하게 활성화된 행을 표시함; 상기 로우 해머의 트리거 검출 로직에 의해, 상기 행들의 서브 세트에 속하지 않는 임의의 행을 목표로 할 수 있는 최대 활성화 명령의 수를 표시하는 추가 카운트 값을 저장하는 단계; 상기 로우 해머의 트리거 검출 로직에 의해, 상기 하나 이상의 테이블에서 상기 행들의 서브 세트 내 하나 이상의 행을 식별하기 위해 카운트 값들 각각을 임계 레벨과 비교하는 단계; 및 상기 로우 해머의 트리거 검출 로직에 의해, 식별된 행들의 각각에 인접한 하나 이상의 행(들)을 리프레시하는 동작을 트리거하는 단계;를 포함한다.
실시예들 중 하나에 따르면, 상기 방법은: 예방 리프레시 전송 로직을 사용하여, 외부 메모리 컨트롤러에 의해 생성된 주기적 리프레시 요청들 대신에 리프레시 요청들을 방출하여 상기 주기적 리프레시 요청들 중 하나 이상을 지연시켜, 식별된 행들 각각에 인접한 하나 이상의 행을 리프레시하는 동작을 구현하는 단계 또한 포함한다.
실시예들 중 하나에 따르면, 상기 방법은: 외부 메모리 컨트롤러 또는 하나 이상의 내부 프로세서에 의해 방출된 활성화 명령 이후에: 활성화 명령에 의해 타겟팅된 행에 연관된 카운트 값을, 멉쳰 행이 상기 행들의 서브 세트의 일부인 경우, 수정하는 단계; 그리고 하나 이상의 테이블(들)의 엔트리를, 상기 엔트리의 카운트 값이 상기 추가 카운트 값에 일치하는 경우, 활성화 명령에 의해 타겟팅된 행에 대응하는 엔트리로 대체하고; 그리고 상기 타겟팅된 행이 상기 행들의 서브 세트의 일부가 아니고 하나 이상의 테이블(들)에서 카운트 값이 추가 카운트 값에 일치하지 않는 경우 상기 추가 카운트 값을 수정하는 단계를 또한 포함한다.
이전의 장점 및 다른 특성은 다음의 실시예들의 상세한 설명으로부터 나타날 것이며, 관련 도면을 참조하여 비-제한적인 예시로서 제공된다.
도 1은, 예시적인 실시예에 따른, 프로세서를 집적하는 메모리 장치를 포함한 컴퓨팅 시스템의 일부를 개략적으로 도시한다.
일반(General)
각 DRAM 뱅크에 대해서, 아래에서 서술되는 실시예는, 예를 들어, 두 개의 블록을 포함한다:
● 트리거 검출 유닛(또는 로직), 그리고
● 리프레시 전송 유닛(또는 로직),
여기서, 상기 트리거 검출 유닛은 리프레시 전송 유닛에 피드한다.
상기 뱅크에 관한 각 활성화 명령에 대해서, 아래에서 서술되는 트리거 검출 유닛은 이 활성화 명령에 의해 타겟팅된 행이 잠재적으로 트리거 값("임계 레벨"이라고도 함)에 도달했는지 여부를 표시한다. 용어 "잠재적으로(potentially)"는 긍정 오류(false positive)가 가능하지만, 아래에 표시된 바와 같이, 결과가 충분하게 빈번하지 않아 결과가 없다는 사실을 반영한다.
리프레시 전송 유닛은, 예를 들어, 본 명세서에서는 예방 리프레시 FIFO로 지칭되는, FIFO를 포함하며, 그리고 주어진 행을 타겟팅하는 활성화 명령이 트리거 값에 도달한 것으로 마킹되면, 이 주어진 행의 인접한 두 개의 행들의 두 인덱스들이 계산되어 이 FIFO로 푸시된다.
예방 리프레시 FIFO가 비어있지 않으면, 예방 리프레시가 방출될 것이지만, DRAM 뱅크는 자체 이니셔티브(initiative)에 따라 이러한 예방 리프레시를 개시할 수도 있다:
● 프로토콜의 관점에서, DRAM 메모리 칩은 외부 DRAM 메모리 컨트롤러의 슬레이브이며, 자체 이니셔티브(initiative) 상에서 리프레시를 수행 가능한 DRAM 칩의 뱅크를 가지면 프로토콜이 완전히 중단된다.
DRAM에 연결된 외부 메모리 컨트롤러는 주기적 리프레시 요청들을 정기적으로 생성한다. 주기적 리프레시는 리프레시될 행의 인덱스를 지정하지 않는다: 이 인덱스는 (일반적으로 "리프레시 카운터"라고 지칭되는 카운터이기 때문에) 리프레시 카운터 로직이라 지칭된 내부 DRAM 로직에 의해 생성된다.
따라서, 본 발명의 실시예에서, 각 뱅크는 자체 리프레시 카운터 로직을 가지고 DRAM 뱅크가 외부 DRAM 컨트롤러에 의해 생성된 주기적 리프레시 요청을 수신할 때마다:
● 이 뱅크에 대한 예방 리프레시 FIFO가 비어있지 않은 경우, 그러면 리프레시될 행의 인덱스는 리프레시 카운터에 의해 제공되지 않지만, 예방 리프레시 FIFO로부터 제거되며, 이 뱅크의 리프레시 카운터는 변경되지 않은 상태로 남아있는다.
● 예방 리프레시 FIFO가 비어있는 경우, 리프레시될 행의 인덱스가 이 뱅크의 리프레시 카운터에 의해 제공되며, 이는 업데이트된다.
예방 리프레시의 실행이 주기적 리프레시에 의해 중단되기 때문에, 트리거 값은, 주기적 리프레시가 요구되는 발견과 실제 실행 사이에서 최악의 지연(worst-case delay) 동안 수행될 수 있는 활성화의 수만큼 감소한다. 이 최악의 지연은 다음으로부터 발생한다:
● 몇몇 예방 리프레시가 FIFO에서 축적될 수 있는 사실, 이는 예방 리프레시가 쌍으로 생성된다는 사실에 의해 가능하게 된다.
● 각 보류중인 예방 리프레시가 효과적으로 완료되는 동안 주기적 리프레시 요청을 기다릴 필요가 있다.
로직의 고유의 대기(latency)를 무시하면, 최악의 지연은 대략 Max_Triggered x 2 x Max_Timed_Refresh_Period이며, 여기서,
● Max_Triggered는 64ms 시간 윈도우 내에서 트리거 값에 도달하기에 충분한 횟수로 활성화될 수 있는 뱅크의 행의 수이고,
● Max_Timed_Refresh_Period는 두 개의 주기적 리프레시 요청 사이의 최대 시간이다.
리프레시 윈도우의 확장(Extension of the refresh window)
예방 리프레시의 효과적인 실행은 주기적 요청을 지연시키지만, 최대 지연은 충분히 작기 때문에 아무런 영향을 미치지 않는다:
전형적인 DRAM 뱅크는 65536개의 행을 가지며, 외부 메모리 컨트롤러는 평균적으로, 뱅크에 대해, 976ns(64ms/65536) 마다 주기적 리프레시를 생성한다.
전형적으로 활성화 명령은 매번 45ns 마다 주어진 뱅크로 방출될 수 있으며, 이는 64ms의 시간 윈도우 동안 1423000개 미만의 활성화 명령이 동일한 뱅크로 방출될 수 있는 것을 의미하며, 이 숫자는 윈도우에서 Max_activate_in_window로 지칭된다.
로우 해머의 고유의 값인 125,000을 고려하면, 이는 64ms 윈도우에서 주어진 DRAM 뱅크 내에 최대 11개의 공격자가 있다는 것을 의미한다.
이전 예를 고려하면, 최악의 경우에서, 64ms에서 65536 개의 행을 리프레시하는 대신에, 65536+(11x2) 개의 행이 리프레시될 수 있으며, 이는 64ms에서 64,022ms로 리프레시 윈도우를 확장시키는 것을 유도한다. 64ms 수치가 보수적으로 낮은 값이기 때문에, 이러한 작은 확장은 절대적으로 문제가 되지 않는다.
도 1의 실시예(Embodiment of figure 1)
도 1은 본 발명에 따른 장치를 도시한다.
외부 메모리111 컨트롤러는 ASIC110의 일부이며, 예를 들어, 메모리 장치(120)의 메모리 장치의 인터페이스121에 부착된 버스를 통해 메모리 장치(120)에 결합된다.
DRAM 뱅크(126)는 외부 메모리 컨트롤러(111) 및 집적 프로세서(122)에 의해 액세스될 수 있다.
트리거 검출 로직(123)은 외부 메모리 컨트롤러(111) 및 집적 프로세서 122에 의해 생성된 활성화 명령을 모니터링한다.
트리거 검출 로직(123)은, 현재의 활성화된 행의 활성화가 이 행이 잠재적으로 트리거 값에 도달할 수 있음을 암시하는 때를, "TRIG 도달(TRIG reached)" 신호의 주장을 통해 표시한다.
리프레시 전송 로직(124)은 "TRIG 도달" 신호를 수신하고, 그러면 공격자가 되려고 하는 행에 인접한 두 개의 행의 인덱스들을 결정하고, 그러면 예를 들어 리프레시 전송 로직(124)의 FIFO로 두 개의 인덱스들을 푸시한다.
예를 들어, FIFO는 주기적 리프레시 슬롯들을 선점함으로써 비워진다. 해당 리프레시들은 손실되지 않고, 예를 들어 단순히 지연된다. 리프레시 카운터 로직(125)이 업데이트되지 않기 때문이다.
트리거 검출 유닛(또는 로직)(The unit (or logic) for detecting triggering)
다음에서 명백해지는 것과 같이, 트리거 검출 유닛에 의해 사용되는 알고리즘은, 예를 들어 근사치이며, 이를 보상하기 위해 Trig_Eff를 유지하는 실제 트리거 값(actual trigger value)은 예를 들어:
● 초기의 고유의 트리거 값의 절반을 기초하며, 그 이유는 아래에서 상세하게 서술된다,
● · 이전에 설명한 바와 같이, 실제 수행되는 예방 리프레시를 갖기 위해 최악의 지연을 고려하여 추가로 감소시켰다. 최악의 지연은, Trig_Eff에 의존하는, 보류중인 예방 리프레시의 최대 수에 주로 의존하기 때문에, 정확한 Trig_Eff 값은 예를 들어 반복적으로 계산된다.
실질적인 결과는 꼭 필요한 것 보다 더 많은 예방 리프레시를 방출할 수 있다는 것이다. 이들 예방적 리프레시의 수는 주기적 리프레시들의 수에 비해 여전히 미비하기 때문에 문제가 되지 않는다:
● 예방 리프레시는 주기적 리프레시 슬롯들을 훔치기 때문에, 불필요한 예방 리프레시의 방출로 인한 성능 저하가 없다,
● 실질적인 영향은 64ms의 리프레시 윈도우는 꼭 필요한 것보다 더 많이 확장될 수 있다는 것이다. 이 확장은 백분율 측면에서 여전히 매우 작기 때문에 결과가 없다.
긍정 오류가 생성되는 동안, US2014006704에 서술된 시스템과 달리, 제안된 알고리즘은 부정 오류(false negatives)를 생성하지 않는다.
트리거링 검출 유닛(또는 로직)의 알고리즘(Algorithm of the unit (or logic) for detecting triggering)
트리거 검출 로직 유닛은, 예를 들어 입력된 Nbr _ of _ entries 를 갖는 테이블, RACT(Row Activate Count Table)을 포함하며, 여기서 Nbr_of_entries 는, 예를 들어 다음과 같이 계산된다:
Nbr_of_entries = INT (Max_activate_in_window/Trig_Eff)
여기서, INT 함수는 엔트리 값을 보다 작거나 같은 전체 값으로 반올림하여 리턴한다.
각 RACT 엔트리는, 예를 들어, 두 필드를 포함한다:
● Trig_Eff까지의 값을 포함하기 위해 충분히 큰 ROW_COUNT 필드,
● 행 인덱스들의 모든 가능한 값들 및 no_row로 지칭되는, 행 인덱스가 아닌 추가 값을 포함하기 위해 충분히 큰 ROW INDEX 필드.
또한, 트리거 검출 로직은, 예를 들어, OTHER_ROWS_COUNT로 지칭되는 레지스터를 포함한다. 이는 Trig_Eff-1까지의 값을 포함하기에 충분히 크다.
임의의 주기적 시간 레퍼런스를 사용할 수 있지만, 설명의 편의를 위해, 뱅크에서는 리프레시 윈도우는 예를 들어 다음과 같은 때 시작되었다고 한다:
● 현재 시간에서 뱅크 리프레시 카운터 로직이 행 0을 표시하는 때,
● 주기적 리프레시 요청이 외부 메모리 컨트롤러에 의해 생성되는 때.
리프레시 윈도우가 시작할 때마다, 트리거 검출 로직은, 예를 들어, 다음과 같다:
● 모든 RACT 엔트리들의 ROW_COUNT 필드들을 0으로 설정하고,
● 모든 RACT 테이블들의 ROW_INDEX 필드들을 no_row 로 초기화하며,
● OTHER_ROWS_COUNT 레지스터를 0으로 설정한다.
인덱스 j를 가진 행을 목표로 하는 활성화 명령이 뱅크에 의해 실행될 때마다, 트리거 검출 로직은, 예를 들어, 제1 목표 및 제2 목표를 달성하기 위해 RACT 엔트리들을 판독한다. 제2 목표는 제1 목표에 도달하지 않는 경우에만 고려된다:
● 제1 목표는 ROW_INDEX 필드의 값이 J 를 갖는 RACT 엔트리를 찾는 것이다,
● 제2 목표는 ROW_COUNT 필드가 OTHER_ROWS_COUNT와 일치하는 RACT 엔트리를 찾는 것이다.
제1 목표 달성
제1 목표에 도달하자마자, 엔트리들의 판독이 중단되고:
● 찾은 엔트리의 ROW_COUNT 필드는 증가하며,
● 찾은 엔트리의 ROW_COUNT 필드의 값이 Trig_Eff와 일치한 경우, 그러면:
○ 찾은 엔트리의 ROW_INDEX 필드는, 예를 들어 no _ row 로 설정되고,
○ 행 J에 대해 두 이웃들의 행 인덱스들은, 예를 들어 예방 리프레시 FIFO로 푸시된다.
제1 목표가 달성되지 않고 제2 목표가 달성됨
다음의 설명에서, 찾은 엔트리의 RACT 테이블의 인덱스는 Fidx (Found Index)로 지칭되며, 다음과 같다:
OTHER_ROWS_COUNT == RACT[ Fidx ].ROWCOUNT
트리거 검출 로직은 다음을 수행한다:
● RACT [Fidx ].ROW_COUNT 가 증가하고,
● RACT [Fidx ].ROW_INDEX 은 J로 설정된다.
제1 및 제2 목표들의 미 달성
● OTHER_ROW_COUNT 이 증가한다.
이 알고리즘에서, 행은 항상 활성화 카운터에 연관되고, 행 R은 예시적으로 다음과 같다:
● ROW_INDEX 필드가 R에 일치하는 RACT 엔트리의 ROW_COUNT 필드에 포함된 활성화들의 수에 연관되거나 ,
● 또는 OTHER ROWS COUNT 레지스터에 포함된 활성화들의 수에 연관된다.
상기 알고리즘은, 예를 들어 행에 일반적으로 연관된 수가 항상 리프레시 윈도우의 시작 이후 실제 활성화들(actual activations)의 수 보다 크거나 일치하는 것을 보장한다.
또한, 이 알고리즘은 예를 들어 OTHER_ROWS_COUNT가 가장 작은 RACT.ROW_COUNT 필드들 보다 작은 것을 보장하며, 그래서 상기 알고리즘은 행 R의 실제 활성화들의 수가 Trig_Eff에 도달하는 경우, OTHER_ROWS_COUNT 레지스터에가 아닌 RACT 엔트리에서 발생하는 것을 보장한다.
FIFO 예방 리프레시의 크기 조정(Sizing the FIFO preventive refresh)
예방 리프레시들은 예방 리프레시 FIFO에 잠재적으로 축적되기 때문에, 일부 실시예에서 이 FIFO에서 푸시될 수 있는 예방 리프레시들의 최대 수의 상한이 적절하게 그 크기를 정하기 위해 결정된다.
엔트리는 오직 Trig_Eff 활성화들을 카운팅하거나, 다른 행들을 잠재적으로 타겟팅하거나 (이는 긍정 오류들이 발생할 수 있는 방법임), 또는 단일 행을 타겟팅함으로써 (확실히 긍정 참(true positive) 임) Trig_Eff 값에 도달한다.
따라서, 트리거 검출 로직이 RACT에 입력되지 않은 예방 리프레시 쌍을 하나 보다 더 많이 생성하는 것이 불가능하다.
대안적인 알고리즘(Alternative Algorithm)
전술한 알고리즘에서는, 레지스터 값 OTHER_ROWS_COUNT은, 예를 들어 반드시 RACT 엔트리들의 가장 작은 ROW_COUNT 필드 보다 작거나 일치해야 한다.
그래서 OTHER_ROW_COUNT는 Trig_Eff에 도달할 수 없다. 그렇지 않으면 상기 값이 추가 RACT 엔트리를 야기하기 때문이다.
트리거 검출 로직은 기본적으로 캐시(cache)이며, 그 연관성이 엔트리들의 수와 일치한다. 이전에 설명된 상기 알고리즘은 Trig_Eff에 도달할 때마다 그 연관성이 감소되고, 다음과 같은 이유로 엔트리가 효과적으로 제거된다:
● ROW_INDEX는 no_row 로 초기화된다: 더 이상 활성화된 행이 이 엔트리에 도달할 수 없다.
● ROW_COUNT 필드는 값 Trig_Eff에서 유지된다: 이는 OTHER_ROWS_COUNT와 일치할 수 없다.
초기 알고리즘의 다음의 변형은 Trig_Eff에 도달하는 RACT 엔트리들을 재활용함으로써 일정한 연관성을 유지한다.
제1 목표 달성
제1 목표에 도달하자마자, RACT 엔트리들의 판독이 중지되고 그리고:
● 찾은 엔트리의 ROW COUNT 필드의 값이 Trig Eff-1에 일치하는 경우, 그러면:
● 찾은 엔트리의 ROW_INDEX 필드는, 예를 들어 no _ row 로 설정되고,
● 찾은 엔트리의 ROW_COUNT 필드는, 예를 들어 OTHER_ROWS_COUNT에 의해 포함된 값으로 설정되고,
● 행 J의 두 이웃들의 행 인덱스들이 예를 들어 예방 리프레시 FIFO로 푸시된다.
● 그렇지 않은 경우 찾은 엔트리의 ROW_COUNT 필드는 증가된다.
제1 목표가 달성되지 않고 제2 목표가 달성됨
트리거 검출 로직은, 예를 들어 다음을 구현한다:
● RACT[ Fidx ].ROW_COUNT 가 증가되고,
● RACT[ Fidx ].ROW_INDEX가 J로 설정된다.
제1 및 제2 목표들의 미 달성
● OTHER ROWCOUNT는 예를 들어 증가된다.
대안적인 실시예를 위한 예방 리프레시 FIFO의 크기 조정(Sizing the preventive refresh FIFO for the alternative algorithm)
이 대안적인 알고리즘은 점진적으로 감소시키는 대신에 일정한 연관성을 유지한다. 따라서 긍정 오류가 적은 것을 반드시 유도한다. 따라서, 초기 알고리즘 보다 더 많은 예방 리프레시들을 생성할 수 없고, 따라서 RACT 엔트리 당 예방 리프레시들을 둘 보다 더 많이 생성할 수 없다.
Trig Eff 계산의 타당성(Justification of the Trig Eff calculation)
확장된 로직은 행이 Trig Eff에 도달할 경우를 검출 가능하고, 그래서 새로운 리프레시 윈도우가 시작하면, 임의의 행의 최대 "활성화 과거"는 Trig_Eff-1까지 올라간다. 이러한 값은 아직 예방 리프레시를 생성하지 않기 때문이다.
따라서, 주어진 리프레시 윈도우에서 Trig_Eff 값이 도달하기 이전에, 행은 (Trig_Eff-1) + (Trig_Eff-1)이 실제로 축적되고, 제1 값 (Trig_Eff-1)은 이전의 리프레시 윈도우로부터 상속된다. 따라서 상기 로직은 (Trig_Eff x 2) - 1 활성화만 확실하게 검출하고, Trig_Eff의 반복적인 계산이 고유의 트리거 값의 절반으로부터 시작하는 이유를 설명한다.
개괄(Generalizations)
이 설명의 실시예들은 DRAM 뱅크의 맥락에서 서술되었지만, 본 명세서에 서술된 기술은 (리프레시 동작을 가지고 로우 해머 효과가 발생하는) 고밀도 DRA 뱅크와 동일한 임의의 메모리 어레이에 명백히 적용될 수 있다.
예를 들어, 본 명세서의 다양한 부분에서 DDR4 프로토콜에 대한 참조가 이루어졌다. 명백히 본 명세서에 서술된 기술은 모든 부속 메모리 프로토콜에 적용될 수 있다. 이러한 메모리 프로토콜은:
● 이들의 저전력 버전에서 DDR, DDR2, DDR3, DDR4,
● GDDR, GDDR2, GDDR3, GDDR4, GDDR5,
● HBM.
또한, 본 명세서에 서술된 실시예들은, HMC 프로토콜과 같은, DRAM이 리프레시를 수행할 수 있는 이니셔티브(initiative)를 취하게 하는 프로토콜들을 사용하여, 집적된 프로세서들을 갖는 메모리 장치들에 적용될 수 있다. 이 경우, 예방 리프레시 전송 유닛은 생략되고, 트리거 검출 유닛만이 남아 있을 수 있다.
간략하게 하기 위해, 64ms 리프레시 윈도우가 고려되었다. 이 값은 현재 사용되기 때문이다. 명백하게, 본 명세서에 서술된 실시예들은 주어진 DRAM 기술에 의해 사용될 임의의 리프레시 윈도우 간격에 적용될 수 있다. 그리고 온도, 전압, 방사능 레벨(radiation level) 등과 같은, 외부 파라미터의 변형에 따라 연속적으로 리프레시 시간이 조정되는 DRAM에 적용될 수 있다.
유사하게, 현재의 제조되는 DRAM들의 대표이기 때문에 65536과 같은 행들의 수가 예로 들어졌다. 명백하게, 본 명세서에 서술된 실시예들은 뱅크에 존재하는 행들의 수에 독립적으로 적용될 수 있다.
지금까지 제시된 알고리즘 및 그 변형은 본 발명의 범위 내에서 많은 방식으로 수정될 수 있다. 다음의 목록은, 임의의 서브-조합에서 개별적으로 구현 또는 조합될 수 있는 이러한 수정의 예시들을 제공한다. 이 목록은 예시로서 주어지며 제한적인 것이 아니다:
● 몇몇 DRAM 뱅크들 상에 서술된 일부 재료 자원을 분해,
● 상이한 필드를 갖는 테이블을 보다 적은 필드를 갖는 상이한 테이블로 대체,
● 테이블을 보다 작은 상이한 테이블로 대체하고, 동시에 여러 엔트리들을 처리하기 위해 알고리즘을 수정,
no_row 값 대신에 유효한 비트를 사용하고, 이 유효한 비트는 각 엔트리의 추가 필드 또는 추가 테이블에 위치,
● 활성화 명령을 카운팅하는 대신에 활성화 명령을 산출하고, RACT의 ROW_COUNT 필드 및 OTHER_ROWS_COUNT 레지스터는 리프레시 윈도우에 대해 허용된 다수의 활성화 명령들로 초기화됨,
● 행들을 위상적으로 인접한 행의 패키지로 그룹화하고, 활성화는 행 패키지의 레벨에서 수행되고, 활성화의 수가 Trig_Eff에 도달할 때,
○ 공격자 패키지의 모든 행이 리프레시되며,
○ 공격자 패키지에 인접한 두 행들은 리프레시된다(또는 리프레시가 행 패키지의 입도(granularity) 레벨에서 관리가 되는 경우, 해당하는 두 개의 행 패키지가 리프레시된다).

Claims (8)

  1. 하나 이상의 뱅크(126)를 포함하는 메모리 장치(120)에 있어서, 각 뱅크(126)는 DRAM 메모리의 몇몇 행을 포함하고,
    상기 메모리 장치(120)는: 외부 메모리 컨트롤러(111)가 각 뱅크(126)의 메모리 행들을 활성화하고 액세스하게 하도록 구성된 외부 액세스 포트(121); 각 뱅크(126)의 메모리 행들을 활성화하고 액세스 가능한 하나 이상의 내부 프로세서(122)를 더 포함하고,
    상기 메모리 장치(120)는: 각 뱅크에 대해서, 외부 메모리 컨트롤러(111) 및/또는 하나 이상의 내부 프로세서(122)에 의해 방출된 활성화 명령을 모니터링하도록 구성된 로우 해머의 트리거 검출 로직(123)으로서, 상기 로우 해머의 트리거 검출 로직(123)은:
    - 각 뱅크의 행들에 대한 서브 세트의 각 행에 대해서, 상기 각 뱅크의 행들에 대한 활성화 명령들의 수에 기초한 카운트 값을 표시하는 하나 이상의 테이블 -하나 이상의 테이블에서 카운트 값에 연관된 상기 각 뱅크의 행들에 대한 서브 세트는 로우 해머의 트리거 검출 로직에 의해 카운트 값에 기초하여 동적으로 변경되어, 각 뱅크의 각 행에 대한 활성화 명령들의 검출에 기초하여 가장 빈번히 활성화된 행을 표시함;
    - 상기 행들의 서브 세트에 속하지 않는 임의의 행을 목표로 할 수 있는 최대 활성화 명령의 수를 표시하는 추가 카운트 값;을 저장하는 메모리를 포함하고, 그리고
    상기 로우 해머의 트리거 검출 로직은 상기 행들의 서브 세트 내의 하나 이상의 행을 식별하기 위해 카운트 값들 각각을 임계 레벨과 비교하고, 각 식별된 행에 인접한 하나 이상의 행을 리프레시하는 동작을 트리거하도록 구성된, 로우 해머의 트리거 검출 로직(123); 및
    외부 메모리 컨트롤러에 의해 생성된 주기적 리프레시 요청들 대신에 리프레시 요청들을 방출하여 주기적 리프레시 요청 중 하나 이상을 지연시켜, 각 식별된 행의 인접한 하나 이상의 행을 리프레시하는 동작을 구현하도록 구성된 예방 리프레시 전송 로직(124)을 더 포함하는 것을 특징으로 하는 메모리 장치.
  2. 제1항에 있어서,
    상기 하나 이상의 테이블은 상기 행들의 서브 세트의 각 행에 연관된 엔트리를 포함하고, 각 엔트리는 상기 카운트 값을 포함하며, 상기 하나 이상의 테이블의 엔트리의 수는 각 뱅크(126)의 행의 수의 1/100 미만인 것을 특징으로 하는 메모리 장치.
  3. 제1항에 있어서,
    상기 주기적 리프레시 요청이 지연되는 기간(duration)은 각 메모리가 데이터를 정확하게 보유할 수 있는 최대 기간을 초과하지 않는 것을 특징으로 하는 메모리 장치.
  4. 제1항에 있어서,
    상기 예방 리프레시 전송 로직은 각 식별된 행에 대해서, 리프레시될 하나 이상의 인접한 행의 표시를 저장하는 메모리(FIFO)를 포함하는 것을 특징으로 하는 메모리 장치.
  5. 제1항에 있어서,
    상기 외부 메모리 컨트롤러에 의해 사용되는 외부 프로토콜은 상기 메모리 장치가 리프레시를 생성하기 위한 이니셔티브(initiative)를 취하게 하는 것을 특징으로 하는 메모리 장치.
  6. 제1항 내지 제5항 중 어느 하나의 항에 있어서,
    상기 로우 해머의 트리거 검출 로직(123)은, 외부 메모리 컨트롤러 또는 내부 프로세서 중 하나에 의해 방출된 각 활성화 명령 이후에:
    - 활성화 명령에 의해 타게팅된 행에 연관된 카운트 값을, 타겟팅된 행이 상기 행들의 서브 세트의 일부인 경우, 수정하고; 그리고
    - 하나 이상의 테이블(들)의 엔트리를, 상기 엔트리의 카운트 값이 상기 추가 카운트 값에 일치하는 경우, 활성화 명령에 의해 타게팅된 행에 대응하는 엔트리로 대체하고; 그리고
    - 상기 타겟팅된 행이 상기 행들의 서브 세트의 일부가 아니고 하나 이상의 테이블에서 카운트 값이 추가 카운트 값에 일치하지 않는 경우 상기 추가 카운트 값을 수정하도록,
    구성된 것을 특징으로 하는 메모리 장치.
  7. 로우 해머 효과로부터 메모리 장치(120)를 보호하는 방법에 있어서, 상기 메모리 장치는 하나 이상의 뱅크(126)로서, 각 뱅크는 복수의 DRAM 메모리 행을 포함하는, 하나 이상의 뱅크(126)를 포함하고, 상기 방법은:
    상기 로우 해머의 트리거 검출 로직(123)을 사용하여, 상기 메모리 장치(120)의 외부 메모리 컨트롤러(111) 및/또는 하나 이상의 내부 프로세서(122)에 의해 방출된 행 활성화 명령들을 모니터링하는 단계 - 각 행 활성화 명령은 상기 뱅크의 행이 상기 외부 메모리 컨트롤러 또는 하나 이상의 내부 프로세서에 의해 액세스되기 이전에 활성화되게 함;
    상기 로우 해머의 트리거 검출 로직(123)을 사용하여, 각 뱅크의 행들에 대한 서브 세트의 각 행에 대해서, 상기 각 뱅크의 행들의 활성화 명령의 수에 기초한 카운트 값을 표시하는 하나 이상의 테이블을 저장하는 단계 - 하나 이상의 테이블에서 카운트 값에 연관된 상기 각 뱅크의 행들에 대한 서브 세트는 로우 해머의 트리거 검출 로직에 의해 카운트 값에 기초하여 동적으로 변경되어, 각 뱅크의 각 행에 대한 활성화 명령들의 검출에 기초하여 가장 빈번하게 활성화된 행을 표시함;
    상기 로우 해머의 트리거 검출 로직(123)을 사용하여, 상기 행들의 서브 세트에 속하지 않는 임의의 행을 목표로 할 수 있는 최대 활성화 명령의 수를 표시하는 추가 카운트 값을 저장하는 단계;
    상기 로우 해머의 트리거 검출 로직(123)을 사용하여, 상기 하나 이상의 테이블에서 상기 행들의 서브 세트 내 하나 이상의 행을 식별하기 위해 카운트 값들 각각을 임계 레벨과 비교하는 단계;
    상기 로우 해머의 트리거 검출 로직(123)을 사용하여, 식별된 행에 대해 인접한 하나 이상의 행을 리프레시하는 동작을 트리거하는 단계; 및
    예방 리프레시 전송 로직(124)을 사용하여, 외부 메모리 컨트롤러에 의해 생성된 주기적 리프레시 요청들 대신에 리프레시 요청들을 방출하여 상기 주기적 리프레시 요청들 중 하나 이상을 지연시켜, 각 식별된 행의 인접한 하나 이상의 행을 리프레시하는 동작을 구현하는 단계를 포함하는 방법.
  8. 제7항에 있어서,
    외부 메모리 컨트롤러 또는 하나 이상의 내부 프로세서에 의해 방출된 각 활성화 명령 이후에,
    - 활성화 명령에 의해 타겟팅된 행에 연관된 카운트 값을, 타겟팅된 행이 상기 행들의 서브 세트의 일부인 경우, 수정하는 단계; 그리고
    - 하나 이상의 테이블의 엔트리를, 상기 엔트리의 카운트 값이 상기 추가 카운트 값에 일치하는 경우, 활성화 명령에 의해 타겟팅된 행에 대응하는 엔트리로 대체하고; 그리고
    - 상기 타겟팅된 행이 상기 행들의 서브 세트의 일부가 아니고 하나 이상의 테이블에서 카운트 값이 추가 카운트 값에 일치하지 않는 경우 상기 추가 카운트 값을 수정하는 단계를 더 포함하는 방법.
KR1020197038136A 2017-05-24 2018-05-18 집적 프로세서를 갖는 dram의 로우 해머 수정 로직 KR102480349B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1770532A FR3066842B1 (fr) 2017-05-24 2017-05-24 Logique de correction de row hammer pour dram avec processeur integre
FR17/70532 2017-05-24
PCT/FR2018/051200 WO2018215715A1 (fr) 2017-05-24 2018-05-18 Logique de correction de row hammer pour dram avec processeur integre

Publications (2)

Publication Number Publication Date
KR20200014805A KR20200014805A (ko) 2020-02-11
KR102480349B1 true KR102480349B1 (ko) 2022-12-22

Family

ID=60020231

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197038136A KR102480349B1 (ko) 2017-05-24 2018-05-18 집적 프로세서를 갖는 dram의 로우 해머 수정 로직

Country Status (6)

Country Link
US (1) US11049544B2 (ko)
JP (1) JP7142946B2 (ko)
KR (1) KR102480349B1 (ko)
CN (1) CN110741436B (ko)
FR (1) FR3066842B1 (ko)
WO (1) WO2018215715A1 (ko)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11354408B2 (en) * 2019-08-15 2022-06-07 Nxp Usa, Inc. Technique for detecting and thwarting row-hammer attacks
US11222685B2 (en) * 2020-05-15 2022-01-11 Advanced Micro Devices, Inc. Refresh management for DRAM
US11561862B2 (en) 2020-05-29 2023-01-24 Advanced Micro Devices, Inc. Refresh management for DRAM
US11361811B2 (en) 2020-06-23 2022-06-14 Upmem Method and circuit for protecting a DRAM memory device from the row hammer effect
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
US11120860B1 (en) * 2020-08-06 2021-09-14 Micron Technology, Inc. Staggering refresh address counters of a number of memory devices, and related methods, devices, and systems
US11809743B2 (en) * 2020-09-21 2023-11-07 Advanced Micro Devices, Inc. Refresh management list for DRAM
US20220129200A1 (en) * 2020-10-26 2022-04-28 Qualcomm Incorporated Dram with quick random row refresh for rowhammer mitigation
US11749333B2 (en) * 2020-12-10 2023-09-05 SK Hynix Inc. Memory system
FR3120153B1 (fr) 2021-02-22 2024-02-16 Upmem Dispositif mémoire pourvu de circuits mémoire DRAM agences de manière à minimiser la taille d’un bloc mémoire permettant la gestion de l’effet de martelage de rang
FR3121262A1 (fr) * 2021-03-29 2022-09-30 Upmem Dispositif mémoire et procédé de protection d’un dispositif mémoire de l’effet de martelage d’un rang
EP4138078A1 (en) * 2021-08-18 2023-02-22 ETH Zurich A method for protecting a dram module against rowhammer attacks, and a dram module
KR20230051873A (ko) 2021-10-12 2023-04-19 삼성전자주식회사 해머 리프레시 로우 어드레스 검출기, 이를 포함하는 반도체 메모리 장치 및 메모리 모듈
KR20230072283A (ko) 2021-11-17 2023-05-24 삼성전자주식회사 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
FR3130412B1 (fr) 2021-12-09 2023-12-22 Upmem Dispositif mémoire DRAM mettant un œuvre un mécanisme de gestion du martelage de rang

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140006704A1 (en) 2012-06-30 2014-01-02 Zvika Greenfield Row hammer condition monitoring
US20140156923A1 (en) 2012-11-30 2014-06-05 Intel Corporation Row hammer monitoring based on stored row hammer threshold value

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6463001B1 (en) * 2000-09-15 2002-10-08 Intel Corporation Circuit and method for merging refresh and access operations for a memory device
US9236110B2 (en) * 2012-06-30 2016-01-12 Intel Corporation Row hammer refresh command
US20140085995A1 (en) * 2012-09-25 2014-03-27 Zvika Greenfield Method, apparatus and system for determining a count of accesses to a row of memory
US9299400B2 (en) * 2012-09-28 2016-03-29 Intel Corporation Distributed row hammer tracking
US10497409B2 (en) * 2014-12-17 2019-12-03 International Business Machines Corporation Implementing DRAM row hammer avoidance
JP2016212934A (ja) * 2015-05-01 2016-12-15 マイクロン テクノロジー, インク. 半導体装置及びその制御方法
US20170110178A1 (en) * 2015-09-17 2017-04-20 Intel Corporation Hybrid refresh with hidden refreshes and external refreshes
FR3042049A1 (ko) 2015-10-01 2017-04-07 Upmem
KR102358563B1 (ko) * 2018-05-09 2022-02-04 삼성전자주식회사 로우 해머 핸들링과 함께 리프레쉬 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템
KR20240064727A (ko) * 2018-08-03 2024-05-13 마이크론 테크놀로지, 인크 행 해머를 완화하기 위한 방법 및 이를 이용한 메모리 디바이스 및 시스템
US10950288B2 (en) * 2019-03-29 2021-03-16 Intel Corporation Refresh command control for host assist of row hammer mitigation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140006704A1 (en) 2012-06-30 2014-01-02 Zvika Greenfield Row hammer condition monitoring
US20140156923A1 (en) 2012-11-30 2014-06-05 Intel Corporation Row hammer monitoring based on stored row hammer threshold value

Also Published As

Publication number Publication date
JP2020521267A (ja) 2020-07-16
US11049544B2 (en) 2021-06-29
KR20200014805A (ko) 2020-02-11
JP7142946B2 (ja) 2022-09-28
CN110741436A (zh) 2020-01-31
FR3066842A1 (fr) 2018-11-30
FR3066842B1 (fr) 2019-11-08
CN110741436B (zh) 2023-11-10
WO2018215715A1 (fr) 2018-11-29
US20210012832A1 (en) 2021-01-14

Similar Documents

Publication Publication Date Title
KR102480349B1 (ko) 집적 프로세서를 갖는 dram의 로우 해머 수정 로직
TWI646533B (zh) 處理第四代雙倍資料率同步動態隨機存取記憶體中的最大啓動計數限制及目標列再新之技術
US11417383B2 (en) Apparatuses and methods for dynamic refresh allocation
US9940991B2 (en) Memory device and memory system performing request-based refresh, and operating method of the memory device
US10885966B1 (en) Method and circuit for protecting a DRAM memory device from the row hammer effect
US10108365B1 (en) Bitflip security attack protection
KR20160148700A (ko) 다이나믹 랜덤 액세스 메모리(dram)를 리프레시하기 위한 방법, 장치 및 시스템
US11361811B2 (en) Method and circuit for protecting a DRAM memory device from the row hammer effect
US20230402086A1 (en) Memory system
EP3382558B1 (en) Apparatus, method and system for just-in-time cache associativity
US10713159B2 (en) Semiconductor device for managing wear leveling operation of a nonvolatile memory device
US11182106B2 (en) Refresh circuit for use with integrated circuits
Kim et al. Hammerfilter: Robust protection and low hardware overhead method for rowhammer
KR102385443B1 (ko) 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치 및 그 방법
KR20230076039A (ko) 메모리
KR20220082730A (ko) 메모리 시스템
US20240038288A1 (en) Memory device refresh operations
US20230195889A1 (en) Processor support for software-level containment of row hammer attacks
KR20180047268A (ko) 메모리 셀에 대한 리프레시 방법 및 장치
US10649694B2 (en) Management device and information processing device
KR20240069323A (ko) 이종 메모리로 구성된 메인 메모리 장치를 포함하는 컴퓨터 시스템 및 그 동작 방법
JPH01228036A (ja) キャッシュメモリ

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant