低功率存储器节流的制作方法

文档序号:16637191发布日期:2019-01-16 07:08阅读:210来源:国知局
低功率存储器节流的制作方法

本公开一般来说涉及数据处理系统,并且更具体地,涉及可以低功率模式介接至存储器的数据处理系统。



背景技术:

计算机系统通常使用昂贵且高度密的动态随机访问存储器(dram)芯片用于主存储器。当今市场上出售的大多数dram芯片与联合电子设备工程委员会(jedec)颁布的各种双数据率(ddr)dram兼容。ddrdram通过各种低功率模式来提供高性能和低功率操作。这些低功率模式中的一种称作预充电断电。在预充电断电期间,对所有条预充电,可停用片上延迟锁相环(dll),可关闭输入时钟,并且可停用输出缓冲器以显著降低功率消耗。预充电断电可相对快速地退出,并且可通过维持dll运行来加速退出时间。另一低功率模式为活动断电。活动断电与预充电断电的不同之处在于,至少一条保持活动,即,有一行开路,因此比预充电断电更快地退出。另一低功率模式为自刷新模式。在自刷新模式中,所有条都空闲,并且所有外部时钟都被移除,但是dram通过使用内建定时器定期刷新所有行来保持其内容。

现代ddr存储器控制器保持队列以存储待决存储器访问请求,从而允许不按次序挑选待决存储器访问请求以提高效率。举例来说,存储器控制器可不按次序从队列检索针对给定存储器组中的同一行的多个存储器访问请求,并且连续地发出至存储器系统以避免预充电当前行和激活另一行的开销。除了提高效率,存储器控制器将ddrdram的一组或多组置于低功率状态,预期功率节省将超过进入和退出此状态所要求的额外时间。已知的存储器控制器并不将ddrdram的特定组置于低功率状态,除非队列中没有针对所述条的待决存储器访问请求。

附图说明

图1以框图形式示出根据一些实施方案的数据处理系统;

图2以框图形式示出适用于图1的数据处理系统的高级处理单元(apu);

图3以框图形式示出根据一些实施方案的适用于图2的apu的存储器控制器以及相关联的物理接口(phy);

图4以框图形式示出根据一些实施方案的适用于图2的apu的存储器控制器以及相关联的phy;

图5以框图形式示出根据一些实施方案的存储器控制器;和

图6示出根据一些实施方案的可由图5的存储器控制器使用的流程图。

在以下描述中,不同图中使用的相同的附图标号指示相似或相同的项目。除非另外指出,否则单词“联接”及其相关联的动词形式包括直接连接和通过本领域中已知手段的间接电气连接,并且除非另外指出,否则对直接连接的任何描述也意味着使用适当形式间接电气连接的替代性实施方案。

具体实施方式

如下文在一种形式中描述,一种数据处理系统包括存储器通道,所述存储器通道包括多个组,和数据处理器。数据处理器联接至存储器通道,并且适用于访问多个组中的每一个组。响应于检测到预定事件,数据处理器选择多个组中的活动组,并且将除活动组以外的其他组置于低功率状态,其中所述其他组在检测到预定事件时包括至少一个具有待决请求的组。数据处理器随后处理针对所述活动组的存储器访问请求。

在另一形式中,数据处理器包括存储器访问代理和联接至存储器访问代理的存储器控制器。存储器控制器适用于联接至包括第一多个组的存储器系统。存储器控制器响应于检测到第一预定事件而选择第一多个组中的活动组,同时将第一多个组中除活动组以外的其他组置于低功率状态。举例来说,预定事件可为热事件,并且低功率状态可为预充电断电状态。其他组在检测到预定事件时包括至少一个具有待决请求的组。存储器控制器随后处理针对所述活动组的至少一个存储器访问请求。

在另一种形式中,一种用于节流对存储器系统的存储器访问的方法可用于减缓潜在有害的热事件。检测热事件,并且响应于检测到热事件,选择多个组中的活动组,同时将多个组中除活动组以外的其他组置于低功率状态。其他组包括至少一个具有待决请求的组。处理针对活动组的至少一个存储器访问请求。

图1以框图形式示出根据一些实施方案的数据处理系统100。数据处理系统100通常包括呈加速处理单元(apu)形式的数据处理器110、存储器系统120、外围组件快速互连(pcie)系统150、通用串行总线(usb)系统160,和磁盘驱动器170。数据处理器110操作为数据处理系统100的中央处理单元(cpu),并且提供可用于现代计算机系统的各种总线和接口。这些接口包括两个双数据率(ddrx)存储器通道、用于连接至pcie链接的pcie根联合体、用于连接至usb网络的usb控制器,和针对串列高级技术附件(sata)海量存储装置的接口。

存储器系统120包括存储器通道130和存储器通道140。存储器通道130包括一组连接至ddrx总线132的双列直插存储器模块(dimm),包括在本实施例中对应于独立组的代表性dimm134、136和138。类似地,存储器通道140包括一组连接至ddrx总线142的dimm,包括代表性dimm144、146和148。

pcie系统150包括连接至数据处理器110中的pcie根联合体的pcie开关152、pcie装置154、pcie装置156和pcie装置158。pcie装置156又连接至系统基本输入/输出系统(bios)存储器157。系统bios存储器157可为各种非易失性存储器存储器类型中的任何一种,诸如只读存储器(rom)、快速电可擦可编程rom(eeprom),等等。

usb系统160包括连接至数据处理器110中的usb主机的usb集线器162,以及各自连接至usb集线器162的代表性usb装置164、166和168。usb装置164、166和168可为诸如键盘、鼠标、快速eeprom端口等装置。

磁盘驱动器170经由sata总线连接至数据处理器110,并且提供海量存储装置以用于操作系统、应用程序、应用文件,等等。

通过提供存储器通道130和存储器通道140,数据处理系统100适用于现代计算应用。存储器通道130和140中的每一个可连接至现有技术的ddr存储器,诸如,ddr版本4(ddr4)、低功率ddr4(lpddr4)、图形ddr版本5(gddr5),和高带宽存储器(hbm),并且可适用于未来的存储器技术。这些存储器提供高总线带宽和高速操作。同时,这些存储器还提供低功率模式,以便为电池供电的应用节省功率,诸如膝上型计算机,并且还提供内建热监测。如下文所详述,数据处理器110包括能够在某些情况下节流功率以避免过热并降低热过载机会的存储器控制器。

图2以框图形式示出适用于图1的数据处理系统100中的apu200。apu200通常包括中央处理单元(cpu)内核复合体210、图形内核220、一组显示器引擎230、存储器管理集线器240、数据组构250、一组外围控制器260、一组外围总线控制器270、系统管理单元(smu)280,和一组存储器控制器290。

cpu内核复合体210包括cpu内核212和cpu内核214。在本实施例中,cpu内核复合体210包括两个cpu内核,但在其他实施方案中,cpu内核复合体可包括任意数目个cpu内核。cpu内核212和214中的每一个双向连接至系统管理网络(smn),藉此形成控制组构,并且连接至数据组构250,并且能够提供存储器访问请求至数据组构250。cpu内核212和214中的每一个可为单一内核,或者还可为具有两个或更多个共享某些资源(诸如高速缓存)的单一内核的内核复合体。

图形内核220为能够以高度整合和并行方式执行图形操作的高性能图形处理单元(gpu),诸如顶点处理、碎片处理、着色、纹理共混,等等。图形内核220双向连接至smn和数据组构250,并且能够提供存储器访问请求至数据组构250。就这一点而言,apu200可支持cpu内核复合体210和图形内核220共享相同存储器空间的统一存储器架构,或cpu内核复合体210和图形内核220共享部分存储器空间,但图形内核220还使用cpu内核复合体210不可访问的专用图形存储器的存储器架构。

显示器引擎230渲染并且栅格化图形内核220生成的对象以供显示在监视器上。图形内核220和显示器引擎230双向连接至公共存储器管理集线器240以用于统一转译至存储器系统120中的适当地址,并且存储器管理集线器240双向连接至数据组构250以用于生成此类存储器访问并接收从存储器系统返回的读取数据。

数据组构250包括交叉开关以用于路由任何存储器访问代理与存储器控制器290之间的存储器访问请求和存储器响应。数据组构250还包括由bios定义的系统存储器映射,以用于基于系统配置来判定存储器访问的目标,以及用于每一虚拟连接的缓冲器。

外围控制器260包括usb控制器262和sata接口控制器264,其中每一个双向连接至系统集线器266和smn总线。这两个控制器仅为可用于apu200中的外围控制器的实施例。

外围总线控制器270包括系统控制器或“南桥(southbridge)”(sb)272和pcie控制器274,其中每一个双向连接至输入/输出(i/o)集线器276和smn总线。i/o集线器276也双向连接至系统集线器266和数据组构250。因此,举例来说,cpu内核可通过数据组构250经由i/o集线器276路由的访问来编程usb控制器262、sata接口控制器264、sb272或pcie控制器274中的寄存器。

smu280为本地控制器,所述控制器控制apu200的资源的操作并且使其间通信同步。smu280管理apu200上的各个处理器的上电定序,并且经由重设、启用和其他信号控制多个片外装置。smu280包括图2中未示出的一个或多个时钟源,诸如锁相环路(pll),以便为apu200的每一部件提供时钟信号。smu280还管理各个处理器和其他功能块的功率,并且可从cpu内核212和214以及图形内核220接收所量测的功率消耗值以判定适当功率状态。

apu200还实现各种系统监测和功率节省功能。具体地,一个系统监测为热监测。举例来说,如果apu200变热,随后smu280可降低cpu内核212和214和/或图形内核220的频率和电压。如果apu200变得过热,那么可彻底停机。热事件可通过smu280经由smn总线从外部传感器接收,并且作为响应,smu280可降低时钟频率和/或电源电压。

图3以框图形式示出根据一些实施方案的适用于图2的apu200的存储器控制器300以及相关联的物理接口(phy)330。存储器控制器300包括存储器通道310和功率引擎320。存储器通道310包括主机接口312、存储器通道控制器314,和物理接口316。主机接口312经由可扩展数据端口(sdp)将存储器通道控制器314双向连接至数据组构250。物理接口316经由符合ddr-phy接口规范(dfi)的总线将存储器通道控制器314双向连接至phy330。功率引擎320经由smn总线双向连接至smu280,经由高级外围总线(apb)双向连接至phy330,并且还双向连接至存储器通道控制器314。phy330具有连接至存储器通道的双向连接,诸如图1的存储器通道130或存储器通道140。存储器控制器300为单个存储器通道使用单个存储器通道控制器314的存储器控制器的实例,并且具有功率引擎320,以便以下文进一步描述的方式控制存储器通道控制器314的操作。

图4以框图形式示出根据一些实施方案的适用于图2的apu200的另一存储器控制器400以及相关联的phy440和450。存储器控制器400包括存储器通道410和420以及功率引擎430。存储器通道410包括主机接口412、存储器通道控制器414和物理接口416。主机接口412经由sdp将存储器通道控制器414双向连接至数据组构250。物理接口416将存储器通道控制器414双向连接至phy440,并且符合dfi规范。存储器通道420包括主机接口422、存储器通道控制器424和物理接口426。主机接口422经由另一sdp将存储器通道控制器424双向连接至数据组构250。物理接口426将存储器通道控制器424双向连接至phy450,并且符合dfi规范。功率引擎430经由smn总线双向连接至smu280,经由apb双向连接至phy440和450,并且还双向连接至存储器通道控制器414和424。phy440具有连接至存储器通道(诸如图1的存储器通道130)的双向连接。phy450具有连接至存储器通道(诸如图1的存储器通道140)的双向连接。存储器控制器400为具有两个存储器通道控制器的存储器控制器的实例,并且使用共享功率引擎430,以便以下文进一步描述的方式控制两个存储器通道控制器414和存储器通道控制器424的操作。

图5以框图形式示出根据一些实施方案的存储器控制器500。存储器控制器500通常包括存储器通道控制器510和功率控制器550。存储器通道控制器510通常包括接口512、队列514、命令队列520、地址生成器522、内容可寻址存储器(cam)524、重放队列530、刷新逻辑块532、定时块534、页表536、判优器538、纠错码(ecc)校验块542、ecc生成块544,和数据缓冲器(db)546。

接口512具有经由外部总线连接至数据组构250的第一双向连接,和输出。在存储器控制器500中,此外部总线与英国剑桥的armholdings,plc所指定的高级可扩展接口版本4(称作“axi4”)兼容,但在其他实施方案中可为其他类型的接口。接口512将存储器访问请求从第一时钟域(称作fclk(或memclk)域)转译至存储器控制器500内部的第二时钟域(称作uclk域)。类似地,队列514将存储器访问从uclk域提供至与dfi接口相关联的dficlk域。

地址生成器522解码经由axi4总线从数据组构250接收的存储器访问请求的地址。存储器访问请求包括以归一化格式表示的物理地址空间中的访问地址。地址生成器522将归一化地址转化为可用以定址存储器系统120中的实际存储器装置并有效调度相关访问的格式。此格式包括将存储器访问请求与特定组、行地址、列地址、条地址和条群相关联的区域标识符。一旦启动,系统bios查询存储器系统120中的存储器装置,以便判定其大小和配置,并且编程与地址生成器522相关联的一组配置寄存器。地址生成器522使用存储在配置寄存器中的配置,以便将归一化地址转译为适当格式。命令队列520为从数据处理系统100中的存储器访问代理(诸如,cpu内核212和214以及图形内核220)接收的存储器访问请队的列求。命令队列520存储地址生成器522所生成的地址字段,以及允许判优器538有效地选择存储器访问的其他地址信息,包括访问类型和服务质量(qos)标识符。cam524包括有关实施的排序规则的信息,诸如写后写(waw)和写后读(raw)排序规则。

重放队列530为用于存储判优器538所挑选的存储器访问的临时队列,所述存储器访问为等待响应,诸如地址和命令奇偶校验响应、针对ddr4dram的写入循环冗余校验(crc)响应,针对gddr5dram的写入和读取crc响应。重放队列530访问ecc校验块542,以判定所返回的ecc是否正确,并且指出错误。重放队列530允许在这些循环中的一个出现奇偶校验或crc错误的情况下访问重放。

刷新逻辑532包括用于各种断电、刷新和端子电阻(zq)校准循环的状态机,所述循环独立于从存储器访问代理接收的正常读取和写入存储器访问请求而生成。举例来说,如果存储器组处于预充电断电,那么必须定期唤醒以运行刷新周期。刷新逻辑532定期生成刷新命令,以防止dram芯片中存储器单元的存储器电容器的电荷渗漏所引起的数据错误。另外,刷新逻辑532定期校准zq,以防止归因于系统中热变化的裸片上端子电阻的失配。

判优器538双向连接至命令队列520,并且为存储器通道控制器510的心部。藉此通过智能调度访问来改善效率,从而改善存储器总线的使用。通过基于dram定时参数判定命令队列520中的特定访问是否有资格发出,判优器538使用定时块534来实施合适定时关系。举例来说,每一dram具有激活命令之间的最小指定时间,称作“trc”。定时块534保持一组计数器,所述计数器基于此和jedec规范中指定的其他定时参数来判定资格,并且双向连接至重放队列530。页表536为判优器538保持有关每一组中的活动页和存储器通道的组的状态信息,并且双向连接至重放队列530。

响应于写入从接口512接收的存储器访问请求,ecc生成块544根据写入数据计算ecc。db546存储写入数据和ecc以用于所接收的存储器访问请求。当判优器538挑选对应的写入访问以分派至存储器通道时,db546输出组合的写入数据/ecc至队列514。

功率控制器550通常包括连接至高级可扩展接口的接口552、版本1(axi)、apb接口554,和功率引擎560。接口552具有连接至smn的第一双向连接,其包括用于接收标记为“event_n”的事件信号(图5中单独示出)的输入,和输出。apb接口554的输入连接至接口552的输出,并且输出经由apb连接至phy。功率引擎560具有连接至接口552的输出的输入、连接至队列514的输入的输出,和用于提供标记为“thermalthrottle”的信号的输出。功率引擎560包括一组配置寄存器562、微控制器(μc)564、自刷新控制器(slfref/pe)566,和可靠的读取/写入定时引擎(rrw/te)568。配置寄存器562经由axi总线编程,并且存储配置信息以控制存储器控制器500中各块的操作。因此,配置寄存器562的输出连接至图5中未详细示出的这些块。自刷新控制器566为允许除刷新逻辑532自动生成刷新之外的手动生成刷新的引擎。可靠的读取/写入定时引擎568提供连续的存储器访问流至存储器或i/o装置,诸如出于ddr接口最大读取延迟(mrl)训练和环回测试的目的。μc564用于判定是否节流热事件,等等。因此,响应于event_n信号的激活,μc564判定配置寄存器562的设置,并且如果被选择,那么激活thermalthrottle信号。

存储器通道控制器510包括允许其挑选存储器访问以分派至相关联存储器通道的电路。为了做出所要的判优决定,地址生成器522将地址信息解码为存储器系统中的包括组、行地址、列地址、条地址和条群的预解码信息,并且命令队列520存储预解码信息。配置寄存器562存储配置信息以判定地址生成器522如何解码所接收的地址信息。判优器538使用所解码的地址信息、定时块534所指示的定时资格信息,和页表536所指示的活动页信息,来有效地调度存储器访问同时观察诸如qos要求的其他判据。举例来说,判优器538实现对开路页的访问的优选要求,以便避免改变存储器页所要求的预充电和激活命令的开销,并且通过将针对一个条的开销访问与针对另一条的读取和写入访问交错而加以隐藏。具体地,在正常操作期间,判优器538正常地保持不同条中的页开路,直至所述页在选择不同页之前被要求预充电。

如果相关联存储器通道中的至少一个dimm过热,那么存储器通道激活event_n信号。event_n信号为线或信号,其指出热事件已在存储器通道的组中的一组或多组中发生。响应于检测到event_n信号的激活,功率引擎560可被编程以激活thermalthrottle信号。响应于thermalthrottle信号的激活,判优器538改变其策略,从而改变低功率与效率之间的权衡以支持低功率。应注意,在其他实施方案中,功率引擎560可在不使用事件输入信号的情况下检测事件,诸如通过轮询响应于事件而设置的寄存器。判优器538选择多个组中的活动组,并且将除活动组以外的其他组置于低功率状态。在这种情况下,其他组在激活thermalthrottle信号时包括至少一个具有待决请求的组。接着,判优器538挑选针对活动组的存储器访问请求。在一些情形下,此存储器访问请求将被绕过以服务其他请求,以便提供访问效率或隐藏开销访问。

图6示出根据一些实施方案的可由图5的存储器控制器500使用的流程图600。流程在框610开始。在动作框620,判优器538使用默认判据处理与uclk信号同步的其次一或多个请求,如上文参考

图5所述。在决定框630,判优器538通过判定thermalthrottle信号是否活动来检测出热事件。如果thermalthrottle信号为失活的,那么流程返回至动作框620,并且判优器538使用默认判据处理与uclk信号同步的其次一或多个请求。然而,如果thermalthrottle信号为活动的,那么流程继续至动作框640。在动作框640中,判优器538在较多请求保持未决的情况下选择活动组作为当前组,或选择其他组。在动作框650,判优器538将除活动组以外的其他组置于低功率状态,诸如活动断电状态、预充电断电状态,或自刷新状态。在动作框660,存储器控制器500处理针对活动组的至少一个存储器访问请求。

在决定框670,判优器538通过取样thermalthrottle信号来判定热事件是否已结束。如果thermalthrottle信号为失活的,即指出热事件已结束,那么流程继续返回至动作框620,其中判优器538处理默认判据所判定的下一请求。应注意,多个条可同时为活动的,如使用默认判据所允许。如果thermalthrottle信号仍为活动的,即指出热事件尚未结束,那么流程继续至决定框680。决定框680判定是否选择另一组。举例来说,如果针对命令队列520中的活动组的所有请求已处理,那么其他组将被选择(假设其他组具有一个或多个待决请求)。其他判据也为可行的,诸如活动组中的当前页中不具有其他待决请求,或小于待决通道的特定数目个其他请求。在这种情况下,流程继续返回至动作框640,并且判优器538选择新的活动组,从而将所有其他组(包括近期活动组)置于低功率状态。如果判优器538并未选择另一组,那么流程返回至动作框660,并且判优器538处理活动组中的下一命令。

不同于已知存储器控制器,存储器控制器500将除活动组以外的所有组置于低功率状态,其中其他组中的一个或多个含有待决请求。通过基于是否存在任何待决请求而并不调节有关将特定组置于低功率的决策,存储器控制器500降低处当前组以外的所有组的功率,以便更好地缓解热事件。此外,存储器控制器500认识到,希望在存在热事件的情况下改变延迟时间和公平与功率消耗之间的权衡。在存在热事件的情况下,存储器控制器500将平衡移向较低功率消耗,此有助于减缓热事件。

图6的方法可以硬件和软件的各种组合来实现。举例来说,图5示出存储器控制器的实施方案,所述存储器控制器使用受软件控制而操作的μc564来检测并报告热事件,而判优器538以硬件电路实现。此硬件电路可包括优先级编码器、有限状态机、可编程逻辑阵列(pla),等等。然而,在其他实施方案中,判优器538可以执行所存储程序指令的微控制器来实现。软件部件中的一些可存储在计算机可读存储介质中,以便由至少一个处理器执行。此外,图6中示出的一些或所有的方法也可由指令来管理,所述指令存储在计算机可读存储介质中并且由至少一个处理器执行。图6中示出的操作中的每一个可对应于存储在非暂时性计算机存储器中或计算机可读存储介质中的指令。在各种实施方案中,非暂时性计算机可读存储介质包括:磁盘或光盘存储装置、诸如闪存的固态存储装置,或其他非易失性存储器装置。存储在非暂时性计算机可读存储介质中的计算机可读指令可以是源代码、汇编语言代码、目标代码或可由一个或多个处理器解译且/或执行的其它指令格式。

图5的存储器控制器500或其任何部分可由呈数据库形式的计算机可访问数据结构或其他数据结构来描述或表示,所述其他数据结构可由程序读取并且直接或间接用来制造集成电路。例如,这种数据结构可以是用高级设计语言(hdl)(诸如verilog或vhdl)对硬件功能性的行为级描述或寄存器传送级(rtl)描述。所述描述可以由合成工具读取,所述合成工具可以对描述进行合成,以便从合成库生成包括一系列门的网表。所述网表包括门集合,所述门还表示包括集成电路的硬件的功能性。随后可放置或选路发送所述网表以产生描述要应用于掩模的几何形状的数据集。然后可以在各种半导体制造步骤中使用掩模来生产集成电路。或者,计算机可访问存储介质上的数据库根据需要可以是网表(具有或不具有合成库)或数据集或图形数据系统(gds)ii数据。

虽然描述了特定实施方案,但本领域技术人员应了解这些实施方案的各种修改。举例来说,存储器控制器可将存储器置于不同于上述活动断电、预充电断电和自刷新状态的各种低功率状态。此外,存储器通道控制器510和/或功率引擎550的内部架构可在各个实施方案中有所变化。存储器控制器500可介接至各种类型的存储器,包括ddrx存储器、hbm、rambusdram(rdram),和类似存储器。尽管所示出的实施方案展示对应于独立dimm的每一存储器组,但在其他实施方案中,每一dimm可支持多组。

因此,所附权利要求意图涵盖落入所公开实施方案的范围内的对所公开实施方案的所有修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1