KR20190004302A - 자동 리프레시 상태 머신 mop 어레이 - Google Patents

자동 리프레시 상태 머신 mop 어레이 Download PDF

Info

Publication number
KR20190004302A
KR20190004302A KR1020187033473A KR20187033473A KR20190004302A KR 20190004302 A KR20190004302 A KR 20190004302A KR 1020187033473 A KR1020187033473 A KR 1020187033473A KR 20187033473 A KR20187033473 A KR 20187033473A KR 20190004302 A KR20190004302 A KR 20190004302A
Authority
KR
South Korea
Prior art keywords
memory
controller
entry
power state
array
Prior art date
Application number
KR1020187033473A
Other languages
English (en)
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 KR20190004302A publication Critical patent/KR20190004302A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7839Architectures of general purpose stored program computers comprising a single central processing unit with memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0625Power saving in storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40615Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/02Disposition of storage elements, e.g. in the form of a matrix array
    • G11C5/04Supports for storage elements, e.g. memory modules; Mounting or fixing of storage elements on such supports
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C5/00Details of stores covered by group G11C11/00
    • G11C5/14Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
    • 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/4074Power supply or voltage generation circuits, e.g. bias voltage generators, substrate voltage generators, back-up power, power control circuits
    • 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
    • G11C2029/0411Online error correction
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2207/00Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
    • G11C2207/22Control and timing of internal memory operations
    • G11C2207/2227Standby or low power modes
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2211/00Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C2211/401Indexing scheme relating to cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C2211/406Refreshing of dynamic cells
    • G11C2211/4067Refresh in standby or low power modes
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Power Engineering (AREA)
  • Dram (AREA)
  • Memory System (AREA)
  • Power Sources (AREA)

Abstract

일 형태에서, 메모리 제어기는 제어기 및 메모리 동작 어레이를 포함한다. 제어기는 전력 상태 변경 요청 신호를 수신하기 위한 입력 및 메모리 동작을 제공하기 위한 출력을 갖는다. 메모리 동작 어레이는 복수의 엔트리를 포함하며, 각 엔트리는 복수의 인코딩된 필드를 포함한다. 제어기는 전력 상태 변경 요청 신호의 활성화에 응답하여 메모리 동작 어레이에 액세스하여, 적어도 하나의 엔트리를 인출하고 엔트리에 의해 지시된 적어도 하나의 메모리 동작을 발행한다. 다른 형태에서, 시스템은 메모리 시스템 및 상기 메모리 시스템에 연결된 프로세서를 포함한다. 프로세서는 이러한 메모리 제어기를 사용하여 메모리 모듈에 액세스하도록 구성된다.

Description

자동 리프레시 상태 머신 MOP 어레이
본 발명은 일반적으로 데이터 처리 시스템에 관한 것으로, 더 상세하게는 저전력 상태를 갖는 메모리와 인터페이스하는 데이터 처리 시스템용 메모리 제어기에 관한 것이다.
컴퓨터 시스템은 통상적으로 주 메모리를 위한 저렴하고 고밀도의 동적 랜덤 액세스 메모리(DRAM) 칩을 사용한다. 현재 판매되는 대부분의 DRAM 칩은 JEDEC(Joint Electron Devices Engineering Council)에서 공표한 다양한 DDR(Double Data Rate) DRAM 표준과 호환된다. DDR DRAM은 다양한 저전력 모드를 제공함으로써 고성능 및 저전력 작동을 제공한다. 이러한 저전력 모드 중 하나는 프리차지 전원 다운(precharge power down)이라고한다. 프리차지 파워 다운 동안 모든 뱅크는 프리차지되고, 온칩 DLL(Delay Locked Loop)은 동작정지(disable)되며, 입력 클럭은 턴-오프될 수 있고, 출력 버퍼는 동작정지되어 전력 소비를 상당히 감소시킬 수 있다. 프리차지 전원 다운은 상대적으로 빠르게 빠져나갈 수 있고, 종료 시간은 DLL을 계속 실행하여 가속화할 수 있다.
메모리 제어기가 오늘날 시장에서 다양한 DDR 메모리 장치를 지원하는 것이 바람직하다. 예를 들어, DDR 버전 3(DDR3), DDR 버전 4(DDR4), 저전력(LP) DDR3 (LPDDR3), LPDDR4 및 그래픽 DDR 버전 5(gDDR5)는 현재 모두 가용한 선택이다. 그러나 각각의 상이한 DDR 메모리 장치는 상이한 모드 레지스터(MRs) 세트를 가지며, 상이한 수 및 구성의 메모리 뱅크를 가질 수 있으며, 상이한 저전력 모드를 지원할 수도 있다. 따라서 이러한 모든 변화에 대해 저전력 모드를 효율적으로 지원할 수 있도록 단일 메모리 제어기를 설계하는 것이 어려웠다.
도 1은 일부 실시예에 따른 데이터 처리 시스템의 블록도.
도 2는 도 1의 데이터 처리 시스템에서 사용하기에 적합한 고급 처리 유닛(APU)의 블록도.
도 3은 일부 실시예에 따라 도 2의 APU에서 사용하기에 적합한 메모리 제어기 및 관련 물리적 인터페이스(PHY)의 블록도.
도 4는 일부 실시예에 따라 도 2의 APU에서 사용하기에 적합한 다른 메모리 제어기 및 관련 PHY의 블록도.
도 5는 일부 실시예에 따른 메모리 제어기의 블록도.
도 6은 일부 실시예에 따라 도 1의 데이터 처리 시스템의 부분들에 대응하는 데이터 처리 시스템의 블록도.
도 7은 일부 실시예에 따라 도 5의 메모리 채널 제어기의 부분들에 대응하는 메모리 채널 제어기의 블록도.
도 8은 일부 실시예에 따른 도 7의 MOP 어레이의 엔트리의 블록도.
이하의 설명에서, 상이한 도면에서 동일한 도면 부호를 사용하는 것은 유사하거나 동일한 항목을 나타낸다. 달리 언급되지 않는 한, 단어 "결합된" 및 이와 관련된 동사 형태는 당 업계에 공지된 수단에 의한 직접 연결 및 간접적인 전기 연결 모두를 포함하며, 달리 명시되지 않는 한 직접 연결에 대한 설명은 적절한 형태의 간접적인 전기 연결을 또한 이용하는 대안의 실시예를 암시한다.
이하에서 설명되는 바와 같이, 메모리 제어기는 제어기 및 메모리 동작(MOP) 어레이를 포함한다. 제어기는 전력 상태 변경 요청 신호를 수신하기 위한 입력 및 메모리 동작을 제공하기 위한 출력을 갖는다. MOP 어레이는 복수의 엔트리를 포함하며, 각 엔트리는 복수의 인코딩된 필드를 포함한다. 제어기는 전력 상태 변경 요청 신호의 활성화에 응답하여 MOP 어레이에 액세스하여 적어도 하나의 엔트리를 인출(fetch)할 수 있고, 엔트리에 의해 지시된 적어도 하나의 메모리 동작을 발행할 수 있다. 예를 들어, 메모리 제어기는 전력 상태 변경 요청을 구현하는데 사용되는 특정 메모리 동작을 기술한 MOP 어레이의 부분을 가질 수 있다. 예를 들어, DDR4 및 LPDDR4 DRAM은 상이한 상태 머신 및 상이한 저전력 모드를 구현하며, 활성 상태로부터 저전력 상태로 이동하기 위해 상이한 시퀀스를 필요로한다. 하나의 경우에, 메모리 제어기는 MOP 어레이를 사용하여, DDR 레지스터드 DIMM의 레지스터 제어 워드(RCW) 또는 버퍼 제어 워드(BCW)에 기입될 명령을 규정할 수 있다.
다른 형태에서, 이러한 메모리 제어기는 프로세서 및 메모리 모듈을 포함하는 처리 시스템의 프로세서에 포함될 수 있다. 프로세서는 메모리 제어기와 메모리 시스템 사이에 결합된 물리적 인터페이스(PHY)를 더 포함할 수 있다.
또 다른 형태에서, 메모리 시스템의 전력 상태를 제어하는 방법이 개시된다. 전력 상태 변경 신호가 수신된다. 전력 상태 변경 요청 신호에 응답하여 메모리 동작(MOP) 어레이에 액세스한다. MOP 어레이의 엔트리가 적어도 하나의 메모리 동작으로 디코딩된다. 이렇게 해독된 각 메모리 연산이 출력된다. 디코딩 및 출력은 미리 결정된 종료 조건이 발생할 때까지 MOP 어레이의 후속 엔트리들에 대해 반복된다. 미리 결정된 종료 조건은 예를 들어 MOP 어레이의 널(null) 엔트리일 수 있다. 수신된 전력 상태 변경 요청 신호는 활성 상태로부터 프리차지 파워 다운, 자체 리프레시 파워 다운, 또는 아이들 파워 다운과 같은 저전력 상태로의 변경일 수 있고, 또는, 하나의 동작 주파수에서 활성 상태의 다른 동작 주파수로의 변경일 수 있다. 기본 입/출력 시스템(BIOS)은 또한 메모리 시스템의 특성을 검출하는 것에 응답하여 MOP 어레이를 프로그램할 수 있다.
도 1은 일부 실시예에 따른 데이터 처리 시스템(100)의 블록도를 도시한다. 데이터 처리 시스템(100)은 일반적으로 가속 처리 유닛(APU) 형태의 데이터 프로세서(110), 메모리 시스템(120), 주변 장치 상호 연결 익스프레스(PCIe) 시스템(150), 범용 직렬 버스(USB) 시스템(160), 및 디스크 드라이브(170)를 포함한다. 데이터 프로세서(110)는 데이터 처리 시스템(100)의 중앙 처리 장치(CPU)로서 동작하며, 현대 컴퓨터 시스템에 유용한 다양한 버스 및 인터페이스를 제공한다. 이 인터페이스에는 두 개의 DDR(Double Data Rate) 메모리 채널, PCIe 링크 연결용 PCIe 루트 복합체, USB 네트워크 연결용 USB 제어기, 및 SATA(Serial Advanced Technology Attachment) 대용량 저장 장치 인터페이스가 포함된다.
메모리 시스템(120)은 메모리 채널(130) 및 메모리 채널(140)을 포함한다. 메모리 채널(130)은 본 예에서 개별 랭크에 대응하는 대표 DIMM(134,136 및 138)을 포함하는, DDRx 버스(132)에 연결된 듀얼 인라인 메모리 모듈(DIMM) 세트를 포함한다. 마찬가지로, 메모리 채널(140)은 대표 DIMM(144, 146 및 148)을 포함하는, DDRx 버스(142)에 연결된 DIMM 세트를 포함한다.
PCIe 시스템(150)은 데이터 프로세서(110) 내의 PCIe 루트 콤플렉스에 연결된 PCIe 스위치(152), PCIe 디바이스(154), PCIe 디바이스(156), 및 PCIe 디바이스(158)를 포함한다. PCIe 디바이스(156)는 또한 시스템 기본 입/출력 시스템(BIOS) 메모리(157)에 연결된다. 시스템 BIOS 메모리(157)는 ROM(read-only memory), 플래시 EEPROM(flash electrically erasable programmable ROM) 등과 같은 다양한 비휘발성 메모리 유형 중 임의의 것일 수 있다.
USB 시스템(160)은 데이터 프로세서(110) 내의 USB 마스터에 접속된 USB 허브(162)와, 각각 USB 허브(162)에 접속된 대표 USB 디바이스(164, 166 및 168)를 포함한다. USB 디바이스(164, 166 및 168)는 키보드, 마우스, 플래시 EEPROM 포트 등과 같은 디바이스일 수 있다.
디스크 드라이브(170)는 SATA 버스를 통해 데이터 프로세서(110)에 연결되고 운영 체제, 응용 프로그램, 애플리케이션 파일 등에 대한 대용량 저장 장치를 제공한다.
데이터 처리 시스템(100)은 메모리 채널(130) 및 메모리 채널(140)을 제공함으로써 현대 컴퓨팅 애플리케이션에서의 사용에 적합하다. 메모리 채널들(130 및 140) 각각은 DDR 버전 4(DDR4), 저전력 DDR4(LPDDR4), 그래픽 DDR 버전 5(gDDR5) 및 고 대역폭 메모리(HBM)와 같은 당 분야의 DDR 메모리에 연결될 수 있고, 향후의 메모리 기술에 적응될 수 있다. 이러한 메모리는 높은 버스 대역폭과 고속 작동을 제공한다. 동시에 랩톱 컴퓨터와 같은 배터리 구동 기기의 전력을 절약하기 위해 저전력 모드를 제공하고 내장된 열 모니터링 기능도 제공한다. 아래에서보다 상세히 설명되는 바와 같이, 데이터 프로세서(110)는 과열을 회피하고 열적 과부하의 기회를 감소시키기 위해 특정 상황에서 전력을 스로틀링할 수 있는 메모리 제어기를 포함한다.
도 2는 도 1의 데이터 처리 시스템(100)에서의 사용에 적합한 APU(200)의 블록도를 도시한다. APU(200)는 일반적으로 중앙 처리 장치(CPU) 코어 복합체(210), 그래픽 코어(220), 디스플레이 엔진 세트(230), 메모리 관리 허브(240), 데이터 패브릭(datal fabric)(250), 주변 제어기 세트(260), 주변 버스 제어기 세트(270), 시스템 관리 유닛(SMU)(280), 및 메모리 제어기들(290)의 세트를 포함한다.
CPU 코어 복합체(210)는 CPU 코어(212) 및 CPU 코어(214)를 포함한다.이 예에서, CPU 코어 복합체(210)는 2 개의 CPU 코어를 포함하지만, 다른 실시예에서는 CPU 코어 복합체(210)가 임의의 수의 CPU 코어를 포함할 수 있다. 각각의 CPU 코어(212 및 214)는 제어 패브릭(datal fabric)을 형성하는 시스템 관리 네트워크(SMN)에, 그리고, 데이터 패브릭(250)에 양방향으로 연결되고, 데이터 패브릭(250)에 메모리 액세스 요청을 제공할 수 있다. 각각의 CPU 코어(212 및 214)는 단일 코어일 수도 있고, 또는, 캐시와 같은 특정 자원을 공유하는 둘 이상의 단일 코어를 갖는 코어 복합체일 수도 있다.
그래픽 코어(220)는 고집적 및 병렬 방식으로 버텍스 프로세싱(vertex processing), 프래그먼트 프로세싱(fragment processing), 쉐이딩(shading), 텍스쳐 블렌딩(text blending) 등과 같은 그래픽 동작을 수행할 수 있는 고성능 GPU(graphics processing unit)이다. 그래픽 코어(220)는 SMN 및 데이터 패브릭(250)에 양방향으로 연결되며, 데이터 패브릭(250)에 메모리 액세스 요청을 제공할 수 있다. 이와 관련하여, APU(200)는 CPU 코어 복합체(210) 및 그래픽 코어 220)가 동일한 메모리 공간을 공유하는 통합 메모리 아키텍처, 또는 CPU 코어 복합체(210) 및 그래픽 코어(220)가 메모리 공간의 일부를 공유하는 메모리 아키텍처를 지원할 수 있는 반면 그래픽 코어(220)는 CPU 코어 복합체(210)에 의해 액세스 불가능한 전용 그래픽 메모리를 또한 사용한다.
디스플레이 엔진(230)은 그래픽 코어(220)에 의해 생성된 객체를 렌더링 및 래스터 화하여 모니터 상에 디스플레이한다. 그래픽 코어(220) 및 디스플레이 엔진(230)은 공통 메모리 관리 허브(240)에 양방향으로 연결되어, 메모리 시스템(120) 내의 적절한 어드레스로 균일하게 변환하고, 메모리 관리 허브(240)는 데이터 패브릭(250)에 양방향으로 연결되어, 이러한 메모리 액세스를 생성하고 메모리 시스템으로부터 리턴된 판독 데이터를 수신할 수 있다.
데이터 패브릭(250)은 임의의 메모리 액세스 에이전트 및 메모리 제어기(290) 사이에서 메모리 액세스 요청 및 메모리 응답을 라우팅하기 위한 크로스바 스위치를 포함한다. 각각의 가상 연결에 대한 버퍼와, 시스템 구성에 기초하여 메모리 액세스의 목적지를 결정하기 위해 BIOS에 의해 정의된 시스템 메모리 맵을 포함한다.
주변 제어기들(260)은 USB 제어기(262) 및 SATA 인터페이스 제어기(264)를 포함하며, 그 각각은 시스템 허브(266) 및 SMN 버스에 양방향으로 연결된다. 이들 2개의 제어기는 APU(200)에서 사용될 수 있는 주변 제어기의 예시에 불과하다.
주변 버스 제어기(270)는 시스템 제어기 또는 "사우스 브리지"(SB)(272) 및 PCIe 제어기(274)를 포함하며, 그 각각은 입/출력(I/O) 허브(276)에 그리고 SMN 버스에 양방향으로 연결된다. I/O 허브(276)는 시스템 허브(266)에 그리고 데이터 패브릭(250)에 또한 양방향으로 연결된다. 따라서, 예를 들어 CPU 코어는 데이터 패브릭(250)이 I/O 허브(276)를 통해 라우팅하는 액세스를 통해 USB 제어기(262), SATA 인터페이스 제어기(264), SB(272) 또는 PCIe 제어기(274)의 레지스터를 프로그램할 수 있다.
SMU(280)는 APU(200)상의 자원들의 동작을 제어하고 이들 사이의 통신을 동기화하는 로컬 제어기다. SMU(280)는 APU(200)상의 다양한 프로세서의 파워-업 시퀀싱을 관리하고, 리셋, 인에이블 및 다른 신호들을 통해 다수의 오프-칩 장치들을 제어한다. SMU(280)는 APU(200)의 구성요소들 각각을 위한 클럭 신호를 제공하기 위해, PLL(phase locked loop)과 같은, 도 2에 도시되지 않은 하나 이상의 클럭 소스들을 포함한다. SMU(280)는 또한 다양한 프로세서들 및 다른 기능 블록들에 대한 전력을 관리하고, CPU 코어들(212, 214) 그래픽 코어(220)로부터 측정된 전력 소비 값들을 수신하여, 적절한 전력 상태를 결정할 수 있다.
APU(200)는 또한 다양한 시스템 모니터링 및 절전 기능을 구현한다. 특히 하나의 시스템 모니터링 기능은 열 모니터링이다. 예를 들어, APU(200)가 고온이 되면, SMU(280)는 CPU 코어(212 및 214) 및/또는 그래픽 코어(220)의 주파수 및 전압을 감소시킬 수 있다. APU(200)가 너무 뜨거워지면, 완전히 셧다운될 수 있다. 열 이벤트가 또한 SMN 버스를 통해 SMU(280)에 의해 외부 센서로부터 수신될 수 있고, SMU(280)는 이에 응답하여 클럭 주파수 및/또는 전원 전압을 감소시킬 수 있다.
도 3은 일부 실시예에 따라 도 2의 APU(200)에서의 사용에 적합한 메모리 제어기(300) 및 관련 물리적 인터페이스(PHY)(330)의 블록도를 도시한다. 메모리 제어기(300)는 메모리 채널(310) 및 전력 엔진(320)을 포함한다. 메모리 채널(310)은 호스트 인터페이스(312), 메모리 채널 제어기(314), 및 물리적 인터페이스(316)를 포함한다. 호스트 인터페이스(312)는 메모리 채널 제어기(314)를 스케일러블 데이터 포트(SDP)를 통해 데이터 패브릭(250)에 양방향으로 연결한다. 물리적 인터페이스(316)는 DDR-PHY 인터페이스 규격(DFI)에 따르는 버스를 통해 메모리 채널 제어기(314)를 PHY(330)에 양방향으로 접속시킨다. 전력 엔진(320)은 SMN 버스를 통해 SMU(280)에, APB(Advanced Peripheral Bus)를 통해 PHY(330)에 양방향으로 연결되며, 또한 메모리 채널 제어기(314)에 양방향으로 연결된다. PHY(330)는 도 1의 메모리 채널(130) 또는 메모리 채널(140)과 같은 메모리 채널에 양방향 연결을 갖는다. 메모리 제어기(300)는 단일 메모리 채널 제어기(314)를 사용하여 단일 메모리 채널에 대한 메모리 제어기의 예시이며, 이하에서 더 설명될 방식으로 메모리 채널 제어기(314)의 동작을 제어하는 전력 엔진(320)을 갖는다.
도 4는 일부 실시예에 따라 도 2의 APU(200)에서의 사용에 적합한 다른 메모리 제어기(400) 및 관련 PHY들(440 및 450)을 블록도로 도시한다. 메모리 제어기(400)는 메모리 채널(410, 420) 및 전력 엔진(430)을 포함한다. 메모리 채널(410)은 호스트 인터페이스(412), 메모리 채널 제어기(414), 및 물리적 인터페이스(416)를 포함한다. 호스트 인터페이스(412)는 메모리 채널 제어기(414)를 SDP를통해 데이터 패브릭(250)에 양방향으로 연결한다 SDP. 물리적 인터페이스(416)는 메모리 채널 제어기(414)를 PHY(440)에 양방향으로 연결하고, DFI 규격을 따른다. 메모리 채널(420)은 호스트 인터페이스(422), 메모리 채널 제어기(424) 및 물리적 인터페이스(426)를 포함한다. 호스트 인터페이스(422)는 메모리 채널 제어기(424)를 다른 SDP를 통해 데이터 패브릭(250)에 양방향으로 연결한다. 물리적 인터페이스(426)는 메모리 채널 제어기(424)를 PHY(450)에 양방향으로 연결하고, DFI 규격을 따른다. 전력 엔진(430)은 SMN 버스를 통해 SMU(280)에, APB를 통해 PHY들(440 및 450)에 양방향으로 연결되며, 또한 메모리 채널 제어기들(414 및 424)에 양방향으로 연결된다. PHY(440)는 도 1의 메모리 채널(130)과 같은 메모리 채널에 대한 양방향 연결을 갖는다. PHY(450)는 도 1의 메모리 채널(140)과 같은 메모리 채널에 대한 양방향 연결을 갖는다. 메모리 제어기(400)는 2 개의 메모리 채널 제어기를 갖는 메모리 제어기의 예시이며, 이하에서 더 설명될 방식으로 메모리 채널 제어기(414) 및 메모리 채널 제어기(424) 모두의 동작을 제어하기 위해 공유 전력 엔진(430)을 사용한다.
도 5는 일부 실시예에 따른 메모리 제어기(500)의 블록도를 도시한다. 메모리 제어기(500)는 일반적으로 메모리 채널 제어기(510) 및 전력 제어기(550)를 포함한다. 메모리 채널 제어기(510)는 일반적으로 인터페이스(512), 큐(514), 명령 큐(520), 어드레스 생성기(522), 콘텐트 어드레서블 메모리(CAM)(524), 리플레이 큐(530), 리프레시 로직 블록(532), 타이밍 블록(534), 페이지 테이블(536), 아비터(arbiter)(538), 에러 교정 코드(ECC) 체크 블록(542), ECC 생성 블록(544) 및 쓰기 데이터 버퍼(WDB)(546)를 도시한다.
인터페이스(512)는 외부 버스를 통해 데이터 패브릭(250)에 대한 제 1 양방향 연결을 가지며, 출력을 갖는다. 메모리 제어기(500)에서,이 외부 버스는 "AXI4"로 알려진 영국의 캠브리지(Cambridge) 소재의 ARM Holdings, PLC에 의해 지정된 고급 확장형 인터페이스 버전 4와 호환 가능하지만, 다른 실시예에서는 다른 유형의 인터페이스일 수 있다. 인터페이스(512)는 FCLK(또는 MEMCLK) 도메인으로 알려진 제 1 클럭 도메인으로부터 UCLK 도메인으로 알려진 메모리 제어기(500) 내부의 제 2 클럭 도메인으로 메모리 액세스 요청을 변환한다. 유사하게, 큐(514)는 UCLK 도메인으로부터 DFI 인터페이스와 연관된 DFICLK 도메인으로의 메모리 액세스를 제공한다.
어드레스 생성기(522)는 AXI4 버스를 통해 데이터 패브릭(250)으로부터 수신된 메모리 액세스 요청의 어드레스를 디코딩한다. 메모리 액세스 요청은 정규화된 포맷으로 표현된 물리적 어드레스 공간 내의 액세스 어드레스를 포함한다. 어드레스 생성기(522)는 정규화된 어드레스를 메모리 시스템(120) 내의 실제 메모리 장치를 어드레싱하고 관련 액세스를 효율적으로 스케줄링하는데 사용될 수 있는 포맷으로 변환한다. 이 포맷에는 메모리 액세스 요청을 특정 순위, 행 어드레스, 열 어드레스, 뱅크 어드레스 및 뱅크 그룹과 연계시키는 영역 식별자(region identifier)가 포함된다. 시동시, 시스템 BIOS는 메모리 시스템(120) 내의 메모리 장치에 질의하여, 그들의 크기 및 구성을 결정하고, 어드레스 생성기(522)와 관련된 구성 레지스터 세트를 프로그램한다. 어드레스 생성기(522)는 구성 레지스터에 저장된 구성을 사용하여 정규화된 어드레스를 적절한 포맷으로 변환한다. 명령 큐(520)는 CPU 코어(212 및 214) 및 그래픽 코어(220)와 같은 데이터 처리 시스템(100)의 메모리 액세스 에이전트로부터 수신된 메모리 액세스 요청의 큐다. 명령 큐(520)는 어드레스 생성기(522)(538)가 디코딩할 수 있는 어드레스 필드와, 액세스 유형 및 서비스 품질(QoS) 식별자를 포함하여 아비터(538)로 하여금 메모리 액세스를 효율적으로 선택하게 하는 다른 어드레스 정보를 포함한다. CAM(524)은 기입 후 기입(write after write; WAW) 및 기입 후 판독(read after write; RAW) 주문 규칙들과 같은 주문 규칙들을 시행하기 위한 정보를 포함한다.
리플레이 큐(530)는 어드레스 및 명령 패리티 응답, DDR4 DRAM에 대한 기입 CRC(write Cyclic Redundancy Check) 응답 또는 gDDR5 DRAM에 대한 기입 및 판독 CRC 응답과 같은, 응답들을 기다리고 있는 아비터(538)에 의해 선택된 메모리 액세스를 저장하기 위한 임시 큐다. 리플레이 큐(530)는 ECC 체크 블록(542)에 액세스하여, 리턴된 ECC가 정확한지 또는 에러를 표시하는지 여부를 결정한다. 리플레이 큐(530)는 이들 사이클 중 하나의 패리티 또는 CRC 에러의 경우에 액세스를 재생시킨다.
리프레시 로직(532)은 메모리 액세스 에이전트로부터 수신된 정규 판독 및 기입 메모리 액세스 요청과는 별도로 생성되는 다양한 파워다운, 리프레시 및 종료 저항(termination resistance)(ZQ) 교정 사이클을 위한 상태 머신을 포함한다. 예를 들어, 메모리 랭크가 프리차지 파워다운에 있으면 리프레시 사이클을 실행하기 위해 주기적으로 깨어나야 한다. 리프레시 로직(532)은 주기적으로 리프레시 명령을 생성하여, DRAM 칩 내의 메모리 셀의 저장 커패시터로부터 전하가 누설됨으로써 야기되는 데이터 에러를 방지한다. 또한, 리프레시 로직(532)은 시스템의 열적 변화로 인한 온-다이 종료 저항의 불일치를 방지하기 위해 ZQ를 주기적으로 교정한다.
아비터(538)는 명령 큐(520)에 양방향으로 연결되고, 메모리 채널 제어기(510)의 핵심이다. 이것은 메모리 버스의 사용을 향상시키기 위해 액세스의 지능형 스케줄링에 의해 효율을 향상시킨다. 아비터(538)는 타이밍 블록(534)을 사용하여, 명령 큐(520) 내의 특정 액세스가 DRAM 타이밍 파라미터에 기초하여 발행에 적합한 지 여부를 결정함으로써 적절한 타이밍 관계를 강화한다. 예를 들어, 각 DRAM에는 "tRC"라고 하는 활성화 명령들 사이의 최소 지정 시간이 있다. 타이밍 블록(534)은 JEDEC 규격에 명시된 이 타이밍 파라미터 및 다른 타이밍 파라미터에 기초하여 적합성을 결정하는 카운터들의 세트를 유지하고, 리플레이 큐(530)에 양방향으로 접속된다. 페이지 테이블(536)은 메모리의 각 뱅크 내 활성 페이지 및 아비터(538)의 메모리 채널의 순위 및 각 뱅크 내 활성 페이지에 관한 상태 정보를 유지관리하고, 리플레이 큐(530)에 양방향으로 연결된다.
ECC 생성 블록(544)은, 인터페이스(512)로부터 수신된 기록 메모리 액세스 요청에 응답하여, 기입 데이터에 따라 ECC를 계산한다. DB(546)는 수신된 메모리 액세스 요청에 대한 기입 데이터 및 ECC를 저장한다. 아비터(538)가 메모리 채널로의 디스패치(dispatch)를 위해 대응하는 기입 액세스를 취할 때, 조합된 기입 데이터/ECC를 큐(514)로 출력한다.
전력 제어기(550)는 일반적으로 고급 확장가능 인터페이스, 버전 1(AXI), APB 인터페이스(554) 및 전력 엔진(560)에 대한 인터페이스(552)를 포함한다. 인터페이스(552)는 SMN에 대한 제 1 양방향 연결을 가지며, 이는 도 5에 별도로 도시된 "EVENT_n"으로 명명된 이벤트 신호를 수신하기 위한 입력과, 출력을 포함한다. APB 인터페이스(554)는 인터페이스(552)의 출력에 접속된 입력, 및 APB를 통해 PHY에 접속하기 위한 출력을 갖는다. 전력 엔진(560)은 인터페이스(552)의 출력에 연결되는 입력과, 큐(514)의 입력에 연결되는 출력을 갖는다. 전력 엔진(560)은 구성 레지스터(562) 세트, 마이크로제어기(μC)(564), 자체 리프레시 제어기(SLFREF/PE)(566) 및 신뢰가능 판독/기입 타이밍 엔진(RRW/TE)(568)을 포함한다. 구성 레지스터(562)는 AXI 버스를 통해 프로그래밍되고, 메모리 제어기(500)의 다양한 블록의 동작을 제어하기 위한 구성 정보를 저장한다. 따라서, 구성 레지스터(562)는 도 5에 세부적으로 도시되지 않은 이러한 블록들에 연결된 출력을 가진다. 자체 리프레시 제어기(566)는 리프레시 로직(532)에 의한 리프레시의 자동 생성에 부가하여 리프레시의 수동 생성을 허용하는 엔진이다. 신뢰할 수 있는 판독/기입 타이밍 엔진(568)은 DDR 인터페이스 최대 판독 대기 시간(MRL) 교육 및 루프백 테스팅과 같은 용도로 메모리 또는 I/O 장치에 연속적인 메모리 액세스 스트림을 제공한다.
메모리 채널 제어기(510)는 관련 메모리 채널로의 디스패치를 위해 메모리 액세스를 선택하게 하는 회로를 포함한다. 원하는 중재 결정을 내리기 위해, 어드레스 생성기(522)는 어드레스 정보를 메모리 시스템 내의 랭크, 로우 어드레스, 칼럼 어드레스, 뱅크 어드레스 및 뱅크 그룹을 포함하는 미리 디코딩된 정보로 디코딩하고, 명령 큐(520)는 미리 디코딩된 정보를 저장한다. 구성 레지스터(562)는 어드레스 생성기(522)가 수신된 어드레스 정보를 어떻게 디코딩 하는지를 결정하기 위한 구성 정보를 저장한다. 아비터(538)는 디코딩된 어드레스 정보, 타이밍 블록(534)에 의해 지시된 타이밍 적격 정보, 및 페이지 테이블(536)에 의해 표시된 활성 페이지 정보를 사용하여 QoS 요건과 같은 다른 기준을 관찰하면서 메모리 액세스를 효율적으로 스케줄링할 수 있다. 예를 들어, 아비터(538)는 메모리 페이지를 변경하는 데 필요한 프리차지 및 활성화 명령의 오버 헤드를 피하기 위해 개방 페이지에 대한 액세스에 대한 선호도를 구현하고, 다른 뱅크에 대한 판독 및 기입 액세스로 인터리빙함으로써 일 뱅크에 대한 오버 헤드 액세스를 숨긴다. 특히, 정상 동작 동안, 아비터(538)는 통상적으로 다른 페이지를 선택하기 전에 프리차지되어야할 때까지 다른 뱅크에서 페이지를 개방 상태로 유지한다.
도 6은 일부 실시예에 따라 도 1의 데이터 처리 시스템(100)의 부분들에 대응하는 데이터 처리 시스템(600)의 블록도이다. 데이터 처리 시스템(600)은 일반적으로 "MC"(610)로 표시되는 메모리 제어기, PHY(620) 및 메모리 모듈(630)을 포함한다.
메모리 제어기(610)는 메모리 액세스 요청을 수신하고 CPU 코어(212) 또는 그래픽 코어(220)와 같은 프로세서의 메모리 액세스 에이전트에 메모리 응답을 제공한다. 메모리 제어기(610)는 도 2의 메모리 제어기(290) 중 하나에 대응한다. 메모리 제어기(610)는 DFI- 호환 버스를 통해 PHY(620)에 메모리 액세스를 출력하고 PHY(620)로부터 응답을 수신한다.
PHY(620)는 DFI 버스를 통해 메모리 제어기(610)에 접속된다. 64 비트의 데이터와 8 비트의 ECC를 포함하여 "C/A"로 표시된 한 세트의 명령 및 어드레스 출력과 "DQ"로 표시된 한 세트 72 개의 양방향 데이터 신호를 제공함으로써 수신된 메모리 액세스에 대한 응답으로 물리적 시그널링을 수행한다.
메모리 모듈(630)은 다수의 메모리 유형 및 속도 등급 중 임의의 것을 지원할 수 있다. 도시된 실시예에서, 메모리 모듈(630)은 각각 "DDR4"로 표시된 메모리 칩 세트(640), "RCD"로 표시된 레지스터 클럭 드라이버(650), 및 각각 "B"로 표시된 버퍼 세트(660)를 포함하는 DDR4 레지스터드 DIMM(RDIMM)이다. 메모리 칩(640)은 M 비트 세트 x N개의 메모리 칩을 포함한다. 72개의 데이터 신호를 지원하기 위해(64비트 데이터 더하기 8비트 ECC), M*N = 72다. 예를 들어, 각각의 메모리 칩이 x 4 (N = 4)인 경우, 메모리 모듈(620)은 18 개의 DDR4 메모리 칩을 포함g한다. 대안으로서, 각각의 메모리 칩이 x 8 (N=8) 이면, 메모리 모듈(620)은 9개의 DDR4 메모리 칩을 포함한다. 각각의 버퍼(660)는 1 x N 개의 메모리 칩과 연관되고 대응하는 N 비트의 데이터를 래치하는데 사용된다. 도 6에 도시된 예에서, 메모리 모듈(630)은 DDR4 메모리를 포함하고, C/A 신호는 DDR4 규약에 기술된 신호들을 포함한다. DDR4 규격은 RCD(650)에 의해 수신되고 래치된 동일한 C/A 신호가 각각의 메모리 칩(640)에 좌우로 재-구동되는 "플라이 바이(fly-by)" 아키텍처를 명시한다. 그러나 데이터 신호 DQ는 대응하는 버퍼 및 메모리에만 제공된다.
메모리 모듈(630)은 레지스터 제어 워드(RCW)에 프로그램된 RCD(650) 및 버퍼 제어 워드(BCW)에 프로그램된 버퍼들(660)에 대한 제어 정보에 따라 동작한다. 따라서, 메모리 제어기(610)가 저전력 상태에 메모리 모듈(630)을 배치할 때, 이는 또한 이하에서 보다 충분히 설명되는 방식으로 RCW 및 BCW의 설정을 변경한다.
데이터 처리 시스템(600)은 메모리 모듈(630)로서 등록 및 버퍼링된 DDR4 DRAM DIMM을 사용하지만, 메모리 제어기(610) 및 PHY(620)는 또한 몇몇 다른 유형의 메모리 모듈에 인터페이스할 수 있다. 특히, 메모리 제어기(610) 및 PHY(620)는 몇몇 상이한 유형의 메모리(예를 들어, DDR, FLASH, PCM 등), 몇몇 상이한 레지스터 조건들(사용되지 않음, RCD, 플래시 제어기 등), 및 여러 상이한 버퍼 조건(사용되지 않음, 데이터 버퍼 만 등)을 지원할 수 있어서, 메모리 제어기(610)가 메모리 유형, 레지스터 조건 및 버퍼 조건의 폭넓고 다양한 조합을 지원할 수 있다. 이러한 조합을 지원하기 위해, 메모리 제어기(610)는 시스템 BIOS가 특정 메모리 시스템 특성에 대해 프로그램할 수 있는 저전력 모드로 진입 및 탈출하기 위한 고유한 계획을 허용하는 아키텍처를 구현한다. 이제 이러한 기능에 대해 설명한다.
도 7은 일부 실시예에 따라 도 5의 메모리 채널 제어기(550)의 부분들에 대응하는 메모리 채널 제어기(700)의 블록도를 도시한다. 메모리 채널 제어기(700)는 도 5에 도시된 바와 같이 UMCSMN(552) 및 자체 리프레시 제어기(566)와, 메모리 동작(MOP) 어레이(710)를 포함한다. UMCSMN(552)은 전술한 바와 같이 SMN에 접속하기 위한 제 1 포트를 갖고, 여기서 상세히 도시된 바와 같이, 데이터 패브릭(250)으로부터 "POWER REQUEST"로 표시된 전력 상태 변경 요청 신호를 수신하기 위한 입력과, "POWER ACKNLEDGE"로 표시된 전력 상태 변경 확인 신호를 데이터 패브릭(250)에 제공하기 위한 출력을 가진다. UMCSMN(552)은 또한 "M_PSTATE REQ"로 표시된 메모리 전력 상태 변경 요청 신호를 제공하기 위한 제 1 출력과, MOP 어레이(710)에 저장을 위한 데이터를 제공하기 위한 제 2 출력을 구비한 제 2 포트를 또한 가진다. 자체 리프레시 제어기(566)는 UMCSMN(552)의 제 2 포트의 제 1 출력에 연결된 입력, 양방향 포트, 및 BEQ(514)에 디코딩된 MOP를 제공하기 위한 BEQ(514)에 연결된 출력을 가진다. MOP 어레이(710)는 UMCSMN(552)의 제 2 포트의 제 2 출력에 연결된 입력, 및 자체 리프레시 제어기(566)에 대한 양방향 연결을 가지며, 명령(MOP)을 저장하기 위한 제 1 부분(712)과, 데이터를 저장하기 위한 제 2 부분(714)으로 나뉘어진다.
시동시, 시스템 BIOS 메모리(157)에 저장된 시스템 BIOS는 메모리 시스템(120)에 질의하여 설치된 메모리의 유형 및 그 능력을 결정할 수 있다. 일반적으로 시스템에 있는 각 DIMM의 SPD(Serial Presence Detect) 메모리에 있는 레지스터를 판독함으로써 이루어진다. 예를 들어, PHY는 DDR3, DDR4, 저전력 DDR4(LPDDR4) 및 그래픽 DDR 버전 5(gDDR5) 메모리 중 하나를 지원하도록 구성될 수 있다. 메모리 시스템(120)에 설치된 메모리의 유형 및 성능을 검출하는 것에 응답하여, 시스템 BIOS는 특정 유형의 메모리에 대해 지원되는 저전력 모드로 진입 및 탈출을 시작하는 일련의 명령으로 MOP 어레이(710)를 채운다.
도시된 실시예에서, 메모리 채널 제어기(550)는 고급 구성 및 전력 인터페이스(ACPI) 규격에 의해 기술된 모델에 따라 정의된 다양한 장치 저전력 상태를 지원한다. ACPI 규격에 따르면, 장치(메모리 제어기(500)와 같은)의 작동 상태는 D0 상태 또는 "완전 온"(fully on)상태로 알려져 있다. 다른 상태는 저전력 상태이며 D1, D2 및 D3 상태를 포함하며 D3 상태는 "꺼짐"(off) 상태다. 메모리 제어기(500)는 D0 상태에서 주파수 및/또는 전압 변화뿐만 아니라 메모리 제어기(500)의 D 상태에 대응하는 저전력 상태로 메모리 시스템(120)을 배치할 수 있다. 전력 요청을 수신하면, UMCSMN(552)은 M_PSTATE REQ 신호를 자체 리프레시 제어기(566)에 제공하여 어느 전력 상태가 요구되는지를 표시할 수 있다. 자체 리프레시 제어기(566)는 DIMM의 RCW 및 BCW(지원될 경우) 및 메모리 칩을 요청된 D 상태에 대한 적절한 상태로 배치하는 일련의 MOP를 실행하는 것에 응답하여 MOP 어레이(710)에 액세스한다. 자체 리프레시 제어기(566)는 인덱스를 MOP 어레이(710)로 출력하고, MOP 어레이(710)는 응답으로 인코딩된 명령(MOP)을 리턴한다.
자체 리프레시 제어기(566)에 대한 펌웨어를 형성하는 프로그램 가능 명령을 저장하기 위해 MOP 어레이(710)를 포함함으로써, 메모리 채널 제어기(550)는 상대적으로 적은 양의 회로 영역을 사용하면서 구현되고, 상이한 특성을 갖는 다양한 메모리 유형을 지원한다. 또한 아직 지정되지 않았지만 향후 지정될 수 있는 메모리 유형 및 특성에 대한 메모리 상태 변경을 허용하는 상향 호환 아키텍처를 제공한다. 따라서, 메모리 채널 제어기(550)는 또한 모듈러 방식이고 값 비싼 향후 재 설계의 필요성을 회피한다.
이들 메모리 제어기 디바이스 전력 상태들(D- 상태들)과 DRAM 동작 사이의 상호 작용이 이제 설명될 것이다. D0 상태는 메모리 제어기(500)에 대한 동작 상태이다. D0 상태에서, 메모리 제어기(500)는 각각 다른 MEMCLK 주파수 및 관련 타이밍 파라미터 의 프로그램 가능한 전력 상태(P- 상태)를 지원한다. 메모리 제어기(500)는 P-상태에 대한 타이밍 파라미터를 저장하고 콘텍스트를 정의하는 각각의 P-상태에 대한 레지스터 세트를 유지한다. 메모리 제어기(500)는 DRAM을 셀프 리프레시 모드로 설정하여 P-상태/콘텍스트를 변경한다. MOP 어레이(710)는 적절한 시퀀싱을 지원하기 위해 D0 상태에서의 주파수 변경과 함께 사용하기 위한 명령 세트를 포함한다.
D1 상태는 정지 클럭 상태로 알려져 있으며, 메모리 상태 변경 요청에 사용된다. 메모리 제어기(500)가 D1 상태에 놓일 때, PHY(620)를 재훈련할 필요가 있는 경우를 제외하고는 진입 및 퇴장 대기 시간이 가장 낮다. 메모리 제어기(500)는 일반적으로 D1 전력 상태 변경 요청의 결과로서 임의의 중재 큐 엔트리를 플러싱(flush)하지 않는다. 그러나, 메모리 제어기(500)는 사전에 명령 큐(520) 내의 모든 기입을 플러싱하는 반면, 통상적인 보류 리프레시는 통상적으로 실행되지 않는다. 메모리 제어기(500)는 시스템 내의 모든 메모리 칩을 프리차지 파워다운 또는 자체 리프레시로 위치시킨다.
D2 상태는 대기 상태로 알려져 있으며, 시스템 C1/C2/C3 및 정지 클럭/스터터 상태(stop-clock/stutter states)에 대응한다. 이는 메모리 제어기(500) 자체의 동작을 위한 저전력 상태이다. D2 상태에서, 메모리 제어기(500)는 로컬 클럭 게이팅 및 선택적 전력 게이팅을 사용하여 전력을 추가로 감소시킨다. 메모리 제어기(500)는 명령 큐(520)로부터의 기입 및 판독을 모두 플러싱한다. D2 상태에서, 메모리 제어기(500)는 마찬가지로 시스템 내의 모든 메모리를 자동 자체 리프레시가 인에이블된 상태에서 프리차지 파워 다운 상태로 둔다. 그러나 D2는 전력 상태가 더 깊으므로 자동 자체 리프레시를 사용하여 프리차지 파워 다운 상태에 들어가기 전에 곧 수행해야할 모든("owed") 리프레시를 수행한다.
D3 상태는 서스펜드 상태(suspend state)로 알려져 있다. 메모리 제어기(500)는 2 개의 D3 상태를 지원한다. 첫 번째 D3 상태는 시스템 S3 상태에 사용된다. 메모리 제어기(500)는 DRAM 및 PHY를 시스템 S3 상태로 들어갈 것으로 예상하여 최저 전력 상태로 설정한다. 메모리 제어기(500)는 통상적으로 명령 큐(520)로부터의 기록을 플러싱하고, 계류중인 리프레시 사이클을 실행한다. 두 번째 D3 상태는 비동기 DRAM 리프레시(ADR)-스타일 자체 리프레시에 사용된다. ADR은 서버에서 정전이나 시스템 충돌시 계류중인 기입 데이터를 비휘발성 메모리로 플러싱하는 데 사용되는 기능이다. DRAM 및 PHY는 자동 충전 리프레시 기능을 인에이블시켜서 프리차지 파워 다운 상태에 다시 놓인다.
여기서 사용된 바와 같이, POWER REQUEST(전력 요청) 신호는 임의의 하나의 전력 상태로부터 다른 전력 상태로의 변화를 나타낸다. 사용 가능한 전력 상태는 메모리 유형에 따라 다르다. 또한, 본 명세서에서 사용된 바와 같이, "저전력 상태"는 다른 상태와 비교하여 전력을 절약하는 상태를 의미한다. 예를 들어, DDR4 SDRAM은 자체 리프레시 및 프리차지 파워 다운이라고 알려진 두 가지 저전력 상태를 지원한다. 그러나 LPDDR4는 활성 전력 차단, 자체 리프레시 전력 차단 및 아이들 전력 차단이라는 3 가지 저전력 상태를 지원한다. 이러한 상태에 진입 및 탈출할 수 있는 조건은 서로 다르고, 해당되는 공표 JEDEC 표준의 상태도에 명시되어 있으며, "저전력 상태"는 이러한 상태를 모두 포함한다.
MOP 어레이(710)는 명령들의 효율적인 인코딩을 통해 이들의 전력 상태 변화들 모두를 지원할 수 있게 하는 명령 포맷을 지원한다. MOP 어레이(710)는 4 개의 P-상태 콘텍스트 각각에 대해 "SrEnterMOP"및 "SrExitMOP"으로 알려진 2 개의 어레이를 사용한다. P- 상태 요청에 대해 자체 리프레시에 진입하기 전에 SrEnterMOP이 처리된다. P-상태 요청을 위해 자체 리프레시를 종료한 후 SrExitMOP이 처리된다. MOP 어레이는 모드 레지스터(MR), MR - DRAM 당 액세스 가능(PDA), 레지스터 제어 워드(RCW) 또는 버퍼 제어 워드(BCW) 명령의 순차 목록을 지정한다. 전력 상태 변경 요청을 수신하면, 자체 리프레시 제어기(566)는 메모리 시스템에 발행된 MOP의 시퀀스 및 타이밍을 결정하기 위해 MOP 어레이(710)에서 선택된 콘텍스트에 대한 명령에 액세스한다.
부분(712)의 MOP는 대응하는 D-상태(들)를 나타내는 필드를 포함한다. 따라서, 자체 리프레시 제어기(566)는 특정 콘텍스트에 적용 가능한 명령에 대한 제 1 위치로부터 시작하여 MOP 어레이(712)를 스캔하고, 현재 콘텍스트에 적용할 수 없는 MOP를 무시한다. MOP 어레이(712)는 또한 적절할 때 메모리 칩의 동적 타이밍 파라미터를 만족시키기 위해 MOP들 사이의 적절한 타이밍을 결정하기 위한 카운터 값을 포함한다. 명령 시퀀스를 시작한 후에, 자체 리프레시 제어기(566)는 MOP 어레이(712)를 계속 스캐닝하고, 전력 상태 변화에 대한 시퀀스의 끝을 나타내는 널 엔트리를 만날 때까지 유효한 명령을 실행한다. 전력 상태 변화에 대한 명령의 효율적인 저장을 가능하게 하는데 사용될 수 있는 MOP 어레이(712)의 필드의 한 예가 이제 설명될 것이다.
도 8은 일부 실시예에 따른 도 7의 MOP 어레이(710)의 엔트리(800)를 블록 도로 도시한다. 엔트리(800)는 MOP를 정의하는 다양한 인코딩된 비트 필드를 포함하는 40 비트 엔트리이다. 지원되는 비트 필드는 아래 표 1에 나와 있다.
비트(들) 필드명 필드 정의
0 MOP_CH0 1 = 가상 제어기 모드(VCM)로 명령을 서브-채널 0에 전송. 논-VCM 모드로 짝수 MEMCLK 사이클 상에서 명령 전송.
1 MOP_CH1 1 = VCM 모드에서 명령을 서브-채널 1에 전송. 논-VCM 모드로 홀수 MEMCLK 사이클 상에서 명령 전송.
5-2 MOP_RANK 루트 칩 선택을 위해 양 극성 칩 선택 맵
8-6 MOP_CID 거래용 DDR4 CID 값
9 RES 예비
12-10 MOP_BANK 명령의 뱅크 어드레스
14-13 MOP_BG 명령의 BG
28-15 MOP_ADDRESS 어드레스[13:0]. 이 필드는 모드 레지스터ㅌ 세트(MRS) 명령을 위한 비트 설정을 포함함
33-29 MOP_ENCDQ DQ 인코딩. 제로 값은 정규, 논-PDA 또는 논-PBA MRS/RCW/BCW 명령을 명시. 0이 아닌 값은 미리 결정된 명령의 특별 시퀀스를 명시.
36-34 MOP_TIMER 인코딩된 타이머.
37 MOP_VLD_D1 어레이 엔트리가 D1 상태(MstateReq)에서 유효. 1 = 요청이 D1에 대한 것일 경우 이 명령을 전송; 0 = D1 요청 중 명령을 건너뜀.
38 MOP_VLD_D2 어레이 엔트리가 D2 상태에서 유효. 1 = 요칭이 D2의 경우이면 이 명령을 전송; 0 = D2 요청 중 명령을 건너뜀.
39 MOP_VLD_D3 어레이 엔트리가 D3 상태의 경우 유효. 1 = 요청이 D3의 경우에 해당하면 이 명령을 전송; 0 = D3 요청 중 명령을 건너뜀.
MOP 어레이(712)는 자체 리프레시 제어기(566)가 임의의 허용된 상태 변경을 위해 요구된 MOP를 적절하게 디코딩하여 발행할 수 있도록 이어질 다양한 프로그래밍 요건을 갖는다. 자체 리프레시 제어기(566)는 제 1 널 엔트리가 어레이로부터 판독될 때까지 분기(branching)없이 선형으로 MOP를 디코딩하고 발행한다. 널 엔트리는 MOP_RANK의 모든 비트와 MOP_CID의 모든 비트가 0 인 엔트리이다. 따라서 시스템 BIOS가 MOP 어레이(712)를 프로그램할 때, 각 콘텍스트에 대해 적어도 하나의 널 엔트리가 프로그래밍되어야 한다.
MOP는 MOP_VLD_D1, MOP_VLD_D2 및 MOP_VLD_D3 중 둘 이상을 설정함으로써 상이한 D-상태들에 의해 공유될 수 있다. MOP는 MOP_VLD_D1, MOP_VLD_D2 및 MOP_VLD_D3 중 해당하는 것을 지움으로써 특정 D-상태에 의해 스킵된다.
D-상태 진입 루틴(SrEnterMOP)은 특정 요건을 갖는다. 패리티가 활성화(enable)되는 경우 패리티를 비활성화하는 명령이 포함되어야 한다. 등록된 DIMM(RDIMM)의 권장 순서는 먼저 DRAM 칩에서 패리티를 비활성화한 다음 버퍼에서 패리티를 비활성화하는 것이다. DDR4 규격에 따라 모드 레지스터 6(MR6) 비트 12-10에서 시간을 설정함으로써 프로그래밍되는 명령 대 명령 지연 시간(tCCD)을 프로그래밍하는 명령도 포함되어야 한다 또한 RDIMM이 있는 시스템의 경우 대상 레지스터 제어 워드 RC0A 및 RC3x를 프로그래밍하는 명령이 포함되어야 한다.
D-상태 탈출 루틴(SrExitMOP)은 또한 특정 요구 사항을 갖는다. 패리티가 활성화되는 경우 패리티를 활성화하는 명령을 포함해야 한다. RDIMM의 권장 구성은 레지스터에서만 패리티를 활성화하는 것이다.
단일 MOP 엔트리는 다수의 칩 선택을 목표로할 것으로 예상된다. 짝수/홀수 칩 선택이 의도적으로 비대칭 설정을 수신하지 않는 한, MOP_Rank가 채워진 모든 칩 선택을 반영하는 것이 좋다. 이와 관련하여, BEQ(514)는 반전 및 미러링을 허용하는 모드를 가지므로, 반전이 활성화되면 단일 MOP를 두 개의 명령으로 변환하고 반전 및 미러링이 모두 활성화된 경우 네 개의 명령으로 변환한다. 예를 들어 쿼드 랭크 DIMM의 경우, 인코딩된 칩 선택을 갖는 쿼드 랭크 RDIMM에 대해 모드 레지스터 세트 명령 당 두 개의 MOP 엔트리가 사용될 수 있다.
MOP 어레이(712)는 명령의 효율적인 인코딩을 가능하게 하는 다양한 필드를 지원하므로, 작은 사이즈로 구현될 수 있다. 예를 들어, 자체 리프레시 제어기(566)가 MOP 어레이(712)에 액세스하는데 사용하는 명령 스캐닝 기술은 각각의 저전력 상태에 대한 명령을 복제할 필요없이 특정 명령을 다수의 저전력 상태를 위해 사용할 수 있게 한다. 또한, 종료 조건을 신호하기 위해 널 엔트리를 사용하는 것은 자체 리프레시 제어기(566)가 원하는 상태 변화 및 콘텍스트에 기초하여 진입점 및 탈출점을 계산할 필요없이 각 명령 시퀀스의 끝을 인코딩하는 효율적인 방법이다.
따라서, 여기에 설명된 메모리 제어기는 제어기 및 프로그램 가능한 MOP 어레이를 사용하여 다양한 사용 가능한 메모리 유형 및 DIMM 구성 중 임의의 것을 지원한다. 제어기는 전력 상태 변경 요청 신호의 활성화에 응답하여 MOP 어레이에 액세스하여 적어도 하나의 엔트리를 페치하고, 엔트리에 의해 지시된 적어도 하나의 메모리 동작을 발행하여 전력 상태 변경 요청을 수행한다. 이와 같이 구성된 바와 같이, MOP 어레이는 메모리 제어기가 소형 회로를 사용하여 다양한 메모리 유형 및 구성을 지원할 수 있게 한다. 또한 시스템 BIOS는 시동시 메모리의 구성을 결정할 수 있고 시스템의 특정 유형의 메모리의 전력 상태 변경 작업에 해당하는 엔트리 세트로 MOP 어레이를 프로그래밍할 수 있다.
메모리 제어기는 하드웨어와 소프트웨어의 다양한 조합으로 구현될 수 있다. BIOS 메모리에 저장되고 시스템 BIOS에 의해 MOP 어레이에 로드되는 것과 같은 일부 소프트웨어 구성 요소는 적어도 하나의 프로세서에 의한 실행을 위해 비일시적 컴퓨터 판독 가능 저장 매체에 저장될 수 있다. 또한, 전력 상태 변화들에서 사용되는 몇몇 공통 동작들은 MOP 어레이의 필드들의 수 및/또는 크기를 단순화하기 위해 마이크로 제어기(564)와 같은 다른 하드웨어에서 구현될 수 있다.
도 5의 메모리 제어기(500) 또는 그 일부는 집적 회로를 제조하기 위해 프로그램에 의해 판독되고 직접 또는 간접적으로 사용될 수 있는 데이터베이스 또는 다른 데이터 구조의 형태의 컴퓨터 액세스 가능 데이터 구조에 의해 기술되거나 표현될 수 있다. 예를 들어, 이 데이터 구조는 Verilog 또는 VHDL과 같은 상위 수준 디자인 언어(HDL)의 하드웨어 기능에 대한 동작 수준 디스크립션 또는 레지스터 전송 수준(RTL) 디스크립션 일 수 있다. 디스크립션(description)은 합성 라이브러리로부터 게이트리스트를 포함하는 네트리스트를 생성하기 위해 디스크립션을 합성할 수 있는 합성 툴에 의해 판독될 수 있다. 네트리스트는 또한 집적 회로를 포함하는 하드웨어의 기능성을 또한 나타내는 게이트들의 세트를 포함한다. 그런 다음 네트리스트를 배치하고 라우팅하여 마스크에 적용할 기하학적 모양을 설명하는 데이터 세트를 생성할 수 있다. 그 다음, 마스크는 집적 회로를 제조하기 위해 다양한 반도체 제조 단계에서 사용될 수 있다. 대안으로, 컴퓨터 액세스 가능한 저장 매체상의 데이터베이스는 네트리스트(합성 라이브러리가 있거나 없는) 또는 원하는 데이터 세트, 또는 그래픽 데이터 시스템(GDS) II 데이터 일 수 있다.
특정 실시예가 설명되었지만, 이들 실시예에 대한 다양한 수정이 당업자에게 명백할 것이다. 예를 들어, 지원되는 메모리 장치들의 범위는 상이한 실시예들에서 변할 것이고, 상술한 예들에 제한되지 않는다. 또한, MOP 어레이의 필드 정의는 상이한 실시예에서 다양할 것이다. 또한, MOP 어레이(710)는 엔트리가 적용되는 특정 전력 상태를 나타내는 필드를 갖는 것으로 기술되었지만, 다른 실시예에서는 MOP 어레이(710)가 특정 지원되는 전력 상태 변경 요청 또는 목표 전력 공간에 대응하는 진입 및 탈출 어드레스로 구성될 수 있다.
따라서, 첨부된 청구 범위는 개시된 실시예의 범위 내에 있는 개시된 실시예의 모든 변형을 포함하는 것으로 의도된다.

Claims (20)

  1. 메모리 제어기(500)에 있어서,
    전력 상태 변경 요청 신호를 수신하기 위한 입력 및 메모리 동작을 제공하기 위한 출력을 갖는 제어기(566); 및
    복수의 엔트리를 포함하는 메모리 동작 어레이(710) - 상기 엔트리(800) 각각은 복수의 인코딩된 필드를 포함함 - 를 포함하되,
    상기 제어기(556)는 상기 전력 상태 변경 요청 신호의 활성화에 응답하여 상기 메모리 동작 어레이(710)에 액세스하여 적어도 하나의 엔트리를 페치하고 상기 엔트리에 의해 지시된 적어도 하나의 메모리 동작을 발행하는
    메모리 제어기(500).
  2. 제 1 항에 있어서, 상기 메모리 동작은 더블 데이터 레이트(DDR) 메모리 모듈(630)에 대한 모드 레지스터 세트(MRS) 명령을 포함하는, 메모리 제어기(500).
  3. 제 2 항에 있어서, 상기 메모리 동작은 상기 DDR 메모리 모듈(630)의 레지스터(650)를 구성하기 위한 레지스터 제어 워드 기입 명령들을 포함하는, 메모리 제어기(500).
  4. 제 3 항에 있어서, 상기 메모리 동작은 상기 DDR 메모리 모듈(630)의 데이터 버퍼(660)를 구성하기 위한 버퍼 제어 워드 기입 명령을 포함하는, 메모리 제어기(500).
  5. 제 1 항에 있어서, 상기 복수의 엔트리는 적어도 하나의 유효 엔트리 및 후속 널 엔트리를 포함하는, 메모리 제어기(500).
  6. 제 1 항에 있어서, 상기 복수의 인코딩된 필드 중 하나는 적어도 하나의 메모리 디바이스 전력 상태 중 어느 것이 상기 엔트리에 대응 하는지를 나타내는 전력 상태 필드를 포함하는, 메모리 제어기(500).
  7. 제 6 항에 있어서, 상기 적어도 하나의 메모리 디바이스 전력 상태는 동적 전압 상태, 동적 주파수 상태, 및 저전력 상태 중 하나에 대응하는, 메모리 제어기(500).
  8. 제 6 항에 있어서, 상기 적어도 하나의 메모리 디바이스 전력 상태는 고급 전력 구성 인터페이스(ACPI: advanced power configuration interface) D1 상태, ACPI D2 상태, ACPID D3 상태 중 선택된 하나에 대응하고, 상기 ACPI D3 상태는 더블 데이터 레이트 메모리(660)의 셀프 리프레시 상태에 대응하는, 메모리 제어기(500).
  9. 메모리 시스템(130/140)의 전력 상태를 제어하기 위한 방법으로서,
    전력 상태 변경 요청 신호를 수신하는 단계;
    상기 전력 상태 변경 요청 신호에 응답하여 메모리 동작(MOP) 어레이(710)에 액세스하는 단계;
    상기 MOP 어레이(710)의 엔트리를 적어도 하나의 메모리 동작으로 디코딩하는 단계;
    상기 적어도 하나의 메모리 동작을 출력하는 단계; 및
    기결정된 종료 조건이 발생할 때까지 상기 MOP 어레이(710) 내 후속 엔트리들에 대해 상기 디코딩 및 상기 출력을 반복하는 단계를 포함하는 제어 방법.
  10. 제 9 항에 있어서, 상기 기결정된 종료 조건은 후속 엔트리가 널(null) 엔트리인 경우에 존재하는, 제어 방법.
  11. 제 9 항에 있어서, 상기 전력 상태 변경 요청 신호는 액티브 상태로부터 저전력 상태로 변경 요청인, 제어 방법.
  12. 제 9 항에 있어서, 상기 전력 상태 변경 요청 신호는 액티브 상태의 제 1 동작 주파수로부터 제 2 동작 주파수로 변경 요청인, 제어 방법.
  13. 제 9 항에 있어서,
    상기 메모리 시스템(130)의 특성들을 검출하는 것에 응답하여 상기 MOP 어레이(710)에 일련의 동작들을 저장하는 단계를 더 포함하는, 제어 방법.
  14. 제 13 항에 있어서,
    상기 저장 단계는 기본 입/출력 시스템(BIOS)의 제어하에 상기 일련의 동작을 상기 MOP 어레이(710)에 저장하는 단계를 포함하는, 제어 방법.
  15. 시스템(100)에 있어서,
    메모리 모듈(134/136/138)을 포함하는 메모리 시스템(130); 과
    메모리 제어기(500)를 사용하여 상기 메모리 모듈(134/136/138)에 액세스하도록 적응된, 상기 메모리 시스템(130)에 연결된 프로세서(110)를 포함하되, 상기 메모리 제어기(500)는,
    전력 상태 변경 요청 신호를 수신하기 위한 입력 및 메모리 동작을 제공하기 위한 출력을 갖는 제어기(566); 및
    복수의 엔트리를 포함하는 메모리 동작 어레이(710) - 상기 엔트리 각각은 복수의 인코딩된 필드를 포함 함 - 를 포함하며,
    상기 제어기(566)는 상기 전력 상태 변경 요청 신호의 활성화에 응답하여 상기 메모리 동작 어레이(710)에 액세스하여 적어도 하나의 엔트리를 패치하고 상기 엔트리에 의해 지시된 적어도 하나의 메모리 동작을 발행하는, 시스템(100).
  16. 제 15 항에 있어서, 상기 프로세서(110)는,
    상기 프로세서(110)의 동적인 동작에 응답하여 상기 전력 상태 변경 요청을 생성하기 위한 시스템 관리 유닛(130)을 더 포함하는, 시스템(100).
  17. 제 15 항에 있어서, 상기 메모리 모듈(134/136/138)은,
    복수의 DDR(double data rate) 메모리 칩(660)을 포함하는, 시스템(100).
  18. 제 17 항에 있어서, 상기 메모리 모듈(134/136/138)은,
    복수의 명령 및 어드레스 신호를 수신하기 위해 상기 프로세서(110)에 결합된 입력, 및 상기 복수의 DDR 메모리 칩(660)에 결합된 출력을 갖는 레지스터(660)를 더 포함하는, 시스템(100).
  19. 제 17 항에 있어서, 상기 메모리 모듈(134/136/138)은,
    상기 프로세서(110)에 결합된 제 1 양방향 데이터 포트, 및 상기 복수의 DDR 메모리 칩(660)에 결합된 제 2 양방향 데이터 포트를 각각 갖는 복수의 데이터 버퍼(650)를 더 포함하는, 시스템(100).
  20. 제 15 항에 있어서, 상기 프로세서(110)는,
    상기 메모리 제어기(500)와 상기 메모리 시스템(620) 사이에 결합된 물리적 인터페이스(PHY)(620)를 더 포함하는, 시스템(100).
KR1020187033473A 2016-06-01 2016-09-23 자동 리프레시 상태 머신 mop 어레이 KR20190004302A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/170,872 US10198204B2 (en) 2016-06-01 2016-06-01 Self refresh state machine MOP array
US15/170,872 2016-06-01
PCT/US2016/053338 WO2017209782A1 (en) 2016-06-01 2016-09-23 Self refresh state machine mop array

Publications (1)

Publication Number Publication Date
KR20190004302A true KR20190004302A (ko) 2019-01-11

Family

ID=60478906

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020187033473A KR20190004302A (ko) 2016-06-01 2016-09-23 자동 리프레시 상태 머신 mop 어레이

Country Status (6)

Country Link
US (2) US10198204B2 (ko)
EP (1) EP3433752B1 (ko)
JP (1) JP6761873B2 (ko)
KR (1) KR20190004302A (ko)
CN (1) CN109154918B (ko)
WO (1) WO2017209782A1 (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10067903B2 (en) 2015-07-30 2018-09-04 SK Hynix Inc. Semiconductor device
KR102358177B1 (ko) 2015-12-24 2022-02-07 에스케이하이닉스 주식회사 제어회로 및 제어회로를 포함하는 메모리 장치
US11755255B2 (en) 2014-10-28 2023-09-12 SK Hynix Inc. Memory device comprising a plurality of memories sharing a resistance for impedance matching
US10332582B2 (en) 2017-08-02 2019-06-25 Qualcomm Incorporated Partial refresh technique to save memory refresh power
US10698846B2 (en) * 2018-11-07 2020-06-30 Realtek Semiconductor Corporation DDR SDRAM physical layer interface circuit and DDR SDRAM control device
US11809382B2 (en) 2019-04-01 2023-11-07 Nutanix, Inc. System and method for supporting versioned objects
US11226905B2 (en) 2019-04-01 2022-01-18 Nutanix, Inc. System and method for mapping objects to regions
US11029993B2 (en) 2019-04-04 2021-06-08 Nutanix, Inc. System and method for a distributed key-value store
US20210073037A1 (en) * 2019-09-09 2021-03-11 Advanced Micro Devices, Inc. Active hibernate and managed memory cooling in a non-uniform memory access system
US11704334B2 (en) 2019-12-06 2023-07-18 Nutanix, Inc. System and method for hyperconvergence at the datacenter
US11176986B2 (en) * 2019-12-30 2021-11-16 Advanced Micro Devices, Inc. Memory context restore, reduction of boot time of a system on a chip by reducing double data rate memory training
US11609777B2 (en) 2020-02-19 2023-03-21 Nutanix, Inc. System and method for multi-cluster storage
US20210334284A1 (en) 2020-04-28 2021-10-28 Nutanix, Inc. System and method of querying objects on demand
US11487787B2 (en) 2020-05-29 2022-11-01 Nutanix, Inc. System and method for near-synchronous replication for object store
US11664062B2 (en) * 2020-07-24 2023-05-30 Advanced Micro Devices, Inc. Memory calibration system and method
US11900164B2 (en) 2020-11-24 2024-02-13 Nutanix, Inc. Intelligent query planning for metric gateway
US11822370B2 (en) 2020-11-26 2023-11-21 Nutanix, Inc. Concurrent multiprotocol access to an object storage system
TWI773106B (zh) * 2021-01-28 2022-08-01 華邦電子股份有限公司 具有運算功能的記憶體裝置及其操作方法
US11934251B2 (en) * 2021-03-31 2024-03-19 Advanced Micro Devices, Inc. Data fabric clock switching
US11516033B1 (en) 2021-05-31 2022-11-29 Nutanix, Inc. System and method for metering consumption
US20230031388A1 (en) * 2021-07-30 2023-02-02 Advanced Micro Devices, Inc. On-demand ip initialization within power states
US11899572B2 (en) 2021-09-09 2024-02-13 Nutanix, Inc. Systems and methods for transparent swap-space virtualization
US20230342048A1 (en) * 2022-04-21 2023-10-26 Micron Technology, Inc. Self-Refresh Arbitration
US11983411B2 (en) * 2022-04-25 2024-05-14 Infineon Technologies LLC Methods, devices and systems for including alternate memory access operations over memory interface
US20240004560A1 (en) * 2022-06-29 2024-01-04 Advanced Micro Devices, Inc. Efficient memory power control operations

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6523089B2 (en) * 2000-07-19 2003-02-18 Rambus Inc. Memory controller with power management logic
US6944708B2 (en) * 2002-03-22 2005-09-13 Intel Corporation Method of self-refresh in large memory arrays
KR100510496B1 (ko) * 2002-11-19 2005-08-26 삼성전자주식회사 페이지 길이를 변환할 수 있는 구조를 가지는 반도체메모리 장치 및 상기 반도체 메모리 장치의 페이지 길이변환방법
US20060181949A1 (en) * 2004-12-31 2006-08-17 Kini M V Operating system-independent memory power management
US7610497B2 (en) * 2005-02-01 2009-10-27 Via Technologies, Inc. Power management system with a bridge logic having analyzers for monitoring data quantity to modify operating clock and voltage of the processor and main memory
US8438328B2 (en) 2008-02-21 2013-05-07 Google Inc. Emulation of abstracted DIMMs using abstracted DRAMs
US7561472B2 (en) * 2006-09-11 2009-07-14 Micron Technology, Inc. NAND architecture memory with voltage sensing
US7788414B2 (en) * 2007-01-16 2010-08-31 Lantiq Deutschland Gmbh Memory controller and method of controlling a memory
US8060705B2 (en) * 2007-12-14 2011-11-15 Qimonda Ag Method and apparatus for using a variable page length in a memory
US7971081B2 (en) * 2007-12-28 2011-06-28 Intel Corporation System and method for fast platform hibernate and resume
US20100005212A1 (en) * 2008-07-01 2010-01-07 International Business Machines Corporation Providing a variable frame format protocol in a cascade interconnected memory system
US8639874B2 (en) 2008-12-22 2014-01-28 International Business Machines Corporation Power management of a spare DRAM on a buffered DIMM by issuing a power on/off command to the DRAM device
US8239590B1 (en) 2009-01-31 2012-08-07 Xilinx, Inc. Method and apparatus for transferring data between two different interfaces
US8799685B2 (en) * 2010-08-25 2014-08-05 Advanced Micro Devices, Inc. Circuits and methods for providing adjustable power consumption
US8942056B2 (en) 2011-02-23 2015-01-27 Rambus Inc. Protocol for memory power-mode control
WO2013032663A2 (en) * 2011-09-01 2013-03-07 Rambus Inc. Variable code rate transmission
WO2013100909A1 (en) 2011-12-27 2013-07-04 Intel Corporation Adaptive configuration of non-volatile memory
US20130262792A1 (en) 2012-03-27 2013-10-03 International Business Machines Corporation Memory device support of dynamically changing frequency in memory systems
KR20160127168A (ko) 2013-03-15 2016-11-02 인텔 코포레이션 메모리 시스템
KR20150009295A (ko) * 2013-07-16 2015-01-26 삼성전자주식회사 불휘발성 메모리 장치 및 그것의 슬리프 상태 제어 방법
KR102057504B1 (ko) * 2013-07-24 2020-01-22 삼성전자주식회사 어플리케이션 프로세서, 이를 구비하는 모바일 디바이스 및 전력 관리 방법
US9581612B2 (en) * 2013-08-26 2017-02-28 EveryFit, Inc. Systems and methods for a power efficient method for detecting wear and non-wear of a sensor
US9483096B2 (en) * 2013-12-06 2016-11-01 Sandisk Technologies Llc Host interface of a memory device supplied with regulated or non-regulated power based on operating mode of the memory device
US20160077561A1 (en) * 2014-09-11 2016-03-17 Kabushiki Kaisha Toshiba Memory system
US9711192B2 (en) * 2014-11-03 2017-07-18 Samsung Electronics Co., Ltd. Memory device having different data-size access modes for different power modes
KR20170045806A (ko) * 2015-10-20 2017-04-28 삼성전자주식회사 반도체 메모리 장치 및 이의 동작 방법
US20190243721A1 (en) * 2018-02-08 2019-08-08 Micron Technology, Inc. Backup operations from volatile to non-volatile memory

Also Published As

Publication number Publication date
US10198204B2 (en) 2019-02-05
CN109154918A (zh) 2019-01-04
WO2017209782A1 (en) 2017-12-07
EP3433752A1 (en) 2019-01-30
EP3433752B1 (en) 2022-05-04
JP6761873B2 (ja) 2020-09-30
CN109154918B (zh) 2023-08-15
JP2019520640A (ja) 2019-07-18
EP3433752A4 (en) 2019-11-27
US20190138234A1 (en) 2019-05-09
US20170351450A1 (en) 2017-12-07
US11221772B2 (en) 2022-01-11

Similar Documents

Publication Publication Date Title
US11221772B2 (en) Self refresh state machine mop array
CN112506422B (zh) 精细粒度刷新
CN109564556B (zh) 具有条纹和读取/写入事务管理的存储器控制器仲裁器
KR102442078B1 (ko) 고속 메모리 인터페이스들을 위한 명령 중재
CN109690508B (zh) 带虚拟控制器模式的存储器控制器
KR102444201B1 (ko) 플랫폼 마지닝 및 디버그를 위한 소프트웨어 모드 레지스터 액세스
CN109219806B (zh) 低功率存储器节流
KR20220123512A (ko) 메모리 컨텍스트 복원, 더블 데이터 레이트 메모리 트레이닝을 감소시킴으로써 시스템 온 칩의 부트 시간의 감소
JP2024512682A (ja) メモリコントローラ電力状態
EP3270295A1 (en) Memory controller with virtual controller mode

Legal Events

Date Code Title Description
E902 Notification of reason for refusal