KR20230160854A - 메모리 제어기 전력 상태들 - Google Patents

메모리 제어기 전력 상태들 Download PDF

Info

Publication number
KR20230160854A
KR20230160854A KR1020237035614A KR20237035614A KR20230160854A KR 20230160854 A KR20230160854 A KR 20230160854A KR 1020237035614 A KR1020237035614 A KR 1020237035614A KR 20237035614 A KR20237035614 A KR 20237035614A KR 20230160854 A KR20230160854 A KR 20230160854A
Authority
KR
South Korea
Prior art keywords
memory
controller
power state
phy
dram
Prior art date
Application number
KR1020237035614A
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 KR20230160854A publication Critical patent/KR20230160854A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3215Monitoring of peripheral devices
    • G06F1/3225Monitoring of peripheral devices of memory devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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
    • 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
    • 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
    • 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/4076Timing circuits
    • 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
    • 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
    • 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)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Dram (AREA)
  • Power Sources (AREA)
  • Memory System (AREA)

Abstract

메모리 제어기는 명령 대기열 및 제1 전압 도메인에서 동작하는 아비터(arbiter), 및 제2 전압 도메인에서 동작하는 물리 계층 인터페이스(PHY)를 포함한다. 메모리 제어기는 제1 전압 도메인으로부터 PHY를 격리하도록 동작가능한 격리 셀들을 포함한다. 로컬 전력 상태 제어기는, 제1 전력 상태 명령에 응답하여, 온-칩 RAM 메모리에 저장하기 위한 구성 및 상태 데이터를 제공하고, 메모리 제어기로 하여금 전력 차단 상태에 진입하게 하고, PHY를 메모리 제어기가 전력 차단 상태에 있는 동안 제2 전압 도메인에 전력이 공급되는 저전력 상태에서 유지한다.

Description

메모리 제어기 전력 상태들
컴퓨터 시스템들은 전형적으로 메인 메모리용으로 저렴한 고밀도 동적 랜덤 액세스 메모리(DRAM) 칩들을 사용한다. 오늘날 판매되는 대부분의 DRAM 칩들은 합동 전자 장치 엔지니어링 협의회(JEDEC)에 의해 공표된 다양한 더블 데이터 레이트(DDR, double data rate) DRAM 표준과 호환된다. 메모리 버스를 통해 DRAM으로 이동하거나 그로부터 이동하는 데이터의 흐름은 전형적으로 메모리 제어기에 의해 관리된다. 메모리 제어기는 호스트 시스템으로부터 메모리 액세스 요청들을 수신하여, 대기열에 저장하고, 이들을 아비터(arbiter)에 의해 선택된 순서로 DRAM에 디스패치한다.
메모리 제어기 및 그의 연관된 DRAM 메모리는 성능을 증가시키거나 그들의 전력 소비를 감소시키기 위해 상이한 전력 모드들에 놓일 수 있다. 이와 같은 전력 모드들은 컴퓨터 시스템의 많은 부분들에 대해 이용되며, 여기서 상이한 모드들은 프로세서 코어에 대한 전력을 프로세싱하거나, 통신 버스에 대한 데이터 레이트를 시그널링하는 것과 같은 상이한 동작 용량들을 제공한다. 그러한 전력 모드들을 관리하는 데 널리 사용되는 표준 중 하나가 고급 구성 및 전력 인터페이스(Advanced Configuration and Power Interface, ACPI)로서, 이는 개인용 컴퓨터들(PC들) 및 서버들과 같은 컴퓨터들의 전력 관리 및 구성 표준이다. ACPI는 컴퓨터 운영 체제가 제한된 모드들의 세트 중에서 디바이스 동작 모드를 변경함으로써 각각의 디바이스에 주어지는 전력량을 제어할 수 있게 한다. 예를 들어, 그러한 변경들은 디바이스들의 클록 속도들을 더 높거나 더 낮은 주파수로 변경하는 것, 또는 디바이스들을 대기 또는 전력-오프 모드들로 설정하는 것을 포함할 수 있다. ACPI는 운영 체제에 노출된 일반화된 세트의 제어들을 제공하는 산업 표준이지만, 이는 특정 데이터 프로세싱 시스템들의 전력 소비 또는 성능을 최적화하는 것을 목표로 하는 특정 특징들을 포함하지 않는다.
도 1은 종래 기술에서 알려진 가속 프로세싱 유닛(APU) 및 메모리 시스템을 블록도 형태로 도시한다.
도 2는 일부 실시예들에 따른, 도 1의 것과 같은 APU에서 사용하기에 적합한 메모리 제어기를 블록도 형태로 도시한다.
도 3은 APU의 일부분을 블록도 형태로 도시한 것으로서, 예시적인 실시예에 따른, 메모리 제어기들의 전력 상태들을 제어하기 위한 요소들을 도시한다.
도 4는 예시적인 실시예에 따른, 메모리 제어기를 저전력 상태들에 진입하도록 동작시키는 프로세스의 흐름도를 도시한다.
도 5는 예시적인 실시예에 따른, 메모리 제어기를 저전력 상태에서 벗어나도록 동작시키는 프로세스의 흐름도를 도시한다.
하기의 설명에서, 상이한 도면에서의 동일한 참조 번호의 사용은 유사하거나 동일한 아이템을 지시한다. 달리 언급되지 않는 한, 단어 "결합된" 및 그의 연관된 동사 형태는 당업계에 공지된 수단에 의한 직접적인 연결 및 간접적인 전기 연결 둘 모두를 포함하며, 달리 언급되지 않는 한, 직접적인 연결에 대한 임의의 설명은 적합한 형태의 간접적인 전기 연결을 사용하는 대안적인 실시예도 암시한다.
메모리 제어기는 명령 대기열, 아비터, DRAM 물리 계층 인터페이스(PHY), 및 로컬 전력 상태 제어기를 포함한다. 명령 대기열은 제1 메모리 채널에 대한 메모리 액세스 요청들을 수신한다. 아비터는 명령 대기열로부터 엔트리들을 선택하고, 이들을 메모리 인터페이스 대기열에 배치하여 이들이 제1 메모리 채널을 통해 송신되게 한다. 명령 대기열 및 아비터 둘 모두는 제1 전압 도메인에서 동작하고, DRAM PHY는 제2 전압 도메인에서 동작한다. DRAM PHY는 메모리 제어기를 제1 메모리 채널과 연관된 DRAM 메모리에 결합하고, 1 전압 도메인으로부터 DRAM PHY를 격리하도록 동작가능한 격리 셀들을 포함한다. 로컬 전력 상태 제어기는, 제1 전력 상태 명령에 응답하여, 온-칩 RAM 메모리에 저장하기 위한 구성 및 상태 데이터를 제공하고, 메모리 제어기로 하여금 전력 차단(powered-down) 상태에 진입하게 하고, DRAM PHY를 메모리 제어기가 전력 차단 상태에 있는 동안 제2 전압 도메인에 전력이 공급되는 저전력 상태에서 유지한다.
방법은, 제1 메모리 제어기의 로컬 전력 상태 제어기에서, 제1 전력 상태 명령을 수신하는 단계, 및 이에 응답하여, 메모리 제어기의 제어 레지스터들로부터의 구성 및 상태 데이터가 온-칩 RAM 메모리에 저장되게 하는 단계를 포함한다. 또한, 방법은 제1 전력 상태 명령을 수신하는 것에 응답하여, 제1 메모리 제어기로 하여금 전력 차단 상태에 진입하게 하는 단계, 및 PHY를 제1 메모리 제어기가 전력 차단 상태에 있는 동안 PHY의 제2 전압 도메인에 전력이 공급되는 저전력 상태에서 유지하는 단계를 포함한다.
데이터 프로세싱 시스템은 데이터 패브릭, 시스템 전력 상태 제어기, 제1 메모리 채널, 및 제1 메모리 제어기를 포함한다. 시스템 전력 상태 제어기는 데이터 패브릭 및 온-칩 RAM 메모리에 결합된다. 제1 메모리 채널은 연관된 DRAM 메모리에 연결된다. 제1 메모리 제어기는 적어도 하나의 메모리 액세스 엔진으로부터 데이터 패브릭을 통해 수신된 메모리 액세스 요청들을 이행하기 위해 데이터 패브릭 및 제1 메모리 채널에 연결된다. 제1 메모리 제어기는 명령 대기열, 아비터, DRAM PHY, 및 로컬 전력 상태 제어기를 포함한다. 명령 대기열은 제1 메모리 채널에 대한 메모리 액세스 요청들을 수신한다. 아비터는 명령 대기열로부터 엔트리들을 선택하고, 이들을 메모리 인터페이스 대기열에 배치하여 이들이 제1 메모리 채널을 통해 송신되게 한다. 명령 대기열 및 아비터 둘 모두는 제1 전압 도메인에서 동작하고, DRAM PHY는 제2 전압 도메인에서 동작한다. DRAM PHY는 메모리 제어기를 DRAM 메모리에 결합하고, 제1 전압 도메인으로부터 DRAM PHY를 격리하도록 동작가능한 격리 셀들을 포함한다. 로컬 전력 상태 제어기는, 제1 전력 상태 명령에 응답하여, 온-칩 RAM 메모리에 저장하기 위한 구성 및 상태 데이터를 제공하고, 메모리 제어기로 하여금 전력 차단 상태에 진입하게 하고, DRAM PHY를 메모리 제어기가 전력 차단 상태에 있는 동안 제2 전압 도메인에 전력이 공급되는 저전력 상태에서 유지한다.
도 1은 종래 기술에서 알려진 가속 프로세싱 유닛(APU)(100) 및 메모리 시스템(130)을 블록도 형태로 예시한다. APU(100)는 호스트 데이터 프로세싱 시스템에서 프로세서로서 사용하기에 적합한 집적 회로이며, 일반적으로 중앙 프로세싱 유닛(CPU) 코어 컴플렉스(core complex)(110), 그래픽 코어(120), 디스플레이 엔진(122)의 세트, 데이터 패브릭(125), 메모리 관리 허브(140), 주변 제어기(160)의 세트, 주변 버스 제어기(170)의 세트, 및 시스템 관리 유닛(SMU)(180)을 포함한다.
CPU 코어 컴플렉스(110)는 CPU 코어(112) 및 CPU 코어(114)를 포함한다. 이 예에서, CPU 코어 컴플렉스(110)는 2개의 CPU 코어를 포함하지만, 다른 실시예들에서 CPU 코어 컴플렉스(110)는 임의의 수의 CPU 코어들을 포함할 수 있다. CPU 코어들(112 및 114) 각각은 제어 패브릭을 형성하는 시스템 관리 네트워크(SMN)에, 그리고 데이터 패브릭(125)에 양방향으로 연결되고, 데이터 패브릭(125)에 메모리 액세스 요청을 제공할 수 있다. CPU 코어들(112 및 114) 각각은 일체형 코어들일 수 있거나, 추가로 캐시들과 같은 특정 자원들을 공유하는 2개 이상의 일체형 코어들을 갖는 코어 컴플렉스일 수 있다.
그래픽 코어(120)는 고집적 및 병렬 방식으로 정점 프로세싱, 프래그먼트 프로세싱, 셰이딩, 텍스처 블렌딩 등과 같은 그래픽 동작을 수행할 수 있는 고성능 그래픽 프로세싱 유닛(GPU)이다. 그래픽 코어(120)는 SMN 및 데이터 패브릭(125)에 양방향으로 연결되고, 데이터 패브릭(125)에 메모리 액세스 요청들을 제공할 수 있다. 이와 관련하여, APU(100)는 CPU 코어 컴플렉스(110) 및 그래픽 코어(120)가 동일한 메모리 공간을 공유하는 통합 메모리 아키텍처, 또는 CPU 코어 컴플렉스(110) 및 그래픽 코어(120)가 메모리 공간의 일부분을 공유하는 반면, 그래픽 코어(120)가 또한 CPU 코어 컴플렉스(110)에 의해 액세스 가능하지 않은 프라이빗 그래픽 메모리를 사용하는 메모리 아키텍처를 지원할 수 있다.
디스플레이 엔진들(122)은 모니터 상에서의 디스플레이를 위해 그래픽 코어(120)에 의해 생성된 객체들을 렌더링하고 래스터화한다. 그래픽 코어(120) 및 디스플레이 엔진들(122)은 메모리 시스템(130)에서의 적절한 어드레스로의 균일한 변환을 위해 데이터 패브릭(125)을 통해 공통 메모리 관리 허브(140)에 양방향으로 연결된다.
데이터 패브릭(125)은 임의의 메모리 액세싱 에이전트와 메모리 관리 허브(140) 사이에서 메모리 액세스 요청들 및 메모리 응답들을 라우팅하기 위한 크로스바 스위치를 포함한다. 그것은 또한 시스템 구성에 기초하여 메모리 액세스들의 목적지들을 결정하기 위한, 기본 입력/출력 시스템(BIOS)에 의해 정의된, 시스템 메모리 맵뿐만 아니라, 각각의 가상 연결을 위한 버퍼들을 포함한다.
주변 제어기들(160)은 범용 직렬 버스(USB) 제어기(162) 및 직렬 고급 기술 결합(SATA) 인터페이스 제어기(164)를 포함하며, 이들 각각은 시스템 허브(166) 및 SMN 버스에 양방향으로 연결된다. 이들 2개의 제어기들은 단지 APU(100)에서 사용될 수 있는 주변 제어기들의 예시일 뿐이다.
주변 버스 제어기들(170)은 시스템 제어기 또는 "사우스브리지(Southbridge)"(SB)(172) 및 PCIe(Peripheral Component Interconnect Express) 제어기(174)를 포함하고, 이들 각각은 입력/출력(I/O) 허브(176) 및 SMN 버스에 양방향으로 연결된다. I/O 허브(176)는 또한 시스템 허브(166) 및 데이터 패브릭(125)에 양방향으로 연결된다. 따라서, 예를 들어, CPU 코어는 데이터 패브릭(125)이 I/O 허브(176)를 통해 라우팅하는 액세스들을 통해 USB 제어기(162), SATA 인터페이스 제어기(164), SB(172), 또는 PCIe 제어기(174) 내 레지스터들을 프로그래밍할 수 있다. APU(100)용 소프트웨어 및 펌웨어는, 판독 전용 메모리(ROM), 플래시 이이피롬(EEPROM, electrically erasable programmable ROM) 등과 같은 다양한 비휘발성 메모리 유형들 중 임의의 것일 수 있는, 시스템 데이터 드라이브 또는 시스템 BIOS 메모리(미도시)에 저장된다. 전형적으로, BIOS 메모리는 PCIe 버스를 통해 액세스되고, 시스템 데이터 드라이브는 SATA 인터페이스를 통해 액세스된다.
SMU(180)는 APU(100) 상의 자원들의 동작을 제어하고 이들 사이의 통신을 동기화하는 로컬 제어기이다. SMU(180)는 APU(100) 상의 다양한 프로세서들의 전력 공급 시퀀싱을 관리하고 리셋, 인에이블 및 다른 신호들을 통해 다수의 오프-칩 디바이스들을 제어한다. SMU(180)는 APU(100)의 컴포넌트들 각각에 대한 클록 신호들을 제공하기 위해, 위상 고정 루프(PLL)와 같은, 하나 이상의 클록 소스들(미도시)을 포함한다. SMU(180)는 또한 다양한 프로세서들 및 다른 기능 블록들에 대한 전력을 관리하고, 측정된 전력 소비 값을 CPU 코어들(112 및 114) 및 그래픽 코어(120)로부터 수신하여 적절한 전력 상태들을 결정할 수 있다.
메모리 관리 허브(140) 및 그의 연관된 물리적 인터페이스들(PHY들)(151 및 152)은 본 실시예에서 APU(100)와 통합된다. 메모리 관리 허브(140)는 메모리 채널들(141 및 142) 및 전력 엔진(149)을 포함한다. 메모리 채널(141)은 호스트 인터페이스(145), 메모리 채널 제어기(143), 및 물리적 인터페이스(147)를 포함한다. 호스트 인터페이스(145)는 직렬 프레즌스 검출 링크(serial presence detect link, SDP)를 통해 메모리 채널 제어기(143)를 데이터 패브릭(125)에 양방향으로 연결한다. 물리적 인터페이스(147)는 메모리 채널 제어기(143)를 PHY(151)에 양방향으로 연결하고, PHY(151)를 구성하기 위한 DDR PHY 인터페이스(DFI) 사양을 따른다. 메모리 채널(142)은 호스트 인터페이스(146), 메모리 채널 제어기(144), 및 물리적 인터페이스(148)를 포함한다. 호스트 인터페이스(146)는 다른 SDP를 통해 메모리 채널 제어기(144)를 데이터 패브릭(125)에 양방향으로 연결한다. 물리적 인터페이스(148)는 메모리 채널 제어기(144)를 PHY(152)에 양방향으로 연결하고, DFI 사양을 따른다. 전력 엔진(149)은 SMN 버스를 통해 SMU(180)에, APB(advanced peripheral bus) 인터페이스(254)를 통해 PHY들(151 및 152)에 양방향으로 연결되고, 메모리 채널 제어기들(143 및 144)에도 양방향으로 연결된다. PHY(151)는 메모리 채널(131)에 대한 양방향 연결을 갖는다. PHY(152)는 양방향 연결 메모리 채널(133)을 갖는다.
메모리 관리 허브(140)는 2개의 메모리 채널 제어기들을 갖는 메모리 제어기의 인스턴스화이고, 아래에서 추가로 설명될 방식으로 메모리 채널 제어기(143) 및 메모리 채널 제어기(144) 둘 모두의 동작을 제어하기 위해 공유 전력 엔진(149)을 사용한다. 메모리 채널들(141 및 142) 각각은 DDR 버전 5(DDR5), DDR 버전 4(DDR4), 저전력 DDR4(LPDDR4), 그래픽 DDR 버전 5(GDDR5), 및 고대역폭 메모리(HBM)와 같은 최신 DDR 메모리들에 연결될 수 있고, 미래의 메모리 기술들에 안성맞춤일 수 있다. 이들 메모리들은 높은 버스 대역폭 및 고속 동작을 제공한다. 동시에, 그들은 또한 랩톱 컴퓨터들과 같은 배터리 구동 애플리케이션들의 전력을 절약하기 위해 저전력 모드를 제공하고, 내장형 열 모니터링도 제공한다.
메모리 시스템(130)은 메모리 채널(131) 및 메모리 채널(133)을 포함한다. 메모리 채널(131)은 이 예에서 별개의 랭크들에 대응하는 대표적인 듀얼 인라인 메모리 모듈들(DIMM들)(134, 136, 및 138)을 포함하여, DDRx 버스(132)에 연결된 DIMM들의 세트를 포함한다. 마찬가지로, 메모리 채널(133)은 대표적인 DIMM들(135, 137, 및 139)을 포함하여, DDRx 버스(129)에 연결된 DIMM들의 세트를 포함한다.
APU(100)는 호스트 데이터 프로세싱 시스템의 중앙 프로세싱 유닛(CPU)으로서 동작하고, 현대의 컴퓨터 시스템들에서 유용한 다양한 버스들 및 인터페이스들을 제공한다. 이들 인터페이스들은 2개의 더블 데이터 레이트(DDRx) 메모리 채널들, PCIe 링크에 대한 연결을 위한 PCIe 루트 컴플렉스, USB 네트워크에 대한 연결을 위한 USB 제어기, 및 SATA 대용량 저장 디바이스에 대한 인터페이스를 포함한다.
APU(100)는 또한 다양한 시스템 모니터링 및 전력 절약 기능들을 구현한다. 특히, 하나의 시스템 모니터링 기능은 열 모니터링이다. 예를 들어, APU(100)가 뜨거워지면, SMU(180)는 CPU 코어들(112 및 114) 및/또는 그래픽 코어(120)의 주파수 및 전압을 감소시킬 수 있다. APU(100)가 너무 뜨거워지면, 그것은 완전히 셧다운될 수 있다. 열 이벤트(thermal event)들은 또한 SMN 버스를 통해 SMU(180)에 의해 외부 센서로부터 수신될 수 있고, SMU(180)는 이에 응답하여 클록 주파수 및/또는 전력 공급 전압을 감소시킬 수 있다.
도 2는 도 1의 것과 같은 APU에서 사용하기에 적합한 메모리 제어기(200)를 블록도 형태로 예시한다. 메모리 제어기(200)는 일반적으로 메모리 채널 제어기(210) 및 전력 제어기(250)를 포함한다. 메모리 채널 제어기(210)는 일반적으로 인터페이스(212), 메모리 인터페이스 대기열(214), 명령 대기열(220), 어드레스 생성기(222), 콘텐츠 어드레싱 가능 메모리(CAM)(224), 리플레이 제어 로직(231), 리프레시 제어 로직 블록(232), 타이밍 블록(234), 페이지 테이블(236), 아비터(238), 에러 정정 코드(ECC) 체크 회로(242), ECC 생성 블록(244), 데이터 버퍼(246), 리프레시 제어 로직(232), 및 격리 셀들(290)을 포함한다.
인터페이스(212)는 외부 버스를 통해 데이터 패브릭에 대한 제1 양방향 연결을 갖고, 출력을 갖는다. 메모리 제어기(200)에서, 이러한 외부 버스는 "AXI4"로 알려진, 영국 캠브리지 소재의 에이알엠 홀딩스, 피엘씨(ARM Holdings, PLC)에 의해 지정된 고급 확장 가능 인터페이스(advanced extensible interface) 버전 4와 호환되지만, 다른 실시예에서는 다른 유형들의 인터페이스들일 수 있다. 인터페이스(212)는 FCLK(또는 MEMCLK) 도메인으로 알려진 제1 클록 도메인으로부터 UCLK 도메인으로 알려진, 메모리 제어기(200)의 내부에 있는 제2 클록 도메인으로 메모리 액세스 요청들을 변환한다. 유사하게, 메모리 인터페이스 대기열(214)은 UCLK 도메인으로부터 DFI 인터페이스와 연관된 DFICLK 도메인으로 메모리 액세스들을 제공한다.
어드레스 생성기(222)는 AXI4 버스를 통해 데이터 패브릭으로부터 수신된 메모리 액세스 요청들의 어드레스들을 디코딩한다. 메모리 액세스 요청들은 정규화된 포맷으로 표현되는 물리적 어드레스 공간에서의 액세스 어드레스들을 포함한다. 어드레스 생성기(222)는 정규화된 어드레스들을, 메모리 시스템(130) 내의 실제 메모리 디바이스를 어드레싱할 뿐만 아니라 관련 액세스들을 효율적으로 스케줄링하는 데 사용될 수 있는 포맷으로 변환한다. 이러한 포맷은 메모리 액세스 요청을 특정 랭크, 로우 어드레스(row address), 컬럼 어드레스(column address), 뱅크 어드레스, 및 뱅크 그룹과 연관시키는 영역 식별자를 포함한다. 시동 시에, 시스템 BIOS는 메모리 시스템(130) 내의 메모리 디바이스에 질의하여 그들의 크기 및 구성을 결정하고, 어드레스 생성기(222)와 연관된 구성 레지스터들의 세트를 프로그래밍한다. 어드레스 생성기(222)는 구성 레지스터들에 저장된 구성을 사용하여 정규화된 어드레스들을 적절한 포맷으로 변환한다. 명령 대기열(220)은 CPU 코어들(112 및 114) 및 그래픽 코어(120)와 같은, APU(100) 내의 메모리 액세싱 에이전트들로부터 수신된 메모리 액세스 요청들의 대기열이다. 명령 대기열(220)은 어드레스 생성기(222)에 의해 디코딩된 어드레스 필드들뿐만 아니라, 액세스 유형 및 서비스 품질(QoS) 식별자들을 포함하여, 아비터(238)가 메모리 액세스를 효율적으로 선택하는 것을 가능하게 하는 다른 어드레스 정보를 저장한다. CAM(224)은 기록 후 기록(write after write, WAW) 및 기록 후 판독(read after write, RAW) 순서화 규칙들과 같은 순서화 규칙들을 시행하기 위한 정보를 포함한다.
에러 정정 코드(ECC) 생성 블록(244)은 메모리에 전송될 기록 데이터의 ECC를 결정한다. 이어서, 이러한 ECC 데이터는 데이터 버퍼(246) 내의 기록 데이터에 추가된다. ECC 체크 회로(242)는 수신된 ECC를 인입 ECC에 대해 체크한다. ECC 체크 회로(242)는 판독 요청들에 응답하여 인입 판독 데이터를 수신하기 위해 격리 셀들(290)을 통해 PHY(151)에 연결된 입력, 및 ECC 체크들이 통과되거나 정정가능한 오류들이 정정된 후에 판독 데이터를 제공하기 위한 메모리 인터페이스 대기열에 연결된 출력을 갖는다. ECC 체크 회로(242)는 또한 ECC 체크 실패들에 응답하여 에러들을 시그널링하기 위한 다른 연결들(미도시)을 포함한다.
리플레이 대기열(230)은 어드레스 및 명령 패리티 응답들과 같은 응답들을 대기하고 있는, 아비터(238)에 의해 픽된 선택된 메모리 액세스들을 저장하기 위한 임시 대기열이다. 리플레이 제어 로직(231)은 반환된 ECC가 정확한지 또는 에러를 나타내는지를 결정하기 위해 ECC 체크 회로(242)에 액세스한다. 리플레이 제어 로직(231)은 이러한 사이클들 중 하나의 패리티 또는 ECC 에러의 경우에 액세스들이 리플레이되는 리플레이 시퀀스를 개시하고 제어한다. 리플레이된 명령들은 메모리 인터페이스 대기열(214)에 배치된다.
리프레시 제어 로직(232)은 메모리 액세싱 에이전트들로부터 수신된 정상 판독 및 기록 메모리 액세스 요청들과는 별도로 생성되는 다양한 전력 차단, 리프레시, 및 종단 저항(ZQ) 교정 사이클들을 위한 상태 머신들을 포함한다. 예를 들어, 메모리 랭크가 프리차지 전력 차단에 있는 경우, 이는 리프레시 사이클들을 실행하기 위해 주기적으로 어웨이크되어야 한다. 리프레시 제어 로직(232)은 DRAM 칩들 내의 메모리 셀들의 스토리지 커패시터들로부터의 전하 누설에 의해 야기되는 데이터 에러들을 방지하기 위해, 지정된 조건들에 응답하여 그리고 주기적으로 리프레시 명령들을 생성한다. 리프레시 제어 로직(232)은 활성화 카운터(248)를 포함하고, 이 활성화 카운터는 본 실시예에서 메모리 채널을 통해 메모리 영역으로 전송되는 활성화 명령들의 롤링 수(rolling number)를 카운트하는 각각의 메모리 영역에 대한 카운터를 갖는다. 메모리 영역들은 일부 실시예들에서는 메모리 뱅크들이고, 다른 실시예들에서는 아래에 추가로 논의되는 바와 같이 메모리 서브-뱅크들이다. 추가적으로, 리프레시 제어 로직(232)은 시스템에서의 열 변화로 인한 온-다이(on-die) 종단 저항에 있어서의 미스매치를 방지하기 위해 ZQ를 주기적으로 교정한다.
아비터(238)는 명령 대기열(220)에 양방향으로 연결되며 메모리 채널 제어기(210)의 심장부로서, 메모리 버스의 사용을 개선하기 위해 액세스들의 지능형 스케줄링을 수행한다. 본 실시예에서, 아비터(238)는, 아래에서 추가로 설명되는 바와 같이, 다수의 최근에 발행된 기록 명령들의 뱅크 그룹 번호들을 추적하고, 특정 조건들 하에서 지정된 기간 동안 이들 뱅크 그룹들로의 명령들의 디스패치를 방지함으로써 이들 뱅크 그룹들을 "마스킹"하기 위한 뱅크 그룹 추적 회로(235)를 포함한다. 아비터(238)는 타이밍 블록(234)을 사용하여 명령 대기열(220) 내의 특정 액세스들이 DRAM 타이밍 파라미터들에 기초하여 발행에 적격인지를 결정함으로써 적절한 타이밍 관계를 시행한다. 예를 들어, 각각의 DRAM은, "tRC"로 알려진, 활성화 명령들 사이의 최소 지정된 시간을 갖는다. 타이밍 블록(234)은 JEDEC 사양에서 지정된 이 타이밍 파라미터 및 다른 타이밍 파라미터들에 기초하여 적격성을 결정하는 카운터들의 세트를 유지하고, 리플레이 제어 로직(231)에 양방향으로 연결된다. 페이지 테이블(236)은 아비터(238)에 대한 메모리 채널의 각각의 뱅크 및 랭크 내의 활성 페이지들에 관한 상태 정보를 유지하고, 리플레이 제어 로직(231)에 양방향으로 연결된다.
인터페이스(212)로부터 수신된 기록 메모리 액세스 요청들에 응답하여, ECC 생성 블록(244)은 기록 데이터에 따라 ECC를 계산한다. 데이터 버퍼(246)는 수신된 메모리 액세스 요청들에 대한 기록 데이터 및 ECC를 저장한다. 그것은 아비터(238)가 메모리 채널로의 디스패치를 위해 대응하는 기록 액세스를 픽할 때 조합된 기록 데이터/ECC를 메모리 인터페이스 대기열(214)에 출력한다.
메모리 채널 제어기(210)는 연관된 메모리 채널로의 디스패치를 위해 메모리 액세스를 픽할 수 있게 하는 회로부를 포함한다. 원하는 중재 결정들을 내리기 위해, 어드레스 생성기(222)는 어드레스 정보를, 메모리 시스템 내의 랭크, 로우 어드레스, 컬럼 어드레스, 뱅크 어드레스, 및 뱅크 그룹을 포함하는 미리 디코딩된 정보로 디코딩하고, 명령 대기열(220)는 미리 디코딩된 정보를 저장한다. 구성 레지스터들(262)은 어드레스 생성기(222)가 수신된 어드레스 정보를 디코딩하는 방식을 결정하기 위한 구성 정보를 저장한다. 아비터(238)는 서비스 품질(QoS) 요건과 같은 다른 기준을 준수하면서 메모리 액세스들을 효율적으로 스케줄링하기 위해, 디코딩된 어드레스 정보, 타이밍 블록(234)에 의해 표시된 타이밍 적격성 정보, 및 페이지 테이블(236)에 의해 표시된 활성 페이지 정보를 사용한다. 예를 들어, 아비터(238)는 메모리 페이지들을 변경하는 데 요구되는 프리차지 및 활성화 명령들의 오버헤드를 회피하기 위해 개방된 페이지들에 대한 액세스들에 대한 선호도를 구현하고, 이들을 다른 뱅크에 대한 판독 및 기록 액세스와 인터리빙함으로써 하나의 뱅크에 대한 오버헤드 액세스를 숨긴다. 특히 정상 동작 동안, 아비터(238)는 보통, 페이지가 상이한 페이지를 선택하기 전에 프리차지될 필요가 있을 때까지, 페이지들을 상이한 뱅크들에서 개방된 상태에서 유지한다. 아비터(238)는, 일부 실시예들에서, 각각의 명령들의 타겟 메모리 영역들에 대한 활성화 카운터(248)의 각각의 값들에 적어도 기초하여 명령 선택에 대한 적격성을 결정한다.
격리 셀들(290)은 메모리 인터페이스 대기열(214)에 대한 양방향 링크, PHY(151)에 대한 양방향 링크, 및 SMN을 통해 시스템 전력 상태 제어기(302)(도 3)에 연결되거나, 측파대 연결을 통해 시스템 전력 상태 제어기에 직접 연결되는 입력을 갖는다. 각각의 격리 셀은 PHY(151)에 대한 메모리 인터페이스 대기열(214)의 각자의 연결부 사이에 연결된 AND 게이트 또는 OR 게이트와 같은 디지털 클램프 회로를 포함한다. 메모리 채널 제어기(210)가 전력 차단 상태에 있고 PHY(151)가 전력 차단 상태에 있을 때 PHY 클록 및 전력 도메인 신호들의 손상을 방지하기 위해, 격리 셀들(290)은 시스템 전력 상태 제어기(302)에 의해 활성화되어 연결들의 값을 원하는 레벨(하이(high) 또는 로우(low))로 클램핑한다.
전력 제어기(250)는 일반적으로 고급 확장 가능 인터페이스, 버전 1(AXI), APB(advanced peripheral bus) 인터페이스(254), 전력 엔진(260), 및 로컬 전력 상태 제어기(270)에 대한 인터페이스(252)를 포함한다. 인터페이스(252)는 SMN에 대한 제1 양방향 연결을 가지며, 이는 도 2에 별도로 도시된 "EVENT_n"으로 라벨링된 이벤트 신호를 수신하기 위한 입력, 및 출력을 포함한다. APB 인터페이스(254)는 인터페이스(252)의 출력에 연결된 입력, 및 APB를 통한 PHY에 대한 연결을 위한 출력을 갖는다.
전력 엔진(260)은 인터페이스(252)에 대한 양방향 연결, 메모리 인터페이스 대기열(214)의 입력에 연결된 출력, 및 로컬 전력 상태 제어기(270)에 대한 양방향 연결을 갖는다. 전력 엔진(260)은 구성 레지스터들(262)의 세트, 마이크로컨트롤러(μC)(264), 자체 리프레시 제어기(SLFREF/PE)(266), 및 신뢰성 있는 판독/기록 타이밍 엔진(RRW/TE)(268)을 포함한다. 구성 레지스터(262)는 AXI 버스를 통해 프로그래밍되고, 제한된 수의 상이한 전력 상태들 중 선택된 하나에서 메모리 제어기(200) 내의 다양한 블록의 동작을 제어하기 위한 구성 정보를 저장한다. SLFREF/PE(266)는 리프레시 제어 로직(232)에 의한 리프레시의 자동 생성 외에도 리프레시의 수동 생성을 가능하게 하는 엔진이다. 신뢰성 있는 판독/기록 타이밍 엔진(268)은 DDR 인터페이스 최대 판독 레이턴시(MRL) 트레이닝 및 루프백 테스팅과 같은 목적을 위해 메모리 또는 I/O 디바이스에 연속적인 메모리 액세스 스트림을 제공한다.
로컬 전력 상태 제어기(270)는 인터페이스(252)에 대한 양방향 연결, 전력 엔진(260)에 대한 양방향 연결, 및 메모리 채널 제어기(210)에 대한 양방향 연결을 갖는다. 로컬 전력 상태 제어기(270)는 메모리 제어기(200)에 의해 지원되는 다양한 저전력 및 유휴 상태들에 대한 구성 및 상태 데이터를 저장하는 데 이용되는 로컬 정적 램(SRAM) 메모리(272)를 포함한다. 일반적으로, 로컬 전력 상태 제어기(270)는 명령어 RAM 및 데이터 RAM을 갖는 로컬 SRAM(272)을 포함하는 프로그래밍가능 하드웨어 시퀀서이다. 로컬 전력 상태 제어기는, 아래에서 추가로 설명되는 바와 같이, 하나 이상의 전력 도메인들에 전력을 차단하는 것을 포함하는 메모리 제어기(200)의 전력 상태 변경들을 촉진하는 데 이용된다. 로컬 전력 상태 제어기는 데이터를 신속하게 저장하고 복원할 수 있도록 구성 레지스터들(262) 내의 모든 구성 데이터에 대한 판독 및 기록 액세스를 갖는다. 그것은 또한 다양한 도시된 로직 블록들, 및 클록 및 전력 공급 회로들과 같은 메모리 제어기(200) 내의 다양한 로직 블록들 및 회로들을 제어하는 능력을 갖는다. 로컬 전력 상태 제어기는 또한 전력 상태들을 관리하기 위해 PHY(151)로 명령들을 전송하는 능력을 갖는다. 본 실시예에서, 로컬 전력 상태 제어기(270)는 μC(264)와는 별개의 하드웨어 시퀀서이지만, 다른 실시예들에서, 이들 2개의 블록들의 기능이 단일 프로그래밍가능 하드웨어 시퀀서에서 조합될 수 있다.
동작 시, 전력 제어기(250)는 SMU(180)(도 1)로부터 ACPI 프로세서 상태 명령들과 같은 전력 상태 명령들을 수신하고, 이에 응답하여, 전형적으로 DFICLK 도메인 및 UCLK 도메인에 대한 상이한 클록 속도를 포함하는 새로운 전력 상태에 진입하기 위해 메모리 제어기(200) 및 부착된 DRAM(들)의 전력 상태를 변경한다. ACPI 전력 상태들의 경우, μC(264)는 SMU(180)로부터의 명령들에 응답하여 전력 상태들에 진입하고 이들을 종료하는 메모리 제어기(200)의 전이를 제어한다. 다양한 다른 전력 상태들의 경우, 로컬 전력 상태 제어기(270)는 시스템 전력 상태 제어기(302, 도 3)와 협력하여 메모리 제어기(200)를 저전력 상태들로 진입하고 그로부터 빠져 나가게 전이시키는 기능들을 수행한다. 이용되는 저전력 상태들은, 이들이 전형적으로 그의 운영 체제 지향 구성 및 전력 관리(Operating System-directed configuration and Power Management, OSPM) 시스템을 통해 고급 구성 및 전력 인터페이스(ACPI) 사양 하에서 운영 체제에 노출되거나 제어가능하지 않은 추가적인 전력 상태들이라는 점에서, ACPI 사양에 정의된 바와 같은 다양한 ACPI 프로세서 상태들 및 성능 상태들과 상이하다. 로컬 전력 상태 제어기(270)에 의해 제어되는 전력 상태들은, 아래에서 추가로 설명되는 바와 같이, 시스템 전력 상태 제어기(302)에 의해 APU(100) 내의 다른 블록들의 전력 상태들과 협력하는 메모리 제어기 유휴 상태들 및 "딥 유휴(deep idle)"상태들(이는 지정된 회로 블록들의 전력을 차단하는 것을 포함함)을 포함한다.
메모리 제어기(200)는 구성 데이터를 저장 및 복원하기 위해 DRAM에 액세스함으로써 저전력 상태들로부터 APU(100)의 다른 블록들을 복원하는 데 관여하기 때문에, 메모리 제어기(200)에 대해 낮은 레이턴시의 진입 및 종료를 제공하는 것은 시스템의 다른 부분들에 대한 더 빠른 전체 전력 상태 조정들을 허용한다. 이러한 개선된 속도는 유휴 상태들 및 "딥 유휴" 상태들과 같은 저전력 상태들이 더 오랫동안 활성상태에서 유지되게 하여, 전력 절감 효과가 향상된다. 본 실시예에서, 로컬 전력 상태 제어기(270)는 구성 레지스터들(262) 및 메모리 제어기(200)의 다양한 블록들로부터의 구성 및 상태 데이터를 SRAM(272)에 저장하고, 이하에서 설명되는 프로세스들에 따라 온-칩 SRAM에 이러한 데이터의 로딩을 조정한다. 본 실시예에서, 격리 셀들(290)은 시스템 전력 상태 제어기에 의해 제어되지만, 다른 실시예들에서, 로컬 전력 상태 제어기(270)는 아래에서 추가로 설명되는 바와 같이, 전력 상태 전이들 동안 지정된 지점들에서 격리 셀들(290)을 직접 제어할 수 있다.
도 3은 APU(300)의 일부분을 블록도 형태로 도시한 것으로서, 예시적인 실시예에 따른, 메모리 제어기들의 전력 상태들을 제어하기 위한 요소들을 도시한다. APU(300)의 도시된 부분은 데이터 패브릭(125), SMU(180), 시스템 전력 상태 제어기(302), 온-칩 정적 랜덤 액세스 메모리(SRAM)(304), SMN, "메모리 제어기 1"로 라벨링된 제1 메모리 제어기(200), "메모리 제어기 2"로 라벨링된 제2 메모리 제어기(200), 및 PHY(320)를 포함한다. 본 실시예에서 2개의 메모리 제어기들(200)이 도시되어 있지만, 다른 실시예들은 2개 초과의 메모리 제어기들, 및 하나 초과의 PHY를 포함할 수 있다.
시스템 전력 상태 제어기(302)는 SMU(180)에 의해 제어되는 ACPI 전력 상태들과 독립적으로 전력 상태들을 제어하기 위해 APU(300)의 다양한 부분들에서 로컬 전력 상태 제어기들과 통신하기 위해 SMN에 양방향으로 연결된다. 시스템 전력 상태 제어기(302)는 또한 격리 셀들(290)과 같은 특정 회로들에 대한 직접 측파대 연결들을 포함할 수 있다. 2개의 메모리 제어기들의 로컬 전력 상태 제어기들(270)만이 본 명세서에 도시되어 있지만, 다양한 다른 시스템 블록들이 또한, 시스템 전력 상태 제어기(302)로부터의 명령들에 응답하여 그들 각자의 시스템 블록들에 대한 구성 및 상태 데이터를 저장 및 복원하는 것을 포함하여, 전력 상태들로의 진입 및 그로부터의 종료를 제어하도록 구성된 로컬 전력 상태 제어기들을 포함한다. 시스템 전력 상태 제어기(302)는 시스템 DRAM에 저장하거나 온-칩 SRAM(304)에 저장함으로써 구성 및 상태 데이터를 저장 및 복원하는 2개의 방식들을 제공한다. 후술되는 바와 같이, 메모리 제어기들에 대한 저장 및 복원 프로세스는 온-칩 SRAM(304)에 저장하는 것을 포함한다.
온-칩 SRAM(304)은 메모리 제어기들(200)의 부분들이 전력 차단되는 저전력 상태들 동안 저장될 메모리 제어기들(200)의 로컬 전력 상태 제어기들(270)로부터 구성 및 상태 데이터를 수신하기 위해 SMN에 대한 양방향 연결을 갖는다. 본 실시예에서 SRAM이 이용되지만, 대략 SRAM 속도들의 속도로 동작하는 RAM의 임의의 적합한 형태가 구성 및 상태 데이터를 저장하는 데 이용될 수 있다. 다른 실시예들에서, 온-칩 SRAM(304)은 SMN보다는 데이터 패브릭(125)에 연결된다. 그러나, SMN을 사용하는 것은, 전력 상태를 벗어날 시에 데이터를 다시 로딩하기 위해 온-칩 SRAM(304)에 대한 빠른 액세스를 여전히 허용하면서, 데이터 패브릭이 다양한 모드들로 전력 차단 또는 유휴상태에 있게 한다.
본 실시예에서, 각각의 메모리 제어기(200)는 도 2의 설계의 인스턴스화이고, 도 2에 도시된 바와 같은 메모리 채널 제어기(210) 및 전력 제어기(250)를 포함한다. 위상-잠금 루프(PLL)(306)는 메모리 채널 제어기(210)의 로직 회로들이 동작하는 메모리 제어기 클록 도메인에 대한 클록 신호(UCLK)를 제공한다. 다른 블록들이 다양한 저전력 상태들 및 유휴 상태들에 있지 않은 동안 일부 블록들은 작동하도록 다양한 클록 게이팅 기능들이 또한 UCLK 도메인 내의 블록들에 대해 UCLK 신호를 게이팅하는 데 이용될 수 있다. 전력 제어기(250)는 전력 상태들 및 유휴 상태들을 구현하기 위해 UCLK 신호의 주파수를 제어하기 위해 PLL(306)에 연결된다. 로컬 전력 공급부(308)는 메모리 채널 제어기(210)를 위한 전력을 제공한다. 전력 제어기(250)는 또한 전력 상태들 및 유휴 상태들을 구현하기 위해 메모리 채널 제어기(210)에 대한 전력 공급 전압을 제어하기 위해 로컬 전력 공급부(308)에 연결된다.
각각의 메모리 제어기(200)는 PHY(320)에 연결된 DRAM 메모리에 APU 액세스를 제공하기 위해 PHY(320)에 연결된다. 메모리 제어기가 전력 차단되는 전력 상태들 동안 격리 셀들(290)이 활성화되어 메모리 제어기(200)를 PHY(320)로부터 격리하고 그러한 전력 상태를 종료할 때 격리상태를 제거한다. 전형적으로, 각각의 메모리 제어기(200)는 하나의 DDRx 메모리 채널 또는 서브채널을 제어하지만, 2개의 채널들을 제어하는 듀얼-채널 메모리 제어기들이 사용될 수 있다. PHY(320)는 PHY가 동작하는 DFCLK 도메인에 대한 원하는 주파수에 기초하여 클록 신호를 제공하기 위한 PLL(322)을 포함한다. 전력 제어기(250)는, 아래에서 추가로 설명되는 바와 같이 전력 상태들 및 유휴 상태들을 구현하기 위해 DFCLK 도메인의 주파수를 조정할 수 있다.
각각의 로컬 전력 상태 제어기(270)는, 아래에서 추가로 설명되는 바와 같이, 전력 상태 명령들을 수신하고 응답들 및 동기화 신호들을 전송하기 위해 시스템 전력 상태 제어기(302)에 대한 양방향 연결을 갖는다. 각각의 로컬 전력 상태 제어기는 도 2와 관련하여 설명된 바와 같은 로컬 SRAM(272)을 포함한다.
도 4는 예시적인 실시예에 따른, 메모리 제어기를 저전력 상태들에 진입하도록 동작시키는 프로세스의 흐름도(400)를 도시한다. 프로세스는 도 3의 APU(300) 및 로컬 전력 상태 제어기를 포함하는 다른 데이터 프로세싱 시스템과 함께 사용하기에 적합하다. 프로세스는 시스템 전력 상태 제어기(302)가 메모리 제어기가 블록(402)에 도시된 바와 같이 시스템 전력 상태 제어기(302)에 의해 제어되는 유휴 전력 상태 또는 다른 저전력 상태에 진입해야 한다고 결정할 때마다 이용된다. 이러한 결정은 전형적으로 시스템 작업부하에 기초하고, 또한 메모리 채널을 통한 트래픽의 레벨, 및 다른 고려사항들에 기초할 수 있다. 메모리 제어기의 저전력 상태는 종종 예를 들어 데이터 패브릭(125)과 같은 다른 시스템 요소들의 저전력 상태들을 수반할 것이다.
블록(404)에서, 시스템 전력 상태 제어기(302)는 각각의 메모리 제어기(200)에서 로컬 전력 상태 제어기들(270)에 전력 상태 명령을 송신한다. 전형적으로, 시스템 내의 모든 메모리 제어기들(200)은 특정 전력 상태에 진입하도록 명령될 것이지만, 전력 상태 명령은 특정 상황들에서 모든 메모리 제어기들보다는 적은 메모리 제어기들에 전송될 수 있다. 바람직하게는, APU(100) 전체에 걸쳐 다양한 로직 블록들에 대한 상이한 유휴 레벨들 및 "딥 유휴" 레벨들을 포함하는 몇몇 상이한 전력 모드들이 지원된다.
블록(406)에서, 로컬 전력 상태 제어기는 전력 상태 명령에 응답하고 메모리 제어기의 전력 상태를 변경하는 프로세스를 시작한다. 이는 전형적으로 정상 동작 동안 메모리 채널 제어기를 관장하는 아비터(238)로부터 메모리 채널 제어기(210)에 대한 제어를 넘겨받는 것을 포함한다. 이어서, 인터페이스(212)는 새로운 인입 명령들이 데이터 패브릭(125)으로부터 통과되는 것을 중지시키도록 중단된다. 이러한 단계는 전형적으로, 인터페이스(212)가 중지 중임을 간섭성 슬레이브 에이전트에 알리기 위해 데이터 패브릭(125)에 대해 메모리 제어기(200)에 전용되는 코히어런트 슬레이브 에이전트를 시그널링하는 단계를 포함한다.
블록(408)에서, 전력 상태 명령에 응답하여 활동을 계속하는 것은, 로컬 전력 상태 제어기들(270)은 메모리 제어기에 대한 구성 및 상태 데이터를 온-칩 SRAM(304)(도 3)에 저장한다. 저장된 데이터는 메모리 채널 제어기를 전력 차단할 때 손실되는 현재 구성 및 상태 데이터를 포함한다. 저장된 상태 데이터는 또한 메모리 채널 제어기를 전력 차단할 때 손실되는 대기열들 및 레지스터들의 내용, 및 다양한 동작들에 대해 DRAM에 명령하도록 μC(264)가 실행할 명령들의 시퀀스들을 포함할 수 있다. 본 실시예에서, 저장 프로세스는 먼저, 로컬 전력 상태 제어기(270)의 제어 하에서, 메모리 제어기 레지스터들 및 회로 블록들로부터 구성 및 상태 데이터를 판독하고, 그것을 로컬 SRAM(272)에 로딩하는 것을 포함한다. 이어서, 데이터는 저전력 상태 동안 저장을 위해 온-칩 SRAM(304)으로 전송되어, 로컬 SRAM(272)이 전력 차단되게 한다. 이러한 데이터를 저장하기 위한 온-칩 SRAM의 사용은 데이터가 다시 로딩되게 하고, 메모리 채널 제어기가 저전력 상태를 벗어날 때 직접 동작을 재개하게 한다. 블록(408)은 전형적으로 SMN을 통해 온-칩 SRAM(304)에 액세스하는 로컬 전력 상태 제어기(270)의 제어 하에서 수행된다. 시스템 전력 상태 제어기(302)는 일부 실시예들에서 로컬 SRAM(272)으로부터 데이터를 판독한다.
블록(410)에서, 각자의 메모리 채널 제어기와 연관된 DRAM은 자체 리프레시 상태에 진입하도록 명령된다. 이어서, 블록(412)에서, PHY는 저전력 상태에 진입하도록 명령된다. DDR5 DRAM을 사용하는 일부 실시예들에서, 블록(410)에서 이용되는 저전력 상태는"저전력 2" 상태이다. 다른 DDRx DRAM 또는 HBM 모듈들과 같은 다른 유형들의 메모리 모듈들을 이용하는 실시예들에서, 다른 저전력 상태들이 사용될 수 있다.
다음으로, 블록(414)에서, 로컬 전력 상태 제어기(270)는 메모리 제어기가 PHY를 격리되는 것에 대해 준비가 되었음을 시스템 전력 상태 제어기(302)로 시그널링한다. 본 실시예에서, 시그널링은 시스템 전력 상태 제어기(302)에서 레지스터에 기록함으로써 수행되지만, 임의의 적합한 시그널링 방법이 사용될 수 있다. 이 시점에서, 시스템 전력 상태 제어기(302)는 저전력 상태로의 진입을 중단하는 능력을 갖는데, 이는 블록(402)에서, 메모리 제어기에서 저전력 상태에 진입하기로 결정된 이후 데이터 패브릭(125) 또는 시스템의 다른 부분들에 대한 조건들이 변경된 경우 수행될 수 있다.
블록(414)에서 일단 PHY와 연관된 모든 메모리 제어기들이 준비 상태를 시그널링하면, 시스템 전력 상태 제어기(302)는 블록(416)을 수행한다. 블록(416)에서, 시스템 전력 상태 제어기(302)는 각각의 메모리 제어기에서 격리 셀들(290)이 메모리 채널 제어기를 PHY로부터 격리시킬 수 있게 한다. 격리 셀들(290)은 메모리 채널 제어기의 전력 차단 또는 전력 공급 동안 발생할 수 있는 불요파 신호들이 PHY에 부정적인 영향을 미치는 것을 방지한다. 일부 실시예들에서, 로컬 전력 상태 제어기(270)는 격리 셀들(290)을 제어한다. 그러나, 시스템 전력 상태 제어기(302)로부터의 직접 연결의 사용은 로컬 전력 상태 제어기가 메모리 제어기의 저전력 모드들 동안 또한 전력 차단되게 한다.
블록(416)에서 PHY가 메모리 채널 제어기로부터 격리된 후, 블록(418)에서 각각의 메모리 제어기에서의 전력 상태 제어기들은 메모리 제어기로 하여금 전력 차단 상태에 진입하게 한다. UCLK PLL(306)(도 3)은 전력 차단되거나 또는 대안적으로, PLL이 전력을 공급받는 동안 클록 게이팅을 사용하여 메모리 채널 제어기 내의 다양한 회로들로부터 결합해제된다. 일부 실시예들에서, 모든 UCLK 신호들은 메모리 채널 제어기(210)로부터 제거되는 한편, 다른 실시예들에서 클록 게이팅은 메모리 채널 제어기 내의 로직의 상당 부분들로부터 UCLK 신호를 제거한다. 메모리 채널 제어기에 대한 메모리 채널 제어기 로컬 전력 공급부(308)(도 3)는 비활성화되거나, 또는 메모리 채널 제어기 또는 그 내부의 로직의 상당 부분들로부터 연결해제된다.
블록(420)에 도시된 바와 같이, PHY는 블록(410)에서 설정된 저전력 상태에서 유지되는 한편, 메모리 제어기들은 전력 차단 상태에 있다. 저전력 상태에서 벗어나는 프로세스를 가속화하기 위해 PHY는 저전력 상태에서 전력 차단되지 않는다. PHY가 저전력 상태에 있되, 전력 공급 상태에 유지될 수 있게 하기 위한 격리 셀들의 이러한 사용은 PHY의 전력 차단을 회피하게 하는 이점을 가지며, 이는 PHY에서 사용하는 많은 구성 레지스터들 및 전압 레벨들 및 PHY에 전력을 공급하는 것과 관련된 훈련 및 동기화로 인해 프로세스에 많은 레이턴시를 추가하게 될 것이다. 따라서, 저전력 상태에서 절약되는 전력량은 PHY에 대한 구성 및 상태 데이터를 저장하고, 그 전력을 차단하고, PHY 구성 및 상태 데이터를 다시 로딩하고, PHY에 전력을 공급하고, 이를 메모리 채널 제어기 및 DRAM과 동기화하는 데 필요한 시간을 포함하지 않으면서 상태가 더 오랜 기간 동안 지속되게 함으로써 증가된다.
도 5는 예시적인 실시예에 따른, 메모리 제어기를 저전력 상태에서 벗어나도록 동작시키는 프로세스의 흐름도(500)를 도시한다. 도시된 프로세스는 시스템 전력 상태 제어기(302)가, 메모리 제어기들(200)이 저전력 상태에서 활성상태에서 유지되는 PHY가 있는 도 4의 것과 같은 저전력 상태를 벗나야 한다고 결정할 때마다 이용된다.
블록(502)에서, 시스템 전력 상태 제어기(302)는 시스템이 현재 저전력 상태를 벗어나야 한다고 결정한다. 저전력 상태에 진입하기로 결정하는 것과 유사하게, 이러한 결정은 시스템 작업부하, 다양한 메모리 채널들의 작업부하, 전력 상태, 및 다른 인자들과 같은 다양한 인자들을 포함할 수 있다. 블록(504)에서, 시스템 전력 상태 제어기(302)는 현재의 저전력 상태를 벗어나야 함을 나타내는 제2 전력 상태 명령을 각각의 메모리 제어기에서의 로컬 전력 상태 제어기들에 송신한다.
제2 전력 상태 명령에 응답하여, 블록(506)에서 각각의 로컬 전력 상태 제어기는 메모리 제어기 전압 도메인에 전력이 공급되게 한다. 블록(506)은 각각의 메모리 채널 제어기에 대한 전력 공급부를 재활성화하거나, 이를 다시 연결하거나, 또는 달리 메모리 채널 제어기 내의 다양한 로직 회로들에 전력이 전달될 수 있게 하는 것을 포함할 수 있다. 프로세스는 바람직하게는 각각의 메모리 제어기에 대해 별개로 구비된다. 블록(506)은 또한 UCLK PLL을, 메모리 채널 제어기 전력 차단 상태에서 전력 차단되어 있던 다양한 로직 회로들을 재활성화하거나 그에 다시 연결하는 것을 포함한다. 이 블록은 메모리 채널 제어기에 대한 UCLK PLL 및 클록 게이팅 회로부를 제어함으로써 수행된다.
블록(508)에서, 로컬 전력 상태 제어기(270)는 저전력 상태에 진입할 때 온-칩 SRAM(304)에 저장된 구성 및 상태 데이터를 수신한다. 구성 및 상태 데이터를 저장하는 프로세스와 유사하게, 블록(508)은 전형적으로 로컬 전력 상태 제어기(270)의 제어 하에서 수행되고, 데이터 패브릭(125) 또는 SMN을 통해 온-칩 SRAM(304)에 액세스하는 것을 포함한다. 대안적으로, 시스템 전력 상태 제어기(302)는 온-칩 SRAM(304)으로부터 데이터를 판독하고 이를 로컬 전력 상태 제어기(270)로 전송한다. 데이터는 메모리 제어기(200)의 레지스터들 및 다른 회로들에 로딩되기 전에 로컬 SRAM(272)에 먼저 저장될 수 있다.
블록(510)에서, 로컬 전력 상태 제어기(270)는 구성 및 상태 데이터를 메모리 제어기 레지스터들 및 버퍼들과 같은 다른 회로들로 로딩한다. 일부 실시예들에서, 블록(510)에서 데이터를 로딩하는 것은 명령들의 시퀀스들을 μC(264)에 대한 RAM 메모리에 로딩하는 것을 포함한다.
다음으로, 블록(512)에서, 로컬 전력 상태 제어기(270)는 메모리 제어기가 PHY에 액세스할 준비가 되어 있음을 시스템 전력 제어기(302)로 시그널링한다. 2개 이상의 메모리 제어기들 사이에서 PHY에 대한 액세스를 동기화하기 위해, 블록(514)에서, 시스템 전력 상태 제어기(302)는 모든 관련 메모리 제어기들, 즉 PHY에 액세스할 모든 메모리 제어기들이 PHY 액세스에 대한 준비가 되었음을 시그널링할 때까지 대기한다. 이어서, 시스템 전력 제어기(302)는 블록(516)에서 격리 셀들을 디스에이블한다. 이를 달성하기 위해, 신호는 도 2에 도시된 바와 같이 격리 셀들에 대한 직접 연결을 통해 전송될 수 있거나, 신호는 로컬 전력 상태 제어기(270)로 전송될 수 있고, 이는 이어서 격리 셀들을 제어한다.
블록(518)에서, 격리 셀들이 디스에이블되어 PHY에 대한 액세스를 허용한 후에, 로컬 전력 상태 제어기(270)는 PHY에게 저전력 상태를 벗어나고 정상 동작 상태에 진입하도록 명령한다. 진입한 동작 상태는 전형적으로 저전력 상태로의 전이를 시작하기 전의 PHY 동작 상태와 동일하다.
PHY가 동작할 때, 블록(520)에서, 메모리 제어기는 그의 메모리 채널과 연관된 DRAM에 자체 리프레시 상태를 벗어나도록 명령한다. 이 시점에서, 저전력 상태로부터 정상 작동 상태로의 전이가 완료된다.
도 2의 메모리 제어기(200), 또는 아비터(238) 및 리프레시 제어 로직(232)과 같은 그의 임의의 부분들은 프로그램에 의해 판독될 수 있고 집적 회로들을 제조하기 위해 직접적으로 또는 간접적으로 사용될 수 있는 데이터베이스 또는 다른 데이터 구조의 형태로 컴퓨터 액세스 가능 데이터 구조에 의해 설명되거나 표현될 수 있다. 예를 들어, 이 데이터 구조는 베릴로그(Verilog) 또는 VHDL과 같은 고급 설계 언어(HDL)의 하드웨어 기능의 동작 레벨 설명 또는 레지스터 전달 레벨(RTL) 설명일 수 있다. 설명은 합성 라이브러리로부터 게이트들의 리스트를 포함하는 네트리스트를 생성하기 위해 설명을 합성할 수 있는 합성 도구에 의해 판독될 수 있다. 네트리스트는 집적 회로들을 포함하는 하드웨어의 기능을 또한 나타내는 게이트들의 세트를 포함한다. 이어서 네트리스트는 마스크에 적용될 기하학적 형상들을 설명하는 데이터 세트를 생성하도록 배치 및 라우팅될 수 있다. 이어서 마스크들은 집적 회로들을 생성하기 위해 다양한 반도체 제작 단계들에서 사용될 수 있다. 대안적으로, 컴퓨터 액세스 가능 저장 매체 상의 데이터베이스는, 원하는 바에 따라, 네트리스트(합성 라이브러리를 갖거나 갖지 않음) 또는 데이터 세트, 또는 그래픽 데이터 시스템(GDS) II 데이터일 수 있다.
특정 실시예들이 설명되었지만, 이들 실시예들에 대한 다양한 변형들이 당업자에게 명백할 것이다. 예를 들어, 메모리 채널 제어기(210) 및/또는 전력 제어기(250)의 내부 아키텍처는 상이한 실시예들에서 다를 수 있다. 메모리 제어기(200)는 고대역폭 메모리(HBM), RAMbus DRAM(RDRAM) 등과 같은, DDRx 이외의 다른 유형들의 메모리에 인터페이스될 수 있다. 예시된 실시예가 별개의 DIMM 또는 SIMM에 대응하는 메모리의 각각의 랭크를 보여주었지만, 다른 실시예들에서 각각의 모듈은 다수의 랭크들을 지원할 수 있다. 또 다른 실시예들이 호스트 마더보드에 장착된 DRAM들과 같은, 특정 모듈에 포함되지 않는 다른 유형들의 DRAM 모듈들 또는 DRAM들을 포함할 수 있다. 따라서, 개시된 실시예들의 범위 내에 속하는 개시된 실시예들의 모든 변형들을 포함하는 것이, 첨부된 청구범위에 의해 의도된다.

Claims (20)

  1. 메모리 제어기로서,
    제1 메모리 채널에 대한 메모리 액세스 요청들을 수신하기 위한 명령 대기열, 및 상기 명령 대기열로부터 엔트리들을 선택하고 그들을 메모리 인터페이스 대기열에 배치하여 그들이 상기 제1 메모리 채널을 통해 송신되게 하기 위한 아비터(arbiter) - 상기 명령 대기열 및 아비터는 제1 전압 도메인에서 동작함 -;
    상기 메모리 제어기를 상기 제1 메모리 채널과 연관된 DRAM 메모리에 결합하기 위해 제2 전압 도메인에서 동작하는 DRAM 물리 계층 인터페이스(PHY); 및
    제1 전력 상태 명령에 응답하여, 온-칩 RAM 메모리에 저장하기 위한 구성 및 상태 데이터를 제공하고, 상기 메모리 제어기로 하여금 전력 차단 상태에 진입하게 하고, 상기 DRAM PHY를 상기 메모리 제어기가 상기 전력 차단 상태에 있는 동안 상기 제2 전압 도메인에 전력이 공급되는 저전력 상태에서 유지하는 로컬 전력 상태 제어기를 포함하는, 메모리 제어기.
  2. 제1항에 있어서, 상기 제1 전압 도메인으로부터 상기 DRAM PHY를 격리하도록 동작가능한 격리 셀들을 더 포함하며, 상기 로컬 전력 상태 제어기는 상기 제1 전력 상태 명령에 응답하여, 상기 격리 셀들이 상기 제1 전압 도메인으로부터 상기 DRAM PHY를 격리할 준비가 되었음을 나타내는 신호를 제공하는, 메모리 제어기.
  3. 제1항에 있어서, 상기 제1 전압 도메인으로부터 상기 DRAM PHY를 격리하도록 동작가능한 격리 셀들을 더 포함하며, 상기 로컬 전력 상태 제어기는 상기 격리 셀들이 상기 DRAM PHY를 격리할 준비가 되었음을 나타내는 상기 신호를 제공하기 전에 상기 제1 메모리 채널과 연관된 상기 DRAM 메모리로 하여금 자체 리프레시 상태에 진입하게 하는, 메모리 제어기.
  4. 제1항에 있어서, 상기 제1 전압 도메인으로부터 상기 DRAM PHY를 격리하도록 동작가능한 격리 셀들을 더 포함하며, 상기 로컬 전력 상태 제어기는, 제2 전력 상태 명령에 응답하여, 상기 온-칩 RAM 메모리로부터 상기 구성 및 상태 데이터를 수신하고, 상기 메모리 제어기로 하여금 상기 전력 차단 상태를 벗어나도록 하고, 상기 메모리 제어기의 제어 레지스터들에 상기 구성 및 상태 데이터를 로딩하고, 상기 DRAM PHY에 액세스할 준비가 되었음을 나타내는 제1 동기화 신호를 시스템 전력 상태 제어기에 전송하고, 상기 격리 셀들의 비활성화에 뒤이어, 상기 DRAM PHY로 하여금 상기 저전력 상태를 벗어나게 하는, 메모리 제어기.
  5. 제4항에 있어서,
    상기 DRAM 메모리에 대한 지원되는 저전력 모드들로의 진입 및 그로부터의 종료를 개시하는, 상기 제1 메모리 채널과 연관된 상기 DRAM 메모리에 대한 명령들의 시퀀스들을 저장하도록 프로그래밍가능한 메모리 동작 어레이를 더 포함하며,
    상기 로컬 전력 상태 제어기는 상기 제1 전력 상태 명령에 응답하여 상기 명령들의 시퀀스들 중 하나 이상을 상기 온-칩 RAM 메모리에 추가로 저장하고, 상기 제2 전력 상태 명령에 응답하여 상기 명령들의 하나 이상의 시퀀스들을 상기 메모리 동작 어레이에 복원하는, 메모리 제어기.
  6. 제1항에 있어서,
    상기 로컬 전력 상태 제어기는 시스템 전력 상태 제어기로부터 상기 제1 전력 상태 명령을 수신하고, 격리 셀들이 상기 DRAM PHY를 격리할 준비가 되었음을 나타내는 상기 신호를 상기 시스템 전력 상태 제어기에 제공하고,
    상기 격리 셀들은 상기 시스템 전력 상태 제어기로부터 그들로 하여금 상기 DRAM PHY를 상기 제1 전압 도메인으로부터 격리하게 하는 신호를 수신하는, 메모리 제어기.
  7. 제6항에 있어서, 상기 온-칩 RAM 메모리는 상기 시스템 전력 상태 제어기에 의해 액세스가능한 SRAM 메모리인, 메모리 제어기.
  8. 방법으로서,
    제1 메모리 제어기의 로컬 전력 상태 제어기에서, 제1 전력 상태 명령을 수신하는 단계;
    상기 제1 전력 상태 명령을 수신하는 것에 응답하여,
    상기 메모리 제어기 내의 제어 레지스터들로부터의 구성 및 상태 데이터를 온-칩 RAM 메모리에 저장하게 하는 단계;
    상기 제1 메모리 제어기로 하여금 상기 제1 전압 도메인이 전력 차단되는 전력 차단 상태에 진입하게 하는 단계; 및
    상기 PHY를 상기 제1 메모리 제어기가 상기 전력 차단 상태에 있는 동안 상기 PHY의 제2 전압 도메인에 전력이 공급되는 저전력 상태에서 유지하는 단계를 포함하는, 방법.
  9. 제8항에 있어서, 상기 제1 메모리 제어기가 상기 제1 메모리 제어기 내의 격리 셀들이 상기 제1 메모리 제어기의 제1 전압 도메인으로부터 물리 계층 인터페이스(PHY)를 격리하는 것에 대해 준비가 되었음을 나타내는 신호를 제공하는 단계를 더 포함하는, 방법.
  10. 제9항에 있어서,
    상기 제1 메모리 제어기의 상기 로컬 전력 상태 제어기에서, 제2 전력 상태 명령을 수신하는 단계;
    상기 제2 전력 상태 명령에 응답하여,
    상기 온-칩 RAM 메모리로부터 상기 구성 및 상태 데이터를 수신하는 단계;
    상기 제1 메모리 제어기로 하여금 상기 전력 차단 상태를 벗어나게 하고, 상기 제어 레지스터들에 상기 구성 및 상태 데이터를 로딩하는 단계;
    상기 PHY에 액세스할 준비가 되었음을 나타내는 제1 동기화 신호를 송신하는 단계; 및
    상기 격리 셀들의 비활성화에 뒤이어, 상기 PHY로 하여금 상기 저전력 상태를 벗어나게 하는 단계를 더 포함하는, 방법.
  11. 제9항에 있어서,
    상기 로컬 전력 상태 제어기는 시스템 전력 상태 제어기로부터 상기 제1 전력 상태 명령을 수신하고, 상기 격리 셀들이 상기 PHY를 격리할 준비가 되었음을 나타내는 상기 신호를 상기 시스템 전력 상태 제어기에 제공하고,
    상기 격리 셀들은 상기 시스템 전력 상태 제어기로부터 그들로 하여금 상기 PHY를 상기 제1 전압 도메인으로부터 격리하게 하는 신호를 수신하는, 방법.
  12. 제9항에 있어서,
    제2 DRAM 메모리에 대한 제2 메모리 제어기에서, 상기 PHY에 액세스할 준비가 되었음을 나타내는 제2 동기화 신호를 상기 제2 메모리 제어기로부터 상기 시스템 전력 상태 제어기로 송신하는 단계; 및
    상기 제2 메모리 제어기가 상기 PHY에 액세스할 수 있도록 상기 제2 메모리 제어기의 격리 셀들을 디스에이블하는 단계를 더 포함하는, 방법.
  13. 제8항에 있어서,
    상기 DRAM 메모리에 대한 지원되는 저전력 모드들로의 진입 및 그로부터의 종료를 개시하는, 상기 DRAM 메모리에 대한 명령들의 상이한 시퀀스들을 메모리 동작 어레이에 저장하는 단계; 및
    상기 제1 전력 상태 명령에 응답하여 상기 명령들의 시퀀스들 중 하나 이상을 상기 온-칩 RAM 메모리에 저장하고, 상기 제2 전력 상태 명령에 응답하여 상기 명령들의 하나 이상의 시퀀스들을 상기 메모리 동작 어레이에 복원하는 단계를 더 포함하는, 방법.
  14. 데이터 프로세싱 시스템으로서,
    데이터 패브릭;
    상기 데이터 패브릭 및 온-칩 RAM 메모리에 결합된 시스템 전력 상태 제어기;
    연관된 DRAM 메모리에 결합된 제1 메모리 채널; 및
    적어도 하나의 메모리 액세스 엔진으로부터 상기 데이터 패브릭을 통해 수신된 메모리 액세스 요청들을 이행하기 위해 상기 데이터 패브릭 및 상기 제1 메모리 채널에 결합되는 제1 메모리 제어기를 포함하며, 상기 제1 메모리 제어기는,
    제1 메모리 채널에 대한 메모리 액세스 요청들을 수신하기 위한 명령 대기열, 및 상기 명령 대기열로부터 엔트리들을 선택하고 그들을 메모리 인터페이스 대기열에 배치하여 그들이 상기 제1 메모리 채널을 통해 송신되게 하기 위한 아비터 - 상기 명령 대기열 및 아비터는 제1 전압 도메인에서 동작함 -;
    상기 메모리 제어기를 상기 제1 메모리 채널과 연관된 DRAM 메모리에 결합하기 위해 제2 전압 도메인에서 동작하는 DRAM 물리 계층 인터페이스(PHY); 및
    제1 전력 상태 명령에 응답하여, 온-칩 RAM 메모리에 저장하기 위한 구성 및 상태 데이터를 제공하고, 상기 메모리 제어기로 하여금 전력 차단 상태에 진입하게 하고, 상기 DRAM PHY를 상기 메모리 제어기가 상기 전력 차단 상태에 있는 동안 상기 제2 전압 도메인에 전력이 공급되는 저전력 상태에서 유지하는 로컬 전력 상태 제어기를 포함하는, 데이터 프로세싱 시스템.
  15. 제14항에 있어서, 상기 제1 전압 도메인으로부터 상기 DRAM PHY를 격리하도록 동작가능한 격리 셀들을 더 포함하며, 상기 로컬 전력 상태 제어기는 상기 제1 전력 상태 명령에 응답하여, 상기 격리 셀들이 상기 제1 전압 도메인으로부터 상기 DRAM PHY를 격리할 준비가 되었음을 나타내는 신호를 제공하는, 데이터 프로세싱 시스템.
  16. 제15항에 있어서, 상기 로컬 전력 상태 제어기는 상기 격리 셀들이 상기 DRAM PHY를 격리할 준비가 되었음을 나타내는 상기 신호를 제공하기 전에 상기 제1 메모리 채널과 연관된 상기 DRAM 메모리로 하여금 자체 리프레시 상태에 진입하게 하는, 데이터 프로세싱 시스템.
  17. 제15항에 있어서, 상기 로컬 전력 상태 제어기는, 제2 전력 상태 명령에 응답하여, 상기 온-칩 RAM 메모리로부터 상기 구성 및 상태 데이터를 수신하고, 상기 메모리 제어기로 하여금 상기 전력 차단 상태를 벗어나도록 하고, 상기 메모리 제어기의 제어 레지스터들에 상기 구성 및 상태 데이터를 로딩하고, 상기 DRAM PHY에 액세스할 준비가 되었음을 나타내는 제1 동기화 신호를 상기 시스템 전력 상태 제어기에 전송하고, 상기 격리 셀들의 비활성화에 뒤이어, 상기 DRAM PHY로 하여금 상기 저전력 상태를 벗어나게 하는, 데이터 프로세싱 시스템.
  18. 제17항에 있어서,
    상기 로컬 전력 상태 제어기는 상기 시스템 전력 상태 제어기로부터 상기 제1 전력 상태 명령을 수신하고, 상기 격리 셀들이 상기 DRAM PHY를 격리할 준비가 되었음을 나타내는 상기 신호를 상기 시스템 전력 상태 제어기에 제공하고,
    상기 격리 셀들은 상기 시스템 전력 상태 제어기로부터 그들로 하여금 상기 DRAM PHY를 상기 제1 전압 도메인으로부터 격리하게 하는 신호를 수신하는, 데이터 프로세싱 시스템.
  19. 제17항에 있어서, 제2 메모리 채널에 결합되고, 로컬 전력 상태 제어기 및 상기 제1 메모리 제어기의 것들과 같은 격리 셀들을 포함하는 제2 메모리 제어기를 더 포함하며, 상기 제2 메모리 제어기는 상기 제2 메모리 제어기가 상기 DRAM PHY에 액세스할 준비가 되었음을 나타내는 신호를 상기 시스템 전력 상태 제어기로 송신하고, 상기 시스템 전력 상태 제어기는 상기 제2 메모리 제어기가 상기 DRAM PHY에 액세스할 수 있도록 상기 제2 메모리 제어기의 상기 격리 셀들을 디스에이블하는, 데이터 프로세싱 시스템.
  20. 제14항에 있어서,
    상기 제1 메모리 제어기는 상기 DRAM 메모리에 대한 지원되는 저전력 모드들로의 진입 및 그로부터의 종료를 개시하는, 상기 DRAM 메모리에 대한 명령들의 시퀀스들을 저장하도록 프로그래밍가능한 상기 메모리 제어기 내의 메모리 동작 어레이를 더 포함하고,
    상기 제1 메모리 제어기의 상기 로컬 전력 상태 제어기는 상기 제1 전력 상태 명령에 응답하여 상기 명령들의 시퀀스들 중 하나 이상을 상기 온-칩 RAM 메모리에 추가로 저장하고, 상기 제2 전력 상태 명령에 응답하여 상기 명령들의 하나 이상의 시퀀스들을 상기 메모리 동작 어레이에 복원하는, 데이터 프로세싱 시스템.
KR1020237035614A 2021-03-31 2022-03-18 메모리 제어기 전력 상태들 KR20230160854A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/219,273 2021-03-31
US17/219,273 US11636054B2 (en) 2021-03-31 2021-03-31 Memory controller power states
PCT/US2022/020930 WO2022212089A1 (en) 2021-03-31 2022-03-18 Memory controller power states

Publications (1)

Publication Number Publication Date
KR20230160854A true KR20230160854A (ko) 2023-11-24

Family

ID=83448067

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237035614A KR20230160854A (ko) 2021-03-31 2022-03-18 메모리 제어기 전력 상태들

Country Status (6)

Country Link
US (1) US11636054B2 (ko)
EP (1) EP4314992A4 (ko)
JP (1) JP7506272B2 (ko)
KR (1) KR20230160854A (ko)
CN (1) CN117099071A (ko)
WO (1) WO2022212089A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11972140B2 (en) * 2021-04-26 2024-04-30 Apple Inc. Hashing with soft memory folding

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134167A (en) * 1998-06-04 2000-10-17 Compaq Computer Corporation Reducing power consumption in computer memory
US8775839B2 (en) * 2008-02-08 2014-07-08 Texas Instruments Incorporated Global hardware supervised power transition management circuits, processes and systems
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
US8824222B2 (en) * 2010-08-13 2014-09-02 Rambus Inc. Fast-wake memory
US10817043B2 (en) * 2011-07-26 2020-10-27 Nvidia Corporation System and method for entering and exiting sleep mode in a graphics subsystem
US9052899B2 (en) * 2011-08-10 2015-06-09 Intel Corporation Idle power reduction for memory subsystems
KR101965125B1 (ko) 2012-05-16 2019-08-28 삼성전자 주식회사 칩-투-칩 링크를 통해 공유 메모리로의 억세스를 지원하는 시스템 온칩, 상기 시스템온칩의 동작 방법, 및 상기 시스템온칩을 포함하는 전자 시스템
US9063734B2 (en) * 2012-09-07 2015-06-23 Atmel Corporation Microcontroller input/output connector state retention in low-power modes
US9305632B2 (en) 2013-04-29 2016-04-05 Qualcomm Incorporated Frequency power manager
US9383802B1 (en) 2013-06-20 2016-07-05 Altera Corporation Integrated circuit with state and data retention
US9612647B2 (en) 2013-11-08 2017-04-04 Intel Corporation Power management for a physical layer interface connecting a display panel to a display transmit engine
US9785211B2 (en) * 2015-02-13 2017-10-10 Qualcomm Incorporated Independent power collapse methodology
US10198204B2 (en) * 2016-06-01 2019-02-05 Advanced Micro Devices, Inc. Self refresh state machine MOP array
US10007311B2 (en) * 2016-08-15 2018-06-26 Sandisk Technologies Llc Adaptive temperature and memory parameter throttling
US10775871B2 (en) 2016-11-10 2020-09-15 Apple Inc. Methods and apparatus for providing individualized power control for peripheral sub-systems
JP2018180963A (ja) 2017-04-14 2018-11-15 キヤノン株式会社 情報処理装置
US11200106B2 (en) 2019-08-12 2021-12-14 Advanced Micro Devices, Inc. Data integrity for persistent memory systems and the like

Also Published As

Publication number Publication date
CN117099071A (zh) 2023-11-21
US11636054B2 (en) 2023-04-25
US20220318161A1 (en) 2022-10-06
JP7506272B2 (ja) 2024-06-25
JP2024512682A (ja) 2024-03-19
EP4314992A4 (en) 2024-06-12
EP4314992A1 (en) 2024-02-07
WO2022212089A1 (en) 2022-10-06

Similar Documents

Publication Publication Date Title
US11221772B2 (en) Self refresh state machine mop array
CN109863481B (zh) 用于平台裕度调节和调试的软件模式寄存器访问
WO2018013159A1 (en) Memory controller with virtual controller mode
EP3436958B1 (en) Low power memory throttling
KR102615693B1 (ko) Dram을 위한 리프레시 관리
JP2023508660A (ja) ダブルデータレートメモリトレーニングの削減によるメモリコンテキスト復元、システムオンチップのブート時間の短縮
JP7506272B2 (ja) メモリコントローラ電力状態
US11934251B2 (en) Data fabric clock switching
US11379388B1 (en) Credit scheme for multi-queue memory controllers
EP3270295A1 (en) Memory controller with virtual controller mode
US20240005971A1 (en) Channel and sub-channel throttling for memory controllers

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal