用于提高便携式计算设备(PCD)中的处理器的安全性的系统和方法与流程

文档序号:11161013阅读:978来源:国知局
用于提高便携式计算设备(PCD)中的处理器的安全性的系统和方法与制造工艺

具有通过各种各样的通信介质(其包括无线信号)与其它设备进行通信的处理器的设备到处可见。包括便携式计算设备(PCD)的移动设备可以用于经由无线、模拟、数字和其它方式,与各种各样的其它设备进行通信。这些移动设备可以包括移动电话、便携式数字助理(PDA)、便携式游戏控制台、掌上型计算机、平板计算机和其它便携式电子设备。

除了主要功能之外,PCD还可以用于:下载和玩游戏;下载和播放音乐;下载和观看视频;全球定位系统(GPS)导航、web浏览、以及运行诸如日历和地址应用、电子钱包软件等等之类的应用。

为了适应这些不断增长的用途和对更高性能的需求,现代PCD通常包括片上系统(SoC),SoC包括用于控制或者执行该PCD的不同功能的一个或多个内核(例如,中央处理单元、图形处理单元等等)。但是,操作每一个内核/CPU会增加PCD上的功耗、减少电池寿命、增加PCD的触摸温度、使服务劣化等等。

但是,固有的PCD的不断增加的用途,增加了安全性漏洞的风险,其可能具有显著的负面影响。解决这些安全性问题的先前尝试具有一些限制。软件解决方案仍然具有安全性漏洞的高潜在性,并且可能难以验证。硬件解决方案对于SoC中的高效实现来说,消耗太多的功率和/或芯片面积。

先前的这些尝试可能很容易地被SoC制造商(其将SoC实现在PCD中)的供应商规避,例如,其可以具有改变嵌入式操作系统(如,高级操作系统(HLOS)的能力,以确保在SoC和供应商的PCD(其规避了用于提供针对要在PCD中使用的SoC的安全性的先前的尝试)之间的兼容性。类似地,尝试对PCD进行“越狱”的终端用户可能改变操作系统,并且进一步规避用于为SoC提供安全性的先前的尝试。

因此,需要用于提高在PCD中使用的SoC的安全性的改进系统和方法。



技术实现要素:

公开了用于允许提高便携式计算设备(PCD)中的片上系统(SoC)上的内核的安全性的系统和方法。在操作时,对SoC上的监视模块进行初始化。监视模块向SoC的内核发送请求,以及监视模块从内核接收响应。检查与监视模块通信的定时器。如果来自内核的响应是在定时器到期之前,在监视模块处被接收到的,则由监视模块对定时器进行重置或者禁用。否则,作为定时器到期的结果,监视模块向内核应用至少一项安全性措施。

一种示例性实施例是包括片上系统(SoC)上的内核的PCD。SoC上的监视模块与该内核通信,并且一个定时器与该监视模块通信。在该示例性实施例中,监视模块被配置为:向内核发送请求;从内核接收响应;以及如果响应是在定时器到期之前被监视模块接收到的,则对定时器进行重置;或者作为定时器到期的结果,向该内核应用至少一项安全性措施。

另一种示例性实施例是一种包括非临时性计算机可使用介质的计算机程序产品,其中,所述非临时性计算机可使用介质中体现有计算机可读程序代码,所述计算机可读程序代码适于被执行,以实现用于提高便携式计算设备(PCD)中的内核的安全性的方法,该方法包括:对SoC上的监视模块进行初始化;从SoC的监视模块向SoC的内核发送请求;在监视模块处,从内核接收响应;检查与监视模块通信的定时器;以及如果响应是在定时器到期之前,在监视模块处被接收到的,则使用监视模块对定时器进行重置;或者作为定时器到期的结果,使用监视模块向内核应用至少一项安全性措施。

附图说明

在附图中,除非另外指出,否则贯穿各个视图的相同附图标记指代类似的部分。对于具有诸如“102A”或“102B”之类的字母字符的附图标记而言,这些字母字符命名可以区分在同一附图中出现的两个类似部分或者组成部分。当一个附图标记旨在涵盖所有附图之中具有相同附图标记的所有部分时,可以省略用于附图标记的字母字符命名。类似地,对于具有‘诸如102之类的名称’的附图标记而言,该‘名称’可以代表具有相同附图标记(但不具有该‘名称’)的基本元素的替代实施例。

图1是可以在其中实现本发明的便携式计算设备(PCD)的示例性实施例的框图;

图2是示出用于提高PCD(例如,图1所示出的PCD实施例)中的处理器的安全性的示例性系统的框图;

图3是描绘了使用图1中所示出的PCD实施例的部分来实现的图2的示例性系统的方面的框图;

图4是图2和/或图3的示例性系统可以在之下操作的示例性安全性状态的示图。

图5A是描述了用于提供针对PCD中的一个或多个处理器的提高的安全性的方法的示例性实施例的方面的流程图;

图5B描绘了能够执行图5A中所示出的方法的方面的示例性组件;

图6A是描述了用于提供针对PCD中的一个或多个处理器的提高的安全性的方法的示例性实现的另外方面的流程图;

图6B描绘了能够执行图6A中所示出的方法的方面的示例性组件。

具体实施方式

本文所使用的“示例性”一词意味着“用作例子、例证或说明”。本文中描述为“示例性”的任何方面不一定被解释为比其它方面更优选或更具优势。

在本说明书中,术语“应用”还可以包括具有可执行内容的文件,例如:目标代码、脚本、字节码、标记语言文件和补丁。此外,本文所引用的“应用”还可以包括:在性质上不可执行的文件,例如,需要被打开的文档或者需要进行访问的其它数据文件。

此外,术语“内容”也可以包括具有可执行内容的文件,例如:目标代码、脚本、字节代码、标记语言文件和补丁。此外,本文所引用的“内容”还可以包括:在性质上不可执行的文件,例如,需要被打开的文档或者需要进行访问的其它数据文件或者数据值。

如本说明书中所使用的,术语“组件”、“数据库”、“模块”、“系统”等等旨在指代与计算机相关的实体,无论其是硬件、固件、硬件和软件的结合、软件或运行中的软件。例如,组件可以是,但不限于是:在处理器上运行的过程、处理器、对象、可执行文件、执行的线程、程序和/或计算机。举例而言,在计算设备上运行的应用和该计算设备都可以是组件。一个或多个组件可以存在于过程和/或执行的线程中,并且组件可以位于一个计算机中和/或分布在两个或更多计算机之间。此外,这些组件能够根据其上存储有各种数据结构的各种计算机可读介质来执行。这些组件可以通过诸如根据具有一个或多个数据分组的信号(例如,来自一个组件的数据,该组件与本地系统、分布式系统中的另一个组件进行交互和/或以信号的方式通过诸如互联网之类的网络与其它系统进行交互),以本地和/或远程过程的方式进行通信。

在本说明书中,使用术语“便携式计算设备”(“PCD”)来描述在有限容量的可充电电源(例如,电池和/或电容)上进行操作的任何设备。尽管具有可充电电源的PCD已经使用了数十年,但与第三代(“3G”)和第四代(“4G”)无线技术的出现伴随发生的可再充电电池的技术进步,已经实现了具有多种能力的众多PCD。因此,PCD可以是蜂窝电话、卫星电话、寻呼机、PDA、智能电话、导航设备、智能本或阅读器、媒体播放器、前述设备的组合、具有无线连接的膝上型计算机或平板计算机等等。

在本说明书中,术语“中央处理单元(“CPU”)”、“数字信号处理器(“DSP”)”、“图形处理单元(“GPU”)”、“芯片”、“视频编解码器”、“系统总线”、“图像处理器”和“媒体显示处理器(“MDP”)”,是可以在SoC上实现的处理组件的非限制性示例。用于处理组件的这些术语可互换地使用,除非另外指出。此外,如下面所讨论的,上面的任意组合或者它们的等同物可以实现在本文通常称为“内核”和/或“子内核”的一个或多个不同的处理组件中,或者包括该一个或多个不同的处理组件。

在本说明书中,术语“工作负荷”、“处理负荷”、“处理工作负荷”和“图形工作负荷”可以互换地使用,并通常针对于与给定的实施例中的给定处理组件相关联(或者向其分配)的处理负担、或者处理负担的百分比。另外,可互换地使用相关术语“帧”、“代码块”和“代码的块”来指代给定工作负荷的一部分或者一段。除了上面所规定的之外,“处理组件”等等可以是,但不限于是:中央处理单元、图形处理单元、内核、主核、子核、处理区域、硬件引擎等等、或者位于便携式计算设备中的集成电路之内或者之外的任何组件。

本领域普通技术人员应当认识到,术语“MIPS”表示处理器能够按照给定的功率频率,每秒处理的指令的数以百万计的数量。在本说明书中,将该术语使用成测量的通用单位,以指示该示例性实施例中的处理器性能的相对水平,并且其不应被解释为用于建议:落入本公开内容的保护范围之内的任何给定实施例必须包括具有任何特定的Dhrystone评级或者处理能力的处理器,或者必须不包括该处理器。另外,如本领域普通技术人员所应当理解的,处理器的MIPS设置直接与提供给该处理器的功率、频率或者工作频率相关。

本文的用于提高PCD中的处理器或内核的安全性的系统和方法,提供了一种在片上系统(SoC)连同一个或多个额外的处理器(其包括运行高级操作系统(“HLOS”)的处理器)上实现监视模块的高性价比方式。监视模块以确保监视模块的完整性的方式,响应于SoC的初始化,来进行初始化。另外,监视模块随后可以通过以下方式,采取动作来确保SoC的一个或多个处理器或内核的安全性:监视内核的状态,并且如果一个或多个内核的状态以负面或意想不到的方式发生改变,或者如果这些内核没有提供监视模块所需要的信息、数据和/或代码,则关于这些内核实现安全性措施。

在本文的系统和方法中,监视模块自身可以是依赖于有限的RAM或ROM存储器的简单组件,使得监视模块依赖于另一个内核(例如,HLOS内核)来启动进行初始化所需的代码。在启动之后,监视模块使用仅可以由该监视模块进行重置的定时器,根据期望对SoC上的一个或多个内核的状态进行监视。本文的系统和方法通过实现监视模块,允许实现针对SoC的一个或多个内核的健壮和灵活的安全性,其中该监视模块在功耗和SoC的芯片面积二者方面,对于SoC施加最小的负担。

在操作期间,可以对SoC进行初始化,触发对监视模块的初始化。随后,监视模块设置定时器,并向SoC上的内核请求信息。在对SoC进行初始化的情况下,所请求的信息可以是监视模块为了完成初始化和/或操作所需的启动代码。如果在定时器到期之前,监视模块没有接收到期望的信息,和/或如果监视模块所接收的信息不是监视模块所期望的内容,则监视模块可以对该内核实现安全性措施,其包括:持有该内核作为“人质”,直到所请求的信息被提供为止,和/或对整个SoC重新初始化。如果在定时器到期之前,监视模块接收到所请求的信息,则监视模块对定时器进行重置,并且根据该实现,监视模块可以自己关闭,或者针对预定的时间间隔/预定的未来事件,进入降低功率休眠或空闲模式,或者监视模块可以继续对SoC的一个或多个内核(其包括HLOS内核)的操作进行监视。

在一些实现中,监视模块可以通过以下方式,对SoC的一个或多个内核的状态进行监视:检查内核的状态,并且如果内核的状态发生改变,则允许定时器继续进行计数,或者如果内核的状态没有发生改变,则重置定时器。如果定时器到期,则作为定时器到期的结果,监视模块向该内核应用至少一个安全性措施。这些安全性措施可以包括:对整个SoC重新初始化、对特定的内核重新初始化、阻止该内核访问PCD上存储的数据、阻止该内核访问SoC上的一个或多个其它组件、和/或引起在PCD的显示器上显示的警告。此外,还可以根据预先规定的安全性策略(例如,目前的安全性水平状态)来应用安全性措施。类似地,如果期望的话,可以以分层的方式来应用这些安全性措施,其中,更严厉的措施被保留用于定时器的多个或连续到期。

在一个实施例中,可以使用处理器、有限的RAM或ROM存储器和定时器来实现监视模块,但不直接访问闪存。在其它实施例中,可以将监视模块虚拟地实现成例如一个内核(例如,运行HLOS的内核)的一部分或者一个分区。这种为SoC上的一个或多个内核提供健壮的和灵活的安全性措施,同时使监视模块的功耗和/或在SoC上的占用面积最小化的能力,允许以高性价比的方式,来提高针对PCD中的处理器或内核的安全性。

可以利用硬件或软件的方式,来实现本文所描述的用于提供针对PCD中的处理器或内核的提高的安全性的系统、或者该系统的部分。当利用硬件的方式来实现时,这些设备可以包括下面技术中的任何一种或者组合,其中这些技术都是本领域所公知的:分立电子组件、集成电路、具有被适当配置的半导体器件和阻抗式元件的专用集成电路等等。这些硬件设备中的任何一者,无论是与其它设备或其它组件(例如,存储器)一起操作还是单独操作,还可以形成或者包括用于执行所公开的方法的各种操作或步骤的组件或手段。

当利用软件的方式来实现或者部分地实现本文所描述的PCD或其它系统时,该软件部分可以用于执行本文所描述的方法的各个步骤,其包括对SoC和/或SoC的监视模块进行初始化。该软件部分还可以用于:在监视模块处,从内核接收信息,对接收的信息进行验证,设置/重置与监视模块处于通信状态中的定时器,和/或对SoC的一个或多个内核实现安全性措施。类似地,该软件部分可以用于通过以下方式来监视内核的状态:如果内核的状态发生改变,允许定时器继续计数,或者如果内核的状态没有发生改变,则重置定时器。该软件部分可以用于:作为定时器到期的结果,还向内核应用一个或多个安全性措施(或者对整个SoC进行重置)。

可以将在表示各种元素时使用的软件和数据存储在存储器中,并由适当的指令执行系统(微处理器)来执行。该软件可以包括用于实现逻辑功能的可执行指令的有序表,并且其可以体现在任何“处理器可读介质”中,以便由或者结合指令执行系统、装置或设备(例如,单核或多核处理器或者包含处理器系统)来使用。这些系统通常从指令执行系统、装置或设备中访问这些指令,并执行这些指令。

图1是PCD 100的示例性、非限制性方面的框图,PCD 100可以以能够与一个或多个无线通信系统进行通信的无线电话的形式来实现本发明的系统和方法。该无线通信系统可以是宽带无线通信系统,其包括长期演进(LTE)系统、码分多址(CDMA)系统、频分多址(FDMA)系统、全球移动通信系统(GSM)系统、无线局域网(WLAN)系统、某种其它无线系统、或者这些系统中的任何系统的组合。CDMA系统可以实现宽带CDMA(WCDMA)、CDMA 1X、演进数据优化(EVDO)、时分同步CDMA(TD-SCDMA)或者某种其它版本的CDMA。

如图所示,PCD 100包括片上系统(或SoC)102,后者包括耦合在一起的异构多核中央处理单元(“CPU”)110和模拟信号处理器126。CPU 110可以包括第零内核120、第一内核122和第N内核124,如本领域普通技术人员所理解的。此外,还可以使用数字信号处理器(“DSP”)来替代CPU 110,如本领域普通技术人员所理解的。此外,如异构多核处理器领域的技术人员所理解的,内核120、122、124中的每一个内核可以在类似的操作条件下,按照不同的效率来处理工作负荷。内核120、122、124中的每一个内核可以控制PCD 100的一个或多个功能。例如,第一内核120可以是用于控制PCD 100中的图形的图形处理单元(GPU)。此外,该GPU/第一内核120还可以包括:为了控制PCD 100中的图形而所必需的驱动器和/或其它组件,包括控制GPU内核120和存储器112(其包括缓冲器)之间的通信。对于另一个例子,不同的内核(如,第N内核124)可以运行PCD操作系统,例如,高级操作系统(HLOS)。该第N/HLOS内核124还可以包括为了运行HLOS所必需的驱动器、硬件接口、和/或其它组件,包括内核230和存储器112(其可以包括闪存)之间的通信。

PCD 100可以包括与多核CPU 110和/或内核120、122、124中的一个或多个内核进行通信的监视模块116。监视模块116可以用于向这些内核中的一些或全部内核提供安全性,如下面所描述的。监视模块116可以包括由多核CPU 110执行的软件。但是,在不脱离本公开内容的保护范围的基础上,还可以通过硬件和/或固件来形成监视模块116。在其它实现中,PCD 100可以不包括与多核CPU 110分离的监视模块116,而是监视模块116替代地是多核CPU 110的一部分。在这些实施例中,可以将监视模块116实现成多核CPU 110的单独的逻辑单元、软件或者固件组件,或者可以虚拟地实现监视模块116,例如,实现成内核120、122、124中的一个或多个内核的一个分区或一部分。

如图1中所示,显示控制器128和触摸屏控制器130耦合到多核CPU 110。转而,在片上系统102之外的显示器/触摸屏132,耦合到显示控制器128和触摸屏控制器130。数码相机148也可以耦合到多核CPU 110。在这些实施例中,数码相机148可以由多核CPU 110中的内核中的一个内核进行控制。在一个示例性方面,数码相机148是电荷耦合器件(CCD)相机或者互补金属氧化物半导体(CMOS)相机。

此外,图1的PCD 100还可以包括耦合到多核CPU 110的视频解码器134,例如,逐行倒相(PAL)编码器、顺序与存储彩色电视系统(SECAM)编码器、或者国家电视系统委员会(NTSC)编码器,或者任何其它类型的视频解码器134。此外,视频放大器136耦合到视频编码器134和显示器/触摸屏132。视频端口138耦合到视频放大器136。如图1中所示,通用串行总线(USB)控制器140耦合到多核CPU 110。此外,USB端口142耦合到USB控制器140。存储器112也示出成耦合到多核CPU 110。例如,该存储器112可以是随机存取存储器(RAM)、只读存储器(ROM)、闪存或者其任何组合。用户识别模块(SIM)卡146还可以耦合到多核CPU 110。在其它实施例中,可以实现多个SIM卡146。

如图1中所进一步示出的,立体声音频CODEC 150可以耦合到多核CPU 110。此外,音频放大器152可以耦合到立体声音频CODEC 150。在一个示例性方面,第一立体声扬声器154和第二立体声扬声器156耦合到音频放大器152。图1示出了麦克风放大器158还可以耦合到立体声音频CODEC 150。另外,麦克风160可以耦合到麦克风放大器158。在一个特定的方面,调频(FM)无线调谐器162可以耦合到立体声音频CODEC 150。此外,FM天线164耦合到FM无线调谐器162。此外,立体声耳机166可以耦合到立体声音频CODEC 150。

此外,图1还指示调制解调器设备/射频(“RF”)收发机168可以耦合到多核CPU 110。调制解调器设备168可以支持诸如GSM、CDMA、W-CDMA、TDSCDMA、LTE以及LTE的变形(例如,但不限于FDB/LTE和PDD/LTE无线协议)之类的无线通信协议中的一者或多者。另外,可以存在多个调制解调器设备168,并且在这些实施例中,不同的调制解调器设备168可以支持上面所列出的无线通信协议和/或技术中的一些或全部。

在一些实现中,调制解调器设备168还可以包括各种组件(其包括单独的处理器、存储器和/或RF收发机)。在其它实现中,调制解调器设备168可以简单的是RF收发机。此外,调制解调器设备168可以合并到集成电路中。也就是说,包括调制解调器设备168的这些组件可以是芯片中的完整解决方案,并包括可以由本文所描述的系统和方法进行监视的其自己的处理器和/或内核。替代地,包括调制解调器设备168的各种组件可以耦合到多核CPU 110,并由CPU 110的内核120、122、124中的一个内核进行控制。RF开关170可以耦合到调制解调器设备168和RF天线172。在各个实施例中,可以存在多付RF天线172,并且每一付这种RF天线172可以通过RF开关170来耦合到调制解调器设备168。

如图1中所示,键盘174可以直接地或者通过模拟信号处理器126,来耦合到多核CPU 110。此外,具有麦克风的单声道耳机176可以耦合到多核CPU 110和/或模拟信号处理器126。此外,振动器设备178还可以耦合到多核CPU 110和/或模拟信号处理器126。此外,图1还示出了电源188可以耦合到片上系统102,并且在一些实现中,电源188经由USB控制器140来耦合。在一个特定的方面,该电源188是直流(DC)电源,其向需要功率的PCD 100的各个组件供电。此外,在一个特定的方面,该电源188可以是可充电DC电池或者DC电源,后者是从连接到AC电源的交流电(AC)到DC变换器来得到的。

此外,多核CPU 110还可以耦合到一个或多个内部、片上热传感器157A,以及一个或多个外部、片外热传感器157B。片上热传感器157A可以包括一个或多个与绝对温度成比例(“PTAT”)温度传感器,后者是基于垂直PNP结构,并通常专用于互补金属氧化物半导体(“CMOS”)超大规模集成(“VLSI”)电路。片外热传感器157B可以包括一个或多个热敏电阻。热传感器157可以产生电压下降,利用模数转换器(“ADC”)控制器103将该电压下降转换成数字信号。但是,在不脱离本公开内容的保护范围的基础上,也可以使用其它类型的热传感器157。

此外,图1还指出PCD 110还可以包括网络卡114,后者可以用于接入数据网络(例如,局域网、个域网或者任何其它网络)。网络卡114可以是蓝牙网络卡、WiFi网络卡、个域网(PAN)卡或者本领域公知的任何其它网络卡。此外,可以将网络卡114合并在集成电路中。也就是说,网络卡114可以是芯片中的完整解决方案,并且其可以不是单独的网络卡114。

如图1中所示,显示器/触摸屏132、视频端口138、USB端口142、照相机148、第一立体声扬声器154、第二立体声扬声器156、麦克风160、FM天线164、立体声耳机166、RF开关170、RF天线172、键盘174、单声道耳机176、振动器178和电源180,在SoC 102之外。

此外,SoC 102还可以包括各种总线控制器(没有示出)。例如,第一例子可以响应总线接口中的信号,其中该总线接口通信地将CPU 110耦合到多媒体子系统的组件(其包括视频编码器134)。但应当理解的是,可以布置任意数量的类似配置的总线控制器,以监测在片上系统102中布置的总线接口。替代地,单个总线控制器可以配置有被布置为监测两个或更多总线接口的输入,其中这些总线接口根据需要,在CPU 110和PCD 100的各个子系统之间传输信号。

在特定的方面,可以经由存储器112和/或位于CPU 110上的存储器中所存储的数据和处理器指令的组合,来实现本文所描述的方法步骤中的一个或多个。这些指令可以由多核CPU 110中的一个或多个内核120、122、124来执行,以便执行本文所描述的方法。此外,多核CPU 110、内核120、122、124中的一个或多个内核、存储器112、监视模块116或者它们的组合,可以用作用于执行本文所描述的方法步骤中的一个或多个,以便提高PCD中的处理器或内核的安全性的手段。

图2是示出用于提高PCD(例如,图1所示出的PCD实施例)中的处理器或内核的安全性的示例性系统的框图。如图2中所示,该示例性系统包括可以实现在PCD中的片上系统(SoC)集成电路(IC)202(其类似于图1中的SoC 102)。图2的SoC IC 202包括内核220和监视模块216。内核220可以是来自图1的多核CPU 110的内核120、122、124中的一个内核,并且在一个实施例中,其可以是运行用于PCD 100的HLOS的内核120、122、124。

如图2中所示,内核220包括耦合到存储器223的CPU 221。CPU 221可以是上面参照图1所讨论的处理器的类型中的任何一种,并且其可以是用于SoC IC 202的功能(例如,HLOS)的专用处理器,也可以是执行SoC IC 202的多项功能的更通用处理器。在一些实施例中,CPU 221还可以用于运行、控制或者操作SoC IC 202或PCD的其它功能。

存储器223可以是期望的任何类型的存储器,并且其可以是专用于内核220的存储器223,也可以是在除了内核220之外的一个或多个额外的内核或处理器之间共享的存储器。在一些实施例中,存储器223是闪存。尽管在图2中将存储器223示出成位于内核220之内,但存储器223也可以位于与内核220物理上分离的位置,位于SoC IC 202上或者PCD中的其它地方。在图2所示出的实施例中,存储器223包含监视启动代码225a(其中,监视模块216需要该监视启动代码225a以便开始操作)以及监视数据文件225b(其中,监视模块216在其操作期间,需要该监视数据文件225b,如下面所讨论的)。

此外,图2的示例性系统还包括SoC IC 202上与内核220进行通信的监视模块216。在所示出的系统中,监视模块216包括与内核220的CPU 22进行通信的CPU 217。此外,监视CPU 217还可以是上面参照图1所讨论的处理器类型中的任何一种,并且其可以是用于监视模块216的专用处理器。尽管在图2中示出成SoC IC 202上的单独组件,但在一些实施例中,监视模块216可以是内核220的一部分,例如,内核220的一个虚拟部分或者分区。在这些实施例中,CPU 217可以是CPU 221的一个部分或者分区,而不是如图2中所示出的单独的物理组件。

图2的监视模块216还包括监视存储器218和定时器219,二者均与监视CPU 217进行通信。在图2的实施例中,存储器优选地是随机存取存储器(RAM)或者只读存储器(ROM),但其优选地不是闪存。与RAM或ROM存储器相比,典型的闪存需要更复杂的驱动器,并且实现起来更加复杂/与其进行接口更加复杂。

对于图2中所示出的实施例而言,期望保持监视模块216简单和高效,使用于操作监视模块216的功耗减到最小,并使实现监视模块216所需的SOC IC 202的芯片面积减到最小。通常存储在闪存中的代码和/或数据,替代地存储在与监视模块216进行通信、并且监视模块216进行监视的内核220的一个或多个存储器223中。监视存储器218可以是用于监视模块216的专用存储器,也可以是被其它处理器(例如,图1中的多核CPU 110的内核120、122、124)进行共享的存储器(例如,图中的存储器112)的一部分。另外,尽管在图1中示出成监视模块216的一部分,但监视存储器218也可以位于与监视模块216物理上分离的位置,位于SoC IC 202上或者PCD中的其它地方。

如图2中所示,监视模块216还包括与监视CPU 217进行通信的定时器219。在一些实现中,定时器219可以用于确保内核220最低限度地提供所必要的监视启动代码225a,以允许监视模块216正常地启动。此外,定时器219还可以用于确保内核220提供任何额外的信息(例如,监视模块216所需的监视数据文件225b),和/或允许监视模块216监视内核220的正在进行的操作,以防止内核220进行不想要的改变、变化或者动作。

定时器219可以是硬件、固件或软件组件,并且可以与监视模块216位于一起,也可以位于与监视模块216物理上分离的位置(但与其进行通信)。另外,尽管示出成单个组件,但定时器219可以包括多个组件,例如,两个定时器(没有示出)或定时器319和计数器317(参见图3A)。不管如何实现,定时器219都不由内核220进行重置,而在图2的实现中,其仅仅可以由监视模块216进行重置,如下面所进一步讨论的。

转到图3,该图描绘了使用图1的PCD实施例的部分来实现的图2的示例性系统的方面的框图。如图3中所示,在PCD的SoC IC 302上,提供与内核320进行通信的监视模块316。图3中所示出的内核320的实施例可以包括图2中所示出的内核220的另外组件。在其它实施例中,图3的内核320可以简单地是处理器(例如,图1的内核120、122、124中的一个内核),而图2的内核220的其它部分的功能由与内核320相分离的组件来提供。在其它实施例中,内核320可以是多个单独的内核(例如,内核120、122、124),每一个单独的内核与图3中所示出的另外组件中的一个组件进行通信,或者专用于其(即,GPU内核耦合到或者专用于视频编码器334,调制解调器内核耦合到或者专用于调制解调器设备368等等)。

尽管图3的监视模块316没有像图2的监视模块216那样,示出成具有存储器或处理器,但在监视模块316中也可以包括这些组件。在其它实施例中,这些组件可以不位于监视模块316之中,替代地,这些组件的功能可以由与监视模块316位于不同位置但与之进行通信的硬件、软件和/或固件来提供。监视模块316包括计数器317,并且监视模块316还与外部定时器319进行通信。图3A的实施例的计数器317和外部定时器318一起来执行用于监视模块316的定时功能。

图3中所示出的内核320还与SOC IC 302和/或PCD的其它部分或组件(其包括USB控制器340(并通过USB控制器340,与USB端口342))进行通信。内核320可以直接地与USB控制器340进行通信,和/或直接地控制USB控制器340。替代地,和/或在PCD的操作期间的各个时间处,内核320可以间接地与USB控制器340进行通信,例如,通过与直接地和USB控制器340进行通信的一个或多个组件或处理器(例如,图1的内核120、122、124或者模拟信号处理器126)进行通信。与USB控制器340(和USB端口342)的直接或间接通信,可以允许内核320针对例如通过USB端口342连接到该PCD的其它设备或计算机系统来输入和/或输出数据,和/或针对通过USB端口342连接到该PCD的外围设备来接收或者提供输入。

此外,图3的内核320还示出成与SOC IC 302的网络卡314和调制解调器设备/RF收发机368进行通信。同样,内核320可以直接地与SoC IC 302的这些组件进行通信,和/或控制SoC IC 302的这些组件,允许内核320与其它设备或计算机系统进行无线地通信,以进行网页浏览、上传/下载文件等等。替代地,和/或在PCD的操作期间的各个时间处,内核320可以间接地与网络卡314和调制解调器设备/RF收发机368进行通信,例如,通过与直接地和这些组件中的一个或多个组件进行通信的一个或多个组件或处理器(例如,图1的内核120、122、124或者模拟信号处理器126)进行通信。

最后,在图3所示出的方面,内核320还与视频编码器334进行通信,其中视频编码器334可以允许PCD播放包括视频内容的各种媒体文件。同样,内核320可以直接地或间接地与视频编码器334进行通信,和/或直接地或间接地控制视频编码器334,如上面参照SoC IC 302的组件所描述的。

在操作时,在SoC IC 302的初始化时(这可以是从关机(例如,当PCD的电池被完全耗尽时)来开始加电时),安全性监视模块316也尝试进行初始化/启动。内核320包含或者能够访问为了监视模块316正常地初始化和/或操作所需的监视启动代码225(参见图2)或者其它信息。如果内核320没有以及时地方式,向监视模块316提供该必要的代码,或者如果内核320没有提供为了监视模块316正常地初始化/操作所需的正确代码,则定时器319到期/被触发,这导致监视模块316采取安全性措施。这些安全性措施的范围可以是从在PCD的屏幕上显示警告,到干预内核320和/或SoC IC 302的启动和/或操作。

在另一种实现中,在监视模块316已经初始化之后,监视模块316可以执行对SoC IC 302的一个或多个处理器或内核(其包括内核320)的额外监视。监视模块316可能不时地需要额外的信息、数据或数据文件(例如,其包括内核320中所包含的额外数据)来执行这些额外的功能。在这些实现中,监视模块316可以苏醒或者以其它方式触发、请求来自内核320的额外信息。如果内核没有提供监视模块316所请求的额外信息,则定时器319到期/被触发,这也导致监视模块316采取一个或多个安全性措施,其包括持有该内核作为“人质”,和/或使内核320或SoC IC 302重新启动/重新初始化。

在上面的任何示例性操作中,除非遵守监视模块316的要求,否则内核320不会自身来停止或者重置定时器319,或者使定时器319被重置。也就是说,除非内核320允许安全性监视模块316正常地启动和/或操作,否则监视模块316可以将内核320或SoC IC 302的启动和/或操作干预到任何期望的水平,其包括强制内核320或SoC IC 302进行完全地重新初始化/重新启动。

在图3的实施例中,如果内核320以及时地方式向监视模块316提供适当的代码/请求的信息,则监视模块316针对某一时间间隔对定时器319进行重置,监视模块316可以按照该时间间隔的时间来监视、检查或测试内核320的状态。内核320的状态的这种监视可以是源自于:监视模块316按照预定的时间从内核320接收自动消息;监视模块316按照预定的时间来关闭并随后重新启动,以检查内核320的状态;监视模块316向内核320发送查询,并从内核320接收适当的和及时的响应;监视模块316进行检查或测试,以查看自从启动或自从上一次检查/测试以来,操作内核320的代码是否已经发生改变;或者对内核320的状态或SoC IC 302的任何其它部分(其包括内核320)的安全性进行验证或测试的任何其它期望的方式。

如果对内核320的状态的测试/监视的结果是令人满意的或积极的(例如,即,内核320的状态没有以未被授权的方式发生改变),则监视模块316针对某个时间间隔(其与上面所提及的第一时间间隔可以相同也可以不同,和/或其可以是随机选择的时间间隔),对定时器319进行重置,以便再次对内核320和/或SoC IC 302的其它组件进行监视/检查/测试。如果对内核320的测试/监视的结果不是令人满意的/负面的(即,该状态已经以某种非期望或者未被授权的方式被改变,或者内核320没有以及时地方式提供所请求的数据),则监视模块316可以干预内核320或SoC IC 302的初始化/启动,或者干预内核320或SoC IC 302的正在进行的操作。

在一些实施例中,监视模块316可以实现计数器317,以确定在定时器319时间间隔之前何时检查内核320,无论是在初始化/启动时还是在正在进行操作期间。例如,可以针对定时器319时间间隔的某个百分比的时间周期,例如,定时器319时间间隔的80%,来设置计数器317。当计数器317到达定时器319的触发或者到期之前的适当时间时,计数器317使监视模块316苏醒和/或执行对内核320的状态的检查或测试。对状态的这种测试或检查可以是通过使监视模块316向内核320发送查询,使监视模块316寻找来自内核320(或者来自某个其它位置)的自动消息,或者通过某种其它期望的方法或手段。因此,不管定时器319的时间间隔怎样,不管该时间间隔是随机地改变还是根据设计进行改变,监视模块316的这些实施例都可以在定时器319触发或到期之前接收标志或触发,或者可以苏醒以检查/测试内核320的状态。在其它实施例中,可以不实现单独的计数器317,而在其它实施例中,计数器317可以是额外的定时器。

监视模块316对于内核320的初始化/启动和/或操作的干预,可以是在定时器319到期的任何实例处,重新启动内核320或者SoC IC 302的自动和/或硬连接指令。在这些实施例中,OEM制造商、终端用户或者第三方通过阻止对监视模块316的初始化/启动来规避监视模块316的任何尝试,导致内核320和/或SoC IC 302持续地重新初始化/重新启动,直到监视模块316正常地启动和运行为止。

类似地,在初始化/启动或操作期间以非期望方式来改变内核320的任何尝试(例如,通过插入恶意软件),也致使监视模块316重新启动内核320和/或SoC IC 302,帮助移除或者阻止向内核320(或者从内核320到监视模块316)的对非期望的恶意软件的安装。用此方式,本文的系统200/300自身为SoC IC 202/302提供健壮的安全性,而不依赖于外部系统或者组件(例如,通过远程计算机系统进行监视),同时将用于安全性特征的功率消耗和/或物理SoC IC 202/302芯片面积减到最小。

在其它实现中,与对内核320或者SoC IC 302的自动重启相比,监视模块316对于内核320的启动和/或操作的干预可能是更复杂的,并可以基于任何期望的策略、操作参数、安全性状态等等进行变化。例如,在企业设置中,当PCD是向企业的员工发放的多个PCD之一时,可能期望在内核320存在问题时,根据监视模块316在内核320中检测到的问题的类型,来仅仅限制内核320或者SoC IC 302的其它组件的某个功能。例如,在这些实现中,如果监视模块316检测到不具有适当的数字版权管理(DRM)的媒体内容在尝试使用内核320在该PCD上进行播放时,不是在定时器319被触发之后重启内核320,而是监视模块316可以简单地禁用和/或阻止内核320访问视频编码器334。

继续该例子,如果监视模块316检测到内核320具有某些类型的预先规定的问题时,企业可能期望其PCD用户仍然能够访问电子邮件和/或具有拨打电话的能力。如图3中所示,在该实现中,如果定时器319被触发或者到期,则监视模块316可以不使内核320重新初始化/重新启动,而是除了拨打或者接收蜂窝呼叫或读取电子邮件之外,禁用和/或阻止内核320和/或其它内核访问诸如USB控制器340、网络卡314、调制解调器设备/RF收发机368、视频编码器334和/或SoC IC 302或PCD的其它组件之类的各个组件。

因此,除了或者替代于使内核320进行重启之外,在定时器319到期时,监视模块316可以采取或者造成任何期望的动作。监视模块316可以采取的这些动作包括但不限于:阻止内核320和/或终端用户访问存储在PCD上的某些材料、文件或数据,比如照片、电子邮件、文本消息、企业密码或密钥;禁用或阻止内核320访问SoC IC 302和/或PCD的各个组件(其包括诸如调制解调器、WiFi或蓝牙连接之类的通信外围设备、诸如加速计之类的传感器、或者GPS接收机);使CPU 110或者该CPU 110的部分/内核120、122、124运行减速;使导致不理想的电池寿命的电池管理结束;保持致使定时器319触发的事件的日志条目,和/或向远程服务器或网站(例如,企业服务器)报告这些日志条目;向终端用户发送警告,比如终端用户必须进行响应的弹出框/告警;和/或向内核320要求某些组件或者从内核320取得对某些组件的控制,诸如,照相机148(参见图1),以用于人脸识别,或者要求或者控制网络卡314用于直接向远程目的地报告事件。

此外,可以对监视模块316进行配置,使得针对定时器319的触发的响应是分层的。例如,对于由于内核320的某种类型的问题或者与之相关的某种类型的问题而造成的定时器319的到期,监视模块316可以采取一种动作。然而,对于内核320的不同类型的问题或者与之相关的不同类型的问题,监视模块316可以采取不同的和/或更严厉的动作。在一些实施例中,监视模块316的动作(其包括一层的响应)可以取决于任何期望的因素或参数(例如,定时器319到期的次数),或者根据任何期望的因素或参数进行变化。在这些实施例中,响应于定时器319的第一次触发/到期,监视模块316可以采取不太严厉的(或者不采取)动作,而针对于定时器319的第二、第三、第四次等等的后续到期,采取不同的和/或更严厉的动作。

在其它实施例中,监视模块316采取的动作(其包括对内核320的状态的检查/测试之间的时间间隔的长度)或者针对定时器319的触发的响应,可以是基于用于该PCD的策略系统和/或安全性水平或状态的。图4示出了图2和/或图3的系统可以在之下进行操作的一些示例性状态的一个实施例。如图4中所示,在一些实施例中,监视模块216/316可以在针对PCD的一系列安全性水平状态之下操作,或者根据针对PCD的一系列安全性水平状态进行操作。可以根据期望,应用这些安全性水平状态,以便提供针对在启动之后,监视模块216/316何时和如何对内核220/320的正在进行的活动和/或状态进行监视的规则。

在图4所示出的实施例中,可以在确保监视模块216/316的适当操作的成功初始化/启动之后,在监视模块216/316之中或者由监视模块216/316实现这些安全性水平状态。在各个实施例中,可以由PCD的终端用户、向终端用户发放该PCD的企业的IT部门、或者由制造商,基于设备的类型/该设备将置于的用途,来设置或者选择这些安全性水平状态。另外,可以根据期望,对这些示例性安全性水平状态进行改变,其包括自动地响应任何期望的参数、事件或因素(包括定时器219/319的触发或者到期)。

图4示出了四种示例性安全性水平状态,其中的第一安全性水平状态是最低安全性状态405。该状态提供图4中所示出的状态的最低安全性。最低安全性状态405可以包括用于定时器219/319的更长时间间隔,其导致监视模块216/316对于内核220/320的检查或测试之间具有更长的时间间隔。另外,如果定时器219/319到期,则最低安全性状态405会导致监视模块216/316采取不太严厉的动作。

例如,在一个实施例中,监视模块216/316可能关于定时器219/319的第一次到期/触发,根本不采取任何动作,而是在定时器219/319的第二或者更后续的到期/触发之后,才采取动作。在一些实现中,监视模块216/316可以通过任何期望的手段,保持对于定时器219/319的多次触发的数量/类型/定时等等的跟踪,例如,通过将这些事件记录在存储器中,或者使用计数器(例如,图3的监视模块316的计数器317)来跟踪这些事件。另外,在定时器219/319触发的情况下,最低安全性状态405会使得监视模块216/316采取破坏性程度最低的动作。在一些实施例中,该动作可以包括:将事件日志记录为文件(无论是本地还是远程地),和/或向PCD的终端用户显示消息。

另一种示例性安全性水平状态可以是如图4中所示的DRM状态410。在一些实施例中,每当视频编码器134(参见图1)或者SoC IC 202/303或PCD的其它组件确定:媒体文件(例如,音频文件或视频文件)正在该PCD上播放或显示,或者将要在该PCD上播放/显示时,就可以实现该DRM状态410。在其它实施例中,每当定时器219/319触发,并且监视模块216/316确定媒体文件正在播放/显示,或者确定显示/播放该媒体文件导致定时器219/319触发时,就可以实现该DRM状态410。

在图4所示出的DRM状态410中,定时器219/319操作在中等长度时间间隔,但也可以操作在任何期望的长度。另外,在所示出的DRM状态410中,当定时器219/319到期并且PCD尝试播放媒体时,监视模块216/316才采取动作。在一些实施例中,该媒体可能不具有适当的DRM保护,或者终端用户可能尝试使用PCD来克服或避免该媒体上的DRM保护。在这些实施例中,监视模块316可以采取动作,以阻止音频编码器或视觉编码器334中的一个或多个被内核(例如,内核320(参见图3))进行任何操作。在其它实施例中,监视模块316可以仅仅针对于选定的媒体文件和/或选定类型的媒体文件,才采取动作来阻止音频编码器或视觉编码器334中的一个或多个被内核(例如,内核320(参见图3))操作。

如图4中所示,在各个实施例中,其它增加级别的安全性状态也是可能的。例如,图4示出了中等安全性状态415,与先前所讨论的最低安全性状态405相比,中等安全性状态415可以被设计或者配置为提供更健壮的安全性和/或使得监视模块216/316能够进行更具侵入性的动作。该示例性中等安全性状态415提供了中等定时器219/319时间间隔长度,但也可以实现任何期望的时间间隔长度。

另外,在图4的中等安全性状态415中,无论何时定时器219/319到期,监视模块216/316都采取动作。例如,响应于定时器319到期,监视模块316可以禁止内核320访问一个或多个外围设备,比如USB控制器340、网络卡314、调制解调器设备/RF收发机368和/或视频编码器334(参见图3)。

在一些实施例中,定时器319的单次到期可能使得监视模块316禁用针对所有外围设备的访问。在其它实施例中,定时器319的第一次触发或到期可能导致内核320不能够访问USB控制器340(参见图3),而定时器319的第二次或者其它后续触发可能导致内核320不能够访问一个或多个额外的外围设备。在不同的实施例中,每一次定时器319到期时,监视模块316所禁用的外围设备的顺序和/或外围设备的数量,可以根据期望发生变化。

替代地或另外地,在中等安全性状态415的一些实施例中,监视模块316还可以向远程服务器(例如,网站或企业服务器,如果该PCD是企业系统的一部分的话)发送日志或者报告。监视模块316可以通过要求内核320或者SoC IC 302将进行该通信所需的接口/驱动器/等等的控制移交给监视模块316(或者在图2的监视模块216的情况下,移交给监视CPU 217),或者通过任何其它期望的手段,来使得该日志或报告被发送。

最后,图4描绘了第四、最高安全性状态420,其中当期望针对SoC IC 202/303实现甚至更高的安全性时,可以实现最高安全性状态420,如在各个实施例中,由终端用户、企业IT人员所决定的、或者由OEM制造商所预先设置的。在一些实现中,最高安全性状态420可以是针对监视模块216/316的默认设置。最高安全性状态420可以包括或者可以被配置有更短的定时器219/319时间间隔,其使得对内核220/320的状态进行更为频繁的检查或测试。

在各种实现中,响应于定时器219/319的任何触发,处于最高安全性状态420的监视模块216/316可以自动地重新初始化/重新启动内核220/320和/或整个SoC IC 202/303。如同中等安全性状态415,在最高安全性状态420的一些实施例中,监视模块316也可以向远程服务器(例如,网站或企业服务器,如果该PCD是企业系统的一部分的话)发送日志或报告。监视模块316可以通过要求内核320将进行该通信所需的接口/驱动器/等等的控制移交给监视模块316(或者在图2的监视模块216的情况下,移交给监视CPU 217),或者通过任何其它期望的手段,来使得该日志或报告被发送。

应当理解的是,尽管图4只示出了四种不同的安全性水平状态,但其它实施例可以具有更少或者更多的安全性水平状态。类似地,与图4中所示出的那些安全性水平状态相比,各个实施例可以具有不同的和/或不同类型的安全性水平状态。例如,其它实施例可以具有更多、更少或者基于不同事件的安全性水平状态,例如,图4中所示出的DRM状态410。另外,可用于监视模块216/316的安全性水平状态的数量和/或类型可以随时间发生变化。例如,可以由终端用户根据期望,在不同的时间处对安全性水平状态的数量和/或类型进行选择和/或改变,或者可以由企业IT人员在与监视模块216/316进行通信的各个时间处对安全性水平状态的数量和/或类型进行选择和/或改变。此外,替代于或者除了如图4中所示的安全性状态之外,可以根据期望,将不同水平或类型的安全性实现成策略和/或规则集或算法。

转到图5A,该图描绘了用于提高针对PCD中的一个或多个处理器或内核的安全性的方法的示例性实施例的流程图。方法500开始于方框510,其中在方框510处,对监视模块(例如,图2中的监视模块216或者图3中的监视模块316)进行初始化。在一些实施例中,方框510中的初始化可以包括:例如从SoC IC 202/303和/或PCD的完全断电来开始初始化。这种初始化/启动的一个例子是:当PCD或SoC IC 202/302从完全的电池耗尽来开始加电时。在其它实施例中,方框510中的初始化可以替代地包括:从监视模块216/316的临时功率下降中“苏醒”。该“苏醒”的一个例子是:监视模块216/316从仅仅监视模块216/316的省电的空闲或休眠模式中苏醒/加电。

在初始化/苏醒之后,在方框512中,监视模块216/316设置或者检查定时器219/319。在一些实施例中,定时器219/319已经被先前设置好,而在方框512中,监视模块216/316苏醒并检查定时器219/319。在其它实施例中,监视模块216/316在被初始化/启动,并且在方框512中,针对内核220/320对针对监视模块216/316进行初始化/启动所需的任何代码的请求进行响应,或者针对确保监视模块216/316进行适当的初始化/启动所需的任何其它动作,监视模块216/316可以将监视定时器219设置为某个时间间隔,其中内核220/320应当在该时间间隔内提供适当的代码,以允许监视模块216/316进行初始化/启动。

使用图2的系统200作为例子,在方框512中,监视模块216可以请求或者尝试加载监视启动代码225a。方框512的这种请求/加载可以由图2中所示出的监视模块216的监视CPU 217来完成。如上所述,为了使监视模块216的功耗和/或监视模块216所需的SoC 202的芯片面积减到最小,监视模块216的一些实施例可以具有有限的板上或者专用存储器(例如,图2中的监视存储器218)。

在这些实施例中,监视模块216进行完全地初始化/启动所需的代码225a可以位于与监视模块216不同的位置,并且可以被提供给监视模块216以允许其进行初始化/启动。使用图2的示例性系统200作为例子,图2中的存储器223可以是其中存储监视启动代码225a的闪存。当根据方法500,监视模块216开始初始化/启动时,在一些实施例中,在方框512中,内核220的CPU 221可以从存储器223获取启动代码225a,并将启动代码225a传输给监视模块216的CPU 217。

继续上面的例子,作为例如内核220没有迅速地提供监视启动代码225a和/或没有及时地响应来自监视模块216针对监视启动代码225a的请求的结果,方法500在方框516中进行检查,以查看定时器219是否已经到期/触发。如上所述,定时器219可以在监视模块216之内,如图2中所示。在其它实施例中,该定时功能可以由多个组件来执行,和/或由监视模块316之外的一个或多个组件来执行,比如图3中所示出的系统300的内部计数器317和外部定时器319。

方框516的判断可以由一个组件来执行,例如,监视模块216/316(或者监视模块216的CPU 217)评估定时器219/319,以查看其是否由于流逝了所述时间间隔而已经到期/被触发。在其它实施例中,方框516的判断可以是:当由于流逝了所述时间间隔,定时器219/319到期/触发时,定时器219/319自动地发送某种信号或通信的结果。不管如何实现,定时器219/319都不由内核220/320进行重置(或者不被监视模块216/316进行监视的其它处理器或内核进行重置)。

因此,除非内核220/320根据预期或者监视模块216/316的要求进行动作,否则在方框520中接收到数据/启动代码之前,在方法500的方框516中,定时器219/319将到期。如果定时器219/319已经到期,则在方框518中,图5A的方法实现安全性措施。对于监视模块216的初始化的例子而言,安全性措施可以是对SoC 202的自动重新启动/重新初始化,这可以使得方法500重新开始。

在其它实施例中,作为定时器219到期或者触发的结果,可以采取的安全性措施包括但不限于:阻止内核220和/或终端用户访问存储在PCD上的某些材料、文件或数据,比如照片、电子邮件、文本消息、企业密码或密钥;禁用或阻止内核220访问SoC IC 202和/或PCD的各个组件(其包括诸如调制解调器、WiFi或蓝牙连接之类的通信外围设备、诸如加速计之类的传感器、或者GPS接收机);使CPU 110或者该CPU 110的部分/内核120、122、124运行减速;使得导致不理想的电池寿命的电池管理结束;保持使得定时器219触发的事件的日志条目,和/或向远程服务器或网站(例如,企业服务器)报告这些日志条目;向终端用户发送警告,比如终端用户必须进行响应的弹出框/告警;和/或向内核220要求某些组件或者从内核220取得对某些组件的控制,如,照相机148(参见图1),用于人脸识别,或者要求或者控制网络卡314用于直接向远程目的地报告事件。可以将这些安全性措施实现成安全性策略的一部分,和/或包括如上面参照图4所讨论的各种安全性水平。

如果在方框516中,定时器219没有到期,则方法500继续到方框522处,在监视模块216的初始化的例子中,对监视启动代码225a进行验证,以确保监视模块216以允许其对内核220和/或SoC 202的其它组件进行监视的方式,适当地初始化/启动。在各个实施例中,可以使用数字签名、密钥等等来完成该验证,和/或通过监视CPU 217使用存储在监视存储器218中的一个或多个值来检查所提供的监视启动代码225a的数字签名、密钥等等来完成该验证,或者可以通过任何期望的代码验证手段来完成该验证。

如果在方框522中没有适当地验证监视启动代码225(例如,通过提供篡改版本的监视启动代码225a,以尽力规避监视模块216的安全性措施),则在方框518中实现安全性措施,如上所述。应当注意,在一些实施例中,由于在方框522中缺乏数据验证而触发的、在方框518中所实现的实际安全性措施,可以与如果触发事件是方框516中的定时器到期时将会实现的安全性措施不同。在其它实施例中,不管触发事件是怎样,都可以在方框518中实现相同的安全性措施。

如果在方框522中对数据进行了验证,则在方框524中,监视模块216对定时器219进行重置或者禁用。通过在方框524中重置或者禁用定时器219,图5A的方法500的实施例允许内核220和/或SoC 202继续进行操作,而监视模块216可以继续监视SoC 202的一个或多个组件。

例如,在根据方法500来适当地初始化监视模块216/316之后,可以在方框524中,针对预定的时间周期来设置定时器219/319,并且可以将监视模块216/316置于降低功率状态或模式(例如,空闲模式或休眠模式(或者可以关闭)),直到下一个期望的监视事件为止。

在该“苏醒”实施例中,可以在方框510中,唤醒监视模块216/316。可以通过触发(例如,来自于类似图3中的计数器317的计数器的触发)或者通过任何其它期望的手段,来唤醒监视模块216/316。在方法500的“苏醒”实现中,在方框514中从内核220/320请求数据之前,监视模块216/316可以在方框512中,可选地检查先前设置的(或者可以设置)定时器219/319,如先前所讨论的。在一些实施例中,可以在定时器219/319到期之后,在方框510中,唤醒监视模块216/316,使得可以在方框512中,对定时器219/319进行重置。在其它实施例中,可以在定时器219/319如上面所讨论的被设置为到期之前的预定时间处,在方框510中,唤醒监视模块216/316,该预定时间足够允许监视模块216/316在定时器219/319被设置为到期之前,执行所期望的监视操作。

不管在方框512中是否检查定时器219/319,在方框514中,监视模块216/316都向SoC IC 202/302的一个或多个内核220/320请求响应和/或数据。如上面所讨论的,如果在方框516中的定时器到期/被触发之前,在方框520中,没有从内核220/320接收到所请求的响应和/或数据,则在方框518中,监视模块216/316对内核220/320实现一个或多个安全性措施。这些安全性措施可以包括以上面所讨论的任何方式实现的以上所讨论的任何这种措施,其包括根本不采取动作,或者致使SoC IC 202/302进行重新初始化/重新启动。

继续方法500的“苏醒”例子,如果在方框516中的定时器到期/被触发之前,在方框520中,从内核220/320接收到所请求的响应或信息,则在方框522中,监视模块216/316可以可选地验证该数据。但是,在一些实施例中,在安全性的和适当的初始启动之后,可能不期望或者不需要对从内核220/320接收的数据或响应进行验证,如方框522中所示出的。

不管是否在方框522中对该数据进行验证,在该“苏醒”例子中,如果在方框516中的定时器到期/被触发之前,在方框520中,从内核220/320接收到所请求的响应和/或信息,则在方框524中,监视模块216/316禁用定时器219/319,或者将定时器219/319重置为诸如预定的时间间隔,以用于监视模块216/319的下一个监视事件。

如本领域普通技术人员所应当理解的,图5A描述了用于提高PCD中的处理器或内核的安全性的方法的仅仅一种示例性实施例。在其它实施例中,可以向方法500增加额外的方框或步骤。类似地,在一些实施例中,可以对图5A中所示出的各个方框或步骤进行组合或省略,例如,将方框520和522组合成一个接收/验证步骤,而不是图5A中所示出的两个单独的方框/步骤。方法500的这些变型落入本公开内容的保护范围之内。

另外,本说明书所描述的过程或者处理流程(其包括图5A)中的某些步骤,自然地在本发明的其它步骤之前,以在如上所述的实施例中运行。但是,本发明并不限于这些所描述的步骤的顺序,如果这种顺序或者序列并不改变本发明的功能的话,例如,在方框516之前执行方框522。此外,应当认识到,在不脱离本公开内容的保护范围的基础上,一些步骤可以在其它步骤之前执行、之后执行或者并行地执行(基本同时地执行)。在一些实例中,在不脱离本发明的基础上,可以省略或者不执行某些步骤,例如,移除方框512(“苏醒”操作模式下,定时器219/319的第一检查)和/或522(“苏醒”操作模式下,验证所接收的响应/数据)。方法500的这些变型也落入本公开内容的保护范围之内。此外,诸如“其后”、“转而”、“接着”、“随后”等等之类的词语,并不旨在限制这些步骤的顺序。这些词语仅仅用于引导读者通读该示例性方法的描述。

转到图6A,该图示出了描述用于提供针对PCD中的一个或多个处理器或内核的提高的安全性的方法的示例性实现的另外方面的流程图。在图6A所示出的示例性方法600中,在确保对监视模块216/316的适当初始化/启动之后(例如,根据图5A的方法500),方法600在方框610中,对一个或多个内核(例如,内核220(图2)/320(图3A))的状态进行监视。在一些实施例中,方框610的对内核220/320的状态进行监视可以包括:检查内核220/320的状态,例如,通过检查或测试用于内核220/320的代码自从启动以来和/或自从上一次检查/测试以来是否已经发生改变。

监视模块216/316可以执行该检查或测试,例如,通过图2的监视模块216的CPU 217从内核220的CPU 221接收通信。作为如上所述的安全性措施、策略或状态的一部分,可以由内核220发起来自内核220的该通信。在一些实施例中,该通信可以是内核220针对来自监视模块216的请求或者要求的响应。在这些实施例中,从内核220传输的信息可以包括数字签名、密钥或者其它令牌,据此或者根据此可以判断用于内核220的代码是否已经从内核220的先前版本发生了改变。

在其它实施例中,在方框610中监视内核220/320的状态还可以包括:监测内核220/320的动作,例如,接收关于内核220/320正在执行或者将要执行的活动的信息。该实施例的一个例子可以是来自于上面对图3A和图4的讨论,其中,内核220/320可以正在操作视频编码器334,或者使得另一个处理器(例如,GPU)操作视频编码器334。在该实现中,对内核220/320的状态的监视可以包括:注意对视频编码器334的操作或者用于操作视频编码器334的尝试、以及要在视频编码器334上播放的媒体的数量、类型、细节等等(例如,是否在观察DRM保护)。

同样,继续上面针对图3和图4所讨论的视频编码器334上的媒体播放的例子,在一些实施例中,监视模块316可以执行320对视频编码器334的操作的状态的检查或者测试。可以通过图3的监视模块316从内核320接收通信,来完成该状态的该监视或者检查。如上面所讨论的,作为安全性规则、策略或者状态的一部分,可以由内核320来发起来自该内核320的该通信。替代地,在一些实施例中,该通信可以是内核320针对来自监视模块316的请求或者要求的响应。该通信中的信息可以是由监视模块316所期望的或所请求的任何信息,该信息允许判断内核320是否在根据安全性策略进行操作和/或在以监视模块320所预期的方式进行操作。

在其它实施例中,在方框610中监视内核220/320的状态可以包括:注意是否允许监视模块216/316与其它组件进行通信。该实施例的一个例子是:是否允许监视模块216/316与远程计算机进行通信,例如,企业服务器向监视模块216/316传输定期调度的更新,和/或监视模块216/316针对规则、策略和/或安全性水平状态更新来查询远程计算机/企业服务器。在该实现中,监视内核220/320的状态可以包括:注意内核220/320是否允许该通信,和/或让渡为了监视模块216/316来实施该通信和/或接收从远程计算机发起或者发送的通信而对所必要的SoC IC 202/302组件的控制。

根据该PCD所置于的用途、终端用户的期望和/或授权的第三方(例如,该PCD作为其一部分的企业系统)的期望,在一些实现中,方框610的具体监视可以发生改变。例如,当方法600执行方框610的第一监视/测试时,第一安全性策略或者安全性水平状态(例如,图4中所示出的状态中的一个状态)可能是适合的,其使得以特定的方式和/或具有关于内核220/320的特定信息,来执行第一监视/测试。但是,在方法600第二次执行方框610的监视时,第二安全性策略或安全性水平状态(例如,图4中所示出的状态中的不同的一个状态)可能是适合的,其使得以与第一监视不同的方式和/或与第一监视相比具有关于内核220/320的不同信息,来执行第二监视。

随后,在方框612中,示例性方法600判断内核320的状态是否已经发生改变。方框612中的判断可以是取决于监视的类型和/或执行方框610的监视的方式。使用方框610的监视内核220的状态的例子包括:监视自从启动以来,用于内核220的代码的改变,方框612中的判断可以是:监视模块216的CPU 217将接收的数字签名、密钥、令牌等等与监视存储器218中存储的值进行比较,以判断内核220代码是否已经发生改变。

不管在方框612中如何进行该判断,如果该判断是内核220/320在适当地操作(例如,没有被篡改,该状态自从启动以来发生改变),则在方框614中将定时器219/319针对某个时间间隔进行重置,并且方法600回到方框610,以继续监视内核220/320的状态。当内核220/320在适当地操作和/或运行适当的代码时,通过重置定时器219/319,而不是允许定时器219/319触发/到期,方法600防止实现针对内核220/320的安全性措施(例如,重新初始化/重新启动内核220/320或者SoC IC 202/302)。

如上面所讨论的,定时器219/319不由内核220/320或者SoC IC 202/302的其它组件进行重置,而是仅仅可以由监视模块216/316进行重置。另外,并不需要始终将定时器219/319都重置为固定的时间间隔。在一些实施例中,定时器219/319被重置的时间间隔可以发生改变,并且在一些实现中,其可以是随机的。当该时间间隔改变时,该时间间隔的长度可以是基于所期望的任何因素或者考虑的,其包括安全性策略和/或安全性水平状态(例如,图4中所示出的安全性水平状态)。

此外,对于一些实现而言(例如,图2中所示出的系统200),重置定时功能还可以包括以下二者:对定时器219进行重置,以及对监视模块216的内部计数器217进行重置。如上面所讨论的,实现和重置该内部计数器217,可以允许方法600确保监视模块216/316被唤醒,和/或在定时器219/319的到期/触发之前,充分地执行方框610处的对内核220/320的状态的下一次监视,以使得该监视可用于方法600。

如果在方框612中的判断是内核220/320没有在适当地操作(例如,其已经被不适当地篡改或者自从启动以来发生改变),则在方框616中,图6A的方法600判断定时器219/319是否已经到期。方框616的判断可以由组件来做出,例如,监视模块216/316(或者监视模块216的CPU 217)对定时器219/319进行评估,以查看其是否由于所述时间间隔的流逝而已经到期/触发。在其它实施例中,方框616的判断可以是:当定时器219/319由于所述时间间隔的流逝而到期/触发时,定时器219/319自动地发送某个信号或通信的结果。

如图6A中所示,不管如何做出判断,如果方框616中的判断是定时器219/319没有到期,则方法600返回到方框610,并对内核220/320进行监视。另外,在一些实现中,不是立即从方框616返回到方框610来连续地监视内核220/320状态,而是方法600可以替代地在方框616中,使得监视模块216/316在指定的时间段内断电或者进入休眠模式或空闲模式,以减少功耗。在这些实施例中,返回到该方法的方框610可以包括:类似于上面对图5A的“苏醒”模式的讨论,在方框610中唤醒监视模块216/316。

应当注意,在一些实施例中(例如,图2的具有监视模块216中的计数器217的系统200),计数器217的时间间隔可以确保:就在定时器219被设置为到期/触发之前,发生方法600的方框610的监视。在这些实现中,在方框612中确定内核220的状态已经发生改变之后,该方法还能够在方框616中,立即做出定时器219已经到期的确定。

在其它实现中,即使方框612的判断结果是220/320的状态已经发生改变,方框616处的判断也可以是定时器219/319没有到期,使得该方法返回到在方框610处,监视内核220/320的状态。用此方式,在一些实施例中,在定时器219/319到期之前,可能发生一个以上的监视“循环”。在方法600的这些实施例中,有可能在定时器219/319到期和内核220/320重新启动之前(或者在实现某个其它安全性措施之前),“治愈”方框612中确定的内核220/320中的和/或内核220/320的操作中的缺陷。

另一方面,如果方框616中的判断结果是定时器219/319已经到期或者触发,则在方框618中,方法600检查安全性措施。作为定时器219/319到期或者触发的结果而可以采取的安全性措施包括但不限于:阻止内核220/320和/或终端用户访问存储在PCD上的某些材料、文件或数据,比如照片、电子邮件、文本消息、企业密码或密钥;禁用或阻止内核220/320访问SoC IC 202/302和/或PCD的各个组件(其包括诸如调制解调器、WiFi或蓝牙连接之类的通信外围设备、诸如加速计之类的传感器、或者GPS接收机);使CPU 110或者该CPU 110的部分/内核120、122、124运行减速;使导致不理想的电池寿命的电池管理结束;保持致使定时器219/319触发的事件的日志条目,和/或向远程服务器或网站(例如,企业服务器)报告这些日志条目;向终端用户发送警告,比如终端用户必须进行响应的弹出框/告警;和/或向内核220/320要求某些组件或者从内核220/320取得对某些组件的控制,如,照相机148(参见图1),以用于人脸识别,或者要求或者控制网络卡314用于直接向远程目的地报告事件。

此外,在方框618中检查安全性措施还可以包括:检查在该环境下,哪些安全性措施是可用的。在一些实施例中,可用的安全性措施可以取决于任何期望的因素或参数。例如,如上面所讨论的,由于内核220/320的某种类型的失败/问题所造成的定时器219/319的到期或者触发,可能需要一种类型的安全性措施。另一方面,内核220/320的不同类型的失败/问题,可能需要不同类型的安全性措施和/或更严厉的安全性措施。另外,可用的安全性措施可以取决于定时器219/319被触发的次数,或者根据定时器219/319被触发的次数进行改变。在这些实施例中,响应于定时器219/319的第一次到期或者触发,第一、不太严厉(或者无)安全性措施是可用的,而不同的和/或更严厉的安全性措施可用于定时器219/319的第二、第三、第四次等等的后续到期或者触发。

此外,在一些实施例中,在方框618中检查安全性措施还可以包括:检查可用于有效的任何适用的安全性策略和/或安全性水平或状态的安全性措施,或者对于有效的任何适用的安全性策略和/或安全性水平或状态而言所需的安全性措施;应当记住的是,这些安全性策略、水平、状态可能随时间发生变化或改变。例如,在这些实施例中,各种安全性水平状态(例如,图4中所示出的那些)可能是适合用于PCD的。因此,在方框618中检查安全性措施还可以包括:确定在那时和在定时器219/319触发或到期的环境下,哪些安全性措施是通过有效的安全性水平状态(如果有的话)可用的和/或被有效的安全性水平状态所强制执行的。

如图6A中所示,在方框620中,方法600判断该安全性措施是否需要内核220/320和/或SoC IC 202/302的重新初始化/重新启动。如果需要该重新启动,则方法600通过以下方式来结束:在方框624中,对内核220/320(和/或根据期望的SoC IC 202/302)进行重新初始化,并且返回到图5A的方法500的起始处来开始内核220/320(和/或SoC IC 202/302)初始化/启动过程。

另一方面,如果不需要这种重新启动,则方法600在方框622中,实现所需要的安全性措施,返回到上面所讨论的方框614,其中,对定时器219/319进行重置,并且返回到上面的方框610,其中,对内核220/320的状态进行监视,无论是连续地还是间歇地(例如,使用如上所述的休眠模式或空闲模式)。

如本领域普通技术人员所应当理解的,图6A描述了用于提高PCD中的处理器或内核的安全性的方法的仅仅一种示例性实施例。在其它实施例中,可以向图6A中所示出的方法600增加额外的方框或步骤。类似地,在一些实施例中,可以对图6A中所示出的各个方框或步骤进行组合或省略,例如,将方框618和620组合成一个检查/判断步骤,而不是图6A中所示出的两个单独的方框/步骤。方法600的这些变型也落入本公开内容的保护范围之内。

另外,本说明书所描述的过程或者处理流程(其包括图6A)中的某些步骤,可以自然地在本发明的其它步骤之前,以在如上所述的实施例中运行。但是,本公开内容并不限于这些所描述的步骤的顺序,如果该顺序或者序列并不改变本发明的功能的话。此外,应当认识到,在不脱离本公开内容的保护范围的基础上,一些步骤可以在其它步骤之前执行、之后执行或者并行地执行(基本同时地执行)。在一些实例中,在不脱离本发明的基础上,可以省略或者不执行某些步骤。方法600的这些变型也落入本公开内容的保护范围之内。此外,诸如“其后”、“转而”、“接着”、“随后”等等之类的词语,并不旨在限制这些步骤的顺序。这些词语只是用于引导读者通读该示例性方法的描述。

上面针对于方法500和600二者所描述的各种操作、方法或功能,可以由各种硬件和/或软件组件/模块来执行。这些组件和/或模块可以提供用于执行各种所描述的操作、方法或功能的手段。通常,在具有相应配对的手段加功能附图的附图中示出有方法的地方,这些操作框与具有类似编号的手段加功能框相对应。例如,图5A中所示出的方框510-524与图5B中所示出的手段加功能框510’-524’相对应。类似地,图6A中所示出的方框610-624与图6B中所示出的手段加功能框610’-624’相对应。

另外,编程领域中的普通技术人员能够编写计算机代码或者识别适当的硬件和/或电路,以便例如基于本说明书中的流程图和相关联的描述,没有困难地实现所公开的发明。因此,对于充分地理解如何利用和使用本发明来说,并不认为是必需要公开特定的程序代码指令集或者详细的硬件设备。在上面的描述中,并结合用于描绘各个处理流程的附图,更为详细地解释所主张的处理器实现的过程的创造性功能。

在如上面所指示的一个或多个示例性方面中,本文所描述功能可以用硬件、软件、固件或它们任意组合的方式来实现。当在软件中实现时,可以将这些功能存储在计算机可读介质(例如,非临时性处理器可读介质)上,或者作为计算机可读介质上的一个或多个指令或代码来进行传输。计算机可读介质包括数据存储介质和通信介质二者,其中通信介质包括便于从一个位置向另一个位置传送程序的任何介质。

存储介质可以是计算机或者处理器能够存取的任何可用介质。举例而言但并非做出限制,这种计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或者其它光盘存储器、磁盘存储器或其它磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机进行存取的任何其它介质。如本文所使用的,磁盘和光盘包括压缩光盘(“CD”)、激光盘、光盘、数字通用光盘(“DVD”)、软盘和蓝光盘,其中磁盘通常磁性地复制数据,而光盘则用激光来光学地复制数据。上述的组合也应当包括在非临时性计算机可读介质的保护范围之内。

尽管详细地描绘和描述了选定的方面,但应当理解的是,可以在不脱离如所附权利要求书所界定的本发明的基础上,对本文做出各种替代和改变。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1