CN101349977A - 根据用户输入控制处理器使用率的系统和方法 - Google Patents

根据用户输入控制处理器使用率的系统和方法 Download PDF

Info

Publication number
CN101349977A
CN101349977A CNA2008101611204A CN200810161120A CN101349977A CN 101349977 A CN101349977 A CN 101349977A CN A2008101611204 A CNA2008101611204 A CN A2008101611204A CN 200810161120 A CN200810161120 A CN 200810161120A CN 101349977 A CN101349977 A CN 101349977A
Authority
CN
China
Prior art keywords
user
task
processor
message
utilization rate
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.)
Granted
Application number
CNA2008101611204A
Other languages
English (en)
Other versions
CN101349977B (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.)
Maliki Innovation Co ltd
BlackBerry Ltd
Original Assignee
Research in Motion 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 Research in Motion Ltd filed Critical Research in Motion Ltd
Publication of CN101349977A publication Critical patent/CN101349977A/zh
Application granted granted Critical
Publication of CN101349977B publication Critical patent/CN101349977B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/21Monitoring or handling of messages
    • H04L51/214Monitoring or handling of messages using selective forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/58Message adaptation for wireless communication
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02TCLIMATE CHANGE MITIGATION TECHNOLOGIES RELATED TO TRANSPORTATION
    • Y02T50/00Aeronautics or air transport
    • Y02T50/50On board measures aiming to increase energy efficiency

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Control Of Turbines (AREA)
  • Structures Of Non-Positive Displacement Pumps (AREA)

Abstract

提供了一种根据用户相关任务控制处理器使用率的系统和方法。对于周期性任务,通过增大任务运行的周期,可以降低平均处理器使用率以满足特定目标,这可以保证用户输入不被周期性任务影响。因此,周期性任务可以被智能地退化和改变以补偿该退化,以释放足够的处理器使用率空间,从而不会影响用户输入。

Description

根据用户输入控制处理器使用率的系统和方法
技术领域
下文大体涉及一种根据用户相关任务来控制处理器使用率的系统和方法。
背景技术
计算机设备,例如移动设备,使用处理器执行任务。每个任务内在地消耗处理器的整体性能的特定百分比。通常被称为非交互任务的多种任务,是由调度算法调度的固定任务。通常被称为交互任务的其它任务,在某些方面与最近的输入/输出(I/O)通信或用户相关任务有关,例如与用户输入或用户定向输出有关。调度算法通常旨在以最低等待时间调度交互任务并以最佳吞吐量调度非交互任务。非交互任务的一个例子是在后台中(即,当其发生时用户注意不到)进行的视频解码,并且交互任务的一个例子是用户可以在移动设备的显示器上容易看到的键击或者状态栏更新。
在移动设备中,当任务使中央处理器饱和时,可能阻碍移动设备及时地对例如用户输入(例如键击)或用户定向输入(例如状态栏更新)的用户相关任务作出响应。例如,当响应用户移动定位设备(例如在屏幕上移动光标)时,正在解码视频的移动设备可能变得反应缓慢。由于用户可以直接并立即感受到延时,这会使用户对其移动设备的性能感到不满,通常期望以及时的方式处理用户输入。
通常,上述问题是过载或者饱和的处理器可能对用户相关任务产生不利影响。而且,对用户相关任务的不利影响将容易被用户注意到并且因此将其认为是较差的执行设备。
优选地,下文避免或缓和了至少一个上述缺点。
发明内容
下文可以提供一种控制移动设备(24)中处理器(238)的使用率(usage)的方法,包括:(i)确定可以由处理器(238)执行的所选任务(302),其可以被退化以降低处理器(238)的使用率;(ii)检测对应于将由处理器(238)执行的用户相关任务(312)的用户相关的事件;(iii)确定处理器(238)的总体使用率(322),包括指示用于执行所选任务(302)的使用率的值;(iv)比较总体使用率(322)与指示处理器(238)的最大使用率的预定阈值(324);以及(v)如果总体使用率(322)并不满足阈值(324),则退化所选任务(302)以降低执行所选任务(302)的使用率并因此降低总体使用率(322)从而满足阈值(324)。
下文还可以提供一种移动设备(24),包括显示器(120)、至少一个输入装置(122、124、126、128、130)以及处理器(238),处理器(238)被配置为:(i)确定可以由处理器(238)执行的所选任务(302),其可以被退化以降低处理器(238)的使用率;(ii)检测对应于将由处理器(238)执行的用户相关任务(312)的用户相关事件;(iii)确定处理器(238)的总体使用率(322),包括指示用于执行所选任务(302)的使用率的值;(iv)比较总体使用率(322)与指示处理器(238)的最大使用率的预定阈值(324);以及(v)如果总体使用率(322)并不满足阈值(324),则退化所选任务(302)以降低执行所选任务(302)的使用率并因此降低总体使用率(322)从而满足阈值(324)。
附图说明
下面将仅仅通过参考附图的例子描述实施例,其中:
图1是显示用户数据项目从用户的桌面PC(主机系统)到用户的移动设备的重定向的系统示意图,其中重定向器软件在用户的桌面PC上操作。
图2是显示用户数据项目从网络服务器(主机系统)到用户的移动设备的重定向的系统示意图,其中重定向器软件在服务器上操作。
图3是显示重定向器软件与图1中的主机系统的其它部件(用户的桌面PC)交互的框图,该交互能把信息从主机系统推到用户的移动设备。
图4是显示由操作在主机系统上的重定向器软件执行的步骤的流程图。
图5是显示与操作在主机系统上的重定向器软件进行通信的移动设备所执行的步骤的流程图。
图6是移动设备和其显示屏的示意图。
图7是另一移动设备和其显示屏的示意图。
图8是图1和图2之一或两者中的移动设备的部件的示意框图。
图9是图8所示的存储器的示意性框图。
图10是处理任务的处理器的示意性框图,包括涉及解码视频文件的任务。
图11是示出补偿用户相关任务的周期性任务的智能退化的流程图。
图12是示出具有和不具有补偿的视频解码序列中的帧的时序图。
图13是示出在图6或图7的移动设备上播放的视频的时序图。
具体实施方式
现在参考附图,图1是显示用户数据项目(例如消息A或C)从用户的办公室PC(主机系统)10到用户的移动设备24的重定向的典型系统示意图,其中重定向器软件12在用户PC上操作。图1中的消息A表示通过LAN 14从桌面机26发送到用户主机系统10的内部消息。图1中的消息C表示从并不直接连接到LAN 14的发送者,例如用户的移动设备24、一些其它的用户移动设备(没有显示)、或者连接到互联网18的任何用户,所发送的外部消息。消息C还表示从用户的移动设备24到主机系统10的命令消息。如图3更详细的描述,主机系统10优选的包括与工作站或桌面机相关联的典型硬件和软件、重定向器程序12、TCP/IP子系统42、主消息存储器40、电子邮件子系统44、屏幕保护子系统48以及键盘子系统46。
在图1中,主机系统10是用户的桌面机系统,其通常位于用户的办公室中。主机系统10连接到LAN 14,LAN 14还连接可以位于用户办公室或其它地方的其它计算机26、28。LAN 14又连接到广域网(“WAN”)18,优选地连接互联网,互联网被限定为通过使用传输控制协议/互联网协议(TCP/IP)来交换信息,但其也可以被任何其它类型的WAN代替。LAN14到WAN 18的连接通过高带宽链路16,典型地是T1或T3连接。WAN 18还通过连接32连接到多种网关20。网关在WAN 18和某些其它类型的网络,例如RF无线网络、蜂窝网络、卫星网络或其它同步或异步陆上线路连接之间形成连接或网桥。
在一个实施例中,移动设备24是手持双向无线寻呼计算机、启用无线功能的掌上计算机、具有数据消息收发能力的移动电话或启用无线功能的膝上型计算机,但是,备选的,可以是能通过网络连接22发送和接收消息的其它类型的移动设备。备选的,移动设备24也可以不能通过网络连接22发送和接收消息。在另一实施例中,移动设备24是数字娱乐设备,例如MP3播放器或视频游戏设备。在另一实施例中,移动设备24是可以由用户用来报警的任何电子设备。
在某些实施例中,移动设备24包括软件程序指令,其与重定向器程序12一起工作来实现用户所选数据项目的无缝、透明重定向。图4描述了重定向器程序12的基本的方法步骤,并且图5描述了操作在移动设备24上的相应程序的步骤。
在一个备选实施例中,在附图中没有明确显示,移动设备24还包括重定向器程序。在该实施例中,用户选择的数据项目可以被从主机复制到移动设备并且反之亦然。具有重定向器程序的移动设备24的配置和操作与这里关于图1到4所描述的相似。
当重定向器12检测到已经发生特定的用户定义的事件触发(或触发点)时,用户可以配置重定向器程序12把特定的用户选择的数据项目推送到用户的移动设备24。用户选择的数据项目优选的包括电子邮件消息、日历事件、会议通知、演讲项目、杂志项目、个人警报、报警、警告、股票报价、新闻公告等,但是,备选的,可以包括发送到主机系统10的或者主机系统10通过使用智能代理而获得的任何其它类型的消息,例如在主机系统10发起数据库或网站或电子公告板的搜索之后接收的数据。在某些情况中,为了最小化通过无线网络22发送的数据量,仅向移动设备24发送一部分数据项目。在这些情况中,如果用户期望接收更多或全部数据项目,则移动设备24可选择的向主机系统10发送接收更多或全部数据项目的命令消息。
在优选实施例中,可以被重定向器程序12检测的用户定义的事件触发是外部事件、内部事件和网络事件。外部事件优选的包括:(1)从用户的移动设备接收到开始重定向的命令消息(例如消息C),或在主机处执行某些其它命令的命令消息,例如启用优选列表模式的命令,或者从优选列表中增加或者删除特定发送者的命令;(2)从某些外部计算机接收相似消息,以及(3)检测用户不再位于主机系统附近;尽管,备选的,外部事件可以是位于主机系统外部的任何其它可检测事件。内部事件可以是日历报警、屏幕保护激活、键盘超时、可编程定时器、或者位于主机系统内部的任何其它用户定义的事件。网络事件是通过网络从耦合到主机系统的另一计算机发送到主机系统以启动重定向的用户定义的消息。这些仅仅是可以用于启动把用户选择的数据项目从主机系统10复制到移动设备24的事件中的一些。
图1显示了通过LAN从计算机26发送到用户的桌面系统10的电子邮件消息A(在图1中还显示为外部消息C,其可以是来自互联网用户的电子邮件消息,或者可以是来自用户的移动设备24的命令消息)。一旦消息A(或C)达到主机系统10的主消息存储器,则其可以被重定向软件12检测和采取动作。重定向软件12可以使用多种方法检测新消息。检测新消息的优选方法是使用Microsoft的Messaging API(MAPI),当邮箱发生改变时,在MAPI中,例如重定向器程序12,进行登记以便通知或者“建议同步”。还可以使用检测新消息的其它方法。
假设重定向器程序12被激活,并且其已经被用户(通过检测内部、网络或外部事件)配置为当在主机系统10接收到消息A、重定向器程序12检测到其存在并且向移动设备24准备用于重定向的消息时,向移动设备24复制特定的用户数据项目(包括A或C类型的消息)。在准备用于重定向的消息时,重定向器程序12可以压缩原始消息A,可以压缩消息报头或者可以加密整个消息A以产生到移动设备24的安全链路。
还编程到重定向器12中的是用户的移动设备24的地址、设备的类型以及设备24是否可以接收特定类型的附件,例如文字处理或语音附件。如果用户的移动设备的类型不能接收这些类型的附件,则重定向器12可以被编程为使用附加的传真或语音机器30把附件路由到用户所在的传真或者语音号码。
还可以使用用户在主机系统10或者远程地在用户设备通过发送命令消息C配置的优选列表模式编程重定向器。优选列表包括其消息将要被重定向的发送者列表或者确定消息是否要被重定向的消息特性列表。如果被激活,则优选列表模式引起重定向器程序12像过滤器那样操作,其基于数据项目是否由优选列表上的发送者发送或者是否具有如果存在将触发或者抑制消息重定向的特定消息特性,而仅重定向特定的用户数据项目。在图1的例子中,如果桌面系统26由主机系统10的优选列表上的用户操作,并且优选列表选项被激活,则消息A将被重定向。然而,如果桌面系统26不由主机系统的优选列表上的用户操作,则并不重定向消息A,即使主机系统的该用户已经配置重定向器推送A类型的消息。主机系统10的用户可以直接从桌面系统配置优选列表,或者,备选的,用户然后可以从移动设备24向桌面系统10发送命令消息(例如C)以激活优选列表模式,或者从优选列表中增加或删除之前配置的特定的发送者或者消息特性。应当清楚,重定向器程序能够组合消息特性和优选发送者列表,从而产生更精确调节的过滤器。当来自特定发送者的消息一直被重定向时,标记为低优先权或者是简单的返回收条或消息读取收条的消息可以一直被抑制重定向。
在重定向器已经决定特定消息应当被重定向、并且其已经准备好用于重定向的消息后,软件12然后使用必要的装置向位于移动设备24中的次级存储器发送消息A。在优选实施例中,该方法通过LAN 14、WAN 18并通过无线网关20向移动设备24发送消息A。在该过程中,重定向器优选地把消息A重新封装为具有外部封套(envelope)B的电子邮件,该封套B包含移动设备24的地址信息,尽管也可以使用例如TCP/IP重新封装和传送方法(通常应用在图2所示的备选服务器配置中)的备选重新封装技术。为了清楚把重定向的消息A发送到何处,无线网关20需要该外部封套信息B。一旦移动设备24接收到消息(A在B中),移除外部封套B并且把原始消息A放置在移动设备24的次级存储器中。通过以这种方式重新封装并移除外部封套,移动计算机24看上去与主机系统10在相同的物理位置上,从而产生透明系统。
在消息C表示从互联网18上的计算机发送到主机系统10的外部消息、并且主机10已经被配置为重定向C类型的消息的情况下,以与消息A相似的方式,使用外部封套B重新封装消息C并把其发送到用户的移动设备24。在消息C表示从用户的移动设备24到主机系统10的命令消息的情况下,并不重定向命令消息C,而是在主机系统10上操作命令消息C。
如果重定向的用户数据项目是电子邮件消息,则如上所述,移动设备24的用户观看到原始主题、发送者的地址、目的地址、副本以及盲副本。当用户答复该消息时,或者当用户创作新的消息时,运行在移动设备24上的软件向答复消息(或者新的消息)增加相似的外部封套,从而使得消息首先被路由到用户的主机系统10,主机系统10然后移除外部封套并把消息重定向到最终的目的地,例如回到计算机26。在优选实施例中,这将导致使用主机邮箱的电子邮件地址而不是移动设备的地址来发送用户主机系统10的输出重定向消息,从而在消息的接收者看来消息来自用户的桌面系统10而不是移动设备。重定向消息的任何答复将被发送到桌面系统10,如果仍处于重定向模式,则桌面系统10将如上所述地重新封装该答复并将其重新发送到用户的移动数据设备。
图2是显示用户数据项目从网络服务器11重定向到用户移动设备24的备选系统示意图,其中重定向器软件12运行在服务器11上。该配置对于例如Microsoft Exchange Server的消息服务器尤其有利,消息服务器被正常运行从而使所有的用户消息被保持在服务器的一个中央位置或者邮箱存储器中,而不是存储在每个用户的桌面PC的存储器中。这种配置具有额外的优点,那就是允许单个系统管理者配置并追踪具有消息重定向的所有用户。如果系统包括密钥,则密钥也可以被保持在一个地方以便管理和更新的目的。
在该备选结构中,服务器11优选的为每个用户的桌面系统10、26和28保持用户简档,如果存在,其包括例如特定用户是否可以重定向数据项目、哪种类型的消息和信息被重定向、何种事件将触发重定向、用户的移动设备24的地址、移动设备的类型以及用户的优选列表的信息。事件触发优选的在用户的桌面系统10、26和28处检测,并且可以是任何上述外部、内部或网络事件。桌面系统10、26和28优选的检测这些事件,然后通过LAN 14向服务器计算机11发送消息以发起重定向。尽管在该实施例中,用户数据项目优选地存储在服务器计算机11中,备选地,其可以被存储在每个用户的桌面系统10、26和28中,在事件已经触发重定向后,用户的桌面系统将把用户数据项目发送到服务器计算机11。
如图2所示,桌面系统26产生消息A,消息A被发送到并存储在主机系统11中,主机系统11是运行重定向器程序12的网络服务器。消息A针对桌面系统10,但是在该实施例中,用户消息被存储在网络服务器11中。当在桌面系统10发生事件时,产生事件触发并将其发送到网络服务器11,网络服务器11然后确定触发来自哪个桌面系统,该桌面系统是否具有重定向能力,并且如果是,则服务器(运行重定向器程序)使用存储的配置信息把消息A重定向到与桌面系统10的用户相关联的移动计算机24。
如上面对图1的参考,消息C可以是来自用户的移动设备24的命令消息,或者是来自例如连接到互联网18的计算机的外部计算机的消息。如果消息C从互联网计算机发送到用户的桌面系统10,并且用户具有重定向能力,则服务器11检测消息C,使用电子封套B重新封装消息C,并把重新封装的消息(C在B中)重定向到用户的移动设备24。如果消息C是来自用户的移动设备24的命令消息,则服务器11仅操作该命令消息。
现在转到图3,图3是显示重定向器软件12与图1的主机系统10的额外部件(桌面PC)交互从而把来自主机系统10的信息更加完整地推送到用户的移动设备24的框图。这些额外部件是可以被配置并与重定向器软件12一同使用的事件产生系统的示意类型,而且是可以用于与移动通信设备24交互从而使其对用户透明的重新封装系统的示意类型。
桌面系统10连接到LAN 14,并且可以向与连接到LAN 14的其他系统以及例如连接到LAN 14的互联网或无线数据网络的外部网络18、22的其它系统发送和接收数据、消息、信号、事件触发等。除了与典型微机或工作站相关联的标准硬件、操作系统和应用程序外,桌面系统10还包括重定向器程序12、TCP/IP子系统42、电子邮件子系统44、主数据存储设备40、屏保子系统48以及键盘子系统46。TCP/IP和电子邮件子系统42、44是可以用于实现透明性的重新封装系统的例子,并且屏保和键盘子系统46、48是可以被配置为产生用于触发用户选择数据项目的重定向的事件消息或信号的事件产生系统的例子。
在附图4中更加详细地描述了由重定向器程序12执行的方法步骤。该程序的基本功能是:(1)配置和建立启动重定向的用户定义的事件触发点;(2)配置用于重定向的用户数据项目的类型并且有选择的配置其消息将要被重定向的发送者的优选列表;(3)配置用户的移动设备的类型和能力;(4)从重新封装系统和事件产生系统接收消息和信号;以及(5)命令和控制用户选择的项目通过重新封装系统重定向到移动设备。没有详细列举的其它功能也可以集成在该程序中。
电子邮件子系统44是重新封装用于传输到移动设备24的用户选择数据项目的优选链路,并且优选的可以使用工业标准邮件协议,例如,SMTP、POP、IMAP、MIME和RFC-822,以上仅仅为举例。电子邮件子系统44可以从LAN 14上的外部计算机接收消息A,或者可以从例如互联网18或无线数据通信网络22的某些外部网络接收消息C,并且把这些消息存储在主数据存储器40中。假设重定向器12已经被触发为重定向这类消息,则重定向器检测任何新消息的存在,通过向原始消息A(或者C)添加外部包装B,并且通过把移动设备24的地址信息提供到外部包装B上,重定向器指示电子邮件系统44重新封装消息。如上所述,外部包装B被移动设备24移除,然后恢复原始消息A(或者C),因此使得移动设备24看起来是桌面系统10。
此外,电子邮件子系统44从移动设备24接收返回的消息,该消息具有关于桌面系统10的地址信息的外部包装,并且电子邮件子系统44剥去该信息从而消息可以被路由到原始消息A(或C)的正确发送者。电子邮件子系统还从移动设备24接收命令消息C,该消息直接发送到桌面系统10以触发重定向或执行某些其它功能。电子邮件子系统44的功能由重定向器程序12控制。
TCP/IP子系统42是备选的重新封装系统。它包括电子邮件子系统44的全部功能,但取代把用户选择数据项目重新封装为标准电子邮件消息,该系统使用专用的TCP/IP封装技术来重新封装数据项目。在安全以及改进的速度对用户重要的情况下,这类专用的子系统是有用的。提供仅可以被移动设备24上的专用软件移除的包装提供了额外的安全性,并且电子邮件存储和转发系统的旁路(bypass)可以改进速度和实时传输。
如之前所述,可以在检测到多个外部、内部和网络事件或者触发点时触发系统以开始重定向。外部事件的例子包括:从用户的移动设备24接收到开始重定向的命令消息;从某些外部计算机接收到检测到用户不再位于主机系统附近的类似消息;或者主机系统外部的任何其它事件。内部事件可以是日历报警、屏保激活、键盘超时、可编程定时器、或者主机系统内的任何其它用户定义事件。网络事件是通过网络从连接到主机系统的另一计算机发送到主机系统以启动重定向的用户定义的消息。
屏保和键盘子系统46、48是可以产生内部事件的系统的例子。功能上,重定向器程序12向用户提供可以配置屏保和键盘系统的能力从而在特定条件下,将可以产生被重定向器12检测到从而开始重定向处理的事件触发。例如可以配置屏保系统从而当屏保被激活时,例如在桌面系统处于非活动状态10分钟之后,事件触发可以被发送到重定向器12,重定向器12可以开始重定向先前选择的用户数据项目。以相似的方式,键盘子系统可以被配置为当特定时间段没有键被按下时产生事件触发,从而指示重定向应当开始。这仅仅是主机系统10内用于产生内部事件触发的多个应用程序和硬件系统的两个例子。
图4和5分别示出了显示在主机系统10上操作的重定向器软件12执行的步骤以及为了与主机系统交互由移动设备24执行的步骤的流程图。首先参考图4,在步骤50,重定向器程序12被启动并进行最初的配置。重定向器12的最初配置包括:(1)限定用户已经确定将要触发重定向的事件触发;(2)选择用于重定向的用户数据项目;(3)选择重新封装子系统,标准电子邮件或者专用技术;(4)选择数据通信设备的类型,指示设备是否能够以及对何种类型的附件进行接收和处理,以及输入移动设备的地址;以及(5)配置其消息将要被重定向的用户选择发送者的优选列表。
图4示出了例如在图1中所示的桌面系统10上操作的重定向器程序12的基本步骤。如果重定向器12在图2所示的网络服务器11上操作,则为了能够使连接到服务器的特定桌面系统10、26、28能够重定向,附加的配置步骤是必须的,包括:(1)为桌面系统建立指示其地址、将触发重定向的事件、以及在检测到事件时被重定向的数据项目的简档;(2)在服务器处为数据项目保持存储区域;以及(3)存储桌面系统的数据项目将要重定向到的数据通信设备的类型,该设备是否能够以及对何种类型的附件进行接收和处理,以及移动设备的地址。
一旦在50配置重定向器程序,在步骤52启用触发点(或者事件触发)。程序12然后在56等待开始重定向过程的消息和信号54。消息可以是电子邮件消息或者可以是为重定向而选择的某些其它用户数据项目,并且信号可以是触发信号,或者可以是还没有被配置为事件触发的某些其它类型的信号。当检测到消息或信号时,该程序确定58其是否已经被用户配置为发信号通知重定向的一种触发事件。如果是,则在步骤60设定触发标记,指示已经被选择为重定向的随后接收的数据项目(以消息的形式)应被推送到用户移动设备24。
如果消息或信号54不是触发事件,则程序在步骤62、68和66确定该消息是否分别是系统报警62、电子邮件64或者已经被选择用于重定向的某些其它类型的信息。如果该消息或信号不是这三项之一,则控制返回到步骤56,在步骤56重定向器等待附加信息以进行操作。然而,如果消息是这三种类型的信息之一,则程序12在步骤68确定触发标记是否已被设定,指示用户希望把这些项目重定向到移动设备。如果触发标记被设定,则在步骤70,重定向器12使重新封装系统(电子邮件或者TCP/IP)把外部封套添加到用户数据项目,并且在步骤72,重新封装的数据项目通过LAN 14、WAN 18、无线网关20以及无线网络22重定向到用户的移动设备24。控制然后返回到步骤56,在步骤56,程序等待额外的消息和信号以进行操作。尽管在图4中没有明确指出,在步骤68之后,如果程序在优选列表模式下操作,则程序将确定特定数据项目的发送者是否在优选列表中,而且如果不是,则程序将跳过步骤70和72并且直接返回步骤56。如果发送者在优选列表中,则控制相似的到达步骤70和72,重新封装并发送来自优选的列表发送者的消息。
图5示出了为了与重定向器程序12接口连接而由用户的移动设备24执行的方法步骤。在步骤80,启动移动软件并且移动设备24被配置为与该系统进行操作,例如包括存储用户的桌面系统10的地址。
在步骤82,移动设备等待产生或接收的消息和信号84。假设在用户桌面系统10上操作的重定向器软件12被配置为在接收到来自用户的移动设备24的消息时进行重定向,那么在步骤86,用户可以决定产生将会启动重定向的命令消息。如果用户这样做,则在步骤88,组成重定向消息并且通过无线网络22经过无线网关20把该消息发送到桌面系统10,通过互联网18到达LAN 14,并最终被路由到桌面机器10。在移动设备24直接把消息发送到桌面系统10的情况下,没有向消息添加外部包装(例如图1和2中的消息C)。除了重定向信号外,移动设备24可以发送任何数量的其它命令以控制主机系统的操作,并且尤其是控制重定向器程序12的操作。例如,移动24可以发送命令把主机系统置于优选列表模式下,并且然后可以发送额外的命令以从优选列表中增加或删除特定发送者。在这种方式中,通过最小化优选列表中发送者的数量,移动设备24可以动态地限定被重定向到其自身的信息量。其它示例命令包括:(1)改变主机系统的配置从而使移动设备24可以接收和处理特定附件的消息;以及(2)在只对特定数据项目中的一部分进行重定向的情况下,指示主机系统把完整的数据项目重定向到移动设备的消息。
返回图5,如果用户信号或消息不是到达桌面系统10开始重定向的直接消息(或某些其它命令),则控制到达步骤90,确定是否已经接收到消息。如果移动接收到消息,并且该消息是来自用户的桌面10的消息,如步骤92所确定的,则在步骤94,针对该消息把桌面重定向标记设定为“开启”,并且控制到达步骤96,在此处移除外部封套。在步骤96之后,或者如步骤92所确定的在消息不是来自用户的桌面的情况下,控制到达步骤98,在步骤98,在移动设备的显示器上向用户显示该消息。移动单元24然后返回步骤82并等待额外的消息或信号。
如果移动设备24确定在步骤90没有接收到消息,则控制到达步骤100,在步骤100处移动设备确定是否有消息要发送。如果没有,则移动单元返回步骤82并等待额外的消息或信号。如果至少有一个消息需要被发送,则在步骤102,移动单元确定其是否是移动单元接收的消息的应答消息。如果要发送的消息是应答消息,则在步骤108移动单元确定该消息的桌面重定向标记是否为“开启”。如果重定向标记不是“开启”,则在步骤106,应答消息通过无线网络22从移动设备简单地发送到目的地址。然而,如果重定向标记是“开启”,则在步骤110应答消息被具有用户的桌面系统10的地址信息的外部封套重新封装,并且在步骤106把重新封装的消息发送到桌面系统10。如上所述,在桌面系统10上执行的重定向器程序12然后剥掉外部封套并使用桌面系统的地址作为“from”字段而把应答消息路由到合适的目的地址,从而到达重定向消息的接收方,通过这种方式,看起来该消息来自用户的桌面系统而不是移动设备。
如果在步骤102处移动设备确定该消息不是应答消息而是原始消息,则控制到达步骤104,在步骤104移动单元通过检查移动单元的配置来确定用户是否使用桌面系统10上的重定向器软件12。如果用户并不使用重定向器软件12,则在步骤106将消息简单地发送到目的地址。然而,如果移动单元确定用户使用桌面系统10上的重定向器软件12,则控制到达步骤110,在步骤110向该消息添加外部封套。然后在步骤106,把重新封装的原始消息发送到桌面系统10,如之前所述,桌面系统10剥去外部封套并把消息路由到正确的目的地。在步骤106传输该消息之后,移动设备的控制返回步骤82并等待额外的消息或信号。
现在参考图6和图7,移动设备24a的一个实施例在图6中示出,并且移动设备24b的另一实施例在图7中示出。应当清楚,数字“24”在下文中表示任何移动设备24,包括实施例24a和24b。还将清楚,相似的编号习惯还用于图6和图7之间公共的其它一般特征,例如显示器120、定位设备122以及取消或返回按钮124。
图6所示的移动设备24a包括显示器120a以及光标或者视觉定位设备122,在该实施例中显示为定位轮122a。定位设备122可以用作另一输入组件并且可以旋转的向处理器238(参考图8)提供选择输入并且还可以沿着外壳方向被按下以向处理器238提供另一选择输入。显示器120可以包括选择光标150,其通常描述在何处接收下一输入或选择。图6中的移动设备24a还包括返回或删除按钮124a以及键盘128。在该例子中,键盘128被放置在移动设备外壳的正面,而定位设备122以及返回和删除按钮124a被放置在外壳的一侧,使用户可以在单手握住移动设备24时操纵滚动轮122a。在该实施例中,键盘128是标准的QWERTY键盘。
图7所示的移动设备24b包括显示器120b以及定位设备122,在该实施例中是轨迹球122b。轨迹球122b允许选择光标150的多方向定位从而选择光标150可以向上或向下移动,并且如果需要和/或允许的话在任意对角方向上移动。轨迹球122b优选的位于图7所示移动设备24b的外壳的正面,使得用户可以在单手握住移动设备24b时操纵该轨迹球122b。轨迹球122b可以用作另一输入组件(除了方向或定位组件外)以向处理器238提供选择输入并且优选的可以在朝向移动设备24b的外壳的方向上被按下从而提供该选择输入。
移动设备24b还包括菜单或选项按钮126,当被按压时,向显示器120b上加载选项菜单或者列表,以及取消或返回124b以退出、“返回”或者从某个特征、选项、选择或显示返回。图7所示的移动设备24b包括简化的QWERTY键盘130。在该实施例中,键盘130、定位设备122、返回按键124b以及菜单按钮126被放置在移动设备外壳的正面。
简化的QWERTY键盘130包括多个多功能按键以及相应的标记,包括与对应于从A到Z字母的QWERTY排列的字母符号以及重叠的数字电话键排列相关联的按键。多个按键包括总数少于26的字母和/或数字字符。在所示的实施例中,包括字母和数字符号的按键数量是14。在该实施例中,包括其他功能键的按键的总数是20。多个按键可以包括4行以及5列的按键,4行包括按顺序为第一、第二、第三和第四行,而且5列包括按顺序为第一、第二、第三、第四和第五列。字母的QWERTY排列与4行中的3个行相关联,并且数字电话按键排列与4行中的每一行相关联。
数字电话按键排列与5列中的3个列相关联。具体地,数字电话按键排列可以与第二、第三和第四列相关联。数字电话按键排列备选地可以与第一、第二、第三和第四行的按键相关联,第一行的按键包括第二列中的数字“1”、第三列中的数字“2”以及第四列中的数字“3”。与第二行的按键相关联的数字电话按键包括第二列中的数字“4”、第三列中的数字“5”、以及第四列中的数字“6”。与第三行的按键相关联的数字电话按键包括第二列中的数字“7”、第三列中的数字“8”、以及第四列中的数字“9”。与第四行的按键相关联的数字电话按键可以包括第二列中的“*”、第三列中的数字“0”、以及第四列中的“#”。
物理键盘还可以包括与多个按键中的至少一个按键相关联的功能。第四行按键可以包括在第一列中的“alt”功能、第二列中的“next”功能、第三列中的“space”功能、第四列中的“shift”功能、以及第五列中的“return/enter”功能。
第一行的5个按键可以包括按顺序对应于字母“QW”、“ER”、“TY”、“UI”以及“OP”的按键。第二行的5个按键可以包括按顺序对应于字母“AS”、“DF”、“GH”、“JK”以及“L”的按键。第三行的5个按键可以包括按顺序对应于字母“ZX”、“CV”、”BN”和“M”的按键。
应当清楚对于移动设备24,可以采用宽范围的一种或更多种定位或光标/视图定位装置,例如触摸板、游戏杆按钮、鼠标、触摸屏、一组箭头键、写字板、加速度计(用于检测移动设备24的朝向和/或移动等)、或者当前已知或未知的其它。类似地,可以使用键盘128、130的任何变化。还应当清楚,图6和图7所示的移动设备24仅仅是示意性的,并且各种其它移动设备24,不论是当前已知的还是未知的,都可以应用在下面的例子中。
图8是当前公开的优选移动台202的详细框图。术语“移动台”在这里表示例如移动设备24的可操作部件。移动台202优选的是双向通信设备,具有至少语音和高级数据通信能力,包括与其它计算机系统的通信能力。根据移动台202提供的功能,其可以被表示为数据消息收发设备、双向寻呼机、具有数据消息收发能力的蜂窝电话、无线互联网仪器、或者数据通信设备(具有或不具有电话能力)-例如图6和图7所示的移动设备24。移动台202可以与位于其地理覆盖区域内的多个固定收发站200中的至少一个进行通信。
移动台202通常包括通信子系统211,该通信子系统211包括接收机212、发射机214、以及相关部件,例如一个或更多个(优选为嵌入的或内部的)天线单元216和218、本地振荡器(LO)213、以及处理模块,例如数字信号处理器(DSP)220。通信领域的技术人员应当清楚,通信子系统211的具体设计取决于移动台202试图操作的通信网络。
在完成需要的网络登记或激活过程之后,移动台202可以在网络上发送和接收通信信号。天线216通过网络接收的信号被输入到接收机212,接收机212可以执行例如信号放大、频率下变换、滤波、信道选择等普通接收机功能,并且在图8所示的例子中,包括模拟到数字(A/D)转换。接收的信号的A/D转换允许更复杂的通信功能,例如在DSP 220中执行的解调和解码。以相似的方式,待发送的信号被处理,包括被DSP 220调制和编码。这些DSP处理后的信号被输入到发射机214用于数字到模拟(D/A)转换、上变频转换、滤波、放大以及通过天线218在通信网络上发送。DSP 220不仅处理通信信号,还为接收机和发射机提供控制。例如,施加到接收机212和发射机214的通信信号上的增益可以通过实现在DSP 220上的自动增益控制算法而进行自适应控制。
网络接入与移动台202的订户或用户相关联。在一个实施例中,移动台202使用插入到SIM接口264中的订户识别模块或者“SIM”卡262以便在网络中操作。SIM 262是一种传统的“智能卡”,尤其用于识别移动台202的末端用户(或订户)并且用于个性化设备。没有SIM 262,该实施例中的移动台终端不能完全通过无线网络进行通信。通过把SIM 262插入到移动台202,末端用户可以接入到任何和全部他的/她的预定业务。SIM 262通常包括处理器和用于存储信息的存储器。由于SIM 262耦合到SIM接口264,其通过通信线耦合到微处理器238。为了识别订户,SIM 262包含某些用户参数,例如国际移动订户识别(IMSI)。使用SIM 262的一个优点是末端用户不必被任何单个物理移动台绑定。SIM 262还可以存储移动台的额外的用户信息,包括记事册(或日历)信息和最近的呼叫信息。应当清楚,移动台202还可以与例如启用码分多址(CDMA)的任何其它类型的网络兼容移动设备24一起使用,并且并不限定为使用和/或具有SIM卡262的移动台。
移动台202是电池供电设备从而其还可以包括电池接口254,用于连接一个或更多个可再充电电池256。电池256向移动台202中的大部分或者全部电路供电,并且电池接口254向电池提供了机械和电连接。电池接口254耦合到稳压器(没有显示),该调整器向所有电路提供了稳压后的电压V。
移动台202包括微处理器238,其控制移动台202的整体操作。通信功能,至少包括数据和语音通信,通过通信子系统211执行。微处理器238还与额外的设备子系统,例如显示器222、闪存224、随机存取存储器(RAM)226、辅助输入/输出子系统228、串口230、键盘232、扬声器234、麦克风236、短距离通信子系统240、以及大体在242示出的任何其它子系统进行交互。图3所示的某些子系统执行通信相关的功能,而其它子系统可以提供“驻留”或设备上功能。注意,某些子系统,例如键盘232和显示器222,可以用于例如输入用于在通信网络上传输的文字消息的通信相关功能,以及例如计算器或任务列表的设备驻留功能。微处理器238使用的操作系统软件优选的存储在持久性存储器中,例如闪存224,备选的,可以是只读存储器(ROM)或者类似的存储元件(没有示出)。本领域技术人员将清楚,操作系统、特定设备应用、或者其部分可以临时加载到例如RAM 226的易失性存储器中。
微处理器238,除了其操作系统功能外,优选的能够执行移动台202上的软件应用。控制包括至少数据和语音通信应用的基本设备操作、以及本公开的创造性功能的预定的一组应用将在移动台202的制作过程中安装在移动台202中。可以加载到移动台202的优选应用可以是个人信息管理器(PIM)应用,其具有组织和管理与用户相关的项目的能力,例如但不限定为电子邮件、日历事件、语音邮件、约会、以及任务项目。自然的,在移动台202和SIM 262上可使用一个或更多个存储器从而便于PIM数据项目和其它信息的存储。
PIM应用优选的具有通过无线网络发送和接收数据项目的能力。在本公开中,PIM数据项目通过无线网络与存储的和/或主机计算机系统相关联的移动台用户相应数据项目无缝地整合、同步并更新,从而在移动台202上创建关于该项目的镜像主机计算机。这在主机计算机系统是移动台202用户的办公室计算机系统的情况下尤其有利。额外应用还可以通过网络、辅助子系统228、串口230、短距离通信子系统240或者任何其它合适的子系统242加载到移动台202,并且由用户安装在RAM 226中或者优选地安装在非易失性存储器(没有显示)中由微处理器238执行。应用安装的灵活性可以增加移动台202的功能,并且可以提供增强的设备上功能、通信相关功能或者两者。例如,安全通信应用可以使移动台202进行电子商业功能和其它金融事务处理。
在数据通信模式中,接收的信号,例如文本消息、电子邮件消息或者网页下载将被通信子系统211处理并且输入到微处理器238。微处理器238将有利的处理该信号以输出到显示器222或者备选的输出到辅助I/O设备228。移动台202的用户还可以使用键盘232以及显示器222以及可能的辅助I/O设备238创作数据项目,例如电子邮件消息。键盘232优选为完整的字母数字键盘和/或电话类型的键盘(上述所讨论的)。这些创作的项目可以通过通信子系统211在通信网络上发送。
对于语音通信,移动台202的整体操作基本上相似,除了接收的信号将被输出到扬声器234并且用于传输的信号将被麦克风236产生。备选的语音或音频I/O子系统,例如语音消息记录子系统,还可以实现在移动台202上。尽管语音或音频信号输出优选的主要通过扬声器234完成,作为某些例子,显示器222还可以用于提供呼叫方身份、语音呼叫持续时间或者某些其它语音呼叫相关信息的指示。
图8中的串口230通常实现在个人数字助理(PDA)类型的通信设备中,对于该设备,与用户的桌面计算机的同步是期望的,虽然是可选的部件。串口230能使用户通过外部设备或软件应用设定偏好,并且通过向移动台202提供信息或软件下载而不是通过无线通信网络以扩展移动台202的能力。备选的下载路径例如可以用于通过直接的并且因此可靠和可信的连接把密钥加载到移动台202从而提供安全的设备通信。
图8的短距离通信子系统是提供移动台202和不同系统或设备之间通信的额外的可选部件,该不同设备并不必须是相似设备。例如,子系统240可以包括红外设备以及相关的电路和部件,或者BluetoochTM通信模块以提供与具有相似功能的系统和设备的通信。BluetoochTM是Bluetooth SIG,Inc.的注册商标。
例如联系人应用430(参见下述图9)的应用可以通过使用定位设备122高亮显示图标并把合适的用户输入提供到移动设备24而从显示器120启动(打开或者观看)。例如,可以通过移动定位设备122而使联系人图标高亮显示并且通过例如按压轨迹球122b提供选择输入,来启动联系人应用430。
考虑到可视显示信息的相对大的尺寸以及显示器120的较小尺寸,并且由于信息和消息通常仅仅是在给定时刻部分的呈现在显示器120的有限视图中,移动、导航和/或滚动光标/观看定位设备122(例如轨迹球122b或者滚动轮122a)是有利的。如之前所述,定位设备122-滚动轮122a和轨迹球122b是实现该移动的有用的光标/观看定位装置。定位设备122,在一个实施例(图6)中可以为滚动轮或者滚动设备12a,具体包括圆盘,其可以围绕外壳的固定轴旋转并且可以由末端用户的食指或拇指旋转。
如上所述,在另一实施例(图7)中,轨迹球122b包括多方向组件,可以向上、向下移动,如果需要,还可以沿着对角线移动。具体地,通过轨迹球122b提供的多方向移动以及图标和文件夹的网格表示,向用户提供了传统桌面计算机接口的布局的灵活性和熟悉度。而且,定位设备122可以使用一只手在移动设备24上执行移动和选择操作。轨迹球122b尤其还可以进行单手使用并且具有能引起光标132在多于一个的方向上穿过显示器120的能力。
如图9所示,存储器224包括与显示器120上显示的图标相关联的多个用于处理数据的应用426。应用426可以是任何形式,例如但不限定为软件、固件等。应用426例如可以包括,联系人应用430、电子邮件(e-mail)432、日历程序434、备忘录程序436、视频播放器438等。操作系统(OS)432也驻留在存储器224中。当前公开的移动设备24还被配置为能在不同应用之间通信,例如在联系人应用430和邮件应用432之间通信。而且,针对设备24上的应用的图标136可以被修改、命名、移动、分类并且为了组织和/或操作的目的可以与这些应用426的图标的可见性进行相互作用。
在一个实施例中,一个或更多个视频文件440存储在存储器224中,存储器224被配置为由视频播放器438使用。视频文件440通常以压缩(编码)形式存储,为了在视频播放器438上播放其必须被处理器238解压缩(解码)。应当清楚,视频文件440可以通过网页浏览器从外部源加载,或者从通过通信系统200访问的网站下载,并且并不需要直接存储在移动设备24上。
在一个实施例中,视频解码是处理器238负责执行的多种任务之一。现在参考图10,处理器238显示有多个定义的任务300,这些任务300执行一组特定的指令以提供移动设备24上的功能或业务。在视频解码的例子中,视频解码任务302从存储在存储器224中的视频文件440中获得目标视频帧速率304和编码的视频数据306。视频解码任务302对编码的视频数据306进行解码,并以特定的帧速率把解码的数据307提供到视频播放器438,该速率优选的接近或等于目标帧速率304。视频播放器438负责使用合适的用户接口,例如视频入口、查看器等在显示器120上播放视频。
从图10中可以看出,处理器238还处理用户输入308(例如键击或者定位设备移动)以及用户定向输出310(例如,状态条更新,例如显示“未读邮件”图标),以执行用户相关任务312。
视频解码是周期性过程,也就是其以重复的方式在特定时间间隔使用处理器能力。尽管用于执行周期性任务的周期尽可能的精确是非常重要的,通常期望保证移动设备24以及时的方式响应用户相关任务。如上面所讨论的,某些处理器任务耗尽了处理器的能力,从而交互任务,例如光标150的移动,可能受到不利影响并且用户容易注意到。
已经注意到,在周期性任务的每个时间段处理的量在很大程度上与该时间段无关。因此,通过增大运行任务的时间段,并且以降低处理器负担的方式改变任务,例如去除视频中的帧,平均处理器使用率可以被降低以满足特定目标。这可以保证用户输入不受周期性任务的影响。换言之,周期性任务可以被智能地退化并改变,以补偿该退化从而释放足够的处理器使用率空间以便不影响用户输入。
为了保持可用处理器使用率的所选量,处理器238被配置为通过确定整体处理器使用率而对用户输入和用户定向输出(用户相关任务)做出反应,并且确定一个或更多个特定周期性任务以保持处理器的使用率在(如果可能的话低于)预定阈值上。
现在转到图11,提供了示出控制处理器使用率的过程的流程图。优选的,图11所示的过程在每次处理器检测、接收或响应用户相关事件而处理用户相关任务时被执行。例如,可以每秒更新移动设备24上的状态区域(例如,显示器120的顶部)从而提供信号强度、电池电力、时间、日期、活动报警、未读邮件、电话消息等的当前指示。这将需要至少每秒执行一次图11所示的过程。其它用户相关任务,例如光标移动和键击可以引起在其它时间执行处理。因此可以清楚,图11所示过程的执行频率取决于移动设备24以及用户输入所提供的特征/业务的特性。这样,该过程应当被配置为其可以动态的、“实时”的方式运行。应当清楚,在可能的情况下,该过程还可以被配置为以调度或基本调度(即频繁的)的方式运行。
在步骤320,处理器238根据当前执行的任务300确定当前处理器使用率。在一个实施例中,处理器238被配置为使任务300和周期性任务302(通常为任务300本身)消耗相对固定量的处理器能力,同时,剩余处理器能力被分配给用户相关任务312和空闲时间318,由于考虑到处理器238不执行任何任务的时间,该空闲时间的量不能被容易地确定。因此,如果没有进行下述智能退化,那么由于更多固定任务300(包括周期性任务302)的运行,用户相关任务312倾向于受到不利影响。
从图11中可以看出,任意N个任务300以及上述讨论的用户相关任务312正在被执行。处理器238还考虑了处理器使用的空闲部分318以及特定周期性任务302(例如,视频解码)。为了确定处理器使用是否应当被退化以适应用户相关任务312,处理器238首先确定正在执行哪个周期性任务302。例如,当状态条将要被更新时,处理器238确定调度视频文件440进行解码,即,视频解码任务302被执行。由于视频解码任务302是周期性的,其可以被智能退化以补偿如果需要则更新状态条的用户相关任务。
如上所述,用户相关任务312通常与当前执行的固定任务所剩余的处理器能力一致。因此,除了空闲部分318以外,用户相关任务312可以从计算中排除。为了计算当前处理器使用率,处理器238把每个任务300正在消耗的处理器能力以及由视频解码任务302(周期性任务)使用的处理器能力的估计相加。可以根据期望的性能、先前的性能或者根据其它预定数据的平均使用率来确定该估计。单独处理器“使用率”的总和构成了当前处理器使用率322,其可以与预定阈值324相比较。预定阈值324是旨在为用户相关任务312留下足够的处理器能力从而对这些任务的响应并不危害移动设备24的可用性的目标值。阈值324通常取决于用户相关任务312的数量以及整体处理器能力。因此,预定阈值324将随移动设备而发生改变。
已经发现,针对mpeg4格式达到320×240分辨率的视频解码的处理器使用率通常大约为30%。然而,如果用户试图播放不支持的视频(即,远大于可以支持的),那么处理器使用率可以饱和为100%。在没有用户相关交互(用户相关任务312)的正常操作中,已经发现处理器238的合适饱和点为93%。合适的阈值324(即,当考虑用户相关任务时的处理器使用率)是70%。这分别转换为可用于用户相关任务312的大约每秒21.8百万个周期和每秒93.6百万周期。
现在返回图11,在步骤326,处理器238确定当前处理器使用率322是否大于或者高于阈值324。如果否,则处理器238并不执行任何退化,因为处理器当前并未饱和。如果处理器使用率322高于阈值324,则周期性任务,例如在步骤320识别的视频解码任务302在步骤328被智能地退化。这提供了补偿输出330,其考虑到周期性任务的退化版本,例如已经有选择地去除特定帧的解码视频数据307。
现在参考图12来解释用于智能退化视频解码任务302的一个例子。可以看出,正常视频解码图是周期性的,包括使处理器饱和的任务的较大比例(沿着“视频”侧的实线)以及释放处理器能力以用于用户相关任务312的较小比例。换言之,当图表读数为“1”时,视频解码任务302活动地消耗处理器238,而当其读数为“0”时,处理器238可以用于用户相关任务312。
通常,视频解码任务302使处理器238能够处理用户相关任务的时间量并不足以防止用户注意到“缓慢”的响应。多种周期性任务,例如视频解码可以被退化以释放更多时间来处理用户相关任务312。例如,如图12的右边图所示,可以有选择地去除特定帧。在所示的例子中,帧3被去除并且周期增大,从而在稍后的时间(即,该例子中的帧5),正常周期可以恢复。因此,可以仅针对补偿当前情况所需的时间而退化视频解码任务302。
例如,除了视频解码任务302以外,还可以执行若干任务300。在处理例如光标移动的用户相关输入时,处理器238饱和并且图12所示的退化被执行。然而,在检测到下一个光标移动的时间之前,一个任务300可能完成同时视频解码任务302仍在被执行。如果任务300已经把整体处理器使用率降低到阈值324以下,则视频解码任务302将不再需要退化。这样,图11和图12所示的过程可以动态的执行,从而只有当处理器238在特定时间饱和时才需要进行退化。
为了智能地退化周期性任务,例如视频解码任务302,处理器238被配置并且配置特定任务以便允许退化。例如,为了去除视频文件440中的帧,需要执行特定考虑。视频帧序列{|IPPBPP|IPPBPPI|}可具有限制,使得只有P帧可以被去除。由于P帧取决于至少一个先前的帧,并且B帧取决于至少一个先前的帧和一个之后的帧,针对去除而选择的任何帧还应当去除取决于该帧的一连串帧。如果帧1(I帧)在序列中被去除,则取决于该帧的帧2(P帧)也被去除。取决于帧2的帧3(P帧)也被去除。这一连串帧将一直继续到帧7(I帧)。然而,去除帧6(P帧)也是可接受的,因为没有帧取决于帧6。因此,当它们出现时,处理器238可以仅仅通过去除这些帧来退化视频文件440。视频解码任务302将被编程以区分这些帧并且提供处理器信号,该处理器信号指示下一“P”帧应当被去除并且调整周期以平滑帧序列。这提供了用户相关任务312和视频输出性能的折衷。
因此,处理器238和任务300(包括周期性任务)被编程以智能地进行确定并且执行所需的补偿以退化所选任务,而不严重影响其性能。例如,处理器238并不应当退化视频输出使其过度的断断续续。应当考虑交互和非交互任务的目标的平衡。
图13示出了用于播放不支持的480×360视频的视频任务302的时间频率。在视频解码任务302期间,在时间48448621执行键击,直到48479718开始处理,并且在时间48582828利用轨迹球122b执行光标移动。这些动作涉及显示器120中可分级矢量图形(SVG)更新,这被认为较慢并因此需要处理器时间。因此,处理器238通过退化视频以给出较多数量的处理器时间(意味着该图表经常位于0),来补偿余下的视频。
在这个例子中,视频文件440提供了目标帧速率304,其具有在图13所示的图中使用的1093.359个单位的时段。可以看出,即使在视频开始时,目标时段也并不是可实现的,因而对其它任务进行补偿。时段[48448621,48479718]以及[4852828,48691857]显示了在图中大于其它时间的时段。由于在“1”处图形的持续时间并不改变(这是用于对帧进行解码的时间),在这些时段期间该图形看上去更为稀疏的事实表明在“0”处花费更多时间以降低处理器238的饱和,以便适应用户相关任务312。
图13所示的视频期望33.37毫秒的周期,然而,根据该图,当处理器238过度饱和时,这将下降到(dip to)最低124.23毫秒。这把处理器负载降低了3.72倍。当在该时序图中进一步降低处理器负载时,在重放期间一共跳过34个帧。可以清楚,尽管1/3.72倍的期望视频速率通常不是期望的,然而该退化可以进行特定次数,以适应用户交互。特别的,如果处理器使用率被限制为93%,则每秒21.8百万周期可用于用户相关任务312是不可接受的,但是当限制为70%使用时,每秒93.6百万周期可用是刚好足够的,因而选择阈值324以提供折衷。在图13所示的例子中,视频将可能是缓慢的(给定典型的处理能力),并且在该图中仅有一个点(在图中在第205个尖峰之后)具有I帧,并且可以跳过帧以便追赶上。因此,视频中的低点或者最差情况退化将仅在存在与用户的交互时才会感觉到。
处理器238还可以被配置为智能地退化多于一个的周期性任务,例如BluetoothTM通信和视频解码任务302。为了把这些任务退化到足以满足阈值324的需要,处理器238不仅清楚每个任务如何操作,还清楚两个被退化任务的相互通信以寻找适合当前时间的折衷。例如,视频文件440的音轨在与视频解码任务302相同的时间被退化。然而,音频和视频任务将需要被补偿使得他们不会变得不同步。因此,在每个任务的退化中存在折衷,以保证性能仍然在可接受程度。因此可以清楚,当并行地执行多个退化时,针对智能退化任务的考虑变得更加困难。因此,期望智能的退化单个任务,或者对特定任务限定处理器使用率,以避免在配置处理器238在可能的情况下处理该折衷时的复杂度。然而,在处理器使用率远超过阈值324的情况下,退化一对任务以共享负担更加有利。
例如,BluetoothTM高级音频分布简档(A2DP)规范列出了可以用在该链路上的几种音频格式。链路的每一侧可以支持这些格式的任何子集。为了保证设备24可以通信,设备24需要支持智能比特率控制(SBC)格式。存在几种可以修改的SBC的参数并且其他格式可以支持其他参数。重要参数是比特率和采样速率。使用的格式可以影响两侧的处理器238,并且用于该格式的参数可以改变比特率和采样速率。如果当BluetoothTMA2DP连接被激活时将要释放处理器使用率,则A2DP连接可以退化以释放每秒接近一千万个周期,并且音频将仅仅需要按比率向后以便足以释放剩余部分。如果A2DP没有被激活,则视频将可能需要完全补偿以满足阈值324。
因此可以看出,通过增大任务运行的周期,以及以有选择地退化任务的方式改变任务(例如去除帧),可以降低平均处理器使用率以满足特定目标,这可以保证用户输入不会受到周期性任务的影响。换言之,周期性任务可以被智能的退化和改变以补偿该退化,从而释放足够的处理器使用率空间,以保证不会影响用户输入。
尽管在视频解码的上下文中描述了上面的例子,然而可以理解,上述原理同样可以应用于其他周期性任务,例如音频解码、无线电通信、BluetoothTM通信等。
还应当清楚,上述原理还可以用于退化非周期性任务,该非周期性任务还可以在特定间隔中被退化以补偿用户相关任务。例如,降低A2DP连接的比特率并不涉及周期性执行,并且可以如上文所述那样极大程度上降低处理器使用率。
尽管上面已经参考特定实施例进行了描述,本领域技术人员可以根据所附权利要求所指出的那样进行各种修改。

Claims (12)

1、一种用于控制移动设备(24)中处理器(238)的使用率的方法,包括:
确定由所述处理器(238)执行的选定任务(302),所述选定任务(302)能够被退化以减少所述处理器(238)的使用率;
检测与将由所述处理器(238)执行的用户相关任务(312)相对应的用户相关事件;
确定所述处理器(238)的整体使用率(322),包括指示用于执行所述选定任务(302)的使用率的值;
把所述整体使用率(322)与预定阈值(324)进行比较,所述预定阈值(324)指示所述处理器(238)的最大使用率;以及
如果所述整体使用率(322)并不满足所述阈值(324),则使所述选定任务(302)退化以降低用于执行所述选定任务(302)的所述使用率,并因此减少所述整体使用率(322),以便满足所述阈值(324)。
2、如权利要求1所述的方法,其中,所述选定任务(302)是周期性任务,而且所述退化步骤包括增大所述周期性任务的周期。
3、如权利要求2所述的方法,其中,所述退化步骤包括从所述周期性任务中去除内容。
4、如权利要求3所述的方法,其中,所述周期性任务是视频解码,而且所述去除内容的步骤包括从视频(440)中去除一个或更多个帧。
5、如上述权利要求中任意一项所述的方法,包括:针对由所述处理器(238)处理的每个用户相关事件重复所述方法。
6、如上述权利要求中任意一项所述的方法,其中,所述用户相关任务(312)包括提供用户定向输出和/或响应用户输入。
7、如上述权利要求中任意一项所述的方法,其中,确定所述整体使用率(322)的步骤包括:把针对一个或更多个固定任务(300)的单独处理器使用率的总和与基于属于所述选定任务(302)的预定信息的所述值的估计相加。
8、如权利要求7所述的方法,其中,确定所述整体使用率(322)的步骤把用于执行所述用户相关任务(312)的处理器使用率排除在外。
9、如上述权利要求中任意一项所述的方法,包括确定另一个选定任务,而且所述退化步骤包括执行所述选定任务(302)的第一退化以及所述另一个选定任务的第二退化,其中所述第一和第二退化一同减少了所述整体使用率(322),从而满足所述阈值(324)。
10、如上述权利要求中任意一项所述的方法,其中,满足所述阈值(324)的步骤包括控制所述处理器(238)的使用率(322)位于或低于所述阈值(324)。
11、一种存储有计算机可执行指令的计算机程序产品,所述计算机可执行指令用于使所述移动设备(24)执行权利要求1到10之一所述的方法的步骤。
12、一种移动设备(24),包括:存储器(224,226),所述存储器用于存储计算机可执行指令;以及处理器(238),用于执行所述指令,使所述移动设备执行权利要求1到10之一所述的方法的步骤。
CN2008101611204A 2007-03-28 2008-03-24 根据用户输入控制处理器使用率的系统和方法 Active CN101349977B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP07105129A EP1975794B1 (en) 2007-03-28 2007-03-28 System and method for controlling processor usage according to user input
EP07105129.6 2007-03-28

Publications (2)

Publication Number Publication Date
CN101349977A true CN101349977A (zh) 2009-01-21
CN101349977B CN101349977B (zh) 2012-05-09

Family

ID=38521230

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101611204A Active CN101349977B (zh) 2007-03-28 2008-03-24 根据用户输入控制处理器使用率的系统和方法

Country Status (3)

Country Link
EP (1) EP1975794B1 (zh)
CN (1) CN101349977B (zh)
CA (1) CA2626940C (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101710293B (zh) * 2009-12-10 2012-12-19 青岛海信宽带多媒体技术有限公司 一种usb存储设备文件遍历的方法及装置
US8789052B2 (en) * 2007-03-28 2014-07-22 BlackBery Limited System and method for controlling processor usage according to user input

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3898789B2 (ja) 1996-12-05 2007-03-28 富士通株式会社 周期プロセス負荷制御システムおよび周期プロセス負荷制御方法
US6964048B1 (en) 1999-04-14 2005-11-08 Koninklijke Philips Electronics N.V. Method for dynamic loaning in rate monotonic real-time systems
US8589930B2 (en) 2002-03-22 2013-11-19 Toyota Jidosha Kabushiki Kaisha Determining whether to execute a new task by deleting task objects of existing tasks

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8789052B2 (en) * 2007-03-28 2014-07-22 BlackBery Limited System and method for controlling processor usage according to user input
CN101710293B (zh) * 2009-12-10 2012-12-19 青岛海信宽带多媒体技术有限公司 一种usb存储设备文件遍历的方法及装置

Also Published As

Publication number Publication date
EP1975794A1 (en) 2008-10-01
EP1975794B1 (en) 2012-07-11
CA2626940A1 (en) 2008-09-28
CN101349977B (zh) 2012-05-09
CA2626940C (en) 2013-09-24

Similar Documents

Publication Publication Date Title
CN100442232C (zh) 从第一电子设备向第二电子设备传送应用软件状态的方法
CN100440121C (zh) 通过用户界面控制设备的方法
CN101583942B (zh) 为手持设备实施主题的方法和设备
CN103354586B (zh) 用于预览主题的系统及方法
CN100548007C (zh) 移动通信终端、信息提供系统及方法
CN101185314B (zh) 用于移动消息传送的多模式接口
CN101295225B (zh) 在具有小显示器的无线通信设备上提供新事件通知的方法和设备
US9304673B2 (en) Dynamic bar oriented user interface
CN102754520B (zh) 在移动终端提供信息的方法和设备
US7672663B2 (en) Method and apparatus for dynamic session placeholder for message collection user interface
US20120003936A1 (en) System and method for facilitating short-range wireless communications between a mobile wireless device and an auxiliary system
CN103812990B (zh) 终端设备及其控制方法
CN101120313A (zh) 移动设备中快捷键的维护
WO2002093875A2 (en) Method and apparatus for associating a received command with a control for performing actions with a mobile telecommunication device
CN106357928A (zh) 一种日程提醒方法及终端
CN106850977A (zh) 用于单击提醒创建的方法和装置
US8789052B2 (en) System and method for controlling processor usage according to user input
CN103179283A (zh) 一种对手机状态栏短信通知进行快捷键操作的方法及系统
CN101206552B (zh) 用于在移动设备中提供选项的方法及装置
US7725102B2 (en) Method and apparatus for associating a received command with a control for performing actions with a mobile telecommunication device
CN101277326B (zh) 提供方便选择去话呼叫通信线路的用户界面的系统和方法
CN105897436A (zh) 流量监测装置及方法
CN101349977B (zh) 根据用户输入控制处理器使用率的系统和方法
CN101535935A (zh) 显示器呈现事件、连接和联系人信息
GB2443652A (en) Disambiguating text input using probability

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Voight, Ontario, Canada

Patentee after: BlackBerry Ltd.

Country or region after: Canada

Address before: Voight, Ontario, Canada

Patentee before: RESEARCH IN MOTION Ltd.

Country or region before: Canada

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240524

Address after: Ai Erlandubailin

Patentee after: Maliki Innovation Co.,Ltd.

Country or region after: Ireland

Address before: Voight, Ontario, Canada

Patentee before: BlackBerry Ltd.

Country or region before: Canada