控制CPU功耗的方法及装置和相关介质产品
技术领域
本发明涉及终端领域,尤其涉及一种控制CPU功耗的方法及装置和相关介质产品。
背景技术
随着处理器技术的不断发展,多核技术成为当今处理器发展的重要方向。相比传统的单核芯片,多核处理器技术通过多个处理核互相协助的方式实现了保持频率不变的情况下,大幅度地提升系统的性能。
对于在终端的显示界面上展示的显示内容来说,显示内容由多个不同的模块或者区域构成,不同的前景应用负责不同区域或者模块的显示内容,例如,信号栏应用负责更新信号显示,电量控制模块负责更新电池电量图标。每一个前景应用在完成其显示窗口的一帧显示数据准备之后,会和当前整个显示图层的内容完成合成操作,然后主动的调用内核的显示接口,将显示内容发送给显示设备进行显示。在实践过程中技术人员发现,由于不同的显示线程负责不同的前景应用的显示以及显示窗口的刷新,而在显示刷新的过程中,在单一时刻,多个应用对应的刷新率的不同,图形库算法也可能不同,这就导致了处理器核的负载在短时间内可能发生剧烈的变化。
而在操作系统中处理核控制中,频率调节器负责内核的跳频调压操作,热插拔控制模块负责多个处理核的开关,处理方法主要是周期性的根据当前处理和的运行频率和变化方向来预设负载,或者根据单位时间内运行的任务数来确定每一个处理核的开关;也就是说,在当前界面刷新的过程中,频率调节器和热插拔控制模块并不会检测到任何的界面刷新应用的行为,也就是说,并不会对运行的处理核进行调整,处理器的处理能力却依然保持不变。
也就是说,在现有技术中多核处理器的控制方案中,处理器并不能感知应用界面更新的变化,所以,即使应用界面更新所对应的负载出现了变化,处理器的处理能力并不会随之进行调整,这就使得处理器的负载可能出现负载过重的问题,处理器的处理能力不足而导致出现卡顿等现象,或者,处理器的负载可能过轻,处理器的一些内核可能会处于“空转”状态而导致出现不必要的电量浪费。
发明内容
基于此,本发明为解决传统技术中的在应用刷新界面的过程中因为多核处理器的频率或数量与终端当前的运行参数不匹配而存在的功耗过大的技术问题,特提出了一种控制CPU功耗的方法。
一种控制CPU功耗的方法,包括:
检测显示线程的屏幕刷新率FPS;
获取所述显示线程对应的处理器核心;
根据显示线程的FPS调节该显示线程对应的处理器核心的运行频率;
检测所述处理器核心的运行频率,在检测到所述处理器核心的运行频率大于阈值时,为所述显示线程增加新的处理器核心。
可选的,在一个实施例中,所述根据显示线程的FPS调节该显示线程对应的处理器核心的运行频率包括:
在所述显示线程的FPS低于第一FPS阈值时,调高该显示线程对应的处理器核心的运行频率;
在所述显示线程的FPS高于第二FPS阈值时,调低该显示线程对应的处理器核心的运行频率;
所述第二FPS阈值高于所述第一FPS阈值。
可选的,在一个实施例中,所述根据显示线程的FPS调节该显示线程对应的处理器核心的运行频率还包括:
在所述显示线程的FPS低于第三FPS阈值时,将所述显示线程定义为处于idle状态;
所述第三FPS阈值低于所述第一FPS阈值。
可选的,在一个实施例中,所述方法还包括:
获取所述显示线程刷新过程的数据量变化,根据所述数据量变化计算处理器核心资源限额;
所述检测所述处理器核心的运行频率之后还包括:
根据所述处理器核心资源限额调节频率或者增加新的处理器核心。
可选的,在一个实施例中,所述获取所述显示线程刷新过程的数据量变化具体为:
根据公式
M=(ABS(Xnew*Ynew–Xold*Yold)|Npixel)*Byte
计算所述显示线程刷新过程的数据量变化,其中,所述Xnew*Ynew表示刷新之后的窗口大小,所述Xold*Yold表示刷新之前的窗口大小,所述Npixel表示刷新之后相对于刷新之前的变化像素点数,所述Byte表示每个像素点数据大小;
所述根据所述数据量变化计算处理器核心资源限额具体为:
根据公式
Percentage=(M1+M2+M3+…)/(P*Xtotal*Ytotal)
计算屏幕变化百分比,其中所述P表示显示线程的数量,所述Xtotal*Ytotal表示屏幕分辨率,所述Mi表示第i个显示线程刷新过程的数据量变化,所述i=1,2,…,P;
然后根据公式
Nnew*Fnew=Nmax*Fmax*Percentage(屏幕变化百分比)
计算所述处理器核心资源限额,其中,所述Nnew表示新的在线处理器核心数量,所述Fnew表示新的处理器核心的最大频率,所述Nmax表示可用处理器核心数量,所述Fmax表示可用处理器核心的极限频率。
此外,本发明为解决传统技术中的在应用刷新界面的过程中因为多核处理器的频率或数量与终端当前的运行参数不匹配而存在的功耗过大的技术问题,特提出了一种控制CPU功耗的装置。
一种控制CPU功耗的装置,包括:
屏幕刷新率检测模块,用于检测显示线程的屏幕刷新率FPS;
处理器核心确定模块,用于获取所述显示线程对应的处理器核心;
处理器频率调节模块,用于根据显示线程的FPS调节该显示线程对应的处理器核心的运行频率;
处理器核心调整模块,用于检测所述处理器核心的运行频率,在检测到所述处理器核心的运行频率大于阈值时,为所述显示线程增加新的处理器核心。
可选的,在一个实施例中,所述处理器频率调节模块还用于在所述显示线程的FPS低于第一FPS阈值时,调高该显示线程对应的处理器核心的运行频率;在所述显示线程的FPS高于第二FPS阈值时,调低该显示线程对应的处理器核心的运行频率;所述第二FPS阈值高于所述第一FPS阈值。
可选的,在一个实施例中,所述处理器频率调节模块还用于在所述显示线程的FPS低于第三FPS阈值时,将所述显示线程定义为处于idle状态;所述第三FPS阈值低于所述第一FPS阈值。
可选的,在一个实施例中,所述装置还包括处理器核心资源限额计算模块,用于获取所述显示线程刷新过程的数据量变化,根据所述数据量变化计算处理器核心资源限额;
所述处理器核心调整模块还用于根据所述处理器核心资源限额调节频率或者增加新的处理器核心。
可选的,在一个实施例中,所述处理器核心资源限额计算模块还用于根据公式
M=(ABS(Xnew*Ynew–Xold*Yold)|Npixel)*Byte
计算所述显示线程刷新过程的数据量变化,其中,所述Xnew*Ynew表示刷新之后的窗口大小,所述Xold*Yold表示刷新之前的窗口大小,所述Npixel表示刷新之后相对于刷新之前的变化像素点数,所述Byte表示每个像素点数据大小;
所述处理器核心资源限额计算模块还用于根据公式
Percentage=(M1+M2+M3+…)/(P*Xtotal*Ytotal)
计算屏幕变化百分比,其中所述P表示显示线程的数量,所述Xtotal*Ytotal表示屏幕分辨率,所述Mi表示第i个显示线程刷新过程的数据量变化,所述i=1,2,…,P;
然后根据公式
Nnew*Fnew=Nmax*Fmax*Percentage(屏幕变化百分比)
计算所述处理器核心资源限额,其中,所述Nnew表示新的在线处理器核心数量,所述Fnew表示新的处理器核心的最大频率,所述Nmax表示可用处理器核心数量,所述Fmax表示可用处理器核心的极限频率。
实施本发明实施例,将具有如下有益效果:
采用了上述控制CPU功耗的方法和装置之后,根据显示线程的屏幕刷新率的大小对该显示线程对应的处理器核心的运行频率进行调节,并在根据每一个个显示线程所在的处理器核心以及其对应的运行频率,确定当前是否应该对运行的处理器核心的数量和运行频率进行调整,例如,增加新的处理器核心来运行显示线程。也就是说,在不破坏任何应用的运行逻辑和屏幕显示运行逻辑的前提下,主动对各个应用的显示相关线程的刷新情况进行分析,并根据分析结果对处理器核心的运行频率以及运行数量进行调整,即根据每一个显示线程的需求精确确定其所需的处理器核心的资源量,进而更优化的确定接下来的处理器核心的数量和运行频率,在保证了显示线程的性能的前提下,降低了终端的功耗。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
其中:
图1为一个实施例中一种控制CPU功耗的方法的流程示意图;
图2为一个实施例中一种控制CPU功耗的装置的结构示意图;
图3为一个实施例中运行前述控制CPU功耗的方法的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
为解决传统技术中的在应用刷新界面的过程中因为多核处理器的频率或数量与终端当前的运行参数不匹配而存在的功耗过大的技术问题,在本实施例中,特提出了一种控制CPU功耗的方法,该方法的实现可依赖于计算机程序,该计算机程序可运行于基于冯诺依曼体系的计算机系统之上,该计算机程序可以是多核处理器的终端的处理器控制应用程序。该计算机系统可以是运行上述计算机程序的例如智能手机、平板电脑、个人电脑等终端设备。
需要说明的是,在本发明实施例中,所提及的处理器可以是中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)、微控制单元(Micro Controller Unit,MCU)中的一种或者多种的组合。而且,本实施例中的处理器可以是对称多核处理器(Symmetrical Multi-Processing,SMP),也可以是非对称多核处理器(Asymmetric Multi-Processing,AMP)。另外,本发明实施例中提及的终端可以是智能手机(smart phone)、平板电脑(Tablet Personal Computer)、车载终端、台式电脑(computer)等等。
具体的,如图1所示,上述控制CPU功耗的方法包括如下步骤S102-S108,具体的:
步骤S102:检测显示线程的屏幕刷新率FPS。
屏幕刷新率即屏幕上的显示内容在单位时间内的刷新次数,在本实施例中,可以是在每秒内的刷新次数,即FPS,Frames Per Second,显示屏上每秒传输帧数。例如,一般的电脑显示屏的默认屏幕刷新率为60Hz,即每秒在电脑的显示屏上显示的画面的刷新率为60帧每秒。一般来讲,在分辨率不变的情况下,屏幕刷新率越高,对处理器的处理能力要求也就越高,例如,在画面的分辨率是1024×768时,画面的刷新率要达到24帧/秒,那么显卡在一秒钟内需要处理的像素量就达到了“1024×768×24=18874368”,如果要求画面的刷新率达到50帧/秒,则数据量一下子提升到了“1024×768×50=39321600”。
对于终端的显示界面来讲,包括了多个显示单元,例如,在手机上网界面里,信号栏单元对应的信号显示,浏览器单元对应的是网页内容显示,电量控制单元对应的是电池电量的图标显示;每一个显示单元对应了一个显示线程,每一个显示线程负责对应的显示窗口的显示数据,并在每一帧显示数据准备完毕之后,会同整个显示图层上其他显示线程准备的显示数据进行合成以得到整个显示界面的图像帧。也就是说,每一个显示线程的显示数据的更新都是彼此独立的。
在本实施例中,在终端中的前景应用刷新率分析模块中,会针对每一个刷新子线程的刷新率进行独立跟踪并统计单位时间内各个显示线程的刷新次数,从而得出每一个显示线程的屏幕刷新率。
步骤S104:获取所述显示线程对应的处理器核心。
每一个显示线程的处理都是处理器完成的,在本实施例中,因为处理器的数量是多个,因此,不同的显示线程的处理可能是不同的处理器核心完成的。在本实施例中,根据每一个显示线程获取与其对应的处理器核心,即确定每一个显示线程正在哪一个处理器核心上运行。
步骤S106:根据显示线程的FPS调节该显示线程对应的处理器核心的运行频率。
每一个显示线程在处理器中都存在对应的运行频率,但是,这个运行频率是根据终端之前的运行状态或者该显示线程之前的刷新率确定的,并不能一定与该显示线程当前的屏幕刷新率是匹配的。也就是说,需要根据显示线程当前的屏幕刷新率确定对应的处理器核心的运行频率。具体的,若显示线程对应的屏幕刷新率要求的运行频率高于当前显示线程对应的处理器核心的运行频率时,应调高该显示线程对应的处理器核心的运行频率;对应的,若显示线程对应的屏幕刷新率要求的运行频率低于当前显示线程对应的处理器核心的运行频率时,应调低该显示线程对应的处理器核心的运行频率,并且,对处理器核心的运行频率的调整量由步骤S102中获取的显示线程的屏幕刷新率确定。
在一个具体的实施例中,上述步骤S104中,所述根据显示线程的FPS调节该显示线程对应的处理器核心的运行频率的步骤中,具体包括:在所述显示线程的FPS低于第一FPS阈值时,调高该显示线程对应的处理器核心的运行频率;在所述显示线程的FPS高于第二FPS阈值时,调低该显示线程对应的处理器核心的运行频率;所述第二FPS阈值高于所述第一FPS阈值。
在本实施例中,屏幕刷新率存在最大值,即最大帧频率,例如,可以将最大帧频率设置为60帧/秒。预先设定屏幕刷新率的阈值,即第一FPS阈值和第二FPS阈值,其中第二FPS阈值高于所述第一FPS阈值。例如,可以设置第二FPS阈值为58帧/秒,第一FPS阈值为50帧/每秒,在显示线程的屏幕刷新率大于58帧/秒时,说明该显示线程所在的处理器核心运行频率充足,可以适当下调处理器核心的运行频率,即对应的处理器核心的处理能力过高,或者,在其他实施例中,还可以是使用性能较低的处理器核心处理上述显示线程;在显示线程的屏幕刷新率小于50帧/每秒时,说明该显示线程所在的处理器核心的运行频率不足,即对应的处理器处理能力不足,需要向上调整处理器核心的运行频率,或者使用性能更高的处理器核心。综上,在显示线程的FPS低于第一FPS阈值时,提高处理器核心的处理能力,在显示线程的FPS高于第二FPS阈值时,降低处理器核心的处理能力。
在一个具体的实施例中,在上述调高或者调低处理器核心的运行频率中,新的运行频率的计算可根据如下公式进行计算:
new_freq=old_freq*Good_FPS_THRESHOLD/current_fps
其中new_freq表示新的运行频率,old_freq表示早调节之前处理器核心的运行频率,Good_FPS_THRESHOLD表示第二FPS阈值,current_fps表示步骤S102中获取的显示线程的屏幕刷新率。
进一步的,在一个可选的实施例中,上述步骤S104中,所述根据显示线程的FPS调节该显示线程对应的处理器核心的运行频率的步骤中,还包括:在所述显示线程的FPS低于第三FPS阈值时,将所述显示线程定义为处于idle状态;所述第三FPS阈值低于所述第一FPS阈值。
也就是说,在显示线程的屏幕刷新率低于第三FPS阈值时,说明对应的显示线程对于屏幕刷新并没有需求,一般来讲,第三FPS阈值时一个较低的数值,对于一个对于屏幕刷新有正常刷新需求的应用来讲,其对应的显示进程的屏幕刷新率应大于这个较低的第三FPS阈值,所以,可以将屏幕刷新率低于预设的第三FPS阈值的显示线程定义为处于idle状态,即处于空闲状态,可以不用针对该显示线程分配处理器核心的处理资源。例如,在一个实施例中,可以将第三FPS阈值设置为10帧/秒,在显示线程的屏幕刷新率低于10帧/秒时,将对应的显示线程定义为idle状态。在另一个实施例中,第三个FPS阈值的理想值为0帧/秒。
步骤S108:检测所述处理器核心的运行频率,在检测到所述处理器核心的运行频率大于阈值时,为所述显示线程增加新的处理器核心。
在步骤S106中,针对每一个显示线程的运行频率进行了调节,在调节过后可能会出现,某一个处理器核心对应的所有的显示线程的运行频率的总和可能超过了该处理器核心的负载能力,因此需要进行相应的调整。具体的,检测每一个显示线程对应的处理器核心的运行频率,在本实施例中,显示线程对应的处理器核心可以是一个,也可以是多个。针对于显示线程对应的每一个处理器核心,分别检测其对应的运行频率。
对于处理器核心来讲,针对其运行频率预设一个阈值,在运行频率大于该阈值时,说明该处理器核心的负载已经过大,为保证处理器核心的性能,以及避免该处理器核心的处理能力不足造成卡顿的状况,就需要增加处理器核心的处理能力,即为显示线程增加新的处理器核心,即将部分显示线程的运行分配给新增加的处理器核心运行。
需要说明的是,在本实施例中,在根据处理器核心的运行频率确定是否增加新的处理器核心的过程中,即在确定调整之后的处理器核心的数量的过程中,还需要计算处理器核心资源限额。具体的,获取所述显示线程刷新过程的数据量变化,根据所述数据量变化计算处理器核心资源限额;所述检测所述处理器核心的运行频率之后还包括:根据所述处理器核心资源限额调节频率或者增加新的处理器核心。
在针对每一个刷新子线程的刷新内容进行独立跟踪的过程中,检测对应的显示内容的变化情况,对每一次刷新内容变化进行分析,具体的,针对每一个显示线程,获取每一次刷新前后的窗口大小,即Xnew*Ynew表示刷新之后的窗口大小,Xold*Yold表示刷新之前的窗口大小,也就是说,ABS(Xnew*Ynew–Xold*Yold)表示每次刷新前后的显示窗口变化情况。还可以是,获取每次刷新前后的画面帧中变化的像素点的数量,即Npixel表示刷新之后相对于刷新之前的变化像素点数。也就是说,针对每一个显示线程,根据公式
M=(ABS(Xnew*Ynew–Xold*Yold)|Npixel)*Byte
计算显示线程刷新过程的数据量变化,其中M代表该显示线程在刷新过程中的数据量变化,Byte表示每个像素点数据大小,例如,RGB888,RGB565,YUV422等等。
若终端总共对应了P个显示线程,计算每一个显示线程对应的刷新过程的数据量变化,即M1,M2,……,MP,其中Mi表示第i个显示线程刷新过程的数据量变化,所述i=1,2,…,P。
在上述计算计算处理器核心资源限额的过程中,可以根据公式
Percentage=(M1+M2+M3+…)/(P*Xtotal*Ytotal)
计算屏幕变化百分比Percentage,然后根据公式
Nnew*Fnew=Nmax*Fmax*Percentage
计算所述处理器核心资源限额,其中,Xtotal*Ytotal表示屏幕分辨率,即屏幕的大小,Nnew表示新的在线处理器核心数量,Fnew表示新的处理器核心的最大频率,Nmax表示可用处理器核心数量,Fmax表示可用处理器核心的极限频率。也就是说,采用上述方法在保证了每一个显示线程刷新率的同时(即性能优先),又对总体处理器核心的资源做出了限制(即倾向于功耗优先),从而实现了最优的显示性能功耗比,在保证了用户体验的前提下,控制了终端的功耗。
此外,为解决传统技术中的在应用刷新界面的过程中因为多核处理器的频率或数量与终端当前的运行参数不匹配而存在的功耗过大的技术问题,在一个实施例中,如图2所示,还提出了一种控制CPU功耗的装置,包括屏幕刷新率检测模块102、处理器核心确定模块104、处理器频率调节模块106以及处理器核心调整模块108,其中:
屏幕刷新率检测模块102,用于检测显示线程的屏幕刷新率FPS;
处理器核心确定模块104,用于获取所述显示线程对应的处理器核心;
处理器频率调节模块106,用于根据显示线程的FPS调节该显示线程对应的处理器核心的运行频率;
处理器核心调整模块108,用于检测所述处理器核心的运行频率,在检测到所述处理器核心的运行频率大于阈值时,为所述显示线程增加新的处理器核心。
可选的,在一个实施例中,处理器频率调节模块106还用于在所述显示线程的FPS低于第一FPS阈值时,调高该显示线程对应的处理器核心的运行频率;在所述显示线程的FPS高于第二FPS阈值时,调低该显示线程对应的处理器核心的运行频率;所述第二FPS阈值高于所述第一FPS阈值。
可选的,在一个实施例中,处理器频率调节模块106还用于在所述显示线程的FPS低于第三FPS阈值时,将所述显示线程定义为处于idle状态;所述第三FPS阈值低于所述第一FPS阈值。
可选的,在一个实施例中,如图2所示,上述装置还包括处理器核心资源限额计算模块110,用于获取所述显示线程刷新过程的数据量变化,根据所述数据量变化计算处理器核心资源限额;处理器核心调整模块108还用于根据所述处理器核心资源限额调节频率或者增加新的处理器核心。
可选的,在一个实施例中,处理器核心资源限额计算模块110还用于根据公式
M=(ABS(Xnew*Ynew–Xold*Yold)|Npixel)*Byte
计算所述显示线程刷新过程的数据量变化,其中,所述Xnew*Ynew表示刷新之后的窗口大小,所述Xold*Yold表示刷新之前的窗口大小,所述Npixel表示刷新之后相对于刷新之前的变化像素点数,所述Byte表示每个像素点数据大小;所述处理器核心资源限额110计算模块还用于根据公式
Percentage=(M1+M2+M3+…)/(P*Xtotal*Ytotal)
计算屏幕变化百分比,其中所述P表示显示线程的数量,所述Xtotal*Ytotal表示屏幕分辨率,所述Mi表示第i个显示线程刷新过程的数据量变化,所述i=1,2,…,P;然后根据公式
Nnew*Fnew=Nmax*Fmax*Percentage(屏幕变化百分比)
计算所述处理器核心资源限额,其中,所述Nnew表示新的在线处理器核心数量,所述Fnew表示新的处理器核心的最大频率,所述Nmax表示可用处理器核心数量,所述Fmax表示可用处理器核心的极限频率。
实施本发明实施例,将具有如下有益效果:
采用了上述控制CPU功耗的方法和装置之后,根据显示线程的屏幕刷新率的大小对该显示线程对应的处理器核心的运行频率进行调节,并在根据每一个个显示线程所在的处理器核心以及其对应的运行频率,确定当前是否应该对运行的处理器核心的数量和运行频率进行调整,例如,增加新的处理器核心来运行显示线程。也就是说,在不破坏任何应用的运行逻辑和屏幕显示运行逻辑的前提下,主动对各个应用的显示相关线程的刷新情况进行分析,并根据分析结果对处理器核心的运行频率以及运行数量进行调整,即根据每一个显示线程的需求精确确定其所需的处理器核心的资源量,进而更优化的确定接下来的处理器核心的数量和运行频率,在保证了显示线程的性能的前提下,降低了终端的功耗。
在一个实施例中,如图3所示,图3展示了一种运行上述控制CPU功耗的方法的基于冯诺依曼体系的计算机系统的终端。该计算机系统可以是智能手机、平板电脑、掌上电脑,笔记本电脑或个人电脑等终端设备。具体的,可包括通过系统总线连接的外部输入接口1001、处理器1002、存储器1003和输出接口1004。其中,外部输入接口1001可选的可至少包括网络接口10012。存储器1003可包括外存储器10032(例如硬盘、光盘或软盘等)和内存储器10034。输出接口1004可至少包括显示屏10042等设备。
在本实施例中,本方法的运行基于计算机程序,该计算机程序的程序文件存储于前述基于冯诺依曼体系的计算机系统的外存储器10032中,在运行时被加载到内存储器10034中,然后被编译为机器码之后传递至处理器1002中执行,从而使得基于冯诺依曼体系的计算机系统中形成逻辑上的屏幕刷新率检测模块102、处理器核心确定模块104、处理器频率调节模块106以及处理器核心调整模块108。且在上述控制CPU功耗的方法执行过程中,输入的参数均通过外部输入接口1001接收,并传递至存储器1003中缓存,然后输入到处理器1002中进行处理,处理的结果数据或缓存于存储器1003中进行后续地处理,或被传递至输出接口1004进行输出。
以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。