国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      用于在m核處理器上操作n核應用程序的虛擬機的制作方法

      文檔序號:6455009閱讀:224來源:國知局
      專利名稱:用于在m核處理器上操作n核應用程序的虛擬機的制作方法
      技術領域
      本發(fā)明涉及在計算設備的多核處理器上操作應用程序。具體而言,本發(fā)明 涉及在具有M核處理器的計算設備上操作為N核處理器設計的應用程序。更 具體而言,本發(fā)明設計在該計算設備上使用虛擬機以便在該M核處理器上操 作該N核應用程序。
      背景技術
      如可以理解的,多核處理器是基于多核處理器體系結構來設計的,以便在 單個計算設備中包括兩個或多個基于處理器的計算引擎,即"核"。通常,但不 必然地,這一多核處理器被安裝到計算設備的單個處理器插槽中,但是在該計 算設備上操作的操作系統(tǒng)將該多核處理器的每個執(zhí)行核視為是具有所有相關 聯(lián)的執(zhí)行資源的分立的邏輯處理器。
      通常,多核處理器及其架構旨在實現(xiàn)提升性能的策略,該策略通過將由典 型的單核處理器執(zhí)行的工作分成各分立部分并在特定核上執(zhí)行每個部分,由此 在給定處理器時鐘周期內執(zhí)行更多的工作來實現(xiàn)。為了能夠充分利用多核處理 器,于是在該處理器上運行的特定應用程序必須被構造成在可用的核上分配應 用程序工作部分,g卩"線程"。
      值得注意的是,多核處理器能夠執(zhí)行來自 一個應用程序或來自多個應用程 序的完全分開的代碼線程,且所有的執(zhí)行都是并行的。例如,具有兩個核的這 一多核處理器能夠并行地在第一核上執(zhí)行來自應用程序的線程并且在第二核 上執(zhí)行來自操作系統(tǒng)的線程,或者在第一和第二核上執(zhí)行來自該應用程序的并 行線程。類似地,具有更多數量的核的這一多核處理器能夠并行執(zhí)行所有來自 多個應用程序和操作系統(tǒng)的線程的多種變型。如現(xiàn)在應該理解的,有了多個核 上的這樣的并行處理,多核處理器在計算設備上提供真正的并行多任務處理, 而非順序的偽多任務處理。這一真正的并行多任務處理可包括例如家庭用戶在 錄制視頻源的同時編輯圖片,或者辦公室用戶在運行環(huán)境監(jiān)視應用程序的同時 從服務器復制數據。有了真正的并行多任務處理,多核處理器可用于改進其中用戶活動地在兩個或多應用程序中工作,或者后臺應用程序相互之間并與用戶應用程序競爭處理時間的任何計算設備環(huán)境中的響應性。由此,可在計算設備上執(zhí)行多個處理器密集型任務,而具有更少的諸如凍結、過多時間滯后、自發(fā)停止、不規(guī)則性能、音頻和/或視頻失真等問題。
      然而,注意,在特定應用程序被構造成使用計算設備上的多核處理器的一個數量N個核,而這一多核處理器實際上具有另一數量M個核的情況下出現(xiàn)
      了一個問題。在N比M大以使得M核處理器所具有的核比該N核應用程序被構造成使用的核少的一種情況下,該N核應用程序的工作極有可能必須以并非最初預期的方式被分配給該M核處理器的核。例如,如果應用程序是期望4個核的4核應用程序并且處理器實際上具有2個核,則最初由該應用程序分成4部分以便由4個核來處理的工作現(xiàn)在必須以某種方式由該計算設備的操作系統(tǒng)等,或許通過將這些部分重復,來分配給這兩個可用的核。如可以理解的,這樣的重新分配可能在特設的基礎上,并且在不了解要采用的優(yōu)選方法(如果的確存在這一方法)的情況下由該操作系統(tǒng)等來執(zhí)行。因此,這樣的重新非配可能導致低效并且可能在某些情況下甚至導致錯誤或甚至是致命錯誤。
      在M比N大以使得該M核處理器所具有的核比該N核應用程序被構造成使用的核多的另一種情況下,該M核處理器,即該處理器的M個核中的至少某一些即使可能是可用的也不被使用。例如,如果該應用程序是期望4個核的4核應用程序并且該處理器實際上具有8個核,則最初由該應用程序分成4部分以便由4個核處理的工作本可進一步被分成8個部分,而現(xiàn)在只由該8核處理器中的4個核來處理,另外4個核至少對于該應用程序是空閑的。如可以理解的,這些空閑的核表示浪費的容量,并且更廣泛而言浪費了更快地和/或更高效地操作該應用程序的機會。
      因此,需要一種可以用于實際上在M核處理器上高效地操作被構造成在N核處理器上操作的N核應用程序的系統(tǒng),其中M大于或小于N。具體而言,需要這樣一種系統(tǒng),其中該N核應用程序即使實際上在M核處理器上,也猶如在N核處理器上那樣操作。更具體而言,需要這樣一種系統(tǒng),其中該N核應用程序在仿真N核處理器并且以高效的方式將該應用程序的工作重新分配給該M核處理器的虛擬機上操作。發(fā)明概述
      上述需求由其中計算設備具有多核處理器、多核應用程序和虛擬機的本發(fā)
      明來滿足。該多核處理器具有一特定數量M個執(zhí)行核,其中每一個核都是能夠被單獨分配工作的分立的邏輯處理實體,并且該多核應用程序在該計算設備上被實例化并且期望該M核處理器上存在一特定數量N個執(zhí)行核以使該N核應用程序分配一特定數量N個應用程序工作部分。該虛擬機在該M核處理器上被實例化,并且該N核應用程序在該虛擬機上被實例化以使該虛擬機對該N核應用程序仿真N核處理器。由此,該虛擬機隱藏了該應用程序所期望的N個核與可從該處理器獲得的M個核之間的差別。
      附圖簡述
      以上概述以及以下本發(fā)明實施例的詳細描述在結合附圖閱讀時能夠被更好地理解。出于說明本發(fā)明的目的,在附圖中示出目前優(yōu)選的實施例。然而,
      如應理解的,本發(fā)明不限于所示的精確安排和手段。在附圖中


      圖1是表示其中可結合本發(fā)明和/或其各部分的各方面的通用計算機系統(tǒng)的框圖2和3是示出在具有4核處理器的計算設備上操作的8核應用程序(圖2)和2核應用程序(圖3)的框圖4是示出根據本發(fā)明的一個實施例的通過仿真N核應用程序的虛擬機在具有M核處理器的計算設備上操作的N核應用程序的框圖;以及
      圖5、 6和7是示出根據本發(fā)明的一個實施例的圖4的基于交互(圖5)、工作負載(圖6)和功能(圖7)來將各工作部分分配給處理器的各核的虛擬機的框圖。
      發(fā)明詳述
      計算機環(huán)境
      圖1及以下討論旨在提供對適于在其中實現(xiàn)本發(fā)明的合適的計算環(huán)境的簡要概括描述。盡管并非所需,但本發(fā)明在諸如程序模塊等由諸如客戶機工作 站或服務器等計算機執(zhí)行的計算機可執(zhí)行指令的一般上下文中描述。 一般而 言,程序模塊包括執(zhí)行特定任務或實現(xiàn)特定抽象數據類型的例程、程序、對象、 組件、數據結構等。此外,應該理解,本發(fā)明和/或其各部分可用其它計算機系 統(tǒng)配置來實施,包括手持式設備、多處理器系統(tǒng)、基于微處理器或可編程消費 電子產品、網絡PC、小型機、大型計算機等。本發(fā)明也可以在其中任務由通 過通信網絡鏈接的遠程處理設備執(zhí)行的分布式計算環(huán)境中實施。在分布式計算 環(huán)境中,程序模塊可位于本地和遠程存儲器存儲設備中。
      如圖1所示,示例性通用計算系統(tǒng)包括常規(guī)個人計算機120等,該計算機 包括處理單元121、系統(tǒng)存儲器122和將包括系統(tǒng)存儲器的各種系統(tǒng)組件耦合 到處理單元121的系統(tǒng)總線123。系統(tǒng)總線123可以是幾種類型的總線結構中 的任何一種,包括存儲器總線或存儲控制器、外圍總線、以及使用各種總線體 系結構中的任一種的局部總線。系統(tǒng)存儲器包括只讀存儲器(ROM) 124和隨 機存取存儲器(RAM) 125?;据斎?輸出系統(tǒng)126 (BIOS)包含有助于諸如 啟動時在個人計算機120中的元件之間傳遞信息的基本例程,它被存儲在ROM 124中。
      個人計算機120還包括對硬盤(未示出)讀寫的硬盤驅動器127、對可移 動磁盤129讀寫的磁盤驅動器128、以及對諸如CD-ROM或其它光學介質等可 移動光盤131讀寫的光盤驅動器130。硬盤驅動器127、磁盤驅動器128和光 盤驅動器130分別通過硬盤驅動器接口 132、磁盤驅動器接口 133和光盤驅動 器接口 134連接到系統(tǒng)總線123。驅動器及其相關聯(lián)的計算機可讀介質為個人 計算機120提供了對計算機可讀指令、數據結構、程序模塊和其它數據的非易 失性存儲。
      盡管此處所述的示例性環(huán)境使用硬盤、可移動磁盤129和可移動光盤131, 但是應該理解,在示例性操作環(huán)境中也可使用能夠存儲可由計算機訪問的數據 的其它類型的計算機可讀介質。這樣的其它類型介質包括磁帶盒、閃存卡、數 字視頻盤、貝努利盒式磁帶、隨機存取存儲器(RAM)、只讀存儲器(ROM) 等。
      可在硬盤、磁盤129、光盤131、 ROM 124或RAM 125上存儲多個程序模塊,包括操作系統(tǒng)135、 一個或多個應用程序136、其它程序模塊137和程序數據138。用戶可通過諸如鍵盤140和定點設備142等輸入設備向個人計算機120中輸入命令和信息。其它輸入設備(未示出)可以包括話筒、操縱桿、游戲手柄、圓盤式衛(wèi)星天線、掃描儀等。這些和其它輸入設備通常由耦合至系統(tǒng)總線的串行端口接口 146連接至處理單元121,但也可以由其它接口,諸如并行端口、游戲端口或通用串行總線(USB)連接。監(jiān)視器147或其它類型的顯示設備也經由接口,諸如視頻適配器148連接至系統(tǒng)總線123。除了監(jiān)視器147之外,個人計算機通常包括諸如揚聲器和打印機等其它外圍輸出設備(未示出)。圖1的示例性系統(tǒng)還包括主機適配器155、小型計算機系統(tǒng)接口 (SCSI)總線156以及連接到SCSI總線156的外置存儲設備162。
      個人計算機120可使用至一個或多個遠程計算機,諸如遠程計算機149的邏輯連接在網絡化環(huán)境中操作。遠程計算機149可以是另一個人計算機、服務器、路由器、網絡PC、對等設備或其它常見的網絡節(jié)點,且通常包括上文相對于個人計算機120描述的許多或所有元件,盡管在圖1中只示出存儲器存儲設備150。圖1中所示邏輯連接包括局域網(LAN) 151和廣域網(WAN)152。這樣的聯(lián)網環(huán)境在辦公室、企業(yè)范圍計算機網絡、內聯(lián)網和因特網中是常見的。
      當在LAN聯(lián)網環(huán)境中使用時,個人計算機120通過網絡接口或適配器153連接至LAN151。當在WAN聯(lián)網環(huán)境中使用時,個人計算機120通常包括調制解調器154或用于通過諸如因特網等廣域網152建立通信的其它裝置?;驗閮戎没驗橥庵玫恼{制解調器154經由串行端口接口 146連接到系統(tǒng)總線123。在網絡化環(huán)境中,相對于個人計算機120所描述的程序模塊或其部分可以存儲在遠程存儲器存儲設備中??梢岳斫猓镜木W絡連接是示例性的,且可以使用在計算機之間建立通信鏈路的其它手段。
      多核處理器
      如上所述,本發(fā)明關于諸如圖2和3所示的多核處理器10來執(zhí)行。多核處理器10是基于多核處理器架構來設計的,以便在單個處理器10中包括兩個或更多基于處理器的計算引擎,g卩"核"12。如所見,圖2和3的處理器10包括4個核12,但是可在處理器10中使用任何數量的核12而不背離本發(fā)明的精 神和范圍。具有多個核12的處理器10被安裝到計算設備14的單個處理器插 槽等中,但是計算設備14的操作系統(tǒng)16將處理器10的每個執(zhí)行核12視為能 夠單獨地被分配工作并且可訪問所有相關聯(lián)的執(zhí)行資源的分立的邏輯處理器。 這樣的多核處理器10、計算設備14和操作系統(tǒng)16是已知的或應該對相關公眾 是顯而易見的,并因而除所提供的之外,無需在此詳細闡明。因此,這樣的多 核處理器10、計算設備14和操作系統(tǒng)16可以是任何合適的多核處理器、計算 設備和操作系統(tǒng)而不背離本發(fā)明的精神和范圍。
      假定任何特定計算設備14上的多核處理器10可具有不同數量的核12, 并且還假定任何特定處理器IO上的不同的核12可提供不同的功能或甚至采用 不同的指令集。因此,如可以理解的,難以開發(fā)能夠處理這樣的多樣性的多核 應用程序18。舉一個例子,經常難以編寫能夠處理處理器10中變化數量的核 12的多核應用程序18,因為這些核12之中的數據和計算的劃分可能與獨立控 制線程的數量緊密相聯(lián)系。舉另一個例子,經常難以為具有不同功能單元的機 器編寫編譯器,因為該編譯器將對于每個這樣的不同的功能單元采用不同的優(yōu) 化策略和代碼生成技術。
      從圖2和3可以看出,特定應用程序18在計算設備14的操作系統(tǒng)16中 或由其來實例化,并且已被構造成跨處理器10的期望數量的的核12來分配特 定數量的應用程序工作部分19。例如,如從圖2中可以看到,應用程序18是 期望跨處理器10的8個核12分配應用程序工作部分19的8核應用程序18。 同樣,如從圖3中可以看到,應用程序18是期望跨處理器10的2個核12分 配應用程序工作部分19的2核應用程序18。如圖2和3所示的這樣的多核應 用程序18是已知的或應該對相關公眾是顯而易見的,并因而除所提供的之外, 無需在此詳細闡明。因此,這樣的多核應用程序18可以是任何合適的多核應 用程序而不背離本發(fā)明的精神和范圍。
      如應該理解的,如由圖2和圖3中的應用程序IO來分配的每個工作部分 19可以在任何合適的基礎上定義而不背離本發(fā)明的精神和范圍。例如,每個工 作部分19都可包括一個或多個線程等等,并且可被選擇為要求大致相同數量 的處理容量或"帶寬"。有了這些工作部分19,并且如也應該理解的,多核處理器10通過在特定核上執(zhí)行每個部分,由此在給定的處理器時鐘周期內執(zhí)行更 多的工作來提升性能。
      如從圖2可以看出,因為應用程序18期望從所示的處理器10獲得8個核 12,而這一處理器10實際上具有4個核12,所以應用程序18正為操作系統(tǒng) 16生成8個工作部分19以便進行處理。因此,操作系統(tǒng)16必須以某種方式將 這8個工作部分19引導到處理器10的4個核12。例如,如圖所示,操作系統(tǒng) 16可簡單地選擇將兩個工作部分19重新分配到每個核12。如上所述,這樣的 重新分配可能在特設的基礎上、且在不具有來自應用程序18的協(xié)助或關于要 采用的優(yōu)選方法(如果的確存在這一方法)的任何知識的情況下由該操作系統(tǒng) 等來執(zhí)行。因此,這樣的重新分配可能導致低效率,例如,如果第一核12最 終被分配到需要相對較大量帶寬的工作,而第二核12最終被分配到需要相對 較少量帶寬的工作,則該應用程序就必須持續(xù)地等待該第一核12。類似地,這 樣的分配在某些情況下甚至可能導致錯誤或甚至致命錯誤,諸如在等待應用程 序18時由于某種原因錯過了來自某一源的關鍵數據。
      如從圖3可以看出,與圖2相反,因為應用程序期望從所示的處理器10 獲得2個核12,而這一處理器10實際上具有4個核12,所以應用程序18正 為操作系統(tǒng)16生成2個工作部分19以便進行處理。因此,操作系統(tǒng)16同樣 將這2個工作部分19引導到處理器10的4個核12。結果,另兩個核12至少 對于該應用程序而言是空閑的。如可以理解的,這些空閑的核12表示浪費的 容量,并且更廣泛而言浪費了更快地和/或更高效地操作該應用程序18的機會。
      一般而言,因而,當應用程序18被構造成利用該計算設備14上的處理器 10的一個數量N個核12,且這一處理器10實際上具有另一數量M個核12時, 可能引發(fā)低效率和/或其他問題。由此,本發(fā)明解決了這些低效率和/或其他問 題,這通過如圖4所示將虛擬機20插入到應用程序18與處理器10之間以便 實際上對N核應用程序18仿真N核處理器10來實現(xiàn)。
      虛擬機20
      如應該理解的,諸如圖4的虛擬機20等虛擬機是出于仿真硬件系統(tǒng)的目 的在計算設備14上操作的軟件構造等。具體而言,在本發(fā)明中,虛擬機20對N核應用程序18仿真N核處理器10。通常,但不必然地,虛擬機20本身是 應用程序等,并在計算設備"上用于主存N核應用程序18。如應該理解的, 這一虛擬機20可表示計算設備14的劃分,并由此可將應用程序18與在這一 計算設備上的其他應用程序隔離開。
      此處注意,虛擬機20可被構造成仿真具有特定數量的核12的處理器10, 或可被構造成仿真具有任何所需數量的核12的處理器10。在前一情況下,圖 2的8核應用程序18將需要仿真8核處理器10的第一虛擬機20,而圖3的2 核應用程序18將需要仿真2核處理器10的第二虛擬機20。在后一情況下,同 一虛擬機能夠為圖2的8核應用程序18仿真8核處理器10,并且也能夠為圖 3的2核應用程序18仿真2核處理器10。
      構造虛擬機20并在具有M核處理器10的計算設備14上將其實例化一般 是已知的或應該對相關公眾是顯而易見的,并因而除所提供的之外,無需在此 詳細闡明。因此,可以使用任何合適的虛擬機20來為N核應用程序18仿真具 有特定數量N個核12的處理器IO而不背離本發(fā)明的精神和范圍,當然假定虛 擬機20執(zhí)行本發(fā)明所需的功能。
      此處注意,對這一虛擬機20的使用總體而言可能不是特別高效,尤其在 該虛擬機20正在仿真比處理器10的M個核12多的一數量N個核12的情況 下。然而,為N核應用程序18仿真特定數量N個核12的這一虛擬機20通過 實際上向這一 N核應用程序表示這樣的N個核12來至少允許該應用程序18 在M核處理器10上執(zhí)行。g卩,為N核應用程序18仿真N個核12的虛擬機 20實際上在這一應用程序18本來不能在該M核處理器10上操作時允許該應 用程序18在該M核處理器IO上操作。
      虛擬機20實際上操作以便隱藏應用程序18所期望的N個核12與可從處 理器10獲得的M個核12之間的差別。由此,虛擬機20提供一機器的單個的、 統(tǒng)一的抽象,該機器具有一給定數量的處理器核12以及一給定的功能單元的 集合,且該抽象獨立于底層處理器10實際上所提供的。結果,開發(fā)者可基于 采取N核處理器10的單個底層框架來開發(fā)N核應用程序18,即使處理器10 實際上有M個核12。
      注意,雖然可以使用虛擬機20來基于處理器10的M個核12盡可能高效地操作應用程序18,但是在某些情況下可能更期望改為強調這樣做會犧牲效率
      的其他操作方面。例如,對于2核應用程序18和4核處理器10,該虛擬機對 于應用程序18所期望的每個核12使用處理器10的2個核12可能是更加高效 的。然而,這樣做在某些情況下可能是不明智的,也許在應用程序18的每個 工作部分19不能夠在處理器10的2個核12之間劃分的情況下。在這一情況 下,于是,該虛擬機可改為對于應用程序18所期望的每個核12使用處理器10 的1個核12,即使這樣做將導致該處理器10的2個核12被留為空閑。
      使用虛擬機20作為應用程序18與處理器10之間的中介能夠在至少某些 情況下提供附屬但顯著的優(yōu)點。例如,如果應用程序18包括頻繁地進行通信 和/或共享相對較大量數據的一對工作部分19,則這些工作部分19應該有利地 共享存儲器、緩沖區(qū)等以使得這樣的通信或共享涉及一個工作部分19將數據 放置在共享空間中并且另一個工作部分19檢索該數據。
      值得注意的是,如從圖5可以看出, 一典型的多核處理器10組織核12 以便以分層的方式共享高速緩存22。具體而言,每個核12本身具有一級(Ll) 高速緩存22,各對核12共享二級(L2)高速緩存22,四個核12的組共享三 級(L3)高速緩存22等。因此,共享一特定L2高速緩存22的一對核12可通 過相應的一對Ll高速緩存22和共享的L2高速緩存22以相對更高效的方式相 互之間進行通信或共享。相反,不共享一特定L2高速緩存22但共享一特定 L3高速緩存22的一對核12可通過相應的一對Ll高速緩存22、相應的一對 L2高速緩存22和共享的L3高速緩存22以相對較不高效的方式相互之間進行 通信或共享。
      由此,在這一典型的多核處理器10中,如果應用程序18包括頻繁地進行 通信和/或共享相對較大量數據的一對工作部分19,則這些工作部分19應該被 分配給共享L2高速緩存22的一對核12。因此,在本發(fā)明的一個實施例中, 作為應用程序18與處理器10之間的中介的虛擬機20根據對該工作部分19具 有多少與任何其他工作部分的交互的評估來將應用程序18的每個工作部分19 分配給處理器10的相應核12。
      由此,如從圖5可以看出,相對較大量地交互的一對工作部分19可被分 配給處理器10的共享L2高速緩存22的一對核12,而相對較少量地交互的一對工作部分19可被分配給處理器10的共享L3高速緩存22的一對核12,以 及即使不是沒有交互也是最少量地交互的一對工作部分19可被分配給處理器 10的共享L4、 L5、 L6等高速緩存22 (假設這一高速緩存22存在)的一對核 12。在任何這樣的情況下,是虛擬機20而不是應用程序18執(zhí)行這樣的分配, 并且因此應用程序18不需要被開發(fā)成具有這一分配功能。當然,根據交互來 分配工作部分19的實際方法可以是任何合適的方法而不背離本發(fā)明的精神和 范圍。
      使用虛擬機20作為應用程序18與處理器10之間的中介還可提供附屬但 顯著的優(yōu)點,這表現(xiàn)在虛擬機20可以在處理器10的核12之間執(zhí)行動態(tài)負載 平衡。具體而言,如果應用程序18將其工作分成多個工作部分19,則虛擬機 20可基于對一特定核12的工作負載的評估來決定將一特定工作部分19分配給 這一特定核12。
      由此,如從圖6可以看出,虛擬機20可將該特定工作部分19分配給具有 相對較小工作負載的核12,諸如最左邊的具有20%工作負載(20%WL)的核 12,而不是具有相對較大工作負載的核12,諸如最右邊的具有80%工作負載 (80%WL)的核12。此外,虛擬機20可將一特定工作部分19從具有相對較 大工作負載的核,諸如中間靠右的具有100%工作負載(100% WL)的核12, 重新分配給具有相對較小工作負載的核12,諸如中間靠左的具有35%工作負 載(35% WL)的核12。在任何這樣的情況下,是虛擬機20而不是應用程序 18執(zhí)行這樣的負載平衡,并且因此應用程序18不需要被開發(fā)成具有這一負載 平衡功能。當然,根據工作負載來分配工作部分19的實際方法可以是任何合 適的方法而不背離本發(fā)明的精神和范圍。
      值得注意的是, 一特定多核處理器10不必具有相同的核12。相反,每個 核12都可以是一特定的專用類型。例如,情況可以是在8核處理器10中,核 12中的6個執(zhí)行通用處理,而核中的一個執(zhí)行視頻圖形處理且核中的一個執(zhí)行 密碼處理。類似地,如可以從圖7中看出,4核處理器10可包括音頻核12、 視頻核12、安全核12和通用核12。
      在這些專用類型的核12的情況下,于是,使用虛擬機20作為應用程序 18與處理器IO之間的中介可另外提供附屬但顯著的優(yōu)點,這表現(xiàn)在虛擬機20可根據工作部分19的類型以及可從處理器10獲得的核12的類型來執(zhí)行工作 部分19的分配。具體而言,如果應用程序18具有需要密碼處理的工作部分19, 則虛擬機20將基于處理器10是否具有密碼處理核12,并且還基于這一密碼核 12的工作負載來分配這一工作部分19。如可以理解的,如果這一密碼核12存 在并且可用,則虛擬機20會將這一工作部分19分配給該密碼核12而不會有 進一步的忙亂。然而,如果這一密碼核12存在但是忙碌,則該虛擬機20可將 這一工作部分19分配給該密碼核12、或另一個密碼核12、或具有其上運行的 密碼軟件的通用核12,所有都取決于各種情況。當然,如果密碼核12不存在, 則虛擬機20將必須將這一工作部分19分配給具有其上運行的密碼軟件的通用 核12等。在任何這樣的情況下,并且再一次,是虛擬機20而不是應用程序18 執(zhí)行這樣的基于功能的分配,并且因此應用程序18不需要被開發(fā)成具有這些 基于功能的分配的能力。當然,根據功能來分配工作部分19的實際方法可以 是任何合適的方法而不背離本發(fā)明的精神和范圍。
      結論
      實現(xiàn)結合本發(fā)明執(zhí)行的過程所需的編程相當直接,且應對相關編程公眾是 顯而易見的。因而,這樣的編程不附在此。因此,可采用任何特定的編程來實 現(xiàn)本發(fā)明,而不背離其精神和范圍。
      在前述描述中,可以看到本發(fā)明包括可以用于實際上在M核處理器10上 高效地操作被構造成在N核處理器10上操作的N核應用程序18的新穎且有 用的方法,其中M大于或小于N。該N核應用程序18即使實際上在M核處 理器10上,也猶如在N核處理器10上那樣操作。具體而言,N核應用程序 18在仿真N核處理器10并且以高效的方式將該應用程序18的工作重新分配 給該M核處理器10的虛擬機上操作。這樣的分配可基于應用程序18的工作 部分19之間的交互、基于負載平衡考慮、和/或基于應用程序18的每個工作部 分19所需的功能等來執(zhí)行。
      應當理解,可對上述實施例作出改變而不脫離其發(fā)明概念。從而應理解,本發(fā) 明不限于所公開的具體實施例,而是旨在覆蓋落入如由所附權利要求書定義的本發(fā)明 的精神和范圍內的修改。
      權利要求
      1. 一種計算設備,具有具有特定數量M個執(zhí)行核的多核處理器,每一個核都是能夠單獨被分配工作的分立的邏輯處理實體;在所述計算設備上被實例化并且期望在所述M核處理器上存在特定數量N個執(zhí)行核的多核應用程序,所述N核應用程序由此分配特定數量N個應用程序工作部分;以及在所述M核處理器上被實例化的虛擬機,所述N核應用程序在所述虛擬機上被實例化,所述虛擬機對所述N核應用程序仿真N核處理器,并且由此隱藏所述應用程序所期望的N個核與可從所述處理器獲得M個核之間的差別。
      2. 如權利要求1所述的計算設備,其特征在于,由所述應用程序分配的每 個工作部分都包括至少一個線程。
      3. 如權利要求1所述的計算設備,其特征在于,所述虛擬機表示將所述應 用程序與所述計算設備上的其他應用程序隔離開的這一計算設備的劃分。
      4. 如權利要求1所述的計算設備,其特征在于,所述虛擬機為應用程序仿 真所述處理器的多個不同數量N個核,并且其中所述虛擬機可以在各自具有不 同數量M個核的多個處理器中的任一個上被實例化。
      5. 如權利要求1所述的計算設備,其特征在于,所述虛擬機為應用程序仿 真所述處理器的多個不同數量N個核,并且其中所述虛擬機可以在各自具有不 同數量M個核的多個處理器中的任一個上被實例化。
      6. 如權利要求1所述的計算設備,其特征在于,所述處理器的核被組織成 對,每對核中的每個核都耦合至一級(Ll)高速緩存,并且每對核的L1高速 緩存耦合至共享的二級(L2)高速緩存,以使得所述一對核能夠通過所述共享 的L2高速緩存在其間直接傳送數據,并且其中,所述虛擬機在將所述應用程序的一對工作部分分配給所述處理器的相應核時評估在所述一對工作部分之 間存在多少交互,并且基于這一評估分配所述一對工作部分,所述虛擬機將相對較大量地交互的一對工作部分分配給所述處理器的共享L2高速緩存的一對 核,而將相對較少量地交互的一對工作部分分配給所述處理器的不共享L2高 速緩存的核。
      7. 如權利要求1所述的計算設備,其特征在于,所述虛擬機在將所述應用 程序的工作部分分配給所述處理器的核時在所述處理器的核之間執(zhí)行動態(tài)負 載平衡,所述虛擬機基于對一特定核的工作負載的評估來將每個工作部分分配 給這一特定核。
      8. 如權利要求1所述的計算設備,其特征在于,所述多核處理器的每個核 都具有選自多個核類型的特定類型,其中所述應用程序的每個工作部分都具有 選自多個工作部分類型的特定類型,并且其中,所述虛擬機根據所述工作部分 的類型以及可從所述處理器獲得的每個核的類型來將所述應用程序的每個工 作部分分配給所述處理器的核。
      9. 如權利要求7所述的計算設備,其特征在于,所述處理器的第一核是執(zhí) 行相應的專門任務的專門類型的核,并且第二核是執(zhí)行通用任務的通用類型的 核,其中如果所述第一核是可用的,則所述虛擬機將對應于所述專門任務的工作部分分配給這一第一核,并且其中如果這一第一核是不可用的,則所述虛擬 機將所述對應于所述專門任務的工作部分分配給所述第二核,所述第二核運行 仿真以便執(zhí)行所述專門任務。
      10. —種其上存儲有用于在計算設備上實現(xiàn)虛擬機的計算機可執(zhí)行指 令的計算機可讀介質,所述計算設備具有具有特定數量M個執(zhí)行核的多核處理器,每一個核都是能夠單獨被分配 工作的分立的邏輯處理實體;以及在所述計算設備上被實例化并且期望在所述M核處理器上存在特定數量N個執(zhí)行核的多核應用程序,所述N核應用程序由此分配特定數量N個應用 程序工作部分,用于在所述M核處理器上被實例化的虛擬機,所述N核應用程序在所述 虛擬機上被實例化,所述虛擬機對所述N核應用程序仿真N核處理器,并且 由此隱藏所述應用程序所期望的N個核與可從所述處理器獲得M個核之間的 差別。
      11. 如權利要求9所述的介質,其特征在于,所述虛擬機表示將所述應 用程序與所述計算設備上的其他應用程序隔離開的這一計算設備的劃分。
      12. 如權利要求9所述的介質,其特征在于,所述虛擬機為應用程序仿 真所述處理器的多個不同數量N個核,并且其中,所述虛擬機可以在各自具有 不同數量M個核的多個處理器中的任一個上被實例化。
      13. 如權利要求9所述的介質,其特征在于,所述處理器的核被組織成 對,每對核中的每個核都耦合至一級(Ll)高速緩存,并且每對核的L1高速 緩存耦合至共享的二級(L2)高速緩存,以使得所述一對核能夠通過所述共享 的L2高速緩存在其間直接傳送數據,并且其中,所述虛擬機在將所述應用程 序的一對工作部分分配給所述處理器的相應核時評估在所述一對工作部分之 間存在多少交互,并且基于這一評估分配所述一對工作部分,所述虛擬機將相 對較大量地交互的一對工作部分分配給所述處理器的共享L2高速緩存的一對 核,而將相對較少量地交互的一對工作部分分配給所述處理器的不共享L2高 速緩存的核。
      14. 如權利要求9所述的介質,其特征在于,所述虛擬機在將所述應用 程序的工作部分分配給所述處理器的核時在所述處理器的核之間執(zhí)行動態(tài)負 載平衡,所述虛擬機基于對一特定核的工作負載的評估來將每個工作部分分配 給這一特定核。
      15. 如權利要求9所述的介質,其特征在于,所述多核處理器的每個核 都具有選自多個核類型的特定類型,其中所述應用程序的每個工作部分都具有 選自多個工作部分類型的特定類型,并且其中所述虛擬機根據所述工作部分的 類型以及可從所述處理器獲得的每個核的類型來將所述應用程序的每個工作 部分分配給所述處理器的核。
      16. 如權利要求14所述的介質,其特征在于,所述處理器的第一核是 執(zhí)行相應的專門任務的專門類型的核,并且第二核是執(zhí)行通用任務的通用類型 的核,其中如果所述第一核是可用的,則所述虛擬機將對應于所述專門任務的 工作部分分配給這一第一核,并且其中如果這一第一核是不可用的,則所述虛 擬機將所述對應于所述專門任務的工作部分分配給所述第二核,所述第二核運 行仿真以便執(zhí)行所述專門任務。
      全文摘要
      虛擬機在M核處理器上被實例化,并且N核應用程序在該虛擬機上被實例化,以使得該虛擬機對該N核應用程序仿真N核處理器。由此,該虛擬機隱藏了該應用程序所期望的N個核與可從該處理器獲得的M個核之間的差別。
      文檔編號G06F9/44GK101460923SQ200780020314
      公開日2009年6月17日 申請日期2007年6月1日 優(yōu)先權日2006年6月1日
      發(fā)明者J·R·勞瑞斯 申請人:微軟公司
      網友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1