KR102223188B1 - Ddr4 sdram에서의 최대 액티베이션 카운트 제한 핸들링 및 타겟 로우 리프레쉬 - Google Patents

Ddr4 sdram에서의 최대 액티베이션 카운트 제한 핸들링 및 타겟 로우 리프레쉬 Download PDF

Info

Publication number
KR102223188B1
KR102223188B1 KR1020150006906A KR20150006906A KR102223188B1 KR 102223188 B1 KR102223188 B1 KR 102223188B1 KR 1020150006906 A KR1020150006906 A KR 1020150006906A KR 20150006906 A KR20150006906 A KR 20150006906A KR 102223188 B1 KR102223188 B1 KR 102223188B1
Authority
KR
South Korea
Prior art keywords
memory
row
entry
memory row
activations
Prior art date
Application number
KR1020150006906A
Other languages
English (en)
Other versions
KR20150085485A (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 KR20150085485A publication Critical patent/KR20150085485A/ko
Application granted granted Critical
Publication of KR102223188B1 publication Critical patent/KR102223188B1/ko

Links

Images

Classifications

    • 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/1072Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers for memories with random access ports synchronised on clock signal pulse trains, e.g. synchronous memories, self timed memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1636Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using 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
    • 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
    • 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
    • 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 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/06Sense amplifiers; Associated circuits, e.g. timing or triggering circuits
    • G11C7/08Control thereof
    • 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

Landscapes

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

Abstract

본 발명은 감소된 수의 로우 액티베이션 카운터들을 이용하여 메모리의 로우들에 대한 액티베이션들을 효율적으로 트랙킹한다. 로우 액티베이션 카운터는 메모리 로우가 액티베이션 구간 동안에 액티베이션되었는 지의 여부를 나타내며 최대 액티베이션 윈도우 내에서 메모리 로우에 대한 허용된 액티베이션들의 수를 나타낸다.

Description

DDR4 SDRAM에서의 최대 액티베이션 카운트 제한 핸들링 및 타겟 로우 리프레쉬{HANDLING MAXIMUM ACTIVATION COUNT LIMIT AND TARGET ROW REFRESH IN DDR4 SDRAM}
본 발명은 메모리의 로우(row)에 대한 액티베이션들을 트랙킹하는 예시적 실시 예들을 가지는 방법과 장치들에 관한 것으로, 보다 상세하게는 감소된 수의 로우 액티베이션 카운터들을 이용하여 메모리의 로우에 대한 액티베이션들을 효율적으로 트랙킹하는 방법과 장치에 관한 것이다.
다이나믹 랜덤 억세스 메모리(이하 DRAM)의 타겟 로우(선택된 행)가 타임 구간 내에 너무 자주 액티베이션(활성화)되는 경우, 타겟 로우에 물리적으로 인접해 있는 인접 로우들에 저장된 데이터는 디스터브(disturb)되거나 소실(lost)될 수 있다. 특히, DRAM 설계의 밀도(density)가 증가함에 의해, 인접 로우에서 저장된 데이터는 타겟 로우의 빈번한 액티베이션으로부터 발생되는 노이즈에 기인하여 훼손(corruption)될 수 있다.
따라서, 일부 DRAM 디바이스들을 위해, 제조메이커는, DRAM의 아키텍쳐 및 타겟 로우의 액티베이션들이 인접 로우내에 저장된 데이터를 훼손할 수 있는 레이트(rate) 등에 근거하여, 타임 구간 내에 타겟 로우에 대한 최대 액티베이션들의 수를 결정할 수 있다. 타임 구간 내에서 설정된 액티베이션들의 수가 도달되면, 인접 로우들은 인접 로우들 내에 저장된 데이터의 훼손을 피하기 위해 리프레쉬되어야 한다.
타임 구간 내에 타겟 로우에 대한 최대 액티베이션들의 수는 최대 액티베이션 카운트(이하 MAC)로서 일반적으로 칭해진다. MAC은, 인접 로우들이 데이터 훼손을 피하기 위해 리프레쉬 되어지기 이전에, 최대 액티베이션 윈도우(tMAC)라고 하는 타임 구간 내에서 타겟 로우에 대한 최대 액티베이션들의 수인 것이다.
타겟 로우의 빈번한 액티베이션들에 기인하여 인접 로우내에 저장된 데이터 훼손과 관련한 상황은 하나 또는 둘의 "어그레서" 로우들과 타겟 원 "빅팀" 로우의 경우를 발생시킬 수 있다. 예를 들면, 인접 빅팀(victim)로우가 배치되는 사이에서, 멀티플 타겟 어그레서(aggressor) 로우들은 빈번히 액티베이션될 수 있다. 따라서, 주어진 빅팀 로우에 대한 두개의 어그레서 로우들로부터의 액티베이션들의 총합은,양 어그레서 로우들에 대한 액티베이션들이 인접 빅팀 로우에 저장된 데이터 훼손에 기여할 수 있기 때문에, 상기 MAC를 초과하지 않아야 한다.
타겟 로우에 대한 다른 액티베이션을 보내기 이전에, MAC 제한이 최대 액티베이션 윈도우내에 도달되면, 메모리 컨트롤러는 DRAM 내의 모든 로우들을 리프레쉬 및 타겟 로우 리프레쉬(TRR) 중 하나를 수행할 수 있다. TRR은 오버 액티베이션된 타겟 로우에 인접한 로우들 만을 리프레쉬하거나 MAC 제한이 오지 않는 상황에서 타겟 로우에 대한 액티베이션을 쓰로틀(조절)하기 위해 수행된다. MAC 제한은 모든 로우들의 완전한 리프레쉬를 수행하는 것 또는 TRR을 수행하는 것을 피하기는 하지만, 로우 액티베이션의 실행을 지연한다.
상기 시나리오에서, 빅팀 로우에 대한 MAC을 관리하는 것은, DRAM 내의 로우들에 대한 액티베이션들을 제어하는 메모리 컨트롤러가 로우들의 물리적 오리엔테이션을 모른다는 사실에 기인하여, 복잡하게 된다. 예를 들어, 메모리 컨트롤러는 주어진 빅팀 로우에 대하여 두 어그레서 로우들의 액티베이션들을 트랙킹(추적)할 수 없다. 빅팀 로우에 대한 MAC 초과를 보호하기 위해 효과적인 MAC 값이 최대 액티베이션 윈도우 내에서 MAC/2로 설정될 수 있다.
MAC 제한을 관리하는 것은 전형적으로 최대 액티베이션 윈도우 내에서 DRAM의 각 로우로 보내지는 액티베이션들의 수를 트랙킹하는 것을 요구한다. 각 로우에 대한 액티베이션들의 수를 실제로 트랙킹하는 것은 DRAM 내에서 각 뱅크 및 각 랭크에 대한 각 로우용 카운터를 요구한다. 4 랭크들, 랭크당 16 뱅크들, 뱅크당 128K 로우들을 가지는 DRAM에서, N 비트들을 카운트하는 카운터들의 개수는 4x16x128K =8192K 가 될 수 있다. 카운터들의 양과 그 관리를 위해 요구되는 관련된 공간은 메모리 컨트롤러 설계의 파워 및 면적의 관점에서 더욱 관리되기 어려울 수 있다.
본 발명이 해결하고자 하는 기술적 과제는, 감소된 수의 로우 액티베이션 카운터들을 이용하여 메모리의 로우에 대한 액티베이션들을 효율적으로 트랙킹하는 방법과 장치를 제공함에 있다.
예시적인 실시 예들은 상기 결점들을 극복할 수 있을 것이다. 그렇지만, 어떤 실시 예는 상기 결점들을 극복하는 것에 요구되지 않는다.
상기 기술적 과제를 달성하기 위한 본 발명의 예시적 실시 예의 일 양상(an aspect)에 따라, 상기 메모리를 제어하기 위한 메모리 컨트롤러는,
제1 엔트리를 포함하는 제1 엔트리 테이블과 제2 엔트리를 포함하는 제2 엔트리 테이블을 저장하기 위해 구성된 페이지 테이블을 포함하며,
상기 제1 엔트리는, 제1 타임구간 동안 활성화된 메모리의 제1 메모리 로우를 식별하는 제1 식별자; 및 상기 제1 타임구간 동안 남아있는 제1 타임을 나타내는 타임아웃 카운터를 포함하고,
상기 제2 엔트리는, 적어도 한 제2 타임구간 동안 활성화된 상기 메모리의 제2 메모리 로우를 식별하는 제2 식별자; 상기 제2 메모리 로우의 다수의 액티베이션들을 카운트하는 액티베이션 카운터; 및 상기 적어도 한 제2 타임 구간 동안 남아있는 제2 타임을 나타내는 제2 타임아웃 카운터를 포함한다.
본 발명의 예시적 실시 예의 일 양상에 따라, 메모리의 로우들에 대한 액티베이션들을 트랙킹하는 방법은,
메모리 내에 페이지 테이블을 저장; 및
상기 페이지 테이블을 이용하여 상기 메모리의 로우들에 대한 액티베이션들을 트랙킹하는 것을 포함하되,
상기 페이지 테이블은, 제1 엔트리를 포함하는 제1 엔트리 테이블과 제2 엔트리를 포함하는 제2 엔트리 테이블을 저장하기 위해 구성되고,
상기 제1 엔트리는, 제1 타임구간 동안 활성화된 메모리의 제1 메모리 로우를 식별하는 제1 식별자; 및 상기 제1 타임구간 동안 남아있는 제1 타임을 나타내는 타임아웃 카운터를 포함하고,
상기 제2 엔트리는, 적어도 한 제2 타임구간 동안 활성화된 상기 메모리의 제2 메모리 로우를 식별하는 제2 식별자; 상기 제2 메모리 로우의 다수의 액티베이션들을 카운트하는 액티베이션 카운터; 및 상기 적어도 한 제2 타임 구간 동안 남아있는 제2 타임을 나타내는 제2 타임아웃 카운터를 포함한다.
본 발명의 실시 예들의 구성에 따르면, 감소된 수의 로우 액티베이션 카운터들을 이용하여 메모리의 로우들에 대한 액티베이션들이 효율적으로 트랙킹된다.
도 1은 본 발명의 실시 예에 따른 DRAM의 타이밍 파라미터들을 나타내는 도면이다.
도 2는 본 발명의 실시 예에 따른 페이지 테이블을 나타내는 도면이다.
도 3은 본 발명의 실시 예에 따른 메모리의 로우들에 대한 액티베이션들을 트랙킹하는 방법을 나타내는 도면이다.
도 4는 본 발명의 실시 예에 따른 메모리 컨트롤러를 나타내는 도면이다.
도 5는 본 발명의 실시 예에 따른 DDR4의 디바이스 파라미터들을 보여주는 도면이다.
도 6은 본 발명의 실시 예에 따라, 메모리의 로우들에 대한 액티베이션들을 트랙킹하는 방법과 도 5의 디바이스 파라미터들을 적용한 성능 데이터 테스팅 결과를 보여주는 도면이다.
이하에서는 예시적 실시 예들이, 같은 참조 부호들이 전반적으로 같은 구성 요소들을 인용하고 있는 첨부 도면을 참조로, 보다 완전히 설명될 것이다.
"적어도 하나의" 등과 같은 표현은 구성 요소들의 리스트를 선행시킬 때 구성 요소들의 전체 리스트를 변경하지만 개별적인 구성 요소들의 리스트를 변경하지 않는다.
도 1은 본 발명의 실시 예에 따른 DRAM의 타이밍 파라미터들을 나타내는 도면이다.
다양한 DRAM 타이밍 파라미터들을 이해함에 의해, 최대 액티베이션 윈도우(tMAW)내에서 DRAM 내의 타겟 로우, MAC 제한의 위반을 피하기 위해 동시에 트랙킹되어질 필요가 있는 로우들의 개수, 또는 전체 DRAM 시스템의 성능에 대한 큰 영향성으로 단언될 수 있는 액티베이션들의 개수 제한은 감소될 수 있을 것이다.
도 1에서, DRAM의 타이밍 파라미터들은 DRAM 최대 액티베이션 윈도우(tMAW)와 상기 tMAW내의 로우에 대한 최대 액티베이션들의 수(tMAC)를 포함할 수 있다. 그러한 파라미터들은 상술한 바와 같이, DRAM의 제조 메이커에 의해 결정될 수 있다.
MAC에 대한 로우 액티베이션 트랙킹을 구현하기 위해, 본 발명의 실시 예에 따른 메모리 컨트롤러는 추가적인 타이밍 파라미터 tRCRow를 포함할 수 있다. 파라미터 tRCRow는 동일 타겟 로우에 대한 액티베이션들 간의 평균치로서 다음과 같이 계산될 수 있다.
tRCRow = tMAW/(MAC/2)이다.
상기한 계산 식에서 (MAC/2)의 값은 유효 MAC 값으로 될 수 있다.
tRCRow의 값은 상기한 바와 같이 초기화될 수 있고, tRCRow 윈도우 동안에 액티베이션되었던 로우에 대한 액티베이션들(ActCTR)의 수에 따라 아래와 같이 리셋될 수 있다.
tRCRow = tMAW/(MAC-ActCTR/2)이다.
tRCRow 계산 내에 포함되어 있는 ActCTR 값은 최대 액티베이션들의 수에 근거한다. 상기 최대 액티베이션들의 수는 특정한 로우에 대한 액티베이션들의 수를 나타내는 엔트리들을 저장하는 페이지 테이블 구조에 의해 카운트될 수 있고, 이하에서 설명될 것이다. 여기서 특정한 로우는 하나 이상의 tRCRow 윈도우들 동안에 액티베이션되었던 로우를 의미한다. 이는 ActCTR의 폭에 의해 결정되어진다. 따라서, tRCRow는 tRCRow 윈도우 동안 액티베이션되었던 로우에 대한 액티베이션들(ActCTR)의 최대 값에 근거하여 리셋될 수 있다.
추가적인 타이밍 파라미터들은 리프레쉬 인터발(tREF1), 리프레쉬 커맨드를 완료하기 위해 요구되는 타임(tRFC), 파워 제한 공급 파라미터들(tRRD_L 및 tFAW), 업데이트 타이밍 파라미터(tMOD), 리드 딜레이 타이밍 파라미터들(tRCD), 및 뱅크 타이밍 파라미터들(tRAS, tRP, 및 tRC)을 포함할 수 있다. 다시, 그러한 파라미터들은 아키텍쳐 선택에 근거하여, DRAM의 제조메이커에 의해 결정될 수 있다.
도 2는 본 발명의 실시 예에 따른 페이지 테이블을 나타내는 도면이다.
페이지 테이블(200)은 감소된 개수의 로우 액티베이션 카운터들을 이용하여 메모리의 로우들에 대한 액티베이션들을 효율적으로 트랙킹하기 위해, 뱅크당 2개의 페이지 테이블 구조들을 포함할 수 있다.
페이지 테이블 구조(RowOneAct :210)는 tRCRow 윈도우 동안 액티베이션되었던 로우들을 나타내는 엔트리들을 저장할 수 있다. 예를 들어, 페이지 테이블 구조(RowOneAct :210)는 tRCRow 윈도우 동안 로우들의 액티베이션들을 트랙킹하기 위해 뱅크 내에서 16 엔트리 구조로 될 수 있다.
페이지 테이블 구조(RowOneAct :210)는 tRCRow 윈도우 동안 액티베이션되었던 로우(230)을 관련지울 수 있고 상기 로우(230)에 대한 tRCRow 윈도우의 만료를 트랙킹하기 위한 타임아웃 카운터(240)를 관련지울 수 있다.
메모리 컨트롤러는 메모리 로우의 액티베이션이 발생할 때 상기 로우(230)에 관한 페이지 테이블 구조(RowOneAct :210)에 대한 엔트리를 예시할 수 있고, 타임아웃 카운터(240)를 tRCRow 와 같은 값으로 초기화할 수 있다. 메모리 컨트롤러는 또한, 타임아웃 카운터(240)에 근거하여 결정되는 것으로서 tRCRow가 일단 끝나면 페이지 테이블 구조(RowOneAct :210)로부터 엔트리를 퍼지(purge)할 수 있다. 그렇게 함에 의해, 메모리 컨트롤러는 tRCRow 윈도우 동안 액티베이션되었던 로우들을 인식하기 위해 페이지 테이블 구조(RowOneAct :210)를 조사(query)할 수 있다.
제2 엔트리(RowLeakBuck :220)은 하나 이상의 tRCRow 윈도우들 동안 액티베이션되었던 특정한 로우에 대한 액티베이션들의 개수를 나타내는 엔트리들을 저장할 수 있다.
RowLeakBuck(220)페이지 테이블 구조는 tRCRow 윈도우 동안 액티베이션되었던 로우(250), 상기 로우(250)에 대한 하나 이상의 tRCRow 윈도우들의 만료를 트랙킹하기 위한 타임아웃 카운터(tRCRowCTR:260), 및 tRCRow 윈도우 동안 액티베이션되었던 상기 특정한 로우(250)에 대한 액티베이션들(ActCTR:270)의 수를 카운트하는 액티베이션 카운터를 관련지울 수 있다. RowLeakBuck(220)페이지 테이블 구조 내에 엔트리가 예시될 때, 타임아웃 카운터(260)는 tRCRow 와 같은 값으로 초기화되거나, 엔트리가 페이지 테이블 구조(RowOneAct :210)에서 RowLeakBuck(220)페이지 테이블 구조으로 이동될 경우에는 후술되는 바와 같이, 타임아웃 카운터(260)는 타임아웃 카운터(240)의 값과 같은 값으로 번갈아 초기화될 수 있다. 부가적으로, 엔트리가 RowLeakBuck(220)페이지 테이블 구조 내로 예시될 때, 액티베이션 카운터(270)은 1로 초기화될 수 있다.
예를 들어, RowLeakBuck(220)페이지 테이블 구조는 RowLeakBuck(220)페이지 테이블 구조 내에 각 로우 엔트리(250)를 위해 8 비트 액티베이션 카운터(270)를 적용하는 뱅크 내에서 8 엔트리 구조로 될 수 있다.
액티베이션 카운터(270)는 RowLeakBuck(220)페이지 테이블 구조 내에서 엔트리(250)를 매칭하는 특별한 로우가 액티베이션될 때마다, 예를 들어 1씩 증가될 수 있다. 상기한 바로서, 타임아웃 카운터(260)는 엔트리(250)를 매칭하는 특별한 로우가 일단 액티베이션되면 초기화될 수 있다.
역으로, 액티베이션 카운터(270)는 타임아웃 카운터(260)가 종료됨에 따라 매 tRCRow 마다 예를 들어 1만큼 씩 감소될 수 있다.
타임아웃 카운터(260)의 종료시, 액티베이션 카운터(270)이 넌제로(non-zero)액티베이션들 값을 나타내면, 타임아웃 카운터(260)는 상기한 바로서, 넌제로 액티베이션들 값에 따라 이후에 tRCRow와 같은 값으로 리셋될 수 있다.
액티베이션 카운터(270)에 의해 나타낸 바와 같이 액티베이션들에 대한 카운팅에 의해, tRCRow 윈도우는 최대 액티베이션들의 수 tMAC가 DRAM 최대 액티베이션 윈도우 tMAW 내에서 발생되지 않는 것을 보장하기 위해 제어될 수 있다.
타임아웃 카운터(260)의 종료시 액티베이션 카운터(270)를 감소시키고 리셋하는 동작들은 액티베이션 카운터(270)의 값이 0이 될 때까지 반복될 수 있다. 액티베이션 카운터(270)가 0에 도달하면, 대응되는 로우(250)의 엔트리는 RowLeakBuck(220)페이지 테이블 구조로부터 제거될 수 있다.
따라서, 메모리 컨트롤러는, 인접 로우들의 데이터 훼손을 방지하기 위해 리프레쉬나 액티베이션들의 조절을 필요로 할 수 있는 높게 액티베이션되는 로우들에 대한 액티베이션들의 수와 잠재적으로 오버 액티베이션되는 로우들을 확인하기 위해, RowLeakBuck(220)페이지 테이블 구조를 조사할 수 있다.
도 3은 본 발명의 실시 예에 따른 메모리의 로우들에 대한 액티베이션들을 트랙킹하는 방법을 나타내는 도면이다.
상기한 바와 같이, 메모리 컨트롤러는 로우들에 대한 빈번한 억세스로부터 야기되는 데이터 훼손을 방지하기 위해 메모리의 로우들에 대한 액티베이션들을 트랙킹하는 방법을 실행할 수 있다.
단계 S305에서, 메모리 컨트롤러는 로우에 대한 메모리 억세스 용 리퀘스트를 수신한다.
단계 S310에서, 메모리 컨트롤러는 요청된 로우가 제2 페이지 테이블 구조(220)내에 존재하는 엔트리의 로우(250)를 매치하는 지의 여부를 결정하기 위해 제2 페이지 테이블 구조(220)를 조사할 수 있다.
요청된 로우가 제2 페이지 테이블 구조(220) 내에 존재하는 엔트리의 로우(250)를 매치하는 것으로 결정되면(단계 S310이 YES), 액티베이션 카운터(270)를 쓰레쉬홀드와 비교함에 의해, 메모리 컨트롤러는 단계 S315에서 요청된 로우가 오버 액티브 로우인지의 여부를 결정한다. 쓰레쉬홀드는 상기한 바로서, 요청된 로우에 대한 액티베이션들의 수가 최대값에 도달하였음을 나타내는 액티베이션 카운터(270)의 값이 될 수 있다.
메모리 컨트롤러가 요청된 로우에 대한 액티베이션들의 수가 쓰레쉬홀드보다 작은 것으로 결정하면(단계 S315가 NO), 메모리 컨트롤러는 단계 S320에서 제2 페이지 테이블 구조(220)의 엔트리 내에서 메모리 로우(250)에 대한 액티베이션 카운터(270)를 증가시키고, 단계 S355에서 로우 액티베이션을 수행한다.
한편, 메모리 컨트롤러가 요청된 로우에 대한 액티베이션들의 수가 쓰레쉬홀드에 도달된 것으로 결정하면(단계 S315가 YES), 메모리 컨트롤러는 단계 S325에서 리프레쉬나 메모리 액티베이션의 조절을 수행할 수 있다. 여기서, 메모리 컨트롤러가 리프레쉬를 수행하면, 액티베이션 카운터(270)는 0으로 리셋되거나, 로우(250)에 대한 엔트리는 제2 페이지 테이블 구조(220)로부터 재할당될 수 있다. 대안적으로, 메모리 컨트롤러가 쓰로틀링을 수행하면, 메모리 컨트롤러는 타임아웃 카운터(260)에 의해 표시되는 윈도우들의 연속적인 종료에 근거하여, 액티베이션 카운터(270)가 수용할 수 있는 낮은 쓰레쉬홀드에 도달할 때까지 로우의 액티베이션을 조절할 수 있다.
메모리 억세스에 관한 요청에 대한 메모리 컨트롤러의 수신으로 돌아가서(단계 S315), 메모리 컨트롤러가 요청된 로우가 제2 페이지 테이블 구조(220)내에 존재하는 엔트리를 매치하지 않은 것으로 결정하면(단계 S310이 NO), 메모리 컨트롤러는 단계 S330에서, 요청된 로우가 제1 페이지 테이블 구조(210)내에 존재하는 엔트리를 매치하는 지의 여부를 결정한다.
요청된 로우가 제1 페이지 테이블 구조(210)내에 존재하는 엔트리를 매치하는 것으로 결정되면(단계 S330이 YES), 요청된 로우가 현재의 윈도우 동안에 이미 액티베이션되어 있는 것을 나타냄에 의해, 메모리 컨트롤러는 단계 S350에서 액티베이션들의 수를 트랙킹하기 위해 추가 엔트리가 제2 페이지 테이블 구조(220)내에 할당될 수 있는 지의 여부를 결정한다.
메모리 컨트롤러가, 제2 페이지 테이블 구조(220)가 액티브 엔트리들로 가득 차 있고 추가 엔트리가 제2 페이지 테이블 구조(220)내에 할당되지 않은 것을 결정하면(단계 S350이 YES), 메모리 컨트롤러는 단계 S325에서 리프레쉬나 메모리 액티베이션의 조절을 수행할 수 있다. 여기서, 메모리 컨트롤러가 리프레쉬를 수행하면 로우(230)에 대한 엔트리는 제1 페이지 테이블 구조(210)로부터 재할당될 수 있다. 대안적으로, 메모리 컨트롤러가 쓰로틀링을 수행하는 경우에, 메모리 컨트롤러는 타임아웃 카운터(240)에 근거하여 결정되는 바로서 윈도우의 만료 때까지, 로우의 액티베이션을 조절할 수 있고, 로우(230)에 대한 엔트리는 제1 페이지 테이블 구조(210)로부터 재할당될 수 있다.
한편, 메모리 컨트롤러는 제2 페이지 테이블 구조(220)가 액티브 엔트리로 차있지 않은 것으로 결정하면(단계 S350이 NO), 메모리 컨트롤러는 단계 S345에서, 제1 페이지 테이블 구조(210)로부터 로우(230)에 대한 엔트리를 할당해제할 수 있고, 제2 페이지 테이블 구조(220)내에 요청된 로우에 대한 대응되는 신규 엔트리를 할당하고, 단계 S355에서 로우 액티베이션을 수행할 수 있다.
요청된 로우가 단계 S330에서 제1 페이지 테이블 구조(210)내에 존재하는 엔트리를 매치하는 지를 판단하는 메모리 컨트롤러의 결정으로 돌아가서(단계 S315), 요청된 로우가 제1 페이지 테이블 구조(210)내에 존재하는 엔트리를 매치하지 않은 경우(단계 S310이 NO)이면, 메모리 컨트롤러는 단계 S335에서, 로우가 윈도우 동안에 액티베이션되었는 지를 트랙킹하기 위해 추가 엔트리가 상기 제1 페이지 테이블 구조 내에 할당되어지는 지의 여부를 결정한다.
메모리 컨트롤러가 제1 페이지 테이블 구조가 액티브 엔트리들로 차있고, 추가 엔트리가 제1 페이지 테이블 구조(210)내에 할당되지 않는 것으로 결정하면(단계 S335이 YES), 메모리 컨트롤러는 단계 S350에서 액티베이션들의 개수를 트랙킹하기 위해 추가 엔트리가 제2 페이지 테이블 구조(220)내에 할당되어 있는 지의 여부를 결정하고, 상기한 바와 같은 연속적인 결정동작을 수행한다.
이외에, 메모리 컨트롤러가 제1 페이지 테이블 구조(210)가 액티브 엔트리들로 차있지 않은 경우(단계 S335가 NO)이면, 메모리 컨트롤러는 상기 제1 페이지 테이블 구조(210) 내에서 요청된 로우에 대한 신규 엔트리를 할당하고, 단계 S355에서 로우 액티베이션을 수행할 수 있다.
도 4는 본 발명의 실시 예에 따른 메모리 컨트롤러를 나타내는 도면이다.
도 4에서 도시된 바와 같이, 메모리 컨트롤러(400)는 시스템 인터페이스(410), 어드레스 변환 유닛(420), 메인 리퀘스트 큐(430), 아비터(440), DDR 피지컬 레이어 디바이스(DFI)인터페이스(450), 셀렉터(460), 및 페이지 테이블(470)을 포함한다.
도 4에서 도시된 페이지 테이블(470)은 도 2내의 페이지 테이블(200)과 유사하므로 이에 대한 상세한 설명은 생략된다.
시스템 인터페이스(410)는 메모리 컨트롤러(400)에 속해 있는 시스템의 추가적 컴포넌트들에 대한 인터페이스이다. 메세지들과 데이터는 시스템 인터페이스(410)를 통해 전송되고 수신된다.
어드레스 변환 유닛(420)는 상기 시스템 인터페이스(410)를 통해 수신된 메모리 리퀘스트들에 대한 어드레스 변환을 수행한다.
메인 리퀘스트 큐(430)은 상기 시스템 인터페이스(410)를 통해 수신되고 상기 어드레스 변환 유닛(420)에 의해 변환된 메모리 리퀘스트들을 저장한다.
아비터(440)는 리퀘스트 신호(Pick Req)를 상기 메인 리퀘스트 큐(430)내에 저장된 리퀘스트들 중 하나를 선택하기 위한 셀렉터(460)로 출력한다. 상기 리퀘스트들은 DFI 인터페이스(450)를 통해 처리되어진다.
페이지 테이블(470)은 메모리 리퀘스트에 대응되는 메모리 로우를 액티베이션할 지를 결정하기 위해 상기 메인 리퀘스트 큐내에 저장된 상기 리퀘스트들과 함께 조회될 수 있다. 액티베이션의 결정에 대한 상세한 설명은 도 3과 관련하여 언급되었으므로, 이에 대한 상세한 설명은 생략된다.
페이지 테이블(470)은 메모리 로우의 액티베이션과 관련하여 DFI 인터페이스(450)로부터 피드백을 추가적으로 수신할 수 있다.
도 5는 본 발명의 실시 예에 따른 DDR4의 디바이스 파라미터들을 보여주는 도면이다. 도 6은 본 발명의 실시 예에 따라, 메모리의 로우들에 대한 액티베이션들을 트랙킹하는 방법과 도 5의 디바이스 파라미터들을 적용한 성능 데이터 테스팅 결과를 보여주는 도면이다.
도 5에서 도시된 바와 같이, DDR4 DRAM 디바이스 파라미터들은 설명되었다. 당업자라면 DDR4 DRAM 디바이스 파라미터들은 제조 메이커에 의해 결정될 수 있다는 것을 이해할 수 있을 것이다.
도 6은 본 발명의 실시 예에 따라, 메모리의 로우들에 대한 액티베이션들을 트랙킹하는 방법과 도 5의 디바이스 파라미터들을 적용한 성능 데이터 테스팅 결과를 보여주는 도면이다.
도시된 바와 같이, 3개의 스킴(스킴 1, 스킴 2, 및 스킴 3)에 대한 성능 데이터가 7개의 트래픽 패턴들을 이용하여 나타나 있다. 즉, 액티베이션당 1 CAS, N 로우들에 대한 라운드 로빈 억세스, 여기서, N= 128K,16,8,6,4,2,1 이다. 퍼포먼스 매트릭스는 tMAC 윈도우들 내에서, 많은 액티베이션들이 한 뱅크에 대하여 어떻게 이슈될 수 있는 지에 대한 비교를 나타난다. 도시된 바와 같이 예시적 실시 예에 따라, 메모리 채널 내에서 한 뱅크 이상이 될 수 있고, 모든 트래픽은 한 뱅크로만 가는 것으로 가정한다.
도 6에 도시된 본 발명의 예시적 실시 예에 따라, 제1 및 제2 스킴들(Schemes)(스킴 1, 및 스킴 2)은 본 발명의 특징을 나타내는 제3 스킴(스킴 3)에 대한 예들과 비교할 수 있다.
제1 스킴(스킴 1)에서, 뱅크는 최대 액티베이션 카운트 제한에 도달하는 것을 피하기 위해 노말 리프레쉬 레이트보다 더 자주 리프레쉬된다. 이 경우에는 리프레쉬(예를 들면 TRR)모드로 진입할 필요성이 없다.
뱅크는 47ns(tRC)*300K =14.1ms 내에서 300K(tMAC)번 액티베이션될 수 있다. 로우가 이 윈도우 내에서 매번 리프레쉬가 된다면, 300K 액티베이션들 이하가 어느 로우에 대해 적용되는 것이 보장된다.
리프레쉬의 성능 오버헤드는 tRFC/tREFI * tMAW / 14.1 = 20.4% 이다. 노말 리프레쉬 레이트의 성능 오버헤드는 tRFC/tREFI = 4.5% 이다. 따라서, 제1 스킴의 성능 오버헤드는 1-(1-20.4%)/(1-4.5%) = 16.6% 이다. 본 발명의 실시 예에 따라, 성능 오버헤드는 모든 리스트된 억세스 패턴들과 동일하다.
제2 스킴(스킴 2)에서, 카운터는 최근 액티베이션들의 수를 트랙킹하기 위해 사용된다. 즉, 카운터를 tRCRow 마다 감소시키고, 액티베이션이 상기 로우로 보내질 때에 카운터를 증가시킨다. 리프레쉬(예를 들어, TRR 모드)는 카운터가 오버플로우되거나 카운터가 최대 카운터 값에 도달하여 액티베이션이 조절될 때마다 초기화된다.
카운터 폭이 19비트일 때, 뱅크당 전체 스토리지 오버헤드는 2432 Kbits (19 bits/row * 128K rows = 2432 Kbits)이다. 만약, 카운터 오버플로우 발생시 TRR 모드가 사용되면, tMAW 내의 오버플로우들의 수는 (64ms/47ns/300k < 5) 만큼 바운드되어 성능 오버헤드는 무시된다. 스토리지 오버헤드를 줄이기 위해, 비트들의 수는 카운터 당 감소될 수 있다. 같은 트래픽 패턴에 대해 보다 작은 카운터를 이용 시 오버플로우들의 수는 크지만, 더 높은 성능 오버헤드가 필요하게 된다. 예를 들어, 카운터 폭이 8이면 스토리지 오버헤드는 1024Kbits/bank 이고, 성능 열화는 N=1 인 경우에 5.4%로 증가된다(1 로우 억세스 시).
TRR 모드가 사용되지 않으면, 메모리 컨트롤러는 카운터가 최대 값에 도달 할 때 액티베이션들을 조절한다. 예를 들면, N=1인 경우(1로우 억세스 시)에, 로우의 카운터가 최대 값(300K)에 도달하면, 메모리 컨트롤러는 tRCRow (213.33ns)마다 액티베이션을 이슈만 할 수 있고, 따라서 퍼포먼스 오버헤드는 1-47ns/213.ns = 77.9% 이다.
제3 스킴(스킴 3)에서, 도 3내에 도시된 완전한 방법이 구현된다.
성능 오버헤드는 제2 스킴과 동일하다. 그러나 스토리지 오버헤드는 많이 낮다. 이 스킴에 대하여, 168=(16+(8*19))카운터 비트들이 필요해진다. 카운터는 로우당 저장되지 않기 때문에, 엔트리당 로우 인덱스(17 로우 어드레스 비트들)이 적용되고, 다른 408 비트들(24*17)을 더한다.
이 스킴(168+408)에 대한 전체 스토리지는 다른 스킴들에 비해 여전히 아주 적다. 성능 오버헤드는 제2 스킴과 동일하다. 왜냐하면 8 카운터들(도 2의 제2 페이지 테이블 구조(220)내에 구현된 것으로서)이 N <= 4일 때 많은 액티베이션들을 가지는 로우들을 캡쳐하는 것이 충분하기 때문이고, N >4일 때 뱅크는 상술한 바와 같이 컨피겨레이션에 대한 로우 함머 이슈들에 적용되지 않는다. 더욱이, 제3 스킴은 스킴 2보다 낮은 스토리지 및 성능 오버헤드를 가지며, 스킴 1보다 아주 낮은 성능 및 파워 오버헤드를 상대적으로 가진다.
특히, 다른 컨피겨레이션들(tMAW/tMAC)에 대해, 카운터들의 수(도 2의 제2 페이지 테이블 구조 220내에 구현된 것으로서)는 조절될 수 있다.
예시적 실시 예들의 기능들은 컴퓨터로 읽기 가능한 기록 매체내의 컴퓨터 읽기 가능 코드들로서 구현될 수 있다. 컴퓨터로 읽기 가능한 기록 매체는 컴퓨터읽기 가능한 데이터가 저장되어 있는 기록 매체의 어떤 종류도 포함한다. 예를 들면, 컴퓨터로 읽기 가능한 기록 매체는 ROM, RAM, CD-ROM, 마그네틱 테이프, 플로피 디스크, 및 광학 데이터 스토리지를 포함할 수 있다. 게다가, 기록 매체는 인터넷 전송으로 이용되는 것과 같은 반송파의 형태로도 구현되어질 수 있다. 덧붙여, 컴퓨터로 읽기 가능한 기록 매체는 네트워크 상의 컴퓨터 시스템으로 분배될 수 있다. 컴퓨터 시스템에는 컴퓨터로 읽기 가능한 코드들이 저장되고 분배된 수법으로 실행될 수 있다.
당해 기술자들에 의해 잘 이해될 수 있는 바로서, 예시적 실시 예들은 소프트웨어 및/또는 하드웨어 소자들, 예를 들면, 주어진 타스크를 수행하는 필드 프로그래머블 게이트 어레이(FPGA)나 ASIC등과 같은 임의의 조합에 의해서도 구현될 수 있다.
유닛 또는 모듈은 접근 가능 스토리지 매체상에 존재하기 위해 구성될 수 있으며 하나 이상의 프로세서들 또는 마이크로프로세서들을 실행하기 위해 구성될 수 있다. 따라서, 유닛 또는 모듈은 예를 들어, 소프트웨어 컴포넌트들, 객체 지향 소프트웨어 컴포넌트들, 클래스 컴포넌트들 및 타스크 컴포넌트들, 프로세스들, 펑션들, 속성들, 프로시져들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로코드, 회로류, 데이터, 데이터 베이스, 데이터 스트럭쳐들, 테이블들, 어레이들, 및 베리어블들 등과 같은 컴포넌트들을 포함할 수 있다.
컴포넌트들 및 유닛들내에 제공된 펑셔날리티(functionality)는 소수의 컴포넌트들 및 유닛들, 모듈들, 더욱 분할된 추가 컴포넌트들 및 유닛들, 또는 모듈들과 결합될 수 있다.
상술한 바와 같이 본 발명의 예시적인 실시 예들이 개시되었다. 그렇지만, 본 발명의 다양한 변경이 만들어질 수 있다는 것이 이해될 것이다. 예를 들면, 적절한 결과들은 상기한 테크닉들이 다른 순서로 수행되는 경우에도 얻어질 수 있을 것이다. 또한, 설명된 시스템, 아키텍쳐, 디바이스, 또는 회로 내의 컴포넌트들이 다른 수법으로 결합되거나 다른 컴포넌트들이나 균등물로 대치되거나 보충되는 경우에도 상기 적절한 결과들이 얻어질 수 있을 것이다. 따라서, 다른 구현 예시들은 이하의 클레임들의 스코프 내에 속해 있다.
200: 페이지 테이블 210: 제1 페이지 테이블 구조
220: 제2 페이지 테이블 구조 400: 메모리 컨트롤러

Claims (20)

  1. 제1 엔트리를 포함하는 제1 엔트리 테이블 및 제2 엔트리를 포함하는 제2 엔트리 테이블을 사용한 것을 저장하도록 구성된 페이지 테이블을 포함하되,
    상기 제1 엔트리는:
    제1 타임구간 동안 활성화된 메모리의 제1 메모리 로우를 식별하는 제1 식별자; 및
    상기 제1 타임구간 동안 남아있는 제1 타임을 나타내는 제1 타임아웃 카운터를 포함하고,
    상기 제2 엔트리는:
    적어도 하나의 제2 타임구간 동안 활성화된 상기 메모리의 제2 메모리 로우를 식별하는 제2 식별자;
    상기 제2 메모리 로우의 액티베이션들의 수량을 카운트하는 액티베이션 카운터; 및
    상기 적어도 하나의 제2 타임구간 동안 남아있는 제2 타임을 나타내는 제2 타임아웃 카운터를 포함하는,
    상기 메모리를 제어하는 메모리 컨트롤러.
  2. 제 1 항에 있어서,
    상기 제2 메모리 로우에 인접하여 위치된 상기 메모리의 인접 메모리 로우내에 저장된 데이터의 열화 없이 상기 제2 메모리 로우의 최대 허용 액티베이션들의 수가 허용되는 타임구간인 최대 액티베이션 윈도우 동안, 상기 제2 메모리 로우의 액티베이션들의 수량은 상기 제2 메모리 로우의 최대 허용 액티베이션들의 수에 기여하는 메모리 컨트롤러.
  3. 제 1 항에 있어서,
    상기 제2 메모리 로우에 인접하여 위치된 상기 메모리의 인접 메모리 로우의 리프레쉬 없이 상기 제2 메모리 로우의 최대 허용 액티베이션들의 수가 허용되는 타임구간인 최대 액티베이션 윈도우 동안, 상기 제2 메모리 로우의 액티베이션들의 수량은 상기 제2 메모리 로우의 최대 허용 액티베이션들의 수에 기여하는 메모리 컨트롤러.
  4. 제 3 항에 있어서,
    상기 적어도 하나의 제2 타임구간은 상기 최대 액티베이션 윈도우 내에서 상기 제2 메모리 로우의 최대 허용 액티베이션들의 수들 각각 사이의 평균 시간인 메모리 컨트롤러.
  5. 제 4 항에 있어서,
    상기 메모리 컨트롤러는, 상기 메모리의 메모리 로우를 액티베이션하는 리퀘스트를 수신하고,
    상기 메모리 로우가 상기 제2 엔트리의 상기 제2 식별자에 의해 식별된 상기 제2 메모리 로우와 매치하는 지를 결정하고,
    상기 액티베이션 카운터가 상기 최대 허용 액티베이션들의 수를 나타내는 지 여부를 결정하고, 그리고
    상기 액티베이션 카운터가 상기 최대 허용 액티베이션들의 수를 나타낸다고 결정한 것에 응답하여, 상기 메모리의 리프레쉬 동작 및 상기 리퀘스트의 스톨링 동작 중의 하나를 실행하도록 구성된 메모리 컨트롤러.
  6. 제 5 항에 있어서,
    상기 메모리 컨트롤러는, 상기 액티베이션 카운터가 상기 최대 허용 액티베이션들의 수를 나타내지 않는다고 결정한 것에 응답하여 상기 액티베이션 카운터를 증가시키고, 그리고
    상기 제2 메모리 로우를 액티베이션하도록 더 구성된 메모리 컨트롤러.
  7. 제 4 항에 있어서,
    상기 메모리 컨트롤러는, 상기 메모리의 메모리 로우를 액티베이션하는 리퀘스트를 수신하고,
    상기 메모리 로우가 상기 제1 엔트리의 상기 제1 식별자에 의해 식별된 상기 제1 메모리 로우와 매치하는 지를 결정하고,
    상기 제1 엔트리를 할당해제 하고,
    상기 제2 엔트리 테이블 내에서 상기 메모리 로우의 대응 엔트리를 할당하고, 그리고
    상기 메모리 로우를 액티베이션하도록 구성된 메모리 컨트롤러.
  8. 제 4 항에 있어서,
    상기 메모리 컨트롤러는, 상기 메모리의 메모리 로우를 액티베이션하는 리퀘스트를 수신하고,
    상기 메모리 로우가 상기 제1 엔트리의 상기 제1 식별자에 의해 식별된 상기 제1 메모리 로우와 매치하지 않는 지를 결정하고, 그리고
    상기 제1 엔트리 테이블 내에서 상기 메모리 로우의 대응 엔트리를 할당하도록 구성된 메모리 컨트롤러.
  9. 제 4 항에 있어서,
    상기 메모리 컨트롤러는, 상기 메모리의 메모리 로우를 액티베이션하는 리퀘스트를 수신하고,
    상기 메모리 로우가 상기 제1 엔트리의 상기 제1 식별자에 의해 식별된 상기 제1 메모리 로우와 매치하는 지를 결정하고,
    상기 제2 엔트리 테이블이 상기 제1 메모리 로우에 대응하는 추가 엔트리를 할당하지 않는다고 결정하고, 그리고
    상기 제2 엔트리 테이블이 상기 제1 메모리 로우에 대응하는 상기 추가 엔트리를 할당하지 않는다고 결정한 것에 응답하여, 상기 메모리의 리프레쉬 동작 및 상기 리퀘스트의 스톨링 동작 중의 하나를 실행하도록 구성된 메모리 컨트롤러.
  10. 제 4 항에 있어서,
    상기 메모리 컨트롤러는, 상기 적어도 하나의 제2 타임구간이 상기 제2 타임 아웃 카운터로부터 경과되었다고 결정하고, 그리고
    상기 적어도 하나의 제2 타임구간이 상기 제2 타임 아웃 카운터로부터 경과되었다고 결정한 것에 응답하여, 상기 액티베이션 카운터를 감소시키도록 구성된 메모리 컨트롤러.
  11. 메모리의 로우들에 대한 액티베이션들을 트랙킹하는 방법에 있어서,
    메모리 내에 페이지 테이블을 저장하는 단계; 및
    상기 페이지 테이블을 이용하여 상기 메모리의 로우들에 대한 액티베이션들을 트랙킹하는 단계를 포함하되,
    상기 페이지 테이블은 제1 엔트리를 포함하는 제1 엔트리 테이블 및 제2 엔트리를 포함하는 제2 엔트리 테이블을 사용한 것을 저장하도록 구성되고,
    상기 제1 엔트리는:
    제1 타임구간 동안 활성화된 메모리의 제1 메모리 로우를 식별하는 제1 식별자; 및
    상기 제1 타임구간 동안 남아있는 제1 타임을 나타내는 제1 타임아웃 카운터를 포함하고,
    상기 제2 엔트리는:
    적어도 하나의 제2 타임구간 동안 활성화된 상기 메모리의 제2 메모리 로우를 식별하는 제2 식별자;
    상기 제2 메모리 로우의 액티베이션들의 수량을 카운트하는 액티베이션 카운터; 및
    상기 적어도 하나의 제2 타임구간 동안 남아있는 제2 타임을 나타내는 제2 타임아웃 카운터를 포함하는 방법.
  12. 제 11 항에 있어서,
    상기 제2 메모리 로우에 인접하여 위치된 상기 메모리의 인접 메모리 로우내에 저장된 데이터의 열화 없이 상기 제2 메모리 로우의 최대 허용 액티베이션들의 수가 허용되는 타임구간인 최대 액티베이션 윈도우 동안, 상기 제2 메모리 로우의 액티베이션들의 수량은 상기 제2 메모리 로우의 최대 허용 액티베이션들의 수에 기여하는 방법.
  13. 제 11 항에 있어서,
    상기 제2 메모리 로우에 인접하여 위치된 상기 메모리의 인접 메모리 로우의 리프레쉬 없이 상기 제2 메모리 로우의 최대 허용 액티베이션들의 수가 허용되는 타임구간인 최대 액티베이션 윈도우 동안, 상기 제2 메모리 로우의 액티베이션들의 수량은 상기 제2 메모리 로우의 최대 허용 액티베이션들의 수에 기여하는 방법.
  14. 제 13 항에 있어서,
    상기 적어도 하나의 제2 타임구간은 상기 최대 액티베이션 윈도우 내에서 상기 제2 메모리 로우의 최대 허용 액티베이션들의 수들 각각 사이의 평균 시간인 방법.
  15. 제 14 항에 있어서,
    상기 트랙킹하는 단계는:
    상기 메모리의 메모리 로우를 액티베이션하는 리퀘스트를 수신하는 단계;
    상기 메모리 로우가 상기 제2 엔트리의 상기 제2 식별자에 의해 식별된 상기 제2 메모리 로우와 매치하는 지를 결정하는 단계;
    상기 액티베이션 카운터가 상기 최대 허용 액티베이션들의 수를 나타내는 지 여부를 결정하는 단계; 및
    상기 액티베이션 카운터가 상기 최대 허용 액티베이션들의 수를 나타낸다고 결정한 것에 응답하여, 상기 메모리의 리프레쉬 동작 및 상기 리퀘스트의 스톨링 동작 중의 하나를 실행하는 단계를 포함하는 방법.
  16. 제 15 항에 있어서,
    상기 트랙킹하는 단계는:
    상기 액티베이션 카운터가 상기 최대 허용 액티베이션들의 수를 나타내지 않는다고 결정한 것에 응답하여, 상기 액티베이션 카운터를 증가시키는 단계; 및
    상기 제2 메모리 로우를 액티베이션하는 단계를 더 포함하는 방법.
  17. 제 14 항에 있어서,
    상기 트랙킹하는 단계는:
    상기 메모리의 메모리 로우를 액티베이션하는 리퀘스트를 수신하는 단계;
    상기 메모리 로우가 상기 제1 엔트리의 상기 제1 식별자에 의해 식별된 상기 제1 메모리 로우와 매치하는 지를 결정하는 단계;
    상기 제1 엔트리를 할당해제 하는 단계;
    상기 제2 엔트리 테이블 내에서 상기 메모리 로우의 대응 엔트리를 할당하는 단계; 및
    상기 메모리 로우를 액티베이션하는 단계를 포함하는 방법.
  18. 제 14 항에 있어서,
    상기 트랙킹하는 단계는:
    상기 메모리의 메모리 로우를 액티베이션하는 리퀘스트를 수신하는 단계;
    상기 메모리 로우가 상기 제1 엔트리의 상기 제1 식별자에 의해 식별된 상기 제1 메모리 로우와 매치하지 않는 지를 결정하는 단계; 및
    상기 제1 엔트리 테이블 내에서 상기 메모리 로우의 대응 엔트리를 할당하는 단계를 포함하는 방법.
  19. 제 14 항에 있어서,
    상기 트랙킹하는 단계는:
    상기 메모리의 메모리 로우를 액티베이션하는 리퀘스트를 수신하는 단계;
    상기 메모리 로우가 상기 제1 엔트리의 상기 제1 식별자에 의해 식별된 상기 제1 메모리 로우와 매치하는 지를 결정하는 단계;
    상기 제2 엔트리 테이블이 상기 제1 메모리 로우에 대응하는 추가 엔트리를 할당하지 않는다고 결정하는 단계; 및
    상기 제2 엔트리 테이블이 상기 제1 메모리 로우에 대응하는 상기 추가 엔트리를 할당하지 않는다고 결정한 것에 응답하여, 상기 메모리의 리프레쉬 동작 및 상기 리퀘스트의 스톨링 동작 중의 하나를 실행하는 단계를 포함하는 방법.
  20. 제 14 항에 있어서,
    상기 트랙킹하는 단계는:
    상기 적어도 하나의 제2 타임구간이 상기 제2 타임 아웃 카운터로부터 경과되었다고 결정하는 단계; 및
    상기 적어도 하나의 제2 타임구간이 상기 제2 타임 아웃 카운터로부터 경과되었다고 결정한 것에 응답하여, 상기 액티베이션 카운터를 감소시키는 단계를 포함하는 방법.
KR1020150006906A 2014-01-15 2015-01-14 Ddr4 sdram에서의 최대 액티베이션 카운트 제한 핸들링 및 타겟 로우 리프레쉬 KR102223188B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201461927636P 2014-01-15 2014-01-15
US61/927,636 2014-01-15
US14/560,674 US9589606B2 (en) 2014-01-15 2014-12-04 Handling maximum activation count limit and target row refresh in DDR4 SDRAM
US14/560,674 2014-12-04

Publications (2)

Publication Number Publication Date
KR20150085485A KR20150085485A (ko) 2015-07-23
KR102223188B1 true KR102223188B1 (ko) 2021-03-05

Family

ID=53521912

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150006906A KR102223188B1 (ko) 2014-01-15 2015-01-14 Ddr4 sdram에서의 최대 액티베이션 카운트 제한 핸들링 및 타겟 로우 리프레쉬

Country Status (5)

Country Link
US (1) US9589606B2 (ko)
JP (1) JP6463141B2 (ko)
KR (1) KR102223188B1 (ko)
CN (1) CN104778013B (ko)
TW (1) TWI646533B (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9236110B2 (en) 2012-06-30 2016-01-12 Intel Corporation Row hammer refresh command
US9384821B2 (en) 2012-11-30 2016-07-05 Intel Corporation Row hammer monitoring based on stored row hammer threshold value
US9286964B2 (en) * 2012-12-21 2016-03-15 Intel Corporation Method, apparatus and system for responding to a row hammer event
US9478263B2 (en) * 2014-01-17 2016-10-25 Apple Inc. Systems and methods for monitoring and controlling repetitive accesses to volatile memory
JP6224483B2 (ja) * 2014-02-26 2017-11-01 Necプラットフォームズ株式会社 半導体記憶装置、メモリアクセス制御方法、およびコンピュータ・プログラム
CN105159853B (zh) * 2015-09-25 2018-04-24 中国船舶重工集团公司第七0九研究所 基于fpga的dfi标准ddr3控制器
US9812185B2 (en) * 2015-10-21 2017-11-07 Invensas Corporation DRAM adjacent row disturb mitigation
KR102130428B1 (ko) * 2016-02-22 2020-07-06 제이에프이 스틸 가부시키가이샤 방향성 전자 강판의 제조 방법
JP6455468B2 (ja) * 2016-03-09 2019-01-23 Jfeスチール株式会社 方向性電磁鋼板の製造方法
CN108699621B (zh) * 2016-03-09 2020-06-26 杰富意钢铁株式会社 取向性电磁钢板的制造方法
US10268585B2 (en) * 2016-06-28 2019-04-23 Intel Corporation Memory controller that forces prefetches in response to a present row address change timing constraint
WO2018100331A1 (en) * 2016-11-29 2018-06-07 Arm Limited Storage circuitry responsive to a tag-matching command
JP7008410B2 (ja) * 2017-02-10 2022-01-25 キヤノン株式会社 メモリコントローラおよび方法
CN108932205B (zh) * 2017-05-25 2021-01-29 华为技术有限公司 一种防御RowHammer攻击的方法及设备
US11054995B2 (en) * 2018-09-07 2021-07-06 Micron Technology, Inc. Row hammer protection for a memory device
KR102617016B1 (ko) 2018-09-17 2023-12-27 삼성전자주식회사 자주 접근되는 어드레스를 검출하는 레지스터 클럭 드라이버를 포함하는 메모리 모듈
US10726903B2 (en) * 2018-09-21 2020-07-28 Nanya Technology Corporation Row-determining circuit, DRAM, and method for refreshing a memory array
US10825534B2 (en) * 2018-10-26 2020-11-03 Intel Corporation Per row activation count values embedded in storage cell array storage cells
US10969997B2 (en) * 2018-11-07 2021-04-06 Intel Corporation Memory controller that filters a count of row activate commands collectively sent to a set of memory banks
US10943637B2 (en) * 2018-12-27 2021-03-09 Micron Technology, Inc. Apparatus with a row-hammer address latch mechanism
EP3675125A1 (en) * 2018-12-27 2020-07-01 Secure-IC SAS Device and method for protecting a memory
KR20200084599A (ko) 2019-01-03 2020-07-13 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
CN110706733A (zh) * 2019-08-13 2020-01-17 浙江工商大学 一种dram内存行扰动错误解决方法
JP6975298B1 (ja) 2020-09-03 2021-12-01 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. 半導体記憶装置
EP4182800A1 (en) * 2020-09-14 2023-05-24 Google LLC Memory request timeouts using a common counter
KR102412680B1 (ko) 2020-10-20 2022-06-23 윈본드 일렉트로닉스 코포레이션 반도체 기억장치
US11474746B2 (en) * 2020-12-10 2022-10-18 Advanced Micro Devices, Inc. Refresh management for DRAM
KR20220120771A (ko) 2021-02-23 2022-08-31 삼성전자주식회사 메모리 장치 및 그것의 동작 방법
KR102453523B1 (ko) 2021-03-10 2022-10-11 윈본드 일렉트로닉스 코포레이션 반도체 기억장치
KR102504489B1 (ko) 2021-04-19 2023-02-27 윈본드 일렉트로닉스 코포레이션 반도체 기억장치
KR20220145667A (ko) 2021-04-22 2022-10-31 삼성전자주식회사 적응적 구동 전압을 생성하는 위상 고정 루프 및 이의 동작 방법
KR20230072283A (ko) 2021-11-17 2023-05-24 삼성전자주식회사 메모리 장치, 그것을 포함하는 메모리 시스템 및 그것의 동작 방법
JP2023130672A (ja) * 2022-03-08 2023-09-21 ソニーセミコンダクタソリューションズ株式会社 メモリコントローラおよびメモリ制御方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5883849A (en) 1997-06-30 1999-03-16 Micron Technology, Inc. Method and apparatus for simultaneous memory subarray testing

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725337B1 (en) * 2001-05-16 2004-04-20 Advanced Micro Devices, Inc. Method and system for speculatively invalidating lines in a cache
CN100375066C (zh) * 2005-10-28 2008-03-12 中国人民解放军国防科学技术大学 基于高速缓冲存储器行偏移量实现优先读取存储器的方法
JP4208895B2 (ja) * 2006-05-30 2009-01-14 株式会社東芝 キャッシュメモリ装置および処理方法
CN101123113B (zh) * 2007-09-20 2010-07-14 上海交通大学 同步动态随机访问存储器的访问方法及控制装置
TWI367486B (en) * 2007-12-25 2012-07-01 Ind Tech Res Inst Memory device and refresh method thereof
US8195891B2 (en) * 2009-03-30 2012-06-05 Intel Corporation Techniques to perform power fail-safe caching without atomic metadata
JP2010237739A (ja) * 2009-03-30 2010-10-21 Fujitsu Ltd キャッシュ制御装置,情報処理装置およびキャッシュ制御プログラム
US9257169B2 (en) * 2012-05-14 2016-02-09 Samsung Electronics Co., Ltd. Memory device, memory system, and operating methods thereof
US8938573B2 (en) * 2012-06-30 2015-01-20 Intel Corporation Row hammer condition monitoring
US9236110B2 (en) * 2012-06-30 2016-01-12 Intel Corporation Row hammer refresh command

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5883849A (en) 1997-06-30 1999-03-16 Micron Technology, Inc. Method and apparatus for simultaneous memory subarray testing

Also Published As

Publication number Publication date
CN104778013A (zh) 2015-07-15
TW201535366A (zh) 2015-09-16
US9589606B2 (en) 2017-03-07
JP6463141B2 (ja) 2019-01-30
US20150200002A1 (en) 2015-07-16
JP2015133119A (ja) 2015-07-23
KR20150085485A (ko) 2015-07-23
TWI646533B (zh) 2019-01-01
CN104778013B (zh) 2019-06-25

Similar Documents

Publication Publication Date Title
KR102223188B1 (ko) Ddr4 sdram에서의 최대 액티베이션 카운트 제한 핸들링 및 타겟 로우 리프레쉬
US11200942B2 (en) Apparatuses and methods for lossy row access counting
US11302374B2 (en) Apparatuses and methods for dynamic refresh allocation
US9733833B2 (en) Selecting pages implementing leaf nodes and internal nodes of a data set index for reuse
US8560767B2 (en) Optimizing EDRAM refresh rates in a high performance cache architecture
US8705307B2 (en) Memory system with dynamic refreshing
US11074958B2 (en) Memory refresh technology and computer system
KR102258360B1 (ko) 메모리 리프레시 기술 및 컴퓨터 시스템
US11899580B2 (en) Cache space management method and apparatus
KR20150017526A (ko) 메모리 명령 스케줄러 및 메모리 명령 스케줄링 방법
US20130111175A1 (en) Methods and apparatus to control generation of memory access requests
US20210012830A1 (en) Storage device and method for operating storage device
JP2015162253A (ja) 半導体記憶装置、メモリアクセス制御方法、およびコンピュータ・プログラム
US10713159B2 (en) Semiconductor device for managing wear leveling operation of a nonvolatile memory device
US20240079042A1 (en) Counter-based selective row hammer refresh apparatus and method for row hammer prevention
AU2014301874A1 (en) Data writing method and memory system
US20150212949A1 (en) Storage control device and storage control method
US10007557B2 (en) Computing resource controller and control method for multiple engines to share a shared resource
JP2590712B2 (ja) メモリ制御装置
US20240045796A1 (en) Wear-level control circuit for memory module
JP2018081642A (ja) メモリコントローラおよび方法
JP2005135443A (ja) アクセス制御方法およびアクセス制御回路

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right