KR20210060639A - 동적 랜덤 액세스 메모리 랭크의 전력 차단 모드로부터의 추론적 종료 - Google Patents

동적 랜덤 액세스 메모리 랭크의 전력 차단 모드로부터의 추론적 종료 Download PDF

Info

Publication number
KR20210060639A
KR20210060639A KR1020217014522A KR20217014522A KR20210060639A KR 20210060639 A KR20210060639 A KR 20210060639A KR 1020217014522 A KR1020217014522 A KR 1020217014522A KR 20217014522 A KR20217014522 A KR 20217014522A KR 20210060639 A KR20210060639 A KR 20210060639A
Authority
KR
South Korea
Prior art keywords
rank
memory controller
low power
dram
power mode
Prior art date
Application number
KR1020217014522A
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 KR20210060639A publication Critical patent/KR20210060639A/ko

Links

Images

Classifications

    • 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
    • G06F13/1689Synchronisation and timing concerns
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • 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/324Power saving characterised by the action undertaken by lowering clock frequency
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3419Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time
    • G06F11/3423Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment by assessing time where the assessed time is active or idle time
    • 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/061Improving I/O performance
    • G06F3/0611Improving I/O performance in relation to response time
    • 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/409Read-write [R-W] circuits 
    • 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
    • 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
    • G11C5/148Details of power up or power down circuits, standby circuits or recovery circuits
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/22Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management 
    • G11C7/222Clock generating, synchronizing or distributing circuits within memory device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • G06F2212/1024Latency reduction
    • 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
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Human Computer Interaction (AREA)
  • Mathematical Physics (AREA)
  • Power Engineering (AREA)
  • Power Sources (AREA)
  • Memory System (AREA)

Abstract

처리 시스템(100)은 메모리 제어기(110)가 DRAM 랭크에 액세스하기 위한 요청(102)을 수신할 예측된 시간에 기초하여 전력 차단 모드와 같은 저전력 모드로부터 동적 랜덤 액세스 메모리(DRAM) 집적 회로 랭크(115)를 선제적으로 종료하는 메모리 제어기를 포함한다. 메모리 제어기는 DRAM 랭크가 저전력 모드로 진입 한 후 DRAM 랭크에 액세스하기 위한 요청이 메모리 제어기에 수신되기까지 얼마나 오래 걸리는지를 추적한다. 액세스 요청들의 타이밍의 기록을 기초로, 메모리 제어기는 저전력 모드에 진입 한 후 각 DRAM 랭크에 액세스하기 위한 요청이 수신될 것으로 예상되는 시간을 반영하여 각 DRAM 랭크에 대해 예측된 시간을 예측한다. 메모리 제어기는 DRAM IC 랭크에 대한 액세스 요청을 수신하기 전에 예측된 시간을 기초로 저전력 모드로부터 DRAM 랭크를 추론적으로 종료한다.

Description

동적 랜덤 액세스 메모리 랭크의 전력 차단 모드로부터의 추론적 종료
컴퓨터 시스템은 메인 메모리에 대해 동적 랜덤 액세스 메모리(DRAM) 집적 회로(IC)들의 어레이를 자주 사용한다. 예를 들어, 기존의 듀얼 인-라인 메모리 모듈(dual in-line memory module, DIMM)은 인쇄 회로 기판에 장착된 DRAM IC들의 세트로 구현된다. DIMM은 하나 이상의 랭크(rank)들로 구성되며, 각 랭크는 동일한 제어 라인 또는 칩 선택(chip select)에 연결된 DRAM IC들의 세트이며, 따라서 이들은 메모리 제어기에 의해 동시에 액세스된다. 에너지 효율성을 높이기 위해, DRAM IC들은, 활성, 대기, 낮잠(nap), 전력 차단 및 자체-새로고침과 같은, 다수의 전력 상태들에 놓일 수 있다. 메모리 제어기는 칩 선택을 통해 랭크별(rank-by-rank basis)로 복수의 DRAM 랭크들의 전력 상태들을 제어한다. 예를 들어, 전력 차단은 DRAM들의 저전력 상태로, 활성 전력 상태의 일부(예를 들어, 1 %)에 불과한 전력 소비를 갖지만, 활성 상태로 다시 진입하기 위한 클럭 동기화를 위해 지연이 필요하다. 다른 저전력 모드들은 서로 다른 진입 및 종료 지연들을 갖는다. 메모리 제어기에서 DRAM 랭크에 대한 액세스 요청에 갭(gap)이 발생하면 메모리 제어기는 전력 차단 모드로 들어가기 위한 조건이 충족되었는지 확인한 다음 칩 선택을 통해 전력 차단 진입 커맨드를 DRAM 랭크로 보낸다. 메모리 제어기가 프로세서 코어로부터 DRAM 랭크에 액세스하기 위한 새로운 요청을 수신하면, 메모리 제어기는 전력 차단 종료 커맨드를 DRAM 랭크로 보낸다. 그러나 메모리 제어기는 DRAM에 액세스하기 전에 DRAM 랭크가 전력 차단 모드를 종료하고 활성 모드로 전환될 때까지 기다려야 하므로, 전력 차단 모드 사용에 대한 레이턴시 패널티가 발생한다.
일 양태에 따르면, 방법은, 메모리 제어기에서, 저전력 모드의 동적 랜덤 액세스 메모리(DRAM) 집적 회로의 제1 랭크에 액세스하기 위한 액세스 요청이 메모리 제어기에서 수신될 것으로 예상되는 시간을 예측하는 단계를 포함한다. 방법은 예측된 시간 전에 저전력 모드로부터 제1 랭크를 종료하는 단계를 더 포함한다. 일 실시 예에서, 예측하는 단계는 메모리 제어기에서 제1 랭크에 액세스하기 위한 액세스 요청의 타이밍의 기록에 기초한다. 예측하는 단계는 또한 제1 랭크가 저전력 모드로 진입하는 제1 시간과 메모리 제어기가 제1 랭크에 액세스하기 위한 액세스 요청을 수신하는 제2 시간 사이의 평균 클럭 사이클 수에 기초할 수 있다. 일 실시 예에서, 저전력 모드를 종료하는 단계는 액세스 요청이 메모리 제어기에서 수신될 예측된 시간 이전에 미리 결정된 수의 클럭 사이클 동안 저전력 모드를 종료하는 단계를 포함한다. 이 경우, 미리 결정된 수의 클럭 사이클은 제1 랭크에 대한 저전력 모드 종료 레이턴시에 기초할 수 있다. 일 실시 예에서, DRAM 집적 회로는 복수의 랭크들을 포함하고, 방법은 메모리 제어기에서 저전력 모드의 DRAM의 각 랭크에 액세스하기 위한 액세스 요청이 메모리 제어기에서 수신될 시간을 예측하는 단계, 및 랭크에 대응되는 예측된 시간 이전에 저전력 모드에서 각 랭크를 종료하는 단계를 더 포함한다. 일 실시 예에서, 방법은 메모리 제어기에서, 제1 랭크에 의한 저전력 모드로부터의 이전 종료와 관련된 레이턴시 페널티에 기초하여 예측된 시간을 조정하는 단계를 더 포함한다.
또 다른 양태에 따르면, 제1 랭크에 액세스하기 위한 액세스 요청을 수신하기 전에 그리고 메모리 제어기가 제1 랭크에 액세스하기 위한 액세스 요청을 수신할 예측된 시간에 응답하여 방법은 메모리 제어기에서 DRAM 집적 회로의 제1 랭크를 저전력 모드에서 종료하는 단계를 포함한다. 방법은 메모리 제어기가 제1 랭크에 액세스하기 위한 액세스 요청을 수신할 시간을 예측하는 단계를 더 포함할 수 있으며, 상기 예측하는 단계는 제1 랭크에 액세스하기 위한 액세스 요청이 메모리 제어기에서 수신되기 전에 제1 랭크가 저전력 모드에 진입한 후 얼마나 오래되었는지의 기록에 기초한다. 일 실시 예에서, 상기 예측하는 단계는 제1 랭크가 저전력 모드에 진입하는 제1 시간과 메모리 제어기가 제1 랭크에 액세스하기 위한 액세스 요청을 수신하는 제2 시간 사이의 평균 클럭 사이클 수에 기초한다. 일 실시 예에서, 저전력 모드를 종료하는 단계는 액세스 요청이 메모리 제어기에서 수신될 예측된 시간 이전에 미리 결정된 수의 클럭 사이클 동안 저전력 모드를 종료하는 단계를 포함한다. 이 경우, 미리 결정된 클럭 사이클 수는 제1 랭크에 대한 저전력 모드 종료 레이턴시를 기초로 한다. 일 실시 예에서, DRAM 집적 회로는 복수의 랭크들을 포함하고, 방법은 메모리 제어기에서 저전력 모드에서 DRAM 집적 회로의 각 랭크에 액세스하기 위한 액세스 요청이 메모리 제어기에서 수신될 시간을 예측하는 단계, 랭크에 대응하는 예측된 시간 이전에 저전력 모드에서 각 랭크를 종료하는 단계를 더 포함한다. 일 실시 예에서, 방법은 메모리 제어기에서, 제1 랭크에 의한 저전력 모드로부터의 이전 종료와 관련된 레이턴시 페널티에 기초하여 예측된 시간을 조정하는 단계를 더 포함한다.
또 다른 양태에 따르면, 시스템은 복수의 랭크들을 포함하는 DRAM 집적 회로에 결합하도록 구성된 메모리 제어기를 포함한다. 메모리 제어기는 저전력 모드의 DRAM 집적 회로의 제1 랭크에 액세스하기 위한 액세스 요청이 메모리 제어기에서 수신될 시간을 예측하고, 예측된 시간 전에 저전력 모드에서 제1 등급을 종료한다. 일 실시 예에서, 메모리 제어기는 메모리 제어기에서 제1 랭크에 액세스하기 위한 액세스 요청이 수신되기 전에 제1 랭크가 저전력 모드에 진입 한 후 얼마나 오래되었는지에 대한 기록을 기초로 시간을 예측한다. 이 경우, 메모리 제어기는 또한 액세스 요청이 메모리 제어기에서 수신될 것으로 예상되는 시간 이전에 미리 결정된 수의 클럭 사이클 동안 저전력 모드로부터 제1 랭크를 종료할 수 있다. 미리 결정된 수의 클럭 사이클은 제1 랭크에 대한 저전력 모드 종료 레이턴시에 기초할 수 있다. 일 실시 예에서, 메모리 제어기는 또한 저전력 모드의 DRAM 집적 회로의 각 랭크에 액세스하기 위한 액세스 요청이 메모리 제어기에서 수신될 시간을 예측하고, 랭크에 대응되는 예측된 시간 전에 저전력 모드에서 각 랭크를 종료한다. 실시 예에서, 메모리 제어기는 또한 제1 랭크에 의한 저전력 모드의 이전 종료와 관련된 레이턴시 패널티에 기초하여 예측된 시간을 조정한다.
첨부된 도면을 참조함으로써 본 개시는 더 잘 이해될 수 있고, 당업자에게 명백한 수 많은 특징 및 이점이 있을 수 있다. 다른 도면들에서 동일한 참조 번호를 사용하는 것은 유사하거나 동일한 항목들을 나타낸다.
도 1은 일부 실시 예들에 따른 DRAM의 랭크들의 전력 차단으로부터의 추론적 종료(speculative exit)를 이용하는 메모리 제어기를 포함하는 처리 시스템의 블록도이다.
도 2는 일부 실시 예들에 따른 도 1의 메모리 제어기의 전력 관리 유닛 및 예측 유닛을 예시하는 블록도이다.
도 3은 일부 실시 예들에 따른 전력 차단 모드로부터의 추론적 종료로 DRAM의 랭크의 전력 차단 모드/활성 모드 전환을 예시하는 다이어그램이다.
도 4는 일부 실시 예들에 따른 DRAM의 랭크의 전력 차단 모드를 추론적으로 종료하는 방법을 나타내는 흐름도이다.
도 1 내지 도 4는 DRAM 랭크의 메모리 제어기가 DRAM 랭크에 액세스하기 위한 요청을 수신할 예상 시간을 기초로 전력 차단 모드와 같은 저전력 모드로부터 DRAM 랭크를 선제적으로(preemptively) 종료하기 위한 시스템 및 기술을 보여준다. 메모리 제어기는 DRAM 랭크에 액세스하기 위한 요청이 메모리 제어기에 수신되기 전까지 DRAM 랭크가 저전력 모드로 진입한 후 시간을 추적한다. 액세스 요청의 타이밍의 기록(history)에 기초하여, 메모리 제어기는 낮은 전력 모드에 진입한 후 각 DRAM 랭크에 액세스하기 위한 요청이 수신될 것으로 예상되는 시간을 반영하여 각 DRAM 랭크에 대해 예상 시간을 예측한다. 메모리 제어기는 DRAM 랭크에 액세스하기 위한 요청을 수신하기 전에 예측된 시간에 기초하여 DRAM 랭크에 저전력 모드 종료 커맨드를 추론적으로 전송한다. 일부 실시 예들에서, 메모리 제어기는 DRAM 랭크가 저전력 모드를 종료하고 다시 활성 상태로 전환하는 데 필요한 클럭 사이클들의 수를 기초로 예측된 시간 이전에 저전력 모드 종료 커맨드를 전송한다.
메모리 제어기는 각 DRAM 랭크에 액세스하기 위한 요청이 메모리 제어기에 수신되기 전에 각 DRAM 랭크가 선제적으로 저전력 모드를 종료 한 후 얼마나 오래되었는지 모니터링하고, 액세스 요청의 기록을 기초로 각 DRAM 랭크에 대한 예측 시간을 조정한다. 유사하게, 메모리 제어기가 예측된 시간 이전에 DRAM 랭크에 대한 요구된 액세스 요청을 수신하여, 메모리 제어기는 DRAM 랭크가 저전력 모드를 종료하고 다시 활성 상태로 전환될 때까지 기다려야 하는 경우(예를 들어, 저전력 모드 종료 레이턴시 또는 전력 차단 종료 레이턴시), 메모리 제어기는 영향을 받는 DRAM 랭크에 대해 저전력 모드로부터 이전에 종료하는 동안 발생한 전력 차단 종료 레이턴시 패널티를 기초로 예측 시간을 조정한다.
도 1은 일부 실시 예에 따른 DRAM의 랭크들의 전력 차단 모드로부터의 추론적 종료를 이용하는 메모리 제어기(110)를 포함하는 처리 시스템(100)의 블록도를 도시한다. 처리 시스템(100)은 예를 들어 서버, 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 컴퓨터, 휴대폰, 게임 콘솔 등을 포함한다. 처리 시스템(100)은 프로세서 코어(105)에서 실행되는 명령어들에 의해 액세스 될 데이터를 저장하는 메모리 모듈들로 구성된 메모리 서브시스템을 포함한다. 메모리 서브시스템은 명령어들을 실행하여 액세스 될 수 있는 모든 데이터를 저장하기 위한 계층의 상부에서의 메인 메모리 및 메인 메모리에 저장된 데이터의 서브세트들을 저장하기 위한 메모리 계층의 하위 레벨들에서의 하나 이상의 캐시들을 갖는 메모리 계층 구조로 구성된다. 프로세서 코어(105)에 의해 요구되는 데이터가 메모리 계층의 캐시에서 발견되지 않는 경우, 캐시 제어기는 메모리 제어기에 메모리 액세스 요청을 발행하여 메인 메모리에서 데이터를 검색한다. 도시된 예에서, 처리 시스템(100)은 메모리 제어기(110)에 연결된 하나 이상의 프로세서 코어들(105) 및 DRAM IC들의 두 랭크들, 랭크 A(120) 및 랭크 B(130)을 포함하는 DIMM(115)을 포함한다. 일부 실시 예들에서, 메모리 제어기(110)는 DRAM IC들의 랭크들을 세 개 이상 포함한다.
하나 이상의 프로세서 코어들(105)은 중앙 처리 유닛(CPU)들 또는 그래픽 처리 유닛(GPU)들, 또는 이들의 조합으로 구현되고, 프리페처(prefetcher)(미도시), 정수 실행 단위 또는 산술 논리 유닛(ALU)(미도시), 부동 소수점 유닛(FPU)(미도시), 퇴직 유닛(미도시) 등과 같은, 프로세서 코어(105)에 의해 실행되는 운영 시스템 또는 어플리케이션으로부터 명령어들을 실행하는 데 사용되는 다양한 단계들 또는 구성 요소들을 포함한다. 하나 이상의 프로세서 코어들(105)은, DIMM(115)에 대한 메모리 액세스보다 짧은 레이턴시로 실행 파이프 라인에 의해 액세스될 수 있는, 명령어들을 포함하는, 데이터를 일시적으로 저장하기 위한 캐시 계층을 형성하는 하나 이상의 캐시들(미도시)을 더 포함한다.
메모리 제어기(110)는, DIMM(115)과의 인터페이싱을 포함하여, 하나 이상의 프로세서 코어들(105)에 대한 다양한 인터페이스 기능을 제공한다. 또한, 메모리 제어기(110)는 DIMM(115)에 대한 전력 관리 기능을 제공한다. 이를 위해, 메모리 제어기(110)는 예측 유닛(140)에 결합된 전력 관리 유닛(145)을 포함한다. 전력 관리 유닛(145)은 DIMM(115)의 칩 선택(112)을 통해 랭크 A(120) 및 칩 선택(114)을 통해 랭크 B(130)의 전력 상태를 제어한다.
적어도 하나의 실시 예에서, DIMM(115)의 랭크 A(120) 및 랭크 B(130)는 적어도 두 개의 일반 모드들을 갖는다: 랭크 A(120)의 DRAM IC들(121-128) 및 랭크 B(130)의 DRAM IC들(131-138)이 메모리 액세스 요청을 처리하는(servicing), 예를 들어 판독 및 기록 트랜잭션을 수행하는 것과 같은 활성 모드 및 랭크 A(120)의 DRAM IC들(121-128) 및 랭크 B(130)의 DRAM IC들(131-138)이 메모리 액세스 요청을 처리하지 않고 전력 소비가 활성 모드 동안 전력 소비보다 현저히 낮은, 전력 차단 모드. 활성 모드에 있을 때, 랭크 A(120)의 DRAM IC들(121-128) 및 랭크 B(130)의 DRAM IC들(131-138)은, 전력 관리 유닛(145)에 의해 제어되는 클럭 주파수 및 전압의 대응하는 쌍(corresponding pairing)들로, 임의의 다수의 서로 다른 성능 상태들 또는 동작 포인트들을 사용한다. DRAM 랭크가 유휴 상태일 때, 전력 관리 유닛(145)이, DRAM 랭크에 대한 액세스 요청에서 예상되는 갭과 같은, 전력 차단 모드에 대한 조건이 충족된다고 결정하면 전력 관리 유닛(145)은 DRAM 랭크를 전력 차단 모드에 놓는다. 클럭 재동기화를 위한 지연과 관련된 레이턴시와 같은 에너지 비용 및 성능 비용 측면에서 전력 차단 모드의 진입 및 종료와 관련된 오버 헤드가 존재한다. 예를 들어, 메모리 제어기(110)가 전력 차단 모드에 있는 DRAM 랭크에 액세스하기 위한 요청을 수신하면(즉, 전력 차단 모드로부터의 "요구된(on-demand)" 종료), 메모리 제어기(110)는 전력 차단 종료(power down exit, PDX) 커맨드를 전송하여 판독 또는 기록 커맨드를 DRAM 랭크로 보내기 전에 DRAM 랭크가 재동기화되고 활성 모드로의 전환을 완료하기 위한 다수의 클럭 사이클들(종료 전력 차단(exit power down, tXP) 사이클들)을 기다린다. 따라서 전력 차단 모드로부터의 요구된 종료는 특히 "로딩되지 않은(unloaded)" 또는 "가볍게 로딩된(lightly loaded)"시나리오들에서 DRAM에 액세스하기 위한 요청에 추가적인 대기 시간을 더한다. 로딩되지 않은 시나리오는 메모리 제어기(110)가 시간의 갭 후에 DRAM IC(121-128 또는 131-138)에 액세스하기 위한 요청을 수신할 때 발생한다(예를 들어, 프로세서가 절전 모드(sleep mode)에서 깨어 난 후와 같이 유휴 상태를 종료하는 경우). 가볍게 로딩된 시나리오는 메모리 제어기(110)가 DRAM IC(121-128 또는 131-138)에 대한 요청들을 비교적 적게 수신하여 메모리 DIMM(115)의 레이턴시가 전체 레이턴시에서 중요한 요소가 될 때 발생한다.
DRAM 랭크가 전력 차단 모드에 있는 동안 DRAM 랭크에 액세스하기 위한 요청을 수신하는 데 따른 패널티를 완화하기 위해, 예측 유닛(140)은 각각의 DRAM 랭크에 대한 현재의 전력 차단 모드의 지속 시간(duration)을 예측하고, 따라서 전력 차단 모드로부터의 종료가 언제 발생할지 예측한다(즉, DRAM 랭크를 사용한 전력 차단 모드의 반복이 진입되었거나 곧 진입됨). 예측 유닛(140)은 현재의 전력 차단 모드의 지속 시간을 추정하거나 달리 예측하는데 다양한 예측 방법론들 중 임의의 것을 사용한다. 예를 들어, 일부 실시 예들에서, 예측 유닛(140)은 각 DRAM 랭크에 대해 이전에 발생한 다수의 전력 차단 모드들의 각각의 지속 시간(DRAM 랭크가 전력 차단 모드에 진입하는 제1 시간으로부터 메모리 제어기(110)가 프로세서 코어(105)로부터 DRAM 랭크에 액세스하기 위한 요청을 수신하는 제2 시간까지) 에 관한 정보를 저장하고 분석한다. 각각의 DRAM 랭크에 대한 지속 시간 정보는 빈(bin)들에 배열되고 예측 유닛(145)은 이 비닝된 정보(binned information)에 기초하여 각 DRAM 랭크에 대한 현재의 전력 차단 모드의 지속 시간을 예측한다. 다른 실시 예들에서, 예측 유닛(140)은, 각 DRAM 랭크에 대한 모든 전력 차단 모드들에 대해 미리 정의된 평균 지속 시간을 가정하는 것, 전력 차단 모드로 진입하고 전에 DRAM 랭크에 액세스하는 기록과 같은 다양한 기준을 기초로 정의된 평균 전력 차단 모드 지속 시간으로 미리 채워진 룩업 테이블 또는 기타 데이터 구조를 사용하는 것 등과 같은, 다른 예측 프로세스를 사용한다.
예측 유닛(140)에서 제공하는 예측된 전력 차단 모드 지속 시간을 이용하여, 전력 관리 유닛(145)은 DRAM 랭크에 액세스하기 위한 요청을 수신하기 전에 전력 차단 모드로부터 각 DRAM 랭크를 추론적으로 종료 할 시기를 결정하여 전력 차단 모드로부터 요구된 종료와 관련된 레이턴시를 줄인다. 적어도 하나의 실시 예에서, 전력 관리 유닛(145)은 예측된 전력 차단 모드 지속 시간 이전에 종료 전력 차단 프로세스를 트리거하여 DRAM 랭크가, 예상된 전력 차단 모드 지속 시간이 종료될 때, 수신 메모리 액세스 요청들을 처리하기 위해 재동기화하고 활성 상태로 전환하는 데 필요한 tXP 사이클들의 수를 이미 통과하였을 수 있다.
설명을 위해, 동작 시, 프로세서 코어(105)는 DIMM(115)에 저장된 데이터 및 명령어에 대한 액세스를 요청하는 액세스 요청(102)을 메모리 제어기(110)에 전송한다. 메모리 제어기(110)의 예측 유닛(140)은 랭크 A(120)의 DRAM IC들(121-128) 및 랭크 B(130)의 DRAM IC들(131-138)에 대한 액세스를 추적한다. 랭크 A(120) 및 랭크 B(130) 각각에 액세스하기 위한 요청들의 패턴들을 기초로, 전력 관리 유닛(145)은 DRAM 랭크에 대한 액세스 요청의 예상 갭과 같은 전력 차단 모드에 대한 조건이 유휴 랭크에 대해 충족되는지 여부를 결정한다. DRAM 랭크가 유휴 상태일 때, 전력 관리 유닛(145)이 전력 차단 모드에 대한 조건이 충족된다고 결정하는 경우 전력 관리 유닛(145)은 DRAM 랭크를 전력 차단 모드에 놓는다.
DRAM 랭크가 전력 차단 모드에 있는 동안, 예측 유닛(140)은 메모리 제어기(110)가 프로세서 코어(105)로부터 전력 차단 모드에 있는 랭크의 DRAM IC에 액세스하기 위한 요청을 수신하기 전에 전력 차단 모드의 지속 시간에 관한 정보를 저장하고 분석한다. 랭크가 전력 차단 모드로 진입 한 후, 랭크에 액세스하기 위한 요청이 메모리 제어기(110)에 수신되기까지의 시간의 이 기록을 기초로, 예측 유닛(140)은 랭크에 액세스하기 위한 요청이 메모리 제어기(110)에서 수신되기 전에 그 랭크에 대한 다음 전력 차단 모드가 얼마나 오래 지속될 것인지를 예측한다. 일부 실시 예들에서, 예측 유닛(140)은 랭크가 전력 차단 모드로 진입한 시간과 메모리 제어기가 랭크에 액세스하기 위한 요청을 수신한 시간 사이의 평균 클럭 사이클 수를 기초로 랭크에 대한 전력 차단 모드 지속 시간을 예측한다.
랭크에 대한 전력 차단 모드의 예측 지속 시간을 기초로, 전력 관리 유닛(145)은 메모리 제어기(110)가 랭크에 액세스하기 위한 요청을 수신할 예측 시간 이전에 랭크에 선제적 PDX 커맨드를 전송한다. 메모리 제어기(110)는 랭크가 재동기화되어 액티브 상태로 전환하는 데 필요한 tXP 사이클들의 횟수를 기다린 후, 메모리 제어기(110)는 랭크에 대한 다음 액세스 요청을 기초로 랭크에 액세스한다. 예측 유닛(140)은 메모리 제어기(110)가 랭크에 액세스하기 위한 요청을 수신하기 전에 선제적 PDX 커맨드에 기초하여 전력 차단 모드를 종료한 후 얼마나 지났는지를 모니터링한다. 활성 모드로의 전환과 관련된 레이턴시(또는 반대로 전력 차단 모드로부터 너무 이른 선제적 종료)를 기초로, 예측 유닛(140)은 랭크에 대한 예측된 전력 차단 모드 지속 시간을 조정한다.
예측 유닛(140)은 복수의 DRAM 랭크들의 각 DRAM 랭크에 대한 예측된 전력 차단 모드 지속 시간을 생성하고 조정한다. 예를 들어, 일부 실시 예들에서, 처리 시스템(100)은 복수의 DIMM들(115)을 포함하고, 각각의 DIMM(115)은 하나 이상의 DRAM 랭크들(120, 130)을 포함한다. DIMM(115) 내의 각각의 DRAM 랭크(120, 130)는 특정 DRAM 랭크(120, 130)에 대한 액세스 패턴에 기초하여 특정 예측된 전력 차단 모드 지속 시간을 갖는다. 따라서, 예측 유닛(140)은 복수의 DRAM 랭크들(120, 130) 각각에 대응하는 예측된 전력 차단 모드 지속 시간을 생성하고 조정한다.
도 2는 일부 실시 예들에 따른 도 1의 메모리 제어기(110)의 전력 관리 유닛(145) 및 예측 유닛(140)을 예시하는 블록도이다. 도시된 예에서, 예측 유닛(140)은 다양한 DRAM 랭크들(120, 130)로 향하는 액세스 요청들의 표시(indication)들을 수신하도록 결합된 활동 모니터(212)를 포함한다. 활동 모니터(212)에 의해 모니터링되는 활동의 유형들은 DRAM IC들(121-128, 131-138)에 위치한 메모리 어드레스들에 대한 판독 및 기록 요청들을 포함한다. 예측 유닛(140)는 복수의 타이머들(213)을 더 포함한다. 활동이 모니터링될 DRAM 랭크들의 각각에 대해 하나의 타이머(213)가 포함될 수 있다. 일부 실시 예들에서, 타이머들(213)의 각각은 활동이 활동 모니터(212)에 의해 그의 대응하는 DRAM 랭크로부터 검출될 때 리셋된다. 리셋된 후, 주어진 타이머(213)는 DRAM 랭크에 대한 가장 최근 액세스 요청 이후 시간을 추적하기 시작한다. 각각의 타이머(213)는 활동이 그의 대응하는 DRAM 랭크에서 가장 최근에 검출된 이후의 시간을 보고한다. DRAM 랭크를 전력 차단 모드에 놓은 후, 전력 관리 유닛(145)은 주어진 DRAM 랭크가 전력 차단 모드에 있음을 활동 모니터(212)에 신호한다. 활동 모니터(212)는 대응하는 타이머(213)로부터 수신된 시간 값에 기초하여 DRAM 랭크가 전력 차단 모드를 종료하고 액세스 요청 처리를 재개할 때까지 DRAM 랭크가 전력 차단 모드에 있는 시간을 기록한다.
DRAM 등급이 전력 차단 모드에 있는 후 액세스 요청 처리를 재개하면, 활동 모니터(212)는 이벤트 스토리지(214)에 DRAM 랭크에서 전력 차단 모드의 지속 시간을 기록한다. 도시된 실시 예에서, 이벤트 스토리지(214)는, 전력 차단 모드 시간이 DRAM 랭크들 각각에 대해 모니터링되고 있기 때문에, 전력 차단 모드의 가장 최근 N 개의 인스턴스(instance)들의 각각에 대한 지속 시간을 저장한다. 일 실시 예에서, 이벤트 스토리지(214)는, 각각의 DRAM 랭크에 대해 하나씩, 복수의 FIFO(first-in, first-out) 메모리들을 포함한다. 이벤트 스토리지(214)의 각 FIFO는 그의 대응하는 DRAM 랭크에 대한 전력 차단 모드의 가장 최근 N 인스턴스들의 지속 시간을 저장한다. 전력 차단 모드들의 새로운 인스턴스의 지속 시간들이 주어진 DRAM 랭크에 대응하는 FIFO에 기록됨에 따라, 일부 실시 예들에서 가장 오래된 전력 차단 모드 인스턴스에 대한 지속 시간이 덮어쓰기 된다.
일부 실시 예들에서, 비닝 스토리지(binning storage)(215)(이벤트 스토리지(214)가 있는 단일 조인트 스토리지로 설명 됨)는, 각각의 DRAM 랭크에 대해, 전력 차단 모드 지속 시간들의 분포를 생성하기 위해 대응하는 빈들에 전력 차단 모드 지속 시간들의 카운트를 저장한다. 비닝 스토리지(215)는 이벤트 스토리지(214)로부터 기록된 지속 시간들을 판독하고 각 빈에 대한 카운트 값들을 생성하는 로직을 포함한다. 전력 차단 모드의 추가 인스턴스들의 발생으로 이전 지속 시간 데이터가 새로운 지속 시간에 의해 덮어쓰기 됨에 따라, 비닝 스토리지(215)의 로직은 빈들의 카운트 값들을 업데이트한다. 예측 로직(218)은 비닝 스토리지(215)에 결합된다. 주어진 DRAM 랭크에 대한 전력 차단 모드 지속 시간의 분포에 기초하여, 예측 로직(218)은 현재 전력 차단 모드의 지속 시간에 대한 예측을 생성한다. 일부 실시 예들에서, 예측 로직(218)은 주어진 DRAM 랭크에 대한 전력 차단 모드 지속 시간들의 평균에 기초하여 그 DRAM 랭크에 대한 현재 전력 차단 모드의 지속 시간에 대한 예측을 생성한다.
전력 차단 모드 지속 시간에 대한 예측 외에도, 예측 로직(218)은 또한 전력 차단 모드 지속 시간 예측들에 기초하여 전력 차단 모드가 종료될 수 있는 지정된 시간들에 대한 표시들을 생성할 수 있다. 예를 들어, 일 실시 예에서, DRAM 랭크가 전력 차단 모드에 놓이는 경우, 전력 관리 유닛(145)은 DRAM 랭크가 예측된 전력 차단 모드 지속 시간에 기초하여 지정된 시간에 전력 차단 모드를 종료하도록 한다. 이 전력 차단 모드 종료는 전력 차단 모드 종료를 유발하는 다른 외부 이벤트(예를 들어, 메모리 제어기(110)에 의해 그 DRAM 랭크에 대한 액세스 요청 수신)없이 호출된다. 더욱이, 일부 실시 예들에서, 전력 차단 모드의 종료는 예상되는 전력 차단 모드 지속 시간이 완전히 경과하기 전에 호출된다. 전력 차단 모드 지속 시간의 예측이 합리적으로 정확하다면, 전력 차단 모드의 선제적 종료는 다양한 성능 이점을 제공한다. 예를 들어, 메모리 제어기(110)가 DRAM 랭크에 대한 다음 액세스 요청을 수신하기 전에 재동기화 및 활성 모드로의 전환이 발생하고, 따라서 DRAM 랭크가 전력 차단 모드로부터의 반응적 종료의 경우에서 그러하는 것보다 더 빨리 액세스 요청 처리를 시작할 수 있다.
예측 로직(218)에 의해 이루어진 예측들은 전력 관리 유닛(145)의 결정 유닛(205)으로 전달된다. 도시된 실시 예에서, 결정 유닛(205)은 다른 정보와 함께 전력 차단 모드 시간의 예측을 사용하여 전력 차단 모드에서 DRAM 랭크를 선제적으로 종료할 시기를 결정한다. 전력 관리 유닛(145)은 전력 차단 진입(power down entry, PDE) 및 전력 차단 종료(power down exit, PDX) 커맨드를 DRAM 랭크들에 전송하기 위한 모드 선택기(207)를 더 포함한다. 모드 선택기(207)는 결정 유닛(205)에 의해 제공된 정보에 기초하여 커맨드를 생성한다.
도 3은 일부 실시 예들에 따른 전력 차단 모드로부터의 추론적 종료와 함께 도 1의 DRAM 랭크의 전력 차단 모드/활성 모드 전환을 예시하는 다이어그램이다. 특히, 도 3에 도시된 타임라인(timeline)(300)은 메모리 제어기(110)가 전력 차단 모드를 위한 조건이 충족되었다고 결정하는 것에 응답하여, DRAM 랭크를 전력 차단 모드로 전환할 때 그런 다음 들어오는 액세스 요청을 처리하기 위해 DRAM 랭크를 전력 차단 모드에서 활성 모드로 전환할 때 발생하는 일련의 이벤트들 또는 단계들을 나타낸다.
시간(t0)에서, DRAM 랭크에 대한 전력 차단 모드로 진입하기 위한 조건이 충족되는 것으로 결정되면, 메모리 제어기(110)는 전력 차단 모드로 전환하기 위해 DRAM 랭크를 준비한다. 단계(301)에서 DRAM 랭크는 DRAM 랭크에 대한 아직 처리되지 않은(outstanding) 액세스 요청 처리를 완료한다. 시간(t1)에서, 메모리 제어기(110)는 단계(302)에서 DRAM 랭크의 히스테리시스(hysteresis)를 피하기 위해 다수의 유휴 사이클들을 기다린다. 시간(t2)에서, 메모리 제어기(110)의 전력 관리 유닛(245)의 모드 선택기(207)는 PDE 커맨드를 DRAM 랭크로 전송하여, 단계(305)에서 전력 차단 모드로 들어가도록 DRAM 랭크를 트리거한다.
도 3의 특정 예에서, 예측 유닛(140)은 시간(t5)에서 DRAM 랭크에 대한 다음 액세스 요청이 메모리 제어기(110)에 의해 수신될 것으로 예상되는 시간에 기초하여 전력 차단 모드로부터의 종료를 예측한다. 예측된 종료 시간을 기초로, 결정 유닛(205)은 DRAM 랭크가 예측된 종료 이전의 미리 결정된 수의 사이클들인 시간(t3)에서 전력 차단 모드를 선제적으로 종료하는 것이라고 결정한다. 모드 선택기(207)는 전력 차단 모드를 종료하기 위한 결정 유닛(205)에 의한 결정에 기초하여 DRAM 랭크에 대한 PDX 커맨드를 생성한다. PDX 커맨드에 기초하여, DRAM 랭크는 재동기화 및 활성 모드로 전환하는 프로세스를 시작한다. 메모리 제어기(110)는 DRAM 랭크가 활성 모드로의 전환을 완료하기 위한 시간 t4까지 미리 결정된 수의 tXP 사이클들 동안 단계(306)에서 대기한다. 예측된 종료 전에 미리 결정된 수의 tXP 사이클들을 PDX 커맨드에 전송함으로써, 메모리 제어기(110)는 활성 모드로의 전환이 완료되기 전에 메모리 제어기(110)가 DRAM 랭크에 대한 액세스 요청을 수신할 경우 PDX 페널티를 발생시킬 가능성을 피하거나 감소시킨다. 따라서, 시간(t4)에서 시작하여, DRAM 랭크는 단계(309)에서 액세스 요청을 처리할 준비가 된 활성 상태에 있다.
도 4는 일부 실시 예들에 따른 도 1의 DRAM 랭크의 전력 차단 모드를 추론적으로 종료하기 위한 방법(400)을 예시하는 흐름도이다. 블록(402)에서, 메모리 제어기(110)의 예측 유닛(140)은 전력 차단 모드로의 DRAM 랭크의 진입 이후 DRAM 랭크에 대한 액세스 요청의 기록을 추적한다. 블록(404)에서, 전력 관리 유닛(145)의 모드 선택기(207)는 결정 유닛(205)이 DRAM 랭크에 대한 전력 차단 모드에 대한 조건이 충족된다고 결정하는 것에 응답하여 PDE 커맨드를 DRAM 랭크에 전송한다. 블록(406)에서, 예측 유닛(140)은 DRAM 랭크에 대한 액세스 요청을 수신하는 메모리 제어기(110)에 의해 활성 모드로 다시 전환되기 전에 DRAM 랭크가 전력 차단 모드에 있을 지속 시간을 예측한다. 언급된 바와 같이, 예측 유닛(140)은 이 지속 시간을 예측하기 위해 다양한 예측 종료 기술들 중 임의의 것을 사용하며, 예를 들어 DRAM 랭크에 대한 이전 전력 차단 모드의 지속 시간 또는 이전 N 개의 전력 차단 모드 지속 시간들의 평균을 기초로 한다.
예측 유닛(140)로부터 예측된 전력 차단 모드 지속 시간 정보와 함께, 블록(408)에서 전력 관리 유닛(145)은 전력 차단 모드로부터의 예측된 종료 이전에 지정된 시간에 만료되도록 설정된 카운트다운 타이머를 시작한다. 전술한 바와 같이, 예측된 종료 이전의 이 지정된 시간은 고정된 시간, 미리 결정된 수의 클럭 사이클들 등일 수 있다. 카운트다운 시간이 만료되면, 전력 관리 유닛(145)은 예측된 전력 차단 모드 지속 시간에 기초하여 PDX 커맨드를 DRAM 랭크로 전송함으로써 블록(410)에서 전력 차단 모드로부터 DRAM 랭크를 선제적으로 종료한다. 블록(412)에서, 메모리 제어기(110)는 DRAM 랭크에 액세스하기 위한 액세스 요청(102)을 수신한다. 블록(414)에서, DRAM 랭크는 액세스 요청(102)을 처리한다.
컴퓨터 판독 가능 저장 매체는 컴퓨터 시스템에 명령어 및/또는 데이터를 제공하기 위해 사용 중에 컴퓨터 시스템에 의해 액세스 가능한 임의의 비 일시적 저장 매체, 또는 비 일시적 저장 매체의 조합을 포함할 수 있다. 이러한 저장 매체는, 이에 제한되는 것은 아니지만, 광학 매체(예를 들어, 컴팩트 디스크(CD), 디지털 다용도 디스크(DVD), Blu-Ray 디스크), 자기 미디어(예를 들어, 플로피 디스크, 자기 테이프 또는 자기 하드 드라이브), 휘발성 메모리(예를 들어, 랜덤 액세스 메모리(RAM) 또는 캐시), 비 휘발성 메모리(예를 들어, 판독 전용 메모리(ROM) 또는 플래시 메모리) 또는 MEMS(microelectromechanical systems) 기반 스토리지 매체를 포함한다. 컴퓨터 판독 가능 스토리지 매체는 컴퓨팅 시스템(예를 들어, 시스템 RAM 또는 ROM)에 내장될 수 있고, 컴퓨팅 시스템에 고정 부착(예를 들어, 자기 하드 드라이브)될 수 있고, 컴퓨팅 시스템에 착탈식으로 부착(예를 들어, 광 디스크 또는 USB(Universal Serial Bus) 기반 플래시 메모리)될 수 있고, 또는 유선 또는 무선 네트워크(예를 들어, 네트워크 액세스 가능 스토리지(network accessible storage, NAS))를 통해 컴퓨터 시스템에 연결될 수 있다.
일부 실시 예들에서, 전술한 기술의 특정 양태들은 소프트웨어를 실행하는 처리 시스템의 하나 이상의 프로세서들에 의해 구현될 수 있다. 소프트웨어는 비 일시적 컴퓨터 판독 가능 저장 매체에 저장되거나 그렇지 않으면 유형적으로 구현된 하나 이상의 실행 가능한 명령어 세트를 포함한다. 소프트웨어는 하나 이상의 프로세서들에 의해 실행될 때 위에서 설명된 기술의 하나 이상의 양태들을 수행하기 위해 하나 이상의 프로세서들을 조작하는 명령 및 특정 데이터를 포함할 수 있다. 비 일시적 컴퓨터 판독 가능 저장 매체는, 예를 들어, 자기 또는 광학 디스크 저장 디바이스, 플래시 메모리와 같은 솔리드 스테이트 저장 디바이스, 캐시, 랜덤 액세스 메모리(RAM) 또는 다른 비 휘발성 메모리 디바이스 또는 디바이스들 등을 포함할 수 있다. 비 일시적 컴퓨터 판독 가능 저장 매체에 저장된 실행 가능 명령어는 소스 코드, 어셈블리 언어 코드, 객체 코드 또는 하나 이상의 프로세서에 의해 해석되거나 실행 가능한 기타 명령어 형식일 수 있다.
일반 설명에서 위에 설명된 모든 활동들 또는 요소들이 필요한 것은 아니며, 특정 활동 또는 디바이스의 일부가 필요하지 않을 수 있으며, 설명된 것들에 추가하여 하나 이상의 추가 활동이 수행되거나 요소가 포함될 수 있다는 것을 명심해야 한다. 또한 활동들이 나열되는 순서가 반드시 수행되는 순서는 아니다. 또한, 개념은 특정 실시 예를 참조하여 설명되었다. 그러나, 당업자는 아래의 청구 범위에 기재된 본 개시 내용의 범위를 벗어나지 않고 다양한 수정 및 변경이 이루어질 수 있음을 인식한다. 따라서, 명세서 및 도면은 제한적인 의미가 아닌 예시적인 의미로 간주되어야 하며, 이러한 모든 수정은 본 개시의 범위 내에 포함되도록 의도된다.
이점, 다른 장점 및 문제에 대한 해결책은 특정 실시 예와 관련하여 위에서 설명되었다. 그러나 이점, 장점, 문제에 대한 해결책 및 이점, 장점 또는 해결책을 발생시키거나 더 두드러지게 만들 수 있는 특징(들)은 청구항의 일부 또는 전부의 중요한, 필요한 또는 필수 기능으로 해석되어서는 안 된다. 더욱이, 개시된 주제가 본 명세서의 교시의 이점을 갖는 당업자에게 명백한 상이하지만 동등한 방식으로 수정 및 실시될 수 있기 때문에 위에 개시된 특정 실시 예는 단지 예시일 뿐이다. 아래의 청구 범위에 기술된 것 외에는 여기에 도시된 구성 또는 디자인의 세부 사항에 대한 제한이 없다. 따라서, 위에 개시된 특정 실시 예가 변형되거나 수정될 수 있고 그러한 모든 변형이 개시된 주제의 범위 내에서 고려된다는 것이 명백하다. 따라서, 여기에서 추구하는 보호는 아래의 청구 범위에 명시된 바와 같다.

Claims (20)

  1. 방법에 있어서,
    메모리 제어기(110)에서, 저전력(low power) 모드의 동적 랜덤 액세스 메모리(DRAM) 집적 회로(121-128)의 제1 랭크(115)에 액세스하기 위한 액세스 요청(102)이 상기 메모리 제어기에서 수신될 것으로 예상되는 시간을 예측하는 단계(406); 및
    상기 예측된 시간 전에 상기 저전력 모드로부터 상기 제1 랭크를 종료하는 단계(410)를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 예측하는 단계는 상기 메모리 제어기에서 상기 제1 랭크에 액세스하기 위한 액세스 요청들의 타이밍들의 기록(history)에 기초하는, 방법.
  3. 제2항에 있어서,
    상기 예측하는 단계는 상기 제1 랭크가 상기 저전력 모드에 진입하는 제1 시간과 상기 메모리 제어기가 상기 제1 랭크에 액세스하기 위한 액세스 요청을 수신하는 제2 시간 사이의 평균 클럭 사이클 수에 기초하는, 방법.
  4. 제1항에 있어서,
    상기 저전력 모드를 종료하는 단계는 상기 액세스 요청이 상기 메모리 제어기에서 수신될 상기 예측된 시간 이전에 미리 결정된 수의 클럭 사이클들 동안 상기 저전력 모드를 종료하는 단계를 포함하는, 방법.
  5. 제4항에 있어서,
    상기 미리 결정된 수의 클럭 사이클들은 상기 제1 랭크에 대한 저전력 모드 종료 레이턴시(latency)에 기초하는, 방법.
  6. 제1항 내지 제5항 중 어느 한 항에 있어서,
    상기 DRAM 집적 회로는 복수의 랭크들(115, 120)을 포함하고, 상기 방법은:
    상기 메모리 제어기에서, 상기 저전력 모드의 상기 DRAM의 각 랭크에 액세스하기 위한 액세스 요청이 상기 메모리 제어기에서 수신될 시간을 예측하는 단계; 및
    상기 랭크에 대응하는 상기 예측된 시간 이전에 상기 저전력 모드로부터 각 랭크를 종료하는 단계를 더 포함하는, 방법.
  7. 제1항에 있어서,
    상기 메모리 제어기에서, 상기 제1 랭크에 의한 저전력 모드의 이전 종료와 관련된 레이턴시 패널티에 기초하여 상기 예측된 시간을 조정하는 단계를 더 포함하는, 방법.
  8. 방법에 있어서,
    메모리 제어기(110)에서, 상기 제1 랭크에 액세스하기 위한 액세스 요청(102)을 수신하기 전에, 그리고 상기 메모리 제어기가 상기 제1 랭크에 액세스하기 위한 액세스 요청을 수신할 예상 시간에 응답하여, 저전력 모드로부터 동적 랜덤 액세스 메모리(DRAM) 집적 회로(121-126)의 상기 제1 랭크(115)를 종료(410)하는 단계를 포함하는, 방법.
  9. 제8항에 있어서,
    상기 메모리 제어기가 상기 제1 랭크에 액세스하기 위한 액세스 요청을 수신할 시간을 예측하는 단계를 더 포함하고, 상기 예측하는 단계는 상기 제1 랭크에 액세스하기 위한 액세스 요청이 상기 메모리 제어기에서 수신되기 전에 상기 제1 랭크가 상기 저전력 모드에 진입한 후 얼마나 오래되었는지에 대한 기록에 기초하는, 방법.
  10. 제9항에 있어서,
    상기 예측은 상기 제1 랭크가 상기 저전력 모드에 진입하는 제1 시간과 상기 메모리 제어기가 상기 제1 랭크에 액세스하기 위한 액세스 요청을 수신하는 제2 시간 사이의 평균 클럭 사이클 수에 기초하는, 방법.
  11. 제8항에 있어서,
    상기 저전력 모드를 종료하는 단계는 상기 액세스 요청이 상기 메모리 제어기에서 수신될 상기 예측된 시간 이전에 미리 결정된 수의 클럭 사이클들 동안 상기 저전력 모드를 종료하는 단계를 포함하는, 방법.
  12. 제11항에 있어서,
    상기 미리 결정된 수의 클럭 사이클들은 상기 제1 랭크에 대한 저전력 모드 종료 레이턴시에 기초하는, 방법.
  13. 제8항에 있어서,
    상기 DRAM 집적 회로는 복수의 랭크들을 포함하고, 상기 방법은:
    상기 메모리 제어기에서, 상기 저전력 모드의 상기 DRAM 집적 회로의 각 랭크에 액세스하기 위한 액세스 요청이 상기 메모리 제어기에서 수신될 시간을 예측하는 단계; 및
    상기 랭크에 대응하는 상기 예측된 시간 이전에 상기 저전력 모드로부터 각 랭크를 종료하는 단계를 더 포함하는, 방법.
  14. 제8항 내지 제13항 중 어느 한 항에 있어서,
    상기 메모리 제어기에서, 상기 제1 랭크에 의한 저전력 모드의 이전 종료와 관련된 레이턴시 패널티에 기초하여 상기 예측된 시간을 조정하는 단계를 더 포함하는, 방법.
  15. 디바이스(100)에 있어서,
    복수의 랭크들(115, 120)를 포함하는 동적 랜덤 액세스 메모리(DRAM) 집적 회로(121-126)에 연결되도록 구성된 메모리 제어기(110)를 포함하고, 상기 메모리 제어기는:
    저전력 모드의 상기 DRAM 집적 회로의 제1 랭크에 액세스하기 위한 액세스 요청이 상기 메모리 제어기에서 수신될 시간을 예측하고(406); 그리고
    상기 예측된 시간 전에 상기 저전력 모드로부터 상기 제1 랭크를 종료하는(410), 디바이스.
  16. 제15항에 있어서,
    상기 메모리 제어기는 상기 제1 랭크에 액세스하기 위한 액세스 요청이 상기 메모리 제어기에서 수신되기 전에 상기 제1 랭크가 상기 저전력 모드에 진입한 후 얼마나 오래되었는지에 대한 기록에 기초하여 상기 시간을 예측하는, 디바이스.
  17. 제16항에 있어서,
    상기 메모리 제어기는 상기 제1 랭크를 상기 액세스 요청이 상기 메모리 제어기에서 수신될 상기 예측된 시간 이전에 미리 결정된 수의 클럭 사이클들 동안 상기 저전력 모드로부터 종료하는, 디바이스
  18. 제17항에 있어서,
    상기 미리 결정된 수의 클럭 사이클들은 상기 제1 랭크에 대한 저전력 모드 종료 레이턴시에 기초하는, 디바이스.
  19. 제15항에 있어서, 상기 제어기는 추가로:
    상기 저전력 모드의 상기 DRAM 집적 회로의 각 랭크에 액세스하기 위한 액세스 요청이 상기 메모리 제어기에서 수신될 시간을 예측하고; 그리고
    상기 랭크에 대응하는 상기 예측된 시간 이전에 상기 저전력 모드로부터 각 랭크를 종료하는, 디바이스.
  20. 제15항 내지 제19항 중 어느 한 항에 있어서,
    상기 메모리 제어기는 추가로 상기 제1 랭크에 의한 저전력 모드의 이전 종료와 관련된 레이턴시 패널티에 기초하여 상기 예측된 시간을 조정하는, 디바이스.
KR1020217014522A 2018-10-16 2019-06-25 동적 랜덤 액세스 메모리 랭크의 전력 차단 모드로부터의 추론적 종료 KR20210060639A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/162,215 US11194382B2 (en) 2018-10-16 2018-10-16 Speculative exit from power down mode of a dynamic random access memory rank
US16/162,215 2018-10-16
PCT/US2019/038952 WO2020081131A1 (en) 2018-10-16 2019-06-25 Speculative exit from power down mode of a dynamic random access memory rank

Publications (1)

Publication Number Publication Date
KR20210060639A true KR20210060639A (ko) 2021-05-26

Family

ID=70161899

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217014522A KR20210060639A (ko) 2018-10-16 2019-06-25 동적 랜덤 액세스 메모리 랭크의 전력 차단 모드로부터의 추론적 종료

Country Status (6)

Country Link
US (1) US11194382B2 (ko)
EP (1) EP3867730A4 (ko)
JP (1) JP7408650B2 (ko)
KR (1) KR20210060639A (ko)
CN (1) CN113227938A (ko)
WO (1) WO2020081131A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10991413B2 (en) * 2019-07-03 2021-04-27 Micron Technology, Inc. Memory with programmable die refresh stagger
CN113126740A (zh) * 2019-12-30 2021-07-16 美光科技公司 管理降低功率的存储器操作

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160195918A9 (en) * 2002-06-05 2016-07-07 Broadcom Corporation Method and Apparatus for Predictive and Adaptive Power Management of Memory Subsystem Based on memory access Information
US6930949B2 (en) 2002-08-26 2005-08-16 Micron Technology, Inc. Power savings in active standby mode
DE102004018676B4 (de) * 2004-04-17 2013-11-07 Robert Bosch Gmbh Verfahren zum Betreiben einer Brennkraftmaschine und Vorrichtung zur Durchführung des Verfahrens
JP4209906B2 (ja) * 2006-08-02 2009-01-14 株式会社日立製作所 低消費電力メモリ管理方法及びその方法を用いた計算機
JP2008225624A (ja) * 2007-03-09 2008-09-25 Fujitsu Ltd メモリコントローラ、半導体メモリの制御方法およびシステム
US7739461B2 (en) 2007-07-10 2010-06-15 International Business Machines Corporation DRAM power management in a memory controller
US7796458B2 (en) * 2007-10-18 2010-09-14 Rao G R Mohan Selectively-powered memories
US20090172440A1 (en) * 2007-12-31 2009-07-02 Krishna Kant Coupled low power state entry and exit for links and memory
US20090172441A1 (en) * 2007-12-31 2009-07-02 Krishna Kant Hardware proactive implementation for active mode power control of platform resources
US8098540B2 (en) 2008-06-27 2012-01-17 Qualcomm Incorporated Dynamic power saving memory architecture
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
US8503264B1 (en) * 2011-11-18 2013-08-06 Xilinx, Inc. Reducing power consumption in a segmented memory
US9135195B2 (en) * 2012-07-24 2015-09-15 Freescasle Semiconductor, Inc. Prediction of electronic component behavior in bus-based systems
US20140181553A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Idle Phase Prediction For Integrated Circuits
US9110671B2 (en) * 2012-12-21 2015-08-18 Advanced Micro Devices, Inc. Idle phase exit prediction
US9001608B1 (en) * 2013-12-06 2015-04-07 Intel Corporation Coordinating power mode switching and refresh operations in a memory device
US20160154452A1 (en) * 2014-12-02 2016-06-02 Arm Limited System and method for controlling the power mode of operation of a memory device
US9904623B2 (en) 2015-05-01 2018-02-27 Advanced Micro Devices, Inc. Early cache prefetching in preparation for exit from idle mode
US10120806B2 (en) * 2016-06-27 2018-11-06 Intel Corporation Multi-level system memory with near memory scrubbing based on predicted far memory idle time
US10403333B2 (en) * 2016-07-15 2019-09-03 Advanced Micro Devices, Inc. Memory controller with flexible address decoding
US10503670B2 (en) * 2017-12-21 2019-12-10 Advanced Micro Devices, Inc. Dynamic per-bank and all-bank refresh

Also Published As

Publication number Publication date
JP2022511629A (ja) 2022-02-01
JP7408650B2 (ja) 2024-01-05
CN113227938A (zh) 2021-08-06
US11194382B2 (en) 2021-12-07
EP3867730A1 (en) 2021-08-25
US20200117265A1 (en) 2020-04-16
EP3867730A4 (en) 2022-10-19
WO2020081131A1 (en) 2020-04-23

Similar Documents

Publication Publication Date Title
US8959369B2 (en) Hardware automatic performance state transitions in system on processor sleep and wake events
US7218566B1 (en) Power management of memory via wake/sleep cycles
US8402232B2 (en) Memory utilization tracking
US8195887B2 (en) Processor power management and method
US9250815B2 (en) DRAM controller for variable refresh operation timing
US7721011B1 (en) Method and apparatus for reordering memory accesses to reduce power consumption in computer systems
US8127153B2 (en) Memory power profiling
US20050125702A1 (en) Method and system for power management including device controller-based device use evaluation and power-state control
US8539146B2 (en) Apparatus for scheduling memory refresh operations including power states
US10777252B2 (en) System and method for performing per-bank memory refresh
US20160195918A9 (en) Method and Apparatus for Predictive and Adaptive Power Management of Memory Subsystem Based on memory access Information
JP2023508660A (ja) ダブルデータレートメモリトレーニングの削減によるメモリコンテキスト復元、システムオンチップのブート時間の短縮
US7650472B2 (en) Method for reducing memory power consumption
KR20210060639A (ko) 동적 랜덤 액세스 메모리 랭크의 전력 차단 모드로부터의 추론적 종료
US8068373B1 (en) Power management of memory via wake/sleep cycles
KR20230158128A (ko) Dram 커맨드 스트리크 효율 관리

Legal Events

Date Code Title Description
E902 Notification of reason for refusal