用于降低便携式计算设备中的易失性存储器待机功率的系统和方法与流程

文档序号:11530460阅读:279来源:国知局
相关申请的交叉引用本申请要求享有于2014年11月20日递交的、名称为“systemsandmethodsforreducingvolatilememorystandbypowerinaportablecomputingdevice”的美国临时专利申请no.62/082,434(代理人案号no.17006.0381u1)的优先权的权益,在此通过引用的方式将该申请的全部内容并入。便携式计算设备(例如,笔记本、超级本、蜂窝电话、智能电话、平板电脑、便携式数字助理(pda)以及便携式游戏控制台)和可穿戴计算设备(例如,智能手表、健身追踪器、运动与全球定位系统(gps)手表、心率监控器以及全球定位系统(gps)设备)持续提供不断扩展的特征和服务阵列。便携式和可穿戴计算设备为用户提供了前所未有的信息、资源及通信获取水平。为了跟上这些服务增强,这类设备已经变得更强大且更复杂。便携式和可穿戴计算设备现在通常包括片上系统(soc),其包括嵌入在单个硅基板上的一个或多个芯片部件(例如,多个中央处理单元(cpu)、图形处理单元(gpu)、数字信号处理器等)。soc耦合到易失性存储器,例如,动态随机存取存储器(dram)。dram可以包括各种类型的双数据率(ddr)同步dram,包括针对低功率ddr(lpddr)和图形ddr(gddr)的各种标准。在许多便携式和可穿戴计算设备中,当设备不活动时,ddr存储器通常置于待机功率或睡眠模式以节约电池功率。然而,即使在待机时,ddr仍然消耗大量的总待机功率预算。待机功率通常是移动设备的关键竞争度量标准,因此其直接影响用户体验(例如,电池寿命、使用天数(dou))。当处于待机模式时,ddr存储器的外围电路被断电。存储器内的硬件状态机保持唤醒以周期性地刷新(“自刷新”)ddr存储器阵列中的行,以防止存储器内容的损坏。在待机模式中,自刷新电流是功率消耗的关键来源。为了降低待机功率,一些现有解决方案依赖软件来压缩ddr中的所有数据内容,并且将压缩的内容保存到硬件驱动或闪存中。当退出待机模式并进入活动模式时,压缩的存储器内容(或存储器图像)首先从硬件驱动或闪存中被取回,被解压缩,并且然后存储回到ddr存储器中。由于压缩和解压缩由应用处理器执行,所以需要移动设备的睡眠周期相对长(例如,在大多数情况下为大约几小时),以补偿在压缩并将压缩的内容存储至硬件驱动或闪存中、以及从硬件驱动或闪存中取回并恢复的过程中所消耗的功率。在利用硬件驱动的情况下,另一个缺陷是其存取时间长,导致睡眠或唤醒时间长。在利用闪存的情况下,另一个缺陷是具有有限数量的编程/擦除(p/e)周期。例如,为了在具有典型的3000p/e周期的两位mlc(多级单元)闪存设备中存储1gb的压缩的ddr内容,实施方式可能需要高达16gb的闪存来实现冗余,因为mlc闪存的每个gb只能被擦除和写入3000次。然而,另外一个缺陷是许多存储器控制器执行库交错,这意味着整个ddr内容需要被压缩或根本不压缩。其它解决方案依赖于操作系统(o/s)结束进程以释放存储器,除其它缺陷之外,这还要求复杂的软件重构。因此,本领域中需要用于降低便携式计算设备中的dram存储器待机功率的改进的系统和方法。技术实现要素:公开了用于降低便携式计算设备中的易失性存储器待机功率的系统和方法的各种实施例。一个这种方法包括接收易失性存储器设备的进入待机功率模式的请求。确定用于压缩存储于易失性存储器设备的多个库中的内容的一个或多个压缩参数。基于所述一个或多个压缩参数压缩存储的内容以释放多个库的至少其中之一。在待机功率模式期间,该方法禁用通过压缩而释放的多个库中的一个或多个的至少一部分的自刷新。另一个实施例是用于降低便携式计算设备中的易失性存储器待机功率的系统。一个这种系统包括耦合到dram控制器的动态随机存取存储器(dram)设备。dram设备包括包含存储器内容的多个库。dram控制器包括被配置为绕过地址交错部件的dram压缩部件。dram压缩部件包括逻辑,所述逻辑被配置为:接收soc或dram控制器的进入待机功率模式的请求;确定用于压缩存储于多个库中的存储器内容的一个或多个压缩参数;基于一个或多个压缩参数来压缩存储器内容以释放所述多个库的至少其中之一;并且在待机功率模式期间,禁用通过压缩而释放的多个库中的一个或多个的至少一部分的自刷新。附图说明在附图中,除非另外指示,否则相似的附图标记贯穿各个视图指代相似的部件。对于带有字母字符标号的附图标记,例如“102a”或“102b”,字母字符标号可以区分同一图中的两个相似的部件或元件。当旨在使附图标记涵盖所有图中的具有相同附图标记的所有部件时,可以省略附图标记的字母字符标号。图1是示出了用于降低便携式计算设备中的dram存储器待机功率的系统的实施例的框图。图2是示出了在图1的系统中的dram压缩部件的实施例的框图。图3是示出了在图1的系统中实施的用于降低dram存储器待机功率的方法的实施例的流程图。图4是示出了被压缩的示范性dram设备的示意图。图5是示出了用于压缩dram内容的方法的实施例的流程图。图6示出了并入示范性便携式计算设备(pcd)中的图1的系统。具体实施方式词语“示范性”在本文中用于表示“用作示例、实例或说明”。本文中被描述为“示范性”的任何方面不一定要被解释成相对于其它方面是优选的或有利的。在本说明书中,术语“应用”或“图像”也可以包括具有可执行内容的文件,例如:目标代码、脚本、字节代码、标记语言文件以及补丁。此外,本文提及的“应用”也可以包括本质上不可执行的文件,例如可能需要被打开的文档或需要被存取的其它数据文件。术语“内容”也可以包括具有可执行内容的文件,例如:目标代码、脚本、字节代码、标记语言文件以及补丁。此外,本文提交的“内容”也可以包括本质上不可执行的文件,例如可能需要被打开的文档或需要被存取的其它数据文件。如在本说明书中使用的,术语“部件”、“数据库”、“模块”、“系统”等旨在指代计算机相关的实体,硬件、固件、硬件与软件的组合、软件、或执行中的软件。例如,部件可以是但不限于在处理器上运行的进程、处理器、对象、可执行文件、执行的线程、程序和/或计算机。通过例示的方式,在计算设备上运行的应用以及计算设备都可以是部件。一个或多个部件可以驻留在进行和/或执行的线程内,并且部件可以位于一个计算机上和/或分布在两个或更多计算机之间。此外,这些部件可以从具有存储于其上的各种数据结构的各种计算机可读介质执行。所述部件可以例如根据具有一个或多个数据分组(例如,来自通过信号的方式与本地系统、分布式系统中的另一部件交互和/或跨越诸如因特网等网络而与其它系统交互的一个部件的数据)的信号通过本地和/或远程进程的方式来进行通信。图1示出了用于降低便携式计算设备中的dram存储器待机功率的系统100的实施例的框图。应当理解的是,系统100可以在任何计算设备中实现,包括个人计算机、工作站、服务器和便携式计算设备(pcd)。适合的pcd可以包括例如移动电话、便携式数字助理(pda)、便携式游戏控制台、掌上计算机、平板计算机或可穿戴计算设备(例如,智能手表、健身追踪器、心率监控器、gps跟踪设备等)。系统100包括片上系统(soc)102,其耦合到例如dram104的易失性存储器。dram104可以包括一个或多个存储器集成电路。应当理解的是,dram104可以包括各种类型的双数据率(ddr)同步dram,包括针对低功率ddr(lpddr)和图形ddr(gddr)的各种已知接口标准。soc102包括经由例如soc总线105耦合到dram存储器控制器110的一个或多个处理设备。处理设备或主机可以包括中央处理单元(cpu)106、图形处理单元(gpu)108、数字信号处理器(dsp)、视频编码/解码引擎107、调制解调器109、无线连接逻辑块111或任何其它存储器客户端。dram控制器110控制通往dram104的存储器读/写事务。在实施例中,dram控制器110包括地址交错逻辑112、读/写收集队列114、dram协议引擎116和dram压缩部件120。如本领域已知的,地址交错逻辑112被配置为通过跨存储器库均匀地扩展存储器地址来使通往dram104的读和写事务交错。通过这种方式,连续的存储器读和写事务可以依次使用每个存储器库,进而由于降低了存储器库变得可用于期望的操作的等待时间而产生较高的存储器吞吐量。读/写收集队列114通过从主机中将读和写分组至同一页面以使它们能够尽可能紧密地一起被执行而提高了dram存储器的利用效率。通过这种方式,来自主机的许多读或写事务共同分担使库可用的成本(例如,关闭和/或打开库中的页面)。dram协议引擎116为dram104提供接口,以使所有的读和写能够被正确执行,以满足dram存储器接口标准中规定的所有定时要求。如以下更详细的描述,dram压缩部件120被配置为压缩dram104的内容,并将存储器设备配置为阻止已释放的库的自刷新。由于已释放的库不包含有效信息,因此在待机模式期间无需自刷新,这降低了功率消耗并延长了电池寿命。在图1的实施例中,dram压缩部件120包括压缩引擎124、有限状态机122、以及用于存储dram库压缩状态126的一个或多个寄存器。如图1所示,dram压缩部件120可以被配置为绕过地址交错逻辑112,由此使压缩引擎124能够压缩dram104中的库中的任一个。应该理解的是,压缩引擎124可以支持任何类型的压缩算法。在实施例中,压缩算法包括无损数据压缩算法,例如,已知的lempel-ziv(lz)或其它压缩方法中的任一种。有限状态机122维护dram104中每个库的状态数据,以确定库是压缩的、部分压缩的还是未压缩的。在部分压缩的情况下,也将记录压缩内容的位置和大小。在图2的示例中,dram104可以包括八个或更多库(库0-库7)。状态201、203、205、207、209、211、213以及215分别对应于库0、库1、库2、库3、库4、库5、库6和库7。库状态可以存储在一个或多个寄存器中。如图2中所示,每个库的状态数据可以包括具有压缩状态、部分压缩状态、或未压缩状态的库压缩状态206。如果库处于压缩状态,可以存储附加的状态数据以用于管理压缩/解压缩,包括一个或多个压缩块的尺寸和起始地址。在图2中,库0处于压缩状态。字段208包括压缩内容的块1的尺寸,并且字段210识别块1的起始地址。字段212包括压缩内容的块2的尺寸,并且字段214识别块2的起始地址。图3示出了由dram压缩部件120实施方法300的实施例。在块302,接收将dram104置于待机功率模式的请求。应该理解的是,在所有主机被断电后,可以通过在cpu主机或功率管理器上执行的软件命令或通过soc(未在图中示出)上的硬件压缩引擎外部的硬件有限状态机来启动dram104的进入待机功率模式的请求。有限状态机122可以被配置有用于压缩存储在库中的内容的一个或多个压缩参数。例如,压缩参数可以指定压缩块的尺寸、待压缩的库的数量、溢出库的位置等。压缩参数可以被提供给dram压缩部件120,或以其它方式被编程或存储在有限状态机122中。在块304,确定压缩参数。在块306,排空存储器客户端(例如cpu106、gpu108)的所有存储器事务。当所有存储器内容被排空并存储在dram104中,存储器客户端可以被断电(块308)。在块310,基于压缩参数来压缩存储器内容。例如,假定压缩比是2:1,两个库中的内容可以被压缩到单个库中,这释放了一个库。如果压缩算法不产生溢出压缩内容,则更新库的压缩状态数据(块314)并指导功率管理器使dram控制器110断电。然而,如果存在溢出内容,则压缩引擎压缩(块318)该剩余内容并将由此产生的压缩内容存储在压缩参数识别的溢出库中,之后dram控制器110可以被断电(块316)。如果存在与压缩算法相关联的元数据,则可以将元数据存储在针对快速解压缩时间的压缩引擎中的寄存器中或存储在针对硅面积效率的dram中。图4示出了在压缩之前处于第一状态402并且在压缩之后处于第二状态404的示范性dram设备104。dram设备104包括八个库(库0-库7),每个库包括未压缩内容。库2和3中的未压缩内容被压缩到库2中。库4和5被压缩到库3中,并且库6和7被压缩到库4中。如在已经完成压缩之后的第二状态404中所示,库5、6和7被释放。由于库5、6和7不再包含有效内容,无需对这些库执行自刷新。只有库0-4需要被自刷新。应该理解的是,可以以各种方式禁用自刷新,包括例如在每个库的基础上针对一个或多个库、多个库、或一个或多个库的部分或片段。以这种方式中,可以降低待机功率模式期间的自刷新操作的功率消耗。如图4所示,溢出压缩内容406可以与其它未压缩内容一起存储在库1中,以使得库1成为部分压缩库。当设备再次变得活动并且dram控制器110被加电时(即,离开待机功率模式),在压缩内容被解压缩以返回到状态402之前或之时,可以首先读取未压缩内容(库0和1)。压缩算法也可以在库之一中(例如,库4-图4)、在溢出库中或在状态寄存器之一中产生和存储元数据217。对于要求使用元数据的压缩算法,元数据217可以包括用于控制对压缩内容的解压缩的数据。元数据217可以包括在压缩时待更新的最后块和在解压缩时待取回的第一块。为了最大限度节约功率,压缩引擎通常被配置为压缩尽可能多的库,通常高达n-2个库,其中n为dram存储器中的库的总数量。剩余的两个库被保留为溢出库。这些溢出库通常包含唤醒可能需要的任何o/s代码以及用于在唤醒后立即快速显示的帧缓冲器内容。图5示出了用于压缩dram104(图4)中的内容的方法500的示范性实施例。在块502,压缩逻辑被配置有上述的压缩参数。在排空存储器操作(块306-图3)后,可以指导压缩引擎124基于压缩参数启动压缩。在块506,有限状态机122指导压缩引擎124开始从待压缩的第一库(库2-图4)进行提取。在块508,压缩引擎124将库2底部的第一页面提取到第一压缩缓冲器(存储器缓冲器202-图2)中,并开始压缩该页面。在压缩引擎124压缩第一页面时,在块510,提取逻辑继续从库2提取第二页面的内容。在块512,当第一页面的压缩完成时,将压缩内容写入库2中现在为空的第一页面。如果库2的压缩没有完成(判定块514),过程流返回到块510。当库2的压缩完成时,以相似的方式压缩其它库(判定块516)。当所有库都被压缩时,可以更新库状态126(块520)。如果存在溢出内容(判定块518),则该内容被压缩并将溢出内容写入溢出库。如上所述,系统100可以并入任何期望的计算系统中。可能特别有利的是,在其中较短的休眠次数使得难以节省休眠功率的便携式计算设备或可穿戴设备中实施系统100。图6示出了并入示范性便携式或可穿戴计算设备(pcd)600的系统100。片上系统(soc)102包括dram控制器110。显示控制器328和触摸屏控制器606可以耦合到包括第0核610、第1核612以及第n核614的多核602。片上系统102外部的触摸屏显示器606可以耦合到显示器控制器328和触摸屏控制器330。图6进一步示出了mpeg(动态图像专家组)视频编码器334耦合到多核处理器602。此外,视频放大器336耦合到视频编码器334和触摸屏显示器606。此外,视频端口338耦合到视频放大器336。如图6中所示,通用串行总线(usb)控制器340耦合到处理器集群中的一个或多个。此外,usb端口342耦合到usb控制器340。存储器104和用户识别模块(sim)卡346也可以耦合到多核处理器602。数码相机348可以耦合到多核处理器602。在示范性方面,数码相机348是电荷耦合器件(ccd)相机或互补金属氧化物半导体(cmos)相机。立体声音频编码解码器(codec)350可以耦合到多核处理器602。另外,音频放大器352可以耦合到立体声音频codec350。在示范性方面,第一立体声扬声器354及第二立体声扬声器356耦合到音频放大器352。麦克风放大器358也可以耦合到立体声音频codec350。此外,麦克风360可以耦合到麦克风放大器358。在特定方面,频率调制(fm)无线电调谐器362可以耦合到立体声音频codec350。而且,fm天线364耦合到fm无线电调谐器362。此外,立体声耳机366可以耦合到立体声音频codec350。图6进一步示出了射频(rf)收发器368可以耦合到多核处理器602。rf开关370可以耦合到rf收发器368和rf天线372。键盘204、具有麦克风的单声道耳机376、以及振动器设备378可以耦合到处理器126。图6还示出了电源380可以耦合到片上系统102。在特定方面,电源380是直流(dc)电源,其将电力提供给pcd600的需要电力的各种部件。此外,在特定方面,电源是可再充电dc电池或从连接到ac电源的交流(ac)到dc变压器得到的dc电源。图6进一步指示pcd600也可以包括可以用于接入数据网络(例如,局域网、个人区域网或任何其它网络)的网卡388。网卡388可以是蓝牙网卡、wifi网卡、个人区域网(pan)卡、个人区域网超低功率技术(peanut)网卡、电视/有线/卫星调谐器、或本领域中公知的任何其它网卡。此外,网卡388可以并入芯片中,即,网卡388可以是芯片中的完全解决方案,并且可能并非独立网卡388。参见图6,应理解的是,存储器104、触摸屏显示器606、视频端口338、usb端口342、相机348、第一立体声扬声器354、第二立体声扬声器356、麦克风360、fm天线364、立体声耳机366、rf开关370、rf天线372、键盘374、单声道耳机376、振动器378以及电源380可以在片上系统102的外部。本说明书中所描述的过程或过程流中的某些步骤自然地发生在其它步骤之前,以使本发明如所描述的那样起作用。然而,本发明不限于所描述的步骤的次序,只要这种次序或序列不更改本发明的功能性。即,应认识到,一些步骤可以在其它步骤之前、之后或与其它步骤并行地(大体上同时地)执行而不脱离本发明的精神和范围。在一些情况下,某些步骤可以被省略或不执行而不脱离本发明。此外,例如“其后”、“然后”、“接下来”等词语不是要限制步骤的次序。这些词语仅用于引导读者阅读对示范性方法的描述。另外,编程领域的普通技术人员能够编写计算机代码或识别适当的硬件和/或电路以基于(例如)本说明书中的流程图和相关联的描述来无困难地实施所公开的发明。因此,对于充分理解如何制作和使用本发明来说,对程序代码指令或详细的硬件设备的特定集合的公开不被视为是必需的。在以上描述中且结合可以示出各种过程流的图更详细地阐释所主张的计算机实施的过程的发明性功能性。在一个或多个示范性方面中,可以以硬件、软件、固件或其任何组合来实施所描述的功能。如果以软件实施,则可以将功能作为一个或多个指令或代码在计算机可读介质上进行存储或传输。计算机可读介质包括计算机存储介质以及包括促进计算机程序从一处传递到另一处的任何介质的通信介质两者。存储介质可以是可以由计算机访问的任何可用介质。举例来说而非限制地,这种计算机可读介质可以包括ram、rom、eeprom、nandflash、norflash、m-ram、p-ram、r-ram、cd-rom或其它光盘存储、磁盘存储或其它磁性存储设备,或可以用以载运或存储采用指令或数据结构的形式的期望的程序代码并且可以由计算机存取的任何其它介质。同样,可以恰当地将任何连接称作计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线(dsl)或例如红外线、无线电及微波的无线技术从网站、服务器或其它远程源传输软件,则同轴电缆、光纤电缆、双绞线、dsl或例如红外线、无线电及微波的无线技术包括在介质的定义中。如本文中所使用,磁盘及光盘包括压缩光盘(cd)、激光光盘、光学光盘、数字多功能光盘(dvd)、软磁盘及蓝光光盘,其中磁盘通常磁性地复制数据,而光盘使用激光光学地再现数据。以上的组合也应该包括在计算机可读介质的范围内。替代实施例对于本发明所属领域的普通技术人员而言是显而易见的,而不会脱离本发明的精神和范围。因此,虽然已详细地示出和描述了选定方面,但应理解,可以在其中进行各种替代和更改而不脱离如由所附权利要求限定的本发明的精神和范围。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1