KR20230069234A - Dram을 위한 리프레시 관리 목록 - Google Patents
Dram을 위한 리프레시 관리 목록 Download PDFInfo
- Publication number
- KR20230069234A KR20230069234A KR1020237013548A KR20237013548A KR20230069234A KR 20230069234 A KR20230069234 A KR 20230069234A KR 1020237013548 A KR1020237013548 A KR 1020237013548A KR 20237013548 A KR20237013548 A KR 20237013548A KR 20230069234 A KR20230069234 A KR 20230069234A
- Authority
- KR
- South Korea
- Prior art keywords
- command
- row
- candidate
- dram
- memory
- Prior art date
Links
- 230000015654 memory Effects 0.000 claims abstract description 220
- 230000004913 activation Effects 0.000 claims abstract description 47
- 230000004044 response Effects 0.000 claims abstract description 18
- 230000000116 mitigating effect Effects 0.000 claims abstract description 13
- 230000008878 coupling Effects 0.000 claims abstract description 6
- 238000010168 coupling process Methods 0.000 claims abstract description 6
- 238000005859 coupling reaction Methods 0.000 claims abstract description 6
- 238000000034 method Methods 0.000 claims description 48
- 238000012545 processing Methods 0.000 claims description 21
- 239000004744 fabric Substances 0.000 claims description 17
- 238000012544 monitoring process Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 description 34
- 238000001994 activation Methods 0.000 description 33
- 238000010586 diagram Methods 0.000 description 14
- 230000002093 peripheral effect Effects 0.000 description 7
- 239000000872 buffer Substances 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 239000003795 chemical substances by application Substances 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 239000003990 capacitor Substances 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000009977 dual effect Effects 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000012163 sequencing technique Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/406—Management or control of the refreshing or charge-regeneration cycles
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40611—External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40615—Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40622—Partial refresh of memory arrays
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
- G06F13/1636—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement using refresh
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Dram (AREA)
- Memory System (AREA)
Abstract
메모리 컨트롤러는 메모리 액세스 요청들을 수신하기 위한 제1 입력을 갖는 커맨드 큐, 및 적어도 하나의 동적 랜덤 액세스 메모리(DRAM) 모듈에 접속하도록 적응된 메모리 채널에 결합하기 위한 출력을 갖는 메모리 인터페이스 큐를 포함한다. 리프레시 제어 회로는 메모리 채널을 통해 전송될 활성화 커맨드를 모니터링한다. 지정된 조건을 충족하는 활성화 커맨드에 응답하여, 리프레시 제어 회로는 활성화 커맨드와 연관된 후보 공격자 로우를 식별한다. 후보 공격자 로우가 미래의 리프레시 또는 리프레시 관리 이벤트에서의 완화를 위해 큐잉될 것을 요청하는 커맨드가 DRAM으로 전송된다.
Description
컴퓨터 시스템들은 전형적으로 메인 메모리에 대해 저렴한 고밀도 동적 랜덤 액세스 메모리(DRAM) 칩들을 사용한다. DRAM 칩 내의 특정 로우(row)가 판독 또는 기입을 위해 활성화될 때, 로우와 연관된 워드 라인이 활성화되고, 로우를 따른 메모리 셀들의 내용들이 페이지 버퍼 내로 판독된다. 로우 내의 메모리 셀들에 대한 후속 판독 및 기입 액세스들이, 로우에 다시 액세스함이 없이, 전적으로 페이지 버퍼 내에서 발생할 수 있다. 데이터 프로세서가 나중에 동일 메모리 뱅크 내의 다른 로우에 액세스할 때, 로우를 따른 메모리 셀들은 다른 로우가 활성화될 수 있기 전에 프리차지 동작에서 복원된다.
현대의 DRAM 칩들은 전형적으로 딥 서브-미크론 기술(deep sub-micron technology)을 사용하여 다수 기가비트(Gb)의 데이터를 저장한다. 높은 밀도 및 작은 피처(feature) 크기 때문에, 메모리의 로우들은 다른 로우들에 물리적으로 가까워서, 특정 로우의 활성화는 메모리 셀 커패시터들 상의 전하를 변경함으로써 인접한 로우들에 저장된 데이터를 업셋(upset)할 수 있다. 과거에, 이러한 업셋들은 전형적으로 해롭지 않았는데, 그 이유는 메모리 셀들이 주기적으로 리프레시되기 때문이다. 그러나, 때때로 몇몇 메모리 액세스 패턴들은 소정 로우들이 다음 리프레시 사이클 전에 여러 번 활성화되고 프리차지되게 하여, 인접한 로우들 내의 메모리 셀들은 손상되고 로직 상태가 반전된다. 손상된 후에, 원래의 데이터는 손실되고 후속 리프레시 사이클들에서 복원될 수 없다. 피처 크기들이 더 작아짐에 따라, "로우 해머(row hammer)"로 알려진 이 문제는 완화하기가 더 어려워지는데, 그 이유는 문제를 야기하는 데 요구되는 로우 활성화들의 수가 더 적어지기 때문이다.
데이터 업셋 문제를 해결하기 위한 하나의 알려진 기법은 타겟화된 로우 리프레시(targeted row refresh, TRR)로 알려져 있다. 인접 로우의 리프레시 없이 DRAM 로우가 리프레시 기간 내에 너무 여러 번 활성화되지 않는 것을 보장하기 위해, 메모리 컨트롤러가 소정 모드 레지스터 비트들을 설정함으로써 DRAM을 TRR 모드에 둔다. 이어서, 컨트롤러는 연속적인 활성화 및 프리차지 커맨드들을 잠재적인 공격자 로우에 물리적으로 인접한 로우들에 발행한다. 전형적으로, TRR 모드는 자체 소거되고, 정의된 TRR 흐름의 완료 후에 자동으로 디스에이블된다. TRR 모드는 또한 정의된 TRR 흐름의 완료시 모드 등록 세트 커맨드를 통해 종료될 수 있다. TRR을 통해 메모리 컨트롤러가 로우 해머 문제를 완화할 수 있지만 TRR 모드는 모드 레지스터를 설정하여 입력되며, 컨트롤러가 모드 레지스터 설정 커맨드를 내리기 전에 모든 뱅크가 유휴 상태여야 하므로 상당한 시간이 필요하다.
도 1은 종래 기술에서 알려진 가속 처리 유닛(APU) 및 메모리 시스템을 블록도 형태로 예시한다.
도 2는 몇몇 실시예들에 따른, 도 1의 것과 같은 APU에서 사용하기에 적합한 메모리 컨트롤러를 블록도 형태로 예시한다.
도 3은 일부 실시예들에 따른 메모리 디바이스를 블록도 형식으로 도시한다.
도 4는 일부 실시예들에 따른 리프레시 관리를 위한 프로세스의 흐름도이다.
도 5는 일부 추가 실시예들에 따른 리프레시 관리를 위한 프로세스의 흐름도이다.
도 6은 일부 실시예들에 따른 후보 공격자 로우들을 선택하기 위한 프로세스를 도시하는 흐름도이다.
도 7은 일부 추가 실시예들에 따른 후보 공격자 로우들을 선택하기 위한 프로세스를 도시하는 흐름도이다.
하기의 설명에서, 상이한 도면들에서의 동일한 참조 번호들의 사용은 유사하거나 동일한 아이템들을 지시한다. 달리 언급되지 않는 한, 단어 "결합된" 및 그의 관련된 동사 형태들은 당업계에 공지된 수단에 의한 직접적인 연결 및 간접적인 전기 연결 둘 모두를 포함하며, 달리 언급되지 않는 한, 직접적인 연결에 대한 임의의 설명은 적합한 형태의 간접적인 전기 연결을 사용하는 대안적인 실시예들도 암시한다.
도 2는 몇몇 실시예들에 따른, 도 1의 것과 같은 APU에서 사용하기에 적합한 메모리 컨트롤러를 블록도 형태로 예시한다.
도 3은 일부 실시예들에 따른 메모리 디바이스를 블록도 형식으로 도시한다.
도 4는 일부 실시예들에 따른 리프레시 관리를 위한 프로세스의 흐름도이다.
도 5는 일부 추가 실시예들에 따른 리프레시 관리를 위한 프로세스의 흐름도이다.
도 6은 일부 실시예들에 따른 후보 공격자 로우들을 선택하기 위한 프로세스를 도시하는 흐름도이다.
도 7은 일부 추가 실시예들에 따른 후보 공격자 로우들을 선택하기 위한 프로세스를 도시하는 흐름도이다.
하기의 설명에서, 상이한 도면들에서의 동일한 참조 번호들의 사용은 유사하거나 동일한 아이템들을 지시한다. 달리 언급되지 않는 한, 단어 "결합된" 및 그의 관련된 동사 형태들은 당업계에 공지된 수단에 의한 직접적인 연결 및 간접적인 전기 연결 둘 모두를 포함하며, 달리 언급되지 않는 한, 직접적인 연결에 대한 임의의 설명은 적합한 형태의 간접적인 전기 연결을 사용하는 대안적인 실시예들도 암시한다.
메모리 컨트롤러는 메모리 액세스 요청들을 수신하기 위한 제1 입력을 갖는 커맨드 큐, 및 적어도 하나의 동적 랜덤 액세스 메모리(DRAM) 모듈에 접속하도록 적응된 메모리 채널에 결합하기 위한 출력을 갖는 메모리 인터페이스 큐를 포함한다. 중재기는 커맨드 큐로부터 엔트리들을 선택하고, 그들을 메모리 인터페이스 큐에 배치하여 그들이 메모리 채널을 통해 송신되게 하기 위해 커맨드 큐에 접속된다. 리프레시 제어 회로는 중재기에 연결되고, 메모리 채널을 통해 전송될 활성화 커맨드를 모니터링하도록 동작가능하다. 지정된 조건을 충족하는 활성화 커맨드에 응답하여, 활성화 커맨드와 연관된 후보 공격자 로우가 식별된다. 후보 공격자 로우가 미래의 리프레시 또는 리프레시 관리 이벤트에서의 완화를 위해 큐잉될 것을 요청하는 커맨드가 DRAM으로 전송된다.
데이터 처리 시스템은 데이터 프로세서, 데이터 프로세서에 결합된 데이터 패브릭, 및 데이터 프로세서로부터의 메모리 요청들을 이행하기 위해 데이터 패브릭에 결합된 메모리 컨트롤러를 포함한다. 메모리 컨트롤러는 메모리 액세스 요청들을 수신하기 위한 제1 입력을 갖는 커맨드 큐, 및 적어도 하나의 동적 랜덤 액세스 메모리(DRAM) 모듈에 접속하도록 적응된 메모리 채널에 결합하기 위한 출력을 갖는 메모리 인터페이스 큐를 포함한다. 중재기는 커맨드 큐로부터 엔트리들을 선택하고, 그들을 메모리 인터페이스 큐에 배치하여 그들이 메모리 채널을 통해 송신되게 하기 위해 커맨드 큐에 접속된다. 리프레시 제어 회로는 중재기에 연결되고, 메모리 채널을 통해 전송될 활성화 커맨드를 모니터링하도록 동작가능하다. 지정된 조건을 충족하는 활성화 커맨드에 응답하여, 활성화 커맨드와 연관된 후보 공격자 로우가 식별된다. 후보 공격자 로우가 미래의 리프레시 또는 리프레시 관리 이벤트에서의 완화를 위해 큐잉될 것을 요청하는 커맨드가 DRAM으로 전송된다.
방법은 메모리 판독들 및 메모리 기입들을 포함하는 복수의 메모리 액세스 요청들을 수신하는 단계를 포함한다. 메모리 액세스 요청들을 이행하기 위한 메모리 액세스 커맨드들을 메모리 인터페이스 큐에 선택적으로 배치하고, 메모리 액세스 커맨드들을 상기 메모리 인터페이스 큐로부터 적어도 하나의 동적 랜덤 액세스 메모리(DRAM)에 결합된 메모리 채널로 송신한다. 메모리 채널을 통해 전송될 활성화 커맨드가 모니터링된다. 지정된 조건을 충족하는 활성화 커맨드에 응답하여, 활성화 커맨드와 연관된 후보 공격자 로우가 식별된다. 후보 공격자 로우가 미래의 리프레시 또는 리프레시 관리 이벤트에서의 완화를 위해 큐잉될 것을 요청하는 커맨드가 DRAM으로 전송된다.
도 1은 종래 기술에서 알려진 가속 처리 유닛(APU)(100) 및 메모리 시스템(130)을 블록도 형태로 예시한다. APU(100)는 호스트 데이터 처리 시스템에서 프로세서로서 사용하기에 적합한 집적 회로이며, 일반적으로 중앙 처리 유닛(CPU) 코어 컴플렉스(110), 그래픽 코어(120), 한 세트의 디스플레이 엔진들(122), 메모리 관리 허브(140), 데이터 패브릭(125), 한 세트의 주변 컨트롤러들(160), 한 세트의 주변 버스 컨트롤러들(170), 및 시스템 관리 유닛(SMU)(180)을 포함한다.
CPU 코어 컴플렉스(110)는 CPU 코어(112) 및 CPU 코어(114)를 포함한다. 이 예에서, CPU 코어 컴플렉스(110)는 2개의 CPU 코어를 포함하지만, 다른 실시예들에서 CPU 코어 컴플렉스(110)는 임의의 수의 CPU 코어들을 포함할 수 있다. CPU 코어들(112 및 114) 각각은 제어 패브릭을 형성하는 시스템 관리 네트워크(SMN)에 그리고 데이터 패브릭(125)에 양방향으로 접속되고, 데이터 패브릭(125)에 메모리 액세스 요청들을 제공할 수 있다. CPU 코어들(112 및 114) 각각은 단일 코어들일 수 있거나, 추가로 캐시들과 같은 소정 자원들을 공유하는 2개 이상의 단일 코어를 갖는 코어 컴플렉스일 수 있다.
그래픽 코어(120)는 고집적 및 병렬 방식으로 정점 처리, 프래그먼트 처리, 셰이딩, 텍스처 블렌딩 등과 같은 그래픽 동작들을 수행할 수 있는 고성능 그래픽 처리 유닛(GPU)이다. 그래픽 코어(120)는 SMN에 그리고 데이터 패브릭(125)에 양방향으로 접속되고, 데이터 패브릭(125)에 메모리 액세스 요청들을 제공할 수 있다. 이와 관련하여, APU(100)는 CPU 코어 컴플렉스(110)와 그래픽 코어(120)가 동일한 메모리 공간을 공유하는 통합 메모리 아키텍처, 또는 CPU 코어 컴플렉스(110)와 그래픽 코어(120)가 메모리 공간의 일부를 공유하는 반면, 그래픽 코어(120)가 또한 CPU 코어 컴플렉스(110)에 의해 액세스 가능하지 않은 프라이빗 그래픽 메모리를 사용하는 메모리 아키텍처를 지원할 수 있다.
디스플레이 엔진들(122)은 모니터 상에의 디스플레이를 위해 그래픽 코어(120)에 의해 생성된 객체들을 렌더링하고 래스터화한다. 그래픽 코어(120) 및 디스플레이 엔진들(122)은 메모리 시스템(130) 내의 적절한 어드레스들로의 균일한 변환을 위해 공통 메모리 관리 허브(140)에 양방향으로 접속되고, 메모리 관리 허브(140)는 그러한 메모리 액세스들을 생성하고 메모리 시스템으로부터 반환된 판독 데이터를 수신하기 위해 데이터 패브릭(125)에 양방향으로 접속된다.
데이터 패브릭(125)은 임의의 메모리 액세싱 에이전트와 메모리 관리 허브(140) 사이에서 메모리 액세스 요청들 및 메모리 응답들을 라우팅하기 위한 크로스바 스위치를 포함한다. 그것은 또한 시스템 구성에 기초하여 메모리 액세스들의 목적지들을 결정하기 위한, 기본 입출력 시스템(BIOS)에 의해 정의된, 시스템 메모리 맵뿐만 아니라, 각각의 가상 접속을 위한 버퍼들을 포함한다.
주변 컨트롤러(160)는 USB(universal serial bus) 컨트롤러(162) 및 SATA(Serial Advanced Technology Attachment) 인터페이스 컨트롤러(164)를 포함하며, 이들 각각은 시스템 허브(166) 그리고 SMN 버스에 양방향으로 연결된다. 이들 두 컨트롤러는 APU(100)에 사용될 수 있는 단지 예시적인 주변 컨트롤러이다.
주변 버스 컨트롤러(170)는 시스템 컨트롤러 또는 "Southbridge"(SB)(172) 및 PCIe(Peripheral Component Interconnect Express) 컨트롤러(174)를 포함하며, 이들 각각은 입력/출력(I/O) 허브(176) 및 SMN 버스에 양방향으로 연결된다. I/O 허브(176)는 또한 시스템 허브(166) 및 데이터 패브릭(125)에 양방향으로 연결된다. 이에 따라 예를 들어 CPU 코어는 데이터 패브릭(125)이 I/O 허브(176)를 통해 라우팅하는 액세스들을 통해 USB 컨트롤러(162), SATA 인터페이스 컨트롤러(164), SB(172), 또는 PCIe 컨트롤러(174) 내의 레지스터들을 프로그래밍할 수 있다. APU(100)를 위한 소프트웨어 및 펌웨어는 판독-전용 메모리(ROM), 플래시 전기적 소거 및 프로그래밍 가능 ROM(EEPROM) 등과 같은, 다양한 비휘발성 메모리 유형들 중 임의의 것일 수 있는 시스템 데이터 드라이브 또는 시스템 BIOS 메모리(도시되지 않음)에 저장된다. 전형적으로, BIOS 메모리는 PCIe 버스를 통해 액세스되고, 시스템 데이터 드라이브는 SATA 인터페이스를 통해 액세스된다.
SMU(180)는 APU(100) 상의 자원들의 동작을 제어하고 그들 간의 통신을 동기화하는 로컬 컨트롤러이다. SMU(180)는 APU(100) 상의 다양한 프로세서들의 파워-업 시퀀싱을 관리하고, 리셋, 인에이블 및 다른 신호들을 통해 다수의 오프-칩 디바이스들을 제어한다. SMU(180)는 APU(100)의 컴포넌트들 각각에 대한 클록 신호들을 제공하기 위해, 위상 동기 루프(PLL)와 같은, 하나 이상의 클록 소스들(도시되지 않음)을 포함한다. SMU(180)는 또한 다양한 프로세서들 및 다른 기능 블록들에 대한 전력을 관리하며, 적절한 전력 상태들을 결정하기 위해 CPU 코어들(112 및 114) 및 그래픽 코어(120)로부터 측정된 전력 소비 값들을 수신할 수 있다.
메모리 관리 허브(140) 및 그의 연관된 물리적 인터페이스들(PHY들)(151 및 152)은 이 실시예에서 APU(100)와 통합된다. 메모리 관리 허브(140)는 메모리 채널들(141 및 142) 및 전력 엔진(149)을 포함한다. 메모리 채널(141)은 호스트 인터페이스(145), 메모리 채널 컨트롤러(143), 및 물리적 인터페이스(147)를 포함한다. 호스트 인터페이스(145)는 직렬 프레즌스 검출 링크(SDP)를 통해 메모리 채널 컨트롤러(143)를 데이터 패브릭(125)에 양방향으로 접속한다. 물리적 인터페이스(147)는 메모리 채널 컨트롤러(143)를 PHY(151)에 양방향으로 접속하고, DDR PHY 인터페이스(DFI) 사양을 따른다. 메모리 채널(142)은 호스트 인터페이스(146), 메모리 채널 컨트롤러(144), 및 물리적 인터페이스(148)를 포함한다. 호스트 인터페이스(146)는 다른 SDP를 통해 메모리 채널 컨트롤러(144)를 데이터 패브릭(125)에 양방향으로 접속한다. 물리적 인터페이스(148)는 메모리 채널 컨트롤러(144)를 PHY(152)에 양방향으로 접속하고, DFI 사양을 따른다. 전력 엔진(149)은 SMN 버스를 통해 SMU(180)에, APB를 통해 PHY들(151 및 152)에 양방향으로 접속되고, 또한 메모리 채널 컨트롤러들(143 및 144)에 양방향으로 접속된다. PHY(151)는 메모리 채널(131)에 대한 양방향 접속을 갖는다. PHY(152)는 양방향 접속 메모리 채널(133)을 갖는다.
메모리 관리 허브(140)는 2개의 메모리 채널 컨트롤러를 갖는 메모리 컨트롤러의 인스턴스화이고, 아래에서 추가로 설명될 방식으로 메모리 채널 컨트롤러(143) 및 메모리 채널 컨트롤러(144) 둘 모두의 동작을 제어하기 위해 공유 전력 엔진(149)을 사용한다. 메모리 채널들(141 및 142) 각각은 DDR 버전 4(DDR4), 저전력 DDR4(LPDDR4), 그래픽 DDR 버전 5(gDDR5), 및 고대역폭 메모리(HBM)와 같은 최신 DDR 메모리들에 접속할 수 있고, 미래의 메모리 기술들에 대해 적응될 수 있다. 이러한 메모리들은 고 버스 대역폭 및 고속 동작을 제공한다. 동시에, 그들은 또한 랩톱 컴퓨터들과 같은 배터리-급전식 애플리케이션들에 대한 전력을 절감하기 위해 저전력 모드들을 제공하고, 또한 내장 열 모니터링을 제공한다.
메모리 시스템(130)은 메모리 채널(131) 및 메모리 채널(133)을 포함한다. 메모리 채널(131)은 이 예에서 별개의 랭크들에 대응하는 대표적인 이중 인라인 메모리 모듈들(DIMM들)(134, 136, 및 138)을 포함하여, DDRx 버스(132)에 접속된 DIMM들의 세트를 포함한다. 마찬가지로, 메모리 채널(133)은 대표적인 DIMM들(135, 137, 및 139)을 포함하여, DDRx 버스(129)에 접속된 DIMM들의 세트를 포함한다.
APU(100)는 호스트 데이터 처리 시스템의 중앙 처리 유닛(CPU)으로서 동작하고, 현대의 컴퓨터 시스템들에서 유용한 다양한 버스들 및 인터페이스들을 제공한다. 이러한 인터페이스들은 2개의 더블 데이터 레이트(DDRx) 메모리 채널들, PCIe 링크에 대한 접속을 위한 PCIe 루트 컴플렉스, USB 네트워크에 대한 접속을 위한 USB 컨트롤러, 및 SATA 대용량 저장 디바이스에 대한 인터페이스를 포함한다.
APU(100)는 또한 다양한 시스템 모니터링 및 절전 기능들을 구현한다. 특히, 하나의 시스템 모니터링 기능은 열 모니터링이다. 예를 들어, APU(100)가 뜨거워지면, SMU(180)는 CPU 코어들(112 및 114) 및/또는 그래픽 코어(120)의 주파수 및 전압을 감소시킬 수 있다. APU(100)가 너무 뜨거워지면, 그것은 완전히 셧다운될 수 있다. 열 이벤트들이 또한 SMN 버스를 통해 SMU(180)에 의해 외부 센서들로부터 수신될 수 있고, SMU(180)는 그에 응답하여 클록 주파수 및/또는 전원 전압을 감소시킬 수 있다.
도 2는 도 1의 것과 같은 APU에서 사용하기에 적합한 메모리 컨트롤러(200)를 블록도 형태로 예시한다. 메모리 컨트롤러(200)는 일반적으로 메모리 채널 컨트롤러(210) 및 전력 컨트롤러(250)를 포함한다. 메모리 채널 컨트롤러(210)는 일반적으로 인터페이스(212), 메모리 인터페이스 큐(214), 커맨드 큐(220), 어드레스 생성기(222), 콘텐츠 어드레싱 가능 메모리(CAM)(224), 리플레이 큐(230)를 포함하는 리플레이 제어 로직(231), 리프레시 제어 회로 블록(232), 타이밍 블록(234), 페이지 테이블(236), 중재기(238), 에러 정정 코드(ECC) 체크 회로(242), ECC 생성 블록(244), 및 데이터 버퍼(246)를 포함한다.
인터페이스(212)는 외부 버스를 통한 데이터 패브릭(125)에 대한 제1 양방향 접속을 갖고, 출력을 갖는다. 메모리 컨트롤러(200)에서, 이러한 외부 버스는 "AXI4"로 알려진, 영국 캠브리지 소재의 에이알엠 홀딩스, 피엘씨(ARM Holdings, PLC)에 의해 지정된 진보된 확장 가능 인터페이스 버전 4와 호환되지만, 다른 실시예들에서 다른 유형들의 인터페이스들일 수 있다. 인터페이스(212)는 FCLK(또는 MEMCLK) 도메인으로 알려진 제1 클록 도메인으로부터 UCLK 도메인으로 알려진 메모리 컨트롤러(200)의 내부에 있는 제2 클록 도메인으로 메모리 액세스 요청들을 옮긴다. 유사하게, 메모리 인터페이스 큐(214)는 UCLK 도메인으로부터 DFI 인터페이스와 연관된 DFICLK 도메인으로 메모리 액세스들을 제공한다.
어드레스 생성기(222)는 AXI4 버스를 통해 데이터 패브릭(125)으로부터 수신된 메모리 액세스 요청들의 어드레스들을 디코딩한다. 메모리 액세스 요청들은 정규화된 포맷으로 표현되는 물리적 어드레스 공간에서의 액세스 어드레스들을 포함한다. 어드레스 생성기(222)는 정규화된 어드레스들을, 메모리 시스템(130) 내의 실제 메모리 디바이스들을 어드레싱하는 데뿐만 아니라, 관련 액세스들을 효율적으로 스케줄링하는 데 사용될 수 있는 포맷으로 변환한다. 이러한 포맷은 메모리 액세스 요청을 특정 랭크, 로우 어드레스(row address), 컬럼 어드레스(column address), 뱅크 어드레스, 및 뱅크 그룹과 연관시키는 영역 식별자를 포함한다. 시동 시에, 시스템 BIOS는 메모리 시스템(130) 내의 메모리 디바이스들에 질의하여 그들의 크기 및 구성을 결정하고, 어드레스 생성기(222)와 연관된 구성 레지스터들의 세트를 프로그래밍한다. 어드레스 생성기(222)는 구성 레지스터들에 저장된 구성을 사용하여 정규화된 어드레스들을 적절한 포맷으로 변환한다. 커맨드 큐(220)는 CPU 코어들(112 및 114) 및 그래픽 코어(120)와 같은, APU(100) 내의 메모리 액세싱 에이전트들로부터 수신된 메모리 액세스 요청들의 큐이다. 커맨드 큐(220)는 어드레스 생성기(222)에 의해 디코딩된 어드레스 필드들뿐만 아니라, 액세스 유형 및 서비스 품질(QoS) 식별자들을 포함하여, 중재기(238)가 메모리 액세스들을 효율적으로 선택할 수 있게 하는 다른 어드레스 정보를 저장한다. CAM(224)은 기입 후 기입(WAW) 및 기입 후 판독(RAW) 순서화 규칙들과 같은 순서화 규칙들을 시행하기 위한 정보를 포함한다.
에러 정정 코드(ECC) 생성 블록(244)은 메모리에 전송될 기입 데이터의 ECC를 결정한다. ECC 체크 회로(242)는 수신된 ECC를 인입 ECC에 대해 체크한다.
리플레이 큐(230)는 어드레스 및 커맨드 패리티 응답들과 같은 응답들을 기다리고 있는, 중재기(238)에 의해 선택되는 선택된 메모리 액세스들을 저장하기 위한 임시 큐이다. 리플레이 제어 로직(231)은 반환된 ECC가 올바른지 또는 에러를 나타내는지를 결정하기 위해 ECC 체크 회로(242)에 액세스한다. 리플레이 제어 로직(231)은 이러한 사이클들 중 하나의 패리티 또는 ECC 에러의 경우에 액세스들이 리플레이되는 리플레이 시퀀스를 개시하고 제어한다. 리플레이된 커맨드들은 메모리 인터페이스 큐(214)에 배치된다.
리프레시 제어 회로(232)는 메모리 액세싱 에이전트들로부터 수신된 정상 판독 및 기입 메모리 액세스 요청들과는 별도로 생성되는 다양한 파워다운, 리프레시, 및 종료 저항(ZQ) 교정 사이클들을 위한 상태 머신들을 포함한다. 예를 들어, 메모리 랭크가 프리차지 파워다운에 있는 경우, 그것은 리프레시 사이클들을 실행하기 위해 주기적으로 깨어나야 한다. 리프레시 제어 회로(232)는 DRAM 칩들 내의 메모리 셀들의 저장 커패시터들로부터의 전하 누설에 의해 야기되는 데이터 에러들을 방지하기 위해 지정된 조건들에 응답하여 그리고 주기적으로 리프레시 커맨드들을 생성한다. 리프레시 제어 회로(232)는 활성화 카운터(248)를 포함하고, 이 활성화 카운터는 이 실시예에서 메모리 채널을 통해 메모리 영역으로 전송되는 활성화 커맨드들의 롤링 수(rolling number)를 카운트하는 각각의 메모리 영역에 대한 카운터를 갖는다. 메모리 영역들은 아래에 추가로 논의되는 바와 같이 몇몇 실시예들에서 메모리 뱅크들이고, 다른 실시예들에서 메모리 서브-뱅크들이다. 리프레시 제어 회로(232)는 또한 리프레시(REF) 커맨드들 및 리프레시 관리(RFM) 커맨드들 둘 모두를 포함하는 리프레시 커맨드들을 생성하며, 여기서 RFM 커맨드들은 아래에서 추가로 설명되는 바와 같이 로우 해머 문제들을 완화하기 위한 리프레시 기능들을 수행하라고 메모리에게 지시한다. 게다가, 리프레시 제어 회로(232)는 시스템에서의 열 변화들로 인한 온-다이 종료 저항에 있어서의 미스매치를 방지하기 위해 ZQ를 주기적으로 교정한다.
중재기(238)는 커맨드 큐(220)에 양방향으로 접속되며, 메모리 채널 컨트롤러(210)의 심장이다. 메모리 버스의 사용을 개선하기 위한 액세스들의 지능형 스케줄링에 의한 효율을 개선한다. 중재기(238)는 타이밍 블록(234)을 사용하여 커맨드 큐(220)의 특정 액세스들이 DRAM 타이밍 파라미터들에 기초하여 발행에 적합한지를 결정함으로써 적절한 타이밍 관계들을 시행한다. 예를 들어, 각각의 DRAM은, "tRC"로 알려진, 활성화 커맨드들 사이의 최소 지정된 시간을 갖는다. 타이밍 블록(234)은 이것 및 JEDEC 사양에서 지정된 다른 타이밍 파라미터들에 기초하여 적격성을 결정하는 카운터들의 세트를 유지하고, 리플레이 큐(230)에 양방향으로 접속된다. 페이지 테이블(236)은 중재기(238)에 대한 메모리 채널의 각각의 뱅크 및 랭크에서의 활성 페이지들에 관한 상태 정보를 유지하고, 리플레이 큐(230)에 양방향으로 접속된다.
인터페이스(212)로부터 수신된 기입 메모리 액세스 요청들에 응답하여, ECC 생성 블록(244)은 기입 데이터에 따라 ECC를 계산한다. 데이터 버퍼(246)는 수신된 메모리 액세스 요청들에 대한 기입 데이터 및 ECC를 저장한다. 그것은 중재기(238)가 메모리 채널로의 디스패치를 위한 대응하는 기입 액세스를 선택할 때 결합된 기입 데이터/ECC를 메모리 인터페이스 큐(214)에 출력한다.
전력 컨트롤러(250)는 일반적으로 진보된 확장 가능 인터페이스 버전 1(AXI)에 대한 인터페이스(252), 진보된 주변 버스(APB) 인터페이스(254), 및 전력 엔진(260)을 포함한다. 인터페이스(252)는 도 2에 별도로 도시된 "EVENT_n"으로 라벨링된 이벤트 신호를 수신하기 위한 입력, 및 출력을 포함하는, SMN에 대한 제1 양방향 접속을 갖는다. APB 인터페이스(254)는 인터페이스(252)의 출력에 접속된 입력, 및 APB를 통한 PHY에 대한 접속을 위한 출력을 갖는다. 전력 엔진(260)은 인터페이스(252)의 출력에 접속된 입력, 및 메모리 인터페이스 큐(214)의 입력에 접속된 출력을 갖는다. 전력 엔진(260)은 구성 레지스터들(262)의 세트, 마이크로컨트롤러(μC)(264), 셀프 리프레시 컨트롤러(SLFREF/PE)(266), 및 신뢰성 있는 판독/기입 타이밍 엔진(RRW/TE)(268)을 포함한다. 구성 레지스터들(262)은 AXI 버스를 통해 프로그래밍되고, 메모리 컨트롤러(200) 내의 다양한 블록들의 동작을 제어하기 위한 구성 정보를 저장한다. 따라서, 구성 레지스터들(262)은 도 2에 상세히 도시되지 않은 이러한 블록들에 접속된 출력들을 갖는다. 셀프 리프레시 컨트롤러(266)는 리프레시 제어 회로(232)에 의한 리프레시들의 자동 생성에 더하여 리프레시들의 수동 생성을 가능하게 하는 엔진이다. 신뢰성 있는 판독/기입 타이밍 엔진(268)은 DDR 인터페이스 최대 판독 레이턴시(MRL) 트레이닝 및 루프백 테스팅과 같은 목적들을 위해 메모리 또는 I/O 디바이스들에 연속적인 메모리 액세스 스트림을 제공한다.
메모리 채널 컨트롤러(210)는 그것이 연관된 메모리 채널로의 디스패치를 위한 메모리 액세스들을 선택할 수 있게 하는 회로부를 포함한다. 원하는 중재 결정들을 행하기 위해, 어드레스 생성기(222)는 어드레스 정보를, 메모리 시스템 내의 랭크, 로우 어드레스, 컬럼 어드레스, 뱅크 어드레스, 및 뱅크 그룹을 포함하는 프리디코딩된 정보로 디코딩하고, 커맨드 큐(220)는 프리디코딩된 정보를 저장한다. 구성 레지스터들(262)은 어드레스 생성기(222)가 수신된 어드레스 정보를 어떻게 디코딩하는지를 결정하기 위한 구성 정보를 저장한다. 중재기(238)는 서비스 품질(QoS) 요건들과 같은 다른 기준들을 관찰하면서 메모리 액세스들을 효율적으로 스케줄링하기 위해 디코딩된 어드레스 정보, 타이밍 블록(234)에 의해 표시된 타이밍 적격성 정보, 및 페이지 테이블(236)에 의해 표시된 활성 페이지 정보를 사용한다. 예를 들어, 중재기(238)는 메모리 페이지들을 변경하기 위해 요구되는 프리차지 및 활성화 커맨드들의 오버헤드를 회피하기 위해 개방된 페이지들에 대한 액세스들에 대한 선호를 구현하고, 하나의 뱅크에 대한 오버헤드 액세스들을, 다른 뱅크에 대한 판독 및 기입 액세스들과 그들을 인터리빙하는 것에 의해 숨긴다. 특히 정상 동작 동안, 중재기(238)는 보통, 페이지들이 상이한 페이지를 선택하기 전에 프리차지되도록 요구될 때까지, 페이지들을 상이한 뱅크들에서 개방된 채로 유지한다. 중재기(238)는, 몇몇 실시예들에서, 각자의 커맨드들의 타겟 메모리 영역들에 대한 활성화 카운터(248)의 각자의 값들에 적어도 기초하여 커맨드 선택에 대한 적격성을 결정한다.
도 3은 일부 실시예들에 따른 메모리(300)를 블록도 형식으로 도시한다. 메모리(300)는 도 2의 메모리 컨트롤러(200)와 같은 메모리 컨트롤러와 통신하도록 구성된다. 메모리(300)는 일반적으로 DRAM 뱅크들(320)로 그리고 그로부터 데이터를 판독하고 기록하는 데 사용되는 회로부와 함께, 제어 로직(310) 및 다수의 DRAM 뱅크들(320)을 포함하는 DRAM 코어를 포함한다. 로우 디코더들 및 워드 라인 드라이버들(324)의 세트는 로우들에 액세스하고 전송 라인들의 게이트들을 제어하는 데 사용된다. 컬럼 디코더들(326)의 세트는 메모리 어레이 내의 위치들을 선택하는 데 사용되고, 감지 앰프들 및 기록 드라이버들(328)의 세트는 메모리 위치들에 대해 프리차지 동작들을 수행하고, 메모리 위치들에 데이터를 판독 및 기록한다. 데이터 버퍼들(322)은 쓰기 및 판독 동작들에 대한 착신 및 발신 데이터를 유지한다.
제어 로직(310)은 리프레시 제어 로직(312) 및 후보 공격자/희생 로우 큐(314)뿐만 아니라 커맨드 디코드 로직 및 모드 레지스터와 같은 개별적으로 도시되지 않은 다양한 다른 제어 로직을 포함한다. 리프레시 제어 로직(312)은 리프레시(REF) 커맨드 및 리프레시 관리(RFM) 커맨드를 처리하는 것을 포함하여 메모리(300) 내의 로우의 전하 리프레시를 제어한다. 또한, 리프레시 제어 로직(312)은 후보 공격자 로우들을 식별하는 메모리 컨트롤러로부터 수신된 커맨드들에 응답하여 후보 공격자/희생 로우 큐(314)를 유지한다.
다양한 실시예들에서, 후보 공격자/희생 로우 큐(314)에 대한 추가(들)를(을) 야기하는 커맨드들은 프리차지 목록(PREL) 커맨드, 활성화 목록(ACTL) 커맨드, 및 리프레시 관리 목록(RFML) 커맨드이다. 물론, 커맨드 이름은 상이한 실시예에서 다양할 수 있다. PREL 및 ACTL 커맨드는 후보 공격자 로우인 로우에 관한 것으로 활성화(ACT) 커맨드 또는 프리차지(PRE) 커맨드를 태깅함으로써 후보 공격자 로우를 메모리(300)에 식별한다. RFML 커맨드는 후보 공격자 로우의 로우 어드레스를 RFML 커맨드와 함께 포함함으로써 후보 공격자를 메모리(300)에 식별한다. 예를 들어, 아래에서 더 설명되는 바와 같이, 이러한 커맨드들은 후보 공격자 로우 또는 후보 공격자 로우와 연관된 하나 이상의 후보 희생 로우들 중 어느 하나를 후보 공격자/희생 로우 큐(314)에 추가하게 한다. 이어서, 후속 RFM 커맨드가 메모리(300)에서 수신될 때, 리프레시 제어 로직(312)은 후보 공격자/희생 로우 큐(314)로부터 선택된 하나 이상의 로우들에 대해 리프레시들이 발생하게 한다. 일부 실시예들에서, 후속 REF 커맨드는 또한, 후보 공격자/희생 로우 큐(314)에 열거된 로우들에 기초하여 리프레시 제어 로직(312)이 리프레시를 위한 후보 로우들을 선택하게 할 수 있다.
일부 실시예들에서, 후보 공격자/희생 로우 큐(314)는 후보 공격자 로우와 연관된 하나 이상의 희생 로우들을 저장한다. 도 4와 관련하여 논의된 이러한 프로세스의 예이다. 다른 실시예들에서, 후보 공격자/희생 로우 큐(314)는 후보 공격자 로우 어드레스를 직접 저장한다. 이러한 프로세스의 예는 도 5와 관련하여 논의된다. 어느 경우든, 리프레시 제어 로직(312)은 후보 공격자 로우에 인접한 잠재적 희생 로우들을 식별하기 위한 디코드 로직을 포함한다. "큐"는 여기에서 설명되지만, 다른 실시예들은 리프레시 제어 로직(312)이 리프레시 동작들을 수행할 때 임의의 순서로 선택할 수 있는 후보 공격자 로우들의 목록을 포함할 수 있다. 일부 실시예들에서, 메모리 컨트롤러가 후보 희생 로우들을 식별하는 것이 적합하지만, 통상적으로 메모리 컨트롤러는 특정 희생 로우들을 식별하는 데 필요한 정보를 갖지 않는데, 그 이유는 어드레스들과 물리적 로우들 사이의 맵핑이 특히 DRAM 디자인들에서 변하기 때문이다. 따라서, 후보 공격자 로우들을 식별하는 것이 통상적으로 더 유익하다. 또한, 일부 실시예들은 후보 공격자/희생 로우 큐(314)에서 후보 희생 로우들을 기록하는 동안, 전형적으로, 후보 공격자 로우를 기록하는 것이 더 효율적인데, 각각의 후보 공격자에 대해, 메모리(300)가 프로세스 노드에 기초하여 각각의 물리적 방향 또는 하나 초과의 희생 로우를 가질 수 있기 때문이다.
도 4는 일부 실시예들에 따른 리프레시 관리를 위한 프로세스(400)의 흐름도이다. 프로세스(400)는 메모리 컨트롤러에서, 예를 들어 리프레시 제어 회로(232)(도 2)에 의해 수행된 블록들(402, 404, 및 406)을 포함한다. 블록들(408, 410, 412, 414, 및 416)은 예를 들어 리프레시 제어 로직(312)(도 3)에 의해 DRAM 메모리에서 수행된다.
프로세스(400)는 공격자 로우에 대한 ACT 커맨드가 너무 많으면 인접한 희생 로우에서 비트 오류가 발생하는 로우 해머 문제들을 초래할 가능성이 있는 특정 지정된 조건들을 식별하기 위해 메모리 컨트롤러에서 동작 동안 메모리 채널을 통해 전송될 커맨드들을 활성화하는 것을 모니터링하는 블록(402)에서 시작한다. 지정된 조건은 다수의 적합한 방식으로 식별될 수 있다. 예를 들어, 뱅크 또는 서브-뱅크와 같은 특정 메모리 영역에 대한 활성화 카운터는 특정 임계치를 초과할 수 있다. 또는, ACT 커맨드들은 뱅크 또는 서브-뱅크보다 더 미세한 입도에서 추적될 수 있다. 예를 들어, 기존의 표적화된 로우 리프레시(TRR) 커맨드들에 사용되는 것과 유사한 모니터링 프로세스가 사용될 수 있으며, 여기서 잠재적인 희생 로우들에 대한 조건들이 각각의 로우에 대한 로우 활성화들의 수를 카운팅하고 이를 미리 정의된 칩 특정 최대 활성화 카운트(MAC) 및 최대 활성화 윈도우(tMAW) 값들과 비교함으로써 결정될 수 있다. MAC 값은 tMAW 시간량과 동일하거나 짧은 시간 간격 내에서 특정 DRAM 로우에서 발생할 수 있는 로우 활성화들의 최대 총 수이다. 다른 예에서, 잠재적인 로우 해머 문제에 대한 지정된 조건은 특정 로우의 양측에 있는 2개의 이웃 로우들에 대한 로우 활성화들의 합이 tMAW 시간 윈도우 내의 MAC 한계에 도달하는 경우일 수 있다.
블록(402)에서 지정된 조건들이 식별될 때, 프로세스(400)는 블록(404)으로 이동하며, 여기서 활성화 커맨드와 연관된 후보 공격자 로우를 식별한다. 이 실시예에서 특정 로우를 식별하는 동안, 이 실시예에서, 다른 실시예들은 후보 공격자 로우에 인접한 후보 희생 로우를 식별함으로써 공격자 로우들을 간접적으로 식별한다. 후보 공격자 로우를 식별하기 위한 별개의 블록이 도시되어 있지만, 후보 공격자 로우의 실제 식별은 블록(402)에서 지정된 조건의 발생을 인식하는 것과 동시에 발생할 수 있다.
다음으로, 블록(406)에서, 미래의 리프레시 또는 리프레시 관리 커맨드를 수행할 때 식별된 후보 공격자 로우에 대한 로우 해머 문제를 완화시키도록 요청하는 커맨드가 메모리 컨트롤러로부터 DRAM 메모리로 전송된다. 블록(406)에서 전송된 특정 커맨드는 상이한 실시예들에서 변하지만, 각각의 경우에 로우는 어떻게든 DRAM에 후보 공격자 로우가 되도록 지시된다. 일부 실시예들에서, 메모리 컨트롤러는 프리차지 목록(PREL) 커맨드, 활성화 목록(ACTL) 커맨드, 및/또는 리프레시 관리 목록(RFML) 커맨드 중 하나 이상을 전송하는 능력을 갖는다. 다른 유사한 커맨드들은 동일한 기능을 달성할 수 있다.
ACTL 커맨드는 후보 공격자 로우가 후보 공격자 로우임을 나타내는 후보 공격자 로우의 로우 어드레스에 대한 ACT 커맨드 상의 태그를 포함하는 ACT 커맨드의 수정된 버전이다. 적합한 태그 계획은 HIGH 또는 LOW로 설정된 커맨드에서 하나 이상의 선택된 비트일 수 있다. 이러한 커맨드는 DRAM이 로우를 활성화하고 로우를 후보 공격자 로우로서 큐잉하도록 동작 가능하다. PREL 커맨드는 DRAM이 로우를 미리 충전하도록 작동할 수 있는 PRE 커맨드의 수정된 버전이며, 로우가 후보 공격자 로우이며 이와 같이 큐잉되어야 함을 나타내는 태그를 포함한다. RFML 커맨드는 후보 공격자 로우의 어드레스를 포함하고 이것이 후보 공격자/희생 로우 큐(314)에 추가되어야 함을 DRAM에 표시하는 새로운 커맨드이다.
블록(408)에서, 식별된 로우가 완화될 후보 공격자 로우인 것을 DRAM에 나타내는 송신된 커맨드는 DRAM에 수신된다. 프리차지 또는 활성화와 같은 액션을 또한 포함하는 커맨드들의 경우, 동작은 DRAM 제어 로직에 의해 수행된다. 이 실시예에서, 후보 희생 로우들이 식별되고 기록되는 반면, 도 5의 실시예에서, REF 또는 RFM 커맨드가 수행될 때 후보 공격자 로우 어드레스는 기록되고 후보 희생 로우들이 식별된다. 블록(410)에서, 프로세스(400)는 식별된 후보 공격자 로우와 연관된 하나 이상의 후보 희생 로우들을 식별한다. 이러한 식별은 전형적으로 DRAM에서 이용되는 특정 로우 레이아웃에서 후보 공격자 로우에 인접하거나 그 근처에 있는 로우 어드레스들을 식별하기 위해 디코드 로직을 사용하는 것을 포함한다.
블록(412)에서, 식별된 후보 희생 로우(들)의 어드레스는 추후 완화를 위해 DRAM에 기록된다. 예를 들어, 도 3의 실시예에서, 어드레스는 후보 공격자/희생 로우 큐(314)에 기록된다. TRR과 같은 이전의 리프레시 관리 방식들과 대조적으로, 로우 해머 문제의 완화는 블록(412)에서 즉시 수행되지 않는다. 대신에, 프로세스(400)가 REF 또는 RFM 커맨드가 수신될 때까지 기다리는 블록(414)으로 이동한다. 프로세스(400)는 REF 또는 FRM 커맨드가 수신될 때까지 블록(408)에서 커맨드를 계속 수신하고 희생 로우를 기록한다. 이러한 커맨드가 수신될 때, 프로세스(400)는 블록(416)으로 이동하며, 여기서 이는 하나 이상의 기록된 후보 희생 로우들을 선택하고, 로우들에 대한 리프레시 동작과 같은 일부 완화 동작을 수행한다.
도 5 내지 도 7은 적합한 대안적인 방법들에 따라 후보 공격자 로우들을 식별하는 다양한 예시적인 리프레시 관리 프로세스들을 도시한다. 일부 실시예들은 모든 로우들에 대한 로우 활성화 커맨드들을 카운트할 수 있다.
도 5는 일부 실시예들에 따른 리프레시 관리를 위한 프로세스(500)의 흐름도이다. 프로세스(500)는 메모리 컨트롤러에서, 예를 들어 리프레시 제어 회로(232)(도 2)에 의해 수행된 블록들(502, 504, 및 506)을 포함한다. 블록들(508, 510, 512, 514, 및 516)은 예를 들어 리프레시 제어 로직(312)(도 3)에 의해 DRAM 메모리에서 수행된다. 프로세스(500)는 도 4의 프로세스(400)와 유사하지만, 후보 희생 로우들의 어드레스들을 기록하기보다는, 프로세스(500)는 후보 공격자 로우들의 어드레스들을 기록하고, 후보 희생 로우들에 대해 리프레시 동작들이 수행되는 시간에 후보 희생 로우들을 식별한다.
프로세스(500)는 로우 해머 문제들을 초래할 가능성이 있는 특정 지정된 조건들을 식별하기 위해 메모리 컨트롤러에서 동작 동안 메모리 채널을 통해 전송될 커맨드들을 활성화하는 것을 모니터링하는 블록(502)에서 시작한다. 다양한 실시예에서 사용되는 지정된 조건은 도 4와 관련하여 논의된다.
블록(502)에서 지정된 조건들이 식별될 때, 프로세스(500)는 블록(504)으로 이동하며, 여기서 활성화 커맨드와 연관된 후보 공격자 로우를 식별한다. 후보 공격자 로우를 식별하기 위한 별개의 블록이 도시되어 있지만, 후보 공격자 로우의 실제 식별은 블록(502)에서 지정된 조건의 발생을 인식하는 것과 동시에 발생할 수 있다.
다음으로, 블록(506)에서, 미래의 리프레시 또는 리프레시 관리 커맨드를 수행할 때 식별된 후보 공격자 로우에 대한 로우 해머 문제를 완화시키도록 요청하는 커맨드가 메모리 컨트롤러로부터 DRAM 메모리로 전송된다. 이 블록에서 사용하기에 적합한 다양한 커맨드는 블록(406)과 관련하여 논의된다.
블록(508)에서, 식별된 로우가 완화될 후보 공격자 로우인 것을 DRAM에 나타내는 송신된 커맨드는 DRAM에 수신된다. 프리차지 또는 활성화와 같은 액션을 또한 포함하는 커맨드들의 경우, 동작은 DRAM 제어 로직에 의해 수행된다. 블록(510)에서, 식별된 후보 공격자 로우의 어드레스가 추후 완화를 위해 DRAM에 기록된다.
블록(512)에 도시된 바와 같이, REF 또는 RFM 커맨드가 수신될 때까지, 프로세스(500)는 블록(508)으로 복귀하고, 더 많은 후보 공격자 로우들이 식별되고 그 어드레스들이 기록되게 할 수 있는 커맨드들을 계속해서 수신한다. 블록(512)에서 REF 또는 RFM 커맨드가 수신되는 경우, 프로세스(500)는 블록(514)으로 이동하며, 여기서 프로세스는 완화될 기록된 후보 공격자 로우들 중 하나 이상을 선택한다. 이어서, 프로세스(500)는 선택된 후보 공격자 로우와 연관된 하나 이상의 후보 희생 로우들을 식별한다. 이러한 식별은 전형적으로 DRAM에서 이용되는 특정 로우 레이아웃에서 후보 공격자 로우에 인접하거나 그 근처에 있는 로우 어드레스들을 식별하기 위해 디코드 로직을 사용하는 것을 포함한다. 이어서 블록(516)에서, 프로세스(500)는 식별된 후보 희생 로우들에 대한 완화를 수행한다.
도 6은 일부 실시예들에 따른 후보 공격자 로우들을 선택하기 위한 프로세스(600)를 도시하는 흐름도이다. 프로세스(600)는 도 2의 리프레시 제어 회로(232)와 같은 리프레시 제어 회로에 의해 메모리 컨트롤러에서 수행된다. 블록(602)에서, 프로세스(600)는 로우 해머 문제를 초래할 수 있는 지정된 조건들을 식별하기 위해 활성화 커맨드들을 모니터링하기 시작한다. 블록(604)에 도시된 바와 같이, 이 실시예에서 지정된 조건은 메모리 영역이 지정된 임계치를 초과하는 활성화 카운터를 포함한다. 블록(604)에서 이러한 조건들이 식별될 때, 프로세스(600)는 후보 공격자 로우를 선택하기 위해 ACT 커맨드를 수신하는 로우들 중에서 무작위로 선택하는 블록(606)으로 이동한다.
도 7은 일부 추가 실시예들에 따른 후보 공격자 로우들을 선택하기 위한 프로세스(700)를 도시하는 흐름도이다. 블록(702)에서, 프로세스(700)는 로우 해머 문제를 초래할 수 있는 지정된 조건들을 식별하기 위해 활성화 커맨드들을 모니터링하기 시작한다. 블록(704)에서, 활성화 커맨드들이 추적되는 동안 리프레시 윈도우들이 시작된다. 이 실시예에서, 활성화 커맨드들은 각각의 메모리 디바이스에 대해 지정된 로우 리프레시들 사이의 최대 기간을 특정하는 로우 사이클 시간 tREFC에 의해 정의된 리프레시 기간에 걸쳐 모니터링된다. 리프레시 기간에 관련된 다른 기간 또한, 리프레시 기간을 정의하는 데 적합하다. 별개의 리프레시 윈도우가 상이한 메모리 뱅크들에 대해 측정될 수 있다.
블록(706)에서, 메모리 뱅크 내의 하나 이상의 대부분의 활성화된 로우에 대해 활성화 카운트가 유지된다. 자주 활성화되는 다수의 로우를 추적하기 위해 다수의 카운터가 사용될 수 있다. 리프레시 윈도우 동안, 블록(708)에 도시된 바와 같이, 대부분의 활성화된 로우들 중 하나 이상은 후보 공격자 로우들로서 선택될 수 있다. 이 실시예에서, 선택은 지정된 임계치 초과인 활성화 카운트에 기초한다. 블록(710)에서 리프레시 윈도우가 종료될 때, 블록(704)에서 새로운 리프레시 윈도우가 시작된다. 활성화 카운트를 추적하는 데 사용되는 카운터들은 새로운 리프레시 윈도우의 시작 시 재설정된다.
특정 실시예들이 설명되었지만, 이러한 실시예들에 대한 다양한 수정들이 당업자에게 명백할 것이다. 예를 들어, 메모리 컨트롤러(200) 및 메모리(300)의 내부 아키텍처는 상이한 실시예들에서 다를 수 있다. 메모리 컨트롤러(200)는 고대역폭 메모리(HBM) 등과 같은, DDRx 이외의 다른 유형들의 메모리에 인터페이스할 수 있다. 예시된 실시예는 별개의 DIMM들 또는 SIMM들에 대응하는 메모리의 각각의 랭크를 보여주었지만, 다른 실시예들에서 각각의 모듈은 다수의 랭크들을 지원할 수 있다. 또 다른 실시예들은 다른 유형들의 DRAM 모듈들 또는 특정 모듈에 포함되지 않는 DRAM들, 예를 들어 호스트 마더보드에 장착된 DRAM들을 포함할 수 있다. 따라서, 첨부된 청구항들에 의해 개시된 실시예들의 범위에 속하는 개시된 실시예들의 모든 수정들을 포함하는 것이 의도된다.
Claims (26)
- 메모리 컨트롤러로서,
메모리 액세스 요청들을 수신하기 위한 제1 입력을 갖는 커맨드 큐,
동적 랜덤 액세스 메모리(DRAM)에 결합하도록 적응된 메모리 채널에 결합하기 위한 출력을 갖는 메모리 인터페이스 큐,
상기 커맨드 큐로부터 엔트리들을 선택하고, 상기 엔트리들을 상기 메모리 인터페이스 큐에 배치하여 상기 엔트리들이 상기 메모리 채널을 통해 송신되게 하기 위해 상기 커맨드 큐에 결합된 중재기, 및
리프레시 제어 회로를 포함하고, 상기 리프레시 제어 회로는 상기 중재기에 결합되고,
메모리 채널을 통해 전송될 활성화 커맨드가 모니터링되도록 하고;
지정된 조건을 충족하는 활성화 커맨드에 응답하여, 상기 활성화 커맨드와 연관된 후보 공격자 로우를 식별하게 하고;
후보 공격자 로우가 미래의 리프레시 또는 리프레시 관리 이벤트에서 완화를 위해 큐잉될 것을 요청하는 커맨드를 DRAM에 전송하도록 동작가능한, 메모리 컨트롤러. - 제1항에 있어서, 상기 리프레시 제어 회로는 상기 후보 공격자 로우의 로우 어드레스를 포함하는 활성화 커맨드를 태깅함으로써 상기 커맨드를 상기 DRAM으로 전송하는, 메모리 컨트롤러.
- 제2항에 있어서, 상기 활성화 커맨드는 상기 DRAM이 로우를 활성화하고 후보 공격자 로우로서 상기 로우를 기록하도록 동작가능한 활성화 목록 커맨드인, 메모리 컨트롤러.
- 제1항에 있어서, 상기 리프레시 제어 회로는 상기 후보 공격자 로우의 로우 어드레스를 포함하는 리프레시 관리 목록 커맨드를 상기 DRAM에 전송함으로써 상기 커맨드를 상기 DRAM으로 전송하는, 메모리 컨트롤러.
- 제1항에 있어서, 상기 리프레시 제어 회로는 상기 후보 공격자 로우의 로우 어드레스를 포함하는 프리차지 커맨드를 태깅함으로써 상기 커맨드를 상기 DRAM으로 전송하는, 메모리 컨트롤러.
- 제5항에 있어서, 상기 프리차지 커맨드는 상기 DRAM이 로우를 미리 충전하게 하고 상기 로우를 후보 공격자 로우로 기록하도록 동작가능한 프리차지 목록 커맨드인, 메모리 컨트롤러.
- 제1항에 있어서, 상기 리프레시 제어 회로는, 상기 후보 공격자 로우를 식별하는 것에 응답하여, 후보 공격자 로우의 기록이 후보 공격자 로우들의 목록에 저장되도록 더 동작가능한, 메모리 컨트롤러.
- 데이터 처리 시스템으로서,
데이터 프로세서;
상기 데이터 프로세서에 결합된 데이터 패브릭; 및
상기 데이터 프로세서로부터의 메모리 요청들을 이행하기 위해 상기 데이터 패브릭에 결합된 메모리 컨트롤러를 포함하고, 상기 메모리 컨트롤러는,
적어도 하나의 동적 랜덤 액세스 메모리(DRAM)에 결합하도록 적응된 메모리 채널에 결합하기 위한 출력, 및
리프레시 제어 회로를 포함하고,
상기 리프레시 제어 회로는,
메모리 채널을 통해 전송될 활성화 커맨드가 모니터링되도록 하고;
지정된 조건을 충족하는 활성화 커맨드에 응답하여, 상기 활성화 커맨드와 연관된 후보 공격자 로우를 식별하게 하고;
후보 공격자 로우가 미래의 리프레시 또는 리프레시 관리 이벤트에서 완화를 위해 큐잉될 것을 요청하는 커맨드를 DRAM에 전송하도록 동작가능한, 데이터 처리 시스템. - 제8항에 있어서, 상기 리프레시 제어 회로는 상기 후보 공격자 로우의 로우 어드레스를 포함하는 활성화 커맨드를 태깅함으로써 상기 커맨드를 상기 DRAM으로 전송하는, 데이터 처리 시스템.
- 제9항에 있어서, 상기 활성화 커맨드는 상기 DRAM이 로우를 활성화하고 후보 공격자 로우로서 상기 로우를 기록하도록 동작가능한 활성화 목록 커맨드인, 데이터 처리 시스템.
- 제8항에 있어서, 상기 리프레시 제어 회로는 상기 후보 공격자 로우의 로우 어드레스를 포함하는 리프레시 관리 목록 커맨드를 상기 DRAM에 전송함으로써 상기 커맨드를 상기 DRAM으로 전송하는, 데이터 처리 시스템.
- 제8항에 있어서, 상기 커맨드를 상기 DRAM으로 전송하는 것은 상기 후보 공격자 로우의 로우 어드레스를 포함하는 프리차지 커맨드를 태깅하는 것을 포함하는, 데이터 처리 시스템.
- 제12항에 있어서, 상기 프리차지 커맨드는 상기 DRAM이 로우를 미리 충전하게 하고 상기 로우를 상기 후보 공격자 로우로 태킹하도록 동작가능한 프리차지 목록 커맨드인, 데이터 처리 시스템.
- 제8항에 있어서, 상기 리프레시 제어 회로는, 상기 후보 공격자 로우가 상기 DRAM에 표시되는 것에 응답하여, 후보 공격자 로우의 기록이 후보 공격자 로우들의 목록에 저장되도록 더 동작가능한, 데이터 처리 시스템.
- 제8항에 있어서, 상기 커맨드를 상기 DRAM으로 전송하는 것은 후속 리프레시 관리 커맨드 및 후속 리프레시 커맨드 중 하나 동안 상기 DRAM이 리프레시 관리를 위한 상기 후보 공격자 로우와 연관된 하나 이상의 희생 로우의 기록을 저장하게 하는, 데이터 처리 시스템.
- 제15항에 있어서, 상기 DRAM은 상기 후보 공격자 로우와 연관된 하나 이상의 희생 로우들을 결정하는 내부 리프레시 관리 회로를 포함하는, 데이터 처리 시스템.
- 제8항에 있어서, 상기 DRAM은 복수의 희생 로우들이 리프레시될 하나 이상의 대응하는 후보 공격자 로우들과 각각 연관되게 함으로써 리프레시 관리 커맨드에 응답하는 내부 리프레시 관리 회로를 포함하는, 데이터 처리 시스템.
- 방법으로서,
메모리 판독들 및 메모리 기입들을 포함하는 복수의 메모리 액세스 요청들을 수신하는 단계;
상기 메모리 액세스 요청들을 이행하기 위한 메모리 액세스 커맨드들을 메모리 인터페이스 큐에 선택적으로 배치하고, 상기 메모리 액세스 커맨드들을 상기 메모리 인터페이스 큐로부터 적어도 하나의 동적 랜덤 액세스 메모리(DRAM)에 결합된 메모리 채널로 송신하는 단계;
상기 메모리 채널을 통해 전송될 활성화 커맨드를 모니터링하는 단계;
지정된 조건을 충족하는 활성화 커맨드에 응답하여, 상기 활성화 커맨드와 연관된 후보 공격자 로우를 식별하는 단계; 및
후보 공격자 로우가 미래의 리프레시 또는 리프레시 관리 이벤트에서 완화를 위해 큐잉될 것을 요청하는 커맨드를 DRAM에 전송하는 단계를 포함하는, 방법. - 제18항에 있어서, 상기 커맨드를 상기 DRAM으로 전송하는 단계는 상기 후보 공격자 로우의 로우 어드레스를 포함하는 활성화 커맨드를 태깅하는 단계를 포함하는, 방법.
- 제19항에 있어서, 상기 활성화 커맨드는 상기 DRAM이 로우를 활성화하고 후보 공격자 로우로서 상기 로우를 기록하도록 동작가능한 활성화 목록 커맨드인, 방법.
- 제18항에 있어서, 상기 커맨드를 상기 DRAM으로 전송하는 단계는 로우 어드레스를 포함하는 리프레시 관리 목록 커맨드를 상기 DRAM에 전송하는 단계를 포함하는, 방법.
- 제18항에 있어서, 상기 커맨드를 상기 DRAM으로 전송하는 단계는 상기 후보 공격자 로우의 로우 어드레스를 포함하는 프리차지 커맨드를 태깅하는 단계를 포함하는, 방법.
- 제22항에 있어서, 상기 프리차지 커맨드는 상기 DRAM이 로우를 미리 충전하게 하고 상기 로우를 후보 공격자 로우로 기록하도록 동작가능한 프리차지 목록 커맨드인, 방법.
- 제18항에 있어서, 상기 후보 공격자 로우가 상기 DRAM에 표시되는 것에 응답하여, 상기 후보 공격자 로우의 기록이 후보 공격자 로우들의 목록에서 상기 DRAM에 저장되게 하는 단계를 더 포함하는, 방법.
- 제18항에 있어서, 상기 후보 공격자 로우가 상기 DRAM에 식별되는 것에 응답하여, 후속 리프레시 관리 커맨드 및 후속 리프레시 커맨드 중 하나 동안 리프레시 관리를 위한 상기 후보 공격자 로우와 연관된 하나 이상의 희생 로우들의 기록을 상기 DRAM에 저장하는 단계를 포함하는, 방법.
- 제18항에 있어서, 상기 DRAM은 복수의 희생 로우들이 리프레시될 하나 이상의 대응하는 후보 공격자 로우들과 각각 연관되게 함으로써 리프레시 관리 커맨드에 응답하는, 방법.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/027,375 | 2020-09-21 | ||
US17/027,375 US11809743B2 (en) | 2020-09-21 | 2020-09-21 | Refresh management list for DRAM |
PCT/US2021/050932 WO2022061153A1 (en) | 2020-09-21 | 2021-09-17 | Refresh management list for dram |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230069234A true KR20230069234A (ko) | 2023-05-18 |
Family
ID=80741491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237013548A KR20230069234A (ko) | 2020-09-21 | 2021-09-17 | Dram을 위한 리프레시 관리 목록 |
Country Status (6)
Country | Link |
---|---|
US (1) | US11809743B2 (ko) |
EP (1) | EP4214709A4 (ko) |
JP (1) | JP2023543426A (ko) |
KR (1) | KR20230069234A (ko) |
CN (1) | CN116250041A (ko) |
WO (1) | WO2022061153A1 (ko) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11640840B2 (en) * | 2021-06-28 | 2023-05-02 | Advanced Micro Devices, Inc. | Victim row refreshes for memories in electronic devices |
KR20230080776A (ko) * | 2021-11-30 | 2023-06-07 | 삼성전자주식회사 | 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 |
US12112787B2 (en) * | 2022-04-28 | 2024-10-08 | Micron Technology, Inc. | Apparatuses and methods for access based targeted refresh operations |
US20240329846A1 (en) * | 2023-03-31 | 2024-10-03 | Advanced Micro Devices, Inc. | Memory sprinting |
Family Cites Families (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9176800B2 (en) | 2011-08-31 | 2015-11-03 | Micron Technology, Inc. | Memory refresh methods and apparatuses |
US9117544B2 (en) * | 2012-06-30 | 2015-08-25 | 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 |
US9325321B2 (en) | 2013-03-13 | 2016-04-26 | Microsemi SoC Corporation | Background auto-refresh apparatus and method for non-volatile memory array |
US9293188B2 (en) | 2014-02-03 | 2016-03-22 | Advanced Micro Devices, Inc. | Memory and memory controller for high reliability operation and method |
US9576637B1 (en) * | 2016-05-25 | 2017-02-21 | Advanced Micro Devices, Inc. | Fine granularity refresh |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
FR3066842B1 (fr) * | 2017-05-24 | 2019-11-08 | Upmem | Logique de correction de row hammer pour dram avec processeur integre |
KR102398209B1 (ko) | 2017-11-06 | 2022-05-17 | 삼성전자주식회사 | 반도체 메모리 장치, 메모리 시스템 그리고 그것의 리프레쉬 방법 |
CN110729006B (zh) * | 2018-07-16 | 2022-07-05 | 超威半导体(上海)有限公司 | 存储器控制器中的刷新方案 |
CN118197372A (zh) * | 2018-10-09 | 2024-06-14 | 美光科技公司 | 用于行锤击缓解的方法以及采用所述方法的存储器装置和系统 |
US10825534B2 (en) * | 2018-10-26 | 2020-11-03 | Intel Corporation | Per row activation count values embedded in storage cell array storage cells |
US10685696B2 (en) * | 2018-10-31 | 2020-06-16 | Micron Technology, Inc. | Apparatuses and methods for access based refresh timing |
US10636476B2 (en) | 2018-11-01 | 2020-04-28 | Intel Corporation | Row hammer mitigation with randomization of target row selection |
US10770127B2 (en) * | 2019-02-06 | 2020-09-08 | Micron Technology, Inc. | Apparatuses and methods for managing row access counts |
US10790005B1 (en) * | 2019-04-26 | 2020-09-29 | Micron Technology, Inc. | Techniques for reducing row hammer refresh |
US11069393B2 (en) * | 2019-06-04 | 2021-07-20 | Micron Technology, Inc. | Apparatuses and methods for controlling steal rates |
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 |
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 |
US11309010B2 (en) * | 2020-08-14 | 2022-04-19 | Micron Technology, Inc. | Apparatuses, systems, and methods for memory directed access pause |
US20220113868A1 (en) * | 2020-10-09 | 2022-04-14 | Microsoft Technology Licensing, Llc | Mitigating row-hammer attacks |
-
2020
- 2020-09-21 US US17/027,375 patent/US11809743B2/en active Active
-
2021
- 2021-09-17 CN CN202180064625.2A patent/CN116250041A/zh active Pending
- 2021-09-17 JP JP2023518259A patent/JP2023543426A/ja active Pending
- 2021-09-17 EP EP21870315.5A patent/EP4214709A4/en active Pending
- 2021-09-17 WO PCT/US2021/050932 patent/WO2022061153A1/en active Application Filing
- 2021-09-17 KR KR1020237013548A patent/KR20230069234A/ko unknown
Also Published As
Publication number | Publication date |
---|---|
EP4214709A1 (en) | 2023-07-26 |
EP4214709A4 (en) | 2024-10-16 |
JP2023543426A (ja) | 2023-10-16 |
WO2022061153A1 (en) | 2022-03-24 |
CN116250041A (zh) | 2023-06-09 |
US20220091784A1 (en) | 2022-03-24 |
US11809743B2 (en) | 2023-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9899074B2 (en) | Fine granularity refresh | |
US11809743B2 (en) | Refresh management list for DRAM | |
KR102615693B1 (ko) | Dram을 위한 리프레시 관리 | |
US11561862B2 (en) | Refresh management for DRAM | |
US11099786B2 (en) | Signaling for heterogeneous memory systems | |
JP7521132B2 (ja) | アービトレーション中の書き込みバンクグループのマスク | |
KR20230023014A (ko) | Dram 커맨드 스트리크 관리 | |
KR20230004912A (ko) | 효율적인 메모리 버스 관리 | |
US11474746B2 (en) | Refresh management for DRAM | |
KR20230158128A (ko) | Dram 커맨드 스트리크 효율 관리 |