通过存储器压缩提高降低的功率状态的移动计算系统的电池寿命的制作方法

文档序号:6609705阅读:157来源:国知局
专利名称:通过存储器压缩提高降低的功率状态的移动计算系统的电池寿命的制作方法
技术领域
本发明的实施例通常涉及集成电路的领域,更确切地说,涉及用于通过存储器压缩来提高处于降低的功率状态的移动计算系统的电池寿命的系统、方法和装置。
背景技术
移动计算系统利用电池提供电源。随着对电池能量的需求与日俱增,电池性能却还未跟上需求的步伐。降低计算系统的组件所消耗的功率是提高电池寿命的一种方式。
存储器设备(例如动态随机存取存储器(DRAM)设备)占计算系统所消耗的功率的很大一部分,尤其当计算系统处于降低的功率状态时。例如,根据降低的功率状态的特性以及所安装的存储器的数量,DRAM设备所消耗的功率可以占总的系统功率的将近50%。膝上型电脑的最低推荐存储器的所预计的提高,加上具有较高密度的下一代DRAM设备,将会增加系统存储器的功耗。


在附图的各图中,以实例而非限制的方式说明本发明的实施例,其中相同的参考标号代表相似的元件。
图1是示出了根据本发明的实施例所实施的计算系统的所选方面的方框图;图2是示出了根据本发明的可选实施例所实施的计算系统的所选方面的方框图;图3是示出了根据本发明的实施例所实施的压缩逻辑的所选方面的方框图;图4A和图4B分别示出了根据本发明的实施例的、存储器阵列内的数据被压缩之前和之后的存储器阵列的所选方面;图5是示出了根据本发明的实施例的通过存储器压缩提高移动系统的电池寿命的方法的所选方面的流程图图6是示出根据本发明的实施例的电子系统的所选方面的方框图;图7是示出根据本发明的可选实施例的电子系统的所选方面的方框图。
具体实施例方式
本发明的实施例主要针对用于通过存储器压缩来提高移动计算系统的电池寿命的系统、方法和装置。在某些实施例中,在进入降低的功率状态之前,将系统的主存储器的内容压缩。在这种实施例中,只需要刷新主存储器中包含压缩数据的部分。存储器的剩余部分可以断开电源,这降低了所消耗的功率的量,从而延长了电池寿命。
图1是示出了根据本发明的实施例所实施的移动计算系统的所选方面的方框图。术语“移动计算系统”泛指例如膝上型电脑、掌上型电脑、图形输入板、手持设备、蜂窝电话、个人数字助理等。系统100包括处理器(多个处理器)102、存储器子系统110、永久性存储装置140,以及非易失性存储器150。在可选的实施例中,系统100可以包括更多、更少和/或不同的元件。
处理器102可以是任何种类的处理设备。例如,处理器102可以是微处理器、微控制器等。进一步地,处理器102可以包括任何数量的处理内核或者可以包括任何数量的单独的处理器。
存储器子系统110包括存储器控制器112和存储器模块118。存储器控制器112在图1所示的处理器(多个处理器)102和其它元件之间提供接口。存储器控制器112包括压缩逻辑114和输入/输出端口116。输入/输出(I/O)端口116可以包括接收器、发射器,以及用于与其它集成电路交换信息的相关电路。
在某些实施例中,压缩逻辑114包括用于压缩存储在存储器模块118中的数据的逻辑(例如压缩算法)。压缩逻辑114还可以包括用于将这些包含压缩数据(例如122)的存储器设备120选择性地转移到自刷新状态的逻辑。可以将剩余的存储器设备(例如除122以外的)的电源断开。由于处于自刷新状态的存储器设备的数量减少,所以系统所消耗的功率的量也相应地减少。术语“自刷新状态”泛指周期性地刷新存储器设备的单元的状态。下面参考图3进一步讨论压缩逻辑114的所选方面。
在某些实施例中,压缩逻辑114响应于转移到降低的功率状态的指示而压缩数据。例如,用户(或另一计算系统)可以启动整体的降低的功率状态(例如通过关闭膝上型电脑的盖子)。响应于该输入,处理器102将命令104发送给存储器控制器,以指示其转移到降低的功率状态。术语“降低的功率状态”泛指计算系统使用比其处于完全活动功率状态(active power state)更少的功率的任何功率状态。降低的功率状态的实例包括休眠、待机、软关机等。在某些实施例中,降低的功率状态是“挂起到随机存取存储器(RAM)”状态(有时称为S3状态)。下面参考图5进一步讨论对存储器中的数据的压缩。
永久性存储装置140为系统100提供对数据和代码的永久存储。永久性存储装置140可以包括磁盘或光盘和其相应的驱动器。如虚线所示,在某些可选实施例中,永久性存储装置140包括压缩软件142。压缩软件142可以补充和/或取代压缩逻辑114的某些方面。例如,在某些实施例中,压缩软件142可以为压缩逻辑114提供压缩算法。
非易失性存储器150对可以在例如系统启动和/或初始化过程期间使用的代码和/或数据提供非易失性存储。非易失性存储器1 50可以包括闪速存储器设备及其接口。在某些实施例中,非易失性存储器150包括配置数据152。配置数据152提供关于存储器模块118和/或存储器设备120的配置的信息。例如,配置数据152可以详细说明存储器模块的种类(例如x4、x8、x16),存储器设备的大小等。如下面进一步讨论的,压缩逻辑114可以访问配置数据152,以确定存储器子系统110的一个或多个方面的配置。
存储器模块118可以具有任意的多种结构和引脚配置。例如,可以将存储器模块118构建成双列直插存储器模块(DIMM)、小型DIMM(SO-DIMM)、微型DIMM等。可以利用具有几乎任何引脚配置(包括240引脚、144引脚、72引脚等等)的电接触连接器将存储器模块118耦合到互连124。
在可选实施例中,压缩逻辑114位于集成电路上而不是存储器控制器上。例如,压缩逻辑114可以位于芯片集中的单独的微控制器上。或者,压缩逻辑114可以位于存储器模块118上。图2是示出计算系统200的所选方面的方框图,在该计算系统200中压缩逻辑114B驻留在存储器模块118C上。
在某些实施例中,存储器模块118C包括缓冲器124。缓冲器124可以将相对高速的串行互连124C从用于与存储器设备120进行接口的相对较慢的互连分离。在某些实施例中,缓冲器124是高级存储缓冲器(AMB),其适于结合全缓冲双排直插存储器模块(FB-DIMM)技术使用。
缓冲器124包括压缩逻辑114B和I/O端口116B。在某些实施例中,压缩逻辑114B包括用于不依赖于操作系统地压缩存储在存储器设备120中的数据的逻辑。即,压缩逻辑114能够独立压缩数据,而不依赖于操作系统的存储管理器。在某些实施例中,压缩逻辑114响应于(至少部分响应于)转移到降低的功率状态的指示而压缩数据。例如,在所述实施例中,压缩逻辑114响应于来自处理器102的命令104B(例如“挂起到RAM”命令)而压缩数据。
图3是示出了根据本发明的实施例所实施的压缩逻辑的所选方面的方框图。压缩逻辑300包括控制逻辑302、读缓冲器304、压缩算法306、写缓冲器308、读指针310、写指针312,以及计时器314。在可选实施例中,压缩逻辑300可以包括更多元件、更少元件,和/或不同元件。在某些实施例中,将压缩逻辑300实现在计算系统的平台内的硬件和/或固件中(例如在存储器控制器上)。在可选实施例中,可以利用存储在永久性存储装置(例如图1中所示的永久性存储装置140)中的软件来执行压缩逻辑300的所选方面。在其它可选实施例中,压缩逻辑300可以驻留在存储器模块上。
在某些实施例中,控制逻辑302提供对压缩逻辑300的全局控制。例如,压缩逻辑302可以检测转移到低功率状态的指示(例如图1和图2所示的命令104)。其也可以控制从存储器中将数据读入读缓冲器304、压缩该数据,并从写缓冲器308将压缩数据写回到存储器的过程。读缓冲器304和写缓冲器308可以是任何的能够存储相对少量的数据的存储元件。压缩算法306可以是包括例如PKZIP压缩算法的许多压缩算法中的任何一种。
在某些实施例中,控制逻辑302使用读指针310指示要从存储器中读取的下一数据块的位置。类似地,控制逻辑302可以使用写指针312指示要将下一压缩数据块写入到存储器中的位置。下面参考图4A和图4B进一步讨论读指针310和写指针312。
在某些实施例中,当压缩逻辑300接收到系统转移到降低的功率状态的指示时,并不立即压缩存储在存储器中的数据。而是在启动压缩过程之前等待一个特定的时间段。启动压缩过程的延时防止了转换到降低的功率状态之后紧接着转换到活动功率状态的情况(例如关闭膝上型电脑的盖子,然后几乎立刻将其打开)。在该情况下,存在如下风险即,与通过将某些存储器设备断电一个短的时间段所节约的电池能量相比,可能会使用更多的电池能量来压缩数据。通过在启动压缩过程之前等待特定长度的时间(例如几秒钟)降低了该风险,因为在经过足够的时间以表明设备要可靠地处于降低的功率状态相当长度的时间(例如数十秒、分钟、小时等)之前,并不使用电池能量来压缩数据。
在某些实施例中,压缩逻辑300使用计时器314以确定是否已经过去了特定长度的时间。计时器314可以是许多能够实现在集成电路中的计时器中的任何一种。在可选实施例中,压缩逻辑300可以使用不同的机制来确定是否已经过去了特定的时间。在其它可选实施例中,压缩逻辑300未等待特定长度的时间就启动压缩过程。
在某些实施例中,压缩逻辑300以成块方式压缩数据。即,压缩逻辑300读取具有特定块大小的数据块,将其压缩,将压缩的块写回到存储器,然后对下一数据块重复该过程,直到存储在存储器中的所有数据都被压缩。在某些实施例中,块大小为128字节。在可选实施例中,块大小可以是例如64字节、256字节或任何其它的适于支持所需压缩率的大小。
在某些实施例中,存在多条从存储器控制器到DIMM的通道,并且可以在两条通道同时进行压缩(例如以提高压缩速度)。例如,考虑一种实施例,其中膝上型电脑具有两条通道。在这种实施例中,系统可以具有用于每一通道的专用读/写缓冲器(例如304、308)。系统还可以具有用于每一通道的专用的压缩/解压缩控制器(例如302)。或者,系统可以具有一个为两条通道所共享的控制器。压缩逻辑可以与输入/输出(I/O)操作重叠。例如,当将压缩数据写出到通道2时,控制器可以为通道1压缩数据。
图4A和图4B是示出了根据本发明的实施例的以成块方式压缩数据的一个实例的概念图。在某些实施例中,压缩逻辑读取一个(例如具有特定的块大小的)数据块,压缩该数据以产生压缩的数据块,将压缩的数据块写入存储器,然后重复该过程,直到存储器中的所有数据都被压缩。存储器阵列402代表由单阵列中的存储器子系统所提供的存储器位置(例如从最低地址的存储器位置到最高地址的存储器位置)。在某些实施例中,压缩逻辑(例如图3中所示的压缩逻辑300)以具有特定块大小的块读出存储在存储器阵列402中的数据。在所述实施例中,块大小为128字节。在某些实施例中,读指针406指示要从存储器读取的下一数据块。
图4B示出了根据本发明的实施例的、压缩的数据块已被写入的存储器阵列的实例。存储器阵列404包括压缩的块410和412。如图4B中所示,由于压缩算法可以将某些数据压缩至比其他数据更大的程度,所以每一压缩的块可以具有不同的块大小。在某些实施例中,写指针414指示下一压缩的数据块要被写入存储器中的位置(和/或最后的压缩的数据块被写入存储器中的位置)。
图5是示出了根据本发明的实施例的、用于通过存储器压缩来提高移动计算系统的电池寿命的方法的所选方面的流程图。参考过程方框502,压缩逻辑接收转移到降低的功率状态的指示。“接收指示”的说法泛指,例如,直接或间接地接收到转移到降低的功率状态的命令、指令、信号,或者任何其它指示。例如,在某些实施例中,压缩逻辑接收到转移到“挂起到RAM”状态的命令。
参考过程方框504,压缩逻辑等待计时器计时结束。计时器的目的是提供延时,从而只有系统要可靠地处于降低的功率状态相当长一段时间(例如数十秒、分钟、小时等)时,才压缩存储器的内容。在某些实施例中,不等待计时器计时结束就运行压缩逻辑。参考过程方框506,压缩逻辑初始化读指针和/或写指针。
参考过程方框508,压缩逻辑从存储器中读出一个数据块。在某些实施例中,将数据从存储器读到读缓冲器(例如图3中所示的读缓冲器304)中。读指针可以前进块大小(例如64字节、128字节、256字节等)。在510压缩该数据块。在某些实施例中,利用硬件(例如在存储器控制器上)执行数据压缩,且不依赖于操作系统。在可选实施例中,可以利用存储在永久性存储装置中的软件来提供压缩算法。
参考过程方框512,压缩逻辑确定是否已发生负压缩。例如,压缩逻辑可以确定压缩的块的大小是否比未压缩的源块的大小更大。如果是,则将源块(例如未压缩的块)写回到存储器(514)。另外,写指针前进源块的大小(514)。
参考过程方框516,如果未发生负压缩,则将压缩的数据块从例如写缓冲器(例如图3中所示的写缓冲器308)写入到存储器。在某些实施例中,写指针前进压缩的块的大小。压缩逻辑在518确定是否已压缩了最后的数据块。确定是否已压缩了最后的数据块可以包括确定读指针是否已遍历存储器阵列(例如使用图1中所示的配置152)。
如果已压缩了最后的数据块,则压缩逻辑将存储器子系统转移到降低的功率状态(520)。例如,如果存储器设备包括压缩数据,则压缩逻辑将存储器设备转移到自刷新状态。如果该设备不包括压缩数据,则压缩逻辑可以使该设备不活动。因为许多存储器设备不活动,所以系统所消耗的电池能量的量降低。在某些实施例中,压缩逻辑例如使用写指针和存储器子系统的配置数据来确定哪些存储器设备包含压缩数据,哪些存储器设备不包含压缩数据。
对数据进行压缩之后,压缩逻辑可以实施解压缩阶段。解压缩阶段可以响应于转移到升高的功率状态的指示而出现。转移到升高的功率状态的指示可以包括用于从降低的功率状态转移出来的任何的信号、命令等。例如,在某些实施例中,转移到升高的功率状态的指示可以包括打开膝上型电脑的盖子。在某些实施例中,通过从压缩的数据块的末端反向操作来执行解压缩。
图6是示出了根据本发明的实施例的电子系统的所选方面的方框图。电子系统600包括处理器610、存储器控制器620、存储器630、输入/输出(I/O)控制器640、射频(RF)电路650,以及天线660。在操作中,系统600利用天线660发送和接收信号,并利用图6中所示的各种元件来处理这些信号。天线660可以是定向天线或全向天线。如这里所使用的,术语全向天线是指在至少一个平面内具有基本上均匀的方向图的任何天线。例如,在某些实施例中,天线660可以是诸如偶极子天线或四分之一波长天线等的全向天线。又例如,在某些实施例中,天线660可以是诸如抛物柱面反射器天线、贴片天线或八木天线等定向天线。在某些实施例中,天线660可以包括多个物理天线。
射频电路650与天线660和I/O控制器640通信。在某些实施例中,RF电路650包括符合通信协议的物理接口(PHY)。例如,RF电路650可以包括调制器、解调器、混频器、频率合成器、低噪声放大器、功率放大器等。在某些实施例中,RF电路650可以包括外差接收器,而在其它实施例中,RF电路650可以包括直接变换接收器。例如,在具有多个天线660的实施例中,可以将每个天线耦合到相应的接收器。在操作中,RF电路650接收来自天线660的通信信号,并向I/O控制器640提供模拟或数字信号。此外,I/O控制器640可以向RF电路650提供信号,RF电路650对信号进行操作,然后将其传送到天线660。
处理器(多个处理器)610可以是任何种类的处理设备。例如,处理器610可以是微处理器、微控制器等。此外,处理器610可以包括任意数量的处理内核,或者可以包括任意数量的单独的处理器。
存储器控制器620在图6示出的处理器610和其它元件之间提供通信路径。在某些实施例中,存储器控制器620是还提供其它功能的集线器设备的一部分。如图6所示,存储器控制器620耦合到处理器(多个处理器)610、I/O控制器640和存储器630。在某些实施例中,存储器控制器620包括压缩逻辑622。压缩逻辑622可以通过存储器压缩来提高系统600的电池寿命。
存储器630可以包括多个存储器设备。这些存储器设备可以基于任意种类的存储器技术。例如,存储器630可以是随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、诸如闪速存储器的非易失性存储器,或任何其它种类的存储器。
存储器630可以表示一个或多个模块上的单个存储器设备或许多存储器设备。存储器控制器620通过互连622向存储器630提供数据,并响应于读请求从存储器630接收数据。可以通过互连622或通过不同的互连(未示出)向存储器630提供命令和/或地址。存储器控制器630可以从处理器610或从另一来源接收要存储在存储器630中的数据。存储器控制器620可以向处理器610或向另一目的地提供其从存储器630接收的数据。互连622可以是双向互连或单向互连。互连622可以包括许多平行导线。信号可以是差分的或单端的。在某些实施例中,互连622使用前向、多相时钟方案进行操作。
存储器控制器620还耦合到I/O控制器640,并在处理器(多个处理器)610和I/O控制器640之间提供通信路径。I/O控制器640包括用于与诸如串行端口、并行端口、通用串行总线(USB)端口等的I/O电路进行通信的电路。如图6所示,I/O控制器640提供到RF电路650的通信路径。
图7是示出了根据本发明的可选实施例的电子系统的所选方面的方框图。电子系统700包括存储器630、I/O控制器640、RF电路650,以及天线660,其均参考图6在上面进行了描述。电子系统700还包括处理器(多个处理器)710和存储器控制器720。如图7所示,存储控制器720与处理器(多个处理器)710可以处于同一管芯上。在某些实施例中,存储器控制器720包括压缩逻辑722。压缩逻辑722可以通过存储器压缩来提高系统700的电池寿命。处理器(多个处理器)710可以是参考处理器610的如上所述的任何种类的处理器。图6和图7所代表的示例系统包括桌上型电脑、膝上型电脑、服务器、蜂窝电话、个人数字助理、数字家庭系统等。
还可以提供本发明的实施例的元件作为用于存储机器可执行指令的机器可读介质。机器可读介质可以包括但不限于闪速存储器、光盘、光盘只读存储器(CD-ROM)、数字多用/视频光盘(DVD)ROM、随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、磁卡或光卡、传播介质或其它种类的适于存储电子命令的机器可读介质。例如,经由通信链路(例如调制解调器或网络连接),通过载波或其它传播介质中包含的数据信号的方式,可以将本发明的实施例作为可以从远程电脑(例如服务器)传送给发出请求的电脑(例如客户端)的电脑程序来进行下载。
应该理解,在整个说明书中的“一个实施例”或“实施例”表明,结合该实施例所描述的特定的特征、结构或特性包括在本发明的至少一个实施例中。因此,需要强调且应该理解的是,在该说明书的各个部分两次或多次引用“实施例”或“一个实施例”或“可选实施例”不一定都是指同一实施例。此外,可以将特定的特征、结构或特性适当地结合在本发明的一个或多个实施例中。
同样,应该理解,在上述的对本发明的实施例的描述中,为了简化帮助理解一个或多个不同的发明方面的公开的目的,有时将各种特征集合在一个实施例、附图或其描述中。然而,不应将该公开的方法理解为所权利要求的主体需要比在每一权利要求中所清楚地陈述的更多的特征的意图的反映。相反地,如所附权利要求所反映的那样,发明的方面比在上述的单个公开的实施例中的所有特征要少。因此,将该详细描述之后的权利要求清楚地并入该详细描述中。
权利要求
1.一种集成电路,包括输入/输出端口,其与易失性存储器进行接口;以及与所述输入/输出端口耦合的压缩逻辑,所述压缩逻辑用于不依赖于操作系统地压缩易失性存储器的内容的至少一部分。
2.如权利要求1所述的集成电路,其中所述压缩逻辑用于响应于转移到降低的功率状态的指示,压缩易失性存储器中的所述内容的至少一部分。
3.如权利要求2所述的集成电路,其中所述转移到降低的功率状态的指示包括转移到“挂起到随机存取存储器(RAM)”状态的命令。
4.如权利要求2所述的集成电路,其中所述压缩逻辑还包括计时器,其用于在接收到所述转移到降低的功率状态的指示之后,指示何时经过了阈值时间段。
5.如权利要求2所述的集成电路,其中所述压缩逻辑还包括第一缓冲器,其用于存储从易失性存储器读取的数据块。
6.如权利要求5所述的集成电路,其中所述压缩逻辑还包括第二缓冲器,其用于存储要写入易失性存储器的压缩的数据块。
7.如权利要求2所述的集成电路,其中所述压缩逻辑包括为易失性存储器中的每一存储器设备分别设定功率状态的逻辑。
8.如权利要求2所述的集成电路,其中所述压缩逻辑还包括读指针,其用于指向未压缩的数据块;以及写指针,其用于指向压缩的数据块。
9.如权利要求1所述的集成电路,其中所述集成电路包括存储器控制器。
10.一种方法,包括接收转移到降低的功率状态的指示;以及响应于接收到所述转移到降低的功率状态的指示,压缩存储在存储器阵列中的数据的至少一部分。
11.如权利要求10所述的方法,其中接收转移到降低的功率状态的指示包括接收“挂起到随机存取存储器(RAM)”命令。
12.如权利要求10所述的方法,其中响应于接收到所述转移到降低的功率状态的指示,压缩存储在存储器阵列中的数据的至少一部分,包括不依赖于操作系统地压缩存储在所述存储器阵列中的数据的至少一部分。
13.如权利要求12所述的方法,还包括确定是否已经过去了阈值时间段。
14.如权利要求13所述的方法,其中压缩存储在所述存储器阵列中的数据的至少一部分包括如果已经过去了所述阈值时间段,则压缩存储在所述存储器阵列中的所述数据的至少一部分。
15.如权利要求12所述的方法,其中不依赖于操作系统地压缩存储在所述存储器阵列中的数据的至少一部分,包括从易失性存储器读取下一数据块;压缩所述下一数据块,以产生压缩的数据块;以及将所述压缩的数据块写入易失性存储器。
16.如权利要求10所述的方法,还包括在压缩了存储在所述存储器阵列中的所述数据的至少一部分之后,转移到降低的功率状态。
17.如权利要求10所述的方法,还包括接收转移到活动功率状态的指示;以及响应于接收到所述转移到活动功率状态的指示,解压缩存储在所述存储器阵列中的压缩数据的至少一部分。
18.一种系统,包括一个或多个存储器设备,其用于提供存储器阵列;与处理器耦合的集成电路,所述集成电路包括压缩逻辑,用于不依赖于操作系统地压缩存储在所述存储器阵列中的数据的至少一部分;处理器,其与所述集成电路耦合;以及天线,其与所述处理器耦合。
19.如权利要求18所述的系统,其中所述压缩逻辑至少部分地响应于来自所述处理器的转移到降低的功率状态的指示,压缩存储在所述存储器阵列中的所述数据的至少一部分。
20.如权利要求19所述的系统,其中所述转移到降低的功率状态的指示包括转移到“挂起到随机存取存储器(RAM)”状态的命令。
21.如权利要求19所述的系统,其中所述压缩逻辑还包括计时器,其用于在接收到所述转移到降低的功率状态的指示之后,指示何时经过了阈值时间段。
22.如权利要求19所述的系统,其中所述压缩逻辑还包括用于为所述存储器阵列中的每一存储器设备分别设定功率状态的逻辑。
23.如权利要求18所述的系统,其中所述集成电路包括存储器控制器。
全文摘要
本发明的实施例通常针对用于通过存储器压缩来提高移动计算系统的电池寿命的系统、方法和装置。在某些实施例中,集成电路包括压缩逻辑,用于不依赖于操作系统地压缩存储在存储器阵列中的数据的至少一部分。压缩逻辑可以响应于转移到降低的功率状态的指示而压缩数据。
文档编号G06F12/00GK101086680SQ20071011030
公开日2007年12月12日 申请日期2007年6月8日 优先权日2006年6月8日
发明者S·巴拉孙德拉姆 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1