用于占先重启多子系统移动通信设备中的软件以提高平均故障间隔时间的方法_3

文档序号:8399313阅读:来源:国知局
为在该样的操作条件下,一致表决同意的可能性将会减少。在另一方面,重启请求速率可W由移动设备的操作系统(例如,管理程序例程)基于其它参数进行修改,所述其它参数诸 如;一天中的时间、星期几、与用户接口的用户交互等。
[0026] 在一方面,移动设备可W采用使得子系统能够交换消息(例如重启请求消息和响 应)的协议。该样的协议还可W结合电池寿命保护程序来使用。例如,当子系统报告不活 动时,移动设备可W关闭(或进入休眠状态)。然而,所述方面的方法使用该样的通信协议 W实现由依赖关系列表子系统出于决定何时重启选定子系统的目的而进行的表决。
[0027] 所述方面的方法不同于传统软件恢复方法,因为软件重启没有被调度某些次、不 是基于用户输入、或不是响应于自从子系统的先前的初始化而发生的故障而执行。另外,所 述方面的方法可W不将子系统工作负载传送到辅助系统(例如,处理器),并且可W不重启 硬件。而是,各个方面的方法通过基于确定的重启时间窗口来重启软件W及通过依赖型子 系统进行的表决,来预先阻止子系统的故障。
[002引图1示出了包括片上系统100的示例性移动设备的组件框图。片上系统100可W包括大量的组件(诸如接口和各种电路)、处理器101 (诸如微处理器或多核处理器、数字信 号处理器值SP))和存储器102。在一方面,片上系统100可W包括为了特定目的而可W彼 此组合工作或单独工作的大量处理元件和存储器。例如,片上系统100可W包括用于处理 应用(诸如互联网浏览器应用)的处理器101,W及用于处理接收自发射机/接收机(TX/ R幻电路或调制解调器109 (例如禪合到天线(未显示)的蜂窝网络收发机)的射频信号W 及处理提供给发射机/接收机(TX/R幻电路或调制解调器109的射频信号的数字信号处理 器 104。
[0029] 处理器101和存储器102可W被连接到一起,从而在处理器101内执行软件、例程 和/或指令期间,可W通过存储器102和处理器101之间的总线来传送数据。片上系统100 还可W包括用于与移动设备内的外部组件交换数据的各种接口,诸如通信TX/RX电路/调 制解调器109 (例如,蜂窝电话、藍牙(Bluetoo化⑥)、紫峰(Zigbee饭)、Peanut货域WiFi 收发机)、用户接口 110和显示器106 (例如,液晶显示器或屏幕)。处理器101可W利用接 收自存储器102和/或外部组件109、110、106的数据来执行软件指令。
[0030] 外部组件109、110、106中的每一个外部组件都可W是运行软件模块并且依赖于 其它子系统的子系统。例如,通信TX/RX电路/调制解调器109可W包括调制解调处理器, 所述调制解调处理器运行用于控制无线操作的软件、运行通信协议、并且处理用于由无线 设备进行发送和接收的数据。因此,外部组件子系统可W实现各个方面的方法,W定期重启 它们各自的软件模块W及对其它子系统的重启进行表决,其中,当被轮询时,外部组件子系 统依赖于其它子系统。
[0031] 处理器101可W同时将大量子系统150-160执行为软件模块,所述软件模块可W 运行在单个处理器上,或运行在多核处理器内的两个或多个内核上。例如,子系统"A" 150 可W是软件应用、指令集、或W其它方式运行在处理器101上的软件模块,同时子系统 "B" 152也运行在处理器101上。作为另一个例子,子系统"C" 154可W是控制移动设备上 的视频编解码器服务的软件,并且子系统"D"156可W是监测移动设备内的传感器活动(例 如,检测和评估实时加速计传感器数据)的软件。在各个方面,子系统150-160可W是运行 在处理器101上的操作系统线程或例程。
[0032] 如上所述,多种子系统可W交换数据,并且可W执行用于其它子系统、依赖型子系 统的操作。每个子系统或管理所有子系统或大部分子系统的管理程序可W维持标识每个依 赖型子系统的依赖关系列表。
[003引作为说明,在图1中,子系统"A" 150可W向子系统"C" 154、子系统"B" 152W及 子系统叩"156提供数据,和/或为子系统"C" 154、子系统"B" 152化及子系统叩"156执 行操作。在该例子中,针对子系统"A" 150的依赖关系列表可W包括子系统"B" 152、子系 统"C" 154和子系统叩"156。子系统"B" 152可W向子系统"A" 150和子系统叩"156提 供数据和/或为子系统"A" 150和子系统"D" 156执行操作。换言之,针对子系统"B" 152 的依赖关系列表可W包括子系统"A" 150和子系统"D" 156。子系统"C" 154可W向子系统 "A" 150提供数据和/或为子系统"A" 150执行操作。换言之,针对子系统"C" 154的依赖 关系列表可W仅包括子系统"A"150。子系统叩"156可W不向任何其它子系统提供数据和 /或不为任何其它子系统执行操作,因此可W具有空的依赖关系列表。子系统"E"158和子 系统"F"可W向彼此提供数据和/或为彼此执行操作,并且与运行在处理器101上的其它 子系统150-156没有连接并且与之相互独立。在一方面,针对各个子系统150-160的依赖 关系列表可W是动态的,并且随着各个子系统150-160被处理器101执行而改变,或者,可 W保持担定。
[0034] 图2示出了用于重启运行在多子系统移动设备上的特定子系统W避免来自软件 老化引起的故障的一方面的方法200。在方框202中,移动设备可W计算应当执行子系统的 重启的最小(在图2中称为"min")和最大(在图2中称为"max")时间。例如,子系统的 最小重启时间可W计算为4小时,而子系统的最大重启时间可W是20小时。如上所述,最 小重启时间和最大重启时间定义了重启时间窗口,其中在重启时间窗口期间,可W重启相 应的子系统W预先阻止软件故障。基于描述子系统在一段时间内的效率(或降级)和故障 的历史性能数据和/或当前性能数据,移动设备可W确定最小和最大重启时间。特别是,基 于描述先前的子系统软件故障的数据、子系统软件使用时间信息、与子系统相关的依赖关 系列表上的子系统的标识、缺陷率、W及子系统的被利用的资源,移动设备可W计算针对子 系统的最小和最大重启时间。例如,子系统可W存储表示预定时间段上的子系统的性能的 数据,并且可W基于所存储的数据定期地计算最小和最大重启时间。作为另一个例子,移动 设备可W基于一段时间上的子系统的缺陷(或故障)率来计算最小重启时间。
[0035] 在一方面,最小和最大重启时间可W表示实时时钟值和/或日历日期。例如,重启 时间窗口可W由早晨的特定时间和下午的另一个时间来表示,并且可W参照移动设备的系 统时钟装置作为计时器。在另一方面,重启时间窗口及最小和最大重启时间)可W被 表示为崩溃时间或处理器时钟循环。例如,最小和最大重启时间可W是移动设备的处理器 的多个时钟循环。换言之,当子系统已经被移动设备运行一定数量的处理器周期时,所述子 系统可W被重启。
[0036] 在一方面,最小和最大重启时间可W由移动设备的操作系统(例如,操作系统例 程、线程、管理软件等)来计算,或者,另外地,每个子系统可W被配置来计算它自己的最小 和最大重启时间。例如,在软件模块或子系统的实例化时,每个子系统或加载程序操作系统 例程可W计算相应的最小和最大重启时间。在另一方面,最小和最大重启时间可W由子系 统软件的开发者基于已知的问题、历史数据(例如,测试或采样数据)、和/或移动设备的规 格来预先计算。例如,基于特定子系统的开发者所报告的某个运行时间段上的故障率,移动 设备可W利用最小和最大重启时间。
[0037] 在一方面,最小和最大重启时间可W基于历史数据而被预先确定,并且可W被存 储在移动设备的操作系统的数据库内或数据存储内。例如,每个子系统和/或相关的软件 模块(例如,移动设备操作系统线程)可W从所存储的数据库中读取最小和最大重启时间 数据,用于如下所述的比较操作。
[003引返回到图2,在方框204中,移动设备可W建立针对每个子系统的重启计时器。如 上所述,重启计时器可W是充当计数装置的变量。例如,移动设备可W存储与子系统相关联 的整数变量,所述整数变量基于时间的流逝而定期地递增。在一方面,最小和最大重启时间 可W是相对时间值,子系统可W结合重启计时器来使用所述相对时间值。例如,子系统可W 将重启计时器初始化(例如,将重启计时器设置为零值),并且持续地将计时器变量与最小 和最大重启时间相比较,W确定是否需要重启。在一方面,重启计时器可W随着移动设备的 系统时钟的变化而递增。例如,系统时钟更新一次,重启计时器可W递增一次。
[0039] 在方框206中,移动设备上的处理器(例如经由操作系统例程)可W选择用于评 估的子系统。例如,移动设备可W维持所有当前运行的子系统的列表W及指向为潜在的重 启而待评估的下一个子系统的指针。方框206是可选的,因为在个别子系统可W运行关于 它们自己的重启例程的方法200的方面中,方框206中的操作可能是不必要的。在判定框 208中,移动设备可W判断用于选定子系统的重启计时器的当前值是否小于最小重启时间。 换言之,移动设备上的处理器可W判断重启计时器是否表示重启时间窗口内的时间值。如 果重启计时器小于最小重启时间(即,判定框208 ="是"),那么移动设备处理器可W继续 方框206中的操作。
[0040] 然而,如果选定子系统的重启计时器不小于最小重启时间(即,判定框208 = "否"),则在方框210中,移动设备处理器可W识别当前依赖于选定子系统的全部子系统 (即,依赖关系列表子系统)。例如,移动设备可W识别所有运行在移动设备上的子系统,所 述所有子系统可W与选定子系统相互通信、共享资源、或W其它方式利用选定子系统。在一 方面,移动设备可W评估被移动设备的各种子系统所执行的软件指令,W判断哪个子系统 利用选定子系统的资源。例如,移动设备可W检测来自于选定子系统的函数和/或选定子 系统所专用的函数何时被调用,或位于各种其它子系统的软件指令内。作为另一个例子,移 动设备可W检测其它子系统何时可W访问分配给选定子系统的内存位置。在一方面,移动 设备可W维持指示当前运行的子系统之间的所有依赖关系的数据表格。在另一方面,每个 子系统可W个别地维持指示依赖关系的数据,并且可W被选定子系统、移动设备的操作系 统、和/或运行在移动设备内的任何其它软件查询。例如,选定子系统可W通过向运行在移 动设备内的所有子系统发送查询W及从运行在移动设备内的所有子系统接收确认(或否 定)响应,来确定依赖关系列表子系统。
[00
当前第3页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1