亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

確定處理器利用率的系統(tǒng)和方法

文檔序號(hào):6649626閱讀:284來源:國知局
專利名稱:確定處理器利用率的系統(tǒng)和方法
相關(guān)申請的交叉引用本申請要求2004年8月4日提交的名為“確定真正處理器利用率的方法”的臨時(shí)申請?zhí)?0/598732的權(quán)益,通過引用將其內(nèi)容結(jié)合于本文。
背景技術(shù)
為了在輕工作負(fù)荷時(shí)節(jié)能,可以將處理器動(dòng)態(tài)地設(shè)置到以較低的頻率運(yùn)行。例如,如果最大頻率為100MHz的處理器遇到輕工作負(fù)荷時(shí),則處理器可以被設(shè)置為運(yùn)行在80MHz。若工作負(fù)荷增加,則處理器的速度也可以相應(yīng)地增加以適應(yīng)工作負(fù)荷。
用來監(jiān)控與處理器當(dāng)前頻率相對(duì)應(yīng)的處理器利用率的性能實(shí)用程序可能提供一個(gè)不準(zhǔn)確的利用率測量結(jié)果。例如,如果上述處理器被設(shè)置為運(yùn)行在其最大頻率100MHz下,則基于當(dāng)前頻率的利用率測量結(jié)果是準(zhǔn)確的。然而,如果該處理器被設(shè)置在以降低的速率80MHz運(yùn)行時(shí),則根據(jù)處理器降低后的頻率與處理器最大頻率的比率(例如80/100),基于當(dāng)前頻率的利用率測量結(jié)果是不準(zhǔn)確的。


將參照附圖對(duì)本發(fā)明范例進(jìn)行詳細(xì)地描述,其中圖1表示根據(jù)本發(fā)明實(shí)施例的對(duì)處理器活動(dòng)進(jìn)行計(jì)數(shù)的圖表;圖2表示根據(jù)本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng);圖3表示根據(jù)本發(fā)明實(shí)施例的確定真正處理器利用率的系統(tǒng);圖4表示根據(jù)本發(fā)明備選實(shí)施例的確定真正處理器利用率的另一系統(tǒng);圖5表示根據(jù)本發(fā)明實(shí)施例的方法;以及圖6表示根據(jù)本發(fā)明備選實(shí)施例的另一方法。
符號(hào)及術(shù)語下面的描述及權(quán)利要求中采用了某些術(shù)語來指代特定的系統(tǒng)組件。正如本領(lǐng)域技術(shù)人員所知,計(jì)算機(jī)公司可能用不同的名字來指代組件。本文不打算對(duì)那些名字不同但功能相同的組件進(jìn)行區(qū)別。在下面的討論和權(quán)利要求中,廣泛使用術(shù)語“包括”和“包含”,因此應(yīng)當(dāng)解釋為意味著“包括但不限于”。同時(shí)術(shù)語“耦合”意味著間接或直接的電連接。因而,如果第一裝置耦合到第二裝置,則此連接可能是通過直接電連接或者經(jīng)由其它裝置和連接間接電連接。
具體實(shí)施例方式
下面的討論是針對(duì)本發(fā)明的各種實(shí)施例。雖然這些實(shí)施例中的一個(gè)或多個(gè)是優(yōu)選的,但所公開的實(shí)施例不應(yīng)被解釋為或在其它方面被使用為限制本公開的范圍(包括權(quán)利要求)。另外,本領(lǐng)域技術(shù)人員會(huì)理解下面的描述具有廣泛的應(yīng)用,任何實(shí)施例的討論僅是該實(shí)施例的示范,并不意味著宣布所公開的范圍(包括權(quán)利要求)被限制在所述的實(shí)施例。
本發(fā)明的實(shí)施例主要指能夠精確測量處理器利用率的方法和系統(tǒng),即使處理器的工作頻率是動(dòng)態(tài)的。在至少一些實(shí)施例中,一段時(shí)間內(nèi)處理器的利用率通過量化這段時(shí)間內(nèi)處理器的活動(dòng)級(jí)來計(jì)算,而且,如果需要,基于這段時(shí)間內(nèi)處理器的工作頻率與處理器的最大工作頻率的比較來調(diào)整處理器的利用率。
圖1表示根據(jù)本發(fā)明實(shí)施例的對(duì)處理器活動(dòng)進(jìn)行計(jì)數(shù)的圖表100。如圖1所示,對(duì)照時(shí)間描述處理器活動(dòng),例如操作系統(tǒng)(OS)內(nèi)核活動(dòng)106以及用戶應(yīng)用程序活動(dòng)108。在規(guī)則時(shí)間周期104,處理器執(zhí)行的活動(dòng)被確定并被計(jì)數(shù)(此處稱為“計(jì)數(shù)值”102)。圖1中示出了七個(gè)計(jì)數(shù)值(C1-C7)102。C1、C2、C5、C6和C7是用戶應(yīng)用程序計(jì)數(shù)值,C4是OS內(nèi)核應(yīng)用程序計(jì)數(shù)值而C3是一個(gè)“空操作”值(即,處理器不執(zhí)行任何活動(dòng)或可識(shí)別的活動(dòng))。
至少在一些實(shí)施例中,OS幫助確定在圖1所示的計(jì)數(shù)進(jìn)程期間處理器執(zhí)行的活動(dòng)。例如,OS可以以規(guī)則的時(shí)間間隔比如每10毫秒(ms)管理計(jì)數(shù)進(jìn)程和線程。在這種情況下,OS編程硬件以便每10ms中斷進(jìn)程。在每一次中斷(除管理計(jì)數(shù)進(jìn)程和線程之外),OS確定處理器是否正執(zhí)行操作系統(tǒng)內(nèi)核代碼、用戶應(yīng)用程序代碼或空操作碼。然后OS相應(yīng)地更新OS內(nèi)核計(jì)數(shù)器、用戶應(yīng)用程序計(jì)數(shù)器和空操作計(jì)數(shù)器其中之一。處理器性能監(jiān)控實(shí)用程序被設(shè)計(jì)為在預(yù)定時(shí)間間隔從OS抽取計(jì)數(shù)器數(shù)據(jù)。例如如果在一秒結(jié)束時(shí)(例如100個(gè)中斷),OS確定處理器執(zhí)行OS內(nèi)核代碼20次、用戶應(yīng)用程序代碼70次和空操作碼10次,處理器性能實(shí)用程序基于下面所示的方程式(1)報(bào)告處理器被利用了90%。
Ucpu=[(Ckernel+Capp)/(Ckernel+Capp+Cidle)]×100%方程式(1)在方程式(1)中,Ucpu為被觀查的處理器利用率,Ckernel是OS內(nèi)核計(jì)數(shù)的數(shù)量、Capp是用戶應(yīng)用程序計(jì)數(shù)的數(shù)量以及Cidle是空操作計(jì)數(shù)的數(shù)量。如前所述,在周期時(shí)間間隔(例如每秒一次)抽取計(jì)數(shù)值(Ckernel、Capp、Cidle)并且確定所觀察的處理器利用率(Ucpu)。這樣,如果時(shí)間間隔期內(nèi)計(jì)數(shù)值為如前所述的Ckernel=20、Capp=70和Cidle=10,則Ucpu=[(20+70)/(20+70+10)]×100%=90%。每個(gè)時(shí)間間隔基于新的計(jì)數(shù)器數(shù)據(jù)的Ucpu的值可能發(fā)生變化。處理器性能實(shí)用程序可以被設(shè)定為以數(shù)字值或圖表部分來報(bào)告Ucpu的值對(duì)于多處理器系統(tǒng),OS為每個(gè)處理器使用OS內(nèi)核計(jì)數(shù)器、用戶應(yīng)用程序計(jì)數(shù)器和空操作計(jì)數(shù)器。在周期時(shí)間間隔中,處理器性能監(jiān)控實(shí)用程序能夠從OS抽取所有計(jì)數(shù)器數(shù)據(jù)并且報(bào)告每個(gè)處理器的處理器利用率和/或總系統(tǒng)利用率(例如總系統(tǒng)利用率可以通過對(duì)全部處理器利用率求平均值來確定)。
本發(fā)明的實(shí)施例實(shí)現(xiàn)具有動(dòng)態(tài)工作頻率的處理器。例如工作頻率隨工作負(fù)荷的不同可以在最大工作頻率和最小工作頻率之間調(diào)整。美國專利號(hào)6438697名為“基于需求的處理器時(shí)鐘頻率轉(zhuǎn)換”描述了一種動(dòng)態(tài)改變處理器工作頻率的方法和系統(tǒng),并且將其全部內(nèi)容通過引用結(jié)合于本文。為了說明動(dòng)態(tài)工作頻率,軟件實(shí)用程序(例如處理器性能實(shí)用程序或其它實(shí)用程序),通過比較處理器當(dāng)前工作頻率與處理器最大工作頻率來調(diào)整方程式(1)中被觀察的處理器利用率(Ucpu)的值,如下面方程式(2)中所示。
UCPU_DYNAMIC=UCPU×(Fcurrent/Fmax)方程式(2)在方程式(2)中,UCPU_DYNAMIC是具有動(dòng)態(tài)工作頻率的處理器的“真正的”處理器利用率。在至少部分實(shí)施例中,真正的處理器利用率與CPU的最大工作頻率相關(guān)。方程式(2)還示出,Ucpu是如上面方程式(1)中所述的被觀察的處理器利用率。Fcurrent是被監(jiān)控處理器的當(dāng)前工作頻率并且Fmax是被監(jiān)控處理器的最大工作頻率。UCPU_DYNAMIC、Ucpu、Fcurrent和Fmax的值在周期時(shí)間間隔被確定并且由例如處理器性能實(shí)用程序的軟件實(shí)用程序報(bào)告。例如,如果在給定的時(shí)間間隔內(nèi)Ucpu=90%,F(xiàn)current=80MHz并且Fmax=100MHz,那么給定的時(shí)間間隔內(nèi)UCPU_DYNAMIC的值是90%×(80/100)=72%。因此,方程式(2)提供了說明處理器工作在低于最大頻率時(shí)的“真正的”處理器利用率的值(即,如果處理器工作在低于最大頻率時(shí),則由方程式(1)提供的被觀察的處理器利用率(Ucpu)值是不準(zhǔn)確的)。
計(jì)算并報(bào)告UCPU_DYNAMIC值而不是觀察的Ucpu值在幾個(gè)方面是有用的。在至少部分實(shí)施例中,UCPU_DYNAMIC值用來確定與業(yè)務(wù)相關(guān)的細(xì)節(jié)(例如,基于服務(wù)器業(yè)務(wù)的細(xì)節(jié))。例如,信息技術(shù)(IT)部門可能在一段時(shí)間內(nèi)(例如幾個(gè)星期或幾個(gè)月)監(jiān)控被觀察的處理器利用率以確定基于服務(wù)器的應(yīng)用(例如數(shù)據(jù)庫、郵件服務(wù)器或者基于網(wǎng)絡(luò)的應(yīng)用)的效率。如果處理器性能監(jiān)控報(bào)告了一個(gè)夸大的觀察的利用率(例如上例中,如果被監(jiān)控處理器的工作頻率低于該處理器的最大工作頻率,基于方程式(1)的90%的觀察的利用率是夸大的),則操作員可能會(huì)不得不開始一項(xiàng)不必要的努力以便使基于服務(wù)器的應(yīng)用流暢。同樣,IT部門可能在一段時(shí)間內(nèi)監(jiān)控所觀察的處理器利用率以確定是否部署更多或更少的服務(wù)器。如果處理器性能監(jiān)控報(bào)告了服務(wù)器處理器的夸大的觀察的利用率,則操作員可能不得不部署比需要的服務(wù)器更多的服務(wù)器。同樣,基于消費(fèi)者處理器利用率向消費(fèi)者收費(fèi)的IT部門可能在一段時(shí)間內(nèi)監(jiān)控可觀察的處理器利用率以確定向消費(fèi)者收多少費(fèi)。因此,夸大的觀察的處理器利用率值可能導(dǎo)致夸大地收費(fèi)。至少基于以上原因,使用方程式(2)計(jì)算并報(bào)告UCPU_DYNAMIC而不是使用方程式(1)計(jì)算并報(bào)告所觀察的Ucpu是有益的。
圖2示出了根據(jù)本發(fā)明實(shí)施例的計(jì)算機(jī)系統(tǒng)200。在至少部分實(shí)施例中,計(jì)算機(jī)系統(tǒng)200是服務(wù)器。計(jì)算機(jī)系統(tǒng)200被設(shè)定為以至少兩種方式報(bào)告真正的處理器利用率值(例如UCPU_DYNAMIC)。在第一種方式中,基于處理器當(dāng)前工作頻率與最大工作頻率的比較來修改計(jì)算機(jī)系統(tǒng)200跟蹤的計(jì)數(shù)器數(shù)據(jù)(例如,OS內(nèi)核計(jì)數(shù)值、用戶應(yīng)用程序計(jì)數(shù)值和空操作計(jì)數(shù)值)。在至少部分實(shí)施例中,在處理器性能實(shí)用程序抽取數(shù)據(jù)之前,基于所述比較通過加權(quán)計(jì)數(shù)數(shù)據(jù)(或增大或減小值)來完成修改。在這種方式下,當(dāng)處理器性能實(shí)用程序抽取修改后的計(jì)數(shù)器數(shù)據(jù)并且報(bào)告所觀察的處理器利用率(例如Ucpu)時(shí),實(shí)際上報(bào)告的是真正的處理器利用率(例如UCPU_DYNAMIC)。
在第二種方式中,計(jì)算機(jī)系統(tǒng)200的計(jì)數(shù)器數(shù)據(jù)被跟蹤(例如圖1所述的),但是在數(shù)據(jù)被處理器性能實(shí)用程序抽取之前沒有被修改。而是,從處理器性能實(shí)用程序中分離出的實(shí)用程序應(yīng)用(即,修改的處理器性能實(shí)用程序)根據(jù)未修改的計(jì)數(shù)器數(shù)據(jù)以及關(guān)于處理器當(dāng)前工作頻率與處理器最大工作頻率的比較信息來計(jì)算真正的處理器利用率。該實(shí)用程序應(yīng)用被設(shè)定為報(bào)告真正的處理器利用率(例如UCPU_DYNAMIC)或者為處理器性能實(shí)用程序提供真正的處理器利用率,由處理器性能實(shí)用程序來報(bào)告。另外,處理器性能實(shí)用程序可以用來報(bào)告觀察的處理器利用率(例如Ucpu)。
如圖2所示,計(jì)算機(jī)系統(tǒng)200包括耦合到存儲(chǔ)器208的多個(gè)處理器或CPU202A-202N。CPU 202A-202N也耦合到時(shí)鐘邏輯204和周期性中斷定時(shí)器。在至少某些實(shí)施例中,時(shí)鐘邏輯204控制主時(shí)鐘或系統(tǒng)時(shí)鐘用于CPU 202A-202N。例如,時(shí)鐘204可以使CPU 202A-202N工作在最大頻率下,例如100MHz。為響應(yīng)來自CPU 202A-202N其中之一或者其他控制機(jī)構(gòu)的命令,時(shí)鐘邏輯204也能使CPU 202A-202N工作在比最大頻率低的頻率下。例如,如果確定提供給CPU 202A-202N的工作負(fù)荷是“輕”工作負(fù)荷,則時(shí)鐘邏輯204可能接收一條命令從而將時(shí)鐘頻率從100MHz減小到80MHz。
如圖所示,存儲(chǔ)器208存儲(chǔ)了OS內(nèi)核220和用戶應(yīng)用程序240。在至少部分實(shí)施例中,OS內(nèi)核包括監(jiān)控指令222、性能計(jì)數(shù)器224、工作負(fù)荷調(diào)整指令226、處理器性能實(shí)用程序指令228和性能調(diào)整指令230。
當(dāng)設(shè)置好后,周期性中斷定時(shí)器206中斷CPU 202A-202N。在中斷期間,監(jiān)控指令222確定每個(gè)CPU執(zhí)行的最后活動(dòng)(或者要執(zhí)行的下一步活動(dòng))。例如,CPU活動(dòng)可被分為OS內(nèi)核活動(dòng)、用戶應(yīng)用程序活動(dòng)和空操作活動(dòng)。在一些實(shí)施例中,監(jiān)控指令222被周期性的執(zhí)行(例如,每10ms一次)。監(jiān)控指令222也能使數(shù)據(jù)例如計(jì)數(shù)值存儲(chǔ)在計(jì)數(shù)器224中。在至少部分實(shí)施例中,計(jì)數(shù)器224包括分配用來存儲(chǔ)計(jì)數(shù)數(shù)據(jù)的存儲(chǔ)器。
當(dāng)執(zhí)行時(shí),處理器性能實(shí)用程序指令228引起抽取計(jì)數(shù)器數(shù)據(jù)。在部分實(shí)施例中,處理器性能實(shí)用程序指令228基于上述方程式(1)為一個(gè)或多個(gè)處理器計(jì)算觀察的處理器利用率。處理器性能實(shí)用程序指令228也使計(jì)算所得的觀察的處理器利用率(例如Ucpu)通過可視化的表示(例如字母數(shù)字值和/或圖表)向用戶報(bào)告。處理器利用率由處理器性能實(shí)用程序指令228基于通過執(zhí)行監(jiān)控指令222跟蹤和存儲(chǔ)的處理器活動(dòng)計(jì)數(shù)值在周期基線計(jì)算并更新。
當(dāng)執(zhí)行時(shí),工作負(fù)荷調(diào)整指令226確定CPU 202A-202N中的至少一個(gè)是否正在執(zhí)行輕工作負(fù)荷。例如工作負(fù)荷調(diào)整指令226可以與監(jiān)控指令222結(jié)合操作以確定CPU活動(dòng)的閾值百分?jǐn)?shù)(例如30%)為空閑。在這種情況下,工作負(fù)荷調(diào)整指令226可以使時(shí)鐘邏輯204降低CPU 202A-202N的工作頻率(例如從100MHz到80MHz)。降低CPU 202A-202N的工作頻率有助于節(jié)能,否則即使在執(zhí)行空操作時(shí)為CPU 202A-202N計(jì)時(shí)也是種浪費(fèi)。在部分實(shí)施例中,對(duì)CPU工作負(fù)荷的改變是動(dòng)態(tài)的并且至少部分取決于用戶應(yīng)用程序240的執(zhí)行(即要執(zhí)行的用戶應(yīng)用程序指令數(shù)量的增加或減少導(dǎo)致CPU的工作負(fù)荷相應(yīng)地改變)。在至少部分實(shí)施例中,上述的處理器性能實(shí)用程序指令228不直接說明CPU工作頻率的動(dòng)態(tài)改變,從而導(dǎo)致潛在的不正確的處理器利用率值。
當(dāng)執(zhí)行時(shí),性能調(diào)整指令230引起報(bào)告真正的處理器利用率。如上所述,真正的處理器利用率說明CPU工作頻率的動(dòng)態(tài)改變。性能調(diào)整指令230至少以兩種方式工作。在第一種方式下,在處理器性能實(shí)用程序指令228抽取計(jì)數(shù)器224中的計(jì)數(shù)值之前,性能調(diào)整指令230修改了計(jì)數(shù)器224中的計(jì)數(shù)值。例如,可通過處理器當(dāng)前工作頻率與處理器最大工作頻率的比值加權(quán)計(jì)數(shù)值。在部分實(shí)施例中,對(duì)每一個(gè)計(jì)數(shù)值都進(jìn)行計(jì)數(shù)值修改(也就是說,每一個(gè)計(jì)數(shù)值都可能被調(diào)整以反映處理器當(dāng)前工作頻率與處理器最大工作頻率的比較)。作為選擇,也可以在預(yù)先設(shè)定的計(jì)數(shù)值數(shù)量出現(xiàn)后修改計(jì)數(shù)值。在任一情況下,處理器性能實(shí)用程序指令228抽取修改后的計(jì)數(shù)數(shù)據(jù)并報(bào)告真正的處理器利用率,而不是觀察的處理器利用率。
在第二種方式中,性能調(diào)整指令230不修改計(jì)數(shù)數(shù)據(jù)。取而代之的是,性能調(diào)整指令230使用已經(jīng)存在的計(jì)數(shù)數(shù)據(jù)來確定所觀察的處理器利用率。如果需要,可以基于CPU的當(dāng)前工作頻率與最大工作頻率的比較來修改所觀察的處理器利用率,以確定真正的處理器利用率(例如,性能調(diào)整指令230可以執(zhí)行方程式(2)以確定真正的處理器利用率)。在部分實(shí)施例中,性能調(diào)整指令230報(bào)告(或顯示)真正的處理器利用率而處理器性能實(shí)用程序指令228報(bào)告所觀察的處理器利用率??蛇x地,性能調(diào)整指令230也可以與處理器性能實(shí)用程序指令228結(jié)合工作,這樣處理器性能實(shí)用程序228報(bào)告真正的處理器利用率。
圖3示出了根據(jù)本發(fā)明實(shí)施例的確定真正處理器利用率的系統(tǒng)300。例如系統(tǒng)300可以表示上述計(jì)算機(jī)系統(tǒng)200的組件。如圖3所示,為了說明性的目的,將系統(tǒng)300分為硬件空間302、OS空間304和用戶空間306。如將在本文描述地,本發(fā)明的至少部分實(shí)施例基于來自硬件空間302、OS空間304和用戶空間306的每一個(gè)的元件。
硬件空間302表示系統(tǒng)300的物理組件,比如處理器、總線、橋接器和存儲(chǔ)器。如圖所示,硬件空間302包括基于硬件的實(shí)時(shí)時(shí)鐘(RTC)310以及系統(tǒng)管理中斷(SMI)硬件350。硬件RTC310是系統(tǒng)300中的主OS定時(shí)機(jī)構(gòu),有時(shí)也被稱作“系統(tǒng)時(shí)鐘”。SMI硬件350包括設(shè)置為產(chǎn)生中斷以觸發(fā)與原始設(shè)備制造商(OEM)軟件棧(例如SMM處理器352和SMI軟件354)中相關(guān)管理活動(dòng)的硬件。
OS空間304表示操作系統(tǒng)(OS)。OS負(fù)責(zé)命令、控制和管理硬件資源,使得軟件應(yīng)用程序以安全并可控的方式“運(yùn)行”。如圖所示,OS空間304包括OS中斷處理器320、內(nèi)部處理器中斷(IPI)調(diào)度器播送設(shè)備322。OS中斷處理器320包括由OS提供的計(jì)算機(jī)可讀指令,用來接收和處理來自RTC 310的中斷。OS中斷處理器320也跟蹤全局系統(tǒng)定時(shí)并與IPI調(diào)度器播送設(shè)備322進(jìn)行通訊(或者“通話”)。IPI調(diào)度器播送設(shè)備322包括由OS提供的計(jì)算機(jī)可讀指令,用來向計(jì)算機(jī)系統(tǒng)300的所有處理器(例如,CPU)廣播定時(shí)事件。在部分實(shí)施例中,IPI調(diào)度器播送設(shè)備322是OS中斷處理器320的一部分。
對(duì)系統(tǒng)300中的每一個(gè)CPU來說,OS空間304包括CPU IPI處理器324A-324N、形實(shí)轉(zhuǎn)換程序轉(zhuǎn)向器(thunk redirector)326A-326N、CPU專用調(diào)度器328A-328N、計(jì)數(shù)器330A-330N和設(shè)備驅(qū)動(dòng)332A-332N。每一個(gè)CPU IPI處理器324A-324N包括由OS提供的計(jì)算機(jī)可讀指令,運(yùn)行在CPU上并收集OS和用戶進(jìn)程的定時(shí)統(tǒng)計(jì)。每一個(gè)形實(shí)轉(zhuǎn)換程序轉(zhuǎn)向器326A-326N包括由OS提供的計(jì)算機(jī)可讀指令,用來截取OS向OEM提供的驅(qū)動(dòng)代碼(例如設(shè)備驅(qū)動(dòng)332A-332N)進(jìn)行的通話。每一個(gè)CPU專用調(diào)度器328A-328N包括由OS提供的計(jì)算機(jī)可讀指令,用來調(diào)整跟蹤C(jī)PU利用率的計(jì)數(shù)器(例如計(jì)數(shù)器330A-330N)。每一個(gè)計(jì)數(shù)器330A-330N包括一塊由CPU專用調(diào)度器328A-328N分配并“擁有的”存儲(chǔ)器(例如,CPU專用調(diào)度器328A擁有計(jì)數(shù)器330A,CPU專用調(diào)度器328B擁有計(jì)數(shù)器330B等)。
每個(gè)設(shè)備驅(qū)動(dòng)332A-332N包括由OEM提供的計(jì)算機(jī)可讀指令,用來監(jiān)控實(shí)時(shí)的硬件性能例如CPU節(jié)流(也就是CPU工作頻率的變化)。在圖3所示的計(jì)算機(jī)系統(tǒng)實(shí)施例中,每個(gè)設(shè)備驅(qū)動(dòng)332A-332N設(shè)定為基于通過形實(shí)轉(zhuǎn)換程序轉(zhuǎn)向器接收的來自CPU IPI管理器324A-324N的信息(例如,設(shè)備驅(qū)動(dòng)332A通過形實(shí)轉(zhuǎn)換程序轉(zhuǎn)向器326A接收來自CPU IPI處理器324A的信息,設(shè)備驅(qū)動(dòng)332B通過形實(shí)轉(zhuǎn)換程序轉(zhuǎn)向器326B接收采自CPU IPI處理器324B的信息,等等),監(jiān)控在CPU工作頻率下的改變。如前所述,每個(gè)CPU IPI處理器324A-324N收集OS和用戶進(jìn)程的定時(shí)統(tǒng)計(jì)。通過監(jiān)控來自每個(gè)CPU IPI處理器324A-324N的定時(shí)統(tǒng)計(jì)以及存儲(chǔ)在每個(gè)計(jì)數(shù)器330A-330N中的數(shù)據(jù),設(shè)備驅(qū)動(dòng)332A-332N被設(shè)定為(如果需要)使CPU專用調(diào)度器328A-328N調(diào)整存儲(chǔ)在計(jì)數(shù)器330A-330N中的計(jì)數(shù)器數(shù)據(jù)。
例如,如果CPU的工作頻率由于輕工作負(fù)荷而下降,則相應(yīng)的CPU專用調(diào)度器可以調(diào)整性能計(jì)數(shù)器的數(shù)據(jù)以反映CPU的真正處理器利用率(也就是說,CPU的真正處理器利用率說明CPU未工作在最大頻率時(shí)的情況)。在部分實(shí)施例中,CPU專用調(diào)度器被設(shè)定為改變計(jì)數(shù)值(也就是說計(jì)數(shù)值可以被加權(quán)或者簡單地從一個(gè)值改變?yōu)榱硪粋€(gè)),這樣當(dāng)抽取改變后的計(jì)數(shù)數(shù)據(jù)根據(jù)方程式(1)來計(jì)算所觀察的處理器利用率(Ucpu)時(shí),得到的值就是真正的處理器利用率。如上所述,來自三個(gè)計(jì)數(shù)器的信息(例如,OS內(nèi)核計(jì)數(shù)器、用戶應(yīng)用程序計(jì)數(shù)器和空操作計(jì)數(shù)器)可以被用來確定觀察的處理器利用率(Ucpu)。因此,要反映CPU的真正處理器利用率,這些計(jì)數(shù)值中的一個(gè)或多個(gè)要被修改。
例如,使用前述計(jì)數(shù)數(shù)據(jù)(也就是,OS內(nèi)核計(jì)數(shù)值=20、用戶應(yīng)用程序計(jì)數(shù)值=70、空操作計(jì)數(shù)值=10)和方程式(1),所觀察的處理器利用率(Ucpu)被確定為90%。然而,如果處理器僅在其最大工作頻率的80%下工作,則所觀察的處理器利用率為90%是不準(zhǔn)確的(也就是,真正的處理器利用率實(shí)際上是90%×(80/100)=72%)。為了說明處理器正在低于最大頻率下工作,設(shè)備驅(qū)動(dòng)(例如設(shè)備驅(qū)動(dòng)332A-332N)可以使CPU專用調(diào)度器(例如CPU專用調(diào)度器328A-328N)在處理器性能實(shí)用程序抽取計(jì)數(shù)器數(shù)據(jù)之前,調(diào)整一個(gè)或多個(gè)計(jì)數(shù)器的計(jì)數(shù)數(shù)據(jù)。例如,為了基于方程式(1)將90%的利用率改為72%的利用率,設(shè)備驅(qū)動(dòng)可使空操作計(jì)數(shù)值的數(shù)量增加(例如,如果OS內(nèi)核計(jì)數(shù)值=20并且用戶應(yīng)用程序數(shù)值=70,則將空操作計(jì)數(shù)值從空操作計(jì)數(shù)值=10調(diào)整為空操作計(jì)數(shù)值=35,這樣會(huì)使Ucpu的計(jì)算值由90%改為72%)。作為選擇,為了基于方程式(1)將90%的利用率改為72%的利用率,設(shè)備驅(qū)動(dòng)可使用戶應(yīng)用程序計(jì)數(shù)值減少(例如,如果OS內(nèi)核計(jì)數(shù)值=20并且空操作計(jì)數(shù)值=10,則將用戶應(yīng)用程序計(jì)數(shù)值從用戶應(yīng)用程序計(jì)數(shù)值=70調(diào)整為應(yīng)用程序計(jì)數(shù)值=6,這樣會(huì)使Ucpu的計(jì)算值由90%改為72%)。同樣,OS內(nèi)核計(jì)數(shù)值和用戶應(yīng)用程序計(jì)數(shù)值中的一個(gè)或兩個(gè)可以減少,而空操作計(jì)數(shù)值可以增加,以說明處理器正在低于最大工作頻率下工作。
在部分實(shí)施例中,加權(quán)和末加權(quán)的計(jì)數(shù)值都可以存儲(chǔ)在計(jì)數(shù)器(例如,如果處理器正工作在其最大頻率的80%,則通過因子0.8來調(diào)整加權(quán)的計(jì)數(shù)值)中。因此,如果未加權(quán)的計(jì)數(shù)值是OS內(nèi)核計(jì)數(shù)值=20、用戶應(yīng)用程序計(jì)數(shù)值=70、空操作計(jì)數(shù)值=10,則加權(quán)的計(jì)數(shù)值是OS內(nèi)核計(jì)數(shù)值=20*0.8=16、用戶應(yīng)用程序計(jì)數(shù)值=70*0.8=56、空操作計(jì)數(shù)值=10+(20-16)+(70-56)=28(就是說,空操作計(jì)數(shù)值增加的數(shù)量等于OS內(nèi)核計(jì)數(shù)值、用戶應(yīng)用程序計(jì)數(shù)值減少的數(shù)量)。在部分實(shí)施例中,每次中斷,都存儲(chǔ)并合計(jì)加權(quán)的計(jì)數(shù)值和未加權(quán)的計(jì)數(shù)值。作為選擇,在預(yù)先設(shè)定的未加權(quán)的計(jì)數(shù)值數(shù)量或預(yù)先設(shè)定的時(shí)間周期之后,確定加權(quán)的計(jì)數(shù)值。在兩種情況下,加權(quán)的計(jì)數(shù)值可以由未加權(quán)的計(jì)數(shù)值乘以權(quán)數(shù)來獲得,而權(quán)數(shù)反映處理器當(dāng)前工作頻率與處理器最大工作頻率的比較。在計(jì)數(shù)值被修改或加權(quán)后,處理器性能實(shí)用程序(例如,處理器性能實(shí)用程序指令226)可以從計(jì)數(shù)器抽取信息以計(jì)算并報(bào)告真實(shí)的處理器利用率。
如圖所示,OS空間304還包括系統(tǒng)管理中斷(SMI)軟件354和可以是基于基本輸入/輸出系統(tǒng)(BIOS)的系統(tǒng)管理模式(SMM)處理器352。SMI軟件354包括被設(shè)置為產(chǎn)生SMM中斷的計(jì)算機(jī)可讀指令。在至少部分實(shí)施例中,SMI軟件354與OEM驅(qū)動(dòng)共同操作以處理系統(tǒng)300的OS未知的硬件管理。SMM處理器352包括由OEM提供的計(jì)算機(jī)可讀指令,用來提供SMM模式以管理硬件。
如圖所示,用戶空間306表示運(yùn)行以滿足用戶需求的應(yīng)用程序的域。如圖所示,用戶空間306包括多個(gè)用戶應(yīng)用程序340A-340N。隨著系統(tǒng)300的CPU執(zhí)行不同的用戶應(yīng)用程序340A-340N,由處理器性能實(shí)用程序測量的處理器利用率也會(huì)改變。例如,如果用戶應(yīng)用程序340A-340N提供給CPU的工作負(fù)荷“輕”時(shí),系統(tǒng)300中的一個(gè)或多個(gè)CPU的工作頻率可能會(huì)下降。
在多處理器實(shí)施例中,例如圖2和3所示的實(shí)施例中,如上所述的適用于單處理器的計(jì)算和報(bào)告觀察的處理器利用率和真正的處理器利用率也同樣適用于多處理器。例如,為了計(jì)算多個(gè)處理器的所觀察的處理器利用率,為每個(gè)處理器收集的計(jì)數(shù)器數(shù)據(jù)(也就是OS內(nèi)核計(jì)數(shù)值、用戶應(yīng)用程序計(jì)數(shù)值、空操作計(jì)數(shù)值)可以被累計(jì)在一起以確定總的所觀察的多處理器利用率?;蛘?,總的所觀察的多處理器利用率可以由計(jì)算各個(gè)所觀察的處理器利用率并求它們的均值來確定。
“真正的”多處理器利用率可以在計(jì)數(shù)器數(shù)據(jù)被抽取之前通過加權(quán)或修改每個(gè)處理器的計(jì)數(shù)器數(shù)據(jù)來確定(基于每個(gè)處理器當(dāng)前工作頻率與最大工作頻率的比較)。在這種方式下,所觀察的多處理器利用率的計(jì)算結(jié)果實(shí)際提供了真正的多處理器利用率。或者,每個(gè)處理器的計(jì)數(shù)器數(shù)據(jù)在被抽取之前可以不被修改。如果抽取未修改的計(jì)數(shù)器數(shù)據(jù),則真正的多處理器利用率值也可通過計(jì)算各個(gè)真正的處理器利用率(如上所述)并求各個(gè)真正的處理器利用率的均值來確定?;蛘撸嬲亩嗵幚砥骼寐手狄部赏ㄟ^計(jì)算所觀察的多處理器利用率、然后用每個(gè)處理器當(dāng)前工作頻率與最大工作頻率的比率的平均值調(diào)整(例如乘以)所觀察的多處理器利用率來確定。
圖4示出了根據(jù)本發(fā)明備選實(shí)施例的另一個(gè)系統(tǒng)400。如圖所示,系統(tǒng)400的許多組件與前面圖3所述的系統(tǒng)300的組件相同或類似。系統(tǒng)400與系統(tǒng)300至少在除去形實(shí)轉(zhuǎn)換程序轉(zhuǎn)向器(例如形實(shí)轉(zhuǎn)換程序轉(zhuǎn)向器326A)方面有所不同。同時(shí)設(shè)備驅(qū)動(dòng)432A-432N不能使CPU專用調(diào)度器328A-328N修改或加權(quán)存儲(chǔ)在計(jì)數(shù)器330A-330N中的計(jì)數(shù)數(shù)據(jù)。取而代之的是,每個(gè)設(shè)備驅(qū)動(dòng)432A-432N從每個(gè)相應(yīng)的計(jì)數(shù)器330A-330N中讀取未修改的計(jì)數(shù)數(shù)據(jù),并且基于接收到的信號(hào)402A-402N計(jì)算真正的處理器利用率。在至少部分實(shí)施例中,信號(hào)402A-402N包括OEM設(shè)備驅(qū)動(dòng)中斷。信號(hào)402A-402N通知每個(gè)設(shè)備驅(qū)動(dòng)432A-432N CPU工作頻率的改變(例如,信號(hào)402A通知設(shè)備驅(qū)動(dòng)432A,信號(hào)402B通知設(shè)備驅(qū)動(dòng)432B,等等)。
每個(gè)設(shè)備驅(qū)動(dòng)432A-432N都能計(jì)算并報(bào)告真正的處理器利用率。作為附加或作為備選,每個(gè)設(shè)備驅(qū)動(dòng)432A-432N可提供必要的信息(例如計(jì)數(shù)值和處理器當(dāng)前工作頻率與最大工作頻率的比較),使得另一個(gè)性能實(shí)用程序能夠計(jì)算并報(bào)告真正的處理器利用率。
圖5示出了根據(jù)本發(fā)明實(shí)施例的一種方法500。如圖5所示,方法500包括確定處理器的最大工作頻率(模塊502)和確定處理器的當(dāng)前工作頻率(模塊504)。方法500還包括對(duì)處理器活動(dòng)進(jìn)行計(jì)數(shù)(506)。如果當(dāng)前工作頻率低于最大工作頻率(判斷模塊508),則基于當(dāng)前工作頻率與最大工作頻率的比較來修改計(jì)數(shù)數(shù)據(jù)(模塊510)。例如計(jì)數(shù)數(shù)據(jù)可以被加權(quán)或者可以被調(diào)整以說明處理器當(dāng)前工作頻率與最大工作頻率的不同。在修改了計(jì)數(shù)數(shù)據(jù)(模塊510)之后或者如果當(dāng)前工作頻率不低于最大工作頻率(判斷模塊508),方法500包括基于計(jì)數(shù)數(shù)據(jù)計(jì)算處理器利用率(模塊512)。最后報(bào)告處理器利用率(模塊514)。
圖6示出了根據(jù)本發(fā)明備選實(shí)施例的另一種方法600。如圖6所示,方法600包括上面圖5所述的許多模塊。方法600與方法500的不同在于方法600不修改計(jì)數(shù)數(shù)據(jù)。如果處理器的當(dāng)前工作頻率低于處理器的最大工作頻率(判斷模塊508),則方法600基于計(jì)數(shù)數(shù)據(jù)和處理器當(dāng)前工作頻率與最大工作頻率的比較來計(jì)算真正的處理器利用率(模塊602)。如果處理器的當(dāng)前工作頻率不低于處理器的最大工作頻率(判斷模塊508),則方法600僅基于計(jì)數(shù)數(shù)據(jù)計(jì)算觀察的處理器利用率(模塊512)。最后,報(bào)告觀察的處理器利用率或者真正的處理器利用率(也就是,真正的處理器利用率說明處理器工作頻率的動(dòng)態(tài)變化)(模塊514)。如前所述,報(bào)告真正的處理器利用率值(UCPU_DYNAMIC)在幾個(gè)方面是有益的。例如,系統(tǒng)管理員或者其他用戶可以依據(jù)真正的處理器利用率來確定與業(yè)務(wù)相關(guān)的細(xì)節(jié),比如應(yīng)用程序的效率、部署的服務(wù)器的數(shù)量和/或向消費(fèi)者收取的金額。
上面的論述了說明本發(fā)明的原理和不同的實(shí)施例。一旦完全理解了上述公開,對(duì)本領(lǐng)域技術(shù)人員來說,種種變化和修改會(huì)是顯而易見的。例如,雖然圖3和4的組件被指定在OS空間304和用戶空間306中,但是一些組件比如處理器性能實(shí)用程序可以在OS空間304或者在用戶空間306中。下面的權(quán)利要求可解釋為包含所有的類似變化和修改。
權(quán)利要求
1.一種系統(tǒng)(200),包括處理器(202A);和存儲(chǔ)器(208),耦合到所述處理器,所述存儲(chǔ)器(208)存儲(chǔ)處理器性能實(shí)用程序指令(228)和性能調(diào)整指令(230);當(dāng)執(zhí)行時(shí),所述處理器性能實(shí)用程序指令(228)被設(shè)定為引起對(duì)所述處理器(202A)的活動(dòng)(106,108)進(jìn)行計(jì)數(shù)并且引起基于計(jì)數(shù)值(102)確定處理器利用率值,當(dāng)執(zhí)行時(shí),所述性能調(diào)整指令(230)被設(shè)定為基于所述處理器的當(dāng)前工作頻率與最大工作頻率的比較來調(diào)整所述處理器利用率值。
2.一種系統(tǒng)(200),包括多個(gè)處理器(202A-202N);和存儲(chǔ)器(208),耦合到所述多個(gè)處理器(202A-202N),所述存儲(chǔ)器(202)存儲(chǔ)處理器實(shí)用程序指令(228)和調(diào)整指令(230),當(dāng)執(zhí)行時(shí),所述處理器實(shí)用程序指令(228)被設(shè)定為引起收集處理器(202A)的活動(dòng)計(jì)數(shù)數(shù)據(jù)(102)并且引起基于所述活動(dòng)計(jì)數(shù)數(shù)據(jù)(102)來確定所觀察的處理器利用率值,當(dāng)執(zhí)行時(shí),所述調(diào)整指令被設(shè)定為基于所述處理器的當(dāng)前工作頻率與最大工作頻率的比較來計(jì)算所述處理器(202A)的真正的處理器利用率值。
3.如權(quán)利要求2所述的系統(tǒng),其中將所述處理器實(shí)用程序指令(228)進(jìn)一步設(shè)定為,當(dāng)執(zhí)行時(shí),引起收集所述多個(gè)處理器(202A-202N)的每一個(gè)的活動(dòng)計(jì)數(shù)數(shù)據(jù)(102),并且引起基于所述多個(gè)處理器(202A-202N)的每一個(gè)的活動(dòng)計(jì)數(shù)數(shù)據(jù)(102)來確定每一個(gè)處理器(202A-202N)的所觀察的處理器利用率值。
4.如權(quán)利要求3所述的系統(tǒng),其中將所述處理器實(shí)用程序指令(228)進(jìn)一步設(shè)定為,當(dāng)執(zhí)行時(shí),確定所述所觀察的處理器利用率值的平均值。
5.如權(quán)利要求2所述的系統(tǒng),其中將所述調(diào)整指令(230)進(jìn)一步設(shè)定為,當(dāng)執(zhí)行時(shí),基于每個(gè)處理器的當(dāng)前工作頻率與最大工作頻率的比較來計(jì)算所述多個(gè)處理器(202A-202N)的每一個(gè)的真正的處理器利用率值。
6.如權(quán)利要求5所述的系統(tǒng),其中將所述調(diào)整指令(230)進(jìn)一步設(shè)定為,當(dāng)執(zhí)行時(shí),確定所述真正的處理器利用率值的平均值。
7.一種方法,包括確定處理器的最大工作頻率;確定處理器的當(dāng)前工作頻率;比較所述處理器的當(dāng)前工作頻率與所述處理器的最大工作頻率;并且如果所述當(dāng)前工作頻率小于所述最大工作頻率,則基于所述比較來計(jì)算處理器利用率值。
8.如權(quán)利要求7所述的方法,還包括對(duì)處理器活動(dòng)(106,108)進(jìn)行計(jì)數(shù),其中還基于處理器活動(dòng)計(jì)數(shù)值(102)計(jì)算所述處理器利用率值。
9.如權(quán)利要求8所述的方法,還包括基于所述處理器活動(dòng)計(jì)數(shù)值(102)確定第一處理器利用率值,以及通過將所述第一處理器利用率值乘以所述處理器的當(dāng)前工作頻率與所述處理器的最大工作頻率的比率來確定第二處理器利用率值。
10.如權(quán)利要求8所述的方法,還包括使用所述處理器利用率值來確定至少一個(gè)與業(yè)務(wù)相關(guān)的細(xì)節(jié),所述與業(yè)務(wù)相關(guān)的細(xì)節(jié)是從由應(yīng)用程序的效率、部署的服務(wù)器數(shù)量和/或向消費(fèi)者收取的金額構(gòu)成的組中選擇的。
全文摘要
在至少部分實(shí)施例中,系統(tǒng)(200)包括處理器(202A)和耦合到處理器(202A)的存儲(chǔ)器(208)。存儲(chǔ)器(208)存儲(chǔ)處理器性能實(shí)用程序指令(228)和性能調(diào)整指令(230)。當(dāng)執(zhí)行時(shí),處理器性能實(shí)用程序指令(228)被設(shè)定為引起計(jì)數(shù)處理器(202A)的活動(dòng)(106,108)并且引起基于計(jì)數(shù)值(102)確定處理器利用率值。當(dāng)執(zhí)行時(shí),性能調(diào)整指令(230)被設(shè)定為基于處理器的當(dāng)前工作頻率與最大工作頻率的比較來調(diào)整處理器利用率值。
文檔編號(hào)G06F11/34GK1737772SQ20051010983
公開日2006年2月22日 申請日期2005年8月4日 優(yōu)先權(quán)日2004年8月4日
發(fā)明者R·M·巴克斯, T·W·馬尼, T·D·羅德斯 申請人:惠普開發(fā)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1