KR101731508B1 - 저장된 행 해머 임계값에 기초한 행 해머 모니터링 - Google Patents

저장된 행 해머 임계값에 기초한 행 해머 모니터링 Download PDF

Info

Publication number
KR101731508B1
KR101731508B1 KR1020157009730A KR20157009730A KR101731508B1 KR 101731508 B1 KR101731508 B1 KR 101731508B1 KR 1020157009730 A KR1020157009730 A KR 1020157009730A KR 20157009730 A KR20157009730 A KR 20157009730A KR 101731508 B1 KR101731508 B1 KR 101731508B1
Authority
KR
South Korea
Prior art keywords
memory
row
threshold
accesses
memory element
Prior art date
Application number
KR1020157009730A
Other languages
English (en)
Other versions
KR20150058366A (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 KR20150058366A publication Critical patent/KR20150058366A/ko
Application granted granted Critical
Publication of KR101731508B1 publication Critical patent/KR101731508B1/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/40611External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/4078Safety or protection circuits, e.g. for preventing inadvertent or unauthorised reading or writing; Status cells; Test cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50012Marginal testing, e.g. race, voltage or current testing of timing
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)
  • Dram (AREA)
  • Read Only Memory (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

메모리 서브시스템의 검출 로직은 물리적으로 인접한 행에 대한 데이터 손상 위험을 야기하는 시간 윈도우 내에서의 액세스 횟수를 표시하는 메모리 소자에 대한 임계값을 획득한다. 검출 로직은 메모리 소자에 대한 구성 정보를 저장하고, 메모리 소자 자체 상의 레지스터일 수 있고 및/또는 메모리 소자가 속한 메모리 모듈의 구성 저장 장치의 엔트리일 수 있는 레지스터로부터 임계값을 획득한다. 검출 로직은 메모리 소자의 행에 대한 액세스 횟수가 임계값을 초과하는지 여부를 결정한다. 액세스 횟수가 임계값을 초과하는 것을 검출하는 것에 응답하여, 검출 로직은 메모리 소자로 하여금 물리적으로 인접한 희생 행을 표적으로 하는 리프레시를 수행하게 하기 위한 트리거링을 발생할 수 있다.

Description

저장된 행 해머 임계값에 기초한 행 해머 모니터링{ROW HAMMER MONITORING BASED ON STORED ROW HAMMER THRESHOLD VALUE}
본 발명의 실시예들은 일반적으로 메모리 관리와 관련되고, 보다 자세하게는 저장되고 프로그래밍된 값에 기초하여 행 해머 이벤트(row hammer event)들을 모니터링하는 것에 관한 것이다.
저작권 공지/허용
이 특허 문서의 개시 내용 부분들은 저작권 보호를 받는 자료를 포함할 수 있다. 저작권 소유자는 누구든지 간에 특허 상표청 특허 파일 또는 기록에 제시되는 대로 특허 문서 또는 특허 개시 내용을 복제하는 것에 대해서는 이의가 없지만, 다른 경우에는 무엇이 되었든 모든 저작권 권리를 보유한다. 저작권 공지는 이하에 기술된 모든 데이터에 및 여기의 첨부 도면들에 적용될 뿐만 아니라, 이하에 기술된 어떠한 소프트웨어에도 적용된다: 저작권ⓒ 2012, 인텔사, 모든 권리 보유함.
컴퓨팅 기술의 진보에 따라, 컴퓨팅 장치들이 더 작아지고 훨씬 더 많은 처리 능력을 가지게 되었다. 덧붙여, 컴퓨팅 장치들은 장치들 상에서 수행되는 프로그래밍 및 컴퓨팅의 요구를 충족시키기 위해 점점 더 많은 저장 장치 및 메모리를 포함하게 된다. 저장 용량의 증가와 함께 장치들의 크기가 축소되는 것은 고밀도 장치들을 제공함으로써 달성되는데, 이 고밀도 장치들에는 점점 더 많은 원자적 저장 장치 유닛들이 메모리 소자 내에 존재하고 이 유닛들의 각각은 점점 더 작은 기하 구조들을 가진다.
최신 세대의 밀도 증가된 장치들 내에서, 간헐적인 고장이 몇몇 장치들에서 나타났다. 예를 들어, 몇몇 기존의 DDR3(dual data-rate, version 3) 기반 시스템들은 과중한 작업 부하에 의해 간헐적 고장들을 경험한다. 연구자들은 이 고장들이 메모리 셀의 리프레시 윈도우 내에서의 단일 메모리 행에의 반복된 액세스(access)에 기인한 것으로 추적하여 알아내었다. 예를 들어, 32nm 공정 장치에 대해, 행이 64 ms 리프레시 윈도우에서 550K 회 또는 그 이상 액세스된다면, 액세스된 행에 물리적으로 인접한 워드라인은 데이터 손상(data corruption)을 경험할 확률이 매우 높다. 이 상태는 이런 것이 가장 빈번하게 관찰되는 DRAM(dynamic random access memory) 산업계에서 "행 해머(row hammer)" 또는 "단일 행 교란(single row disturb)"으로서 지칭되고 있고, 일반적으로 본 명세서에서 이 상태를 기술하는데 사용될 것이다. 행 해머링(row hammering)은 패스 게이트(passgate)에 걸친 이주(migration)를 야기할 수 있다. 하나의 행에 대한 반복된 액세스에 의해 야기되는 누설 전류 및 기생 전류는 액세스되지 않은 물리적으로 인접한 행에서의 데이터 손상을 야기한다.
그러나, 통상의 기술자는 메모리 소자들이 장치들의 상이한 세대들 중에서, 필적하는 장치들의 상이한 제조자들 중에서, 및 심지어 동일 제조자 내의 상이한 계열(batch)들 중에서 변한다는 것을 또한 이해한다. 그러므로, 과중한 작업 부하들이 간헐적 고장들의 원인이 되는 것으로 관찰되기는 하였지만, 모든 장치들에 적용되는 "과중한 작업 부하"에 대한 어떤 명확한 정의도 없다. 그러므로, 행 해머링 상태는 모든 장치들에 적용되는 일반적 파라미터로서 명확하게 정의되지는 않았다.
하기 설명은 본 발명의 실시예들의 구현들의 예로서 주어지는 예시들을 갖는 도면들의 논의를 포함한다. 도면들은 제한을 위한 것이 아니라, 예로서 주어진 것임을 이해해야 한다. 본 명세서에 사용된 것처럼, 하나 이상의 "실시예들"에 대한 참조들은 본 발명의 적어도 하나의 구현에 포함되는 특정 특징, 구조, 또는 특성을 설명하는 것으로서 이해될 것이다. 따라서, 본 명세서에 등장하는 "일 실시예에서" 또는 "대안의 실시예에서"와 같은 구문들은 본 발명의 다양한 실시예들 및 구현들을 기술하는 것이고, 반드시 모두가 동일 실시예를 참조하는 것은 아니다. 그렇지만, 이들은 반드시 상호 배타적인 것도 아니다.
도 1a는 프로그램가능 행 해머 임계값을 이용하여 행 해머 상태에 대하여 모니터링하는 시스템의 실시예의 블록도이다.
도 1b는 프로그램가능 행 해머 임계값에 따라서 검출된 행 해머 이벤트를 표시하기 위한 메모리 소자에서의 열/어드레스 정보 로직 및 분포된 검출 로직을 포함하는 시스템의 실시예의 블록도이다.
도 2는 행 해머 검출 로직, 및 메모리 소자에서의 희생 로직을 포함하는 시스템의 실시예의 블록도이다.
도 3a는 메모리 소자의 구성 저장 장치로부터의 임계값에 따라서 행 해머 상태에 대하여 모니터링하는 시스템의 실시예의 블록도이다.
도 3b는 메모리 모듈의 구성 자장 장치로부터의 임계값에 따라서 행 해머 상태에 대하여 모니터링하는 시스템의 실시예의 블록도이다.
도 4는 프로그램가능 행 해머 임계값에 따라서 행 해머 상태를 검출하기 위한 절차의 실시예의 흐름도이다.
도 5는 메모리 소자의 행 해머 상태를 모니터링하기 위한 절차의 실시예의 흐름도이다.
도 6은 표적화된 리프레시 명령을 지원하는 명령 진리표의 실시예이다.
도 7은 행 해머 모니터링은 구현될 수 있는 컴퓨팅 시스템의 실시예의 블록도이다.
도 8은 행 해머 모니터링이 구현될 수 있는 모바일 장치의 실시예의 블록도이다.
하기 설명된 실시예들의 일부 또는 전부를 묘사할 수 있는 도면들의 설명을 포함할 뿐만 아니라, 본 명세서에 제시되는 발명 개념들의 기타 잠재적 실시예들 또는 구현들을 논하는 소정 상세 사항들 및 구현들에 대한 설명이 뒤따라온다.
본 명세서에서 기술된 바와 같이, 메모리 소자는 행 해머 이벤트에 대하여 모니터링하는 검출 로직을 포함한다. 검출 로직은 물리적으로 인접한 행에 대한 데이터 손상 위험을 야기하는 시간 윈도우 내의 액세스 횟수를 표시하는 메모리 소자에 대한 임계값(threshold)을 획득한다. 검출 로직은 메모리 소자에 대한 구성 정보를 저장하고, 또한 메모리 소자 자체 상의 레지스터일 수 있거나 및/또는 메모리 소자가 속하는 메모리 모듈의 구성 저장 장치의 엔트리일 수 있는 레지스터로부터 임계값을 획득한다. 검출 로직은 메모리 소자의 행에 대한 액세스의 횟수가 임계값을 초과하는지 여부를 결정한다. 액세스의 횟수가 임계값을 초과하는 것을 검출하는 것에 응답하여, 검출 로직은 메모리 소자가 물리적으로 인접한 희생 행(victim row)을 표적으로 하는 리프레시를 수행하게 하는 트리거링을 발생할 수 있다.
행 해머로 인한 고장을 다루는 것으로 전에 확인된 하나의 접근법은 리프레시 주기당 행당 허용되는 액세스 횟수를 제한하는 것인데, 이는 시스템에서 성능 충격(performance impact)을 가져온다. 행 해머 고장을 해결하는 것으로 확인된 다른 접근법은 BCAT(buried channel array transistor)에서 BCD(bottom critical dimension)를 감소시키는 것, 및/또는 DIBL(drain induced barrier lowering)을 개선시키기 위해 채널 길이를 증가시키는 것을 포함한다. 그렇지만, 장치들의 치수 크기(dimension size)들을 변경하는 것은 물리적 제한 및 실제적 제한 둘 모두를 가진다. 소정 치수들이 어느 정도까지 이제 변경될 수 있다 하더라도, 이는 여전히 제조 공정들에 대한 변경들을 필요로 한다. 또한, 이는 차세대 제품들에서 이 문제를 어떻게 해결할 지에 대한 의문을 크게 남긴다.
행 해머 문제를 다루는 다른 접근법은 리프레시들 간의 시간을 감소시키는 것이다. 그렇지만, 리프레시 시간은 소자들의 밀도가 증가하였다 해도 이미 일정한 채로 유지되고 있다. 현행의 소자들은 동일 기간에 점점 더 넓은 지역들에 대한 리프레시를 수행할 필요가 있다. 이와 같이, 리프레시 시간을 추가로 감소시키는 것은, 메모리 소자들에서 부가적 리프레시 오버헤드를 필요로 하는 것 등에 의해, 시스템에서의 성능 충격을 야기할 것이다.
행 해머링을 다루기 위한 이런 현행의 제안된 접근법들은 부정적인 성능 충격들을 가지는 한편으로, 어떤 공정 변경들이 이루어질 필요가 있는지, 또는 일반적으로 행 해머링을 해결하기 위해 얼마나 많이 리프레시 시간이 변경될 필요가 있을 것인지조차도 명확하지가 않다. 메모리 컨트롤러 제조자들과 메모리 소자 제조자들은 일반적으로 동일 주체가 아니다. 대부분의 메모리 컨트롤러 제조자들은 상이한 장치 제조자들로부터의 메모리 소자들과 인터페이싱할 수 있는 컨트롤러들을 만들고 싶어할 것이다. 그러나, 현행의 제안된 접근법들은 메모리 컨트롤러를 단일 제조자로부터의 특정 계열의 메모리 소자들에 고정할 것이고, 그렇지 하지 않은 경우에는 여전히 행 해머링의 위험을 감수해야 할 것이다.
메모리 소자들의 동작 파라미터들에 대한 설계 변경 또는 변경을 행하는 대신에, 본 명세서에서 기술된 바와 같은 시스템은 행 해머 이벤트들을 모니터링하고 해결하기 위한 활성 실행시간 메커니즘(active runtime mechanism)을 제공할 수 있다. 모니터링은 한 메모리 소자에 저장되는 및/또는 다중 메모리 소자를 포함하는 한 메모리 모듈에 저장되는 된 프로그래밍된 구성 값 또는 기타 임계값에 따라서 능동적으로 수행될 수 있다. 일 실시예에서, 메모리 컨트롤러는 임의의 행에 대한 액세스의 횟수가 행 해머 상태를 야기하는지를 결정하기 위해 메모리 소자에 대한 각각의 액세스를 모니터링한다. 대안적으로, 모니터링 로직은 메모리 소자 및/또는 메모리 모듈에 분포될 수 있다. 모니터링 메커니즘이 어디에 자리잡든지 간에, 이것은 저장 장치 로케이션으로부터 획득되는 저장된 임계값에 따라서 모니터링을 수행한다. 행 해머 상태가 획득된 임계값에 기초하여 검출될 때, 검출 로직은 이하에 보다 상세하게 설명된 바와 같이, 행 해머 리프레시 또는 표적화된 리프레시(targeted refresh)를 트리거링할 수 있다.
행 해머 임계값을 저장하는 것은 행 해머 한계들이 메모리 소자 공급자들에 걸쳐서, 및 동일 공급자 또는 제조자 내부에서의 상이한 계열들에 걸쳐서도 변할 것이라는 사실을 알 수 있을 것이다. 덧붙여, 메모리 소자들은 역사적으로 메모리 소자들의 밀도를 증가시키는 새로운 공정 기술로 바뀌어 왔다. 이런 추세가 가까운 미래에 멈출 것이라고 믿을 어떤 근거도 없다. 행 해머 상태가 메모리 밀도 관련 관심사인 것을 고려할 때, 새로운 공정 기술로의 전환은 또한 메모리 소자들의 행 해머 한계 또는 임계값을 바꿀 것이다. 메모리 소자들을 더 새로운 소자들로 대체하는 것은 흔히 있는 일이고, 이것은 상기 이유들 중 어느 것에 의해서든 상이한 행 해머 이벤트 임계값을 갖게 할 수 있을 것이다. 임계값을 저장하고 이것을 모니터링에 이용하면 메모리 서브시스템이 메모리 서브시스템에 존재하는 소자들에 특유한 행 해머링을 추적할 수 있게 한다.
그러므로, 메모리 컨트롤러들은 행들에 대한 액세스의 횟수를 추적하고 (행 해머링을 추적하고) 또한 표적화된 인접 행들을 리프레시하기 위해 메모리 소자들에 명령을 발행할 수 있다. 일 실시예에서, 임계값 정보는 메모리 소자(예를 들어, DRAM) 자체 상의 레지스터에 저장된다. 그와 같은 정보는 예를 들어 제조자 또는 장치 시험자에 의해 기록(fuse)될 수 있다. 일 실시예에서, 이 값은 구성 레지스터에서의 필드로서 저장되는데, 이것은 그 특성들을 결정한 후에 특정한 메모리 소자에 기입되거나 또는 메모리 모듈(예를 들어, DIMM(dual inline memory module))에 기입된다.
정보의 저장이 수많은 상이한 방식들 중 임의의 것으로 수행될 수 있다는 것이 이해될 것이다. 일 실시예에서, 정보는 장치 및/또는 메모리 모듈에서 인코딩된다. 예를 들어, 3 비트 코드가 임계값 한계들을 제공하기 위해 이용될 수 있다. 인코딩은 메모리 컨트롤러 공급자들, 메모리 소자 공급자들, 상이한 제3자, 또는 몇몇 조합된 당사자들에 의해 합의된 어떤 방식으로든 확립될 수 있다. 인코딩이 구성될 수 있는 상이한 방식들에 대한 예들이 뛰따라온다. 인코딩 예 1: 000 - 한계 없음; 001 - 500K; 010 - 400K; 011 - 300K; 100 - 250K; 101 - 200K; 110 - 150K; 111 - 100K. 예2: 000 - 100K 또는 정의되지 않음; 001 - 150K; 010 - 200K; 011 - 250K; 100 - 300K; 101 - 400K; 110 - 450K+; 111 - 알려지지 않는 RH 한계. 통상의 기술자는 이러한 예들에 사용되는 특정 값들에 대해 실제 상 셀 수 없이 많은 변형들이 있다는 것을 이해할 것이다. 그러므로, 이러한 예들은 인코딩을 설명하기 위해 의도된 것일 뿐, 제한하기 위한 것으로 이해해서는 안 된다.
본 명세서에 제공된 예들은 DRAM과 관련된 행 해머 문제를 주로 논의한다. 그렇지만, 행 해머 문제가, 보다 일반적으로, 메모리 밀도가 증가함에 따라 일어나는 메모리 소자 크기 축소(scaling) 문제라는 것을 이해할 것이다. 이와 같이, DRAM과 관련된 설명들은 메모리 컨트롤러 또는 동등 로직을 포함하는 기타 메모리 기술들에 적용될 수 있는 비제한적 예들로서 이해될 것이다. 본 명세서에 기술되는 표적화된 리프레시 명령은 DDR4(dual data rate version 4, 본 출원의 출원일 무렵에 개발 중인 사양), LPDDR4(low power dual data rate version 4, 본 출원의 출원일 무렵에 개발 중인 사양), 또는 WIDEIO(본 출원의 출원일 무렵에 개발 중인 사양)와 같은 많은 메모리 기술들 중 임의의 것과 호환된다. 행 해머 상태 한계 정보의 저장도 메모리 소자가 그 자체로 구성 정보를 저장할 수 있거나 및/또는 메모리 모듈이 구성 정보를 저장하는 임의의 메모리 기술과 마찬가지로 호환된다.
도 1a는 프로그램가능 행 해머 임계값을 이용하여 행 해머 상태에 대하여 모니터링하는 시스템의 실시예의 블록도이다. 일 실시예에서, 저장된 임계값의 사용은 프로그램가능 행 해머 임계값으로서 지칭될 수 있다. 시스템(100)은 메모리 컨트롤러(120)에 결합되는 메모리 소자(110)를 포함한다. 메모리 소자(110)는 메모리 셀들의 인접한 행들을 가지는 임의 유형의 메모리 기술을 포함할 수 있는데, 여기서 데이터는 워드라인 또는 그 등가물을 통해 액세스 가능하다. 일 실시예에서, 메모리 소자(110)는 DRAM(dynamic random access memory) 기술을 포함한다.
메모리 소자(110)는 메모리 어레이(112)를 포함하고, 이 어레이는 메모리의 하나 이상의 논리적 및/또는 물리적 그룹들(랭크들, 뱅크들, 및/또는 기타 그룹화들을 포함할 수 있음)을 나타낸다. 시스템(100)에 구체적으로 도시되지는 않았으나, 메모리 어레이(들)(112)는 시간 윈도우 내에 반복된 액세스의 표적들이 되는 하나 이상의 행들을 포함할 수 있다. 그러한 행은 행 해머 상태의 대상이 된다. 대다수의 최근 메모리 소자들에서, 반도체 레이아웃의 아키텍처는 하나 이상의 물리적으로 인접한 행들이 손상 상태로 되는 위험에 빠지게 한다. 행 해머 상태 때문에 손상 상태로 되는 위험을 가진 행 또는 행들이 희생 행(victim row)들로서 본 명세서에서 지칭된다.
메모리 소자(110)는 열 로직(114) 및 행 로직(116)을 포함하는데, 이 로직들은 메모리 어레이(112) 내의 적절한 메모리 로케이션에 액세스 명령어를 디코딩하는데 사용된다. 행들과 열들의 수가 동일해야 할 어떤 요구 사항도 없고, 실제로 이들은 통상적으로 동일하지 않다. 메모리 컨트롤러(120)는 명령 버스(예를 들어, 명령/어드레스(C/A) 버스)상에서 명령들 또는 명령어들을 메모리 소자(110)에 보내고, 이들은 이후 메모리 소자(110)에 의해 인터프리팅된다. 메모리 소자(110)는 메모리 내에서 다양한 액세스 기능들을 수행하기 위해 명령 정보를 디코딩하고, 열 로직(114)과 행 로직(116)을 통해 어드레스 정보를 디코딩한다. 로직은 열 어드레스 스트로브 또는 신호(CAS) 및 행 어드레스 스트로브 또는 신호(RAS)의 조합에 의해 메모리에서의 특정 로케이션에 액세스한다. 메모리의 행들은 알려진 메모리 아키텍처들 또는 이들의 파생물들에 따라서 구현될 수 있다. 간단히 말해, 메모리 행은 열 로직(114)에 의해 발생되는 CAS에 의해 식별되는 대로의 메모리 셀들의 하나 이상의 어드레싱 가능 열들을 포함한다. 행들은 행 로직(116)에 의해 발생되는 RAS를 통해 어드레싱 가능하다.
일 실시예에서, 메모리 소자는 구성(118)을 포함한다. 일 실시예에서, 구성(118)은 메모리 소자(118) 내에 저장된다. 대안적으로, 구성(118)은 메모리 소자(110)와 연관된 구성을 나타내는데, 이는 메모리 소자(110) 내의 곳이 아닌 어딘가 다른 곳에 저장된다. 구성(118)은 메모리 소자 내의 레지스터 장치 또는 기타 저장 장치에 저장될 수 있다.
시스템(100)은 검출기(130)를 포함하는데, 이 검출기는 시스템(100)이 행 해머 이벤트 또는 행 해머 상태를 검출할 수 있게 하는 하드웨어 및/또는 소프트웨어 또는 기타 로직을 나타낸다. 행 해머 상태를 검출하기 위해 이용되는 다중의 다양한 메커니즘이 있을 수 있다. 시스템(100)은 검출기(130)를 통해 행 해머 상태를 검출하는데, 검출기는 일 실시예에서 메모리의 선택된 행들에 대한 액세스들을 모니터링하기 위한 테이블 또는 로그를 포함한다. 그러므로, 검출기(130)는 메모리 어레이(112)의 행이 임계값 기간 내에서 반복된 액세스들을 경험하는 때를 결정할 수 있다. 검출기(130)는 메모리 소자(110), 메모리 컨트롤러(120)에 있는, 및/또는 메모리 소자 또는 메모리 컨트롤러 중 어느 하나와 별개인 하드웨어 및/또는 로직을 포함할 수 있다.
검출기(130)는 행이 기간 내에 액세스되는 횟수를 결정한다. 검출기는 구성(118)으로부터 행 해머 임계값 정보에 액세스하거나 다른 식으로 이것을 획득한다. 행 해머 이벤트는 단순히 행이 몇 번이나 액세스되는지에 대한 것이 아니라 주어진 기간 내에 몇 번이나 액세스되는지에 대한 것이다. 일단 행이 리프레시되면, 데이터 손상을 야기할 수도 있는 상태들이 극복된다. 따라서, 모니터링을 위한 기간이 리프레시 레이트(refresh rate)에 적어도 부분적으로 기초할 수 있다. 일 실시예에서, 검출기(130)가 액세스들의 임계값에 대해 모니터링하는 기간은 메모리 소자(110)의 리프레시 주기와 동일하다. 기간 동안의 액세스의 횟수는 구성(118)으로부터 결정된다.
일 실시예에서, 메모리 컨트롤러(120)는 행 해머 이벤트를 검출한 것에 응답하여, 메모리 컨트롤러로 하여금 표적화된 리프레시를 수행하게 하기 위해 표적화된 리프레시 명령(122)을 발생한다. 표적화된 리프레시 명령(122)은 스케줄을 벗어나서 생기는 리프레시 명령인데, 이는 이 명령이 타이머가 리프레시를 수행할 시간이라고 표시하기 때문에 이 명령을 보내는 것과는 대조적으로 행 해머 이벤트를 검출한 것에 응답하여 보내진다는 것을 의미한다. 일 실시예에서, 메모리 컨트롤러(120)는 표적화된 리프레시 명령을 보내기 위해 기존 명령을 배가(double up)한다. 예를 들어, 표적화된 리프레시 명령(122)은 DRAM에 대해 정의된 대로의 활성화(Activate) 또는 리프레시 명령 중 어느 하나로 배가될 수 있다. 메모리 컨트롤러는 예를 들어 메모리 소자가 활성화 또는 (표준) 리프레시 명령들 대신에 표적화된 리프레시로서 명령을 해석하게 할 수 있는 또 다른 핀 및/또는 모드 레지스터 상태를 사용하여 배가를 성취할 수 있다. 메모리 컨트롤러(120)는 해머링된 행을 표시하기 위해 어드레스 정보를 제공한다. 검출기(130)는, 메모리 컨트롤러(120)가 메모리 소자가 어느 희생 행(들)이 리프레시되어야 하는지를 결정하게 하기 위해 메모리 소자(110)에 표시할 수 있는, 행 식별 어드레스 정보를 표시할 수 있다. 어드레스는 특정적으로 메모리 소자에 표시될 수 있거나, 또는 보다 일반적으로 제공될 수 있다. 그러므로, 검출기(130)가 메모리의 특정 행이 행 해머 상태에 종속된다고 (액세스들이 임계값에 도달하였거나 이를 초과한다고) 결정할 때, 이것은 메모리 컨트롤러(120)에 행을 표시하고, 메모리 컨트롤러는 다음 차례로 표적화된 리프레시 명령을 보낼 수 있다.
표적화된 리프레시 명령(122)을 지칭할 때, 상이한 메모리 소자 제조자들이 장치들의 메모리 리소스들을 활용하기 위한 상이한 로직 및 아키텍처들을 이용한다는 것을 잘 알 것이다. 예를 들어, 상이한 메모리 소자 제조자들은 호스트 프로세서(도시 생략)에서 사용되는 논리 메모리 어드레스들과 메모리 소자(110)에 내부적으로 사용되는 물리적 메모리 어드레스들 간에 매핑하기 위해 상이한 오프셋들을 사용할 수 있다. 일 실시예에서, 메모리 컨트롤러(120)는 호스트 프로세서에 의해 사용되는 것과 동일한 논리 메모리 어드레스들을 활용한다. 그러므로, 일 실시예에서, 메모리 컨트롤러(120)는 해머링된 행을 표시하는 행 어드레스를 메모리 소자(110)에 제공한다. 메모리 컨트롤러는 자신이 메모리 소자(110)에 발행하는 명령과 함께 및/또는 그 일부로서 행 어드레스를 표시할 수 있다. 메모리 소자는 이후 임의의 희생 행(들)의 특정적 어드레스 또는 어드레스들을 계산할 수 있다. 메모리 소자(110)는 이후 물리적으로 인접한 희생 행(들)에 대해 표적화된 리프레시를 수행한다.
일 실시예에서, 검출기(130)는 자신이 행 해머 상태에 대하여 모니터링하게 될 타임프레임을 설정하기 위한 구성뿐만이 아니라, 특정한 메모리 소자들에 대해 획득되는 정보에 기초하여 메모리 컨트롤러로 하여금 표적화된 리프레시를 트리거링하게 할 행 해머 이벤트를 정의하는 액세스의 횟수를 설정하기 위한 구성을 포함한다. 검출기(130)는 시스템(100)에서 행들의 전체 수의 서브세트에 대한 데이터를 유지한다. 일 실시예에서, 검출기(130)는 MVC에 기초하여 행들의 수에 대한 데이터를 유지하는데, MVC는 구성된 타임프레임에 대해 예상되는 최대 희생 카운트(maximum victim count)이다. 예를 들어, 검출기(130)는 MVC+1 엔트리들, 또는 더 많은 엔트리들을 가진 테이블을 유지할 수 있다. 검출기(130)는 이후 액세스되는 메모리 로케이션들에 대해 엔트리들을 테이블 내로 롤링하여, 테이블에서의 최저 카운트 엔트리들을 롤링 아웃하여 이들을 대체할 수 있다.
기술된 임계값이 행 해머 상태를 야기하는 메모리 행들에 대한 액세스 레이트를 참조하는 액세스 레이트 임계값, 행 해머 상태가 존재하는 것으로 검출될 수 있는 임계값을 참조하는 행 해머 임계값, 또는 데이터 손상의 위험이 존재하는 포인트를 나타내는 윈도우 내에서의 액세스의 횟수에 대한 한계를 참조하는 행 해머 한계로서 또한 기술될 수 있다는 것이 이해될 것이다. 시간 윈도우 내에서 검출되는 액세스의 횟수가 데이터 손상을 회피하기 위해 시스템에 의해 다뤄질 수 있다는 사실을 참조하는 다른 표현들이 또한 이용될 수 있다.
도 1b는 프로그램가능 행 해머 임계값에 따라서 검출된 행 해머 이벤트를 표시하기 위한 메모리 소자에서의 열/어드레스 정보 로직 및 분포된 검출 로직을 포함하는 시스템의 실시예의 블록도이다. 시스템(150)은 본 명세서에서 기술되는 임의의 실시예에 따라서 메모리 소자 또는 메모리 서브시스템 및 메모리 컨트롤러를 포함하는 시스템이다. 시스템(150)은 메모리 컨트롤러(120)에 결합되는 메모리 소자(110)를 포함한다. 메모리 소자(110)는 메모리 셀들의 인접한 행들을 갖는 임의 유형의 메모리 기술을 포함할 수 있는데, 여기서 데이터는 워드라인 또는 그 등가물을 통해 액세스 가능하다.
메모리 소자(110)는 메모리 어레이(112)를 포함하고, 메모리 어레이는 메모리의 하나 이상의 논리적 및/또는 물리적 그룹들을 나타낸다. 일 실시예에서, 메모리 소자(110)는 C/A 로직(166)을 포함하는데, 이 로직은 메모리 어레이(112) 내의 특정 메모리 로케이션(들)에 액세스 명령어들을 디코딩하는데 사용된다. C/A 로직(166)은 판독 및/또는 기입을 위한 메모리 로케이션들을 활성화하는, 열 로직 및 행 로직과 같은 디코드 로직(168)을 포함한다. C/A 로직(166)은, C/A 버퍼 또는 (예를 들어, 3DS(3차원 적층) 구성 또는 버퍼 온 보드 구현에서의) 기타 로직 버퍼로서의 (예를 들어, RDIMM 또는 LRDIMM 장치의) C/A 레지스터, 또는 기타 로직 장치로서 구현될 수 있다. 일 실시예에서, C/A 로직(166)은 하이브리드 메모리 큐브(HMC)와 같은 3차원 적층 메모리 소자에서의 로직 버퍼로서 구현되는데, 여기서 DRAM 소자들은 로직 버퍼 위에 적층된다.
메모리 컨트롤러(120)는 명령들 또는 명령어들(C/A 정보(124))을 명령 버스(예를 들어, 명령/어드레스(C/A) 버스)상에서 메모리 소자(110)에 보내고, 이들은 이후 메모리 소자(110)에 의해 인터프리팅된다. 메모리 소자(110)는 메모리 내에서 다양한 액세스 기능들을 수행하기 위해 명령 정보를 디코딩하고, 디코드 로직(168)을 통해 어드레스 정보를 디코딩한다. 로직은 열 어드레스 스트로브 또는 신호(CAS)와 행 어드레스 스트로브 또는 신호(RAS)의 조합에 의해 메모리에서의 특정 로케이션에 액세스한다. 메모리의 행들은 알려진 메모리 아키텍처들 또는 이들의 파생물들에 따라서 구현될 수 있다. 간략히 말하면 말하면, 메모리의 행은 CAS에 의해 식별되는 대로의 메모리 셀들의 하나 이상의 어드레싱 가능 열들을 포함한다. 행들은 RAS을 통해 어드레싱 가능하다.
일 실시예에서, 메모리 소자(110)는 검출기(164)를 포함하고, 이 검출기는 메모리 소자(110)로 하여금 행 해머 이벤트 또는 행 해머 상태를 검출할 수 있게 하는 하드웨어 및/또는 소프트웨어 또는 기타 로직을 나타낸다. 일 실시예에서, 검출기(164)는 C/A 로직(166) 내에 포함된다. 어느 경우든 검출기(164)는 이것이 행 해머 상태에 대하여 모니터링하기 위한 메모리 소자(110)에서의 로직을 포함한다는 점에서 분포되어 있다고 언급할 수 있다. 행 해머 이벤트 검출은 어레이, 소자, 랭크, 또는 메모리 리소스들의 기타 분리물에 의해 수행될 수 있다.
행 해머 상태를 검출하는데 사용되는 다중의 다양한 메커니즘이 있을 수 있다. 검출기(164)는 메모리의 선택된 행들에 대한 액세스들을 모니터링하기 위한 테이블 또는 로그를 포함할 수 있다. 메모리 소자(110)가 검출기 로직을 포함할 때, 검출기(164)는 구성(118)에 저장되는 임계값 정보에 기초하여 행 해머 상태들에 대하여 모니터링할 수 있다. 행 해머 이벤트 또는 행 해머 상태가 검출될 때, 일 실시예에서, C/A 로직(166)은 메모리 컨트롤러(120)에 상태를 표시하기 위해 경보 신호(126)를 발생한다. 경보에 응답하여, 메모리 컨트롤러(120)는 본 명세서에 기술되는 임의의 실시예에 따라서, 행 해머 이벤트를 검출한 것에 응답하여 표적화된 리프레시를 트리거링한다.
도 2는 행 해머 검출 로직, 및 메모리 소자에서의 희생 로직을 포함하는 시스템의 실시예의 블록도이다. 시스템(200)은 본 명세서에서 기술되는 임의의 실시예에 따른 메모리 서브시스템의 한 예일 수 있다. 시스템(200)은 메모리 서브시스템의 한가지 논리적 이해를 예시한다. DRAM(210)은 공지된 메모리 아키텍처들 또는 이들의 파생물들에 따른 메모리 행들인 메모리(212) 내의 메모리의 행들을 포함한다. 간략히 말하면, 메모리 행은 메모리 셀들의 하나 이상의 어드레싱 가능한 열들을 포함한다. 일 실시예에서, DRAM(210)은 메모리 컨트롤러(230)로부터 메모리(212)의 물리적 메모리 로케이션들로 논리적 어드레스 정보를 매핑한다.
메모리 컨트롤러(230)에 의해 제공되는 "인접" 메모리 어드레스들(전형적으로 논리적 어드레스들)이 반드시 DRAM(210)에서의 물리적으로 인접한 메모리 로케이션들에 매핑되지는 않는 방식으로 메모리가 전형적으로 액세스된다는 것을 이해해야 한다. 그보다는, 메모리 컨트롤러(230)에 의해 제공되는 대로의 각각의 인접한 메모리 어드레스는 어떤 일관된 오프셋으로서 자리 잡은 어드레스들에 매핑된다. 몇몇 메모리 소자들은 어드레스를 스크램블링하고, 따라서 어드레스 정보를 스크램블링 해제함으로써 메모리 소자 자체에서 식별되는 희생 행들을 낳는다. 예를 들어, 어드레스들 0xX0h, 0xX1h, 및 0xX2h가, 제각기 물리적 로케이션들 0Xy0h, 0xY3h, 및 0xY7h에 자리 잡을 수 있는데, 여기서 오프셋은 '4'이다. 이 예에서, 'X'는 메모리 컨트롤러에 의해 제공되는 대로의 어드레스들의 상위의 비트 정보를 나타내고, 'Y'는 DRAM(210) 내에서 매핑되는 대로의 어드레스들의 상위의 비트 정보를 나타낸다. 그러므로, 메모리 소자 스스로 표적화된 리프레시 명령과 함께 메모리 컨트롤러에 의해 제공되는 어드레스 정보와 연계되는 소자 구성에 기초하여 희생 행을 결정할 수 있다.
호스트 프로세서(240)는 임의 종류의 처리 유닛, 프로세서, 중앙 처리 장치(CPU), 그래픽 처리 유닛(GPU), 마이크로 컨트롤러, 또는 다른 처리 장치일 수 있다. 호스트 프로세서(240)는 일반적으로 메모리 컨트롤러(230)를 통해 DRAM(210) 및 다른 메모리 소자들에 액세스한다. 일 실시예에서, 메모리 컨트롤러(230)는 호스트 프로세서(240) 또는 호스트 프로세서(240)의 프로세서 패키지의 일부이다. 대안 실시예에서, 메모리 컨트롤러(230)는 호스트 프로세서(240)가 그것의 일부인 하드웨어 플랫폼에 대한 전력 및 인터페이스 로직을 위한 인프라 구조를 제공하는 지원용 "칩셋" 또는 하드웨어 로직의 일부이다. 일 실시예에서, DRAM(210)은 장치에 대한 전력이 중단되는 경우 그 내용들이 비 결정성인 휘발성 메모리 또는 메모리 소자이다. 따라서, 휘발성 메모리는 데이터가 상실되거나 손상되지 않도록 하기 위해 그 자신이 메모리 셀들을 리프레시하게 허용하는 정규 전원을 필요로 한다. 앞서 언급한 바와 같이, 검출 로직(234)은 시스템(200)이 행 해머 상태를 식별하여 행 해머 상태에 대해 표적화된 리프레시로 응답할 수 있게 한다.
DRAM(210)은 어떤 행 또는 행들이 행 해머 상태로 인해 손상의 위험에 처해 있는지를 결정하는 로직을 나타내는 희생 로직(214)을 포함한다. 일 실시예에서, 희생 로직(214)은 적어도 부분적으로 메모리 컨트롤러(230)에서 실행될 수 있다. 그렇지만, 메모리 컨트롤러(230)와 기타 유형의 메모리 소자들 간의 더 폭넓은 연동성을 위해, 희생 로직(214)은 일반적으로 DRAM(210)에 상주한다. 그러므로, 메모리 컨트롤러(230)는 표적화된 리프레시를 하게 하기 위해 표적화된 리프레시 트리거링을 DRAM(210)에 제공할 필요만을 갖는다. DRAM(210)은 어떤 행 또는 행들이 잠재적 희생물들인지를 결정하기 위해 맵 또는 기타 로직을 사용할 수 있다.
DRAM(210)은 제어 로직(216)를 포함하고, 제어 로직은 메모리(212)의 리프레시를 수행하기 위한 로직을 포함한다. 각각의 메모리 소자는 어떤 메모리 셀들이 리프레시되었는지, 및 어떤 행들이 다음으로 리프레시될 차례인지를 추적하기 위한 몇몇 로직을 포함한다. 제어 로직(216)은 표적화된 리프레시 명령을 수신한 것에 기초하여 실제 표적화된 리프레시를 구현할 수 있다.
DRAM(210)은 하나 이상의 레지스터들(218)을 포함할 수 있고, 이 레지스터들은 DRAM(210)의 구성 및/또는 DRAM(210)과 메모리 컨트롤러(230) 사이의 통신을 허용한다. 일 실시예에서, 레지스터(218)는 행 해머 상태를 나타내는 액세스의 횟수를 표시하는 임계값 정보를 저장한다. 메모리 컨트롤러(230)는 명령 로직(232)을 포함한다. 명령 로직(232)은 메모리 컨트롤러(230)가 레지스터들(218)을 판독하고 및/또는 이것에 기입할 수 있게 한다. 일 실시예에서, 메모리 컨트롤러(230)는 메모리 소자가 표적화된 리프레시를 수행하게 하기 위해 DRAM(210)의 레지스터(218)에 값을 설정함으로써 표적화된 리프레시를 트리거링한다. 일 실시예에서, 메모리 컨트롤러(230)는 행에 대한 액세스의 횟수가 레지스터(218)로부터 판독되는 임계값을 초과한다는 것을 검출한 것에 응답하여 표적화된 리프레시를 트리거링한다. 검출 로직(234)은, 행에 대한 액세스의 횟수가 레지스터(218)로부터 판독되는 임계값을 초과한다는 것을 메모리 컨트롤러(230)로 하여금 결정하게 할 수 있는, 본 명세서에 기술되는 임의의 실시예에 따른 로직을 나타낸다.
도 3a는 메모리 소자의 구성 저장 장치로부터의 임계값에 따라서 행 해머 상태에 대하여 모니터링하는 시스템의 실시예의 블록도이다. 시스템(302)은 메모리 컨트롤러(330), 메모리 소자(320), 및 검출기(310)를 구비한 메모리 서브시스템을 포함하는 시스템의 예를 나타낸다. 시스템(302)은 앞서 기술된 시스템들(100, 150 또는 200)에 따른 시스템의 한 예를 제공한다. 일 실시예에서, 검출기(310)는 메모리 컨트롤러(330)의 일부이다. 메모리 컨트롤러(330)는 검출기(310)에 의한 행 해머 상태의 검출에 응답하여 표적화된 리프레시 명령을 발행할 수 있다.
메모리 소자(320)는 메모리의 다중 행을 포함한다. 행들 중에서, 기간 내에서의 반복된 액세스의 타깃이 되는 행인 타깃 행(322)이 있다. 희생 행(324)은 타깃 행(322)의 해머링으로 인한 데이터 손상의 위험이 있는 행이다. 해머링된 행과 연관되는 둘 이상의 희생 행이 있을 수 있다(예를 들어, 해머링된 행에 물리적으로 인접한 각각의 행). 일 실시예에서, 메모리 소자(320)는 행 해머 또는 액세스 레이트 임계값을 표현하기 위해 메모리 소자에 대해 결정되는 특정 값을 표시하는 구성(340)을 포함한다. 행 해머 임계값은 제조자에 의해 결정될 수 있다.
일 실시예에서, 검출기(310)는 액세스 로그(312)를 포함한다. 액세스 로그(312)는 정보의 다중 필드를 갖는 엔트리들을 저장하는 리스트 또는 배열 또는 테이블 또는 기타 로직 구조로서 구현될 수 있다. 각각의 엔트리는 적어도 메모리의 특정 행에 대한 어드레스 또는 식별자 및 엔트리에 대한 액세스 카운트를 포함한다. 액세스 로그(312)에서의 엔트리들의 수는 메모리 소자(320)에서의 행들의 전체 수보다 훨씬 작다. 따라서, 검출기(310)는 모든 행들의 서브세트에 대한 카운트를 유지함으로써 모니터링할 수 있다. 각각의 행의 카운트는 행이 다시 액세스됨에 따라 증분될 수 있고, 이 카운트는 행이 임계값 횟수만큼 액세스되었는지를 결정하기 위해 임계값과 비교될 수 있다.
검출 로직(314)은 검출기(310)가 액세스 명령이 메모리의 한 행에 지향된다는 것을 결정할 수 있게 하기 위한 로직을 포함한다. 검출 로직(314)이 타깃 행(322)에의 라인을 가진 것으로 특정하게 도시되었지만, 검출 로직(314)은 구성 또는 구성 정보(340)에 설정 공표된 행 해머 임계값에 따라서 임의의 행에 대한 액세스들을 모니터링할 수 있다. 일 실시예에서, 검출 로직(314)은 메모리 컨트롤러(330)에 의해 발행되는 활성화 명령의 어드레스를 결정하기 위한 메커니즘을 포함한다. 그러므로, 메모리 컨트롤러(330)가 메모리의 행을 활성화하기 위해 메모리 소자(320)에 대한 명령을 보낼 때마다, 검출기(310)는 명령과 연관된 어드레스를 식별할 수 있고, 어드레스에 대한 액세스를 액세스 로그(312)에 계속 기록한다.
검출기(310)는 행에 대한 액세스가 임계값을 초과하는 때를 결정하고, 메모리 컨트롤러에 행 어드레스 정보를 표시한다. 액세스 로그(312)에서의 어드레스 정보는 물리적 메모리 리소스들에 액세스하기 위해 메모리 소자(320)에 의해 이용되는 어드레스와 반드시 동일한 어드레스는 아니라는 것을 이해할 것이다. 메모리 소자(320)는 메모리 컨트롤러(330)에 의해 물리적 리소스들에 보내지는 어드레스들을 디코딩한다. 그러므로, 검출기(310)가 액세스들이 임계값에 도달했거나 이를 초과한 행들을 식별할 때, 이 정보는 타깃 행(322)의 물리적 리소스들을 식별하여 물리적으로 인접한 희생 행(324)이 식별될 수 있도록 하기 위해 디코딩될 필요가 여전히 있을 수 있다.
검출기(310)는 타이머 정보(316)를 수신하고, 이를 통해 검출기(310)는 타임프레임의 시작 또는 기간 또는 시간 윈도우뿐만 아니라, 타임프레임의 종료를 식별할 수 있다. 모니터링은 타임프레임의 시작과 종료 사이에 일어난다. 일 실시예에서, 타임프레임은 하나의 스케줄링된 리프레시로부터 다음의 것으로 진행한다.
일 실시예에서, 검출기(310)는 엔트리의 카운트가 임계값에 도달했고 또한 메모리 컨트롤러에 식별될 때 액세스 로직(312)에서의 엔트리의 카운트를 클리어링한다. 검출이 랭크 및/또는 뱅크 단위 크기로 수행될 수 있다는 것을 이해할 것이다. 반드시 메모리 컨트롤러에 대한 단일 검출기(310)가 있는 것은 아니다. 각각의 뱅크는 추적될 수 있고, 각각의 메모리 채널은 모니터링을 가질 수 있다.
도 3b는 메모리 모듈의 구성 저장 장치로부터의 임계값에 따라서 행 해머 상태에 대하여 모니터링하는 시스템의 실시예의 블록도이다. 시스템(304)은 본 명세서에서 기술되는 시스템(302) 또는 임의의 다른 메모리 서브시스템의 실시예의 한 예를 예시한다. 시스템(302)이 단일 메모리 소자(320)를 예시한 반면, 시스템(304)은 다중 메모리 소자(320)를 포함하는 메모리 모듈(350)을 예시한다. 몇몇 시스템들에서, 메모리 소자는 직접적으로 호스트 장치의 머더보드 또는 주 회로 기판상으로 배치된다. 시스템(302)은 메모리 소자(320)가 직접적으로 호스트 시스템 기판상에 놓여지는 메모리 서브시스템을 나타낸다. 시스템(304)은 전형적으로 커넥터를 통해 호스트 시스템 기판에 접속되는 모듈 기판의 사용을 나타낸다. 시스템(302)에서의 메모리 컨트롤러(330), 검출기(310), 액세스 로그(312), 검출 로직(314), 및 타이머(316)에 대한 기술들은 시스템(304)에 동등하게 잘 적용된다.
메모리 모듈(350)은 다중 메모리 소자(320)를 포함하고, 분포된 검출기(354)는 메모리 모듈(350)상에 포함될 수 있다. 일 실시예에서, 메모리 모듈(350)은 구성(352)에 의해 표현되는 구성 장치를 포함한다. 일 실시예에서, 구성 또는 구성 정보(352)는 흔히 DIMM들 또는 필적하는 모듈 장치상에서 이용되는 SPD(serial presence detect) 장치에 포함된다.
전형적으로 SPD는 사이즈, 속도, 아키텍처 상세 사항들, 및/또는 기타 제조 데이터와 관련되는 데이터를 포함하는, 메모리 모듈 상에 탑재된 소형 직렬 EEPROM(electronically erasable programmable read only memory) 또는 플래시 장치이다. 일반적으로 메모리 제조자 또는 시험자 또는 다른 하청 계약자는 제조/검증 공정 동안 SPD를 프로그래밍한다. 메모리 컨트롤러(330) 및/또는 검출기(310)는 구성(352)으로부터 데이터를 판독할 수 있다. 그러므로, 메모리 공급자는 메모리 모듈(350)상의 메모리 소자들(320)의 전체 그룹에 대한 정보를 프로그래밍할 수 있다.
일 실시예에서, 메모리 모듈(350)이 구성(352)을 저장하는 것에 더하여 각각의 메모리 소자(320)는 구성 또는 구성 정보(340)를 포함한다. 하나의 장치가 어느 한 임계값에 따라 동작하고 또 따른 장치가 또 다른 임계값에 따라 동작하는 경우에, 다양한 장치들에서 변동을 갖는 것이 가능하다. SPD는 이것에 저장되는 최악의 경우 값(worst-case value)을 가질 수 있고, (예를 들어, MPR에서의) 각각의 장치는 예를 들어 장치 특정적 값을 저장할 수 있다. 메모리 컨트롤러는 모듈마다(예를 들어, DIMM마다), 또는 최저 임계값으로 추적할 수 있다.
메모리 모듈(350)상의 하나 이상의 메모리 소자(320)는 상이한 임계값들을 가질 수 있다는 것이 이해될 것이다. 일 실시예에서, 검출기(310)는 개별 메모리 소자들(320)의 구성 레지스터들로부터의 개별 구성 정보(340)에 기초하여 행 해머 상태에 대해 모니터링한다. 그러한 실시예는 구성(352)이 메모리 모듈에 대해 존재하는 구현들을 포함할 수 있다. 대안적으로, 검출기(310)는 각각의 메모리 소자(320)가 개별 구성(340)을 포함함에도 불구하고 구성(352)에 기초하여 모니터링할 수 있다. 일 실시예에서, 검출기(310)는 충돌이 있지 않다면(즉, 상이한 임계값들) 개별 구성(340)에 기초하여 모니터링할 것이고, 충돌이 있는 경우에는 구성(352)에 기초하여 모니터링할 것이다.
일 실시예에서, 메모리 모듈(350)상의 임계값 구성(352)은 임의의 메모리 소자(320)의 가장 제한적 임계값, 또는 더 낮은 임계값을 저장한다. 메모리 모듈(350)은 그런 결정을 행하고 그 값을 저장하기 위한 로직을 포함할 수 있다. 대안적으로, 메모리 컨트롤러(330)는 각각의 메모리 소자(320)의 구성 장치들로부터 임계값을 판독하고 그 임계값 정보를 구성(352)에 기입할 수 있다. 일 실시예에서, 행 해머 임계값 정보는 단순히 구성(352)의 및/또는 구성 정보(340)의 일 필드이다. 일 실시예에서, 구성(340)은 공급자 특정적 정보를 위해 이용될 수 있는, 다목적 레지스터(MPR) 또는 각각의 저장 장치(320)의 페이지 3에 저장된다. 그러므로, 메모리 소자들(320)의 다양한 로트(lot)들, 공정들, 공급자들로 인한 상이한 임계값들이 시스템들(302 및 304)에서 효과적으로 추적될 수 있다.
도 4는 프로그램가능 행 해머 임계값에 따라서 행 해머 상태를 검출하기 위한 절차의 실시예의 흐름도이다. 공급자는 메모리 소자를 제조한다 402. 이 맥락에서의 메모리 소자는 그 패키징(예를 들어, 메모리 "칩")에 있는 개별적 메모리 다이를 지칭할 수 있다. 제조된 메모리 칩을 받는 공급자 또는 또 다른 당사자는 메모리 소자에 대한 행 해머 임계값을 결정한다 404. 이 결정은 메모리 소자의 제조 동안 존재한 상태들 및 이용된 공정들의 지식에 기초하여, 및/또는 장치에 대한 하나 이상의 검사들의 실행을 통하여 결정하는 것을 포함할 수 있다.
공급자 또는 또 다른 당사자는 행 해머 임계값을 메모리 소자 구성 레지스터 내에 프로그래밍할 수 있다 406. 임계값은 반드시 메모리 소자 자체 상에 배치할 필요는 없다. 일 실시예에서, 메모리 소자는 다른 메모리 소자들을 가진 모듈 상에 배치된다 408. 메모리 모듈에 사용될 때, 상이한 메모리 소자들은 상이한 시간들에서 모듈 상에 배치될 수 있다. 유사하게, 상이한 메모리 모듈들은 호스트 컴퓨터 시스템의 메모리 버스상에서 별개의 시간들에서 배치될 수 있다. 어느 경우든, 메모리 소자들 중의 및/또는 메모리 모듈들 중의 임계값의 미스매칭이 있을 수 있다. 일 실시예에서, 행 해머 상태들은 이들 자신의 임계값 정보에 기초하여 장치마다의 기준으로 모니터링된다. 일 실시예에서, 상이한 메모리 모듈들은 상이한 임계값들에 기초하여 모니터링된다. 일 실시예에서, 시스템에서의 모든 메모리 소자들은 단일 임계값에 따라서 모니터링되고, 이 임계값은 이후 전형적으로 메모리 서브시스템에서의 임의의 장치의 최하위 임계값인 것으로 설정된다.
그러므로, 메모리 공급자 또는 메모리 모듈 공급자는 메모리 모듈에서의 소자들에 기초하여 메모리 모듈 행 해머 임계값을 프로그래밍할 수 있다 410. 일 실시예에서, 호스트 시스템은 (예를 들어, 메모리 컨트롤러 또는 기타 로직을 통해) 메모리 모듈 행 해머 임계값을 검출하고 프로그래밍한다. 일 실시예에서, 메모리 모듈은 그 행 해머 임계값을 자체 발견한다.
메모리 소자 및/또는 메모리 모듈을 가진 능동 시스템에서, 검출 로직은 메모리 소자와 연관되는 또는 이것에 적용 가능한 행 해머 임계값에 의해 정의되는 대로의 행 해머 상태에 대해 메모리 소자를 모니터링한다 412. 임계값은, 이 값이 메모리 소자 자체 상에, 또는 이 소자가 그 부분이 되는 메모리 모듈 상에 저장되어 있다면, 메모리 소자와 연관되거나 이것에 적용 가능하고, 또는 그렇지 않은 경우에는 메모리 소자를 모니터링하기 위한 검출 로직에 의해 획득되고 이용된다. 그러므로, 검출 로직은 메모리 소자에 대한 임계값을 획득하고 414, 메모리 소자의 행(들)에 대한 액세스의 횟수가 임계값을 초과하는지 여부를 결정한다 416.
임계값이 초과되면, 아니오 분기에서 418, 검출 로직은 계속해서 행 해머 상태에 대하여 모니터링한다 412. 임계값이 초과되면, 예 분기에서 418, 검출 로직은 메모리 소자의 표적화된 리프레시를 하게 하기 위한 트리거링을 발생한다 420. 트리거링은 본 명세서에서 기술되는 임의의 실시예에 따라서 있을 수 있다.
도 5는 메모리 소자의 행 해머 상태를 모니터링하기 위한 절차의 실시예의 흐름도이다. 메모리 소자 및 분포된 검출 로직은 메모리의 한 행에 대한 액세스들이 희생 행에서의 손상의 공산을 허용 가능 레벨로서 구성되는 것을 넘어서도록 증가시킨 때를 표시할 행 해머 상태들에 대하여 모니터링하기 위해 임의의 메커니즘을 이용할 수 있다. 몇몇 메커니즘들은 모든 행들에 대한 카운트를 유지하는 대신에, 모든 행들의 서브세트에 대해서만 카운트를 유지하는 것을 포함할 수 있다. 몇몇 메커니즘들은 테이블을 유지하는데, 이 테이블은 액세스들의 정렬된 테이블을 포함할 수 있다. 몇몇 메커니즘들은 계산된 최대 희생 카운트(MVC)에 기초할 수 있다. 한 구현은 다음과 같이 기술된다.
관리자는 행 해머 모니터링 시간 윈도우 또는 타임프레임, 및 행 해머 상태를 표시하는 액세스들의 임계값을 가진 메모리 서브시스템을 구성할 수 있다 502. 관리자는 타임프레임 및 임계값들을 표시하는 입력들을 수신하기 위한 시스템을 사전 구성할 수 있다. 일 실시예에서, 구성은 메모리 서브시스템을 위한 펌웨어에 구성 또는 레지스터 값들을 설정하는 것의 일부이다. 시스템은 타임프레임을 위한 모니터링, 액세스들의 임계값에 대한 모니터링을 수행하도록 구성되는 검출기 또는 검출 로직을 포함한다. 덧붙여, 본 명세서에서 기술된 바와 같이, 특정 임계값은 메모리 소자 또는 메모리 소자들의 그룹(예를 들어, 모듈)에 대해 획득된다.
그러므로, 타임프레임 및 액세스의 횟수는 시스템에 정의된다. 일 실시예에서, 타임프레임은 64 밀리초이다. 임계값을 구성하는 액세스의 횟수는, 메모리의 사이즈와 메모리의 밀도(예를 들어, 최소 공정 피처 사이즈)를 포함하여, 메모리 컨트롤러가 연결되는 메모리 소자의 아키텍처에 의존한다. 행 해머 이벤트를 표시하는 액세스의 횟수는 시간 윈도우 동안 150K 내지 550K 액세스의 범위의 어딘가에 있을 수 있다. 그와 같은 정보는 메모리 소자 및/또는 메모리 모듈의 메모리 로케이션(예를 들어, 레지스터)에 저장된다.
메모리 컨트롤러 또는 검출기는 시스템에서 가능한 희생 행들의 최대 개수를 계산할 수 있다 504. 아래에 기술되는 동작들은 구현에 좌우되어 검출기 또는 메모리 컨트롤러에 의해 실행되는 것으로 간주될 수 있다. 기술의 단순성을 위해, 하기 기술은 검출기에 의한 동작을 참조하지만, 검출기, 또는 메모리 컨트롤러, 또는 둘 모두에 의해 실행될 수 있는 것으로서 이해될 것이거나, 또는 검출기가 메모리 컨트롤러의 일부일 수 있다고 이해될 것이다. 관리자는 대안적으로 희생 행들의 최대 개수를 계산할 수 있다. 이 계산은 타임프레임에서 임계값 횟수만큼 액세스될 수 있었던 행들의 최대 개수가 어떻게 되는지를 결정하는 것에 기초한다. 하나의 단순한 예로서, 임계값을 정의하는 액세스의 횟수가 250 K이고 타임프레임이 64ms인 시스템을 고려하자. 각각의 액세스가 10ns의 크기 정도의 어떤 값에서 발생하면, 희생 행들의 최대 개수는 26 (64ms/(250K*10ns)=25.6)으로 근사된다. 희생들의 최대 개수는 MVC(최대 희생 카운트)로서 지칭될 수 있다. 이런 크기 정도의 개수는 각각의 행을 개별적으로 모니터링하는 단순한 경우보다 더 작다는 것을 관찰할 수 있다.
일 실시예에서, 검출기는 MVC 값에 기초하여 엔트리들의 배열을 구축한다 506. 배열은 테이블 또는 로그 또는 기타 구조일 수 있다. 일 실시예에서, 엔트리들의 수는 적어도 MVC+1이다. 엔트리들의 수는 MVC의 어떤 배수일 수 있다. 일 실시예에서, 테이블 또는 로그의 각각의 엔트리는 CAM(content addressable memory)에 의해 액세스 가능한 행 어드레스 및 액세스 카운트 값을 포함한다. CAM은 어드레스들의 비교에 기초한 액세스를 허용하는 것을 이해할 것이다. 기타 정보가 또한 엔트리들에 포함될 수 있다.
일 실시예에서, 검출기는 타임프레임의 시작에서 배열을 초기화한다 508. 초기화는 많은 상이한 동작들을 포함할 수 있다. 일 실시예에서, 타임프레임의 시작시에, 검출기는 배열의 각각의 엔트리를 비 무효에 초기화한다(예를 들어, 플래그를 설정하거나 엔트리에 값을 입력하거나, 또는 유효 엔트리들의 비트맵을 배열로부터 별개로 둠으로써). 일 실시예에서, 검출기는 각각의 엔트리의 카운트 값을 제로로 리셋한다.
일 실시예에서, 검출기는 (예로, CAM을 이용하여) 활성화 명령의 어드레스 필드들에서 행을 식별하는 활성화에 의해 각각의 행을 모니터링할 수 있다 510. 일 실시예에서, 검출기는 카운터 값들의 순서로 (예를 들어, 최상위에서 최하위로 또는 최하위에서 최상위로) 배열을 소팅한다. 배열의 소팅은 소팅, 연결 리스트, 또는 기타 메커니즘에 의해 성취될 수 있다.
검출기에 의해 검출되는 행의 모든 새로운 활성화마다에 대해 512, 검출기는 행이 배열에 이미 있는지를 결정할 수 있다 514. 행이 배열에 있다면, 예 분기 514, 검출기는 해당 엔트리에 대한 카운트를 증분한다 516. 엔트리가 또한 유효한 것이기를 요구하는 추가적 요구가 있을 수 있다(그러므로, 행이 배열에 있으면 증분하고, 엔트리는 유효함). 행이 배열에 이미 있지 않은(아니오 분기 514) 상황을 다루는 많은 방식들이 있을 수 있다. 일 실시예에서, 검출기는 배열에 이용할 수 있는 무효 엔트리들 또는 빈 엔트리들이 있는지를 결정한다, 518.
배열에 이용 가능한 엔트리가 있다면, 예 분기 518, 검출기는 활성화가 그에 대해 검출된 행과 연관되는 정보로 그 엔트리를 채운다 520. 특정한 구현에 대해 필요한 대로, 검출기는 또한 엔트리를 유효한 것으로서 마킹할 수 있다. 검출기는 이후 엔트리에 대한 카운트를 증분한다 516.
배열에서 이용가능한 엔트리가 없다면, 아니오 분기 518, 검출기는 활성화가 그에 대해 검출된 행의 행 어드레스로 최하위 액세스 카운트 값을 갖는 엔트리를 대체할 수 있다 522. 일 실시예에서, 엔트리에서의 액세스 카운트는 특정적으로 리셋되거나 제로로 되지 않는다. 그보다는, 엔트리에 대한 어드레스 정보는 방금 활성화된 행에 대해 대체된다. 메모리에서의 소정 행들이 반복적으로 액세스될 수 있지만, 반복된 액세스가 또 다른 엔트리로의 액세스에 따라 방황할 수 있다(dither back and forth)는 것이 이해될 것이다. 그러므로, 액세스 카운트를 유지하고 이것을 증분시킴으로써, 이것은 거의 확실히 행에 대한 액세스 횟수보다 크지만, 이것은 결코 액세스의 실제 횟수보다 하락하지 않을 것이다.
그러므로, 검출기는 이전 액세스 카운트 값 또는 행 카운트를 유지하고, 이것을 증분시킨다 516. 증분의 가장 단순한 형태가 한 번에 1씩 행 카운트를 증가시키는 것이지만, 다른 형태의 증분도 이용될 수 있다는 것을 이해할 것이다. 증분 후에 516, 검출기는 행 카운트가 최대 카운트에 있는지, 또는 행이 임계값에 도달했는지를 결정한다 524. 일 실시예에서, 검출기는 이것이 행 활성화를 검출하는 때마다 임계값이 도달되었는지를 보기 위해 체크할 것이지만, 다른 구현들도 가능하다. 특히, 새롭게 부가된 엔트리들에 대해, 카운트를 임계값과 대조하여 체크할 필요는 전혀 없을 수 있다.
구현에 상관없이, 검출기가 행이 임계값에 있는지를 결정할 때, 이것은 행 해머 상태를 해결하기 위해 행에 대한 표적화된 리프레시 명령을 발행할 수 있다. 행이 임계값에 도달하지 않았다면, 아니오 분기 524, 검출기는 모니터링을 유지한다 510. 행이 임계값에 도달하였다면, 예 분기 524, 검출기는 표적화된 리프레시 명령의 트리거링을 위해 메모리 컨트롤러에 행의 어드레스 정보를 표시한다 526. 일 실시예에서, 엔트리가 임계값에 도달할 ‹š, 검출기는 또한 엔트리의 최소 카운트 값을 배열에서의 임의의 엔트리의 최소 카운트 값으로 리셋한다. 다시금, 그러한 작용은 배열이 반복해서 액세스되고 있지만 적어도 초기에는 다른 행들만큼 빈번하게 액세스되지 않고 있는 엔트리에 대한 카운트 정보를 상실하는 것을 방지한다. 검출기는 또한 엔트리의 유효 비트를 클리어링할 수 있다.
본 명세서에서 기술된 동작들이 가장 빈번하게 액세스되는 행들을 "부유시키는(float up)" 경향이 있다는 것을 이해할 것이다. 기술된 것처럼 구현될 때, 그 실제 액세스 카운트가 배열 또는 리스트에서의 임의의 엔트리의 최소 액세스 카운트보다 더 큰 행이 있는 상황이 절대 있어서는 안 된다. 덧붙여, 오 경보들의 위험은 표적화된 리프레시를 하게 하는 행들의 수가 MVC 값을 초과할 수 없다는 사실 때문에 제한된다.
실시예들은 도면들을 특정적으로 참조하여 위에서 기술되었다. 일반적으로, 시스템의 다양한 수정들이 만들어질 수 있다는 것을 이해할 것이다. 일 실시예에서, 행 해머 검출 로직은 메모리 소자 자체 상에 있다. 예를 들어, 메모리 소자는 메모리 소자에 들어오는 명령 및 어드레스 정보를 다루는 검출 로직을 장치에 포함할 수 있다. 예를 들어, C/A(command/address) 레지스터 또는 버퍼 또는 RDIMM(레지스터 DIMM) 또는 LRDIMM(로드 축소 DIMM)상의 기타 필적하는 장치. 일 실시예에서, 시스템은 그러한 C/A 장치 또는 기타 분포된 로직을 통해 분포된 모니터링 또는 분포된 추적을 수행한다. 이 로직은 도 5에 대하여 아래 기술된 것과 같은 메모리의 부분들에 대한 액세스들을 모니터링하고 및/또는 추적하기 위한 임의의 방법, 또는 임의의 기타 방법을 이용할 수 있다.
일 실시예에서, 검출 로직은 메모리 소자의 다중 논리적 부분에 걸쳐서 분포될 수 있다. 그러므로, 모든 검출 로직이 C/A 장치에서 실행될지라도, 이것이 각각의 부분을 개별적으로 하여 상이한 논리적 부분들에 걸쳐서 모니터링할 수 있다면 이것은 본 명세서에서의 목적을 위한 분포된 로직이라고 간주될 수 있다. 메모리 소자에서의 검출 로직은 행 해머 이벤트가 검출될 때 메모리 컨트롤러에 경보한다. 일 실시예에서, 경보는 경보 핀(예를 들어, ALERT#)상의 펄스 폭을 통해 트리거링된다. 일 실시예에서, 메모리 소자는 경보 핀을 설정하는 것을 통해 경보를 트리거링하고, 메모리 컨트롤러가 경보 핀을 리셋하는 것을 기다린다. 메모리 컨트롤러는 어느 경보가 표시되고 있는지를 결정하기 위해 경보에 응답하여 메모리 소자를 또한 폴링할 수 있다. 이런 방식으로, 다중 경보가 동일 경보 핀상에서 발생될 수 있다. 그러므로, 예를 들어, 현행의 DDR DRAM 설계에서, 호스트 또는 메모리 컨트롤러는, 행 해머 이벤트 표시가 핀의 설정으로서, 또는 이것이 핀을 펄스화하고 폴링을 기다리는 경우의 어느 하나로서 표시된다면, C/A 패리티 오류 표시(펄스 폭에 의해 어써팅됨)과 행 해머 이벤트 표시 간에 구분할 수 있다.
일 실시예에서, 메모리 컨트롤러는 메모리 소자가 행 해머 이벤트들을 검출하도록 구성한다. 예를 들어, 메모리 컨트롤러는 액세스들의 어떤 횟수가 레지스터 제어 워드에서 행 해머 이벤트를 트리거링하는 지에 대한 임계값들을 프로그래밍할 수 있다. 일 실시예에서, 메모리 컨트롤러는 메모리 소자가 행 해머 상태를 결정하기 위한 시간 윈도우를 프로그래밍한다. 예를 들어, 몇몇 메모리 서브시스템들에서, 리프레시 윈도우와는 다른 시간 윈도우가 이용될 수 있다. 기타 서브시스템들에서, 리프레시 윈도우는 프로그램 가능할 수 있다. 액세스 횟수의 임계값이 주어진 시간 윈도우 내에 도달된다면, 메모리 소자는 (예로, C/A 레지스터 장치를 통해) 경보 신호를 호스트에 (예를 들어, 메모리 컨트롤러에) 보낸다.
메모리 컨트롤러가 메모리 소자로부터 행 해머 상태의 표시를 수신할 때, 메모리 컨트롤러는 행 해머 상태에 대한 희생 행을 위해 메모리 소자에서 표적화된 리프레시를 트리거링한다. 메모리 컨트롤러가 표적화된 리프레시를 트리거링할 수 있는 많은 대안들이 있다. 일 실시예에서, 메모리 컨트롤러는 행 해머 리프레시 명령을 메모리 소자에 발행하고, 행 해머 상태를 트리거링한 어드레스를 표시한다. 메모리 컨트롤러는 (예를 들어, 제어 워드를 판독하는 것을 통해) 메모리 소자에서 C/A 장치로부터 어드레스를 획득할 수 있다. 메모리 컨트롤러는 행 해머 상태를 야기한 행의 정확한 어드레스를 특정할 수 있고 메모리 소자가 어느 행(들)이 희생(들)(또는 물리적으로 인접)인지를 결정하도록 허용할 수 있다. 대안적으로, 메모리 컨트롤러가 특정 희생 행 어드레스를 결정할 수도 있다. 메모리 컨트롤러는 행 해머 상태를 트리거링한 행의 정확한 로케이션 대신에 메모리의 영역을 식별하는 어드레스를 보낼 수 있다.
일 실시예에서, 메모리 컨트롤러는 메모리 소자가 행 해머 명령을 발생하게 하기 위해 트리거링을 발행한다. 예를 들어, 메모리 컨트롤러는 C/A 장치에서의 제어 비트에 기입할 수 있고, 이것은 다음 차례로 행 해머 리프레시 명령을 발생할 수 있다. 그러한 트리거링은 메모리 컨트롤러 측에 대해서는 더 적은 처리를 요구하지만, 메모리 소자에 의한 더 많은 처리를 요구할 것이다. 그러나, 메모리 소자가 행 해머 이벤트를 검출했다면, 메모리 소자는 행 해머 이벤트를 야기한 행의 어드레스를 가지고 있음에 틀림 없고, 그래서 메모리 소자와 메모리 컨트롤러 사이에서 왔다갔다하면서 어드레스를 교환할 필요 없이 명령을 발행할 것이다. 대안 실시예에서, 메모리 컨트롤러는 어드레스 정보를 포함하지 않고서 행 해머 리프레시 명령(표적화된 리프레시 명령으로 더 지칭됨)을 발행한다. 메모리 소자는 (예를 들어, C/A 장치를 통해) 어드레스 정보를 제공하고 또한 표적화된 리프레시를 실행할 메모리 리소스들에 명령을 포워딩할 수 있다.
C/A 장치에 대한 참조는 비제한적인 것을 이해할 것이다. 분포된 행 해머 이벤트 관리는 RDIMM 서브시스템의 C/A 레지스터, LRDIMM 서브시스템의 C/A 레지스터, BoB(buffer-on-boards) 구현의 버퍼, 3DS(3차원 적층) 구성에서의 로직 버퍼 장치, 또는 명령 및 어드레스 정보를 다룰 수 있는 몇몇 기타 장치에서 구현될 수 있다.
전술한 바와 같이, 메모리 컨트롤러는 어드레스 정보를 포함하거나 포함하지 않는 표적화된 리프레시 트리거링을 보낼 수 있다. 어드레스 정보는 어느 행이 해머링 상태에 들어가는 지를 표시할 수 있고 따라서 직접적으로 희생 행(또는 표적화된 리프레시 명령의 표적)을 표시해야 하는 것은 아니다. 전형적인 리프레시 시나리오에서, 메모리 소자 자체가 어떤 것이 언제 리프레시될 필요가 있는지를 추적한다. 따라서, 메모리 소자 자체는 메모리 소자에 의해 사용되는 메모리 레이아웃에 기초하여 어떤 희생 행 또는 행들이 행 해머 이벤트에 의해 영향을 받을 것인지를 계산할 수 있다. 메모리 소자는 행을 개방하고 이어서 리프레시할 행(들)을 폐쇄함으로써 희생 행(들)을 리프레시한다.
메모리 소자로 하여금 해머링된 행의 희생 행(들)을 리프레시하게 하기 위해 메모리 컨트롤러가 해머링된 행의 어드레스를 표시하는 것은 특정 어드레스를 식별하기 위한 소정 수의 비트를 필요로 한다는 것이 이해될 것이다. 일 실시예에서, 메모리 컨트롤러는 특정 어드레스를 식별한다. 또 다른 실시예에서, 메모리 컨트롤러는 특정 행보다 더 큰 지역을 식별한다. 따라서, 메모리 컨트롤러는, 선택된 구성에 좌우되어 특정 블록, 특정 행, 또는 지역을 식별할 수 있다. 매우 특정적인 어드레스를 식별하는 대가는 필요한 수의 비트가 된다. 보다 일반적으로 어드레스를 식별하는 대가는, 메모리 소자가 더 큰 지역을 리프레시할 필요가 있어서 메모리 소자가 더 긴 리프레시 시간 동안 이용 가능하지 않게 된다는 것이다.
일 실시예에서, 메모리 컨트롤러는 어드레스 정보를 메모리 소자에 보냄으로써 어드레스 정보를 표시한다. 일 실시예에서, 어드레스 정보를 식별하기 위해 기존 명령에 어드레스 정보를 삽입하기 위한 하나 이상의 부가적 핀들 또는 라인들이 메모리 컨트롤러와 메모리 소자 사이에 추가될 수 있다. 따라서, 표적화된 리프레시 명령은 수정된 기존 명령 및/또는 하나 이상의 부가적 핀들 또는 라인들의 사용과 연계된 수정된 기존 명령일 수 있다. 일 실시예에서, 표적화된 리프레시 명령은 명령 및 어드레스를 여러 번(예컨대, 세번) 보내는 것을 포함한다. 일 실시예에서, 어드레스는 연속적 명령들(예컨대, 어드레스+1 및 이후 어드레스-1을 2개의 연속적인 명령으로 보냄)에서 수정될 수 있다. 기타 실시예들도 가능하다. 일 실시예에서, 메모리 컨트롤러는 표적화된 리프레시 명령을 보내고, 메모리 소자는 이 명령을 활성화 명령 및 프리차지 명령의 하나 이상의 그룹들로 분할한다. 기타 명령들은 표적화된 리프레시 목적을 위해 배가될 수 있다.
64 ms 윈도우(예컨대, 리프레시 윈도우) 내에서 행이 액세스될 수 있는 이론적 최대 횟수는 현행의 DRAM(dynamic random access memory)에 대해 135만회(64 ms 리프레시 윈도우를 47 ns 액세스 시간으로 나눔)이다. 희생 행들에서의 데이터 손상 위험이 없는 실제적 최대값은 훨씬 더 낮고, 사용되는 공정 기술에 의존한다. 그렇지만, 행 해머 이벤트를 검출하고 표적화된 리프레시 명령을 보냄으로써, 특정 메모리 행에의 액세스를 제한하지 않고서 데이터 손상 위험이 감소될 수 있다.
메모리 소자에서, 물리적으로 인접한 행들이 종종 제조자마다 논리적으로 상이하게 표식될 수 있다. 전형적으로, 제조자는 논리적으로 인접한 메모리 행들을 물리적 어드레스 오프셋에 의해 매핑하고, 이 오프셋들은 상이한 제조자들 간에 상이할 수 있다. 메모리 소자 자체는 액세스 요청들을 물리적 메모리 리소스들에 매핑하는 방법을 결정하도록 구성된다. 메모리 컨트롤러들은 일반적으로 많은 상이한 유형들의 메모리 소자들과 호환되도록 설계되고, 따라서 이들은 일반적으로 임의의 특정 제조자의 장치에 대하여 특정적으로 설계되지는 않는다. 따라서, 메모리 컨트롤러들은 전통적으로 어떤 행들이 물리적으로 인접해 있는 지를 표시하는 로직 또는 정보를 갖지 않는다. 분포된 검출 로직에 의해, 메모리 소자들 스스로가 해머링된 행들 및 희생 행(들)을 식별하는 것과 관계된 동작들뿐만 아니라 표적화된 리프레시 명령을 발생하는 것과 관계된 하나 이상의 동작들 중 몇몇을 맡을 수 있다.
도 6은 표적화된 리프레시 명령을 지원하는 명령 진리표의 일 실시예이다. 명령 진리표(600)는 메모리 소자에 대한 진리표의 하나의 예를 나타낸다. 표(600)에 따르면, 표적화된 리프레시 트리거링을 보내는 일 실시예는 메모리 컨트롤러가 표적화된 리프레시 명령(명령(630)으로 식별되는 행 해머 명령)을 발행하는 것이다. 대안 실시예에서, 다양한 메커니즘이 표적화된 리프레시를 수행하도록 메모리 소자를 트리거링하는데 사용된다. 좌측의 열은 지원되는 기능들을 확인한다. 우측의 열들은 확인된 기능들을 특정하는 상이한 신호들의 값을 확인한다.
여기 논의의 목적상 표(600)에서 특히 유의할 점은 Row Hammer(행 해머) 명령인 명령(630)이다. 일 실시예에서, C/A 버스상에서 명령(630)을 메모리 소자에 설정하기 전에, 메모리 컨트롤러는 MR(Mode Register) 비트 또는 비트들을 통해 메모리 소자를 '행 해머 모드'에 둔다. 일 실시예에서, 메모리 컨트롤러는 행 어드레스를 뱅크 그룹 및 뱅크 어드레스와 함께 메모리 소자에 제공한다. 메모리 소자는 그 어드레스에 인접한 물리적 행에 제공되는 어드레스를 이용하여 표적화된 리프레시를 수행한다. 리프레시 명령이 일어나는 기간을 허용한 후에, 메모리 컨트롤러는 이후 MR 비트(들)를 리셋시킴으로써 '행 해머 모드'로부터 메모리 소자를 이동시킬 수 있다. 그러므로, MR 비트가 메모리 컨트롤러에 의해 설정될 때, 메모리 소자는 그렇지 않았더라면 뱅크 활성화 명령으로 이해될 수 있었던 명령(630)을 Row Hammer 명령으로 이해한다.
일 실시예에서, Row Hammer는 신호(610), ACT_n의 값을 제외하고는 Bank Activate(뱅크 활성화)(그 위에 있는 명령)와 동일하다. 따라서, 일 실시예에서, Row Hammer 명령은 이전 메모리 표준에는 없는 핀 또는 신호인 Act_n에 의해 트리거링된다. ACT_n상의 신호는 명령이 Row Hammer인지 또는 Bank Activate인지의 여부를 표시할 수 있다. 이 신호가 액티브 로우(active-low)로 도시되었지만, 대안적으로 액티브 하이(active-high)로서 구성될 수도 있다. 명령들 둘 모두는 행 어드레스 비트들에 의해 표시되는 어드레스를 식별할 수 있다.
(620)으로 표식되는 3개의 열은 RAS, CAS 및 WE 신호들을 포함하는 것으로 관찰된다. 그렇지만, 이들 명령들은 메모리 소자 자체에 의해 내부적으로 제어될 수 있다. 따라서, 이들 신호들을 부가적 어드레스 정보(제각기, 어드레스 비트들 A16, A15, 및 A14)와 다중화함으로써, 행 해머 상태의 표적의 어드레스를 더 특정적으로 식별하기 위해 더 많은 어드레스 정보가 제공되는 것을 가능하게 한다.
ACT가 설정될 때(예컨대, 열(620)), 메모리 소자는 RAS/CAS/WE를 행 어드레스 정보로서 판독한다. ACT가 설정되지 않을 때, 메모리 소자는 RAS/CAS/WE를 전통적 메모리 액세스 인코딩으로서 판독한다. 앞서 언급한 바와 같이, 블록, 특정 행, 또는 어떤 다른 크기의 지역에 대해 어드레스 정보가 식별될 수 있다. 리프레시는 시스템에 대해 원하는 만큼 특정적이거나 광범위할 수 있다.
Activate 명령이 신호 ACT_n의 사용에 의해 배가되는 것으로 도시되었지만, 리프레시 또는 임의의 기타 명령이 사용될 수도 있다. 다른 대안으로서, 표적화된 리프레시를 위해 완전히 새로운 명령이 사용될 수도 있다. 예시된 바와 같이, 표적화된 리프레시 명령은 Activate 명령에 내장되었다고 말할 수 있다. 메모리 소자는 행 해머 명령(630) 내부의 어드레스에 기초하여 희생 행을 식별한다.
도 7은 행 해머 모니터링이 구현될 수 있는 컴퓨팅 시스템의 실시예의 블록도이다. 시스템(700)은, 본 명세서에서 기술된 임의의 실시예에 따른 컴퓨팅 장치를 나타내며, 랩톱 컴퓨터, 데스크톱 컴퓨터, 서버, 게임 또는 엔터테인먼트 제어 시스템, 스캐너, 복사기, 프린터, 또는 기타 전자 장치일 수 있다. 시스템(700)은 프로세서(720)를 포함하고, 이 프로세서는 시스템(700)에 처리, 운영 관리, 및 명령어들의 실행을 제공한다. 프로세서(720)는 임의의 유형의 마이크로프로세서, 중앙 처리 장치(CPU), 처리 코어, 또는 시스템(700)에 대한 처리를 제공하기 위한 기타 처리 하드웨어를 포함할 수 있다. 프로세서(720)는 시스템(700)의 전반적 운영을 제어하며, 또한 하나 이상의 프로그램가능 범용 또는 특수 목적 마이크로프로세서들, DSP들(digital signal processors), 프로그램가능 컨트롤러들, ASIC들(application specific integrated circuits), PLD들(programmable logic devices), 또는 그와 유사한 것들, 또는 이러한 장치들의 조합일 수 있거나 이들을 포함할 수 있다.
메모리 서브시스템(730)은 시스템(700)의 주 메모리를 나타내고, 또한 프로세서(720)에 의해 실행될 코드, 또는 루틴을 실행하는 데 사용될 데이터 값들을 위한 일시적 저장 장치를 제공한다. 메모리 서브시스템(730)은 ROM(read-only memory), 플래시 메모리, 하나 이상의 다양한 RAM(random access memory), 또는 기타 메모리 소자들, 또는 그와 같은 장치들의 조합과 같은 하나 이상의 메모리 소자들을 포함할 수 있다. 메모리 서브시스템(730)은, 무엇보다도, 시스템(700)에서 명령어들의 실행을 위한 소프트웨어 플랫폼을 제공하기 위해 OS(operating system)(736)를 저장하고 호스팅한다. 그에 부가하여, 시스템(700)의 처리 및 로직을 제공하기 위해 기타 명령어들(738)이 메모리 서브시스템(730)에 저장되고 그로부터 실행된다. OS(736) 및 명령어들(738)은 프로세서(720)에 의해 실행된다.
메모리 서브시스템(730)은 메모리 소자(732)를 포함하고, 여기서 메모리 소자는 데이터, 명령어들, 프로그램들, 또는 기타 아이템들을 저장한다. 일 실시예에서, 메모리 서브시스템은, 본 명세서에 기술된 임의의 실시예에 따른 메모리 컨트롤러이고 또한 행 해머 상태에 기초하여 메모리 소자(732)에 표적화된 리프레시 명령을 제공하는 메모리 컨트롤러(734)를 포함한다. 행 해머 상태는 본 명세서에서 기술되는 임의의 실시예에 따라서, 메모리 소자에 대해 저장된 임계값에 기초하여 검출될 수 있다. 표적화된 리프레시 명령은 메모리 소자(732)로 하여금 오프 주기 리프레시 동작(refresh operation off-cycle)인 표적화된 리프레시를 수행하게 하는데, 이는 표적화된 리프레시가 정규적으로 스케줄링된 리프레시들의 주기상에 있지 않고 또한 메모리 소자에 의해 리프레시할 다음 지역으로서 추적되는 지역상에 반드시 있지는 않다는 것을 의미한다. 그보다는, 리프레시되는 지역은 표적화된 리프레시 명령(들)과 연관되는 어드레스에 기초하여 식별되는 희생 행 또는 지역에 기초한다. 메모리 컨트롤러(734)는 본 명세서에서 기술된 임의의 실시예에 따라서 분포된 검출 로직에 의한 검출에 응답하여 메모리(732)에서 표적화된 리프레시를 트리거링할 수 있다.
프로세서(720) 및 메모리 서브시스템(730)은 버스/버스 시스템(710)에 결합된다. 버스(710)는, 적절한 브리지들, 어댑터들, 및/또는 컨트롤러들에 의해 접속되는 임의의 하나 이상의 별개의 물리적 버스들, 통신 라인들/인터페이스들, 및/또는 점 대 점 접속들을 나타내는 개념이다. 그러므로, 버스(710)는 예를 들어 시스템 버스, PCI(Peripheral Component Interconnect) 버스, 하이퍼트랜스포트(HyperTransport) 또는 ISA(industry standard architecture) 버스, SCSI(small computer system interface) 버스, USB(universal serial bus), 또는 IEEE(Institute of Electrical and Electronics Engineers) 표준 1394 버스(흔히 "파이어와이어"라고 지칭됨) 중 하나 이상을 포함할 수 있다. 버스(710)의 버스들은 또한 네트워크 인터페이스(750)의 인터페이스들에 대응할 수 있다.
시스템(700)은 또한 버스(710)에 결합되는 하나 이상의 입력/출력(I/O) 인터페이스(들)(740), 네트워크 인터페이스(750), 하나 이상의 내부 대용량 저장 장치(들)(760), 및 주변 장치 인터페이스(770)를 포함한다. I/O 인터페이스(740)는 사용자가 시스템(700)과 그를 통해 상호 작용하는 하나 이상의 인터페이스 컴포넌트들(예를 들어, 비디오, 오디오, 및/또는 알파뉴메릭 인터페이싱)을 포함할 수 있다. 네트워크 인터페이스(750)는 시스템(700)에 하나 이상의 네트워크들상에서 원격 장치들(예를 들어, 서버들, 기타 컴퓨팅 장치들)과 통신하기 위한 능력을 제공한다. 네트워크 인터페이스(750)는 이더넷 어댑터, 무선 상호 접속 컴포넌트들, USB(universal serial bus), 또는 기타 유선 또는 무선 표준 기반 또는 독점적 인터페이스들을 포함할 수 있다.
저장 장치(760)는 하나 이상의 자성, 고체, 또는 광학적 기반 디스크들, 또는 조합과 같은, 비휘발성 방식으로 대량의 데이터를 저장하기 위한 임의의 종래의 매체일 수 있거나 이를 포함할 수 있다. 저장 장치(760)는 코드 또는 명령어들 및 데이터(762)를 지속적 상태로 보유한다(즉, 값은 시스템(700)에 대한 전력 중단에도 불구하고 유지된다). 저장 장치(760)는, 메모리(730)가 프로세서(720)에 명령어들을 제공하기 위한 실행 또는 동작 메모리이기는 하지만, 총칭적으로 "메모리"인 것으로 간주될 수 있다. 저장 장치(760)가 비휘발성인 반면에, 메모리(730)는 휘발성 메모리를 포함할 수 있다(즉, 데이터의 값 또는 상태는 전력이 시스템(700)에 대해 중단되면 비확정적으로 된다).
주변 장치 인터페이스(770)는 앞에서 구체적으로 언급되지 않은 임의의 하드웨어 인터페이스를 포함할 수 있다. 주변 장치들은 일반적으로 시스템(700)에 종속적으로 접속하는 장치들을 지칭한다. 종속적 접속은, 시스템(700)이 동작이 그 상에서 실행되며 또한 사용자가 그와 상호 작용하는 소프트웨어 및/또는 하드웨어 플랫폼을 제공하는 접속을 말한다.
도 8은 행 해머 모니터링이 구현될 수 있는 모바일 장치의 실시예의 블록도이다. 장치(800)는, 컴퓨팅 태블릿, 모바일 폰 또는 스마트폰, 무선 가능 e-판독기, 또는 기타 모바일 장치와 같은 모바일 컴퓨팅 장치를 나타낸다. 소정 컴포넌트들은 개괄적으로 도시되어 있고 이러한 장치의 모든 컴포넌트들이 장치(800)에 도시되지는 않았다는 것을 잘 알 것이다.
장치(800)는 프로세서(810)를 포함하고, 이 프로세서는 장치(800)의 주요 처리 동작들을 수행한다. 프로세서(810)는, 마이크로프로세서들, 애플리케이션 프로세서들, 마이크로컨트롤러들, 프로그래밍가능 로직 장치들, 또는 기타 처리 수단과 같은 하나 이상의 물리적 장치들을 포함할 수 있다. 일 실시예에서, 프로세서(810)는 프로세서 다이뿐만 아니라 광학적 인터페이스 컴포넌트들을 포함한다. 따라서, 프로세서 다이 및 광학적 컴포넌트들은 동일 패키지 내에 있다. 이러한 프로세서 패키지는 본 명세서에 기술된 임의의 실시예에 따라 광학적 커넥터와 광학적으로 인터페이싱할 수 있다.
프로세서(810)에 의해 수행되는 처리 동작들은 애플리케이션들 및/또는 장치 기능들이 그 상에서 실행되는 운영 플랫폼 또는 운영 체제의 실행을 포함한다. 처리 동작들은 인간 사용자와의 또는 기타 장치들과의 I/O(입력/출력)에 관계된 동작들, 전력 관리에 관계된 동작들, 및/또는 장치(800)를 또 다른 장치에 접속하는 것과 관계된 동작들을 포함한다. 처리 동작들은 또한 오디오 I/O 및/또는 디스플레이 I/O에 관계된 동작들을 포함할 수 있다.
일 실시예에서, 장치(800)는 오디오 기능들을 컴퓨팅 장치에 제공하는 것과 연관되는 하드웨어(예를 들어, 오디오 하드웨어 및 오디오 회로들) 및 소프트웨어(예를 들어, 드라이버들, 코덱들) 컴포넌트들을 나타내는 오디오 서브시스템(820)을 포함한다. 오디오 기능들은 스피커 및/또는 헤드폰 출력뿐만 아니라 마이크 입력을 포함할 수 있다. 그와 같은 기능들을 위한 장치들은 장치(800)에 통합되거나 장치(800)에 접속될 수 있다. 일 실시예에서, 사용자는 프로세서(810)에 의해 수신되고 처리되는 오디오 명령들을 제공함으로써 장치(800)와 상호 작용한다.
디스플레이 서브시스템(830)은, 사용자가 컴퓨팅 장치와 상호 작용하기 위한 시각적 및/또는 촉각적 디스플레이를 제공하는 하드웨어(예를 들어, 디스플레이 장치들) 및 소프트웨어(예를 들어, 드라이버들) 컴포넌트들을 나타낸다. 디스플레이 서브시스템(830)은 사용자에게 디스플레이를 제공하는 데 사용되는 특정 스크린 또는 하드웨어 장치를 포함하는 디스플레이 인터페이스(832)를 포함한다. 일 실시예에서, 디스플레이 인터페이스(832)는 디스플레이에 관계된 적어도 몇몇 처리를 수행하기 위한, 프로세서(810)와 별개인 로직을 포함한다. 일 실시예에서, 디스플레이 서브시스템(830)은 사용자에게 출력 및 입력 둘 모두를 제공하는 터치스크린 장치를 포함한다.
I/O 컨트롤러(840)는 사용자와의 상호 작용에 관계된 하드웨어 장치들 및 소프트웨어 컴포넌트들을 나타낸다. I/O 컨트롤러(840)는 오디오 서브시스템(820) 및/또는 디스플레이 서브시스템(830)의 일부인 하드웨어를 관리하도록 동작할 수 있다. 덧붙여, I/O 컨트롤러(840)는 장치(800)에 접속하는 부가적 장치들에 대한 접속 지점을 예시하는데, 이 지점을 통해 사용자는 시스템과 상호 작용할 수 있다. 예를 들어, 장치(800)에 부착될 수 있는 장치들은 마이크 장치들, 스피커 또는 스테레오 시스템들, 비디오 시스템들 또는 기타 디스플레이 장치, 키보드 또는 키패드 장치들, 또는 카드 판독기들 또는 기타 장치들과 같은 특정 응용들에 의한 사용을 위한 기타 I/O 장치들을 포함할 수 있다.
앞서 언급된 바와 같이, I/O 컨트롤러(840)는 오디오 서브시스템(820) 및/또는 디스플레이 서브시스템(830)과 상호 작용할 수 있다. 예를 들어, 마이크 또는 기타 오디오 장치를 통한 입력은 장치(800)의 하나 이상의 애플리케이션들 또는 기능들에 대한 입력 또는 명령들을 제공할 수 있다. 부가적으로, 오디오 출력은 디스플레이 출력 대신에, 또는 그에 부가하여 제공될 수 있다. 또 다른 예에서, 디스플레이 서브시스템이 터치스크린을 포함한다면, 디스플레이 장치는 I/O 컨트롤러(840)에 의해 적어도 부분적으로 관리될 수 있는 입력 장치로도 기능한다. 또한, I/O 컨트롤러(840)에 의해 관리되는 I/O 기능들을 제공하기 위한 부가적 버튼들 또는 스위치들이 장치(800)상에 존재할 수 있다.
일 실시예에서, I/O 컨트롤러(840)는, 가속계들, 카메라들, 광 센서들 또는 기타 환경 센서들, 자이로스코프들, GPS(global positioning system), 또는 장치(800)에 포함될 수 있는 기타 하드웨어와 같은 장치들을 관리한다. 입력은 직접적인 사용자 상호 작용의 일환일 뿐만 아니라, 시스템의 동작들(예를 들어, 잡음에 대한 필터링, 휘도 검출을 위한 디스플레이들의 조정, 카메라를 위한 플래시 적용, 또는 기타 특징들)에 영향을 주기 위한 시스템에의 환경적 입력을 제공하는 것일 수 있다.
일 실시예에서, 장치(800)는 배터리 전력 사용, 배터리 충전, 및 전력 절감 동작에 관계되는 특징들을 관리하는 전력 관리(850)를 포함한다. 메모리 서브시스템(860)은 장치(800)에 정보를 저장하기 위한 메모리 소자(들)(862)를 포함한다. 메모리 서브시스템(860)은 비휘발성 메모리 소자(메모리 소자에의 전력이 중단된 경우에도 상태가 변하지 않음) 및/또는 휘발성 메모리 소자(메모리 소자에의 전력이 중단된 경우 상태가 불확정적임)를 포함할 수 있다. 메모리(860)는 애플리케이션 데이터, 사용자 데이터, 음악, 사진들, 문서들, 또는 기타 데이터 뿐만 아니라, 시스템(800)의 애플리케이션들과 기능들의 실행과 관계된 시스템 데이터(장기적이든 일시적이든 상관 없음)를 저장할 수 있다.
일 실시예에서, 메모리 서브시스템(860)은 (시스템(800)의 제어의 일부인 것으로도 생각될 수도 있고, 또한 잠재적으로는 프로세서(810)의 일부인 것으로 생각될 수도 있는) 메모리 컨트롤러(864)를 포함한다. 메모리 컨트롤러(864)는 메모리 소자(862)의 특정 메모리 행에서의 행 해머 상태에 기초하여 표적화된 리프레시 명령을 발행한다. 메모리 컨트롤러(864)는 본 명세서에서 기술된 임의의 실시예에 따라서, 메모리 소자에 대해 저장된 임계값에 기초하여 행 해머 상태를 검출할 수 있다. 메모리 컨트롤러(864)는 본 명세서에서 기술된 임의의 실시예에 따라서 분포된 검출 로직에 의해 검출에 응답하여 메모리(832)에서 표적화된 리프레시를 트리거링할 수 있다.
연결부(connectivity)(870)는 장치(800)가 외부 장치들과 통신할 수 있게 하기 위한 하드웨어 장치들(예컨대, 무선 및/또는 유선 커넥터들 및 통신 하드웨어) 및 소프트웨어 컴포넌트들(예컨대, 드라이버들, 프로토콜 스택들)을 포함한다. 이 장치는 기타 컴퓨팅 장치들, 무선 액세스 포인트들 또는 기지국들과 같은 별개의 장치들뿐만 아니라 헤드셋들, 프린터들, 또는 기타 장치들과 같은 주변 장치들일 수 있다.
연결부(870)는 다중의 다양한 유형의 연결부를 포함할 수 있다. 일반화하기 위해, 장치(800)는 셀 방식 연결부(872) 및 무선 연결부(874)를 가지는 것으로 예시되어 있다. 셀 방식 연결부(872)는 일반적으로, GSM(global system for mobile communication) 또는 변형물들 또는 파생물들, CDMA(code division multiple access) 또는 변형물들 또는 파생물들, TDM(time division multiple access) 또는 변형물들 또는 파생물들, LTE(long term evolution - "4G"로서도 또한 지칭됨), 또는 기타 셀 방식 서비스 표준들을 통해 제공되는 것과 같은, 무선 반송파들에 의해 제공되는 셀 방식 네트워크 연결부를 지칭한다. 무선 연결부(874)는 셀 방식이 아닌 무선 연결부를 지칭하며, (블루투스와 같은) PAN들(personal area networks), (WiFi와 같은) LAN들(local area networks), 및/또는 (WiMax와 같은) WAN들(wide area networks), 또는 기타 무선 통신을 포함할 수 있다. 무선 통신은 비 고체 매체(non-solid medium)를 통하는 변조된 전자기 방사의 이용에 의한 데이터 전송을 지칭한다. 유선 통신은 고체 통신 매체를 통해 발생한다.
주변 장치 접속부들(peripheral connections; 880)은 주변 장치 접속들을 이루기 위한 하드웨어 인터페이스들과 커넥터들뿐만 아니라 소프트웨어 컴포넌트들(예를 들어, 드라이버들, 프로토콜 스택들)을 포함한다. 장치(800)가 기타 컴퓨팅 장치들에의 주변 장치("TO" 882)일 뿐만 아니라, 이것에 접속되는 주변 장치들("FROM" 884)을 가질 수 있다는 점이 이해될 것이다. 장치(800)는 흔히 장치(800)상에서 콘텐츠를 관리(예를 들어, 다운로딩 및/또는 업로딩, 변경, 동기화)하는 것과 같은 목적을 위해 기타 컴퓨팅 장치들에 접속하기 위한 "도킹" 커넥터를 가진다. 덧붙여, 도킹 커넥터는, 장치(800)로 하여금 예를 들어 시청각 시스템 또는 기타 시스템에 대한 콘텐츠 출력을 제어하게 허용하는 소정 주변 장치들에 장치(800)가 접속하는 것을 허용할 수 있다.
독점적 도킹 커넥터 또는 기타 독점적 접속 하드웨어에 더하여, 장치(800)는 공통 또는 표준 기반 커넥터들을 통해 주변 장치 접속부들(880)을 구축할 수 있다. 흔한 유형들은 USB(Universal Serial Bus) 커넥터(다수의 상이한 하드웨어 인터페이스 중 임의의 것을 포함할 수 있음), MDP(MiniDisplayPort)를 포함하는 DisplayPort, HDMI(High Definition Multimedia Interface), 파이어와이어, 또는 기타 유형을 포함할 수 있다.
한 양태에서, 메모리 서브시스템은 메모리 셀들의 다중 물리적 행들을 갖는 메모리 소자; 및 메모리 소자에 결합되는 행 해머 검출 로직을 포함하고, 이 검출 로직은 메모리 소자에 대한 구성 정보를 저장하는 레지스터로부터 메모리 소자에 대한 액세스 레이트 임계값을 획득하고 - 이 임계값은 액세스된 행에 물리적으로 인접한 행에 대한 데이터 손상 위험을 야기하는, 시간 윈도우 내에서의 메모리의 특정 행에 대한 액세스 횟수를 식별함 -; 임계값에 기초하여 메모리 소자의 다중 물리적 행들 중 하나에 대한 액세스 횟수가 임계값을 초과하는지 여부를 결정하고; 액세스 횟수가 임계값을 초과하는 것을 검출하는 것에 응답하여, 메모리 소자로 하여금 액세스 횟수가 임계값을 초과한 행에 물리적으로 인접한 희생 행을 표적으로 하는 리프레시를 수행하도록 트리거링하기 위한 것이다.
일 실시예에서, 행 해머 검출 로직은 메모리 소자에 결합되는 메모리 컨트롤러의 검출 로직을 포함한다. 일 실시예에서, 행 해머 검출 로직은 메모리 소자의 분포된 검출 로직을 포함한다. 일 실시예에서, 메모리 소자에 대한 구성 정보를 저장하는 레지스터는 메모리 소자가 일부가 되는 메모리 모듈의 구성 저장 장치를 포함한다. 일 실시예에서, 메모리 소자에 대한 구성 정보를 저장하는 레지스터는 메모리 소자 상의 구성 레지스터를 포함한다. 일 실시예에서, 검출 로직은 임계값을 표시하는 3 비트 코드를 획득하게 된다.
일 실시예에서, 메모리 소자에 대한 임계값은 제1 임계값이고, 메모리 서브시스템에서의 상이한 메모리 소자에 대한 제2 임계값과 다르다. 일 실시예에서, 검출 로직은 각각의 메모리 소자를 그 메모리 소자의 상이한 임계값에 따라서 모니터링한다. 일 실시예에서, 검출 로직은 또한 어느 임계값이 더 낮은지를 결정하게 되고; 더 낮은 임계값에 따라서 메모리 소자들을 모니터링하게 된다.
한 양태에서, 전자 장치는 메모리 셀들의 다중 물리적 행들을 가지는 메모리 소자와 이 메모리 소자에 결합되는 행 해머 검출 로직을 가지는 메모리 서브시스템 - 여기서 이 검출 로직은 메모리 소자에 대한 구성 정보를 저장하는 레지스터로부터 메모리 소자에 대한 액세스 레이트 임계값을 획득하고 - 이 임계값은 액세스된 행에 물리적으로 인접한 행에 대한 데이터 손상 위험을 야기하는, 시간 윈도우 내에서의 메모리의 특정 행에 대한 액세스 횟수를 식별함 -; 임계값에 기초하여 메모리 소자의 다중 물리적 행들 중 하나에 대한 액세스 횟수가 임계값을 초과하는지 여부를 결정하고; 액세스 횟수가 임계값을 초과하는 것을 검출하는 것에 응답하여, 메모리 소자로 하여금 액세스 횟수가 임계값을 초과한 행에 물리적으로 인접한 희생 행을 표적으로 하는 리프레시를 수행하도록 트리거링하기 위한 것임 - ; 및 메모리 소자로부터 액세스되는 데이터에 기초하여 사용자 디스플레이를 제공하도록 구성되는 터치스크린 디스플레이 장치를 포함한다.
일 실시예에서, 메모리 소자에 대한 구성 정보를 저장하는 레지스터는 메모리 소자가 일부가 되는 메모리 모듈의 구성 저장 장치를 포함한다. 일 실시예에서, 메모리 소자에 대한 구성 정보를 저장하는 레지스터는 메모리 소자 상의 구성 레지스터를 포함한다. 일 실시예에서, 메모리 소자에 대한 임계값은 제1 임계값이고, 메모리 서브시스템에서의 상이한 메모리 소자에 대한 제2 임계값과 다르다. 일 실시예에서, 검출 로직은 각각의 메모리 소자를 그 메모리 소자의 상이한 임계값에 따라서 모니터링한다. 일 실시예에서, 검출 로직은 또한 어느 임계값이 더 낮은지를 결정하게 되고; 더 낮은 임계값에 따라서 메모리 소자들을 모니터링하게 된다. 일 실시예에서, 검출 로직은 임계값을 표시하는 코드를 저장하는 구성 레지스터의 필드를 획득하게 된다.
한 양태에서, 방법은 메모리 소자에 대한 구성 정보를 저장하는 레지스터로부터 메모리 소자에 대한 액세스 레이트 임계값을 획득하는 단계 - 이 임계값은 액세스된 행에 물리적으로 인접한 행에 대한 데이터 손상 위험을 야기하는, 시간 윈도우 내에서의 메모리의 특정 행에 대한 액세스 횟수를 식별함 -; 임계값에 기초하여 메모리 소자의 다중 물리적 행들 중 하나에 대한 액세스 횟수가 임계값을 초과하는지 여부를 결정하는 단계; 및 액세스 횟수가 임계값을 초과하는 것을 검출하는 것에 응답하여, 메모리 소자로 하여금 액세스 횟수가 임계값을 초과한 행에 물리적으로 인접한 희생 행을 표적으로 하는 리프레시를 수행하게 하기 위한 트리거링을 발생하는 단계를 포함한다.
일 실시예에서, 트리거링을 발생하는 단계는 메모리 컨트롤러로 하여금 표적화된 리프레시 명령을 메모리 소자에 발행하게 하기 위해 메모리 소자에서의 분포된 검출 로직으로부터 메모리 컨트롤러에 경보를 보내는 단계를 포함한다. 일 실시예에서, 액세스 횟수가 임계값을 초과하는지 여부를 결정하는 단계는 또한 다음을 포함한다: 시간 윈도우동안 메모리 소자의 행들에 대한 액세스를 모니터링하는 단계; 행들 중 임의의 행에 대한 액세스 횟수가 임계값을 초과하는지 여부를 결정하는 단계; 및 시간 윈도우 내에서 액세스 횟수를 초과하는 것으로 결정되는 행에 대한 어드레스 정보를 표시하는 단계. 일 실시예에서, 메모리 소자에 대한 임계값은 메모리 소자와 메모리 서브시스템을 공유하는 상이한 메모리 소자에 대한 제2 임계값과 상이한 제1 임계값이고, 임계값에 기초하여 결정하는 것은: 제1 임계값 또는 제2 임계값 중 더 낮은 것을 결정하고; 결정된 더 낮은 임계값에 기초하여 메모리 소자들 양자 모두를 모니터링하는 것을 포함한다.
본 명세서에 예시된 것과 같은 흐름도들은 다양한 처리 작용들의 시퀀스들의 예들을 제공한다. 특정 시퀀스 또는 순서로 도시되어 있지만, 달리 특정되지 않는다면, 작용들의 순서는 변경될 수 있다. 따라서, 예시된 실시예들은 오직 예로서만 이해되어야 하며, 처리는 상이한 순서로 수행될 수 있으며, 일부 작용들은 병렬로 수행될 수 있다. 부가적으로, 하나 이상의 작용들이 다양한 실시예들에서 생략될 수 있으며; 따라서 모든 작용들이 모든 실시예마다 요구되는 것은 아니다. 기타 처리 흐름들이 가능하다.
다양한 동작들 또는 기능들이 본 명세서에서 기술되는 정도에서, 이들은 소프트웨어 코드, 명령어들, 구성, 및/또는 데이터로서 기술되거나 정의될 수 있다. 그 내용은 직접 실행 가능한("객체" 또는 "실행 가능" 형태) 소스 코드, 또는 디퍼런스 코드(difference code)("델타" 또는 "패치" 코드)일 수 있다. 본 명세서에 설명된 실시예들의 소프트웨어 내용은 그 내용이 그 상에 저장되는 제조물을 통해, 또는 통신 인터페이스를 통해 데이터를 송신하기 위해 통신 인터페이스를 작동시키는 방법을 통해 제공될 수 있다. 기계 판독가능 저장 매체는 기계로 하여금 설명된 기능들 또는 동작들을 수행하게 할 수 있고, 또한 기록 가능한/기록 가능하지 않은 매체(예를 들면, ROM(read only memory), RAM(random access memory), 자기 디스크 저장 매체, 광학적 저장 매체, 플래시 메모리 소자 등)와 같은, 기계(예를 들면, 컴퓨팅 장치, 전자적 시스템 등)에 의해 액세스 가능한 형태로 정보를 저장하는 임의의 메커니즘을 포함한다. 통신 인터페이스는 메모리 버스 인터페이스, 프로세서 버스 인터페이스, 인터넷 연결, 디스크 컨트롤러, 기타 등등과 같은, 또 다른 장치와 통신하기 위한 고정 배선, 무선, 광학적, 기타 등등의 매체 중 임의의 것에 인터페이싱하는 임의의 메커니즘을 포함한다. 통신 인터페이스는 소프트웨어 내용을 기술하는 데이터 신호를 제공하도록 통신 인터페이스를 준비하기 위해 신호들을 송신하고 및/또는 구성 파라미터들을 제공함으로써 구성될 수 있다. 통신 인터페이스는 통신 인터페이스에 보내지는 하나 이상의 명령들 또는 신호들을 통해 액세스될 수 있다.
본 명세서에서 기술된 다양한 컴포넌트들은 기술된 동작들 또는 기능들을 수행하기 위한 수단일 수 있다. 본 명세서에서 기술된 각각의 컴포넌트는 소프트웨어, 하드웨어 또는 이것들의 조합을 포함한다. 그 컴포넌트들은 소프트웨어 모듈, 하드웨어 모듈, 특수 목적 하드웨어(예를 들면, 애플리케이션 특정적 하드웨어, ASIC(application specific integrated circuit), DSP(digital signal processor) 등), 내장된 컨트롤러, 고정 배선 회로, 기타 등등으로서 구현될 수 있다.
본 명세서에서 설명된 것 외에도, 본 발명의 범위를 벗어남이 없이 개시된 본 발명의 실시예들 및 구현들에 대한 다양한 수정들이 이뤄질 수 있다. 그러므로, 본 명세서에서의 예시들 및 예들은 제한적이 아닌 예시적인 의미로 해석해야 한다. 본 발명의 범위는 오로지 뒤따라오는 청구항들을 참조하여 평가되어야 한다.

Claims (42)

  1. 메모리 서브시스템으로서:
    메모리 셀들의 다중 물리적 행들을 갖는 메모리 소자; 및
    상기 메모리 소자에 결합되는 검출 로직
    을 포함하고,
    상기 검출 로직은,
    상기 메모리 소자에 대한 구성 정보를 저장하는 레지스터로부터 상기 메모리 소자에 대한 액세스 레이트 임계값을 획득하고 - 상기 임계값은 액세스된 행에 물리적으로 인접한 행에 대한 데이터 손상 위험을 야기하는, 시간 윈도우 내에서의 메모리의 특정 행에 대한 액세스 횟수를 식별함 -;
    상기 임계값에 기초하여 상기 메모리 소자의 다중 물리적 행들 중 하나에 대한 액세스 횟수가 상기 임계값을 초과하는지 여부를 결정하고;
    상기 액세스 횟수가 상기 임계값을 초과하는 것을 검출하는 것에 응답하여, 상기 메모리 소자로 하여금 상기 액세스 횟수가 상기 임계값을 초과한 행에 물리적으로 인접한 희생 행을 표적으로 하는 리프레시를 수행하도록 트리거링하기 위한 것인
    메모리 서브시스템.
  2. 제1항에 있어서, 상기 검출 로직은 상기 메모리 소자에 결합되는 메모리 컨트롤러의 검출 로직을 포함하는 메모리 서브시스템.
  3. 제1항에 있어서, 상기 검출 로직은 상기 메모리 소자의 분포된 검출 로직을 포함하는 메모리 서브시스템.
  4. 제1항에 있어서, 상기 메모리 소자에 대한 구성 정보를 저장하는 상기 레지스터는 상기 메모리 소자가 일부가 되는 메모리 모듈의 구성 저장 장치를 포함하는 메모리 서브시스템.
  5. 제1항에 있어서, 상기 메모리 소자에 대한 구성 정보를 저장하는 상기 레지스터는 상기 메모리 소자 상의 구성 레지스터를 포함하는 메모리 서브시스템.
  6. 제1항에 있어서, 상기 검출 로직은 상기 임계값을 표시하는 3 비트 코드를 획득하기 위한 것인 메모리 서브시스템.
  7. 제1항에 있어서, 상기 메모리 소자에 대한 상기 임계값은 제1 임계값이고, 상기 메모리 서브시스템에서의 상이한 메모리 소자에 대한 제2 임계값과 상이한 메모리 서브시스템.
  8. 제7항에 있어서, 상기 검출 로직은 각각의 메모리 소자를 그 메모리 소자의 상이한 임계값에 따라서 모니터링하는 메모리 서브시스템.
  9. 제7항에 있어서, 상기 검출 로직은 또한,
    어느 임계값이 더 낮은지를 결정하고;
    상기 더 낮은 임계값에 따라서 상기 메모리 소자들을 모니터링하기 위한 것인 메모리 서브시스템.
  10. 전자 장치로서:
    메모리 서브시스템 - 상기 메모리 서브시스템은,
    메모리 셀들의 다중 물리적 행들을 갖는 메모리 소자; 및
    상기 메모리 소자에 결합되는 검출 로직을 갖고,
    상기 검출 로직은,
    상기 메모리 소자에 대한 구성 정보를 저장하는 레지스터로부터 상기 메모리 소자에 대한 액세스 레이트 임계값을 획득하고 - 상기 임계값은 액세스된 행에 물리적으로 인접한 행에 대한 데이터 손상 위험을 야기하는, 시간 윈도우 내에서의 메모리의 특정 행에 대한 액세스 횟수를 식별함 -;
    상기 임계값에 기초하여 상기 메모리 소자의 다중 물리적 행들 중 하나에 대한 액세스 횟수가 상기 임계값을 초과하는지 여부를 결정하고;
    상기 액세스 횟수가 상기 임계값을 초과하는 것을 검출하는 것에 응답하여, 상기 메모리 소자로 하여금 상기 액세스 횟수가 상기 임계값을 초과한 행에 물리적으로 인접한 희생 행을 표적으로 하는 리프레시를 수행하도록 트리거링하기 위한 것임 -; 및
    상기 메모리 소자로부터 액세스되는 데이터에 기초하여 사용자 디스플레이를 제공하도록 구성되는 터치스크린 디스플레이 장치
    를 포함하는 전자 장치.
  11. 제10항에 있어서, 상기 메모리 소자에 대한 구성 정보를 저장하는 상기 레지스터는 상기 메모리 소자가 일부가 되는 메모리 모듈의 구성 저장 장치를 포함하는 전자 장치.
  12. 제10항에 있어서, 상기 메모리 소자에 대한 구성 정보를 저장하는 상기 레지스터는 상기 메모리 소자 상의 구성 레지스터를 포함하는 전자 장치.
  13. 제10항에 있어서, 상기 메모리 소자에 대한 상기 임계값은 제1 임계값이고, 상기 메모리 서브시스템에서의 상이한 메모리 소자에 대한 제2 임계값과 상이한 전자 장치.
  14. 제13항에 있어서, 상기 검출 로직은 각각의 메모리 소자를 그 메모리 소자의 상이한 임계값에 따라서 모니터링하는 전자 장치.
  15. 제13항에 있어서, 상기 검출 로직은 또한,
    어느 임계값이 더 낮은지를 결정하고;
    상기 더 낮은 임계값에 따라서 상기 메모리 소자들을 모니터링하기 위한 것인 전자 장치.
  16. 제10항에 있어서, 상기 검출 로직은 상기 임계값을 표시하는 코드를 저장하는 구성 레지스터의 필드를 획득하기 위한 것인 전자 장치.
  17. 방법으로서:
    메모리 소자에 대한 구성 정보를 저장하는 레지스터로부터 상기 메모리 소자에 대한 액세스 레이트 임계값을 획득하는 단계 - 상기 임계값은 액세스된 행에 물리적으로 인접한 행에 대한 데이터 손상 위험을 야기하는, 시간 윈도우 내에서의 메모리의 특정 행에 대한 액세스 횟수를 식별함 -;
    상기 임계값에 기초하여 상기 메모리 소자의 다중 물리적 행들 중 하나에 대한 액세스 횟수가 상기 임계값을 초과하는지 여부를 결정하는 단계; 및
    상기 액세스 횟수가 상기 임계값을 초과하는 것을 검출하는 것에 응답하여, 상기 메모리 소자로 하여금 상기 액세스 횟수가 상기 임계값을 초과한 행에 물리적으로 인접한 희생 행을 표적으로 하는 리프레시를 수행하게 하기 위한 트리거링을 발생하는 단계
    를 포함하는 방법.
  18. 제17항에 있어서, 상기 트리거링을 발생하는 단계는 메모리 컨트롤러로 하여금 표적화된 리프레시 명령을 상기 메모리 소자에 발행하게 하기 위해 상기 메모리 소자에서의 분포된 검출 로직으로부터 상기 메모리 컨트롤러에 경보를 보내는 단계를 포함하는 방법.
  19. 제17항에 있어서, 상기 액세스 횟수가 상기 임계값을 초과하는지 여부를 결정하는 단계는:
    상기 시간 윈도우 동안 상기 메모리 소자의 행들에 대한 액세스를 모니터링하는 단계;
    상기 행들 중 임의의 행에 대한 액세스 횟수가 상기 임계값을 초과하는지 여부를 결정하는 단계; 및
    상기 시간 윈도우 내에서 상기 액세스 횟수를 초과하는 것으로 결정되는 행에 대한 어드레스 정보를 표시하는 단계를 더 포함하는 방법.
  20. 제17항에 있어서, 상기 메모리 소자에 대한 상기 임계값은 상기 메모리 소자와 메모리 서브시스템을 공유하는 상이한 메모리 소자에 대한 제2 임계값과 상이한 제1 임계값이고, 상기 임계값에 기초하여 결정하는 단계는:
    상기 제1 임계값 또는 제2 임계값 중 어느 것이 더 낮은지를 결정하는 단계; 및
    상기 결정된 더 낮은 임계값에 기초하여 메모리 소자들 양자 모두를 모니터링하는 단계를 더 포함하는 방법.
  21. 장치로서,
    기간 내에서의 메모리의 타깃 행에 대한 액세스들의 최대 횟수를 표시하는 값을 획득하는 검출 로직; 및
    상기 메모리로 하여금 상기 기간 내에서의 상기 타깃 행에 대한 액세스 횟수와 상기 값 사이의 비교에 기초하여 상기 타깃 행에 물리적으로 인접한 적어도 하나의 행을 표적으로 하는 리프레시를 수행하게 하는 메모리 컨트롤러
    를 포함하는 장치.
  22. 제21항에 있어서,
    상기 타깃 행에 물리적으로 인접한 적어도 하나의 행은 적어도 하나의 희생 행을 포함하는 장치.
  23. 제21항에 있어서,
    상기 검출 로직 및 상기 메모리 컨트롤러와 통신가능하게 결합되는 메모리를 더 포함하고, 상기 메모리는 메모리 셀들의 다중 물리적 행들을 포함하는 장치.
  24. 제21항에 있어서,
    상기 메모리 컨트롤러는 상기 검출 로직을 포함하는 장치.
  25. 제23항에 있어서,
    상기 메모리는 상기 검출 로직을 포함하는 장치.
  26. 제23항에 있어서,
    상기 메모리에 정보를 저장하는 네트워크 인터페이스; 및
    상기 메모리로부터 액세스되는 데이터에 기초하여 사용자 디스플레이를 제공하도록 구성된 디스플레이 장치
    를 더 포함하는 장치.
  27. 제21항에 있어서,
    상기 메모리에 대한 구성 정보를 저장하는 레지스터를 더 포함하고, 상기 레지스터는 상기 값을 저장하는 장치.
  28. 제21항에 있어서,
    상기 기간 내에서의 상기 타깃 행에 대한 액세스 횟수는 활성화 명령과 연관된 어드레스의 상기 검출 로직에 의한 식별 및 상기 어드레스에 대한 액세스 횟수의 카운트의 유지(maintenance)에 기초하는 장치.
  29. 제21항에 있어서,
    상기 기간 내에서의 상기 타깃 행에 대한 액세스 횟수와 상기 값 사이의 비교는 상기 기간 내에서의 상기 타깃 행에 대한 액세스 횟수가 상기 값에 도달하는지 여부의 결정을 포함하는 장치.
  30. 제21항에 있어서,
    상기 기간 내에서의 상기 타깃 행에 대한 액세스 횟수와 상기 값 사이의 비교는 상기 기간 내에서의 상기 타깃 행에 대한 액세스 횟수가 상기 값을 초과하는지 여부의 결정을 포함하는 장치.
  31. 제21항에 있어서,
    상기 검출 로직은 하나 이상의 프로세서에 의해 실행되는 소프트웨어, 하드웨어, 또는 펌웨어 중 어느 하나 또는 조합을 포함하는 회로 중 하나 이상을 포함하고, 상기 메모리 컨트롤러는 하나 이상의 프로세서에 의해 실행되는 소프트웨어, 하드웨어, 또는 펌웨어 중 어느 하나 또는 조합을 포함하는 장치.
  32. 메모리로서,
    리프레시 명령의 수신에 응답하여 타깃 행에 물리적으로 인접한 적어도 하나의 행을 표적으로 하는 리프레시를 야기하는 로직
    을 포함하고,
    상기 리프레시 명령은 기간 내에서의 상기 타깃 행에 대한 액세스 횟수가 일정 값에 도달하거나 또는 초과하는 조건에 기초하는 메모리.
  33. 제32항에 있어서,
    상기 타깃 행에 물리적으로 인접한 적어도 하나의 행은 적어도 하나의 희생 행을 포함하는 메모리.
  34. 제32항에 있어서,
    상기 메모리는 상기 타깃 행을 포함하는 메모리 셀들의 다중 물리적 행들을 포함하는 메모리.
  35. 제32항에 있어서,
    상기 메모리에 대한 구성 정보를 저장하는 레지스터를 더 포함하고, 상기 레지스터는 상기 값을 저장하고, 상기 값은 상기 기간 내에서의 메모리의 상기 타깃 행에 대한 액세스들의 최대 횟수를 표시하는 메모리.
  36. 제32항에 있어서,
    기간 내에서의 상기 타깃 행에 대한 액세스 횟수가 일정 값에 도달하거나 또는 초과하는 상기 조건은 상기 기간 동안 수신된 활성화 명령들의 개수의 카운트에 기초하는 메모리.
  37. 제32항에 있어서,
    상기 로직은 하나 이상의 프로세서에 의해 실행되는 소프트웨어, 하드웨어, 또는 펌웨어 중 어느 하나 또는 조합을 포함하는 회로 중 하나 이상을 포함하는 메모리.
  38. 방법으로서,
    기간 내에서의 메모리의 타깃 행에 대한 액세스들의 최대 횟수를 표시하는 값을 획득하는 단계; 및
    상기 메모리로 하여금 상기 기간 내에서의 상기 타깃 행에 대한 액세스 횟수와 상기 값 사이의 비교에 기초하여 상기 타깃 행에 물리적으로 인접한 적어도 하나의 행을 표적으로 하는 리프레시를 수행하게 하는 단계
    를 포함하는 방법.
  39. 제38항에 있어서,
    상기 타깃 행에 물리적으로 인접한 적어도 하나의 행은 적어도 하나의 희생 행을 포함하는 방법.
  40. 제38항에 있어서,
    상기 기간 내에서의 상기 타깃 행에 대한 액세스 횟수는 활성화 명령과 연관된 어드레스를 식별하는 단계 및 상기 어드레스에 대한 액세스 횟수의 카운트를 유지하는 단계에 기초하는 방법.
  41. 제38항에 있어서,
    상기 기간 내에서의 상기 타깃 행에 대한 액세스 횟수와 상기 값 사이의 비교는 상기 기간 내에서의 상기 타깃 행에 대한 액세스 횟수가 상기 값에 도달하는지 여부의 결정을 포함하는 방법.
  42. 제38항에 있어서,
    상기 기간 내에서의 상기 타깃 행에 대한 액세스 횟수와 상기 값 사이의 비교는 상기 기간 내에서의 상기 타깃 행에 대한 액세스 횟수가 상기 값을 초과하는지 여부의 결정을 포함하는 방법.
KR1020157009730A 2012-11-30 2013-06-28 저장된 행 해머 임계값에 기초한 행 해머 모니터링 KR101731508B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/690,523 US9032141B2 (en) 2012-11-30 2012-11-30 Row hammer monitoring based on stored row hammer threshold value
US13/690,523 2012-11-30
PCT/US2013/048634 WO2014084917A1 (en) 2012-11-30 2013-06-28 Row hammer monitoring based on stored row hammer threshold value

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020177011068A Division KR20170046819A (ko) 2012-11-30 2013-06-28 저장된 행 해머 임계값에 기초한 행 해머 모니터링

Publications (2)

Publication Number Publication Date
KR20150058366A KR20150058366A (ko) 2015-05-28
KR101731508B1 true KR101731508B1 (ko) 2017-05-11

Family

ID=50826659

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020157009730A KR101731508B1 (ko) 2012-11-30 2013-06-28 저장된 행 해머 임계값에 기초한 행 해머 모니터링
KR1020177011068A KR20170046819A (ko) 2012-11-30 2013-06-28 저장된 행 해머 임계값에 기초한 행 해머 모니터링

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020177011068A KR20170046819A (ko) 2012-11-30 2013-06-28 저장된 행 해머 임계값에 기초한 행 해머 모니터링

Country Status (6)

Country Link
US (1) US9032141B2 (ko)
EP (1) EP2926344B1 (ko)
JP (1) JP5987234B2 (ko)
KR (2) KR101731508B1 (ko)
CN (1) CN104737234B (ko)
WO (1) WO2014084917A1 (ko)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110175140A (zh) * 2018-02-19 2019-08-27 爱思开海力士有限公司 融合式存储器件及其操作方法
US10811077B2 (en) 2018-05-14 2020-10-20 Samsung Electronics Co., Ltd. Refresh control circuit, memory device including the same and method of operating the same for hammer refresh operation
US10860222B2 (en) 2018-05-09 2020-12-08 Samsung Electronics Co., Ltd. Memory devices performing refresh operations with row hammer handling and memory systems including such memory devices
WO2022139057A1 (ko) * 2020-12-21 2022-06-30 서울대학교산학협력단 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치 및 그 방법
US11487661B2 (en) 2017-10-30 2022-11-01 SK Hynix Inc. Converged memory device and operation method thereof
US11544168B2 (en) 2017-10-30 2023-01-03 SK Hynix Inc. Memory system

Families Citing this family (117)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
US9055711B2 (en) * 2012-07-16 2015-06-09 HGST Netherlands B.V. System and method for maintaining data integrity on a storage medium
US9299400B2 (en) 2012-09-28 2016-03-29 Intel Corporation Distributed row hammer tracking
US9032141B2 (en) 2012-11-30 2015-05-12 Intel Corporation Row hammer monitoring based on stored row hammer threshold value
US9384821B2 (en) * 2012-11-30 2016-07-05 Intel Corporation Row hammer monitoring based on stored row hammer threshold value
US9190131B2 (en) * 2012-12-20 2015-11-17 SK Hynix Inc. Memory and memory system including the same
US9324398B2 (en) 2013-02-04 2016-04-26 Micron Technology, Inc. Apparatuses and methods for targeted refreshing of memory
US11474706B2 (en) * 2013-04-30 2022-10-18 Hewlett Packard Enterprise Development Lp Memory access rate
WO2014193412A1 (en) * 2013-05-31 2014-12-04 Hewlett-Packard Development Company, L.P. Memory error determination
US9355689B2 (en) * 2013-08-20 2016-05-31 Oracle International Corporation Detection of multiple accesses to a row address of a dynamic memory within a refresh period
US9047978B2 (en) 2013-08-26 2015-06-02 Micron Technology, Inc. Apparatuses and methods for selective row refreshes
KR20150040477A (ko) * 2013-10-07 2015-04-15 에스케이하이닉스 주식회사 반도체 메모리를 포함하는 전자 장치 및 이의 동작 방법
US9281046B2 (en) * 2013-10-08 2016-03-08 Advanced Micro Devices, Inc. Data processor with memory controller for high reliability operation and method
KR102193993B1 (ko) * 2014-02-21 2020-12-22 삼성전자주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
JP6224483B2 (ja) * 2014-02-26 2017-11-01 Necプラットフォームズ株式会社 半導体記憶装置、メモリアクセス制御方法、およびコンピュータ・プログラム
US9431085B2 (en) 2014-03-28 2016-08-30 Synopsys, Inc. Most activated memory portion handling
JP2015219938A (ja) 2014-05-21 2015-12-07 マイクロン テクノロジー, インク. 半導体装置
CN105448341B (zh) * 2014-08-25 2019-08-09 华邦电子股份有限公司 存储电路及其更新方法
US9431086B2 (en) * 2014-10-06 2016-08-30 Winbond Electronics Corp. Memory circuit and refresh method thereof
WO2016083865A1 (zh) * 2014-11-25 2016-06-02 三星电子株式会社 基于概率信息检测半导体存储器的被最频繁存取的地址的方法
KR20160063726A (ko) * 2014-11-27 2016-06-07 에스케이하이닉스 주식회사 메모리 장치 및 이를 포함하는 메모리 시스템
US9666257B2 (en) 2015-04-24 2017-05-30 Intel Corporation Bitcell state retention
KR20170024307A (ko) 2015-08-25 2017-03-07 삼성전자주식회사 내장형 리프레쉬 콘트롤러 및 이를 포함하는 메모리 장치
US9812185B2 (en) * 2015-10-21 2017-11-07 Invensas Corporation DRAM adjacent row disturb mitigation
KR102373544B1 (ko) * 2015-11-06 2022-03-11 삼성전자주식회사 요청 기반의 리프레쉬를 수행하는 메모리 장치, 메모리 시스템 및 메모리 장치의 동작방법
US9721640B2 (en) * 2015-12-09 2017-08-01 Intel Corporation Performance of additional refresh operations during self-refresh mode
KR102399475B1 (ko) * 2015-12-28 2022-05-18 삼성전자주식회사 리프레쉬 콘트롤러 및 이를 포함하는 메모리 장치
KR102329673B1 (ko) 2016-01-25 2021-11-22 삼성전자주식회사 해머 리프레쉬 동작을 수행하는 메모리 장치 및 이를 포함하는 메모리 시스템
JP2017182854A (ja) 2016-03-31 2017-10-05 マイクロン テクノロジー, インク. 半導体装置
US9741421B1 (en) 2016-04-05 2017-08-22 Micron Technology, Inc. Refresh circuitry
KR102468728B1 (ko) * 2016-08-23 2022-11-21 에스케이하이닉스 주식회사 리프레쉬 제어 회로, 반도체 메모리 장치 및 그의 동작 방법
US10032500B2 (en) * 2016-10-07 2018-07-24 Tc Lab, Inc. Memory disturb recovery scheme for cross-point memory arrays
KR20180046281A (ko) 2016-10-27 2018-05-08 에스케이하이닉스 주식회사 리프레시 제어 장치
KR20180064940A (ko) * 2016-12-06 2018-06-15 삼성전자주식회사 해머 리프레쉬 동작을 수행하는 메모리 시스템
US10490251B2 (en) 2017-01-30 2019-11-26 Micron Technology, Inc. Apparatuses and methods for distributing row hammer refresh events across a memory device
JP7008410B2 (ja) * 2017-02-10 2022-01-25 キヤノン株式会社 メモリコントローラおよび方法
CN106875971B (zh) * 2017-02-16 2021-01-22 上海兆芯集成电路有限公司 动态随机存取存储器控制器及其控制方法
US10768863B2 (en) * 2017-03-31 2020-09-08 Intel Corporation Security monitoring agent for field programmable gate array (FPGA) in-memory controller
KR102298776B1 (ko) * 2017-05-15 2021-09-08 에스케이하이닉스 주식회사 반도체장치
FR3066842B1 (fr) * 2017-05-24 2019-11-08 Upmem Logique de correction de row hammer pour dram avec processeur integre
KR102308778B1 (ko) * 2017-05-24 2021-10-05 삼성전자주식회사 디스터브 로우를 케어하는 메모리 장치 및 그 동작방법
US10672449B2 (en) 2017-10-20 2020-06-02 Micron Technology, Inc. Apparatus and methods for refreshing memory
US10170174B1 (en) 2017-10-27 2019-01-01 Micron Technology, Inc. Apparatus and methods for refreshing memory
KR102406868B1 (ko) 2017-11-23 2022-06-10 삼성전자주식회사 메모리 장치, 메모리 시스템 및 메모리 장치의 동작 방법
JP6576480B2 (ja) * 2018-01-16 2019-09-18 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. メモリデバイス及びそのデータリフレッシュ方法
US10580475B2 (en) 2018-01-22 2020-03-03 Micron Technology, Inc. Apparatuses and methods for calculating row hammer refresh addresses in a semiconductor device
US10388363B1 (en) 2018-01-26 2019-08-20 Micron Technology, Inc. Apparatuses and methods for detecting a row hammer attack with a bandpass filter
KR20190123875A (ko) 2018-04-25 2019-11-04 삼성전자주식회사 반도체 메모리 장치 및 이를 구비하는 메모리 시스템
WO2019222960A1 (en) * 2018-05-24 2019-11-28 Micron Technology, Inc. Apparatuses and methods for pure-time, self adopt sampling for row hammer refresh sampling
US11152050B2 (en) 2018-06-19 2021-10-19 Micron Technology, Inc. Apparatuses and methods for multiple row hammer refresh address sequences
US10573370B2 (en) 2018-07-02 2020-02-25 Micron Technology, Inc. Apparatus and methods for triggering row hammer address sampling
CN112534502B (zh) 2018-08-03 2024-04-09 美光科技公司 用于行锤击缓解的方法及采用所述方法的存储器装置及系统
US11054995B2 (en) * 2018-09-07 2021-07-06 Micron Technology, Inc. Row hammer protection for a memory device
US10572377B1 (en) 2018-09-19 2020-02-25 Micron Technology, Inc. Row hammer refresh for content addressable memory devices
US10497426B1 (en) * 2018-09-21 2019-12-03 Nanya Technology Corporation Target row generator, DRAM, and method for determining a target row
KR102515404B1 (ko) 2018-10-09 2023-03-29 마이크론 테크놀로지, 인크 행 해머를 완화하기 위한 방법 및 이를 이용한 메모리 디바이스 및 시스템
US10685696B2 (en) 2018-10-31 2020-06-16 Micron Technology, Inc. Apparatuses and methods for access based refresh timing
CN113168861B (zh) 2018-12-03 2024-05-14 美光科技公司 执行行锤刷新操作的半导体装置
CN117198356A (zh) 2018-12-21 2023-12-08 美光科技公司 用于目标刷新操作的时序交错的设备和方法
CN113196223A (zh) 2018-12-21 2021-07-30 美光科技公司 用于基于活动的存储器维护操作的方法及采用所述方法的存储器装置及系统
US11256427B2 (en) * 2018-12-28 2022-02-22 Micron Technology, Inc. Unauthorized memory access mitigation
US10817371B2 (en) 2018-12-31 2020-10-27 Micron Technology, Inc. Error correction in row hammer mitigation and target row refresh
KR20200084599A (ko) * 2019-01-03 2020-07-13 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작방법
US10770127B2 (en) 2019-02-06 2020-09-08 Micron Technology, Inc. Apparatuses and methods for managing row access counts
US11043254B2 (en) 2019-03-19 2021-06-22 Micron Technology, Inc. Semiconductor device having cam that stores address signals
US10950288B2 (en) 2019-03-29 2021-03-16 Intel Corporation Refresh command control for host assist of row hammer mitigation
US11227649B2 (en) 2019-04-04 2022-01-18 Micron Technology, Inc. Apparatuses and methods for staggered timing of targeted refresh operations
US11049545B2 (en) 2019-04-23 2021-06-29 Micron Technology, Inc. Methods for adjusting row hammer refresh rates and related memory devices and systems
US11264096B2 (en) 2019-05-14 2022-03-01 Micron Technology, Inc. Apparatuses, systems, and methods for a content addressable memory cell with latch and comparator circuits
US11158364B2 (en) 2019-05-31 2021-10-26 Micron Technology, Inc. Apparatuses and methods for tracking victim rows
US11069393B2 (en) 2019-06-04 2021-07-20 Micron Technology, Inc. Apparatuses and methods for controlling steal rates
JP6761512B1 (ja) * 2019-06-05 2020-09-23 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. メモリデバイス及びそのローハンマーリフレッシュ方法
US11158373B2 (en) 2019-06-11 2021-10-26 Micron Technology, Inc. Apparatuses, systems, and methods for determining extremum numerical values
US11031066B2 (en) 2019-06-24 2021-06-08 Micron Technology, Inc. Methods for adjusting memory device refresh operations based on memory device temperature, and related memory devices and systems
US11139015B2 (en) 2019-07-01 2021-10-05 Micron Technology, Inc. Apparatuses and methods for monitoring word line accesses
US10832792B1 (en) 2019-07-01 2020-11-10 Micron Technology, Inc. Apparatuses and methods for adjusting victim data
US11386946B2 (en) 2019-07-16 2022-07-12 Micron Technology, Inc. Apparatuses and methods for tracking row accesses
JP6831879B2 (ja) * 2019-08-01 2021-02-17 華邦電子股▲ふん▼有限公司Winbond Electronics Corp. メモリ装置とそのリフレッシュ方法
CN110706733A (zh) * 2019-08-13 2020-01-17 浙江工商大学 一种dram内存行扰动错误解决方法
US11354408B2 (en) * 2019-08-15 2022-06-07 Nxp Usa, Inc. Technique for detecting and thwarting row-hammer attacks
US10943636B1 (en) 2019-08-20 2021-03-09 Micron Technology, Inc. Apparatuses and methods for analog row access tracking
US10964378B2 (en) 2019-08-22 2021-03-30 Micron Technology, Inc. Apparatus and method including analog accumulator for determining row access rate and target row address used for refresh operation
US11302374B2 (en) 2019-08-23 2022-04-12 Micron Technology, Inc. Apparatuses and methods for dynamic refresh allocation
US11200942B2 (en) 2019-08-23 2021-12-14 Micron Technology, Inc. Apparatuses and methods for lossy row access counting
US11302377B2 (en) 2019-10-16 2022-04-12 Micron Technology, Inc. Apparatuses and methods for dynamic targeted refresh steals
US11222685B2 (en) * 2020-05-15 2022-01-11 Advanced Micro Devices, Inc. Refresh management for DRAM
CN113689902B (zh) 2020-05-19 2023-09-01 长鑫存储技术有限公司 生成存储器地址数据的方法、计算机可读存储介质及设备
US11309010B2 (en) 2020-08-14 2022-04-19 Micron Technology, Inc. Apparatuses, systems, and methods for memory directed access pause
US11380382B2 (en) 2020-08-19 2022-07-05 Micron Technology, Inc. Refresh logic circuit layout having aggressor detector circuit sampling circuit and row hammer refresh control circuit
US11348631B2 (en) 2020-08-19 2022-05-31 Micron Technology, Inc. Apparatuses, systems, and methods for identifying victim rows in a memory device which cannot be simultaneously refreshed
US11222682B1 (en) 2020-08-31 2022-01-11 Micron Technology, Inc. Apparatuses and methods for providing refresh addresses
KR20220036752A (ko) * 2020-09-16 2022-03-23 삼성전자주식회사 로우 해머 리프레쉬 동작을 수행하는 메모리 장치 및 이의 동작 방법
KR102467747B1 (ko) * 2020-09-18 2022-11-16 한양대학교 에리카산학협력단 행 해머링을 이용한 dram의 성능 분석 방법 및 오류 검출 방법
US11557331B2 (en) 2020-09-23 2023-01-17 Micron Technology, Inc. Apparatuses and methods for controlling refresh operations
US20220129200A1 (en) * 2020-10-26 2022-04-28 Qualcomm Incorporated Dram with quick random row refresh for rowhammer mitigation
US11222686B1 (en) 2020-11-12 2022-01-11 Micron Technology, Inc. Apparatuses and methods for controlling refresh timing
US11462291B2 (en) 2020-11-23 2022-10-04 Micron Technology, Inc. Apparatuses and methods for tracking word line accesses
US11264079B1 (en) 2020-12-18 2022-03-01 Micron Technology, Inc. Apparatuses and methods for row hammer based cache lockdown
US20210109577A1 (en) * 2020-12-22 2021-04-15 Intel Corporation Temperature-based runtime variability in victim address selection for probabilistic schemes for row hammer
US11482275B2 (en) 2021-01-20 2022-10-25 Micron Technology, Inc. Apparatuses and methods for dynamically allocated aggressor detection
KR20220111444A (ko) * 2021-02-02 2022-08-09 삼성전자주식회사 리프레쉬 동작을 수행하는 메모리 장치, 그 동작방법 및 메모리 시스템
KR20220120771A (ko) 2021-02-23 2022-08-31 삼성전자주식회사 메모리 장치 및 그것의 동작 방법
US11468942B2 (en) * 2021-03-02 2022-10-11 Hewlett Packard Enterprise Development Lp System and method for detecting memory cell disturbance by monitoring canary cells
US11600314B2 (en) 2021-03-15 2023-03-07 Micron Technology, Inc. Apparatuses and methods for sketch circuits for refresh binning
US11615829B1 (en) 2021-04-29 2023-03-28 Samsung Electronics Co., Ltd. Memory device performing refresh operation based on a random value and method of operating the same
US11631448B1 (en) 2021-04-29 2023-04-18 Samsung Electronics Co., Ltd. Memory device performing refresh operation and method of operating the same
KR20230021496A (ko) * 2021-08-05 2023-02-14 삼성전자주식회사 로우 해머 제어 방법 및 메모리 장치
US11664063B2 (en) 2021-08-12 2023-05-30 Micron Technology, Inc. Apparatuses and methods for countering memory attacks
EP4138078A1 (en) * 2021-08-18 2023-02-22 ETH Zurich A method for protecting a dram module against rowhammer attacks, and a dram module
KR20230043618A (ko) 2021-09-24 2023-03-31 삼성전자주식회사 로우 해머 제어 방법 및 메모리 장치
KR20230051873A (ko) 2021-10-12 2023-04-19 삼성전자주식회사 해머 리프레시 로우 어드레스 검출기, 이를 포함하는 반도체 메모리 장치 및 메모리 모듈
KR20230071473A (ko) 2021-11-16 2023-05-23 에스케이하이닉스 주식회사 메모리 장치 및 메모리 컨트롤러를 포함하는 메모리 시스템
US11688451B2 (en) 2021-11-29 2023-06-27 Micron Technology, Inc. Apparatuses, systems, and methods for main sketch and slim sketch circuit for row address tracking
US11990173B2 (en) * 2022-06-02 2024-05-21 Micron Technology, Inc. Dynamic row hammering threshold for memory
CN115357952B (zh) * 2022-10-18 2023-02-03 合肥奎芯集成电路设计有限公司 针对动态存储器的行锤攻击防御方法和装置
CN115906087B (zh) * 2023-03-09 2023-07-07 长鑫存储技术有限公司 行锤攻击保护方法与存储器

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002150771A (ja) 2000-09-12 2002-05-24 Internatl Business Mach Corp <Ibm> Dramキャッシュ・メモリ中のデータをリフレッシュする方法および装置
JP2008192266A (ja) * 2007-02-07 2008-08-21 Megachips Lsi Solutions Inc メモリコントローラ
US20120163106A1 (en) 2010-12-28 2012-06-28 Young-Bo Shim Refresh control circuit and method for semiconductor memory device
JP2012164045A (ja) 2011-02-04 2012-08-30 Seiko Epson Corp メモリー制御装置

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5193072A (en) 1990-12-21 1993-03-09 Vlsi Technology, Inc. Hidden refresh of a dynamic random access memory
US5920501A (en) * 1997-12-12 1999-07-06 Micron Technology, Inc. Flash memory system and method for monitoring the disturb effect on memory cell blocks due to high voltage conditions of other memory cell blocks
KR100810060B1 (ko) 2006-04-14 2008-03-05 주식회사 하이닉스반도체 반도체 메모리 소자 및 그의 구동방법
US20080151670A1 (en) * 2006-12-22 2008-06-26 Tomohiro Kawakubo Memory device, memory controller and memory system
JP2008181380A (ja) * 2007-01-25 2008-08-07 Toshiba Corp メモリシステムおよびその制御方法
TWI367486B (en) * 2007-12-25 2012-07-01 Ind Tech Res Inst Memory device and refresh method thereof
JP4843655B2 (ja) * 2008-09-24 2011-12-21 株式会社東芝 半導体記憶装置
US8417252B2 (en) 2008-10-24 2013-04-09 Qualcomm Incorporated Method and apparatus for interference reporting in a N-MIMO communication system
WO2010085405A1 (en) * 2009-01-22 2010-07-29 Rambus Inc. Maintenance operations in a dram
US7990795B2 (en) * 2009-02-19 2011-08-02 Freescale Semiconductor, Inc. Dynamic random access memory (DRAM) refresh
CN102081964B (zh) * 2009-11-30 2014-12-10 国际商业机器公司 动态随机访问存储器刷新的方法和系统
US8560796B2 (en) 2010-03-29 2013-10-15 Freescale Semiconductor, Inc. Scheduling memory access requests using predicted memory timing and state information
JP2012133642A (ja) * 2010-12-22 2012-07-12 Sony Corp メモリ装置、メモリ制御方法、およびプログラム
WO2012147136A1 (en) * 2011-04-28 2012-11-01 Hitachi, Ltd. Semiconductor storage apparatus and method for controlling semiconductor storage apparatus
JP2013004158A (ja) * 2011-06-21 2013-01-07 Elpida Memory Inc 半導体記憶装置及びそのリフレッシュ制御方法
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
US9032141B2 (en) 2012-11-30 2015-05-12 Intel Corporation Row hammer monitoring based on stored row hammer threshold value

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002150771A (ja) 2000-09-12 2002-05-24 Internatl Business Mach Corp <Ibm> Dramキャッシュ・メモリ中のデータをリフレッシュする方法および装置
JP2008192266A (ja) * 2007-02-07 2008-08-21 Megachips Lsi Solutions Inc メモリコントローラ
US20120163106A1 (en) 2010-12-28 2012-06-28 Young-Bo Shim Refresh control circuit and method for semiconductor memory device
JP2012164045A (ja) 2011-02-04 2012-08-30 Seiko Epson Corp メモリー制御装置

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11487661B2 (en) 2017-10-30 2022-11-01 SK Hynix Inc. Converged memory device and operation method thereof
US11544168B2 (en) 2017-10-30 2023-01-03 SK Hynix Inc. Memory system
CN110175140A (zh) * 2018-02-19 2019-08-27 爱思开海力士有限公司 融合式存储器件及其操作方法
KR20190099591A (ko) * 2018-02-19 2019-08-28 에스케이하이닉스 주식회사 통합 메모리 디바이스 및 그의 동작 방법
KR102499255B1 (ko) * 2018-02-19 2023-02-13 에스케이하이닉스 주식회사 통합 메모리 디바이스 및 그의 동작 방법
CN110175140B (zh) * 2018-02-19 2023-04-18 爱思开海力士有限公司 融合式存储器件及其操作方法
US10860222B2 (en) 2018-05-09 2020-12-08 Samsung Electronics Co., Ltd. Memory devices performing refresh operations with row hammer handling and memory systems including such memory devices
US10811077B2 (en) 2018-05-14 2020-10-20 Samsung Electronics Co., Ltd. Refresh control circuit, memory device including the same and method of operating the same for hammer refresh operation
WO2022139057A1 (ko) * 2020-12-21 2022-06-30 서울대학교산학협력단 카운터 기반의 로우 해머 방지를 위한 선택적 로우 해머 리프레쉬 장치 및 그 방법

Also Published As

Publication number Publication date
EP2926344A4 (en) 2016-11-23
JP5987234B2 (ja) 2016-09-07
CN104737234B (zh) 2018-07-24
KR20170046819A (ko) 2017-05-02
EP2926344B1 (en) 2019-10-30
EP2926344A1 (en) 2015-10-07
US20140156923A1 (en) 2014-06-05
WO2014084917A1 (en) 2014-06-05
CN104737234A (zh) 2015-06-24
KR20150058366A (ko) 2015-05-28
JP2016504702A (ja) 2016-02-12
US9032141B2 (en) 2015-05-12

Similar Documents

Publication Publication Date Title
KR101731508B1 (ko) 저장된 행 해머 임계값에 기초한 행 해머 모니터링
US10083737B2 (en) Row hammer monitoring based on stored row hammer threshold value
US10210925B2 (en) Row hammer refresh command
US9299400B2 (en) Distributed row hammer tracking
US8938573B2 (en) Row hammer condition monitoring
US9761298B2 (en) Method, apparatus and system for responding to a row hammer event
US9117544B2 (en) Row hammer refresh command
US9251885B2 (en) Throttling support for row-hammer counters
US9030903B2 (en) Method, apparatus and system for providing a memory refresh
US20140085995A1 (en) Method, apparatus and system for determining a count of accesses to a row of memory

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
A107 Divisional application of patent
GRNT Written decision to grant