CN106095541B - 睡眠管理方法及相关装置 - Google Patents

睡眠管理方法及相关装置 Download PDF

Info

Publication number
CN106095541B
CN106095541B CN201610377374.4A CN201610377374A CN106095541B CN 106095541 B CN106095541 B CN 106095541B CN 201610377374 A CN201610377374 A CN 201610377374A CN 106095541 B CN106095541 B CN 106095541B
Authority
CN
China
Prior art keywords
sleep
time
frame
delay time
buffer area
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201610377374.4A
Other languages
English (en)
Other versions
CN106095541A (zh
Inventor
张文彦
白宗正
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oneplus Technology Shenzhen Co Ltd
Original Assignee
Oneplus Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oneplus Technology Shenzhen Co Ltd filed Critical Oneplus Technology Shenzhen Co Ltd
Priority to CN201610377374.4A priority Critical patent/CN106095541B/zh
Publication of CN106095541A publication Critical patent/CN106095541A/zh
Priority to PCT/CN2017/086226 priority patent/WO2017206816A1/zh
Priority to US16/304,729 priority patent/US10901491B2/en
Priority to EP17805761.8A priority patent/EP3460660A4/en
Application granted granted Critical
Publication of CN106095541B publication Critical patent/CN106095541B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • G06F1/3228Monitoring task completion, e.g. by use of idle timers, stop commands or wait commands
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Power Sources (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明实施例提供睡眠管理方法及相关装置,以减少浅睡眠以及状态切换。上述睡眠管理方法应用于一终端,包括:在本帧绘图完成后,准备用于下一帧绘图的绘图缓冲区;在所述绘图缓冲区准备完毕后,预测睡眠延时时间D;在等待所述睡眠延时时间D后,发送结束通知以唤醒处于睡眠状态的所述应用。与现有技术相比,本发明实施例在下一帧绘图的绘图缓冲区准备完毕后,并不立即发送结束通知,而是预测并等待睡眠延时时间D后,再发送结束通知。这样可将睡眠由浅睡眠推至深睡眠,深睡眠可以使操作系统获得更多的资源与负载释放。同时,减少了睡眠次数,进而可减少状态切换,从而减轻了因频繁状态切换而带来的负担。

Description

睡眠管理方法及相关装置
技术领域
本发明涉及控制技术领域,具体涉及睡眠管理方法及相关装置,尤其涉及图形绘制中进行睡眠管理的方法和装置。
背景技术
很多便携式装置(例如手机、平板电脑等)都有需要进行重画或作帧间切换的场景。以安装有美国谷歌公司(Google Inc.)推出的安卓(Android)操作系统的手机为例,其上的应用(例如游戏)绘制下一帧画面,都叫做重画(invalidate or redraw)。而帧间切换,指的是两次绘图中间的绘图缓冲区切换。
在两次绘图中间会产生许多短暂的睡眠,可称为浅睡眠,浅睡眠耗时在数十微秒(micro-second)左右。
以游戏应用为例,请参见图1a和图1b,游戏应用先进行第一帧绘图(也即执行第一帧绘图缓冲区的绘制任务),完成后,游戏应用会等待下一帧的绘图缓冲区,以进行第二帧绘图的绘制。在等待操作系统(例如Android、Windows、MacOS等)准备下一个绘图缓冲区的过程中,游戏应用会进入第一次浅睡眠(即图1中的睡眠A)挂起;在准备好下一个绘图缓冲区后,操作系统会发送结束通知,接收到结束通知后,游戏应用从睡眠状态切换到工作状态,进行缓冲区切换(也即正式切换所有的绘制指令到新的缓冲区上,或者称为进行真正的绘制指令目标地切换);
在Android操作系统上,一般应用的帧率恒定维持在60fps,游戏应用则会针对场景需求来控制帧率。以恒定帧率60fps为例子,帧与帧之间的时间间隔是(1000/60=16.67ms)。当游戏应用进行缓冲区切换后,所用时间(绘图用时x+睡眠A+缓冲区切换用时E)可能还未达到16.67ms,为了维持帧率,游戏需要进行第二次浅睡眠(即图1中的睡眠B)。
在睡眠B结束后,才开始进行第二帧绘图。同理,在第二帧绘图的绘图过程中,也可能会出现两次浅睡眠。
因此在现有技术中,每一次绘图过程中至少可能出现两次浅睡眠,经历绘图->第一次浅睡眠->缓冲区切换->第二次浅睡眠,共3次状态切换。
假设操作系统忙碌状态不固定,往往会产生许多更小更短暂的浅睡眠,从而会有更多的状态切换。而多次的工作状态/睡眠状态切换会造成操作系统忙碌,并给操作系统带来不必要的负担。这是因为:状态切换意味着操作系统须对应用做特别处理,例如应用进入睡眠,操作系统必须把应用状态做保存以方便下次唤醒可以从睡眠处继续往下执行,操作系统必须整理应用使用的资源例如内存,进行重整或者释放。
发明内容
有鉴于此,本发明实施例提供睡眠管理方法及相关装置,以减少浅睡眠以及状态切换。
为实现上述目的,本发明实施例提供如下技术方案:
一种睡眠管理方法,所述方法应用于一终端,所述方法包括:
在应用完成本帧绘图后,准备用于下一帧绘图的绘图缓冲区;
在所述用于下一帧绘图的绘图缓冲区准备完毕后,预测睡眠延时时间;
在等待所述睡眠延时时间后,发送结束通知以唤醒处于睡眠状态的所述应用。
可选的,所述预测睡眠延时时间包括:根据前n帧绘图过程中的浅睡眠时间估算所述睡眠延时时间;其中,n为正整数。
可选的,所述根据所述前n帧绘图过程中的浅睡眠时间估算所述睡眠延时时间包括:对所述前n帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果作为所述睡眠延时时间。
可选的,所述根据所述前n帧绘图过程中的浅睡眠时间估算所述睡眠延时时间包括:对所述前n帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果作为所述睡眠延时时间。
可选的,所述根据前n帧绘图过程中的浅睡眠时间估算所述睡眠延时时间包括:对所述前n帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果H;根据本帧绘图用时x和上一帧缓冲区切换用时E,对所述加权求和结果H进行调整,得到所述睡眠延时时间。
可选的,所述根据本帧绘图用时x和上一帧缓冲区切换用时E,对所述加权求和结果H进行调整,得到所述睡眠延时时间包括:判断所述x、E、H和A0之和是否等于T;在判断出所述x、E、H和A0之和不等于T时,调整H的取值,令x、E、H和A0之和等于T,调整后的H为所述睡眠延时时间;其中,所述T表示相邻两帧绘图之间的时间间隔,所述A0表示应用完成本帧绘图时刻至所述下一帧绘图的绘图缓冲区准备完毕时刻之间睡眠的时间。
一种睡眠管理装置,所述睡眠管理装置应用于一终端,所述睡眠管理装置包括:
准备单元,用于在应用完成本帧绘图后,准备用于下一帧绘图的绘图缓冲区;
预测单元,用于在所述准备单元准备完毕后,预测睡眠延时时间;
触发单元,用于在等待所述睡眠延时时间后,发送结束通知以唤醒处于睡眠状态的所述应用。
可选的,在预测睡眠延时时间的方面,所述预测单元用于:根据前n帧绘图过程中的浅睡眠时间估算所述睡眠延时时间;n为正整数。
可选的,在所述根据前n帧绘图过程中的浅睡眠时间估算所述睡眠延时时间的方面,所述预测单元用于:对所述前n帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果作为所述睡眠延时时间。
可选的,在所述根据所述前n帧绘图过程中的浅睡眠时间估算所述睡眠延时时间的方面,所述预测单元用于:对所述前n帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果H;根据本帧绘图用时x和上一帧缓冲区切换用时E,对所述加权求和结果H进行调整,得到所述睡眠延时时间。
可选的,在根据本帧绘图用时x和上一帧缓冲区切换用时E,对所述加权求和结果H进行调整,得到所述睡眠延时时间的方面,所述预测单元用于:判断所述x、E、H和A0之和是否等于T;在判断出所述x、E、H和A0之和不等于T时,调整H的取值,令x、E、H和A0的和等于T,调整后的H为所述睡眠延时时间;其中,所述T表示相邻两帧绘图之间的时间间隔,所述A0表示应用完成本帧绘图时刻至所述下一帧绘图的绘图缓冲区准备完毕时刻之间睡眠的时间。
一种终端,包括上述的睡眠管理装置。
与现有技术不同的是,本发明实施例在下一帧绘图的绘图缓冲区准备完毕后,并不立即发送结束通知,而是预测并等待睡眠延时时间D后,再发送结束通知。
从应用的角度而言,从本帧绘图完成时刻到下一帧绘图的绘图缓冲区准备完毕时刻之间,其一直处于睡眠状态,假定其睡眠时长为A’。之后,从下一帧绘图的绘图缓冲区准备完毕时刻到接收到结束通知时刻之间,应用仍处于睡眠状态(睡眠时长为D)。也即,应用连续睡眠时间为A’+D,从而实现了将短暂睡眠进行合并。
因此,本发明实施例增加了睡眠时间,可将睡眠由浅睡眠推至深睡眠,而深睡眠可以使操作系统获得更多的资源与负载释放。同时,由于睡眠时间增加则睡眠次数相应减少,进而可减少状态切换,减轻了因频繁状态切换而带来的操作系统忙碍和负担。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1a、1b为现有技术绘图过程示例性流程图;
图2a、2b、3a、3b、4和5为本发明实施例提供的睡眠管理方法示例性流程图;
图6为本发明实施例提供的睡眠管理装置的示例性结构图;
图7为本发明实施例提供的终端的示例性结构图。
具体实施方式
前述提及,在两次绘图中间会产生许多浅睡眠,比如前述为了达到固定帧率所产生的睡眠B、等待操作系统准备下一个绘图缓冲区的睡眠A,还有其他等待作业所产生的睡眠等等,这会导致多次状态切换,不利于资源与负载释放。
而本发明提供一种睡眠管理方法、睡眠管理装置及终端,以解决上述问题。
上述睡眠管理方法和装置可应用于便携式装置(例如手机、平板电脑、游戏机等)。
睡眠管理装置可作为操作系统的一个模块或组件(例如,Android系统的Surfaceflinger组件、Windows系统的GWES组件),执行上述睡眠管理方法。或者,对于应用而言,也可认为是操作系统执行了上述睡眠管理方法。
下面以绘制两帧绘图(下称第一帧绘图和第二帧绘图)为例,对上述睡眠管理方法进行介绍。
图2a和2b示出了上述睡眠管理方法的一种示例性流程,其至少可包括如下步骤:
步骤200:应用绘制本帧绘图(此时为第一帧绘图)。
应用(例如运行在Android系统中的应用程序)如何绘图请参考现有技术,在此不作赘述。
本帧绘图完成后,应用通知操作系统进行缓冲区切换,并把绘制后的缓冲区结果提交到操作系统,并最终输出至屏幕。
步骤201:睡眠管理装置(操作系统)准备下一帧绘图的绘图缓冲区;
在步骤201中,应用进入睡眠状态。
步骤202:在下一帧绘图的绘图缓冲区准备完毕后,睡眠管理装置(操作系统)预测睡眠延时时间。
在一个示例中,可获取历史浅睡眠时间,然后,根据历史浅睡眠时间估算睡眠延时时间。
但在本实施例中,由于步骤202发生于第一帧绘图过程中,因此,无法获取到历史浅睡眠时间。此时,可直接将睡眠延时时间置为0。当然,也可采用出厂设置值或默认值作为睡眠延时时间。
步骤203:在等待睡眠延时时间后,睡眠管理装置(操作系统)发送结束通知以唤醒处于睡眠状态的前述应用。
上述结束通知用于唤醒处于睡眠状态的前述应用。
需要说明的是,与现有技术不同的是,本发明实施例在下一帧绘图的绘图缓冲区准备完毕后,并不立即发送结束通知,而是预测并等待睡眠延时时间后,再发送结束通知。
假定在步骤202预测出的睡眠延时时间为0,则步骤203中,在下一帧绘图的绘图缓冲区准备完毕后,将立即发送结束通知。
更具体的,对于Android系统而言,应用在绘图过程中主要与Android系统的Surfaceflinger系统组件进行交互,由Surfaceflinger系统组件发结束通知以唤醒应用;对于Windows系统而言,应用是与Windows系统的GWES系统组件交互,由GWES系统组件发结束通知以唤醒应用。
步骤204:接收到结束通知的应用进行缓冲区切换,也即将绘制指令切换到新的缓冲区,以便于继续进行下一帧绘制。
需要说明的是,缓冲区切换、绘图都需要占用一定的时间。
还需要说明的是,在实际场景中,应用(例如游戏应用)与系统组件(如surfaceflinger for Android)或是图形处理器(GPU)之间,都是一来一回(一个提要求并等待,一个执行对应操作并响应)交互的。
以Android系统为例,步骤200或206中的绘制本帧绘图,是由应用与GPU之间来回交互完成的(绘制到应用单独向surfaceflinger申请到的缓冲区里面)。
Surfaceflinger负责将所有应用提交的缓冲区进行渲染叠加输出到屏幕,并切换到下一个绘制缓冲区,并在等待睡眠延时时间后唤醒应用。接着应用游戏就可以进行下一祯绘图了。
步骤205:为了维持帧率,应用进入浅睡眠(睡眠B)。
需要说明的是,在第一次绘图过程中,睡眠延时时间的预测可能不够准确,有可能在进行缓冲区切换后,还要再进行一次浅睡眠。
以恒定帧率60fps为例子,帧与帧之间的时间间隔是(1000/60=16.67ms)。当应用完成缓冲切换后,所用时间(绘图用时x+睡眠A+缓冲区切换用时E)可能还未达到16.67ms,为了维持帧率,应用需要进入睡眠B。
步骤206:应用绘制本帧绘图(此时为第二帧绘图)。
步骤207:睡眠管理装置(操作系统)准备用于下一帧绘图的绘图缓冲区;
在步骤207中,应用进入睡眠状态。
步骤208:在下一帧绘图的绘图缓冲区准备完毕后,睡眠管理装置(操作系统)预测睡眠延时时间。
在一个示例中,可获取历史浅睡眠时间,然后,根据历史浅睡眠时间估算睡眠延时时间。更具体的,历史浅睡眠时间可具体指缓冲区切换后出现的浅睡眠时间。
由于是第二帧绘图,所以可参考第一帧绘图中出现的浅睡眠时间(即睡眠B)来预测睡眠延时时间。
步骤209:在等待睡眠延时时间后,睡眠管理装置(操作系统)发送结束通知。上述结束通知用于唤醒处于睡眠状态的应用。
步骤210:应用进行缓冲区切换。
收到结束通知的应用结束睡眠,进行缓冲区切换。
假定在第二帧绘图过程中预测出的睡眠延时时间的长度为D,从应用的角度而言,从第二帧绘图完成时刻到下一帧绘图的绘图缓冲区准备完毕时刻之间,其一直处于睡眠状态,假定其睡眠时长为A’。之后,从下一帧绘图的绘图缓冲区准备完毕时刻到接收到结束通知时刻之间,应用仍处于睡眠状态(睡眠时长为D)。也即,应用连续的睡眠时间为A’+D,与现有技术及第一帧绘图过程相比,其在一定程度上合并了短暂睡眠(A’和D),将应用为等待操作系统准备下一个缓冲区所进行的睡眠拉长了。这样,应用进行缓冲区切换后,可能不用再进入短暂睡眠,从而起到将睡眠由浅睡眠推至深睡眠的作用。
而深睡眠可以使操作系统获得更多的资源与负载释放。同时,由于睡眠时间被拉长,则睡眠次数可相应减少,进而可减少状态切换,减轻因频繁状态切换而带来的负担,达到操作系统优化与省电的目的。
由于前期可参考的历史浅睡眠时间数据并不多,上述睡眠管理方法在前期预测睡眠延时时间上可能并不太准确,随着完成的绘图帧数的增加,可参考的历史浅睡眠时间数据也会逐渐增多,则对睡眠延时时间的预测随之会越来越准确,进而本发明实施例要求保护的睡眠管理方法在睡眠时间优化上的优势也会越来越明显。
下面,将以第N帧绘图过程(N不小于4)为例,对上述睡眠管理方法进行更为详细的介绍。请参见图3a和图3b,其至少可包括如下步骤:
步骤300:应用绘制本帧绘图(此时为第N帧绘图)。
本帧绘图完成后,应用通知操作系统进行缓冲区切换,并把绘制后的缓冲区结果提交回操作系统,并最终输出至屏幕。
步骤300与前述的步骤200或206相类似,在此不作赘述。
步骤301:睡眠管理装置(操作系统)准备用于下一帧绘图的绘图缓冲区。
步骤301与前述的步骤201或207相类似,在此不作赘述。
步骤302:在用于下一帧绘图的绘图缓冲区准备完毕后,睡眠管理装置(操作系统)根据前n帧绘图过程中的浅睡眠时间(n为正整数)估算睡眠延时时间D’。
在一个示例中,可对前n帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果作为睡眠延时时间。
更具体的,历史浅睡眠时间可具体指缓冲区切换后出现的浅睡眠时间。
在本实施例中,n的取值可为3。当然,本领域技术人员可根据实际需要对n的取值进行设计,在此不作赘述。
假设前三帧的浅睡眠时间分别是c1、c2、c3,其中,c1为最近一帧(也即第N-1帧)的浅睡眠时间,c3为第N-3帧的浅睡眠时间。
则睡眠延时时间D’可使用公式D’=w1*D1+w2*D2+w3*D3求得。
更具体的,w1+w2+w3=1且w1>w2>w3;w1>w2>w3代表时间越接近的帧,其浅睡眠时间的参考价值越高。
步骤303:在等待睡眠延时时间后,睡眠管理装置(操作系统)发送结束通知。
步骤304:接收到结束通知的应用进行缓冲区切换(也即将绘制指令切换到新的缓冲区,以便于继续进行下一帧绘制)。
步骤303和304分别与前述的步骤209、210相类似,在此不作赘述。
在本实施例中,根据前n帧绘图过程中的浅睡眠时间(n为正整数)估算睡眠延时时间,可以使得睡眠处时时间的预测更加合理。
图4示出了上述睡眠管理方法的又一种示例性流程,其至少可包括如下步骤:
步骤400:应用绘制第N帧绘图;
步骤400与前述的步骤300、200、206相类似,在此不作赘述。
步骤401:睡眠管理装置(操作系统)准备用于下一帧绘图的绘图缓冲区。
步骤401与前述的步骤201、207或301相类似,在此不作赘述。
步骤402:在用于下一帧绘图的绘图缓冲区准备完毕后,对前n帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果H;
在本实施例中,n的取值可为3。当然,本领域技术人员可根据实际需要对n的取值进行设计,在此不作赘述。
假设前三帧的浅睡眠时间分别是c1、c2、c3,其中,c1为最近一帧(也即第N-1帧)的浅睡眠时间,c3为第N-3帧的浅睡眠时间。
则H可使用公式H=w1*D1+w2*D2+w3*D3求得。
更具体的,w1+w2+w3=1且w1>w2>w3;w1>w2>w3代表时间越接近的帧,其浅睡眠时间的参考价值越高。
步骤403:根据本帧绘图用时x和上一帧缓冲区切换用时E,对加权求和结果H进行调整,得到睡眠延时时间D’。
由于每一帧的绘图花费时间可能不尽相同,而每一帧的缓冲区切换花费时间也可能不尽相同。因此,本实施例引入本帧绘图用时x和上一帧缓冲区切换用时E来对加权求和结果H进行调整,以使得到的睡眠延时时间更为合理。
步骤404:在等待睡眠延时时间后,睡眠管理装置(操作系统)发送结束通知。
步骤404与前述的步骤209、303相类似,在此不作赘述。
步骤405:接收到结束通知的应用进行缓冲区切换。
步骤405与前述的步骤209、210、304相类似,在此不作赘述。
下面将以更详细的实施例,来介绍如何调整加权求和结果。请参见图5,其示出了上述睡眠管理方法的又一种示例性流程,其至少可包括如下步骤:
步骤500至502请参考图4所示的步骤400至402,在此不作赘述。
步骤503:判断本帧绘图用时x、上一帧缓冲区切换用时E、加权求和结果H和A0之和是否等于T;若是,进入步骤505,否则进入步骤504;
其中,T表示相邻两帧绘图之间的时间间隔;以恒定帧率60fps为例子,T=16.67ms。
A0表示从应用完成本帧绘图时刻至下一帧绘图的绘图缓冲区准备完毕时刻之间的睡眠的时间,也即,在执行步骤501所花费的时间。
步骤504:调整H的取值,令x、E、H和A0之和等于T,调整后的H为睡眠延时时间;
步骤505:在等待睡眠延时时间后,睡眠管理装置(操作系统)发送结束通知。
步骤505与前述的步骤209、303、404相类似,在此不作赘述。
步骤506:接收到结束通知的应用进行缓冲区切换。
步骤506与前述的步骤209、210、304和405相类似,在此不作赘述。
在本实施例中,通过调整H,使H满足x、E、H和A0的和等于T,这样可尽量维持帧率。
图6示出了上述睡眠管理装置的一种示例性结构,其可包括:
准备单元1,用于在应用完成本帧绘图后,准备用于下一帧绘图的绘图缓冲区;
准备单元1可执行图2a和图2b所示的步骤201、207,图3a和图3b所示的步骤301、图4所示的步骤401、图5所示的步骤501。
预测单元2,用于在准备单元1准备完毕后,预测睡眠延时时间:
预测单元2可执行图2a和图2b所示的步骤202、208,图3a和图3b所示的步骤302、图4所示的步骤402和403、图5所示的步骤502-504。
触发单元3,用于在等待睡眠延时时间后,发送结束通知以唤醒处于睡眠状态的应用。
触发单元3可执行图2a和图2b所示的步骤203、209,图3a和图3b所示的步骤303、图4所示的步骤404、图5所示的步骤505。
本发明实施例还要求保护终端,其可包括上述的睡眠管理装置。
图7示出了上述终端的一种通用计算机系统结构。
上述计算机系统可包括总线、处理器701、内存702、通信接口703、输入设备704和输出设备705。处理器701、内存702、通信接口703、输入设备704和输出设备705通过总线相互连接。其中:
总线可包括一通路,在计算机系统各个部件之间传送信息。
处理器701可以是通用处理器,例如通用中央处理器(CPU)、网络处理器(NetworkProcessor,简称NP)、微处理器等,也可以是特定应用集成电路(application-specificintegrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。还可以是数字信号处理器(DSP)、专用集成电路(ASIC)、现成可程序设计门阵列(FPGA)或者其他可程序设计逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
处理器701至少可包括主处理器和GPU(图形处理器)。
内存702中保存有执行本发明技术方案的程序,还可以保存有操作系统和其他关键业务。具体地,程序可以包括程序代码,程序代码包括计算机操作指令。更具体的,内存702可以包括只读存储器(read-only memory,ROM)、可存储静态信息和指令的其他类型的静态存储设备、随机存取内存(random access memory,RAM)、可存储信息和指令的其他类型的动态存储设备、磁盘存储器、flash等等。
输入设备704可包括接收用户输入的数据和信息的装置,例如键盘、鼠标、摄像头、扫描仪、光笔、语音输入设备、触摸屏、计步器或重力传感器等。
输出设备705可包括允许输出信息给用户的装置,例如显示屏、打印机、扬声器等。
通信接口703可包括使用任何收发器一类的装置,以便与其他设备或通信网路通信,如以太网,无线接入网(RAN),无线局域网(WLAN)等。
处理器701执行内存702中所存放的程序,以及调用其他设备,可用于实现本发明前述实施例所提供的睡眠管理方法中的各个步骤。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机内存(RAM)、内存、只读存储器(ROM)、电可程序设计ROM、电可擦除可程序设计ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (9)

1.一种睡眠管理方法,所述方法应用于一终端,其特征在于,所述方法包括:
在应用完成本帧绘图后,准备用于下一帧绘图的绘图缓冲区;
在所述用于下一帧绘图的绘图缓冲区准备完毕后,预测睡眠延时时间,以增加睡眠时间,将睡眠由浅睡眠推至深睡眠,睡眠时间增加则睡眠次数相应减少,减少状态切换;
在等待所述睡眠延时时间后,发送结束通知以唤醒处于睡眠状态的所述应用;
其中,所述预测睡眠延时时间包括:
根据前n帧绘图过程中的浅睡眠时间估算所述睡眠延时时间;其中,n为正整数。
2.如权利要求1所述的方法,其特征在于,所述根据所述前n帧绘图过程中的浅睡眠时间估算所述睡眠延时时间包括:
对所述前n帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果作为所述睡眠延时时间。
3.如权利要求1所述的方法,其特征在于,所述根据前n帧绘图过程中的浅睡眠时间估算所述睡眠延时时间包括:
对所述前n帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果H;
根据本帧绘图用时x和上一帧缓冲区切换用时E,对所述加权求和结果H进行调整,得到所述睡眠延时时间。
4.如权利要求3所述的方法,其特征在于,所述根据本帧绘图用时x和上一帧缓冲区切换用时E,对所述加权求和结果H进行调整,得到所述睡眠延时时间包括:
判断所述x、E、H和A0之和是否等于T;
在判断出所述x、E、H和A0之和不等于T时,调整H的取值,令x、E、H和A0之和等于T,调整后的H为所述睡眠延时时间;
其中,所述T表示相邻两帧绘图之间的时间间隔,所述A0表示应用完成本帧绘图时刻至所述下一帧绘图的绘图缓冲区准备完毕时刻之间睡眠的时间。
5.一种睡眠管理装置,所述睡眠管理装置应用于一终端,其特征在于,所述睡眠管理装置包括:
准备单元,用于在应用完成本帧绘图后,准备用于下一帧绘图的绘图缓冲区;
预测单元,用于在所述准备单元准备完毕后,预测睡眠延时时间,以增加睡眠时间,将睡眠由浅睡眠推至深睡眠,睡眠时间增加则睡眠次数相应减少,减少状态切换;
触发单元,用于在等待所述睡眠延时时间后,发送结束通知以唤醒处于睡眠状态的所述应用;
其中,在预测睡眠延时时间的方面,所述预测单元用于:根据前n帧绘图过程中的浅睡眠时间估算所述睡眠延时时间;n为正整数。
6.如权利要求5所述的装置,其特征在于,在所述根据前n帧绘图过程中的浅睡眠时间估算所述睡眠延时时间的方面,所述预测单元用于:
对所述前n帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果作为所述睡眠延时时间。
7.如权利要求5所述的装置,其特征在于,在所述根据所述前n帧绘图过程中的浅睡眠时间估算所述睡眠延时时间的方面,所述预测单元用于:
对所述前n帧绘图过程中的浅睡眠时间进行加权求和,得到的加权求和结果H;
根据本帧绘图用时x和上一帧缓冲区切换用时E,对所述加权求和结果H进行调整,得到所述睡眠延时时间。
8.如权利要求7所述的装置,其特征在于,在根据本帧绘图用时x和上一帧缓冲区切换用时E,对所述加权求和结果H进行调整,得到所述睡眠延时时间的方面,所述预测单元用于:
判断所述x、E、H和A0之和是否等于T;
在判断出所述x、E、H和A0之和不等于T时,调整H的取值,令x、E、H和A0的和等于T,调整后的H为所述睡眠延时时间;
其中,所述T表示相邻两帧绘图之间的时间间隔,所述A0表示应用完成本帧绘图时刻至所述下一帧绘图的绘图缓冲区准备完毕时刻之间睡眠的时间。
9.一种睡眠管理终端,其特征在于,包括如权利要求5-8中任意一项所述的睡眠管理装置。
CN201610377374.4A 2016-05-31 2016-05-31 睡眠管理方法及相关装置 Active CN106095541B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN201610377374.4A CN106095541B (zh) 2016-05-31 2016-05-31 睡眠管理方法及相关装置
PCT/CN2017/086226 WO2017206816A1 (zh) 2016-05-31 2017-05-26 睡眠管理方法及装置、计算机存储介质
US16/304,729 US10901491B2 (en) 2016-05-31 2017-05-26 Sleep management method and device, and computer storage medium
EP17805761.8A EP3460660A4 (en) 2016-05-31 2017-05-26 METHOD AND APPARATUS FOR SLEEP MANAGEMENT, AND COMPUTER RECORDING MEDIUM

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610377374.4A CN106095541B (zh) 2016-05-31 2016-05-31 睡眠管理方法及相关装置

Publications (2)

Publication Number Publication Date
CN106095541A CN106095541A (zh) 2016-11-09
CN106095541B true CN106095541B (zh) 2019-11-05

Family

ID=57229682

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610377374.4A Active CN106095541B (zh) 2016-05-31 2016-05-31 睡眠管理方法及相关装置

Country Status (4)

Country Link
US (1) US10901491B2 (zh)
EP (1) EP3460660A4 (zh)
CN (1) CN106095541B (zh)
WO (1) WO2017206816A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106095541B (zh) 2016-05-31 2019-11-05 深圳市万普拉斯科技有限公司 睡眠管理方法及相关装置
CN114510274A (zh) * 2020-11-16 2022-05-17 深圳市万普拉斯科技有限公司 电子设备的画面帧率调整方法、电子装置及存储介质
CN115826731B (zh) * 2022-10-19 2023-07-11 科东(广州)软件科技有限公司 休眠控制方法及装置、存储介质和计算设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101312519A (zh) * 2008-07-04 2008-11-26 深圳华为通信技术有限公司 数据帧处理方法和装置
CN101951517A (zh) * 2010-09-27 2011-01-19 深圳市融创天下科技发展有限公司 一种视频解码和播放的方法、系统、终端设备
CN101998598A (zh) * 2009-08-20 2011-03-30 华为技术有限公司 一种侦听探测帧序列的方法及装置
CN103959197A (zh) * 2011-11-30 2014-07-30 英特尔公司 降低3d工作负荷的功率

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6848054B1 (en) 1989-10-30 2005-01-25 Texas Instruments Incorporated Real-time computer thermal management and power conservation
US7256788B1 (en) 2002-06-11 2007-08-14 Nvidia Corporation Graphics power savings system and method
US7190962B2 (en) 2004-04-01 2007-03-13 Qualcomm Incorporated Networked wireless communications device programmed to identify and eliminate probable multipath errors to enhance accuracy in correcting sleep clock for thermally induced errors
US7397478B2 (en) * 2005-09-29 2008-07-08 Intel Corporation Various apparatuses and methods for switching between buffers using a video frame buffer flip queue
US8136113B2 (en) 2006-12-20 2012-03-13 International Business Machines Corporation Method and apparatus for adjusting sleep time of fixed high-priority threads
US8295217B2 (en) 2008-07-11 2012-10-23 Acer Incorporated Method and apparatus for a device power savings class
JP5481355B2 (ja) * 2010-11-19 2014-04-23 株式会社東芝 無線送信装置及び受信装置
JP5743108B2 (ja) 2012-08-10 2015-07-01 コニカミノルタ株式会社 画像形成装置
US20140181553A1 (en) * 2012-12-21 2014-06-26 Advanced Micro Devices, Inc. Idle Phase Prediction For Integrated Circuits
US9654372B2 (en) * 2013-09-06 2017-05-16 Nec Corporation Patent latency monitoring in software-defined networks
US9921635B2 (en) * 2013-10-31 2018-03-20 Advanced Micro Devices, Inc. Dynamic and adaptive sleep state management
US20150286271A1 (en) * 2014-04-03 2015-10-08 Samsung Electronics Co., Ltd. System and method for predicting a central processing unit idle pattern for power saving in a modem system on chip
CN106095541B (zh) * 2016-05-31 2019-11-05 深圳市万普拉斯科技有限公司 睡眠管理方法及相关装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101312519A (zh) * 2008-07-04 2008-11-26 深圳华为通信技术有限公司 数据帧处理方法和装置
CN101998598A (zh) * 2009-08-20 2011-03-30 华为技术有限公司 一种侦听探测帧序列的方法及装置
CN101951517A (zh) * 2010-09-27 2011-01-19 深圳市融创天下科技发展有限公司 一种视频解码和播放的方法、系统、终端设备
CN103959197A (zh) * 2011-11-30 2014-07-30 英特尔公司 降低3d工作负荷的功率

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Android帧缓冲区状态监控过程源码分析;快乐安卓;《https://blog.csdn.net/yangwen123/article/details/17090721》;20131203;1-5 *
Android性能优化典范;kesen;《https://wetest.qq.com/lab/view/28.html》;20151021;1-15 *

Also Published As

Publication number Publication date
US10901491B2 (en) 2021-01-26
US20200326770A1 (en) 2020-10-15
WO2017206816A1 (zh) 2017-12-07
CN106095541A (zh) 2016-11-09
EP3460660A4 (en) 2019-07-17
EP3460660A1 (en) 2019-03-27

Similar Documents

Publication Publication Date Title
WO2021008543A1 (zh) 一种资源调度的方法和电子设备
US9690685B2 (en) Performance management based on resource consumption
CN105379121B (zh) 基于时钟时延调整的异步处理器的方法和设备
CN104424031B (zh) 一种处理器工作频率的控制方法及装置
CN106095541B (zh) 睡眠管理方法及相关装置
EP3428801B1 (en) Scheduling method and electronic device
US20140301373A1 (en) Method and system for scheduling application-generated data requests in discontinuous reception (drx) mode
WO2015035870A1 (zh) 多cpu调度方法及装置
US20170329632A1 (en) Device scheduling method, task manager and storage medium
JP4433782B2 (ja) 情報処理装置及びオペレーティングシステム
CN107273130A (zh) 加速界面绘制的方法、装置和终端
WO2010035108A1 (en) Optimized polling in low resource devices
CN106030559A (zh) 用于降低功耗的中断处理的同步
US9519338B2 (en) Task processing apparatus and method including scheduling current and next-level task processing apparatus
CN109710330B (zh) 应用程序的运行参数确定方法、装置、终端及存储介质
US20170097854A1 (en) Task placement for related tasks in a cluster based multi-core system
US20160291931A1 (en) Method And Apparatus For Switching Audio Output Device
US20150188981A1 (en) Page processing method, apparatus, and system
CN115237583A (zh) 计算资源调度方法及装置
CN114253683B (zh) 任务处理方法、装置、电子设备及存储介质
CN113597002A (zh) 下行接收触发方法、终端和网络侧设备
EP4145914A1 (en) Downlink reception triggering method, and terminal and network side device
US20150179146A1 (en) Graphics voltage reduction for load line optimization
US20180101218A1 (en) Apparatuses and methods for adjusting processing capabilities
CN115469816B (zh) 存储器的读写切换方法、装置、设备及存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant