发明内容
为此,需要提供功耗控制方法和装置,解决具有存储卡装置的功耗控制问题,达到节省功耗的目的。
为实现上述目的,发明人提供了功耗控制方法,包括如下步骤:
判断当前系统对存储卡的读写状态;
如果是写状态,则设置与存储卡连接的总线速率为第一速率;
如果是读状态,则设置与存储卡连接的总线速率为第二速率;
其中,所述第一速率小于第二速率。
进一步地,还包括如下步骤:
获取存储卡最高写入速率,所述第一速率在最高写入速率以下;
或者,
获取存储卡最高读取速率,所述第二速率在最高读取速率以下。
进一步地,
所述写状态包括大数据量的写状态;
所述读状态包括大数据量的读状态。
进一步地,还包括如下步骤:
在判断到当前系统对存储卡的读写状态为空闲状态时,设置与存储卡连接的总线速率为第三速率;所述第三速率小于第二速率。
进一步地,设置总线速率具体包括设置总线接口时钟速率。
以及在上述方法的基础上,发明人还提供功耗控制装置,包括如下模块:
状态判断模块:用于判断当前系统对存储卡的读写状态;
总线速率设置模块:用于在状态判断模块判断到如果是写状态时,则设置与存储卡连接的总线速率为第一速率;用于在状态判断模块判断到如果是读状态时,则设置与存储卡连接的总线速率为第二速率;
其中,所述第一速率小于第二速率。
进一步地,还包括如下模块:
存储卡速率获取模块:用于获取存储卡最高写入速率,所述第一速率在最高写入速率以下;
或者,
存储卡速率获取模块:用于获取存储卡最高读取速率,所述第二速率在最高读取速率以下。
进一步地,所述写状态包括大数据量的写状态;
所述读状态包括大数据量的读状态。
进一步地,所述总线速率设置模块还用于在状态判断模块判断为空闲状态时,设置与存储卡连接的总线速率为第三速率;所述第三速率小于第二速率。
进一步地,所述总线速率设置模块还用于设置总线接口时钟速率。
区别于现有技术,上述技术方案通过对存储卡不同状态时总线速率的调整,降低了总线的功耗。
具体实施方式
为详细说明技术方案的技术内容、构造特征、所实现目的及效果,以下结合具体实施例并配合附图详予说明。
请参阅图1,本实施例提供一种功耗控制方法,本方法可以运行于电子装置,电子装置包含有处理模块,处理模块具有存储卡控制器,存储卡控制器用于与存储卡连接。如图2所示,电子装置可以是移动设备1,处理模块可以是处理器10,存储卡为SD卡2,存储卡控制器可以是SD控制器100,处理器10对SD卡2的读写可以通过控制SD控制器100来实现,SD控制器100在读写SD卡2时,数据会经过SD控制器100和SD卡2之间的总线(或称接口总线)进行传递。
本功耗控制方法在被执行时,首先进入步骤S102判断当前系统对存储卡的读写状态。当前即本方法被执行的时间段内,系统为软件系统,常见的为操作系统,读状态即系统从存储卡中读取存在存储卡中数据的状态,写状态机系统将数据写入存储卡的状态。如果在判断到当前对存储卡为写状态,则进入步骤S103,设置与存储卡连接的总线速率为第一速率。而如果判断到当前对存储卡为读状态,则进入步骤S104设置与存储卡连接的总线速率为第二速率。其中,所述第一速率小于第二速率。由于读写操作都要有系统去执行,则系统可以获取到自身对存储卡的读写情况,在某些实施例中也可以由应用在要对存储卡进行读写时告诉系统其对存储卡的读写状态。第一速率小于第二速率,可以满足存储卡读取速率大于写入速率的需求。由于对存储卡接口总线速率的调整,降低了读状态下的总线速率,避免总线一直运行在高频状态下造成功耗浪费的问题,从而达到了降低总线功耗、即降低了设备功耗的目的。
上述中的第一速率和第二速率可以预存在系统中或者由用户进行自定义。一般地,预存在系统中的第一速率可以是普通(如占有量较大)市售存储卡所能支持的最高写入速率,第二速率可以是普通市售存储卡所能支持的最高读取速率。由于现有的设备在初始化存储卡接口时都是以协议所能支持的最大速率进行的,而市售普通存储卡的读写速率远远达不到该最大速率,设置成市售普通存储卡的读写速率可以满足设备读取写入存储卡的需求,可以保证用户的体验,同时可以大大降低接口总线的功耗。在由用户进行自定义时,可以由图2中用户预设模式处理模块104进行实现,用户预设模式处理模块104可以通过接受用户的设置并把第一速率和第二速率修改为用户的设置。如用户预设模式处理模块104可以弹出一个第一速率设置框,而后用户可以输入一个合法的值,用户预设模式处理模块104可以将该值作为第一速率的值。
在某些实施例中,第一速率和第二速率可以通过系统来获取得到,可以获取其中某一速率或者可以获取第一速率和第二速率。在一实施例中,可以在步骤S102之前执行步骤S101获取存储卡最高写入速率以及获取存储卡最高读取速率,而后将第一速率设置在最高写入速率以下,将第二速率设置在最高读取速率以下。可以直接设置成第一速率等于最高写入速率,第二速率等于最高读取速率。通过获取存储卡的最高写入速率和最高读取速率后,第一速率和第二速率的值可以最接近存储卡实际的情况。可以在不影响用户使用的情况下尽可能地降低总线的速率,从而降低功耗。具体地,获取第一速率和第二速率的时机可以是系统初始化存储卡后即进行。如在系统开机或者存储卡重新插入系统时,此时需要对存储卡进行初始化,初始化完成后即可进行获取,这样做的好处在于当用户更换不同速率的存储卡时,可以实时对第一速率和第二速率进行更新。具体获取的步骤可以采用如下方式:暂停其他对存储卡的读写操作,单位时间内写入连续的大量数据,统计单位时间内写入的数据量,将数据量处于单位时间即可获取到最高写入速率。当然也可以持续写入一段固定长度的数据,而后统计写入的时间长度,而后将固定长度的数据量处于时间长度即可获取到最高写入速率。最高读取速率的获取可以采用与写入方式类似的方法,在固定时间长度读取数据或者读取固定长度数据。也可以直接读取在测试最高写入速率时的写入的数据。由于写入和读取的都是连续(存储地址连续)的大数据,这个速率远远高于对普遍的存储卡的多个小数据量的写入速率,使用该最高写入速率和最高读取速率是可以满足总线对存储卡的写入需求的。
正如上述的,普遍的存储卡的读取写入状态都是小数据量的读写状态,发明人在此提出了在不明显影响用户在读写存储卡体验的基础上进一步降低功耗的方法,即在写状态是大数据量的写状态时才设置为第一速率,在读状态也是大数据量的读状态才设置为第二速率。而在非大数据量的写状态可以设置为第四速率以及在非大数据量的读状态可以设置为第五速率,第四速率低于第一速率,第五速率低于第二速率。小数据量读写可以设置成相对较低的速率,因为小数据量读写时间不会很长,即使由于总线速率的降低造成时间上的短暂延长,用户也不会有明显的感觉,却可以进一步减少功耗。大数据量的读写状态可以由应用程序在应用程序需要对存储卡进行大数据量读写时告知系统,在某些实施例中,可以通过如下步骤实现:可以通过统计单位时间内系统写入存储卡的次数与该单位时间内系统读写存储卡的总次数的比值,当该比值大于预设的比值时,认为系统对存储卡为大数据量的写状态,如果小于预设的比值时,认为系统对存储卡为大数据量的读状态。其中读状态和写状态次数总和为读写状态次数。
具体地,可以通过图2中的负载统计模块103来实现状态的判断。负载统计模块103可以实现统计系统发起的存储卡的读、写请求,统计读写占有的比重。如可以用定时器触发中断(假设1秒触发一次)服务,中断服务内计算当前系统对存储卡发起的读和写的总次数,并计算出读写分别占有的读写总操作的百分比。如统计出写的百分比大于预设的比值,则认为为大数据量的写操作,则设置总线速率为第一速率。如统计出写的百分比小于预设的比值,可以认为主要为大数据量的读操作,则可以设置总线速率为第二速率。上述中,预设的比值也可以由用户预设模式处理模块104进行更改,使得用户可以对预设的比值进行更改,以设置为满足用户需求的比值。
系统对存储卡的读写状态还包括空闲状态,空闲状态即系统不对存储卡进行读和写操作。在空闲状态下,可以进入步骤S105进一步降低总线速率为更低的第三速率。在某些实施例中,第三速率可以为零速率,即暂停总线接口传输。在实际应用中,系统对存储卡的读写状态会不断调整,则本方法可以实时或者单位时间内进行状态的判断和速率的调整,以满足功耗的控制和用户的需求。
设置总线速率具体包括设置总线接口时钟速率,总线接口时钟速率决定了总线的传输速率。具体地,可以通过图2中的动态时钟计算模块102算得需要设置的总线速率对应的总线接口时钟频率,而后将该总线接口时钟频率发送给锁相环时钟产生模块101,锁相环时钟产生模块101可以产生所需求的时钟频率,并将该时钟频率送往SD控制器100用于提供SD控制器100与SD卡2之间数据传输所用。
综上,本方法可以在不影响用户体验和系统对存储卡的存储需求的情况下,尽可能地降低总线的速率,达到控制总线功耗的目的。
以及在上述方法的基础上,发明人还提供功耗控制装置3,如图3所示,包括如下模块:
状态判断模块30:用于判断当前系统对存储卡的读写状态;以及总线速率设置模块31:用于在状态判断模块判断到如果是写状态时,则设置与存储卡连接的总线速率为第一速率;用于在状态判断模块判断到如果是读状态时,则设置与存储卡连接的总线速率为第二速率;其中,所述第一速率小于第二速率。通过判断系统对存储卡的操作状态,适当降低总线速率,可以使得总线速率不会一直保持在较高状态,降低了与存储卡连接的接口总线的功耗,节省了装置的功耗。当然,第一速率和第二速率都是小于总线接口协议的最高速率,总线接口协议的最高速率是远远超出了实际的需求的。
为了使得设置的速率是满足需求且能降低功耗,装置3还包括如下模块:
存储卡速率获取模块32:用于获取存储卡最高写入速率,所述第一速率在最高写入速率以下;
或者,存储卡速率获取模块32:用于获取存储卡最高读取速率,所述第二速率在最高读取速率以下。当然,存储卡速率获取模块32可以用于获取存储卡最高写入速率和最高读取速率。这样设置的总线速率与存储卡的实际情况相符,不至于导致功耗的浪费
进一步地,所述写状态包括大数据量的写状态;所述读状态包括大数据量的读状态。即在大数据量的写状态才将总线速率设置为第一速率,在大数据量的读状态才将总线速率设置为第二速率。在其他小数据量的读写状态时,可以设置更低的速率,进一步降低功耗并不会很大影响用户体验。
系统对存储卡的读写状态还包括有空闲状态,则状态判断模块30还可以判断到系统对存储卡的读写状态为空闲状态,则总线速率设置模块31还用于在状态判断模块判断为空闲状态时,设置与存储卡连接的总线速率为第三速率;所述第三速率小于第二速率。即在空闲时,总线速率设置模块31可以进一步降低与存储卡连接的总线接口的速率。
其中,所述总线速率设置模块31还用于设置总线接口时钟速率,即总线速率设置模块31可以通过设置总线接口时钟速率达到设置与存储连接的总线的速率。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括……”或“包含……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的要素。此外,在本文中,“大于”、“小于”、“超过”等理解为不包括本数;“以上”、“以下”、“以内”等理解为包括本数。
本领域内的技术人员应明白,上述各实施例可提供为方法、装置、或计算机程序产品。这些实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。上述各实施例涉及的方法中的全部或部分步骤可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机设备可读取的存储介质中,用于执行上述各实施例方法所述的全部或部分步骤。所述计算机设备,包括但不限于:个人计算机、服务器、通用计算机、专用计算机、网络设备、嵌入式设备、可编程设备、智能移动终端、智能家居设备、穿戴式智能设备、车载智能设备等;所述的存储介质,包括但不限于:RAM、ROM、磁碟、磁带、光盘、闪存、U盘、移动硬盘、存储卡、记忆棒、网络服务器存储、网络云存储等。
上述各实施例是参照根据实施例所述的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到计算机设备的处理器以产生一个机器,使得通过计算机设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机设备以特定方式工作的计算机设备可读存储器中,使得存储在该计算机设备可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机设备上,使得在计算机设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已经对上述各实施例进行了描述,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改,所以以上所述仅为本发明的实施例,并非因此限制本发明的专利保护范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围之内。