KR20230039656A - 메모리 캘리브레이션 시스템 및 방법 - Google Patents

메모리 캘리브레이션 시스템 및 방법 Download PDF

Info

Publication number
KR20230039656A
KR20230039656A KR1020237002176A KR20237002176A KR20230039656A KR 20230039656 A KR20230039656 A KR 20230039656A KR 1020237002176 A KR1020237002176 A KR 1020237002176A KR 20237002176 A KR20237002176 A KR 20237002176A KR 20230039656 A KR20230039656 A KR 20230039656A
Authority
KR
South Korea
Prior art keywords
calibration
command
smu
spaz
event
Prior art date
Application number
KR1020237002176A
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 KR20230039656A publication Critical patent/KR20230039656A/ko

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C11/00Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
    • G11C11/21Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
    • G11C11/34Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
    • G11C11/40Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
    • G11C11/401Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors forming cells needing refreshing or charge regeneration, i.e. dynamic cells
    • G11C11/406Management or control of the refreshing or charge-regeneration cycles
    • G11C11/40611External triggering or timing of internal or partially internal refresh operations, e.g. auto-refresh or CAS-before-RAS triggered refresh
    • GPHYSICS
    • 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
    • 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
    • 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
    • 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
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/442Shutdown
    • 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/40607Refresh operations in memory devices with an internal cache or data buffer
    • 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/4072Circuits for initialization, powering up or down, clearing memory or presetting
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/022Detection or location of defective auxiliary circuits, e.g. defective refresh counters in I/O circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/023Detection or location of defective auxiliary circuits, e.g. defective refresh counters in clock generator or timing circuitry
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/02Detection or location of defective auxiliary circuits, e.g. defective refresh counters
    • G11C29/028Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50008Marginal testing, e.g. race, voltage or current testing of impedance
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/50Marginal testing, e.g. race, voltage or current testing
    • G11C29/50016Marginal testing, e.g. race, voltage or current testing of retention
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • 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)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Dram (AREA)
  • Memory System (AREA)

Abstract

시스템 온 칩(SOC)이 버퍼들을 채우기 위해 DRAM에 대한 요청들의 버스트들을 개시하여 DRAM이 셀프 리프레시를 하게 하는 동적 랜덤 액세스 메모리(DRAM)의 스터터를 수행하기 위한 방법이 개시된다. 이 방법은, 시스템 관리 유닛(SMU)에 의해, SMU ZQCal 타임아웃 요청과 같은 타임아웃 요청을 수신하는 것에 응답하여 스터터 프로시저를 개시하기 위해 ForceZQCal 커맨드를 메모리 제어기에 발행하는 단계, SMU에 의해, 전력 플랫폼 임계치(PPT) 요청을 메모리 제어기에 주기적으로 발행하는 단계, 및 ZQ 캘리브레이션 후에 리트레이닝이 발생하는 것을 보장하기 위해 PPT 요청 이전에 ForceZQCal 커맨드를 발송하는 단계를 포함한다. PPT 요청 이전에 발행된 ForceZQCal 커맨드는 스터터의 레이턴시를 감소시킬 수 있다. 방법은 각각의 주기적 리트레이닝 이전에 ForceZQCal 커맨드를 발행하는 단계를 더 포함할 수 있다.

Description

메모리 캘리브레이션 시스템 및 방법
관련 출원에 대한 상호 참조
본 출원은 2020년 7월 24일에 출원된 미국 정규특허출원 제16/938,855호의 이익을 주장하며, 그 내용은 본 명세서에 참고로 포함된다.
동적 랜덤 액세스 메모리(DRAM)는 컴퓨터 시스템에서 공통적으로 사용되는 메모리 유형이다. DRAM은 인터페이스 성능을 위해 적절한 인터페이스 임피던스를 포함하는 성능을 유지하기 위해 적절한 초기화 및 주기적 캘리브레이션을 필요로 하는 휘발성 메모리이다.
더 상세한 이해는 첨부된 도면과 함께 예로서 주어진 다음의 설명으로부터 얻을 수 있다.
도 1은 본 개시의 하나 이상의 특징들이 구현될 수 있는 예시적인 디바이스의 블록도이다.
도 2는 파워 다운, 자동 리프레시, ZQCal(SPAZ)을 위한 상태 머신을 예시한다.
도 3은 도 2의 SPAZ에서 수행되는 ZQCS 시퀀스를 위한 방법을 예시한다.
도 4는 각각의 그룹이 Tzq에 대해 SPAZ에 의해 발송되는 2개의 그룹들을 예시한다.
도 5는 도 2의 아비터(arbiter) 및 SPAZ에 의해 수행되는 동적 랜덤 액세스 메모리(DRAM)의 적절한 성능을 유지하기 위한 주기적 캘리브레이션을 위한 방법을 예시한다.
도 6은 시스템의 전력 관리를 수행하는 방법을 예시한다.
도 7은 스터터(stutter)를 수행하는 방법을 예시한다.
도 8은 ZQCal 사이클을 모든 랭크에 대해 개시하기 위해 SPAZ에 의해 지원되는 방법을 예시한다.
동적 랜덤 액세스 메모리(DRAM)의 적절한 성능을 유지하기 위해 주기적 캘리브레이션을 수행하기 위해, 다음과 같은 방법들 및 시스템들이 제공된다.
DRAM의 적절한 성능을 유지하기 위한 파워 다운, 자동 리프레시, 및 주기적 캘리브레이션을 위한 ZQCal(SPAZ)을 위한 상태 머신에 대한 시스템 및 방법이 개시된다. 시스템 및 방법은 파워 다운 로직(PD), 뱅크별(per-bank) 리프레시를 포함하는 자동 리프레시 로직(REF), 캘리브레이션을 위한 ZQ 상태 머신(ZQ), 및 열 조건들을 모니터링하기 위한 열 로직(THM)을 포함한다. SPAZ는 백 엔드 큐(BEQ) 및 아비터(ARB)에 링크되며, 아비터 및 SPAZ는 메모리의 메모리 제어기 제어 동안 ZQ 간격 카운터가 만료되는지 여부를 체크하고, ZQCal Start 커맨드를 발송하기 전에 아비터가 메모리의 제어를 받을 때까지 대기하고, tZQCAL 카운터가 만료될 때 SPAZ/아비터로부터 ZQCal 래치를 발송하고, SRSM(Self-Refresh State Machine)이 제어해야 하는 조건 하에, ZQCal 래치가 완료된 후 SRSM에 제어를 넘겨준다.
시스템 온 칩(SOC)이 버퍼들을 채우기 위해 DRAM에 대한 요청들의 버스트들을 개시하여 DRAM이 셀프 리프레시를 하게 하는 DRAM의 스터터를 수행하기 위한 방법이 개시된다. 이 방법은, 시스템 관리 유닛(SMU)에 의해, SMU ZQCal 타임아웃 요청과 같은 타임아웃 요청을 수신하는 것에 응답하여 스터터 프로시저(stutter procedure)를 개시하기 위해 ForceZQCal 커맨드를 메모리 제어기에 발행하는 단계, SMU에 의해, 전력 플랫폼 임계치(PPT) 요청을 메모리 제어기에 주기적으로 발행하는 단계, 및 ZQ 캘리브레이션 후에 리트레이닝(re-training)이 발생하는 것을 보장하기 위해 PPT 요청 이전에 ForceZQCal 커맨드를 발송하는 단계를 포함한다. PPT 요청 이전에 발행된 ForceZQCal 커맨드는 스터터의 레이턴시를 감소시킬 수 있다. 방법은 각각의 주기적 리트레이닝 이전에 ForceZQCal 커맨드를 발행하는 단계를 더 포함할 수 있다.
복수의 그룹들에 걸쳐 모든 랭크들에 대해 SPAZ에 의해 지원되는 ZQCal 사이클을 개시하기 위한 방법이 개시된다. 이 방법은 SMU에 의해 ForceZQCal 비트를 설정하는 단계, ZQ 시작을 개시하는 단계, 및 ForceZQCal 시작을 수신할 때 SPAZ 카운터를 재설정하여 0부터 카운팅을 시작하는 단계를 포함한다. SMU가 ForceZQCal 비트를 설정하면 SMU가 ZQCal 사이클을 제어할 수 있다. SPAZ는 ZQStart를 개시할 수 있다. 래치는 ZQ 시작 시에 원자성(atomic)으로 간주될 수 있다. SPAZ 프로시저가 진행 중인 동안 ForceZQCal이 발생하면, 진행 중인 프로시저가 하드웨어 개시된 ZQStart/Latch인 복수의 그룹들에서의 그룹에 대한 ZQ 커맨드들을 중단한다. 방법은 SPAZ에 의해 발송된 ZQ 커맨드들을 나머지 그룹들에 발송하는 단계를 더 포함한다.
도 1은 본 개시의 하나 이상의 특징이 구현될 수 있는 예시적인 디바이스(100)의 블록도이다. 디바이스(100)는 예를 들어, 컴퓨터, 게이밍 디바이스, 핸드헬드 디바이스, 셋톱 박스, 텔레비전, 모바일 폰, 또는 태블릿 컴퓨터를 포함할 수 있다. 디바이스(100)는 프로세서(102), 메모리(104), 스토리지(106), 하나 이상의 입력 디바이스(108), 및 하나 이상의 출력 디바이스(110)를 포함한다. 디바이스(100)는 또한 선택적으로 입력 드라이버(112) 및 출력 드라이버(114)를 포함할 수 있다. 디바이스(100)는 도 1에 도시되지 않은 추가적인 컴포넌트들을 포함할 수 있다는 것이 이해된다.
다양한 대안들에서, 프로세서(102)는 중앙 프로세싱 유닛(CPU), 그래픽 프로세싱 유닛(GPU), 동일한 다이 상에 위치된 CPU 및 GPU, 또는 하나 이상의 프로세서 코어들을 포함하고, 각각의 프로세서 코어는 CPU 또는 GPU일 수 있다. 다양한 대안들에서, 메모리(104)는 프로세서(102)와 동일한 다이 상에 위치되거나 또는 프로세서(102)와 별도로 위치된다. 메모리(104)는 휘발성 또는 비휘발성 메모리, 예를 들어, 랜덤 액세스 메모리(RAM), 동적 RAM, 또는 캐시를 포함한다.
스토리지(106)는 고정 또는 제거 가능한 스토리지, 예를 들어, 하드 디스크 드라이브, 솔리드 스테이트 드라이브, 광학 디스크, 또는 플래시 드라이브를 포함한다. 입력 디바이스들(108)은 키보드, 키패드, 터치 스크린, 터치 패드, 검출기, 마이크로폰, 가속도계, 자이로스코프, 바이오메트릭 스캐너, 또는 네트워크 연결(예를 들어, 무선 IEEE 802 신호들의 송신 및/또는 수신을 위한 무선 로컬 영역 네트워크 카드)을 포함하지만, 이에 제한되지 않는다. 출력 디바이스들(110)은 디스플레이, 스피커, 프린터, 햅틱 피드백 디바이스, 하나 이상의 조명들, 안테나, 또는 네트워크 연결(예를 들어, 무선 IEEE 802 신호들의 송신 및/또는 수신을 위한 무선 로컬 영역 네트워크 카드)을 포함하지만, 이에 제한되지 않는다.
입력 드라이버(112)는 프로세서(102) 및 입력 디바이스들(108)과 통신하고, 프로세서(102)가 입력 디바이스들(108)로부터 입력을 수신하도록 허용한다. 출력 드라이버(114)는 프로세서(102) 및 출력 디바이스들(110)과 통신하고, 프로세서(102)가 출력 디바이스들(110)에 출력을 발송하도록 허용한다. 입력 드라이버(112) 및 출력 드라이버(114)는 선택적인 컴포넌트들이며, 입력 드라이버(112) 및 출력 드라이버(114)가 존재하지 않는 경우에 디바이스(100)는 동일한 방식으로 동작할 것이라는 점에 유의한다. DRAM은 전형적으로 금속 산화물 반도체(MOS) 기술을 기반으로 하는 작은 커패시터와 트랜지스터로 구성된 메모리 셀에 데이터의 각 비트를 저장하는 일종의 랜덤 액세스 반도체 메모리이다. 커패시터는 통상적으로 0 및 1로 불리는 비트의 2개의 값을 나타내기 위해 충전 또는 방전될 수 있다. 커패시터의 전하가 천천히 누설되므로, 개입하지 않으면 칩의 데이터가 곧 손실된다. 이를 방지하기 위해, DRAM은 커패시터에 데이터를 주기적으로 재기록하여 원래의 전하로 복원하는 외부 메모리 리프레시 회로(external memory refresh circuit)를 필요로 한다. 이러한 리프레시 프로세스는 데이터를 리프레시할 필요가 없는 정적 랜덤 액세스 메모리(SRAM)와는 대조적으로 동적 랜덤 액세스 메모리의 정의 특성이다.
DRAM은 전형적으로 수십 내지 수십억 개의 DRAM 메모리 셀들을 포함할 수 있는 집적 회로 칩의 형태를 취한다. DRAM 칩들은 저비용 및 고용량의 컴퓨터 메모리가 필요한 디지털 전자 장치에 널리 사용되고 있다. DRAM에 대한 가장 큰 애플리케이션들 중 하나는 현대 컴퓨터들 및 그래픽 카드들(여기서 "메인 메모리"는 그래픽 메모리라고 함)에서 메인 메모리(일반적으로는 "RAM"이라고 함)이다. 또한 많은 휴대용 디바이스들 및 비디오 게임 콘솔들에도 사용된다.
일반적으로, 컴퓨터 시스템에서 사용하기 위한 DRAM을 준비하는 단계는 4단계이다. 이들은 아래에서 설명되는 바와 같이 파워-업 및 초기화, ZQ 캘리브레이션, Vref DQ 캘리브레이션, 및 판독/기록 트레이닝을 포함한다.
파워-업 및 초기화는 DRAM에 전력을 인가하는 것을 포함하는 단계들의 잘 정의된 시퀀스이다. 이때 DIMM(Dual In-line Memory Module) 상의 DRAM들은 설정된 주파수에서 동작하고, CAS(Column Access Strobe) 레이턴시(CL), CWL(CAS Write Latency) 및 다른 타이밍 파라미터를 정의한다.
예를 들어, DRAM의 일종인 DDR4(Double Data Rate Synchronous Random-Access Memory)에 대한 ZQ 캘리브레이션은 데이터 핀들 및 병렬 저항 레그들의 세트에 관련된다. 일 예에서, 이들 저항기 레그들은 240Ω이지만, 다른 저항 값들이 이용될 수 있다. CMOS(complementary metal-oxide-semiconductor) 디바이스들의 특성 때문에, 이러한 저항기들은 본 예의 240Ω과 같은 정확히 원하는 저항이 아니다. 저항은 다른 요인들 중에서도 전압 및 온도 변화로 인해 영향을 받는다. 이 예에서 240Ω과 같은, 정확하게 또는 실질적으로 원하는 값으로 이들 저항기들을 튜닝하기 위해, 각각의 DRAM은 DQ 캘리브레이션 제어 블록이라 불리는 특수 블록 및 저항기가 연결되는 ZQ 핀을 갖는다. 이 외부 정밀 저항기는 "기준"이며 모든 온도에서 예제의 240Ω 값과 같은 원하는 값으로 유지된다. 초기화 동안 ZQCal 커맨드가 발행될 때, 이 DQ 캘리브레이션 제어 블록은 인에이블되고 튜닝 값을 생성한다. 그런 다음 이 튜닝 값은 각 DQ의 내부 회로부로 복사된다.
DDR4에서, 내부 전압 기준은 데이터 라인들 상의 신호가 0 또는 1인지를 결정하기 위해 사용된다. 이 전압 기준을 VrefDQ라고 한다. VrefDQ는 모드 레지스터들을 사용하여 설정될 수 있고, 그것은 VrefDQ 캘리브레이션 단계 동안 메모리 제어기에 의해 올바르게 설정될 필요가 있다.
일단 이러한 파워-업 및 초기화 단계들이 수행되면, 시스템은 IDLE 모드에 있고 동작한다. DRAM의 사용을 위한 추가적인 요구 사항은 주기적 캘리브레이션을 포함할 수 있다.
저전력 더블 데이터 레이트 동기식 동적 액세스 메모리(LPDDR4) 디바이스들은 전술한 바와 같이, 전압 및 온도 임피던스 드리프트를 보상하기 위해 주기적 ZQ 캘리브레이션(임피던스)을 필요로 한다. 다른 DDR4 디바이스들과 마찬가지로 LPDDR4 디바이스들은 디바이스 캘리브레이션을 시작하기 위한 특정 커맨드들을 지원한다. 그러나, LPDDR4 디바이스들은 캘리브레이션을 시작하고 그 캘리브레이션에 기초하여 임피던스 업데이트를 실제로 수행하기 위한 별도의 커맨드들을 지원한다. ZQStart 커맨드는 디바이스에 캘리브레이션을 수행하도록 알리고 ZQLatch는 디바이스에 캘리브레이션으로부터의 값을 적용하도록 알린다.
LPDDR4의 본 실시예에서, 메모리 제어기 채널 최소 LPDDR4 해상도가 32비트이므로 2개의 16비트 디바이스들이 하나의 32비트 LPDDR4 채널로서 함께 그룹화될 수 있다. ZQ 캘리브레이션은 채널당 지원되는 2개의 랭크들에 의해 수행되고, 각각의 랭크는 자체 캘리브레이션 저항기들을 갖는다. 물리적 인터페이스(PHY)는 리트레이닝 전에 메모리 제어기에 ZQCal 커맨드를 발행하며, 이는 MstateCtrl.ConvertD2toPHYLP3 비트가 설정될 때 PHY 전력 게이팅된 시나리오를 벗어날 때 PHY에 의해 수행되며, 서브채널당 랭크들 둘 모두는 동시에 ZQ 캘리브레이션된다. 메모리 제어기는 ZQCal 커맨드들을 각각의 랭크에 독립적으로 발행한다. ZQ 캘리브레이션이 여전히 동시에 수행될 수 있지만, 각각의 32비트 서브채널 ZQ가 독립적으로 캘리브레이션되는 가상 제어기 모드(VCM)에 있을 때 하나의 메모리 제어기 채널로 2개의 독립 채널들이 지원될 수 있다. VCM은 하나의 DRAM 제어기가 2개의 별도의 DRAM 제어기들에 대한 필요성을 충족시키기 위해 2개의 별도의 독립적인 채널들을 실행할 때 발생한다. 디바이스 사양에 따라 디바이스들이 파워 다운 모드에 있을 때 LPDDR4 디바이스는 ZQStart 또는 ZQLatch 커맨드들을 발송될 수 없다. 그러나, LPDDR4 디바이스 파워 다운은 ZQ 캘리브레이션 동안 발생할 수 있다. 트래픽은 ZQStart와 ZQLatch 사이에 최소 1 μs 지연으로 ZQStart와 ZQLatch 사이에서 LPDDR4 디바이스들로 발송될 수 있다.
SPAZ 로직은 ZQ 캘리브레이션 간격 타이머를 지원할 수 있다. 간격은 예를 들어 32 ms - 256 ms 사이에서 구성 가능하고 Tzq(ZqCsInterval)로 특정된다. 다수의 랭크들의 경우, 예를 들어, Tzq 간격은 절반으로 설정될 수 있다. 간격 카운터는 AON(always on) 영역에 존재하므로 카운팅은 파워 게이팅의 영향을 받지 않는다. 각각의 ZQ 커맨드는 커맨드 버스가 이용가능할 때 발송되는데, 즉, ZQStart 캘리브레이션이 발송되기 전에 진행 중인 트랜잭션들이 완료되도록 허용될 수 있다. 일단 SPAZ가 ZQStart를 발송하면, ZQLatch는 메모리 제어기에 다시 제어를 제공하기 전에 원자적으로(atomically) 발송될 수 있다. ZQ 캘리브레이션 및 대응하는 업데이트는 아래에서 논의되는 바와 같이 미션 모드, 스터터(stutter) 및 S3 슬립 상태들 동안 주기적 업데이트 동안 수행된다.
SPAZ는 AON 영역에 있어야 하는 ZQ 간격 타이머를 포함한다. ZQ 간격은 x32 서브채널당 두 그룹으로 나누어진다. SPAZ는 예를 들어 (ZQ 간격)/2와 같은 간격에 기초하여 각 그룹에 커맨드들을 발송할 수 있다.
도 2는 DRAM에 대한 파워 다운, 자동 리프레시, ZQcal(SPAZ)(200)을 위한 상태 머신을 예시한다. SPAZ(200)는 파워 다운 로직(PD)(210), 뱅크별 리프레시 능력을 포함할 수 있는 자동 리프레시 로직(REF)(220), 캘리브레이션을 위한 ZQ 상태 머신(ZQ)(230), 및 열 로직(THM)(240)을 포함한다. SPAZ(200)는 또한 백 엔드 큐(BEQ)(250) 및 아비터(ARB)(260)에 대한 링크들을 포함할 수 있다.
파워 다운 로직(210)은 메모리 제어기가 전체 채널 파워 다운 및 부분 채널 파워 다운을 지원할 수 있게 한다. 부분 채널 파워 다운은 일부 랭크가 파워 다운 모드에 들어 갈때 발생한다. 전체 채널 파워 다운은 모든 랭크가 파워 다운 모드에 들어 갈때 발생한다. 파워 다운 로직(210)은 아비터(260)와 통신하여 버스/랭크 상태를 모니터링하고, 임의의 랭크 및 어느 랭크가 파워 다운될 수 있는지를 결정한다. 페이지가 닫힐 때까지 수동 대기 시간을 절약하기 위해 공격적인 파워 다운(aggressive power down)이 또한 수행될 수 있다. 파워 다운 로직(210)은 적절한 경우, 파워 다운 로직 채널 스태거링을 위해 모든 채널들이 동시에 파워 다운에 진입하거나 또는 파워 다운을 종료하는 것을 방지하기 위해 파워 다운 채널 스태거링을 가능하게 할 수 있다.
자동 리프레시 로직(220)은 메모리 제어기가 자동 리프레시 커맨드들로 DRAM들을 주기적으로 리프레시할 수 있게 한다. 자동 리프레시 로직(220)은 예를 들어, 한 번에 단일 랭크, 하나의 뱅크, 또는 다수의 뱅크들을 선택하는 것만을 허용함으로써 제한될 수 있다. 미세 입도(Fine granularity) 자동 리프레시가 자동 리프레시 로직(220)에 포함될 수 있고, DDR4 메모리 제품들에 이용될 수 있다. 자동 리프레시 로직(220)은 리프레시가 필요할 때를 추적하는 로직을 포함할 수 있고, 추적에 기초하여 DRAM으로의 후속 송신을 위해 리프레시 커맨드 요청들을 아비터(260)에 발송할 수 있다. 자동 리프레시 로직(220)은, 예를 들어, LPDDR4/HBM과 같은, 허용되는 DRAM 기술들에서 지원되는 바와 같이 뱅크별 리프레시를 가능하게 할 수 있다.
ZQ(230)는 DRAM 및 온-다이 종단(ODT) 값들을 캘리브레이션하는 데 사용될 수 있다. 관련 기술 분야의 통상의 기술을 가진 사람들이 이해하는 바와 같이, DRAM들은 종종 초기화시 및 셀프 리프레시를 종료하려고 시도할 때 출력 드라이버 및 ODT 회로들을 캘리브레이션하기 위해 더 긴 시간(ZQCL), 그리고 전압 및 온도 변동들을 고려하기 위해 주기적 캘리브레이션들을 수행하기 위해 비교적 더 작은 시간(ZQCS)을 필요로 한다. ZQ(230)는 ZQCS 캘리브레이션 커맨드들의 생성을 핸들링할 수 있다. 메모리 제어기는 초기화 동안 그리고 셀프 리프레시로부터 나오는 동안 긴 버전(ZQCL) ZQ 커맨드 및 주기적 캘리브레이션들을 수행하기 위한 짧은 버전(ZQCS) ZQ 커맨드를 발송할 수 있다. SPAZ(200)는 ZQCS를 지원하는 반면, ZQCL은 초기화 또는 셀프 리프레시 종료 동안 PHY/메모리 제어기에 의해 지원될 수 있다.
열 로직(240)은 일부 제품들의 보드로부터의 온도 포트들을 모니터링하고, DRAM 열 상태를 모니터링하기 위해 주기적 모드 레지스터 판독들로부터의 결과들을 캡처할 수 있다. 열 로직(240)은 레이트를 증가 또는 감소시킴으로써 리프레시 레이트를 동적으로 변경하는 것, DRAM 인터페이스 상의 대역폭을 캡핑함으로써 커맨드들을 스로틀링하는 것, 커맨드 분리 타이밍들을 디레이팅하는 것, 랭크들을 파워 다운시키는 것, 및 머신 체크 메모리 온도 핫(MCA) 에러를 로깅하는 것을 포함하는 이러한 입력들에 기초하여 액션들을 취할 수 있다.
백 엔드 큐(250)는 물리적 계층(PHY)을 향하는 채널로 나가는 어드레스, 데이터 및 제어 시그널링을 관리한다. 백 엔드 큐(250)는 기록 데이터 버퍼로부터 채널로의 기록 데이터 이동을 관리할 수 있고 판독 데이터 응답들을 프론트 엔드 인터페이스(FEI)로 다시 이동시킬 수 있다.
예시된 바와 같이, 파워 다운 로직(210)은 열 로직(240), 자동 리프레시 로직(220), ZQ(230), 백 엔드 큐(250), 및 아비터(260)로부터 입력을 수신할 수 있고, ZQ(230), 자동 리프레시 로직(220), 백 엔드 큐(250), 및 아비터(260)에 출력할 수 있다. ZQ(230)는 자동 리프레시 로직(220), 파워 다운 로직(210), 및 아비터(260)와 통신한다. 열 로직(240)은 자동 리프레시 로직(220), 파워 다운 로직(210), 및 아비터(260)로 출력한다. 완전성을 위해, 자동 리프레시 로직(220)은 아비터(260), 열 로직(240), 파워 다운 로직(210) 및 ZQ(230)와 통신한다. 백 엔드 큐(250)는 파워 다운 로직(210)과 통신한다. 아비터(260)는 자동 리프레시 로직(220), 열 로직(240), ZQ(230) 및 파워 다운 로직(210)과 통신한다.
ZQCS 동안, DDR 버스는 DRAM들이 ZQ 캘리브레이션을 수행하는 동안 유휴 상태일 수 있다. 일부 시스템들은 일부 랭크들에 대한 캘리브레이션 커맨드들이 독립적으로 발송되게 하는 디바이스들 사이에서 ZQ 저항기들을 공유했을 수 있다. 예를 들어, DDP(Digital Dynamics Processor)의 두 개의 랭크는 서로 다른 시간에 ZQCS를 수행한다. 추가의 예로서, 3차원 듀얼 스크린(3DS) 패키지 내의 모든 랭크들은 하나의 커맨드로 ZQ 캘리브레이션을 행할 수 있다. 주기적 캘리브레이션은 하나의 ZQ 그룹을 선택하여, 구성가능한 간격(예를 들어, 간격의 ¼로)까지 카운트하는 긴 카운터를 사용하여 행해지고, 선택된 그룹이 채워진 랭크들(populated ranks)로 구성되면, ZQCS 시퀀스가 시작될 수 있다.
도 3은 SPAZ(200)에서 수행되는 ZQCS 시퀀스를 수행하기 위한 방법(300)을 예시한다. 방법(300)은, 단계(310)에서, 대응하는 ZQ 그룹이 채워진 랭크들을 갖지 않는 경우, 방법(300)을 스킵하는 것을 포함한다. 단계(320)에서, ZQCS 시퀀스가 계류 중이라는 아비터(도 2의 엘리먼트(260)) 및 다른 SPAZ(도 2의 엘리먼트(200)) 블록들의 통지가 있고, 통지에 기초하여 대부분의 커맨드들을 보류하고, 백 엔드 큐(도 2의 엘리먼트(250))가 드레인되게 하는 지연이 뒤따른다. 단계(330)에서, 전체 채널에 대해 파워 다운 상태를 종료하라는 파워 다운 로직 블록(도 2의 엘리먼트(210))의 통지가 있고, 방법(300)은 ZQCS 시퀀스가 완료되는 동안 임의의 파워 다운 진입/종료를 차단해야 한다. 단계(340)에서, ZQ 그룹 내의 채워진 랭크들의 오픈 페이지들(open page)은 사전 충전된다. 단계(350)에서, 방법(300)은 임의의 계류중인 긴급 리프레시들을 전체 채널로 발송한다. 다시, ZQCS 시퀀스 동안 다른 리프레시 커맨드들이 발송되지 않을 수 있다. 단계(360)에서, 방법(300)은 ZQ 그룹 내의 랭크들에 ZQCS 커맨드들을 발송한다. 단계(370)에서, SPAZ는 이 시간 동안 채널이 유휴 상태(idle)가 되도록 (Tzqcs 시간 동안) 대기한다.
도 4는 2개의 그룹들(Grp0, Grp1)을 예시하며, 여기서 각각의 그룹은 Tzq에 대한 간격/2에 기초하여 SPAZ에 의해 발송된다. SPAZ(도 2의 엘리먼트(200))는 ZQStart 및 ZQLatch에 대해 서브채널들 둘 다를 개별적으로 동시에 지시할 수 있다. SPAZ(도 2의 엘리먼트(200))는 서브채널마다 별도의 ZQCAL 카운터(1 μs)를 갖는 서브채널마다 시작을 추적한다. 아비터(도 2의 엘리먼트(260))는 ZQStart와 ZQLatch 커맨드들 사이에 정상 트래픽을 발송할 수 있고, 제어를 메모리 제어기로 넘겨주기 전에 원자성(atomicity)을 유지할 수 있다.
S3 슬립 상태 종료 또는 연결된 대기 상태에서, 비디오 및 오디오는 디스에이블될 것으로 예상되므로, 모든 랭크들에 걸쳐 추가 ZQ 캘리브레이션이 발생하고 리트레이닝이 예상된다. 이 구성에서, 시스템이 가능하게는 긴 시간 동안 비활성이고 DRAM이 이 시간 동안 주기적으로 ZQ 캘리브레이션되거나 주기적으로 트레이닝되지 않기 때문에, SMU는 PHY에 의해 개시된 임의의 액세스가 필요할 수 있기 전에 리트레이닝 및 ZQCal 구성을 통해 ZQ 캘리브레이션 및 주기적 트레이닝을 시그널링한다. 일반적으로 ZQStart와 ZQLatch 사이에는 트래픽이 없다. x32 서브채널들 모두에 대한 연속 '그룹들'의 ZQ 캘리브레이션은 총 1μs + 30ns + 1μs + 30ns = 2.06μs 이다. 연결 대기 상태로부터의 종료를 위해, SMU는 연결 대기 상태에 진입하기 전에 MstateCtrl.ConvertD2toPHYLP3와 같은 제어 비트를 설정할 수 있어서, 메모리 제어기는 정상 C-상태 요청(예를 들어, D2 요청과 같은)에 기초하여 깨어 있게할(awaken) 요청을 LP3 상태로 변환할 수 있고, 따라서 PHY는 종료 시의 리트레이닝이 발생하기 전에 ZQCal을 개시한다.
PHY LP3상태를 사용하여 S3/연결된 대기를 종료하면 다르게 동작할 수 있다. SRSM은 LP3 상태에서 D2 요청에 응답하여 확장 Cstate를 수행하기 위해 비트를 추가하여 PHY가 개시되도록 한다(D3에 대해 이미 수행됨). 이 CFG 비트는 D2-LP2를 D2-LP3으로 PHY로 변환하기 위해 C-상태 요청 이전에 SMU에 의해 설정되어야 한다. 이 CFG 비트를 ConvertD2toPHYLP3라고 한다. 예를 들어 이는 Long Idle Vmin "Whisper" 모드와 관련될 수 있다.
도 5는 도 2의 아비터 및 SPAZ에 의해 수행되는 DRAM의 적절한 성능을 유지하기 위한 주기적 캘리브레이션을 위한 방법(500)을 예시한다. 아비터 및 SPAZ는 주기적 원자성 캘리브레이션을 위해 도 5의 방법(500)을 수행한다. 방법(500)은 단계(510)에서 메모리의 메모리 제어기 제어 동안 ZQ 간격 카운터가 만료되는지를 체크하는 단계, 및 단계(520)에서 ZQCal Start(ZQStart) 커맨드를 발송하기 전에 아비터가 제어를 받을 때까지 대기하는 단계를 포함한다. 방법(500)은 tZQCAL 카운터가 만료될 때 단계(530)에서 SPAZ/아비터로부터 ZQCal Latch(ZQLatch)를 발송하는 단계를 포함한다. 아비터는 단계(540)에서 ZQCal Latch 프로시저가 수행된 후에 제어를 SRSM에 반환한다.
일반적으로, 본 발명의 실시예들은 이벤트의 종료 동안 ZQ 캘리브레이션을 발송하는 것을 피하기 위해 이벤트에 진입하기 전에 ZQ 캘리브레이션의 프로세스를 개시하는 것(예를 들어, 저전력 모드에 진입하는 것, 셀프 리프레시에 진입하는 것 등)을 가능하게 한다. 이벤트를 종료한 후(예를 들어, 저전력 모드를 종료한 후; 셀프 리프레시 모드를 종료한 후), 본 발명의 실시예들은 이벤트에 진입하기 전에 개시된 캘리브레이션을 수행할 것이다(즉, 캘리브레이션은 실제로 이벤트 후에 발생하지만 캘리브레이션 프로세스는 이벤트 전에 개시되었다). 이벤트에 진입하기 전에 ZQ 캘리브레이션을 개시하는 것은 이벤트에 진입하기 위한 감소된 비용들(예를 들어, 저전력 또는 저전력 모드에 진입하기 위한 감소된 비용; 즉, 개선된 전력 관리)을 초래할 수 있다. 추가적으로, 이벤트에 진입하기 전에 ZQ 캘리브레이션을 개시하는 것은 또한 이벤트를 종료한 후 버스 이용을 감소시킬 수 있다(예를 들어, 저전력 모드를 종료하거나 셀프 리프레시 모드를 종료한 후 더 낮은 버스 이용). 이러한 이점들 중 하나 또는 둘 모두의 결과는 시스템(예를 들어, SoC, 오프-다이 메모리와 조합된 SoC 등)이 더 빈번하게 저전력 모드에 진입하게 하여, 전체 시스템에 대한 전력 소비를 감소(및 전력 관리를 향상)시킬 수 있다.
도 6은 시스템의 전력 관리를 수행하는 방법(600)을 예시한다. 방법(600)은 단계(610)에서 캘리브레이션을 개시하는 단계를 포함한다. 실시예에서, 이러한 개시는 이벤트에 들어가기 전에 발생할 수 있다. 방법(600)은 단계(620)에서 이벤트에 진입하는 단계를 포함할 수 있다. 이벤트는 예를 들어 메모리의 셀프 리프레시 모드와 같은 저전력 모드를 포함할 수 있다. 방법(600)은 단계(630)에서 캘리브레이션을 수행하는 단계를 포함할 수 있다. 일 실시예에 따르면, 단계(630)에서 캘리브레이션을 수행하는 것은 단계(610)에서 개시된 캘리브레이션에 응답할 수 있다. 단계(630)에서 캘리브레이션을 수행하는 것은, 일 실시예에 따르면, 이벤트를 종료할 때 수행될 수 있다.
일 실시예에 따르면, SPAZ는 활동을 추적하기 위해 카운터들을 통합할 수 있다. 이러한 카운터들은 캘리브레이션 기간을 모니터링하기 위한 제1 카운터(Tzq) 및 ZQStart와 ZQLatch 사이의 지속기간(대략 1μs)을 모니터링하기 위한 제2 카운터(Tzqcal)를 포함한다. 이들 카운터들은 예를 들어 서브블록(ZQCTR)에서와 같이 SPAZ에 위치될 수 있다. ZQCTR은 예를 들어, AON 영역에 위치될 수 있다. SPAZ는 ZQStart 커맨드가 언제 발송되는지를 검출하고, Tzqcal 카운터를 시작할 수 있다. 그런 다음 SPAZ는 ZQLatch 커맨드를 발송하여 ZQ 시퀀스를 마친다.
스터터는 SOC가 버퍼들을 채우기 위해 DRAM으로의 요청들의 버스트들을 본질적으로 개시하고 그런 다음 DRAM을 셀프 리프레시에 두게 하는 프로세스이다. SMU는 메모리 제어기의 주기적 ZQCal 타이머와 매칭되는 주기적 사이클에 기초하여 카운터를 유지한다. SMU의 ZQCal 타임아웃 요청 시, SMU는 스터터 전에 메모리 제어기에 ForceZQCal 요청을 발행한다. 스터터 중에 주기적으로, SMU는 메모리 제어기에 PPT 요청을 발행한다. 일 실시예에 따르면, 선행 ZQ 캘리브레이션으로 리트레이닝이 발생하는 것을 보장하기 위해, 레이턴시를 감소시키기 위해(예를 들어, 스터터의 레이턴시를 감소시키기 위해) PPT 요청 이전에 ForceZQCal 요청이 발송된다. 일 실시예에서, SMU는 ZQCal 타이머를 구현하지 않을 수 있고, 각각의 주기적 리트레이닝 전에 ForceZQCal 요청을 제공할 수 있다. 일반적으로 SMU는 명령어들을 발송하기 전에 1.03μs를 대기한다(ZQStart 및 ZQLatch 커맨드 사이의 1μs 및 30ns 실제 래치 오버헤드). 스터터는 주기적 D2 프로세스이다.
SPAZ는 모든 랭크에 대해 ZQCal 사이클을 개시하는 방법을 지원한다. 이 방법은 SMU가 ForceZQCal 비트를 설정함으로써 수행된다. 이 비트는 ZQCal 사이클의 SMU 제어를 제공한다. SPAZ는 ZQ 시작 및 래치를 개시하며 원자성으로 간주된다. SPAZ가 하드웨어 개시된 ZQStart/Latch의 진행 중에 ForceZQCal 요청이 발생하면, 이 캘리브레이션 그룹은 ZQ 커맨드들이 다시 발송되지 않을 수 있다(SPAZ는 ZQ 커맨드들을 나머지 그룹에 발송할 필요가 있다). ForceZQCal을 수신하면, SPAZ 카운터는 재설정되고 그들의 카운트를 0으로부터 시작할 수 있다.
도 7은 스터터 프로시저를 수행하기 위한 방법(700)을 예시한다. 일반적으로, 전술한 바와 같이, SMU는 메모리 제어기의 주기적 ZQCal 타이머와 매칭되는 주기적 사이클에 기초하여 카운터를 유지한다. SMU의 ZQCal 타임아웃 요청시, 단계(710)에서, SMU는 스터터 프로시저 이전에 메모리 제어기에 ForceZQCal 커맨드를 발행한다. 스터터 프로시저 동안 주기적으로, SMU는 단계(720)에서 메모리 제어기에 PPT 요청을 발행한다. 일 양태에 따르면, 그리고 선행 ZQ 캘리브레이션으로 리트레이닝이 발생하는 것을 보장하기 위해, ForceZQCal 커맨드는 단계(730)에서 스터터 프로시저의 레이턴시를 감소시키기 위해 PPT 요청 이전에 발송된다. 일 실시예에서, SMU는 ZQCal 타이머를 구현하지 않고, 대신에 단계(740)에서 각각의 주기적 리트레이닝 이전에 ForceZQCal 커맨드를 제공한다.
도 8은 ZQCal 사이클을 모든 랭크에 대해 개시하기 위해 SPAZ에 의해 지원되는 방법(800)을 예시한다. 방법(800)은, 단계(810)에서, SMU가 ZQ 캘리브레이션을 제어하기 위해, SMU가 ForceZQCal 비트를 설정하는 단계를 포함한다. 단계(820)에서, SPAZ는 ZQStart 및 ZQLatch를 개시하며, 원자성으로 간주된다. SPAZ가 하드웨어 개시된 ZQStart/Latch의 진행 중에 ForceZQCal 커맨드가 발생하면, 이 캘리브레이션 그룹은 SPAZ가 단계(840)에서 ZQ 커맨드들을 나머지 그룹에 발송할 필요가 있을 수 있기 때문에 단계(830)에서 다시 발송된 ZQ 커맨드들을 갖지 않을 수 있다. ForceZQCal 커맨드를 수신하면, SPAZ 카운터는 재설정되고 단계(850)에서 0부터 카운팅을 시작할 수 있다.
SRSM은 리트레이닝을 킥오프하기 위해 SMU에 커맨드를 발송하는 것을 지정하는 제1 비트, PHY가 시퀀스의 일부로서 ZQStart 및 ZQLatch 커맨드들을 발송하는 것을 지정하는 제2 비트를 갖는 2개의 구성 비트들을 사용한다: SMU는 비트들이 어떻게 설정되는지에 기초하여 제공할 기능을 SRSM에 식별할 수 있다. SRSM은 SMU에 의해 설정될 수 있는 2개의 구성 비트들의 상태를 모니터링한다. 제1 비트가 설정되면, 커맨드가 SMU에 발송되어 리트레이닝을 킥오프하고, 제2 비트가 설정되면, SRSM은 PPT 트레이닝 LP2에 대한 인코딩을 PHY에 발송한다.
PHY 로직은 PHY LP2 종료 등과 함께 PG로부터 메모리 제어기 채널의 병렬 종료를 허용하기 위해 AON 도메인에 있고, PHY LP2를 병렬로 발행하는데 필요한 로직이다.
현재 설명된 시스템 및 방법들은 셀프 리프레시 종료 동안 ZQ 캘리브레이션을 발송하는 것을 피하기 위해 셀프 리프레시 진입 전에 기간 ZQ 캘리브레이션을 트리거링하는 것을 허용한다. 본 시스템들 및 방법들에서, 셀프 리프레시 진입 전에 발생하는 ZQ 캘리브레이션은 tZQCal(1us) 동안 트래픽을 차단하지 않는다. 각각의 상황에서 버스 이용률이 향상된다.
시간 기간에 기초하여, SMU는 ZQ 캘리브레이션이 필요한지 여부를 결정하고, SMU는 메모리 제어기에 셀프 리프레시로 들어가도록 알리기 전에 이를 특정할 수 있다. 예를 들어, 시스템이 오랜 시간 동안 전력 상태에 있는 경우, SMU는 ZQ 캘리브레이션이 주기적 리트레이닝으로 개시될 필요가 있는지 여부를 특정할 수 있다. SMU는 ZQStart 및 ZQLatch에 대해 최소 2.06μs 동안 메모리 제어기를 깨어 있도록 한다.
PHY는 ZQ 캘리브레이션이 PHY 리트레이닝에 선행하는지 여부를 특정하기 위해 메모리 제어기 채널에 의해 기록된 구성 비트를 지원할 수 있다. 이 구성 비트 상태는 주기적 리트레이닝 및 주파수 변경 둘 모두 전에 특정될 수 있다.
본 명세서의 개시내용에 기초하여 많은 변형들이 가능하다는 것이 이해되어야 한다. 특징 및 엘리먼트가 특정 조합으로 위에서 설명되었지만, 각각의 특징 또는 엘리먼트는 다른 특징 및 엘리먼트 없이 단독으로 또는 다른 특징 및 엘리먼트를 갖거나 갖지 않는 다양한 조합으로 사용될 수 있다.
도면들에 예시되고 그리고/또는 본 명세서에 설명된 다양한 기능 유닛들(프로세서(102), 입력 드라이버(112), 입력 디바이스들(108), 출력 드라이버(114), 출력 디바이스들(110), 가속화된 프로세싱 디바이스(116), 스케줄러(136), 그래픽 프로세싱 파이프라인(134), 컴퓨팅 유닛들(132), SIMD 유닛들(138), SPAZ(200), 파워 다운 로직(210), 자동 리프레시 로직(220), ZQ(230), 열 로직(240), 백 엔드 큐(250), 및 아비터(260)를 포함하지만 이에 제한되지 않음)은 범용 컴퓨터, 프로세서, 또는 프로세서 코어로서, 또는 범용 컴퓨터, 프로세서, 또는 프로세서 코어에 의해 실행가능한, 비일시적 컴퓨터 판독가능 매체 또는 다른 매체에 저장된 프로그램, 소프트웨어, 또는 펌웨어로서 구현될 수 있다. 제공된 방법들은 범용 컴퓨터, 프로세서, 또는 프로세서 코어에서 구현될 수 있다. 적합한 프로세서들은, 예를 들어, 범용 프로세서, 특수 목적 프로세서, 종래의 프로세서, 디지털 신호 프로세서(DSP), 복수의 마이크로프로세서들, DSP 코어와 연관된 하나 이상의 마이크로프로세서들, 제어기, 마이크로제어기, ASICs(Application Specific Integrated Circuits), FPGAs(Field Programmable Gate Arrays) 회로들, 임의의 다른 유형의 집적 회로(IC), 및/또는 상태 머신을 포함한다. 이러한 프로세서들은 프로세싱된 하드웨어 기술 언어(HDL) 명령어들의 결과들 및 넷리스트들을 포함하는 다른 중간 데이터(이러한 명령어들은 컴퓨터 판독가능 매체 상에 저장될 수 있음)를 사용하여 제조 프로세스를 구성함으로써 제조될 수 있다. 이러한 프로세싱의 결과는 본 개시의 특징을 구현하는 프로세서를 제조하기 위해 반도체 제조 공정에 사용되는 마스크워크일 수 있다.
본 명세서에 제공된 방법들 또는 흐름도는 범용 컴퓨터 또는 프로세서에 의한 실행을 위해 비일시적 컴퓨터 판독가능 스토리지 매체에 통합된 컴퓨터 프로그램, 소프트웨어 또는 펌웨어로 구현될 수 있다. 비일시적 컴퓨터 판독 가능 스토리지 매체의 예로는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 레지스터, 캐시 메모리, 반도체 메모리 디바이스, 내부 하드 디스크 및 이동식 디스크와 같은 자기 매체, 자기 광학 매체, CD-ROM 디스크 및 디지털 다목적 디스크(DVD)와 같은 광학 매체를 포함한다.

Claims (20)

  1. 시스템의 전력 관리 방법으로서,
    이벤트에 진입하기 전에 캘리브레이션을 개시하는 단계;
    이벤트를 종료할 때 그리고 상기 이벤트에 진입하기 전에 캘리브레이션의 상기 개시에 응답하여, 캘리브레이션을 수행하는 단계를 포함하는, 전력 관리 방법.
  2. 제1항에 있어서, 개시하는 단계는 상기 이벤트에 진입하기 전에 캘리브레이션 커맨드를 송신하는 단계를 포함하는, 전력 관리 방법.
  3. 제2항에 있어서, 상기 이벤트는 저전력 모드를 포함하는, 전력 관리 방법.
  4. 제3항에 있어서, 상기 저전력 모드는 메모리의 셀프 리프레시 모드를 포함하는, 전력 관리 방법.
  5. 제2항에 있어서, 상기 캘리브레이션 커맨드는 ForceZQCal 커맨드를 발행하는 것을 포함하는, 전력 관리 방법.
  6. 제5항에 있어서, 시스템 관리 유닛(SMU)은 상기 ForceZQCal 커맨드를 발행하는, 전력 관리 방법.
  7. 제2항에 있어서, 상기 캘리브레이션 커맨드는 스터터 프로시저(stutter procedure)를 개시하는, 전력 관리 방법.
  8. 제2항에 있어서, 상기 이벤트에 대한 요청 이전에 발행된 상기 캘리브레이션 커맨드는 스터터의 레이턴시를 감소시키는, 전력 관리 방법.
  9. 제1항에 있어서, 각각의 주기적 리트레이닝(re-train) 이전에 상기 캘리브레이션을 개시하는 단계를 더 포함하는, 전력 관리 방법.
  10. 제1항에 있어서, 상기 개시하는 단계는 파워 다운, 자동 리프레시, ZQCal(SPAZ)에 대한 상태 머신에 의해 지원되는, 전력 관리 방법.
  11. 초기화 사이클을 개시하는 방법으로서, 상기 방법은,
    초기화 사이클 제어 비트를 설정하는 단계;
    초기화 사이클 시작을 개시하는 단계; 및
    초기화 사이클 시작 커맨드를 수신하면, 카운터를 재설정하여 카운팅을 시작하는 단계를 포함하는, 개시 방법.
  12. 제11항에 있어서, 상기 초기화 사이클은 파워 다운, 자동 리프레시, ZQCal(SPAZ)을 위한 상태 머신에 의해 지원되는, 개시 방법.
  13. 제11항에 있어서, 시스템 관리 유닛(SMU)은 상기 초기화 사이클 제어 비트를 설정하는, 개시 방법.
  14. 제13항에 있어서, 상기 SMU가 상기 초기화 사이클 제어 비트를 설정하는 것은 상기 SMU가 상기 초기화 사이클을 제어할 수 있게 하는 것인, 개시 방법.
  15. 제11항에 있어서, SPAZ는 상기 초기화 사이클 시작을 개시하는, 개시 방법.
  16. 제11항에 있어서, 개시하는 단계는 이벤트에 진입하기 전에 초기화 커맨드를 송신하는 단계를 포함하는, 개시 방법.
  17. 제16항에 있어서, 상기 이벤트는 저전력 모드를 포함하는, 개시 방법.
  18. 제17항에 있어서, 상기 저전력 모드는 메모리의 셀프 리프레시 모드를 포함하는, 개시 방법.
  19. 제11항에 있어서, 시스템 관리 유닛(SMU)이 캘리브레이션 커맨드를 발행하는 경우, 초기화 커맨드들을 중단하는 단계를 더 포함하는, 개시 방법.
  20. 제19항에 있어서, 상기 캘리브레이션 커맨드는 ForceZQCal 커맨드를 발행하는 것을 포함하는, 개시 방법.
KR1020237002176A 2020-07-24 2021-07-12 메모리 캘리브레이션 시스템 및 방법 KR20230039656A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/938,855 2020-07-24
US16/938,855 US11664062B2 (en) 2020-07-24 2020-07-24 Memory calibration system and method
PCT/US2021/041345 WO2022020131A1 (en) 2020-07-24 2021-07-12 Memory calibration system and method

Publications (1)

Publication Number Publication Date
KR20230039656A true KR20230039656A (ko) 2023-03-21

Family

ID=79688570

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237002176A KR20230039656A (ko) 2020-07-24 2021-07-12 메모리 캘리브레이션 시스템 및 방법

Country Status (6)

Country Link
US (2) US11664062B2 (ko)
EP (1) EP4186058A1 (ko)
JP (1) JP2023536056A (ko)
KR (1) KR20230039656A (ko)
CN (1) CN116157866A (ko)
WO (1) WO2022020131A1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116955240B (zh) * 2023-09-15 2023-12-22 西安智多晶微电子有限公司 一种ddr控制器中phy电路的延时校准系统及方法

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5668551A (en) * 1995-01-18 1997-09-16 Analog Devices, Inc. Power-up calibration of charge redistribution analog-to-digital converter
US6473607B1 (en) * 1998-06-01 2002-10-29 Broadcom Corporation Communication device with a self-calibrating sleep timer
US6230274B1 (en) * 1998-11-03 2001-05-08 Intel Corporation Method and apparatus for restoring a memory device channel when exiting a low power state
US7356642B2 (en) * 2004-11-12 2008-04-08 International Business Machines Corporation Deferring refreshes during calibrations in memory systems
US7543163B2 (en) * 2005-01-05 2009-06-02 Exar Corporation Low power method of monitoring and of responsively initiating higher powered intelligent response to detected change of condition
US7456782B2 (en) * 2005-12-29 2008-11-25 Sirf Technology, Inc. Timing calibration for fast signal reacquisition in navigational receivers
US8042022B2 (en) * 2007-03-08 2011-10-18 Micron Technology, Inc. Method, system, and apparatus for distributed decoding during prolonged refresh
JP5355207B2 (ja) * 2009-04-30 2013-11-27 キヤノン株式会社 画像形成装置、画像形成方法及びプログラム
US8307270B2 (en) 2009-09-03 2012-11-06 International Business Machines Corporation Advanced memory device having improved performance, reduced power and increased reliability
JP2011081893A (ja) * 2009-09-11 2011-04-21 Elpida Memory Inc 半導体装置及びこれを備えるデータ処理システム
TW201128347A (en) * 2010-02-11 2011-08-16 Asustek Comp Inc Method of adjusting performance of system memory and computer system
US9342095B2 (en) * 2011-03-02 2016-05-17 Rambus Inc. Timing calibration for multimode I/O systems
TWI489478B (zh) * 2012-05-07 2015-06-21 Etron Technology Inc 共用記憶體電路內的阻抗匹配電路執行初始校正及全時更新模式校正的方法和可於初始校正及全時更新模式校正共用阻抗匹配電路的記憶體電路
KR101980162B1 (ko) * 2012-06-28 2019-08-28 에스케이하이닉스 주식회사 메모리
US9213397B2 (en) * 2012-09-21 2015-12-15 Atmel Corporation Changing power modes of a microcontroller system
US20160034219A1 (en) * 2014-08-04 2016-02-04 Apple Inc. System and method of calibration of memory interface during low power operation
US9436387B2 (en) * 2014-08-18 2016-09-06 Apple Inc. System and method for calibration of a memory interface
US10172092B1 (en) * 2015-07-24 2019-01-01 Marvell International Ltd. Systems and methods for providing a sleep clock on a wireless communications device
US9510289B1 (en) * 2015-11-05 2016-11-29 Silicon Laboratories, Inc. In system calibration of wake up timer
US10585672B2 (en) * 2016-04-14 2020-03-10 International Business Machines Corporation Memory device command-address-control calibration
US10192607B2 (en) * 2016-05-31 2019-01-29 Qualcomm Incorporated Periodic ZQ calibration with traffic-based self-refresh in a multi-rank DDR system
US10198204B2 (en) 2016-06-01 2019-02-05 Advanced Micro Devices, Inc. Self refresh state machine MOP array
US10347306B2 (en) 2016-06-21 2019-07-09 Samsung Electronics Co., Ltd. Self-optimized power management for DDR-compatible memory systems
US10083736B1 (en) * 2016-06-23 2018-09-25 Apple Inc. Adaptive calibration scheduling for a memory subsystem based on calibrations of delay applied to data strobe and calibration of reference voltage
US10175905B2 (en) * 2016-09-13 2019-01-08 Apple Inc. Systems and methods for dynamically switching memory performance states
US10839887B2 (en) 2016-10-31 2020-11-17 Intel Corporation Applying chip select for memory device identification and power management control
US10218363B1 (en) * 2017-07-19 2019-02-26 Verily Life Sciences Llc Background calibration for real-time clock systems
US10872652B2 (en) * 2018-06-19 2020-12-22 Apple Inc. Method and apparatus for optimizing calibrations of a memory subsystem
US11226752B2 (en) * 2019-03-05 2022-01-18 Apple Inc. Filtering memory calibration

Also Published As

Publication number Publication date
US20230368832A1 (en) 2023-11-16
US20220028450A1 (en) 2022-01-27
EP4186058A1 (en) 2023-05-31
CN116157866A (zh) 2023-05-23
JP2023536056A (ja) 2023-08-23
WO2022020131A1 (en) 2022-01-27
US11664062B2 (en) 2023-05-30

Similar Documents

Publication Publication Date Title
Bhati et al. DRAM refresh mechanisms, penalties, and trade-offs
US8656196B2 (en) Hardware automatic performance state transitions in system on processor sleep and wake events
CN110059048B (zh) 基于检测传感器数据的阻抗补偿
US10192607B2 (en) Periodic ZQ calibration with traffic-based self-refresh in a multi-rank DDR system
US8769332B2 (en) Regional clock gating and dithering
KR101746735B1 (ko) 고신뢰성 동작을 위한 메모리 제어기를 갖는 데이터 프로세서 및 방법
KR20190004302A (ko) 자동 리프레시 상태 머신 mop 어레이
US20120185703A1 (en) Coordinating Performance Parameters in Multiple Circuits
KR101576236B1 (ko) Ddr dram 쓰기들을 하는 동안에 사용되지 않는 데이터 바이트들을 삼상태로 만들기 위한 방법, 시스템 및 장치
US20080170456A1 (en) Memory refresh method and system
US11922061B2 (en) Adaptive memory refresh control
US20140177347A1 (en) Inter-row data transfer in memory devices
US20100287391A1 (en) Memory control circuit, control method, and storage medium
US20200066328A1 (en) System and Method for Performing Per-Bank Memory Refresh
KR20220123512A (ko) 메모리 컨텍스트 복원, 더블 데이터 레이트 메모리 트레이닝을 감소시킴으로써 시스템 온 칩의 부트 시간의 감소
US20230368832A1 (en) Memory calibration system and method
US20050198542A1 (en) Method and apparatus for a variable memory enable deassertion wait time
US11113135B2 (en) Memory device and method for handling interrupts thereof
US11226752B2 (en) Filtering memory calibration
US20230112432A1 (en) Dynamic setup and hold times adjustment for memories
US10304530B2 (en) Per-pin compact reference voltage generator
US10642337B2 (en) Active power management in a computing device subsystem based on micro-idle duration
US20230030985A1 (en) Hierarchical state save and restore for device with varying power states
WO2023064729A1 (en) Dynamic setup and hold times adjustment for memories
Vijaya Design and Implementation of CSR for DDR4 Memory Controller