CN106233249B - 用于管理睡眠模式的处理器的图形缓冲区的装备和方法 - Google Patents
用于管理睡眠模式的处理器的图形缓冲区的装备和方法 Download PDFInfo
- Publication number
- CN106233249B CN106233249B CN201480074554.4A CN201480074554A CN106233249B CN 106233249 B CN106233249 B CN 106233249B CN 201480074554 A CN201480074554 A CN 201480074554A CN 106233249 B CN106233249 B CN 106233249B
- Authority
- CN
- China
- Prior art keywords
- processor
- display
- kernel
- buffer
- graphics buffer
- 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
Links
- 239000000872 buffer Substances 0.000 title claims abstract description 204
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000015654 memory Effects 0.000 claims abstract description 64
- 230000004044 response Effects 0.000 claims abstract description 46
- 230000004913 activation Effects 0.000 claims abstract description 8
- 238000011084 recovery Methods 0.000 claims description 13
- 239000008186 active pharmaceutical agent Substances 0.000 description 28
- 238000004891 communication Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 19
- 230000002093 peripheral effect Effects 0.000 description 18
- 230000009471 action Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 238000009877 rendering Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000002618 waking effect Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 239000000284 extract Substances 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000002360 preparation method Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000000725 suspension Substances 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000029058 respiratory gaseous exchange Effects 0.000 description 1
- 230000004043 responsiveness Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3265—Power saving in display device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3206—Monitoring of events, devices or parameters that trigger a change in power modality
- G06F1/3215—Monitoring of peripheral devices
- G06F1/3218—Monitoring of peripheral devices of display devices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3293—Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/003—Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2330/00—Aspects of power supply; Aspects of display protection and defect management
- G09G2330/02—Details of power systems and of start or stop of display operation
- G09G2330/021—Power management, e.g. power saving
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2330/00—Aspects of power supply; Aspects of display protection and defect management
- G09G2330/02—Details of power systems and of start or stop of display operation
- G09G2330/021—Power management, e.g. power saving
- G09G2330/022—Power management, e.g. power saving in absence of operation, e.g. no data being entered during a predetermined time
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2330/00—Aspects of power supply; Aspects of display protection and defect management
- G09G2330/02—Details of power systems and of start or stop of display operation
- G09G2330/026—Arrangements or methods related to booting a display
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2354/00—Aspects of interface with display user
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/08—Power processing, i.e. workload management for processors involved in display operations, such as CPUs or GPUs
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2360/00—Aspects of the architecture of display systems
- G09G2360/18—Use of a frame buffer in a display terminal, inclusive of the display panel
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Power Sources (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
一种公开的方法包括,向运行在第一处理器上的内核注册图形缓冲区,在无需向显示器绘制所注册的图形缓冲区的情况下,初始地在存储器中存储所述图形缓冲区,以及响应于触发,将所注册的图形缓冲区传递到所述内核的显示器驱动器以直接向所述显示器绘制所述图形缓冲区。所述方法可以进一步包括向第二处理器通报所注册的图像缓冲区且由所述内核接收触发作为来自所述第二处理器的消息。当第一处理器处于睡眠模式的同时,所述第一处理器可以从第二处理器接收触发作为唤醒命令。随后,在防止在主要处理器上的用户空间的激活的同时,内核的部分恢复被执行,且在无需使用所述用户空间的操作系统图形管线的情况下,在所述显示器上绘制所述图形缓冲区。
Description
技术领域
本公开一般涉及电子设备中的处理器的低电力操作,更具体涉及一种用于将设备的主处理器短期带离睡眠模式而同时最小化功耗的方法和电子设备。
背景技术
电子设备的睡眠模式允许设备节约电力,由此节省电池寿命,而不用关机。与设备的正常操作模式相对比,睡眠模式消耗更少的电力,但也限制了设备能够执行的操作以及设备将要识别的用户交互。睡眠模式和正常操作模式代表效率和功能性之间的平衡的对立面。
通知向通信设备用户提供关于消息已经到达或某些事件已经发生、正在发生、或将要发生的信息。例如,通知可以显示在通信设备上以指示日历事件、各种警报、等待消息等。这样的通知可以以各种方式显示给用户。例如,一些通知可以显示为位于通信设备显示器的某个部分上的图标或者通过显示覆盖一部分显示屏幕且必须由用户采取一些特定动作才能关闭的弹出消息而显示。通知消息可以由驻留在通信设备上的各种应用生成,或者可以由网络发送或从通信设备操作系统发送。
附图说明
图1A和图1B是示例电子设备的框图,其中主要处理器和辅助处理器被配置为使得辅助处理器可以替代主要处理器用户空间且与内核通信以控制外围硬件。
图2A、2B和2C是示出根据实施例的用户界面的顺序显示视图的图。
图3是示出具有主要处理器和辅助处理器的电子设备的操作的方法的流程图,其中辅助处理器替代主要处理器的用户空间。
图4是示例电子设备的框图,其中主要处理器被配置为发送规则集到辅助处理器,使得辅助处理器可以替代主要处理器的用户空间内的应用。
图5是示出具有主要处理器和辅助处理器的电子设备的操作的方法的流程图,其中主要处理器发送规则集到辅助处理器。
图6是根据实施例的具有主要处理器和辅助处理器的示例电子设备的框图,其中辅助处理器被配置为替代主要处理器用户空间的图形应用以控制显示器。
图7是示出用于根据各种实施例的用于缓冲区注册的操作的方法的流程图。
图8是根据本公开的一个实施例的电子设备的框图。
图9是示出根据一些实施例的电子设备的操作的方法的流程图。
具体实施方式
本公开的一个方面提供一种电子设备的“始终开启”的显示模式(这里也被称为“AoD”模式),使得用户能够选择和观看多个通知或消息中的一个。在一些实施例中,该操作模式可以包括将消息数据作为图像数据、文本数据或二者存储于多个数据缓冲区中。本公开提供操作方法,使得电子设备的一个或多个处理器可以提取和渲染存储在数据缓冲区中的图像或文本数据,而同时操作于低电力模式或睡眠模式。
一个公开的方法包括向运行在第一处理器上的内核注册图形缓冲区,且内核包括显示器驱动器,在无需绘制所注册的图形缓冲到显示器上的情况下初始地将所述图形缓冲存储在存储器中,以及响应于触发,将所注册的图形缓冲区直接传递到内核的显示器驱动器,以绘制图形缓冲到显示器。本方法还包括向第二处理器通报所注册的图形缓冲区,以及由内核接收触发作为来自第二处理器的消息。
在一个实施例中,触发可以在第一处理器处于睡眠模式的同时由第一处理器从第二处理器接收作为唤醒命令。该方法可以随后包括执行内核的部分恢复,同时防止主要处理器上的用户空间的激活,以及在无需使用用户空间的操作系统图形管线的情况下在显示器上绘制图形缓冲。
图形缓冲创建触发可以由第一处理器的用户空间中的应用接收,且该应用可以前进以响应于图形缓冲创建触发而向内核注册图形缓冲区。在一个实施例中,缓冲创建触发可以响应于通知消息而被接收,其中图形缓冲与通知消息相关。该方法可以包括从第二处理器发送绘制命令到在第一处理器上运行的内核,其中绘制命令包含所注册的图形缓冲区的缓冲识别信息。
在一个实施例中,方法可以包括从第二处理器发送擦除命令到在第一处理器上运行的内核。擦除命令包括所注册的图形缓冲区的包含黑色几何形状的缓冲识别信息。方法包括在显示器的区域上绘制黑色几何形状以便擦除显示器的该区域。
在一些实施例中,方法包括由第二处理器检测对触摸屏显示器的用户输入,其中用户输入选择通知消息,以及响应于用户输入而从第二处理器发送唤醒命令。
根据实施例的公开的示例装备包括显示器、存储器、操作地耦合到显示器和存储器的主要处理器。主要处理器操作用于运行包括显示器驱动器的内核以及包括一个或多个应用的用户空间。用户空间操作用于向内核注册图形缓冲区且在无需向显示器绘制所注册的图形缓冲区的情况下初始地在存储器中存储所述图形缓冲区。
装备还包括辅助处理器,其操作地耦合到主要处理器。辅助处理器操作用于响应于触发,将所注册的图形缓冲区直接传递到内核的显示器驱动器以向显示器绘制图形缓冲区。主要处理器可以向第二处理器通报所注册的图形缓冲区以及由内核接收触发作为来自第二处理器的消息。
在一个实施例中,主要处理器操作用于在处于睡眠模式的同时从辅助处理器接收触发作为唤醒命令,执行内核的部分恢复,同时防止用户空间的激活,以及在无需使用用户空间的操作系统图形管线的情况下在显示器上绘制图形缓冲。
另一公开的示例装备包括主要处理器,其操作地耦合到触摸屏显示器和存储器。主要处理器操作用于运行包括显示器驱动器的内核和包括一个或多个应用的用户空间。用户空间操作用于响应于由用户空间的一个或多个应用生成通知而向内核注册图形缓冲区并且在无需向所述显示器绘制所注册的图形缓冲区的情况下初始地在所述在存储器中存储所述图形缓冲区。主要处理器进一步操作用于通过恢复内核而防止用户空间激活来执行从睡眠模式部分恢复。辅助处理器操作地耦合到主要处理器,操作用于检测对触摸屏显示器的选择通知的用户输入,响应于用户输入而向主要处理器发送唤醒命令,以发起内核的部分恢复,以及响应于用户输入,将注册的图形缓冲区直接传递到内核显示器驱动器以向触摸屏显示器绘制图形缓冲区。
这里使用的术语“低电力模式”或“睡眠模式”指示电子设备或其一个或多个组件所采取的操作状态,用来相比正常操作模式而节省电力。当电子设备或组件进入睡眠模式时,其电力下降但并不关机。例如,在睡眠模式期间,电子设备可以挂起一些操作,砍掉对一些其硬件组件的电力,或二者,同时随机存取存储器(RAM)只接收足够电力来维持恢复正常操作所需的数据。因此,这里使用的术语“低电力模式”或“睡眠模式”可以指硬件组件的电力或硬件组件的一些操作被减少或挂起或二者的情况下操作硬件组件的情形。硬件组件可以是,但不限于,处理器、显示器、收发器、传感器等等。
这里使用的“显示器”指的是显示“显示数据”以形成一个或多个图像,诸如但不限于图片、文本、桌面背景、游戏背景、视频、应用窗口等等的设备(或“硬件组件”)。显示器的一个示例是集成显示器,如诸如手持计算设备、电子书阅读器、移动电话(智能电话)、个人数字助理(PDA)、可穿戴设备(智能手表、智能眼镜等等)的电子设备中的集成显示器。显示器可以采用任何适合的显示技术,诸如例如,LCD平板、LED平板、柔性面板等等且包括其他显示硬件,其可以按照特定电子设备的需要而操作地耦合到其他设备和组件。因此,这里使用的术语“显示器”包括显示硬件,诸如但不限于,帧缓冲器、硬件显示器驱动器等等,其可以存储和刷新要由“显示器”显示的显示数据。而且,这里使用的“显示器”可以包括集成硬件,用于实现触摸屏功能,使得显示器操作用于通过触摸或经由触笔来接收用户输入。
这里使用的术语“图像”通常指的是“显示”在显示器上的且其可以存储在存储器中作为“显示数据”。也就是说,图像可以通过发送适合的显示数据到显示器而显示在显示器上。图像的示例包括,但不限于,背景或“墙纸”、游戏背景、视频、应用窗口、图标、小工具(widget)等等。换句话说,术语“图像”可以指背景、或者可以单独指或总称前景中的、悬停的元素或对象、诸如墙纸的背景图像。术语“显示数据”在此可以与术语“图像数据”互换使用,且指的是显示器解释和/或解码以向用户示出(即显示)图像以及背景或墙纸的前景中的任何关联元素或对象等等的信息(数据、或数字信息)。
现在来看附图,其中相似数字表示相似组件,图1A和图1B都是根据实施例的示例装备的框图。示例装备可以是电子设备,诸如但不限于,智能电话、个人数字助理(PDA)、便携媒体播放器(例如MP3播放器)、诸如平板的个人计算设备、或者诸如通过腕带佩戴的设备的可穿戴电子设备(例如“智能手表”)等等。
两种示例的电子设备包括主要处理器100,其操作地耦合到辅助处理器120和外围硬件105。外围硬件105包括显示器107和其他组件109。辅助处理器120还操作地耦合到外围硬件105。主要处理器100被配置为操作于睡眠操作模式,电子设备的特定特征和功能的控制由辅助处理器120接管以便节省电力或以其他方式降低电力消耗。也就是,如果置于其正常操作状态且不处于睡眠模式的情况,辅助处理器120比主要处理器100消耗更少的电力来执行特定操作。根据实施例,主要处理器100和辅助处理器120被配置为使得辅助处理器120可以替代主要处理器100的用户空间101且与内核103通信以控制外围硬件105的功能。
主要处理器100操作用于执行来自操作地耦合到主要处理器100且存储操作系统(OS)以及用户空间和内核空间代码的存储器(未示出)的代码(即,可执行指令)。存储器可以包括存储器组件,其通过通信总线(未示出)操作地耦合到主要处理器100,以及在一些实施例中,耦合到其他组件。其他存储器也可以存在且可以与主要处理器100集成或者与辅助处理器120集成,或与二者集成。
这里使用的术语“用户空间”指的是从存储器的区域中执行的代码,总的来说,该区域是与存储器的用于执行内核103(或“内核空间”)的区域分立的区域。用户空间101包括,除了其他以外,可由电子设备用户通过至少包括显示器107和各种用户输入装备(诸如显示器107的触摸屏能力、输入按键、鼠标、触摸传感器等等)的用户接口来访问的各种应用(这里也被称为“进程”)。这里使用的术语“内核”指的是可以被认为是OS以及运行在用户空间101中的应用(即进程)的控制器和管理器的中央核心的代码。例如,内核103可以包括大多数设备驱动,除了其他以外,并且可以提供所需OS任务,诸如程序加载、系统资源分配、处置设备输入和输出(诸如用于其他组件109)以及一些存储器管理功能。用户空间101内的应用(或“进程”)可以进行系统调用(call)以请求来自内核103的服务并由此与OS相接口。内核103服务可以包括,但不限于,硬件交互相关服务、与其他应用或进程相关的服务(诸如执行或创建进程)、调度、存储器管理等等。
分配给用户空间101和内核103的存储器空间可以是在内核103的控制下或更一般地在OS的控制下的物理存储器的实际分段或者可以是虚拟存储器分配(诸如按需要与其他物理存储器设备组合的活动随机存取存储器(RAM)组件,等等)。本领域普通技术人员很好地理解虚拟存储器的这样的功能。因此,这里使用的术语“存储器”可以指物理存储器或虚拟存储器。
主要处理器100是“主要的”,如这里使用的,因为其为电子设备执行OS,其中OS包括,除了其他之外,内核103。主要处理器100是“主要的”,如这里使用的,还因为其执行包括一个或多个应用的用户空间101。辅助处理器120是“辅助的”,如这里使用的,因为其替代用户空间101且与内核103交互,如同其是运行在主要处理器100上的进程,以执行与外围硬件105相关的操作。在辅助处理器120控制期间,主要处理器100被阻止完全从睡眠操作模式中被唤醒。这些特征在下面结合各种其他附图而进一步详细描述。
图1B的示例装备表示类似于图1A的实施例,除了开关108。开关108操作用于允许一次仅有一个实体来控制显示器107。具体地,根据开关108的配置,辅助处理器120或是在主要处理器100上执行的内核103可以在任何特定时间控制显示器107。这些特征也在下面结合各种其他附图而进一步详细描述。
图1A和图1B中以及本公开的其他附图中所示的示例电子设备被配置为根据实施例启用各种特征和操作。这些特征和操作可以结合图2A、2B和2C中所图示的示例显示器而被理解。图2A、2B和2C是示出根据实施例的用户界面显示的顺序显示视图的图。图2A图示了在电子设备处于睡眠操作模式时可以出现的显示状态。更具体地,图2A图示了在睡眠模式期间可以被启用的“呼吸”特征。呼吸特征以预先确定的调度或者响应于用户交互临时点亮显示器的至少一部分,以示出一些信息,诸如时钟201、多个通知/信息图标203和活动指示205。时钟201显示当前事件和多个通知/信息图标203使得用户能够通过触摸多个通知/信息图标203内的适当图标而获取有关各种通知的更多信息。
根据实施例,用户可以通过使用各种公开的特征而获取有关多个通知及其相应内容的信息。除了其他优点之外,本公开中所述的特征向用户提供了改变显示视图的丰富体验,同时保持电子设备电池上的低电流损耗。例如,在图2B中,用户可以将其手指置于多个通知/信息图标203的一个图标上并且可以将其手指从一个图标扫到另一图标以改变显示视图。在图2B中,用户将其手指置于消息图标211上,且作为响应,通知信息207显示于显示器的顶部附近,连同显示的还有示出所选的消息图标211的指示209。在图2C中,用户已经通过在显示器上滑动其手指到图标或者通过触摸图标的特定区域而选择了语音邮件图标219,作为响应,通知信息215显示于显示器的顶部附近,连同显示的还有示出所选的语音邮件图标219的指示217。显示器还可以显示锁定状态图标213,其模拟电源按键,按下完全开启设备。在一些实施例中,上述的用户访问显示视图的能力可以取决于当显示器锁定时启用或者禁用观看通知的用户设定。换句话说,可能需要密码来解锁屏幕。
本公开使用对应和指代上面结合图2A、2B和2C所述的各种特征和操作的各种术语,并且帮助促进对它们的描述。现在将在电子设备包括具有触摸屏功能的显示器(诸如显示器107)的实施例的场境中描述这些术语。显示器107的触摸屏功能使得显示器107能够发送用户输入信息到主要处理器100、到辅助处理器120、或者到二者。
这里使用的术语“瞥视”指的是用户可以使用触摸屏选择通知并作为响应通过在显示器的特定部分中显示通知信息而将提供进一步有关通知的信息的适当显示“瞥视”示出的操作。上面描述的图2A和图2B图示说明了瞥视操作的示例。
这里使用的术语“绘制”指的是显示数据的一部分被更新使得显示器的特定部分可以显示显示数据的所更新部分的操作。绘制操作可以响应于或者结合瞥视操作而发生。绘制操作可以被仿真主要处理器100的用户空间101的辅助处理器120所促进。绘制操作还涉及内核103内的显示器驱动器,用于执行部分显示数据更新。显示器驱动器可以用于根据请求而只更新显示器的小部分,同时保持显示器剩余部分未受影响。
这里使用的术语“唤醒”指的是当内核被挂起时,启用诸如瞥视操作的另一操作的操作,而同时最小化时延和电流损耗影响。唤醒操作只对必要内核驱动执行恢复以便在不曾完全恢复的情况下进行诸如瞥视操作的其他操作、执行该操作、然后将内核返回到挂起模式。
在一些实施例中,唤醒操作利用称为“suspend_again”的“platform_suspend_ops”结构上的接口。当电子设备从挂起被唤醒时,调用(call)函数来确定是否完全恢复电子设备(即,从睡眠模式完全唤醒),或者电子设备是否应该回到挂起模式。该操作的示例代码如下:
根据实施例,定义函数以使得能够执行操作,并且然后回到挂起模式。该操作的示例代码如下:
图3提供诸如图1A或图1B中所示的示例装备中的操作的进一步细节。在图3的流程图中,操作方法开始于在主要处理器100操作于睡眠模式时检测到唤醒触发,如操作块301所示。在操作块303,防止在主要处理器100上的用户空间101的激活。在正常操作中,唤醒触发将致使主要处理器100完全被唤醒,使得用户空间101连同内核103一起被完全激活。但是,根据实施例,用户空间101被防止完全激活。在操作块305,主要处理器100将控制和与内核103的互操作传递到辅助处理器120,使得辅助处理器120可以请求内核103操作。在操作块307,辅助处理器120替代用户空间101并且访问内核103以执行外围硬件105操作。外围硬件105操作可以涉及显示器107的操作(诸如更新显示数据以显示图像)或与一个或多个其他组件109相关的操作。在硬件操作完成之后,主要处理器100可以通过挂起内核103而恢复睡眠模式,如操作块309所示。
转到图4,示出另一示例装备,其中主要处理器400被配置为发送规则集410到辅助处理器420以使得辅助处理器420能够替代主要处理器400的用户空间401内的应用。主要处理器400通过一个或多个通信总线409,操作地耦合到辅助处理器420和外围硬件440。类似地,辅助处理器420也使用一个或多个通信总线409,操作地耦合到传感器和用户接口(UI)430和外围硬件440。根据图4所图示的实施例,用户空间401内的多个应用(或“进程”)中的任何一个,诸如应用1到应用“n”,可以生成规则集410并且将规则集410传送到辅助处理器420。用户空间401包括应用规则守护程序402,其可以被用户空间401内的任何应用所调用(call)来使用协议405生成和传送规则集410到辅助处理器420。规则集410通过一个或多个通信总线409使用协议405被发送到辅助处理器420。
辅助处理器420操作用于将主要处理器400从睡眠模式唤醒。这是在辅助处理器420响应于特定触发条件而发送唤醒信号到主要处理器400时完成的。根据实施例,响应于给定触发条件,辅助处理器420接收规则集410并且使用它来确定向主要处理器400提供什么信息,以及信息应该怎样被格式化。唤醒触发条件可以从任何数目的源生成。特别地,触发条件可以通过传感器和UI 430所接收到的输入而生成。图5提供诸如图4中所示的示例装备中的操作的进一步细节。
在图5的流程图中,在用户空间401中的应用生成与特定应用的事件处置相对应的规则集410时,操作的方法开始于操作块501。规则集410指定事件应该怎样被处置以及用于将事件相关信息发送回到应用的格式。在操作块502,应用规则守护进程(daemon)402对规则集410进行验证和打包,且在操作块503,应用使用协议405从主要处理器400发送规则集410到辅助处理器420。
在操作块505,主要处理器400被置于睡眠模式(或挂起模式),在操作块507,辅助处理器420对可能包括显示器的外围硬件440采取控制。在操作块509,辅助处理器420解析规则集410,并且在操作块511,基于规则集410侦听事件。当在决策块513检测到与应用相对应的事件时,在操作块515由辅助处理器420处置该事件。也就是,在主要处理器400用户空间401保持睡眠模式的同时,辅助处理器420遵从规则集410来替代应用。在操作块517,辅助处理器420可以唤醒主要处理器400并返回控制。但是,如操作块519中所示,辅助处理器420还将根据规则集410的规范而向主要处理器400提供关于唤醒事件的信息。响应于在操作块517发送的信息,主要处理器400可以完全被唤醒且由此完全激活用户空间401,或者可以返回挂起模式,其中辅助处理器420继续执行特定操作。也就是,在决策块521,如果主要处理器400需要进一步处置该事件,则主要处理器400前进到激活用户空间401且操作方法如所示结束。但是,如果在决策块521不需要主要处理器400,则在操作块505操作方法可以将主要处理器返回到挂起模式,且辅助处理器420可以再次对外围硬件440采取控制。否则,操作方法可以基于相同应用或生成新规则集的另一应用再次开始。
在一个关于图5中所示的操作的特定示例中,用户空间401的电子邮件应用可以接收电子邮件并生成通知。用户空间401的关于AOD特征(始终开启显示)的另一应用是处置通知的显示的应用。根据实施例,AOD应用可以生成指定怎样处置数据缓冲的规则集。也就是,AOD应用将渲染缓冲、对其注册、并且传送到辅助处理器420,如果用户触摸显示器(即,提供触摸屏输入),则应该执行瞥视操作。基于所生成的规则集,辅助处理器420将在主要处理器400操作于睡眠模式时接管AOD应用。
因此,在图4中图示的示例实施例中,主要处理器400使用一个或多个通信总线409中的一个和协议405发送规则集410到辅助处理器420。规则集410指定辅助处理器420应该怎样对用户交互事件作出响应,用户交互事件诸如从显示器的触摸屏特征接收到的用户输入。辅助处理器420响应于检测到诸如但不限于用户输入的事件而跟随规则集410中指定的操作序列。由应用生成规则集410的发生无需电子设备用户知晓或输入。从用户观点来看,电子设备将看上去继续操作,如同用户仍在与和规则集410相对应的应用交互。
为了辅助处理器420使用规则集410从应用接管控制,应用必须处于可以出现或执行一组预先确定的事件的状态。换句话说,应用必须处于有点“静态”的状态,其中给定的一组预先确定的动作可以关于应用而执行。作为关于电子邮件应用的“静态”状态的示例,电子邮件应用可以在显示器上的用户界面窗口中示出电子邮件消息的列表。在该点,用户可以采取有限数目的动作之一,诸如a)退出应用,b)删除电子邮件消息或c)选择电子邮件消息以显示。电子邮件应用因此具有有限数目的可能“事件”(即,事件“a”、“b”或“c”),其可以从电子邮件应用的当前状态发生或执行。电子邮件应用可以因此发送通知,导致应用规则守护程序402的调用(call),应用规则守护程序402将随后生成规则集,所述规则集定义那些事件(即,在当前状态期间可能采取的用户动作)以及规定辅助处理器420响应于检测到那些事件中的一个事件而应该采取什么动作。如果电子邮件应用不再有必要保持活动(以及如果没有其他应用保持活动),则主要处理器400可以进入到睡眠模式(或“挂起”模式),这将进而又把控制传递给辅助处理器420,使得其可以执行规则集410且执行指定的响应动作。例如,可以被指定用于辅助处理器420的响应动作中的一个可以是唤醒主要处理器400并且将控制返回给用户空间401应用。
规则集410使用适合于被辅助处理器420解释的格式和规则语法。为了完成这个,应用可以调用(call)应用规则守护程序402,其除了其他事情之外,可以提供辅助处理器420的命令的表以及辅助处理器420可以被请求起作用的状态列表。应用规则守护程序402还可以连同规则集410一起、或在规则集410之后,将任何所需状态信息打包,并且使用协议405发送该信息到辅助处理器420。协议405被定义为在主要处理器400的用户空间401和辅助处理器420之间且有助于应用行为对辅助处理器420的通信。用户空间401中各种应用中任何应用可以利用协议405和应用规则守护程序402。
除了其他优点,应用规则守护程序402和协议405使得能够在主要处理器400操作于睡眠模式(或挂起模式)的同时,由辅助处理器420处置与用户空间401中的一个或多个应用相关的事件。这导致电子设备电池上的更低的电流损耗。
在一些实施例中,应用规则守护程序402提供表,该表定义可以从传感器和UI 430获得的一组来自一个或多个传感器的输入、一个或多个用户接口输入、或者其各种组合。表还定义了用于可以针对那些输入而由辅助处理器420所采取的动作的多个规则。这些规则可以被应用使用应用规则守护程序402根据应用的特定要求来选择和布置。辅助处理器420因此可以被应用使用来基于传感器输入或用户输入而运行各种算法。结果是,当事实上是由次要处理器420执行动作时,向用户提供这样实际上响应于输入而执行应用的表象。换句话说,通过遵从规则集410,辅助处理器420替代应用且执行如规则集410所指定的特定应用动作。
在一些实施例中,多个应用可以生成规则集用于由辅助处理器420执行。辅助处理器420可以提供基于先来先服务的模拟来避免冲突。而且,如上所提及的,应用规则守护程序402可以提供表,该表定义可以从传感器和UI 430获得的一组来自一个或多个传感器的输入、一个或多个用户接口输入、或者其各种组合。因此,辅助处理器420可以被规则集410配置为对被定义为基于多个传感器输入、多个用户接口输入、或者其一些组合而发生的“事件”作出响应。此外,“事件”可以被定义为需要预订序列的输入以便触发辅助处理器的响应。
作为来自管理显示器的应用的规则集的一个示例,规则集410可以指定一个事件作为对在触摸屏(即触摸屏显示器)的指定区域进行触摸屏用户输入的检测。响应于检测到输入事件,规则集410可以指令辅助处理器420将显示器的触摸区域周围的照明修改某勒克斯百分比。在其他示例中,规则集410可以基于指示电子设备空间定向、周围环境光或环境声的变化、或可以被电子设备的传感器所检测到的任何其他变化的传感器输入来指定响应动作。例如,辅助处理器420可以被规则集410指令来基于各种传感器的检测,在用户从口袋中掏出设备时开启显示器并在用户将电子设备放回到口袋中时关闭显示器。规则集410还可以基于来自其他传感器的输入或根据用户输入而指令辅助处理器420何时启用或禁用某些传感器。在另一示例中,规则集410可以指令辅助处理器420用基于时间的新图像重新绘制显示器的区域,更具体地,重新绘制时钟来示出正确事件。
在另一示例中,特定动作可以是辅助处理器420响应于单独或同时或在时间上紧密间隔(诸如几个毫秒内)发生的多个事件的发生而唤醒主要处理器400。例如,规则集410可以指令辅助处理器响应于检测到在触摸屏显示器上的指定点上的触摸输入而唤醒主要处理器400。除了唤醒主要处理器400之外,辅助处理器420还将向主要处理器400通报辅助处理器420已经采取的任何动作(诸如向像是器绘制了什么等等),使得主要处理器400可以从正确状态恢复控制。该状态信息可以由辅助处理器420使用协议405发送到主要处理器400,并且可以例如作为信息表而发送。
现在将关于控制显示面板的一个示例实施例来进一步描述协议405的示例实施方式。显示面板是图4中所示的外围硬件440的一部分。在示例实施例中,一个或多个通信总线409可以包括或可以使用内部集成电路(“I2C”)总线来实现。但是,应该理解,一个或多个通信总线409可以使用其他适合的连接技术来实现,诸如但不限于,串行外围接口(SPI)、通用异步接收机/发射机(UART)、控制器区域网(CAN),或者在一些实施例中通过使用端口管脚,或者使用一些其他适当连接技术。因此,仅关于提供示例来讨论I2C。而且,在示例实施例中,除了其他以外,内核403包括用于外围硬件440的各种硬件驱动器404。硬件驱动器404包括辅助处理器420驱动器,其与辅助处理器420使用I2C总线通信,使得某些外围硬件440的控制可以在主要处理器400和辅助处理器420之间来回传递。控制可以被移交给辅助处理器420以便便利硬件操作407,硬件操作407可以使用内核403和硬件驱动器404的任何所需驱动来执行。在一个示例中,硬件操作407可以涉及执行部分显示更新,所述部分显示更新被执行以启用关于图2A和图2B所述的瞥视操作。更具体地,在唤醒操作期间,内核403执行仅必要硬件驱动器404的部分恢复以便通过I2C总线与辅助处理器420通信以执行任何所需硬件操作407,诸如但不限于,执行部分显示更新。因此,由主要处理器400接收的唤醒触发被评估为确定完全恢复是否有必要或者只是内核403的部分恢复是否可以满足特定唤醒触发源的请求。例如,这里详细描述的唤醒操作只用于瞥视操作以对在内核403处于完全挂起时发生的“瞥视”请求作出响应。内核403的部分恢复被调用(invoke)来对唤醒操作唤醒触发或唤醒命令作出响应,同时用户空间401被抑制激活。在一些实施例中,绘制操作可以实现为显示器驱动器中(内核403内)的机制,被用于执行例如部分显示更新。显示器可以被认为是通过可以包括用于显示器的显示数据总线的一个或多个通信总线409操作地耦合到辅助处理器420的外围硬件440的一部分。在各种实施例中,瞥视操作可以被认为是协议405机制,通过该机制,辅助处理器420和内核403通信以便执行绘制操作。绘制操作和唤醒操作可以被认为是瞥视操作的子操作。
在讨论中的协议405示例中,内核403和辅助处理器420之间的所有I2C通信使用一组辅助处理器420注册来容纳。例如,“WAKE_STATUS”注册可以用于将从辅助处理器420发送的命令传递到内核403辅助处理器420驱动。“PEEKDATA_REG”注册可以用作有效负荷注册,该有效负荷注册用于从辅助处理器420发送到内核403辅助处理器420驱动的数据。“PEEKSTATUS_REG”注册可以用作肯定(“ACK”)注册,其用于从内核403辅助处理器420驱动发送到辅助处理器420的数据。“STATUS_REG”注册可以用作一般辅助处理器420状态注册。例如,STATUS_REG内容可以指示辅助处理器420是活动的且可以指示当前显示面板状态。也就是,各种位状态可以用于指示显示面板状态,诸如“显示器关闭”、“睡眠退出”;“显示器开启”、“睡眠退出”;“显示器关闭”、“睡眠进入”;以及“显示器开启”、“睡眠进入(无效)”。
I2C总线上的协议405可以包括使用各种命令的通信。作为示例,协议405的“瞥视准备”命令可以被实现为从辅助处理器420到内核辅助处理器420驱动的消息以开始绘制操作。当内核403接收瞥视准备消息时,内核403对显示面板采取物理控制且辅助处理器420不再能够与显示面板通信。响应于瞥视准备命令,内核403将读取显示面板状态且如果状态不正确,面板将被恢复且辅助处理器420使用“STATUS_REG”注册得到通知。在可能与瞥视准备命令共同发生的注册状态的一个详细示例中,WAKESENSOR_STATUS注册可以存储与唤醒相对应的值;STATUS_REG注册将具有显示面板状态且PEEKSTATUS_REG注册将存储具有命令的状态结果的内核403ACK。
在另一示例中,协议405的“绘制”命令可以实现为从辅助处理器420到内核辅助处理器420驱动的消息,该消息指定哪个缓冲ID绘制到显示面板上。要在其上绘制的显示面板屏幕的区域也被定义且可以是整个显示面板屏幕或其一小部分,例如两个像素高乘以八个像素宽,或者某个其他大小。在可能与绘制命令共同发生的注册状态的一个详细示例中,WAKESENSOR_STATUS注册可以存储与绘制命令相对应的值;PEEKDATA_REG注册将存储表示缓冲ID(即0x05)的的有效负荷;PEEKSTATUS_REG注册将存储具有命令的状态结果的内核403ACK。作为特定示例,PEEKSTATUS_REG注册可以具有标志位,该标志位指示所请求的缓冲是否被成功绘制,其中“0”指示缓冲被成功绘制而“1”指示缓冲未被绘制且发生了错误。所请求的缓冲ID可以包括在PEEKSTATUS_REG注册中来帮助在辅助处理器420和内核辅助处理器420驱动之间的同步命令。
在一些实施例中,协议405的“擦除”命令可以实现为从辅助处理器到内核辅助处理器420驱动的消息,该消息指定要擦除成黑色的面板的矩形部分。这样的擦除可以得到绘制命令的促进,因为辅助处理器420可以在用于绘制的PEEKDATA_REG注册有效负荷中指定,不是向显示面板存储器绘制指定缓冲内容,而是显示面板的一部分将被指定矩形部分涂黑,换句话说将瞥视区域抹成全黑。因此,在这样的实施例中,擦除命令消息可以不被定义,或者可以如上所述利用绘制命令。
在另一示例中,协议405的“完成”命令可以实现为从辅助处理器420到内核403辅助处理器420驱动的消息,该消息指示不再有更多绘制被请求且绘制操作序列可以完成。当内核403接收“完成”命令消息时,内核403返回显示面板的物理控制到辅助处理器420,使得其具有控制且能够与显示面板通信以执行诸如绘制、亮度控制等等的各种操作。因此,响应于完成命令消息,内核403执行清除并将显示面板的控制返回到辅助处理器420。在与完成命令共同发生的注册状态的一个详细示例中,WAKESENSOR_STATUS注册可以存储与完成相对应的值;PEEKDATA_REG注册将不具有任何有效负荷(即空或“不关心”);PEEKSTATUS_REG将存储具有当前面板状态的内核403ACK。低字节可以指示面板状态,其方式与以上之前描述相同(即所指示的面板状态可以是“显示器关闭”、“睡眠退出”;“显示器开启”、“睡眠退出”;“显示器关闭”、“睡眠进入”;或“显示器开启”、“睡眠进入(无效)”)。
在当前协议405示例中,在内核403已经被发送绘制命令之后,辅助处理器420将不再具有显示面板的物理控制。辅助处理器420将不会再次得到对显示面板的控制,直到内核403被发送完成命令且内核403用该命令消息的ACK来响应。因此,如果辅助处理器420检测到“起离”(即检测到用户已经抬起显示面板上的手指并由此取消瞥视操作)或者检测到取消绘制操作的一些其他原因,则辅助处理器420必须发送完成命令消息且等待内核403用该命令消息的ACK来回应。
在协议405的当前示例中,以比绘制命令更高的优先级处置完成命令。因此,如果同时接收二者,则完成命令将优先进行而绘制命令将被忽略。
在一些实施例中,如果当内核等待完成或绘制消息的同时且内核403超时(即,例如,1秒钟),则内核403可以占据PEEKSTATUS_REG注册,如同完成消息被接收。但是,在替选实施例中,内核403可以假定辅助处理器420没有期待消息且不做任何事,辅助处理器420还可以在用于绘制命令的PEEKDATA_REG注册有效负荷中指定,不是绘制缓冲内容到显示面板存储器,而是将显示面板的一部分涂黑,换句话说,将瞥视区域抹成全黑(类似于上述擦除命令消息的实现)。而且,在一些实施例中,如果辅助处理器420使用无效的或者不能被内核403识别的缓冲ID进行绘制请求,则由内核403发送回的ACK将具有指示故障的位设置。
转到图6,示出根据一个实施例的另一示例装备。主要处理器600操作地耦合到辅助处理器620和显示器607。辅助处理器620还操作地耦合到显示器607。在图6的实施例中,辅助处理器620操作用于与内核603通信以替代主要处理器600的用户空间601内的应用602中的一个或多个应用以执行硬件操作,诸如更新显示器607上的显示数据223。用户空间601包括一个或多个应用602、“绘制”API(其可以包括一个或多个API)以及OS图形框架610。OS图形框架610包括OS表面渲染模块611和OS图形管线612。内核603包括共享缓冲管理器604、显示器驱动器/覆盖引擎606和辅助处理器驱动器605。绘制API614提供共享缓冲和参考细节613给共享缓冲管理器604且该信息在绘制操作期间被使用。
根据各种实施例的电子设备可以采用例如在主要处理器上执行的AndroidTM OS。但是,可以根据实施例而使用各种操作系统中任何一个,诸如但不限于AndroidTM、等等。用于使用AndroidTM OS的实施例的OS图形管线612的一个示例是“Surfaceflinger”。图6中所图示的实施例可以用于实现瞥视操作,如上所述。各种实施例中的瞥视操作可以实现为辅助处理器620、辅助处理器驱动器605和显示器驱动器/覆盖引擎606之间的消息驱动状态机。AndroidTM OS内核中的显示器驱动器/覆盖引擎606的一个示例是msm_fb驱动。消息驱动状态机的操作细节关于下面进一步详细描述的图9的流程图进一步详细描述。
操作中,主要处理器600以及相应地用户空间601和内核,可以操作于挂起模式以节省电力。根据实施例,瞥视操作可以用用户提供用户输入给显示器607的触摸屏输入而调用(invoke)。响应于触摸屏输入,生成唤醒信号。但是,对于瞥视操作,内核603将只恢复“resume_early”驱动,“resume_early”驱动包括辅助处理器驱动器605和显示器驱动器/覆盖引擎606。
根据图6的示例实施例,瞥视操作涉及用户空间601应用的使用OS图形框架610的离屏缓冲而非推送帧的利用。当各种通知进来时,始终开启显示(“AoD”)应用608例如可以创建缓冲并通报内核603,并且保持主要处理器600处于睡眠模式,而辅助处理器620将接管且与内核603交互以在需要瞥视操作时绘制缓冲。
瞥视操作可以发生在主要处理器600处于睡眠模式或被唤醒时。离屏缓冲区的创建可以是一种事件类型,使得唤醒命令被发送。当主要处理器600被唤醒时,辅助处理器620可以操作于睡眠模式。例如,当主要处理器600被唤醒时,瞥视操作可以调用(invoke)绘制操作。绘制操作可以创建一个或多个离屏缓冲区,其将致使主要处理器600唤醒辅助处理器620。也就是,辅助处理器620可以被来自主要处理器600的消息所唤醒(即,“创建缓冲区”消息)。
在另一可能场景中,主要处理器600可以被唤醒,但是显示器607可以是关闭的。在该情况下,辅助处理器620可以仍旧发送唤醒触发(即使主要处理器已经被唤醒),使得辅助处理器620可以在唤醒操作之外发送瞥视命令消息。换句话说,各种实施例可以执行瞥视操作,即使在主要处理器600正在执行某个其他活动时。但是,在任一场景中,在辅助处理器620的任何动作之前,缓冲区必须由应用注册到内核。在各种实施例中,这样的缓冲区没有发送到显示器607,而是存储在存储器630中,直到缓冲区被绘制命令所需要。
在现有系统的操作中,应用602中的一个应用将创建“视图”,其是OS图形框架610将组成到表面中的缓冲区。表面将通过OS图形管线612来处理且被显示器驱动器/覆盖引擎606置于显示器607上。与之对照,在各种实施例中,缓冲区没有通过OS图形框架610处理,而是被生成作为“离屏”缓冲区以在稍后时间使用。例如,数据缓冲区633存储在存储器630中,且向内核603注册,使得其在缓冲区注册表635中被引用(且成为所注册的数据缓冲区637中的一个)以用于稍后识别和访问。在各种实施例中,缓冲区注册操作由绘制API 614来执行。也就是,应用608从其他应用602中的一个提取视图且利用绘制API 614将其置于数据缓冲区633中且向内核603注册数据缓冲区633。内核603随后在缓冲区注册表635中列出数据缓冲区633。
存储器630操作地耦合到用户空间601和内核603且可由二者读取和写入。存储器630可以是主要处理器600芯片的板上存储器,或者在一些实施例中可以是外部存储器组件或可以实现为虚拟存储器。
图7是示出根据各种实施例的用于缓冲区注册的操作的方法的流程图。操作方法开始于操作块701且在操作块701中,应用602中的一个应用创建视图(即,位图)。在操作块703,该视图被绘制API 614提取。在操作块705,该应用将视图复制到数据缓冲区633且将其存储在存储器630中。在操作块707,内核603API被调用(call)以注册数据缓冲区633,且内核603在缓冲区注册表635中注册数据缓冲区633,如操作709中所示。操作方法随后结束。
如上所提及的,绘制API 614可以包括一个或多个API,所述一个或多个API提供输入/输出控制(“IOCTL”)接口给内核603以使得应用能够使用内核603和辅助处理器620。现在将关于“始终开启”(“AoD”)应用608利用内核603和辅助处理器620的一个示例实施例来描述具有各种API的这样的IOCTL接口的示例实施方式。更特别地,AoD应用608使用各种API连同上述的协议405,来创建关于图2A和图2B描述的瞥视操作的控制注册序列。
因此,根据讨论中的示例实施例,绘制API 614可以提供用于在应用602中的一个应用和内核603之间相接口的各种API的套件。作为示例API,当AoD应用608开始清除存储器630中的任何“陈旧”缓冲区时,“DRAW_INIT”API被调用(call)。当新瞥视视图被创建且其必须向内核603注册时,“DRAW_ADD_BUFFER”API被使用。新瞥视视图是经由辅助处理器 420请求而“可瞥视的”。DRAW_ADD_BUFFER API可以提供有效负荷“struct msmfb_draw_buffer_data”,其可以是要置于诸如数据缓冲区633的数据缓冲区中的瞥视视图的位图631。当瞥视视图(即例如位图631)不再需要且从内核603中移除注册(使得其不再“可瞥视”)时,“DRAW_REMOVE_BUFFER”API可以被使用。API将发送对应缓冲区ID,使得数据缓冲区可以从缓冲区注册表635中移除,且因此,从所注册的数据缓冲区637中移除。
当缓冲区内容被更新时,“DRAW_LOCK_BUFFER”API可以被使用。该API在更新位图631被写入存储器630之前被复制到输入/输出存储器管理单元“IOMMU”(未示出)之前被调用。用于API的有效负荷是用于要更新的缓冲区的对应缓冲区ID。在位图已被复制到IOMMU之后,“DRAW_UNLOCK_BUFFER”API用于解锁之前锁定的缓冲区。用于该API的有效负荷也是用于(现在更新的)缓冲区的缓冲区ID。其他API也可以存在且API不以任何方式限于这里提供的示例。这些示例API被提供作为根据一个示例实施例且关于一个示例应用(即AoD应用608)的绘制API 614的一个可能实施方式。
根据实施例,响应于用户与显示面板的交互,示例AoD应用608创建“瞥视”的“观看和感受”并且使用内核603和辅助处理器620作为工具来渲染瞥视以及对应的动画。辅助处理器620被用于执行AoD应用608所定义的注册序列的控制。内核603由辅助处理器620使用来根据控制注册序列绘制离屏数据缓冲区(来自与瞥视相关联的所注册的数据缓冲区637)到显示器607存储器(显示数据223)。
现在将描述AoD应用608可以在组成不同瞥视视图(即所注册的数据缓冲区637)的离屏缓冲区的管理中采用的特定序列的示例。更一般地关于图7对应用的序列进行了描述。在当前示例中,AoD应用608可以通过调用IOCTL接口的DRAW_INIT API而开始重置内核603离屏缓冲区列表,即缓冲区注册表635,其与所注册的数据缓冲区637对应。对于AoD应用608想要管理的每个新离屏缓冲区,应用可以调用(call)IOCTL接口的DRAW_ADD_BUFFER API来向内核603注册离屏缓冲区。在一些实施例中,这些缓冲区(所注册的数据缓冲区637)可以在AoD应用608的生命周期中保持被注册,因为持续移除和添加缓冲区可以导致存储器630的碎片。
当所注册的数据缓冲区637的之前注册的离屏缓冲区中的一个需要更新时,缓冲区必须使用例如DRAW_LOCK_BUFFER API来锁定、更新、然后使用DRAW_UNLOCK_BUFFER API来解锁。当AoD应用608退出或当与AoD应用相对应的特征(即“始终开启”显示特征)被禁用时,所有所注册的离屏数据缓冲区637被使用IOCTL接口的DRAW_REMOVE_BUFFER API移除。
在上述API的实施方式中,数据结构也被定义为在用户空间601内存储与瞥视相关联的信息。在一个示例中,数据结构包括,但不限于或由其限制,缓冲区数据(“msmfb_draw_buffer_data”)(例如,位图631和用于瞥视的其他信息);缓冲区ID(“buffer_id”),其是识别用户空间601、内核603、和辅助处理器620之间的缓冲区的唯一缓冲区ID;到IOMMU分配的存储器空间的文件描述符(“user_fd”);以及包含开始x-y坐标以及瞥视宽度和高度的覆盖结构(“mdp_overlay”)。
内核603和辅助处理器620不能同时与显示器607通信。怎样与显示器通信的进一步的细节是从内核切换到辅助处理器,进一步在图9中描述根据各种实施例的控制注册序列的创建,在下文中讨论。
基于上面的描述且如图6中所示,各种实施例使得应用能够生成和保持向内核603且向辅助处理器620注册的多个“瞥视视图”,使得当用户瞥视显示器607上的“不活动”通知时,辅助处理器620可以请求内核603使用瞥视操作向显示器607绘制瞥视。
除了其他优点以外,应用不需要访问OS图形框架610以渲染“瞥视”而且不必用每个通知生成单个全屏“瞥视”。作为替代,每个通知可以与其自身视图相对应,其自身视图可以进一步与所注册的数据缓冲区637中的单个离屏数据缓冲区相对应,可以响应于用户触摸而按需被访问和写入到显示数据223。而且,除了其他优点之外,主要处理器不需要从完全挂起出来到完全恢复状态以允许OS通过OS图形框架610渲染“瞥视”。因此,各种实施例节省处理时间并增加移动设备响应性,以及降低主要处理器600的电流消耗,由此增加电池使用时间。
因此,操作中,当用户触摸显示器607的区域以便“瞥视”“不活动”通知时,辅助处理器620将通知内核显示器驱动器/覆盖引擎606,瞥视(经由瞥视的缓冲区ID)需要使用如上所述的瞥视操作而被绘制到显示器607。内核显示器驱动器/覆盖引擎606将渲染适当数据缓冲区(来自所注册的数据缓冲区637)到显示面板的存储器(即显示数据223)且随后将控制返回到辅助处理器620以用于进一步用户交互。
下面的伪代码提供生成离屏瞥视缓冲区的示例。在该示例中,位图631被复制到数据缓冲区633,其经由DRAW_ADD_BUFFER API被传递到内核603。当通知被添加和移除时,数据缓冲区633可以被重写且随后被重写到显示器607显示数据223。
图8是根据本公开的一个实施例的示例电子设备800的框图。示例电子设备800是移动电话,即智能电话,但是,根据实施例的电子设备可以是各种适合电子设备中任意一个,诸如但不限于,移动电话(即智能电话);个人数字助理(PDA);便携媒体播放器(例如MP3播放器);个人计算设备,诸如平板;或者可穿戴电子设备,诸如用腕带佩戴的(即智能手表)。也就是,根据实施例的电子设备可以是能够操作于睡眠模式的任意电子设备。电子设备800被配置为执行操作,以及提供特征和功能,如上关于图1A、图1B、图2A到2C、图4、图6和上述流程图所述。
一个或多个连接总线860提供主要处理器804、辅助处理器802(低电力处理器)和其他各种电子设备800组件之间的操作耦合。如这里使用的,当信息可以在这样的组件之间发送,即使在其之间或者沿着连接路径可能存在一个或多个中间或介入组件,所述组件可以是“操作耦合”的。因此,连接到一个或多个连接总线860的各种组件中任何一个再次可以被理解为在适当的时候操作地耦合到主要处理器804、辅助处理器802、或者一些其他组件等等。
连接总线842提供主要处理器804和辅助处理器802之间的操作耦合。在一些实施例中,连接总线842可以例如是内部集成电路(I2C)总线。但是,连接总线842可以使用其他适合连接技术来实现,诸如但不限于,串行外围接口(SPI)、通用异步接收机/发射机(UART)、控制器区域网(CAN),或者在一些实施例中通过使用端口管脚,或者使用一些其他适当连接技术。
存储器850表示电子设备800内的只读存储器(ROM)和随机存取存储器(RAM)两者。尽管存储器850被示为单个组件,存储器的至少RAM部分可以是分布式存储器,其分布于电子设备800内的各种组件之中。更具体地,存储器850的RAM部分可以由主要处理器804和辅助处理器802使用来实现虚拟存储器特征。存储器850的ROM部分是非易失、非暂时性存储器,且存储可执行指令(可执行代码)或数据,所述可执行指令(可执行代码)或数据可以由主要处理器804或者由辅助处理器802访问和执行。
电子设备800包括显示组件840和传感器和UI 830。显示组件840可以被称为“触摸屏显示器”。显示组件840包括显示器808(即,向用户示出信息的显示器)以及触摸屏806(即,通过在特定位置触摸显示器808而定位以接收用户输入的触摸传感器或触摸矩阵)。显示组件840通过一个或多个连接总线860操作地耦合到主要处理器804和辅助处理器801。
传感器和UI 830还通过一个或多个连接总线860操作地耦合到主要处理器804和辅助处理器801。传感器和UI 830包括电源键810(即,开/关按钮)、一个或多个麦克风812(诸如麦克风阵列)以及一个或多个扬声器(未示出)。一个或多个麦克风812还操作地耦合到可以包括模数转换器(ADC)、数模转换器(DAC)、回声抵消、高通滤波器、低通滤波器、带通滤波器、可调节频带滤波器、降噪滤波器、自动增益控制(AGC)和可以应用来从使用一个或多个麦克风812接收的音频中过滤噪声的其他音频处理的音频处理逻辑(未示出)。传感器可以包括,但不限于,接近传感器814、环境光传感器816、陀螺仪818和加速度计820。电子设备800还可以包括相机822、一个或多个收发器824和触摸传感器826,其可以定位于电子设备800的侧面或背面部分或者一些其他适当位置。
收发器824可以提供无线通信能力用于一个或多个广域网通信系统,诸如但不限于,蜂窝、2G、3G或4G无线通信系统,且还可以通过无线接口提供互联网连接性。在一些实施例中,第二无线收发器可以提供无线连接性能力,诸如但不限于,Wi-FiTM、蓝牙TM、无线USBTM、ZigBeeTM、或其他技术等等,且还可以通过这些无线接口中任意一个而提供互联网连接性。
传感器和UI 830可以在电子设备800的各种模式操作期间提供信号(传感器数据或命令以及控制信号)到主要处理器804或者辅助处理器802。还可以考虑显示组件840触摸屏806是用户界面的一部分,且显示器808可以提供与电子设备800操作系统相关的图形用户界面(GUI)、与一个或多个应用相关的GUI,等等。
当主要处理器804操作于睡眠模式时,传感器和UI 830、或触摸屏806的组件中的任何组件可以使用一个或多个连接总线860,发送唤醒命令到主要处理器804以致使其唤醒。辅助处理器802可以在连接总线842上发送唤醒命令882。
图9是示出根据一些实施例的电子设备的操作的方法的流程图。参见图9,也参看图6,瞥视操作被图示为辅助处理器620、辅助处理器驱动器605、和显示器驱动器/覆盖引擎606(也可以被称为“显示器驱动器”)之间的消息驱动状态机。状态机包括四个功能性阶段:挂起序列;准备序列;执行序列;以及清除序列。
开始于挂起序列,处理900可以响应于诸如但不限于生成诸如数据缓冲区633的离屏数据缓冲区的事件而开始。当主要处理器600处于完全挂起状态时,电子设备被置于极端低的电力模式,如操作块901中所示。辅助处理器620的状态可能是未知的。包括内核603的主要处理器600是休眠的且是睡眠状态的。
在决策块903,可以删除“唤醒触发”。“唤醒触发”(这里也被称为“唤醒命令”)可以由于各种原因而出现且可以从各种传感器或UI输入(诸如图8中的传感器和UI 830)中的任何一个发送。当检测到唤醒命令时,在决策块903执行检查以确定唤醒命令的原因。
检查涉及唤醒内核603主要处理器600使得Wake_Status引擎可以检查唤醒命令的原因。如果唤醒命令不是从辅助处理器620发射,则处理900前进到操作块905且执行主要处理器600的完全恢复,这也唤醒了用户空间601。内核603中的Wake_Status引擎检查来自辅助处理器620的通信端口,以用于指示瞥视操作的消息。如果该消息不存在,则在操作块905执行完全恢复。消息可以是准备消息,如操作块907中所示。
在操作块905的完全恢复之后,主要处理器600可以在主要处理器600已经处置了唤醒命令的原因之后的任意时间在操作块901回到挂起模式。返回到操作块907,内核603中的Wake_Status引擎现在被通知绘制操作正在被请求。辅助处理器620随后在操作块909被传递显示器607的控制并采取控制。在一个示例中,这可以通过控制对显示器107的开关108的访问来完成,如图1B中所示,使得内核103或辅助处理器120在任何一个时间控制显示器107。返回到图9,在决策块911和操作块913、915和917执行显示器607的错误处置过程。
显示器607状态在决策块911被检查以验证辅助处理器620可以与显示器607通信。如果存在问题,则显示器607在操作块913被恢复。也就是,在操作块913,如果需要,辅助处理器620和显示器607是同步的。在决策块911以及操作块913中的任何所需校正动作之后,处理900前进到操作块915。在操作块915,肯定绘制准备消息的肯定消息被构建,且在操作块917,肯定消息被发送到辅助处理器620。
在决策块919,执行序列开始且辅助处理器620等待接收肯定消息。如果在定时器超时之前肯定消息没有被辅助处理器620接收,则处理900前进到开始于操作块923的清除序列。决策块919中的定时器超时时限长度可以是大约5秒的数量级。定时器的目的是使得主要处理器600在辅助处理器620出问题的情况下不会被迫始终等待。
在清除序列中,在操作块925,显示器607的控制被传递回到辅助处理器620,使得其可以取消特定变量(即“清除”)。其他清除动作可以包括关闭移动工业处理器接口(MIPI)或切换MIPI到辅助处理器620以控制显示器607,关闭包括内核603显示器驱动器/覆盖引擎606的显示器驱动器、以及挂起内核603引擎。但是,在此,显示器607将不会被置于睡眠模式。在操作块927,“完成”肯定消息从主要处理器600发送到辅助处理器620,其目的是每完成操作块925就向辅助处理器620通报其具有对显示器607的控制。在此,处理900结束且如果需要,必须开始新的处理。
返回到执行序列和决策块919,在决策块919的肯定消息的接收导致决策块921,在此,主要处理器600等待来自辅助处理器620的表示握手例程的消息。在决策块921,辅助处理器620可以发送“绘制”、“擦除”、或“完成”命令中的一个。在决策块921,一旦主要处理器600接收到命令消息,主要处理器600首先确定命令类型(即,“绘制”、“擦除”、或“完成”)。如果“绘制”命令在决策块921接收,则处理900前进到操作块933并执行绘制命令。在操作块931,生成并发送绘制肯定消息。主要处理器600随后将在决策块919等待另一命令或超时条件。如果“擦除”命令在决策块921被接收,则处理900前进到操作块935并执行绘制命令,但是操作块933和操作块935的功能关于显示数据修改是不同的。也就是,为了实现擦除命令,获得显示器607坐标并且绘制黑色矩形以“擦除”显示器607的一部分。主要处理器600执行必要功能调用(call)以使得消息通过MIPI线被发送到显示器607以致使显示器607在适当位置绘制黑色矩形。因此,如可以从处理900看出的,在瞥视操作期间,由辅助处理器驱动器605利用绘制操作。
在操作块937,当绘制黑框或矩形使得所请求的“擦除”命令执行完成时,生成擦除肯定并被主要处理器600发送到辅助处理器620。类似地,对于“绘制”命令,当对象被绘制时,绘制肯定被主要处理器600发送到辅助处理器620使得所请求的“绘制”命令执行完成。在操作块929,辅助处理器620适当地肯定擦除肯定或是绘制肯定。
操作块933包括瞥视绘制(Peek draw)有效负荷的识别,该瞥视绘制有效负荷是要被绘制的缓冲区。例如,在操作块933,数据缓冲区633被绘制到显示器607。因此,瞥视绘制命令包括相关缓冲区识别的通信。在各种实施例中,应用602创建缓冲区、生成缓冲区ID、并且向内核603通报关于该缓冲区。辅助处理器620因此知道哪个应用602生成了数据缓冲区633。
再次返回到处理900的挂起序列,用于决策块903下面发生的操作,尽管主要处理器600正在操作,完全恢复905不被执行,使得还没有激活全部的用户空间601。更具体地,决策块903下面发生的操作仅仅采用了用来执行完全恢复操作块905的时间的小部分。换句话说,完全恢复905唤醒用户空间601的所有应用602。在进一步操作中,通过在适合这样做的任意时间基于应用的状态而再次挂起主要处理器600可以调用(invoke)处理900。
本公开的一个实施例可以是计算机可读、非易失、非暂时性存储器,存储可执行指令,用于在至少一个处理器上执行。指令当被执行时致使至少一个处理器执行以上详细描述的操作和相应特征和功能的各种方法。
尽管已经图示说明和描述了各种实施例,应该理解,发明不限于此。对于本领域技术人员来说,许多修改、变化、变型、替换和等价将容易想到且不偏离本发明如所附权利要求所限定的范围。
示例1:一种方法,包括:向运行在第一处理器上的内核注册图形缓冲区,所述内核包括显示器驱动器;在无需向显示器绘制所注册的图形缓冲区的情况下,初始地在存储器中存储所述图形缓冲区;以及响应于触发,将所注册的图形缓冲区直接传递到所述内核的显示器驱动以向所述显示器绘制所述图形缓冲区。
示例2:如示例1所述的方法,进一步包括:向第二处理器通报所注册的图形缓冲区;以及由所述内核接收所述触发作为来自所述第二处理器的消息。
示例3:如示例1-2中任意一项所述的方法,进一步包括:当所述第一处理器处于睡眠模式的同时,由所述第一处理器从所述第二处理器接收所述触发作为唤醒命令;在防止激活所述第一处理器上的用户空间的同时,执行所述内核的部分恢复;以及在无需使用所述用户空间的操作系统图形管线的情况下,在所述显示器上绘制所述图形缓冲区。
示例4:如示例1-3中任意一项所述的方法,进一步包括:由所述第一处理器的用户空间中的应用接收图形缓冲区创建触发;以及响应于所述图形缓冲区创建触发,向运行在所述第一处理器上的内核注册所述图形缓冲区。
示例5:如示例1-4中任意一项所述的方法,其中,由所述第一处理器的用户空间中的应用接收图形缓冲区创建触发,包括:响应于通知消息接收缓冲区创建触发,所述图形缓冲区与所述通知消息有关。
示例6:如示例1-5中任意一项所述的方法,进一步包括:从所述第二处理器发送绘制命令到在所述第一处理器上运行的所述内核,所述绘制命令包括用于所注册的图形缓冲区的缓冲区识别信息。
示例7:如示例1-6中任意一项所述的方法,进一步包括:从所述第二处理器发送擦除命令到在所述第一处理器上运行的所述内核,所述擦除命令包括用于所注册的图形缓冲区的包含黑色几何形状的缓冲区识别信息;以及在显示器的区域上绘制所述黑色几何形状,以便擦除所述显示器的该区域。
示例8:如示例1-7中任意一项所述的方法,进一步包括:由所述第二处理器检测对触摸屏显示器的用户输入,所述用户输入选择通知消息;以及响应于所述用户输入,从所述第二处理器发送唤醒命令。
示例9:一种装备,包括:显示器;非暂时性、非易失性存储器;主要处理器,所述主要处理器操作地耦合到所述显示器和所述存储器,所述主要处理器操作用于:运行包括显示器驱动器的内核和包括一个或多个应用的用户空间,所述用户空间操作用于向所述内核注册图形缓冲区;以及在无需向显示器绘制所注册的图形缓冲区的情况下,初始地在存储器中存储所述图形缓冲区;辅助处理器,所述辅助处理器操作地耦合到所述主要处理器,操作用于:响应于触发,将所注册的图形缓冲区直接传递到所述内核的显示器驱动器以向所述显示器绘制所述图形缓冲区。
示例10:如示例9所述的装备,所述装备包括至少一个处理器,其中,所述装备能够操作用于执行示例1-8中任意一项所述的方法。
示例11:一种设备,包括:用于向运行在第一处理器上的内核注册图形缓冲区的装置,所述内核包括显示器驱动器;用于无需向显示器绘制所注册的图形缓冲区的情况下,初始地在存储器中存储所述图形缓冲区的装置;以及用于响应于触发,将所注册的图形缓冲区直接传递到所述内核的显示器驱动器以向所述显示器绘制所述图形缓冲区的装置。
示例12:如示例11所述的设备,包括用于执行示例1-8中任意一项所述的方法的装置。
示例13:一种装备,包括:主要处理器,所述主要处理器操作地耦合到触摸屏显示器以及存储器,所述主要处理器操作用于:运行包括显示器驱动器的内核和包括一个或多个应用的用户空间,所述用户空间操作用于响应于由所述用户空间的一个或多个应用生成通知而向所述内核注册图形缓冲区,以及在无需向所述显示器绘制所注册的图形缓冲区的情况下,初始地在所述存储器中存储所述图形缓冲区,所述主要处理器进一步操作用于,通过恢复所述内核而同时防止所述用户空间激活,来执行从睡眠模式部分恢复;以及辅助处理器,所述辅助处理器操作地耦合到所述主要处理器,操作用于:检测对所述触摸屏显示器的选择通知的用户输入;响应于所述用户输入而向所述主要处理器发送唤醒命令,以发起所述内核的部分恢复;以及响应于所述用户输入,将所注册的图形缓冲区直接传递到所述内核的显示器驱动器,以向所述触摸屏显示器绘制所述图形缓冲区。
示例14:一种通过指令来编码的计算机可读存储器,所述指令当被执行时,致使计算设备的至少一个处理器:向运行在第一处理器上的内核注册图形缓冲区,所述内核包括显示器驱动器;在无需向显示器绘制所注册的图形缓冲区的情况下,初始地在存储器中存储所述图形缓冲区;以及响应于触发,将所注册的图形缓冲区直接传递到所述内核的显示器驱动器以向所述显示器绘制所述图形缓冲区。
示例15:如示例14所述的利用指令来编码的计算机可读存储器,所述指令当被执行时致使所述计算设备的至少一个处理器执行权利要求1-8中任意一项所述的方法。
Claims (9)
1.一种用于管理图形缓冲区的方法,包括:
向运行在第一处理器上的内核注册图形缓冲区,所述内核包括显示器驱动器;
在无需向显示器输出所述图形缓冲区的情况下,由所述第一处理器在存储器中存储所述图形缓冲区;以及
向第二处理器通报所述图形缓冲区;
在所述第一处理器处于睡眠模式时,由所述第一处理器从所述第二处理器接收包括唤醒命令的触发;
在防止激活所述第一处理器访问的用户空间的同时,由所述第一处理器执行所述内核的至少部分恢复;
由所述第一处理器使用所述内核的所述显示器驱动器从所述第二处理器接收所述图形缓冲区;以及
在无需使用所述用户空间的操作系统图形管线的情况下,由所述第一处理器使用所述内核的所述显示器驱动器向所述显示器输出所述图形缓冲区。
2.如权利要求1所述的方法,进一步包括:
由所述第一处理器的所述用户空间中的应用接收图形缓冲区创建触发;以及
响应于所述图形缓冲区创建触发,向运行在所述第一处理器上的所述内核注册所述图形缓冲区。
3.如权利要求2所述的方法,其中,由所述第一处理器的所述用户空间中的所述应用接收所述图形缓冲区创建触发,包括:
响应于通知消息来接收所述图形缓冲区创建触发,所述图形缓冲区与所述通知消息有关。
4.如权利要求1所述的方法,进一步包括:
由在所述第一处理器上运行的所述内核从所述第二处理器接收绘制命令,所述绘制命令包括所述图形缓冲区的缓冲区识别信息。
5.如权利要求1所述的方法,进一步包括:
由在所述第一处理器上运行的所述内核从所述第二处理器接收擦除命令,所述擦除命令包括所述图形缓冲区的包含黑色几何形状的缓冲区识别信息;以及
在显示器的区域上输出所述黑色几何形状,以便擦除所述显示器的所述区域。
6.如权利要求1所述的方法,其中,所述显示器是触摸屏显示器,所述方法进一步包括:
响应于用户输入在所述触摸屏显示器处选择通知消息,由所述第一处理器从所述第二处理器接收包括所述唤醒命令的所述触发。
7.一种用于管理图形缓冲区的装备,包括:
显示器;
非暂时性、非易失性存储器;
主要处理器,所述主要处理器操作地耦合到所述显示器和所述存储器,所述主要处理器操作用于:
运行包括显示器驱动器的内核;
运行包括一个或多个应用的用户空间,所述用户空间操作用于向所述内核注册图形缓冲区;
在无需向所述显示器输出所述图形缓冲区的情况下,在所述存储器中存储所述图形缓冲区;以及
向辅助处理器通报所述图形缓冲区;
所述辅助处理器,所述辅助处理器操作地耦合到所述主要处理器,操作用于:
响应于触发,将所述图形缓冲区传递到所述内核的所述显示器驱动器,以向所述显示器绘制所述图形缓冲区;
所述装备进一步被配置使得所述主要处理器在处于睡眠模式时操作用于在防止激活所述用户空间的同时,执行至少部分恢复。
8.如权利要求7所述的装备,其中,所述显示器是触摸屏显示器,并且所述主要处理器进一步操作用于:
响应于由所述用户空间的所述一个或多个应用生成通知,向所述内核注册所述图形缓冲区;以及
操作地耦合至所述主要处理器的所述辅助处理器,进一步操作用于:
检测在所述触摸屏显示器处的选择通知的用户输入;以及
响应于所述用户输入:
向所述主要处理器发送唤醒命令以发起所述内核的至少所述部分恢复;以及
将所述图形缓冲区传递到所述内核的所述显示器驱动器,以向所述触摸屏显示器输出所述图形缓冲区。
9.如权利要求7所述的装备,其中,所述装备能够操作用于执行权利要求1-6中任意一项所述的方法。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361921507P | 2013-12-29 | 2013-12-29 | |
US61/921,507 | 2013-12-29 | ||
US201461973187P | 2014-03-31 | 2014-03-31 | |
US61/973,187 | 2014-03-31 | ||
US14/339,962 | 2014-07-24 | ||
US14/339,962 US9753527B2 (en) | 2013-12-29 | 2014-07-24 | Apparatus and method for managing graphics buffers for a processor in sleep mode |
PCT/US2014/072552 WO2015100453A1 (en) | 2013-12-29 | 2014-12-29 | Apparatus and method for managing graphics buffers for a processor in sleep mode |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106233249A CN106233249A (zh) | 2016-12-14 |
CN106233249B true CN106233249B (zh) | 2020-01-10 |
Family
ID=52392234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201480074554.4A Active CN106233249B (zh) | 2013-12-29 | 2014-12-29 | 用于管理睡眠模式的处理器的图形缓冲区的装备和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9753527B2 (zh) |
EP (1) | EP3087474B1 (zh) |
CN (1) | CN106233249B (zh) |
WO (1) | WO2015100453A1 (zh) |
Families Citing this family (45)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2847660B1 (en) | 2012-05-09 | 2018-11-14 | Apple Inc. | Device, method, and graphical user interface for selecting user interface objects |
WO2013169843A1 (en) | 2012-05-09 | 2013-11-14 | Yknots Industries Llc | Device, method, and graphical user interface for manipulating framed graphical objects |
CN107728906B (zh) | 2012-05-09 | 2020-07-31 | 苹果公司 | 用于移动和放置用户界面对象的设备、方法和图形用户界面 |
JP6273263B2 (ja) | 2012-05-09 | 2018-01-31 | アップル インコーポレイテッド | ユーザ接触に応答して追加情報を表示するための、デバイス、方法、及びグラフィカルユーザインタフェース |
JP6002836B2 (ja) | 2012-05-09 | 2016-10-05 | アップル インコーポレイテッド | ジェスチャに応答して表示状態間を遷移するためのデバイス、方法、及びグラフィカルユーザインタフェース |
WO2013169865A2 (en) | 2012-05-09 | 2013-11-14 | Yknots Industries Llc | Device, method, and graphical user interface for moving a user interface object based on an intensity of a press input |
EP2847658B1 (en) | 2012-05-09 | 2017-06-21 | Apple Inc. | Device, method, and graphical user interface for providing tactile feedback for operations performed in a user interface |
WO2013169849A2 (en) | 2012-05-09 | 2013-11-14 | Industries Llc Yknots | Device, method, and graphical user interface for displaying user interface objects corresponding to an application |
EP2847662B1 (en) | 2012-05-09 | 2020-02-19 | Apple Inc. | Device, method, and graphical user interface for providing feedback for changing activation states of a user interface object |
WO2013169842A2 (en) | 2012-05-09 | 2013-11-14 | Yknots Industries Llc | Device, method, and graphical user interface for selecting object within a group of objects |
CN107832003B (zh) | 2012-12-29 | 2021-01-22 | 苹果公司 | 用于放大内容的方法和设备、电子设备和介质 |
US9753527B2 (en) | 2013-12-29 | 2017-09-05 | Google Technology Holdings LLC | Apparatus and method for managing graphics buffers for a processor in sleep mode |
US9804665B2 (en) * | 2013-12-29 | 2017-10-31 | Google Inc. | Apparatus and method for passing event handling control from a primary processor to a secondary processor during sleep mode |
US9798378B2 (en) | 2014-03-31 | 2017-10-24 | Google Technology Holdings LLC | Apparatus and method for awakening a primary processor out of sleep mode |
KR102326154B1 (ko) * | 2014-08-29 | 2021-11-15 | 삼성전자 주식회사 | 저전력 모드의 표시 방법 및 이를 지원하는 전자 장치 |
US10095396B2 (en) | 2015-03-08 | 2018-10-09 | Apple Inc. | Devices, methods, and graphical user interfaces for interacting with a control object while dragging another object |
US9632664B2 (en) | 2015-03-08 | 2017-04-25 | Apple Inc. | Devices, methods, and graphical user interfaces for manipulating user interface objects with visual and/or haptic feedback |
US9639184B2 (en) | 2015-03-19 | 2017-05-02 | Apple Inc. | Touch input cursor manipulation |
US20170045981A1 (en) | 2015-08-10 | 2017-02-16 | Apple Inc. | Devices and Methods for Processing Touch Inputs Based on Their Intensities |
US9430988B1 (en) * | 2015-04-06 | 2016-08-30 | Bluestream Development, Llc | Mobile device with low-emission mode |
US9891811B2 (en) | 2015-06-07 | 2018-02-13 | Apple Inc. | Devices and methods for navigating between user interfaces |
US10200598B2 (en) | 2015-06-07 | 2019-02-05 | Apple Inc. | Devices and methods for capturing and interacting with enhanced digital images |
US9830048B2 (en) | 2015-06-07 | 2017-11-28 | Apple Inc. | Devices and methods for processing touch inputs with instructions in a web page |
US9860451B2 (en) | 2015-06-07 | 2018-01-02 | Apple Inc. | Devices and methods for capturing and interacting with enhanced digital images |
US10235035B2 (en) | 2015-08-10 | 2019-03-19 | Apple Inc. | Devices, methods, and graphical user interfaces for content navigation and manipulation |
US9880735B2 (en) | 2015-08-10 | 2018-01-30 | Apple Inc. | Devices, methods, and graphical user interfaces for manipulating user interface objects with visual and/or haptic feedback |
US10423264B2 (en) | 2015-08-31 | 2019-09-24 | Huawei Technologies Co., Ltd. | Screen enabling method and apparatus, and electronic device |
US10062133B1 (en) | 2016-01-26 | 2018-08-28 | Google Llc | Image retrieval for computing devices |
KR102496347B1 (ko) * | 2016-04-20 | 2023-02-06 | 삼성전자주식회사 | 디스플레이 구동 회로 및 이를 포함하는 전자 장치 |
WO2018026155A1 (en) * | 2016-08-01 | 2018-02-08 | Samsung Electronics Co., Ltd. | Method and electronic device for recognizing touch |
KR20180014644A (ko) * | 2016-08-01 | 2018-02-09 | 삼성전자주식회사 | 터치 인식 방법 및 이를 수행하는 전자 장치 |
KR102549463B1 (ko) * | 2016-08-30 | 2023-06-30 | 삼성전자주식회사 | 이미지 처리 방법 및 이를 지원하는 전자 장치 |
US10102823B2 (en) | 2016-11-02 | 2018-10-16 | Microsoft Technology Licensing, Llc | Techniques for storing and displaying an image on a display device |
KR20180095409A (ko) * | 2017-02-17 | 2018-08-27 | 삼성전자주식회사 | 전자 장치 및 전자 장치의 화면 표시 방법 |
WO2018191888A1 (zh) * | 2017-04-19 | 2018-10-25 | 广东欧珀移动通信有限公司 | 应用程序加速启动方法、装置及终端 |
CN109218509B (zh) * | 2017-07-04 | 2021-03-02 | 北京小米移动软件有限公司 | 息屏显示方法、装置及计算机可读存储介质 |
WO2019035619A1 (en) | 2017-08-14 | 2019-02-21 | Samsung Electronics Co., Ltd. | METHOD FOR DISPLAYING CONTENT AND ASSOCIATED ELECTRONIC DEVICE |
CN111149089B (zh) * | 2017-09-21 | 2023-11-03 | 深圳传音通讯有限公司 | 智能终端的唤醒方法、智能终端及计算机可读存储介质 |
KR102246777B1 (ko) * | 2018-05-09 | 2021-04-30 | 삼성전자주식회사 | 확장 가능한 화면 영역의 콘텐츠 표시 방법 및 이를 지원하는 전자 장치 |
US10795840B2 (en) * | 2018-11-12 | 2020-10-06 | At&T Intellectual Property I, L.P. | Persistent kernel for graphics processing unit direct memory access network packet processing |
CN109669527A (zh) * | 2018-12-18 | 2019-04-23 | Oppo广东移动通信有限公司 | 数据处理方法和电子设备 |
CN112882561B (zh) * | 2019-11-29 | 2023-01-10 | Oppo广东移动通信有限公司 | 显示控制方法、存储介质及电子设备 |
CN113031750A (zh) * | 2019-12-09 | 2021-06-25 | Oppo广东移动通信有限公司 | 电子书的显示方法、装置、存储介质及电子设备 |
WO2022026394A1 (en) * | 2020-07-31 | 2022-02-03 | Google Llc | Platform independent lightweight user interface framework for glanceable surfaces |
WO2024031439A1 (zh) * | 2022-08-10 | 2024-02-15 | 卓永红 | 支持 app 定制 aod 功能的方法,系统和智能终端设备 |
Family Cites Families (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7057591B1 (en) * | 2001-07-11 | 2006-06-06 | Nokia Corporation | Advertising using an eBook with a bistable display |
US7058829B2 (en) | 2002-08-14 | 2006-06-06 | Intel Corporation | Method and apparatus for a computing system having an active sleep mode CPU that uses the cache of a normal active mode CPU |
US7080271B2 (en) * | 2003-02-14 | 2006-07-18 | Intel Corporation | Non main CPU/OS based operational environment |
US20050066209A1 (en) | 2003-09-18 | 2005-03-24 | Kee Martin J. | Portable electronic device having high and low power processors operable in a low power mode |
US7583985B2 (en) | 2004-03-26 | 2009-09-01 | Broadcom Corporation | MAC controlled sleep mode/wake-up mode with staged wake-up for power management |
US20060010446A1 (en) | 2004-07-06 | 2006-01-12 | Desai Rajiv S | Method and system for concurrent execution of multiple kernels |
US8806228B2 (en) | 2006-07-13 | 2014-08-12 | International Business Machines Corporation | Systems and methods for asymmetrical performance multi-processors |
US8725994B2 (en) * | 2007-11-13 | 2014-05-13 | Hewlett-Packard Development Company, L.P. | Launching an application from a power management state |
WO2009124911A1 (en) | 2008-04-07 | 2009-10-15 | Nxp B.V. | Mobile phone with low-power media rendering sub-system |
US20090259865A1 (en) | 2008-04-11 | 2009-10-15 | Qualcomm Incorporated | Power Management Using At Least One Of A Special Purpose Processor And Motion Sensing |
US7757233B2 (en) * | 2008-07-10 | 2010-07-13 | International Business Machines Corporation | Controlling a computer system having a processor including a plurality of cores |
US8510577B2 (en) | 2008-07-28 | 2013-08-13 | Microsoft Corporation | Reducing power consumption by offloading applications |
US9086875B2 (en) | 2009-06-05 | 2015-07-21 | Qualcomm Incorporated | Controlling power consumption of a mobile device based on gesture recognition |
GB2473015B (en) | 2009-08-26 | 2014-08-13 | Dell Products Lp | System and method of enabling resources within an information handling system |
US8766919B1 (en) * | 2010-03-02 | 2014-07-01 | Manish Lachwani | Fast awake from low power mode |
KR101235854B1 (ko) | 2010-08-27 | 2013-02-20 | 삼성전자주식회사 | 화상형성장치, SoC 유닛 및 그 구동 방법 |
US8595529B2 (en) | 2010-12-16 | 2013-11-26 | Qualcomm Incorporated | Efficient power management and optimized event notification in multi-processor computing devices |
US10346276B2 (en) | 2010-12-16 | 2019-07-09 | Microsoft Technology Licensing, Llc | Kernel awareness of physical environment |
KR101766835B1 (ko) | 2011-05-04 | 2017-08-09 | 에스프린팅솔루션 주식회사 | 화상형성장치 및 그 제어 방법 |
US9495012B2 (en) | 2011-09-27 | 2016-11-15 | Z124 | Secondary single screen mode activation through user interface activation |
US9112721B2 (en) | 2012-05-28 | 2015-08-18 | Freescale Semiconductor, Inc. | System and methods for enabling a controller area network (CAN) device to operate in different power modes based upon the payload of a wake-up message |
US9063731B2 (en) | 2012-08-27 | 2015-06-23 | Samsung Electronics Co., Ltd. | Ultra low power apparatus and method to wake up a main processor |
US9141181B2 (en) | 2012-09-26 | 2015-09-22 | Honeywell International Inc. | Low power event processing for sensor controllers |
US9804665B2 (en) | 2013-12-29 | 2017-10-31 | Google Inc. | Apparatus and method for passing event handling control from a primary processor to a secondary processor during sleep mode |
US9753527B2 (en) | 2013-12-29 | 2017-09-05 | Google Technology Holdings LLC | Apparatus and method for managing graphics buffers for a processor in sleep mode |
US9798378B2 (en) | 2014-03-31 | 2017-10-24 | Google Technology Holdings LLC | Apparatus and method for awakening a primary processor out of sleep mode |
-
2014
- 2014-07-24 US US14/339,962 patent/US9753527B2/en active Active
- 2014-12-29 EP EP14828423.5A patent/EP3087474B1/en active Active
- 2014-12-29 CN CN201480074554.4A patent/CN106233249B/zh active Active
- 2014-12-29 WO PCT/US2014/072552 patent/WO2015100453A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CN106233249A (zh) | 2016-12-14 |
WO2015100453A1 (en) | 2015-07-02 |
EP3087474A1 (en) | 2016-11-02 |
EP3087474B1 (en) | 2021-11-24 |
US9753527B2 (en) | 2017-09-05 |
US20150185811A1 (en) | 2015-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106233249B (zh) | 用于管理睡眠模式的处理器的图形缓冲区的装备和方法 | |
US9798378B2 (en) | Apparatus and method for awakening a primary processor out of sleep mode | |
US9804665B2 (en) | Apparatus and method for passing event handling control from a primary processor to a secondary processor during sleep mode | |
WO2021227770A1 (zh) | 应用窗口显示方法和电子设备 | |
US10853979B2 (en) | Electronic device and method for displaying screen thereof | |
EP3293607B1 (en) | Electronic device and method of controlling electronic device | |
CN105630129B (zh) | 用于降低功耗的功率控制方法和装置 | |
KR102545602B1 (ko) | 전자 장치 및 그의 동작 방법 | |
KR20180120036A (ko) | 전자 장치 및 터치 입력에 기초하여 상기 전자 장치를 제어하는 방 | |
KR102580327B1 (ko) | 전자 장치 및 전자 장치의 제어 방법 | |
KR20180079904A (ko) | 전자 장치 및 그의 표시 방법 | |
CN112987986B (zh) | 实现游戏应用的方法、装置、存储介质及电子设备 | |
KR20160051071A (ko) | 전자장치 및 전자장치의 전원제어 방법 | |
WO2017173576A1 (zh) | 一种显示方法及终端 | |
CN109416615B (zh) | 处理触摸事件的方法和适用于该方法的电子装置 | |
KR102536148B1 (ko) | 전자 장치의 동작 방법 및 장치 | |
TWI597659B (zh) | 開啟顯示器前更新欲顯示內容的處理方法、模塊及其電子裝置 | |
KR102655187B1 (ko) | 전자 장치 및 그의 동작 방법 | |
EP3411783B1 (en) | Electronic device and method for controlling the same | |
KR20180109614A (ko) | 알림을 표시하는 전자 장치 및 그 동작 방법 | |
KR102619117B1 (ko) | 전자 장치 및 전자 장치의 동작 방법 | |
CN116700585B (zh) | 熄屏控制方法、电子设备及存储介质 | |
KR102640049B1 (ko) | 전자 장치 및 전자 장치의 디스플레이 구동 방법 | |
KR20180097384A (ko) | 전자 장치 및 전자 장치 제어 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |