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