一种降低功耗的方法、装置及存储介质与流程

文档序号:15443954发布日期:2018-09-14 23:08阅读:139来源:国知局

本申请实施例涉及电子技术领域,尤其涉及一种降低功耗的方法、装置及存储介质。



背景技术:

随着移动通信技术的飞速发展,终端设备可以存在多种电源模式,举个例子,智能电视的电源模式有开机、直流待机、挂机到内存(suspendtoram,str)待机和直流关机四种模式。这四种电源模式下,开机的功耗大于直流待机的功耗,直流待机的功耗大于str待机的功耗,str待机的功耗大于关机的功耗。

随着智能电视的系统复杂程度的上升,智能电视从直流关机到开机所需的时长可以达到20秒,而终端设备从str待机到开机所需的时长大约为4秒,虽然智能电视在str待机状态下开机时节省了时间,然而,随着智能电视在str待机状态下时间的增加,功耗也越来越大。

综上,亟需一种降低功耗的方法,用于降低终端设备在待机时的功耗。



技术实现要素:

本申请实施例提供一种降低功耗的方法、装置及存储介质,用于降低终端设备在待机时的功耗。

第一方面,本申请实施例提供一种降低功耗的方法,该方法中,在待机状态下停止根据系统的时钟信号对n个双倍速率同步动态随机存储器ddr进行供电,n为大于1的整数;从所述n个ddr中确定出m个ddr为目标ddr,所述m为小于所述n的整数;将剩余的n-m个ddr中存储的属于预设类别的数据存储至所述目标ddr中,根据所述目标ddr对应的时钟信号对所述目标ddr供电。

第二方面,本申请实施例提供一种降低功耗的装置,包括处理单元,用于在待机状态下停止根据系统的时钟信号对n个双倍速率同步动态随机存储器ddr进行供电,n为大于1的整数;从所述n个ddr中确定出m个ddr为目标ddr,所述m为小于所述n的整数;存储单元,用于将剩余的n-m个ddr中存储的属于预设类别的数据存储至所述目标ddr中;所述处理单元,还用于根据所述目标ddr对应的时钟信号对所述目标ddr供电。

第三方面,本申请实施例提供一种计算机存储介质,计算机存储介质中存储有指令,当其在计算机上运行时,使得计算机执行第一方面或第一方面的任意可能的实现方式中的方法。

第四方面,本申请实施例提供一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行第一方面或第一方面的任意可能的实现方式中的方法。

本申请实施例中,由于在待机状态下可以停止根据系统的时钟信号对n个双倍速率同步动态随机存储器ddr进行供电,随后可以将n个ddr中除目标ddr之外的其他ddr中属于预设类别的数据存储至目标ddr中。由于终端设备在待机时只需要对目标ddr进行供电,而不是对全部的ddr进行供电,所以可以降低终端设备在待机时的功耗。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本申请实施例提供一种适用的系统架构示意图;

图2为本申请实施例提供一种降低功耗的方法的流程示意图;

图3为本申请实施例提供一种ddr连接示意图;

图4为本申请实施例提供一种降低功耗的方法的流程示意图;

图5为本申请实施例提供一种降低功耗的方法的流程示意图;

图6为本申请实施例提供一种降低功耗的装置的结构示意图。

具体实施方式

为了使本申请的目的、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

图1示例性示出了本申请实施例适用的一种系统架构图,如图1所示,包括终端设备10、终端设备10内部的中央处理器(centralprocessingunit,cpu)101、嵌入式多媒体卡(embeddedmultimediacard,emmc)102和双倍速率同步动态随机存储器(doubledataratesynchronousdynamicrandomaccessmemory,ddrsdram)103。本申请实施例中,双倍速率同步动态随机存储器103可以被简称为ddr。

本申请实施例中,emmc102和ddr103可以在不同的电源模式下存储当前运行的数据。第一种,终端设备10可以在交流关机的电源模式下将当前运行的数据保存在emmc102中,当终端设备重新开机时,cpu101可以从emmc102中获取数据。第二种,终端设备10可以在str待机的电源模式下将当前运行的数据保存在ddr103中,当终端设备重新开机时,cpu101可以从ddr103中获取该数据。

本申请实施例中,终端设备可以是智能电视、手机、平板电脑、数码相机等嵌入式设备。

图2示例性示出了本申请实施例适用的一种降低功耗的方法的流程示意图,如图2所示,包括:

步骤201,终端设备在待机状态下停止根据系统的时钟信号对n个双倍速率同步动态随机存储器ddr进行供电,n为大于1的整数;

步骤202,终端设备从n个ddr中确定出m个ddr为目标ddr,m为小于n的整数;

步骤203,终端设备将剩余的n-m个ddr中存储的属于预设类别的数据存储至目标ddr中,根据目标ddr对应的时钟信号对目标ddr供电。

现有技术中,由于终端设备待机时需要对所有ddr进行供电,随着终端设备中ddr数量的增加,功耗也在增加。本申请实施例中,由于在待机状态下可以停止根据系统的时钟信号对n个双倍速率同步动态随机存储器ddr进行供电,随后可以将n个ddr中除目标ddr之外的其他ddr中属于预设类别的数据存储至目标ddr中。由于终端设备在待机时只需要对目标ddr进行供电,而不是对全部的ddr进行供电,所以可以降低终端设备在待机时的功耗。

本申请实施例中,可以将剩余的n-m个ddr称为非目标ddr。

本申请实施例中,步骤201中的待机命令中的待机可以包括str待机,str待机是指在终端设备待机时将数据保存在ddr中,开机的时候可以不通过复杂的系统检测,而从ddr中读取数据使得终端设备进入待机前的状态,进而大大减少了启动时间。步骤202中,属于预设类别的数据可以是随后对终端设备的开机起重要作用的数据,比如源码或者库所占用的内存数据。不属于预设类别的数据可以是对终端设备从待机到开机状态没有影响的数据,比如文件缓存,视频缓存等等。

本申请实施例中,ddr可以在时钟的上升沿和下降沿进行数据传输,所有的数据传输所用到的信号要通过时钟来同步。由于ddr是一种动态随机存储器,基本存储单元是mos管的栅极电容,电容保持电荷的时间有限,为了及时补充漏掉的电荷,必须定时给栅极电容补充电荷,这个补充电荷的操作称为刷新操作,其实就是轮流为每个单元充一次电。终端设备的刷新操作可以分为两种:自动刷新(autorefresh,ar)与自刷新(selfrefresh,sr)。

一种可选的实施方式中,步骤201之前,即终端设备接收到待机命令之前,终端设备是在ar模式下工作,即可以根据系统的时钟信号为ddr供电。终端设备接收到待机命令时,停止ar模式,终端设备将时钟使能(clockenable,cke)置于无效状态,进行sr模式,此时,终端设备可以根据目标ddr内部的时钟信号进行sr操作,也就是只为目标ddr进行供电,不再为除目标ddr之外的其他ddr供电。

一种可选的实施方式中,终端设备中的ddr的个数可以根据存储的数据量决定,每个ddr的容量可以相同或者不同,每个ddr可以由不同的ddr控制器进行控制,图3示例性示出了本申请实施例适用的一种ddr连接示意图,如图3所示,终端设备中存在6个ddr,这6个ddr都是通过一个芯片上的不同ddr控制器控制。如图3所示,ddr控制器a可以控制ddr1和ddr2,ddr控制器b可以控制ddr3和ddr4,ddr控制器c可以控制ddr5和ddr6。可选的,每个ddr可以用来存储不同类别的数据,包括属于预设类型别的数据和不属于预设类别的数据。

一种可选的实施方式中,在步骤201之前,终端设备可以接收遥控器或者其它设备发送的待机命令,终端设备接收待机命令后可以进入待机状态,终端设备的安卓系统层可以进入挂机状态,具体地,终端设备可以将系统层的服务全部暂停,比如,可以将终端设备正在播放的视频暂停。可选的,终端设备停止自动刷新,不再根据系统的时钟信号为终端设备中的n个ddr供电。

在终端设备的安卓系统层进入挂机状态之后,一种可选的实施方式中,针对n个ddr中每个ddr,若该ddr中有存储路径为外设设备的数据,则将存储路径为外设设备的数据同步至该外设设备。举个例子,如果终端设备此时连接一个移动硬盘,用户在移动硬盘中打开一个文本并且在该文本上做修改。用户以为是直接在移动硬盘的文本上做修改,然而,终端设备实际是将该文本缓存在该终端设备上,每隔预设时长将该修改后的文本同步至移动硬盘上。在终端设备接收到待机命令之后,可以立刻将修改后但未进行同步的文本同步至移动硬盘中。

如此,可以保证修改后的文本及时保存在外设设备中,以防出现下面两种情况:第一种,修改后的文本为不属于预设类别的数据,且缓存在非目标ddr之中,一旦终端设备不再为非目标ddr供电,修改后的文本将直接消失,外设设备中保存的还是上一次同步的文本。第二种,修改后的文本为不属于预设类别的数据,且缓存在目标ddr之中,然而,终端设备可以删除目标ddr中不属于预设类别的数据,为非目标ddr中的属于预设类别的数据腾出存储空间,如此,修改后的文本仍然会消失。

一种可选的实施方式中,可以在终端设备将存储路径为外设设备的数据同步至该外设设备后,使得终端设备的内核层进入挂机状态,此时,终端设备和连接的外设设备(移动硬盘,无线模块或者其它终端设备等等)断开联系,也不再为外设设备供电。

步骤202中,终端设备可以根据以下三种方式从n个ddr中确定出目标ddr的标号和目标ddr的数量:

第一种,终端设备可以在一段时间内根据属于预设类别的数据的数据量将某个ddr或者某几个ddr设置为目标ddr,比如直接将图3所示的ddr1和ddr2设置为目标ddr。

第二种,终端设备每次在确定目标ddr时,可以统计n个ddr中属于预设类别的数据的数据量的总和,将n个ddr按照容量由大到小进行排序,将满足属于预设类别的数据的数据量,且大容量的m个ddr确定为目标ddr,m为不大于n的正整数。

第三种,终端设备统计n个ddr中每个ddr中的属于预设类别的数据的数据量,将存储属于预设类别的数据的数据量较多的m个ddr确认为目标ddr,如此,终端设备迁移非目标ddr中的属于预设类别的数据时,工作量比较少。

终端设备如何确定ddr中存储的数据是否属于预设类别的数据,一种可选的实施方式中,终端设备可以获取ddr中存储的数据对应的属性信息,若根据数据对应的属性信息确定该数据属于预设类别的数据,则可以将数据存储至目标ddr,属性信息可以是数据包的包头中携带的标识符。

一种可选的实施方式中,终端设备在接收到待机命令时进入待机状态之后,将非目标ddr中存储的属于预设类别的数据存储至目标ddr之前,还包括:终端设备删除目标ddr中存储的不属于预设类型的数据,终端设备可以将目标ddr中存储的属于预设类型的数据整理至目标ddr中一段连续的存储区域中,并对整理后的目标ddr中属于预设类型的数据进行压缩。以下介绍可选的多种实施方式:

第一种可选的实施方式中,终端设备可以不删除目标ddr中的不属于预设类别的数据,直接将非目标ddr中属于预设类别的的数据存储在目标ddr中,但由于目标ddr中的原始数据可能存储在目标ddr中的不连续的存储区域,因此,非目标ddr中的预设类别的数据是穿插存储在目标ddr中。举个例子,图3中的目标ddr为ddr1,ddr1中的原始数据是存储在0-100mb,124-256mb,300-500mb这些存储区域内的,当终端设备将ddr2中的预设类别的数据存储在ddr1中时,可以将部分数据存储在ddr1的存储区域100-124mb,另外部分数据存储在ddr1的存储区域256-300mb。目标ddr中的原始数据包括属于预设类别的数据和不属于预设类别的数据。

第二种可选的实施方式中,终端设备可以删除目标ddr中的不属于预设类别的数据,并将目标ddr中存储的属于预设类别的数据整理至该目标ddr中一段连续的存储区域中,将非目标ddr中属于预设类别的数据存储至目标ddr中另一段连续的存储区域中,比如,假设图3中的ddr1为目标ddr,可以将ddr1中不属于预设类别的数据删除,并将属于预设类别的数据归置到第一段连续的存储区域中,比如0-200mb。可选的,终端设备可以将ddr2中属于预设类别的数据存储到第二端连续的存储区域中,比如300-368mb,类似地,终端设备可以将ddr3中属于预设类别的数据存储到第三端连续的存储区域中,将ddr4中属于预设类别的数据存储到第四端连续的存储区域中,将ddr5中属于预设类别的数据存储到第五端连续的存储区域中,将ddr6中属于预设类别的数据存储到第六端连续的存储区域中。

第三种可选的实施方式中,由于目标ddr中属于预设类别的数据的数据量过大,终端设备可以在删除目标ddr中的不属于预设类别的数据之后,将属于预设类别的数据整理至该目标ddr中一段连续的存储区域,并对整理后的目标ddr中属于预设类型的数据进行压缩,将非目标ddr中属于预设类别的数据存储至目标ddr中另一段连续的存储区域中。

第四种可选的实施方式中,终端设备可以在删除目标ddr中的不属于预设类别的数据之后,对目标ddr中属于预设类别的数据进行压缩,并将压缩后的属于预设类别的数据整理至该目标ddr中一段连续的存储区域中,随后终端设备可以将每一个非目标ddr中的属于预设类别的数据单独压缩后,存储进目标ddr中。

为了有效管理待保存的数据,确保能在系统开机时能够正确的回复数据,终端设备可以将属于预设类别的数据按照一定格式保存在目标ddr中,这可以称为内存数据镜像(image)。镜像由两部分组成,镜像头和镜像数据,具体如下:

structstr_image_header

{

unsignedintfirst_image_address;//第一个有效数据页的地址

unsignedintflags;//镜像格式标志

charsig[10];//镜像魔术字

u32ddr_controller_id;//镜像所在ddr控制器编号

u32crc32;//镜像校验值

}__packed;

structstr_image_page_data

{

structpagepage;//物理页

u32ddr_controller_id;//数据页所在ddr控制器编号

u32crc32;//数据页校验值

structlist_headpages;//物理页链表,所有保存的物理页都在这个双向链表中

}__packed;

一种可选的实施方式中,终端设备可以先将属于预设类别的数据按照一定格式保存在目标ddr中,随后对该属于预设类别的数据进行压缩,压缩比约为3:1.

当非目标ddr属于预设类别的数据存储在目标ddr后,一种可选的实施方式中,终端设备根据目标ddr内部的时钟信号对目标ddr进行供电。此时,终端设备中的ram微处理器将控制权交给电源管理微处理器,等待开机命令。

图4示例性示出了本申请实施例适用的一种降低功耗的方法的流程示意图,如图4所示,包括:

步骤401,终端设备接收待机命令;

步骤402,终端设备的安卓系统层进入挂机状态;

步骤403,针对n个ddr中每个ddr,若该ddr中有存储路径为外设设备的数据,则终端设备将存储路径为外设设备的数据同步至该外设设备;

步骤404,终端设备的内核层进入挂机状态;

步骤405,终端设备从n个ddr中确定出目标ddr;

步骤406,终端设备将目标ddr中存储的不属于预设类型的数据删除;

步骤407,终端设备将目标ddr中存储的数据整理至目标ddr中一段连续的存储区域中;

步骤408,终端设备将非目标ddr中属于预设类别的数据以一定格式存储进目标ddr中;

步骤409,终端设备对目标ddr中存储的属于预设类别的数据进行压缩;

步骤410,终端设备根据目标ddr内部的时钟信号对目标ddr进行供电。

步骤202或者步骤410后,一种可选的实施方式中,终端设备会周期性检测是否接收到开机命令,若终端设备接收到开机命令,则根据系统的时钟信号对n个ddr中的每个ddr供电,并将n-m个ddr中存储的属于预设类别的数据按照原存储方式从目标ddr中转存至所述n-m个ddr。

一种可选的实施方式中,终端设备在接收到开机命令后,可以判断是在什么模式下开机,若是在待机模式下开机,则终端设备可以停止目标ddr的自刷新模式的供电,即根据内部的时钟信号供电,然后根据系统的时钟信号对所有ddr进行供电,终端设备的内核层开始工作,若终端设备压缩过存储在目标ddr中的数据,则将数据进行解压缩,将目标ddr中存储的非目标ddr中的属于预设类别的数据迁移到原来的非目标ddr中。

图5示例性示出了本申请实施例适用的一种降低功耗的方法的流程示意图,如图5所示,包括:

步骤501,终端设备接收开机命令;

步骤502,终端设备确定是在待机模式下进行开机;

步骤503,终端设备根据系统的时钟信号对n个ddr中的每个ddr供电;

步骤504,终端设备的内核层进入进入工作状态;

步骤505,终端设备将目标ddr中存储的非目标ddr中的属于预设类别的数据迁移到原非目标ddr中。

基于以上实施例及相同构思,图6示出了本申请实施例提供的一种降低功耗的装置的结构示意图;如图6所示,降低功耗的装置600可以包括处理单元601和存储单元602。

本申请实施例中提供一种降低功耗的装置,该装置中包括处理单元,用于在待机状态下停止根据系统的时钟信号对n个双倍速率同步动态随机存储器ddr进行供电,n为大于1的整数;从所述n个ddr中确定出m个ddr为目标ddr,所述m为小于所述n的整数;存储单元,用于将剩余的n-m个ddr中存储的属于预设类别的数据存储至所述目标ddr中;所述处理单元,还用于根据所述目标ddr对应的时钟信号对所述目标ddr供电。

本申请实施例中,由于在待机状态下可以停止根据系统的时钟信号对n个双倍速率同步动态随机存储器ddr进行供电,随后可以将n个ddr中除目标ddr之外的其他ddr中属于预设类别的数据存储至目标ddr中。如此待机时只需要对目标ddr进行供电,而不是对全部的ddr进行供电,所以可以降低终端设备在待机时的功耗。

一种可选的实施方式中,所述处理单元,还用于若接收到开机命令,则根据系统的时钟信号对所述n个ddr供电,所述存储单元,还用于:将所述n-m个ddr中存储的属于预设类别的数据按照原存储方式从所述目标ddr中转存至所述n-m个ddr。

一种可选的实施方式中,所述处理单元,还用于删除所述目标ddr中存储的不属于所述预设类型的数据。

一种可选的实施方式中,所述处理单元,还用于:将所述目标ddr中存储的属于预设类型的数据整理至所述目标ddr中一段连续的存储区域中;对整理后的所述目标ddr中属于预设类型的数据进行压缩。

一种可选的实施方式中,所述处理单元,还用于获取所述n-m个ddr中存储的数据对应的属性信息;所述存储单元,具体用于:若通过所述处理单元根据所述数据对应的属性信息确定所述数据属于预设类别的数据,则将所述数据存储至所述目标ddr。

本申请实施例提供的降低功耗的装置具体阐述可参考上述实施例提供的降低功耗的方法,在这里不再赘述。

需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。在本申请实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现、当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。指令可以存储在计算机存储介质中,或者从一个计算机存储介质向另一个计算机存储介质传输,例如,指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带、磁光盘(mo)等)、光介质(例如,cd、dvd、bd、hvd等)、或者半导体介质(例如rom、eprom、eeprom、非易失性存储器(nandflash)、固态硬盘(solidstatedisk,ssd))等。

本领域内的技术人员应明白,本申请实施例可提供为方法、系统、或计算机程序产品。因此,本申请实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

显然,本领域的技术人员可以对本申请实施例进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请实施例的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

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