CN114868111A - 通过减少双倍数据速率存储器训练实现片上***的存储器上下文恢复及引导时间减少 - Google Patents
通过减少双倍数据速率存储器训练实现片上***的存储器上下文恢复及引导时间减少 Download PDFInfo
- Publication number
- CN114868111A CN114868111A CN202080090909.4A CN202080090909A CN114868111A CN 114868111 A CN114868111 A CN 114868111A CN 202080090909 A CN202080090909 A CN 202080090909A CN 114868111 A CN114868111 A CN 114868111A
- Authority
- CN
- China
- Prior art keywords
- memory
- dram
- controller
- ddr
- phy
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40615—Internal triggering or timing of refresh, e.g. hidden refresh, self refresh, pseudo-SRAMs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3275—Power saving in memory, e.g. RAM, cache
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0238—Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1668—Details of memory controller
- G06F13/1689—Synchronisation and timing concerns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4072—Drivers or receivers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
- G06F13/4086—Bus impedance matching, e.g. termination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/406—Management or control of the refreshing or charge-regeneration cycles
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40622—Partial refresh of memory arrays
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/02—Detection or location of defective auxiliary circuits, e.g. defective refresh counters
- G11C29/028—Detection or location of defective auxiliary circuits, e.g. defective refresh counters with adaption or trimming of parameters
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C11/00—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C11/21—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements
- G11C11/34—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices
- G11C11/40—Digital stores characterised by the use of particular electric or magnetic storage elements; Storage elements therefor using electric elements using semiconductor devices using transistors
- G11C11/401—Digital 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/406—Management or control of the refreshing or charge-regeneration cycles
- G11C11/40626—Temperature related aspects of refresh operations
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0407—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals on power on
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C2029/0409—Online test
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2211/00—Indexing scheme relating to digital stores characterized by the use of particular electric or magnetic storage elements; Storage elements therefor
- G11C2211/401—Indexing scheme relating to cells needing refreshing or charge regeneration, i.e. dynamic cells
- G11C2211/406—Refreshing of dynamic cells
- G11C2211/4067—Refresh in standby or low power modes
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C29/00—Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
- G11C29/04—Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
- G11C29/50—Marginal testing, e.g. race, voltage or current testing
- G11C29/50008—Marginal testing, e.g. race, voltage or current testing of impedance
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C5/00—Details of stores covered by group G11C11/00
- G11C5/14—Power supply arrangements, e.g. power down, chip selection or deselection, layout of wirings or power grids, or multiple supply levels
- G11C5/148—Details of power up or power down circuits, standby circuits or recovery circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/04—Arrangements for writing information into, or reading information out from, a digital store with means for avoiding disturbances due to temperature effects
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/22—Read-write [R-W] timing or clocking circuits; Read-write [R-W] control signal generators or management
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy 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)
- Software Systems (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Computer Security & Cryptography (AREA)
- Dram (AREA)
- Power Sources (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Memory System (AREA)
- Power Engineering (AREA)
Abstract
用于通过减少双倍数据速率(DDR)存储器训练来减少片上***(SOC)的引导时间以及用于存储器上下文恢复的方法。将动态随机存取存储器(DRAM)控制器和DDR物理接口(PHY)设置存储到非易失性存储器中,并将所述DRAM控制器和所述DDR PHY断电。在***恢复时,基本输入/输出***从非易失性存储器恢复所述DRAM控制器和所述DDR PHY设置,并最终确定所述DRAM控制器和所述DDR PHY设置,以便与所述SOC一起操作。通过减少DDR训练来减少所述SOC的所述引导时间包括将DRAM设置为自刷新模式,以及对自刷新状态机存储器操作(MOP)阵列进行编程以退出自刷新模式并针对目标功率管理状态更新任何DRAM装置状态。复位DRAM装置,并且所述自刷新状态机MOP阵列针对所述目标功率管理状态重新初始化所述DRAM装置状态。
Description
相关申请的交叉引用
本申请要求2019年12月30日提交的美国非临时专利申请号16/730,086的权益,该专利申请的内容据此以引用的方式并入本文。
背景技术
动态随机存取存储器(DRAM)是计算机***中常用的一种存储器。DRAM是易失性存储器,其需要正确的初始化和周期性校准以便维持性能。
附图说明
可从结合附图以举例的方式给出的以下描述中获得更详细的理解,在附图中:
图1是可实施本公开的一个或多个特征的示例装置的框图;
图2是图1的装置的框图,示出了另外的细节;
图3以框图形式示出了根据一些实施方案的数据处理***;
图4以框图形式示出了适用于图3的数据处理***的加速处理单元(APU);
图5以框图形式示出了根据一些实施方案的适用于图4的APU的存储器控制器和相关联物理接口(PHY);
图6以框图形式示出了根据一些实施方案的适用于图4的APU的另一存储器控制器和相关联PHY;
图7以框图形式示出了根据一些实施方案的存储器控制器;
图8以框图形式示出了根据一些实施方案的对应于图3的数据处理***的部分的数据处理***;
图9以框图形式示出了根据一些实施方案的对应于图7的存储器通道控制器的部分的存储器通道控制器;以及
图10示出了通过减少双倍数据速率(DDR)训练来减少片上***(SOC)的引导时间的方法;以及
图11示出了通过减少DDR训练来进行存储器上下文恢复的方法。
具体实施方式
本教导内容提供了一种通过在后续重新引导时取消或减少双倍数据速率(DDR)训练步骤来减少***的引导时间的方法。基于硬件的机制用于使用来自先前引导的设置来快速重新初始化动态随机存取存储器(DRAM)装置。这种技术允许灵活地使用双列直插式存储器模块(DIMM),这些模块可在工厂中更换,也可由最终客户在现场更换,并且仍维持后续快速引导,以便改善用户体验。例如,对于高级DDR训练步骤,在第一次引导时,可能需要花费1秒至2秒的时间来优化DDR通道的定时、电压、判决反馈均衡器(DFE)/前馈均衡器(FFE)。然而,对于给定处理器/平台(主板/模块/DRAM)组合,一旦这些值已知,就可取消后续训练(例如,DDR4,或者在LPDDR4***的情况下减少后续训练)。这允许***跳过DDR训练步骤或减少DDR训练步骤,包括加载训练固件代码以及运行多个冗长的训练固件步骤。
本教导内容利用初始化流程,该初始化流程可从非易失性存储器保存和恢复DRAM控制器和DDR物理接口(PHY)配置设置。在***恢复中,可保留DRAM内容和设置,或者基本输入/输出***(BIOS)可选择任选地复位和重新初始化DRAM和DRAM内容。
公开了通过减少DDR训练来减少SOC的引导时间以及通过减少DDR训练来进行存储器上下文恢复的方法。这些方法包括将DRAM控制器和DDR PHY设置存储到非易失性存储器中、将DRAM控制器和DDR PHY断电。在***恢复时,BIOS从非易失性存储器恢复DRAM控制器和DDR PHY设置,并最终确定DRAM控制器和DDR PHY设置,以便与SOC一起执行任务模式操作。通过减少DDR训练来减少SOC的引导时间的方法还包括将DRAM设置为自刷新模式,以及对自刷新状态机存储器操作(MOP)阵列进行编程,以退出自刷新并针对目标功率管理状态更新任何DRAM装置状态。通过减少DDR训练来进行存储器上下文恢复的方法还包括复位DRAM装置,以及对自刷新状态机MOP阵列进行编程,以针对目标功率管理状态重新初始化DRAM装置状态。
虽然本公开包括对作为特定实施方案的DRAM存储器和DRAM控制器的讨论,但本领域普通技术人员将认识到,在当前实施方案中可利用其他类型的存储器。因此,DRAM包括任何形式的存储器,并且这些存储器类型可替代本文的DRAM。DRAM控制器被理解为是控制使用中的相应存储器的存储器控制器,即使本文的示例针对DRAM控制器。
图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为任选部件,并且装置100在不存在输入驱动器112和输出驱动器114的情况下将以相同的方式操作。输出驱动器114包括耦合到显示装置118的加速处理装置(“APD”)116。APD从处理器102接受计算命令和图形渲染命令,处理那些计算命令和图形渲染命令,并且向显示装置118提供像素输出以进行显示。如下文进一步详细描述的,APD 116包括一个或多个并行处理单元,以根据单指令多数据(“SIMD”)范例执行计算。因此,虽然本文中将各种功能描述为由APD 116执行或与其结合来执行,但是在各种替代方案中,被描述为由APD 116执行的功能另外地或可替代地由具有类似能力的其他计算装置执行,所述其他计算装置不由主机处理器(例如,处理器102)驱动并且向显示装置118提供图形输出。例如,可设想的是,根据SIMD范例执行处理任务的任何处理***都可执行本文描述的功能。可替代地,可设想的是,不根据SIMD范例执行处理任务的计算***执行本文描述的功能。
图2是装置100的框图,其示出了与在APD 116上执行处理任务相关的另外的细节。处理器102在***存储器104中维持一个或多个控制逻辑模块以供处理器102执行。控制逻辑模块包括操作***120、内核模式驱动器122和应用程序126。这些控制逻辑模块控制处理器102和APD 116的操作的各种特征。例如,操作***120直接与硬件通信,并且为在处理器102上执行的其他软件提供到硬件的接口。内核模式驱动器122通过例如向处理器102上执行的软件(例如,应用程序126)提供应用程序编程接口(API)以访问APD 116的各种功能来控制APD 116的操作。内核模式驱动器122还包括即时编译器,所述即时编译器编译程序以供APD 116的处理部件(诸如下文进一步详细讨论的SIMD单元138)执行。
APD 116执行有关选定功能的命令和程序,诸如可适合于并行处理的图形操作和非图形操作。APD 116可用于基于从处理器102接收到的命令而执行图形流水线操作,诸如像素操作、几何计算,以及将图像渲染到显示装置118。APD 116还基于从处理器102接收到的命令而执行与图形操作不直接相关的计算处理操作,诸如与视频、物理模拟、计算流体动力学或其他任务相关的操作。
APD 116包括计算单元132,所述计算单元包括一个或多个SIMD单元138,所述一个或多个SIMD单元根据SIMD范例以并行方式在处理器102的请求下执行操作。SIMD范例是这样一种范例:多个处理元件共享单个程序控制流单元和程序计数器,并且因此执行相同的程序,但是能够利用不同的数据执行该程序。在一个实例中,每个SIMD单元138包括十六个通道,其中每个通道与SIMD单元138中的其他通道同时执行同一指令,但是可利用不同的数据执行该指令。如果并非所有通道都需要执行给定指令,则可利用断言关闭通道。断言也可以用于执行具有发散控制流的程序。更具体地,对于具有条件分支或其他指令的程序,其中控制流是基于由单个通道执行的计算,对应于当前未执行的控制流路径的通道的断言以及对不同控制流路径的串行执行允许任意控制流。
计算单元132中的基本执行单元是工作项。每个工作项表示将在特定通道中并行执行的程序的单个实例化。可在单个SIMD处理单元138上将工作项同时作为“波前”执行。一个或多个波前被包括在“工作组”中,所述工作组包括被指定来执行同一程序的工作项集合。可通过执行构成工作组的波前中的每一者来执行工作组。在替代方案中,波前在单个SIMD单元138上顺序地执行,或者在不同的SIMD单元138上部分地或完全地并行执行。波前可被视为可在单个SIMD单元138上同时地执行的最大工作项集合。因此,如果从处理器102接收到的命令指示特定程序将被并行化到所述程序不能同时在单个SIMD单元138上执行的程度,则该程序被分解成在两个或更多个SIMD单元138上并行化或者在同一SIMD单元138上串行化(或根据需要并行化和串行化)的波前。调度器136执行与在不同的计算单元132和SIMD单元138上调度各种波前相关的操作。
由计算单元132提供的并行性适合于与图形相关的操作,诸如像素值计算、顶点变换和其他图形操作。因此,在一些实例中,从处理器102接受图形处理命令的图形流水线134向计算单元132提供计算任务以并行执行。
计算单元132还用于执行与图形不相关或不作为图形流水线134的“正常”操作的一部分执行的计算任务(例如,执行自定义操作以补充为了图形流水线134的操作而执行的处理)。在处理器102上执行的应用程序126或其他软件将定义此类计算任务的程序传输给APD116以供执行。
如下面将描述的,存储器控制器包括控制器和MOP阵列。控制器具有用于接收功率状态改变请求信号的输入和用于提供存储器操作的输出。MOP阵列包括多个条目,每个条目包括多个编码字段。控制器响应功率状态改变请求信号的激活,以访问MOP阵列以获取至少一个条目,并发出由该条目指示的至少一个存储器操作。例如,存储器控制器可具有MOP阵列的描述用于实施功率状态改变请求的特定存储器操作的部分。例如,DDR4 DRAM和LPDDR4DRAM实施不同的状态机和不同的低功率模式,并且需要不同的序列来从活动状态移动到低功率状态。在一种情况下,存储器控制器可使用MOP阵列来定义要写到DDR寄存DIMM和负载减少DIMM的寄存器控制字(RCW)或缓冲区控制字(BCW)的命令。
在另一种形式中,此类存储器控制器可包括在包括处理器和存储器模块的处理***的处理器中。处理器还可包括耦合在存储器控制器与存储器***之间的物理接口(PHY)。
在又一种形式中,公开了一种用于控制存储器***的功率状态的方法。接收功率状态改变信号。响应于功率状态改变请求信号来访问MOP阵列。MOP阵列的条目被解码成至少一个存储器操作。输出如此解码的每个存储器操作。针对MOP阵列中的连续条目重复解码和输出,直到出现预定终止条件。例如,预定终止条件可以是MOP阵列中的空条目。所接收的功率状态改变请求信号可以是从活动状态到低功率状态的改变,诸如预充电断电、自刷新断电或空闲断电,或者可以是在活动状态下从一个操作频率到另一操作频率的改变。BIOS还可响应于检测到存储***的特性对MOP阵列进行编程。
图3以框图形式示出了根据一些实施方案的数据处理***300。数据处理***300一般包括数据处理器310(该数据处理器为加速处理单元(APU)的形式)、存储器***320、***组件快速互连(PCIe)***350、通用串行总线(USB)***360和磁盘驱动器370。数据处理器310作为数据处理***300的中央处理单元(CPU)操作并提供在现代计算机***中有用的各种总线和接口。这些接口包括两个双倍数据速率(DDRx)存储器通道、用于连接PCIe链路的PCIe根复合体、用于连接USB网络的USB控制器以及到串行高级技术附件(SATA)大容量存储装置的接口。
存储器***320包括存储器通道330和存储器通道340。存储器通道330包括连接到DDRx总线332的一组双列直插式存储器模块(DIMM),包括在该示例中对应于单独等级的代表性的DIMM 334、DIMM 336和DIMM 338。同样,存储器通道340包括连接到DDRx总线342的一组DIMM,包括代表性的DIMM 344、DIMM 346和DIMM 348。
PCIe***350包括连接到数据处理器310中的PCIe根复合体的PCIe交换机352、PCIe装置354、PCIe装置356和PCIe装置358。PCIe装置356继而连接到***基本输入/输出***(BIOS)存储器357。***BIOS存储器357可以是多种非易失性存储器类型中的任一种,诸如只读存储器(ROM)、闪存电可擦除可编程ROM(EEPROM)等。
USB***360包括连接到数据处理器310中的USB主设备的USB集线器362,以及各自连接到USB集线器362的代表性的USB装置364、366和368。USB装置364、366和368可以是诸如键盘、鼠标、闪存EEPROM端口等装置。
磁盘驱动器370通过SATA总线连接到数据处理器310,并为操作***、应用程序、应用文件等提供大容量存储。
通过提供存储器通道330和存储器通道340,数据处理***300适用于现代计算应用。存储器通道330和340中的每一者均可连接到最先进的DDR存储器,诸如DDR版本四(DDR4)、低功率DDR4(LPDDR4)、图形DDR版本五(gDDR5)和高带宽存储器(HBM),并且可适用于未来的存储器技术。这些存储器提供高总线带宽和高速操作。同时,它们还提供低功率模式,为诸如膝上型计算机等电池供电应用节省电力,并且还提供内置的热监视。如下面将更详细描述的,数据处理器310包括能够在某些情况下节流功率以避免过热和减少热过载的机会的存储器控制器。
图4以框图形式示出了适用于图3的数据处理***300的APU400。APU 400一般包括中央处理单元(CPU)核心复合体410、图形核心420、一组显示引擎430、存储器管理集线器440、数据编织450、一组***控制器460、一组***总线控制器470、***管理单元(SMU)480和一组存储器控制器490。
CPU核心复合体410包括CPU核心412和CPU核心414。在该示例中,CPU核心复合体410包括两个CPU核心,但在其他实施方案中,CPU核心复合体410可包括任意数量的CPU核心。CPU核心412和414中的每一者均双向连接到***管理网络(SMN)(该SMN形成控制编织)和数据编织450,并且能够向数据编织450提供存储器访问请求。CPU核心412和414中的每一者均可为单一核心,或者可进一步为具有共享诸如高速缓存等某些资源的两个或更多个单一核心的核心复合体。
图形核心420为高性能图形处理单元(GPU),其能够以高度集成和并行的方式执行图形操作,诸如顶点处理、片段处理、着色、纹理混合等。图形核心420双向连接到SMN和数据编织450,并且能够向数据编织450提供存储器访问请求。就这一点而言,APU 400可支持CPU核心复合体410和图形核心420共享相同存储器空间的统一存储器架构,或者支持CPU核心复合体410和图形核心420共享存储器空间的一部分的存储器架构,而图形核心420还使用CPU核心复合体410不能访问的私有图形存储器。
显示引擎430渲染和光栅化由图形核心420生成的对象,以便在监视器上显示。图形核心420和显示引擎430双向连接到公共存储器管理集线器440,用于统一转换成存储器***320中的适当地址,并且存储器管理集线器440双向连接到数据编织450,用于生成此类存储器访问并接收从存储器***返回的读取数据。
数据编织450包括交叉开关,用于在任何存储器访问代理与存储器控制器490之间路由存储器访问请求和存储器响应。该数据编织还包括由BIOS定义的***存储器映射,用于基于***配置确定存储器访问的目的地,以及每个虚拟连接的缓冲区。
***控制器460包括USB控制器462和SATA接口控制器464,该USB控制器和SATA接口控制器中的每一者均双向连接到***集线器466和SMN总线。这两个控制器仅仅是可用于APU 400的***控制器的示例。
***总线控制器470包括***控制器或南桥(SB)472和PCIe控制器474,该***控制器或南桥(SB)和PCIe控制器中的每一者均双向连接到输入/输出(I/O)集线器476和SMN总线。I/O集线器476也双向连接到***集线器466和数据编织450。因此,例如,CPU核心可通过数据编织450经I/O集线器476路由的访问来对USB控制器462、SATA接口控制器464、SB472或PCIe控制器474中的寄存器进行编程。
SMU 480为本地控制器,其控制APU 400上的资源的操作并同步它们之间的通信。SMU 480管理APU 400上各种处理器的加电序列,并经由复位信号、使能信号和其他信号控制多个片外装置。SMU480包括图4中未示出的一个或多个时钟源(诸如锁相环(PLL)),以便为APU 400的部件中的每个部件提供时钟信号。SMU 480还管理各种处理器和其他功能块的功率,并且可从CPU核心412和414以及图形核心420接收测量的功率消耗值,以确定适当的功率状态。
APU 400还实施各种***监视功能和功率节省功能。具体地,一个***监视功能是热监视。例如,如果APU 400变热,则SMU 480可降低CPU核心412和414和/或图形核心420的频率和电压。如果APU 400变得太热,则可将其完全关闭。还可由SMU 480经由SMN总线从外部传感器接收热事件,并且作为响应,SMU 480可降低时钟频率和/或电源电压。
图5以框图形式示出了根据一些实施方案的适用于图4的APU400的存储器控制器500和相关联物理接口(PHY)530。存储器控制器500包括存储器通道510和功率引擎520。存储器通道510包括主机接口512、存储器通道控制器514和物理接口516。主机接口512通过可扩展数据端口(SDP)将存储器通道控制器514双向连接到数据编织450。物理接口516通过符合DDR-PHY接口规范(DFI)的总线将存储器通道控制器514双向连接到PHY 530。功率引擎520通过SMN总线双向连接到SMU 480,通过高级***总线(APB)双向连接到PHY530,并且还双向连接到存储器通道控制器514。PHY 530具有到诸如图3的存储器通道330或存储器通道340的存储器通道的双向连接。存储器控制器500是使用单个存储器通道控制器514的单个存储器通道的存储器控制器的实例化,并且具有功率引擎520,以下面将进一步描述的方式控制存储器通道控制器514的操作。
图6以框图形式示出了根据一些实施方案的适用于图4的APU400的另一存储器控制器600和相关联PHY 640和650。存储器控制器600包括存储器通道610和620以及功率引擎630。存储器通道610包括主机接口612、存储器通道控制器614和物理接口616。主机接口612通过SDP将存储器通道控制器614双向连接到数据编织450。物理接口616将存储器通道控制器614双向连接到PHY 640,并且符合DFI规范。存储器通道620包括主机接口622、存储器通道控制器624和物理接口626。主机接口622通过另一SDP将存储器通道控制器624双向连接到数据编织450。物理接口626将存储器通道控制器624双向连接到PHY 650,并且符合DFI规范。功率引擎630通过SMN总线双向连接到SMU 480,通过APB双向连接到PHY 640和650,并且还双向连接到存储器通道控制器614和624。PHY 640具有到诸如图3的存储器通道330的存储器通道的双向连接。PHY 650具有到诸如图3的存储器通道340的存储器通道的双向连接。存储器控制器600是具有两个存储器通道控制器的存储器控制器的实例化,并且使用共享功率引擎630来以下面将进一步描述的方式控制存储器通道控制器614和存储器通道控制器624两者的操作。
图7以框图形式示出了根据一些实施方案的存储器控制器700。存储器控制器700一般包括存储器通道控制器710和功率控制器750。存储器通道控制器710一般包括接口712、队列714、命令队列720、地址生成器722、内容可寻址存储器(CAM)724、重播队列730、刷新逻辑块732、定时块734、页面表736、仲裁器738、错误校正码(ECC)校验块742、ECC生成块744和写数据缓冲区(WDB)746。
接口712具有通过外部总线到数据编织450的第一双向连接,并且具有输出。在存储器控制器700中,该外部总线与由英国剑桥ARM控股有限公司(ARM Holdings,PLC ofCambridge,England)指定的高级可扩展接口版本四(称为“AXI4”)兼容,但在其他实施方案中可以是其他类型的接口。接口712将存储器访问请求从称为FCLK(或MEMCLK)域的第一时钟域转换到存储器控制器700内部的称为UCLK域的第二时钟域。类似地,队列714提供从UCLK域到与DFI接口相关联的DFICLK域的存储器访问。
地址生成器722对通过AXI4总线从数据编织450接收的存储器访问请求的地址进行解码。存储器访问请求包括以归一化格式表示的物理地址空间中的访问地址。地址生成器722将归一化地址转换成可用于寻址存储器***320中的实际存储器装置以及有效地调度相关访问的格式。该格式包括将存储器访问请求与特定等级、行地址、列地址、存储体地址和存储体组相关联的区域标识符。在启动时,***BIOS查询存储器***320中的存储器装置以确定它们的大小和配置,并对与地址生成器722相关联的一组配置寄存器进行编程。地址生成器722使用存储在配置寄存器中的配置来将归一化地址转换成适当格式。命令队列720是从数据处理***300中的存储器访问代理(诸如CPU核心412和414以及图形核心420)接收的存储器访问请求的队列。命令队列720存储由地址生成器722解码的地址字段以及允许仲裁器738有效选择存储器访问的其他地址信息,包括访问类型和服务质量(QoS)标识符。CAM 724包括执行定序规则的信息,诸如写后写(WAW)和写后读(RAW)定序规则。
重播队列730是临时队列,用于存储由仲裁器738挑选的正在等待响应的存储器访问,诸如地址和命令奇偶校验响应、用于DDR4DRAM的写循环冗余校验(CRC)响应或用于gDDR5 DRAM的写和读CRC响应。重播队列730访问ECC检查块742,以确定返回的ECC是正确的还是指示错误。重播队列730允许在这些周期中的一个周期的奇偶校验或CRC错误的情况下重播访问。
刷新逻辑732包括用于与从存储器访问代理接收的正常读和写存储器访问请求分开生成的各种断电、刷新和终止电阻(ZQ)校准周期的状态机。例如,如果存储器等级处于预充电断电状态,则必须定期唤醒它以运行刷新周期。刷新逻辑732周期性地生成刷新命令,以防止由于DRAM芯片中的存储器单元的存储电容器的电荷泄漏引起数据错误。此外,刷新逻辑732周期性地校准ZQ,以防止由于***中的热变化导致管芯上终端电阻失配。
仲裁器738双向连接到命令队列720,并且是存储器通道控制器710的核心。该仲裁器通过智能调度访问来提高存储器总线的使用率,从而提高效率。仲裁器738使用定时块734,以通过基于DRAM定时参数确定命令队列720中的某些访问是否有资格发布来强制执行正确的定时关系。例如,每个DRAM在激活命令之间具有最小指定时间,称为“tRC”。定时块734维护一组计数器,该组计数器基于此和在JEDEC规范中指定的其他定时参数来确定合格性,并且该定时块双向连接到重播队列730。页面表736为仲裁器738维护关于存储器通道的每个存储体和等级中的活动页的状态信息,并且双向连接到重播队列730。
响应于从接口712接收的写存储器访问请求,ECC生成块744根据写数据计算ECC。DB 746存储所接收的存储器访问请求的写数据和ECC。当仲裁器738挑选对应的写访问以便分派到存储器通道时,该DB将组合的写数据/ECC输出到队列714。
功率控制器750一般包括到高级可扩展接口版本一(AXI)的接口752、APB接口754和功率引擎760。接口752具有到SMN的第一双向连接,该第一双向连接包括用于接收在图7中单独示出的标记为“EVENT_n”的事件信号的输入,以及输出。APB接口754具有连接到接口752的输出的输入,以及用于通过APB连接到PHY的输出。功率引擎760具有连接到接口752的输出的输入,以及连接到队列714的输入的输出。功率引擎760包括一组配置寄存器762、微控制器(μC)764、自刷新控制器(SLFREF/PE)766和可靠的读/写定时引擎(RRW/TE)768。配置寄存器762通过AXI总线进行编程,并存储配置信息以控制存储器控制器700中各种块的操作。因此,配置寄存器762具有连接到图7中未详细示出的这些块的输出。自刷新控制器766是除了由刷新逻辑732自动生成刷新之外,还允许手动生成刷新的引擎。可靠的读/写定时引擎768向存储器或I/O装置提供连续存储器访问流,用于诸如DDR接口最大读延迟(MRL)训练和回送测试等目的。
存储器通道控制器710包括允许其挑选存储器访问以便分派到相关联存储器通道的电路。为了做出期望的仲裁决定,地址生成器722将地址信息解码成预解码信息,包括存储器***中的等级、行地址、列地址、存储体地址和存储体组,并且命令队列720存储预解码信息。配置寄存器762存储配置信息,以确定地址生成器722如何解码所接收的地址信息。仲裁器738使用解码的地址信息、由定时块734指示的定时合格信息以及由页面表736指示的活动页信息来有效地调度存储器访问,同时遵守诸如QoS要求等其他标准。例如,仲裁器738实施对打开页面的访问的偏好,以避免改变存储器页面所需的预充电和激活命令的开销,并通过将对一个存储体的开销访问与对另一存储体的读和写访问交错来隐藏对它们的开销访问。具体地,在正常操作期间,仲裁器738通常在不同的存储体中保持页面打开,直到需要在选择不同页面之前对它们进行预充电。
图8以框图形式示出了根据一些实施方案的对应于图3的数据处理***300的部分的数据处理***800。数据处理***800一般包括标记为“MC”810的存储器控制器、PHY 820和存储器模块830。
存储器控制器810从处理器的存储器访问代理(诸如CPU核心412或图形核心420)接收存储器访问请求,并向其提供存储器响应。存储器控制器810对应于图4的存储器控制器490中的任一个存储器控制器。存储器控制器810通过DFI兼容总线向PHY 820输出存储器访问并从其接收响应。
PHY 820通过DFI总线连接到存储控制器810。PHY通过提供一组标记为“C/A”的命令和地址输出以及一组标记为“DQ”的72个双向数据信号(包括64位数据和8位ECC),响应于所接收的存储器访问来执行物理信令。
存储器模块830可支持多种存储器类型和速度等级中的任一种。在所示的实施方案中,存储器模块830是DDR4寄存DIMM(RDIMM),其包括一组分别标记为“DDR4”的存储器芯片840、一个标记为“RCD”的寄存器时钟驱动器850和一组分别标记为“B”的缓冲区860。存储器芯片840包括一组M位×N存储器芯片。为了支持72个数据信号(64位数据加上8位ECC),M*N=72。例如,如果每个存储器芯片是4×4(N=4),则存储器模块830包括18个DDR4存储器芯片。可替代地,如果每个存储器芯片是8×8(N=8),则存储器模块830包括9个DDR4存储器芯片。缓冲区860中的每个缓冲区与一个N×N存储芯片相关联,并用于锁存对应的N位数据。在图8所示的示例中,存储器模块830包含DDR4存储器,并且C/A信号包括DDR4规范中描述的那些信号。DDR4规范指定“飞越式”架构,其中由RCD850接收和锁存的相同C/A信号被左右重新驱动到存储器芯片840中的每个存储器芯片。然而,数据信号DQ仅被提供给对应的缓冲区和存储器。
存储器模块830根据编程到寄存器控制字(RCW)中的RCD 850的控制信息和编程到缓冲区控制字(BCW)中的缓冲区860的控制信息进行操作。因此,当存储器控制器810将存储器模块830置于低功率状态时,它还以下面将更全面描述的方式改变RCW和BCW中的设置。
虽然数据处理***800使用寄存的、缓冲的DDR4 DRAM DIMM作为存储器模块830,但存储器控制器810和PHY 820还能够连接到几种不同类型的存储器模块。具体地,存储器控制器810和PHY 820能够支持几种不同类型的存储器(例如,DDR、闪存、PCM等)、几种不同的寄存器条件(没有使用、RCD、闪存控制器等)和几种不同的缓冲区条件(没有使用、仅数据缓冲区等),使得存储器控制器810支持存储器类型、寄存器条件和缓冲区条件的多种组合。为了支持这些组合,存储器控制器810实现了一种架构,该架构允许进入和退出低功率模式的独特计划,***BIOS可针对特定存储器***特性对该低功率模式进行编程。现在将描述这些特征。
图9以框图形式示出了根据一些实施方案的对应于图7的存储器通道控制器750的部分的存储器通道控制器900。存储器通道控制器900包括如上面在图7中所示的UMCSMN752和自刷新控制器766,以及存储器操作(MOP)阵列710。UMCSMN 752如上所述,具有用于连接到SMN的第一端口,并且如在此相关细节所示,具有用于从数据编织450接收标记为“功率请求”的功率状态改变请求信号的输入,以及用于向数据编织450提供标记为“功率确认”的功率状态改变确认信号的输出。UMCSMN 752还具有第二端口,该第二端口具有用于提供标记为“M_PSTATE REQ”的存储器功率状态改变请求信号的第一输出和用于提供存储在MOP阵列910中的数据的第二输出。自刷新控制器766具有连接到UMCSMN 752的第二端口的第一输出的输入、双向端口和连接到BEQ 714以用于向BEQ 714提供解码的MOP的输出。MOP阵列910具有连接到UMCSMN 752的第二端口的第二输出的输入以及到自刷新控制器766的双向连接,并且被分成用于存储命令(即,MOP)的第一部分912和用于存储数据的第二部分914。
在一个示例中,在启动时,存储在***BIOS存储器357中的***BIOS查询存储器***320,以确定已安装的存储器的类型及其能力。这通常通过读取存在于***中的每个DIMM上的串行存在检测(SPD)存储器中的寄存器来实现。例如,PHY可支持DDR3、DDR4、低功率DDR4(LPDDR4)和图形DDR版本五(gDDR5)存储器中的任一种。响应于检测到安装在存储器***320中的存储器的类型和能力,***BIOS用命令序列填充MOP阵列910,该命令序列发起进入和退出特定类型的存储器所支持的低功率模式。
在所示实施方案中,存储器通道控制器750支持根据高级配置和功率接口(ACPI)规范描述的模型定义的各种装置低功率状态。根据ACPI规范,装置(诸如存储器控制器700)的工作状态称为D0状态或“完全开启”状态。其他状态是低功率状态并且包括D1、D2和D3状态,其中D3状态是“关闭”状态。存储器控制器700能够将存储器***320置于对应于存储器控制器700的D状态的低功率状态,以及在D0状态下进行频率和/或电压改变。在接收到功率请求时,UMCSMN 752向自刷新控制器766提供M_PSTATE REQ信号,以指示请求哪个功率状态。自刷新控制器766响应于执行将存储器芯片以及DIMM(如果支持的话)的RCW和BCW置于所请求的D状态的适当状态的MOP序列而访问MOP阵列910。自刷新控制器766将索引输出到MOP阵列910中,并且作为响应,MOP阵列910返回编码命令(MOP)。
通过包括MOP阵列910以存储来自自刷新控制器766的固件的可编程命令,使用相对少量的电路面积来实施存储器通道控制器750,同时支持具有不同特性的多种存储器类型。此外,这提供了向上兼容的架构,该架构允许针对尚未指定但可能在未来指定的存储器类型和特性进行存储器状态改变。因此,存储器通道控制器750也是模块化的并且避免了对未来昂贵的重新设计的需要。
现在将描述这些存储器控制器装置功率状态(D状态)与DRAM操作之间的交互作用。D0状态是存储器控制器700的操作状态。在D0状态下,存储器控制器700支持四种可编程功率状态(P状态),每种状态具有不同的MEMCLK频率和相关联定时参数。存储器控制器700针对每个P状态维护一组寄存器,该寄存器存储该P状态的定时参数并定义上下文。存储器控制器700将DRAM置于自刷新模式以改变P状态/上下文。MOP阵列910包括一组命令,该组命令与D0状态中的频率变化一起使用,以支持正确的排序。
D1状态被称为停止时钟状态,并且用于存储器状态改变请求。当存储器控制器700被置于D1状态时,进入和退出延迟最低,除非需要重新训练PHY 820。作为D1功率状态改变请求的结果,存储器控制器700通常不刷新任何仲裁队列条目。然而,存储器控制器700预先刷新命令队列720中的所有写入,而通常不执行正常的挂起刷新。存储器控制器700将***中的所有存储器芯片置于预充电断电或自刷新状态。
D2状态被称为待机状态,并且对应于***C1/C2/C3和停止时钟/断续状态。对于存储器控制器700的操作,该状态是较低功率状态。在D2状态下,存储器控制器700使用本地时钟门控和任选的功率门控来进一步降低功率。存储器控制器700刷新来自命令队列720的写入和读取。在D2状态中,存储器控制器700同样将***中的所有存储器置于预充电断电状态,同时启用自动自刷新。然而,由于D2是更深的功率状态,因此在进入预充电断电之前,该存储器控制器使用自动自刷新执行所有即将被要求(“欠”)的刷新。
D3状态被称为挂起状态。存储器控制器700支持两种D3状态。第一D3状态用于***S3状态。存储器控制器700将DRAM和PHY置于最低功率状态,以期望进入***S3状态。存储器控制器700通常刷新来自命令队列720的写,并执行挂起的刷新周期。第二D3状态用于异步DRAM刷新(ADR式自刷新)。ADR是服务器中用于在电源故障或***崩溃期间将挂起的写数据刷新到非易失性存储器中的特征。DRAM和PHY再次被置于预充电断电状态,并启用自动自刷新。
如在此所使用的,功率请求信号指示从任一种功率状态到不同功率状态的改变。不同存储器类型的可用功率状态不同。此外,如本文所用,“低功率状态”是指与另一状态相比节省功率的状态。例如,DDR4 SDRAM支持两种低功率状态,称为自刷新和预充电断电。然而,LPDDR4支持三种低功率状态,即活动断电、自刷新断电和空闲断电。可进入和退出这些状态的条件不同,并在对应公布的JEDEC标准的状态图中指定,并且“低功率状态”包括这些状态中的任一种。
MOP阵列910支持允许对命令进行有效编码以支持所有这些功率状态改变的命令格式。MOP阵列910针对四个P状态上下文中的每个上下文使用称为“SrEnterMOP”和“SrExitMOP”的两个阵列。在进入P状态请求的自刷新之前处理SrEnterMOP。在退出P状态请求的自刷新之后处理SrExitMOP。MOP阵列指定模式寄存器(MR)、具有每DRAM可访问性的MR(PDA)、寄存器控制字(RCW)或缓冲区控制字(BCW)命令的顺序列表。在接收到功率状态改变请求时,自刷新控制器766访问MOP阵列910中所选上下文的命令,以确定发布给存储器***的MOP的序列和定时。
部分912中的MOP包括表示部分912中的对应的一个或多个D状态的字段。因此,自刷新控制器766从第一位置开始扫描MOP阵列912,以寻找适用于特定上下文的命令,并忽略不适用于当前上下文的MOP。MOP阵列912还包括计数器值,以在适当时确定MOP之间的正确定时,从而满足存储器芯片的动态定时参数。在开始命令序列之后,自刷新控制器766继续扫描MOP阵列912并执行有效命令,直到它遇到空条目,这指示功率状态改变序列的结束。
图10示出了用于在存储器上下文恢复中减少SOC的引导时间的方法1000,该方法通过减少DDR训练来减少SOC的引导时间。方法1000包括在步骤1010处,在恢复之前,将DRAM控制器和DDR PHY设置(包括该处理器/平台/DRAM组合的任何值)存储在非易失性位置。
在步骤1020处,在DDR4模式下,对于S3,然后由DRAM控制器将DRAM设置为自刷新模式。然后在步骤1025处,DRAM控制器和DDR PHY被断电以节省总***电力。
在步骤1030处,在***恢复时,BIOS从非易失性存储器恢复DRAM控制器和DDR PHY设置。对于S3,在步骤1035处,对自刷新状态机MOP阵列(优化状态机的小代码)进行编程,以退出自刷新,并针对目标功率管理状态(存储器P状态)更新任何DRAM装置状态。
在步骤1040处,最终确定DRAM控制器和DDR PHY设置,以便与SOC一起进行任务模式操作。
图11示出了在存储器上下文恢复中进行存储器上下文恢复的方法1100,该方法通过减少DDR训练来减少SOC的引导时间。方法1100包括在步骤1110处,在恢复之前,将DRAM控制器和DDR PHY设置(包括该处理器/平台/DRAM组合的任何值)存储在非易失性存储器位置。
在步骤1115处,在DDR4模式下,由DRAM控制器将DRAM设置为自刷新模式。然后,在步骤1120处,DRAM控制器和DDR PHY接着被断电以节省总***电力或整个***可能已移除电力。
在步骤1130处,遵循方法1000的步骤1030,包括在***恢复时,BIOS从非易失性存储器恢复DRAM控制器和DDR PHY设置,和/或在步骤1135处任选地复位DRAM装置。该复位包括在步骤1140处,对自刷新状态机MOP阵列进行编程,以针对目标功率管理状态(存储器P状态)重新初始化DRAM装置(按照JEDEC规范序列)。在步骤1145处,最终确定DRAM控制器和DDRPHY设置,以便与SOC一起进行任务模式操作。
虽然方法1000和方法1100是使用单独附图来描述的,但方法1000和方法1100的每个部分可互换使用,或者作为方法1000和方法1100所描述的步骤的补充。在方法1000和方法1100中,可使用软件模式寄存器访问机制来最终确定DRAM设置。虽然为了讨论清楚起见,本描述使用DRAM,但所描述的方法也适用于RDIMM或LRDIMM模块上的其他相关联部件,诸如RCD或DB。
应理解,基于本文的公开内容,许多变型是可能的。虽然上文以特定的组合描述特征和要素,但是每个特征或要素可在没有其他特征和要素的情况下单独地使用,或者以具有或不具有其他特征和要素的各种组合使用。
图中所示和/或本文所描述的各种功能单元(包括但不限于处理器102、输入驱动器112、输入装置108、输出驱动器114、输出装置110、加速处理装置116、调度器136、图形处理流水线134、计算单元132、SIMD单元138和APU 310)可被实现为通用计算机、处理器或处理器核心,或者被实现为程序、软件或固件,存储在非暂时性计算机可读介质或另一种介质中,可由通用计算机、处理器或处理器核心执行。所提供的方法可在通用计算机、处理器或处理器核心中实现。合适的处理器包括例如通用处理器、专用处理器、常规处理器、数字信号处理器(DSP)、多个微处理器、与DSP核心相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)电路、任何其他类型的集成电路(IC)和/或状态机。可通过使用处理后的硬件描述语言(HDL)指令的结果和包括网表的其他中间数据(此类指令能够存储在计算机可读介质上)配置制造工艺来制造此类处理器。此种处理的结果可为掩模作品,然后在半导体制造工艺中使用所述掩模作品来制造实现本公开的特征的处理器。
本文提供的方法或流程图可在并入非暂时性计算机可读存储介质的计算机程序、软件或固件中实现,以便由通用计算机或处理器执行。非暂时性计算机可读存储介质的实例包括只读存储器(ROM)、随机存取存储器(RAM)、寄存器、高速缓存存储器、半导体存储器装置、磁性介质(诸如内部硬盘和可移动磁盘)、磁光介质以及诸如CD-ROM盘和数字通用光盘(DVD)等光学介质。
Claims (20)
1.一种用于通过减少双倍数据速率(DDR)存储器训练来减少片上***(SOC)的引导时间的方法,所述方法包括:
将动态随机存取存储器(DRAM)控制器和DDR物理接口(PHY)设置存储到非易失性存储器中;
将DRAM设置为自刷新模式;
将DRAM控制器和DDR PHY断电;
在***恢复以引导训练时,***基本输入/输出***(BIOS)从所述非易失性存储器恢复DRAM控制器和DDR PHY设置;
对自刷新状态机存储器操作(MOP)阵列进行编程,以退出自刷新模式,并针对目标功率管理状态更新任何DRAM装置状态;以及
最终确定DRAM控制器和DDR PHY设置,以便与所述SOC一起操作。
2.根据权利要求1所述的方法,其中所述将DRAM设置为自刷新模式包括保留存储器内容。
3.根据权利要求2所述的方法,其中保留所述存储器内容包括所述DRAM进入低功率模式。
4.根据权利要求1所述的方法,其中所述将所述DRAM控制器和所述DDR PHY断电提供从***状态的快速引导。
5.根据权利要求1所述的方法,其中所述将所述DRAM控制器和所述DDR PHY断电提供暖复位。
6.根据权利要求1所述的方法,其中所述将所述DRAM控制器和所述DDR PHY断电提供所述DRAM控制器和所述DDR PHY的复位。
7.根据权利要求1所述的方法,其中所述最终确定DRAM控制器和DDR PHY设置以便与所述SOC一起操作包括通过对配置进行编程来最终确定任何控制器设置和PHY设置。
8.根据权利要求7所述的方法,其中最终确定设置包括更新所述MOP阵列和用于最佳P状态切换的定时。
9.根据权利要求7所述的方法,其中最终确定设置包括初始化序列。
10.一种用于通过减少双倍数据速率(DDR)存储器训练来恢复片上***(SOC)的存储器上下文的方法,所述方法包括:
将DRAM控制器和DDR物理接口(PHY)设置存储到非易失性存储器中;
将DRAM控制器和DDR PHY断电;
在断电后,在***恢复以恢复所述存储器上下文时,***基本输入/输出***(BIOS)从所述非易失性存储器恢复DRAM控制器和DDR PHY设置;
复位DRAM装置;
对自刷新状态机存储器操作(MOP)阵列进行编程,以针对目标功率管理状态重新初始化DRAM装置状态;以及
最终确定DRAM控制器和DDR PHY设置,以便与所述SOC一起操作。
11.根据权利要求10所述的方法,其中将所述DRAM控制器断电无法保留存储器状态。
12.根据权利要求10所述的方法,其中所述将所述DRAM控制器和所述DDR PHY断电提供从***状态的快速引导。
13.根据权利要求10所述的方法,其中所述将所述DRAM控制器和所述DDR PHY断电提供暖复位、冷复位和从机械关闭开始的完整的新电力周期中的至少一者。
14.根据权利要求10所述的方法,其中所述将所述DRAM控制器和所述DDR PHY断电提供所述DRAM控制器和所述DDR PHY的复位。
15.根据权利要求10所述的方法,其中所述最终确定DRAM控制器和DDR PHY设置以便与所述SOC一起操作包括通过对配置进行编程来最终确定任何控制器设置和PHY设置。
16.根据权利要求15所述的方法,其中最终确定设置包括更新所述MOP阵列和用于最佳P状态切换的定时。
17.根据权利要求15所述的方法,其中最终确定设置包括初始化序列。
18.一种用于通过减少双倍数据速率(DDR)存储器训练来减少片上***(SOC)的引导时间的***,所述***包括:
动态随机存取存储器(DRAM)控制器和DDR物理接口(PHY),其设置存储在非易失性存储器中;
多个DRAM,所述多个DRAM被设置成自刷新模式,
其中将所述DRAM控制器和所述DDR PHY断电;
在***恢复以引导训练时,***基本输入/输出***(BIOS)从所述非易失性存储器恢复DRAM控制器和DDR PHY设置;以及
自刷新状态机存储器操作(MOP)阵列,所述MOP阵列被编程为退出自刷新模式并针对目标功率管理状态更新任何DRAM装置状态,
其中所述DRAM控制器和所述DDR PHY设置被最终确定以便与所述SOC一起操作。
19.根据权利要求18所述的***,其中所述将DRAM设置为自刷新模式包括保留存储器内容。
20.根据权利要求18所述的***,其中保留存储器内容包括所述DRAM进入低功率模式。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/730,086 | 2019-12-30 | ||
US16/730,086 US11176986B2 (en) | 2019-12-30 | 2019-12-30 | Memory context restore, reduction of boot time of a system on a chip by reducing double data rate memory training |
PCT/US2020/062292 WO2021137980A1 (en) | 2019-12-30 | 2020-11-25 | Memory context restore, reduction of boot time of a system on a chip by reducing double data rate memory training |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114868111A true CN114868111A (zh) | 2022-08-05 |
Family
ID=76546528
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080090909.4A Pending CN114868111A (zh) | 2019-12-30 | 2020-11-25 | 通过减少双倍数据速率存储器训练实现片上***的存储器上下文恢复及引导时间减少 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11176986B2 (zh) |
EP (1) | EP4085329A4 (zh) |
JP (1) | JP2023508660A (zh) |
KR (1) | KR20220123512A (zh) |
CN (1) | CN114868111A (zh) |
WO (1) | WO2021137980A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11176986B2 (en) * | 2019-12-30 | 2021-11-16 | Advanced Micro Devices, Inc. | Memory context restore, reduction of boot time of a system on a chip by reducing double data rate memory training |
KR20210110071A (ko) * | 2020-02-28 | 2021-09-07 | 삼성전자주식회사 | 스토리지 장치 및 상기 스토리지 장치의 동작 방법 |
US20220050634A1 (en) * | 2020-08-13 | 2022-02-17 | Rambus Inc. | Memory interface training |
US11768691B2 (en) * | 2020-09-18 | 2023-09-26 | Intel Corporation | Boot process for early display initialization and visualization |
US20210224213A1 (en) * | 2021-03-19 | 2021-07-22 | Intel Corporation | Techniques for near data acceleration for a multi-core architecture |
US20230280913A1 (en) * | 2022-03-02 | 2023-09-07 | Mediatek Inc. | Electronic device using external memory device to store hardware setting of semiconductor chip for fast boot and power saving of semiconductor chip |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6154821A (en) | 1998-03-10 | 2000-11-28 | Rambus Inc. | Method and apparatus for initializing dynamic random access memory (DRAM) devices by levelizing a read domain |
US9196346B2 (en) | 2008-01-23 | 2015-11-24 | Micron Technology, Inc. | Non-volatile memory with LPDRAM |
US8356155B2 (en) | 2010-09-13 | 2013-01-15 | Advanced Micro Devices, Inc. | Dynamic RAM Phy interface with configurable power states |
US9104421B2 (en) | 2012-07-30 | 2015-08-11 | Nvidia Corporation | Training, power-gating, and dynamic frequency changing of a memory controller |
US9690364B2 (en) * | 2015-09-04 | 2017-06-27 | Qualcomm Incorporated | Systems and methods for dynamically adjusting memory state transition timers |
KR102535738B1 (ko) | 2016-03-28 | 2023-05-25 | 에스케이하이닉스 주식회사 | 비휘발성 듀얼 인 라인 메모리 시스템, 메모리 모듈, 및 메모리 모듈의 동작 방법 |
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 |
US20180188959A1 (en) | 2016-12-29 | 2018-07-05 | Shachi K. Thakkar | Memory Module With Integrated Training |
US10642781B2 (en) | 2017-04-07 | 2020-05-05 | Qualcomm Incorporated | Boot time determination of calibration parameters for a component coupled to a system-on-chip |
US10628064B2 (en) * | 2017-08-17 | 2020-04-21 | Qualcomm Incorporated | Parameter override mechanism for memory systems |
US11176986B2 (en) * | 2019-12-30 | 2021-11-16 | Advanced Micro Devices, Inc. | Memory context restore, reduction of boot time of a system on a chip by reducing double data rate memory training |
-
2019
- 2019-12-30 US US16/730,086 patent/US11176986B2/en active Active
-
2020
- 2020-11-25 WO PCT/US2020/062292 patent/WO2021137980A1/en unknown
- 2020-11-25 EP EP20908865.7A patent/EP4085329A4/en active Pending
- 2020-11-25 KR KR1020227022120A patent/KR20220123512A/ko unknown
- 2020-11-25 CN CN202080090909.4A patent/CN114868111A/zh active Pending
- 2020-11-25 JP JP2022538899A patent/JP2023508660A/ja active Pending
-
2021
- 2021-11-15 US US17/526,429 patent/US11682445B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2023508660A (ja) | 2023-03-03 |
US11682445B2 (en) | 2023-06-20 |
EP4085329A4 (en) | 2024-01-10 |
EP4085329A1 (en) | 2022-11-09 |
US11176986B2 (en) | 2021-11-16 |
KR20220123512A (ko) | 2022-09-07 |
WO2021137980A1 (en) | 2021-07-08 |
US20210201986A1 (en) | 2021-07-01 |
US20220076739A1 (en) | 2022-03-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11221772B2 (en) | Self refresh state machine mop array | |
KR102235055B1 (ko) | 미세 입도의 리프레시 | |
US11682445B2 (en) | Memory context restore, reduction of boot time of a system on a chip by reducing double data rate memory training | |
KR102395745B1 (ko) | 스트릭 및 판독/기입 트랜잭션 관리 기능을 갖는 메모리 제어기 아비터 | |
CN109863481B (zh) | 用于平台裕度调节和调试的软件模式寄存器访问 | |
CN109219806B (zh) | 低功率存储器节流 | |
JP7521132B2 (ja) | アービトレーション中の書き込みバンクグループのマスク | |
JP7506272B2 (ja) | メモリコントローラ電力状態 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |