監(jiān)測(cè)移動(dòng)多處理器平臺(tái)中的行為特征的制作方法
【專利摘要】用于監(jiān)測(cè)移動(dòng)計(jì)算設(shè)備的行為的方法、設(shè)備和系統(tǒng)包括:在非主處理內(nèi)核中觀測(cè)移動(dòng)設(shè)備行為中與該非主處理內(nèi)核有關(guān)的一部分;生成描述所觀測(cè)到的移動(dòng)設(shè)備行為的一部分的行為標(biāo)簽;以及將所生成的行為標(biāo)簽發(fā)送給主處理內(nèi)核。該主處理內(nèi)核將從非主處理內(nèi)核接收的兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合以生成全局行為向量,該全局行為向量可以由分析器模塊使用以確定分布式軟件應(yīng)用是良性的還是非良性的。
【專利說明】監(jiān)測(cè)移動(dòng)多處理器平臺(tái)中的行為特征
[0001] 相關(guān)申請(qǐng)
[0002] 本申請(qǐng)要求享受于2012年5月14日提交的、題目為"System, Apparatus and Method for Adaptive Observation of Mobile Device Behavior" 的美國(guó)臨時(shí)專利申 請(qǐng) No. 61/646, 590 以及于 2012 年8 月 15 日提交的、題目為 "System, Apparatus and Method for Adaptive Observation of Mobile Device Behavior" 的美國(guó)臨時(shí)專利申請(qǐng) 61/683, 274的優(yōu)先權(quán)的權(quán)益,故出于所有的目的以引用方式將這兩個(gè)臨時(shí)申請(qǐng)的全部?jī)?nèi)容 并入本申請(qǐng)。
【背景技術(shù)】
[0003] 在過去的若干年里,蜂窩和無(wú)線通信技術(shù)已爆炸性增長(zhǎng)。這種增長(zhǎng)由更好的通信、 硬件、更大的網(wǎng)絡(luò)、以及更可靠的協(xié)議來推動(dòng)。無(wú)線服務(wù)提供商現(xiàn)在能夠向其客戶提供不斷 擴(kuò)展的一系列特征和服務(wù),并向用戶提供對(duì)信息、資源以及通信的前所未有的接入水平。為 了與這些服務(wù)增強(qiáng)俱進(jìn),移動(dòng)電子設(shè)備(例如,蜂窩電話、平板電腦、膝上型電腦等)已經(jīng)變 得比以往更強(qiáng)大和復(fù)雜,并且現(xiàn)在通常包括多個(gè)處理器、片上系統(tǒng)(SoC)、以及允許移動(dòng)設(shè) 備用戶在其移動(dòng)設(shè)備上執(zhí)行復(fù)雜和功率密集型軟件應(yīng)用(例如,視頻流傳送、視頻處理等) 的其它資源。該復(fù)雜性已經(jīng)為惡意軟件、軟件沖突、硬件錯(cuò)誤、以及其它類似的錯(cuò)誤或現(xiàn)象 不利地影響移動(dòng)設(shè)備的長(zhǎng)期以及持續(xù)的性能和功率利用水平創(chuàng)造了新的機(jī)會(huì)。因此,用于 對(duì)可能不利地影響移動(dòng)設(shè)備的長(zhǎng)期以及持續(xù)的性能和功率利用水平的條件和/或移動(dòng)設(shè) 備行為進(jìn)行識(shí)別和校正的新的及改進(jìn)的解決方案對(duì)用戶而言將是有益的。
【發(fā)明內(nèi)容】
[0004] 各個(gè)方面包括一種通過以下操作來監(jiān)測(cè)移動(dòng)計(jì)算設(shè)備的行為的方法:在非主處理 內(nèi)核中觀測(cè)移動(dòng)設(shè)備行為中與該非主處理內(nèi)核有關(guān)的一部分;在所述非主處理內(nèi)核中生成 對(duì)所觀測(cè)到的所述移動(dòng)設(shè)備行為的一部分進(jìn)行描述的行為標(biāo)簽;將所生成的行為標(biāo)簽發(fā)送 給主處理內(nèi)核;在所述主處理內(nèi)核中將從非主處理內(nèi)核接收的兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行 組合以生成全局行為向量;以及將所述全局行為向量提供給分析器模塊以進(jìn)行處理。
[0005] 在一方面,由分析器模塊進(jìn)行的處理可以包括基于所生成的行為向量來確定軟件 應(yīng)用良性還是非良性。在另外的方面,該方法可以包括在所述主內(nèi)核中生成任務(wù)圖,并且在 所述主處理內(nèi)核中將兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合以生成全局行為向量可以包括基于 所生成的任務(wù)圖將所述兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合。在另外的方面,該方法可以包括 在所述主處理內(nèi)核中監(jiān)測(cè)單個(gè)應(yīng)用的子任務(wù)到一個(gè)或多個(gè)非主內(nèi)核的分配。在另外的方 面,監(jiān)測(cè)子任務(wù)的所述分配可以包括監(jiān)測(cè)對(duì)所述移動(dòng)設(shè)備的傳輸層的調(diào)用。
[0006] 另外的方面可以包括一種計(jì)算設(shè)備,其具有存儲(chǔ)器、主處理器以及耦合到所述存 儲(chǔ)器的一個(gè)或多個(gè)非主處理器。所述一個(gè)或多個(gè)非主處理器中的每一個(gè)配置具有用以執(zhí)行 操作的處理器可執(zhí)行指令,所述操作可以包括:在非主處理內(nèi)核中觀測(cè)移動(dòng)設(shè)備行為中與 該非主處理內(nèi)核有關(guān)的一部分;在所述非主處理內(nèi)核中生成對(duì)所觀測(cè)到的所述移動(dòng)設(shè)備行 為的一部分進(jìn)行描述的行為標(biāo)簽;以及將所生成的行為標(biāo)簽發(fā)送給主處理器。所述主處理 器可以配置具有用于執(zhí)行操作的處理器可執(zhí)行指令,所述操作可以包括:在所述主處理內(nèi) 核中將從非主處理內(nèi)核接收的兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合以生成全局行為向量;以及 將所述全局行為向量提供給分析器模塊以進(jìn)行處理。
[0007] 在一方面,所述主處理器可以配置具有用以執(zhí)行還包括以下操作的處理器可執(zhí)行 指令:基于在所述分析器模塊中所生成的行為向量來確定軟件應(yīng)用良性的還是非良性的。 在另外的方面,所述主處理器可以配置具有用于執(zhí)行還包括生成任務(wù)圖的操作的處理器可 執(zhí)行指令,并且所述主處理器可以配置具有處理器可執(zhí)行指令,使得將兩個(gè)或更多個(gè)行為 標(biāo)簽進(jìn)行組合以生成全局行為向量包括基于所生成的任務(wù)圖將兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn) 行組合的處理器可執(zhí)行指令。
[0008] 在另外的方面,所述主處理器可以配置具有用于執(zhí)行還包括以下操作的處理器可 執(zhí)行指令:監(jiān)測(cè)單個(gè)應(yīng)用的子任務(wù)到所述非主處理器的分配。在另外的方面,所述主處理器 可以配置具有使得監(jiān)測(cè)子任務(wù)的所述分配可以包括監(jiān)測(cè)對(duì)所述移動(dòng)設(shè)備的傳輸層的調(diào)用 的處理器可執(zhí)行指令。
[0009] 另外的方面可以包括一種計(jì)算設(shè)備,該計(jì)算設(shè)備具有多個(gè)異構(gòu)內(nèi)核、以及用于在 非主處理內(nèi)核中觀測(cè)移動(dòng)設(shè)備行為中與所述非主處理內(nèi)核有關(guān)的一部分的單元;用于在所 述非主處理內(nèi)核中生成對(duì)所觀測(cè)到的所述移動(dòng)設(shè)備行為的一部分進(jìn)行描述的行為標(biāo)簽的 單元;用于將所生成的行為標(biāo)簽發(fā)送給主處理內(nèi)核的單元;用于在所述主處理內(nèi)核中將從 非主處理內(nèi)核接收的兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合以生成全局行為向量的單元;以及用 于將所述全局行為向量提供給分析器模塊以進(jìn)行處理的單元。在一方面,用于在所述分析 器模塊中基于所生成的行為向量來確定軟件應(yīng)用良性還是非良性的單元。
[0010] 在另外的方面,所述計(jì)算設(shè)備可以包括用于在所述主處理內(nèi)核中生成任務(wù)圖的單 元,并且用于在所述主處理內(nèi)核中將兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合以生成全局行為向量 的單元包括用于基于所生成的任務(wù)圖將所述兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合的單元。在另 外的方面,所述計(jì)算設(shè)備可以包括用于在所述主處理內(nèi)核中監(jiān)測(cè)單個(gè)應(yīng)用的子任務(wù)到一個(gè) 或多個(gè)非主內(nèi)核的分配的單元。在另外的方面,用于監(jiān)測(cè)子任務(wù)的所述分配的單元可以包 括用于監(jiān)測(cè)對(duì)所述移動(dòng)設(shè)備的傳輸層的調(diào)用的單元。
[0011] 另外的方面包括一種非暫時(shí)性服務(wù)器可讀存儲(chǔ)介質(zhì),其具有存儲(chǔ)在其上的處理器 可執(zhí)行指令,所述指令配置成使(例如,移動(dòng)計(jì)算設(shè)備的)異構(gòu)多處理器系統(tǒng)執(zhí)行各種操 作,所述操作包括:在非主處理器中觀測(cè)移動(dòng)設(shè)備行為中與所述非主處理器有關(guān)的一部分; 在所述非主處理內(nèi)核中生成對(duì)所觀測(cè)到的所述移動(dòng)設(shè)備行為的一部分進(jìn)行描述的行為標(biāo) 簽;將所生成的行為標(biāo)簽發(fā)送給主處理內(nèi)核;在所述主處理內(nèi)核中將從非主處理內(nèi)核接收 的兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合以生成全局行為向量;以及將所述全局行為向量提供給 分析器模塊以進(jìn)行處理。在一方面,所存儲(chǔ)的處理器可執(zhí)行軟件指令可以配置成使處理器 執(zhí)行還包括以下操作:由所述分析器模塊對(duì)所述全局行為向量進(jìn)行處理,以基于所生成的 行為向量來確定軟件應(yīng)用良性還是非良性。
[0012] 在另外的方面,所存儲(chǔ)的處理器可執(zhí)行軟件指令可以配置成使處理器執(zhí)行包括在 主內(nèi)核中生成任務(wù)圖的操作,并且其中所存儲(chǔ)的處理器可執(zhí)行軟件指令可以配置成使處理 器執(zhí)行操作,以使得在所述主處理內(nèi)核中將兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合以生成全局行 為向量可以包括基于所生成的任務(wù)圖將兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合。在另外的方面, 所存儲(chǔ)的處理器可執(zhí)行軟件指令可以配置成使處理器執(zhí)行操作包括:在所述主處理內(nèi)核中 監(jiān)測(cè)單個(gè)應(yīng)用的子任務(wù)到一個(gè)或多個(gè)非主內(nèi)核的分配。在另外的方面,所存儲(chǔ)的處理器可 執(zhí)行軟件指令可以配置成使處理器執(zhí)行使得監(jiān)測(cè)子任務(wù)的所述分配可以包括監(jiān)測(cè)對(duì)所述 移動(dòng)設(shè)備的傳輸層的調(diào)用的操作。
【專利附圖】
【附圖說明】
[0013] 附圖示出了本發(fā)明的示例性方面,其被并入本申請(qǐng)中并構(gòu)成該說明書的一部分, 且其與上文給出的一般性描述以及下文給出的詳細(xì)描述一起用于解釋本發(fā)明的特征。
[0014] 圖1是適合于實(shí)現(xiàn)各個(gè)方面的示例性片上系統(tǒng)的架構(gòu)圖。
[0015] 圖2是適合于實(shí)現(xiàn)各個(gè)方面的示例性多核處理器的架構(gòu)圖。
[0016] 圖3是根據(jù)各個(gè)方面示出了配置成在異構(gòu)平臺(tái)中執(zhí)行動(dòng)態(tài)及自適應(yīng)觀測(cè)的計(jì)算 系統(tǒng)中的示例性邏輯組件和信息流的框圖。
[0017] 圖3是根據(jù)各個(gè)方面示出了配置成在異構(gòu)平臺(tái)中執(zhí)行動(dòng)態(tài)及自適應(yīng)觀測(cè)的計(jì)算 系統(tǒng)中的示例性邏輯組件和信息流的框圖。
[0018] 圖4是根據(jù)各個(gè)方面,表征分布在多個(gè)異構(gòu)處理內(nèi)核的軟件應(yīng)用的行為并且適合 于在組合局部行為標(biāo)簽時(shí)使用的應(yīng)用任務(wù)圖的圖示。
[0019] 圖5是根據(jù)各個(gè)方面,表征分布在多個(gè)異構(gòu)處理內(nèi)核的軟件應(yīng)用的完整行為并且 適合于在組合局部行為標(biāo)簽時(shí)使用的應(yīng)用任務(wù)圖的另一圖示。
[0020] 圖6是示出在一個(gè)方面的具有主內(nèi)核和兩個(gè)輔內(nèi)核的異構(gòu)多處理器系統(tǒng)中的示 例性邏輯組件和信息流的框圖。
[0021] 圖7是根據(jù)一個(gè)方面示出了配置成執(zhí)行動(dòng)態(tài)和自適應(yīng)觀測(cè)的計(jì)算系統(tǒng)的觀測(cè)器 模塊中的示例性邏輯組件和信息流的框圖。
[0022] 圖8是示出了在實(shí)現(xiàn)一方面的觀測(cè)器守護(hù)進(jìn)程的計(jì)算系統(tǒng)中的邏輯組件和信息 流的框圖。
[0023] 圖9是示出了用于在移動(dòng)設(shè)備上執(zhí)行自適應(yīng)觀測(cè)的方法的一方面的過程流圖。
[0024] 圖10是示出了用于在具有多個(gè)異構(gòu)處理內(nèi)核的移動(dòng)設(shè)備上執(zhí)行自適應(yīng)觀測(cè)的方 法的一方面的過程流圖。
[0025] 圖11是示出了用于在移動(dòng)設(shè)備上執(zhí)行自適應(yīng)觀測(cè)的方法的另一方面的過程流 圖。
[0026] 圖12是適合于與各個(gè)方面一起使用的移動(dòng)設(shè)備的組件框圖。
[0027] 圖13是適合于與各個(gè)方面一起使用的示例性移動(dòng)設(shè)備的圖示。
[0028] 圖14是適合于與各個(gè)方面一起使用的示例性服務(wù)器計(jì)算機(jī)的圖示。
【具體實(shí)施方式】
[0029] 下面將參照附圖詳細(xì)描述各個(gè)方面。只要有可能,貫穿這些附圖,將使用相同的附 圖標(biāo)記來表示相同的或類似的部件。對(duì)特定示例和實(shí)現(xiàn)的引用是為了說明的目的的,其不 意在現(xiàn)在本發(fā)明或權(quán)利要求書的保護(hù)范圍。
[0030] 在本申請(qǐng)中使用詞語(yǔ)"示例性的"來指"充當(dāng)示例、實(shí)例或例證"。本申請(qǐng)中被描述 為"示例性的"任何實(shí)現(xiàn)不一定被解釋為比其它的實(shí)現(xiàn)優(yōu)選的或更優(yōu)的。
[0031] 在本申請(qǐng)中使用詞語(yǔ)"移動(dòng)計(jì)算設(shè)備"和"移動(dòng)設(shè)備"來指蜂窩電話、智能電話、個(gè) 人或移動(dòng)多媒體播放器、個(gè)人數(shù)據(jù)助理(PDA)、膝上型計(jì)算機(jī)、平板計(jì)算機(jī)、智能本、超級(jí)本、 掌上計(jì)算機(jī)、無(wú)線電子郵件接收機(jī)、具有多媒體因特網(wǎng)功能的蜂窩電話、無(wú)線游戲控制器、 以及包含存儲(chǔ)器、對(duì)于其而言性能是重要的的可編程處理器、以及在電池電源下工作使得 節(jié)能方法是有益的的類似的個(gè)人電子設(shè)備中的任何一個(gè)或全部。雖然各個(gè)方面對(duì)于諸如智 能電話之類的、具有有限處理功率和電池壽命的移動(dòng)計(jì)算設(shè)備尤其有用,但是這些方面在 包含適合執(zhí)行應(yīng)用程序的多個(gè)異構(gòu)處理器/內(nèi)核的任何計(jì)算設(shè)備中一般都有用。
[0032] 概述地,各個(gè)方面包括用于在具有多個(gè)分布的或異構(gòu)的計(jì)算單元(例如,處理器、 內(nèi)核等)的移動(dòng)設(shè)備中執(zhí)行行為檢測(cè)和分析操作方法以及配置成執(zhí)行這些方面的多處理 器計(jì)算系統(tǒng),以有效地識(shí)別、阻止、和/或校正潛在地對(duì)移動(dòng)設(shè)備的性能和功率利用水平隨 著時(shí)間降低起作用的條件和移動(dòng)設(shè)備行為。行為分析操作可以包括識(shí)別其操作在多個(gè)異構(gòu) 內(nèi)核之間分布的單個(gè)軟件應(yīng)用的總體行為。這可以通過觀測(cè)或監(jiān)測(cè)在多個(gè)異構(gòu)內(nèi)核的每一 個(gè)中的局部移動(dòng)設(shè)備行為并在主處理器/內(nèi)核(例如,CPU、應(yīng)用處理器等)中使用任務(wù)圖 來重新組合所觀測(cè)的局部的移動(dòng)設(shè)備行為來生成適合在確定軟件應(yīng)用或移動(dòng)設(shè)備的總體 行為是否與該移動(dòng)設(shè)備的正常操作模式一致中使用的行為向量。局部的移動(dòng)設(shè)備行為可以 是與監(jiān)測(cè)內(nèi)核相關(guān)的移動(dòng)設(shè)備行為的一部分,例如與處理內(nèi)核使用相同的存儲(chǔ)器和處理資 源的部分、由處理內(nèi)核執(zhí)行的部分、調(diào)用在處理內(nèi)核上的功能/操作的部分等。
[0033] 在本申請(qǐng)中使用術(shù)語(yǔ)"片上系統(tǒng)"(S0C)是指包含在單個(gè)基板上集成的多個(gè)資源、 計(jì)算單元、處理器和/或內(nèi)核的單個(gè)集成電路(1C)芯片。單個(gè)S0C可以包含用于數(shù)字、模 擬、混合信號(hào)和射頻功能的電路、以及任意數(shù)量的通用和/或?qū)S锰幚砥鳎〝?shù)字信號(hào)處理 器、調(diào)制解調(diào)器處理器、視頻處理器等)、存儲(chǔ)塊(例如,ROM、RAM、閃存等)、以及資源(例 如,定時(shí)器、電壓調(diào)節(jié)器、振蕩器等)。S0C還可以包含用于控制所集成的資源和處理器以及 用于控制外圍設(shè)備的軟件。
[0034] 在本申請(qǐng)中使用"系統(tǒng)級(jí)封裝"(SIP)是指在兩個(gè)或更多1C芯片或基板上包含多 個(gè)資源、計(jì)算單元、內(nèi)核和/或處理器的單個(gè)模塊或封裝。例如,SIP可以包含單個(gè)基板,在 該單個(gè)基板上,以垂直配置來堆疊多個(gè)1C芯片或半導(dǎo)體晶粒。類似地,該SIP可以包含一 個(gè)或多個(gè)多芯片模塊(MCM),在該MCM上,多個(gè)1C或半導(dǎo)體晶粒被封裝成統(tǒng)一的基板。SIP 還可以包含諸如在單個(gè)主辦上或在單個(gè)移動(dòng)計(jì)算設(shè)備中經(jīng)由高速通信電路耦合在一起且 封裝在附近的多個(gè)獨(dú)立的S0C。這些S0C的接近性有助于高速通信和對(duì)存儲(chǔ)器及資源的共 享,以及這些S0C中的組件之間的更協(xié)調(diào)的合作和同步。
[0035] 在本申請(qǐng)中使用術(shù)語(yǔ)"多處理器"和"多處理器計(jì)算系統(tǒng)"是指包括配置成讀取并 執(zhí)行程序指令的兩個(gè)或更多個(gè)計(jì)算或處理單元的系統(tǒng)或設(shè)備。在本申請(qǐng)中使用術(shù)語(yǔ)"多核 處理器"是指包含配置成讀取并執(zhí)行程序指令的兩個(gè)或更多個(gè)獨(dú)立的計(jì)算或處理單元(例 如,CPU內(nèi)核、IP內(nèi)核等)的單個(gè)集成電路(1C)芯片或芯片封裝。S0C可以包含多個(gè)多核 處理器,并且可以將S0C中的每個(gè)處理器稱為一個(gè)內(nèi)核。
[0036] 在本申請(qǐng)中使用"上下文信息"是指對(duì)在主操作系統(tǒng)(例如,Android、Windows 8、 LINUX等)中運(yùn)行的線程或進(jìn)程可用的任何信息,并且可以包含標(biāo)識(shí)操作系統(tǒng)服務(wù)、庫(kù)、文 件系統(tǒng)、以及線程/進(jìn)程可以訪問的其它資源的操作狀態(tài)數(shù)據(jù)和許可和/或訪問限制。這樣 的操作狀態(tài)數(shù)據(jù)可以包括進(jìn)程的地址空間、??臻g、虛擬地址空間、寄存器組映像(例如, 程序計(jì)數(shù)器、棧指針、指令寄存器、程序狀態(tài)字等)、計(jì)帳信息、許可、訪問限制、以及狀態(tài)信 肩、。
[0037] 通常,移動(dòng)設(shè)備的性能和功率效率隨著時(shí)間而降級(jí)。近來,反病毒公司(例如, McAfee、Symantec等)已經(jīng)開始銷售旨在減慢這種降級(jí)的移動(dòng)反病毒、防火墻、和加密產(chǎn) 品。然而,這些解決方案中的許多依賴于計(jì)算密集型掃描引擎在移動(dòng)設(shè)備上的周期性執(zhí)行, 這可能消耗了移動(dòng)設(shè)備許多的處理和電池資源,使移動(dòng)設(shè)備減慢或無(wú)用達(dá)延長(zhǎng)的時(shí)間段, 和/或以其它方式降低了用戶體驗(yàn)。此外,這些解決方案典型地受限于檢測(cè)已知的病毒和 惡意軟件,并且不能解決常常結(jié)合起來而導(dǎo)致移動(dòng)設(shè)備隨著時(shí)間的降級(jí)的多種復(fù)雜因素和 /或交互(例如,當(dāng)性能降級(jí)不是由病毒或惡意軟件導(dǎo)致的時(shí))。對(duì)于這些以及其它原因, 現(xiàn)有的反病毒、防火墻、和加密產(chǎn)品未提供足夠的解決方案用于識(shí)別可能導(dǎo)致移動(dòng)設(shè)備隨 著時(shí)間的性能降級(jí)的移動(dòng)設(shè)備行為。
[0038] 存在用于對(duì)在計(jì)算設(shè)備上執(zhí)行的進(jìn)程或應(yīng)用程序的行為進(jìn)行建模的各種其它解 決方案,并且這些行為模型可以用于在計(jì)算設(shè)備上的惡意和良性進(jìn)程/程序之間進(jìn)行區(qū) 分。然而,這些現(xiàn)有的建模解決方案不適合在移動(dòng)設(shè)備上使用,這是因?yàn)檫@些解決方案通常 需要執(zhí)行計(jì)算密集型進(jìn)程,這些進(jìn)程消耗大量的處理、存儲(chǔ)器和能量資源,而所有這些資源 在移動(dòng)設(shè)備上都是匱乏的。此外,這些解決方案通常受限于評(píng)估單個(gè)應(yīng)用程序或進(jìn)程的行 為和/或針對(duì)單個(gè)處理器或內(nèi)核(本文中統(tǒng)稱處理內(nèi)核),并且不提供對(duì)可能分布在多個(gè)異 構(gòu)處理內(nèi)核的復(fù)雜移動(dòng)設(shè)備行為的準(zhǔn)確或完整的模型。對(duì)于這些或其它原因,現(xiàn)有的建模 解決方案不適合在包括多個(gè)異構(gòu)處理內(nèi)核的移動(dòng)設(shè)備中使用。
[0039] 移動(dòng)設(shè)備是具有相對(duì)有限的處理、存儲(chǔ)及能量資源的資源受限系統(tǒng)。現(xiàn)代的移動(dòng) 設(shè)備還是復(fù)雜系統(tǒng),并且存在可能導(dǎo)致移動(dòng)設(shè)備隨著時(shí)間在性能和功率利用水平上的降級(jí) 的各種各樣的因素,其中包括設(shè)計(jì)不當(dāng)?shù)能浖?yīng)用、惡意軟件、病毒、零散的存儲(chǔ)、后臺(tái)處理 等。由于這些因素的數(shù)量、種類以及復(fù)雜性,對(duì)可能導(dǎo)致現(xiàn)代移動(dòng)設(shè)備的復(fù)雜而資源受限系 統(tǒng)在性能和/或功率利用水平上的降級(jí)的所有因素進(jìn)行評(píng)估常常是不可行的。
[0040] 各個(gè)方面包括多處理器移動(dòng)設(shè)備、系統(tǒng)、和方法,其用于從有限的(粗糙的)行為 觀測(cè)集合中有效地識(shí)別、分析、分類、建模、阻止、和/或校正常常使移動(dòng)設(shè)備的性能和/或 功率利用水平隨著時(shí)間而降級(jí)的條件和/或移動(dòng)設(shè)備行為。通過減少在每個(gè)處理內(nèi)核中觀 測(cè)或監(jiān)測(cè)到的因素的數(shù)量,以及通過減少在異構(gòu)處理內(nèi)核之間傳送的信息量,各個(gè)方面改 善了移動(dòng)設(shè)備的效率和性能以及功耗特征。
[0041] 在異構(gòu)平臺(tái)(例如,SIP、S0C、多處理器設(shè)備等)上,單個(gè)軟件應(yīng)用可以被分解為若 干子任務(wù),這些子任務(wù)中的每一個(gè)可以被調(diào)度到不同的處理內(nèi)核上(或在不同的處理內(nèi)核 中執(zhí)行)。也就是說,軟件應(yīng)用的不同部分可以在不同的單個(gè)處理內(nèi)核上執(zhí)行操作(例如, API調(diào)用),并且應(yīng)用的行為可以散布(或分布)在不同的異構(gòu)處理內(nèi)核。由于此原因,在處 理內(nèi)核之間沒有繁瑣的或消耗性通信或協(xié)調(diào)的情況下,獲得應(yīng)用在多個(gè)異構(gòu)處理內(nèi)核的行 為的完整圖像常常是困難的/有挑戰(zhàn)性的。通過在每個(gè)處理內(nèi)核中生成局部的、不完整的、 輕量的、或簡(jiǎn)潔的行為標(biāo)簽來從每一單個(gè)處理內(nèi)核的角度(或在每一單個(gè)處理內(nèi)核的上下 文中)描述應(yīng)用的一部分,以及通過經(jīng)由所生成的行為標(biāo)簽跨越多個(gè)異構(gòu)處理內(nèi)核/在多 個(gè)異構(gòu)處理內(nèi)核之中/在多個(gè)異構(gòu)處理內(nèi)核之間高效地傳送行為信息,各個(gè)方面可以在不 消耗過量的移動(dòng)設(shè)備的電池或處理資源的情況下,對(duì)具有高潛在性來負(fù)面影響移動(dòng)設(shè)備的 移動(dòng)設(shè)備行為和條件進(jìn)行識(shí)別、分析和/或響應(yīng)。
[0042] 在單處理器系統(tǒng)和多處理器系統(tǒng)兩者中,共享、利用和/或在相同的上下文中操 作的進(jìn)程和線程(在本申請(qǐng)中統(tǒng)稱為進(jìn)程)可以通過相對(duì)快速的存儲(chǔ)器讀/寫操作來通 信。在另一方面,在不共享上下文的獨(dú)立進(jìn)程之間的通信經(jīng)常通過相對(duì)較慢且昂貴的(例 如,在性能成本、能量消耗、存儲(chǔ)器訪問時(shí)間等方面)函數(shù)調(diào)用、方法調(diào)用、過程調(diào)用、消息 交換、域套接字、以及其它形式的進(jìn)程間通信(IPC)來完成。遠(yuǎn)程過程調(diào)用(RPC)和遠(yuǎn)程方 法調(diào)用(RMI)是允許調(diào)用進(jìn)程使得子例程、過程、進(jìn)程、或服務(wù)在另一地址空間中(通常是 在另一處理器、芯片或計(jì)算設(shè)備上)執(zhí)行的進(jìn)程間通信(IPC)。
[0043] 在異構(gòu)平臺(tái)上,對(duì)不同的處理內(nèi)核可用的存儲(chǔ)器和資源經(jīng)常位于單獨(dú)的域(例 如,保護(hù)域、物理域等)。此外,每一個(gè)處理內(nèi)核可以配置具有不同的操作系統(tǒng)和/或?qū)崿F(xiàn)不 同的硬件描述語(yǔ)言(HDL)或指令集架構(gòu)(ISA)。在這樣的系統(tǒng)中,RPC/RMI機(jī)制可以提供允 許在第一處理內(nèi)核上的調(diào)用進(jìn)程以使操作、服務(wù)、或進(jìn)程在第二處理內(nèi)核中執(zhí)行,并且使第 二處理內(nèi)核將執(zhí)行的結(jié)果發(fā)送回第一處理內(nèi)核的接口。經(jīng)常地,為了解釋該結(jié)果,第一處理 內(nèi)核需要訪問對(duì)不與在第二處理內(nèi)核上執(zhí)行的操作、服務(wù)、或進(jìn)程共享相同上下文的進(jìn)程 而言不易獲得的信息。在這樣的情形下,現(xiàn)有的RPC/RMI解決方案需要第二處理內(nèi)核要由 所調(diào)用的服務(wù)使用的所有上下文信息(即,狀態(tài)信息、許可等)包含在該結(jié)果中。
[0044] 通過現(xiàn)有的RPC/RMI機(jī)制在第一和第二處理內(nèi)核之間傳送如此大量的信息(例 如,程序、過程、或服務(wù)執(zhí)行等的結(jié)果)通常消耗過量的功率、存儲(chǔ)器和處理資源。此外,處 理內(nèi)核可能具有不同的操作系統(tǒng)和/或?qū)崿F(xiàn)不同的硬件描述語(yǔ)言,在這種情況下,第一處 理內(nèi)核可能需要執(zhí)行復(fù)雜的和功率密集型操作,以在其能夠解釋從第二處理內(nèi)核接收的執(zhí) 行結(jié)果之前,重建第二處理內(nèi)核的上下文。重建上下文可能還需要對(duì)第一處理內(nèi)核的核心 或主操作系統(tǒng)的修改,這可能需要執(zhí)行另外的復(fù)雜且功率密集型操作和/或需要對(duì)移動(dòng)設(shè) 備架構(gòu)的顯著修改。由于這些和其它原因,使用標(biāo)準(zhǔn)的RMI/RPC解決方案在異構(gòu)內(nèi)核之間 傳送行為信息可能降級(jí)或降低移動(dòng)設(shè)備的性能和功耗特性,并降級(jí)用戶體驗(yàn)。
[0045] 當(dāng)在異構(gòu)平臺(tái)上執(zhí)行行為觀測(cè)和分析操作時(shí),可能需要每個(gè)處理內(nèi)核收集大量的 行為信息,并將所收集的所有行為信息和上下文信息發(fā)送至另一處理內(nèi)核以進(jìn)行分析。然 而,在處理內(nèi)核之間傳送如此大量的信息低效地利用了移動(dòng)設(shè)備資源,并且可能降級(jí)或降 低移動(dòng)設(shè)備的性能和功耗特性。
[0046] 移動(dòng)設(shè)備是具有相對(duì)有限的處理、存儲(chǔ)和能量資源的資源受限系統(tǒng)。因此,協(xié)調(diào)多 處理內(nèi)核的操作以便觀測(cè)或監(jiān)測(cè)軟件應(yīng)用或行為的繁瑣或消耗性方式(或方法)不適合于 在移動(dòng)設(shè)備中使用。例如,從從屬或輔處理內(nèi)核向主導(dǎo)或主處理內(nèi)核(即,主要應(yīng)用處理器 內(nèi)核或CPU)傳送API日志(例如,經(jīng)由存儲(chǔ)器讀/寫操作),能夠?qū)е逻^高的開銷,尤其對(duì) 于電池驅(qū)動(dòng)的移動(dòng)設(shè)備。
[0047] 出于所有前述原因,現(xiàn)有的解決方案不適合在包含多個(gè)異構(gòu)處理內(nèi)核的移動(dòng)設(shè)備 中使用。
[0048] 各個(gè)方面通過提供具有一個(gè)或多個(gè)輔處理內(nèi)核的移動(dòng)設(shè)備來克服現(xiàn)有解決方案 的限制,該一個(gè)或多個(gè)輔處理內(nèi)核配置成觀測(cè)移動(dòng)設(shè)備行為的一部分并生成從進(jìn)行監(jiān)測(cè)的 輔處理內(nèi)核的角度來標(biāo)識(shí)所觀測(cè)的移動(dòng)設(shè)備行為的最相關(guān)的特征的行為標(biāo)簽。每一輔處理 內(nèi)核可以向移動(dòng)設(shè)備的主處理內(nèi)核發(fā)送所生成的行為標(biāo)簽,該主處理內(nèi)核可以智能地組合 從輔處理內(nèi)核接收的行為標(biāo)簽(例如,經(jīng)由任務(wù)圖),并生成標(biāo)識(shí)分布式軟件應(yīng)用的完整行 為或完整的移動(dòng)設(shè)備行為的全局行為向量。然后,移動(dòng)設(shè)備可以使用所生成的行為向量來 對(duì)具有高潛在性負(fù)面影響移動(dòng)設(shè)備的條件和行為進(jìn)行識(shí)別、分類、建模、阻止、和/或校正。
[0049] 在一方面,移動(dòng)設(shè)備的主處理內(nèi)核的主觀測(cè)器進(jìn)程、守護(hù)進(jìn)程、模塊、或子系統(tǒng) (在本申請(qǐng)中統(tǒng)稱為"模塊")可以裝備或協(xié)調(diào)各種級(jí)別的移動(dòng)設(shè)備系統(tǒng)處的各種應(yīng)用程序 接口(API),并從所裝備的API收集行為信息。在一方面,主觀測(cè)器模塊可以接收在輔處理 內(nèi)核的從屬觀測(cè)器模塊中生成的局部的/不完整的行為標(biāo)簽。每一局部的/不完整的行為 標(biāo)簽可以以一個(gè)值或向量數(shù)據(jù)結(jié)構(gòu)(例如,以數(shù)字串、狀態(tài)機(jī)等的形式)簡(jiǎn)潔地描述在輔處 理內(nèi)核中(例如,通過裝備的API)所觀測(cè)到的移動(dòng)設(shè)備或軟件應(yīng)用的總體行為的一部分。 每一局部的/不完整的行為標(biāo)簽還可以從輔處理內(nèi)核的角度或在輔處理內(nèi)核的上下文中 描述移動(dòng)設(shè)備或軟件應(yīng)用的總體行為。例如,局部的/不完整的行為標(biāo)簽可以描述由輔處 理內(nèi)核執(zhí)行的或訪問對(duì)輔處理內(nèi)核可用的存儲(chǔ)器或處理資源的軟件應(yīng)用的一部分。
[0050] 主處理內(nèi)核中的主觀測(cè)器模塊可以使用任務(wù)圖來重新組合從輔處理內(nèi)核接收的 局部的/不完整的行為標(biāo)簽,以生成適合在確定軟件應(yīng)用或移動(dòng)設(shè)備的總體行為是否與移 動(dòng)設(shè)備的正常操作模式一致時(shí)使用的行為向量。每一行為向量可以以一個(gè)值或向量數(shù)據(jù)結(jié) 構(gòu)(例如,以數(shù)字串、狀態(tài)機(jī)等的形式)簡(jiǎn)潔地描述移動(dòng)設(shè)備或特定軟件應(yīng)用的總體行為。
[0051] 主觀測(cè)器模塊可以所生成的行為向量發(fā)送給移動(dòng)設(shè)備的分析器模塊(例如,經(jīng)由 存儲(chǔ)器寫操作等),該分析器模塊可以基于在行為向量中包含的信息和/或從各種其它移 動(dòng)設(shè)備子系統(tǒng)收集的信息來生成空間和/或時(shí)間相關(guān)性。所生成的空間和/或時(shí)間相關(guān)性 可以由移動(dòng)設(shè)備的各種模塊(例如,由驅(qū)動(dòng)模塊等)使用,以識(shí)別和/或響應(yīng)被確定為具有 很高可能性負(fù)面地影響移動(dòng)設(shè)備的性能或電池消耗水平的行為。
[0052] 在一方面,移動(dòng)設(shè)備的主處理內(nèi)核可以與輔處理內(nèi)核位于相同的芯片或基板上。 在一方面,輔處理內(nèi)核中的一個(gè)或多個(gè)可以與主處理內(nèi)核位于不同的芯片或基板上。在一 方面,主或輔處理內(nèi)核均可以配置具有不同的操作系統(tǒng)和/或?qū)崿F(xiàn)不同的硬件描述語(yǔ)言或 指令集架構(gòu)。在各個(gè)方面,主處理內(nèi)核和輔處理內(nèi)核可以位于相同的SIP、S0C、芯片、基板、 電路、或微處理器中。
[0053] 可以在多個(gè)不同的移動(dòng)設(shè)備中實(shí)現(xiàn)各個(gè)方面,其中包括單處理器和多處理器系統(tǒng) 以及片上系統(tǒng)(S0C)。圖1是示出可以在實(shí)現(xiàn)各個(gè)方面的計(jì)算設(shè)備中使用的示例性片上 系統(tǒng)(SOC)IOO架構(gòu)的架構(gòu)圖。S0C 100可以包括多個(gè)異構(gòu)處理器,諸如數(shù)字信號(hào)處理器 (DSP) 101、調(diào)制解調(diào)器處理器104、圖形處理器106、以及應(yīng)用處理器108。S0C 100還可以 包括連接到異構(gòu)處理器101、104、106、108中的一個(gè)或多個(gè)的一個(gè)或多個(gè)協(xié)處理器110 (例 如,向量協(xié)處理器)。
[0054] 每個(gè)處理器101、104、106、108、110可以包括一個(gè)或多個(gè)內(nèi)核,并且每個(gè)處理器/ 內(nèi)核可以獨(dú)立于其它處理器/內(nèi)核來執(zhí)行操作。例如,S0C 100可以包括執(zhí)行第一類型操 作系統(tǒng)(例如,F(xiàn)reeBSD、LINUX、OS X等)的處理器,以及執(zhí)行第二類型操作系統(tǒng)(例如, Microsoft Windows 8)的處理器。在各個(gè)方面,處理器101、104、106、108、110中的每一個(gè) 可以是主或主要處理內(nèi)核,并且其它處理器101、104、106、108、110中的每一個(gè)可以是非主 或輔處理內(nèi)核。
[0055] SOC 100還可以包括模擬電路和定制電路114,其用于管理傳感器數(shù)據(jù)、模數(shù)轉(zhuǎn) 換、無(wú)線數(shù)據(jù)傳輸、以及用于執(zhí)行諸如處理針對(duì)游戲和電影的編碼音頻信號(hào)之類的其它專 門操作。S0C 100還可以包括系統(tǒng)組件和資源116,諸如電壓調(diào)節(jié)器、振蕩器、鎖相環(huán)、外圍 橋接、數(shù)據(jù)控制器、存儲(chǔ)器控制器、系統(tǒng)控制器、接入端口、定時(shí)器、以及用于支持在計(jì)算設(shè) 備上運(yùn)行的處理器和客戶端的其它類似的組件。
[0056] 資源/系統(tǒng)組件116和定制電路114可以包括用于與諸如照相機(jī)、電子顯示器、無(wú) 線通信設(shè)備、外部存儲(chǔ)器芯片等之類的外圍設(shè)備對(duì)接的電路。處理器101、104、106、108可 以經(jīng)由互連/總線模塊124與一個(gè)或多個(gè)存儲(chǔ)器單元112、系統(tǒng)組件、以及資源116和定制 電路114互連,互連/總線模塊124可以包括可重配置的邏輯門陣列和/或?qū)崿F(xiàn)總線架構(gòu) (例如,CoreConnect、AMBA等)??梢酝ㄟ^諸如高性能片上網(wǎng)絡(luò)(NoC)之類的高級(jí)連接器 提供通信。
[0057] S0C 100還可以包括用于與諸如時(shí)鐘118和電壓調(diào)節(jié)器120之類的位于S0C外部 的資源進(jìn)行通信的輸入/輸出模塊(未示出)。位于S0C外部的資源(例如,時(shí)鐘118、電 壓調(diào)節(jié)器120)可以由兩個(gè)或更多個(gè)內(nèi)部S0C處理器/內(nèi)核(例如,DSP 101、調(diào)制解調(diào)器處 理器104、圖形處理器106、應(yīng)用處理器108等)共享。
[0058] S0C 100還可以包括適合用于從包括揚(yáng)聲器、用戶接口單元(例如,輸入按鈕、觸 摸屏顯示器等)、麥克風(fēng)陣列的傳感器、用于監(jiān)測(cè)物理?xiàng)l件(例如,位置、方向、運(yùn)動(dòng)、方位、 振動(dòng)、壓力等)的傳感器、照相機(jī)、指南針、全球定位系統(tǒng)(GPS)接收機(jī)、通信電路(例如, Bluetooth?、WLAN、WiFi等)、以及現(xiàn)代電子設(shè)備的其它公知組件(例如,加速計(jì)等)收集 傳感器數(shù)據(jù)的硬件和/或軟件組件。
[0059] 在一方面,應(yīng)用處理器108可以是主處理內(nèi)核,而其它處理器101、104、106、110可 以是非主處理內(nèi)核。在一方面,應(yīng)用處理器108可以是主處理器,而其它處理器101、104、 106、110可以移動(dòng)設(shè)備的多個(gè)是非主處理內(nèi)核或多個(gè)非主處理器。在一方面,主處理器可 以配置成監(jiān)測(cè)單個(gè)應(yīng)用的子任務(wù)到多個(gè)非主處理器的分配。在一方面,每個(gè)非主處理器可 以配置成觀測(cè)移動(dòng)設(shè)備行為中與該非主處理器相關(guān)的一部分,并基于該觀測(cè)來生成行為標(biāo) 簽。在一方面,主處理器可以配置成在該主處理器中將從兩個(gè)或更多個(gè)非主處理器接收的 兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合,以生成描述整個(gè)或完整的移動(dòng)設(shè)備行為或應(yīng)用的全局行 為向量,并且可以將其提供給分析器模塊以進(jìn)行處理。在一方面,主處理器可以包括用于在 分析器模塊中處理全局行為向量以確定軟件應(yīng)用良性還是非良性的單元。
[0060] 除了上文討論S0C 100之外,還可以在各種各樣的多處理器和多核處理器系統(tǒng)中 實(shí)現(xiàn)各個(gè)方面。圖2示出了可以用于實(shí)現(xiàn)各個(gè)方面的示例性多核處理器架構(gòu)。多核處理器 202可以包括非??拷ɡ纾趩蝹€(gè)基板、晶粒、集成芯片等上)的兩個(gè)或更多個(gè)獨(dú)立處 理內(nèi)核204、206、230、232。處理內(nèi)核204、206、230、232的靠近允許存儲(chǔ)器以比信號(hào)要去往 芯片外的情況下所可能的頻率/時(shí)鐘速率高得多的頻率/時(shí)鐘速率操作。此外,內(nèi)核204、 206、230、232的靠近允許對(duì)片上存儲(chǔ)器和資源(例如,電壓軌)的共享,以及允許內(nèi)核之間 更協(xié)調(diào)的協(xié)作和同步。
[0061] 在各個(gè)方面,處理內(nèi)核204、206、230、232可以是彼此相同、異構(gòu)、和/或?qū)崿F(xiàn)不同 的專門功能。從而,處理內(nèi)核204、206、230、232無(wú)需是對(duì)稱的,無(wú)論是從操作系統(tǒng)的角度 (例如,可以執(zhí)行不同的操作系統(tǒng))來看還是從硬件的角度(例如,可以實(shí)現(xiàn)不同的指令集 /架構(gòu))來看。此外,每個(gè)處理內(nèi)核204、206、230、232可以對(duì)一些資源具有互斥控制并與其 它內(nèi)核共享其它資源。
[0062] 處理內(nèi)核204、206、230、232可以經(jīng)由總線/互連接口218、對(duì)共享存儲(chǔ)器的直接存 儲(chǔ)器讀/寫操作、函數(shù)調(diào)用、方法調(diào)用、過程調(diào)用、消息交換、域套接字(例如,Unix域套接 字)、以及其它形式的進(jìn)程間通信(IPC)來彼此通信。
[0063] 在各方面,多核處理器202可以是主處理內(nèi)核(例如,應(yīng)用處理器108、CPU等)或 非主處理內(nèi)核。在一方面,一個(gè)處理內(nèi)核204可以是主處理內(nèi)核,而其它處理內(nèi)核206、230、 232可以是非主處理內(nèi)核。
[0064] 在圖2中示出的示例中,多核處理器202包括多級(jí)高速緩存,其中包括多個(gè)級(jí)別 1(L1)高速緩沖器212、214、238、240和級(jí)別2仏2)高速緩存器216、226、242。多核處理器 202還包括總線/互連接口 218、主存儲(chǔ)器220、以及輸入/輸出模塊222。L2高速緩存器 216、226、242可以比L1高速緩存器212、214、238、240更大(但更慢),但是比主存儲(chǔ)器220 單元更?。ǖ旧细欤?。每個(gè)處理內(nèi)核204、206、230、232可以包括具有對(duì)1^1高速緩存 器 212、214、238、240 私有訪問的處理單元 208、210、234、236。處理內(nèi)核 204、206、230、232 可以共享對(duì)L2高速緩存器(例如,L2高速緩存器242)的訪問或可以具有對(duì)獨(dú)立L2高速 緩存器(例如,L2高速緩存器216、226)的訪問。
[0065] L1和L2高速緩存器可以用于存儲(chǔ)由處理單元頻繁訪問的數(shù)據(jù),而主存儲(chǔ)器220可 以用于存儲(chǔ)由處理內(nèi)核204、206、230、232訪問的較大的文件和數(shù)據(jù)單元。多核處理器202 可以配置成使處理內(nèi)核204、206、230、232按照先查詢L1高速緩存器然后是L2高速緩存 器,且如果信息未存儲(chǔ)在高速緩存器中則再查詢主存儲(chǔ)器的順序來從存儲(chǔ)器中尋找數(shù)據(jù)。 如果信息未存儲(chǔ)在高速緩存器或主存儲(chǔ)器220中,則多核處理器202可以從外部存儲(chǔ)器和 /或硬盤存儲(chǔ)器224尋找信息。
[0066] 諸如參考圖1和2所討論的那些多處理器硬件設(shè)計(jì)可以在相同的封裝內(nèi)、經(jīng)常是 在同一硅片上包括具有不同能力的多個(gè)處理內(nèi)核。對(duì)稱的多處理硬件包括由單個(gè)操作系統(tǒng) 控制的、連接到單個(gè)共享的主存儲(chǔ)器的兩個(gè)或更多個(gè)相同的處理器。不對(duì)稱的或"松散耦合 的"多處理硬件可以包括兩個(gè)或更多個(gè)異構(gòu)的處理器/內(nèi)核,該兩個(gè)或更多個(gè)異構(gòu)的處理器 /內(nèi)核均可以由獨(dú)立的操作系統(tǒng)控制并連接到一個(gè)或多個(gè)共享的存儲(chǔ)器/資源。各個(gè)方面 可以包括或利用對(duì)稱和不對(duì)稱多處理硬件系統(tǒng)的任何組合。
[0067] 圖3示出了異構(gòu)多處理器系統(tǒng)300的一方面的處理內(nèi)核301中的示例性邏輯組件 和信息流,其中異構(gòu)多處理器系統(tǒng)300配置成識(shí)別、阻止、和/或校正具有高潛在性導(dǎo)致移 動(dòng)設(shè)備的性能和功率利用水平隨著時(shí)間降級(jí)的條件和移動(dòng)設(shè)備行為。在一方面,處理內(nèi)核 301可以是主或主要處理內(nèi)核。
[0068] 在圖3中示出的示例中,處理內(nèi)核301包括行為觀測(cè)器模塊302、行為分析器模塊 306、外部上下文信息模塊304、以及執(zhí)行器模塊308。處理內(nèi)核301可以配置成從一個(gè)或多 個(gè)從屬行為觀測(cè)器模塊303接收行為標(biāo)簽及其它通信。
[0069] 可以在軟件、硬件或其任何組合中實(shí)現(xiàn)模塊302-308中的每一個(gè)。在各方面,可以 在操作系統(tǒng)的一部分內(nèi)(例如,在內(nèi)核內(nèi)、在內(nèi)核空間中、在用戶空間中等)、在單獨(dú)的程序 或應(yīng)用內(nèi)、在專用硬件緩沖器或處理器、或其任何組合中實(shí)現(xiàn)模塊302-308。在一方面,模塊 302-308中的一個(gè)或多個(gè)可以被實(shí)現(xiàn)為在移動(dòng)設(shè)備的一個(gè)或多個(gè)處理內(nèi)核上執(zhí)行的軟件指 令。
[0070] 行為觀測(cè)器模塊302、303中的任何一個(gè)可以配置成裝備或協(xié)調(diào)移動(dòng)設(shè)備的各個(gè) 級(jí)別/模塊處的應(yīng)用程序接口(API),以及經(jīng)由所裝備的API監(jiān)測(cè)/觀測(cè)各個(gè)級(jí)別/模塊 處的移動(dòng)設(shè)備操作和事件(例如,系統(tǒng)事件、狀態(tài)變化等),收集與所觀測(cè)到的操作/事件 有關(guān)的信息,智能地對(duì)所收集的信息進(jìn)行過濾,基于經(jīng)過濾的信息生成一個(gè)或多個(gè)觀測(cè),生 成行為標(biāo)簽,將所生成的觀測(cè)和/或行為標(biāo)簽存儲(chǔ)在存儲(chǔ)器中(例如,在日志文件、高速緩 存存儲(chǔ)器等中)和/或?qū)⑺傻臉?biāo)簽或觀測(cè)發(fā)送給主/主要處理內(nèi)核或行為分析器模塊 306(例如,經(jīng)由存儲(chǔ)器寫、函數(shù)調(diào)用等)。
[0071] 通過在每個(gè)處理內(nèi)核中生成局部的、不完整的、輕型的、或簡(jiǎn)潔的行為標(biāo)簽來從每 一單個(gè)的處理內(nèi)核的角度(或在每一單個(gè)的處理內(nèi)核的上下文中)描述應(yīng)用的一部分,行 為觀測(cè)器模塊302、303可以根據(jù)觀測(cè)(且從而操作)的減少的集合來生成更容易與從其它 處理內(nèi)核收集的其它觀測(cè)/行為信息組合的行為信息,以識(shí)別、分析和/或響應(yīng)具有高潛在 性負(fù)面地影響移動(dòng)設(shè)備的完整的移動(dòng)設(shè)備行為或條件。此外,該行為標(biāo)簽允許有效地且在 不負(fù)面地影響移動(dòng)設(shè)備的情況下跨多個(gè)異構(gòu)處理內(nèi)核/在多個(gè)異構(gòu)處理內(nèi)核之中/之間傳 送行為信息。
[0072] 行為觀測(cè)器模塊302、303中的任何一個(gè)可以通過收集與在應(yīng)用框架或運(yùn)行時(shí)庫(kù) 中的庫(kù)應(yīng)用程序接口(API)調(diào)用、系統(tǒng)調(diào)用API、文件系統(tǒng)和聯(lián)網(wǎng)子系統(tǒng)操作、設(shè)備(包括 傳感器設(shè)備)狀態(tài)變化、以及其它類似的事件有關(guān)的信息來監(jiān)測(cè)/觀測(cè)移動(dòng)設(shè)備操作和事 件。行為觀測(cè)器模塊302、303還可以監(jiān)測(cè)文件系統(tǒng)活動(dòng),該文件系統(tǒng)活動(dòng)可以包括搜索文 件名、文件訪問的類別(個(gè)人信息或正常數(shù)據(jù)文件)、創(chuàng)建或刪除文件(例如, eXe、zip等類 型)、文件讀/寫/查找操作、改變文件權(quán)限等。
[0073] 行為觀測(cè)器模塊302、303還可以監(jiān)測(cè)/觀測(cè)數(shù)據(jù)網(wǎng)絡(luò)活動(dòng),其可以包括連接類型、 協(xié)議、端口號(hào)、設(shè)備所連接到的服務(wù)器/客戶端、連接的數(shù)目、通信的體量或頻率等。行為觀 測(cè)器模塊302、303可以監(jiān)測(cè)電話網(wǎng)絡(luò)活動(dòng),這可以包括監(jiān)測(cè)所發(fā)出的、接收到的、或攔截的 電話或消息(例如,SMS等)的類型和數(shù)目(例如,所撥打的高價(jià)電話的數(shù)目)。
[0074] 行為觀測(cè)器模塊302、303還可以監(jiān)測(cè)/觀測(cè)系統(tǒng)資源使用,這可以包括監(jiān)測(cè)分叉 (fork)數(shù)目、存儲(chǔ)器訪問操作、打開的文件數(shù)目等。行為觀測(cè)器模塊302、303可以監(jiān)測(cè)移動(dòng) 設(shè)備的狀態(tài),這可以包括監(jiān)測(cè)各種因素,諸如顯示器是打開的還是關(guān)閉的、設(shè)備是鎖定的還 是未鎖定的、剩余的電池量、照相機(jī)的狀態(tài)等。行為觀測(cè)器模塊302、303還可以通過例如監(jiān) 測(cè)關(guān)鍵服務(wù)(瀏覽器、合約提供方等)的意圖、進(jìn)程間通信的程度、彈出窗口等來監(jiān)測(cè)進(jìn)程 間通信(IPC)。
[0075] 行為觀測(cè)器模塊302、303還可以監(jiān)測(cè)/觀測(cè)一個(gè)或多個(gè)硬件組件的驅(qū)動(dòng)器統(tǒng)計(jì)和 /或狀態(tài),該一個(gè)或多個(gè)硬件組件可以包括照相機(jī)、傳感器、電子顯示器、WiFi通信組件、數(shù) 據(jù)控制器、存儲(chǔ)器控制器、系統(tǒng)控制器、訪問端口、定時(shí)器、外圍設(shè)備、無(wú)線通信組件、外部存 儲(chǔ)器芯片、電壓調(diào)節(jié)器、振蕩器、鎖相環(huán)、外圍橋路、以及用于支持移動(dòng)計(jì)算機(jī)設(shè)備上的處理 器和客戶端的其它類似組件。
[0076] 行為觀測(cè)器模塊302、303還可以監(jiān)測(cè)/觀測(cè)表示移動(dòng)計(jì)算設(shè)備和/或移動(dòng)設(shè)備子 系統(tǒng)的狀態(tài)或狀況的一個(gè)或多個(gè)硬件計(jì)數(shù)器。硬件計(jì)數(shù)器可以包括處理器/內(nèi)核的專用寄 存器,其配置成存儲(chǔ)在移動(dòng)計(jì)算設(shè)備中發(fā)生的與硬件相關(guān)的活動(dòng)或事件的計(jì)數(shù)或狀態(tài)。
[0077] 行為觀測(cè)器模塊302、303還可以監(jiān)測(cè)/觀測(cè)軟件應(yīng)用的動(dòng)作或操作、從應(yīng)用下載 服務(wù)器(例如,Apple? App商店服務(wù)器)的軟件下載、軟件應(yīng)用所使用的移動(dòng)設(shè)備信息、 呼叫信息、文本消息傳送信息(例如,SendSMS、BlockSMS、ReadSMS等)、媒體消息傳送信息 (例如,ReceiveMMS)、用戶賬戶信息、位置信息、照相機(jī)信息、加速計(jì)信息、瀏覽器信息、基于 瀏覽器的通信的內(nèi)容、基于語(yǔ)音的通信的內(nèi)容、短距離無(wú)線通信(例如,藍(lán)牙、WiFi等)、基 于文本的通信的內(nèi)容、錄制的音頻文件的內(nèi)容、電話簿或聯(lián)系人信息、聯(lián)系人列表等。
[0078] 行為觀測(cè)器模塊302、303可以監(jiān)測(cè)/觀測(cè)移動(dòng)設(shè)備的傳輸或通信,包 括包含語(yǔ)音郵件(VoiceMailComm)、設(shè)備標(biāo)識(shí)符(DevicelDComm)、用戶賬戶信息 (UserAccountComm)、日歷信息(CalendarComm)、位置信息(LocationComm)、錄制的音頻信 息(RecordAudioComm)、加速計(jì)信息(AccelerometerComm)等的通信。
[0079] 行為觀測(cè)器模塊302、303可以監(jiān)測(cè)/觀測(cè)對(duì)指南針信息、移動(dòng)設(shè)備設(shè)置、電池壽 命、陀螺儀信息、壓力傳感器、磁傳感器、屏幕活動(dòng)等的使用和更新/改變。行為觀測(cè)器模塊 302、303可以監(jiān)測(cè)/觀測(cè)傳送給軟件應(yīng)用傳送及來自軟件應(yīng)用的通知(AppNotification)、 應(yīng)用更新等。行為觀測(cè)器模塊302、303可以監(jiān)測(cè)/觀測(cè)與請(qǐng)求對(duì)第二軟件應(yīng)用的下載和/ 或安裝的第一軟件應(yīng)用相關(guān)的條件或事件。行為觀測(cè)器模塊302、303可以監(jiān)測(cè)/觀測(cè)與諸 如密碼的輸入等之類的用戶認(rèn)證相關(guān)的條件或事件。
[0080] 行為觀測(cè)器模塊302、303可以監(jiān)測(cè)/觀測(cè)在移動(dòng)設(shè)備的多個(gè)級(jí)別處的條件或事 件,其中包括應(yīng)用級(jí)別、無(wú)線電級(jí)別和傳感器級(jí)別。
[0081] 應(yīng)用級(jí)別觀測(cè)可以包括經(jīng)由面部識(shí)別軟件觀測(cè)用戶、觀測(cè)社交流、觀測(cè)用戶輸入 的備注、觀測(cè)與PassBook/Google Wallet/Paypal等的使用有關(guān)的事件。應(yīng)用級(jí)別觀測(cè)還 可以包括觀測(cè)與虛擬私有網(wǎng)絡(luò)(VPN)的使用有關(guān)的事件以及與同步、語(yǔ)音搜索、語(yǔ)音控制 (例如,通過說一個(gè)詞鎖定/解鎖電話)、語(yǔ)音翻譯器、用于計(jì)算的數(shù)據(jù)卸載、視頻流傳送、在 沒有用戶活動(dòng)的情況下的照相機(jī)使用、在沒有用戶活動(dòng)的情況下的麥克風(fēng)使用等相關(guān)的事 件。
[0082] 無(wú)線電級(jí)別觀測(cè)可以包括確定以下各項(xiàng)中的任何一個(gè)或多個(gè)的出現(xiàn)、存在性或數(shù) 量:在建立無(wú)線通信鏈路或發(fā)送信息之前與移動(dòng)設(shè)備的用戶交互、雙/多SM卡、因特網(wǎng)無(wú) 線電、移動(dòng)電話系留、卸載用于計(jì)算的數(shù)據(jù)、設(shè)備狀態(tài)傳送、作為游戲控制器或家庭控制器 使用、車輛通信、移動(dòng)設(shè)備同步等。無(wú)線電級(jí)別觀測(cè)還可以包括監(jiān)測(cè)用于定位、對(duì)等(p2p) 通信、同步、車輛對(duì)車輛通信、和/或機(jī)器對(duì)機(jī)器(m2m)的無(wú)線電(WiFi、WiMax、藍(lán)牙等)的 使用。無(wú)線電級(jí)別觀測(cè)還可以包括監(jiān)測(cè)網(wǎng)絡(luò)業(yè)務(wù)使用、統(tǒng)計(jì)或簡(jiǎn)檔。
[0083] 傳感器級(jí)別觀測(cè)可以包括監(jiān)測(cè)磁傳感器或其它傳感器以確定移動(dòng)設(shè)備的使用和/ 或外部環(huán)境。例如,移動(dòng)設(shè)備處理器可以配置成確定電話是在皮套中(例如,經(jīng)由配置成感 測(cè)皮套中的磁鐵的磁傳感器)還是在用戶的口袋中(例如,經(jīng)由通過照相機(jī)或光傳感器檢 測(cè)到的光的量)。檢測(cè)移動(dòng)設(shè)備在皮套中可能與識(shí)別可疑行為有關(guān),例如,這是因?yàn)樵谝苿?dòng) 設(shè)備在皮套中時(shí)發(fā)生與用戶的活動(dòng)使用(例如,照相或錄像、發(fā)送消息、進(jìn)行語(yǔ)音電話、錄 音等)有關(guān)的活動(dòng)和功能可能是在該設(shè)備上執(zhí)行的惡意進(jìn)程(例如,跟蹤或監(jiān)視用戶)的 標(biāo)志。與使用或外部環(huán)境有關(guān)的傳感器級(jí)別觀測(cè)的其它示例包括檢測(cè)近場(chǎng)通信(NFC)、從 信用卡掃描儀、條形碼掃描儀、或移動(dòng)標(biāo)簽閱讀器收集信息、檢測(cè)USB充電源的存在、檢測(cè) 鍵盤或輔助設(shè)備已經(jīng)耦合到移動(dòng)設(shè)備、檢測(cè)移動(dòng)設(shè)備已經(jīng)耦合到計(jì)算設(shè)備(例如,經(jīng)由USB 等)、確定LED、閃光燈、手電筒、或光源是否已經(jīng)被修改或禁用(例如,惡意地禁用緊急信號(hào) 應(yīng)用等)、檢測(cè)揚(yáng)聲器或麥克風(fēng)已經(jīng)被打開或上電、檢測(cè)充電或電源事件、檢測(cè)移動(dòng)設(shè)備被 用作游戲控制器等。傳感器級(jí)別觀測(cè)還可以包括從醫(yī)療或保健傳感器或從掃描用戶的身體 收集信息、從插入到USB/音頻插座的外部傳感器收集信息、從觸覺或觸感傳感器收集信息 (例如,經(jīng)由振動(dòng)器接口等)、收集與移動(dòng)設(shè)備的熱狀態(tài)相關(guān)的信息等。
[0084] 為了將所監(jiān)測(cè)的因素的數(shù)量減少到可管理的級(jí)別,在一方面,行為觀測(cè)器模塊 302、303可以通過監(jiān)測(cè)/觀測(cè)行為或因素的初始集來執(zhí)行粗觀測(cè),該行為或因素的初始集 是可能導(dǎo)致移動(dòng)設(shè)備的降級(jí)的所有因素的較小子集。在一方面,可以通過分析移動(dòng)設(shè)備上 的良性的和有問題的應(yīng)用來選擇行為的初始集和/或因素的子集。在各個(gè)方面,行為觀測(cè) 器模塊302、303可以從另一處理內(nèi)核(例如,主處理內(nèi)核等)、網(wǎng)絡(luò)服務(wù)器、或云服務(wù)提供商 網(wǎng)絡(luò)中的組件接收行為和/或因素的初始集。
[0085] 行為分析器模塊306可以從行為觀測(cè)器模塊302接收行為向量,并將其與一個(gè)或 多個(gè)行為模塊進(jìn)行比較,以確定特定的移動(dòng)設(shè)備行為、軟件應(yīng)用、或進(jìn)程是否是性能降級(jí)的 /惡意的、良性的、或可疑的。行為分析器模塊306還可以將所接收的信息(例如,觀測(cè)結(jié) 果)與從外部上下文信息模塊304接收的上下文的信息進(jìn)行比較,以識(shí)別導(dǎo)致(或很有可 能導(dǎo)致)設(shè)備隨時(shí)間的降級(jí)或可能以其它方式在移動(dòng)設(shè)備上造成問題的子系統(tǒng)、進(jìn)程和/ 或應(yīng)用。
[0086] 在一方面,行為分析器模塊306可以包括用于利用有限的信息集(例如,粗觀測(cè)結(jié) 果)來識(shí)別導(dǎo)致(或很有可能導(dǎo)致)設(shè)備隨時(shí)間的降級(jí)或可能以其它方式在設(shè)備上造成問 題的行為、進(jìn)程、或程序的智能。例如,行為分析器模塊306可以配置成分析從各種處理內(nèi) 核和模塊(例如,行為觀測(cè)器模塊302、外部上下文信息模塊304等)收集的信息(例如,以 觀測(cè)結(jié)果的形式)、學(xué)習(xí)移動(dòng)設(shè)備的正常操作行為、以及基于比較的結(jié)果生成或更新一個(gè)或 多個(gè)行為向量。在一方面,行為分析器模塊306可以將所生成的行為向量發(fā)送給執(zhí)行器模 塊308,執(zhí)行器模塊308可以執(zhí)行各種動(dòng)作或操作以校正被確定為是惡意的或使性能降級(jí) 的移動(dòng)設(shè)備行為和/或執(zhí)行操作以修復(fù)、矯正、隔離、或以其它方式解決所識(shí)別的問題。
[0087] 在一方面,如果行為分析器模塊306確定一行為、軟件應(yīng)用、或進(jìn)程是可疑的,則 行為分析器模塊306可以通知行為觀測(cè)器模塊302,行為觀測(cè)器模塊302可以調(diào)整其觀測(cè)的 粒度(即,觀測(cè)移動(dòng)設(shè)備行為的詳細(xì)級(jí)別)和/或基于從行為分析器模塊306接收的信息 改變所觀測(cè)的行為(例如,實(shí)時(shí)分析操作的結(jié)果)、生成或收集新的或另外的行為信息、并 將新/另外的信息發(fā)送給行為分析器模塊306以進(jìn)行進(jìn)一步分析/分類。在行為觀測(cè)器模 塊302與行為分析器模塊306之間的這樣的反饋通信使移動(dòng)設(shè)備能夠遞歸地增加觀測(cè)的粒 度(即,進(jìn)行更細(xì)微或更詳細(xì)的觀測(cè))或改變所觀測(cè)的特征/行為,直到識(shí)別出可疑的或使 移動(dòng)設(shè)備性能降級(jí)的行為的來源為止、直到達(dá)到處理或電池消耗閾值為止、或直到移動(dòng)設(shè) 備處理器確定無(wú)法從進(jìn)一步增加觀測(cè)粒度來識(shí)別可疑的或使移動(dòng)設(shè)備的性能降級(jí)的行為 的來源為止。
[0088] 圖4是根據(jù)各個(gè)方面的應(yīng)用任務(wù)圖的圖示,該應(yīng)用任務(wù)圖表征分布在多個(gè)異構(gòu)處 理內(nèi)核的軟件應(yīng)用的完整行為,并且適合在組合局部行為標(biāo)簽時(shí)使用。通常,一個(gè)任務(wù)可以 是可以在應(yīng)用任務(wù)圖402中被表示并且標(biāo)識(shí)軟件應(yīng)用的完整的或統(tǒng)一的行為的任何模塊、 執(zhí)行框、邏輯、或代碼單元。一個(gè)任務(wù)可以包括多個(gè)子任務(wù)404,每個(gè)子任務(wù)可以是任務(wù)中 充分獨(dú)立于可以被映射到或移動(dòng)到不同處理內(nèi)核的其它子任務(wù)/執(zhí)行框的最小執(zhí)行框、模 塊、邏輯、或代碼單元。例如,子任務(wù)404可以是包括任何數(shù)量的(例如,成千上萬(wàn)的)操作 或代碼行、并且充分獨(dú)立和自包含使得其可以被轉(zhuǎn)移到另一內(nèi)核的單元。在一方面,子任務(wù) 404可以是具有定義清楚的輸入和輸出并且可以被移動(dòng)、映射、或轉(zhuǎn)移到另一處理內(nèi)核的任 何模塊、邏輯、或代碼單元。
[0089] 在異構(gòu)平臺(tái)上,可以將軟件應(yīng)用分解成若干子任務(wù),可以將子任務(wù)中的每一個(gè)調(diào) 度到不同的內(nèi)核上。即,軟件應(yīng)用的不同部分可以在不同的單個(gè)內(nèi)核上執(zhí)行操作(例如, API調(diào)用),且應(yīng)用的行為可以散布在不同的內(nèi)核。由于該原因,獲得跨多個(gè)異構(gòu)內(nèi)核/處 理單元的應(yīng)用的行為的完整圖像經(jīng)常是困難的/挑戰(zhàn)性的。
[0090] 在一方面,移動(dòng)設(shè)備可以配置成生成任務(wù)圖,該任務(wù)圖將分布在多個(gè)異構(gòu)處理內(nèi) 核的軟件應(yīng)用的完整行為表征為參數(shù)、API調(diào)用、參數(shù)值、和時(shí)間戳的函數(shù)。在一方面,任務(wù) 圖可以用于獲得跨多個(gè)異構(gòu)處理內(nèi)核的應(yīng)用行為的完整圖像。
[0091] 圖5是根據(jù)各個(gè)方面的應(yīng)用任務(wù)圖的另一圖不,該任務(wù)圖表征分布在多個(gè)異構(gòu)處 理內(nèi)核的軟件應(yīng)用的完整行為,且其適合在組合局部行為標(biāo)簽中使用。特別地,圖5示出了 應(yīng)用任務(wù)圖402、且從而軟件應(yīng)用的總體或完整的行為、可以等于在多個(gè)異構(gòu)處理內(nèi)核(內(nèi) 核1-3)中的每一個(gè)中包含的子任務(wù)的和。
[0092] 由于在異構(gòu)內(nèi)核(內(nèi)核1-3)之間的硬件、軟件、和/或架構(gòu)的不同,在內(nèi)核之間傳 送信息可能是很昂貴的,或其可能降低移動(dòng)設(shè)備的性能和功耗。即,移動(dòng)設(shè)備是具有相對(duì)有 限的處理、存儲(chǔ)器和能源資源的資源受限的系統(tǒng)。從而,協(xié)調(diào)多個(gè)內(nèi)核之間的操作以觀測(cè)或 監(jiān)測(cè)軟件應(yīng)用或行為的繁瑣或消耗的方式不適合在移動(dòng)設(shè)備中使用。例如,從各個(gè)從屬內(nèi) 核向主內(nèi)核傳送API日志可能導(dǎo)致過高的開銷,尤其是針對(duì)電池驅(qū)動(dòng)的移動(dòng)設(shè)備。即,向主 內(nèi)核傳送或發(fā)送在輔處理內(nèi)核中生成的API日志以進(jìn)行分析可能是很昂貴的。
[0093] 通過在輔內(nèi)核中生成行為標(biāo)簽并在內(nèi)核之間傳送行為標(biāo)簽(而不是API日志),各 個(gè)方面可以減少或避免協(xié)調(diào)多核操作的繁瑣或消耗的方式。主處理內(nèi)核可以以有意義的方 式(即,經(jīng)由任務(wù)圖、基于時(shí)間、使用動(dòng)作序列號(hào)等)來接收和組合局部特征以獲得軟件應(yīng) 用的總體行為。
[0094] 圖6不出了在包括主核602以及兩個(gè)輔核604、606的異構(gòu)多處理器系統(tǒng)600的一 方面中的示例性邏輯組件和信息流。在各個(gè)方面,輔內(nèi)核604、606可以與主處理內(nèi)核602 位于相同的或不同的芯片上。利用異構(gòu)傳輸協(xié)議620模塊(例如,總線、IPC、片上網(wǎng)絡(luò)、織 物等)便于實(shí)現(xiàn)處理內(nèi)核之間的通信。
[0095] 在圖6中示出的示例中,主內(nèi)核602包括主行為觀測(cè)器模塊302,該主行為觀測(cè)器 模塊302包括全局行為檢測(cè)單元610模塊、本地行為檢測(cè)單元612模塊、任務(wù)圖614模塊、 工作分配監(jiān)測(cè)器616模塊、以及本地觀測(cè)618模塊。輔內(nèi)核604、606中的每一個(gè)可以包括 從屬行為觀測(cè)器模塊303,從屬行為觀測(cè)器模塊303包括本地行為檢測(cè)單元612模塊以及本 地觀測(cè)618模塊。本地行為檢測(cè)單元612模塊可以配置成在其相應(yīng)的內(nèi)核中解釋本地觀測(cè) 并針對(duì)所監(jiān)測(cè)的每一軟件應(yīng)用向全局行為檢測(cè)單元610模塊提供行為標(biāo)簽。
[0096] 每一從屬行為觀測(cè)器模塊303可以在其相應(yīng)的輔內(nèi)核604、606中監(jiān)測(cè)一個(gè)或多個(gè) 活動(dòng)(例如,重要的API),生成所監(jiān)測(cè)的活動(dòng)的特征,該特征描述了軟件應(yīng)用針對(duì)特定內(nèi)核 604、606的行為(且其從而是應(yīng)用的局部行為的特征)??梢詮挠蓮膶傩袨橛^測(cè)器模塊303 收集的行為信息生成該行為標(biāo)簽,且該行為標(biāo)簽以一值或向量數(shù)據(jù)結(jié)構(gòu)(例如,以數(shù)字串 的形式等)簡(jiǎn)潔地描述了移動(dòng)設(shè)備行為的部分。在一方面,行為標(biāo)簽可以充當(dāng)使主處理內(nèi) 核迅速識(shí)別并確定子任務(wù)及其在應(yīng)用任務(wù)圖402中的位置而不執(zhí)行任何另外的、繁瑣的、 或功率密集型分析或認(rèn)證操作的標(biāo)識(shí)符和/或證明。
[0097] 從屬行為觀測(cè)器模塊303可以向主行為觀測(cè)器模塊302發(fā)送所生成的特征,主行 為觀測(cè)器模塊302可以使用應(yīng)用任務(wù)圖402來組合局部的/不完整的行為標(biāo)簽,以獲得/ 識(shí)別軟件應(yīng)用的完整行為。
[0098] 工作分配監(jiān)測(cè)器616可以配置成跟蹤單個(gè)應(yīng)用中的操作/工作(例如,子任務(wù)) 如何被分配到各個(gè)輔內(nèi)核604、606,這可以通過監(jiān)測(cè)對(duì)傳輸層、異構(gòu)傳輸協(xié)議620模塊、或 對(duì)全局行為檢測(cè)單元610模塊的調(diào)用來實(shí)現(xiàn)。工作分配模塊616還可以生成和維護(hù)應(yīng)用任 務(wù)402(即,并發(fā)執(zhí)行模式)以由全局行為檢測(cè)單元使用,其可以結(jié)合任務(wù)圖402使用從輔 內(nèi)核604、606接收的本地行為標(biāo)簽來生成描述軟件應(yīng)用的總體行為的行為向量。然后,該 行為向量可以被發(fā)送至行為分析器模塊306并用于識(shí)別具有負(fù)面地影響移動(dòng)設(shè)備的性能 或電池消耗級(jí)別的高可能性的行為。
[0099] 圖7示出了在配置成根據(jù)一方面執(zhí)行動(dòng)態(tài)且自適應(yīng)的觀測(cè)的計(jì)算系統(tǒng)的行為觀 測(cè)器模塊302中的示例性邏輯組件和信息。行為觀測(cè)器模塊302可以包括自適應(yīng)過濾器模 塊702、抑制模塊704、觀測(cè)器模式模塊706、高級(jí)別行為檢測(cè)模塊708、行為向量生成器710、 以及安全緩沖器712。高級(jí)別行為檢測(cè)模塊708可以包括空間相關(guān)模塊714和時(shí)間相關(guān)模 塊 716。
[0100] 觀測(cè)器模式模塊706可以從各個(gè)源接收控制信息,其可以包括分析器單元(例如, 上文參考圖3描述的行為分析器模塊306)和/或應(yīng)用API。觀測(cè)器模式模塊706可以向自 適應(yīng)過濾器模塊702和高級(jí)別行為檢測(cè)模塊708發(fā)送與各種觀測(cè)器模式相關(guān)的控制信息。 [0101]自適應(yīng)過濾器模塊702可以從多個(gè)源接收數(shù)據(jù)/信息,并對(duì)所接收的信息進(jìn)行智 能地過濾以生成從所接收的信息選擇的信息的較小子集。可以基于從分析器模塊、或通過 API通信的高級(jí)別進(jìn)程接收的信息或控制來調(diào)整該過濾器??梢韵蛞种颇K704發(fā)送經(jīng)過 濾的信息,抑制模塊704可以負(fù)責(zé)控制從過濾器流出的信息量,以確保高級(jí)別行為檢測(cè)模 塊708不會(huì)變得被請(qǐng)求或信息淹沒或過載。
[0102] 高級(jí)別行為檢測(cè)模塊708可以從抑制模塊704接收數(shù)據(jù)/信息,控制來自觀測(cè)器 模式模塊706的信息以及來自移動(dòng)設(shè)備的其它組件的上下文信息。高級(jí)別行為檢測(cè)模塊 708可以使用所接收的信息來執(zhí)行空間的或時(shí)間的相關(guān)以檢測(cè)或識(shí)別可能導(dǎo)致設(shè)備以次優(yōu) 的級(jí)別執(zhí)行的高級(jí)別行為??梢韵蛐袨橄蛄可善?10發(fā)送空間和時(shí)間相關(guān)的結(jié)果,該行 為向量生成器710接收該相關(guān)信息并生成描述特定進(jìn)程、應(yīng)用、或子系統(tǒng)的行為的行為向 量。在一方面,行為向量生成器710可以生成行為向量,使得特定進(jìn)程、應(yīng)用、或子系統(tǒng)的每 一高級(jí)別行為是行為向量的一個(gè)元素。在一方面,所生成的行為向量可以存儲(chǔ)在安全的緩 沖器712中。高級(jí)別行為檢測(cè)的示例可以包括檢測(cè)特定事件的存在、另一事件的數(shù)量或頻 率、多個(gè)事件之間的關(guān)系、事件發(fā)生的順序、特定時(shí)間的發(fā)生之間的時(shí)間差等。
[0103] 行為觀測(cè)器模塊302可以基于從各種源接收的信息執(zhí)行自適應(yīng)觀測(cè)技術(shù)并控制 觀測(cè)粒度。例如,高級(jí)別行為檢測(cè)模塊708可以從抑制模塊704、觀測(cè)器模式模塊706接收 信息,以及從移動(dòng)設(shè)備的其它組件(例如,傳感器)接收上下文信息。作為示例,執(zhí)行時(shí)間 相關(guān)的高級(jí)別行為檢測(cè)模塊708可能檢測(cè)到已經(jīng)使用了照相機(jī)以及移動(dòng)設(shè)備正試圖將照 片上載到服務(wù)器。高級(jí)別行為檢測(cè)模塊708還可以執(zhí)行空間相關(guān)以確定移動(dòng)設(shè)備上的應(yīng)用 是否在該設(shè)備在皮套中并被附接到用戶的腰帶時(shí)拍了該照片。高級(jí)別行為檢測(cè)模塊708可 以確定該所檢測(cè)的高級(jí)別行為(例如,在位于皮套中時(shí)使用照相機(jī))是否為可接受的或常 見的行為,這可以通過將當(dāng)前行為與該移動(dòng)設(shè)備的過去的行為進(jìn)行比較和/或訪問從多個(gè) 設(shè)備收集的信息(例如,從眾包服務(wù)器接收的信息)來實(shí)現(xiàn)。由于當(dāng)在皮套中時(shí)拍照并將 照片上載到服務(wù)器是不尋常的行為(如在裝在皮套中的背景下觀測(cè)到的正常行為所可以 確定的),在該情形下高級(jí)別行為檢測(cè)模塊708可以將此事被為潛在的威脅行為并發(fā)起適 當(dāng)?shù)捻憫?yīng)(例如,關(guān)閉照相機(jī)、發(fā)出警報(bào)等)。
[0104] 在一方面,行為觀測(cè)器模塊302可以在多個(gè)部分中實(shí)現(xiàn)。
[0105] 圖8示出了在實(shí)現(xiàn)一方面的觀測(cè)器守護(hù)進(jìn)程的計(jì)算系統(tǒng)800中的邏輯組件和信 息。在圖8中示出的示例中,計(jì)算系統(tǒng)800包括行為檢測(cè)器802模塊、數(shù)據(jù)庫(kù)引擎804模塊、 以及在用戶空間中的行為分析器模塊306、以及環(huán)形緩沖器814、過濾器規(guī)則816模塊、抑制 規(guī)則818模塊、以及在內(nèi)核空間中的安全緩沖器820。計(jì)算系統(tǒng)800還可以包括觀測(cè)器守護(hù) 進(jìn)程,該觀測(cè)器守護(hù)進(jìn)程包括在用戶空間中的行為檢測(cè)器802以及數(shù)據(jù)庫(kù)引擎804,以及在 內(nèi)核空間中的安全緩沖器管理器806、規(guī)則管理器808、以及系統(tǒng)健康監(jiān)測(cè)器810。
[0106] 各個(gè)方面可以提供圍繞webkit,、SDK、NDK、內(nèi)核、驅(qū)動(dòng)器以及硬件在移動(dòng)設(shè)備上的 跨層觀測(cè),以便表征系統(tǒng)行為??梢詫?shí)時(shí)進(jìn)行上述行為觀測(cè)。
[0107] 觀測(cè)器模塊可以執(zhí)行自適應(yīng)觀測(cè)技術(shù)并控制觀測(cè)粒度。如上文所討論的,存在對(duì) 移動(dòng)設(shè)備的退化起作用的大量的(即,成千上萬(wàn)的)因素,并且對(duì)可能對(duì)設(shè)備的性能退化起 作用的所有不同因素進(jìn)行監(jiān)測(cè)/觀測(cè)時(shí)不可行的。為了克服這點(diǎn),各個(gè)方面動(dòng)態(tài)地識(shí)別要 觀測(cè)的有關(guān)行為,并動(dòng)態(tài)地確定要以哪一詳細(xì)級(jí)別來觀測(cè)所識(shí)別的行為。
[0108] 圖9示出了用于根據(jù)一方面執(zhí)行動(dòng)態(tài)和自適應(yīng)觀測(cè)的示例性方法900。在框902, 移動(dòng)設(shè)備處理器可以通過監(jiān)測(cè)/觀測(cè)可能對(duì)移動(dòng)設(shè)備的退化起作用的大量因素/行為的子 集來執(zhí)行粗觀測(cè)。在框903中,移動(dòng)設(shè)備處理器可以生成表征粗觀測(cè)和/或基于粗觀測(cè)的 移動(dòng)設(shè)備行為的行為向量。在框904中,移動(dòng)設(shè)備處理器可以識(shí)別與對(duì)移動(dòng)設(shè)備的退化潛 在起作用的粗觀測(cè)相關(guān)聯(lián)的子系統(tǒng)、進(jìn)程、和/或應(yīng)用。例如,這可以通過將從多個(gè)源接收 的信息與從移動(dòng)設(shè)備的傳感器接收的上下文的信息進(jìn)行比較來實(shí)現(xiàn)。在框906中,移動(dòng)設(shè) 備處理器可以基于粗觀測(cè)執(zhí)行行為分析操作。在確定框908中,移動(dòng)設(shè)備處理器可以基于 行為分析的結(jié)果來確定可疑的行為或潛在的問題是否可以被識(shí)別和校正。當(dāng)移動(dòng)設(shè)備處理 器基于行為分析的結(jié)果確定可疑的行為或潛在的問題可以被識(shí)別和較正(即,確定框908 ="是")時(shí),在框918中,處理器可以發(fā)起用于校正行為的進(jìn)程,并返回框902以執(zhí)行另外 的粗觀測(cè)。
[0109] 當(dāng)移動(dòng)設(shè)備處理器基于行為分析的結(jié)果確定可疑的行為或潛在的問題不能被識(shí) 別和/或較正(即,確定框908 = "否")時(shí),在確定框909中,移動(dòng)設(shè)備處理器可以確定是 否存在有問題的可能性。在一實(shí)施例中,移動(dòng)設(shè)備處理器可以通過計(jì)算移動(dòng)設(shè)備遭遇潛在 問題和/或進(jìn)行可疑行為的概率以及確定所計(jì)算的概率是否大于預(yù)定的閾值來確定存在 問題的可能性。當(dāng)移動(dòng)設(shè)備處理器確定所計(jì)算的概率不大于預(yù)定的閾值和/或沒有存在可 疑行為或潛在問題的可能性和/或沒有可疑行為或潛在問題可檢測(cè)的可能性(即,確定框 909 ="否")時(shí),處理器可以返回框902以執(zhí)行另外的粗觀測(cè)。
[0110] 當(dāng)移動(dòng)設(shè)備處理器確定有存在可疑行為或潛在問題的可能性和/或有可疑行為 或潛在問題可檢測(cè)的可能性(即,確定框909 = "是")時(shí),在框910中,移動(dòng)設(shè)備處理器可 以對(duì)所識(shí)別的子系統(tǒng)、進(jìn)程或應(yīng)用執(zhí)行更深的記錄/觀測(cè)或最后的記錄。在框912中,移動(dòng) 設(shè)備處理器可以對(duì)所識(shí)別的子系統(tǒng)、進(jìn)程或應(yīng)用執(zhí)行更深入且更詳細(xì)的觀測(cè)。在框914中, 移動(dòng)設(shè)備處理器可以基于上述更深人且更詳細(xì)的觀測(cè)執(zhí)行進(jìn)一步的和/或更深的行為分 析。在確定框908中,移動(dòng)設(shè)備處理器可以基于上述更深入的行為分析的結(jié)果再次確定是 否可以識(shí)別可疑行為或潛在問題。當(dāng)移動(dòng)設(shè)備處理器基于上述更輸入行為分析的結(jié)果確定 不能識(shí)別可疑行為或潛在問題(即,確定框908 ="否")時(shí),處理器可以重復(fù)在框910-914 中的操作直到詳細(xì)的級(jí)別細(xì)微地足夠識(shí)別問題為止或直到確定利用另外的細(xì)節(jié)無(wú)法識(shí)別 問題或不存在問題為止。
[0111] 當(dāng)移動(dòng)設(shè)備處理器基于上述更深入的行為分析的結(jié)果確定可以識(shí)別并校正可疑 行為或潛在的問題(即,確定框908 = "是")時(shí),在框918中,移動(dòng)設(shè)備處理器可以執(zhí)行操 作以校正問題/行為,且處理器可以返回框902以執(zhí)行另外的操作。
[0112] 在一方面,作為方法900的框902-918的一部分,移動(dòng)設(shè)備處理器可以執(zhí)行系統(tǒng)行 為的實(shí)時(shí)行為分析,以從有限且粗的觀測(cè)中識(shí)別可疑行為,以動(dòng)態(tài)地確定要更詳細(xì)觀測(cè)的 行為,以及動(dòng)態(tài)地確定觀測(cè)所需的精確的詳細(xì)級(jí)別。這使得移動(dòng)設(shè)備處理器有效地識(shí)別及 避免問題發(fā)生,而無(wú)需使用設(shè)備上的大量處理器、存儲(chǔ)器、或電池資源。
[0113] 圖10根據(jù)一方面示出了用于對(duì)移動(dòng)設(shè)備處理器執(zhí)行觀測(cè)的示例性主觀測(cè)器方法 1000。在框1002-1018中,在從屬或輔處理內(nèi)核(內(nèi)核1、內(nèi)核2、內(nèi)核η)中的每一個(gè)中的 從屬觀測(cè)器模塊可以在其相應(yīng)的內(nèi)核中反復(fù)地監(jiān)測(cè)移動(dòng)設(shè)備活動(dòng),基于所監(jiān)測(cè)的活動(dòng)生成 行為標(biāo)簽,并向主處理內(nèi)核(主內(nèi)核)發(fā)送所生成的標(biāo)簽。
[0114] 在框1020中,主或主要處理內(nèi)核的主觀測(cè)器模塊可以監(jiān)測(cè)對(duì)傳輸層的調(diào)用并生 成任務(wù)圖。在框1022中,主觀測(cè)器模塊可以從從屬/輔處理內(nèi)核(內(nèi)核1、內(nèi)核2、內(nèi)核η) 接收行為標(biāo)簽。在框1024中,主觀測(cè)器模塊可以將所接收的行為標(biāo)簽與在主內(nèi)核上收集的 行為信息組合以生成全局行為向量。在框1026中,主觀測(cè)器模塊可以向分析器模塊發(fā)送所 生成的全局行為向量以進(jìn)行進(jìn)一步分析。
[0115] 圖11根據(jù)另一方面示出了用于利用移動(dòng)設(shè)備處理器執(zhí)行動(dòng)態(tài)且自適應(yīng)觀測(cè)的另 一示例性方法1100。在框1102中,移動(dòng)設(shè)備處理器可以動(dòng)態(tài)地識(shí)別要在移動(dòng)設(shè)備上觀測(cè) 的有關(guān)行為。在框1104中,移動(dòng)設(shè)備處理器可以動(dòng)態(tài)地確定要觀測(cè)所識(shí)別的行為的詳細(xì)級(jí) 另IJ。在可選的框1106中,移動(dòng)設(shè)備處理器可以動(dòng)態(tài)地適應(yīng)正被觀測(cè)到的。在可選的框1108 中,移動(dòng)設(shè)備處理器可以動(dòng)態(tài)地改變或更新要被觀測(cè)的參數(shù)、因素、行為、進(jìn)程、應(yīng)用、和/ 或子系統(tǒng)??梢赃B續(xù)地重復(fù)或盡可能地重復(fù)框1102-1108的操作以改進(jìn)移動(dòng)設(shè)備性能(例 如,電池功耗、處理速度、網(wǎng)絡(luò)通信速度等)。
[0116] 在圖12中示出了這樣的移動(dòng)設(shè)備的示例性的、非限制性的方面的示例性組件和 模塊。移動(dòng)計(jì)算設(shè)備102可以包括電子組件的電路板1202,上述電子組件的一些或全部可 以被集成到片上系統(tǒng)中,該電路板1202包括耦合到存儲(chǔ)器1204的控制處理器1201??刂铺?理器1201還可以被耦合到數(shù)字信號(hào)處理器1206和/或模擬信號(hào)處理器1208,數(shù)字信號(hào)處 理器1206和模擬信號(hào)處理器1208也可以耦合到一起。在一些實(shí)施例中,控制處理器1201 和數(shù)字信號(hào)處理器1206可以是相同的組件或可以被集成到相同的處理器芯片中。顯示器 控制器1210和觸摸屏控制器1212可以耦合到控制處理器1201以及耦合到位于移動(dòng)計(jì)算 設(shè)備102內(nèi)或連接到移動(dòng)計(jì)算設(shè)備102的顯示器/觸摸屏1214。
[0117] 控制處理器1201還可以耦合到可移動(dòng)存儲(chǔ)器1216(例如,在移動(dòng)計(jì)算設(shè)備的情況 下為SD存儲(chǔ)器或SIM卡)和/或外部存儲(chǔ)器1218,例如一個(gè)或多個(gè)硬盤驅(qū)動(dòng)器、CD驅(qū)動(dòng) 器、以及DVD驅(qū)動(dòng)器??刂铺幚砥?201也可以耦合到通用串行總線(USB)控制器1220,該 通用串行總線(USB)控制器1220耦合到USB端口 1222。在各個(gè)方面,電源1221可以通過 USB控制器1220或通過不同的電氣連接耦合到電路板1202,以向各種電子組件提供電源 (例如,DC電源)。
[0118] 控制處理器1201也可以耦合到視頻編碼器1224,例如相位交替行(PAL)編碼器、 順序與存儲(chǔ)電視系統(tǒng)(SECAM)編碼器、或國(guó)家電視系統(tǒng)委員會(huì)(NTSC)編碼器。此外,視頻 編碼器1224可以耦合到視頻放大器1226,該視頻放大器1226可以耦合到視頻編碼器1224 和顯示器/觸摸屏1214。此外,視頻端口 1228可以耦合到視頻放大器1226以使得能夠?qū)?移動(dòng)計(jì)算設(shè)備102連接到外部監(jiān)測(cè)器、電視或其它顯示器(未示出)。
[0119] 控制處理器1201可以耦合到射頻(RF)收發(fā)機(jī)1230,例如經(jīng)由模擬信號(hào)處理器 1208。RF收發(fā)機(jī)1230可以耦合到RF天線1218以發(fā)送和接收RF信號(hào)。RF收發(fā)機(jī)1230可 以配置成發(fā)送和接收一個(gè)或多個(gè)不同無(wú)線通信協(xié)議的通信信號(hào),上述無(wú)線通信協(xié)議包括例 如蜂窩電話(例如,G-3、UMTS、CDMA、等)、WiFi、WiMax、以及藍(lán)牙。
[0120] 控制處理器1201還可以耦合到網(wǎng)卡1232,該網(wǎng)卡1232可以耦合到網(wǎng)絡(luò)連接器 1231和/或RF收發(fā)機(jī)1230且其配置成使得能夠經(jīng)由外部網(wǎng)絡(luò)(例如,局域網(wǎng)、因特網(wǎng)、企 業(yè)內(nèi)部網(wǎng)、WiFi網(wǎng)絡(luò)、藍(lán)牙網(wǎng)絡(luò)、個(gè)域網(wǎng)(PAN)等)實(shí)現(xiàn)通信。網(wǎng)卡1232可以是單獨(dú)的芯 片或卡的形式,或其可以作為完整解決方案通信芯片被實(shí)現(xiàn)為控制處理器1201或RF收發(fā) 機(jī)1230(或兩者)的一部分。
[0121] 諸如鍵板1234之類的多個(gè)模擬設(shè)備可以通過模擬信號(hào)處理器1208耦合到控制處 理器1201。在其它實(shí)現(xiàn)中,鍵板或鍵盤可以包括其自身的處理器,使得與控制處理器1201 的接口可以是經(jīng)由直接連接(未示出)、經(jīng)由網(wǎng)絡(luò)連接(例如,經(jīng)由網(wǎng)卡)、或經(jīng)由USB端口 1222。
[0122] 在一些實(shí)現(xiàn)中,數(shù)字照相機(jī)1236可以耦合到控制處理器1201。在一示例性的方 面,數(shù)字照相機(jī)1236可以是電荷耦合器件(CCD)照相機(jī)或互補(bǔ)金屬氧化物半導(dǎo)體(CMOS) 照相機(jī)。數(shù)字照相機(jī)1236可以被嵌入到移動(dòng)計(jì)算設(shè)備102中或通過外部線纜耦合到設(shè)備。
[0123] 在一些實(shí)現(xiàn)中,音頻編解碼器1238 (例如,立體聲編解碼器)可以耦合到模擬信號(hào) 處理器1208并配置成經(jīng)由音頻放大器1242向一個(gè)或多個(gè)揚(yáng)聲器1240發(fā)送聲音信號(hào)。音 頻編解碼器1238也可以耦合到麥克風(fēng)放大器1244,該麥克風(fēng)放大器1244可以耦合到麥克 風(fēng)246 (例如,經(jīng)由麥克風(fēng)插座)。耳機(jī)插座1248也可以耦合到音頻編解碼器1238以向耳 機(jī)輸出音頻。
[0124] 在一些實(shí)現(xiàn)中,移動(dòng)計(jì)算設(shè)備102可以包括單獨(dú)的RF接收機(jī)電路1250,該RF接收 機(jī)電路1250耦合到天線1252以接收廣播無(wú)線通信信號(hào)。接收機(jī)電路1250可以配置成接 收廣播電視信號(hào)(例如,EBMS廣播),并向DSP 1206提供所接收的信號(hào)以進(jìn)行處理。在一 些實(shí)現(xiàn)中,接收機(jī)電路1250可以配置成接收FM無(wú)線電信號(hào),在該情況下,所接收的信號(hào)可 以被傳遞至音頻編解碼器1238以進(jìn)行處理。
[0125] 在一方面,用于完成上文所描述的一個(gè)或多個(gè)方法操作的處理器可執(zhí)行指令可以 存儲(chǔ)在內(nèi)部存儲(chǔ)器1204、可移動(dòng)存儲(chǔ)器1216和/或非易失性存儲(chǔ)器1218中(例如,當(dāng)在硬 盤驅(qū)動(dòng)器、CD驅(qū)動(dòng)器、或經(jīng)由網(wǎng)絡(luò)可訪問的其它存儲(chǔ)器上時(shí))。這樣的處理器可執(zhí)行指令可 以由控制處理器1201執(zhí)行以執(zhí)行本申請(qǐng)中描述的方法。
[0126] 各個(gè)方面可以在各種移動(dòng)計(jì)算設(shè)備上實(shí)現(xiàn),在圖13中以智能電話的形式示出了 其一示例。智能電話1300可以包括耦合到內(nèi)部存儲(chǔ)器1302、顯示器1303、以及耦合到揚(yáng)聲 器的處理器1301。另外,智能電話1300可以包括用于發(fā)送和接收電磁輻射的天線1304,天 線1304可以連接到無(wú)線數(shù)據(jù)鏈路和/或耦合到處理器1301的蜂窩電話收發(fā)機(jī)1305。智能 電話1300典型地還包括用于接收用戶輸入的菜單選擇按鈕或搖臂開關(guān)1306。
[0127] 典型的智能電話1300還包括聲音編碼/解碼(編解碼器)電路1312,其將從麥 克風(fēng)接收的聲音數(shù)字化成適合無(wú)線傳輸?shù)臄?shù)據(jù)分組并將所接收的聲音數(shù)據(jù)分組解碼以生 成提供給揚(yáng)聲器以生成聲音的模擬信號(hào)。此外,處理器1301、無(wú)線收發(fā)機(jī)1305和編解碼器 1312中的一個(gè)或多個(gè)可以包括數(shù)字信號(hào)處理器(DSP)電路(未分別示出)。
[0128] 可以以客戶端-服務(wù)器架構(gòu)來實(shí)現(xiàn)一方面方法的一部分,其中一些處理發(fā)生在服 務(wù)器中,例如維護(hù)正常操作行為的數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)可以由移動(dòng)設(shè)備處理器在執(zhí)行本方面 的方法時(shí)訪問。這樣的方面可以在各種市售的服務(wù)器設(shè)備中的任何一個(gè)上實(shí)現(xiàn),例如在圖 14中示出的服務(wù)器1400。這樣的服務(wù)器1400典型地包括處理器1401,其耦合到易失性存 儲(chǔ)器1402和諸如磁盤驅(qū)動(dòng)器1403之類的大容量非易失性存儲(chǔ)器。服務(wù)器1400還可以包 括耦合到處理器1401的軟盤驅(qū)動(dòng)器、壓縮盤(⑶)或DVD光盤驅(qū)動(dòng)器1411。服務(wù)器1400還 可以包括用于與網(wǎng)絡(luò)1405建立數(shù)據(jù)連接的、耦合到處理器1401的網(wǎng)絡(luò)訪問端口 1404,網(wǎng)絡(luò) 1405例如為耦合到其它廣播系統(tǒng)計(jì)算機(jī)和服務(wù)器的局域網(wǎng)。
[0129] 處理器1301U401可以是可以由軟件指令(應(yīng)用)配置成執(zhí)行各種功能的任何可 編程微處理器、微計(jì)算機(jī)或多處理器芯片,上述各種功能包括下文所描述的各個(gè)方面的功 能。在一些移動(dòng)設(shè)備中,可以提供多個(gè)處理器1301,例如一個(gè)處理器專用于無(wú)線通信功能 的以及一個(gè)處理器專用于運(yùn)行其它應(yīng)用。典型地,軟件應(yīng)用可以在其被訪問并裝載到處理 器1301U401中之前存儲(chǔ)在內(nèi)部存儲(chǔ)器1302、1402、1403中。處理器1301U401可以包括 足夠存儲(chǔ)應(yīng)用軟件指令的內(nèi)部存儲(chǔ)器。
[0130] 許多移動(dòng)計(jì)算設(shè)備操作系統(tǒng)內(nèi)核被組織到用戶空間(非特權(quán)代碼在其中運(yùn)行)以 及內(nèi)核空間(特權(quán)代碼在其中運(yùn)行)中。該分離在安卓?以及其它的通用公共授權(quán)(GPL) 環(huán)境中是尤其重要的,在GPL環(huán)境中是內(nèi)核空間的一部分的代碼必需是GPL授權(quán)的,而在用 戶空間運(yùn)行的代碼可以不是GPL受氣多。應(yīng)該理解的是,除非明確表明,否則,在此討論的 各種軟件組件/模塊可以在內(nèi)核空間或用戶空間中實(shí)現(xiàn)。
[0131] 如在本申請(qǐng)中所使用的,術(shù)語(yǔ)"組件"、"模塊"、"系統(tǒng)"、"服務(wù)"、"引擎"、"監(jiān)聽器"、 "管理器"等意在包括計(jì)算機(jī)相關(guān)的實(shí)體,例如但不限于硬件、固件、硬件和軟件的組合、軟 件、執(zhí)行的軟件,其配置成執(zhí)行特定的操作或功能。例如,組件可以是但不限于在處理器上 運(yùn)行的進(jìn)程、處理器、對(duì)象、可執(zhí)行程序、執(zhí)行的線程、程序、和/或計(jì)算機(jī)。通過說明的方 式,在計(jì)算設(shè)備上運(yùn)行的應(yīng)用和計(jì)算設(shè)備可以被稱為組件。一個(gè)或多個(gè)組件可以位于進(jìn)程 和/或執(zhí)行的線程內(nèi),且組件可以位于一個(gè)處理器或內(nèi)核上,和/或在兩個(gè)或更多個(gè)處理器 或內(nèi)核之間分布。此外,這些組件可以從其上存儲(chǔ)有各種指令和/或數(shù)據(jù)結(jié)構(gòu)的各種非暫 時(shí)性計(jì)算機(jī)可讀介質(zhì)執(zhí)行。組件可以通過本地和/或遠(yuǎn)程進(jìn)程、函數(shù)或過程調(diào)用、電子信 號(hào)、數(shù)字分組、存儲(chǔ)器讀/寫、以及其它已知的計(jì)算機(jī)、處理器、和/或與進(jìn)程相關(guān)的通信方 法來進(jìn)行通信。
[0132] 僅提供前述的方法描述和過程流圖作為說明性示例,且其不意在需要或隱含必需 按照所呈現(xiàn)的順序來執(zhí)行各個(gè)方面的步驟。如將由本另一的技術(shù)人員明白的,在前述方面 中的步驟的順序可以以任何順序來執(zhí)行。諸如"其后"、"然后"、"接下來"等之類的詞不意 在限制步驟的順序;這些詞僅用于指導(dǎo)讀者瀏覽方法的描述。此外,任何對(duì)權(quán)利要求元素的 單數(shù)引用,例如,使用冠詞"一"、"一個(gè)"或"該",不被解釋為將該元素限制為單數(shù)。
[0133] 結(jié)合本申請(qǐng)中所公開的方面描述的各種示例性的邏輯框、模塊、電路和算法步驟 均可以實(shí)現(xiàn)成電子硬件、計(jì)算機(jī)軟件或其組合。為了清楚地表示硬件和軟件之間的可交換 性,上面對(duì)各種示例性的部件、框、模塊、電路和步驟均圍繞其功能進(jìn)行了總體描述。至于這 種功能是實(shí)現(xiàn)成硬件還是實(shí)現(xiàn)成軟件,取決于特定的應(yīng)用和對(duì)整個(gè)系統(tǒng)所施加的設(shè)計(jì)約束 條件。熟練的技術(shù)人員可以針對(duì)每個(gè)特定應(yīng)用,以變通的方式實(shí)現(xiàn)所描述的功能,但是,這 種實(shí)現(xiàn)決策不應(yīng)解釋為背離本發(fā)明的保護(hù)范圍。
[0134] 用于執(zhí)行本申請(qǐng)所述功能的通用處理器、數(shù)字信號(hào)處理器(DSP)、專用集成電路 (ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)或其它可編程邏輯器件、分立門或者晶體管邏輯器件、 分立硬件組件或者其任意組合,可以實(shí)現(xiàn)或執(zhí)行用于實(shí)現(xiàn)結(jié)合本申請(qǐng)中公開的方面所描述 的各種示例性的邏輯、邏輯框圖、模塊和電路的硬件。通用處理器可以是微處理器,或者,該 處理器也可以是任何常規(guī)的處理器、控制器、微控制器或者狀態(tài)機(jī)。處理器也可能實(shí)現(xiàn)為計(jì) 算設(shè)備的組合,例如,DSP和微處理器的組合、多個(gè)微處理器、一個(gè)或多個(gè)微處理器與DSP內(nèi) 核的結(jié)合,或者任何其它此種結(jié)構(gòu)?;蛘?,一些步驟或方法可以由特定于給定功能的電路來 執(zhí)行。
[0135] 在一個(gè)或多個(gè)示例性的方面,所描述的功能可以用硬件、軟件、固件或其任意組合 的方式來實(shí)現(xiàn)。如果使用軟件實(shí)現(xiàn),則可以將這些功能存儲(chǔ)在非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介 質(zhì)、非暫時(shí)性計(jì)算機(jī)可讀介質(zhì)或非暫時(shí)性處理器可讀介質(zhì)上作為一個(gè)或多個(gè)指令或代碼。 本申請(qǐng)中公開的方法或算法的步驟可以包含在位于非暫時(shí)性計(jì)算機(jī)可讀或處理器可讀存 儲(chǔ)介質(zhì)上的處理器可執(zhí)行軟件模塊中。非暫時(shí)性計(jì)算機(jī)可讀或處理器可讀存儲(chǔ)介質(zhì)可以是 可以由計(jì)算機(jī)或處理器存取的任何存儲(chǔ)介質(zhì)。通過示例的方式而不是限制的方式,這種非 暫時(shí)性計(jì)算機(jī)可讀或處理器可讀介質(zhì)可以包括RAM、ROM、EEPR0M、閃速存儲(chǔ)器、CD-ROM或其 它光盤存儲(chǔ)、磁盤存儲(chǔ)介質(zhì)或其它磁存儲(chǔ)設(shè)備、或者能夠用于存儲(chǔ)具有指令或數(shù)據(jù)結(jié)構(gòu)形 式的期望的程序代碼并可以由計(jì)算機(jī)進(jìn)行存取的任何其它介質(zhì)。如本申請(qǐng)中所使用的,磁 盤和光盤包括壓縮盤(CD)、激光盤、光盤、數(shù)字多功能光盤(DVD)、軟盤和藍(lán)光盤,其中磁盤 通常磁性地復(fù)制數(shù)據(jù),而光盤則用激光來光學(xué)地復(fù)制數(shù)據(jù)。上面的組合也包括在非暫時(shí)性 計(jì)算機(jī)可讀和處理器可讀介質(zhì)的保護(hù)范圍之內(nèi)?;蛘撸椒ɑ蛩惴ǖ牟僮骺梢晕挥诜菚簳r(shí) 性處理器可讀介質(zhì)和/或計(jì)算機(jī)可讀介質(zhì)上作為代碼和/或指令中的一個(gè)或其任何組合或 一組代碼和/或指令,其可以并入到計(jì)算機(jī)程序產(chǎn)品中。
[0136] 為使本領(lǐng)域中的任何技術(shù)人員能夠?qū)崿F(xiàn)或者使用本發(fā)明,提供了對(duì)所公開的方面 的上述描述。對(duì)于本領(lǐng)域技術(shù)人員來說,對(duì)這些方面的各種修改都是顯而易見的,并且,本 申請(qǐng)定義的總體原理也可以在不脫離本發(fā)明的精神或保護(hù)范圍的基礎(chǔ)上適用于其它方面。 因此,本發(fā)明并不限于本申請(qǐng)中示出的方面,而是與隨后的權(quán)利要求書以及本申請(qǐng)公開的 原理和新穎性特征的最廣范圍相一致。
【權(quán)利要求】
1. 一種監(jiān)測(cè)移動(dòng)計(jì)算設(shè)備的行為的方法,包括: 在所述移動(dòng)計(jì)算設(shè)備的非主處理內(nèi)核中觀測(cè)移動(dòng)設(shè)備行為中與所述非主處理內(nèi)核有 關(guān)的一部分; 在所述非主處理內(nèi)核中生成對(duì)所觀測(cè)到的所述移動(dòng)設(shè)備行為的一部分進(jìn)行描述的行 為標(biāo)簽; 將所生成的行為標(biāo)簽發(fā)送給所述移動(dòng)計(jì)算設(shè)備的主處理內(nèi)核; 在所述主處理內(nèi)核中將從非主處理內(nèi)核接收的兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合以生 成全局行為向量;以及 將所述全局行為向量提供給分析器模塊以進(jìn)行處理。
2. 根據(jù)權(quán)利要求1所述的方法,還包括: 由所述分析器模塊對(duì)所述全局行為向量進(jìn)行處理,以基于所述全局行為向量來確定軟 件應(yīng)用是良性的還是非良性的。
3. 根據(jù)權(quán)利要求1所述的方法,還包括: 在所述主處理內(nèi)核中生成任務(wù)圖,其中,在所述主處理內(nèi)核中將兩個(gè)或更多個(gè)行為標(biāo) 簽進(jìn)行組合以生成所述全局行為向量包括基于所生成的任務(wù)圖將所述兩個(gè)或更多個(gè)行為 標(biāo)簽進(jìn)行組合。
4. 根據(jù)權(quán)利要求1所述的方法,還包括: 在所述主處理內(nèi)核中監(jiān)測(cè)單個(gè)應(yīng)用的子任務(wù)到所述移動(dòng)計(jì)算設(shè)備的多個(gè)非主處理內(nèi) 核的分配。
5. 根據(jù)權(quán)利要求4所述的方法,其中,監(jiān)測(cè)子任務(wù)的所述分配包括監(jiān)測(cè)對(duì)所述移動(dòng)設(shè) 備的傳輸層的調(diào)用。
6. -種移動(dòng)計(jì)算設(shè)備,包括: 存儲(chǔ)器; 主處理器;以及 耦合到所述存儲(chǔ)器和所述主處理器的一個(gè)或多個(gè)非主處理器, 其中,所述一個(gè)或多個(gè)非主處理器中的每一個(gè)配置具有用以執(zhí)行以下操作的處理器可 執(zhí)行指令: 觀測(cè)移動(dòng)設(shè)備行為中與所述非主處理器有關(guān)的一部分; 生成對(duì)所觀測(cè)到的所述移動(dòng)設(shè)備行為的一部分進(jìn)行描述的行為標(biāo)簽;以及 將所生成的行為標(biāo)簽發(fā)送給所述主處理器;并且 其中,所述主處理器配置具有用于執(zhí)行以下操作的處理器可執(zhí)行指令: 將從所述一個(gè)或多個(gè)非主處理器接收的兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合以生成全局 行為向量;以及 將所述全局行為向量提供給分析器模塊以進(jìn)行處理。
7. 根據(jù)權(quán)利要求6所述的移動(dòng)計(jì)算設(shè)備,其中,所述主處理器還配置具有用以執(zhí)行還 包括以下操作的處理器可執(zhí)行指令: 由所述分析器模塊對(duì)所述全局行為向量進(jìn)行處理,以基于所述分析器模塊中的所述全 局行為向量來確定軟件應(yīng)用是良性的還是非良性的。
8. 根據(jù)權(quán)利要求6所述的移動(dòng)計(jì)算設(shè)備,其中,所述主處理器配置具有用于執(zhí)行還包 括生成任務(wù)圖的操作的處理器可執(zhí)行指令,并且其中,所述主處理器配置具有用于執(zhí)行操 作,以使得將兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合以生成所述全局行為向量包括基于所生成的 任務(wù)圖將兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合的處理器可執(zhí)行指令。
9. 根據(jù)權(quán)利要求6所述的移動(dòng)計(jì)算設(shè)備,其中,所述主處理器還配置具有用于執(zhí)行還 包括以下操作的處理器可執(zhí)行指令: 監(jiān)測(cè)單個(gè)應(yīng)用的子任務(wù)到所述一個(gè)或多個(gè)非主處理器的分配。
10. 根據(jù)權(quán)利要求9所述的移動(dòng)計(jì)算設(shè)備,其中,所述主處理器還配置具有用于執(zhí)行操 作,以使得監(jiān)測(cè)子任務(wù)的所述分配包括監(jiān)測(cè)對(duì)所述移動(dòng)計(jì)算設(shè)備的傳輸層的調(diào)用的處理器 可執(zhí)行指令。
11. 一種具有多個(gè)異構(gòu)內(nèi)核的移動(dòng)計(jì)算設(shè)備,包括: 用于在非主處理內(nèi)核中觀測(cè)移動(dòng)設(shè)備行為中與所述非主處理內(nèi)核有關(guān)的一部分的單 元; 用于在所述非主處理內(nèi)核中生成對(duì)所觀測(cè)到的所述移動(dòng)設(shè)備行為的一部分進(jìn)行描述 的行為標(biāo)簽的單元; 用于將所生成的行為標(biāo)簽發(fā)送給主處理內(nèi)核的單元; 用于在所述主處理內(nèi)核中將從非主處理內(nèi)核接收的兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合 以生成全局行為向量的單元;以及 用于將所述全局行為向量提供給分析器模塊以進(jìn)行處理的單元。
12. 根據(jù)權(quán)利要求11所述的移動(dòng)計(jì)算設(shè)備,還包括: 用于由所述分析器模塊對(duì)所述全局行為向量進(jìn)行處理,以基于所述全局行為向量來確 定軟件應(yīng)用是良性的還是非良性的單元。
13. 根據(jù)權(quán)利要求11所述的移動(dòng)計(jì)算設(shè)備,還包括: 用于在所述主處理內(nèi)核中生成任務(wù)圖的單元,其中,用于在所述主處理內(nèi)核中將兩個(gè) 或更多個(gè)行為標(biāo)簽進(jìn)行組合以生成所述全局行為向量的單元包括用于基于所生成的任務(wù) 圖將所述兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合的單元。
14. 根據(jù)權(quán)利要求11所述的移動(dòng)計(jì)算設(shè)備,還包括: 用于在所述主處理內(nèi)核中監(jiān)測(cè)單個(gè)應(yīng)用的子任務(wù)到一個(gè)或多個(gè)非主處理內(nèi)核的分配 的單元。
15. 根據(jù)權(quán)利要求14所述的移動(dòng)計(jì)算設(shè)備,其中,用于監(jiān)測(cè)子任務(wù)的所述分配的單元 包括用于監(jiān)測(cè)對(duì)所述移動(dòng)計(jì)算設(shè)備的傳輸層的調(diào)用的單元。
16. -種非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其具有存儲(chǔ)在其上的處理器可執(zhí)行軟件指令, 所述處理器可執(zhí)行軟件指令配置成使多處理器計(jì)算系統(tǒng)執(zhí)行以下操作: 在非主處理器中觀測(cè)移動(dòng)設(shè)備行為中與所述非主處理器有關(guān)的一部分; 在所述非主處理器中生成對(duì)所觀測(cè)到的所述移動(dòng)設(shè)備行為的一部分進(jìn)行描述的行為 標(biāo)簽; 將所生成的行為標(biāo)簽發(fā)送給主處理器; 在所述主處理器中將從兩個(gè)或更多個(gè)非主處理器接收的兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行 組合以生成全局行為向量;以及 將所述全局行為向量提供給分析器模塊以進(jìn)行處理。
17. 根據(jù)權(quán)利要求16所述的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,所存儲(chǔ)的處理器可 執(zhí)行軟件指令配置成使所述多處理器計(jì)算系統(tǒng)執(zhí)行的操作還包括: 由所述分析器模塊對(duì)所述全局行為向量進(jìn)行處理,以基于所述全局行為向量來確定軟 件應(yīng)用是良性的還是非良性的。
18. 根據(jù)權(quán)利要求16所述的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中: 所存儲(chǔ)的處理器可執(zhí)行軟件指令配置成使所述多處理器計(jì)算系統(tǒng)執(zhí)行的操作還包括: 在所述主處理器中生成任務(wù)圖,并且 所存儲(chǔ)的處理器可執(zhí)行軟件指令配置成使所述多處理器計(jì)算系統(tǒng)執(zhí)行操作,以使得在 所述主處理器中將兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合以生成所述全局行為向量包括基于所 生成的任務(wù)圖來將所述兩個(gè)或更多個(gè)行為標(biāo)簽進(jìn)行組合。
19. 根據(jù)權(quán)利要求16所述的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,所存儲(chǔ)的處理器可 執(zhí)行軟件指令配置成使所述多處理器計(jì)算系統(tǒng)執(zhí)行的操作還包括: 在所述主處理器中監(jiān)測(cè)單個(gè)應(yīng)用的子任務(wù)到一個(gè)或多個(gè)非主處理內(nèi)核的分配。
20. 根據(jù)權(quán)利要求19所述的非暫時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中,所存儲(chǔ)的處理器可 執(zhí)行軟件指令配置成使所述多處理器計(jì)算系統(tǒng)執(zhí)行操作,以使得監(jiān)測(cè)子任務(wù)的所述分配包 括監(jiān)測(cè)對(duì)移動(dòng)設(shè)備的傳輸層的調(diào)用。
【文檔編號(hào)】G06F11/30GK104303156SQ201380024849
【公開日】2015年1月21日 申請(qǐng)日期:2013年4月10日 優(yōu)先權(quán)日:2012年5月14日
【發(fā)明者】A·加塔拉, R·古普塔 申請(qǐng)人:高通股份有限公司