KR102511465B1 - 뱅크 그룹 아키텍처가 있는 메모리 디바이스에서의 뱅크들 프리차징 및 리프레싱 - Google Patents

뱅크 그룹 아키텍처가 있는 메모리 디바이스에서의 뱅크들 프리차징 및 리프레싱 Download PDF

Info

Publication number
KR102511465B1
KR102511465B1 KR1020177021191A KR20177021191A KR102511465B1 KR 102511465 B1 KR102511465 B1 KR 102511465B1 KR 1020177021191 A KR1020177021191 A KR 1020177021191A KR 20177021191 A KR20177021191 A KR 20177021191A KR 102511465 B1 KR102511465 B1 KR 102511465B1
Authority
KR
South Korea
Prior art keywords
bank
command
memory
refresh
banks
Prior art date
Application number
KR1020177021191A
Other languages
English (en)
Other versions
KR20170125011A (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 KR20170125011A publication Critical patent/KR20170125011A/ko
Application granted granted Critical
Publication of KR102511465B1 publication Critical patent/KR102511465B1/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/40618Refresh operations over multiple banks or interleaving
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40603Arbitration, priority and concurrent access to memory cells for read/write or refresh operations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40611External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/4063Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing
    • G11C11/407Auxiliary circuits, e.g. for addressing, decoding, driving, writing, sensing or timing for memory cells of the field-effect type
    • G11C11/408Address circuits
    • G11C11/4087Address decoders, e.g. bit - or word line decoders; Multiple line decoders

Landscapes

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

Abstract

메모리 서브시스템 리프레시 관리는 명령들이 단일 명령으로 상이한 뱅크 그룹들에 걸쳐 하나 이상의 식별된 뱅크들을 액세스하는 것을 가능하게 한다. 각각의 뱅크 그룹에 의해 개별 뱅크 그룹들에서의 뱅크 또는 뱅크들을 개별적으로 식별하는 명령들을 전송하는 대신에, 명령은 메모리 디바이스로 하여금 상이한 뱅크 그룹들에서의 뱅크들을 액세스하게 할 수 있다. 명령은 리프레시 명령일 수 있다. 명령은 프리차지 명령일 수 있다.

Description

뱅크 그룹 아키텍처가 있는 메모리 디바이스에서의 뱅크들 프리차징 및 리프레싱
<관련된 출원>
본 출원은 2015년 2월 28일자로 출원된 미국 임시 출원 제62/126,597호에 기초하는 정규 출원이다. 본 출원은 이러한 임시 출원의 우선권의 혜택을 청구하고, 이러한 임시 출원은 본 명세서에 참조로 원용된다.
<기술분야>
본 발명의 실시예들은 일반적으로 메모리 서브시스템들에 관한 것으로, 보다 구체적으로는 뱅크 그룹 아키텍처가 있는 메모리 디바이스에서의 리프레시를 수행하는 것에 관한 것이다.
<저작권 통지/승인>
본 특허 문헌의 개시내용의 부분들은 저작권 보호를 받는 자료를 포함할 수 있다. 저작권 소유자는 누구든지 본 특허 문헌 또는 특허 개시내용을 특허 및 상표청 특허 파일 또는 기록들에 나타나는 대로 재생산하는 것에는 이의가 없지만, 다른 경우라면 무엇이든 간에 모든 저작권 권리를 보유한다. 저작권 통지는 아래에 설명되는 바와 같은 모든 데이터에, 그리고 본 명세서에 첨부하는 도면들에서, 뿐만 아니라 아래에 설명되는 바와 같은 소프트웨어에 적용된다: Copyright ⓒ 2015, Intel Corporation, All Rights Reserved.
특정 메모리 디바이스들은 뱅크 그룹 아키텍처를 갖는다. 통상적인 뱅크 아키텍처는 메모리 서브시스템들의 크기와 속도가 증가되는 것과 맞추어 크기 조정되지 않는다. 보다 새로운 메모리들을 생성하는데 사용되는 기술에서의 향상들은 메모리에서 더 작은 특징들을 이용 가능하게 하는 경향이 있으며, 이는 동작 전압들을 감소시키고 속도를 향상시킬 수 있다. 그러나, 처리 기술들이 향상됨에 따라, 메모리들의 크기와 복잡성이 증가하였고, tCCD(core cycle time)가 데이터 I/O(input/output) 대역폭에 맞추어 크기 조정되지 않았다. tCCD는 컬럼 간(column-to-column) 명령들 또는 명령 간(command-to-command) 지연을 참조하며, 동일한 뱅크에 대한 연속적(back-to-back) 액세스를 참조한다. 컬럼 명령은 메모리를 액세스하는데 사용되는 CAS(column address strobe command)를 참조할 수 있다.
I/O 속도가 증가함에 따라, 코어는 통상적으로 전체 데이터 I/O 대역폭을 이용하기 위해 자신의 속도를 증가시킬 필요가 있다. 따라서, I/O 속도를 두 배로 하는 것은 코어 사이클 시간을 두 배로 하는 것을 요구한다. 그러나, tCCD를 줄이기 위해 코어 사이클 시간들을 증가시키는 것은 매우 전력 및 다이 크기 집약적이다. 뱅크 그룹 아키텍처에 의해, 메모리 리소스들이 뱅크들의 그룹들로 분할될 수 있다. 뱅크 그룹들의 사용은 메모리의 명백한 사이클링 시간을 향상시킬 수 있는데, 그 이유는 상이한 뱅크 그룹들에 대한 액세스가 독립적으로 취급될 수 있기 때문이다. 따라서, I/O 대역폭을 완전히 이용하기 위해 두 배 빠르게 사이클링할 필요없이, 메모리는 순서대로 상이한 뱅크 그룹들을 액세스할 수 있다. 메모리 서브시스템들은 상이한 뱅크 그룹 사이의 액세스를 위한 더 짧은 사이클링 및 동일한 뱅크 그룹 내의 뱅크들 사이의 액세스를 위한 더 긴 사이클링을 허용할 수 있다.
뱅크 그룹들의 사용은 데이터 대역폭 이용에서의 향상들을 제공하지만, 명령 대역폭을 현저히 증가시킬 수 있다. 뱅크 그룹들의 사용은 통상적으로 시스템에서의 뱅크들의 수를 증가시킨다. 뱅크들이 더 많을수록, 메모리 제어기는 메모리를 유지하는데 이용되는 명령들의 수를 증가시킬 필요가 있다. 특히, 휘발성 메모리 디바이스들에서, 리프레시 명령들은 상이한 뱅크 그룹들에서의 뱅크들을 액세스하는 것에 의해 메모리의 현저한 양의 동작 대역폭을 소비한다. 뱅크들의 수를 증가시키는 것은 메모리 제어기에 의해 발행될 필요가 있는 리프레시 명령들의 수를 통상적으로 증가시켜 왔다.
이하의 설명은 본 발명의 실시예들의 구현들의 예로서 주어지는 예시들을 갖는 도면들의 논의를 포함한다. 이러한 도면들은 제한으로서가 아니라 예로서 이해되어야 한다. 본 명세서에서 사용되는 바와 같이, 하나 이상의 "실시예들"에 대한 참조들은 본 발명의 적어도 하나의 구현에 포함되는 특정 특징, 구조, 및/또는 특성을 설명하는 것으로서 이해되어야 한다. 따라서, 본 명세서에 나타나는 "실시예에서" 또는 "대안적인 실시예에서"와 같은 구문들은 본 발명의 다양한 실시예들 및 구현들을 설명하며, 모두가 반드시 동일한 실시예를 참조하는 것은 아니다. 그러나, 이들이 또한 반드시 상호 배타적인 것은 아니다.
도 1은 뱅크 그룹들에 걸쳐 뱅크 리프레시를 구현하는 시스템의 실시예의 블록도이다.
도 2는 뱅크 당 및 모든 뱅크 리프레시 명령들과 뱅크 당 및 모든 뱅크 프리차지 명령들에 대한 명령 표의 실시예의 표현이다.
도 3은 뱅크 그룹들에 걸쳐 뱅크 리프레시를 구현하는 시스템에 대한 시스템 성능의 실시예의 도식적 표현이다.
도 4는 리프레시를 수행하기 위한 프로세스의 실시예의 흐름도이다.
도 5는 뱅크 그룹들에 걸쳐 명시적 뱅크의 리프레시가 구현될 수 있는 컴퓨팅 시스템의 실시예의 블록도이다.
도 6은 뱅크 그룹들에 걸쳐 명시적 뱅크의 리프레시가 구현될 수 있는 모바일 디바이스의 실시예의 블록도이다.
이하 설명되는 실시예들의 일부 또는 전부를 도시할 수 있는 도면들의 설명을 포함할 뿐만 아니라, 본 명세서에 제시되는 창의적 개념들의 다른 잠재적인 실시예들 또는 구현들을 논의하는, 특정 상세사항들 및 구현들의 설명들이 뒤따른다.
본 명세서에 설명되는 바와 같이, 메모리 서브시스템 리프레시 관리는 단일 리프레시 명령으로 상이한 뱅크 그룹들에 걸쳐 하나 이상의 식별된 뱅크들을 리프레시하는 것을 가능하게 한다. 하나의 프리차지 명령으로 상이한 뱅크 그룹들에 걸쳐 하나 이상의 식별된 뱅크들의 프리차지를 구현하는 것에 관한 한, 유사한 능력이 존재할 수 있다. 각각의 뱅크 그룹에 의해 개별 뱅크 그룹들에서의 뱅크 또는 뱅크들을 개별적으로 식별하는 프리차지 및/또는 리프레시 명령들을 전송하는 대신에, 메모리 제어기는 메모리 디바이스로 하여금 상이한 뱅크 그룹들에서의 뱅크들을 동시에 프리차지 및/또는 리프레시하게 하는 명령을 생성할 수 있다.
메모리 디바이스들에 대한 참조는 상이한 메모리 타입들, 특히, 뱅크 그룹 아키텍처를 갖는 임의의 메모리에 적용될 수 있다. 메모리 디바이스들은 일반적으로 휘발성 메모리 기술들을 참조한다. 휘발성 메모리는 디바이스에 대해 전력이 중단되면 그것의 상태(및 따라서 그 상에 저장되는 데이터)가 불확정적인 메모리이다. 비휘발성 메모리는 디바이스에 대해 전력이 중단되더라도 그것의 상태가 확정적인 메모리를 참조한다. 동적 휘발성 메모리는 상태를 유지하기 위해 디바이스에 저장된 데이터를 리프레시할 것을 요구한다. 동적 휘발성 메모리의 일 예는 DRAM(dynamic random access memory), 또는 SDRAM(synchronous DRAM)과 같은 일부 변종을 포함한다. 본 명세서에서 설명되는 바와 같은 메모리 서브시스템은 DDR4(DDR 버전 4, JEDEC에 의해 2012년 9월에 공개된 초기 사양), DDR4E(JEDEC에 의해 개발중임), LPDDR4(LOW POWER DOUBLE DATA RATE (LPDDR) 버전 4, JESD209-4, 2014년 8월에 JEDEC에 의해 처음 공개됨), WI02(Wide I/O 2 (Widel02), JESD229-2, 2014년 8월에 JEDEC에 의해 처음 공개됨), HBM (HIGH BAN DWIDTH MEMORY DRAM, JESD235, 2013년 10월에 JEDEC에 의해 처음 공개됨), DDR5(DDR 버전 5, 현재 JEDEC에 의해 논의중임), LPDDR5(현재 JEDEC에 의해 논의중임), HBM2(HBM 버전 2), 현재 JEDEC에 의해 논의중임), 및/또는 다른 것들과 같은 다수의 메모리 기술들, 및 그러한 사양들의 파생물들 또는 확장물들에 기초하는 기술들과 호환가능할 수 있다.
휘발성 메모리에 대해 추가적으로 또는 대안적으로, 일 실시예에서, 메모리 디바이스들에 대한 참조는, 뱅크 그룹 아키텍처를 갖는 그러한 디바이스들에 대해, 디바이스로의 전력이 중단되더라도 그것의 상태가 확정적인 비휘발성 메모리 디바이스를 참조할 수 있다. 일 실시예에서, 비휘발성 메모리 디바이스는 NAND 또는 NOR 기술들과 같은 블록 어드레스 지정가능한 메모리 디바이스이다. 따라서, 메모리 디바이스는, 3차원 교차점 메모리 디바이스, 또는 다른 바이트 어드레스 지정가능한 비휘발성 메모리 디바이스와 같은, 차세대 비휘발성 디바이스들을 또한 포함할 수 있다. 일 실시예에서, 메모리 디바이스는 멀티-임계 레벨 NAND 플래시 메모리, NOR 플래시 메모리, 싱글 또는 멀티-레벨 PCM(Phase Change Memory), 저항성 메모리, 나노와이어 메모리, FeTRAM(ferroelectric transistor random access memory), 멤리스터 기술을 포함하는 MRAM(magnetoresistive random access memory), 또는 STT(spin transfer torque)-MRAM, 또는 위의 것들 중 임의의 것의 조합, 또는 다른 메모리일 수 있거나, 이들을 포함할 수 있다.
보다 구체적으로, 본 명세서에 설명되는 주제는 뱅크 그룹들의 사용을 지원하는 및/또는 이와 호환가능한 메모리 기술들에 적용된다. 구체적인 뱅크에 어드레스되는 특정 액세스 명령들은 모든 뱅크 그룹들에 걸쳐 식별된 뱅크 어드레스에서 실행될 수 있다.
도 1은 뱅크 그룹들에 걸쳐 뱅크 리프레시를 구현하는 시스템의 실시예의 블록도이다. 시스템(100)은 메모리 제어기(110) 및 메모리 디바이스(120)가 있는 메모리 서브시스템의 일 예이다. 메모리 디바이스(120)는, 예를 들어, DRAM 칩 또는 다이일 수 있거나 이를 포함할 수 있다. 일 실시예에서, 메모리 디바이스(120)는 SDRAM 칩 또는 다이이거나 또는 이를 포함한다. 일 실시예에서, 메모리(120)는 시스템에서의 독립형 메모리 디바이스이다. 일 실시예에서, 메모리(120)는 메모리 제어기 및/또는 호스트 프로세서에 직접 접속되는 하나 이상의 메모리 디바이스들을 나타낸다. 일 실시예에서, 메모리(120)는 제어기 및/또는 호스트 프로세서에 병렬로 연결되는 다수의 메모리 디바이스들을 나타내며, 이들은 (명령 및 어드레스 버스 및 적어도 데이터 버스의 일부와 같은) 하나 이상의 버스들을 공유한다. 일 실시예에서, 메모리(120)는 DIMM(dual inline memory module)과 같은 메모리 모듈의 일부인 다수의 메모리 디바이스들 중 하나이다.
메모리 제어기(110)는 메모리(120)에 명령들을 전송하는 것을 관리하는 명령 로직(112)을 포함한다. 명령 로직(112)은 어떤 명령들을 발행할지 결정하고, 언제 명령들을 발행할지 결정하며, 메모리 디바이스에 전송할 명령들을 생성하는 로직을 나타낸다. 일 실시예에서, 명령 로직(112)은 메모리 제어기(110)의 다른 로직 또는 제어 로직의 일부이다. 메모리 제어기(110)는 메모리(120)에 접속하기 위한 I/O(input/output) 하드웨어(114)를 포함한다. I/O 하드웨어(114)는 메모리 제어기(110)와 메모리(120) 사이에 신호들을 교환하는 핀들, 커넥터들, 트레이스들, 와이어들, 신호 라인들, 및/또는 다른 하드웨어 리소스들을 포함할 수 있다. I/O 하드웨어(114)는 신호들을 전송 및/또는 수신하는 드라이버들, 송수신기들, ODT(on-die termination), 및/또는 다른 로직을 포함할 수 있다.
일 실시예에서, 명령 로직(112)은 휘발성 메모리(120)의 리프레시를 관리하는 리프레시 명령 로직(142)을 포함한다. 리프레시 로직(142)은 언제 리프레시 명령들을 발행할지 결정하고, 메모리 디바이스에 전송할 명령들을 생성하는 로직을 나타낸다. 일 실시예에서, 명령 로직(112)은 메모리 디바이스(120)의 메모리 어레이 또는 메모리 리소스들(130)의 부분들의 프리차징을 관리하는 프리차지 명령 로직(144)을 포함한다. 일 실시예에서, 메모리 제어기(110)는 하나 이상의 리프레시 명령들과 함께 하나 이상의 프리차지 명령들을 생성한다. 프리차지 로직(144)은 메모리(120)로 하여금 메모리 리소스를 리셋 상태에 두게 할 수 있다.
메모리(120)는 다수의 뱅크 그룹들(132)로서 조직화되는 메모리 리소스들(130)을 포함한다. 따라서, 메모리(120)는 뱅크 그룹 아키텍처를 갖는다. 예를 들어, 메모리(120)는 2개, 4개 또는 8개의 뱅크 그룹들(132)을 포함할 수 있다. 각각의 뱅크 그룹은 4개 또는 8개의 뱅크들과 같은 다수의 뱅크들(134)을 포함한다. 예를 들어, 메모리(120)는 각각 8개의 뱅크들을 갖는 4개의 뱅크 그룹이 있는 x4 또는 x8 디바이스(데이터 버스 인터페이스 폭을 참조함), 또는 각각 4개의 뱅크들을 갖는 8개의 뱅크 그룹들이 있는 x4 또는 x8 디바이스, 또는 각각 4개의 뱅크들이 있는 4개의 뱅크 그룹들을 갖는 x16 디바이스일 수 있다. 이러한 예들은 설명의 목적들을 위한 것이며, 제한적인 것은 아니다. 각각의 뱅크는데이터를 저장하는 어드레스 지정가능한 메모리 위치들(예를 들어, 워드 라인들 또는 캐시 라인들 또는 페이지들)을 포함한다. 하나의 구체적인 예에서, 메모리(120)는 뱅크 그룹 아키텍처를 갖는 DDR4 또는 DDR4E 메모리이다. 위에서 언급된 바와 같이, 통상적인 뱅크 아키텍처는 tCCD(core cycle time)으로 인해 크기 조정되지 않았다. 그러나, 특정 DDR4 아키텍처는 2개 또는 4개의 뱅크 그룹들을 가질 수 있으며, 뱅크 그룹당 최대 8개의 뱅크들 있다. DDR4는 상이한 뱅크 그룹들에 대한 액세스들을 위한 짧은 코어 사이클 지연 시간, tCCD_S(4개 사이클들임), 및 동일한 뱅크 그룹 내의 뱅크들에 대한 액세스들을 위한 긴 코어 사이클 지연 시간, tCCD_L(4개 사이클들보다 많음)을 허용할 수 있다. tCCD_S는 판독들 및 기입들에 대해 전체 대역폭으로 데이터를 스트리밍하는 것을 허용하도록 버스트 길이(BL/2)의 절반과 동일하게 설정될 수 있다. 따라서, 8의 버스트 길이는 4개 사이클들의 tCCD_S에 대응한다.
메모리(120)는 메모리 제어기(110)로부터 명령들을 수신하고 디코딩하는 액세스 로직(122)을 포함한다. 일 실시예에서, 액세스 로직(122)은 메모리의 동작들을 관리하는 메모리 디바이스 상의 제어기 또는 제어 로직의 일부이다. 이러한 제어기는 메모리 제어기(110)로부터 수신되는 명령을 실행하는 동작들의 내부 타이밍 및 시퀀싱을 제어하는 온-메모리 제어기를 참조한다. 내부 제어기는 수신된 명령들을 실행하는 내부 동작을 생성한다. 메모리(120)는 메모리 제어기(110)와 인터페이스하는 I/O(124)를 포함한다. I/O(124)는 메모리 제어기의 I/O(114)와 유사하거나 동일할 수 있으며, 마찬가지로 2개의 디바이스들 사이에 신호들을 교환하는 임의의 타입의 하드웨어를 나타낼 수 있다.
일 실시예에서, 액세스 로직(122)은 디코드 로직(150)을 포함한다. 디코드 로직(150)은, 메모리의 어떤 메모리 리소스들(130)에 어떤 타입의 액세스를 행할지 결정하기 위해, 메모리(120)가 메모리 제어기(110)로부터 수신된 명령들을 디코딩할 수 있게 한다. 디코드 로직(150)은 메모리(120)가 명령 신호들을 명령에서 식별된 메모리 리소스들(130)에 라우팅할 수 있게 한다. 일 실시예에서, 액세스 로직(122)은 메모리(120) 내부의 리프레시 로직(152)을 포함한다. 일 실시예에서, 액세스 로직(122)은 메모리(120) 내부의 프리차지 로직(154)을 포함한다.
일 실시예에서, 메모리 제어기(110)는 REF(refresh commands) 및 REFpb(per bank refresh commands)를 발행할 수 있다. REF 명령은 리프레시 로직(152)을 통해 메모리(120)를 트리거하여 REF 명령에서의 어드레스 정보와 관련된 메모리 위치들에 저장된 값을 리프레시한다. REFpb 명령은 REF 명령과 유사하게 동작하지만, 구체적으로 뱅크를 리프레시하도록 동작한다. 따라서, 뱅크 그룹 아키텍처가 있는 메모리(120)에서, 메모리 제어기는 인터리빙 뱅크들에 의한 액세스를 제어하는 것이 가능하게 될 수 있다. 메모리(120)는 뱅크들에 걸쳐 인터리빙되는 명령을 구현하도록 구성될 수 있다. 액세스의 타이밍은 동일한 뱅크에 대해서 보다 뱅크들에 걸쳐 더 빠를 수 있어, 메모리 제어기가 발행된 명령들의 액세스 타이밍을 보다 신중하게 제어할 수 있게 한다.
REFpb(per bank refresh command)로, 메모리 제어기(110)는 구체적인 뱅크에서의 리프레시를 지시할 수 있다. 예를 들어, DDR4E 디바이스들에 대한 리프레시 관리에서, REF(refresh command)와 REFpb(refresh per bank command) 사이의 구별은 어드레스 비트 A12를 사용하여 행해진다. 비트 A12=1인 리프레시 명령은 모든 뱅크들을 리프레시하는 것을 나타내고, A12=0인 것은 명시된 뱅크(들)을 리프레시하는 것을 나타낸다. 따라서, 메모리 제어기(110)는 모든 뱅크들을 리프레시하라는 리프레시 명령(REF) 및/또는 구체적인 뱅크를 리프레시하라는 리프레시 명령(REFpb)을 생성하여 전송할 수 있다. 예를 들어, 리프레시 명령에서, 뱅크 어드레스 비트들 BA2, BA1, BA0 상의 값은 어느 뱅크들이 리프레시될지 명시한다. 일 실시예에서, 뱅크 어드레스 비트들 BA2, BA1, BA0에 의해 식별되는 뱅크는 REFpb 명령이 발행될 때 모든 뱅크 그룹들에서 리프레시될 뱅크이다. 따라서, 일 실시예에서, 뱅크 당 리프레시 명령은 리프레시될 뱅크를 식별하고, 메모리 디바이스(120)는 모든 뱅크 그룹들(132)에 걸쳐 식별된 뱅크를 리프레시할 것이다(예를 들어, BA[2:0]=000에 대해, 뱅크 '000'이 BankGroup0, BankGroup1 등에서 리프레시될 것임).
일 실시예에서, 메모리 제어기(110)는 모든 뱅크 그룹들에서 동일한 뱅크를 프리차지하도록 유사하게 정의되는 프리차지 명령을 발행할 수 있다. 예를 들어, 시스템은 3개까지의 상이한 타입들의 프리차지 명령을 정의할 수 있다. 일 실시예에서, 비트 A10=0 또는 L(low) 및 A12=1 또는 H(High)인 프리차지 명령(PRE)은 BG1, BG0 및 BA2, BA1, BA0에 의해 명시되는 바와 같은 뱅크 그룹 및 뱅크에 의해 표시되는 바와 같은 단일 뱅크를 프리차지하는 것을 의미할 수 있다. 일 실시예에서, A10=0 및 A12=0인 프리차지 명령(PREpb)은, 모든 뱅크 그룹들에서 BA2, BA1 및 BA0에 의해 명시되는 것과 동일한 뱅크를 프리차지하기 위해, 뱅크 당 프리차지하는 것을 의미할 수 있다. 일 실시예에서, A10=1인 프리차지 명령(PREA)은 모든 뱅크들을 프리차지하는 것을 의미할 수 있다. 메모리(120)는, 프리차지 로직(154)을 통해, 메모리 제어기(110)로부터 수신된 프리차지 명령들을 구현할 수 있다. 따라서, 모든 뱅크 그룹들에 걸쳐 PREA 명령은 모든 뱅크들을 유휴 상태로 설정할 수 있고, PRE 명령은 구체적인 뱅크 그룹에서의 구체적인 뱅크를 유휴 상태로 설정할 수 있으며, PREpb 명령은 명시된 뱅크를 유휴 상태로 설정할 수 있다. 일 실시예에서, 어드레스 비트 BA[2:0]에 의해 식별되는 뱅크는 PREpb가 발행될 때 모든 뱅크 그룹들에서 프리차지될 뱅크이다. 일 실시예에서, 메모리 제어기(110)는 리프레시 명령과 함께 대응하는 프리차지 명령(예를 들어, REF와 함께 PREA 및 REFpb와 함께 PREpb)을 발행한다.
통상적으로, 각각의 REFpb 명령은 내부 뱅크 카운터를 증가시킨다. 메모리 제어기는 내부 뱅크 카운터를 뱅크 그룹(132)에서 이용가능한 뱅크들의 수를 나타내는 임계값에 비교할 수 있다. 일 실시예에서, 내부 뱅크 카운터가 뱅크 그룹(132)에서 이용가능한 뱅크들의 수와 동일하다고 검출하면, 메모리 제어기(110)는 다음 또는 후속 REFpb 명령 상에서 다시 시작하도록 카운터를 리셋할 수 있다. 내부 뱅크 카운터가 리셋되어 다음 REFpb 명령 상에서 다시 시작할 때마다, 메모리 제어기(110)는 또한 글로벌 리프레시 카운터를 증가시킨다.
일 실시예에서, 메모리 제어기(110)는, 임의의 뱅크가 후속 REFpb 명령을 발행하기 전에 모든 뱅크(134)가 그것에 발행된 하나의 REFpb 명령을 갖는 한, 임의의 뱅크 순서로 임의의 뱅크(134)에 REFpb 명령을 발행할 수 있다. 일 실시예에서, 메모리 제어기(110)는 각각의 REFpb 명령과 함께 대응하는 PRE 명령을 발행하고, 따라서 동일한 뱅크 순서로 프리차지 및 리프레시 명령들을 전송할 수 있다. 뱅크 순서는 리프레시들의 시퀀스를 참조한다. 라운드 로빈 순서는, 최고로부터 최저로 또는 최저로부터 최고로와 같이, 뱅크 어드레스의 순서로 리프레시될 수 있다. 메모리 제어기는 리프레시들을 인터리빙할 수 있고 및/또는 뱅크 어드레스들에 관한 순서를 벗어나 뱅크들을 액세스하도록 프리차지할 수 있다. 메모리 제어기(110)는 뱅크 순서를 관리할 수 있고, 따라서 모든 뱅크가 REFpb 명령을 수신하기 전에 동일한 뱅크에 발행되는 후속 REFpb 명령을 발행하는 것을 방지한다. 메모리 제어기는 유사하게 PRE 명령들을 관리할 수 있다.
일 실시예에서, 뱅크 그룹에서의 모든 뱅크들에 REFpb를 발행하기 전에 동일한 뱅크에 REFpb 명령을 여러 번 발행하는 것은 허용되지 않는다. 일 실시예에서, 발행된 제1 REFpb 명령은 "동기화" REFpb 명령이고, "동기화" 카운트는 다음 중 임의의 것이 발생할 때 내부 뱅크 카운터를 0으로 리셋한다: (a) 모든 뱅크가 하나의 REFpb 명령을 수신함; (b) 메모리 제어기가 RESET을 적용함; (c) 메모리 디바이스가 셀프 리프레시 모드에 진입하거나 이로부터 벗어남; 또는, (d) 메모리 제어기가 모든 뱅크들을 리프레시하라는 REF 명령(즉, REFpb 명령 대신에 일반적인 리프레시 명령)을 발행함.
일 실시예에서, 메모리 제어기(110)는 카운터 로직(116)을 포함한다. 카운터 로직(116)은 메모리 제어기(110) 내부의 하나 이상의 카운터들을 나타낼 수 있다. 카운터들은 리프레시 명령들과 같은 명령들의 발행을 관리하는데 사용될 수 있다. 메모리 제어기(110)는 메모리(120)에서의 로우들의 리프레시들을 관리하는데 하나 이상의 카운터들(116)을 사용할 수 있다. 각각의 리프레시에서, 메모리 제어기(110)는 어떤 로우들이 리프레시되었는지 추적하기 위해 카운터(116)를 증가시킬 수 있다. 일 실시예에서, 카운터(116)는 뱅크 카운터들 및 글로벌 카운터를 포함할 수 있다.
일 실시예에서, 메모리(120)는 카운터(126)를 포함하며, 이는 메모리 디바이스 내의 하나 이상의 카운터들을 나타낸다. 일 실시예에서, 메모리(120)는 로우 리프레시들을 추적하는데 카운터(126)를 사용한다. 일 실시예에서, 카운터(116)는 뱅크 카운터들 및 글로벌 카운터를 포함할 수 있다. 일 실시예에서, 시스템(100)은 카운터(116) 또는 카운터(126) 중 하나를 포함하지만, 양자 모두를 포함하지는 않는다. 메모리(120)는 메모리 제어기(110)로부터 수신되는 리프레시 명령들에 응답하여 내부 제어 로직(내부 제어기)으로 카운터(126)를 관리할 수 있다.
일 실시예에서, 카운터(126)는 메모리(120) 내의 글로벌 리프레시 카운터를 나타낸다. 일 실시예에서, 글로벌 리프레시 카운터 (126)는 메모리 제어기가 모든 뱅크들을 리프레시하기 위해 REF 명령을 발행할 때, 또는 모든 뱅크들이 REFpb 명령을 수신하고 "동기화" 카운트가 0으로 리셋될 때 증가될 수 있다. 뱅크 카운터가 0이 아닐 때 발행되는 REF 명령은 메모리 디바이스의 글로벌 리프레시 카운터를 증가시킬 것이다. 일 실시예에서, REFpb 명령은 다음 조건들이 충족될 때까지 메모리 디바이스에 발행될 수 없다:
- 이전 REF 명령 이후 tRFC(refresh cycle time)이 충족되었음;
- 이전 REFpb 명령 이후 tRFCpb(per bank refresh cycle time)가 충족되었음;
- 식별된 뱅크에 대한 이전의 PRECHARGE 명령 이후 tRP(precharge cycle time)이 충족되었음; 및,
- 이전 ACTIVATE 명령 이후 tRRD_L이 충족되었음(예를 들어, REFpb가 모든 뱅크 그룹들에서의 뱅크를 타겟으로 할 것이라는 점에서, tRRD_L이 ACTIVATE로부터 충족되어야 함).
타겟 뱅크 또는 명령에서 식별되는 뱅크는 tRFCpb(per bank refresh cycle time) 동안 액세스될 수 없다는 점이 이해될 것이다. 따라서, REFpb 명령은 뱅크가 리프레시 동작들을 수행하는 동안 tRFCpb에 대해 식별된 뱅크에 대한 액세스를 방지할 것이다. 그러나, 일 실시예에서는, 메모리(120) 내의 다른 뱅크들이 액세스가능하고, 리프레시 사이클 (타겟 뱅크의 tRFCpb) 동안 어드레스 지정될 수 있다. 뱅크 당 리프레시 사이클이 완료될 때, 영향을 받은 뱅크는 유휴 상태가 될 것이다.
일 실시예에서, REFpb 명령을 발행한 후, 다음 조건들이 충족되어야 한다:
- REF 명령을 실행하기 전에 tRFCpb가 충족되어야 함;
- 동일한 뱅크에 ACT(ACTIVATE) 명령을 발행하기 전에 tRFCpb가 충족되어야 함; 및,
- 상이한 뱅크에 ACT 명령 또는 REFpb 명령을 발행하기 전에 tRRD_L가 충족되어야 함.
메모리(120)가 모든 뱅크 그룹들(132)에서의 뱅크들(134)에 걸쳐 리프레시를 적용할 때, 메모리 제어기(110)는 보다 적은 리프레시 명령들을 스케줄링하고 발행할 수 있다는 점이 이해될 것이다. 예를 들어, 8개의 뱅크들이 있는 시스템에서, 단일 REF 명령은 8개의 REFpb 명령들로 대체될 수 있다. 단일 REF 명령을 다수의 REFpb 명령들로 대체하는 것은, 리프레시 명령 액티비티를 선택적으로 증가시키는 것뿐만 아니라 선택적으로 연기하기 위해, 스케줄링에 대해 증가된 제어를 제공할 수 있다. 일 실시예에서, REFpb 명령은 버스트(burst)로 발행될 수 있다. REFpb의 버스트는 8 * {tRFCpb + (n-1) * tRRD_L} 로 결정되는 제한으로 설정될 수 있으며, 여기서 n은 뱅크 그룹에서의 뱅크들의 수와 같고, tRFCpb는 뱅크 당 리프레시 사이클 시간이며, tRRD_L은 동일한 뱅크 그룹에 대한 Activate 명령들 사이의 긴 로우 투 로우 지연(row to row delay) 또는 지연 시간이다.
따라서, 각각의 메모리 디바이스는 뱅크 그룹 아키텍처에서의 다수의 뱅크들을 포함한다. 뱅크 그룹 아키텍처에서, 메모리 제어기는 구체적인 뱅크를 뱅크 그룹 식별자 및 뱅크 식별자(뱅크 그룹 식별자는 뱅크 그룹을 명시함), 및 뱅크 그룹 내의 뱅크를 명시하는 뱅크 어드레스로 어드레스 지정할 수 있다. 각각의 뱅크 그룹은 유사하게 어드레스 지정되는 다수의 뱅크들을 갖는다. 예를 들어, BG0은 뱅크들 B0-B3을 가질 수 있고, BG1은 뱅크들 B0-B3을 가질 수 있으며, 이들은 뱅크 그룹 및 뱅크 어드레스 정보의 조합에 의해 개별적으로 어드레스 지정될 수 있다. 메모리 디바이스 및 메모리 제어기는 I/O 하드웨어를 통해 연결될 수 있다. 일 실시예에서, 메모리 제어기는 메모리의 일부 상에서 실행하기 위한, 특히, 식별된 뱅크에 대한 명령을 전송할 것을 결정하도록 구성된다. 메모리 제어기는 명령을 전송하거나 발행하며, 이를 메모리 디바이스가 수신하고 디코드한다. 이러한 명령은, 예를 들어, 프리차지 명령 또는 리프레시 명령일 수 있고, 뱅크를 식별할 수 있다. 뱅크 그룹을 식별하는 것은 구현에 따라 선택적거나 정의되지 않을 수 있다. 메모리 디바이스는, 명령에 응답하여, 상이한 뱅크 그룹들에서의 뱅크들을 포함하여, 뱅크 식별자를 갖는 모든 뱅크들에 대해 명령을 실행하도록 구성될 수 있다.
도 2는 뱅크 당 및 모든 뱅크 리프레시 명령들 및 뱅크 당 및 모든 뱅크 프리차지 명령들에 대한 명령 표의 실시예의 표현이다. 명령 표(210)는 DDR4E 또는 DDR5 시스템에서 사용하기 위한 명령들의 실시예의 일 예를 제공한다. 메모리 제어기는 원하는 동작을 생성하도록 나열되는 명령들을 생성한다. 메모리 제어기는 명령들을 실행하라고 메모리 디바이스(들)를 트리거하도록 하나 이상의 접속된 메모리 디바이스들(직접 접속되거나 메모리 모듈에서 접속됨)에 명령들을 전송한다.
표(210)는 리프레시 및 프리차지 명령들만을 도시하지만, 통상적으로 모든 메모리 액세스 명령들이 유사한 방식으로 정의되며, 논리 로우 출력들(예를 들어, '0')에 대해서는 L, 논리 하이 출력들(예를 들어, '1')에 대해서는 H, 그리고 무정의들(Don't Cares)에 대해서는 V를 도시한다는 점이 이해될 것이다. 표(210)는 값들 "BG" 및 "BA"값을 또한 도시하며, 이들은, 각각, 뱅크 그룹 어드레스 및 뱅크 어드레스를 참조한다. 구체적인 메모리 시스템 구현에서 얼마나 많은 뱅크들 및 뱅크 그룹들이 지원되는지에 따라, 어드레스들을 명시하는 비트들의 수가 상이할 수 있다는 점이 이해될 것이다. 도시되는 바와 같이, 표(210)에 따라 명령을 구현하는 시스템은 8개까지의 뱅크 그룹들, 및 뱅크 그룹당 4개까지의 뱅크들을 지원한다. 다른 구현에서, 4개의 뱅크 그룹들 및 8개의 뱅크들이 있는 디바이스를 갖는 시스템에 대해, 표(210)은 BG0-BG1 및 BA0-BA2를 가질 수 있다. 다른 구성들이 가능하다.
명령(212)은 모든 뱅크들 리프레시 명령을 도시하며, 비트 A12가 하이로 설정된다. 모든 뱅크들이 리프레시되기 때문에, 뱅크 그룹 및 뱅크 어드레스 비트들은 "무정의들(Don't Cares)"이다. 이러한 명령에 응답하여, 메모리 디바이스는 모든 뱅크들을 리프레시할 것이다. 명령(214)은 뱅크 당 리프레시를 도시하며, 비트 A12는 로우로 설정된다. 이러한 명령에 응답하여, 메모리 디바이스는 표시된 BG(bank group) 및 BA(bank address)에 있는 뱅크를 리프레시할 것이다. 일 실시예에서, 뱅크 그룹 어드레스는 무정의(Don't Care)이고, 메모리 디바이스는 모든 뱅크 그룹들에서 BA[1:0]에 의해 식별되는 뱅크를 리프레시할 것이다.
명령(220)은 PREA(Precharge all) 명령을 도시하며, 비트 A10은 하이로 설정된다. 모든 뱅크가 프리차지되기 때문에, 뱅크 그룹 및 뱅크 어드레스 비트는 "무정의들(Don't Cares)"이다. 이러한 명령에 응답하여, 메모리 디바이스는 모든 뱅크들을 프리차지할 것이다. 명령(216)은 PREpb(Precharge per bank) 명령을 도시하며, 비트 A10가 로우로 설정되고 비트 A12가 로우로 설정된다. 이러한 명령에 응답하여, 메모리 디바이스는 모든 뱅크들에 걸쳐 표시되는 BA(bank address)에 있는 뱅크를 프리차지할 것이다. 일 실시예에서, 뱅크 그룹 어드레스는 무정의(Don't Care)이고, 메모리 디바이스는 모든 뱅크 그룹들에서 BA[1:0]에 의해 식별되는 뱅크를 프리차지할 것이다. 명령(218)은 PRE(Precharge single bank) 명령을 도시하며, 비트 A10이 로우로 설정되고 비트 A12가 하이로 설정된다. 이러한 명령에 응답하여, 메모리 디바이스는 BG[2:0] 및 BA[1:0]에서 식별되는 구체적인 뱅크를 프리차지할 것이다.
뱅크 당 명령들의 구현은 상이한 시스템 정의들에 기초하여 상이할 수 있다. 일 실시예에서, 메모리 제어기는 뱅크 당 리프레시 명령이 모든 뱅크 그룹들에서의 식별된 뱅크에 적용될 것이라는 점을 표시하는 구체적인 비트(예를 들어, 미사용 또는 "무정의(Don't Care)" 비트들 중 하나)를 설정하는 명령을 뱅크 식별자와 함께 제공한다. 예를 들어, 뱅크 당 리프레시가 모든 뱅크 그룹들에 적용될지 또는 명시된 뱅크 그룹에만 적용될지 식별하는데 비트 A10이 사용될 수 있다는 점을 고려하자. 다른 예로서, 뱅크 당 프리차지가 모든 뱅크 그룹들에 적용될지 또는 명시된 뱅크 그룹에만 적용될지 식별하는데 비트 A12사 사용될 수 있다는 점을 고려하자. 다른 구현들도 가능하다. 일 실시예에서, 메모리 디바이스는 모든 뱅크 그룹들에 걸쳐 REFpb 및/또는 PREpb를 적용하도록 구성된다. 예를 들어, 명시된 뱅크에 또는 모든 뱅크 그룹들에 걸쳐 비트들 A10 및 A12가 리프레시 및/또는 프리차지를 적용할 수 있다는 점을 고려하자. 따라서, 메모리 제어기는 뱅크 그룹 식별자를 구동하지 않도록 구성될 수 있어, 뱅크 그룹 식별자를 갖지 않는 명령을 효과적으로 전송한다. 일 실시예에서, 뱅크 그룹 식별자 비트들은, 구체적인 뱅크 그룹을 식별할 수 있는 것 외에도, 뱅크 그룹 비트들을 통해 모든 뱅크 그룹들의 표시를 허용하도록 미리 정의된 코드로 정의될 수 있다. 대안적으로, 다른 미사용 비트들 중 하나가 모든 뱅크 그룹 식별자로서 사용될 수 있다.
명령들이 동일한 뱅크 그룹을 타겟으로 하면, 뱅크 그룹 아키텍처는 순차적 CAS(column address strobe) 명령들에 대해, 또는 CAS로부터 CAS로, 또는 판독이건 기입이건 간에, 더 큰 tCCD(CAS to CAS delay time) 또는 시간을 요구한다. 일 실시예에서, 뱅크 그룹들에 걸치는 tCCD는 BL(burst length)과 동일하게 설정될 수 있으므로 순차적 데이터는 뱅크 그룹들에 걸쳐 매끄럽게 스트리밍될 수 있다. 일 실시예에서, 메모리 제어기는 뱅크 그룹들에 걸쳐 순차적 어드레스들을 매핑한다. 따라서, 액세스 명령들이 순차적 어드레스에 대해 행해질 때, 액세스들은 뱅크 그룹들에 걸쳐 발생하고 tCCD_S의 사용을 허용하며, 이는 tCCD_L보다 낮으며, 이는 동일한 뱅크 그룹에서의 뱅크들을 액세스하는 것 사이의 지연이 더 길다.
뱅크 그룹들에 걸치는 액세스는 메모리 제어기의 관점에서 상이한 뱅크 리소스들을 묶는다. 따라서, 뱅크 그룹들에 걸쳐 동일한 뱅크를 리프레시하는 것은 본질적으로 메모리 제어기의 관점에서 시간 tRFCpb 동안 단일 리소스를 묶는다. 상이한 뱅크 그룹들에 걸치는 이러한 리프레싱은 다수의 DIMM들(dual inline memory modules) 및 랭크들을 갖는 서버들 상의 명령 대역폭 쟁점들을 감소시킬 수 있다. 메모리 디바이스들이 상이한 뱅크 그룹들에 걸쳐 뱅크들 상에서 실행하는 메모리 제어기로부터의 리프레시 명령을 발행하는 것에 의해, 메모리 제어기는 특정 조건들에서 보다 적은 리프레시 명령들을 발행할 수 있다. 예를 들어, 일 실시예에서, 메모리 제어기는 32개 대신 발행할 것인 8개의 리프레시 명령들을 발행할 수 있으며, 각각의 뱅크 그룹에서의 8개의 뱅크들 각각을 개별적으로 리프레시하도록 32개의 뱅크 당 리프레시들을 발행하는 대신에, 4개 뱅크 그룹들에 걸쳐 적용되는 8개의 뱅크 당 리프레시들을 발행하는 것을 참조한다.
도 3은 뱅크 그룹들에 걸쳐 뱅크 리프레시를 구현하는 시스템에 대한 시스템 성능의 실시예의 도식적 표현이다. 도해 300은 뱅크 당 리프레시 명령에 응답하여 모든 뱅크 그룹들에 걸쳐 동일한 뱅크를 리프레시하는 동작을 테스트하는 것에 의해 드러난 성능 향상들을 도시한다. 도해 300에서, 상대적인 성능은 기준선에 대한 성능 차이의 백분율을 도시한다. 도해 300의 수평축 상의 표기들은 성능이 측정된 테스트들 또는 애플리케이션들을 표시한다. 도해 300에 도시되는 뱅크 당 리프레시 성능은 뱅크 그룹들에 걸쳐 동일한 뱅크 번호를 프리차지하고 리프레시하는 명령들의 사용을 포함한다는 점이 이해될 것이다.
도해 300의 예에서,기준선은 1x 랭크 리프레시이다. 1x는 260ns의 tRFC를 사용하는 4Gb 디바이스에 대한 7.8us tREFI 리프레시 속도를 참조한다. 랭크 리프레시는 랭크 레벨로 리프레시들을 수행하는 것을 참조한다. 음수 백분율들로의 막대들은 랭크 2x로서 표기되며, 3.9us의 2x 리프레시 속도인 성능 손실을 나타낸다. 따라서, 기준선 아래의 막대들은 표준 랭크 리프레싱을 가정하지만, 리프레시 속도는 두 배이다. 각각의 테스트에 대해 양수 백분율들로 확장하는 2개의 막대들이 존재한다. 2개 막대들 모두는 뱅크 그룹들에 걸쳐 리프레시들이 수행되는 뱅크 당 리프레시로 인한 성능 이득들을 나타낸다. 왼쪽의 막대는 7.8us tREFI의 뱅크 당 리프레시들을 나타낸다. 오른쪽의 막대는 3.9us tREFI의 뱅크 당 리프레시를 사용하는 성능에서의 이득을 나타낸다. 도해 300은 리프레시 속도를 두 배로 하는 것으로 인한 랭크 리프레싱 성능에서의 손실을 도시하며, 리프레시 속도가 두 배가 되더라도 뱅크 당 리프레시로 보상되는 것보다 성능 손실이 더 많다는 점을 도시한다.
도 4는 리프레시를 수행하기 위한 프로세스의 실시예의 흐름도이다. 일 실시예에서, 메모리 제어기는 관련된 메모리 디바이스의 하나 이상의 뱅크들을 리프레시하기로 결정한다(410). 일 실시예에서, 다수의 메모리 디바이스들(예를 들어, DRAM들 또는 SDRAM들)은 동일한 메모리 제어기에 연결되고, 각각은 메모리 디바이스에 대해 개별적인 뱅크 그룹 및 뱅크 리소스들에서 동일한 명령들을 병렬로 구현할 수 있다. 일 실시예에서, 메모리 제어기는 메모리가 뱅크 그룹 아키텍처를 갖는다는 점을 표시하는 정보로 구성된다. 이러한 구현에서는, 일 실시예에서, 메모리 제어기는 식별된 부분 상에서만의 실행을 위한 명령을 메모리 디바이스에 전송하기로 결정할 수 있다. 예를 들어, 메모리 제어기는 모든 뱅크들에 액세스하는 대신에 메모리의 구체적인 뱅크에만 액세스하기로 결정할 수 있다. 이러한 동작은 본 명세서에 설명되는 임의의 실시예에 따라 모든 뱅크 및 뱅크 당 명령 메커니즘에 의해 지원될 수 있다.
일 실시예에서, 메모리 제어기는 프리차지할 뱅크 또는 뱅크들을 식별하는 프리차지 명령을 생성한다(412). 일 실시예에서, 프리차지 명령은 메모리에서의 모든 뱅크 그룹들에 걸쳐 식별된 뱅크(들)에 적용되는 것이다. 일 실시예에서, 메모리 제어기는 메모리에 프리차지 명령을 전송할 수 있다(414). 일 실시예에서, 메모리는 프리차지 명령를 수신하고 디코딩한다(416). 일 실시예에서, 메모리는 프리차지 명령에 응답하여 모든 뱅크 그룹들에 걸쳐 식별된 뱅크(들)를 프리차지한다(418). 명령의 전송은 본 명세서에 설명되는 임의의 실시예에 따를 수 있으며, 이는 단일 뱅크 그룹 대신에 모든 뱅크 그룹들에 적용되는 것으로서 프리차지 명령을 식별할 수 있다.
일 실시예에서, 메모리 제어기는 리프레시할 뱅크(들)를 식별하는 리프레시 명령을 생성한다(420). 프리차지 명령에 관해 위에서 언급된 것과 유사하게, 명령의 생성 및 전송은 본 명세서에 설명되는 임의의 실시예에 따를 수 있다. 따라서, 메모리 제어기는 명령이 모든 뱅크 그룹들 또는 단일 뱅크 그룹에 걸쳐 적용될 것이라는 점을 표시하는 메커니즘을 이용할 수 있다. 대안적으로, 메모리 디바이스들은, 구체적인 뱅크 그룹에서 대신에, 모든 뱅크 그룹들에서 식별된 뱅크에 적용되는 것으로서 모든 뱅크 당 명령어들에 응답하도록 구성될 수 있다. 메모리 제어기는 메모리에 리프레시 명령을 전송할 수 있다(422). 일 실시예에서, 메모리는 리프레시 명령을 수신하고 디코딩한다(424). 메모리는 리프레시 명령에 응답하여 모든 뱅크 그룹들에 걸쳐 식별된 뱅크(들)를 리프레시할 수 있다(426).
일 실시예에서, 메모리 제어기는 모든 뱅크 그룹들에 대해 식별된 뱅크에 대한 뱅크 카운터를 증가시킨다(428). 일 실시예에서, 메모리 제어기는 상이한 뱅크 그룹들에 대해 상이한 뱅크 카운터들을 유지하고, 뱅크 그룹들에 걸쳐 적용되는 리프레시 명령을 발행할 때 모든 뱅크 카운터들을 업데이트할 수 있다. 메모리 서브시스템이 뱅크 그룹들에 걸쳐 동일한 뱅크의 리프레시들을 적용하는 일 실시예에서, 메모리 제어기는 단일의 뱅크 당 리프레시 카운터만을 유지하고, 뱅크 그룹들에 걸쳐 적용되는 뱅크 당 리프레시들을 발행하는 것과 함께 이를 업데이트한다. 모든 뱅크 그룹들에 걸쳐 동일한 뱅크 번호를 커버하는 리프레시 명령을 적용하는 것은 액세스들이 동일한 대응 뱅크 그룹들에 대해 뱅크 그룹들에 걸쳐 인터리빙되므로 우수한 성능을 제공할 수 있다는 점이 이해될 것이다.
도 5는 뱅크 그룹들에 걸쳐 명시된 뱅크의 리프레시가 구현될 수 있는 컴퓨팅 시스템의 실시예의 블록도이다. 시스템(500)은 본 명세서에 설명되는 임의의 실시예에 따른 컴퓨팅 디바이스를 나타내며, 랩톱 컴퓨터, 데스크탑 컴퓨터, 서버, 게임 또는 엔터테인먼트 제어 시스템, 스캐너, 복사기, 프린터, 라우팅 또는 스위칭 디바이스, 또는 다른 전자 디바이스일 수 있다. 시스템(500)은 프로세서(520)를 포함하며, 이는 시스템(500)에 대한 처리, 동작 관리 및 명령어들의 실행을 제공한다. 프로세서(520)는 시스템(500)에 대한 처리를 제공하는 임의 타입의 마이크로프로세서, CPU(central processing unit), 처리 코어, 또는 다른 처리 하드웨어를 포함할 수 있다. 프로세서(520)는 시스템(500)의 전체 동작을 제어하며, 하나 이상의 프로그램 가능한 범용 또는 특수 목적 마이크로프로세서들, DSP들(digital signal processors), 프로그래밍 가능한 제어기들, ASIC들(application specific integrated circuits), PLD들(programmable logic devices) 등, 또는 이러한 디바이스들의 조합일 수 있거나, 이들을 포함할 수 있다.
메모리 서브시스템(530)은 시스템(500)의 메인 메모리를 나타내고, 프로세서(520)에 의해 실행될 코드, 또는 루틴을 실행하는데 사용될 데이터 값들에 대한 임시 스토리지를 제공한다. 메모리 서브시스템(530)은 ROM(read-only memory), 플래시 메모리, 하나 이상의 다양한 RAM(random access memory), 또는 다른 메모리 디바이스들과 같은 하나 이상의 메모리 디바이스들, 또는 이러한 디바이스들의 조합을 포함할 수 있다. 메모리 서브시스템(530)은, 다른 것들 중에서, 시스템(500)에서의 명령어들의 실행을 위한 소프트웨어 플랫폼을 제공하는 OS(operating system)(536)를 저장하고 호스팅한다. 추가적으로, 시스템(500)의 처리 및 로직을 제공하는 다른 명령어들(538)이 저장되고 메모리 서브시스템(530)으로부터 실행된다. OS(536) 및 명령들(538)은 프로세서(520)에 의해 실행된다. 메모리 서브시스템(530)은 그것이 데이터, 명령어들, 프로그램들, 또는 다른 아이템들을 저장하는 메모리 디바이스(532)를 포함한다. 일 실시예에서, 메모리 서브시스템은 메모리 제어기(534)를 포함하며, 이는 명령들을 생성하여 메모리 디바이스(532)에 발행하는 메모리 제어기이다. 메모리 제어기(534)는 프로세서(520)의 물리 부분일 수 있다는 점이 이해될 것이다.
프로세서(520) 및 메모리 서브시스템(530)은 버스/버스 시스템(510)에 연결된다. 버스(510)는, 적절한 브리지들, 어댑터들, 및/또는 제어기들에 의해 접속되는, 임의의 하나 이상의 별도의 물리 버스들, 통신 라인들/인터페이스들, 및/또는 포인트-투-포인트 접속들을 나타내는 추상적 개념(abstraction)이다. 따라서 버스(510)는, 예를 들어, 시스템 버스, 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 버스(흔히 "파이어와이어(Firewire)"라고 참조됨) 중 하나 이상을 포함할 수 있다. 버스(510)의 버스들은 또한 네트워크 인터페이스(550)에서의 인터페이스들에 대응할 수 있다.
시스템(500)은 버스(510)에 연결되는 하나 이상의 I/O(input/output) 인터페이스(들)(540), 네트워크 인터페이스(550), 하나 이상의 내부 대용량 스토리지 디바이스(들)(560), 및 주변기기 인터페이스(570)를 또한 포함한다. I/O 인터페이스(540)는 그것을 통해 사용자가 시스템(500)과 상호작용하는 하나 이상의 인터페이스 컴포넌트들을 포함할 수 있다(예를 들어, 비디오, 오디오, 및/또는 영숫자 인터페이싱). 네트워크 인터페이스(550)는 하나 이상의 네트워크들을 통해 원격 디바이스들(예를 들어, 서버들, 다른 컴퓨팅 디바이스들)과 통신하는 능력을 시스템(500)에 제공한다. 네트워크 인터페이스(550)는 이더넷 어댑터, 무선 상호접속 컴포넌트들, USB(universal serial bus), 또는 다른 유선 또는 무선 표준들 기반의 또는 독점적인 인터페이스들을 포함할 수 있다.
스토리지(560)는, 하나 이상의 자기, 솔리드 스테이트(solid state), 또는 광학 기반 디스크들, 또는 조합과 같은, 비휘발성 방식으로 대량의 데이터를 저장하기 위한 임의의 종래의 매체일 수 있거나, 또는 이를 포함할 수 있다. 스토리지(560)는 코드 또는 명령어들 및 데이터(562)를 지속적인 상태로 유지한다(즉, 그 값은 시스템(500)으로의 전력의 중단에도 불구하고 유지됨). 메모리(530)가 프로세서(520)에 명령어들을 제공하는 실행 또는 동작 메모리이기는 하지만, 스토리지(560)는 일반적으로 "메모리"인 것으로 고려될 수 있다. 스토리지(560)는 비휘발성인 반면, 메모리(530)는 휘발성 메모리를 포함할 수 있다(즉, 시스템(500)에 전력이 중단되면 그 데이터의 값 또는 상태는 불확정적임).
주변기기 인터페이스(570)는 위에서 구체적으로 언급되지 않은 임의의 하드웨어 인터페이스를 포함할 수 있다. 주변기기들은 시스템(500)에 의존적으로 접속하는 디바이스들을 일반적으로 참조한다. 의존적 접속은, 그 상에서 동작이 실행되고, 그것과 사용자가 상호작용하는 소프트웨어 및/또는 하드웨어 플랫폼을 시스템(500)이 제공하는 것이다.
일 실시예에서, 메모리 서브시스템(530)은 명령 로직(580)을 포함하며, 이는 메모리(532)의 로직 및/또는 메모리 제어기(534)의 로직을 나타낼 수 있다. 명령 로직(580)은 메모리 서브시스템이 동일한 식별된 뱅크에 뱅크 그룹들에 걸치는 뱅크 당 명령들을 적용하게 한다. 예를 들어, 뱅크 당 명령들은 뱅크 당 프리차지 및/또는 뱅크 당 리프레시 명령들을 포함할 수 있다. 일 실시예에서, 뱅크 당 리프레시 명령은 뱅크 번호를 식별할 수 있고, 동일한 뱅크는 메모리 디바이스에 의해 모든 뱅크 그룹들에 걸쳐 리프레시될 수 있다. 유사하게, 일 실시예에서, 뱅크 당 프리차지 명령은 뱅크 번호를 식별할 수 있고, 동일한 뱅크는 메모리 디바이스에 의해 모든 뱅크 그룹들에 걸쳐 프리차지될 수 있다.
도 6은 뱅크 그룹들에 걸쳐 명시되는 뱅크의 리프레시가 구현될 수 있는 모바일 디바이스의 실시예의 블록도이다. 디바이스(600)는, 컴퓨팅 태블릿, 모바일 폰 또는 스마트폰, 무선 가능형 이-리더(wireless-enabled e-reader), 웨어러블 컴퓨팅 디바이스, 또는 다른 모바일 디바이스와 같은, 모바일 컴퓨팅 디바이스를 나타낸다. 컴포넌트들 중 일부가 일반적으로 도시되지만, 이러한 디바이스의 모든 컴포넌트들이 디바이스(600)에서 도시되는 것은 아니라는 점이 이해될 것이다.
디바이스(600)는 프로세서(610)를 포함하며, 이는 디바이스(600)의 주 처리 동작들을 수행한다. 프로세서(610)는, 마이크로프로세서들, 애플리케이션 프로세서들, 마이크로제어기들, 프로그래밍 가능한 로직 디바이스들, 또는 다른 처리 수단과 같은, 하나 이상의 물리 디바이스들을 포함할 수 있다. 프로세서(610)에 의해 수행되는 처리 동작들은 애플리케이션들 및/또는 디바이스 기능들이 실행되는 운영 플랫폼 또는 운영 체제의 실행을 포함한다. 처리 동작들은 인간 사용자와의 또는 다른 디바이스들과의 I/O(input/output)에 관련된 동작들, 전력 관리에 관련된 동작들, 및/또는 디바이스(600)를 다른 디바이스에 접속하는 것에 관련된 동작들을 포함한다. 처리 동작들은 오디오 I/O 및/또는 디스플레이 I/O에 관련된 동작들을 또한 포함할 수 있다.
일 실시예에서, 디바이스(600)는 오디오 서브시스템(620)을 포함하며, 이는 컴퓨팅 디바이스에 오디오 기능들을 제공하는 것과 관련된 하드웨어(예를 들어, 오디오 하드웨어 및 오디오 회로들) 및 소프트웨어(예를 들어, 드라이버들, 코덱들) 컴포넌트들을 나타낸다. 오디오 기능들은 스피커 및/또는 헤드폰 출력, 뿐만 아니라 마이크로폰 입력을 포함할 수 있다. 이러한 기능들을 위한 디바이스들은 디바이스(600)에 통합되거나, 또는 디바이스(600)에 접속될 수 있다. 일 실시예에서, 사용자는 프로세서(610)에 의해 수신되고 처리되는 오디오 명령들을 제공하는 것에 의해 디바이스(600)와 상호작용한다.
디스플레이 서브시스템(630)은 사용자가 컴퓨팅 디바이스와 상호작용하기 위한 시각적 및/또는 촉각적 디스플레이를 제공하는 하드웨어(예를 들어, 디스플레이 디바이스들) 및 소프트웨어(예를 들어, 드라이버들) 컴포넌트들을 나타낸다. 디스플레이 서브시스템(630)은 디스플레이 인터페이스(632)를 포함하며, 이는 사용자에게 디스플레이를 제공하는데 사용되는 특정 스크린 또는 하드웨어 디바이스를 포함한다. 일 실시예에서, 디스플레이 인터페이스(632)는 디스플레이에 관련된 적어도 일부 처리를 수행하기 위해 프로세서(610)와 별개인 로직을 포함한다. 일 실시예에서, 디스플레이 서브시스템(630)은 사용자에게 출력 및 입력 양자 모두를 제공하는 터치스크린 디바이스를 포함한다. 일 실시예에서, 디스플레이 서브시스템(630)은 사용자에 출력을 제공하는 HD(high definition) 디스플레이를 포함한다. 고 해상도는 대략 100 PPI(pixels per inch) 이상의 픽셀 밀도를 갖는 디스플레이를 참조할 수 있고, 풀 HD(예를 들어, 1080p), 레티나 디스플레이들, 4K(초 고 해상도 또는 UHD) 등과 같은 포맷들을 포함할 수 있다.
I/O 제어기(640)는 사용자와의 상호작용에 관련된 하드웨어 디바이스들 및 소프트웨어 컴포넌트들을 나타낸다. I/O 제어기(640)는 오디오 서브시스템(620) 및/또는 디스플레이 서브시스템(630)의 일부인 하드웨어를 관리하도록 동작할 수 있다. 추가적으로, I/O 제어기(640)는 그것을 통해 사용자가 시스템과 상호작용할 수 있는 디바이스(600)에 접속하는 추가적 디바이스들을 위한 접속 포인트를 도시한다. 예를 들어, 디바이스(600)에 부착될 수 있는 디바이스들은, 마이크로폰 디바이스들, 스피커 또는 스테레오 시스템들, 비디오 시스템들 또는 다른 디스플레이 디바이스, 키보드 또는 키패드 디바이스들, 또는 카드 판독기들 또는 다른 디바이스들과 같이 구체적인 애플리케이션들과 함께 사용하기 위한 다른 I/O 디바이스들을 포함할 수 있다.
위에 언급된 바와 같이, I/O 제어기(640)는 오디오 서브시스템(620) 및/또는 디스플레이 서브시스템(630)과 상호작용할 수 있다. 예를 들어, 마이크로폰 또는 다른 오디오 디바이스를 통한 입력은 디바이스(600)의 하나 이상의 애플리케이션들 또는 기능들을 위한 입력 또는 명령들을 제공할 수 있다. 추가적으로, 오디오 출력이 디스플레이 출력 대신에 또는 디스플레이 출력에 추가하여 제공될 수 있다. 다른 예에서, 디스플레이 서브시스템이 터치스크린을 포함하면, 디스플레이 디바이스는 입력 디바이스로서 또한 작용하며, 이는 I/O 제어기(640)에 의해 적어도 부분적으로 관리될 수 있다. I/O 제어기(640)에 의해 관리되는 I/O 기능들을 제공하는 추가적 버튼들 또는 스위치들이 디바이스(600) 상에 또한 존재할 수 있다.
일 실시예에서, I/O 제어기(640)는 디바이스(600)에 포함될 수 있는 가속도계들, 카메라들, 광 센서들 또는 다른 환경 센서들, 자이로스코프들, GPS(global positioning system), 또는 다른 하드웨어와 같은 디바이스들을 관리한다. 입력은 직접적 사용자 상호작용의 부분일 수 있을 뿐만 아니라, 시스템에 환경적 입력을 제공하여 그것의 동작들(예를 들어, 노이즈에 대한 필터링, 밝기 검출에 대한 디스플레이들의 조정, 카메라에 대한 플래시의 적용, 또는 다른 특징들)에 영향을 줄 수 있다. 일 실시예에서, 디바이스(600)는 배터리 전력 사용량, 배터리의 충전, 및 절전 동작에 관련되는 특징들을 관리하는 전력 관리(650)를 포함한다.
메모리 서브시스템(660)은 디바이스(600)에 정보를 저장하기 위한 메모리 디바이스(들)(662)를 포함한다. 메모리 서브시스템(660)은 비휘발성(메모리 디바이스로의 전력이 중단되면 상태가 변경되지 않음) 및/또는 휘발성(메모리 디바이스로의 전력이 중단되면 상태가 불확정적임) 메모리 디바이스들을 포함할 수 있다. 메모리(660)는 애플리케이션 데이터, 사용자 데이터, 음악, 사진, 문서들, 또는 다른 데이터, 뿐만 아니라 시스템(600)의 애플리케이션들 및 기능들의 실행에 관련되는 시스템 데이터(장기적 또는 일시적임)를 저장할 수 있다. 일 실시예에서, 메모리 서브시스템(660)은 메모리 제어기(664)를 포함한다(이는 시스템(600)의 제어의 부분으로 또한 고려될 수 있으며, 잠재적으로 프로세서(610)의 부분으로 고려될 수 있음). 메모리 제어기(664)는 명령들을 생성하여 메모리 디바이스(662)에 발행하는 스케줄러를 포함한다.
접속성(670)은 디바이스(600)가 외부 디바이스들과 통신할 수 있게 하는 하드웨어 디바이스들(예를 들어, 무선 및/또는 유선 커넥터들 및 통신 하드웨어) 및 소프트웨어 컴포넌트들(예를 들어, 드라이버들, 프로토콜 스택들)을 포함한다. 외부 디바이스는, 다른 컴퓨팅 디바이스들, 무선 액세스 포인트들 또는 기지국들과 같은, 별도의 디바이스들, 뿐만 아니라 헤드셋들, 프린터들 또는 다른 디바이스들과 같은 주변기기들일 수 있다.
접속성(670)은 다수의 상이한 타입들의 접속성을 포함할 수 있다. 일반화하기 위해, 디바이스(600)는 셀룰러 접속성(672) 및 무선 접속성(674)으로 도시된다. 셀룰러 접속성(672)은, GSM(global system for mobile communications) 또는 변형물들 또는 파생물들, CDMA(code division multiple access) 또는 변형물들 또는 파생물들, TDM(time division multiplexing) 또는 변형물들 또는 파생물들, LTE(long term evolution - "4G"라고도 참조됨), 또는 다른 셀룰러 서비스 표준들을 통해 제공되는 것과 같이, 무선 캐리어들에 의해 제공되는 셀룰러 네트워크 접속성을 일반적으로 참조한다. 무선 접속성(674)은 셀룰러가 아닌 무선 접속성을 참조하고, (블루투스와 같은) 개인 영역 네트워크들, (WiFi와 같은) 근거리 네트워크들, 및/또는 (WiMax와 같은) 광역 네트워크들, 또는 다른 무선 통신을 포함할 수 있다. 무선 통신은 비-고체 매체를 통한 변조된 전자기 복사의 사용을 통한 데이터의 전달을 참조한다. 유선 통신은 고체 통신 매체를 통해 발생한다.
주변기기 접속들(680)은 하드웨어 인터페이스들 및 커넥터들 뿐만 아니라, 주변기기 접속들을 이루기 위한 소프트웨어 컴포넌트들(예를 들어, 드라이버들, 프로토콜 스택들)을 포함한다. 디바이스(600)는 다른 컴퓨팅 디바이스들로의 주변기기 디바이스들("로(to)"(682))일 수 있을 뿐만 아니라 그에 접속되는 주변기기 디바이스들("로부터(from)"(684))을 가질 수 있다는 점이 이해될 것이다. 디바이스(600)는 디바이스(600) 상의 콘텐츠를 관리(예를 들어, 다운로드 및/또는 업로드, 변경, 동기화)하는 것과 같은 목적들을 위해 다른 컴퓨팅 디바이스들에 접속하는 "도킹(docking)" 커넥터를 보통 갖는다. 추가적으로, 도킹 커넥터는 디바이스(600)가, 예를 들어, 시청각적 또는 다른 시스템들로의 콘텐츠 출력을 제어하게 하는 특정 주변기기들에 디바이스(600)가 접속하게 할 수 있다.
전용 도킹 커넥터 또는 다른 전용 접속 하드웨어에 추가적으로, 디바이스(600)는 공통의 또는 표준 기반의 커넥터들을 통해 주변기기 접속들(680)을 행할 수 있다. 공통 타입들은 USB(Universal Serial Bus) 커넥터(다수의 상이한 하드웨어 인터페이스들 중 임의의 것을 포함할 수 있음), MDP(MiniDisplayPort)를 포함하는 DisplayPort, HDMI(High Definition Multimedia Interface), Firewire, 또는 다른 타입을 포함할 수 있다.
일 실시예에서, 메모리 서브시스템(660)은 명령 로직(666)을 포함을 포함하며, 이는 메모리(662)의 로직 및/또는 메모리 제어기(664)의 로직을 나타낼 수 있다. 명령 로직(666)은 메모리 서브시스템이 동일한 식별된 뱅크에 뱅크 그룹들에 걸치는 뱅크 당 명령들을 적용하게 한다. 예를 들어, 뱅크 당 명령들은 뱅크 당 프리차지 및/또는 뱅크 당 리프레시 명령들을 포함할 수 있다. 일 실시예에서, 뱅크 당 리프레시 명령은 뱅크 번호를 식별할 수 있고, 동일한 뱅크는 메모리 디바이스에 의해 모든 뱅크 그룹들에 걸쳐 리프레시될 수 있다. 유사하게, 일 실시예에서, 뱅크 당 프리차지 명령은 뱅크 번호를 식별할 수 있고, 동일한 뱅크는 메모리 디바이스에 의해 모든 뱅크 그룹들에 걸쳐 프리차지될 수 있다.
일 양상에서, 메모리 서브시스템에서 리프레시하기 위한 메모리 디바이스는, 메모리 리소스들의 뱅크들이 뱅크 그룹 식별자 및 뱅크 식별자에 의해 뱅크 그룹들에서 개별적으로 어드레스 지정될 수 있는 뱅크 그룹 아키텍처에서의 메모리의 다수의 뱅크들; 메모리 제어기에 연결되고 메모리 제어기로부터 명령을 수신하는 I/O(input/output) 하드웨어- 명령은 뱅크 식별자를 포함함 -; 명령을 디코딩하고, 명령에 적어도 일부 기초하여, 뱅크 식별자에 대응하는 뱅크들- 상이한 뱅크 그룹들에서의 뱅크들을 포함함 -을 액세스하는 로직을 포함한다.
일 실시예에서, I/O 하드웨어는 하나보다 많은 뱅크에 대한 뱅크 식별자를 갖는 명령을 수신하도록 구성된다. 일 실시예에서, I/O 하드웨어는 뱅크 그룹 식별자를 갖지 않는 명령을 수신하도록 구성된다. 일 실시예에서, I/O 하드웨어는 모든 뱅크 그룹들을 선택하기 위해 뱅크 그룹 식별자를 갖는 명령을 수신하도록 구성된다. 일 실시예에서, 명령은 리프레시 명령을 포함한다. 일 실시예에서, 명령은 프리차지 명령을 포함한다. 일 실시예에서, 명령은 상이한 뱅크 그룹들에서의 동일한 뱅크 식별자에 액세스하기 위해 프리차지 명령 및 리프레시 명령의 시퀀스를 포함한다. 일 실시예에서, 메모리 디바이스에 연결되는 메모리 제어기를 더 포함한다. 일 실시예에서, 적어도 하나의 프로세서 및 네트워크 인터페이스를 더 포함하고, 적어도 하나의 프로세서는 메모리 제어기에 통신 가능하게 연결되고, 네트워크 인터페이스는 적어도 하나의 프로세서에 통신 가능하게 연결된다.
일 양상에서, 리프레시를 수행하기 위한 시스템은, 메모리 제어기; 메모리 제어기와 연결되는 메모리 디바이스- 메모리 디바이스는 메모리 리소스들의 뱅크들이 뱅크 그룹 식별자 및 뱅크 식별자에 의해 뱅크 그룹들에서 개별적으로 어드레스 지정될 수 있는 뱅크 그룹 아키텍처에서의 메모리의 다수의 뱅크들을 포함함 -; 메모리 제어기에 연결되고 메모리 제어기로부터 명령을 수신하는 I/O(input/output) 하드웨어- 명령은 뱅크 식별자를 포함함 -; 명령을 디코딩하고, 명령에 적어도 일부 기초하여, 뱅크 식별자에 대응하는 뱅크들- 상이한 뱅크 그룹들에서의 뱅크들을 포함함 -을 액세스하는 로직을 포함한다.
이러한 시스템의 일 양상에서, 메모리 디바이스는 위 메모리 디바이스의 양상의 임의의 실시예에 따른다. 일 실시예에서, 메모리 제어기에 통신 가능하게 연결되는 적어도 하나의 프로세서를 더 포함한다. 일 실시예에서, 메모리 제어기는 프로세서의 일부이다. 일 실시예에서, 적어도 하나의 프로세서에 통신 가능하게 연결되는 네트워크 인터페이스를 더 포함한다.
일 양상에서, 메모리 서브시스템에서 리프레시하기 위한 방법은, 메모리 제어기로부터 메모리 디바이스에서의 명령을 수신하는 단계- 명령은 뱅크 식별자를 포함하고, 메모리 디바이스는 메모리 리소스들의 뱅크들이 뱅크 그룹 식별자 및 뱅크 식별자에 의해 뱅크 그룹들에서 개별적으로 어드레스 지정될 수 있는 뱅크 그룹 아키텍처를 가짐 -; 및 명령을 수신하는 단계에 응답하여, 뱅크 식별자에 대응하는 모든 뱅크들- 상이한 뱅크 그룹들에서의 뱅크들을 포함함 -로 하여금 명령을 실행하게 하는 단계를 포함한다.
본 방법의 일 양상에서, 본 방법은 메모리 디바이스에 관하여 위에 제시된 임의의 실시예에 따른 동작들을 포함하는 것이다. 일 양상에서, 제조 물품은 콘텐츠를 저장하고 있는 컴퓨터 판독가능 스토리지 매체를 포함하고, 이는 액세스될 때 동작들의 수행으로 하여금 본 방법의 임의의 실시예에 따른 리프레시하기 위한 방법을 실행하게 한다. 일 양상에서, 리프레시하기 위한 장치는 본 방법의 임의의 실시예에 따른 방법을 실행하는 동작들을 수행하기 위한 수단을 포함한다.
일 양상에서, 메모리 제어기는, 메모리 디바이스의 식별된 부분만을 액세스하도록 관련된 메모리 디바이스의 일부 상에서 실행하기 위한 명령을 전송하기로 결정하는 명령 로직- 메모리 디바이스는 메모리 리소스들의 뱅크들이 뱅크 그룹 식별자 및 뱅크 식별자에 의해 뱅크 그룹들에서 개별적으로 어드레스 지정될 수 있는 뱅크 그룹 아키텍처를 가짐 -; 및 메모리 디바이스에 연결되는 I/O(input/output) 하드웨어- I/O 하드웨어는 명령을 생성하여 메모리 디바이스에 전송하고, 명령은 뱅크 식별자를 포함하고, 명령은 명령의 실행을 위해 메모리 디바이스 내의 뱅크 식별자에 대응하는 모든 뱅크들- 상이한 뱅크 그룹들에서의 뱅크들을 포함함 -을 액세스하는 것임 -를 포함한다.
일 실시예에서, 명령을 전송하는 I/O 하드웨어는 하나보다 많은 뱅크에 대한 뱅크 식별자가 있는 명령을 전송하도록 구성되는 I/O 하드웨어를 포함한다. 일 실시예에서, 명령을 전송하는 I/O 하드웨어는 뱅크 그룹 식별자가 없는 명령을 전송하도록 구성되는 I/O 하드웨어를 포함한다. 일 실시예에서, 명령을 전송하는 I/O 하드웨어는 모든 뱅크 그룹을 선택하기 위해 뱅크 그룹 식별자가 있는 명령을 전송하도록 구성되는 I/O 하드웨어를 포함한다. 일 실시예에서, 명령을 전송하는 I/O 하드웨어는 상이한 뱅크 그룹들에서의 동일한 뱅크 식별자를 액세스하기 위해 프리차지 명령, 리프레시 명령, 또는 양자 모두를 순차적으로 전송하도록 구성되는 I/O 하드웨어를 포함한다.
일 양상에서, 리프레시를 수행하기 위한 제2 시스템은, 메모리 디바이스; 및 메모리 디바이스에 연결되는 메모리 제어기- 메모리 제어기는 메모리 디바이스의 식별된 부분만을 액세스하도록 관련된 메모리 디바이스의 일부 상에서 실행하기 위한 명령을 전송하기로 결정하는 명령 로직을 포함하고, 메모리 디바이스는 메모리 리소스들의 뱅크들이 뱅크 그룹 식별자 및 뱅크 식별자에 의해 뱅크 그룹들에서 개별적으로 어드레스 지정될 수 있는 뱅크 그룹 아키텍처를 가짐 -; 및 메모리 디바이스에 연결되는 I/O(input/output) 하드웨어- I/O 하드웨어는 명령을 생성하여 메모리 디바이스에 전송하고, 명령은 뱅크 식별자를 포함하고, 명령은 명령의 실행을 위해 메모리 디바이스 내의 뱅크 식별자에 대응하는 모든 뱅크들- 상이한 뱅크 그룹들에서의 뱅크들을 포함함 -을 액세스하는 것임 -를 포함한다.
제2 시스템의 일 양상에서, 메모리 디바이스는 위 메모리 제어기의 양상의 임의의 실시예에 따른다. 일 실시예에서, 메모리 제어기에 통신 가능하게 연결되는 적어도 하나의 프로세서를 더 포함한다. 일 실시예에서, 메모리 제어기는 프로세서의 일부이다. 일 실시예에서, 적어도 하나의 프로세서에 통신 가능하게 연결되는 네트워크 인터페이스를 더 포함한다.
일 양상에서, 메모리 서브시스템에서 리프레시하기 위한 제2 방법은, 메모리 디바이스의 식별된 부분만을 액세스하도록 관련된 메모리 디바이스의 일부 상에서 실행하기 위한 명령을 전송하기로 결정하는 단계- 메모리 디바이스는 메모리 리소스들의 뱅크들이 뱅크 그룹 식별자 및 뱅크 식별자에 의해 뱅크 그룹들에서 개별적으로 어드레스 지정될 수 있는 뱅크 그룹 아키텍처를 가짐 -; 및 명령을 메모리 디바이스에 전송하는 단계- 명령은 뱅크 식별자를 포함하고, 명령은 명령의 실행을 위해 메모리 디바이스 내의 뱅크 식별자에 대응하는 모든 뱅크들- 상이한 뱅크 그룹들에서의 뱅크들을 포함함 -을 액세스하는 것임 -를 포함한다.
제2 방법의 일 양상에서, 제2 방법은 메모리 제어기에 관하여 위에 제시된 임의의 실시예에 따른 동작들을 포함하는 것이다. 일 양상에서, 제조 물품은 콘텐츠를 저장하고 있는 컴퓨터 판독가능 스토리지 매체를 포함하고, 이는 액세스될 때 동작들의 수행으로 하여금 제2 방법의 임의의 실시예에 따른 리프레시하기 위한 방법을 실행하게 한다. 일 양상에서, 리프레시하기 위한 장치는 제2 방법의 임의의 실시예에 따른 방법을 실행하는 동작들을 수행하기 위한 수단을 포함한다.
본 명세서에 도시되는 바와 같은 흐름도들은 다양한 프로세스 액션들의 시퀀스들의 예들을 제공한다. 이러한 흐름도들은 소프트웨어 또는 펌웨어 루틴에 의해 실행될 동작들뿐만 아니라 물리 동작들을 나타낼 수 있다. 일 실시예에서, 흐름도는 FSM(finite state machine)의 상태를 도시할 수 있으며, 이는 하드웨어 및/또는 소프트웨어로 구현될 수 있다. 특정 시퀀스 또는 순서로 도시되지만, 다른 방식으로 명시되지 않는 한, 액션들의 순서는 수정될 수 있다. 따라서, 도시된 실시예들은 예로서만 이해되어야 하며, 프로세스는 상이한 순서로 수행될 수 있고, 일부 액션들은 병렬로 수행될 수 있다. 추가적으로, 하나 이상의 액션들이 다양한 실시예들에서 생략될 수 있고; 따라서, 모든 액션들이 모든 실시예에서 요구되는 것은 아니다. 다른 프로세스 흐름들이 가능하다.
다양한 동작들 또는 기능들이 본 명세서에서 설명되는 범위에 대해, 이들은 소프트웨어 코드, 명령어들, 구성, 및/또는 데이터로서 설명되거나 정의될 수 있다. 콘텐츠는 직접 실행가능한("오브젝트(object)" 또는 "실행가능(executable)" 형태), 소스 코드, 또는 차이 코드("델타(delta)" 또는 "패치(patch)" 코드)일 수 있다. 본 명세서에 설명되는 실시예들의 소프트웨어 콘텐츠는 그 상에 콘텐츠가 저장되는 제조 물품을 통해, 또는 통신 인터페이스를 통해 데이터를 전송하는 통신 인터페이스를 동작하는 방법을 통해 제공될 수 있다. 머신 판독가능 스토리지 매체는 머신으로 하여금 설명된 기능들 또는 동작들을 수행하게 할 수 있고, 기록가능한/기록가능하지 않은 매체(예를 들어, ROM(read only memory), RAM(random access memory), 자기 디스크 스토리지 매체, 광학 스토리지 매체, 플래시 메모리 디바이스들 등)와 같이, 머신(예를 들어, 컴퓨팅 디바이스, 전자 시스템 등)에 의해 액세스 가능한 형태로 정보를 저장하는 임의의 메커니즘을 포함한다. 통신 인터페이스는, 메모리 버스 인터페이스, 프로세서 버스 인터페이스, 인터넷 접속, 디스크 제어기 등과 같은, 다른 디바이스에 통신하는 하드와이어링된 매체, 무선 매체, 광학 매체 등 중 임의의 것에 인터페이스하는 임의의 메커니즘을 포함한다. 통신 인터페이스는 소프트웨어 콘텐츠를 설명하는 데이터 신호를 제공하는 통신 인터페이스를 준비하도록 구성 파라미터들을 제공하고 및/또는 신호들을 전송하는 것에 의해 구성될 수 있다. 통신 인터페이스는 통신 인터페이스에 전송되는 하나 이상의 명령들 또는 신호들을 통해 액세스될 수 있다.
본 명세서에 설명되는 다양한 컴포넌트들은 설명된 동작들 또는 기능들을 수행하기 위한 수단일 수 있다. 본 명세서에 설명되는 각각의 컴포넌트는 소프트웨어, 하드웨어,또는 이들의 조합을 포함한다. 이러한 컴포넌트들은 소프트웨어 모듈들, 하드웨어 모듈들, 특수-목적 하드웨어(예를 들어, 주문형 하드웨어, ASIC들(application specific integrated circuits), DSP들(digital signal processors) 등), 임베디드 제어기들, 하드와이어드 회로 등으로서 구현될 수 있다.
본 명세서에 설명되는 것 외에도, 본 발명의 범위를 벗어나지 않으면 서 본 발명의 개시된 실시예 및 구현 예에 대해 다양한 수정이 이루어질 수 있다. 따라서, 본 명세서에서의 예시들 및 예들은 제한적 의미가 아니라 예시적 의미로 해석되어야 한다. 본 발명의 범위는 후속하는 청구항들을 참조하는 것에 의해서만 측정되어야 한다.

Claims (24)

  1. DRAM(dynamic random access memory) 디바이스로서,
    뱅크 그룹 식별자에 의해 그리고 뱅크 식별자에 의해 어드레스 지정될 수 있는 메모리의 다수의 뱅크;
    명령 및 어드레스 버스의 다수의 신호 라인에 결합되는 인터페이스 하드웨어; 및
    상기 인터페이스 하드웨어에서의 신호 패턴을, 액세스 명령과 뱅크 식별자를 포함하고 뱅크 그룹 식별자는 포함하지 않는 동일한 뱅크 명령으로서 식별할 수 있는 로직 - 상기 로직은, 상기 동일한 뱅크 명령에 응답하여, 다수의 상이한 뱅크 그룹의 선택된 뱅크들에만 상기 액세스 명령을 병렬로 적용함 -
    을 포함하는 DRAM 디바이스.
  2. 제1항에 있어서, 상기 동일한 뱅크 명령은 동일한 뱅크 리프레시 명령을 포함하는, DRAM 디바이스.
  3. 제2항에 있어서, 상기 로직은 특정 뱅크들에 대한 리프레시 카운트를 추적하기 위한 내부 뱅크 카운터, 및 글로벌 리프레시 카운터 둘 다를 포함하는, DRAM 디바이스.
  4. 제1항에 있어서, 상기 동일한 뱅크 명령은 동일한 뱅크 프리차지 명령을 포함하는, DRAM 디바이스.
  5. 제1항에 있어서, 상기 동일한 뱅크 명령은 상이한 뱅크 그룹들의 동일한 상기 뱅크 식별자에 액세스하기 위해 동일한 뱅크 프리차지 명령 및 동일한 뱅크 리프레시 명령의 시퀀스를 포함하는, DRAM 디바이스.
  6. 제1항에 있어서, 상기 신호 패턴은 상기 뱅크 및 뱅크 그룹으로 향하는 명령과 상기 동일한 뱅크 명령을 구별하기 위한 단일의 신호 라인 로직 값을 포함하는, DRAM 디바이스.
  7. 제1항에 있어서, 상기 DRAM 디바이스는 DDR5(double date rate version 5) 표준과 호환되는 메모리 디바이스를 포함하는, DRAM 디바이스.
  8. 시스템으로서,
    연관된 메모리 디바이스들의 리프레시를 관리하기 위한 메모리 제어기; 및
    상기 메모리 제어기와 연결되는 다수의 메모리 디바이스
    를 포함하고,
    상기 메모리 디바이스는,
    뱅크 그룹 식별자에 의해 그리고 뱅크 식별자에 의해 어드레스 지정될 수 있는 메모리의 다수의 뱅크;
    명령 및 어드레스 버스의 다수의 신호 라인에 결합되는 인터페이스 하드웨어; 및
    상기 인터페이스 하드웨어에서의 신호 패턴을, 액세스 명령과 뱅크 식별자를 포함하고 뱅크 그룹 식별자는 포함하지 않는 동일한 뱅크 명령으로서 식별할 수 있는 로직 - 상기 로직은, 상기 동일한 뱅크 명령에 응답하여, 다수의 상이한 뱅크 그룹의 선택된 뱅크들에만 상기 액세스 명령을 병렬로 적용함 -
    을 포함하는 시스템.
  9. 제8항에 있어서, 상기 동일한 뱅크 명령은 동일한 뱅크 리프레시 명령을 포함하는, 시스템.
  10. 제9항에 있어서, 상기 로직은 특정 뱅크들에 대한 리프레시 카운트를 추적하기 위한 내부 뱅크 카운터, 및 글로벌 리프레시 카운터 둘 다를 포함하는, 시스템.
  11. 제8항에 있어서, 상기 동일한 뱅크 명령은 동일한 뱅크 프리차지 명령을 포함하는, 시스템.
  12. 제8항에 있어서, 상기 동일한 뱅크 명령은 상이한 뱅크 그룹들에서의 동일한 뱅크 식별자에 액세스하기 위해 동일한 뱅크 프리차지 명령 및 동일한 뱅크 리프레시 명령의 시퀀스를 포함하는, 시스템.
  13. 제8항에 있어서, 상기 신호 패턴은 상기 뱅크 및 뱅크 그룹으로 향하는 명령과 상기 동일한 뱅크 명령을 구별하기 위한 단일의 신호 라인 로직 값을 포함하는, 시스템.
  14. 제11항에 있어서, 상기 메모리 디바이스는 DDR5 표준과 호환되는 메모리 디바이스를 포함하는, 시스템.
  15. 제8항에 있어서,
    상기 메모리 제어기에 통신 가능하게 연결되는 적어도 하나의 프로세서;
    상기 적어도 하나의 프로세서에 통신 가능하게 연결되는 디스플레이; 또는
    상기 적어도 하나의 프로세서에 통신 가능하게 연결되는 네트워크 인터페이스
    중 하나 이상을 더 포함하는, 시스템.
  16. 메모리 제어기로서,
    명령 및 어드레스 버스의 다수의 신호 라인을 통해 메모리 디바이스에 연결되는 인터페이스 하드웨어 - 상기 명령 및 어드레스 버스는 뱅크 어드레스를 식별하기 위한 적어도 하나의 뱅크 어드레스 신호 라인 및 뱅크 그룹을 식별하기 위한 적어도 하나의 뱅크 그룹 신호 라인을 포함함 -; 및
    상기 메모리 디바이스의 식별된 부분으로만의 액세스를 식별하기 위해 명령 및 어드레스 비트들을 선택적으로 설정하는 것을 포함하는 동일한 뱅크 명령을 발행하기 위한 명령 로직 - 상기 동일한 뱅크 명령은 상기 적어도 하나의 뱅크 어드레스 신호 라인에 의해 뱅크 식별자를 식별하고, 상기 적어도 하나의 뱅크 그룹 신호 라인에 의해 뱅크 그룹을 식별하지 않음 -
    을 포함하고, 상기 동일한 뱅크 명령은, 상이한 뱅크 그룹들 내의 뱅크들을 포함하여, 상기 명령의 실행을 위해 상기 메모리 디바이스 내의 뱅크 식별자에 대응하는 모든 뱅크들에 상기 메모리 디바이스가 액세스하도록 트리거하는 것인, 메모리 제어기.
  17. 제16항에 있어서, 상기 동일한 뱅크 명령은 동일한 뱅크 리프레시 명령을 포함하는, 메모리 제어기.
  18. 제16항에 있어서, 상기 동일한 뱅크 명령은 동일한 뱅크 프리차지 명령을 포함하는, 메모리 제어기.
  19. 제16항에 있어서, 상기 동일한 뱅크 명령은 상이한 뱅크 그룹들에서의 동일한 상기 뱅크 식별자에 액세스하기 위해 동일한 뱅크 프리차지 명령 및 동일한 뱅크 리프레시 명령의 시퀀스를 포함하는, 메모리 제어기.
  20. 제16항에 있어서, 상기 명령 로직은, 상기 명령 및 어드레스 버스의 신호 라인을, 뱅크 및 뱅크 그룹으로 향하는 명령과 상기 동일한 뱅크 명령을 구별하기 위한 로직 값으로 설정하는, 메모리 제어기.
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
KR1020177021191A 2015-02-28 2016-02-12 뱅크 그룹 아키텍처가 있는 메모리 디바이스에서의 뱅크들 프리차징 및 리프레싱 KR102511465B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562126597P 2015-02-28 2015-02-28
US62/126,597 2015-02-28
US14/865,754 US9728245B2 (en) 2015-02-28 2015-09-25 Precharging and refreshing banks in memory device with bank group architecture
US14/865,754 2015-09-25
PCT/US2016/017688 WO2016137760A1 (en) 2015-02-28 2016-02-12 Precharging and refreshing banks in memory device with bank group architecture

Publications (2)

Publication Number Publication Date
KR20170125011A KR20170125011A (ko) 2017-11-13
KR102511465B1 true KR102511465B1 (ko) 2023-03-16

Family

ID=56789155

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177021191A KR102511465B1 (ko) 2015-02-28 2016-02-12 뱅크 그룹 아키텍처가 있는 메모리 디바이스에서의 뱅크들 프리차징 및 리프레싱

Country Status (5)

Country Link
US (2) US9728245B2 (ko)
KR (1) KR102511465B1 (ko)
CN (3) CN107210063B (ko)
TW (2) TWI713024B (ko)
WO (1) WO2016137760A1 (ko)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9728245B2 (en) * 2015-02-28 2017-08-08 Intel Corporation Precharging and refreshing banks in memory device with bank group architecture
US10490251B2 (en) 2017-01-30 2019-11-26 Micron Technology, Inc. Apparatuses and methods for distributing row hammer refresh events across a memory device
CN106875971B (zh) 2017-02-16 2021-01-22 上海兆芯集成电路有限公司 动态随机存取存储器控制器及其控制方法
CN106875970B (zh) * 2017-02-16 2021-06-01 上海兆芯集成电路有限公司 动态随机存取存储器控制器及其控制方法
US10141042B1 (en) 2017-05-23 2018-11-27 Micron Technology, Inc. Method and apparatus for precharge and refresh control
US20190026028A1 (en) * 2017-07-24 2019-01-24 Qualcomm Incorporated Minimizing performance degradation due to refresh operations in memory sub-systems
US10503670B2 (en) * 2017-12-21 2019-12-10 Advanced Micro Devices, Inc. Dynamic per-bank and all-bank refresh
US11017833B2 (en) 2018-05-24 2021-05-25 Micron Technology, Inc. Apparatuses and methods for pure-time, self adopt sampling for row hammer refresh sampling
CN108829348B (zh) * 2018-05-29 2022-03-04 上海兆芯集成电路有限公司 存储器装置及命令重排序方法
US10573370B2 (en) 2018-07-02 2020-02-25 Micron Technology, Inc. Apparatus and methods for triggering row hammer address sampling
KR102469113B1 (ko) * 2018-09-18 2022-11-22 에스케이하이닉스 주식회사 메모리 및 메모리의 리프레시 동작 방법
WO2020076986A1 (en) * 2018-10-09 2020-04-16 Micron Technology, Inc. Methods for row hammer mitigation and memory devices and systems employing the same
US10685696B2 (en) 2018-10-31 2020-06-16 Micron Technology, Inc. Apparatuses and methods for access based refresh timing
WO2020117686A1 (en) 2018-12-03 2020-06-11 Micron Technology, Inc. Semiconductor device performing row hammer refresh operation
US10593392B1 (en) 2018-12-19 2020-03-17 Micron Technology, Inc. Apparatuses and methods for multi-bank refresh timing
CN111354393B (zh) 2018-12-21 2023-10-20 美光科技公司 用于目标刷新操作的时序交错的设备和方法
US10957377B2 (en) 2018-12-26 2021-03-23 Micron Technology, Inc. Apparatuses and methods for distributed targeted refresh operations
US11615831B2 (en) 2019-02-26 2023-03-28 Micron Technology, Inc. Apparatuses and methods for memory mat refresh sequencing
US11227649B2 (en) 2019-04-04 2022-01-18 Micron Technology, Inc. Apparatuses and methods for staggered timing of targeted refresh operations
US11069393B2 (en) 2019-06-04 2021-07-20 Micron Technology, Inc. Apparatuses and methods for controlling steal rates
US10978132B2 (en) 2019-06-05 2021-04-13 Micron Technology, Inc. Apparatuses and methods for staggered timing of skipped refresh operations
US11302374B2 (en) 2019-08-23 2022-04-12 Micron Technology, Inc. Apparatuses and methods for dynamic refresh allocation
US11302377B2 (en) 2019-10-16 2022-04-12 Micron Technology, Inc. Apparatuses and methods for dynamic targeted refresh steals
US11681465B2 (en) * 2020-06-12 2023-06-20 Advanced Micro Devices, Inc. Dynamic multi-bank memory command coalescing
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
US11557331B2 (en) 2020-09-23 2023-01-17 Micron Technology, Inc. Apparatuses and methods for controlling refresh operations
US11222686B1 (en) 2020-11-12 2022-01-11 Micron Technology, Inc. Apparatuses and methods for controlling refresh timing
US11264079B1 (en) 2020-12-18 2022-03-01 Micron Technology, Inc. Apparatuses and methods for row hammer based cache lockdown
CN112711548B (zh) * 2021-01-11 2023-05-16 星宸科技股份有限公司 内存装置、图像处理芯片以及内存控制方法
CN113454720B (zh) * 2021-05-21 2024-04-23 长江先进存储产业创新中心有限责任公司 存储设备及其控制方法
CN114388025B (zh) * 2021-12-30 2022-09-13 中科声龙科技发展(北京)有限公司 动态随机存储器刷新电路和刷新方法、工作量证明芯片
WO2023154596A1 (en) * 2022-02-09 2023-08-17 Qualcomm Incorporated Memory system with adaptive refresh

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120026821A1 (en) * 2010-07-30 2012-02-02 Yong-Gu Kang Semiconductor device

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2995752B2 (ja) * 1989-07-21 1999-12-27 日本電気株式会社 バスアーキテクチャ変換回路
US6915480B2 (en) * 2001-12-21 2005-07-05 Agere Systems Inc. Processor with packet data flushing feature
US9087603B2 (en) * 2003-09-30 2015-07-21 Intel Corporation Method and apparatus for selective DRAM precharge
US7519762B2 (en) * 2003-09-30 2009-04-14 Intel Corporation Method and apparatus for selective DRAM precharge
US20050108460A1 (en) * 2003-11-14 2005-05-19 Intel Corporation Partial bank DRAM refresh
US7281079B2 (en) * 2003-12-31 2007-10-09 Intel Corporation Method and apparatus to counter mismatched burst lengths
US6967885B2 (en) 2004-01-15 2005-11-22 International Business Machines Corporation Concurrent refresh mode with distributed row address counters in an embedded DRAM
KR100653688B1 (ko) 2004-04-29 2006-12-04 삼성전자주식회사 반도체 메모리 장치 및 이 장치의 리프레쉬 방법, 및 이장치를 위한 메모리 시스템
US8688892B2 (en) * 2004-05-26 2014-04-01 OCZ Storage Solutions Inc. System and method for increasing DDR memory bandwidth in DDR SDRAM modules
US7184350B2 (en) 2004-05-27 2007-02-27 Qualcomm Incorporated Method and system for providing independent bank refresh for volatile memories
US7444577B2 (en) * 2005-08-04 2008-10-28 Rambus Inc. Memory device testing to support address-differentiated refresh rates
US7492656B2 (en) * 2006-04-28 2009-02-17 Mosaid Technologies Incorporated Dynamic random access memory with fully independent partial array refresh function
KR100809960B1 (ko) * 2006-09-28 2008-03-07 삼성전자주식회사 반도체 메모리 장치의 리프레시 회로 및 리프레시 방법
KR20090102789A (ko) * 2006-12-06 2009-09-30 퓨전 멀티시스템즈, 인크.(디비에이 퓨전-아이오) 프로그레시브 raid를 이용한 데이터 저장 장치, 시스템 및 방법
US20080151670A1 (en) * 2006-12-22 2008-06-26 Tomohiro Kawakubo Memory device, memory controller and memory system
JP5034551B2 (ja) * 2007-02-26 2012-09-26 富士通セミコンダクター株式会社 メモリコントローラ、半導体メモリのアクセス制御方法およびシステム
US20080270683A1 (en) 2007-04-25 2008-10-30 International Business Machines Corporation Systems and methods for a dram concurrent refresh engine with processor interface
KR100909630B1 (ko) 2007-11-02 2009-07-27 주식회사 하이닉스반도체 어드레스 카운터 회로
KR100965768B1 (ko) * 2007-12-26 2010-06-24 주식회사 하이닉스반도체 반도체 메모리 소자
US8411523B2 (en) 2010-09-24 2013-04-02 Intel Corporation Reduced current requirements for DRAM self-refresh modes via staggered refresh operations of subsets of memory banks or rows
US9293187B2 (en) 2011-09-26 2016-03-22 Cisco Technology, Inc. Methods and apparatus for refreshing digital memory circuits
KR20130072066A (ko) * 2011-12-21 2013-07-01 에스케이하이닉스 주식회사 반도체 메모리 장치 및 그의 구동 방법
US9236110B2 (en) * 2012-06-30 2016-01-12 Intel Corporation Row hammer refresh command
US8996934B2 (en) * 2012-09-29 2015-03-31 Intel Corporation Transaction-level testing of memory I/O and memory device
US9003246B2 (en) * 2012-09-29 2015-04-07 Intel Corporation Functional memory array testing with a transaction-level test engine
US9269417B2 (en) 2013-01-04 2016-02-23 Intel Corporation Memory refresh management
US9336855B2 (en) 2013-05-14 2016-05-10 Qualcomm Incorporated Methods and systems for smart refresh of dynamic random access memory
KR102105894B1 (ko) 2013-05-30 2020-05-06 삼성전자주식회사 휘발성 메모리 장치 및 그것의 리프레쉬 방법
US9117542B2 (en) 2013-09-27 2015-08-25 Intel Corporation Directed per bank refresh command
US9881656B2 (en) 2014-01-09 2018-01-30 Qualcomm Incorporated Dynamic random access memory (DRAM) backchannel communication systems and methods
US20150318035A1 (en) 2014-05-02 2015-11-05 Qualcomm Incorporated Priority adjustment of dynamic random access memory (dram) transactions prior to issuing a per-bank refresh for reducing dram unavailability
US9728245B2 (en) * 2015-02-28 2017-08-08 Intel Corporation Precharging and refreshing banks in memory device with bank group architecture

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120026821A1 (en) * 2010-07-30 2012-02-02 Yong-Gu Kang Semiconductor device

Also Published As

Publication number Publication date
TW201643876A (zh) 2016-12-16
TW201816789A (zh) 2018-05-01
US20160254044A1 (en) 2016-09-01
TWI713024B (zh) 2020-12-11
CN107210063A (zh) 2017-09-26
CN113113063B (zh) 2024-03-08
US9728245B2 (en) 2017-08-08
CN107210063B (zh) 2021-04-30
CN112382322A (zh) 2021-02-19
CN113113063A (zh) 2021-07-13
KR20170125011A (ko) 2017-11-13
US10109340B2 (en) 2018-10-23
TWI609370B (zh) 2017-12-21
US20180025773A1 (en) 2018-01-25
WO2016137760A1 (en) 2016-09-01

Similar Documents

Publication Publication Date Title
KR102511465B1 (ko) 뱅크 그룹 아키텍처가 있는 메모리 디바이스에서의 뱅크들 프리차징 및 리프레싱
US10636476B2 (en) Row hammer mitigation with randomization of target row selection
US20210151095A1 (en) Refresh command control for host assist of row hammer mitigation
US10680613B2 (en) Programmable on-die termination timing in a multi-rank system
US10679698B2 (en) Memory preset adjustment based on adaptive calibration
US9691468B2 (en) Directed per bank refresh command
US20190392886A1 (en) Applying chip select for memory device identification and power management control
US20170110178A1 (en) Hybrid refresh with hidden refreshes and external refreshes
US10490239B2 (en) Programmable data pattern for repeated writes to memory
US20170285992A1 (en) Memory subsystem with narrow bandwidth repeater channel
US11061590B2 (en) Efficiently training memory device chip select control
US20160378366A1 (en) Internal consecutive row access for long burst length
US9953694B2 (en) Memory controller-controlled refresh abort

Legal Events

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