两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

虛擬中央處理單元的寄存器類型感知的調(diào)度的制作方法

文檔序號(hào):11851405閱讀:280來源:國知局
虛擬中央處理單元的寄存器類型感知的調(diào)度的制作方法與工藝

本發(fā)明大體上涉及機(jī)器虛擬化,并且具體涉及用于調(diào)度虛擬中央處理單元(VCPU)的方法和系統(tǒng)。

發(fā)明概述

本文描述的本發(fā)明的實(shí)施例提供方法,該方法包括在支持通用寄存器和專用寄存器的多個(gè)物理處理核上運(yùn)行多個(gè)處理任務(wù)。對(duì)處理任務(wù)使用專用寄存器的各自的使用等級(jí)進(jìn)行估計(jì)?;趯S眉拇嫫鞯墓烙?jì)的使用等級(jí),將物理處理核分配到處理任務(wù)。

在一些實(shí)施例中,分配物理處理核包括應(yīng)用調(diào)度準(zhǔn)則,該調(diào)度準(zhǔn)則目的在于減少每物理處理核的專用寄存器的使用。在實(shí)施例中,調(diào)度準(zhǔn)則目的在于減少使用任何給定的物理處理核上的專用寄存器的處理任務(wù)的最大數(shù)量。在另一個(gè)實(shí)施例中,調(diào)度準(zhǔn)則目的在于減少專用寄存器的保存和加載操作的數(shù)量。在又一個(gè)實(shí)施例中,調(diào)度準(zhǔn)則目的在于減少檢測操作的數(shù)量,該檢測操作檢測專用寄存器的使用。

在所公開的實(shí)施例中,估計(jì)使用等級(jí)包括向處理任務(wù)分配指示專用寄存器的使用等級(jí)的各自的分?jǐn)?shù),以及分配物理處理核包括根據(jù)分?jǐn)?shù)調(diào)度用于通過物理處理核執(zhí)行的處理任務(wù)。在各種實(shí)施例中,專用寄存器可以包括浮點(diǎn)單元(FPU)寄存器、單指令多數(shù)據(jù)(SIMD)寄存器和/或向量寄存器。在實(shí)施例中,運(yùn)行處理任務(wù)包括運(yùn)行虛擬機(jī)(VM)的虛擬中央處理單元(VCPU)。

在一些實(shí)施例中,多個(gè)物理處理核被包括在處理器中。在其他實(shí)施例中,多個(gè)物理處理核分布在多個(gè)物理主機(jī)上。在實(shí)施例中,將物理處理核分配到處理任務(wù)包括基于專用寄存器的估計(jì)的使用等級(jí)來確定將執(zhí)行處理任務(wù)的虛擬機(jī)(VM)放置在包括物理處理核的物理主機(jī)上。

根據(jù)本發(fā)明的實(shí)施例,本發(fā)明另外提供包括監(jiān)控模塊和調(diào)度模塊的裝置。監(jiān)控模塊被配置為監(jiān)控在支持通用寄存器和專用寄存器的多個(gè)物理處理核上運(yùn)行的多個(gè)處理任務(wù),以及估計(jì)處理任務(wù)使用專用寄存器的各自的使用等級(jí)。調(diào)度模塊被配置為基于專用寄存器的估計(jì)的使用等級(jí),將物理處理核分配到處理任務(wù)。

根據(jù)本發(fā)明的實(shí)施例,本發(fā)明還提供包括多個(gè)物理處理核和超級(jí)管理器的處理器。物理處理核支持通用寄存器和專用寄存器。超級(jí)管理器被配置為在物理處理核上運(yùn)行多個(gè)處理任務(wù),估計(jì)處理任務(wù)使用專用寄存器的各自的使用等級(jí),以及基于專用寄存器的估計(jì)的使用等級(jí),將物理處理核分配到處理任務(wù)。

從結(jié)合附圖進(jìn)行的本發(fā)明的實(shí)施例的以下詳細(xì)描述,本發(fā)明將被更完全地理解,其中:

附圖簡述

圖1是根據(jù)本發(fā)明的實(shí)施例示意性示出計(jì)算機(jī)的框圖;

圖2是根據(jù)本發(fā)明的實(shí)施例示意性示出用于將VCPU分配到物理CPU核的方法的流程圖;以及

圖3是根據(jù)本發(fā)明的實(shí)施例示意性示出用于虛擬機(jī)(VM)放置的方法的流程圖。

實(shí)施例的詳細(xì)描述

概述

本文描述的本發(fā)明的實(shí)施例提供用于對(duì)潛在地使用通用寄存器和專用寄存器的處理任務(wù)的調(diào)度的改進(jìn)的方法和系統(tǒng)。在一些實(shí)施例中,計(jì)算機(jī)托管一個(gè)或多個(gè)虛擬機(jī)(VM),每個(gè)虛擬機(jī)包括一個(gè)或多個(gè)虛擬中央處理單元(VCPU)。計(jì)算機(jī)中的超級(jí)管理器將物理資源分配到各種VM,并且具體地將計(jì)算機(jī)的物理處理核分配到VCPU。

物理處理核支持通用寄存器和專用寄存器。專用寄存器可以包括例如,用于浮點(diǎn)計(jì)算的浮點(diǎn)單元(FPU)寄存器、用于SIMD操作的單指令多數(shù)據(jù)(SIMD)寄存器或用于向量計(jì)算的向量寄存器。

在大多數(shù)實(shí)際場景下,專用寄存器是由相對(duì)較少的軟件應(yīng)用使用的。然而,如果使用專用寄存器的VCPU被分配到相同的物理處理核,它們之間的上下文切換通常導(dǎo)致相當(dāng)大的開銷。這樣的上下文切換通常涉及將一個(gè)VCPU的上下文(包括專用寄存器內(nèi)容)存儲(chǔ)在隨機(jī)存取存儲(chǔ)器(RAM)中,并且從RAM加載另一個(gè)VCPU的上下文(包括專用寄存器內(nèi)容)。

在一些實(shí)施例中,超級(jí)管理器以減少或消除這種開銷的方式將VCPU分配到處理核。通常,超級(jí)管理器目的在于將使用專用寄存器的VCPU分配到不同的物理處理核。當(dāng)全分隔是不可能時(shí),超級(jí)管理器的目的可以是在物理處理核中盡可能分布專用寄存器的使用,并且從而減少每物理處理核的專用寄存器的使用。在本文中對(duì)實(shí)現(xiàn)該目標(biāo)的各種調(diào)度方案進(jìn)行描述。

在實(shí)施例中,超級(jí)管理器監(jiān)控各種VCPU的操作,并且向每個(gè)VCPU分配指示VCPU使用專用寄存器的等級(jí)的分?jǐn)?shù)。在一個(gè)示例實(shí)現(xiàn)中,分?jǐn)?shù)包括單個(gè)位,例如,“1”為使用專用寄存器的VCPU以及“0”為沒有使用專用寄存器的VCPU。超級(jí)管理器然后基于分?jǐn)?shù)將VCPU分配到物理處理核。

本文描述的實(shí)施例主要指的是將VCPU分配到物理處理核,但所公開的技術(shù)可以與其他類型的處理任務(wù)一起使用。例如,本文描述的方法可以由操作系統(tǒng)用于將潛在地使用專用寄存器的軟件線程進(jìn)行調(diào)度。此外,處理核不一定需要駐留在單個(gè)計(jì)算機(jī)中。例如,所公開的技術(shù)可以用作將VM分配到物理主機(jī)的放置算法的部分。

系統(tǒng)描述

圖1是根據(jù)本發(fā)明的實(shí)施例示意性示出計(jì)算機(jī)20的框圖。計(jì)算機(jī)20包括中央處理單元(CPU)24,該中央處理單元24包括多個(gè)物理處理核28和隨機(jī)存取存儲(chǔ)器(RAM)30。物理處理核28在本文中還被稱為處理核,或者為簡潔起見簡稱為核。

超級(jí)管理器32將計(jì)算機(jī)20的物理資源分配到由該計(jì)算機(jī)托管的一個(gè)或多個(gè)虛擬機(jī)(VM)36。超級(jí)管理器32通常被實(shí)現(xiàn)為在CPU24上運(yùn)行的軟件層。由超級(jí)管理器分配的物理資源可以包括例如,核28的資源、RAM30以及網(wǎng)絡(luò)通信或持久性存儲(chǔ)資源(未在圖中示出)。

在一些實(shí)施例中,每個(gè)VM36包括一個(gè)或多個(gè)虛擬CPU(VCPU)40,該VCPU仿真物理CPU的操作。在各種資源分配功能中,超級(jí)管理器32使用下面詳細(xì)描述的方法來將物理處理核28分配到VCPU40。在本示例中,超級(jí)管理器32包括VCPU監(jiān)控模塊44(還被稱為VCPU監(jiān)控器)以及VCPU調(diào)度模塊48(還被稱為VCPU調(diào)度器)。監(jiān)控模塊44監(jiān)控VCPU40的活動(dòng),并且評(píng)估每個(gè)VCPU使用專用寄存器(例如,F(xiàn)PU、SIMD和/或向量寄存器)的程度。調(diào)度模塊48基于該評(píng)估將核28分配到VCPU40。

可使用硬件/固件,諸如在一個(gè)或多個(gè)專用集成電路(ASIC)或現(xiàn)場可編程門陣列(FPGA)中實(shí)施計(jì)算機(jī)20的各種元件??商鎿Q地,一些計(jì)算機(jī)元件(諸如超級(jí)管理器32)可在軟件或使用硬件/固件和軟件元件的組合實(shí)施。在一些實(shí)施例中,CPU24和核28包括在軟件中編程以執(zhí)行本文描述的功能的一個(gè)或多個(gè)通用處理器??山?jīng)由網(wǎng)絡(luò)以電子形式將軟件下載到處理器,例如,或者所述軟件可以可選地或附加地被提供和/或存儲(chǔ)在非暫時(shí)性有形介質(zhì)上,諸如磁存儲(chǔ)器、光學(xué)存儲(chǔ)器或電子存儲(chǔ)器。

基于專用寄存器的使用的物理處理核到VCPU的分配

在一些實(shí)施例中,CPU24的核28支持至少兩種類型的寄存器,其在本文中被稱為通用寄存器和專用寄存器。通用寄存器用于大多數(shù)操作類型。雖然不是必須的,專用寄存器通常比通用寄存器具有更多的位并且專用于更復(fù)雜的操作。

專用寄存器可以包括例如,用于浮點(diǎn)計(jì)算的浮點(diǎn)單元(FPU)寄存器、用于SIMD操作的單指令多數(shù)據(jù)(SIMD)寄存器或用于向量計(jì)算的向量寄存器。專用寄存器的具體示例包括MMX、流式SIMD擴(kuò)展(SSE)、SSE2、SSE3、高級(jí)矢量擴(kuò)展(AVX)以及AVX2寄存器。可替換地,所公開的技術(shù)可以與任何其它合適的專用寄存器一起使用。

通用寄存器可以包括例如,32位或64位寄存器。專用寄存器可以包括例如,80位、128位、256位或512位寄存器。純粹通過示例的方式給出上面的寄存器大小,并且可以在替換的實(shí)施例中使用任何其他合適的寄存器大小。

在大多數(shù)實(shí)際場景下,專用寄存器是由相對(duì)較少的軟件應(yīng)用使用的。然而,在某些情況下,使用專用寄存器的不同的VCPU40可以被分配到相同的核28。在這樣的情況下,超級(jí)管理器32的VCPU調(diào)度器48通過VCPU之間定期地上下文切換交替地將核28分配到VCPU。

在每個(gè)上下文切換操作中,調(diào)度器48通常暫停當(dāng)前正在執(zhí)行的VCPU,將該VCPU的上下文(包括專用寄存器內(nèi)容)存儲(chǔ)在RAM30中,從該RAM加載另一個(gè)VCPU的上下文(包括專用寄存器內(nèi)容),以及繼續(xù)新的VCPU的執(zhí)行。上下文切換操作導(dǎo)致相當(dāng)大的開銷,一定程度上是由于寄存器的大尺寸。

在一些實(shí)施例中,VCPU調(diào)度器48以減少或消除這種開銷的方式將VCPU40分配到核28。在這些實(shí)施例中,VCPU監(jiān)控器44估計(jì)各種VCPU40使用專用寄存器的使用等級(jí),以及VCPU調(diào)度器48基于專用寄存器的估計(jì)的使用等級(jí)將核28分配到VCPU40。

通常,調(diào)度器48目的在于將使用專用寄存器的VCPU分配到不同的核。更普遍的是,調(diào)度器的目的可以是在核28中盡可能分布專用寄存器的使用,并且從而減少每核的專用寄存器的使用。

利用這種分配,降低了專用寄存器的VCPU之間的競爭的程度。這種分配還減少專用寄存器的加載/保存操作的數(shù)量以及陷阱的數(shù)量(在超級(jí)管理器和VM客戶操作系統(tǒng)之間的上下文切換用于檢測專用寄存器的使用并且按需加載/保存它們)。因此,提高了由超級(jí)管理器32實(shí)現(xiàn)的調(diào)度效率。

在各種實(shí)施例中,調(diào)度器48可以應(yīng)用各種合適的調(diào)度準(zhǔn)則,以便減少每核28的專用寄存器的加載/保存操作。在一個(gè)實(shí)施例中,調(diào)度準(zhǔn)則目的在于減少使用任何給定的核28上的專用寄存器的不同的VCPU40的最大數(shù)量。在另一個(gè)實(shí)施例中,調(diào)度準(zhǔn)則目的在于減少使用專用寄存器的VCPU之間的上下文切換操作的速率。

在一些實(shí)施例中,VCPU監(jiān)控器44監(jiān)控各種VCPU40的操作,并且向每個(gè)VCPU分配指示該VCPU使用專用寄存器的等級(jí)的分?jǐn)?shù)?;谠摲?jǐn)?shù),VCPU調(diào)度器48將VCPU40分配到核28。例如,調(diào)度器的目的可以是將分配給任何給定的核28的VCPU的分?jǐn)?shù)的最大總和進(jìn)行最小化。

監(jiān)控器44和調(diào)度器48可以使用任何合適類型的分?jǐn)?shù)來指示專用寄存器的使用的等級(jí)。在一個(gè)實(shí)施例中,分?jǐn)?shù)包括單個(gè)位,例如,“1”為使用專用寄存器的VCPU以及“0”為沒有使用專用寄存器的VCPU。替換的約定可以將“1”的分?jǐn)?shù)分配到廣泛地使用專用寄存器的VCPU,并且將“0”的分?jǐn)?shù)分配到幾乎沒有或根本沒有使用專用寄存器的VCPU。還能使用更高精度的分?jǐn)?shù),其還量化每個(gè)VCPU使用專用寄存器的程度。

圖2是根據(jù)本發(fā)明的實(shí)施例示意性示出用于將VCPU40分配到物理CPU核28的方法的流程圖。該方法在監(jiān)控步驟60處開始,VCPU監(jiān)控器44監(jiān)控VCPU40的活動(dòng),以及具體地監(jiān)控與專用寄存器的使用有關(guān)的活動(dòng)。在得分步驟64處,監(jiān)控器44根據(jù)它們對(duì)專用寄存器的使用等級(jí)向VCPU分配各自的分?jǐn)?shù)。監(jiān)控器44向VCPU調(diào)度器48報(bào)告該分?jǐn)?shù)。

在調(diào)度步驟68處,基于該分?jǐn)?shù),VCPU調(diào)度器48將VCPU40分配到核28。在固定步驟72處,調(diào)度器48將每個(gè)VCPU40固定到其分配的核28。該方法循環(huán)回到步驟60,以便繼續(xù)監(jiān)控VCPU活動(dòng)。在檢測到VCPU活動(dòng)中的變化時(shí),監(jiān)控器44可以適應(yīng)分?jǐn)?shù)中的一個(gè)或多個(gè),并且這種適應(yīng)可以促使調(diào)度器48適應(yīng)VCPU40到核28的分配。

基于專用寄存器的使用的VM放置

在一些實(shí)施例中,本文描述的調(diào)度方案可以用于實(shí)現(xiàn)(或結(jié)合)放置過程,該放置過程決定如何將VM分配到包括由網(wǎng)絡(luò)連接的多個(gè)主機(jī)的計(jì)算機(jī)系統(tǒng)中的物理主機(jī)。通過使用所公開的技術(shù),集約利用專用寄存器的VM可以被放置在不同的主機(jī)上,以便提高整體系統(tǒng)性能。可通過計(jì)算機(jī)20的CPU的一個(gè)或多個(gè)或者通過一些其他合適的處理器來執(zhí)行這樣的放置過程。

在這些實(shí)施例中,計(jì)算機(jī)系統(tǒng)包括多個(gè)計(jì)算機(jī),諸如圖1的計(jì)算機(jī)20。每個(gè)計(jì)算機(jī)20(還被稱為主機(jī)或物理主機(jī))運(yùn)行各自的超級(jí)管理器32。每個(gè)超級(jí)管理器32托管一個(gè)或多個(gè)VM36,每個(gè)VM包括一個(gè)或多個(gè)VCPU40。計(jì)算機(jī)系統(tǒng)運(yùn)行放置過程,該放置過程決定如何將VM36分配到主機(jī)20。術(shù)語“放置”指的是VM的初始配置和操作的VM從一個(gè)主機(jī)到另一個(gè)主機(jī)的實(shí)時(shí)遷移。

圖3是根據(jù)本發(fā)明的實(shí)施例示意性示出用于VM放置的方法的流程圖。該方法在活動(dòng)估計(jì)步驟80處開始,用各種計(jì)算機(jī)20的超級(jí)管理器32估計(jì)有關(guān)專用寄存器的使用的活動(dòng)程度。在分?jǐn)?shù)分配步驟84處,超級(jí)管理器32根據(jù)它們對(duì)專用寄存器的使用等級(jí)向VCPU分配各自的分?jǐn)?shù)。

在放置步驟88處,基于該分?jǐn)?shù),放置過程將VM36分配到物理主機(jī)20。通常,該分配目的在于減少或最小化每主機(jī)的總分。給定的主機(jī)的總分可以被定義為例如,分配到該主機(jī)的所有的VM的VCPU的分?jǐn)?shù)的總和。

為了使用公開的技術(shù)(與VM遷移相反)來在最初放置VM,放置過程通常使用有關(guān)VM使用專用寄存器的先驗(yàn)信息。例如,這樣的信息可以存儲(chǔ)在來自VM的過去激活的持久性存儲(chǔ)中。

作為另一個(gè)示例,討論中的VM可以是專用寄存器的使用是已知的另一個(gè)VM的克隆。放置過程可以假設(shè)兩個(gè)VM的使用是相似的。作為又一個(gè)示例,討論中的VM可以使用相同的圖像作為專用寄存器的使用是已知的另一個(gè)VM。在此情況下,放置過程也可以假設(shè)兩個(gè)VM的使用是相似的。

否則,放置過程可以在最初將VM放置在其中專用寄存器的使用是低的主機(jī)中。該示例證明VM的放置如何受其他VM的專用寄存器的使用的影響。

附加的實(shí)施例以及變型

在一些實(shí)施例中,由調(diào)度器48使用的調(diào)度準(zhǔn)則可以考慮附加的因素。附加的因素可包括例如,核28的性能約束或限制、VM36中的優(yōu)先級(jí)或任何其它合適的因素。

對(duì)于給定的VCPU40,調(diào)度器48可以建議幾個(gè)被分配給該VCPU的候選的核28,不一定是單個(gè)核。

本文描述的實(shí)施例主要指的是將VCPU分配到物理處理核,但所公開的技術(shù)可以與其他類型的處理任務(wù)一起使用。例如,本文描述的方法可以由操作系統(tǒng)(例如,VM的“裸機(jī)”操作系統(tǒng)或客戶操作系統(tǒng))用于將潛在地使用專用寄存器的軟件線程進(jìn)行調(diào)度。

將要理解的是,以上描述的實(shí)施例是通過示例的方式引用的,并且本發(fā)明不限于上文中已經(jīng)特別示出和描述的那些。相反,本發(fā)明的范圍包括上文所描述的各種特征以及本領(lǐng)域技術(shù)人員在閱讀以上描述之后將想到的且未在現(xiàn)有技術(shù)中公開的其變型和修改的組合和子組合。通過引用結(jié)合在本專利申請(qǐng)中的文檔被視為本申請(qǐng)的組成部分,除了在這些結(jié)合的文檔中定義的任何術(shù)語與本說明書中明確地或隱含地作出的定義沖突時(shí),僅應(yīng)考慮本說明書中的定義。

當(dāng)前第1頁1 2 3 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
海伦市| 济南市| 延吉市| 临江市| 罗田县| 广元市| 大余县| 沭阳县| 宜兰市| 永修县| 申扎县| 那曲县| 洞头县| 安远县| 桓台县| 屯留县| 八宿县| 宝坻区| 新邵县| 鸡东县| 伊宁县| 拉萨市| 台前县| 唐河县| 和龙市| 三亚市| 辽宁省| 丰宁| 剑河县| 株洲县| 揭西县| 濮阳市| 肥东县| 周至县| 临邑县| 海南省| 珠海市| 屯留县| 唐河县| 黄冈市| 通州市|