多核心二進制轉換任務處理的制作方法
文檔序號:9252383閱讀:452來源:國知局
多核心二進制轉換任務處理的制作方法
【技術領域】
[0001]本公開一般涉及計算系統領域,并且更具體地,涉及計算系統中的二進制轉換。
【背景技術】
[0002]分析一組代碼并將其轉換成另一組代碼的二進制轉換(BT)可以在多種應用中實行。例如,一組代碼可以運行通過二進制轉換器,其以一組性能目標(例如,改善的速度)編程從而將一組代碼轉換成更好達到性能目標的優化代碼組。一些二進制轉換器在一款軟件運行時通過間歇暫停該軟件以分析并轉換代碼段而轉換該軟件的代碼。這種暫停-恢復操作向代碼執行引入了時延,并向用戶證明其自身是可注意的且看起來隨機的延遲。另外,BT任務要求電力,即使在當計算設備原本不忙時處理這些任務的時候,運行二進制轉換器需要在處理器可能原本空閑時保持該處理器操作。
【附圖說明】
[0003]通過結合附圖的以下詳細描述,可以容易地理解實施例。為了便于該描述,類似的附圖標記表示類似的結構元件。實施例是通過示例的方式而不是限制的方式在附圖的圖中示出的。
[0004]圖1-3是根據各個實施例的配置用于多核心BT任務處理的多核心計算設備的部件的框圖。
[0005]圖4根據各個實施例示出了多核心BT任務處理操作的示例性時間線。
[0006]圖5是根據各個實施例的示例性BT任務隊列操作的流程圖。
[0007]圖6是根據各個實施例的第一示例性目標評估操作的流程圖。
[0008]圖7是根據各個實施例的第二示例性目標評估操作的流程圖。
[0009]圖8是根據各個實施例的示例性空閑核心任務處理操作的流程圖。
[0010]圖9是根據各個實施例的示例性空閑核心BT任務/目標評估操作的流程圖。
[0011]圖10是根據各個實施例的用于實踐所公開的實施例的示例性計算設備的框圖。
【具體實施方式】
[0012]公開了與計算系統中的二進制轉換(BT)相關聯的技術和系統的實施例。在一些實施例中,可以識別待處理的BT任務。BT任務可以與一組代碼相關聯,并可以在計算設備的第一處理核心上執行一組代碼期間被識別。BT任務可以在計算設備的第二處理核心可訪問的隊列中排隊,第二處理核心不同于第一處理核心。響應于判定出第二處理核心處于空閑狀態或已經通過操作系統接收到進入空閑狀態的指令,利用第二處理核心可以處理至少一些BT任務。
[0013]在后續詳細描述中,對形成其一部分的附圖進行參照,其中全文中類似的附圖標記表示類似的部分,并且其中通過圖示的方式示出了可以實踐的實施例。可以理解的是,可以利用其它實施例,并且可以在不背離本公開的范圍的情況下做出結構或邏輯改變。因此,并不能將后續詳細描述認為是限制意義的,而是實施例的范圍由隨附權利要求及其等價物限定。
[0014]可以以最有助于理解所要求保護的主題的方式將各種操作描述為依次的多個離散的動作或操作。然而,描述的次序不應該被解釋是暗示這些操作必須是依靠次序的。特別地,這些操作可以不按呈現的次序執行。所描述的操作可以按不同于所描述的實施例的次序執行。在額外的實施例中,可以執行各種額外的操作和/或省略所描述的操作。
[0015]出于本公開的目的,短語“A和/或B”表示⑷、⑶或(A和B)。出于本公開的目的,短語 “A、B和 / 或 C” 表示(A)、(B)、(C)、(A 和 B)、(A 和 C)、(B 和 C)或(A、B 和 C)。
[0016]說明書使用短語“在實施例中”或“在多個實施例中”,其每一個可以是指一個或多個相同或不同實施例。此外,對于本公開的實施例所使用的術語“包括”、“包含”、“具有”等是同義的。如本文所使用的,術語“邏輯”可以是指、是以下的部分、或包括執行一個或多個軟件或固件程序的專用集成電路(ASIC)、電子電路、處理器(共享的、專用的或組)和/或存儲器(共享的、專用的或組)、組合邏輯電路,和/或提供所描述功能的其它適當的部件。
[0017]現在參考圖1,示出了根據各個實施例的配置用于多核心BT任務處理的計算設備100的部件的框圖。如圖所示,計算設備100可以包括多個處理核心108a-108n。處理核心108a-108n可以包括本領域中已知的具有多個處理核心的任意數量的處理器,例如一個或多個雙核心處理器。處理核心108a-108n可以包括一個或多個集成電路(1C),例如一個或多個半導體IC芯片。處理核心108a-108n可以包括通用處理核心和專用處理核心(例如,正常核心、小核心、圖形處理核心、應用處理核心等)的任意組合。
[0018]如圖1所示,處理核心108a_108n中每一個可以被配置用于執行對應的用戶代碼IlOa-1lOno用戶代碼IlOa-1lOn例如可以表示相關聯的處理核心108a_108n上執行的應用或其它進程。在一些實施例中,在一個或多個處理核心上執行用戶代碼的進度(例如,在處理核心108a上執行用戶代碼IlOa的進度)對于計算設備100的用戶可以是可見的(例如,經由顯示器或其它輸出設備,未示出)。在一些實施例中,操作系統(OS,未示出)可以負責將用戶代碼指定給處理核心。
[0019]處理核心108a_108n中的每一個可以包括BT任務識別邏輯112a_112n,其可以識別與用戶代碼108a-108n相關聯的BT任務,同時用戶代碼108a_108n分別在處理核心108a-108n上執行。BT任務例如可以包括涉及通過轉換和/或分析一組代碼而仿真該組代碼的一組機器可讀指令的一個或多個操作。在各個實施例中,例如,一組代碼可以包括一組指令、更大組指令的子集、組合和/或順序邏輯的一部分、子例程或調用函數。在一些實施例中,BT任務可以指向使得為資源計算架構寫入的代碼能夠在目標計算架構(例如,計算設備100的架構)上運行。BT任務可以包括動態BT任務和/或靜態BT任務。如本文所使用的,BT任務可以包括二進制分析任務。在一些實施例中,BT任務識別邏輯112a-112n所識別出的BT任務可以包括將一組代碼的一部分轉換成另一組代碼。在一些實施例中,BT任務識別邏輯112a-112n所識別出的BT任務可以例如包括評估一組代碼的性能特性。在一些實施例中,BT任務識別邏輯112a-l 12η所識別出的BT任務可以包括通過至少部分地重組和/或編輯一組代碼而提升該組代碼的性能。在一些實施例中,BT任務識別邏輯112a-112n所識別出的BT任務可以包括將額外的安全特征添加到該組代碼。例如,在一些實施例中,BT任務識別邏輯112a-112n可以識別可以作為其它惡意干預的惡意軟件執行象征的一組代碼中的不正當行為的標記。
[0020]計算設備100可以包括BT任務隊列122。在一些實施例中,BT任務隊列122可以包括存儲器,其被配置為存儲由BT任務識別邏輯112a-112n識別出的一個或多個BT任務。當任務被識別出并被一個或多個處理核心108a-108n處理時,BT任務隊列122中的BT任務可以被添加到BT任務隊列122和從BT任務隊列122移除。例如,可以通過處理核心108a的BT任務識別邏輯112a將BT任務放置在BT任務隊列122中,并且可以通過處理核心108b的空閑核心任務處理(ICTP)邏輯120b將其從BT任務隊列122移除并進行處理。ICTP邏輯120的實施例將在下文進一步詳細討論。在一些實施例中,BT任務隊列122可以實現在軟件中、硬件中或軟件和硬件的組合中。BT任務隊列122中的BT任務可以存儲有表示不同任務的相對優先級的數據(其可以被處理核心108a-108n用于判定當諸如處理功率的其它約束滿足時哪些任務首先被移除),和/或表示已經被處理的不同任務的部分的數據(例如,當之前啟動處理任務但在完成前被中斷的時候)。
[0021 ] 在一些實施例中,不是所有被BT任務識別邏輯112a_l 12η識別出的BT任務都被放置在BT任務隊列122中。例如,BT任務識別邏輯112a (與處理核心108a相關聯)可以判定特定的BT任務應該被相關聯的處理核心108a立即或很快處理。然后該特定任務可以被處理核心108a執行而并不將BT任務放置于BT任務隊列122中。在一些實施例中,可以適合于在識別出BT任務的處理核心上立即處理的BT任務的一個例子可以是涉及將代碼的一系列部分變換成并行實現的任務;在這種情況下,識別出BT任務的處理核心可以立即找尋利用其執行并行實現的另一處理核心。
[0022]返回到處理核心108a_108n,處理核心108a_108n的每一個可以分別包括空閑核心檢測(I⑶)邏輯116a-116n。在一些實施例中,I⑶邏輯116可以監控相關聯處理核心108的狀態。處理核心108a-108n的示例性狀態可以包括活動狀態、暫停狀態、停止時鐘狀態、睡眠狀態、電壓調節狀態或頻率調節狀態。額外的例子包括在2011年12月6日公開的版本5.0的高級配置和電源接口(ACPI)規范中描述的C狀態和/或P狀態,所述規范在此通過引用整體并入。處理核心108a-108n的不同核心可以處于不同狀態。例如,在一些實施例中,處理核心108a可以處于活動狀態,而處理核心108b可以處于睡眠狀態。
[0023]如本文所使用的,當處理核心當前可用于操作系統的數據處理或應用運行通過操作系統(例如,執行用戶代碼)和/或根據用于處理核心的當前功率設置該處理核心被最大供電時,處理核心可以被認為處于“活動”或“非空閑”狀態。處理核心的功率設置可以例如判定用于處理核心的操作電壓和/或用于處理核心的操作頻率。在一些實施例中,這些功率設置可以包括在ACPI規范中定義的“P狀態”。在一些實施例中,處于活動狀態的處理核心可能具有對應于不同功率設置的不同的可達到的性能級別。可以在“活動”和“空閑”之間的轉移中調整的資源可以包括主時鐘、內部時鐘、外部時鐘、總線設備、操作電壓、存儲器高速緩存等。如本文所使用的,“空閑”或“空閑狀態”可以指不同于“活動”或“非空閑”狀態的任意狀態。在一些實施例中,處理核心的狀態可以包括如在ACPI規范中定義的處理核心的“C狀態”。例如,活動狀態可以包括CO狀態,而空閑狀態可以包括Cl、C2、……C7狀態(其中在各種組合中權衡功率損耗和處理核心喚醒時間)。
[0024]在一些實施例中,I⑶邏輯116a_116n可以判定哪些(如果有的話)處理核心108a-108n是空閑的。在一些實施例中,I⑶邏輯116可以被配置為觸發相關聯處理核心108的狀態中的改變。在一些實施例中,I⑶邏輯116可以被配置為判定在相關聯處理核心108的狀態中的改變是否與功率管理(PM)目的一致,和/或被配置為判定與處理核心108相關聯的狀態是否改變以維持與PM目標一致。在一些實施例中,I⑶邏輯116a-116n中的一個或多個可以與PM邏輯102耦合,并可以查詢PM邏輯102以識別計算